libretro / snes9x2002

Snes9x 2002. Port of SNES9x 1.39 for libretro (was previously called PocketSNES). Heavily optimized for ARM.
37 stars 46 forks source link

Fix audio pitch issues (FF6) #29

Closed jdgleaver closed 5 years ago

jdgleaver commented 5 years ago

The 'old' snes9x cores (2002, 2005 non-plus) are notorious for murdering the soundtrack of Final Fantasy 6 (music samples play at incorrect pitch levels). Popular stand-alone emulators based on old snes9x versions do not suffer from this problem, so I performed a diff with various other repos and found a very obvious and consistent discrepancy.

This PR changes a single frequency calculation, bringing the core into line with the likes of snes9x_3ds, Snes9x EX+ and CATSFC. This fixes the music in Final Fantasy 6 (I checked the waveforms from snes9x2002 and bsnes in Audacity, and they're pretty close now), and it seems to improve a number of other games too. (This is particularly nice for 3DS users, since snes9x2002 is the only SNES core that runs full speed on n3DS)

This same fix is required for snes9x2005 (non-plus) - I'll make a PR for that repo soon.

jdgleaver commented 5 years ago

Aw heck, I accidentally added the compiled shared object...

Let me fix that...

EDIT: OK, this should be fine now...