Genesis Plus GX, Where is the Audio Lowpass Filter?


IMO the 3-band EQ in the Core will clutter the options menu with extra features that have nothing to do with Genesis emulation.
Extra audio filtering or effects have their respected place but they should not be part of any core unless it is directly related to the emulation, especially when Retroarch has such vast external filtering/shaders support.
Why not a 31-band EQ or Parametric EQ or CRT-Royale in GenPlusGX then?
IMHO skip the 3-band EQ, it does not have its place in GenPlusGX,

If you ask me, having a MONO feature in GenPlusGX is much more important than EQ because Model1 had only mono sound from the back of the console and many TVs back then only had one speaker.

As for sampling rate conversion, why not let GenPlusGX follow the user set sampling rate in Retroarch? Most keep it at 48kHz anyway.
Nestopia runs at 48000Hz default and I don’t see any brickwall filtering behavior like in GenPlusGX.


I agree that exposing the full EQ is probably unnecessary in light of the frontend’s DSPs. There are other frontends that don’t have such things, but I still don’t know that it’s worthwhile beyond just exposing the lowpass range like we’ve already done.

I don’t think there’s any way to tell the core to match the frontend’s native sample rate, unfortunately.


Sampling rate conversion does not take that much power, even on a low end android device especially from 44.1 to 48 or vise-versa.
Unfortunately I do not have the means to compile a test version with 48kHz sampling rate, but I will gladly test it if someone will be so kind.


You can try this one:

(same link as above, I just updated the file in my hosting)


Thanks hunterk, the analyzer measures the same, it still has the steep brickwall filtering.
Anyway, I don’t think it matters that much above 15kHz as it is 30db below other fundamental sounds (especially with the lowpass filter) and barely audible if at all.
As long as the lowpass filtering is close to the real console up to 12kHz, it is more than good enough.


Thank you for the new release with MONO option!

Now people can play Genesis Plus GX like it’s 1991 with monaural sound like with the RF Adapter which was bundled with the original Model 1 and Model 2 package.
Actually the Model 1 (1989-1993) never came with a composite cable in the box only with the RF adapter, and if one bought separately the composite cable it was mono too.
I don’t recall using or seeing my friends use the stereo jack in the front of the Model 1 with headphones nor to connect to the TV.
Model 2 (1993-1997) had stereo output at the back of the console and it too was never bundled a composite cable, only the RF adapter, and I don’t remember marveling at the stereo output since the TV was so small and far away that it sounded Mono anyway.

So you see, the MONO option is important for authentic sound in the emulator.
Thanks again for including it.


Thanks, hunterk and James-F!



From 1990 to 2008 I used a 13" TV with one speaker. I had no idea wat stereo truly was until I was already in my twenties. MONO4LIFE


My aunt had a Model 1 and this Striker third party pad which had a headphone jack extender in it:

I remember grabbing a pair of her headphones and sitting in a big comfy chair using that to play something. Probably Sonic 2 or Fantasia (ugh). I don’t know if I ever got stereo out of my own Model 2. I eventually got a 32x and used the composite cable that came with it, but I think that only had one white audio cable.

I was playing Battle Mania 2 last night with the lowpass filter enabled and the stereo music was sublime. Not gonna subject myself to mono for nostalgia, thanks. One of SkyHighGam3r’s posts about BIOS screens did get me to enable the TMSS “Produced by Sega” screen though :stuck_out_tongue:


That’s super-weird. I can’t find any info about the audio signal being accessible from the controller port, but it must have been so for that controller to exist.


No, that controller just had a 3.5mm jack hanging off the controller plug you plugged into the headphone jack in front of the system. So it was basically just an extension cable built into the controller.


Ohhh, lol that makes more sense.


Take that Sony, Sega did it first! :smile:


@James-F Sega did everything first hahaha!

@Awakened Yes… come to the dark-side mwahahahaha Also, that controller is pretty awesome. Then again, the Genesis is badass for having a headphone jack in the first place lol



ekeeke added a new cycle-accurate YM2612 emulation to Genesis Plus GX.
This new core called Nuked-OPN2 which is created by nukeykt.that reverse engineered the OPL3 (YMF262) and OPN2 (YM3438), and as of now this is the most accurate (exact) representation of these Yamaha synth ICs in code.

His OPL3 (YMF262) code is already part of DOSBox fork called Dosbox ECE, and it is indeed more accurate than the stock ones in dosbox (fast, compat).
I can attest that the stock OPL3 cores in dosbox fail in intense testing (lots of negative feedback) and differ in frequency response, while NukedOPL3 matches the real hardware in all measurements.
I have more than a few Sound Blaster cards myself which I thoroughly tested with Adlib Tracker 2 in my Pentium machine to DOSBox with NukedOPL3, and DOSBox stock cores fail where NukedOPL3 is spot-on to the hardware.

The current MAME YM2612 is good, but it is not cycle-accurate as NukedOPN2 core.
Think of it as a step forward to cycle-accurate emulation of one of the (important) components of the Genesis.
I hope people can see the benefit of having it as part of Genesis Plus GX.

@ Libretro GPGX Devs,
If you will, please merge this new commit into the libretro GPGX.


Oh good. I was hoping eke would merge that. I was planning to add it as an option to our fork if eke didn’t want it for whatever reason, but this is much better/easier.

We’ll get it pulled down to our fork soon.


I think you should let nukeykt and ekeeke iron out some bugs first, as there are some strange stuff going on currently when changing settings in the option during OPN2 playback.


Maybe the new sound chip commits deserve a new thread. Out of curiosity I went and compiled the new stuff.

The new core option has two values which don’t require restarts. Changing from ‘mame’ to ‘nuked opn2’ will cause some ‘voices’ to go missing. Eventually it’ll fix itself e.g. if you’re in a sound test menu, play the song again and all the voices will be present again.

Personally, I couldn’t hear significant differences between mame/YM2612 and nuked opn2/YM3438. My test cases were Sonic 1 (because of nuke.ykt’s demo on YouTube), Golden Axe II sound menu and Streets of Rage 1 sound menu.


wertz mentioned that it uses a lot more CPU cycles, too, so keeping the MAME-derived core by default is likely, I think.


I don’t know about a lot, because I still see CPU usage of around 3% on my desktop machine.
I guess the difference is much more significant if running retroarch on a PSP or a Phone or other handheld devices.

Same with the SINC resampler, default to low setting for less powerful handheld CPUs but let the user to have the more accurate option with more powerful desktop/laptop machines.

I don’t see a significant difference between Higan and Snes9x, but it most definitely there.
As I explained, like the OPL cores in dosbox, the native cores do a good job but fail in torture tests where most games don’t go into, but nuked-OPL3 matches the hardware.
Same with Snes9x, it will fail with less popular games that use non-standard programming, but Higan will run them like the hardware.
It’s your choice, and it’s good to have it.