|
The following info was created by Fulg. Visit his site here
These are step-by-step instructions to burn the Dreamcast serial slave.
Instructions updated for Win32 from Marcus' page (original Linux instructions
are found here). You really
should read through here at least once before attempting, so you don't have any
surprises down the road.
Note that the instructions I posted before were flawed, special thanks to
Anthony Ball for mailing me about this. Apologies for the coasters... =)
Grab these goodies:
- Download the serial slave in ZIP format
(All versions of WinZip cannot correctly uncompress the
serial_slave.tar.gz
file provided by Marcus, do not be fooled!). Also includes a pre-made blank audio
track.
- Download my IP.BIN binary inserter (source and
binary included).
- Download cdrecord 1.9 for Win32
(Enjoy this, it was a b*tch to compile under cygwin).
Unzip everything in one directory (anywhere, there's nothing to install).
Open up a DOS prompt and go in the directory where you unzipped the stuff (eg
"cd \dctemp" or whatever you chose as a directory name).
Using cdrecord
These instructions assume an IDE writer set as a Master on the secondary
IDE port, so you may need change the "dev=1,1,0" in the
given commands in order to match your own setup. To find out what to replace
it with, you may do this:
cdrecord -scanbus
This will prove that cdrecord is indeed working properly, and
also print out a spew of information similar to this (your own output will
most likely be different):
Cdrecord 1.9 (i686-pc-cygwin) Copyright (C) 1995-2000
Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'QUANTUM ' 'FIREBALL EL7 ' 'A08.' Disk
0,1,0 1) *
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) HOST ADAPTOR
scsibus1:
1,0,0 100) ' LG ' 'CD-ROM CRD-8320B' '1.22' Removable CD-ROM
1,1,0 101) 'HP ' 'CD-Writer+ 7200 ' '3.01' Removable CD-ROM
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) *
1,6,0 106) *
1,7,0 107) HOST ADAPTOR
Just find your CD-writer in the list and use the three leftmost
comma-separated numbers as parameters (so now you see why I need to use dev=1,1,0
in order to send commands to my HP writer).
Burning the audio track
First, you have to burn the audio session. You don't need to create the blank
audio file, it's in the zip file you downloaded above. Insert a blank CD-R in
your writer and call cdrecord like so:
cdrecord dev=1,1,0 speed=2 -multi -audio audio.raw
This may take a while, so hang in there. Feel free to change the speed=2
parameter to match the speed of your writer (omitting it defaults to speed=1).
You'll see an output similar to this:
Cdrecord 1.9 (i686-pc-cygwin) Copyright (C) 1995-2000 Jörg Schilling
scsidev: '1,1,0'
scsibus: 1 target: 1 lun: 0
Using libscg version 'schily-0.1'
Device type : Removable CD-ROM
Version : 0
Response Format: 1
Vendor_info : 'HP '
Identifikation : 'CD-Writer+ 7200 '
Revision : '3.01'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags : SWABAUDIO
Starting to write CD/DVD at speed 2 in write mode for multi session.
Last chance to quit, starting real write in 1 seconds.
Track 01: Total bytes read/written: 705600/705600 (300 sectors).
Creating the ISO image
Now that the audio track has been burned, it is time to create the ISO
filesystem image. The reason that it can't be done earlier is that on a
multisession disc the sector numbers in the image have to be offset with a
number depending on the sessions burned before. To find out this number, run
cdrecord dev=1,1,0 -msinfo
with the disc still in the drive. You should get two comma separated
numbers (I got 0,11702). Remember these numbers!
Now create the ISO image with mkisofs:
mkisofs -C x,y -o tmp.iso READ_ME.TXT
where x,y is the pair of numbers you got with -msinfo
earlier. Make sure you get them correctly, or the image won't work.
mkisofs will warn that the previous session has not been
imported because of a missing parameter, but you can safely ignore this
message as it makes no sense here. Here's the output:
mkisofs: Warning: -C specified without -M: old session data will not be merged.
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 2000
11727 extents written (22 Mb)
Adding the bootstrap
The first 16 sectors of an ISO9660 filesystem are blank, to leave room for
bootstraps. This is where IP.BIN (32768 bytes) goes. Due to limitations in DOS
and Windows, the shell trick listed in the Marcus method (and which I listed
here before) cannot work under Win32.
So, to make a long story short, I wrote a small utility designed explicitly
for the task of inserting an IP.BIN at the beginning of a binary image file. This will replace the first 16 sectors of the image with the serial slave's
IP.BIN bootstrap code:
ipins tmp.iso data.raw
You should see the following output on your screen:
ipins: done, IP.BIN inserted
Burning the data track
Finally, you're ready to burn the second session, completing the disc. This
track should be burned as CD/XA with form 1 sectors (2048 bytes per sector).
Use the -xa1 option to cdrecord:
cdrecord dev=1,1,0 speed=2 -multi -xa1 data.raw
Again, feel free to adjust the speed=2 parameter to match the
speed of your writer. You will see something similar to this output:
Cdrecord 1.9 (i686-pc-cygwin) Copyright (C) 1995-2000 Jörg Schilling
scsidev: '1,1,0'
scsibus: 1 target: 1 lun: 0
Using libscg version 'schily-0.1'
Device type : Removable CD-ROM
Version : 0
Response Format: 1
Vendor_info : 'HP '
Identifikation : 'CD-Writer+ 7200 '
Revision : '3.01'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags : SWABAUDIO
Starting to write CD/DVD at speed 2 in write mode for multi session.
Last chance to quit, starting real write in 1 seconds.
Track 02: Total bytes read/written: 51200/614400 (300 sectors).
When cdrecord completes, the disc is ready. Eject it and try
it out in your Dreamcast. It will boot, then the sides of the screen will turn
blue at the Sega license screen; you might need to play with the horizontal
offset on your TV to see it since the blue border is rather small. This tells
us that the serial slave is up and running. Time to code!
Summary
List of commands used to make a bootable serial slave CD:
cdrecord dev=1,1,0 speed=2 -multi -audio audio.raw
cdrecord dev=1,1,0 -msinfo
mkisofs -C x,y -o tmp.iso READ_ME.TXT
ipins tmp.iso data.raw
cdrecord dev=1,1,0 speed=2 -multi -xa1 data.raw
Troubleshooting
These instructions work better on a "pristine" installation of
Windows, but you've most likely installed stuff on your system since so here
are some ideas to try if you're having problems:
- Make sure that the Autorun feature of Windows is turned off. I don't
know if it can cause problems but I had it turned off, so you might want
to do the same. Under Windows 95/98/Me, you can disable it via the device
manager (sorry, I can't give more detailed instructions as I don't run
Win9x). Under Windows NT and 2000, you can turn off autorun by setting the
following registry key to zero:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom\AutoRun
- If you have a CD-RW drive, make sure no packet drivers are active (you
may need to uninstall the software package that came with your drive - just killing
the systray icon is not enough).
- Make sure your ASPI layer is up-to-date, grab the latest version here
(4.6 - 1021). You might want to grab ForceASPI
if the update refuses to install. Keep in mind you may be breaking the
law by using ForceASPI. If you use it, you do so out of your own free
will, and at your own risk. Any and all messages related to this link will
be ignored.
Hope this helps... Your Mileage May Vary(tm).
|