NESRGB40 Eratta

There are currently two versions of NESRGB4 FPGA firmware.

Hardware with the date code 22.31 printed on the PCB silkscreen has version 1, unless it has 'V2' written on the 144 pin FPGA (in silver pen). Hardware with the date code 22.38 always has version 2.

Version 2 has a bug which sometimes the NESRGB board powering up in the 'off' state (no palette selected) when installed into front loading NES consoles. The fix is here in this forum post.

Version 1 has the following bugs:

Colour tint firmware bug.

Description: The RGB attenuator which mimics the colour tint (a.k.a. colour de-emphasis) feature of the PPU is broken. Instead of attenuating the signal it is boosting it.
Symptoms:

In Rampart, the scrolling messages appears brighter than the background, instead of darker. The screen distorts under the message because the signal is being boosted above standard video levels.


In Noah's Ark, the top of the water appears yellow instead of Blue. The red and green channels are being boosted instead of attenuated.
Games affected: There is a list of all games that make use the colour tint feature in Nesdev Wiki.
Solution: Remove the three resistors (very carefully) that are responsible for RGB attenuation from the NESRGB video DAC circuit. This will disable the colour tint feature. This does not restore correct operation, but looks better than the unwanted boosting effect.




Palette RAM metastability firmware bug.

Description: Under the right conditions (including temperature), reading/writing to the palette ram will fail. Seems to happen more often on NTSC NES front loader and PAL NES top loader consoles.
Symptoms:
Incorrect colours in all games, symptom may come and go as console warms up.
For example, Castlevania looks like this


When it should look more like this


Sometimes the colour changes are accompanied by colour fringes on the edge of objects, which looks like PPU de-sync, described in the clock hardware bug below.
Games/hardware affected: This bug seems to only maifest on a small number of NESRGB installations. I suspect something like 2% of customers are affected. The best method I have found for making this bug manifest itself is to put the console in the fridge. Take it out once it's cold, play Super Mario Bros 3 and leave it on the map screen and watch the screen as it warms up. The map screen updates the palette every second frame so you will notice any palette corruption in the video output immediately.
Solution: A slight change in the timing of the PPU's CE# (pin 13) signal should be enough to make it go away. To accomplish this, solder a 100pf ceramic capacitor between PPU pin 13 and pin 20 (ground) on the underside of the NES motherboard. The exact value of capacitor is not critical, try 47-220pf if that's what you have at hand.



Interrupt detection firmware bug.

Description: The NESRGB uses the INT# signal from the PPU to detect that the PPU has stopped rending and is ready to accept palette writes. The INT# signal detection logic was poorly implemented and this can cause the blocking of palette writes to occur in some games.
Symptoms:

Incorrect colours in some specific games. More likely to happen in NTSC consoles than PAL.

Bomberman 2 road is black instead of grey.


Final Fantasy town screen looks like this normally.


Go into a shop, come out, it looks like this. Green grass/trees turn white.
Games affected: Only Bomberman 2 and Final Fantasy have been reported so far, but I'm sure there are more.
Solution: This one is the most difficult to solve. It requires a modification to the NESRGB board to replace the faulty INT# detection logic. More info to come.



Clock hardware bug.

Description: Version 4 hardware is more susceptible to noise on the clock signal than version 1/2/3 hardware. Previous versions had a clock input with schmitt trigger hysteresis of 400mV. Version 4's clock input also has a schmitt trigger on the clock input, but the hysteresis is only 200mV.
Symptom: Noise on the clock line can cause the NESRGB board to become unsynchronised with the PPU. This looks like colour fringes on the edge of objects and the picture moving left/right by one pixel.
Hardware affected: Normal NESRGB installations should be unaffected. The Bakutendo mod for installing NESRGB boards into original Famicom consoles is very likely to be affected.
Solution: Insert a clock buffer circuit between the NES clock signal and the NESRGB board.



Updated 8/1/2023.
Created 6/10/2022.