Wohlstand / OPN2BankEditor

A small cross-platform editor of the OPN2 FM banks of different formats (Downloads in README below)
GNU General Public License v3.0
42 stars 8 forks source link

YM2151 raw importer #74

Closed jpcima closed 5 years ago

jpcima commented 5 years ago

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

jpcima commented 5 years ago

don't merge it yet, while I figure out the key-on correctly.

jpcima commented 5 years ago

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

jpcima commented 5 years ago

@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.

jpcima commented 5 years ago

Now OPM works. Next is to check the CI error. While I think of it: support the VGZ files (which is vgm.gz)

jpcima commented 5 years ago

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.