I’ve been sitting here unsure what to post for some time now. BlastEm is the one that’s more correct here. Genesis Plus GX is outputting the raw internal RGB levels, while BlastEm is outputting ones that were measured from a real console and scaled between 0 and 255.
To save you some reading, here are some key points from the thread that Jamirus linked:
From a user who I don’t recognize, who apparently has done some work on MAME.
Some decaps have been posted, likely after this was posted. They just haven’t been fully analyzed.
From another user who I can’t find any info on. Similar to what I wrote here about ekeeke’s post.
When I use Genesis Plus GX on my Wii with my CRT, it definitely looks too dark, to the point where I have to turn up my brightness and over-brighten the blacks a bit to fix it. Elsewhere, I’ve been using BlastEm, or at least BlastEm’s color palette, whenever possible. BlastEm is much more convincing.
From the author of BlastEm.
On that subject, according to the 240p test suite, the Genesis’s black level is about 6 IRE, which is not quite at the standard 0 or 7.5 IRE levels. BlastEm is just normalizing between 0 and 255, not taking into account the black level, the gamma (a.k.a. EOTF), color correction circuits, different white points, etc. Dogway’s Grading Shader goes as far as to account for reflectance. How far you want to go with color accuracy is subjective.
From birdybro, who’s owned several MegaDrive consoles and has ported a few FPGA cores to MiSTer:
Birdybro included video captures of several MegaDrives from an article to show their differences.
Lastly, from the author of Genesis Plus GX:
To this day, Genesis Plus GX outputs the console’s raw RGB, and BlastEm outputs measured values normalized between 0 and 255. From the games I’ve played, I strongly recommend BlastEm’s color palette. However, BlastEm’s palette can make some games look washed out, so I recommend doing a gamma correction, using a CRT shader or some other shader.
BlastEm doesn’t have any settings ported over in its LibRetro core, except for some obscure ones in RetroArch’s own settings, such as cropping overscan. So, something you can try is using a shader to do the Genesis color palette correction, so that you can get BlastEm’s color palette on Genesis Plus GX. First, there’s Dogway’s Grading Shader (misc/grade.slang), which has its “MD palette” setting, but the result is a bit different from BlastEm’s output, though I’m not exactly sure how. Alternatively, I have put together my own shaders, called patchy-ntsc and patchy-color, which directly copy BlastEm’s lookup table for the palette. Please don’t use the version currently in shaders_slang, but instead use the latest version from my thread. That said, my shaders emulate a very heavy color correction from consumer CRTs which looks nothing like most developers wanted you to see, so make sure to disable that by setting the “R-Y/G-Y/B-Y formula” or “Demodulator” to 0. My shaders are currently a pain to learn how to set up, so it’s probably more worth your time to just use BlastEm.
I definitely wish I knew more technical details about this, but I am definitely not an expert on this subject, and I am still making efforts to learn in my limited spare time. I’ve coded shaders based on the information I’ve read online, but those shaders are definitely unfinished in terms of user-friendliness, clean code, performance, and accuracy, as I haven’t had so much time lately to fully research the topics and code my projects. So I emphasize, I’m not as knowledgeable as I sound from the posts in my thread.