picodrive
picodrive copied to clipboard
Feature request: 32X+ support!
Hi @irixxxx!
There are some promising advancements made in the hacking community for 32x games, namely support for audio CD quality music in 32x games, a.k.a. 32X+!
Could you look into the feasibility of implementing such a feature, like Genesis Plus did for MD+ and MSU-MD?
Thanks
Links to newly released hack - DOOM Resurrection (32X+): https://www.romhacking.net/hacks/6269/ https://www.zeldix.net/t2466-doom-resurrection-32x
This isn't coming anytime soon. Picodrive isn't prepared to handle 2 different media files in a run. The same is BTW valid for msu.
@irixxxx It was kind of wishful thinking (as no emulators supporting MSU-MD and MD+ support 32x games right now)…
Thanks for your answer!
I'll put it on the backlog.
There's now MSU support. For MD+ the MegaSD hardware needs to be supported. That's not going to happen in the near future since I don't have one.
With Picodrive 2 on powerkiddy Q90 at 960Mhz, all 32X games runs fine between 50 and 60hz
With Picodrive 2 on powerkiddy Q90 at 960Mhz, all 32X games runs fine between 50 and 60hz
Yes, I checked this, and a good load runs at fullspeed using the "fast" option profile.
This ticket is however about 32X+, a variant of MD+ for the 32X to add CD audio to 32X cartridge games. It's still on the backlog until I somehow acquire the additional MegaSD hardware for testing purposes.
It's still on the backlog until I somehow acquire the additional MegaSD hardware for testing purposes.
You can also use the Mega Everdrive Pro for testing, it supports both MD+ and 32X+ as of a year or so ago.
I've done a basic implementation using the old (and arguably incomplete) dev manual for megasd 1.04 firmware. I couldn't find a newer version of that pdf, and it has apparently been completely removed from the manufacturer's web site. A lot of features can't be emulated correctly, fading is not supported at all, and currently looping information from the cue file is not processed. Also, PCM is not implemented as well as the enhanced ssf2 mapper. However, most patches only require starting of audio tracks with or without looping, and that's basically working.
Most games from the md+ library seem to work OK at a quick glance, but 32X Doom Resurrection is not, and it won't be for now. It requires a CD bios to be loaded for whatever reasons, and Picodrive has currently no provisions to load a bios in MSU/MD+ mode.
Remember however that I can't verify the correct behaviour since I don't have the megasd hardware.
It just so happens I have the last MegaSD dev v2 manual that was released before the download for it was removed from the server.
https://www.mediafire.com/file/og9sbbjloln0fsd/MegaSD_DEV_Manual.zip/file
That's the same one I got from the corresponding issue at +gx. It's incomplete, at least command 0x27 is missing from it (used in d32xr), and from the numbering I'd deduce there are more commands missing. Also, the description appears imprecise, while it hints at the result register to be 16 bit the d32xr implementation has it at 8 bit for command 0x27
I can't conduct any more tests, so that'll stay as it is for now. Nothing is tested, apart from commands 0x10, 0x11, 0x12 and 0x13, since the limited examples I have don't use any of the others. Parsing the loop instructions from the cue file is a lot of additional work I'm not going to do now, so the track looping is probably wrong for some patches. I really can't imagine who came up with that bizarre idea.
I've hesitated rather long whether I should implements this at all. I'm generally not very fond of the idea. I think MSU-MD has a much better concept since it works on real hardware and doesn't need such a cumbersome implementation, especially with the documentation missing a lot of details.
Parsing the cue file and conveying the data to the megasd emulation wasn't that difficult in the end. However, fader, enhanced ssf2 mapper, and PCM access aren't going to be implemented until I see it used in some patch.
Added with de5da52, 5521eda, dd7882a.