]> granicus.if.org Git - file/commitdiff
PR/532: More console magic from David Korth.
authorChristos Zoulas <christos@zoulas.com>
Wed, 23 Mar 2016 15:29:20 +0000 (15:29 +0000)
committerChristos Zoulas <christos@zoulas.com>
Wed, 23 Mar 2016 15:29:20 +0000 (15:29 +0000)
magic/Magdir/console
magic/Magdir/images

index 5c1698b7d2b441a95777f7563565496c9d5f7947..db6916a8bef3dd9806f5ef3821fae0f73761b639 100644 (file)
@@ -1,34 +1,77 @@
 
 #------------------------------------------------------------------------------
-# $File: console,v 1.23 2016/03/17 20:53:09 christos Exp $
+# $File: console,v 1.24 2016/03/23 15:29:20 christos Exp $
 # Console game magic
 # Toby Deshane <hac@shoelace.digivill.net>
-#    ines:  file(1) magic for Marat's iNES Nintendo Entertainment System
-#           ROM dump format
-
-0 string NES\032 iNES ROM dump,
->4 byte  x     %dx16k PRG
->5 byte  x     \b, %dx8k CHR
->6 byte&0x01  =0x1  \b, [Vert.]
->6 byte&0x01  =0x0  \b, [Horiz.]
->6 byte&0x02  =0x2  \b, [SRAM]
->6 byte&0x04  =0x4  \b, [Trainer]
->6 byte&0x04  =0x8  \b, [4-Scr]
+
+# ines: file(1) magic for Marat's iNES Nintendo Entertainment System ROM dump format
+# Updated by David Korth <gerbilsoft@gerbilsoft.com>
+# References:
+# - http://wiki.nesdev.com/w/index.php/INES
+# - http://wiki.nesdev.com/w/index.php/NES_2.0
+0      string          NES\x1A         iNES ROM image
+>7     byte&0x0C       =0x8            (NES 2.0)
+>4     byte            x               \b: %ux16k PRG
+>5     byte            x               \b, %ux16k CHR
+>6     byte&0x08       =0x8            [4-Scr]
+>6     byte&0x09       =0x0            [H-mirror]
+>6     byte&0x09       =0x1            [V-mirror]
+>6     byte&0x02       =0x2            [SRAM]
+>6     byte&0x04       =0x4            [Trainer]
+>7     byte&0x03       =0x2            [PC10]
+>7     byte&0x03       =0x1            [VS
+>>7    byte&0x0C       =0x8
+# NES 2.0: VS PPU
+>>>13  byte&0x0F       =0x0            \b, RP2C03B
+>>>13  byte&0x0F       =0x1            \b, RP2C03G
+>>>13  byte&0x0F       =0x2            \b, RP2C04-0001
+>>>13  byte&0x0F       =0x3            \b, RP2C04-0002
+>>>13  byte&0x0F       =0x4            \b, RP2C04-0003
+>>>13  byte&0x0F       =0x5            \b, RP2C04-0004
+>>>13  byte&0x0F       =0x6            \b, RP2C03B
+>>>13  byte&0x0F       =0x7            \b, RP2C03C
+>>>13  byte&0x0F       =0x8            \b, RP2C05-01
+>>>13  byte&0x0F       =0x9            \b, RP2C05-02
+>>>13  byte&0x0F       =0xA            \b, RP2C05-03
+>>>13  byte&0x0F       =0xB            \b, RP2C05-04
+>>>13  byte&0x0F       =0xC            \b, RP2C05-05
+# TODO: VS protection hardware?
+>>7    byte            x               \b]
+# NES 2.0-specific flags.
+>7     byte&0x0C       =0x8
+>>12   byte&0x03       =0x0            [NTSC]
+>>12   byte&0x03       =0x1            [PAL]
+>>12   byte&0x02       =0x2            [NTSC+PAL]
 
 #------------------------------------------------------------------------------
