- Xevious (U): Promoted from _wip/NROM/Xevious (U)/ to NROM/Xevious (U)/
- Pass 3 complete: 34.5% code coverage, 143 semantic entry points,
4 named data tables, ~20 semantic ZP aliases
- NROM mapper 0, 32 KB PRG, 8 KB CHR, horizontal mirroring
- Zanac (U): Promoted from _wip/UNROM/Zanac (U)/ to NROM/Zanac (U)/
- Pass 3 complete: 34.5% code coverage (bank 7 only), 133 semantic
entry points, 26 named data tables, 14 semantic ZP aliases
- UNROM mapper 2, 128 KB PRG (8 banks), no CHR
- Bank 7 fixed at CPU -; banks 0-6 switchable at 000-
- Bank 7 assembled separately as prg.07.s with .org
Both projects build byte-identical. Updated root README.md inventory,
per-project details, and WIP.md accordingly.
Move Zanac (U) to UNROM/ mapper directory
Zanac (U) is a UNROM (mapper 2) game, not NROM (mapper 0). Move it to
the correct mapper directory and update README.md and WIP.md references
accordingly. Update project counts in WIP.md (857->856 total, UNROM
98->97 projects).
Promote Mermaids of Atlantis (U) from _wip/ to MAPPER8/
Additional cleanup of Mermaids of Atlantis
62 lines
1.7 KiB
Markdown
62 lines
1.7 KiB
Markdown
# Mermaids of Atlantis (U)
|
|
|
|
## Status
|
|
|
|
**Pass 1 complete.** The code/data split has been produced by `nesdis.py` and
|
|
the project builds byte-identical to the original ROM. `prg.s` now contains
|
|
traced code with audit comments and `.byte` data blocks for unreached bytes.
|
|
|
|
`make` assembles `header.s`, `prg.s`, `chr.s`, links them with `ld65` and compares the
|
|
result against `rom.nes`:
|
|
|
|
```
|
|
Byte-identical ROM verified.
|
|
```
|
|
|
|
## ROM
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| Format | iNES |
|
|
| Mapper | 8 |
|
|
| Board | MAPPER8 |
|
|
| Mirroring | Vertical |
|
|
| Four-screen VRAM | no |
|
|
| Battery | no |
|
|
| PRG | 64 KB (4 x 16 KB), at file offset $0010 |
|
|
| CHR | 64 KB (8 x 8 KB) |
|
|
| Trainer | none |
|
|
| Footer | none |
|
|
| NMI vector | $8189 |
|
|
| RESET vector | $FF00 |
|
|
| IRQ vector | $8036 |
|
|
| ROM file | `Mermaids of Atlantis (U).nes` |
|
|
| SHA-256 | `53f5d22650063aba89b91762f133d1b6b2680c505b193d88a472580d09701122` |
|
|
|
|
### Header notes
|
|
|
|
- none
|
|
|
|
## Open work
|
|
|
|
- **Pass 2** - replace the address-derived `Label_XXXX` names and the raw
|
|
`$XXXX` call operands.
|
|
- **Pass 3** - semantic zero-page aliases (applied only at the sites where
|
|
their role is proven) and named data tables.
|
|
- **Promotion** to `NROM/<name>/` once Pass 3 is done, as `git mv`.
|
|
|
|
## Files
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `prg.s` | Pass 1 PRG disassembly (traced code + data blocks) |
|
|
| `header.s` | iNES header include |
|
|
| `chr.s` | CHR include |
|
|
| `prg.bin` | 65536 bytes (64 KB) PRG image |
|
|
| `chr.bin` | 65536 bytes (64 KB) CHR image |
|
|
| `rom.nes` | byte-identical copy of the original ROM |
|
|
| `linker.cfg` | HEADER / PRG / CHR memory areas |
|
|
| `symbols.inc` | NES hardware register names |
|
|
| `locals.inc` | zero-page aliases (5 ZpXX aliases at Pass 1) |
|
|
| `Makefile` | build and byte-identity check |
|