Circuit Breaker

I’m busy with stuff so not much to report. I had to restart Rhea PCB design as I’ve decided to try a different MCU – it’s a bit more expensive but has more RAM and smaller package, both of which are useful for this project.

This is Rhea V1.5, it’s not pretty but works great so far:

Rhea V1.5

Obviously it was never intended to be permanently installed inside Saturn (though I guess it could be with some glue gun help).

There have been some questions about that so let me make this clear: Rhea is not going to be faster than original Saturn drive. Maybe a bit due to almost instantaneous media seeking but that’s it. Unlike Dreamcast where data bus is faster than drive, Saturn is limited by its serial protocol – which is set to exactly 2x speed and that can’t be changed.

Road to hell

I’ve been getting more and more emails from people who bought and tested 64GB+ cards.  It occured to me that rather than having to retype this every time I should just make a public post.

Yes, I know SDXC cards work. If formatted to FAT32 that is, preferably with SD Formatter. However, GDEMU was not designed with that in mind and while it seems to work for most people, for some it just might not. I cannot test every brand and model of SD cards, and there are some that don’t behave nicely (like the Transcend Class 10’s) and there’s nothing I can do about it. I don’t want people buying expensive high-capacity cards only to learn they don’t work well, or at all. Therefore the official support ends with 32GB SDHC cards and it’ll stay that way. If you feel lucky and want to try something bigger, you’re on your own.

Obviously for bigger cards the current limit of 64 folders is too low. I’m going to skip the usual rant on design choices I’ve made – you want the limit to be 99+, you can get it. For a price. Right now GDEMU does a prescan of the card folders and can gracefully skip holes in numbering. With more folders both the prescan and the storage of results get too costly, so will have to go. Scanning on keypress would introduce too much lag with many folders, so basically it would become a dumb “try N+1, wrap back to 1 if it doesn’t exist”.

USB support, long filenames, breakfast making – not coming in foreseeable future. Don’t bug me about it.

Cool features

Thanks to people who provided fresh, good dumps, I was able to test few things on Rhea.

First, CD+G playback works now. If the Saturn DAC is as abuse forgiving on all console models as it is on my VA0 there shouldn’t be any issues. And here’s how this stuff looks (the graphics and text comes from the CD being played):

CD+G #1
CD+G #2

Since Rhea is capable of clean subcode output, the bug where the player background would dissapear on non +G discs should not happen either.

Second, I’ve added region auto-patching and it works well. Thus, for Saturn, this will be an option available via INI file (so you can easily force all games to the region of your console). There’s also the idea of adding another solder point to Rhea, which could be connected to the lifted pin of the chip controlling 50/60Hz. This would allow automatic switching. Just an idea for now but I like it.

Third, I’ve run quite a few games already and haven’t had any issues. Which bodes well for the next HW revision. I think I’m going to make a dozen or so 20-pin only models for those interested, the 21-pin version will require proper testing first.

Saturn rings

After some initial issues Rhea has been upgraded to V1.5 and works pretty stable now. As in boots everything I throw at it. Which brings me to subject at hand: Many of the existing images of Saturn CD-ROMs are pretty poor.

I’m going to have to put a line somewhere because I don’t want users to complain about the device not working properly when the problem is with the dump itself. Only certain formats will be supported, and as always I urge you to make your own dumps. It’s not that complicated, Saturn discs can be read on a normal PC drive – no special hardware needed.

Supported formats:

CDI – Preferred. Needs to be either RAW or (optional) RAW+SUB format. CDIs include pregaps (index 0 parts of the tracks) by default which is good.

MDS/MDF – I’ve just added preliminary support for this format. The only few images I have are in RAW+SUB format, but just RAW should be fine as well.

BIN – Only for single track images, needs RAW sectors. Since I haven’t seen a single track game yet I don’t think this one will be of much use – perhaps for homebrew.

I’m looking at CCD/IMG format now, I might add some limited support for that as well since it’s popular. Please note that having the dump in supported format doesn’t yet mean it will definitelly work – the file format is one thing, and the quality of what’s actually inside is another.

Not supported:

CUE – Anything that depends on CUE will not work. I’m not even talking about ISO+MP3 tracks, which are the worst, but the whole format in general. There are many ad-hoc extensions to the so-called standard CUE, and the tracks can be multiple files, single file, RAW or MODE1, even compressed via MP3 or FLAC, or converted to WAVE instead of raw audio data. Single file “pregaps” are just zero-filled space even for data tracks. And to add insult to injury the MSF address of each track is always +2 seconds, pregap or not, because it was more funny this way.

Some CUE based dumps can be converted to a more sane format and will work. I’ve tested it by mounting the image in Daemon Tools Lite and re-ripping it with DiscJuggler to CDI.  For some reason DJ doesn’t see WinCDEmu virtual drives, so that’s why DT. That’s just one possible option, and obviously if the dump was bad to begin with this will not produce a working image. But might be worth a try if your disc is damaged and unreadable and CUE is all you’ve got.

It’s always best to stick to properly made dumps, even if these need to be converted you know the data is good. I can’t guarantee correct operation otherwise.

Last thing – turns out the 21-pin Saturn drives come in at least 3 versions, with some rather important differences between them. While the idea is to be able to support all models, so far Rhea can only emulate 20-pin drives. That raises 2 questions:

Would any of you be interested in buying an earlier, 20-pin only model, or do you want to wait for a more final version. This will still take weeks at best mind you, assuming I can make a universal emulator at all.

There’s going to be some soldering involved – at least to connect 5V power supply (so 2 wires) since every drive has a different connector for that and it’s not economical to add all of these. Not to mention you’d be limited by the length of original wires. With the differences between 20- and 21-pin drives I will also need some form of easy configuration (auto-detection not really feasible), I was thinking solder pads that can be connected (or left open) via a small solder ball. Easy, but somewhat permanent. Proper jumpers are another option but this needs more space, PCB height, and I think would only be useful for people who have just 1 Rhea but several different Saturns. A hindrace and potential source of problems if the jumpers loose good contact due to age for everyone else.

What do you think?