Closed jpcima closed 5 years ago
don't merge it yet, while I figure out the key-on correctly.
The problem is maybe a generic one of the raw chips. The files don't give instruments, or few, because key bits are 0 when analyzed. If note-on checking is skipped, instruments are obtained, (among numerous mute ones).
This is a vgm pack which has been tried. https://vgmrips.net/packs/pack/strike-fighter-sega-y
@Wohlstand VGM reader is bad. look at this case.
It encounters this data.
0xC0 | bbaa dd | Sega PCM, write value dd to memory offset aabb
It will meet this PCM opcode, not support it, and will treat following bytes as commands.
Now OPM works. Next is to check the CI error. While I think of it: support the VGZ files (which is vgm.gz)
Fixed VGM import in some other cases. Data offset is to interpret since the field where read, not beginning of file. (and $C is not a special value) Otherwise, file reading can start with junk data at the incorrect position.
I split RawYm2612 into a .cpp/.h pair, and I add the license headers.
In a work that will follow, I will make a simulator of OPM register protocol which structures similarly.
71