-# gameboy:  file(1) magic for the Nintendo (Color) Gameboy raw ROM format
+# unif: file(1) magic for UNIF-format Nintendo Entertainment System ROM images
+# Reference: http://wiki.nesdev.com/w/index.php/UNIF
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# TODO commit on 2016/03/21
+#
+# NOTE: The UNIF format uses chunks instead of a fixed header,
+# so most of the data isn't easily parseable.
+#
+0      string  UNIF
+4      lelong  <16     UNIF v%d format NES ROM image
+
+#------------------------------------------------------------------------------
+# gameboy: file(1) magic for the Nintendo (Color) Gameboy raw ROM format
 # Reference: http://gbdev.gg8.se/wiki/articles/The_Cartridge_Header
 #
-0x104  bequad  0xCEED6666CC0D000B      Game Boy ROM image:
->0x134 string  >\0                     "%.16s"
->0x14c byte    x                       (Rev.%02u)
+0x104          bequad          0xCEED6666CC0D000B      Game Boy ROM image
+>0x143         byte&0x80       0x80
+>>0x134                string          >\0                     \b: "%.15s"
+>0x143         byte&0x80       !0x80
+>>0x134                string          >\0                     \b: "%.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
+>>0x146                byte            !0x03
 >>>0x143       byte&0xC0       0x80    [CGB]
 >>>0x143       byte&0xC0       0xC0    [CGB ONLY]
 
 >0x149 byte 5     \b, RAM: 512Kbit
 
 #------------------------------------------------------------------------------
-# genesis:  file(1) magic for the Sega MegaDrive/Genesis raw ROM format
+# genesis: file(1) magic for various Sega Mega Drive / Genesis ROM image and disc formats
+# Updated by David Korth <gerbilsoft@gerbilsoft.com>
+# References:
+# - http://www.retrodev.com/segacd.html
+# - http://devster.monkeeh.com/sega/32xguide1.txt
 #
