-
Notifications
You must be signed in to change notification settings - Fork 4
Disk Format (SDK)
A disk contains 2 heads (top and bottom), each 8 different zones:
- Head 0: Zone 0 to 7
- Head 1: Zone 1 to 8
Those are physical zones, read from the periphery to the center of the disk.
Each zone has a specific number of tracks depending on the head, which each contains 2 blocks:
- Head 0
- Zone 0: 146 tracks, 292 blocks total (including System Area)
- Zone 1: 146 tracks, 292 blocks total
- Zone 2: 137 tracks, 274 blocks total
- Zone 3: 137 tracks, 274 blocks total
- Zone 4: 137 tracks, 274 blocks total
- Zone 5: 137 tracks, 274 blocks total
- Zone 6: 137 tracks, 274 blocks total
- Zone 7: 102 tracks, 204 blocks total
- Head 1
- Zone 1: 146 tracks, 292 blocks total
- Zone 2: 146 tracks, 292 blocks total
- Zone 3: 137 tracks, 274 blocks total
- Zone 4: 137 tracks, 274 blocks total
- Zone 5: 137 tracks, 274 blocks total
- Zone 6: 137 tracks, 274 blocks total
- Zone 7: 137 tracks, 274 blocks total
- Zone 8: 102 tracks, 204 blocks total
A total of 2158 (0x86E) tracks, for a total of 4316 (0x10DC) blocks.
- Zone 0: 232 bytes
- Zone 1: 216 bytes (-16)
- Zone 2: 208 bytes (- 8)
- Zone 3: 192 bytes (-16)
- Zone 4: 176 bytes (-16)
- Zone 5: 160 bytes (-16)
- Zone 6: 144 bytes (-16)
- Zone 7: 128 bytes (-16)
- Zone 8: 112 bytes (-16)
You can also add up 7 bytes of C1 correction data, which is automatically done by the 64DD hardware, unlike C2 correction which needs to be done by the N64 software.
The number of sectors in each block is constant:
- 85 User Sectors
- 4 C2 Correction Sectors
- 1 Gap Sector
Brings us to a total of 90 sectors..
- Zone 0: 19720 bytes
- Zone 1: 18360 bytes
- Zone 2: 17680 bytes
- Zone 3: 16320 bytes
- Zone 4: 14960 bytes
- Zone 5: 13600 bytes
- Zone 6: 12240 bytes
- Zone 7: 10880 bytes
- Zone 8: 9520 bytes
Total Disk Size including System Data: 64931840 bytes (0x3DEC800).
The disk is made of 2 different areas:
- ROM Area
- System Data: Actually hidden by the SDK for access, it contains TOC, Disk ID and other things.
- User Data (ROM): Contains generic data. Cannot be rewritten on a retail disk.
- RAM Area
- User Data (RAM): Contains generic saved data.
Both ROM and RAM areas have different sizes, depending on the Disk Types, which tells which zones are ROM/RAM:
- Type 0: ROM Zone 0
2 - RAM Zone 38 - Type 1: ROM Zone 0
3 - RAM Zone 48 - Type 2: ROM Zone 0
4 - RAM Zone 58 - Type 3: ROM Zone 0
5 - RAM Zone 68 - Type 4: ROM Zone 0
6 - RAM Zone 78 - Type 5: ROM Zone 0~7 - RAM Zone 8
- Type 6: ROM Zone 0~8 (ROM ONLY)
Keep in mind that the 64DD library reads the ROM AREA FIRST no matter what.
Let me take an exemple from which order zones are read from Disk Type 0:
- ROM area
- Head 0, Zone 0
- Head 0, Zone 1
- Head 0, Zone 2
- Head 1, Zone 2
- Head 1, Zone 1
- RAM area
- Head 0, Zone 3
- Head 0, Zone 4
- Head 0, Zone 5
- Head 0, Zone 6
- Head 0, Zone 7
- Head 1, Zone 8
- Head 1, Zone 7
- Head 1, Zone 6
- Head 1, Zone 5
- Head 1, Zone 4
- Head 1, Zone 3
We know that Type 0 has ROM area using Zones 0-2. On Head 0 it reads from the periphery to the center, while on Head 1 it's the opposite, so it's incrementing on Head 0 and decrementing once on Head 1.
(To be rewritten later)