GD-ROM's contain 2352 bytes pr sector, with 2048 available for data payload and the rest for error-checking - the same as CD-rom's.
Naomi GD-ROMS contain 3 sessions.
- low density data track (variable size)
- audio track (variable size)
- high density data track (fixed size, always starts at sector 45000, or 10:00:00 - ten minutes)
The high density track that always starts at sector 45000 contains 3(4) files. The last sector is 549299, and with two seconds for postgap, 75*2, last usable sector is 549 149
- NAOMIGD.ROM - identical file on all(?) games, probably equivalent to 1ST_READ.BIN on dreamcast
- Bxx.BIN - a 256 byte file, containing name of image file to be loaded, and a CRC32 checksum of image file
- a DIMM image file, the actual game loaded into DIMM memory
In addition, the first 16 sectors (32768 bytes) must be present - dreamcast docs often refer to this chunk as "IP.BIN", although you can call it whatever you want.
Creating Compatible layout
Iso image of game-data must begin at sector 45000. To acheive this, first make a dummy iso image that is exactly 92,160,000 bytes long - 92160000 bytes/2048 bytes pr sector=45000, this can be done by making an iso of a blank file that is 91,80,3648 bytes. In this example, we may call this "45000.iso".
Next create an iso for the game data containing the 3 files for the high density data track, we can call this "track3.iso":
mkisofs -sort ./sfile -v -A" " -sysid "SEGA SEGAKATANA" -publisher "SEGA ENTERPRISES,LTD." -V "ZERO3_UPPER_GD" -volset "ZERO3_UPPER_GD" -p "CRI CD CRAFT VER.2.32" -o track3.iso -C0,45000 -G IP.BIN ./t3files
The processing of sort files appear to be pseudorandom, and highly annoying. This works, sfile:
./t3files/NAOMIGD.BIN 97 ./t3files/BCY.BIN 98 ./t3files/ZERO3ROM.BIN 99 ./t3files/BLANK 100
Sort file Rules: files closes to the rim (highest sector) should be placed FIRST in the file, with the LOWEST number. The mkisofs parameter ./t3files, ./t3files/*, t3files/* gives different sorts. Parameter ./t3files matches ./t3files/ in the file. Go figure..
You don't need a large dummy file (BLANK) that is positioned at the start of the ISO, but the game loads faster - and is a trick to place the files at the very end of the disc like the original GD-ROM.
combine the images with dd, or copy /b and burn.
dd if=track3.iso of=45000.iso bs=2048 seek=45000