openMSX / openMSX

the MSX emulator that aims for perfection
http://openmsx.org
431 stars 96 forks source link

OPLL emulation core imprecise #1474

Open denjhang opened 1 year ago

denjhang commented 1 year ago

https://user-images.githubusercontent.com/61811583/210694811-6f6cf7fa-2d3b-4728-af0e-807b50196224.mp4

https://user-images.githubusercontent.com/61811583/210694827-11bec1d3-9ecd-419e-80e6-2102e646e37e.mp4

Obviously, there is a problem with using openmsx to play the sound of cs6.opx, and the sound of the 7,8,9th channel is incorrect. OPX-MPK.zip

MBilderbeek commented 1 year ago

It's not obvious to me. In RHYTHM mode the OPLL uses these channels for drums. What exactly is wrong?

grauw commented 1 year ago

Is WinAmp playing a recording from a real MSX, or is it using a plugin?

If it’s using a plugin, isn’t it the emulation in the WinAmp plugin that is incorrect, and have you tried on a real MSX?

denjhang commented 1 year ago

This track actually uses a special drum channel pattern, which I think should have been discovered long ago. Winamp currently uses MSXPlug, don't doubt the accuracy of this plugin, because I have actual MSX2+ recordings. Note that this recording is not fake, you can listen carefully to the blank segment before the music appears, I deliberately recorded the background noise of MSX2+. 220813_1517_01.zip

grauw commented 1 year ago

Thanks for providing the real hardware recording for comparison.

To be honest they all sound a bit different to me... If I listen to the high pitched rhythmic hi-hat:

I had a theory that maybe this was a timing issue with the OPLL and the software running on turboR in R800 mode, since the Nuked.YKT core is sensitive to timing like a real OPLL. However I tried changing the machine to FS-A1WX and it sounds the same. Could still be a timing issue (maybe Nuked is too sensitive) but at least not an as obvious one.