-
Notifications
You must be signed in to change notification settings - Fork 13
Copier Headers
Copier headers are extra pieces of information that are included in some dumped ROM images, usually at the beginning. Sometimes, these are used to determine what hardware or program dumped them, but in other cases, they can be shorthand ways of determing original media information that isn't normally stored in the data. Header skippers are XML files that include information on how to detect these headers and other data transformations so that managers can compare only against the actual data. Below is a brief description of each supported skipper as well as the XML implementation included in the repository.
a7800 or a7800.xml
Atari 7800 copier headers take up 0x80 bytes at the start of the file.
<?xml version="1.0"?>
<detector>
<name>Atari 7800</name>
<author>Roman Scherzer</author>
<version>1.0</version>
<rule start_offset="80" end_offset="EOF" operation="none">
<data offset="1" value="415441524937383030" result="true"/>
</rule>
<rule start_offset="80" end_offset="EOF" operation="none">
<data offset="64" value="41435455414C20434152542044415441205354415254532048455245" result="true"/>
</rule>
</detector>lynx or lynx.xml
Atari Lynx copier headers take up up 0x40 bytes at the start of the file.
<?xml version="1.0"?>
<detector>
<name>Atari Lynx</name>
<author>Roman Scherzer</author>
<version>1.0</version>
<rule start_offset="40" end_offset="EOF" operation="none">
<data offset="0" value="4C594E58" result="true"/>
</rule>
<rule start_offset="40" end_offset="EOF" operation="none">
<data offset="6" value="425339" result="true"/>
</rule>
</detector>psid or psid.xml
Commodore PSID music headers take up a variable amount of byte at the start of the file, either 0x76 or 0x7c bytes.
<?xml version="1.0"?>
<detector>
<name>psid</name>
<author>Yori Yoshizuki</author>
<version>1.2</version>
<rule start_offset="76" end_offset="EOF" operation="none">
<data offset="0" value="5053494400010076" result="true"/>
</rule>
<rule start_offset="76" end_offset="EOF" operation="none">
<data offset="0" value="505349440003007c" result="true"/>
</rule>
<rule start_offset="7c" end_offset="EOF" operation="none">
<data offset="0" value="505349440002007c" result="true"/>
</rule>
<rule start_offset="7c" end_offset="EOF" operation="none">
<data offset="0" value="505349440001007c" result="true"/>
</rule>
<rule start_offset="7c" end_offset="EOF" operation="none">
<data offset="0" value="525349440002007c" result="true"/>
</rule>
</detector>pce or pce.xml
NEC PC-Engine / TurboGrafx 16 headers take up 0x200 bytes at the start of the file.
<?xml version="1.0"?>
<detector>
<name>NEC TurboGrafx-16/PC-Engine</name>
<author>Matt Nadareski (darksabre76)</author>
<version>1.0</version>
<rule start_offset="200">
<data offset="0" value="4000000000000000AABB02"/>
</rule>
</detector>
n64 or n64.xml
Nintendo 64 does not have copier headers, rather the byte order is what can be different between files.
<?xml version="1.0"?>
<detector>
<name>Nintendo 64 - ABCD</name>
<author>CUE</author>
<version>1.1</version>
<!-- V64 format -->
<rule start_offset="0" end_offset="EOF" operation="none">
<data offset="0" value="80371240" result="true"/>
</rule>
<!-- Z64 format -->
<rule start_offset="0" end_offset="EOF" operation="byteswap">
<data offset="0" value="37804012" result="true"/>
</rule>
<!-- N64 format? -->
<rule start_offset="0" end_offset="EOF" operation="wordswap">
<data offset="0" value="40123780" result="true"/>
</rule>
</detector>nes or nes.xml
Nintendo Famicom / Nintendo Entertainment System headers (commonly referred to as "iNES" headers due to the program that popularized them) take up 0x10 bytes at the start of the file.
<?xml version="1.0"?>
<detector>
<name>Nintendo Famicon/NES</name>
<author>Roman Scherzer</author>
<version>1.1</version>
<rule start_offset="10" end_offset="EOF" operation="none">
<data offset="0" value="4E45531A" result="true"/>
</rule>
</detector>fds or fds.xml
Nintendo Famicom Disk System headers take up 0x10 bytes at the start of the file.
<?xml version="1.0"?>
<detector>
<name>fds</name>
<author>Yori Yoshizuki</author>
<version>1.0</version>
<rule start_offset="10">
<data offset="0" value="4644531A010000000000000000000000"/>
</rule>
<rule start_offset="10">
<data offset="0" value="4644531A020000000000000000000000"/>
</rule>
<rule start_offset="10">
<data offset="0" value="4644531A030000000000000000000000"/>
</rule>
<rule start_offset="10">
<data offset="0" value="4644531A040000000000000000000000"/>
</rule>
</detector>snes or snes.xml
Nintendo Super Famicom / Super Nintendo Entertainment System headers take up 0x200 bytes at the start of the file.
<?xml version="1.0"?>
<detector>
<name>Nintendo Super Famicom/SNES</name>
<author>Matt Nadareski (darksabre76)</author>
<version>1.0</version>
<!-- fig header -->
<rule start_offset="200">
<data offset="16" value="0000000000000000"/>
</rule>
<!-- smc header -->
<rule start_offset="200">
<data offset="16" value="AABB040000000000"/>
</rule>
<!-- ufo header -->
<rule start_offset="200">
<data offset="16" value="535550455255464F"/>
</rule>
</detector>spc or spc.xml
Nintendo Super Famicom / Super Nintendo Entertainment System SPC Music headers take up 0x100 bytes at the start of the file.
<?xml version="1.0"?>
<detector>
<name>Nintendo Super Famicon SPC</name>
<author>Yori Yoshizuki</author>
<version>1.0</version>
<rule start_offset="00100" end_offset="EOF" operation="none">
<data offset="0" value="534E45532D535043" result="true"/>
</rule>
</detector>- Introduction
- Feature Overviews
- Auxiliary Information
- Development Information