nes_plugin
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | nes_plugin [2008/11/25 20:40] (current) – created romcenter | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | From [[http:// | ||
+ | |||
+ | ===== Cartridge ROM-Image File Formats ===== | ||
+ | |||
+ | ==== iNES Format (.NES) ==== | ||
+ | |||
+ | This fileformat and mapper-numbers have been designed/ | ||
+ | 00h File ID (' | ||
+ | 04h Number of 16K PRG-ROM pages | ||
+ | 05h Number of 8K CHR-ROM pages (00h=None / VRAM) | ||
+ | 06h Cartridge Type LSB | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 07h Cartridge Type MSB (ignore this and further bytes if Byte 0Fh nonzero) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 08h Number of 8K RAM (SRAM?) pages (usually 00h=None-or-not-specified) | ||
+ | 09h Reserved (zero) | ||
+ | 0Ah Reserved (zero) (sometimes 03h, | ||
+ | 0Bh Reserved (zero) | ||
+ | 0Ch Reserved (zero) | ||
+ | 0Dh Reserved (zero) | ||
+ | 0Eh Reserved (zero) | ||
+ | 0Fh Nonzero if [07h..0Fh]=GARBAGE, | ||
+ | |||
+ | |||
+ | Followed by 512 byte trainer (if any, see Byte 6, Bit 2, mainly FFE games). | ||
+ | Followed by N*16K PRG-ROM pages (see Byte 4). | ||
+ | Followed by N*8K CHR-ROM pages (if any, see Byte 5). | ||
+ | Followed by 8K Play Choice 10 Z80-ROM (if any, see Byte 7, Bit 1) (*). | ||
+ | Followed by 128 (or 127) bytes title at end of file (ASCII, zero-padded) (*). | ||
+ | Items marked as (*) are regulary used, but not offical part of the format. | ||
+ | Many PC10 files declare Z80-ROM as additional VROM bank (instead Byte7/ | ||
+ | |||
+ | ==== .UNF - Universal NES Image File Format (UNIF) by Tennessee Carmel-Veilleux ==== | ||
+ | |||
+ | A " | ||
+ | File Header (32 bytes) | ||
+ | 00h-03h: " | ||
+ | 04h-07h: Revision number (" | ||
+ | 08h-1Fh: Reserved for future usage | ||
+ | |||
+ | |||
+ | The header is followed by whatever chunks, all chunks are optional, and may or may not be included in the file, only the PRG0 one is obviously required. Software may skip any chunks which are uninteresting or unrecognized, | ||
+ | 00h-03h: Chunk ID string (4-letter ASCII, described below) | ||
+ | 04h-07h: Length of Data Block in bytes (excluding above ID and length entry) | ||
+ | 08h... : Data | ||
+ | |||
+ | |||
+ | MAPR - Board Name (aka Mapper) (ASCIZ, suggested max: 32 chars) | ||
+ | This uses ASCIZ strings to describe the board names (instead of iNES | ||
+ | mapper numbers), it's meant to be more specific than mapper numbers, | ||
+ | for example, it's using different names for different MMC1-boards. | ||
+ | http:// | ||
+ | http:// | ||
+ | |||
+ | |||
+ | PRG0..PRGF - Binary data of the PRG ROM | ||
+ | CHR0..CHRF - Binary data of the CHR ROM (aka VROM in general) | ||
+ | Normally using only PRG0 (and CHR0, if VROM used). | ||
+ | In rare cases, if the cart contains more than 1 PRG (or CHR) ROM chip, | ||
+ | then PRG1-F and CHR1-F may be used for the additional chips. | ||
+ | |||
+ | |||
+ | TVCI - Television Standards Compatability Information (One Byte) | ||
+ | 00h 60Hz/NTSC (USA, Japan, etc.) | ||
+ | 01h 50Hz/ | ||
+ | 02h Compatible with both 50Hz and 60Hz refresh rates | ||
+ | |||
+ | |||
+ | CTRL - Controllers used by the cartridge (currently only 1 Byte / 8bit) | ||
+ | Bit0 | ||
+ | Bit1 | ||
+ | Bit2 R.O.B | ||
+ | Bit3 | ||
+ | Bit4 Power Pad | ||
+ | Bit5 | ||
+ | Bit6-7 Reserved | ||
+ | |||
+ | |||
+ | MIRR - Name Table Mirroring (1 Byte) | ||
+ | 00h Two-Screen Horizontal Mirroring (Hard Wired) | ||
+ | 01h Two-Screen Vertical Mirroring (Hard Wired) | ||
+ | 02h Single-Screen BLK0 (Hard Wired) | ||
+ | 03h Single-Screen BLK1 (Hard Wired) | ||
+ | 04h Four-Screens of VRAM (Hard Wired) | ||
+ | 05h Mirroring Controlled By Mapper Hardware | ||
+ | |||
+ | |||
+ | BATR - Battery installed on Board (1 dummy byte) | ||
+ | Presence of this chunk means yes, absence means no. | ||
+ | |||
+ | |||
+ | NAME - Game Title, ASCIZ String | ||
+ | Game Title | ||
+ | |||
+ | |||
+ | READ - Readme/ | ||
+ | Probably some sort of ASCII text of unspecified formatting | ||
+ | |||
+ | |||
+ | VROR - Allow homebrewn games to over-write VROM (1 dummy byte) | ||
+ | Presence of this chunk means yes, absence means no. | ||
+ | |||
+ | |||
+ | PCK0..PCKF - 32-bit CRCs for PRG0..PRGF blocks (4 bytes, each) | ||
+ | CCK0..CCKF - 32-bit CRCs for CHR0..CHRF blocks (4 bytes, each) | ||
+ | Intended "to make sth sure on EPROMs" | ||
+ | |||
+ | |||
+ | DINF - Dumper information block (204 Bytes) | ||
+ | 100 bytes ASCIZ name of the person who dumped the cart | ||
+ | 4 | ||
+ | 100 bytes ASCIZ agent "name of the ROM-dumping means used" | ||
+ | |||
+ | |||
+ | Note: All words and dwords in header/ | ||
nes_plugin.txt · Last modified: 2008/11/25 20:40 by romcenter