Author Topic: Genesis: SN76489 levels in comparison to the OPN2 AND WITHIN THE CHIP  (Read 2186 times)

Offline mihaelkyeah

  • Full Member
  • Posts: 316
  • Learn the best from all worlds
    • YouTube channel
    • Email
This was an issue that I've brought up in the past, but I didn't bother on making enough 'documentation' to back up my requests/concerns on the matter.

My main concern with the first time I brought up this issue, which is what I didn't word quite right, is this:
the balance between the two chips, in DefleMask, sounds closer to that of VGMPlay (using the MAME core). But Kega Fusion (which is, by now the closest thing I have to real hardware at hand, as I've been told it's the most accurate emulator in sound) plays square waves a bit louder than DefleMask and VGMplay do, and white noise (particularly the A#7 note with chromatic white noise enabled) sounds MUCH QUIETER.

So it's no longer a matter of just balance between the FM and PSG chips, but also, the four channels inside of the PSG chip alone appear to have inaccurate volume relations, between the square waves and the noise.

I made a short .dmf example to try this both in XMPlay (using in_vgm 0.40.7) and in Kega Fusion. I added that extra loud FM note for the sake of comparison and also to have a reference to normalise all the WAV outputs.
I attached these experiments in a zip file for you to take a look (WARNING: the WAVs are all normalised so they're going to be pretty loud).
And here are the audio renders for a more instant comparison (I only left one channel visible because there's no stereo panning so it makes the same):

• This is what the direct WAV export from DefleMask looks like:

The square and noise volumes look about the same, but is this right? (note: the volume of the square wave in this was approx. -11.5 dB)

• This is the WAV log from Fusion:

You can notice right off the bat that the same white noise is much quieter than the square wave. (note: the volume of the square wave in this was -9.24 dB)

• This is the WAV export of the VGM logged directly from DefleMask:

This is the most similar one to the direct WAV export from DefleMask.

I also logged a VGM in Fusion and then exported it to WAV on XMPlay - it looks and sounds pretty much the same as the first and the third.

• This is the WAV export of the VGM I logged in Fusion, but with Maxim's core:

Maxim's core seems to be closer in the balance between square waves and (bright) white noise (although the whole chip seems to be a bit quieter in relation to the OPN2 than it is in Fusion), but it sounds really weird in pitch, kinda close to what it sounded like in earlier versions of DefleMask.

In conclusion, I can assume that it's either VGMPlay acting up, or the MAME core for the SN76489.

Then again, when you go to the settings in the in_vgm menu, the Sega PSG appears as SN76486. That 6 instead of a 9 at the end always got me wondering what was going on. It's a shot in the dark but maybe that's got something to do with it, the Sega PSG being treated like a different chip?
(I might be talking about what I don't know here, it's just a guess.)

So, should I request Delek to use Maxim's core (about 2.6 dB louder) for the PSG, should I wait until either MAME's or Maxim's cores get better updates, or should I directly contact one of the two?

Thanks in advance!
« Last Edit: November 13, 2016, 09:31:44 pm by mihaelkyeah »

Offline Raijin

  • Member
  • Posts: 140
Genesis: SN76489 levels in comparison to the OPN2 AND WITHIN THE CHIP
« Reply #1 on: November 13, 2016, 04:52:23 pm »
Fusion is not most accurate. Genesis Plus GX has more accurate sound, and for the time being, Exodus has the most accurate sound emulation. There is also a new Genesis emulator being worked on by Byuu (the same person that created the cycle accurate BSNES), so we're bound to see even better accuracy. I am expecting it to be the most accurate whenever it is fully completed.
There is also a VST called RYM2612 that claims to be cycle accurate, but I can't say anything about this one. I don't know if it includes the PSG with it.

I helped Delek get the volume levels this way, because the core it uses is the same as VGMPlay, so whenever there is a better emulation available that Deflemask/VGMPlay can use, I will once again help Delek to get the levels accurate to it.

There is, however a big issue still with the PSG, which I reported a bug for, and has yet to be seen by Delek, I think.
It seems the PSG is slightly off pitch as the YM2612 was before. A simple check would fix that though.
Also, there's some issue with the noise retriggering, even though it shouldn't.
« Last Edit: November 13, 2016, 04:55:32 pm by Raijin »

Offline mihaelkyeah

  • Full Member
  • Posts: 316
  • Learn the best from all worlds
    • YouTube channel
    • Email
Genesis: SN76489 levels in comparison to the OPN2 AND WITHIN THE CHIP
« Reply #2 on: November 13, 2016, 09:29:58 pm »
I would have thought Maxim's core was a more reliable reference (also being the one most alike Fusion) since I take it he's a big SMS enthusiast. And I had that reference about Fusion being the most reliable emulator, from Delek, and from Heavy Viper (he does real hardware recordings so I thought his feedback would be most relevant).

I'll look forward to trying my ROMs in Retroarch (which I believe uses the Genesis Plus GX core) and Exodus and do comparisons.