-0x100 string SEGA  Sega MegaDrive/Genesis raw ROM dump
->0x120 string >\0 Name: "%.16s"
->0x110 string >\0 %.16s
->0x1B0 string RA with SRAM
+
+# Common Sega Mega Drive header format.
+# FIXME: Name fields are 48 bytes, but have spaces for padding instead of 00s.
+0              name    sega-mega-drive-header
+# ROM title. (Use domestic if present; if not, use international.)
+>0x120         byte    >0x20
+>>0x120                string  >\0     \b: "%.16s"
+>0x120         byte    <0x21
+>>0x150                string  >\0     \b: "%.16s"
+# Other information.
+>0x180         string  >\0     (%.14s
+>>0x110                string  >\0     \b, %.16s
+>0x180         byte    0
+>>0x110                string  >\0     (%.16s
+>0             byte    x       \b)
+
+# TODO: Check for 32X CD?
+# Sega Mega CD disc images: 2048-byte sectors.
+0      string  SEGADISCSYSTEM\ \       Sega Mega CD disc image
+>0     use     sega-mega-drive-header
+>0     byte    x                       \b, 2048-byte sectors
+0      string  SEGABOOTDISC\ \ \ \     Sega Mega CD disc image
+>0     use     sega-mega-drive-header
+>0     byte    x                       \b, 2048-byte sectors
+# Sega Mega CD disc images: 2352-byte sectors.
+0x10   string  SEGADISCSYSTEM\ \       Sega Mega CD disc image
+>0x10  use     sega-mega-drive-header
+>0     byte    x                       \b, 2352-byte sectors
+0x10   string  SEGABOOTDISC\ \ \ \     Sega Mega CD disc image
+>0x10  use     sega-mega-drive-header
+>0     byte    x                       \b, 2352-byte sectors
+
+# Sega Mega Drive, 32X, Pico, and Mega CD Boot ROM images.
+0x100          string  SEGA
+>0x3C0         bequad  0x4D41525320434845      Sega 32X ROM image
+>>0            use     sega-mega-drive-header
+>0x3C0         bequad  !0x4D41525320434845
+>>0x105                belong  0x5049434F      Sega Pico ROM image
+>>>0           use     sega-mega-drive-header
+>>0x105                belong  !0x5049434F
+>>>0x180       beshort 0x4252          Sega Mega CD Boot ROM image
+>>>0x180       beshort !0x4252         Sega Mega Drive / Genesis ROM image
+>>>0           use     sega-mega-drive-header
 
 #------------------------------------------------------------------------------
-# genesis:  file(1) magic for the Super MegaDrive ROM dump format
+# genesis: file(1) magic for the Super MegaDrive ROM dump format
 #
-0x280 string EAGN  Super MagicDrive ROM dump
->0 byte x %dx16k blocks
->2 byte 0 \b, last in series or standalone
->2 byte >0 \b, split ROM
->8 byte 0xAA
->9 byte 0xBB
+
+# NOTE: Due to interleaving, we can't display anything
+# other than the copier header information.
+0      name    sega-genesis-smd-header
+>0     byte    x       %dx16k blocks
+>2     byte    0       \b, last in series or standalone
+>2     byte    >0      \b, split ROM
+
+# "Sega Genesis" header.
+0x280  string EAGN
+>8     beshort 0xAABB  Sega Mega Drive / Genesis ROM image (SMD format):
+>>0    use     sega-genesis-smd-header
+
+# "Sega Mega Drive" header.
+0x280  string EAMG
+>8     beshort 0xAABB  Sega Mega Drive / Genesis ROM image (SMD format):
+>>0    use     sega-genesis-smd-header
 
 #------------------------------------------------------------------------------
-# genesis:  file(1) alternate magic for the Super MegaDrive ROM dump format
+# smsgg:  file(1) magic for Sega Master System and Game Gear ROM images
+# Detects all Game Gear and export Sega Master System ROM images,
+# and some Japanese Sega Master System ROM images.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: http://www.smspower.org/Development/ROMHeader
 #
-0x280 string EAMG  Super MagicDrive ROM dump
->0 byte x %dx16k blocks
->2 byte x \b, last in series or standalone
->8 byte 0xAA
->9 byte 0xBB
+
+# General SMS header rule.
+# The SMS boot ROM checks the header at three locations.
+0      name    sega-master-system-rom-header
+# Machine type.
+>0x0F  byte&0xF0       0x30    Sega Master System
+>0x0F  byte&0xF0       0x40    Sega Master System
+>0x0F  byte&0xF0       0x50    Sega Game Gear
+>0x0F  byte&0xF0       0x60    Sega Game Gear
+>0x0F  byte&0xF0       0x70    Sega Game Gear
+>0x0F  byte&0xF0       <0x30   Sega Master System / Game Gear
+>0x0F  byte&0xF0       >0x70   Sega Master System / Game Gear
+>0     byte            x       ROM image:
+# Product code.
+>0x0E  byte&0xF0       0x10    1
+>0x0E  byte&0xF0       0x20    2
+>0x0E  byte&0xF0       0x30    3
+>0x0E  byte&0xF0       0x40    4
+>0x0E  byte&0xF0       0x50    5
+>0x0E  byte&0xF0       0x60    6
+>0x0E  byte&0xF0       0x70    7
+>0x0E  byte&0xF0       0x80    8
+>0x0E  byte&0xF0       0x90    9
+>0x0E  byte&0xF0       0xA0    10
+>0x0E  byte&0xF0       0xB0    11
+>0x0E  byte&0xF0       0xC0    12
+>0x0E  byte&0xF0       0xD0    13
+>0x0E  byte&0xF0       0xE0    14
+>0x0E  byte&0xF0       0xF0    15
+# If the product code is 5 digits, we'll need to backspace here.
+>0x0E  byte&0xF0       !0
+>>0x0C leshort         x       \b%04x
+>0x0E  byte&0xF0       0
+>>0x0C leshort         x       %04x
+# Revision.
+>0x0E  byte&0x0F       x       (Rev.%02d)
+# ROM size. (Used for the boot ROM checksum routine.)
+>0x0F  byte&0x0F       0x0A    (8 KB)
+>0x0F  byte&0x0F       0x0B    (16 KB)
+>0x0F  byte&0x0F       0x0C    (32 KB)
+>0x0F  byte&0x0F       0x0D    (48 KB)
+>0x0F  byte&0x0F       0x0E    (64 KB)
+>0x0F  byte&0x0F       0x0F    (128 KB)
+>0x0F  byte&0x0F       0x00    (256 KB)
+>0x0F  byte&0x0F       0x01    (512 KB)
+>0x0F  byte&0x0F       0x02    (1 MB)
+
+# SMS/GG header locations.
+0x7FF0 string  TMR\ SEGA
+>0x7FF0        use     sega-master-system-rom-header
+0x3FF0 string  TMR\ SEGA
+>0x3FF0        use     sega-master-system-rom-header
+0x1FF0 string  TMR\ SEGA
+>0x1FF0        use     sega-master-system-rom-header
 
 #------------------------------------------------------------------------------
-# smsgg:  file(1) magic for Sega Master System and Game Gear ROM dumps
-#
-# Does not detect all images.  Very preliminary guesswork.  Need more data
-# on format.
+# saturn: file(1) magic for the Sega Saturn disc image format.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
 #
-# FIXME: need a little more info...;P
+
+# Common Sega Saturn disc header format.
+# NOTE: Title is 112 bytes, but we're only showing 32 due to space padding.
+# TODO: Release date, device information, region code, others?
+0      name    sega-saturn-disc-header
+>0x60  string  >\0     \b: "%.32s"
+>0x20  string  >\0     (%.10s
+>>0x2A string  >\0     \b, %.6s)
+>>0x2A byte    0       \b)
+
+# 2048-byte sector version.
+0      string  SEGA\ SEGASATURN\       Sega Saturn disc image
+>0     use     sega-saturn-disc-header
+>0     byte    x                       (2048-byte sectors)
+# 2352-byte sector version.
+0x10   string  SEGA\ SEGASATURN\       Sega Saturn disc image
+>0x10  use     sega-saturn-disc-header
+>0     byte    x                       (2352-byte sectors)
+
+#------------------------------------------------------------------------------
+# dreamcast: file(1) magic for the Sega Dreamcast disc image format.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: http://mc.pp.se/dc/ip0000.bin.html
 #
