Files
disasm/WIP.md
T
tmerritt 691b2bc23c Xevious (U): Pass 1 disassembly
The first _wip project to get a real disassembly.  4,165 instructions /
8,444 code bytes (25.8%), 24,324 data bytes, 0 unclassified -- every byte
of the 32 KB PRG is now classified as code or data.

The split needed three stages, all recorded in prg.s's header:

  * nesdis.py --undocumented --auto-seed at base $8000 gave 3,272
    instructions / 6,555 bytes.  The undocumented opcodes matter here: the
    trace stops dead at the first one it cannot decode.
  * Four hand-seeded entries ($C08B, $DC1E, $E0D5, $E134).  Each is a
    branch target from decoded code that sat inside an untraced data run,
    so the tracer never reached it.
  * A merged four-session Mesen Code Data Logger capture (kept as
    xevious_mesen.cdl) promoted 1,902 bytes from data to code and
    demoted 22 the trace had called code.

Two tool bugs fell out and are fixed here:

  * nesdis.py emitted the undocumented single-byte NOPs ($1A/$3A/$5A/
    $7A/$DA/$FA) as `nop`, which ca65 assembles as the *official* $EA --
    the rebuild stopped being byte-identical at $DF82.  The check now
    keys on the opcode byte, not just the addressing mode.  All three
    `make regen` pipelines (MUSCLE, Pyramid, Urban Champion) are
    unaffected and still reproduce prg.s byte for byte.

  * cdl_reclass.py left the original data-block header in place when the
    CDL split that block, so the file ended up with two region headers
    describing overlapping spans (20 of them here).  The header is now
    dropped with the block it describes; the promoted projects that use
    the tool are byte-for-byte unchanged.

The project README has the power-on flow analysis.  The most interesting
find is at $FC45: the reset path compares RAM $0100-$0107 against the
ASCII string "Kei Cros", and the copyright text at $FF1E reads
"MAIN: KEI CROSS.  SOUND: UHOHOY OHNOGI."  The OAM is at $0700, not
$0200 -- the NMI handler does LDA #$07 / STA $4014.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Add explicit `make wip` / `make wipclean` targets for the _wip tier

The root Makefile's all / clean / <MAPPER> targets deliberately name only
the promoted mapper folders, so nothing in them reaches into _wip/.  Give
the pre-promotion tier its own opt-in targets instead of the manual
`for d in _wip/*/*/; do make -C "$d"; done` loop:

  make wip          # build + verify every _wip/<MAPPER>/<Project>/
  make wipclean     # clean the build artifacts in that tier

Both the Makefile and the four documents that describe the tier (README,
TODO, WIP, AGENTS) are updated together, so the tree stays consistent.

The same commit records Xevious (U) reaching Pass 2 in those documents:
all 487 labels named, every branch and call symbolic, zero Label_XXXX and
zero raw $XXXX operands left.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Update the _wip/ tier documentation; fix the make wip target and the mirroring bug

The WIP tier's four documents (WIP.md, README.md, TODO.md, AGENTS.md) had
drifted away from the tree.  Every number in them was re-derived from the
ROMs and the folder layout rather than carried forward.

Counts and structure
  - The tier holds 854 projects across 29 mapper folders, not "856 across
    30".  Xevious (U) and Zanac (U) were promoted on 2026-10-20 and their
    _wip/ folders were left behind as residue -- "git mv" moves only the
    tracked files, so the old folder survived with its build artifacts and a
    stale README.  Both are removed now; the promotion procedure documents
    the step so it does not recur.
  - _wip/MAPPER8/ holds a copy of the already-promoted Mermaids of
    Atlantis (U) and is excluded from every count and table.
  - Pass 0 skeletons: 852 (was 855).  Xevious (U) left the tier, so the
    two projects with a real disassembly are Golf (JU) and Volleyball (U).
  - PRG sizes 2 / 150 / 42 / 522 / 127 / 10 / 1; 226 projects with no CHR;
    38 keep the CPU-address linker layout; 37 are mapper 0.
  - Every inventory row was re-checked against its ROM: PRG/CHR size,
    mirroring, all three vectors, and the battery / four-screen / footer
    notes.  854 of 854 rows now match.

Fixes
  - The root Makefile used $(WIP) but never defined it, so "make wip" and
    "make wipclean" expanded to "for m in /*/" -- they walked the
    filesystem root instead of the tier.  "WIP := _wip" is now defined, and
    "make wip" builds and verifies the whole tier: 855 of 855 passed, 0
    failures.
  - make_skeleton.py masked header byte 6 with 0x03, so the battery bit
    (bit 1) leaked into the mirroring value and 56 battery-backed ROMs'
    READMEs claimed "Four-screen" while their own "Four-screen VRAM" row
    said "no".  The mask is now 0x01 and the 56 READMEs are corrected.
  - Golf (JU)'s README still described the pre-flatten copilot/ folder and
    the old PRG-only compare; it now describes the whole-ROM build.
  - Pyramid (U)'s audit comments are canonical again, so Golf (JU) is the
    only project in the tree still on the pre-canonical spelling.

New in WIP.md
  - Byte 7's lower nybble is non-zero on 58 of the ROMs -- 55 carry the
    literal "DiskDude!" watermark, two "DisNi0330", one "byKH+KEN".  Only
    the upper nybble carries mapper bits, so the noise is harmless.
  - The twelve ROMs that set the four-screen bit, split by whether their
    board actually supports four-screen VRAM.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Promote Volleyball (U) from _wip/NROM/ to NROM/

Volleyball (U) reached Pass 3 before promotion, so this is a promotion of a
finished disassembly rather than a Pass 0 skeleton.

The disassembly
  - 11,395 instructions / 23,926 code bytes (73.0 % of the PRG image),
    8,842 data bytes, 0 unclassified.
  - The split needed the game-state dispatch table at $85E1 declared to the
    tracer (--table 85E1:11) -- without it only 66 % of the image traced --
    plus a Mesen Code Data Logger capture taken while a random-input bot
    played the attract demo, which promoted 1,757 bytes from data to code.
  - Pass 2 named all 1,989 labels: 730 read out of the code by hand, 1,221
    internal branch targets derived mechanically.  Zero Label_XXXX, zero raw
    $XXXX call or branch operands, zero SubC residue.
  - Pass 3 named the zero page, the $0500 ball structure and all 37 data
    blocks.  apply_symbols.py --report: 0 pending substitutions, 0
    multi-alias residue.  align_audit_comments.py: no column drift.
  - cdl_check.py cross-checks the finished prg.s against the capture: 0
    CDL-code bytes not covered by an instruction, 0 CDL-data bytes that
    start one.
  - 29 neutral ZpXX zero-page slots remain, each with its reason recorded
    in locals.inc, as the promotion rules allow.

The promotion
  - git mv "_wip/NROM/Volleyball (U)" "NROM/Volleyball (U)".  Mapper 0, so
    it lands in NROM/.  The whole-ROM build was already in place, so there
    was no build surgery; the project builds byte-identically at its new
    home and the old folder is gone (git mv moves the untracked build
    artifacts too, so no residue was left behind).
  - Root README.md: new inventory row 39 and a per-project detail section,
    plus the WIP-tier counts.  The detail sections for Xevious (U) and
    Zanac (U) were numbered one too high against the inventory rows and
    are now aligned; a leftover editing note in the same place is gone.
  - WIP.md: the Volleyball row leaves the inventory, and the tier is now
    853 projects across 29 mapper folders (36 in _wip/NROM/), 852 of them
    Pass 0 skeletons.  Golf (JU) is the only project left in the tier with
    a real disassembly.
  - TODO.md and AGENTS.md: the same counts, and the promoted tier is now
    40 projects (39 under NROM/).

Verified: make wip builds and verifies the whole tier (854 of 854 passed,
0 failures) and make builds the promoted tier (39 of 39 passed).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Rename NROM/Pyramid (U) to NROM/Pyramid (U) (Sachen)

The promoted inventory row had read "Pyramid (U) (Sachen)" since the
project was promoted on 2026-10-20, but the folder was named "Pyramid (U)" --
so the row pointed at a folder that did not exist.  The folder now matches
the row, and the project's own README title, its ROM file name
("Pyramid (U) (Sachen).nes") and the parenthetical convention the rest of
the promoted tier already uses (Popeye (JU) (PRG 0/1), Raid on Bungeling
Bay (U) [a2], Pac-Man (Tengen) (U)).

What changed inside the project
  - The Makefile's regen target passes --project "Pyramid (U) (Sachen)", so
    the tracer writes the matching header line.  prg.s and locals.inc were
    updated to that header line and nothing else -- the disassembly is
    byte-identical to before.
  - make regen still reproduces prg.s and locals.inc byte for byte.
  - The project's README's build-verification line now names the new folder.

References updated: the root README.md (inventory prose, the row-33 detail
section, the build-status table, and the notable-observations bullet),
TODO.md (the promoted-projects table and the Pyramid notes) and AGENTS.md
(the recently-promoted list and the unlicensed-titles quirk).

Verified: make builds the promoted tier (39 of 39 passed) and the project
rebuilds byte-identically at its new path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Rebuild Mermaids of Atlantis (U): bank-aware Pass 1, Pass 2/3 names

The promoted project did not build: a Pass 2 rename had been applied
half-way, leaving eight undefined symbols and two jumps that pointed at
the wrong routine, while the root README already claimed the project was
byte identical.  The _wip copy still built, because it held the un-renamed
Pass 1 source.

The disassembly is now derived from the ROM itself, with the Mesen Code
Data Logger as the oracle for the code/data split:

* _tools/banked_dis.py traces every MMC3 bank separately, each with the CPU
  window it is visible at, seeded from a CDL capture so the code a static
  trace cannot reach is disassembled too.  The CDL is the authority: a
  decode the CPU never fetched is dropped, and so is the fall-through
  behind a call whose target never returns (the game's dispatchers have
  their jump table right behind the call).
* One segment per bank (PRG0..PRG7) with its own .org, so the assembler
  knows the CPU address of every label while the linker still writes the
  bytes to the bank's file offset.  A flat segment cannot do both: a call
  would encode the file offset instead of the CPU address.
* Pass 2 names every label - 494 routines, no Label_XXXX and no raw
  $XXXX branch or jump operand left.  Pass 3 applies 13 semantic zero-page
  aliases and writes the routine headers.
* 8,075 bytes of code (12.3% of the 64 KB PRG), up from 200 bytes.

The banking turned out to be unusual and is documented: the fixed bank is
the fourth 8 KB bank (file $6000-$7FFF), not the last one, and the image
carries the reset stub and the vector table twice.  The live NMI vector
is $808F - the frame handler - while the copy at the end of the image
names $8189, which is a BRK in the first half.  The game's text table
lives at CPU $F1D6, which is the fixed window, and that is what settles
the question.

Also: the leftover _wip/MAPPER8 folder is removed, as it is for every
other promotion.

The project builds byte identical:

    Byte-identical ROM verified.

Add CHANGELOG.md: the pass history of every project

A project goes through four milestones - Pass 1 (the code/data split),
Pass 2 (the labels replaced by names), Pass 3 (the semantic naming) and
Promotion (the move into the top-level mapper folder) - and the history
of those milestones was scattered over the commit log, the project
READMEs and the root README.

CHANGELOG.md gathers it: one section per project with a row for each
milestone, the date, and a sentence saying what the milestone produced.
The numbers are the ones the project README and the root README already
carry - instruction count, code coverage, named labels, semantic
zero-page aliases, named data tables - so a reader can see at a glance
which projects are done and which are not.  Golf (JU), the only project
still in _wip/ with a real disassembly, is listed with its open
milestones, and the other 852 _wip/ projects are covered as a tier.

The requirement is now part of the workflow contract: PROMPTS.md gains a
"Pass 3: Changelog entry" section and a ninth checklist item, and
AGENTS.md points at the file.  A milestone and its changelog row go in
the same commit, so the changelog and the source never disagree.

Balloon Fight (JU): repair the audit trail and complete the routine headers

The per-instruction audit trail was stale by two bytes from
ResetInitializationData ($C085) onward.  5,944 of the 6,007 comments named
the wrong CPU address and PRG offset, because the three-byte .byte "HAL"
signature at $C082-$C084 had been counted as one byte when the trail was
first generated - the routine headers and the linker labels were right all
along, so the source and its own headers disagreed with each other.  The
trail was rebuilt from the ca65 -l listing with
_tools/repair_audit_comments.py, and every rewritten comment was re-checked
against prg.bin.  The comments were also moved into the canonical column-35
field: they had sat two spaces after the mnemonic, with no column discipline
at all, unlike every other promoted project.

All 63 routine headers now carry a ; Clobbers: block, so the headers carry
the full template AGENTS.md describes.  The blocks are derived, not written by
hand.  The new _tools/derive_clobbers.py takes the opcode from the audit
comment's byte list, so the addressing mode is exact and a data directive is
never mistaken for an instruction; it resolves the operand through
locals.inc and symbols.inc to name what is written; it follows the real
control flow, so a jsr to another named entry is a call (the callee's
clobbers count) while a branch or a fall-through is not; and it models
register preservation, so NmiHandler reports *no register* - it saves and
restores A, X and Y around the frame - and FlushPpuCommandPreserved reports
only A, because X and Y come back unchanged.

Two tools changed.  derive_clobbers.py is new.  align_audit_comments.py had
an off-by-one: it tested the indented code length against 31 instead of
against 35, so code texts of 28-31 characters were never padded into the
column.

The change is comments only.  The code text of all 8,538 lines is unchanged,
make still prints "Byte-identical ROM verified.", the 6,007 audit comments
still re-check against prg.bin, all 63 routine headers agree with the
instructions they describe, and every label agrees with reconstructed.lbl.
ReflectObjectYVelocity and UpdateSpecialObjectSystem moved out of locals.inc
and became labels in prg.s at their real addresses.

CHANGELOG.md becomes the repository's running log: a Pending list of the
changes to be put in the next commit, a History of the commits already made,
and the per-project milestone index at the end.  The next commit's message is
written from the Pending entries, so the two cannot drift apart.  PROMPTS.md
and AGENTS.md describe the new shape.  WIP.md drops the _wip/MAPPER8/ note:
the folder held a copy of Mermaids of Atlantis (U) that had already been
promoted.

World Class Track Meet (U): Pass 1, the code/data split

Pass 1 is done.  The split is 8,400 instructions / 18,028 code bytes (55.0 %)
of the 32 KB PRG, with 884 routine entries, 55 data blocks and 102 zero-page
aliases.  The PRG is CNROM (mapper 3) and maps whole at $8000-$FFFF, so the
linker moved the PRG segment from a .nes file offset to $8000 and the build
still compares byte identical.

Four dispatch tables had to be seeded by hand.  The event table at $F796 (5
entries) is read at $F780 and jumped to through `jmp ($001F)`.  The three
push-pointer tables - $BFC4 (16 entries), $BFE4 (2) and $E5F2 (7) - push a
handler address and `rts` into it, and the 6502's `rts` adds one to the
address it pops, so each table stores the entry address minus one; the seeds
are the table values plus one.  The tracer runs with --undocumented: the code
uses undocumented NMOS opcodes as ordinary code (ANC $37 at $BFF8, and the
RRA/RLA/SLO and NOP forms elsewhere).  Seeding the tables takes the coverage
from 27.8 % to 55.0 %.

$C0BE-$C0C5 is forced back to data: the IRQ vector $C0C0 points into the
middle of the `jmp $C047` at $C0BE, and the game never executes CLI, so the
vector is dead.  `make pass1` regenerates prg.s and locals.inc from prg.bin
and reproduces the committed prg.s byte for byte.

The project README records the split, the four dispatch tables, the dead IRQ
vector, the wrong CHR size field in the header, and what is still data.  The
milestone index in CHANGELOG.md gains the project; WIP.md, README.md and
AGENTS.md follow the tier counts and the layout.

nesdis.py gains a --mapping-note option, so the header's "PRG mapped at" line
can describe a board that is not NROM - CNROM's whole 32 KB at $8000-$FFFF is
not "mirrored to the upper half".

Replaces runs of $00 and $FF with .res <run>, <byte>

Golf (JU) and World Class Track Meet (U): Pass 2/3 complete, promoted from _wip/

- World Class Track Meet (U) - Pass 2 complete: all 884 Label_<addr>
  definitions replaced (651 semantic routine names + 233 Sub_<addr>), all 731
  raw $XXXX jsr/jmp call operands resolved to symbolic labels, all branch
  targets given role-based names; routinemap.tsv added; make stays
  byte-identical.
- World Class Track Meet (U) - Pass 3 complete: 24 semantic zero-page
  aliases applied via apply_symbols.py (0 residue), 78 neutral ZpXX slots
  documented with reasons in locals.inc, all hardware-register operands use
  symbols.inc names, project README rewritten with Pass 2/Pass 3 sections and
  data-table inventory; promoted out of _wip/CNROM/.
- World Class Track Meet (U) - project README documents the five event-table
  entries at $F796 and marks the olympics mode as not yet proven.
- Golf (JU) - audit comments converted from pre-canonical (; C000: A9 00)
  to the canonical ; CPU:$C000 PRG:0000  A9 00 form at column 35; 4,156
  comments re-aligned, comment/whitespace only, whole-ROM build stays
  byte-identical.
- Golf (JU) - 339 internal branch-target Label_ labels given role-based names
  via _tools/derive_branch_names.py; 0 raw $XXXX branch/jump operands remain.
- Golf (JU) - 275 zero-page operands substituted with locals.inc aliases via
  apply_symbols.py; 0 residue; promoted out of _wip/NROM/.
- Xevious (U) - runs of $FF padding replaced with .res <count>, $FF in prg.s;
  whole-ROM build stays byte-identical.
- Both projects promoted via git mv; leftover _wip/ folders removed; root
  README.md inventory rows added; WIP.md rows removed.

World Class Track Meet (U): apply zero-page symbol substitutions

Run apply_symbols.py to substitute ZpXX zero-page operands with
semantic locals.inc aliases (SlotState, GameMode, etc.) at proven
sites; 0 residue, whole-ROM build stays byte-identical.

Xevious (U): re-split Pass 1 from the Mesen CDL and decode the data tables

- Xevious (U) - Pass 1 re-split from the Mesen CDL (xevious_mesen.cdl) with
  _tools/cdl_reclass.py: 1,158 bytes data->code, 48 code->data, 42 labels
  emitted and 3 branch targets labelled; code 11,321->12,455 bytes
  (34.5%->38.0%), instructions 5,513->6,002. The 45 recovered entry points
  are named Sub_XXXX, so no Label_XXXX remains; six CDL-silent raw call
  operands are documented as residue.
- Xevious (U) - the 4,448-byte block at $A74B-$B8AA is split into six proven
  tables: VramWritePtrTable (15 pointers), VramWriteData, DataStreamPtrTable
  (16), ObjTilePtrTable (99), ObjTileData and DataStreamData. The $D833
  pointer table is corrected to base $D833 (4 entries; the old ObjCodePtrTable
  at $D834 was one byte late). $F957-$FAF5 is split into ObjSpeedTable,
  ObjSpeedTable2, SpriteLayoutPtrTable (19) and SpriteLayoutData;
  $FEE6-$FF1C into PaletteData and OamAttrTable. $F5D8 is decoded as
  TextTileData (font tile indices: PLAYER, GAME OVER, READY, SOLVALOU, LEFT,
  PAUSE); $F53C becomes AttrAddrTable, $F89E HandlerPtrTable and $EF3B
  SpriteLayoutData2. Project README rewritten with the corrected stats, a
  32-entry table inventory and the Pass 1 residue.
