In my pursuit of the crispiest video possible, I did some experiments with the PixelFX Retro GEM Shiny Edition. The GEM is a 'universal' HDMI mod that works with N64, PS1, PS2, and Dreamcast, with support for more consoles on the way.
What's so interesting about the GEM is that the Shiny Edition incorporates a super robust video scaler, and the user can specify custom modelines, i.e. exact video output timings. Furthermore, the FPGA doing the scaling outputs 24-bit RGB to the GEM's onboard Sil9022A HDMI transmitter. So, by hijacking that RGB24 pixel bus, you can directly drive an RGB LCD like the ones we use in portables.
TL;DR— Shiny Edition GEM can act as a multi-console LCD direct drive. Here's how:
Preparation
The HDMI transmitter is outlined in red. You can keep it, or remove it. If you keep it, it will draw extra power despite being unused. However, removing it can make it harder to debug issues since you can't connect to an external monitor anymore. Up to you.
The above diagram shows the locations of the 24-bit RGB signals, CLK, DE, and HSYNC/VSYNC. 3.3V, 5V, and GND are also called out on the board pic.
I suggest using an Adafruit TFT Friend for wiring up your LCD. It has a gross slide ZIF, but it's easy to use and nicely labeled. Note that 800x480 LCDs need the ON/OFF pin tied to 3.3V!!!
Some pics of how the GEM and TFT Friend might look after wiring:
LCD Selection
Not all LCDs are created equal. Some of them won't be able to handle the modelines I've created. I can't guarantee 100% compatibility, but I can provide a short list of panels that I know work.
Usage and Results
When configured this way, the GEM produces an impeccably crisp, pixel perfect image! Enabling full-strength scanlines in the Retro FX menu cleans up the image a lot.
5" 800x480 LCD:
4.3" 800x480 LCD:
You can change the scaler aspect ratio to 5:3 to stretch the image and fill the entire 800x480 LCD. Turn horizontal interpolation to softest when doing this to avoid artifacts. In 4:3 mode, keep horizontal and vertical interpolation off for the sharpest picture.
3.5" 640x480 LCD:
By tuning the horizontal porches on the modelines, I was able to get the fancy deinterlacers working. So 480i content on PS2, PS1, and N64 should look decent if you select a deinterlacer other than bob. The bob deinterlacer on firmware 2.6.x works with just about any horizontal porches, so it's an OK fallback. But it exhibits the characteristic 30Hz flicker of all bobbing and looks pretty bad.
Weave looks amazing for static 480i content like UIs and menus (seen below). PS2 probably needs motion adaptive to look decent.
Power Consumption
@thedrew measured GEM power consumption at ~900mW while it was active. This includes the HDMI transmitter so it's probably a bit less without that. Basically, this is very competitive and matches or beats most driver boards, as well as Wii direct drive!
Conclusion
This is a pretty slapdash guide because Shiny GEMs are expensive, and I don't anticipate many people trying this. But it's still a wicked proof of concept and solves a ton of video issues the community has battled for years (clean 480p output for PS1 and PS2, direct drive for N64, etc). Hopefully some more people give it a shot!
I only tested with an N64, but theoretically once the modelines are installed, the GEM should work with any compatible console and output the exact same resolution. A truly universal direct drive solution!
Special thanks to @thedrew for helping test stuff, and being awesome and a fellow crispy video purist.
Also, huge thanks to PixelFX for creating such badass hardware and software to enable this next generation of modding!
What's so interesting about the GEM is that the Shiny Edition incorporates a super robust video scaler, and the user can specify custom modelines, i.e. exact video output timings. Furthermore, the FPGA doing the scaling outputs 24-bit RGB to the GEM's onboard Sil9022A HDMI transmitter. So, by hijacking that RGB24 pixel bus, you can directly drive an RGB LCD like the ones we use in portables.
TL;DR— Shiny Edition GEM can act as a multi-console LCD direct drive. Here's how:
Preparation
- Your GEM should be installed and working in your console of choice before beginning. Use firmware 2.6.1.25 from the stable channel!
- Make sure you can access both the on-console OSD and the Web UI.
- Then, install my custom LCDmodelines.ini via the GEM's Web UI. This text file contains the LCD timings that I've determined work well with the 3.5" 640x480 LCD and 4.3"/5" 800x480 LCDs.
- Choose the preset that matches your LCD (LCD640 or LCD800). Quickly click confirm again (R on N64, not sure what it is for other consoles) to save the setting. HDMI output will probably stop working at this point (even my RT4K struggles to lock onto the LCD modeline.)
- Now you can wire up the LCD!
The HDMI transmitter is outlined in red. You can keep it, or remove it. If you keep it, it will draw extra power despite being unused. However, removing it can make it harder to debug issues since you can't connect to an external monitor anymore. Up to you.
The above diagram shows the locations of the 24-bit RGB signals, CLK, DE, and HSYNC/VSYNC. 3.3V, 5V, and GND are also called out on the board pic.
I suggest using an Adafruit TFT Friend for wiring up your LCD. It has a gross slide ZIF, but it's easy to use and nicely labeled. Note that 800x480 LCDs need the ON/OFF pin tied to 3.3V!!!
Some pics of how the GEM and TFT Friend might look after wiring:
LCD Selection
Not all LCDs are created equal. Some of them won't be able to handle the modelines I've created. I can't guarantee 100% compatibility, but I can provide a short list of panels that I know work.
The GEM's deinterlacers are not instantaneous. Dan from PixelFX helped me realize that for non-bob (i.e. weave, blend, and motion adaptive) deinterlacing to work properly, the modeline needs to have very generous horizontal porches to give the deinterlacer time to do its thing. As such, the pixel clock of these LCD modelines is pretty high. Your wiring needs to be tight and not all LCDs will support the higher clock / wider porches. You can always decrease the H porches but only bob deinterlacing will work (others will spill off the screen and cause artifacts)
- 3.5" 640x480: Topovision TVT0350K3-I and TVT0350K4-I
- these 3.5" panels don't require SPI initialization. If you want to use a cheapo generic 3.5" panel or a laminated one, you need to initialize it over SPI
- 4.3" 800x480: "043J101" or other panel with ST7262 driver. BuyDisplay one probably works
- 5" 800x480: BuyDisplay IPS panel with ST7265 driver works
Usage and Results
When configured this way, the GEM produces an impeccably crisp, pixel perfect image! Enabling full-strength scanlines in the Retro FX menu cleans up the image a lot.
5" 800x480 LCD:
4.3" 800x480 LCD:
You can change the scaler aspect ratio to 5:3 to stretch the image and fill the entire 800x480 LCD. Turn horizontal interpolation to softest when doing this to avoid artifacts. In 4:3 mode, keep horizontal and vertical interpolation off for the sharpest picture.
3.5" 640x480 LCD:
By tuning the horizontal porches on the modelines, I was able to get the fancy deinterlacers working. So 480i content on PS2, PS1, and N64 should look decent if you select a deinterlacer other than bob. The bob deinterlacer on firmware 2.6.x works with just about any horizontal porches, so it's an OK fallback. But it exhibits the characteristic 30Hz flicker of all bobbing and looks pretty bad.
Weave looks amazing for static 480i content like UIs and menus (seen below). PS2 probably needs motion adaptive to look decent.
Power Consumption
@thedrew measured GEM power consumption at ~900mW while it was active. This includes the HDMI transmitter so it's probably a bit less without that. Basically, this is very competitive and matches or beats most driver boards, as well as Wii direct drive!
Conclusion
This is a pretty slapdash guide because Shiny GEMs are expensive, and I don't anticipate many people trying this. But it's still a wicked proof of concept and solves a ton of video issues the community has battled for years (clean 480p output for PS1 and PS2, direct drive for N64, etc). Hopefully some more people give it a shot!
I only tested with an N64, but theoretically once the modelines are installed, the GEM should work with any compatible console and output the exact same resolution. A truly universal direct drive solution!
Special thanks to @thedrew for helping test stuff, and being awesome and a fellow crispy video purist.
Also, huge thanks to PixelFX for creating such badass hardware and software to enable this next generation of modding!
Attachments
-
630 bytes Views: 42
Last edited: