Skip to content
LuigiBlood edited this page May 27, 2020 · 12 revisions

*.d64 image format

This is the master disk output format produced with n64mdisk from the official N64 Software Development Kit.

Not to be confused with *.d64 floppy disk image format commonly used for Commodore 64 emulation.

  • Offset 0x000: System Data (Equivalent to LBA 0 / 2)
  • Offset 0x100: Disk ID (Equivalent to LBA 14 / 15)
  • Offset 0x1E8: Disk Destination Code
  • Offset 0x200:
    • User ROM Area (Padded with 0xFF to fit the exact LBA block byte size)
    • User RAM Area (Padded with 0xFF to fit the exact LBA block byte size)

Details

  • Please note that all disk formatting specific data is zeroed out and that everything before the user data is padded with 0x00. The only supplied system data are the disk type, Initial load block amount, IPL Load Address, and LBA boundaries.

    • The disk formatting data is supplied by the disk (LBA 4 & 5) and is used when written to disk. See System Area page for more information.
  • This master disk file being as small as possible also means all unnecessary data are not present unlike a fully dumped disk.

    • Therefore, to find the User RAM Area, you have to calculate the size of the User ROM Area using the supplied ROM Area LBA End information in the System Data at offset 0xE0.
  • You should be able to calculate the filesize using solely the LBA Area ROM and RAM information and verify the file.

Disk Destination Code

These are all Destination Codes recognized by n64mdisk.

  • 00 = JAPAN
  • 01 = NOA
  • 02 = EUROPE
  • 03 = EUROPE (NOTH)
  • 06 = EUROPE (FRANCE)
  • 07 = HOLLAND
  • 08 = SPAIN
  • 09 = GERMANY
  • 0A = ITARY
  • 0B = CHINA
  • 0D = KOREA
  • 0F = CANADA
  • 10 = BRAZIL
  • 11 = AUSTRALIA

*.ndd image format (64DD Disk Dumper)

This image format comes from 64DD Disk Dumper for the 64drive: It is made of contiguous user blocks from LBA 0 to 4315 (System Area LBAs included).

Details

  • This does not contain error correction data, nor can it tell which blocks are bad. It is a pure logical disk dump, not in physical order.
    • We need heuristics to figure out which System Data block is correct, usually LBA 0 (retail) or 2 (development) are correct for LBA to physical track calculation, but you never truly know in advance.
  • Because dump LBA buffer in 64DD Disk Dumper is always initialized with 00s, development disk dumps will have LBAs 0 to 11 included to be shorter (as sector size is 192 bytes instead of 232), and should be padded with 00s to match the regular retail LBA block size.
  • Unlike the *.d64 format, the file size is constant: 0x3DEC800 bytes.

MAME image format

This format was made for purposes of 64DD emulation on MAME by @Happy-yppaH. It is the only format with physical block ordering, for easier addressing for emulation, as it avoids any Physical Track/LBA conversion.

Details