To avoid cluttering the discussion in norakomi's thread, I'm making a new, based on a comment there:
https://www.msx.org/forum/msx-talk/development/wait-15-t-sta...
Really what matters most is that people count the same way when they specify wait times. In my experience people and documents always specify the time between the start of /IORQ signals. For example the 12-cycle wait that the YM2413 documentation requires after address writes, it means that on a standard MSX Z80 you can OUT address and data back-to-back.
Thank you, once again Grauw! I was not aware of this. With this newly aquired knowledge, I had to go straight back to my music-player and apply this to both address- and data-writings. I was able to make a tight and perfect 84-cycle-loop. The great thing with this is that it works perfectly on my (physical) a1-wsx. The sad news is that openmsx introduces "static" or a little noise :( I *can* add two cycles extra (with jp => jr), and music sounds good. But as the start of many of my tunes have more than 50 register writes, I am losing over 100 cycles on this (in an otherwise tight and fully booked frame "in game" :-) )
I wonder if this is inaccuracy in openmsx (missing timing by one cycle, perhaps?), or if this just reflects that there are other YM-2413 implementations that are a bit slower, which I am not aware of (like I just realized is the situation amongst the different VDPs out there). Anyone who knows?