PiBoy DMG 18bit color banding
Firebird_WS6 last edited by Firebird_WS6
Pi Model or other hardware: Pi4 4Gb
RetroPie Version Used: 4.6
Built From: Experimental Pi, PiBoy DMG image
The PiBoy DMG case uses a DPI screen in 18BIT_666_CFG2 RGB666 (6 bits per colour) mode: dpi_output_format = 0x70016. This causes significant color banding in some games due to lack of color depth, notably N64 Banjo Kazooi Intro. I found an article that described the exact same issue and suggested adding the following to /boot/config.txt:
# panel is 18-bits so dither from 24-bits hvs_set_dither=0x211
However it did not appear to do anything and I don't understand why? I do wonder if its because the command is not formatted correctly for the DPI display, or even if it is not valid anymore with the current version of Retropie?
Any suggestions for how to implement the dithering?
Firebird_WS6 last edited by
So I found out why hvs_set_dither=0x211 wasn't doing anything to help with N64 color banding because of the 18 bit DPI display on the PiBoy DMG. The problem was the last digit, which determines the display channel. It needed to be 0 for a DPI display. After making the change I found the dithering worked pretty well. Here's how the command is formatted:
hvs_set_dither=0x00000xyz where x=dither type, y=depth, z=channel. Dither Type This field sets the type of dithering to be applied. All colour components with less than 8 bits of precision will also have horizontal error accumulation applied. 0 = No dithering 1 = Accumulate rounding error horizontally. 2 = As 1, but also apply pseudo-random noise. The noise generator is reset at the start of each frame. 3 = As 2, but the noise generator is free-running. This setting will produce a shimmering effect on static images that may be distracting. Destination Display Bit Depth Sets the number of bits being used by the destination display. This determines where the LSBs are in the 24-bit RGB values coming from the display FIFO. 0 = 24-bit RGB888. No error accumulation is required. 1 = 18-bit RGB666. 2 = 16-bit RGB565. 3 = 15-bit RGB555. The leading 0 are not required, so for the PiBoy, an example command is as follows, add to /boot/config.txt: # panel is 18-bits so dither from 24-bits hvs_set_dither=0x210
Rion last edited by
Great find @Firebird_WS6 !
Not that i own one myself but good to know for those that do.
Have you sent this information to Experimental Pi?
acidtech last edited by