Re: DC dev: requirements?
Marcus Comstedt <[email protected]> Tue, 05 Oct 2010 01:18:18 +0200
| Newsgroups | gmane.os.netbsd.ports.dreamcast |
|---|---|
| Message-ID | <[email protected]> |
der Mouse <[email protected]> writes: > Oh! So that's why "mount -r -t cd9660" didn't like it? Yes; to perform a loopback mount, you'd first need to pad the file to include the sectors corresponding to the first session. Then, you'd need to tell the filesystem the start sector. On Linux, this is the option sbsector=, I don't have a manpage for NetBSD mount handy right now, so I can't check what the equivalent would be. > What's this "makeip"? My NetBSD build directory contains nothing of > the sort. http://mc.pp.se/dc/files/makeip.tar.gz > This sounds as though the Dreamcast ROMs just load and execute a > handful of sectors from the disk (beginning of the first data track? > absolute sector numbers?) and the use of 9660 filesystems is more in > the nature of a convention used by the usual bootblocks. Is that a > fair statement? No. The ROM does load and execute a handful of sectors from the first data track¹, but it also loads one file (the name of which is also specified in this handful of sectors, but the convention is to use "1ST_READ.BIN") from the 9660 filesystem, and that's where the actual application code goes. The code loaded from the sectors is a standard bootstrap which is not specific to the software on the disc, and the largest part of it (the code that displays the screen "produced or licensed by SEGA") can't even be customized, because the ROM compares it to an internal copy. ¹ Although just any old data track won't to. The data track must be in session 2, and be in mode 2 format, or the ROM will refuse to boot the disc. > How much checking do the ROMs do before doing this? All of it, except the region check. > If the bootblocks are user-replaceable, they obviously don't do all > _that_ much, but, if they demand more than just having that audio > track there, it's important to know.... They do: * Display license screen * Check region code * Set up some registers and jump to the rest of the code See <http://mc.pp.se/dc/ip.bin.html>. // Marcus