]> granicus.if.org Git - file/commitdiff
PR/530: Console magic improvements from David Korth
authorChristos Zoulas <christos@zoulas.com>
Thu, 17 Mar 2016 20:53:09 +0000 (20:53 +0000)
committerChristos Zoulas <christos@zoulas.com>
Thu, 17 Mar 2016 20:53:09 +0000 (20:53 +0000)
magic/Magdir/console

index 727c5551ebd86d83d9b5384e4b7500069c84700d..5c1698b7d2b441a95777f7563565496c9d5f7947 100644 (file)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: console,v 1.22 2015/11/13 00:50:40 christos Exp $
+# $File: console,v 1.23 2016/03/17 20:53:09 christos Exp $
 # Console game magic
 # Toby Deshane <hac@shoelace.digivill.net>
 #    ines:  file(1) magic for Marat's iNES Nintendo Entertainment System
 
 #------------------------------------------------------------------------------
 # gameboy:  file(1) magic for the Nintendo (Color) Gameboy raw ROM format
+# Reference: http://gbdev.gg8.se/wiki/articles/The_Cartridge_Header
 #
-0x104 belong 0xCEED6666 Gameboy ROM:
->0x134 string >\0 "%.16s"
->0x146 byte 0x03  \b,[SGB]
->0x147 byte 0x00  \b, [ROM ONLY]
->0x147 byte 0x01  \b, [ROM+MBC1]
->0x147 byte 0x02  \b, [ROM+MBC1+RAM]
->0x147 byte 0x03  \b, [ROM+MBC1+RAM+BATT]
->0x147 byte 0x05  \b, [ROM+MBC2]
->0x147 byte 0x06  \b, [ROM+MBC2+BATTERY]
->0x147 byte 0x08  \b, [ROM+RAM]
->0x147 byte 0x09  \b, [ROM+RAM+BATTERY]
->0x147 byte 0x0B  \b, [ROM+MMM01]
->0x147 byte 0x0C  \b, [ROM+MMM01+SRAM]
->0x147 byte 0x0D  \b, [ROM+MMM01+SRAM+BATT]
->0x147 byte 0x0F  \b, [ROM+MBC3+TIMER+BATT]
->0x147 byte 0x10  \b, [ROM+MBC3+TIMER+RAM+BATT]
->0x147 byte 0x11  \b, [ROM+MBC3]
->0x147 byte 0x12  \b, [ROM+MBC3+RAM]
->0x147 byte 0x13  \b, [ROM+MBC3+RAM+BATT]
->0x147 byte 0x19  \b, [ROM+MBC5]
->0x147 byte 0x1A  \b, [ROM+MBC5+RAM]
->0x147 byte 0x1B  \b, [ROM+MBC5+RAM+BATT]
->0x147 byte 0x1C  \b, [ROM+MBC5+RUMBLE]
->0x147 byte 0x1D  \b, [ROM+MBC5+RUMBLE+SRAM]
->0x147 byte 0x1E  \b, [ROM+MBC5+RUMBLE+SRAM+BATT]
->0x147 byte 0x1F  \b, [Pocket Camera]
->0x147 byte 0xFD  \b, [Bandai TAMA5]
->0x147 byte 0xFE  \b, [Hudson HuC-3]
->0x147 byte 0xFF  \b, [Hudson HuC-1]
+0x104  bequad  0xCEED6666CC0D000B      Game Boy ROM image:
+>0x134 string  >\0                     "%.16s"
+>0x14c byte    x                       (Rev.%02u)
 
