The NES Composite Palette Project

Status: Feb 2017 NESRGB Firmware Package Available

Log entry: 02-13-2017

It's become clear my final step in concluding in the NTSC palette work is to get a hold of an Analogue Nt mini. It will allow me to load custom palette work via an SD card and get immediate feedback on my PVM as I fine-tune each color entry. Unfortunately, Nt minis are very expensive at over $450 per unit. They are definitely worth every penny in my opinion, but I just cannot afford one right now as I've spent well over $1,000 on this palette work as it is.

It would be greatly appreciated if I can borrow an Nt mini unit from someone, or perhaps if enough donations come in, I can obtain one that way. While my current offerings for analog RGB NTSC palettes are looking fantastic, I know I can make them the best they can possibly be with the help of the Nt mini. Below is my donation link for this and Framemeister profile development (another project I'm obsessively always improving work on):

If someone is willing to loan me a unit, both RetroRGB and "Try" from My Life in Gaming can vouch for my prompt returning of any hardware on loan. Feel free to contact them to get confirmation in this regard. Please email me at if you'd be willing to work with me on this. Much appreciated and thanks!


This obsessive project was started several years ago when I found emulation of NES graphics didn't seem to be as authentic as they should compared to the real NES hardware experience. First came eyeballed palette works, then on to direct capture conversions of the composite NTSC feed, and now finally hybrid and reverse-engineered palettes. With these latest works, the overall palette hue composition has become so recognizably consistant that differences are down to splitting hairs. This is good. This is where authenticity should be.

Due to analog RGB mods as well as digital HDMI options, it became clear a universal palette is simply an impossible task. What works on an LCD screen will come off as inaccurate on a CRT screen. A such, these latest works set about to offer enjoyable options for both methods of playing NES games. What follows below is a detailed explanation of each offering:

"Composite Direct (FBX)"

This is a pure, unmodified direct-capture of the composite output of the front-loader NTSC NES. It's intended for digital display users that want a reference palette that was not subjected to biased modification. However, the intensity values are not really authentic to CRT behavior, and some may not like the raw output of the olive hue swatch for example. It's a matter of taste and experience, and a few fans have expressed they actually like it.

Palette file link: Composite Direct (FBX)

"PVM Style (FBX)"

This palette is for digital display users that want a more authentic CRT experience (as close as can be approximated). It approximates the color and intensity of a Sony PVM CRT screen. Over 30 hours was put into composing this palette, with sampling countless games from the entire NES library. Many passes were done of the palette during live feed from a PVM until each and every color transitioned identically to the PVM screen. I then synchronized boot-ups of dozens of NES games to watch the color output from the PVM and the LCD display side-by-side. The results were fantastically similar, and as absolutely as close as humanly possible. I even took an eye exam to measure my own color acuity, of which I scored a perfect zero on the first try (I've been told this is a product of being an artist that constantly scrutinizes color in my own art pieces). At any rate, this was the most difficult palette to produce, and I'm thrilled with the results.

Palette file link: PVM Style (FBX)

"Original Hardware (FBX)"

This is the palette meant for CRT users. It will trigger the same reactions to the CRT phosphor as a real NTSC NES front-loader does. This is techncially a hybrid palette that used the composite direct capture results as a base to work from. Then from there, I reversed-engineered the intensity levels by outputting live 240p RGB into a PVM that was also getting live feed from an NTSC NES front-loader. Each palette entry was then tweaked until it caused identical phosphor reaction that the NES itself was causing. This is a critical advancement in palette accuracy as capture cards cannot do this. Effectively when you use this palette on a CRT, you will get the same experience as a real NTSC NES console, only with the benefit of a clean RGB picture. It even looks quite decent on digital displays, though obviously is not tuned for them (some darker hue values are too subtle for digital displays to distinguish to the human eye compared to CRT phosphor).

Palette file link: Original Hardware (FBX)

"NES Classic (FBX-FS)"

A direct capture rip of the NES Classic's palette meant of course for digital display users. Unfortunately, Nintendo decided to add in a number of epilepsy protection features to their NES Classic console. One of which is noise in solid color. There was no choice but to average the noise out of the color when doing the palette rip. I was able to make use of the Russian hack called "Hakchi2" in order to run my custom color test ROM and sample the entire screen for each color entry, making for maximum accuracy short of hackers finding the original RGB hex codes. This palette is purely for the novelty of being able to use the "official" colors Nintendo picked for their new system. However, it is not entirely accurate to original hardware, and of course the colors are a bit muted from their epilepsy protection efforts.

Palette file link: NES Classic (FBX-FS).zip

Screenshot Gallery (coming soon!)

Installing Palettes onto the NESRGB Board:

Updating the NESRGB board with these palettes requires a rev. C Altera USB Blaster. These are dirt-cheap and can be purchased on ebay for about $6.00. Be sure to get one that includes the 10-pin ribbon cable as well as the USB-to-miniUSB cord. Next, you will need the NESRGB Firmware update file Tim created for these palettes:

NESRGB Firmware Package: NESRGB Firmware Set Feb 2017

Please refer to the included tex file to determine which set of palettes you'd like to install.

Now you will need to install the Quartus II Programmer software from Tim's link here:

Quartus II Programmer Installation Exe

Once you have the Altera Blaster on hand, you will likely need to install the Altera Blaster driver by following the directions below:

In order to update the firmware on the NESRGB board, the board itself must already be installed in the Nintendo. This is because the board needs to be powered by the Nintendo during firmware updating procedures. When I updated mine, I removed the housing, shroud, and cartridge interface from the Nintendo, and then lifted the main board from the bottom housing so I could flip it over and move the bottom shroud to the side. This gave me direct access to the NESRGB board while still being able to plug the power cord into the Nintendo.

So here comes the tricky part: You'll need to strip the ribbon cable that came with your Altera Blaster down to six individual wires. The red coating on the first wire corresponds to pin #1 on the Altera Blaster, and each wire after that corresponds to the next pin (i.e. the 2nd wire goes to pin #2, the 3rd wire goes to pin #3, and so on). The wires you want are 1, 2, 3, 4, 5, and 9. These will be hooked into the 6 terminal holes on the NESRGB board as indicated below:

Wire #4 goes into the "3V3" terminal.

Wire #2 goes into the "GND" terminal.

Wire #3 goes into the "TDO" terminal.

Wire #1 goes into the "TCK" terminal.

Wire #9 goes into the "TDI" terminal.

Wire #5 goes into the "TMS" terminal.

Make absolutely certain you have the correct wires hooked into the correct terminals. I leave it to you to decide if you want to solder them or make a temporary interface (which is how I handled it). For reference, below is the Blaster pinout diagram:

Once you have everything hooked up, power on the Nintendo and plug the USB cord-side of the Altera Blaster into your PC. Then run the Quartus II 13.1 Programmer and follow the steps below:

If everything was done properly, you should see the progress bar fill with green as the programmer updates the NESRGB board. Wait until it finishes, then close the program (don't bother saving when prompted), turn the Nintendo's power off, and unhook the Altera from your PC and Nintendo.


All images and content found on this page are copyrights of their respective holders.