-#0 byte 0xF3
-#>1 byte 0xED  Sega Master System/Game Gear ROM dump
-#>1 byte 0x31  Sega Master System/Game Gear ROM dump
-#>1 byte 0xDB  Sega Master System/Game Gear ROM dump
-#>1 byte 0xAF  Sega Master System/Game Gear ROM dump
-#>1 byte 0xC3  Sega Master System/Game Gear ROM dump
+
+# Common Sega Dreamcast disc header format.
+# NOTE: Title is 128 bytes, but we're only showing 32 due to space padding.
+# TODO: Release date, device information, region code, others?
+0      name    sega-dreamcast-disc-header
+>0x80  string  >\0     \b: "%.32s"
+>0x40  string  >\0     (%.10s
+>>0x4A string  >\0     \b, %.6s)
+>>0x4A byte    0       \b)
+
+# 2048-byte sector version.
+0      string  SEGA\ SEGAKATANA\       Sega Dreamcast disc image
+>0     use     sega-dreamcast-disc-header
+>0     byte    x                       (2048-byte sectors)
+# 2352-byte sector version.
+0x10   string  SEGA\ SEGAKATANA\       Sega Dreamcast disc image
+>0x10  use     sega-dreamcast-disc-header
+>0     byte    x                       (2352-byte sectors)
 
 #------------------------------------------------------------------------------
 # dreamcast:  file(1) uncertain magic for the Sega Dreamcast VMU image format
 # 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"
+0      bequad  0x803712400000000F      Nintendo 64 ROM image
+>0x20  string  >\0     \b: "%.20s"
 >0x3B  string  x       (%.4s
 >0x3F  byte    x       \b, Rev.%02u)
 
 # 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"
+4      bequad  0x24FFAE51699AA221      Game Boy Advance ROM image
+>0xA0  string  >\0     \b: "%.12s"
 >0xAC  string  x       (%.6s
 >0xBC  byte    x       \b, Rev.%02u)
 
 # 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"