+# Machine type. (SGB, CGB, SGB+CGB)
+>0x14b         byte            0x33
+>>0x146                byte            0x03
+>>>0x143       byte&0x80       0x80    [SGB+CGB]
+>>>0x143       byte&0x80       !0x80   [SGB]
+>>0x146                byte            !0x33
+>>>0x143       byte&0xC0       0x80    [CGB]
+>>>0x143       byte&0xC0       0xC0    [CGB ONLY]
+
+# Mapper.
+>0x147 byte 0x00  [ROM ONLY]
+>0x147 byte 0x01  [MBC1]
+>0x147 byte 0x02  [MBC1+RAM]
+>0x147 byte 0x03  [MBC1+RAM+BATT]
+>0x147 byte 0x05  [MBC2]
+>0x147 byte 0x06  [MBC2+BATTERY]
+>0x147 byte 0x08  [ROM+RAM]
+>0x147 byte 0x09  [ROM+RAM+BATTERY]
+>0x147 byte 0x0B  [MMM01]
+>0x147 byte 0x0C  [MMM01+SRAM]
+>0x147 byte 0x0D  [MMM01+SRAM+BATT]
+>0x147 byte 0x0F  [MBC3+TIMER+BATT]
+>0x147 byte 0x10  [MBC3+TIMER+RAM+BATT]
+>0x147 byte 0x11  [MBC3]
+>0x147 byte 0x12  [MBC3+RAM]
+>0x147 byte 0x13  [MBC3+RAM+BATT]
+>0x147 byte 0x19  [MBC5]
+>0x147 byte 0x1A  [MBC5+RAM]
+>0x147 byte 0x1B  [MBC5+RAM+BATT]
+>0x147 byte 0x1C  [MBC5+RUMBLE]
+>0x147 byte 0x1D  [MBC5+RUMBLE+SRAM]
+>0x147 byte 0x1E  [MBC5+RUMBLE+SRAM+BATT]
+>0x147 byte 0xFC  [Pocket Camera]
+>0x147 byte 0xFD  [Bandai TAMA5]
+>0x147 byte 0xFE  [Hudson HuC-3]
+>0x147 byte 0xFF  [Hudson HuC-1]
+
+# ROM size.
 >0x148 byte 0     \b, ROM: 256Kbit
 >0x148 byte 1     \b, ROM: 512Kbit
 >0x148 byte 2     \b, ROM: 1Mbit
 >0x148 byte 4     \b, ROM: 4Mbit
 >0x148 byte 5     \b, ROM: 8Mbit
 >0x148 byte 6     \b, ROM: 16Mbit
+>0x148 byte 7     \b, ROM: 32Mbit
 >0x148 byte 0x52  \b, ROM: 9Mbit
 >0x148 byte 0x53  \b, ROM: 10Mbit
 >0x148 byte 0x54  \b, ROM: 12Mbit
 
+# RAM size.
 >0x149 byte 1     \b, RAM: 16Kbit
 >0x149 byte 2     \b, RAM: 64Kbit
 >0x149 byte 3     \b, RAM: 128Kbit
 >0x149 byte 4     \b, RAM: 1Mbit
-
-#>0x14e long  x     \b, CRC: %x
+>0x149 byte 5     \b, RAM: 512Kbit
 
 #------------------------------------------------------------------------------
 # genesis:  file(1) magic for the Sega MegaDrive/Genesis raw ROM format
 0 string LCDi         Dream Animator file
 
 #------------------------------------------------------------------------------
-# v64: file(1) uncertain magic for the V64 format N64 ROM dumps
+# z64: file(1) magic for the Z64 format N64 ROM dumps
+# Reference: http://forum.pj64-emu.com/showthread.php?t=2239
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+#
+0      bequad  0x803712400000000F      Nintendo 64 ROM image:
+>0x20  string  x       "%.20s"
+>0x3B  string  x       (%.4s
+>0x3F  byte    x       \b, Rev.%02u)
+
+#------------------------------------------------------------------------------
+# v64: file(1) magic for the V64 format N64 ROM dumps
+# Same as z64 format, but with 16-bit byteswapping.
+#
+0      bequad  0x3780401200000F00      Nintendo 64 ROM image (V64)
+
+#------------------------------------------------------------------------------
+# n64-swap2: file(1) magic for the swap2 format N64 ROM dumps
+# Same as z64 format, but with swapped 16-bit words.
 #
-0 belong 0x37804012    V64 Nintendo 64 ROM dump
+0      bequad  0x12408037000F0000      Nintendo 64 ROM image (wordswapped)
 
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# Nintendo .nds
-192    string  \044\377\256Qi\232      Nintendo DS Game ROM Image
-# Nintendo .gba
-0      string  \056\000\000\352$\377\256Qi     Nintendo Game Boy Advance ROM Image
+#------------------------------------------------------------------------------
+# n64-le32: file(1) magic for the 32-bit byteswapped format N64 ROM dumps
+# Same as z64 format, but with 32-bit byteswapping.
+#
+0      bequad  0x401237800F000000      Nintendo 64 ROM image (32-bit byteswapped)
+
+#------------------------------------------------------------------------------
+# gba: file(1) magic for the Nintendo Game Boy Advance raw ROM format
+# Reference: http://problemkaputt.de/gbatek.htm#gbacartridgeheader
+#
+# Original version from: "Nelson A. de Oliveira" <naoliv@gmail.com>
+# Updated version from: David Korth <gerbilsoft@gerbilsoft.com>
+#
+4      bequad  0x24FFAE51699AA221      Game Boy Advance ROM image:
+>0xA0  string  x       "%.12s"
+>0xAC  string  x       (%.6s
+>0xBC  byte    x       \b, Rev.%02u)
+
+#------------------------------------------------------------------------------
+# nds: file(1) magic for the Nintendo DS(i) raw ROM format
+# Reference: http://problemkaputt.de/gbatek.htm#dscartridgeheader
+#
+# Original version from: "Nelson A. de Oliveira" <naoliv@gmail.com>
+# Updated version from: David Korth <gerbilsoft@gerbilsoft.com>
+#
+0xC0   bequad  0x24FFAE51699AA221      Nintendo DS ROM image:
+>0x00  string  x               "%.12s"
+>0x0C  string  x               (%.6s
+>0x1E  byte    x               \b, Rev.%02u)
+>0x12  byte    2               (DSi enhanced)
+>0x12  byte    3               (DSi only)
 
 #------------------------------------------------------------------------------
 # msx: file(1) magic for MSX game cartridge dumps
 # From: Sven Hartge <debian@ds9.argh.org>
 0      string  SCVM    ScummVM savegame
 >12    string  >\0     "%s"