- _tools/cdl_reclass.py - preserve the data label(s) between a data-block
  header and its first .byte row when the block stays data; the $DF78 split
  dropped Data_DF78 and the rebuild failed with an undefined symbol.
- _tools/resolve_raw_branches.py - handle negative relative offsets
  (beq *-$0B); the pattern only matched *+$NN and *$NN.

Docs: refresh the tier counts to 41 promoted / 851 _wip, add the WCTM row

- Docs - tier counts refreshed to the post-promotion state across AGENTS.md,
  root README.md, WIP.md, TODO.md and CHANGELOG.md: 41 promoted projects
  (38 under NROM/, plus CNROM/World Class Track Meet (U), UNROM/Zanac (U) and
  MAPPER8/Mermaids of Atlantis (U)) and 851 _wip/ projects, every one of them
  a Pass 0 skeleton. The stale "39/40 promoted", "853 _wip", "Golf (JU) is
  still in _wip/" and "Golf is the last pre-canonical project" statements are
  corrected.
- Root README.md - the promoted inventory gained the missing World Class Track
  Meet (U) row (row 41, mapper 3, 32 KB PRG / 32 KB CHR), and the "All 38 are
  mapper 0 / 16 KB PRG" sentence is replaced with the actual split (36 of the
  41 rows are mapper 0 / 16 KB; Xevious and Volleyball are 32 KB, World Class
  Track Meet is mapper 3, Zanac mapper 2 and Mermaids mapper 8).
2026-10-21 11:36:32 -04:00

113 KiB

_wip/ — the pre-promotion tier

851 projects across 29 mapper folders, every one of them building byte-identical to its original ROM.**

This file is the handoff for everything under _wip/<MAPPER>/<Project>/. The promoted tier (41 projects — 38 under NROM/, plus CNROM/World Class Track Meet (U), UNROM/Zanac (U) and MAPPER8/Mermaids of Atlantis (U)) is documented in README.md; this file covers the tier that is not promoted yet.


1. What the tier is

_wip/ mirrors the promoted tier's structure exactly — one flat folder per project, under a folder named for the project's mapper:

_wip/
  NROM/       35 projects   (mapper 0, plus one whose header byte 7 is ASCII)
  MMC1/      221 projects   (mapper 1)
  UNROM/      97 projects   (mapper 2)
  CNROM/      57 projects   (mapper 3)
  MMC3/      239 projects   (mapper 4)
  MMC5/      10 projects   (mapper 5)
  MAPPER7/    39 projects   (mapper 7)
  ... 22 more folders, one per remaining mapper

_wip/MAPPER8/ was not part of this tier. It held a copy of Mermaids of Atlantis (U), which had already been promoted to MAPPER8/Mermaids of Atlantis (U) at the top level. It was a leftover of a promotion, not a project waiting for one, and it has been removed - Xevious (U), Zanac (U) and Mermaids of Atlantis (U) were all promoted the same way and their _wip/ folders are gone.

Each project folder is flat — no copilot/ subfolder:

File Purpose
prg.s the disassembly (Pass 0: a single .incbin "prg.bin")
header.s / chr.s / trailer.s the other ROM segments, as ca65 includes
prg.bin / header.bin / chr.bin / trailer.bin the binary splits
rom.nes a space-free copy of the original ROM, for cmp
linker.cfg the MEMORY areas
symbols.inc NES hardware register names
locals.inc zero-page aliases
Makefile build and byte-identity check
README.md per-project ROM facts and open work

2. The mapper folders

The mapper is read from the iNES header: byte 6's upper nybble holds mapper bits 0-3 and byte 7's upper nybble holds mapper bits 4-7. The folder name follows the repository's board vocabulary where it exists, and the mapper number otherwise.

Folder Mapper Board Projects
NROM/ 0 NROM 36
MMC1/ 1 MMC1 (SxROM) 221
UNROM/ 2 UxROM — UNROM, non-battery 97
CNROM/ 3 CNROM 58
MMC3/ 4 MMC3 (TxROM) 239
MMC5/ 5 MMC5 (MxROM) 10
MAPPER7/ 7 AxROM 39
MAPPER9/ 9 MMC2 (PxROM) 2
MAPPER11/ 11 Color Dreams 40
MAPPER13/ 13 — 1
MAPPER34/ 34 BNROM (NINA-001) 1
MAPPER41/ 41 — 1
MAPPER47/ 47 — 1
MAPPER64/ 64 Camerica 6
MAPPER65/ 65 Codemasters 27
MAPPER66/ 66 GxROM 18
MAPPER67/ 67 — 7
MAPPER68/ 68 — 4
MAPPER69/ 69 — 1
MAPPER71/ 71 FuROM 12
MAPPER73/ 73 — 1
MAPPER79/ 79 NINA-006/007 15
MAPPER99/ 99 — 1
MAPPER105/ 105 — 1
MAPPER113/ 113 — 3
MAPPER118/ 118 TxSROM 2
MAPPER119/ 119 — 2
MAPPER228/ 228 Action 52 2
MAPPER232/ 232 — 5

29 folders, 851 projects. There is no MAPPER8/ row: the only mapper-8 project, Mermaids of Atlantis (U), has already been promoted to MAPPER8/Mermaids of Atlantis (U) at the top level and its _wip/ folder has been removed (see the note in §1).

A board name in the "—" rows would be a guess, so the folder carries the number instead. The assignments were spot-checked against known titles: MAPPER7/ holds Battletoads and Beetlejuice (AxROM), MAPPER9/ holds Punch-Out!! (MMC2), MAPPER228/ holds Action 52 and Cheetahmen 2, MAPPER64/ holds Gyruss and Klax (Camerica), MAPPER79/ holds Double Strike (NINA-006/007), and so on.

AOROM/ is empty on purpose. Mapper 2 is the UxROM family, and the board split is by battery: AOROM is the battery-backed 32 KB board, UNROM the non-battery one. Not one of the 97 mapper-2 ROMs in the store sets the battery flag, so all of them are UNROM. AOROM/ would exist as an empty placeholder if a battery-backed mapper-2 ROM turns up.

One project is filed against its header's mapper rather than its real board. 1942 (JU) sits in _wip/NROM/ even though its header reads mapper 64, because iNES byte 7 is the ASCII text DiskDude! — bytes 7 through 15 of that ROM are the string, and 'D' ($44) in byte 7 is what an emulator picks up as mapper bits 4-7. The byte 6 upper nybble says 0, so the intended mapper is 0. Filing it under MAPPER64/ would record the corruption as a fact; the six genuine mapper-64 ROMs live in _wip/MAPPER64/.

3. Build and verification

Every project in this tier verifies at whole-ROM level: make links the header, the PRG, the CHR and (where present) the footer, then compares the result against rom.nes byte for byte.

$ cd "_wip/MMC3/Battletoads (U)" && make
ca65 -g -o header.o header.s
ca65 -g -o prg.o prg.s
ca65 -g -o chr.o chr.s
ld65 -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o reconstructed.nes header.o prg.o chr.o
cmp reconstructed.nes rom.nes
Byte-identical ROM verified.

This is a change from the older tier convention, where _wip projects ran cmp reconstructed_prg.bin prg.bin and the header and CHR were not proven. The whole-ROM form is what the promoted tier uses, so promoting a project is now just git mv plus the disassembly work — no build surgery.

The tier is not built by the root Makefile's all/clean/<MAPPER> targets. MAPPERS := NROM AOROM CNROM MMC1 MMC3 MMC5 UNROM MAPPER8 names only the promoted mapper folders. The tier has its own explicit targets, which are the only way the root Makefile reaches _wip/:

make wip          # build + verify every _wip/<MAPPER>/<Project>/
make wipclean     # clean the build artifacts in the tier

Both targets are driven by WIP := _wip at the top of the root Makefile. That variable has to be defined: an empty $(WIP) expands the loop to for m in /*/, which walks the filesystem root instead of the tier.

The old manual loop still works as an equivalent:

for d in _wip/*/*/; do make -C "$d"; done

make wip is slow (851 sub-make invocations) but it is the tier's end-to-end check, and it passed clean on 2026-10-21: 851 of 851 projects built, 0 failures.

4. Two linker layouts

This is the one thing to know before touching a _wip/ project.

CPU layout — the PRG memory area sits at the CPU address the image is mapped at:

MEMORY {
  HEADER: start = $0000, size = $0010, fill = yes;
  PRG:    start = $C000, size = $4000, fill = yes;   # 16 KB NROM-128
  CHR:    start = $0000, size = $2000, fill = yes;
}

Used by the projects whose whole PRG really is mapped at one address: the 16 KB NROM-128 games and the 32 KB NROM-256 games (which are contiguous at $8000-$FFFF and so link at start = $8000, size = $8000). 36 of the 851 projects use it — 33 NROM games at $8000, 1 at $C000 (Circus Charlie), plus MMC1/Wrecking Crew (JUE) and MAPPER13/Videomation (U). The other 815 use the flat layout below.

Flat layout — the memory areas sit at file offsets in the .nes file, not at CPU addresses:

MEMORY {
  HEADER: start = $0000, size = $0010, fill = yes;
  PRG:    start = $0010, size = $180000, fill = yes;   # 1536 KB PRG
  CHR:    start = $180010, size = $80000, fill = yes;
}

Used by everything else, and it is not a workaround — it is the correct model:

  • A PRG image larger than 32 KB does not fit the 6502's 64 KB address space. Most of this tier is 128 KB or 256 KB of PRG, so a contiguous CPU window is impossible. The largest image here is Action 52 (U) [!] at 1.5 MB of PRG and 512 KB of CHR.
  • A banked mapper never presents the whole image at once. MMC1, MMC3 and the rest map the PRG into the CPU in banks, so "the PRG is at $8000" is not a true statement about the file. The file offsets are true.

NROM/Bomberman (U) is the repository's precedent for the flat layout, and _tools/verify_pass1.py already has a note about its linker start being a file offset rather than a CPU address.

The flat layout is also the only one that scales: the same linker.cfg shape works for a 16 KB PRG and for a 1.5 MB one.

Two further rules the layout depends on:

  • ld65 writes the output file in MEMORY declaration order, not address order. The areas must be declared in the order the bytes appear in the .nes file: HEADER, PRG, CHR, TRAILER.
  • Memory area sizes are hexadecimal. size = $127 is 295 bytes, not 127.

5. The states a project can be in

State Count Meaning
Pass 0 skeleton 851 prg.s is a single .incbin "prg.bin". The folder shape and the build are proven; there is no disassembly yet.

A Pass 0 project is not promotable: AGENTS.md requires a real disassembly (Pass 1 or beyond) before promotion. The skeleton exists so that the folder shape and the byte-identity contract are settled before the disassembly work starts.

No project in this tier currently has a real disassembly. Volleyball (U) reached Pass 3 here and moved to NROM/Volleyball (U) on 2026-10-21; Golf (JU) and World Class Track Meet (U) followed on 2026-10-21, promoted to NROM/Golf (JU)/ and CNROM/World Class Track Meet (U)/ respectively; the root README.md carries their entries.

Three projects have left this tier since the last inventory: Xevious (U) (Pass 1 + Pass 2 + Pass 3, promoted to NROM/) and Zanac (U) (Pass 1 + Pass 2 + Pass 3, promoted to UNROM/), both on 2026-10-20, and Volleyball (U) (Pass 1 + Pass 2 + Pass 3, promoted to NROM/) on 2026-10-21.

6. Inventory

All 851 projects, all byte-identical for the whole ROM.

