Sorry for my unintelligible post; But thank you for the nice comment (:
Yes I can do that, but as for now I do it all by hand… so I will do it this evening, but it could take a while
Mhm saturation is a bit more complicated to work with as I thought, there are some ways and alternatives to manipulate them so I will have a look into this, and come back if I have something to show
I haven’t read the new posts as of yet, but I got some great news. I got colormunki display and I was able to grab the screen dats for Original NDS. Here is the link for HCFR pics and few showcase:
I finished the NDS shaders a while after my last post. I would cover more speculation when I release it.
Right now, I’m doing GBA, and it’s really hard since it has no backlight for Colormunki Display. The screen has glaring and it has rainbow reflection when you flash a light on it with your phone or flashlight. I tried doing the method for Colormunki to do projected mode, and while it’s close, it’s still really challenging. I wouldn’t get the exact results because of glaring and rainbow, as well as being kinda hard to read the screen. I don’t think Colormunki Photo would work with glaring issues and it’s really expensive. GBA SP 001 would be too dim for any colorimeters to read correctly. Shooting light directly would help the results. Are there any better methods or suggestions to do this process more effectively?
Finally after stuffs happening in life, and finishing off my other projects, I am updating the GBA, GBC, and NDS shaders in package. LUTs textures included.
A couple of calibrations has changed, especially since I got Colormunki Display to calibrate my monitor with exact white balance and with .ICC profile to correct colors (on profiled programs like Photoshop) and correct curves on the entire screen. It has improved a couple of things.
I previously posted my work on NDS graphs on HCFR with Colormunki Display, and posted a couple of months ago. What’s interesting is based on what Displaycal and HCFR is telling me, I needed to modify the shader’s gamma to bring the color to exactly what the NDS is displaying. Based on the graphs, NDS’s gamma is 1.91, and checking on the color reference, HCFR showed me what it looks exactly, and it looks identical to the real screen, so that’s why I had to set both target and display gamma to 1.91 the way two programs were telling me. Overall, it’s really accurate to the display and it hits the spots much more than what I tried to do with scanning colors to the screen without a colorimeter. I know NDS being 1.91 would be a bit brighter, but those screens have TN panel’s traits, meaning gamma varied on person’s angle.
Now let’s move to GBA. Here’s what I did wrong the last time I update it either last year or two. I mentioned I did a color correcting the temperature on the gray to bring out the saturation, but it was wrong. It was more inaccurate than trying to put in exactly what I see from the screens. Also, I couldn’t afford a spectrophotometers or find a right one, and GBA’s screen has a rainbow effect on screen if flashlights are shot there without moving around, as mentioned a couple of times. Luckily, I got a new phone last year with better flash light for having a better temperature to the screen. I did so much tricks and shooting on the screen a couple of times that I actually got the color matrix and luminance to match very well. It helps when I calibrated my monitor so I can have it done at 6500k.
After all of that out of the way, I know the new and more accurate GBA shader can be a mix. The red color is a bit cooler, but it’s not as bad as you remember. Last one was less cool for doing the gray color temperature correction which was wrong. The red color is not that cooler as mentioned, and I see that the orange and yellow looks more pleasing. The green color was corrected to an extent. It’s actually a bit warmer, and it’s supposed to pop out a bit more. The blue is the same, maybe luminance got improved, which is said for all main color matrix. Overall, it’s much more accurate to the screen with the colors and so it matches more correctly. Also, GBA and GBC pretty much share the same color space.
Last thing about the GBA and GBC shaders is, I arranged the Lighten and Darken strength. Max value is 1.0, which is now the default. GBA’s Darken Strength at 1.0 looks like that when the sun or light is above the angle of the screen, as mentioned, and surprisingly, when shooting in the middle angle, gamma is around like standard 2.2, which looks like 0.0 strength, and when shooting from the bottom, the gamma is slightly brighter, and that’s why I have the low value at -0.25. For GBC, 1.0 Lighten Strength is the above, 0.5 is the center, and 0.0 is the below angle, and the only way to get it around standard gamma 2.2.
I want to put those information to anyone who plans to implement these shaders to their work. I just post it since I heard about Analogue’s Handheld FPGA and that this has to be posted earlier long before it actually releases to the public. I also wanted to update the info of how the screens work since the last time I updated the shaders. I know Woozle made his screen shader for his GBA Console project.
I got to update some of my tumblr posts that explains about the screens from real hardware, and how to make actual color correction shaders for your project.
Here’s a recap for some things I explained before:
I noticed in the E3 Press Disc Kit (2001) Nintendo got actual screenshots of Wario Land 4 of what appears to be the intended colorspace. Here’s a comparison of the Cractus Arena, and A more in depth comparison of Wario’s own Pallete
Emu Rare (used in a select few sprites) seems to be what was intended until Nintendo realized Wario’s skin didn’t stand out on dim screens. So they made it a garish yellow
The photo looked like it was on CYMK colorspace. It has a couple of palettes that are darker than it should. I found someone’s CYMK shader six years ago. Here it is:
Also, I want to keep note that GBA, GBC, and NDS white color is slightly lower because of the yellow color matrix, that it was clipping the red value, and because I had to subtract the red value on the blue color since it’s outside of sRGB.
I also plan to make an update to include settings for a target screen’s colorspace such as DCI-P3 or BT.2020 since couple of phones can reach at least DCI-P3 colorspace, and they have color profiles on their screen settings. I plan to have it layed out this way, sRGB Unclip (White slightly darker for Yellow to look correct), sRGB Clip (White to 255), DCI-P3, and BT.2020. The last two doesn’t need white to be slightly darker since they can have hold more color information, especially for the blue color.
It seems the shader with LUT is warmer. It seemed to look similar and probably use different kind of CYMK colorspace from E3 Disc 2001’s photos. Generally, the blue color is pretty much more turqouise. Do you have more photos you can show?
@SonikkuA That’s an interesting find with the E3 screenshots
@Pokefan531 Thank you for the update. Looking forward to exploring it this weekend.
Aside, a good while back I think I remember that you made an implementation of this shader based on the appearance of Game Boy Interface. Where can that be found? / Has it ever been updated?
I feel it should be a separate shader though…
and seeing how it affects greens makes it seem like it’s just a different CMYK color profile like PokeFan said
It’s been a long while since I updated my shaders for GBA and NDS. But I discovered new things pretty recently.
Well remember I said for NDS shader that I made display gamma to 1.9 to achieve more saturation for primary colors? Well during my research I was completely wrong, and goes against what I made about how color corrections with RGB are handled, few years ago. I just tried using ColorHCFR to take the color sampling from the NDS, and also used the xy values on Displaycal’s tools. However, doing it makes it a bit less saturated, close to GBA, which is why I thought it was needed for display gamma to be in 1.9 to see same saturation level that ColorHCFR presented. The thing is, Displaycal’s icc program and its 3dlut creator works best if you make your ICC profiles from Displaycal as it has a lot more information. What I did instead is to let ColorHCFR show me the colors on the bottom-left for each primaries, and while getting it to fit for the shader, it actually looked so much better! Like a lot! It looks completely accurate with the luminance of the colors.
But, that’s not all you guys…
I’m not just making GBA and NDS shaders for sRGB displays…
I’m also making display presets for DCI-P3 and Rec.2020 colorspace!
My current phone can display some DCI-P3’s colors, and a little more on the blue-green hues. The green primary is in between sRGB and DCI’s green matrix. Since the phone has no option for color profiles, I had to manually calibrate the screen with color tests, and also using LUT shader for Retroarch. I made sRGB and DCI-P3 LUTs. sRGB looks great as it looks identical to my monitor. DCI-P3, well, it’s looking great!! The green may not be that close to DCI’s green xy, but I still see a bit more blue-green hues. I made GBA and NDS shaders specifically for DCI-P3 displays, and for my phone, the GBA looks so far great! The blues are more closely to GBA’s blue color! How interesting!!
It’s really possible for GBC and GBA’s blue color can be fully shown in DCI-P3 colorspace as both red and green are wider! GBA’s blue is really showing more! The Nintendo DS Phat’s blue color, well, even if the blues are shown more, the blue primary is outside the colorspace, just like sRGB. There isn’t enough wide colors for NDS blue to exactly show in DCI-P3, but it does show more blue hues a bit more accurately. Rec.2020 display is needed for the NDS’s blue color to be seen. That’s why I also made a preset for Rec.2020 for those who has a display that has around 95-100% Rec.2020. Well having more colorspace will show both GBA and NDS colorspace more accurately, and for those who doesn’t have color profiles and are wide colors.
I’m getting LG V60 in a couple of days. It has a lot more DCI-P3 colorspace and it’s also OLED, which should have more wider colors. I’m gonna play around with it once I got the phone, and test the color profiles myself, and even make my own LUTs.
So after all those explanation about target colorspace, I have three different versions of each shaders already, only GBA and NDS. I want to have the color values to be included in one shader. Like have a shader option to pick the display colorspace (sRGB,DCI-P3, and Rec.2020) and also White Balance: 0 for NDS’s white balance (Bottom screen is the warmest, but still cold) and 1 for 6500k White Balance (standard) as I also believe the NDS white balance would show how the NDS closely look like. So six color presets (values on RGB, foreign colors on each RGB, and Luminance. I lowered the luminance to show the yellow color not be clipped on the red part to present it accurately. Though my NDS white balance presets has lower red that it’s enough to increase the luminance to or close to 1.0 (100% white).
I tried doing that myself, but I couldn’t do it well currently. Not sure how I can do it, so I want to ask how can you add multiple preset values in one shader. Thanks.
Oh and also to ask, does X-rite’s Studio’s spectro read reflective screens like the GBA?