+
+#------------------------------------------------------------------------------
+# Nintendo GameCube / Wii file formats.
+#
+
+# Type: Nintendo GameCube/Wii common disc header data.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: http://wiibrew.org/wiki/Wii_Disc
+0      name    nintendo-gcn-disc-common
+>0x20  string  x       "%.64s"
+>0x00  string  x       (%.6s
+>0x06  byte    >0
+>>0x06 byte    1       \b, Disc 2
+>>0x06 byte    2       \b, Disc 3
+>>0x06 byte    3       \b, Disc 4
+>0x07  byte    x       \b, Rev.%02u)
+
+# Type: Nintendo GameCube disc image
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: http://wiibrew.org/wiki/Wii_Disc
+0x1C   belong  0xC2339F3D      Nintendo GameCube disc image:
+>0     use     nintendo-gcn-disc-common
+
+# Type: Nintendo Wii disc image
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: http://wiibrew.org/wiki/Wii_Disc
+0x18   belong  0x5D1C9EA3      Nintendo Wii disc image:
+>0     use     nintendo-gcn-disc-common
+
+# Type: Nintendo Wii disc image (WBFS format)
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: http://wiibrew.org/wiki/Wii_Disc
+0      string  WBFS
+>0x218 belong  0x5D1C9EA3      Nintendo Wii disc image (WBFS format):
+>>0x200        use     nintendo-gcn-disc-common
+
+#------------------------------------------------------------------------------
+# Nintendo 3DS file formats.
+#
+
+# Type: Nintendo 3DS "NCCH" header.
+# Contained within either a CXI executable or an NCSD image.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: https://www.3dbrew.org/wiki/NCCH
+0              name            nintendo-3ds-NCCH
+>0x100         string          NCCH
+>>0x150                string          x       %.16s
+>>0x112                leshort         x       (v%u)
+>>0x18C                byte            2       (New3DS only)
+
+# Type: Nintendo 3DS "NCSD" image. (game cards and eMMC)
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: https://www.3dbrew.org/wiki/NCSD
+0x100          string          NCSD
+>0x118         lequad          0               Nintendo 3DS Game Card image:
+>>0x1000       use             nintendo-3ds-NCCH
+>>0x18D                byte            0               (inner device)
+>>0x18D                byte            1               (Card1)
+>>0x18D                byte            2               (Card2)
+>>0x18D                byte            3               (extended device)
+>0x118         bequad          0x0102020202000000      Nintendo 3DS eMMC dump (Old3DS)
+>0x118         bequad          0x0102020203000000      Nintendo 3DS eMMC dump (New3DS)
+
+# Type: Nintendo 3DS "NCCH" container.
+# https://www.3dbrew.org/wiki/NCCH
+0x100  string  NCCH            Nintendo 3DS
+>0x18D byte&2  0               File Archive (CFA):
+>0x18D byte&2  1               Executable Image (CXI):
+>0     use     nintendo-3ds-NCCH
+
+# Type: Nintendo 3DS "SMDH" file. (application description)
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: https://3dbrew.org/wiki/SMDH
+0              string          SMDH            Nintendo 3DS SMDH file
+>0x208         leshort         !0
+>>0x208                lestring16      x               \b: "%.128s"
+>>0x388                leshort         !0
+>>>0x388       lestring16      x               by %.128s
+>0x208         leshort         0
+>>0x008                leshort         !0
+>>>0x008       lestring16      x               \b: "%.128s"
+>>>0x188       leshort         !0
+>>>>0x188      lestring16      x               by %.128s
+
+# Type: Nintendo 3DS Homebrew Application.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Refernece: https://3dbrew.org/wiki/3DSX_Format
+0      string  3DSX    Nintendo 3DS Homebrew Application (3DSX)