It’s been a while since I last updated the shader pack. During the hiatus, I’ve been using several programs and re-calibrate my sources.
I switched my vga adapters when I had my graphic cards swapped. My screen is LCD and compatible with sRGB specs, but only has VGA input. Before swapping adapters, I had clipping problems with the screen of where I barely see any contrast on Mario Kart 8 loading screen background, and I would have to use the driver to play around the contrast settings because of clipping on blacks and whites. I noticed this problem few months after the previous shader release. Though, it was not as aggressive as Full Range clipping on Limited range mode. The new adapter can display the whole scale of rgb values without any clipping on default display settings, which makes better precision of color accuracy when copying colors from handhelds to my monitor.
I’ve used tools for color accuracy like photoshop and using the color mangler shader to see the results. I used a light to flash the GBA screen that is identical to 6500k whites to the screen. The GBA Red, Green, and Blue colors do vary by light temperature, so I usually use the white light. The white color is very identical, so colors are better and more accurate from the screen. I even played around with several light bulbs with color temperatures and also do the color temperature in photoshop to see the identical results. The white light seems very helpful to get the exact rgb colors. I do red and green first since the color values are inside the sRGB range and so I put them in the shader and look at the values in Photoshop before putting the blue color. Since the blue color is outside of the sRGB range, I would have to subtract the red value on the blue color to get more accurate blue hues and saturation. I would fill in the blue and green values to the blue color to achieve better results with pure white color in the shader. After that, it is more pleasing than the last update.
The red color is less saturated as seen, but supposed to be slightly warmer instead of being cool, which caused some colors to appear cool and the new version fixes that. The green color, while all colors appears less saturated than the sRGB, the green is more saturated than what the previous release has. It is warmer as it’s supposed to be, and it gives off more acceptable colors that is comparable to the actual screen with white light flashed into it. The blue color, even though it is out of bound of most monitors as of date, it appears more bluish as it’s supposed to and tries to match the blue color from gba.
How the real screen looks when I tried to flash it has tricks. When the screen gets dark, the color luminance decreases instead of having the gamma dark it, because my previous shader has a dark parameters that changes gamma after applying the color correction, which gives inaccurate results as it changes the colors instead of preserving it. I switch it to change the inner gamma as the gba does, which means the screen’s gamma is changed before applying color correction to help preserve it. Speaking of the gamma, the gamma can go to around 2.2 depends of the light source on where it’s hitting at. If you shoot it from the bottom or the center of the screen, the gamma doesn’t change and goes around to standard 2.2. If you shoot it from above, the gamma change and it gets darker, but if shot from the tip of the top, it gets more dark. Shooting from right to left has smaller situation. I would translate this from the new shader’s parameters on darken screen, that 0.0 is bottom or center, 1.0 is above, and 2.0 from the top edge. Its kinda like seeing the TN panel when looking at different angles that changes the gamma, but in GBA’s case, it only changes of where the light is emitting from, and also transflective LCDs does not invert colors that the TN panels do. You can play Castlevania games with things being more visible if played outdoors or played in a well lit room. I set 0.5 the default for balance on darken image for bright games. Although it is slightly lighter than the previous release, it is kinda supposed to be on that average for an average light without counting the sun or be close to the light bulbs.
When I flash the screen from the light source, the screen is a bit brighter due to less contrast, and the contrast is lower because the light brightens the black a bit. What I did is copy the black color too to match it after matching the rgb colors and then use Photoshop to clip down the blacks to give me the right rgb color values and it was needed to make icc profiles and to color mangler with default gamma settings. That way, it gives me more accurate results when I compare the screen. Display_Gamma does change the colors after adjusting everything, which is what made me change the darken screen method.
The NDS is backlit, so it’s easy to copy the colors to the screen. I would have to dim my monitor to match the white luminance for more precise results. The NDS phat has a slightly warmer whites and the bottom is a bit more warmer, so I just use Photoshop to balance the white color on the test image for the top screen. The blue colors seems to be a tiny bit dim by default. While the contrast is a bit less, it’s not as much as the gba transflective screen is and I still get comparable results. Of courses it is better than previous release, and I did remove the gamma parameter setting on any shader other than gba or palm, which I will get to.
I did get better PSP results from displaymate page and used the color gamut chart to Photoshop to use rulers, snaps, and grids and adjust them to get the UV values for red, green, blue, and white, and convert the UV to XY to use the converted value to Photoshop’s color profile settings to make an ICC file for color correction, and you can view of how the ICC file would look like by clicking passing profile or color profile settings. I then copied the color values to red, green, and blue to the shader for precise. I did that method since I don’t have any PSP and displaymate page is reliable.
For Cgp, Glslp, and Slangp, please have the color correction loaded after the LCD shader since the actual screens have different rgb colors as demonstrated.
Also, the same website has Palm phone color space and palm is devices have transflective screen as the gba, but have a similar color space, in between GBA and NDS saturation. You can use the palm shader on a palm is emulator, if a libretro core of that exist. I wouldn’t say it’s the same as gba or NDS because the colors are a bit more saturated outside the red hue, and the gba has the least saturation on reds, while the NDS has more saturated reds than the gba, which is why the red is brighter than gba or palm. From the displaymate page, it does have gamma of 2.6, and I added an option to switch gamma from 2.2 for palm shader.
Not sure if I am trying to make sense on all this since I never wrote that big of a documentary for those screens and tricks, but I do try to explain of how those screen works for color correction. The new gba shader still looks good without the gamma change and can be safe to add on the next GBI version. I will release new and updated images soon, and I also packed the new shader with the new LUT that hunterk has made last month and I decided to use it as a new out from before and better and more efficient than my previous LUTs from two years ago.
Also, note that the mGBA and Gambatte doesn’t have the green colors fully scaled, and they both reached to 251 out of 255, so the colors can change slightly, but can be unnoticeable. I would have to load up the image-adjustment first to have both gamma to 2.2 and only have the green value up to 1.015 to fix that before applying the color shaders. It doesn’t happen to desmume.