NES Tags are commands used by the NES Emulator in N64 & GC Animal Crossing games.
They tell the emulator to set specific settings for the ROM that is being loaded.
This page contains a list of all tags with a description and argument list for each one.
END End |
Signals the end of command tags. Terminates the parser immediately. |
---|
VEQ Version Equals |
If the byte Version is greater than 0, the next tag will be skipped. Argument #1: byte Version |
---|
VNE Version Not Equal |
If the byte Version is 0, the next tag will be skipped. Argument #1: byte Version |
---|
GID Game ID |
The ID of the game. Can be anything. Argument #1: char[] GameId |
---|
GNM Game Name |
The name of the game. Can be anything. Argument #1: char[] GameName |
---|
CPN Controller Pack Name |
The name of the game's save data. Can be anything. Argument #1: char[] ControllerPackName |
---|
OFS Offset |
Sets the write offset/size used in various other tags. Argument #1: ushort Offset |
---|
HSC High Scores |
Tells the emulator that specific area(s) of the ROM should be treated as a high score. If it is the first time loading the game, DefaultValues will be copied starting at CurrentOffset + Offset. Argument #1: ushort Offset Argument #2: char[] DefaultValues |
---|
GNO Game Number |
Sets the ROM's game number. This value is used to pull high scores from save data. Limited to between 0 and 31. Argument #1: byte GameNumber |
---|
BBR Battery Backup |
Tells the emulator to save an area of RAM as battery backed up memory. Used for storing save data. Offset is added to the current offset value. Argument #1: ushort Offset Argument #2: ushort Size |
---|
QDS Quick Disk Save |
Tells the emulator to save an area of RAM as a Famicom Quick Disk save file. Used for storing save data. OffsetUpper and OffsetLower are concatenated to make a 24-bit value that is added to the current offset value. Argument #1: byte OffsetUpper Argument #2: ushort OffsetLower Argument #3: ushort Size |
---|
SPE Special |
Sets up specific patches to the currently loaded ROM. Only used in The Legend of Zelda. |
---|
TCS Tags Checksum |
Calculates a checksum for the tag data. If the additive checksum isn't equal to 0, the tags are considered corrupted & the parser immediately stops execution. Argument #1: ushort TagsChecksumInverse |
---|
ICS Image Checksum |
Calculates a checksum for the NES ROM Image. If the additive checksum isn't equal to 0, the ROM is considered corrupted. Argument #1: ushort ImageChecksumInverse |
---|
ESZ Expanded Size |
Sets the emulator's ROM expanded size parameter. ExpandSize is the expanded size shifted right by 4. Argument #1: ushort ExpandSize |
---|
ROM ROM Data Reference |
Loads another NES ROM from the internal list using RomId to determine which ROM to load. The original tags for the ROM loaded are not used. Argument #1: byte RomId |
---|
MOV Move Data (Block Transfer) |
Moves a section of data in the ROM from one location to another. WriteAddress and ReadAddress are shifted right by four. Argument #1: ushort WriteAddress Argument #2: ushort ReadAddress Argument #3: ushort Size |
---|
NHD NES Header Data |
Copies HeaderData to the iNES ROM's header. The size of the copy is determined by the Tag's argument size byte. Argument #1: byte[] HeaderData |
---|
DIF Difference |
Patches multiple sections of the ROM using data from DifferenceData. This command supports multiple changes. To end the changes, set the final OffsetFromLastDifference to 0xFFFFFFFF. Argument #1: uint OffsetFromLastDifference Argument #2: int DifferenceSize Argument #3: byte[] DifferenceData Repeats |
---|
PAT Patch |
Writes PatchData to a memory address which is calculated using PatchType and PatchOffset.
Argument #1: byte PatchType
[N64] If PatchType is 1, the write address is set to the address of enables[PatchOffset]. If PatchType is 2, the write address will be the address of the ROM + PatchOffset. [N64] If PatchType is 3, the write address is set to osAppNMIBuffer + PatchOffset. [GC] If PatchType is 3, the patch is skipped. [N64] If PatchType is 4, the write address is set to _ovl_famicom_emuSegmentTextStart + PatchOffset * 4. [N64] If PatchType is 5, the write address is set to _ovl_famicom_emuSegmentDataStart + PatchOffset * 4. [N64] If PatchType is 6, the write address is set to _ovl_famicom_emuSegmentBssStart + PatchOffset * 4. [GC] If PatchType is 9, the write address will be the address of the ROM + PatchOffset << 4. If PatchType is >= 0x80, the write address will be ((0x7F80 + PatchType) << 16) | PatchOffset.Argument #2: byte PatchSize Has a maximum size of 0xFB. A Tag's argument max length is 0xFF and the arguments take up the first four bytes.Argument #3: ushort PatchOffset Argument #4: byte[] PatchData |
---|
PAD Padding |
Used as padding for alignment. Does not affect anything. Argument #1: byte[] Padding |
---|
Unused Tags
FIL WRAM Initialization Fill Data |
Copies data to initialize WRAM. Unused in GC titles. Argument #1: byte* FillDataPtr |
---|
ISZ Image Size |
Specifies the size of the ROM image. It is unused in all versions. Argument #1: ushort ImageSize |
---|
IFM Image Format |
The ROM Image format. Goes unused in all versions. Argument #1: byte ImageFormat |
---|
REM Remarks |
Holds comments about the ROM. Argument #1: char[] Remarks |
---|
APL Application Info |
Holds information about the ROM image for use in other applications. Goes unused in the emulator. Argument #1: byte[] Info |
---|
FGN Full Game Name |
The full game name in Shift-JIS encoding. Unused in emulator. Argument #1: byte[] FullGameName |
---|