Dusted off an old project and finally got it kicked back into gear:
https://gitlab.com/segaloco/scd-disasm
In some ways this is poetic, disassembling Sonic CD (albeit the 510 beta) was the first diassembly project I started in earnest, got pretty far, but eventually stalled out. This was over 10 years ago now. After lots of false starts here and there, I finally hunkered down and produced something pretty expansive with my Dragon Quest disassembly. From that, I jumped to Doki Doki Panic due to a burning interest in the FDS and how it actually works, but now I've reached a nice stopping point with Doki Doki Panic and decided its time.
So this one isn't as seamless to bootstrap as some of my others, I haven't settled on a ubiquitous ISO extractor for pulling the raw image files yet, so I leave that to the user. The process should be described in the README but basically you need to create a folder, raw, and then in that folder, iso. Inside raw/iso, extract the full contents of a clean Sonic CD V0.02 ISO. Additionally, said ISO needs to be put at raw/file.iso, as the header information will be extracted from sector 0. Basically a Sega CD ISO uses the first empty sector undefined by ISO9660 for the boot block, consisting of two headers, an IP (initial program, "start" for the main CPU) and an SP (system program, "start" for the sub CPU).
The extractor script should then work and all subsequent processes as well. This is dependent on mkisofs from cdrtools, although an intrepid user could probably insert their own favorite iso mastering solution in line. Note the final ISO is *not* 1:1 due to timestamps and other filesystem pieces, but should be ISO9660 compliant and contain the proper boot block, meaning it should work identically. Like my FDS work, I don't see any real point in trying to create a 1:1 disk image since disk images contain things like timestamps, so instead I'm shooting for 1:1 *files* which can then be assembled into an arbitrary working ISO. Purists seeking a 1:1 ISO would need to slip in the filesystem particulars from a real image, I'm not concerned with that level of granularity.
Anywho, as with other projects I've done, contributions are welcome and encouraged.
https://gitlab.com/segaloco/scd-disasm
In some ways this is poetic, disassembling Sonic CD (albeit the 510 beta) was the first diassembly project I started in earnest, got pretty far, but eventually stalled out. This was over 10 years ago now. After lots of false starts here and there, I finally hunkered down and produced something pretty expansive with my Dragon Quest disassembly. From that, I jumped to Doki Doki Panic due to a burning interest in the FDS and how it actually works, but now I've reached a nice stopping point with Doki Doki Panic and decided its time.
So this one isn't as seamless to bootstrap as some of my others, I haven't settled on a ubiquitous ISO extractor for pulling the raw image files yet, so I leave that to the user. The process should be described in the README but basically you need to create a folder, raw, and then in that folder, iso. Inside raw/iso, extract the full contents of a clean Sonic CD V0.02 ISO. Additionally, said ISO needs to be put at raw/file.iso, as the header information will be extracted from sector 0. Basically a Sega CD ISO uses the first empty sector undefined by ISO9660 for the boot block, consisting of two headers, an IP (initial program, "start" for the main CPU) and an SP (system program, "start" for the sub CPU).
The extractor script should then work and all subsequent processes as well. This is dependent on mkisofs from cdrtools, although an intrepid user could probably insert their own favorite iso mastering solution in line. Note the final ISO is *not* 1:1 due to timestamps and other filesystem pieces, but should be ISO9660 compliant and contain the proper boot block, meaning it should work identically. Like my FDS work, I don't see any real point in trying to create a 1:1 disk image since disk images contain things like timestamps, so instead I'm shooting for 1:1 *files* which can then be assembled into an arbitrary working ISO. Purists seeking a 1:1 ISO would need to slip in the filesystem particulars from a real image, I'm not concerned with that level of granularity.
Anywho, as with other projects I've done, contributions are welcome and encouraged.
Statistics: Posted by segaloco — Tue Dec 12, 2023 11:41 am — Replies 0 — Views 632