_wip/CNROM/ — mapper 3 (57 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Adventures of Dino Riki (U) 32 KB 32 KB Vertical $8093 / $8000 / $808F Pass 0 skeleton
Alpha Mission (U) 32 KB 32 KB Horizontal $815D / $8042 / $8293 Pass 0 skeleton
Arkanoid (U) 32 KB 16 KB Horizontal $80A0 / $8000 / $809B Pass 0 skeleton
Arkista's Ring (U) [!] 32 KB 32 KB Horizontal $8057 / $8004 / $80F2 Pass 0 skeleton
Athletic World (U) 32 KB 32 KB Horizontal $FB74 / $F9F9 / $FFF0 Pass 0 skeleton
Back to the Future (U) 32 KB 32 KB Horizontal $8461 / $8033 / $8464 Pass 0 skeleton
Bandai Golf - Challenge Pebble Beach (U) 32 KB 32 KB Vertical $8436 / $83D3 / $8A77 Pass 0 skeleton
Battle Tank (U) 32 KB 32 KB Horizontal $E00B / $8000 / $F567 Pass 0 skeleton
Battleship (U) 32 KB 32 KB Horizontal $8000 / $8003 / $8006 Pass 0 skeleton
Bubble Bath Babes (UE) [!] 32 KB 64 KB Vertical $804D / $8000 / $8000 Pass 0 skeleton
Bump'n'Jump (U) 32 KB 32 KB Horizontal $81F9 / $8000 / $8000 Pass 0 skeleton
Castlequest (U) 32 KB 32 KB Vertical $C569 / $8225 / $C6B8 Pass 0 skeleton
Championship Bowling (U) [!] 32 KB 16 KB Horizontal $F260 / $F22A / $F22A Pass 0 skeleton
City Connection (U) 32 KB 32 KB Vertical $838D / $D000 / $842E Pass 0 skeleton
Dash Galaxy in the Alien Asylum (U) 32 KB 32 KB Vertical $919B / $90AC / $9295 Pass 0 skeleton
Destination Earthstar (U) 32 KB 32 KB Horizontal $C2A0 / $8000 / $D36F Pass 0 skeleton
Firehouse Rescue (U) 32 KB 32 KB Vertical $C006 / $C000 / $C03E Pass 0 skeleton
Friday the 13th (U) 32 KB 32 KB Vertical $80B7 / $8000 / $815B Pass 0 skeleton
Ghostbusters (U) 32 KB 32 KB Horizontal $8261 / $B104 / $82FA Pass 0 skeleton
Gotcha! (U) 32 KB 32 KB Vertical $B48B / $8000 / $8000 Pass 0 skeleton
Gradius (U) 32 KB 32 KB Vertical $806A / $8010 / $80BD Pass 0 skeleton
Hudson's Adventure Island (U) 32 KB 32 KB Vertical $B706 / $8000 / $B754 Pass 0 skeleton
I Can Remember (U) 32 KB 32 KB Vertical $B711 / $AEBC / $B714 Pass 0 skeleton
Jaws (U) [!] 32 KB 32 KB Horizontal $8A7B / $8100 / $8BB5 Pass 0 skeleton
Jaws (U) [a2] 32 KB 32 KB Horizontal $8A7B / $8100 / $8BB5 Pass 0 skeleton
John Elway's Quarterback (U) 32 KB 32 KB Vertical $8087 / $FF87 / $8087 Pass 0 skeleton
Joust (U) 32 KB 16 KB Horizontal $FEB2 / $FE50 / $FFC1 Pass 0 skeleton
Karate Kid, The (U) 32 KB 32 KB Vertical $8269 / $8000 / $8000 Pass 0 skeleton
King's Knight (U) 32 KB 32 KB Horizontal $BEB3 / $8E52 / $BF36 Pass 0 skeleton
Kings of the Beach (U) 32 KB 32 KB Vertical $FC74 / $FC24 / $FCC9 Pass 0 skeleton
Krazy Kreatures (U) [a1] 32 KB 32 KB Vertical $D929 / $E000 / $D994 Pass 0 skeleton
Kung-Fu Heroes (U) 32 KB 32 KB Horizontal $A742 / $A6D8 / $A6D8 Pass 0 skeleton
Last Starfighter, The (U) 32 KB 32 KB Vertical $8006 / $8081 / $8067 Pass 0 skeleton
Legend of Kage, The (U) 32 KB 32 KB Horizontal $88F9 / $8000 / $88F7 Pass 0 skeleton
Major League Baseball (U) 32 KB 32 KB Vertical $849B / $8000 / $8519 Pass 0 skeleton
Major League Baseball (U) [a1] 32 KB 32 KB Vertical $84A0 / $8000 / $851E Pass 0 skeleton
Mighty Bomb Jack (U) 32 KB 16 KB Horizontal $8073 / $8000 / $8073 Pass 0 skeleton
Milon's Secret Castle (U) 32 KB 32 KB Vertical $819F / $8000 / $FFF9 Pass 0 skeleton
Monster Truck Rally (U) 32 KB 32 KB Vertical $C00B / $B9A7 / $B9A7 Pass 0 skeleton
Ninja Kid (U) 32 KB 32 KB Vertical $8537 / $800A / $8549 Pass 0 skeleton
Paperboy (U) 32 KB 32 KB Horizontal $8006 / $8048 / $8047 Pass 0 skeleton
Peek-A-Boo Poker (UE) [!] 32 KB 64 KB Horizontal $8117 / $80CA / $80CA Pass 0 skeleton
Perfect Fit (U) 32 KB 32 KB Vertical $AC89 / $9100 / $AC8C Pass 0 skeleton
Puzznic (U) 32 KB 32 KB Vertical $8681 / $8000 / $86CF Pass 0 skeleton
Pyramid (U) (Sachen-Hacker) 32 KB 64 KB Vertical $97DA / $8800 / $8800 Pass 0 skeleton
Q-bert (U) 32 KB 32 KB Horizontal $CAF5 / $CA85 / $CB52 Pass 0 skeleton
Shooting Range (U) 32 KB 32 KB Vertical $8894 / $80A0 / $88DC Pass 0 skeleton
Solomon's Key (U) [!] 32 KB 32 KB Horizontal $8000 / $8C00 / $00FF Pass 0 skeleton
Spy Hunter (U) 32 KB 32 KB Vertical $8861 / $8100 / $8100 Pass 0 skeleton
Stadium Events (U) 32 KB 32 KB Horizontal $F843 / $F740 / $FFF0 Pass 0 skeleton
Star Force (U) 32 KB 32 KB Vertical $8003 / $80E0 / $80A2 Pass 0 skeleton
Star Soldier (U) 32 KB 32 KB Vertical $9F7D / $800A / $800A Pass 0 skeleton
Star Voyager (U) 32 KB 32 KB Horizontal $E2B0 / $8322 / $F79B Pass 0 skeleton
Super Team Games (U) 32 KB 32 KB Horizontal $FAA9 / $F977 / $FFF0 Pass 0 skeleton
T&C Surf Design (U) 32 KB 32 KB Vertical $814F / $8001 / $8000 Pass 0 skeleton
Tiger-Heli (U) 32 KB 32 KB Horizontal $80A9 / $8004 / $8004 Pass 0 skeleton
Track & Field (U) 32 KB 32 KB Vertical $806F / $8010 / $80DA Pass 0 skeleton

_wip/MAPPER105/ — mapper 105 (1 project)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Nintendo World Championships 1990 (U) [!] 256 KB none Horizontal $FF38 / $FE89 / $6010 Pass 0 skeleton battery

_wip/MAPPER11/ — mapper 11 (40 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Adventures of Captain Comic, The (U) 64 KB 64 KB Vertical $FD7F / $FE9A / $FE96 Pass 0 skeleton
Baby Boomer (U) 64 KB 16 KB Vertical $850E / $FFE8 / $FFE8 Pass 0 skeleton
Bible Adventures (U) (V1.2) 64 KB 64 KB Vertical $FFC2 / $FFEA / $FFE9 Pass 0 skeleton
Bible Adventures (U) (V1.3) 64 KB 64 KB Vertical $FFBF / $FFE1 / $FFE0 Pass 0 skeleton
Bible Buffet (U) (Ver 6.0) 128 KB 128 KB Vertical $87D3 / $87C6 / $87E8 Pass 0 skeleton
Challenge of the Dragon (U) 64 KB 64 KB Vertical $FFC7 / $FFE3 / $FFE2 Pass 0 skeleton
Chiller (U) [!] 32 KB 32 KB Horizontal $BA3D / $FFA0 / $BACC Pass 0 skeleton
Crystal Mines (U) 64 KB 16 KB Vertical $FFC7 / $FFB8 / $FFC7 Pass 0 skeleton
Death Race (U) 64 KB 64 KB Vertical $83CF / $8000 / $8444 Pass 0 skeleton
Exodus (U) (V4.0) [!] 128 KB 128 KB Vertical $FFDB / $FFCC / $FFDB Pass 0 skeleton
Free Fall (U) (Prototype) [!] 64 KB 64 KB Vertical $FFBF / $FFE1 / $FFE0 Pass 0 skeleton
Galactic Crusader (Sachen) (U) 32 KB 32 KB Horizontal $D52B / $D2D5 / $D2D5 Pass 0 skeleton
Joshua (U) (Ver 5.0 CHR 6.0) 128 KB 128 KB Vertical $FFAF / $FFA0 / $FFAF Pass 0 skeleton
Joshua (U) (Ver 6.0) [!] 128 KB 128 KB Vertical $FFAF / $FFA0 / $FFAF Pass 0 skeleton
King Neptune's Adventure (U) 64 KB 64 KB Vertical $822C / $FFE8 / $FFE8 Pass 0 skeleton
King of Kings, The (U) (V1.1) 128 KB 128 KB Vertical $FFAE / $FFEA / $FFE9 Pass 0 skeleton
King of Kings, The (U) (V1.2) [!] 128 KB 128 KB Vertical $FFAE / $FFEA / $FFE9 Pass 0 skeleton
King of Kings, The (U) (V1.3) 128 KB 128 KB Vertical $FFB2 / $FFEE / $FFED Pass 0 skeleton
King of Kings, The (U) (V5.0 CHR 1.3) 128 KB 128 KB Vertical $FFB2 / $FFEE / $FFED Pass 0 skeleton
Master Chu & The Drunkard Hu (U) 32 KB 32 KB Horizontal $8080 / $8000 / $8000 Pass 0 skeleton
Maxi 15 (U) 512 KB 512 KB Vertical $FF8A / $FFAC / $FFAB Pass 0 skeleton
Maxi 15 (U) [a1] 512 KB 512 KB Vertical $FF8A / $FFAC / $FFAB Pass 0 skeleton
Menace Beach (U) 64 KB 64 KB Vertical $FFAF / $FFD7 / $FFD6 Pass 0 skeleton
Metal Fighter (U) 32 KB 32 KB Horizontal $80E1 / $8000 / $8000 Pass 0 skeleton
Metal Fighter (U) [a1] 32 KB 32 KB Horizontal $80E1 / $8000 / $8000 Pass 0 skeleton
Mission Cobra (U) 32 KB 16 KB Horizontal $C214 / $C0DC / $C214 Pass 0 skeleton
Moon Ranger (U) 64 KB 64 KB Vertical $851F / $FFE8 / $FFE8 Pass 0 skeleton
Operation Secret Storm (U) 64 KB 64 KB Vertical $FFC7 / $FFE3 / $FFE2 Pass 0 skeleton
P'radikus Conflict (U) 64 KB 64 KB Vertical $FDCF / $8000 / $FDCB Pass 0 skeleton
Pesterminator (U) 64 KB 64 KB Vertical $8219 / $FFE8 / $FFE8 Pass 0 skeleton
Raid 2020 (U) [!] 64 KB 32 KB Vertical $8236 / $FFE8 / $FFE8 Pass 0 skeleton
Robodemons (U) 64 KB 64 KB Vertical $82A9 / $FFE8 / $FFE8 Pass 0 skeleton
Secret Scout (U) 64 KB 64 KB Vertical $FFAF / $FFD7 / $FFD6 Pass 0 skeleton
Shockwave (U) 32 KB 32 KB Vertical $8357 / $8000 / $83C1 Pass 0 skeleton
Silent Assault (U) 64 KB 64 KB Vertical $8000 / $F700 / $F700 Pass 0 skeleton
Spiritual Warfare (U) (Ver 6.0) 128 KB 128 KB Vertical $876E / $8761 / $8783 Pass 0 skeleton
Spiritual Warfare (U) (Ver 6.1) 128 KB 128 KB Vertical $876E / $8761 / $8783 Pass 0 skeleton
Sunday Funday (U) 128 KB 128 KB Vertical $FD7A / $FD96 / $FD95 Pass 0 skeleton
Tagin' Dragon (U) 32 KB 16 KB Vertical $A67F / $8000 / $8000 Pass 0 skeleton
Wally Bear and the No Gang (U) 128 KB none Vertical $807C / $8000 / $80AB Pass 0 skeleton

_wip/MAPPER113/ — mapper 113 (3 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Deathbots (U) 64 KB 64 KB Vertical $FF90 / $FF82 / $FF82 Pass 0 skeleton
Rad Racket - Deluxe Tennis 2 (U) [!] 32 KB 32 KB Horizontal $81B3 / $FF00 / $FF00 Pass 0 skeleton
Rad Racket - Deluxe Tennis 2 (U) [a1] 32 KB 32 KB Horizontal $81B3 / $FF00 / $FF00 Pass 0 skeleton

_wip/MAPPER118/ — mapper 118 (2 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Goal! Two (U) 128 KB 128 KB Vertical $DFED / $FC6F / $E22B Pass 0 skeleton
Pro Sport Hockey (U) 128 KB 128 KB Vertical $F887 / $FD14 / $FA84 Pass 0 skeleton

_wip/MAPPER119/ — mapper 119 (2 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
High Speed (U) 128 KB 128 KB Horizontal $FF4F / $FFD6 / $FF82 Pass 0 skeleton
Pinbot (U) 128 KB 64 KB Horizontal $FF09 / $FF8C / $FF38 Pass 0 skeleton

_wip/MAPPER13/ — mapper 13 (1 project)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Videomation (U) 32 KB none Vertical $C018 / $FF90 / $C19B Pass 0 skeleton

_wip/MAPPER228/ — mapper 228 (2 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Action 52 (U) [!] 1536 KB 512 KB Vertical $8006 / $FFD8 / $8006 Pass 0 skeleton
Cheetahmen 2 (U) 256 KB 128 KB Horizontal $800C / $800F / $800C Pass 0 skeleton

_wip/MAPPER232/ — mapper 232 (5 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Quattro Adventure (U) 256 KB none Vertical $C007 / $C00A / $0000 Pass 0 skeleton
Quattro Arcade (U) 256 KB none Vertical $C007 / $C01A / $FFF9 Pass 0 skeleton
Quattro Sports (Aladdin) (U) 256 KB none Vertical $C007 / $C00A / $C00A Pass 0 skeleton
Quattro Sports (U) 256 KB none Vertical $C007 / $C00A / $C00A Pass 0 skeleton
Quattro Sports (V3 Plug-Thru Cart) (U) 256 KB none Vertical $C007 / $C00A / $C00A Pass 0 skeleton

_wip/MAPPER34/ — mapper 34 (1 project)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Impossible Mission 2 (U) 64 KB 64 KB Horizontal $8003 / $8006 / $8009 Pass 0 skeleton

_wip/MAPPER41/ — mapper 41 (1 project)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Caltron 6-in-1 (U) 256 KB 128 KB Horizontal $A7B3 / $83F0 / $8400 Pass 0 skeleton

_wip/MAPPER47/ — mapper 47 (1 project)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Super Spike V'Ball - Nintendo World Cup (U) [!] 256 KB 256 KB Vertical $FF5B / $FF82 / $E3AF Pass 0 skeleton

_wip/MAPPER64/ — mapper 64 (6 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Donkey Kong Classics (U) 32 KB 32 KB Horizontal $EE3F / $EDB7 / $EE8C Pass 0 skeleton
Gyruss (U) 32 KB 32 KB Horizontal $8341 / $82D7 / $838C Pass 0 skeleton
Klax (U) 64 KB 64 KB Horizontal $F57E / $FC59 / $E0C4 Pass 0 skeleton
Mystery Quest (U) 32 KB 32 KB Horizontal $8103 / $8000 / $8102 Pass 0 skeleton
Shinobi (U) 128 KB 128 KB Horizontal $E154 / $E000 / $E004 Pass 0 skeleton
Skull & Crossbones (U) 128 KB 64 KB Horizontal $E078 / $E003 / $0014 Pass 0 skeleton

_wip/MAPPER65/ — mapper 65 (27 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Adventures in the Magic Kingdom (U) 128 KB 128 KB Horizontal $C000 / $FFD8 / $C000 Pass 0 skeleton
Adventures in the Magic Kingdom (U) [a1] 128 KB 128 KB Horizontal $C000 / $FFD8 / $C000 Pass 0 skeleton
Bad News Baseball (U) 128 KB 128 KB Horizontal $C003 / $FFD0 / $FFD8 Pass 0 skeleton
Battle Chess (U) 256 KB none Horizontal $C4EF / $C000 / $C4EE Pass 0 skeleton
Battle of Olympus, The (U) 128 KB none Vertical $D430 / $FFDA / $FFDA Pass 0 skeleton
Blaster Master (U) 128 KB 128 KB Horizontal $EB7E / $FFF4 / $EB97 Pass 0 skeleton
Caveman Games (U) 128 KB 128 KB Horizontal $8006 / $FF50 / $8003 Pass 0 skeleton
Circus Caper (U) 128 KB 128 KB Horizontal $C003 / $FFD0 / $C006 Pass 0 skeleton
Cobra Command (U) 128 KB 128 KB Horizontal $C749 / $C000 / $C7D5 Pass 0 skeleton
Demon Sword (U) 128 KB 128 KB Horizontal $DF2A / $FFC0 / $DFAB Pass 0 skeleton four-screen flag
Dragon Fighter (U) 128 KB 128 KB Horizontal $C103 / $C000 / $C000 Pass 0 skeleton
Dusty Diamond's All-Star Softball (U) 128 KB 128 KB Vertical $D4F9 / $C001 / $D707 Pass 0 skeleton
Frankenstein - The Monster Returns (U) 128 KB 128 KB Vertical $C001 / $FFD8 / $C004 Pass 0 skeleton
Golf Grand Slam (U) 128 KB 128 KB Horizontal $C005 / $EFF1 / $C000 Pass 0 skeleton
Guerrilla War (U) 128 KB 128 KB Horizontal $C80D / $C000 / $C86B Pass 0 skeleton
Harlem Globetrotters (U) 128 KB 128 KB Horizontal $C7AF / $BFC5 / $C729 Pass 0 skeleton
Ikari 3 - The Rescue (U) 128 KB 128 KB Horizontal $C048 / $C000 / $C0C4 Pass 0 skeleton
Iron Tank (U) 128 KB 128 KB Horizontal $C21D / $C000 / $C306 Pass 0 skeleton
Magic of Scheherazade, The (U) 128 KB 128 KB Vertical $E3C9 / $E19B / $E19B Pass 0 skeleton
Monster Party (U) 128 KB 128 KB Horizontal $C1F3 / $FFD8 / $C0C0 Pass 0 skeleton
Muppet Adventure - Chaos at the Carnival (U) 128 KB none Vertical $D02A / $FFE0 / $D02A Pass 0 skeleton four-screen flag
Peter Pan & The Pirates (U) 128 KB 128 KB Horizontal $D577 / $C000 / $D7F3 Pass 0 skeleton
RoadBlasters (U) 128 KB 128 KB Horizontal $D9E8 / $CE7E / $DA4A Pass 0 skeleton four-screen flag
Sesame Street ABC (U) [a1] 128 KB 128 KB Horizontal $94C6 / $EC53 / $9372 Pass 0 skeleton
Sesame Street ABC (U) [a2] 128 KB 128 KB Horizontal $94C6 / $EC53 / $9372 Pass 0 skeleton
Ski or Die (U) 128 KB 128 KB Horizontal $E43B / $FFEA / $E48E Pass 0 skeleton
Willow (U) 128 KB 128 KB Horizontal $C080 / $FFE8 / $FFE8 Pass 0 skeleton battery

_wip/MAPPER66/ — mapper 66 (18 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Black Bass USA, The (U) 128 KB none Horizontal $F6D0 / $F67A / $F67A Pass 0 skeleton
Conan (U) 128 KB none Horizontal $CAA6 / $CAFB / $CAE2 Pass 0 skeleton
Dragon Power (U) 128 KB 32 KB Vertical $FB07 / $FF88 / $FB0A Pass 0 skeleton
Dragon's Lair (U) 128 KB none Vertical $EB2B / $D4D8 / $F3BC Pass 0 skeleton
Gilligan's Island (U) 128 KB none Horizontal $FAF3 / $F9C7 / $C0C0 Pass 0 skeleton
Gumshoe (UE) 128 KB 32 KB Vertical $8047 / $E700 / $807C Pass 0 skeleton
Jackal (U) 128 KB none Vertical $C292 / $C23D / $C2EA Pass 0 skeleton
Kid Kool (U) 128 KB none Vertical $C154 / $C000 / $C154 Pass 0 skeleton
Legendary Wings (U) 128 KB none Vertical $C19D / $C100 / $C100 Pass 0 skeleton
Little Mermaid, The (U) 128 KB none Vertical $C000 / $FEC0 / $C000 Pass 0 skeleton
Loopz (U) 128 KB none Horizontal $C55C / $C000 / $C5B4 Pass 0 skeleton
Mega Man (U) 128 KB none Vertical $D4A8 / $C008 / $C008 Pass 0 skeleton
NFL Football (U) 128 KB none Vertical $C177 / $C001 / $C000 Pass 0 skeleton
Rush'n Attack (U) 128 KB none Vertical $C074 / $C008 / $C0C2 Pass 0 skeleton
Side Pocket (U) 128 KB none Horizontal $CE70 / $CDF9 / $CDF9 Pass 0 skeleton battery
Skate or Die! (U) 128 KB none Vertical $C072 / $C001 / $C0E2 Pass 0 skeleton
Super Mario Bros - Duck Hunt (U) 64 KB 16 KB Vertical $C086 / $8000 / $C000 Pass 0 skeleton
Thunder & Lightning (U) 128 KB 32 KB Vertical $FFCA / $FF50 / $FFCD Pass 0 skeleton

_wip/MAPPER67/ — mapper 67 (7 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Cybernoid - The Fighting Machine (U) 32 KB 32 KB Vertical $8003 / $8000 / $0000 Pass 0 skeleton
Jaws (U) [a1] 32 KB 32 KB Horizontal $8A7B / $8100 / $8BB5 Pass 0 skeleton
Karate Champ (U) 32 KB 32 KB Horizontal $82BB / $8033 / $8033 Pass 0 skeleton
Mickey Mousecapade (U) 32 KB 32 KB Vertical $8003 / $8000 / $8078 Pass 0 skeleton
Puzzle (U) [a1] 32 KB 32 KB Horizontal $F86E / $8000 / $8000 Pass 0 skeleton
Puzzle (U) [a2] 32 KB 32 KB Horizontal $F86E / $8000 / $8000 Pass 0 skeleton
Puzzle (U) [a3] 32 KB 32 KB Horizontal $F86E / $8000 / $8000 Pass 0 skeleton

_wip/MAPPER68/ — mapper 68 (4 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
After Burner (U) 128 KB 256 KB Horizontal $E596 / $DB25 / $DB25 Pass 0 skeleton
Crystalis (U) [a2] 256 KB 128 KB Horizontal $F3B6 / $F2A4 / $F443 Pass 0 skeleton battery
Shadowgate (U) 128 KB 128 KB Horizontal $ECA3 / $E800 / $EB49 Pass 0 skeleton battery
Startropics (U) 256 KB 256 KB Vertical $FFAD / $FFA0 / $FFB5 Pass 0 skeleton

_wip/MAPPER69/ — mapper 69 (1 project)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Batman - Return of the Joker (U) 128 KB 256 KB Horizontal $E1D0 / $E2E6 / $E2A9 Pass 0 skeleton

_wip/MAPPER7/ — mapper 7 (39 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Arch Rivals (U) 128 KB none Horizontal $8095 / $FFDC / $8367 Pass 0 skeleton
Battletoads (U) 256 KB none Horizontal $FF98 / $FFF2 / $FF3F Pass 0 skeleton
Battletoads Double Dragon (U) 256 KB none Horizontal $FF98 / $FFF2 / $FF72 Pass 0 skeleton
Beetlejuice (U) [!] 128 KB none Horizontal $FFEE / $FFE6 / $FFAC Pass 0 skeleton
Cabal (U) 128 KB none Horizontal $FFDE / $FFEE / $FF53 Pass 0 skeleton
Cabal (U) [a1] 128 KB none Horizontal $FFDE / $FFEE / $FF53 Pass 0 skeleton
Caesar's Palace (U) 256 KB none Horizontal $C000 / $FFB2 / $FFB2 Pass 0 skeleton
Captain SkyHawk (U) 128 KB none Horizontal $FFF9 / $FFEE / $FFF9 Pass 0 skeleton
Castle of Deceit (U) 64 KB 64 KB Horizontal $82A9 / $FFE8 / $FFE8 Pass 0 skeleton
Classic Concentration (U) 256 KB none Horizontal $C85D / $C854 / $C85C Pass 0 skeleton
Cobra Triangle (U) 128 KB none Horizontal $FE1A / $FF90 / $FFF2 Pass 0 skeleton
Danny Sullivan's Indy Heat (U) 128 KB none Horizontal $FB06 / $FFF0 / $FB2B Pass 0 skeleton
Deadly Towers (U) 128 KB none Horizontal $FD61 / $FCFA / $FCFA Pass 0 skeleton
Deathbots (U) [a1] 64 KB 64 KB Horizontal $FF90 / $FF82 / $FF82 Pass 0 skeleton
Digger - The Legend of the Lost City (U) 128 KB none Horizontal $8020 / $8018 / $8018 Pass 0 skeleton
Double Dare (U) 256 KB none Horizontal $8006 / $FFF0 / $805A Pass 0 skeleton
Hollywood Squares (U) 256 KB none Horizontal $D545 / $C1A0 / $FFF9 Pass 0 skeleton
Ironsword - Wizards & Warriors 2 (U) 256 KB none Horizontal $FFDD / $FF91 / $DA2F Pass 0 skeleton
Ivan Ironman Stewart's Super Offroad (U) 128 KB none Vertical $FFEC / $FFE4 / $FFBD Pass 0 skeleton
Jeopardy! (U) 128 KB none Horizontal $FE6F / $FF94 / $FE7E Pass 0 skeleton
Jeopardy! 25th Anniversary Edition (U) 128 KB none Horizontal $FE85 / $FF94 / $FE94 Pass 0 skeleton
Jeopardy! Junior Edition (U) 128 KB none Horizontal $E4B1 / $FF94 / $E4C0 Pass 0 skeleton
Marble Madness (U) 128 KB none Vertical $FF9C / $FFC4 / $FFC3 Pass 0 skeleton
NARC (U) 128 KB none Horizontal $8177 / $FFED / $8668 Pass 0 skeleton
Nightmare On Elm Street, A (U) 128 KB none Horizontal $FEB0 / $FFF0 / $FEDC Pass 0 skeleton
RC Pro-Am 2 (U) 256 KB none Horizontal $FF89 / $FF80 / $FF80 Pass 0 skeleton
Solar Jetman - Hunt for the Golden Warpship (U) 256 KB none Horizontal $FFE3 / $FF88 / $FF78 Pass 0 skeleton
Solstice (U) 128 KB none Horizontal $07FD / $FE00 / $FE26 Pass 0 skeleton
Time Lord (U) 128 KB none Horizontal $FF68 / $8025 / $FF30 Pass 0 skeleton
WWF Wrestlemania (U) 128 KB none Horizontal $F1B6 / $FF22 / $F1B6 Pass 0 skeleton
Wheel of Fortune (U) 128 KB none Horizontal $FC3B / $FF90 / $FC51 Pass 0 skeleton
Wheel of Fortune - Starring Vanna White (U) 128 KB none Horizontal $8472 / $FF95 / $FFA4 Pass 0 skeleton
Wheel of Fortune Family Edition (U) 128 KB none Horizontal $FC48 / $FF90 / $FC5E Pass 0 skeleton
Wheel of Fortune Junior Edition (U) 128 KB none Horizontal $FC48 / $FF90 / $FC5E Pass 0 skeleton
Who Framed Roger Rabbit (U) 128 KB none Horizontal $FFB4 / $FFF2 / $FFC3 Pass 0 skeleton
Who Framed Roger Rabbit (U) [a1] 128 KB none Horizontal $FFB4 / $FFF2 / $FFC3 Pass 0 skeleton
Wizards & Warriors (U) 128 KB none Horizontal $FF86 / $FFAF / $FFB7 Pass 0 skeleton
Wizards & Warriors 3 (U) 256 KB none Horizontal $FFDC / $FF75 / $FEE7 Pass 0 skeleton
World Games (U) 128 KB none Horizontal $07FD / $FF00 / $FFB4 Pass 0 skeleton

_wip/MAPPER71/ — mapper 71 (12 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Bee 52 (U) 64 KB none Vertical $CA53 / $C007 / $CC55 Pass 0 skeleton
Big Nose Freaks Out (Aladdin) (U) 256 KB none Vertical $C161 / $C20B / $C10A Pass 0 skeleton
Big Nose Freaks Out (U) 256 KB none Vertical $C161 / $C20B / $C10A Pass 0 skeleton
Big Nose the Caveman (U) 256 KB none Vertical $C028 / $C004 / $0000 Pass 0 skeleton
Dizzy The Adventurer (Aladdin) (U) 128 KB none Vertical $C007 / $C02D / $FFF9 Pass 0 skeleton
Fantastic Adventures of Dizzy, The (U) 256 KB none Vertical $D1A2 / $EC50 / $C378 Pass 0 skeleton
Fire Hawk (U) 128 KB none Horizontal $C301 / $C0A0 / $C492 Pass 0 skeleton
Linus Spacehead's Cosmic Crusade (Aladdin) (U) 256 KB none Vertical $C007 / $C01A / $0000 Pass 0 skeleton
Micro Machines (Aladdin) (UE) 256 KB none Vertical $0300 / $F6B0 / $0000 Pass 0 skeleton
Mig-29 Soviet Fighter (U) 128 KB none Vertical $C8C9 / $C090 / $C18B Pass 0 skeleton
Solstice (U) [a1] 128 KB none Horizontal $07FD / $FE00 / $FE26 Pass 0 skeleton
Stunt Kids (U) 128 KB none Vertical $D6CE / $C004 / $C004 Pass 0 skeleton

_wip/MAPPER73/ — mapper 73 (1 project)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Punch-Out!! (U) 128 KB 128 KB Vertical $A008 / $A000 / $A000 Pass 0 skeleton four-screen flag

_wip/MAPPER79/ — mapper 79 (15 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Blackjack (U) 32 KB 64 KB Vertical $FF1A / $F000 / $F000 Pass 0 skeleton
Double Strike (U) (V1.0) 32 KB 32 KB Vertical $B081 / $FF00 / $B081 Pass 0 skeleton
Double Strike (U) (V1.1) 32 KB 32 KB Vertical $B081 / $FF00 / $B081 Pass 0 skeleton
Dudes With Attitude (U) 32 KB 32 KB Vertical $07FD / $8000 / $FFF9 Pass 0 skeleton
F-15 City War (U) 32 KB 32 KB Horizontal $F831 / $FFC0 / $8000 Pass 0 skeleton
F-15 City War (U) [a1] 32 KB 32 KB Vertical $F831 / $FFC0 / $8000 Pass 0 skeleton
Fire Hawk (U) [a1] 128 KB 128 KB Horizontal $0000 / $0100 / $92A0 Pass 0 skeleton
Krazy Kreatures (U) 32 KB 32 KB Vertical $D929 / $FE00 / $D994 Pass 0 skeleton
Puzzle (U) 32 KB 32 KB Horizontal $CDB6 / $D4A4 / $CCAB Pass 0 skeleton
Solitaire (U) 32 KB 32 KB Vertical $FF8E / $FF09 / $FF09 Pass 0 skeleton
Tiles of Fate (U) 32 KB 32 KB Vertical $80CF / $8000 / $8000 Pass 0 skeleton
Trolls on Treasure Island (U) 32 KB 32 KB Vertical $07FD / $FF72 / $FFF9 Pass 0 skeleton
Trolls on Treasure Island (U) [a1] 32 KB 32 KB Vertical $07FD / $FF72 / $FFF9 Pass 0 skeleton
Ultimate League Soccer (U) 32 KB 64 KB Horizontal $8028 / $8002 / $8002 Pass 0 skeleton
Venice Beach Volleyball (U) 32 KB 32 KB Vertical $8090 / $8001 / $8001 Pass 0 skeleton

_wip/MAPPER9/ — mapper 9 (2 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Mike Tyson's Punch-Out!! (U) (PRG 0) 128 KB 128 KB Horizontal $A008 / $A000 / $A000 Pass 0 skeleton
Mike Tyson's Punch-Out!! (U) (PRG 1) 128 KB 128 KB Horizontal $A008 / $A000 / $A000 Pass 0 skeleton

_wip/MAPPER99/ — mapper 99 (1 project)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Hot Slot (UE) 32 KB 64 KB Horizontal $809C / $8000 / $8000 Pass 0 skeleton

_wip/MMC1/ — mapper 1 (221 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
720 (U) 128 KB none Vertical $C372 / $C000 / $E898 Pass 0 skeleton
AD&D Heroes of the Lance (U) 128 KB 128 KB Horizontal $C06B / $C000 / $C063 Pass 0 skeleton battery
AD&D Hillsfar (U) [!] 256 KB none Horizontal $C003 / $FFD8 / $FFD8 Pass 0 skeleton battery
Abadox (U) 128 KB 128 KB Horizontal $C47B / $FFB0 / $C58C Pass 0 skeleton
Addams Family - Pugsley's Scavenger Hunt, The (U) 128 KB 128 KB Horizontal $C303 / $FF80 / $C36C Pass 0 skeleton
Addams Family, The (U) 128 KB 128 KB Horizontal $0104 / $C000 / $0314 Pass 0 skeleton
Adventures of Bayou Billy, The (U) 128 KB 128 KB Horizontal $DC1A / $FFF2 / $DCD2 Pass 0 skeleton
Adventures of Lolo (U) [!] 32 KB 32 KB Horizontal $DC88 / $C000 / $DD04 Pass 0 skeleton
Adventures of Lolo 3 (U) 128 KB 128 KB Horizontal $D677 / $FFF0 / $D6E4 Pass 0 skeleton
Adventures of Rad Gravity, The (U) 128 KB 128 KB Horizontal $C000 / $C0EF / $C0EF Pass 0 skeleton
Adventures of Tom Sawyer (U) 128 KB 128 KB Horizontal $F89F / $FFD0 / $B1D1 Pass 0 skeleton
Air Fortress (U) 128 KB 32 KB Horizontal $D1C8 / $C000 / $C0BA Pass 0 skeleton
Airwolf (U) 32 KB 128 KB Horizontal $CC2C / $CBC3 / $CC39 Pass 0 skeleton
Al Unser Jr Turbo Racing (U) 128 KB 128 KB Vertical $E9E4 / $FF80 / $EA26 Pass 0 skeleton
Al Unser Jr Turbo Racing (U) [a1] 128 KB 128 KB Vertical $E9E4 / $FF80 / $EA26 Pass 0 skeleton
Al Unser Jr Turbo Racing (U) [a2] 128 KB 128 KB Vertical $E9E4 / $FF80 / $EA26 Pass 0 skeleton
All-Pro Basketball (U) 128 KB 128 KB Vertical $C26C / $FFD0 / $C2AD Pass 0 skeleton
American Gladiators (U) 128 KB 128 KB Horizontal $E400 / $FFF1 / $E46E Pass 0 skeleton
Anticipation (U) 32 KB 32 KB Horizontal $DEE5 / $FFDD / $DF24 Pass 0 skeleton
Attack of the Killer Tomatoes (U) 128 KB 128 KB Horizontal $CF63 / $FFF1 / $CFC4 Pass 0 skeleton
Back to the Future 2 & 3 (U) 128 KB 128 KB Vertical $C788 / $C000 / $C787 Pass 0 skeleton four-screen flag
Bad Street Brawler (U) 128 KB none Vertical $FA50 / $CF4C / $FB49 Pass 0 skeleton
Barbie (U) (Rev 3) 128 KB 128 KB Horizontal $CCD0 / $FFF1 / $CD19 Pass 0 skeleton
Barbie (U) (Rev X) 128 KB 128 KB Horizontal $CCCE / $FFF1 / $CD17 Pass 0 skeleton
Bard's Tale - Tales of the Unknown, The (U) [!] 128 KB none Horizontal $C350 / $C000 / $C000 Pass 0 skeleton battery
Barker Bill's Trick Shooting (U) 64 KB 128 KB Horizontal $C4EB / $C000 / $C000 Pass 0 skeleton
Baseball Simulator 1.000 (U) 128 KB 128 KB Vertical $F098 / $E600 / $F087 Pass 0 skeleton battery
Baseball Stars (U) 128 KB 128 KB Horizontal $CFB3 / $CC69 / $D026 Pass 0 skeleton battery
Bases Loaded (U) 256 KB 64 KB Horizontal $8359 / $FFB0 / $83A6 Pass 0 skeleton
Bases Loaded 2 (U) 256 KB 128 KB Horizontal $85F0 / $8001 / $8694 Pass 0 skeleton
Big Bird's Hide and Speak (U) 256 KB 128 KB Horizontal $DDC7 / $DE57 / $DE34 Pass 0 skeleton
Bigfoot (U) 128 KB 128 KB Horizontal $F256 / $EC8F / $F259 Pass 0 skeleton
Bill & Ted's Excellent Video Game Adventure (U) 128 KB 128 KB Horizontal $FFEE / $FFE0 / $FFF1 Pass 0 skeleton
Bionic Commando (U) 256 KB none Vertical $C058 / $FFE0 / $C0B2 Pass 0 skeleton
Blaster Master (U) (Prototype) 128 KB 128 KB Vertical $EB75 / $FFF4 / $EB8E Pass 0 skeleton
Bomberman 2 (U) 128 KB none Horizontal $C01D / $C003 / $C0AB Pass 0 skeleton
Boulder Dash (U) 32 KB 32 KB Horizontal $A2C7 / $FF80 / $A2F3 Pass 0 skeleton
Boy and His Blob - Trouble on Blobolonia, A (U) 128 KB 128 KB Horizontal $C86F / $FFBF / $C8D2 Pass 0 skeleton
Break Time (U) 128 KB 32 KB Horizontal $C571 / $8000 / $C5EE Pass 0 skeleton
Breakthru (U) 128 KB 128 KB Horizontal $C58F / $C000 / $C000 Pass 0 skeleton
Bubble Bobble (U) 128 KB 32 KB Horizontal $CE07 / $E882 / $CE61 Pass 0 skeleton
Bugs Bunny Crazy Castle, The (U) 64 KB 32 KB Horizontal $EF95 / $EC00 / $EE71 Pass 0 skeleton
Bugs Bunny Fun House (Prototype) (U) 128 KB 128 KB Horizontal $EF95 / $EC00 / $EE71 Pass 0 skeleton
Castlevania 2 - Simon's Quest (U) 128 KB 128 KB Horizontal $C046 / $FFD0 / $C096 Pass 0 skeleton
Chessmaster, The (U) 128 KB 32 KB Horizontal $07FD / $C000 / $C134 Pass 0 skeleton
Chip 'n Dale Rescue Rangers (U) [!] 128 KB 128 KB Horizontal $C000 / $FFE0 / $FFE0 Pass 0 skeleton
Chip 'n Dale Rescue Rangers 2 (U) 128 KB 128 KB Horizontal $C003 / $FFE0 / $FFE0 Pass 0 skeleton
Clash At Demonhead (U) 128 KB 128 KB Horizontal $FF00 / $C100 / $FF00 Pass 0 skeleton
Clash At Demonhead (U) [a1] 128 KB 128 KB Horizontal $FF00 / $C100 / $FF00 Pass 0 skeleton
Conflict (U) [!] 128 KB 128 KB Horizontal $C01B / $C000 / $C01B Pass 0 skeleton
Cool World (U) 128 KB 128 KB Horizontal $0104 / $C000 / $0314 Pass 0 skeleton
Dance Aerobics (U) 64 KB 32 KB Horizontal $FC76 / $FFD8 / $C0C0 Pass 0 skeleton
Darkman (U) 128 KB 128 KB Horizontal $F5DC / $FF60 / $F633 Pass 0 skeleton
Darkwing Duck (U) 128 KB 128 KB Vertical $C000 / $FFE0 / $FFE0 Pass 0 skeleton
Darkwing Duck (U) (Prototype) 128 KB 128 KB Vertical $C000 / $FFE0 / $FFE0 Pass 0 skeleton
Day Dreamin' Davey (U) 256 KB 128 KB Horizontal $C009 / $BFB0 / $FFDB Pass 0 skeleton
Defender of the Crown (U) 256 KB none Vertical $C0C9 / $C000 / $C0DF Pass 0 skeleton
Desert Commander (U) 128 KB 128 KB Horizontal $E8E9 / $FFED / $F74E Pass 0 skeleton
Destiny of an Emperor (U) 256 KB none Horizontal $EE79 / $FFD8 / $EE79 Pass 0 skeleton battery
Die Hard (U) 128 KB 128 KB Horizontal $C207 / $C000 / $C2E4 Pass 0 skeleton
Double Dragon (U) 128 KB 128 KB Vertical $FF16 / $FFE8 / $E165 Pass 0 skeleton
Dr Jekyll and Mr Hyde (U) 128 KB 32 KB Horizontal $D0FF / $D066 / $D257 Pass 0 skeleton
Dr Mario (JU) 32 KB 32 KB Horizontal $8005 / $FF00 / $8035 Pass 0 skeleton
Dr Mario (JU) [a1] 32 KB 32 KB Horizontal $8005 / $FF00 / $8035 Pass 0 skeleton
Dr Mario (JU) [a2] 32 KB 48 KB Horizontal $8005 / $FF00 / $8035 Pass 0 skeleton
Drac's Night Out (Prototype) (U) [!] 128 KB 128 KB Horizontal $C06A / $C000 / $C099 Pass 0 skeleton
Dragon Warrior (U) (PRG 0) 64 KB 16 KB Horizontal $FE67 / $FFD8 / $FD3A Pass 0 skeleton battery
Dragon Warrior (U) (PRG 1) 64 KB 16 KB Horizontal $FE67 / $FFD8 / $FD3A Pass 0 skeleton battery
Dragon Warrior 2 (U) 256 KB none Horizontal $C000 / $FFD7 / $C5AB Pass 0 skeleton battery
Dragon Warrior 3 (U) 512 KB none Horizontal $C96C / $FFD8 / $E864 Pass 0 skeleton battery
Dragon Warrior 4 (U) 512 KB none Horizontal $0502 / $FFD8 / $C408 Pass 0 skeleton battery
Dungeon Magic - Sword of the Elements (U) 128 KB 128 KB Vertical $C0BE / $C000 / $C000 Pass 0 skeleton battery
Dynowarz - Destruction of Spondylus (U) 128 KB 128 KB Horizontal $C982 / $C05B / $C981 Pass 0 skeleton
Eliminator Boat Duel (U) 128 KB 128 KB Horizontal $C003 / $FFBC / $C003 Pass 0 skeleton
Evert & Lendl Top Player's Tennis (U) 128 KB 128 KB Horizontal $F918 / $FFBE / $F9E5 Pass 0 skeleton
Family Feud (U) 32 KB 128 KB Horizontal $CA5E / $D136 / $CAC3 Pass 0 skeleton
Faria (U) 128 KB 128 KB Horizontal $CF35 / $FFD0 / $FFD0 Pass 0 skeleton battery
Faxanadu (U) 256 KB none Vertical $C999 / $C913 / $C9D5 Pass 0 skeleton
Ferrari - Grand Prix Challenge (U) [!] 128 KB 128 KB Horizontal $0104 / $C000 / $0314 Pass 0 skeleton
Fester's Quest (U) 128 KB 128 KB Horizontal $C364 / $FFF3 / $FFF3 Pass 0 skeleton
Fester's Quest (U) (Prototype) 128 KB 128 KB Vertical $C36A / $FFF3 / $FFF3 Pass 0 skeleton
Final Fantasy (U) 256 KB none Horizontal $FE9C / $FE2E / $FEBB Pass 0 skeleton battery
Final Fantasy (U) [a1] 256 KB none Vertical $FE9C / $FE2E / $FEBB Pass 0 skeleton battery
Flying Warriors (U) 128 KB 128 KB Horizontal $F4CD / $F436 / $F462 Pass 0 skeleton
Formula One Built To Win (U) [!] 128 KB 128 KB Horizontal $F853 / $FFD5 / $FFFF Pass 0 skeleton battery
Freedom Force (U) [!] 128 KB 128 KB Horizontal $F08B / $FFF3 / $FFF3 Pass 0 skeleton
Genghis Khan (U) 256 KB none Horizontal $C0D9 / $C000 / $C14B Pass 0 skeleton
Ghostbusters 2 (U) 128 KB 128 KB Horizontal $FEF0 / $8000 / $FFF5 Pass 0 skeleton
Ghoul School (U) 128 KB 128 KB Vertical $C2B9 / $FFF1 / $C324 Pass 0 skeleton four-screen flag
Goal! (U) 256 KB 128 KB Horizontal $07FD / $FFB9 / $FFDF Pass 0 skeleton
Godzilla - Monster of Monsters! (U) 128 KB 128 KB Horizontal $C003 / $C000 / $C006 Pass 0 skeleton
Godzilla 2 - War of the Monsters (U) 128 KB 128 KB Horizontal $FA00 / $FFF0 / $FFF0 Pass 0 skeleton
Golgo 13 - Top Secret Episode (U) 128 KB 128 KB Horizontal $C081 / $C000 / $C081 Pass 0 skeleton
Great Waldo Search, The (U) 128 KB 128 KB Horizontal $EC31 / $FF40 / $ED24 Pass 0 skeleton
Greg Norman's Golf Power (U) 128 KB none Horizontal $E155 / $FFF3 / $E398 Pass 0 skeleton battery
Hatris (U) 128 KB none Horizontal $C20B / $C000 / $C292 Pass 0 skeleton
Heavy Shreddin' (U) 128 KB 128 KB Horizontal $8003 / $FFCB / $82FF Pass 0 skeleton
Hook (U) 128 KB 128 KB Horizontal $E09B / $FF64 / $E106 Pass 0 skeleton
Hoops (U) 128 KB 128 KB Horizontal $E13C / $FFD0 / $E17D Pass 0 skeleton
Hudson Hawk (U) 128 KB 128 KB Horizontal $C010 / $FE52 / $C013 Pass 0 skeleton
Ikari Warriors 2 - Victory Road (U) 256 KB none Horizontal $C000 / $FF40 / $51DF Pass 0 skeleton
Indiana Jones and the Last Crusade (Taito) (U) 256 KB none Horizontal $07FD / $FF00 / $FFF9 Pass 0 skeleton
Journey to Silius (U) 128 KB 128 KB Horizontal $C151 / $FFF3 / $FFF3 Pass 0 skeleton
Kid Icarus (UE) 128 KB none Vertical $C866 / $FF80 / $FFCC Pass 0 skeleton
Kid Niki - Radical Ninja (U) (PRG 0) 256 KB none Horizontal $8020 / $FFCE / $FFCE Pass 0 skeleton
Kid Niki - Radical Ninja (U) (PRG 1) [!] 256 KB none Vertical $8020 / $FFC8 / $FFC8 Pass 0 skeleton
Knight Rider (U) 64 KB 128 KB Horizontal $D362 / $C6EC / $FEFE Pass 0 skeleton
Lee Trevino's Fighting Golf (U) 128 KB 128 KB Horizontal $C079 / $C000 / $C0B7 Pass 0 skeleton
Legend of Zelda, The (U) (PRG 0) 128 KB none Horizontal $E484 / $FF50 / $FFF0 Pass 0 skeleton battery
Legend of Zelda, The (U) (PRG 1) 128 KB none Horizontal $E484 / $FF50 / $FFF0 Pass 0 skeleton battery
Legend of the Ghost Lion (U) 128 KB 128 KB Horizontal $FFEA / $FFED / $FFE9 Pass 0 skeleton battery
Lemmings (U) 128 KB 128 KB Horizontal $0100 / $FEA0 / $0103 Pass 0 skeleton
Lethal Weapon (U) 128 KB 128 KB Horizontal $FB46 / $FFF3 / $CA48 Pass 0 skeleton
Little League Baseball - Championship Series (U) 128 KB 128 KB Horizontal $CD85 / $CBD5 / $CDF4 Pass 0 skeleton
M.U.L.E. (U) 128 KB none Vertical $CE50 / $CEB6 / $CE9D Pass 0 skeleton
Magic Darts (U) 128 KB 128 KB Horizontal $FFCB / $FF8A / $FFCE Pass 0 skeleton
Magic Johnson's Fast Break (U) 128 KB 128 KB Horizontal $07FD / $FF00 / $FF89 Pass 0 skeleton
Maniac Mansion (U) 256 KB none Vertical $E362 / $D799 / $FFFF Pass 0 skeleton
Mechanized Attack (U) 64 KB 128 KB Horizontal $CE2A / $C000 / $CF0C Pass 0 skeleton
Mega Man 2 (U) 256 KB none Vertical $CFF0 / $FFE0 / $FFE0 Pass 0 skeleton
Metal Mech (U) 128 KB 128 KB Horizontal $D786 / $D352 / $D7AD Pass 0 skeleton
Metroid (U) 128 KB none Vertical $C0D9 / $FFB0 / $FFB0 Pass 0 skeleton
Miracle Piano Teaching System, The (U) 256 KB 64 KB Horizontal $C003 / $C000 / $C006 Pass 0 skeleton
Monopoly (U) 128 KB 128 KB Horizontal $C005 / $FF70 / $C000 Pass 0 skeleton
Motor City Patrol (U) 128 KB 128 KB Horizontal $FF21 / $FFAD / $FFAD Pass 0 skeleton
Mutant Virus, The (U) 128 KB 128 KB Horizontal $C16B / $C000 / $C16A Pass 0 skeleton
NES Open Tournament Golf (U) 256 KB none Horizontal $D2BF / $FFF3 / $CD73 Pass 0 skeleton battery
NES Open Tournament Golf (U) [a1] 256 KB none Horizontal $D2BF / $FFF3 / $CD73 Pass 0 skeleton battery
Nigel Mansell's World Championship Challenge (U) 128 KB 128 KB Horizontal $0104 / $C000 / $0314 Pass 0 skeleton
Ninja Gaiden (U) 128 KB 128 KB Horizontal $F91A / $FFDA / $FA1F Pass 0 skeleton
Ninja Gaiden (U) [a1] 128 KB 128 KB Horizontal $F91A / $FFDA / $FA1F Pass 0 skeleton
Ninja Gaiden (U) [a2] 128 KB 128 KB Horizontal $F91A / $FFDA / $FA1F Pass 0 skeleton 128-byte footer
Nobunaga's Ambition (U) 256 KB none Horizontal $C0DA / $C000 / $C139 Pass 0 skeleton battery
Operation Wolf (U) 128 KB 128 KB Horizontal $C0EA / $C010 / $C23C Pass 0 skeleton
Orb 3D (U) 64 KB 128 KB Horizontal $C003 / $C000 / $C006 Pass 0 skeleton
Overlord (U) 256 KB none Horizontal $C5F3 / $FFB0 / $FFDB Pass 0 skeleton
POW - Prisoners of War (U) 128 KB 128 KB Horizontal $C053 / $C000 / $C0CE Pass 0 skeleton
Palamedes (U) 32 KB 32 KB Horizontal $C055 / $BFD0 / $C0C1 Pass 0 skeleton
Phantom Fighter (U) 256 KB none Horizontal $C000 / $FFB0 / $0F00 Pass 0 skeleton
Pictionary (U) 128 KB 128 KB Horizontal $07FD / $FF00 / $C239 Pass 0 skeleton
Pinball Quest (U) 128 KB 128 KB Horizontal $C4B7 / $FFC0 / $C5D7 Pass 0 skeleton
Pinball Quest (U) [a1] 128 KB 128 KB Horizontal $C4B7 / $FFC0 / $C5D7 Pass 0 skeleton
Pirates! (U) 128 KB 128 KB Horizontal $F0F3 / $FFF1 / $FBFF Pass 0 skeleton battery
Platoon (U) (PRG 0) 128 KB 128 KB Horizontal $FC4B / $FFF3 / $FCBD Pass 0 skeleton
Platoon (U) (PRG 1) [!] 128 KB 128 KB Vertical $FC4B / $FFF3 / $FCBD Pass 0 skeleton
Predator (U) 128 KB 128 KB Horizontal $C643 / $C000 / $FEFE Pass 0 skeleton
Princess Tomato in Salad Kingdom (U) 256 KB none Horizontal $C05C / $C000 / $C0D5 Pass 0 skeleton
Qix (U) 128 KB none Horizontal $8003 / $FF90 / $8039 Pass 0 skeleton
RC Pro-Am (U) (PRG 1) 32 KB 32 KB Vertical $9AAB / $FFE9 / $FFF0 Pass 0 skeleton
Race America (U) 128 KB 128 KB Horizontal $CAC3 / $FFF1 / $CBB5 Pass 0 skeleton
Racket Attack (U) 256 KB 128 KB Horizontal $80AB / $FFB0 / $811C Pass 0 skeleton
Rad Racer (U) 128 KB none Horizontal $FF38 / $FE89 / $FF5E Pass 0 skeleton
Remote Control (U) 128 KB 128 KB Horizontal $FD64 / $FF00 / $EC22 Pass 0 skeleton
Rescue - The Embassy Mission (U) 128 KB 128 KB Horizontal $EBFE / $EB00 / $F5FE Pass 0 skeleton
Robin Hood - Prince of Thieves (U) 256 KB none Horizontal $C02F / $BFB0 / $FFDB Pass 0 skeleton
Robocop 2 (U) 128 KB 128 KB Horizontal $FE51 / $FF64 / $FE7F Pass 0 skeleton
Robocop 3 (U) 128 KB 128 KB Horizontal $C466 / $FF00 / $C464 Pass 0 skeleton
Rocket Ranger (U) [!] 256 KB none Horizontal $D71E / $C000 / $FFF9 Pass 0 skeleton
Rocketeer, The (U) 256 KB none Vertical $C000 / $FFA2 / $FFA2 Pass 0 skeleton
Rollerball (U) 128 KB 32 KB Horizontal $C073 / $C000 / $C05E Pass 0 skeleton
Romance of the Three Kingdoms (U) 256 KB none Horizontal $C0D5 / $C000 / $C13F Pass 0 skeleton battery
SCAT - Special Cybernetic Attack Team (U) 128 KB 128 KB Horizontal $C05E / $BFD0 / $C0E2 Pass 0 skeleton
Sesame Street 123 (U) 32 KB 32 KB Horizontal $FF40 / $CCFA / $FFB2 Pass 0 skeleton
Sesame Street ABC (U) 32 KB 32 KB Horizontal $94C6 / $EC53 / $9372 Pass 0 skeleton
Sesame Street ABC - 123 (U) 128 KB 128 KB Horizontal $C45F / $FFEE / $C45E Pass 0 skeleton
Sesame Street Countdown (U) 128 KB 128 KB Horizontal $CDF9 / $D1CD / $C9DD Pass 0 skeleton
Shingen The Ruler (U) 256 KB none Horizontal $FEF8 / $FFD9 / $FEA0 Pass 0 skeleton
Shingen The Ruler (U) [a1] 256 KB none Horizontal $FEF8 / $FFD9 / $FEA0 Pass 0 skeleton
Short Order - Eggsplode (U) 32 KB 32 KB Horizontal $C4AF / $FFB0 / $C4EE Pass 0 skeleton
Silk Worm (U) 128 KB 128 KB Vertical $C103 / $FF80 / $C106 Pass 0 skeleton
Simpsons - Bart Vs the Space Mutants, The (U) 128 KB 128 KB Vertical $CEDE / $C000 / $CF29 Pass 0 skeleton
Skate or Die 2 - The Search for Double Trouble (U) 256 KB 128 KB Horizontal $CADD / $C4B3 / $D02A Pass 0 skeleton
Sky Kid (U) 32 KB 64 KB Horizontal $F429 / $F212 / $F212 Pass 0 skeleton
Sky Shark (U) 64 KB 128 KB Horizontal $07FD / $FF00 / $FF9E Pass 0 skeleton
Snake Rattle'n Roll (U) 32 KB 32 KB Horizontal $FF81 / $FFF1 / $FF80 Pass 0 skeleton
Snake's Revenge (U) 128 KB 128 KB Horizontal $C093 / $FFF2 / $C0F1 Pass 0 skeleton
Snoopy's Silly Sports Spectacular (U) 128 KB 128 KB Horizontal $E8E9 / $E800 / $F219 Pass 0 skeleton
Snow Bros (U) 128 KB 128 KB Horizontal $C246 / $FFD8 / $C0C0 Pass 0 skeleton
Space Shuttle Project (U) 256 KB none Horizontal $C003 / $FFF1 / $C006 Pass 0 skeleton
Spot (U) 128 KB none Horizontal $D468 / $C000 / $D466 Pass 0 skeleton
Stealth ATF (U) 128 KB 128 KB Horizontal $801A / $8000 / $D1E5 Pass 0 skeleton
Street Cop (U) 128 KB 128 KB Horizontal $F942 / $FFD3 / $FFF0 Pass 0 skeleton
Strider (U) 256 KB none Horizontal $C0ED / $BFE0 / $C12B Pass 0 skeleton
Super Dodge Ball (U) 128 KB 128 KB Horizontal $FF3A / $FFE8 / $EF9E Pass 0 skeleton
Super Jeopardy! (U) 128 KB 128 KB Horizontal $C4A2 / $FFF0 / $FFF0 Pass 0 skeleton
Super Mario Bros - Duck Hunt - Track Meet (U) 128 KB 64 KB Horizontal $E001 / $E037 / $E000 Pass 0 skeleton
Superman (U) 128 KB 128 KB Horizontal $E8E3 / $FFED / $EE40 Pass 0 skeleton
Swamp Thing (U) [!] 128 KB 128 KB Horizontal $C109 / $FFF1 / $C15C Pass 0 skeleton
Taboo - The Sixth Sense (U) 32 KB 32 KB Horizontal $8059 / $8000 / $FF69 Pass 0 skeleton
TaleSpin (U) 128 KB 128 KB Horizontal $C000 / $FFE0 / $FFE0 Pass 0 skeleton
Target Renegade (U) 128 KB 128 KB Horizontal $07FD / $FF00 / $FFA6 Pass 0 skeleton
Tecmo Baseball (U) 128 KB none Horizontal $C103 / $FF00 / $C106 Pass 0 skeleton
Tecmo Bowl (U) (PRG 0) 128 KB 128 KB Horizontal $C060 / $C000 / $C3A0 Pass 0 skeleton
Tecmo Bowl (U) (PRG 1) 128 KB 128 KB Vertical $C060 / $FFE0 / $C060 Pass 0 skeleton
Tecmo Bowl (U) (Prototype) 128 KB 128 KB Horizontal $C060 / $C000 / $C2A0 Pass 0 skeleton
Tecmo Cup - Soccer Game (U) 128 KB 128 KB Horizontal $8002 / $FFC0 / $8002 Pass 0 skeleton
Tecmo Cup - Soccer Game (U) [a1] 128 KB 128 KB Horizontal $8002 / $FFC0 / $8002 Pass 0 skeleton
Tecmo World Wrestling (U) 128 KB 128 KB Vertical $BF00 / $FFE0 / $BF00 Pass 0 skeleton
Teenage Mutant Ninja Turtles (U) 128 KB 128 KB Horizontal $C3A3 / $FFD8 / $C412 Pass 0 skeleton
Tetris (U) [!] 32 KB 16 KB Vertical $8005 / $FF00 / $804A Pass 0 skeleton
Three Stooges (U) 128 KB 128 KB Horizontal $E859 / $E45F / $E8DA Pass 0 skeleton
Three Stooges (U) (Prototype) 128 KB 128 KB Vertical $E925 / $E540 / $E9A6 Pass 0 skeleton
Thunderbirds (U) 128 KB 128 KB Horizontal $C7A9 / $C600 / $C85B Pass 0 skeleton
Tombs and Treasure (U) 256 KB none Horizontal $C003 / $C000 / $C006 Pass 0 skeleton
Touch Down Fever (U) 128 KB 32 KB Horizontal $C047 / $C000 / $C044 Pass 0 skeleton
Track & Field 2 (U) 128 KB 128 KB Horizontal $C047 / $C001 / $C121 Pass 0 skeleton
Treasure Master (U) 128 KB 128 KB Horizontal $07FD / $FF0C / $FF8F Pass 0 skeleton
Ultima - Exodus (U) 256 KB none Vertical $EA30 / $FFA0 / $ED32 Pass 0 skeleton battery
Ultima - Quest of the Avatar (U) 256 KB none Horizontal $F1A1 / $FFDA / $FFDA Pass 0 skeleton battery
Ultima - Warriors of Destiny (U) 256 KB none Horizontal $CE4B / $C000 / $FC1C Pass 0 skeleton
Untouchables, The (U) 128 KB 128 KB Horizontal $0108 / $FF50 / $0314 Pass 0 skeleton
Vegas Dream (U) 128 KB 128 KB Horizontal $C401 / $FF00 / $C4B4 Pass 0 skeleton
Win, Lose or Draw (U) 128 KB none Horizontal $EC40 / $FF00 / $EDA7 Pass 0 skeleton
Wizardry - Proving Grounds of the Mad Overlord (U) 128 KB 128 KB Vertical $C069 / $C003 / $C1C9 Pass 0 skeleton battery
Wrath of the Black Manta (U) 128 KB 128 KB Horizontal $817E / $FFD8 / $FFD5 Pass 0 skeleton
Wrecking Crew (JUE) 32 KB 8 KB Horizontal $9BB7 / $9ACD / $9ACD Pass 0 skeleton
Xenophobe (U) 128 KB 32 KB Horizontal $C0E8 / $FFF3 / $FFF3 Pass 0 skeleton
Xexyz (U) 128 KB 128 KB Horizontal $815A / $FFD0 / $FFD8 Pass 0 skeleton
Yo! Noid (U) 128 KB 128 KB Horizontal $C33B / $FFD1 / $C413 Pass 0 skeleton
Yoshi (U) 128 KB 128 KB Horizontal $E122 / $FFDA / $E1ED Pass 0 skeleton
Zelda 2 - The Adventure of Link (U) 128 KB 128 KB Horizontal $C07B / $FF70 / $FFF0 Pass 0 skeleton battery

_wip/MMC3/ — mapper 4 (239 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
8 Eyes (U) 128 KB 128 KB Horizontal $FA00 / $FF00 / $FE09 Pass 0 skeleton
AD&D Dragon Strike (U) 256 KB 256 KB Vertical $FE05 / $FE98 / $FE98 Pass 0 skeleton
AD&D Dragon Strike (U) [a1] 256 KB 256 KB Horizontal $FE05 / $FE98 / $FE98 Pass 0 skeleton
AD&D Pool of Radiance (U) 512 KB 128 KB Vertical $F5EE / $F5AC / $D85E Pass 0 skeleton battery
Adventures of Lolo 2 (U) 32 KB 32 KB Horizontal $D317 / $FFEF / $D38D Pass 0 skeleton
Adventures of Rocky and Bullwinkle and Friends, The (U) 128 KB 128 KB Vertical $C000 / $FE00 / $C15D Pass 0 skeleton
Alien 3 (U) 128 KB 128 KB Horizontal $FE82 / $E000 / $FE7F Pass 0 skeleton
Alien Syndrome (U) 128 KB 128 KB Vertical $F682 / $FB07 / $FB07 Pass 0 skeleton
Astyanax (U) 128 KB 128 KB Horizontal $E0D0 / $E000 / $E1C3 Pass 0 skeleton
Astyanax (U) (Prototype) 128 KB 128 KB Vertical $E0BD / $E000 / $E1A8 Pass 0 skeleton
Bad Dudes (U) 128 KB 128 KB Horizontal $CA73 / $FF30 / $D015 Pass 0 skeleton
Base Wars (U) 128 KB 128 KB Horizontal $F95E / $F830 / $FABA Pass 0 skeleton
Base Wars (U) [a1] 128 KB 128 KB Horizontal $F95E / $F830 / $FABA Pass 0 skeleton
Baseball Stars 2 (U) 256 KB 128 KB Horizontal $F71B / $F2DE / $F7B7 Pass 0 skeleton
Bases Loaded 3 (U) 256 KB 128 KB Horizontal $E921 / $FF15 / $E9FE Pass 0 skeleton
Bases Loaded 4 (U) 256 KB 128 KB Horizontal $C131 / $FD4E / $C227 Pass 0 skeleton
Batman (U) 128 KB 128 KB Horizontal $ED2A / $FFF6 / $EE9A Pass 0 skeleton
Batman (U) (Prototype) 128 KB 128 KB Vertical $ECE7 / $FFF6 / $EE57 Pass 0 skeleton
Batman Returns (U) 128 KB 256 KB Horizontal $FC75 / $FBCC / $CF29 Pass 0 skeleton
Bill Elliott's NASCAR Challenge (U) 128 KB 256 KB Horizontal $E1AE / $E000 / $E3B4 Pass 0 skeleton
Blue Marlin, The (U) 128 KB 128 KB Horizontal $E124 / $E000 / $E1B4 Pass 0 skeleton
Bo Jackson Baseball (U) 128 KB 256 KB Vertical $E353 / $E000 / $E096 Pass 0 skeleton
Bonk's Adventure (U) 256 KB 128 KB Horizontal $C19A / $FFC0 / $C281 Pass 0 skeleton
Bram Stoker's Dracula (U) 128 KB 128 KB Vertical $FFF4 / $E000 / $FFF7 Pass 0 skeleton
Bubble Bobble Part 2 (U) 128 KB 128 KB Horizontal $E148 / $E000 / $E132 Pass 0 skeleton
Bucky O'Hare (U) [!] 128 KB 128 KB Vertical $FB86 / $FB3B / $D32C Pass 0 skeleton
Bugs Bunny Birthday Bash (Prototype) (U) 128 KB 128 KB Horizontal $ECC7 / $E800 / $EB49 Pass 0 skeleton
Bugs Bunny Birthday Blowout, The (U) 128 KB 128 KB Horizontal $ED9F / $E8C0 / $EC21 Pass 0 skeleton
Burai Fighter (U) 32 KB 32 KB Horizontal $F998 / $F8D7 / $FC90 Pass 0 skeleton
Captain America and the Avengers (U) 128 KB 128 KB Horizontal $E1DE / $E000 / $D79B Pass 0 skeleton
Captain Planet and the Planeteers (U) 128 KB 128 KB Horizontal $F7EE / $F9B2 / $F90B Pass 0 skeleton
Cliffhanger (U) 128 KB 128 KB Vertical $C000 / $FF97 / $C14A Pass 0 skeleton
Code Name Viper (U) 128 KB 128 KB Horizontal $FA68 / $FE00 / $E32B Pass 0 skeleton
Conquest of the Crystal Palace (U) 128 KB 128 KB Horizontal $F89D / $F7E8 / $F750 Pass 0 skeleton
Contra Force (U) 128 KB 128 KB Vertical $FD6B / $FD2B / $F728 Pass 0 skeleton
Cowboy Kid (U) 256 KB 256 KB Horizontal $C009 / $FFB0 / $C006 Pass 0 skeleton
Crash'n The Boys Street Challenge (U) 128 KB 128 KB Horizontal $FFF1 / $FFF4 / $FFF7 Pass 0 skeleton
Crystalis (Prototype) (U) 256 KB 128 KB Horizontal $F3B3 / $F2A3 / $F43C Pass 0 skeleton battery
Crystalis (Prototype) (U) [a1] 256 KB 128 KB Horizontal $F3B3 / $F2A3 / $F43C Pass 0 skeleton battery
Crystalis (U) 256 KB 128 KB Horizontal $F3B6 / $F2A4 / $F443 Pass 0 skeleton battery
Crystalis (U) [a1] 256 KB 128 KB Horizontal $F3B6 / $F2A4 / $F443 Pass 0 skeleton 127-byte footer; battery
Cyberball (U) 128 KB 128 KB Horizontal $F3BF / $E000 / $F5AE Pass 0 skeleton
Days of Thunder (U) 128 KB 256 KB Vertical $8059 / $FDF5 / $805C Pass 0 skeleton
Defenders of Dynatron City (U) 128 KB 128 KB Horizontal $C08E / $FFF2 / $FE80 Pass 0 skeleton
Deja Vu (U) 128 KB 256 KB Horizontal $EC9A / $E800 / $EB40 Pass 0 skeleton
Dirty Harry (U) 256 KB 128 KB Horizontal $F5BC / $F68F / $F68E Pass 0 skeleton
Double Dragon 2 - The Revenge (U) 128 KB 128 KB Horizontal $FF50 / $FF75 / $EC34 Pass 0 skeleton
Double Dragon 3 - The Sacred Stones (U) 128 KB 128 KB Horizontal $FF5F / $FF84 / $E173 Pass 0 skeleton
Dragon Spirit - The New Legend (U) 128 KB 128 KB Horizontal $CE2C / $FFD1 / $FFD1 Pass 0 skeleton
Earth Bound (Prototype) (U) 256 KB 256 KB Vertical $F79F / $FF40 / $FE13 Pass 0 skeleton battery
Earth Bound Zero (Neo Demiforce v1.01 Hack-1) (U) 256 KB 256 KB Vertical $F79F / $FF40 / $FE13 Pass 0 skeleton battery
Earth Bound Zero (Neo Demiforce v1.01 Hack-2) (U) 256 KB 256 KB Vertical $F79F / $FF40 / $FE13 Pass 0 skeleton battery
F-117a Stealth Fighter (U) [!] 256 KB 256 KB Vertical $E24E / $E000 / $E320 Pass 0 skeleton battery
F-15 Strike Eagle (U) 256 KB 256 KB Horizontal $F130 / $F97C / $F12F Pass 0 skeleton
Fantasy Zone (U) 64 KB 64 KB Horizontal $C006 / $FFB0 / $C003 Pass 0 skeleton
Felix the Cat (U) 128 KB 128 KB Vertical $C0C0 / $FFD0 / $C189 Pass 0 skeleton
Fire 'n Ice (U) 128 KB 128 KB Vertical $E003 / $E000 / $E006 Pass 0 skeleton
Flintstones - The Rescue of Dino & Hoppy, The (U) 128 KB 256 KB Horizontal $F944 / $F752 / $01FD Pass 0 skeleton
Flintstones 2 - The Surprise at Dinosaur Peak!, The (U) 128 KB 256 KB Horizontal $F9D0 / $F7C1 / $01FD Pass 0 skeleton
GI Joe (U) 128 KB 256 KB Horizontal $EF46 / $EED2 / $F34C Pass 0 skeleton
GI Joe - The Atlantis Factor (U) 128 KB 256 KB Horizontal $F3C1 / $F336 / $F9CF Pass 0 skeleton
Galaxy 5000 (U) 128 KB 128 KB Horizontal $FE96 / $F400 / $FF8F Pass 0 skeleton
Gargoyle's Quest 2 - The Demon Darkness (U) 128 KB 128 KB Horizontal $C000 / $FDD0 / $C144 Pass 0 skeleton
Gauntlet (U) 128 KB 64 KB Vertical $C16A / $FF90 / $FF90 Pass 0 skeleton four-screen flag
Gauntlet 2 (U) 128 KB 128 KB Vertical $F65F / $F6C2 / $F69D Pass 0 skeleton four-screen flag
George Foreman's KO Boxing (U) 128 KB 256 KB Horizontal $E24A / $E336 / $E222 Pass 0 skeleton
Gold Medal Challenge '92 (U) 128 KB 128 KB Horizontal $C0F8 / $FFD8 / $C20F Pass 0 skeleton
Gremlins 2 - The New Batch (U) 128 KB 256 KB Horizontal $E2DD / $E3C6 / $E36A Pass 0 skeleton
Gun Nac (U) 128 KB 128 KB Vertical $EF85 / $E000 / $F20B Pass 0 skeleton
Heavy Barrel (U) 128 KB 128 KB Horizontal $E178 / $E000 / $E4C9 Pass 0 skeleton
Home Alone (U) [!] 128 KB 128 KB Horizontal $E3D6 / $E000 / $E4D1 Pass 0 skeleton
Home Alone 2 - Lost in New York (U) 128 KB 128 KB Horizontal $C121 / $FFDB / $C18F Pass 0 skeleton
Hudson's Adventure Island 2 (U) 128 KB 128 KB Horizontal $E0CE / $FFAE / $E152 Pass 0 skeleton
Hudson's Adventure Island 3 (U) 128 KB 128 KB Horizontal $E0E3 / $FFAE / $E17F Pass 0 skeleton
Hunt for Red October, The (U) 128 KB 128 KB Horizontal $EB8C / $EAFF / $EDF2 Pass 0 skeleton
Image Fight (U) 128 KB 128 KB Horizontal $FDE0 / $FF90 / $FF81 Pass 0 skeleton
Immortal, The (U) 128 KB 256 KB Horizontal $F84D / $F6D6 / $F750 Pass 0 skeleton
Incredible Crash Dummies, The (U) 128 KB 256 KB Horizontal $07FD / $E102 / $07FA Pass 0 skeleton
Indiana Jones and the Temple of Doom (Tengen) (U) 128 KB 64 KB Horizontal $EC56 / $EBA4 / $0000 Pass 0 skeleton
Indiana Jones and the Temple of Doom (U) 128 KB 64 KB Horizontal $EC56 / $EBA4 / $0000 Pass 0 skeleton
Infiltrator (U) 128 KB 64 KB Horizontal $F6A5 / $F70D / $F6F6 Pass 0 skeleton
Isolated Warrior (U) 128 KB 128 KB Horizontal $F592 / $F432 / $F94F Pass 0 skeleton
Jackie Chan's Action Kung Fu (U) 128 KB 128 KB Horizontal $E0A8 / $FFDD / $E1DA Pass 0 skeleton
James Bond Jr (U) 128 KB 128 KB Vertical $C432 / $FD61 / $C424 Pass 0 skeleton
Jetsons - Cogswell's Caper!, The (U) 128 KB 256 KB Vertical $C003 / $FFF0 / $C006 Pass 0 skeleton
Joe & Mac (U) 128 KB 128 KB Vertical $FD5D / $FFD6 / $F649 Pass 0 skeleton
Jungle Book, The (U) 128 KB 128 KB Horizontal $EEF3 / $EFF5 / $EEE5 Pass 0 skeleton
Jurassic Park (U) 128 KB 128 KB Horizontal $CBAD / $E4FE / $CED3 Pass 0 skeleton
Kabuki - Quantum Fighter (U) 128 KB 128 KB Vertical $F8B1 / $F747 / $01FD Pass 0 skeleton
Karnov (U) 128 KB 64 KB Horizontal $C1DB / $C000 / $C200 Pass 0 skeleton
Kick Master (U) 128 KB 128 KB Vertical $F0BB / $F010 / $F7B1 Pass 0 skeleton
Kickle Cubicle (U) 128 KB 128 KB Vertical $C190 / $FFD0 / $FFD0 Pass 0 skeleton
Kid Klown (U) 128 KB 128 KB Horizontal $F39C / $E8C0 / $F64E Pass 0 skeleton
King's Quest V (U) 256 KB 256 KB Vertical $07F9 / $FFC0 / $07FD Pass 0 skeleton four-screen flag; battery
Kirby's Adventure (U) (PRG 0) 512 KB 256 KB Horizontal $C341 / $FFF0 / $0029 Pass 0 skeleton battery
Kirby's Adventure (U) (PRG 1) [!] 512 KB 256 KB Horizontal $C341 / $FFF0 / $0029 Pass 0 skeleton battery
Kiwi Kraze (U) 128 KB 128 KB Horizontal $07FD / $FF00 / $07FA Pass 0 skeleton
Krion Conquest, The (U) 128 KB 128 KB Horizontal $E11B / $E100 / $E180 Pass 0 skeleton
Krion Conquest, The (U) [a1] 128 KB 128 KB Horizontal $E11B / $E100 / $E180 Pass 0 skeleton
Krusty's Fun House (U) 256 KB 128 KB Horizontal $E2CD / $F995 / $E2A0 Pass 0 skeleton
Last Action Hero (U) [!] 128 KB 128 KB Vertical $FB84 / $E000 / $F7C3 Pass 0 skeleton
Last Ninja, The (U) 128 KB 128 KB Horizontal $E000 / $E141 / $8000 Pass 0 skeleton
Legacy of the Wizard (U) 128 KB 64 KB Horizontal $D1FE / $FFE0 / $D1FE Pass 0 skeleton
Legends of the Diamond (U) 128 KB 256 KB Horizontal $E002 / $E100 / $E005 Pass 0 skeleton
Little Nemo - The Dream Master (U) 128 KB 128 KB Horizontal $F4D9 / $F444 / $F9D2 Pass 0 skeleton
Little Ninja Brothers (U) 128 KB 128 KB Horizontal $ED87 / $E307 / $EC95 Pass 0 skeleton
Little Samson (U) 256 KB 128 KB Vertical $E0BE / $E000 / $E1A8 Pass 0 skeleton
Lone Ranger, The (U) 256 KB 128 KB Horizontal $F1AF / $F151 / $00E3 Pass 0 skeleton
Low G Man (U) 128 KB 128 KB Vertical $F4B1 / $F400 / $F949 Pass 0 skeleton
MC Kids (U) 128 KB 128 KB Horizontal $C66C / $FF80 / $C61C Pass 0 skeleton
Mad Max (U) [!] 128 KB 128 KB Horizontal $F200 / $F26A / $F253 Pass 0 skeleton
Mafat Conspiracy - Golgo 13 (U) 128 KB 128 KB Horizontal $E5E1 / $E040 / $E3F8 Pass 0 skeleton
Magician (U) 128 KB 128 KB Horizontal $F9AB / $F9C1 / $F9B3 Pass 0 skeleton
Magician (U) (Prototype) 128 KB 128 KB Vertical $F96E / $F984 / $F976 Pass 0 skeleton battery
Mappy-Land (U) 128 KB 32 KB Horizontal $062D / $FFC0 / $F064 Pass 0 skeleton
Mario is Missing! (U) 128 KB 128 KB Horizontal $C002 / $FA94 / $C380 Pass 0 skeleton
Mario's Time Machine! (U) 128 KB 128 KB Vertical $F749 / $FAE4 / $F489 Pass 0 skeleton
Mario's Time Machine! (U) [a1] 128 KB 128 KB Horizontal $F749 / $FAE4 / $F489 Pass 0 skeleton
Mega Man 3 (Prototype) (U) [!] 256 KB 128 KB Vertical $C000 / $FE00 / $C143 Pass 0 skeleton
Mega Man 3 (U) [!] 256 KB 128 KB Horizontal $C000 / $FE00 / $C143 Pass 0 skeleton
Mega Man 4 (U) 512 KB none Horizontal $C000 / $FE00 / $C149 Pass 0 skeleton
Mega Man 5 (U) 256 KB 256 KB Horizontal $C000 / $FE00 / $C169 Pass 0 skeleton
Mega Man 6 (U) 512 KB none Horizontal $C000 / $FF70 / $C14C Pass 0 skeleton
Mendel Palace (U) 128 KB 128 KB Vertical $C000 / $FF16 / $C068 Pass 0 skeleton
Metal Storm (U) 128 KB 256 KB Horizontal $FCBF / $FC00 / $FC00 Pass 0 skeleton
Michael Andretti's World Grand Prix (U) 128 KB 128 KB Vertical $FB12 / $F9C6 / $01FD Pass 0 skeleton
Mickey's Adventures in Numberland (U) 128 KB 128 KB Vertical $E091 / $E000 / $E08E Pass 0 skeleton
Mickey's Safari in Letterland (U) 128 KB 128 KB Vertical $E087 / $E000 / $E084 Pass 0 skeleton
Might and Magic (U) 256 KB 256 KB Horizontal $FFEF / $FF70 / $DB8D Pass 0 skeleton battery
Mighty Final Fight (U) 128 KB 128 KB Horizontal $C000 / $FE00 / $C13B Pass 0 skeleton
Mission Impossible (U) 128 KB 128 KB Horizontal $FE91 / $FE39 / $03E0 Pass 0 skeleton
Monster in My Pocket (U) 128 KB 128 KB Horizontal $FD1F / $FC3D / $D843 Pass 0 skeleton
NES Play Action Football (U) 128 KB 128 KB Horizontal $EF17 / $E250 / $8014 Pass 0 skeleton
Nightshade (U) 256 KB 256 KB Horizontal $E446 / $E471 / $E443 Pass 0 skeleton
Nightshade (U) [a1] 256 KB 256 KB Horizontal $E446 / $E471 / $E443 Pass 0 skeleton
Ninja Crusaders (U) 128 KB none Vertical $FD9E / $FEDC / $FEB6 Pass 0 skeleton
Ninja Gaiden 2 - The Dark Sword of Chaos (U) 128 KB 128 KB Horizontal $D4F3 / $FB62 / $D277 Pass 0 skeleton
Ninja Gaiden 2 - The Dark Sword of Chaos (U) (Prototype) 128 KB 128 KB Vertical $D4F3 / $FB62 / $D277 Pass 0 skeleton battery
Ninja Gaiden 3 - The Ancient Ship of Doom (U) 128 KB 128 KB Horizontal $C68F / $FFE0 / $C7B0 Pass 0 skeleton
Nintendo World Cup (U) 128 KB 128 KB Horizontal $FF5B / $FF82 / $E3AF Pass 0 skeleton
North & South (U) 128 KB 128 KB Horizontal $ECC4 / $E800 / $EB8C Pass 0 skeleton
Pacmania (U) 64 KB 32 KB Horizontal $EC10 / $ECC2 / $ECC2 Pass 0 skeleton
Panic Restaurant (U) 128 KB 128 KB Horizontal $FA53 / $FF70 / $F204 Pass 0 skeleton
Power Blade (U) [!] 128 KB 128 KB Vertical $F35A / $F186 / $F20A Pass 0 skeleton
Power Blade 2 (U) 128 KB 128 KB Vertical $E9C7 / $E5B9 / $E640 Pass 0 skeleton
Power Punch 2 (U) 128 KB 256 KB Horizontal $E0E0 / $E000 / $E0EB Pass 0 skeleton
Punisher, The (U) 128 KB 128 KB Horizontal $E6E6 / $E54A / $E712 Pass 0 skeleton
RBI Baseball (U) 64 KB 32 KB Vertical $F05B / $F000 / $F000 Pass 0 skeleton
RBI Baseball 2 (U) 128 KB 64 KB Vertical $F5C9 / $F538 / $F538 Pass 0 skeleton
RBI Baseball 3 (U) 128 KB 64 KB Vertical $F656 / $F5B4 / $F5B4 Pass 0 skeleton
Rad Racer 2 (U) [!] 64 KB 64 KB Horizontal $F68C / $F2A9 / $C147 Pass 0 skeleton
Rampage (U) 128 KB 64 KB Horizontal $DA41 / $FC99 / $DAC6 Pass 0 skeleton
Rampart (U) 128 KB 128 KB Vertical $FB3C / $FEE7 / $F36D Pass 0 skeleton
Ren & Stimpy Show, The (U) 128 KB 128 KB Horizontal $C128 / $FFDB / $C1B3 Pass 0 skeleton
Ring King (U) 64 KB 64 KB Vertical $C0C4 / $FFDA / $FFDA Pass 0 skeleton
River City Ransom (U) 128 KB 128 KB Horizontal $FF4F / $FF76 / $F1D9 Pass 0 skeleton
Road Runner (U) 64 KB 128 KB Vertical $FE40 / $E000 / $FEBD Pass 0 skeleton
Robocop (U) 128 KB 128 KB Horizontal $C195 / $FF00 / $C1BE Pass 0 skeleton
Robocop Vs The Terminator (Prototype) (U) 128 KB 128 KB Vertical $C680 / $FF80 / $C630 Pass 0 skeleton
Robocop Vs The Terminator (Prototype) (U) [a1] 128 KB 128 KB Vertical $C680 / $FF80 / $C630 Pass 0 skeleton
Rock 'n' Ball (U) 128 KB 64 KB Horizontal $C1D1 / $F6BF / $C3B8 Pass 0 skeleton
Rockin' Kats (U) [!] 128 KB 128 KB Vertical $F885 / $F800 / $F50C Pass 0 skeleton
Roger Clemens MVP Baseball (U) 128 KB 256 KB Vertical $CF44 / $FFAD / $CF43 Pass 0 skeleton
Rollerblade Racer (U) 128 KB 128 KB Vertical $FD58 / $FB03 / $FCAE Pass 0 skeleton
Rollergames (U) [!] 128 KB 128 KB Vertical $F3E5 / $F32F / $F27C Pass 0 skeleton
Rolling Thunder (U) 128 KB 128 KB Horizontal $FA5E / $FE80 / $DED6 Pass 0 skeleton
Roundball - 2-on-2 Challenge (U) 128 KB 128 KB Horizontal $EAB0 / $E005 / $E73D Pass 0 skeleton
Shadow of the Ninja (U) 128 KB 128 KB Vertical $E12D / $E000 / $E3CD Pass 0 skeleton
Shatterhand (U) 128 KB 128 KB Vertical $F626 / $FDB6 / $FB78 Pass 0 skeleton
Silver Surfer (U) 128 KB 256 KB Vertical $07FD / $FF60 / $FD82 Pass 0 skeleton
Simpsons - Bart Vs the World, The (U) 256 KB 128 KB Horizontal $D0D7 / $FFDB / $D153 Pass 0 skeleton
Simpsons - Bartman Meets Radioactive Man, The (U) 256 KB 128 KB Horizontal $C11B / $FFDB / $C19D Pass 0 skeleton
Smash TV (U) [!] 128 KB 128 KB Vertical $E0F5 / $E000 / $E168 Pass 0 skeleton
Spider-Man - Return of the Sinister Six (U) [!] 128 KB 256 KB Vertical $C128 / $E240 / $C12B Pass 0 skeleton
Stanley - The Search for Dr Livingston (U) 128 KB 128 KB Vertical $C81A / $FFA6 / $C819 Pass 0 skeleton
Star Trek - 25th Anniversary (U) 256 KB 256 KB Horizontal $C00F / $FF72 / $C367 Pass 0 skeleton
Star Wars (U) 128 KB 128 KB Horizontal $E003 / $E7B0 / $E000 Pass 0 skeleton
Star Wars - The Empire Strikes Back (U) 256 KB 256 KB Horizontal $FBD7 / $FB22 / $FB60 Pass 0 skeleton
Startropics 2 - Zoda's Revenge (U) 256 KB 256 KB Horizontal $FFAD / $FFA0 / $FFB5 Pass 0 skeleton
Startropics 2 - Zoda's Revenge (U) [a1] 256 KB 256 KB Horizontal $FFAD / $FFA0 / $FFB5 Pass 0 skeleton
Street Fighter 2010 (U) 128 KB 128 KB Horizontal $C270 / $FF80 / $C3C1 Pass 0 skeleton
Super C (U) 128 KB 128 KB Vertical $FB67 / $FACA / $E07F Pass 0 skeleton
Super Mario Bros 2 (U) (PRG 0) 128 KB 128 KB Vertical $EB8E / $FF50 / $FFF0 Pass 0 skeleton
Super Mario Bros 2 (U) (PRG 1) 128 KB 128 KB Vertical $EB94 / $FF50 / $FFF0 Pass 0 skeleton
Super Mario Bros 3 (U) (PRG 0) 256 KB 128 KB Horizontal $F486 / $FF40 / $F795 Pass 0 skeleton
Super Mario Bros 3 (U) (PRG 1) 256 KB 128 KB Horizontal $F486 / $FF40 / $F795 Pass 0 skeleton
Super Mario Bros 3 (U) (PRG 1) [a1] 256 KB 128 KB Horizontal $F486 / $FF40 / $F795 Pass 0 skeleton
Super Mario Bros 3 (U) (PRG 1) [a2] 256 KB 128 KB Horizontal $F486 / $FF40 / $F795 Pass 0 skeleton
Super Mario Bros 3 (U) (PRG 1) [a3] 256 KB 128 KB Horizontal $F486 / $FF40 / $F795 Pass 0 skeleton
Super Spike V'Ball (U) 128 KB 128 KB Horizontal $FF7E / $FF7B / $FF81 Pass 0 skeleton
Super Sprint (U) 64 KB 64 KB Vertical $DF8F / $FF00 / $FF00 Pass 0 skeleton
Super Spy Hunter (U) 128 KB 128 KB Vertical $C5B4 / $FFF6 / $C59C Pass 0 skeleton
Sword Master (U) 128 KB 128 KB Vertical $E100 / $E000 / $E175 Pass 0 skeleton
T&C 2 - Thrilla's Surfari (U) 128 KB 128 KB Vertical $C003 / $FF80 / $C003 Pass 0 skeleton
Tecmo NBA Basketball (U) 128 KB 256 KB Vertical $CD32 / $FFB0 / $FCC7 Pass 0 skeleton battery
Tecmo Super Bowl (U) 256 KB 128 KB Horizontal $C130 / $FFF0 / $C2C2 Pass 0 skeleton
Teenage Mutant Ninja Turtles 2 (U) 256 KB 256 KB Horizontal $FE0C / $FDA1 / $0050 Pass 0 skeleton
Teenage Mutant Ninja Turtles 3 (U) 256 KB 256 KB Horizontal $F814 / $F7A8 / $00E3 Pass 0 skeleton
Teenage Mutant Ninja Turtles Tournament Fighters (U) 128 KB 128 KB Horizontal $F219 / $F174 / $F85E Pass 0 skeleton
Terminator 2 - Judgement Day (U) 128 KB 128 KB Vertical $C0C0 / $FF8B / $C1FB Pass 0 skeleton
Terminator 2 - Judgement Day (U) (Prototype) 128 KB 128 KB Vertical $C000 / $E987 / $C124 Pass 0 skeleton
Terminator, The (U) 128 KB 128 KB Horizontal $C000 / $FED5 / $C1D3 Pass 0 skeleton
Tetris 2 (U) [!] 128 KB 128 KB Vertical $C68F / $FFD0 / $C710 Pass 0 skeleton
Tiny Toon Adventures (U) 128 KB 128 KB Horizontal $FE70 / $FDB7 / $FA22 Pass 0 skeleton
Tiny Toon Adventures 2 - Trouble in Wackyland (U) 128 KB 128 KB Horizontal $FE47 / $FDD3 / $F9E4 Pass 0 skeleton
Tiny Toon Adventures Cartoon Workshop (U) 128 KB 128 KB Vertical $E2B4 / $E2BA / $E2B7 Pass 0 skeleton
To The Earth (U) 32 KB 32 KB Vertical $E306 / $E144 / $9EC1 Pass 0 skeleton
Toki (U) 128 KB 256 KB Horizontal $FC1E / $F400 / $FFF7 Pass 0 skeleton
Tom & Jerry (and Tuffy) (U) 128 KB 128 KB Horizontal $07FD / $E034 / $07FA Pass 0 skeleton
Toobin (U) 128 KB 64 KB Horizontal $F40C / $FE00 / $F486 Pass 0 skeleton
Toobin (U) [a1] 128 KB 64 KB Horizontal $F40C / $FE00 / $F486 Pass 0 skeleton
Top Gun - The Second Mission (U) 128 KB 128 KB Vertical $E8EF / $E87A / $03E9 Pass 0 skeleton
Totally Rad (U) 128 KB 128 KB Vertical $E0BF / $E000 / $E19A Pass 0 skeleton
Toxic Crusaders (U) 128 KB 128 KB Vertical $C47E / $FFD0 / $C525 Pass 0 skeleton
Twin Cobra (U) 128 KB 128 KB Vertical $C000 / $FF00 / $51DF Pass 0 skeleton
Ultimate Air Combat (U) 256 KB 256 KB Vertical $E0F8 / $E03F / $E137 Pass 0 skeleton
Ultimate Basketball (U) 128 KB 128 KB Vertical $E2DD / $E12D / $FFF9 Pass 0 skeleton
Uninvited (U) 128 KB 128 KB Horizontal $ECC7 / $E800 / $EB49 Pass 0 skeleton
Vice - Project Doom (U) 128 KB 128 KB Horizontal $E5A2 / $E39E / $E1DA Pass 0 skeleton
Vindicators (U) 64 KB 32 KB Vertical $FE83 / $FF11 / $FF11 Pass 0 skeleton
WCW World Championship Wrestling (U) 128 KB 128 KB Horizontal $D3DF / $FFD8 / $D4CE Pass 0 skeleton
WWF King of the Ring (U) 128 KB 256 KB Horizontal $FDD3 / $FDEF / $FF63 Pass 0 skeleton
WWF Steel Cage Challenge (U) 128 KB 256 KB Vertical $C48B / $FF4F / $C4B7 Pass 0 skeleton
Wacky Races (U) 128 KB 128 KB Horizontal $F86E / $F800 / $E54A Pass 0 skeleton
Wario's Woods (U) 256 KB 256 KB Horizontal $C6BC / $FFB0 / $C710 Pass 0 skeleton
Wayne's World (U) 128 KB 128 KB Vertical $D7E3 / $FE47 / $D93F Pass 0 skeleton
Werewolf - The Last Warrior (U) 128 KB 128 KB Horizontal $C014 / $FF00 / $C077 Pass 0 skeleton
Where in Time is Carmen Sandiego (U) 128 KB 256 KB Vertical $E1A5 / $E000 / $E3AB Pass 0 skeleton
Where's Waldo (U) 128 KB 128 KB Horizontal $E237 / $E000 / $E468 Pass 0 skeleton
Whomp'Em (U) 128 KB 128 KB Horizontal $FC20 / $FF01 / $FF00 Pass 0 skeleton
Widget (U) 128 KB 128 KB Vertical $C103 / $FFC0 / $C106 Pass 0 skeleton
Wizardry - The Knight of Diamonds (U) 128 KB 128 KB Vertical $F991 / $F95A / $FCF9 Pass 0 skeleton battery
Wolverine (U) 128 KB 128 KB Horizontal $07FD / $FF50 / $FCFF Pass 0 skeleton
World Champ (U) [!] 128 KB 128 KB Vertical $C006 / $FFB0 / $C003 Pass 0 skeleton
Wurm (U) 128 KB 128 KB Vertical $EB5F / $E000 / $EF0A Pass 0 skeleton
Yoshi's Cookie (U) 128 KB 64 KB Horizontal $C5C8 / $F6DD / $D2E7 Pass 0 skeleton
Young Indiana Jones Chronicles, The (U) 128 KB 128 KB Vertical $F900 / $FEC1 / $FB00 Pass 0 skeleton
Zen Intergalactic Ninja (U) 128 KB 128 KB Horizontal $F5E4 / $F593 / $FCB8 Pass 0 skeleton
Zombie Nation (U) 128 KB 128 KB Vertical $FAD4 / $FD2A / $FC4C Pass 0 skeleton

_wip/MMC5/ — mapper 5 (10 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
Bandit Kings of Ancient China (U) 256 KB 128 KB Horizontal $F641 / $F500 / $FFD6 Pass 0 skeleton
Bandit Kings of Ancient China (U) [a1] 256 KB 128 KB Horizontal $5485 / $00A9 / $5565 Pass 0 skeleton
Castlevania 3 - Dracula's Curse (U) 256 KB 128 KB Horizontal $E053 / $E00B / $E11A Pass 0 skeleton
Gemfire (U) 256 KB 256 KB Horizontal $F60C / $F500 / $FE9C Pass 0 skeleton battery
L'Empereur (U) 256 KB 128 KB Horizontal $F64C / $F500 / $FF47 Pass 0 skeleton battery
L'Empereur (U) [a1] 256 KB 128 KB Horizontal $F64C / $F500 / $FF47 Pass 0 skeleton battery
Laser Invasion (U) 128 KB 128 KB Horizontal $E072 / $E001 / $F010 Pass 0 skeleton
Nobunaga's Ambition 2 (U) 256 KB 128 KB Horizontal $F641 / $F500 / $FF34 Pass 0 skeleton battery
Romance of the Three Kingdoms 2 (U) [!] 256 KB 256 KB Horizontal $F671 / $F500 / $FF66 Pass 0 skeleton battery
Uncharted Waters (U) 512 KB 128 KB Horizontal $F64C / $F500 / $FF3E Pass 0 skeleton battery

_wip/NROM/ — mapper 0, 64 (35 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
10-Yard Fight (U) 32 KB 8 KB Horizontal $8471 / $8000 / $84FF Pass 0 skeleton
1942 (JU) 32 KB 8 KB Horizontal $C030 / $BF90 / $BF90 Pass 0 skeleton header reads mapper 64 - see the note below
Chubby Cherub (U) 32 KB 8 KB Vertical $82B7 / $8000 / $8331 Pass 0 skeleton
Circus Charlie 16 KB 8 KB Horizontal $C05A / $C000 / $C007 Pass 0 skeleton 127-byte footer
Dig Dug II (U) [!] 32 KB 8 KB Vertical $A749 / $A52D / $A52D Pass 0 skeleton
Elevator Action (U) 32 KB 8 KB Horizontal $8081 / $8000 / $8000 Pass 0 skeleton
Galaga (U) 32 KB 8 KB Horizontal $C0C8 / $C000 / $C000 Pass 0 skeleton
Gyromite (JUE) 32 KB 8 KB Vertical $8079 / $8000 / $8000 Pass 0 skeleton
Hydlide (U) 32 KB 8 KB Horizontal $8003 / $8000 / $8003 Pass 0 skeleton
Ice Hockey (U) 32 KB 8 KB Vertical $805A / $8000 / $8000 Pass 0 skeleton
Kung Fu (U) 32 KB 8 KB Vertical $82D6 / $8258 / $FFF0 Pass 0 skeleton
Kung Fu (U) (a1) 32 KB 8 KB Vertical $82D6 / $8258 / $FFF0 Pass 0 skeleton
Mach Rider (JU) 32 KB 8 KB Horizontal $8070 / $8000 / $8147 Pass 0 skeleton four-screen flag
Mach Rider (JU) (a1) 32 KB 8 KB Horizontal $8070 / $8000 / $8147 Pass 0 skeleton four-screen flag
Magmax (U) 32 KB 8 KB Horizontal $BD33 / $BC33 / $BC33 Pass 0 skeleton
Magmax (U) (Prototype) 32 KB 8 KB Horizontal $BD33 / $BC33 / $BC33 Pass 0 skeleton
Ms Pac-Man (Namco) (U) 32 KB 8 KB Horizontal $C107 / $FFF7 / $C198 Pass 0 skeleton
Ms Pac-Man (U) 32 KB 8 KB Horizontal $FB86 / $FEE0 / $FBE1 Pass 0 skeleton
NES Test Cart (Official Nintendo) (U) 32 KB 8 KB Vertical $8328 / $8370 / $8370 Pass 0 skeleton
Othello (U) 32 KB 8 KB Horizontal $D6B4 / $8000 / $804E Pass 0 skeleton
Pipe Dream (U) 32 KB 32 KB Vertical $8FEA / $8000 / $912B Pass 0 skeleton
Port Test Cartridge (U) 32 KB none Vertical $CC49 / $C000 / $CC17 Pass 0 skeleton
Pro Action Replay (No Cart Present) (U) 32 KB 8 KB Horizontal $0000 / $0000 / $0000 Pass 0 skeleton all vectors $0000
Pro Action Replay (Rev B) (U) 32 KB 8 KB Horizontal $F021 / $808A / $F020 Pass 0 skeleton
Seicross (U) 32 KB 8 KB Vertical $8858 / $8000 / $FD0E Pass 0 skeleton
Slalom (U) 32 KB 8 KB Vertical $8123 / $8050 / $FEDF Pass 0 skeleton
Soccer (JU) 32 KB 8 KB Vertical $809F / $8000 / $8000 Pass 0 skeleton
Spelunker (U) [!] 32 KB 8 KB Vertical $84C6 / $8000 / $8513 Pass 0 skeleton
Spy Vs Spy (U) 32 KB 8 KB Horizontal $8066 / $8000 / $FFC7 Pass 0 skeleton
Sqoon (U) 32 KB 8 KB Vertical $8014 / $8000 / $80F1 Pass 0 skeleton
Stack-Up (JU) 32 KB 8 KB Horizontal $81AD / $8100 / $81E6 Pass 0 skeleton
Super Mario Bros (JU) (PRG 0) 32 KB 8 KB Vertical $8082 / $8000 / $FFF0 Pass 0 skeleton
Super Mario Bros (JU) (PRG 1) 32 KB 8 KB Vertical $8082 / $8000 / $FFF0 Pass 0 skeleton
Tag Team Wrestling (U) 32 KB 8 KB Horizontal $FFCD / $FD43 / $FD43 Pass 0 skeleton
U-Force Test Cartridge (U) 32 KB 8 KB Vertical $844C / $8000 / $8000 Pass 0 skeleton

_wip/UNROM/ — mapper 2 (97 projects)

Project PRG CHR Mirroring Vectors (NMI / RESET / IRQ) State Notes
1943 (U) 128 KB none Horizontal $C226 / $C149 / $C235 Pass 0 skeleton
3-D Battles of World Runner, The (U) 128 KB none Vertical $FFC0 / $FF00 / $FEEC Pass 0 skeleton
Alfred Chicken (U) 128 KB none Horizontal $C7E3 / $C5C6 / $C84A Pass 0 skeleton
Amagon (U) 128 KB none Vertical $D8FE / $C06C / $FFF9 Pass 0 skeleton
Amagon (U) [a1] 128 KB none Vertical $D8FE / $C06C / $FFF9 Pass 0 skeleton
Amagon (U) [a2] 128 KB none Vertical $D8FE / $C06C / $FFF9 Pass 0 skeleton
Archon (U) 128 KB none Horizontal $FB12 / $C008 / $FB12 Pass 0 skeleton four-screen flag
Athena (U) 128 KB none Vertical $C0CA / $C008 / $C008 Pass 0 skeleton
Athena (U) [a1] 128 KB none Vertical $C0CA / $C008 / $C008 Pass 0 skeleton
Best of the Best Championship Karate (U) 256 KB none Vertical $D110 / $CDDC / $CDDC Pass 0 skeleton
Blades of Steel (U) 128 KB none Vertical $C204 / $C1C5 / $C266 Pass 0 skeleton
Blues Brothers, The (U) 128 KB none Vertical $FC33 / $F499 / $F499 Pass 0 skeleton
California Games (U) 128 KB none Vertical $FF88 / $FFB0 / $FFB0 Pass 0 skeleton
California Games (U) [a1] 128 KB none Vertical $FF88 / $FFB0 / $FFB0 Pass 0 skeleton
Casino Kid (U) 128 KB none Horizontal $E5FA / $C000 / $E608 Pass 0 skeleton
Casino Kid 2 (U) 128 KB none Horizontal $EA74 / $C000 / $EA82 Pass 0 skeleton
Castelian (U) 128 KB none Vertical $C008 / $C154 / $C991 Pass 0 skeleton
Castle of Dragon (U) 128 KB none Vertical $C0F4 / $C000 / $C0D8 Pass 0 skeleton
Castlevania (U) (PRG 0) 128 KB none Vertical $C052 / $C008 / $C0BB Pass 0 skeleton
Castlevania (U) (PRG 1) 128 KB none Vertical $C052 / $C008 / $C0BF Pass 0 skeleton
Championship Pool (U) 128 KB none Vertical $D73D / $E3E7 / $D880 Pass 0 skeleton
Color A Dinosaur (U) 128 KB none Vertical $C161 / $C000 / $C15F Pass 0 skeleton
Commando (U) 128 KB none Horizontal $C0AB / $C06D / $0000 Pass 0 skeleton
Contra (U) 128 KB none Vertical $C060 / $C001 / $C0B5 Pass 0 skeleton
Dick Tracy (U) 128 KB none Vertical $C7D2 / $C6A0 / $C966 Pass 0 skeleton
Double Dribble (U) (PRG 0) 128 KB none Vertical $C036 / $C001 / $C08F Pass 0 skeleton
Double Dribble (U) (PRG 1) [!] 128 KB none Vertical $C036 / $C001 / $C08F Pass 0 skeleton
Dr Chaos (U) 128 KB none Vertical $C000 / $C815 / $0700 Pass 0 skeleton
Duck Tales (U) 128 KB none Vertical $C000 / $FEE0 / $C000 Pass 0 skeleton
Duck Tales (U) (Prototype) 128 KB none Vertical $C000 / $FEE0 / $C000 Pass 0 skeleton
Duck Tales 2 (U) 128 KB none Vertical $C651 / $C088 / $C088 Pass 0 skeleton
Fantastic Adventures of Dizzy, The (1993 Version) (U) 256 KB none Vertical $C007 / $C02D / $FFF9 Pass 0 skeleton
Fantastic Adventures of Dizzy, The (Aladdin) (UE) 256 KB none Vertical $C007 / $EE20 / $FFF9 Pass 0 skeleton
Fist of the North Star (U) 128 KB none Vertical $CE32 / $C000 / $CEDF Pass 0 skeleton
Flight of the Intruder (U) 128 KB none Vertical $C600 / $C000 / $C68B Pass 0 skeleton
Flying Dragon - The Secret Scroll (U) 128 KB none Vertical $C171 / $C118 / $C118 Pass 0 skeleton
Fun House (U) 128 KB none Vertical $C436 / $C3D4 / $C54B Pass 0 skeleton
Ghosts'n Goblins (U) 128 KB none Vertical $C0F0 / $C008 / $C008 Pass 0 skeleton
Goonies 2, The (U) 128 KB none Vertical $C07C / $C008 / $C0C9 Pass 0 skeleton
Goonies 2, The (U) [a1] 128 KB none Vertical $C07C / $C008 / $C0C9 Pass 0 skeleton
Guardian Legend, The (U) 128 KB none Vertical $DC75 / $FEDE / $DCF3 Pass 0 skeleton
Gun Smoke (U) 128 KB none Horizontal $E4C6 / $E651 / $E4C6 Pass 0 skeleton
Hero Quest (U) (Prototype) [!] 128 KB none Horizontal $C078 / $C000 / $C13D Pass 0 skeleton
Ikari Warriors (U) (PRG 0) 128 KB none Horizontal $C0C6 / $C008 / $61E3 Pass 0 skeleton
Ikari Warriors (U) (PRG 1) [!] 128 KB none Horizontal $C0C6 / $C008 / $61E3 Pass 0 skeleton
Indiana Jones and the Last Crusade (UBI Soft) (U) 128 KB none Horizontal $FF01 / $C014 / $FFD6 Pass 0 skeleton
Jack Nicklaus' Greatest 18 Holes of Champ. Golf (U) 128 KB none Vertical $C04A / $C001 / $C0C0 Pass 0 skeleton
Jackal (U) [a1] 128 KB none Vertical $C292 / $C23D / $C2EA Pass 0 skeleton
Jimmy Connor's Tennis (U) 128 KB none Horizontal $C100 / $FEE1 / $FF58 Pass 0 skeleton
Jordan Vs Bird - One On One (U) 128 KB none Vertical $C079 / $C000 / $C077 Pass 0 skeleton
Klash Ball (U) 128 KB none Horizontal $ED83 / $C000 / $EE0C Pass 0 skeleton
Lifeforce (U) 128 KB none Vertical $E76B / $E70A / $E7D1 Pass 0 skeleton
Marvel's X-Men (U) 128 KB none Vertical $C006 / $FFB0 / $C003 Pass 0 skeleton
Marvel's X-Men (U) [a1] 128 KB none Vertical $C006 / $FFB0 / $C003 Pass 0 skeleton
Metal Gear (U) 128 KB none Vertical $C06C / $C008 / $C006 Pass 0 skeleton
Micro Machines (U) 256 KB none Vertical $0300 / $F750 / $FFFF Pass 0 skeleton
Paperboy 2 (U) 256 KB none Horizontal $CA2E / $CA69 / $CA68 Pass 0 skeleton
Prince of Persia (U) 128 KB none Vertical $FF13 / $C008 / $FFEF Pass 0 skeleton
Prince of Persia (U) [a1] 128 KB none Vertical $FF13 / $C008 / $FFEF Pass 0 skeleton
Prince of Persia (U) [a2] 128 KB none Vertical $FF13 / $C008 / $FFEF Pass 0 skeleton
Pro Wrestling (U) 128 KB none Vertical $FCBC / $FBB0 / $FFF0 Pass 0 skeleton
Puss 'n Boots - Pero's Great Adventure (U) 128 KB none Vertical $D51E / $C013 / $D648 Pass 0 skeleton
Quattro Adventure (Aladdin) (U) 256 KB none Vertical $C007 / $C00A / $0000 Pass 0 skeleton
Rainbow Islands - The Story of Bubble Bobble 2 (U) 128 KB none Horizontal $E74C / $DE59 / $E796 Pass 0 skeleton
Rally Bike (U) 128 KB none Vertical $C089 / $C008 / $D244 Pass 0 skeleton
Rambo (U) 128 KB none Vertical $EE55 / $C000 / $C000 Pass 0 skeleton
Renegade (U) 128 KB none Vertical $FE71 / $FE98 / $D600 Pass 0 skeleton
Robo Warrior (U) 128 KB none Vertical $CF75 / $C0D0 / $FFF9 Pass 0 skeleton
Rygar (U) 128 KB none Vertical $C0F6 / $C000 / $C0F6 Pass 0 skeleton
Section Z (U) 128 KB none Vertical $C45F / $C403 / $C518 Pass 0 skeleton
Silent Service (U) 128 KB none Vertical $ED89 / $C020 / $EDAF Pass 0 skeleton
Silent Service (U) [a1] 128 KB none Vertical $ED89 / $C020 / $EDAF Pass 0 skeleton
Skate or Die! (U) [a1] 128 KB none Vertical $C072 / $C001 / $C0E2 Pass 0 skeleton
Star Trek - The Next Generation (U) 128 KB none Horizontal $C11F / $FFF1 / $C19E Pass 0 skeleton
Starship Hector (U) 128 KB none Vertical $D99C / $D6A5 / $D9DF Pass 0 skeleton
Stinger (U) 128 KB none Vertical $C000 / $C078 / $C05E Pass 0 skeleton
Super Cars (U) 128 KB none Horizontal $C6E0 / $C000 / $0000 Pass 0 skeleton
Super Glove Ball (U) 128 KB none Vertical $FE03 / $C032 / $F791 Pass 0 skeleton
Super Pitfall (U) 128 KB none Vertical $C0F3 / $C020 / $61E3 Pass 0 skeleton
Swords and Serpents (U) 128 KB none Vertical $C0B4 / $C049 / $C047 Pass 0 skeleton
Swords and Serpents (U) [a1] 128 KB none Vertical $C0B4 / $C049 / $C047 Pass 0 skeleton 128-byte footer
Terra Cresta (U) 128 KB none Horizontal $C709 / $C494 / $C494 Pass 0 skeleton
Thundercade (U) 128 KB none Horizontal $C0B1 / $C008 / $C008 Pass 0 skeleton
Times of Lore (U) 128 KB none Vertical $C26B / $C000 / $C30B Pass 0 skeleton
Top Gun (U) 128 KB none Horizontal $EA8A / $EA23 / $EB04 Pass 0 skeleton
Total Recall (U) 128 KB none Horizontal $C093 / $C196 / $C182 Pass 0 skeleton
Trog (U) 128 KB none Vertical $F008 / $C06F / $C06F Pass 0 skeleton
Trojan (U) 128 KB none Vertical $C16A / $C0F5 / $C0F5 Pass 0 skeleton
Trojan (U) [a1] 128 KB none Vertical $DE0D / $1880 / $3CA2 Pass 0 skeleton
Twin Eagle (U) 128 KB none Vertical $C10D / $FFC0 / $C0E1 Pass 0 skeleton
Ultimate Stuntman (U) 256 KB none Vertical $CB61 / $C004 / $C004 Pass 0 skeleton
WWF Wrestlemania Challenge (U) 128 KB none Vertical $C000 / $FFCD / $C018 Pass 0 skeleton
Wall Street Kid (U) 128 KB none Horizontal $F95C / $C000 / $F9E2 Pass 0 skeleton
Wall Street Kid (U) [a1] 128 KB none Horizontal $F95C / $C000 / $F9E2 Pass 0 skeleton 65536-byte footer
Wall Street Kid (U) [a2] 128 KB none Horizontal $F95C / $C000 / $F9E2 Pass 0 skeleton 65536-byte footer
Wayne Gretzky Hockey (U) 128 KB none Vertical $C10A / $C000 / $C378 Pass 0 skeleton
Winter Games (U) 128 KB none Horizontal $06FB / $C040 / $E295 Pass 0 skeleton
All 851 projects, all byte-identical for the whole ROM.

7. The special cases

7.1 Almost all of the tier is a banked mapper

Only 34 of the 851 are mapper 0, and only two have a PRG small enough to sit at a single CPU address:

PRG size Projects
16 KB 1 — Circus Charlie
32 KB 149
64 KB 42
128 KB 522
256 KB 127
512 KB 10
1536 KB 1 — Action 52 (U) [!]

Everything else is a banked mapper — MMC1 (221), MMC3 (239), UNROM (97), Color Dreams (40), AxROM (39), the Codemasters family (45) and so on. Pass 1 on any of those is a per-bank job: the tracer needs to know which bank is mapped where before it can decide what is code.

7.2 A quarter of the tier has no CHR

226 projects declare zero CHR banks — the mapper supplies CHR RAM instead. There is no chr.bin, no chr.s, and the linker has no CHR area — a CHR area with fill = yes and no segment would emit zero padding and break byte-identity. Port Test Cartridge (U) and Videomation (U) are two of them; so are Mega Man (U), Castlevania (U) (PRG 0), Metroid (U) and every other MMC1 title in the store.

7.3 Six ROMs have trailing bytes the header does not account for

Project Trailing bytes What they look like
Circus Charlie 127 the text Circus Charlie - Damaged Cybernetics, then zero padding
Crystalis (U) [a1] 127 a 127-byte footer
Ninja Gaiden (U) [a2] 128 a 128-byte footer
Swords and Serpents (U) [a1] 128 a 128-byte footer
Wall Street Kid (U) [a1] 65536 64 KB of graphics data
Wall Street Kid (U) [a2] 65536 64 KB of graphics data

The generator emits a fourth memory area for them:

TRAILER: start = $0000, size = $007F, fill = yes;

The two Wall Street Kid dumps are a different matter: their header declares zero CHR banks and 8 PRG banks, and the file is 196,624 bytes — 64 KB more than the header accounts for. The trailing 64 KB is plainly graphics data, so the header's size fields are wrong (either the CHR count should be 8, or the PRG count 12). The skeleton reproduces the file exactly either way, but do not assume the header's size fields are right for these two — a Pass 1 on them has to decide which reading is correct first.

7.4 Some projects have odd header bytes

Project byte 6 byte 7 What it means
1942 (JU) $00 $44 Bytes 7-15 spell DiskDude! — ASCII overwrote the mapper's upper nybble, so the header reads mapper 64 when the intended mapper is 0.
Mach Rider (JU), (a1) $08 $00 Bit 3 (four-screen VRAM) is set on a mapper-0 image.
Pro Action Replay (No Cart Present) (U) $00 $00 All three vectors are $0000 — the image carries no vector table. Its code starts at $8000 with SEI / CLD / LDA #$50 / STA $2000, and a JMP $8000 plus the string IMAGINEER sit near the end of the PRG, so it is a loader image rather than a self-booting cartridge.

None of this affects byte-identity — the header is included verbatim — but all three change what Pass 1 has to do.

Byte 7's lower nybble is non-zero on 58 of the 851 ROMs, and this is almost always a watermark rather than a header field. 55 of them carry the literal string DiskDude! at bytes 7-15, two more carry DisNi0330, and one (Hot Slot (UE)) carries byKH+KEN. Since 'D' is $44, byte 7 picks up $4 in its lower nybble. Only byte 7's upper nybble carries mapper bits, so these ROMs still read the mapper they are filed under — the noise is in the bits the mapper does not use.

Twelve ROMs set the four-screen bit (byte 6 bit 3). Four of them sit on boards that support four-screen VRAM (MAPPER73/Punch-Out!! (U) and the three MMC3 titles Gauntlet (U), Gauntlet 2 (U) and King's Quest V (U)). The other eight sit on boards that do not — Demon Sword (U), Muppet Adventure - Chaos at the Carnival (U) and RoadBlasters (U) on mapper 65, Back to the Future 2 & 3 (U) and Ghoul School (U) on MMC1, Archon (U) on mapper 2, and the two Mach Rider dumps on mapper 0. Every one of the twelve is flagged four-screen flag in the inventory above.

7.5 The vectors are not always in the last bank

nesdis.py reads the vectors from the last six bytes of the PRG image, which is correct for the common layouts (the fixed bank is the last one in the file) but not for every mapper here. A project whose vectors do not resolve to plausible code needs its seeds supplied by hand with --extra-seed.

8. Open work, per project

Every Pass 0 project owes the same three passes. AGENTS.md fixes the order: Pass 1 is the code/data split and stops for review; Pass 2 replaces address-derived labels; Pass 3 names data tables and structures. Skipping straight to a guessy rewrite is not allowed.

Pass 1 — the code/data split

python3 _tools/nesdis.py --prg prg.bin --base 0x8000 \
    --project "<name>" --out prg.s --locals locals.inc

--base 0x8000 for a 32 KB NROM-256 PRG; a banked image needs its banks traced separately, because the whole image does not sit at one address.

Requirements for the emitted prg.s:

  • Every instruction carries the canonical audit comment ; CPU:$C123 PRG:0123 AD 21 03, starting at column 35.
  • Unreached bytes stay as explicit .byte / .incbin blocks with their ROM provenance. Nothing is deleted or reformatted.
  • Re-align the comments after any Pass 3 substitution with _tools/align_audit_comments.py — it is whitespace-only and cannot change the bytes.

Known traps for this tier specifically:

  • A plain vector trace reaches only ~15% of a real game. Most code sits behind computed dispatch. Look for jmp ($xx), and for dispatchers that pop the table address with pla. --auto-seed plus a couple of --extra-seed addresses took Mario Bros (JU) from 14.6% to 72.2%.
  • Declare the dispatch table and the tracer will follow it. A 16-entry game-state table that the tracer cannot see is the single biggest loss of coverage in this tier: the promoted Volleyball (U) needed --table 85E1:11, without which only 66 % of the image traced. The same applies to the Mesen Code Data Logger capture, which is what promoted 1,757 further bytes from data to code there.
  • Control-flow targets must win over fall-through. A fall-through decode whose operand spans an address another path branches to is the wrong decode.
  • Branch targets inside a surviving instruction must be pruned from the target set, or the label is referenced but never defined and the file does not assemble at all.
  • Undocumented opcodes silently truncate a trace. nesdis.py --undocumented decodes all 105; the default is off, so the trace must be re-run with it before Pass 1 is called done. ca65 implements none of them, so they stay as explicit .byte with the disassembly in the comment.
  • RESET and IRQ are usually the same address. The semantic-name map must not overwrite on collision, or the primary entry gets renamed IrqHandler.
  • Pro Action Replay (No Cart Present) (U) has no vectors at all — seed it by hand with --extra-seed 0x8000.

Pass 2 — labels

Replace the address-derived Label_XXXX definitions and every raw $XXXX call operand. _tools/apply_pass2_map.py applies a map; _tools/derive_branch_names.py derives the internal branch-target names. Golf (JU) (promoted to NROM/Golf (JU) on 2026-10-21) was the worked example: 108 of 112 subroutine entries named, but still carrying hundreds of internal Label_ branch targets.

Pass 3 — data and semantics

Semantic zero-page aliases, applied only at the sites where the role is proven (_tools/apply_zp_aliases.py), and named data tables. Addresses whose role is not yet determined keep the neutral ZpXX form.

Per-project notes

  • Golf (JU) — promoted to NROM/Golf (JU) on 2026-10-21: 4,217 instructions over 13,541 lines of prg.s, all 349 internal branch targets named (339 derived + 10 fall-through-only), audit comments converted to the canonical ; CPU:$XXXX PRG:XXXX AA BB form at column 35, and the project README.md rewritten. Its whole-ROM compare verifies byte-identical.
  • Volleyball (U) — promoted to NROM/Volleyball (U) on 2026-10-21. Pass 1, Pass 2 and Pass 3 were complete on 2026-10-20: 11,395 instructions / 23,926 code bytes (73.0 %), 8,842 data bytes, 0 unclassified. The split needed the game state dispatch table at $85E1 declared to the tracer (--table 85E1:11) — without it only 66 % of the image is traced — and a Mesen Code Data Logger capture taken while a random-input bot played the attract demo, which promoted 1,757 bytes from data to code. Pass 2 named all 1,989 labels: 730 read out of the code by hand, 1,221 internal branch targets derived mechanically, leaving zero Label_XXXX and zero raw $XXXX call or branch operands. Pass 3 named the zero page, the $0500 ball structure and all 37 data blocks, and apply_symbols.py --report reports zero multi-alias residue. The project README.md has the power-on flow analysis (the whole game runs from the NMI handler) and the Pass 3 data-table inventory. The only residue is the mapping of the ten near-identical per-nation copies of the player movement and ball routines onto the ten selectable nations.
  • Every other project starts from zero.

9. Promoting a project

  1. git mv "_wip/<MAPPER>/<name>" "<MAPPER>/<name>" — the folders are already flat, so nothing moves inside.
  2. Confirm the whole-ROM compare still passes after the move.
  3. Update the root README.md inventory (the row moves from this file to README.md), TODO.md and AGENTS.md.
  4. No _tools path change is needed: both tiers sit two levels deep, so ../../_tools/ is correct either way.
  5. Remove the _wip/ folder afterwards. git mv only moves the tracked files, so the old folder survives with its untracked build artifacts (*.o, reconstructed.nes, reconstructed.lbl, reconstructed.map) and sometimes with a stale README.md left behind. A leftover folder counts as a project in every "how many projects are in this tier" tally while having no source to build — Xevious (U) and Zanac (U) both left one behind on 2026-10-20, and both were cleaned up on 2026-10-21.

10. Tooling

_tools/make_skeleton.py created every Pass 0 skeleton in this tier:

python3 _tools/make_skeleton.py "_wip/MMC3/Battletoads (U)" ...

It reads the .nes, splits it into header.bin / prg.bin / chr.bin / trailer.bin, writes the ca65 sources, the linker config, the Makefile, the symbols/locals includes and the project README, and copies the ROM to rom.nes. It is idempotent and refuses to overwrite an existing prg.s, Makefile, linker.cfg, symbols.inc or locals.inc unless --force is given — that guard is what stopped it from flattening Golf (JU)'s real disassembly.

The generator's mirroring value was wrong until 2026-10-21. It masked header byte 6 with 0x03, so the battery bit (bit 1) leaked into the mirroring value and every battery-backed ROM's README claimed Mirroring | Four-screen while its own Four-screen VRAM row said no. The mask is now 0x01, and the 56 affected per-project READMEs were corrected in place. The rule the repo follows is the one AGENTS.md fixes: mirroring is byte 6 bit 0 (0 = Horizontal, 1 = Vertical), the four-screen fact is byte 6 bit 3 and has its own row, and the battery flag is byte 6 bit 1.

--layout picks the linker layout: flat (the default, and what this tier uses) places the memory areas at .nes file offsets and works for any ROM size; cpu places the PRG area at the CPU address it is mapped at, which is only possible for a 16 KB or 32 KB PRG.

Two rules it encodes that are easy to get wrong by hand:

  • ld65 writes the output file in MEMORY declaration order, not address order. The areas must be declared in the order the bytes appear in the .nes file: HEADER, PRG, CHR, TRAILER.
  • Memory area sizes are hexadecimal. size = $127 is 295 bytes, not 127. The footer size is $007F.