Adds support/mocks for H8/510-based devices (and more)
This PR is meant to be a public work in progress to add support for other Roland devices, as by doing this work I discovered a lot of details that could be useful to be made public.
✅ RD-500
Boots, audio works, screen works, midi works, buttons not implemented yet. Can boot and go directly to the demo songs.
✅ XP-10
Boots, audio works (partially tested), button controls work, midi works. No waverom dumps yet.
⛔️ RA-30
Most of memory map figured out but still no screen, controls or audio. It's based on the GP-4 chip so no further emulation needed, but service manual not publicly available so guessing the button switches/leds matrix will be needed.
🚧 SC-88
Boots, buttons work, no audio, slow emulation (timer problem?). Requires reverse engineering of the XP chip.
🚧 SC-88VL
~Should be extremely similar to the SC88, but doesn't boot yet.~ Now boots properly! Memory map and sub mcu stay the same. Requires reverse engineering of the XP chip.
⛔️ JD-800
H8/532 internal ROM is being dumped soon. Requires reverse engineering of the EP, TVF, MEQ and DSP chips.
Hey! Wanted to know if there were any updates on this?
@rockmanomega I've got the SC88 and SC88pro that can boot and play some basic sounds. Unfortunately the XP chip they use is very complicated. I got the LSP chip used in the SC88pro effects working though.
Apart from those, I got the JD800 to boot, it also plays samples already but there is some bug in the MCU emulator I can't figure out which is preventing it from working correctly. As for another H8/510 device, I have the Boss SE-70 fully working, complete with the DSP emulator.
@rockmanomega I've got the SC88 and SC88pro that can boot and play some basic sounds. Unfortunately the XP chip they use is very complicated. I got the LSP chip used in the SC88pro effects working though.
Apart from those, I got the JD800 to boot, it also plays samples already but there is some bug in the MCU emulator I can't figure out which is preventing it from working correctly. As for another H8/510 device, I have the Boss SE-70 fully working, complete with the DSP emulator.
Nice! I recall last that you didn't have the effects working yet so this is a big step in the right direction. Crossing fingers here that the XP chip can be eventually understood (A passing glance and it looks like a 32-bit RISC CPU? Wonder if there's much if any documentation on it?)
@rockmanomega not really, I think it's another special purpose chip like the GP from the SC-55, with the differences of being more parallel (to play double the voices) and having a programmable DSP, whereas the GP chip has an internal ROM with the chorus/reverb program. You can prove this by looking at what the SC-88 ROM sends to the XP chip when changing parameters: the first half of the chip address space changes according to the played voices, containing the sample playback addresses, pitch and envelopes. The second half instead contains a DSP program and changes with the effects parameters.
The die of the chip is unfortunately very large, at least 2x the complexity of the GP chip, and would require too much time to be traced.
I think it could be possible to reverse engineer the DSP without the decap by sending custom programs to it and reading the result, similar to what the people from MAME have done for the Yamaha chips or what I've done for the Roland CSP/LSP chips.
@giulioz I agree with the MAME approach to tackle this. I've checked and it seems that a few maintainers over there are now actively working on getting synthesizers working (including a few Akai samplers, and Ensoniq machines, as per https://www.mamedev.org/?p=557) so perhaps a collaboration with their team is the best shot at getting this to work?