A typo broke the volume balance in the last CPS1 update, but I thought it was something else. So I started looking at ways sound may not have been accurate. Eventually, I found the typo, I increased accuracy, and I re-balanced the volume in all cores. 20 cores have been updated.
NOTE: CPS1/CPS1.5 files in the repository operate at 48MHz. Find attached versions at 96MHz.
YM2151/YM2203 Accuracy
Yamaha counters had an inaccurate design. Long story short, timer B runs on average 1/2 LSB faster than it should. The current implementation matches the original design. This effect would be very difficult to do on an emulator. Thanks to Ace and NukeYT for their help. This should affect YM2612 (Megadrive), but I haven't updated that core yet.
Almost all arcade cores use either YM2151 or YM2203, so this is an important improvement.
CPS1 Accuracy
There is an antialias filter onboard after the PCM chip (see the frequency response plot). I have included this in the CPS1 core. CPS games can change the PCM sampling frequency, but the AA filter should stay constant at 770Hz. This behaviour is correctly implemented.
FX Volume
Although the FX volume was generally fixed in arcade games, it is often produced by a particular chip or channels, and it can be processed independently. I have added to most cores the options to vary the FX volume.
Sound Clipping
I have made an effort to guarantee that no sound clipping occurs. If it ever happens, the yellow LED will light up.
Sound Filters
I have updated the MiSTer framework to the latest version. The sound filter OSD option should work now.
Cores updated
All cores have been updated except for CPS1.5, Combat School and Trick Trap. That adds up to 20 RBF files. Please run update_all or update_jotego on MiSTer to obtain the new files. For MiST/SiDi, download the files from JTBIN.
m.goomba
2021-01-17 23:54:32 +0000 UTCJOTEGO
2021-01-17 17:43:31 +0000 UTCm.goomba
2021-01-17 01:17:45 +0000 UTC