Dreamcast: Unterschied zwischen den Versionen

Aus darkrealm Wiki
Zur Navigation springen Zur Suche springen
Chris (Diskussion | Beiträge)
Chris (Diskussion | Beiträge)
Zeile 158: Zeile 158:
     Licensed under a BSD-based license, see licences folder.
     Licensed under a BSD-based license, see licences folder.
</pre>
</pre>
<pre>
python2.7 ./gditools.py -i <disc.gdi> --extract-all -o /mnt/development/dreamcast/rips/orgs/<GAME_NAME>/<CD Number> --data-folder __volume_label__ -s sort.txt -b ip.bin
python2.7 ./gditools.py -i <disc.gdi> --extract-all -o /mnt/development/dreamcast/rips/orgs/<GAME_NAME>/<CD Number> --data-folder __volume_label__ -s sort.txt -b ip.bin
<pre>
</pre>


==== Old way ====
==== Old way ====

Version vom 16. September 2020, 21:54 Uhr

Access Files on CDI Images

  1. Extract the seperate Track first
cdirip <CDIFILE>.cdi
  1. In case of 2nd Data Track, fix the LBA first
isofix <TRACK02>.iso <LBA Value reported by cdirip>


What binhack does

Changes LBA Value at offset 1461904 ( 8 Bytes before CD001 string) from 6EB0 (45166) to LBA Value+166 specified during binhack.

Adds Region Codes for JAP,EUR and USA and strings for that. Adds some bootcode, probably SH4 ASM to make the GDROM accept CDRs.

What cdda does

Changes some bytes, probably SH4 ASM to enable playback of CDDA tracks.

What dahack does

Changes LBA Values at offsets 1301408,1302380 and 1461904. First 2 offsets get rewritten from 5EB0 (45150) to 9600 (150). Third offset gets rewritten from 6EB0 (45166) to LBA Value+166 specified during dahack. 3rd offset change is basically the same what binhack does.

What hack3 does

Changes LBA Values at offsets 1301408,1302380 and 1461904. First 2 offsets get rewritten from 5EB0 (45150) to LBA Value+150 specified during dahack. Third offset gets rewritten from 6EB0 (45166) to LBA Value+166 specified during dahack. 3rd offset change is basically the same what binhack does.

LBA 45000 Trick

69120000 bytes in first session will result in LBA 45000.

Fill 1st Session ISO File to 69120000 bytes with zeros

6912000 bytes = 33750 2048-byte-sectors

CORRECTION : Must be 33598 Sectors !!! = 68808703 bytes

1st Session Leadout = 11250 Sectors = 23040000 Bytes

2nd Session will start at Sector 45000

When using extract.exe, add 150 Sectors to LBA reported in gdinfo_FG.exe track05

dd if=/dev/zero of=<ISOFILE> bs=1 count=1 seek=69119999


Creating & Burning DATA/DATA ISOs

1. mkisofs -l -duplicates-once -V <DISCNAME> -o <OUTPUT1.ISO> <DIRECTORY_TO_GAME_DATA>
2. cdrecord -v -multi -tao -xa <OUTPUT1.ISO>
3. cdrecord -msinfo
4. mkisofs -duplicates-once -V <DISCNAME> -o <OUTPUT2.ISO> -G <IP.BIN> -M <OUTPUT1.ISO> -C <MSINFO VALUE> <SMALL FILE FROM DIRECTORY_TO_GAME_DATA, take 1ST_READ.BIN>
5. cdrecord -v -tao -xa <OUTPUT2.ISO>

Merging track03 & track05 into one file

Create dummy file first Calculate 1185760800 - <SIZE OF track03.bin + SIZE OF track05.bin>

dd if=/dev/zero bs=1 count=0 seek=<RESULT> of=dummy.bin
cat track03.bin dummy.bin track05.bin > combined.bin

This also helps when extract.exe only outputs garbage out of track03.iso along with track05.iso. This way only the combined.iso needs to be extracted.

Burning DATA/DATA CDIs

cdirip <CDIFile> <Destination Directory>
cdrecord dev=/dev/sr0 -v -multi -tao -xa tdata01.iso
cdrecord dev=/dev/sr0 -v -tao -xa tdata02.iso

AFS & ADX Files

AFS Files are collected ADX files.

extract AFS with:

afs_extract.exe *.afs|*.XA

or

afsextract.exe -sc afsfile|XAfile

or

afsutils_v2.exe | rename .XA files to .afs beforehand.

compact AFS with:

AFSCompactor.exe

will rename files inside .afs to file0001 etc... AITD4 doesnt seem to care.

Full rip process from GD-ROM to CD-ROM

Get GDROM Data from Dreamcast with http-ack

https://www.gotwalls.com

https://github.com/sega-dreamcast/httpd-ack

  1. Boot HTTP-ack from CD
  2. Swap HTTP-ack CD with Original GD-ROm
  3. Connect via Browser to http://192.168.1.30
  4. Download all files starting with track03.bin
  5. Download disc.gdi

Extract Data from Tracks

Use gditools

https://sourceforge.net/projects/dcisotools/

Either use GUI or gditools.py

python2.7 ./gditools.py 
Usage: ./gditools.py -i input_gdi [options]

  -h, --help             Display this help
  -l, --list             List all files in the filesystem and exit
  -o [outdir]            Output directory. Default: gdi folder
  -s [filename]          Create a sorttxt file with custom name
                           (It uses *data-folder* as prefix)
  -b [ipname]            Dump the ip.bin with custom name
  -e [filename]          Dump a single file from the filesystem
  --extract-all          Dump all the files in the *data-folder*
  --data-folder [name]   *data-folder* subfolder. Default: data
                           (__volume_label__ --> Use ISO9660 volume label)
  --sort-spacer [num]    Sorttxt entries are sperated by num
  --silent               Minimal verbosity mode
  [no option]            Display gdi infos if not silent


gditools.py by FamilyGuy, http://sourceforge.net/p/dcisotools/
    Licensed under GPLv3, see licences folder.

iso9660.py  by Barney Gale, http://github.com/barneygale
    Licensed under a BSD-based license, see licences folder.
python2.7 ./gditools.py -i <disc.gdi> --extract-all -o /mnt/development/dreamcast/rips/orgs/<GAME_NAME>/<CD Number> --data-folder __volume_label__ -s sort.txt -b ip.bin

Old way

  1. If the game contains more than track03.bin, combine the 2 binfiles into 1:
cat track03.bin dummy.bin track05.bin > <BINFILE>
  1. Convert .BIN Files to .ISO Files first with bin2iso.exe
bin2iso.exe <BINFILE> <ISOFILE>
  1. Extract Data from .ISO files
extract.exe <ISOFILE>

If extracted 1ST_READ.BIN has filesize of 0, LBA of track05 is wrong.