1835f6802SDirk Vogt 2ef01931fSBen Gras#------------------------------------------------------------------------------ 3*84d9c625SLionel Sambuc# $File: console,v 1.19 2013/02/06 14:18:52 christos Exp $ 4ef01931fSBen Gras# Console game magic 5ef01931fSBen Gras# Toby Deshane <hac@shoelace.digivill.net> 6ef01931fSBen Gras# ines: file(1) magic for Marat's iNES Nintendo Entertainment System 7ef01931fSBen Gras# ROM dump format 8ef01931fSBen Gras 9ef01931fSBen Gras0 string NES\032 iNES ROM dump, 10ef01931fSBen Gras>4 byte x %dx16k PRG 11ef01931fSBen Gras>5 byte x \b, %dx8k CHR 12ef01931fSBen Gras>6 byte&0x01 =0x1 \b, [Vert.] 13ef01931fSBen Gras>6 byte&0x01 =0x0 \b, [Horiz.] 14ef01931fSBen Gras>6 byte&0x02 =0x2 \b, [SRAM] 15ef01931fSBen Gras>6 byte&0x04 =0x4 \b, [Trainer] 16ef01931fSBen Gras>6 byte&0x04 =0x8 \b, [4-Scr] 17ef01931fSBen Gras 18ef01931fSBen Gras#------------------------------------------------------------------------------ 19ef01931fSBen Gras# gameboy: file(1) magic for the Nintendo (Color) Gameboy raw ROM format 20ef01931fSBen Gras# 21ef01931fSBen Gras0x104 belong 0xCEED6666 Gameboy ROM: 22ef01931fSBen Gras>0x134 string >\0 "%.16s" 23ef01931fSBen Gras>0x146 byte 0x03 \b,[SGB] 24ef01931fSBen Gras>0x147 byte 0x00 \b, [ROM ONLY] 25ef01931fSBen Gras>0x147 byte 0x01 \b, [ROM+MBC1] 26ef01931fSBen Gras>0x147 byte 0x02 \b, [ROM+MBC1+RAM] 27ef01931fSBen Gras>0x147 byte 0x03 \b, [ROM+MBC1+RAM+BATT] 28ef01931fSBen Gras>0x147 byte 0x05 \b, [ROM+MBC2] 29ef01931fSBen Gras>0x147 byte 0x06 \b, [ROM+MBC2+BATTERY] 30ef01931fSBen Gras>0x147 byte 0x08 \b, [ROM+RAM] 31ef01931fSBen Gras>0x147 byte 0x09 \b, [ROM+RAM+BATTERY] 32ef01931fSBen Gras>0x147 byte 0x0B \b, [ROM+MMM01] 33ef01931fSBen Gras>0x147 byte 0x0C \b, [ROM+MMM01+SRAM] 34ef01931fSBen Gras>0x147 byte 0x0D \b, [ROM+MMM01+SRAM+BATT] 35ef01931fSBen Gras>0x147 byte 0x0F \b, [ROM+MBC3+TIMER+BATT] 36ef01931fSBen Gras>0x147 byte 0x10 \b, [ROM+MBC3+TIMER+RAM+BATT] 37ef01931fSBen Gras>0x147 byte 0x11 \b, [ROM+MBC3] 38ef01931fSBen Gras>0x147 byte 0x12 \b, [ROM+MBC3+RAM] 39ef01931fSBen Gras>0x147 byte 0x13 \b, [ROM+MBC3+RAM+BATT] 40ef01931fSBen Gras>0x147 byte 0x19 \b, [ROM+MBC5] 41ef01931fSBen Gras>0x147 byte 0x1A \b, [ROM+MBC5+RAM] 42ef01931fSBen Gras>0x147 byte 0x1B \b, [ROM+MBC5+RAM+BATT] 43ef01931fSBen Gras>0x147 byte 0x1C \b, [ROM+MBC5+RUMBLE] 44ef01931fSBen Gras>0x147 byte 0x1D \b, [ROM+MBC5+RUMBLE+SRAM] 45ef01931fSBen Gras>0x147 byte 0x1E \b, [ROM+MBC5+RUMBLE+SRAM+BATT] 46ef01931fSBen Gras>0x147 byte 0x1F \b, [Pocket Camera] 47ef01931fSBen Gras>0x147 byte 0xFD \b, [Bandai TAMA5] 48ef01931fSBen Gras>0x147 byte 0xFE \b, [Hudson HuC-3] 49ef01931fSBen Gras>0x147 byte 0xFF \b, [Hudson HuC-1] 50ef01931fSBen Gras 51ef01931fSBen Gras>0x148 byte 0 \b, ROM: 256Kbit 52ef01931fSBen Gras>0x148 byte 1 \b, ROM: 512Kbit 53ef01931fSBen Gras>0x148 byte 2 \b, ROM: 1Mbit 54ef01931fSBen Gras>0x148 byte 3 \b, ROM: 2Mbit 55ef01931fSBen Gras>0x148 byte 4 \b, ROM: 4Mbit 56ef01931fSBen Gras>0x148 byte 5 \b, ROM: 8Mbit 57ef01931fSBen Gras>0x148 byte 6 \b, ROM: 16Mbit 58ef01931fSBen Gras>0x148 byte 0x52 \b, ROM: 9Mbit 59ef01931fSBen Gras>0x148 byte 0x53 \b, ROM: 10Mbit 60ef01931fSBen Gras>0x148 byte 0x54 \b, ROM: 12Mbit 61ef01931fSBen Gras 62ef01931fSBen Gras>0x149 byte 1 \b, RAM: 16Kbit 63ef01931fSBen Gras>0x149 byte 2 \b, RAM: 64Kbit 64ef01931fSBen Gras>0x149 byte 3 \b, RAM: 128Kbit 65ef01931fSBen Gras>0x149 byte 4 \b, RAM: 1Mbit 66ef01931fSBen Gras 67ef01931fSBen Gras#>0x14e long x \b, CRC: %x 68ef01931fSBen Gras 69ef01931fSBen Gras#------------------------------------------------------------------------------ 70ef01931fSBen Gras# genesis: file(1) magic for the Sega MegaDrive/Genesis raw ROM format 71ef01931fSBen Gras# 72ef01931fSBen Gras0x100 string SEGA Sega MegaDrive/Genesis raw ROM dump 73ef01931fSBen Gras>0x120 string >\0 Name: "%.16s" 74ef01931fSBen Gras>0x110 string >\0 %.16s 75ef01931fSBen Gras>0x1B0 string RA with SRAM 76ef01931fSBen Gras 77ef01931fSBen Gras#------------------------------------------------------------------------------ 78ef01931fSBen Gras# genesis: file(1) magic for the Super MegaDrive ROM dump format 79ef01931fSBen Gras# 80ef01931fSBen Gras0x280 string EAGN Super MagicDrive ROM dump 81ef01931fSBen Gras>0 byte x %dx16k blocks 82ef01931fSBen Gras>2 byte 0 \b, last in series or standalone 83ef01931fSBen Gras>2 byte >0 \b, split ROM 84ef01931fSBen Gras>8 byte 0xAA 85ef01931fSBen Gras>9 byte 0xBB 86ef01931fSBen Gras 87ef01931fSBen Gras#------------------------------------------------------------------------------ 88ef01931fSBen Gras# genesis: file(1) alternate magic for the Super MegaDrive ROM dump format 89ef01931fSBen Gras# 90ef01931fSBen Gras0x280 string EAMG Super MagicDrive ROM dump 91ef01931fSBen Gras>0 byte x %dx16k blocks 92ef01931fSBen Gras>2 byte x \b, last in series or standalone 93ef01931fSBen Gras>8 byte 0xAA 94ef01931fSBen Gras>9 byte 0xBB 95ef01931fSBen Gras 96ef01931fSBen Gras#------------------------------------------------------------------------------ 97ef01931fSBen Gras# smsgg: file(1) magic for Sega Master System and Game Gear ROM dumps 98ef01931fSBen Gras# 99ef01931fSBen Gras# Does not detect all images. Very preliminary guesswork. Need more data 100ef01931fSBen Gras# on format. 101ef01931fSBen Gras# 102ef01931fSBen Gras# FIXME: need a little more info...;P 103ef01931fSBen Gras# 104ef01931fSBen Gras#0 byte 0xF3 105ef01931fSBen Gras#>1 byte 0xED Sega Master System/Game Gear ROM dump 106ef01931fSBen Gras#>1 byte 0x31 Sega Master System/Game Gear ROM dump 107ef01931fSBen Gras#>1 byte 0xDB Sega Master System/Game Gear ROM dump 108ef01931fSBen Gras#>1 byte 0xAF Sega Master System/Game Gear ROM dump 109ef01931fSBen Gras#>1 byte 0xC3 Sega Master System/Game Gear ROM dump 110ef01931fSBen Gras 111ef01931fSBen Gras#------------------------------------------------------------------------------ 112ef01931fSBen Gras# dreamcast: file(1) uncertain magic for the Sega Dreamcast VMU image format 113ef01931fSBen Gras# 114ef01931fSBen Gras0 belong 0x21068028 Sega Dreamcast VMU game image 115ef01931fSBen Gras0 string LCDi Dream Animator file 116ef01931fSBen Gras 117ef01931fSBen Gras#------------------------------------------------------------------------------ 118ef01931fSBen Gras# v64: file(1) uncertain magic for the V64 format N64 ROM dumps 119ef01931fSBen Gras# 120ef01931fSBen Gras0 belong 0x37804012 V64 Nintendo 64 ROM dump 121ef01931fSBen Gras 122ef01931fSBen Gras# From: "Nelson A. de Oliveira" <naoliv@gmail.com> 123ef01931fSBen Gras# Nintendo .nds 124ef01931fSBen Gras192 string \044\377\256Qi\232 Nintendo DS Game ROM Image 125ef01931fSBen Gras# Nintendo .gba 126ef01931fSBen Gras0 string \056\000\000\352$\377\256Qi Nintendo Game Boy Advance ROM Image 127ef01931fSBen Gras 128ef01931fSBen Gras#------------------------------------------------------------------------------ 129ef01931fSBen Gras# msx: file(1) magic for MSX game cartridge dumps 130ef01931fSBen Gras# Too simple - MPi 131ef01931fSBen Gras#0 beshort 0x4142 MSX game cartridge dump 132ef01931fSBen Gras 133ef01931fSBen Gras#------------------------------------------------------------------------------ 134ef01931fSBen Gras# Sony Playstation executables (Adam Sjoegren <asjo@diku.dk>) : 135ef01931fSBen Gras0 string PS-X\ EXE Sony Playstation executable 136ef01931fSBen Gras# Area: 137ef01931fSBen Gras>113 string x (%s) 138ef01931fSBen Gras 139ef01931fSBen Gras#------------------------------------------------------------------------------ 140*84d9c625SLionel Sambuc# Microsoft Xbox executables .xbe (Esa Hyytia <ehyytia@cc.hut.fi>) 141ef01931fSBen Gras0 string XBEH XBE, Microsoft Xbox executable 142ef01931fSBen Gras# probabilistic checks whether signed or not 143ef01931fSBen Gras>0x0004 ulelong =0x0 144ef01931fSBen Gras>>&2 ulelong =0x0 145ef01931fSBen Gras>>>&2 ulelong =0x0 \b, not signed 146ef01931fSBen Gras>0x0004 ulelong >0 147ef01931fSBen Gras>>&2 ulelong >0 148ef01931fSBen Gras>>>&2 ulelong >0 \b, signed 149ef01931fSBen Gras# expect base address of 0x10000 150ef01931fSBen Gras>0x0104 ulelong =0x10000 151ef01931fSBen Gras>>(0x0118-0x0FF60) ulelong&0x80000007 0x80000007 \b, all regions 152ef01931fSBen Gras>>(0x0118-0x0FF60) ulelong&0x80000007 !0x80000007 153ef01931fSBen Gras>>>(0x0118-0x0FF60) ulelong >0 (regions: 154ef01931fSBen Gras>>>>(0x0118-0x0FF60) ulelong &0x00000001 NA 155ef01931fSBen Gras>>>>(0x0118-0x0FF60) ulelong &0x00000002 Japan 156ef01931fSBen Gras>>>>(0x0118-0x0FF60) ulelong &0x00000004 Rest_of_World 157ef01931fSBen Gras>>>>(0x0118-0x0FF60) ulelong &0x80000000 Manufacturer 158ef01931fSBen Gras>>>(0x0118-0x0FF60) ulelong >0 \b) 159ef01931fSBen Gras 160ef01931fSBen Gras# -------------------------------- 161ef01931fSBen Gras# Microsoft Xbox data file formats 162ef01931fSBen Gras0 string XIP0 XIP, Microsoft Xbox data 163ef01931fSBen Gras0 string XTF0 XTF, Microsoft Xbox data 164ef01931fSBen Gras 165ef01931fSBen Gras# Atari Lynx cartridge dump (EXE/BLL header) 166ef01931fSBen Gras# From: "Stefan A. Haubenthal" <polluks@web.de> 167ef01931fSBen Gras 168835f6802SDirk Vogt# Double-check that the image type matches too, 0x8008 conflicts with 169835f6802SDirk Vogt# 8 character OMF-86 object file headers. 170835f6802SDirk Vogt0 beshort 0x8008 171835f6802SDirk Vogt>6 string BS93 Lynx homebrew cartridge 172835f6802SDirk Vogt>>2 beshort x \b, RAM start $%04x 173835f6802SDirk Vogt>6 string LYNX Lynx cartridge 174835f6802SDirk Vogt>>2 beshort x \b, RAM start $%04x 175ef01931fSBen Gras 176ef01931fSBen Gras# Opera file system that is used on the 3DO console 177ef01931fSBen Gras# From: Serge van den Boom <svdb@stack.nl> 178ef01931fSBen Gras0 string \x01ZZZZZ\x01 3DO "Opera" file system 179ef01931fSBen Gras 180*84d9c625SLionel Sambuc# From Gurkan Sengun <gurkan@linuks.mine.nu>, www.linuks.mine.nu 181ef01931fSBen Gras0 string GBS Nintendo Gameboy Music/Audio Data 182ef01931fSBen Gras12 string GameBoy\ Music\ Module Nintendo Gameboy Music Module 183ef01931fSBen Gras 184ef01931fSBen Gras# Playstations Patch Files from: From: Thomas Klausner <tk@giga.or.at> 185ef01931fSBen Gras0 string PPF30 Playstation Patch File version 3.0 186ef01931fSBen Gras>5 byte 0 \b, PPF 1.0 patch 187ef01931fSBen Gras>5 byte 1 \b, PPF 2.0 patch 188ef01931fSBen Gras>5 byte 2 \b, PPF 3.0 patch 189ef01931fSBen Gras>>56 byte 0 \b, Imagetype BIN (any) 190ef01931fSBen Gras>>56 byte 1 \b, Imagetype GI (PrimoDVD) 191ef01931fSBen Gras>>57 byte 0 \b, Blockcheck disabled 192ef01931fSBen Gras>>57 byte 1 \b, Blockcheck enabled 193ef01931fSBen Gras>>58 byte 0 \b, Undo data not available 194ef01931fSBen Gras>>58 byte 1 \b, Undo data available 195ef01931fSBen Gras>6 string x \b, description: %s 196ef01931fSBen Gras 197ef01931fSBen Gras0 string PPF20 Playstation Patch File version 2.0 198ef01931fSBen Gras>5 byte 0 \b, PPF 1.0 patch 199ef01931fSBen Gras>5 byte 1 \b, PPF 2.0 patch 200ef01931fSBen Gras>>56 lelong >0 \b, size of file to patch %d 201ef01931fSBen Gras>6 string x \b, description: %s 202ef01931fSBen Gras 203ef01931fSBen Gras0 string PPF10 Playstation Patch File version 1.0 204ef01931fSBen Gras>5 byte 0 \b, Simple Encoding 205ef01931fSBen Gras>6 string x \b, description: %s 206ef01931fSBen Gras 207ef01931fSBen Gras# From: Daniel Dawson <ddawson@icehouse.net> 208ef01931fSBen Gras# SNES9x .smv "movie" file format. 209ef01931fSBen Gras0 string SMV\x1A SNES9x input recording 210ef01931fSBen Gras>0x4 lelong x \b, version %d 211ef01931fSBen Gras# version 4 is latest so far 212ef01931fSBen Gras>0x4 lelong <5 213ef01931fSBen Gras>>0x8 ledate x \b, recorded at %s 214ef01931fSBen Gras>>0xc lelong >0 \b, rerecorded %d times 215ef01931fSBen Gras>>0x10 lelong x \b, %d frames long 216ef01931fSBen Gras>>0x14 byte >0 \b, data for controller(s): 217ef01931fSBen Gras>>>0x14 byte &0x1 #1 218ef01931fSBen Gras>>>0x14 byte &0x2 #2 219ef01931fSBen Gras>>>0x14 byte &0x4 #3 220ef01931fSBen Gras>>>0x14 byte &0x8 #4 221ef01931fSBen Gras>>>0x14 byte &0x10 #5 222ef01931fSBen Gras>>0x15 byte ^0x1 \b, begins from snapshot 223ef01931fSBen Gras>>0x15 byte &0x1 \b, begins from reset 224ef01931fSBen Gras>>0x15 byte ^0x2 \b, NTSC standard 225ef01931fSBen Gras>>0x15 byte &0x2 \b, PAL standard 226ef01931fSBen Gras>>0x17 byte &0x1 \b, settings: 227ef01931fSBen Gras# WIP1Timing not used as of version 4 228ef01931fSBen Gras>>>0x4 lelong <4 229ef01931fSBen Gras>>>>0x17 byte &0x2 WIP1Timing 230ef01931fSBen Gras>>>0x17 byte &0x4 Left+Right 231ef01931fSBen Gras>>>0x17 byte &0x8 VolumeEnvX 232ef01931fSBen Gras>>>0x17 byte &0x10 FakeMute 233ef01931fSBen Gras>>>0x17 byte &0x20 SyncSound 234ef01931fSBen Gras# New flag as of version 4 235ef01931fSBen Gras>>>0x4 lelong >3 236ef01931fSBen Gras>>>>0x17 byte &0x80 NoCPUShutdown 237ef01931fSBen Gras>>0x4 lelong <4 238ef01931fSBen Gras>>>0x18 lelong >0x23 239ef01931fSBen Gras>>>>0x20 leshort !0 240ef01931fSBen Gras>>>>>0x20 lestring16 x \b, metadata: "%s" 241ef01931fSBen Gras>>0x4 lelong >3 242ef01931fSBen Gras>>>0x24 byte >0 \b, port 1: 243ef01931fSBen Gras>>>>0x24 byte 1 joypad 244ef01931fSBen Gras>>>>0x24 byte 2 mouse 245ef01931fSBen Gras>>>>0x24 byte 3 SuperScope 246ef01931fSBen Gras>>>>0x24 byte 4 Justifier 247ef01931fSBen Gras>>>>0x24 byte 5 multitap 248ef01931fSBen Gras>>>0x24 byte >0 \b, port 2: 249ef01931fSBen Gras>>>>0x25 byte 1 joypad 250ef01931fSBen Gras>>>>0x25 byte 2 mouse 251ef01931fSBen Gras>>>>0x25 byte 3 SuperScope 252ef01931fSBen Gras>>>>0x25 byte 4 Justifier 253ef01931fSBen Gras>>>>0x25 byte 5 multitap 254ef01931fSBen Gras>>>0x18 lelong >0x43 255ef01931fSBen Gras>>>>0x40 leshort !0 256ef01931fSBen Gras>>>>>0x40 lestring16 x \b, metadata: "%s" 257ef01931fSBen Gras>>0x17 byte &0x40 \b, ROM: 258ef01931fSBen Gras>>>(0x18.l-26) lelong x CRC32 0x%08x 259ef01931fSBen Gras>>>(0x18.l-23) string x "%s" 260ef01931fSBen Gras 261835f6802SDirk Vogt# Type: scummVM savegame files 262835f6802SDirk Vogt# From: Sven Hartge <debian@ds9.argh.org> 263835f6802SDirk Vogt0 string SCVM ScummVM savegame 264835f6802SDirk Vogt>12 string >\0 "%s" 265