I used unique free measures when using either Colormunki Display, or Photo, on the LCD, and try to toggle any colors from a homebrew, 240p suite. And also, yeah I had the issue with HCFR when using Wine on linux, as thereâs no drivers loaded for it. I had to use my desktop for its proper drivers to use it since it has windows. If thereâs a way, likely a virtual machine supporting USB passthrough could have it working.
You mean in DisplayCal? Because i donât think most vendor software allows doing manual measurements. It all seems to be automated.
As for GBA LCDs is just stumbled upon this. Might be interesting in the context of comparing the 2 001 LCD types. Mostly the second link is relevant.
https://old.reddit.com/r/GameboyAdvance/comments/1gwl9po/gba_vs_gbc_color_difference/
https://old.reddit.com/r/GameboyAdvance/comments/1gwz8kj/gba_vs_gba_color_difference_follow_up_post/
I use HCFR, not Displaycal. HCFR does work by making a new project, and play with unique free capture option (also can be triggered by pressing F7) to get data, before copy and paste to actual matrix data. I also can click on any matrix and use free capture to get data that way too.
I saw and found it interesting. I can tell itâs a different GBA revision on the blue one, and had requested to share by using Red and Yellow palettes.
Yep for GB games to play on GBC or GBA, I always use the Red and Yellow palettes, because since they use 255,0,0 and 255,255,0 respectively on RGB values, the gamma canât alter its appearance of it at all, so we get consistent appearance on luminance across GBC and GBA regardless where the light angle shoots. So with that, I wonder how it looks on newer GBA with panasonic LCD, with only the red color being more neutral as the only difference.
Side note, the GBC screen is overall warmer on its white balance, so I had to get my portable LED lights go up to 8500K to match up to my monitor to get proper white balance with showing pretty much the same colorspace as GBA when shooting the lights at 6500K and also matched my monitor. But yeah, if you see the white color being warmer on those photos for GBC, yep thatâs the only difference, but still the same colorspace.
Ah, so HCFR is the right tool to use. It didnât sound like that was the case from your previous response.
Also yes, with 255 gamma doesnât affect the result. If i had a monitor that had 100% sRGB coverage i would at least attempt eye balling the 3DS LCDs. I also had the idea to eye ball the GBA colors directly on my 3DS by comparing between the new GBA SP and 3DS and then trying to match primaries and secondaries. That would rule out any errors introduced by my inaccurate equipment but would make the resulting color matrix only work on 3DS. At least the ones that have the exact same color temperature, gamma curves and color space.
That reminds me most of the LCDs used on 3DS are not a lost hope. We talked about this on the Discord/IRC i linked earlier but Sono and me discovered some LCDs have hidden registers that allow you to tweak the LCD analogue curves directly. This however needs research and itâs danger zone because you can destroy your LCD with completely wrong settings.
More on that here. The curve settings are below. https://www.3dbrew.org/wiki/I2C_Registers#Device_5_.26_6
Also yes, i noticed in these pictures the GBC LCD looks warmer. On that note my GBC has an IPS screen but i still have the original LCD and itâs in very good condition.
So, I must ask, what is the difference between these shaders and the options present in the mgba core and standalone?
mGBA standalone uses the same shaders. Only recently did endrift update this one. I guess now it needs another update.
Ok, so i updated to the new values from the latest shaders. I donât know. The GBA color profile now looks a bit more washed out than previously. Thatâs why i added a tiny bit of darkening on top.
You can find a build of this exact version under the Actions tab on GitHub. Obviously you need a modded 3DS that can run FIRM files at boot.
Here is a build where i left darken screen as 0. Itâs just a little too washed out for my taste. https://www.dropbox.com/scl/fi/2synezltfi32pbwlgc1jt/open_agb_firm_gba_color_darken_0_test.7z?rlkey=h03nv1v1bp6m2kqxysxhai0ou&st=bcz867am&dl=1
Yeah I change the default gamma to 0 since the preset shader uses the LUT with gamma I added. The preset defaults to something like gamma 3.0, from the center of the GBA
Yeah, i made a comparison old defaults vs new. The extra brightness is just a little too much for the 3DS LCD since the whitepoint is quite cold. On a normal sRGB LCD itâs quite acceptable.
I also updated my tool for converting screenshots. All you need is lodepng from here and a compiler. Instructions how to compile in line 108.
That reminds me Game Boy Interface has some special settings documented that differ from your shader defaults. Gamma, contrast and brightness. Thoughtâs on this? I also donât quite understand how the values for the settings were calculated.
https://gc-forever.com/wiki/index.php?title=Game_Boy_Interface/Standard_Edition#Color_emulation
Interesting. The input gamma is what the gamma setting on the shader and the LUT shader work, as it does alter the gamma before it does the color correction, which is what the given presets on the wiki states. As for brightness and contrast, somehow it tries to emulate the contrast of the displays to give it a look? Not sure if the given contrast ratio was from the test or something to increase black levels and decrease white levels, but it is interesting. I donât plan on approaching the same contrast accuracy due to varying degrees of LCD displays and varying levels of contrast ratio. I know both Sameboy and BGB tries to replicate it.
Also, on my GBA preset, the input gamma pretty much ranges from 2.2 and 3.8. The default being around 3.0 when flashed the gamma ramps on the GBA in center light angle when using 240p test suite. The GBA shader preset have very similar gamma as the old one as you demonstrated, when I just tested the preset on Retroarch.
That reminds me your shaders do the darken screen adjustment on the input side. I found that doing it like that changes the colors noticeably the stronger darken screen is. Would not it make sense to change the gamma on the output side or is there a specific reason itâs done like this?
Oh, and before i forget extrems explained how contrast and brightness are calculated.
profi200: The values were calculated using part of this formula:
https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1886-0-201103-I!!PDF-E.pdf#page=4
Example for https://www.gc-forever.com/wiki/index.php?title=Game_Boy_Interface/Standard_Edition#Game_Boy_Advance
gamma = 4
brightness = (1 / 250) ^ (1 / gamma)
contrast = 1 - brightness
The output gamma affects the primary colors when doing color correction from RGB. It wouldnât look right, but with input gamma, it affects the gamma before the color correction takes place, which retains gamma corrected color correction to the primary, with gamma 2.2 adjusted.
Merry Christmas!
I got myself a colorimeter and made some measurements. I guess the thread title can now be changed because we have data on old 3DS and IPS New 3DS XL as well. I didnât measure the New 3DS XL bottom LCD because it has a way too warm whitepoint. I plan on doing more measurements as well as measuring my DSi and DSi XL LCDs.
Mentioning my setup just in case i made a mistake. HCFR 3.5.1.4. The colorimeter is a Calibrite Display Plus HL and i made all measurements in the dark under my table and with the second LCD backlight turned off (to prevent the other LCD light from influencing the measurements) because the colorimeter does not sit on the LCD directly (light can enter from the sides). I also made sure colorimeter and LCD are warmed up. This was specially challenging because the 3DS LCD backlight kept drifting downwards even after over 30 minutes to make it stabilize. The New 3DS XL on the other hand stabilized very quickly. I adjusted brightness until the colorimeter read about 80 nits on 100% white for all measurements.
Results:
old 3DS top LCD. Gamma is an accident as well as color temperature. HCFR can only show a single point in the top right corner for the color temperature.
old 3DS bottom LCD. About the same as top but a little bit of a different gamma.
New 3DS XL top LCD (IPS). Much lower delta error rates but still bad in many measurements. The blue channel is different than old 3DS. HCFR also partially canât show the color temperature but itâs much closer to D65 than o3DS.
Bonus microscope shots of the top LCDs i made years ago. In order o3DS and N3DS XL IPS.
The code i wrote to to show the test patterns. The overlay from HCFR showed slightly different values than the reference in a few cases. I used the RGB values shown in the overlay.
The 3ds seems to share very similar colorspace the whole DSLite-DSi and GBA-SP 101 have. The only difference is the blue color is much closer to sRGBâs blue color, only a little higher hue and slightly out of gamut of sRGB. The IPS one has the Red color raise more saturation a bit to nearly its fullest of sRGB, only still a bit more orange like the non-IPS one, and somewhat better gamma and color temps, but far from what average IPS displays from the last couple of years has provided. Still an improvement at the least especially the viewing angle. Also canât wait to see the DSi measurements as well as XLs. I would request the LCD subpixel photo if possible. Thanks for sharing them
I have two AGS-001s. These are second hand so I dunno the history, but these two have screens that look different Hereâs a photo with the frontlight off.
The left one looks warmer, the right one colder.
If you shine light from the top of the LCD does one of them look darker than the other? Thatâs what i observed with my SPâs.
@Pokefan531 I was made aware of a small quirk of how GBA mode on DS works. On DS the LCDs use 6 bits per channel and seems like they bodged it by leaving bit 0 as always zero and the upper bits are from GBA hardware. Mentioning this because the DS (lite) shaders may not be accurate to what it looks like on hardware.
Hi @Pokefan531 , Iâm the developer for a (3)DS Capture Card Viewer software. Iâve already implemented some of your shaders based on the OAF implementation. You can see the data here: https://github.com/Lorenzooone/cc3dsfs/blob/3bc9425bad768fe6be013a4d06a9e9895712fd56/source/frontend.cpp#L369 Thanks a ton for all your hard work!
Iâd like to know, from @pica200 âs files, how could I get the values needed for a shader to recreate the colors of the 3DSâ screens? Thanks a ton for any answer!
Semi-related, but I noticed that FFTA has a color-corrected mode for TVs built into the game. Anyone know of other GBA games that had this feature?
I know some games with GameBoy Player support loading different palettes for it. Mother 3, for example, calls this âGamma Correctionâ in the debug menus.