+0xC0   bequad  0x24FFAE51699AA221      Nintendo DS ROM image
+>0x00  string  >\0             \b: "%.12s"
 >0x0C  string  x               (%.6s
 >0x1E  byte    x               \b, Rev.%02u)
 >0x12  byte    2               (DSi enhanced)
 >0x12  byte    3               (DSi only)
 
+#------------------------------------------------------------------------------
+# nds_passme: file(1) magic for Nintendo DS ROM images for GBA cartridge boot.
+# This is also used for loading .nds files using the MSET exploit on 3DS.
+# Reference: https://github.com/devkitPro/ndstool/blob/master/source/ndscreate.cpp
+0xC0   bequad  0xC8604FE201708FE2      Nintendo DS Slot-2 ROM image (PassMe)
+
+#------------------------------------------------------------------------------
+# ngp: file(1) magic for the Neo Geo Pocket (Color) raw ROM format.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# References:
+# - https://neogpc.googlecode.com/svn-history/r10/trunk/src/core/neogpc.cpp
+# - http://www.devrs.com/ngp/files/ngpctech.txt
+#
+0x0A   string  BY\ SNK\ CORPORATION    Neo Geo Pocket
+>0x23  byte    0x10                    Color
+>0     byte    x                       ROM image
+>0x24  string  >\0                     \b: "%.12s"
+>0x1F  byte    0xFF                    (debug mode enabled)
+
 #------------------------------------------------------------------------------
 # msx: file(1) magic for MSX game cartridge dumps
 # Too simple - MPi
 # Reference: https://www.3dbrew.org/wiki/NCCH
 0              name            nintendo-3ds-NCCH
 >0x100         string          NCCH
->>0x150                string          x       %.16s
+>>0x150                string          >\0     \b: "%.16s"
 >>0x112                leshort         x       (v%u)
 >>0x18C                byte            2       (New3DS only)
 
 # From: David Korth <gerbilsoft@gerbilsoft.com>
 # Reference: https://www.3dbrew.org/wiki/NCSD
 0x100          string          NCSD
->0x118         lequad          0               Nintendo 3DS Game Card image:
+>0x118         lequad          0               Nintendo 3DS Game Card image
 >>0x1000       use             nintendo-3ds-NCCH
 >>0x18D                byte            0               (inner device)
 >>0x18D                byte            1               (Card1)
 # 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):
+>0x18D byte&2  0               File Archive (CFA)
+>0x18D byte&2  2               Executable Image (CXI)
 >0     use     nintendo-3ds-NCCH
 
 # Type: Nintendo 3DS "SMDH" file. (application description)
 # From: David Korth <gerbilsoft@gerbilsoft.com>
 # Refernece: https://3dbrew.org/wiki/3DSX_Format
 0      string  3DSX    Nintendo 3DS Homebrew Application (3DSX)
+
+#------------------------------------------------------------------------------
+# a7800: file(1) magic for the Atari 7800 raw ROM format.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: https://sites.google.com/site/atari7800wiki/a78-header
+
+0      byte    >0
+>0     byte    <3
+>>1    string  ATARI7800       Atari 7800 ROM image
+>>>0x11        string  >\0     \b: "%.32s"
+# Display type.
+>>>0x39        byte    0       (NTSC)
+>>>0x39        byte    1       (PAL)
+>>>0x36        byte&1  1       (POKEY)
+
+#------------------------------------------------------------------------------
+# vectrex: file(1) magic for the GCE Vectrex raw ROM format.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# Reference: http://www.playvectrex.com/designit/chrissalo/hello1.htm
+#
+# NOTE: Title is terminated with 0x80, not 0.
+# The header is terminated with a 0, so that will
+# terminate the title as well.
+#
+0      string  g\ GCE  Vectrex ROM image
+>0x11  string  >\0     \b: "%.16s"
index 8011b5407e4dfa8e0c7a2b54c1dba4d1e0e6cc0e..d084da7812566b9d82e2b0cccf7ec4ffbd5edcda 100644 (file)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: images,v 1.115 2016/03/16 14:41:39 christos Exp $
+# $File: images,v 1.116 2016/03/23 15:29:20 christos Exp $
 # images:  file(1) magic for image formats (see also "iff", and "c-lang" for
 # XPM bitmaps)
 #
 0              string          farbfeld        farbfeld image data,
 >8             ubelong         x               %dx
 >12            ubelong         x               \b%d
