Stovent/CeDImu

Not clear you need to "reboot core" after selecting a BIOS

arp242 opened this issue · 8 comments

After selecting a ROM in the settings you need to use "emulation -> reboot core" to actually load it.

This took me quite some time to figure out; there's a bunch of settings on that settings page I don't really understand, downloaded some .rom files from archive.org and some other places that I'm not even sure are valid, etc. I thought I was doing something wrong because it never managed to load the BIOS.

Turns out I just needed to reboot the core; but I had to read through the source to find that out. Do'h!

A little message on the settings screen would be helpful, or maybe a button, or just doing it automatically on save.

Also: it might be helpful to give some information about what ROMs are expected; will any ROM do? I downloaded a bunch, but auto-detecting the board always fails (always returns Fail in the Boards enum), so I tried some combinations of various ROMs and manually selecting boards, but then it segfaults when unpausing (that's a different issue, but I'm not sure if that's due to some invalid setting or an actual bug; need to look in to this).

Okay, I figured out that cd490a.rom and Mono4 should be a valid combination
from cdi490a.mdl at cdi-emu; auto-detect works with this (just FYI). Guess I didn't try that one before.

Yeah the GUI is not very user friendly yet, please continue to report those things so I can see what's unclear for the users.
CeDImu still expects people to be a little knownledgeable on CD-i systems because there are so many differents BIOSes that I have to let the user help the emulator a bit, hence why you can select the board type and the size of NVRAM in the options.

For now only the Mono3 and Mono4 based systems works, and you have the 490 that uses it.
The 205 can be loaded too but it's implementation lacks some necessary chips so it's not usable for now. It also crashes for the same reason, I'm aware of it.

I probably should rename "Load ROM" with "Load disc", should be clearer on what it is expecting.

About the expected ROMs, the goal is to let the user choose himself the system he wants so instead I have a compatibility list in the README.md that lists the state of each system. I have to add the BIOS compatibility directly so users doesn't have to known which kind of board their BIOS has.
I will also add a popup window when loading an unsupported BIOS.

Keep in mind that the emulator is still in very early development, and that it will not be usable by regular users until the first release. I will make sure it is as user-friendly as possible for the first release.

Keep in mind that the emulator is still in very early development, and that it will not be usable by regular users until the first release.

Yeah, that's fine. Actually, my main interest isn't really emulating anything, but rather using it to reverse-engineer this CD-I game from my childhood (Laser Lords, only ever released on the CD-I). Unfortunately, there are very few resources on reverse-engineering things like OS-9 binaries, or even in-depth documentation on them (thus far, I haven't even managed to properly disassemble them) and I figured that getting even very basic emulation running might be helpful as a starting point.

@arp242 really late reply, but is there anything in particular you were after from Laser Lords? I've successfully ripped most if not all of the assets, and had some limited success with decompiling the game code.

Feel free to ping me if you want to know anything :)

arp242 commented

@ogarvey

What I want is to play the game, basically. I played Laser Lords a lot when I was young, although I don't think I ever finished the game.

It seemed like just re-implementing the game as "Open Laser Lords" or some such would be one of the easier ways, since CD-I emulation is so-so and I don't feel like purchasing a CD-I (also the game has some rather less-good aspects that could do with some improving, like the half-arsed platformer things).

It's been a while since I worked on this, but IIRC I managed to extract most assets; that wasn't too hard. The actual game logic proved harder; there's not a whole lot of docs on CD-I or OS-9, the tools I found didn't work, and the tools I tried to write for it based on some PDF docs I found also didn't work very well. All of this is also very much outside of my expertise, so I kind of just gave up on it. My take-away is that you need a lot of patience for reverse-engineering.

@ogarvey

What I want is to play the game, basically. I played Laser Lords a lot when I was young, although I don't think I ever finished the game.

It seemed like just re-implementing the game as "Open Laser Lords" or some such would be one of the easier ways,

I've actually made a start on that at https://laserlords.uk as it happens :D still very basic with a lot to do but it's a start

It's been a while since I worked on this, but IIRC I managed to extract most assets; that wasn't too hard. The actual game logic proved harder; there's not a whole lot of docs on CD-I or OS-9, the tools I found didn't work, and the tools I tried to write for it based on some PDF docs I found also didn't work very well. All of this is also very much outside of my expertise, so I kind of just gave up on it. My take-away is that you need a lot of patience for reverse-engineering.

I've had some success in Ghidra after Phlosion on the CD-i discord shared his scripts, not sure if you're on there but if you are they're worth a look

arp242 commented

I've actually made a start on that at https://laserlords.uk/ as it happens :D still very basic with a lot to do but it's a start

Ah nice! Do you have the source for that somewhere?

I've actually made a start on that at https://laserlords.uk/ as it happens :D still very basic with a lot to do but it's a start

Ah nice! Do you have the source for that somewhere?

Only locally for now, it's on the to-do list to publish to github but I need to write some documentation up on extracting assets etc, soon though hopefully 🤞