Tuesday, October 24, 2017

Retron HD NES Color Palette Extracted - Gawkers Beware!

The recent flood of low quality NES consoles has made me curious to see how they look and perform. I picked up a Retron HD at Hyperkin's PAX 2017 booth and was most curious to see what the color palette looked like. Not to my surprise, it looked a little... off.

I was also disappointed to find that NES carts such as the PowerPak don't work (crashes on boot). It was suggested by RetroUSB to try a higher current capable 5VDC power supply than the included one, but that didn't resolve the issue.

To extract the Retron HD's color palette I had to use a "real" NES cart with Loopy's paltest.nes program. Thankfully John Riggs came through and made me one to use for this project! Surprisingly the captured palette swatches are actually really clean (no noise). I captured the test pattern via the HDMI output from the console to both a Datapath VisionRGB E1, and a BMD Intensity Pro 4K so that I could cross check the results and found no discrepancies.

Without further ado, here's the RetronHD palette. Download RetronHD.pal.

Here are sample images using the RetronHD palette.


Bionic Commando looks especially egregious with the RetronHD palette! 😜

Thursday, September 28, 2017

SNES Classic Edition - Observations and Captures

After the wildly popular NES Classic from 2016 Nintendo has followed up with the release of the SNES Classic. While there are many outlets covering this exciting new device (and how it's essentially the same HW as the NES Classic), I'd like take the opportunity to cover a few particular points of interest.

Image Quality

Like discovered on the NES Classic, the SNES Classic also applies a random noise filter to the game image each frame. This random noise changes R, G, B sub pixel values by up to +/- 4 or 5 values to provide a more "analogue" look that makes solid color fields less flat. All games tested are presented in a 3x integer scale. This results in a 672 pixel high image (224x3) with borders that surround the game image on all sides.

4:3 Display Mode

One welcome improvement with the SNES Classic is it's 4:3 Display Mode. Unlike the NES Classics fractional point sampling that results in pixel "flicker" on horizontal scrolling, the SNES Classic does something a bit more sophisticated. The perfect pixels 768 wide image is stretched horizontally to 877 pixels using a low pass filter style filter to average pixel values between two adjacent pixels with different source values.

Star Fox 2

While I've assembled a repro and played the existing Star Fox 2 game, it's a real treat that Nintendo has officially released the "final" build! Screen captures of the title screen in each of the 3 display modes. Enjoy!

Friday, February 24, 2017

New NESRGB Firmware Featuring RGBSource Color Palettes

If you enjoy using my NESCAP, HYBRID, and/or NESCLASSIC color palettes, you now have the option of doing so on Tim Worthington's NESRGB! Two firmware (.pof file) options are now available.


Download palettes1_NESCAP_HYBRID_NESCLASSIC.pof

3. FCEUX (aka "Improved" - default firmware palette 2)
Download palettes2_NESCAP_HYBRID_FCEUX.pof

The remainder of this post is a guide for updating the NESRGB firmware on an installed system. Tim's original guide for updating firmware can be found here.


1. Altera Quartus Prime Programmer and Tools (Standard Edition) - Found under the "Additional Software" tab. Requires free account creation to download. I have used both the latest (v16.1) and the older 13.1 version linked on Tim's page.
2. Altera compatible USB Blaster (JTAG Programmer) - I use the Terasic P0302. Other Altera clones work too.
3. Altera JTAG to NESRGB JTAG adapter. Here's what I created, followed by a wiring table.

Altera JTAG Pin NESRGB Pin Signal Name Description
4 1 VCC (TRGT) 3.3V DC power supply
2 2 GND Ground
3 3 TDO Data from device
1 4 TCK Clock signal
9 5 TDI Data to device
5 6 TMS JTAG state machine control

The NESRGB has a 6 pin JTAG programming connection on the lower left hand side of the board. Pin 1 is encircled.


Steps to update the NESRGB firmware 

  1. Install Quartus Programmer software
  2. Connect USB Blaster to your computer and install driver (default location for v16.1 drivers: C:\intelFPGA\16.1\qprogrammer\drivers)
  3. Run Quartus Prime 16.1 Programmer
  4. Click Hardware Setup and select USB-Blaster from the list.
  5. Select File → Open → palettes1_NESCAP_HYBRID_NESCLASSIC.pof or palettes2_NESCAP_HYBRID_FCEUX.pof
  6. Check the boxes for Program/Configure and Verify.
  7. While the NES is turned off, connect the USB Blaster to the adapter cable, then to the NESRGB. Make sure you connect the adapter correctly to the NESRGB JTAG connection!
  8. Turn the NES on, making sure that the adapter is making contact with the NESRGB JTAG connection (e.g. gently hold at an angle - gravity is enough)
  9. Click the Start button and wait for the process to complete!
  10. Once completed, turn off the NES, disconnect the JTAG adapter from the NESRGB, and enjoy!
Step 6 - Selecting firmware update actions

Step 7 - Connecting the USB Blaster to the NESRGB JTAG connection