+
+# Type: Sega PVR image.
+# From: David Korth <gerbilsoft@gerbilsoft.com>
+# References:
+# - http://fabiensanglard.net/Mykaruga/tools/segaPVRFormat.txt
+# - https://github.com/yazgoo/pvrx2png
+# - https://github.com/nickworonekin/puyotools
+
+# Sega PVR header.
+0      name    sega-pvr-image-header
+>0x0C  leshort x       %d x
+>0x0E  leshort x       %d
+# Image format.
+>0x08  byte    0       \b, ARGB1555
+>0x08  byte    1       \b, RGB565
+>0x08  byte    2       \b, ARGB4444
+>0x08  byte    3       \b, YUV442
+>0x08  byte    4       \b, Bump
+>0x08  byte    5       \b, 4bpp
+>0x08  byte    6       \b, 8bpp
+# Image data type.
+>0x09  byte    0x01    \b, square twiddled
+>0x09  byte    0x02    \b, square twiddled & mipmap
+>0x09  byte    0x03    \b, VQ
+>0x09  byte    0x04    \b, VQ & mipmap
+>0x09  byte    0x05    \b, 8-bit CLUT twiddled
+>0x09  byte    0x06    \b, 4-bit CLUT twiddled
+>0x09  byte    0x07    \b, 8-bit direct twiddled
+>0x09  byte    0x08    \b, 4-bit direct twiddled
+>0x09  byte    0x09    \b, rectangle
+>0x09  byte    0x0B    \b, rectangular stride
+>0x09  byte    0x0D    \b, rectangular twiddled
+>0x09  byte    0x10    \b, small VQ
+>0x09  byte    0x11    \b, small VQ & mipmap
+>0x09  byte    0x12    \b, square twiddled & mipmap
+
+# Sega PVR (Xbox) image header.
+# Contains an embedded DirectDraw surface instead of PVR data.
+0      name    sega-pvr-xbox-dds-header
+>16    lelong  x       %d x
+>12    lelong  x       %d,
+>84    string  x       %.4s
+
+# Sega PVR image.
+0      string  PVRT
+>0x10  string  DDS\040\174\000\000\000 Sega PVR (Xbox) image:
+>>0x20 use     sega-pvr-xbox-dds-header
+>0x10  belong  !0x44445320             Sega PVR image:
+>>0    use     sega-pvr-image-header
+
+# Sega PVR image with GBIX.
+0      string  GBIX
+>0x10  string  PVRT
+>>0x10 string  DDS\040\174\000\000\000 Sega PVR (Xbox) image:
+>>>0x20        use     sega-pvr-xbox-dds-header
+>>0x10 belong  !0x44445320             Sega PVR image:
+>>>0x10        use     sega-pvr-image-header
+>>0x08 lelong  x       \b, global index = %u
+
+# Sega GVR header.
+0      name    sega-gvr-image-header
+>0x0C  beshort x       %d x
+>0x0E  beshort x       %d
+# Image data format.
+>0x0B  byte    0       \b, I4
+>0x0B  byte    1       \b, I8
+>0x0B  byte    2       \b, IA4
+>0x0B  byte    3       \b, IA8
+>0x0B  byte    4       \b, RGB565
+>0x0B  byte    5       \b, RGB5A3
+>0x0B  byte    6       \b, ARGB8888
+>0x0B  byte    8       \b, CI4
+>0x0B  byte    9       \b, CI8
+>0x0B  byte    14      \b, DXT1
+
+# Sega GVR image.
+0      string  GVRT    Sega GVR image:
+>0x10  use     sega-gvr-image-header
+
+# Sega GVR image with GBIX.
+0      string  GBIX
+>0x10  string  GVRT    Sega GVR image:
+>>0x10 use     sega-gvr-image-header
+>>0x08 belong  x       \b, global index = %u