|[hatari-devel] New cycle exact YM2149 emulation
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
after extensive tests on my STF to measure as accurately as possible
some not well documented behaviours of the YM2149, I wrote a new
rendering for sound emulation.
The YM2149 works at 2 MHz, but all internal counters (tone, noise,
envelope) are handled using a 250 kHz clock.
By measuring my STF output, I could also confirm that all counters are
incremented from '0' up to 'period' (and no the opposite as stated in
The YM2149 emulation now does the same, all internal counters are
incremented 250000 per second and the resulting state is used to output
new audio data at the host frequency (for example 44.1 kHz)
This allows to accurately emulate some very specific tone transitions,
as well as some random "phase cancelling" effects (as reported by Troed
in some 7an musics), but overall it's safe to say that 95% or more of
all musics were already correctly emulated and will sound the same.
For now, the code in sound.c uses a "#define YM_250" to enable this new
rendering ; it can be commented to use the previous method in case some
regressions would be reported.
For now, I think this gives Hatari the most accurate YM2149 emulation of
all emulators :)
Next step will be to improve the filters, as it seems the sound is too
"attenuated" in many case. I will capture some real music wav recording
to be able to compare with Hatari output and see where and how it could