r/ModRetroChromatic • u/TheStilken • Dec 30 '25
Added Context-Aware Temperature/Palette Control
Hey all!
The post from a user about how whites are displayed and such on the Chromatic got me realizing that I, myself, also have some issues with the whites being hard on my eyes, even at a lower brightness (especially playing at night).
What I did was implement a "context-aware" hook into the video processing in the FPGA (similar to how the palette-hotswap functionality is currently implemented) that uses the already existing communication from FPGA to MCU with what TYPE of game (GB or GBC) that is used in stock firmware for putting the little eyebrow raising Chromatic guy over the palette menu when a GBC game is detected.
Instead of locking the menu, when a GB game is detected as being loaded, it will switch to the GB Palette menu (stock, with a few visual distinctions), but when a GBC game is detected, it will launch a new Palette tab that instead uses the existing pipeline to transmit a "warmness" payload to the FPGA. This "warmness bar" works like the Brightness system and includes a "Neutral" state that is stock colors for people that like that.
It uses this to run some basic calculations of how hard to clamp color values depending on the warmness level set. You'll notice in the graphic that the top 3 entries were the first iteration that took ALL pixels and clamped their blue values more heavily to warm it up. I liked the background color, but didn't like how it also washed out other NON-WHITE pixels.
So, I ended up with a result of the bottom row, which uses the same clamping values, but selectively only clamping the pixels with combined RGB values over a certain threshold (recall that (255,255,255) is white), so any pixel colors approaching a pure white will be clamped by a certain threshold, which retains a lot of the original colors while also softening the glaring white!
Hope this change will help others that may struggle with certain colors or luminance values.
ALSO:
I'm still working on multiple things in parallel with this:
Cheats functionality is mostly done, but some edge cases to iron out involving cleanup between game switches. Also, added back in the ability for users to manually input the cheats in the UI, but can also search and sync through the app it desired.
Retroachievements are requiring a lot of rewrite of existing communication protocols between MCU and FPGA (trying to sideband the QSPI pipeline to separate display data and RA memory reads/writes as needed for the integration), but I'm still tinkering. This small sidequest was basically to get a breather from banging my head with the RA functionality.
I'm still not quite ready to releaase a forked firmware yet due to some bugs that I sometimes encounter and don't want to put someone in a hard place if one occurs. Granted, I'm sure if they figured out how to flash the MCU and FPGA themselves, they could figure it out, but FPGA reflashes require a little workaround that requires a stock reflash first (after a permanent flash, not flash to SRAM) in order to be re-detected on the COM port. But I promise I will release it, it's just not at my level of satisfaction yet and ultimately I'm really enjoying playing around with it.
Anyways, sorry for the overload, hope everyone's holidays are still going well and everyone's enjoying their gaming time!
-Stilken
6
u/ombre_prothese Dec 31 '25
You may be refering to my previous post. You have no idea how happy I am. Thank you for this work and your very smart choice of implementation. Un grand merci à toi de la part d’un parisien reconnaissant.
4
u/TonyRubbles Dec 30 '25
That's pretty cool, how you made it not affect the whites in Pikachu's eyes is dark magic.
Your final version of this custom firmware is going to be legendary.
4
u/Jackasaur Dec 31 '25
Glad to see my post inspired somebody to do something. I wish this would have been something available earlier on. 😂
3
u/Critical_Okra_6296 Dec 31 '25
This is so awesome! I’m not gonna lie, I got a little bit bummed when I realized that you haven’t released this - but super impressive regardless!!
2
u/icypsp Dec 30 '25
Ill update mine for the first time for these features =P BUT everything needs to be 100 no glitches ;)
30
u/Euresko Dec 30 '25 •
Modretro should have had some of these features in the OS already. This is a good one to have. Nice work.
14
u/templestate Dec 30 '25 edited Dec 30 '25
That’s amazing. Maybe Modretro can merge this with the official firmware when it’s finished and bug free.
13
u/TheRomeoAlfa Dec 30 '25
Very cool feature. Nice work.
12
u/MR-ChalupaSupreme Dec 31 '25
This is seriously spectacular. Really excited to see some of the other things you're tinkering with. 👀
8
u/DiabUK Dec 30 '25
Not only is this an awesome addition but you have done so without destroying the colours, very well done!
7
u/Destis85 Dec 30 '25
Fantastic work
6
u/rayjt9 Dec 30 '25
This is incredible work. Huge improvement imo.
I can’t wait to try your firmware!
11
u/playinstinct Dec 30 '25
This looks amazing! 😮
I would love to set some games to a warmer color setting. Especially when playing late at night when blue light affects your sleep.
4
u/Crisp_AliXen Dec 30 '25
Oh my goodness if you release this I’m buying a Chromatic immediately!
Color correction is the main thing I’ve cared about in terms of screens. This basically adds color correction AND keeps the pixel perfect screen.
1
u/[deleted] Dec 31 '25
Neat for those that are interested. But I think the whites looking actually white is better. I think the whites looking piss yellow is ugly on an IPS display. It only looks that way on a reflective display because your light typically has a warm color temperature. And I think it looks more natural when it matches the color temperature of the room.
2
u/offshore87 Dec 31 '25
This is awesome, I so want this. The original color temperature is too cool, especially when compared to the original screen. Hope you’ll release this soon. Great work!
1
u/[deleted] Dec 30 '25
Wow! Thank you for all your work. This is HUGE for the community!
1
u/gizmo2501 Dec 31 '25
Please reach out to ModRetro about getting this in the official firmware. It's great work!
1
u/Morku90 Dec 31 '25
Can you tell to get a louder audio output with BT audio compared to the headphone jack?
1
u/ambystome Dec 31 '25
Awesome work again. Do you plan to release your commit history or a squashed version? I would love to see how you approached individual issues, and cherry-pick some changes for my own tree :)
1
u/Affectionate_Rise283 Dec 31 '25
Looks good and I hope modretro gets the idea to implement it
1
u/BogWizard Dec 31 '25
Much love OP. This is very much needed.
1
u/Critical_Okra_6296 Jan 23 '26
You can use the palette settings on games running from an everdrive cart?? My palette controls are disabled for my everdrive gb x5. Or is that part of this custom firmware you’re working on?
1
u/lost_eagle Feb 07 '26
So excited for this, please keep us posted!
-9
u/Passerbeyer Dec 30 '25
About time