Port-dreamcast archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: DC dev: requirements?



der Mouse <mouse%Rodents-Montreal.ORG@localhost> 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




Home | Main Index | Thread Index | Old Index