Ok, I need help from more experienced folks again. My MoonSound XM routine is working nicely with the Yamaha ROM samples, and even with custom samples in OpenMSX, but not on a real machine. I've tried all sorts of variations and rediculously long waits, but all I'm getting is weird noises from my custom-loaded samples. What am I missing here... Let's see the facts:
- In OpenMSX, everything is fine. Yamaha ROM songs are OK, custom sample songs are OK, mixed ROM+custom songs are OK.
- On a real machine (Sony HB-F1XV MSX2+ with regular Z80), Yamaha ROM sounds are OK (tone/wave number 0..383)
- On a real machine, custom samples just play noises.
- I have verified, on a real machine (as well as OpenMSX), by reading all the values back from OPL4 wave register 6, that the PCM values and headers are actually being transferred correctly to MoonSound's memory
- Before starting to upload sample and header data, I set the OPL4 wave register 2 to 0x11, and after uploading I set it to 0x10. Otherwise the custom samples wouldn't work even on OpenMSX (because the emulation checks for bit 0 being set)
- If I don't set register 2 to 0x10 after uploading, then the real machine only produces short snapping sounds. The spec says that if it's in memory read/write mode, then there's no sound production, and I can verify that. (OpenMSX doesn't emulate this no-sound-mode by the way)
What might be missing? Is there some additional register I need to set, or otherwise my custom samples won't work on a real machine?