CDL re-trace: 1942 (JU) 46.6%, Galaga (U) 32.3% (Pass 2/3 complete)
Pass 3 _wip: semantic ZP aliases for Sqoon (U) (FrameCounter, PpuCtrlShadow, NmiFrameFlag) and Elevator Action (U) (PpuCtrlShadow, NmiSaveA/X/Y) Pass 3 Slalom (U): semantic ZP aliases (PpuCtrlShadow, PpuMaskShadow) Pass 3 Kung Fu (U): semantic ZP alias (PpuCtrlShadow) Pass 3 Othello (U): semantic ZP alias (PpuCtrlShadow) Pass 3 1942 (JU): semantic ZP alias (PpuCtrlShadow) Pass 3 Galaga (U): semantic ZP aliases (PpuCtrlShadow, PpuMaskShadow) Docs: add power-on flow + data-table inventory to READMEs of 13 promoted NROM projects Pass 3 Elevator Action (U): add NmiFrameFlag alias Pass 3 Elevator Action (U): full ZP naming (23 aliases) + 25 named data tables, 59.4% coverage Pass 1/2/3 re-trace: recover unreached code in 7 NROM projects (Sqoon 56.4%, Elevator Action 59.3%, Kung Fu 52.1%, 1942 52.1%) Pass 3 Sqoon (U): full ZP naming (22 aliases) + 17 named data tables Pass 3 Kung Fu (U): full ZP naming (21 aliases) + 13 named data tables Pass 3 Othello (U): full ZP naming (18 aliases) + 27 named data tables Pass 3 1942 (JU): full ZP naming (14 aliases) + 19 named data tables Pass 3 Galaga (U): full ZP naming (15 aliases) + 14 named data tables Pass 3 Slalom (U): full ZP naming (16 aliases) + 16 named data tables Pass 2/3: re-apply naming to Slalom (U), Othello (U), Galaga (U) after re-seed Pass 1/2/3 re-trace: recover unreached code in 6 more promoted NROM projects Pass 3 Stack-Up (JU): full ZP naming (15 aliases) + 12 named data tables Pass 3 Tag Team Wrestling (U): full ZP naming (20 aliases) + 11 named data tables Pass 3 Kung Fu (U) (a1): full ZP naming (20 aliases) + 12 named data tables Pass 3 Magmax (U): full ZP naming (18 aliases) + 6 named data tables Pass 3 Soccer (JU): full ZP naming (18 aliases) + 9 named data tables Pass 3 Ms Pac-Man (Namco) (U): full ZP naming (18 aliases) + 8 named data tables Docs: refresh coverage numbers and data-table inventories for 13 promoted NROM projects
This commit is contained in:
1 parent
0a49ee6da7
commit
6740550ac0
55 files changed
+160669
-46941
No files matched your search
@@ -2,66 +2,71 @@
|
||||
|
||||
## Status
|
||||
|
||||
**Pass 3.** All address-derived `Label_XXXX` definitions replaced;
|
||||
every `jsr`/`jmp` operand symbolic; hardware-register operands resolved
|
||||
via `apply_symbols.py` (0 residue); audit comments aligned; `make`
|
||||
stays byte-identical.
|
||||
|
||||
`make` assembles `header.s`, `prg.s`, `chr.s`, links them with `ld65` and compares the
|
||||
result against `rom.nes`:
|
||||
|
||||
```
|
||||
Byte-identical ROM verified.
|
||||
```
|
||||
**Pass 3 complete; promoted.** `prg.s` is a traced disassembly with all
|
||||
address-derived labels replaced, all `jsr`/`jmp` operands symbolic, hardware
|
||||
registers named via `symbols.inc`, and `apply_symbols.py` reporting 0 residue.
|
||||
Code coverage: 16,925 / 32,768 bytes (51.7%).
|
||||
`make` assembles and verifies byte-identical to `rom.nes`.
|
||||
|
||||
## ROM
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Format | iNES |
|
||||
| Mapper | 0 |
|
||||
| Board | NROM-256 |
|
||||
| Mapper | 0 (NROM) |
|
||||
| PRG | 32 KB |
|
||||
| CHR | 8 KB |
|
||||
| Mirroring | Vertical |
|
||||
| Four-screen VRAM | no |
|
||||
| Battery | no |
|
||||
| PRG | 32 KB (2 x 16 KB), mapped at CPU $8000-$FFFF |
|
||||
| CHR | 8 KB (1 x 8 KB) |
|
||||
| Trainer | none |
|
||||
| Footer | none |
|
||||
| NMI vector | $82D6 |
|
||||
| RESET vector | $8258 |
|
||||
| IRQ vector | $FFF0 |
|
||||
| ROM file | `Kung Fu (U) [a1].nes` |
|
||||
| SHA-256 | `9e8383b3bd99ccf9bc972c57d37599604e969aebab7a8f0c9428112fafb6b82d` |
|
||||
|
||||
### Header notes
|
||||
## Power-on flow
|
||||
|
||||
- none
|
||||
RESET enters at `$8258`:
|
||||
|
||||
## Open work
|
||||
sei ; CPU:$8258 PRG:0258 78
|
||||
cld ; CPU:$8259 PRG:0259 D8
|
||||
lda #$00 ; CPU:$825A PRG:025A A9 00
|
||||
sta PPUCTRL ; CPU:$825C PRG:025C 8D 00 20
|
||||
ldx #$FF ; CPU:$825F PRG:025F A2 FF
|
||||
txs ; CPU:$8261 PRG:0261 9A
|
||||
lda PPUSTATUS ; CPU:$8262 PRG:0262 AD 02 20
|
||||
asl a ; CPU:$8265 PRG:0265 0A
|
||||
bcc Reset_OnCarryClear ; CPU:$8266 PRG:0266 90 FA
|
||||
lda PPUSTATUS ; CPU:$8268 PRG:0268 AD 02 20
|
||||
asl a ; CPU:$826B PRG:026B 0A
|
||||
bcc Reset_OnCarryClear2 ; CPU:$826C PRG:026C 90 FA
|
||||
|
||||
- **Pass 1** - run `nesdis.py` over `prg.bin` to produce the code/data
|
||||
split. The tracer reads the vectors from the last six bytes of the PRG
|
||||
image, so the split seeds correctly.
|
||||
- **Pass 1** must emit the canonical audit comment
|
||||
`; CPU:$C123 PRG:0123 AD 21 03` at column 35 for every instruction.
|
||||
- **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`.
|
||||
NMI handler at `$82D6`:
|
||||
|
||||
## Files
|
||||
lda Zp10 ; CPU:$82D6 PRG:02D6 A5 10
|
||||
and #$7F ; CPU:$82D8 PRG:02D8 29 7F
|
||||
sta PPUCTRL ; CPU:$82DA PRG:02DA 8D 00 20
|
||||
sta Zp10 ; CPU:$82DD PRG:02DD 85 10
|
||||
lda #$00 ; CPU:$82DF PRG:02DF A9 00
|
||||
sta PPUMASK ; CPU:$82E1 PRG:02E1 8D 01 20
|
||||
sta OAMADDR ; CPU:$82E4 PRG:02E4 8D 03 20
|
||||
ldy #$02 ; CPU:$82E7 PRG:02E7 A0 02
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `prg.s` | Pass 0 PRG include (replaced by the Pass 1 disassembly) |
|
||||
| `header.s` | iNES header include |
|
||||
| `chr.s` | CHR include |
|
||||
| `prg.bin` | 32768 bytes (32 KB) PRG image |
|
||||
| `chr.bin` | 8192 bytes (8 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 (empty at Pass 0) |
|
||||
| `Makefile` | build and byte-identity check |
|
||||
## Data-table inventory (Pass 3)
|
||||
|
||||
- `$8000-$8257` (600 bytes) - `LevelHandlerPointerTable`
|
||||
- `$8437-$84E9` (179 bytes) - `LevelObjectDefinitionTable`
|
||||
- `$8CA2-$8DE6` (325 bytes) - `SpriteOamEntryTable`
|
||||
- `$904A-$981F` (2006 bytes) - `EnemyNameTextTable`
|
||||
- `$9828-$A495` (3182 bytes) - `EnemySpritePatternTable`
|
||||
- `$B6E1-$B727` (71 bytes) - `LevelObjectSpawnTable`
|
||||
- `$BB83-$BDD1` (591 bytes) - `SpriteOamAttributeTable`
|
||||
- `$CDEB-$CFCA` (480 bytes) - `EnemyAnimationFrameTable`
|
||||
- `$D385-$D3C4` (64 bytes) - `LevelSceneryData`
|
||||
- `$DAE6-$DAE9` (4 bytes) - `LevelSceneryPadding`
|
||||
- `$DB48-$F830` (7401 bytes) - `LevelGraphicData`
|
||||
- `$F981-$F9B8` (56 bytes) - `EnemyMovementSpeedTable`
|
||||
- `$FA36-$FA89` (84 bytes) - `EnemyMovementDeltaTable`
|
||||
|
||||
## Build
|
||||
|
||||
```
|
||||
Byte-identical ROM verified.
|
||||
```
|
||||
+1082
-101
File diff suppressed because it is too large.
Load diff
@@ -4,38 +4,154 @@
|
||||
; ZpXX names indicate storage with a role not yet unique enough for a behavioral name;
|
||||
; Pass 2 replaces them with names derived from observed usage.
|
||||
|
||||
Zp00 = $00 ; 28 refs; reads=13 writes=15; used at $8274, 8277, 8287, 82AA, +22 more
|
||||
Zp01 = $01 ; 14 refs; reads=5 writes=9; used at $8270, 827C, 8282, 828C, +8 more
|
||||
Zp02 = $02 ; 5 refs; reads=3 writes=2; used at $83DB, 83E9, 83EE, 8FF3, +1 more
|
||||
Zp03 = $03 ; 5 refs; reads=2 writes=3; used at $83E1, 8FE9, 9012, 9014
|
||||
Zp04 = $04 ; 1 refs; reads=0 writes=1; used at $8FEB
|
||||
Zp10 = $10 ; 9 refs; reads=5 writes=4; used at $82D6, 82DD, 839F, 8E30, +5 more
|
||||
Zp00 = $00 ; 219 refs; reads=100 writes=119; used at $8274, 8277, 8287, 82AA, +203 more
|
||||
Zp01 = $01 ; 135 refs; reads=55 writes=80; used at $8270, 827C, 8282, 828C, +115 more
|
||||
Zp02 = $02 ; 82 refs; reads=37 writes=45; used at $83DB, 83E9, 83EE, 8F3D, +66 more
|
||||
Zp03 = $03 ; 62 refs; reads=27 writes=35; used at $83E1, 8EE8, 8F20, 8F25, +55 more
|
||||
Zp04 = $04 ; 36 refs; reads=15 writes=21; used at $8FEB, AA15, AA21, AADA, +28 more
|
||||
Zp05 = $05 ; 43 refs; reads=23 writes=20; used at $8EEE, 8F51, A6FF, A70A, +36 more
|
||||
Zp06 = $06 ; 27 refs; reads=11 writes=16; used at $8F3F, 8F63, A5E7, A5F2, +23 more
|
||||
Zp07 = $07 ; 25 refs; reads=14 writes=11; used at $8EEA, 8F04, 8F0A, 8F22, +20 more
|
||||
Zp08 = $08 ; 9 refs; reads=4 writes=5; used at $8F27, 8F29, 8F65, B337, +3 more
|
||||
Zp0A = $0A ; 44 refs; reads=22 writes=22; used at $8F37, 8F5F, AEF3, AF24, +37 more
|
||||
Zp0B = $0B ; 9 refs; reads=3 writes=6; used at $B6AD, B6D4, B6D6, BFDC, +5 more
|
||||
Zp0D = $0D ; 8 refs; reads=4 writes=4; used at $C14F, C15B, C160, C16C, +4 more
|
||||
Zp0E = $0E ; 7 refs; reads=3 writes=4; used at $B738, B753, B794, C168, +3 more
|
||||
Zp0F = $0F ; 26 refs; reads=14 writes=12; used at $B401, B40C, B40E, B73C, +21 more
|
||||
Zp10 = $10 ; 11 refs; reads=6 writes=5; used at $82D6, 82DD, 839F, 8E30, +7 more
|
||||
Zp11 = $11 ; 2 refs; reads=1 writes=1; used at $8325, 832C
|
||||
Zp12 = $12 ; 1 refs; reads=0 writes=1; used at $8FD2
|
||||
Zp12 = $12 ; 16 refs; reads=13 writes=3; used at $874F, 8981, 8EA0, 8FD2, +12 more
|
||||
Zp13 = $13 ; 1 refs; reads=0 writes=1; used at $8FD7
|
||||
Zp14 = $14 ; 4 refs; reads=3 writes=1; used at $8381, 9020, 9028, 903B
|
||||
Zp14 = $14 ; 6 refs; reads=5 writes=1; used at $8381, 87CC, 8948, 9020, +2 more
|
||||
Zp15 = $15 ; 4 refs; reads=2 writes=2; used at $88FF, 902A, 9031, 9047
|
||||
Zp18 = $18 ; 3 refs; reads=2 writes=1; used at $8350, 8360
|
||||
Zp19 = $19 ; 3 refs; reads=2 writes=1; used at $8356, 8362
|
||||
Zp1A = $1A ; 2 refs; reads=1 writes=1; used at $8364
|
||||
Zp1B = $1B ; 2 refs; reads=1 writes=1; used at $8366
|
||||
Zp18 = $18 ; 19 refs; reads=15 writes=4; used at $8350, 8360, 8505, AAA5, +12 more
|
||||
Zp19 = $19 ; 15 refs; reads=14 writes=1; used at $8356, 8362, ABA6, AC29, +10 more
|
||||
Zp1A = $1A ; 7 refs; reads=6 writes=1; used at $8364, C59D, D017, D0A3, +2 more
|
||||
Zp1B = $1B ; 4 refs; reads=3 writes=1; used at $8366, A9F2, D45C
|
||||
Zp1C = $1C ; 2 refs; reads=1 writes=1; used at $8368
|
||||
Zp1D = $1D ; 2 refs; reads=1 writes=1; used at $836A
|
||||
Zp1E = $1E ; 2 refs; reads=1 writes=1; used at $836C
|
||||
Zp1F = $1F ; 2 refs; reads=1 writes=1; used at $836E
|
||||
Zp20 = $20 ; 4 refs; reads=1 writes=3; used at $8338, 833E, 8394
|
||||
Zp21 = $21 ; 3 refs; reads=2 writes=1; used at $8342, 8346
|
||||
Zp35 = $35 ; 3 refs; reads=1 writes=2; used at $8391, 83D0, 88D8
|
||||
Zp49 = $49 ; 2 refs; reads=1 writes=1; used at $834B
|
||||
Zp4F = $4F ; 4 refs; reads=2 writes=2; used at $83E3, 83E5, 88DE
|
||||
Zp50 = $50 ; 3 refs; reads=2 writes=1; used at $8321, 83A7, 88DC
|
||||
Zp51 = $51 ; 5 refs; reads=4 writes=1; used at $83B2, 83BD, 83D4, 88D4, +1 more
|
||||
Zp52 = $52 ; 2 refs; reads=1 writes=1; used at $82F5, 831A
|
||||
Zp5C = $5C ; 1 refs; reads=1 writes=0; used at $88F4
|
||||
Zp5D = $5D ; 1 refs; reads=1 writes=0; used at $88F6
|
||||
Zp63 = $63 ; 1 refs; reads=0 writes=1; used at $83F9
|
||||
Zp66 = $66 ; 1 refs; reads=0 writes=1; used at $831C
|
||||
Zp20 = $20 ; 6 refs; reads=2 writes=4; used at $8338, 833E, 8394, 84EF, +1 more
|
||||
Zp21 = $21 ; 21 refs; reads=9 writes=12; used at $8342, 8346, 877E, 89E1, +16 more
|
||||
Zp23 = $23 ; 4 refs; reads=3 writes=1; used at $A49A, A83F, A87A, A881
|
||||
Zp24 = $24 ; 2 refs; reads=1 writes=1; used at $A517, A823
|
||||
Zp25 = $25 ; 6 refs; reads=3 writes=3; used at $D150, D19C, D1C4, D225, +2 more
|
||||
Zp26 = $26 ; 4 refs; reads=2 writes=2; used at $89F2, 89F8, C1D4, C1D9
|
||||
Zp27 = $27 ; 1 refs; reads=1 writes=0; used at $9820
|
||||
Zp2A = $2A ; 2 refs; reads=1 writes=1; used at $A77F, A79E
|
||||
Zp2B = $2B ; 26 refs; reads=10 writes=16; used at $ACBD, AEB5, B11C, B126, +22 more
|
||||
Zp30 = $30 ; 24 refs; reads=13 writes=11; used at $8BAC, CFDC, D02E, D306, +20 more
|
||||
Zp32 = $32 ; 4 refs; reads=2 writes=2; used at $D045, D06B, D137, D147
|
||||
Zp33 = $33 ; 3 refs; reads=1 writes=2; used at $8DE9, A9D3, AAE0
|
||||
Zp34 = $34 ; 4 refs; reads=2 writes=2; used at $8C23, 8C29, D791, D79B
|
||||
Zp35 = $35 ; 4 refs; reads=1 writes=3; used at $8391, 83D0, 88D8, 8C68
|
||||
Zp36 = $36 ; 4 refs; reads=2 writes=2; used at $8874, 88BF, 8956, B276
|
||||
Zp37 = $37 ; 2 refs; reads=1 writes=1; used at $8766, 8788
|
||||
Zp38 = $38 ; 12 refs; reads=6 writes=6; used at $89AD, 89B3, 8B00, 8B87, +8 more
|
||||
Zp39 = $39 ; 5 refs; reads=3 writes=2; used at $8990, 89B9, 8A17, 8C56, +1 more
|
||||
Zp3A = $3A ; 7 refs; reads=3 writes=4; used at $8709, 8745, D16C, D171, +3 more
|
||||
Zp3B = $3B ; 3 refs; reads=2 writes=1; used at $A743, AA19, AAD4
|
||||
Zp3C = $3C ; 6 refs; reads=2 writes=4; used at $A97F, D1C2, D23B, D356, +2 more
|
||||
Zp3D = $3D ; 2 refs; reads=1 writes=1; used at $AB5C, AC3B
|
||||
Zp3E = $3E ; 2 refs; reads=1 writes=1; used at $C7CF, C7D5
|
||||
Zp3F = $3F ; 19 refs; reads=8 writes=11; used at $AED2, AF7A, AF8E, B012, +15 more
|
||||
Zp44 = $44 ; 10 refs; reads=4 writes=6; used at $D08B, D0AB, D1B6, D221, +6 more
|
||||
Zp47 = $47 ; 3 refs; reads=1 writes=2; used at $8DF6, CD15, CD21
|
||||
Zp49 = $49 ; 14 refs; reads=12 writes=2; used at $834B, 84F1, 8838, 8A22, +9 more
|
||||
Zp4A = $4A ; 5 refs; reads=2 writes=3; used at $84F3, A9D7, A9DB, AAFB
|
||||
Zp4B = $4B ; 22 refs; reads=11 writes=11; used at $842E, 8997, 8A42, 8A4D, +18 more
|
||||
Zp4C = $4C ; 24 refs; reads=12 writes=12; used at $899B, 8A44, 8A6B, 8A7E, +20 more
|
||||
Zp4D = $4D ; 5 refs; reads=3 writes=2; used at $8A46, 8A89, 8A9C, BA68, +1 more
|
||||
Zp4E = $4E ; 8 refs; reads=4 writes=4; used at $8A20, 8A49, 8A64, 8A67, +4 more
|
||||
Zp4F = $4F ; 5 refs; reads=2 writes=3; used at $83E3, 83E5, 873B, 88DE
|
||||
Zp50 = $50 ; 4 refs; reads=2 writes=2; used at $8321, 83A7, 8738, 88DC
|
||||
Zp51 = $51 ; 12 refs; reads=7 writes=5; used at $83B2, 83BD, 83D4, 876E, +6 more
|
||||
Zp52 = $52 ; 25 refs; reads=2 writes=23; used at $82F5, 831A, 840A, 8570, +21 more
|
||||
Zp53 = $53 ; 14 refs; reads=14 writes=0; used at $8572, 865E, AC34, AC7E, +10 more
|
||||
Zp54 = $54 ; 1 refs; reads=1 writes=0; used at $88C2
|
||||
Zp55 = $55 ; 16 refs; reads=14 writes=2; used at $853D, 8683, 86F4, 87C8, +12 more
|
||||
Zp56 = $56 ; 3 refs; reads=2 writes=1; used at $853F, 8C6A
|
||||
Zp58 = $58 ; 5 refs; reads=3 writes=2; used at $854B, 8C5C, 8C5E, 8C66
|
||||
Zp5A = $5A ; 2 refs; reads=1 writes=1; used at $862E, BA4E
|
||||
Zp5B = $5B ; 2 refs; reads=1 writes=1; used at $8634, BA54
|
||||
Zp5C = $5C ; 9 refs; reads=7 writes=2; used at $889D, 88CC, 88F4, 8942, +3 more
|
||||
Zp5D = $5D ; 3 refs; reads=3 writes=0; used at $88F6, 8944, 895C
|
||||
Zp5E = $5E ; 5 refs; reads=4 writes=1; used at $8541, 8652, A98D, AA04, +1 more
|
||||
Zp5F = $5F ; 40 refs; reads=39 writes=1; used at $854D, 855A, 858A, 85A6, +36 more
|
||||
Zp60 = $60 ; 4 refs; reads=2 writes=2; used at $8AEE, 8B52, 8B98
|
||||
Zp61 = $61 ; 6 refs; reads=3 writes=3; used at $897D, 8B74, 8EAA, A74C, +2 more
|
||||
Zp62 = $62 ; 8 refs; reads=3 writes=5; used at $85D5, 8EC0, A80E, A817, +2 more
|
||||
Zp63 = $63 ; 8 refs; reads=4 writes=4; used at $83F9, 8B08, 8B8E, 8EAE, +4 more
|
||||
Zp64 = $64 ; 9 refs; reads=5 writes=4; used at $85EE, 8B7D, 8EB6, A7AB, +5 more
|
||||
Zp65 = $65 ; 19 refs; reads=16 writes=3; used at $85BD, 8B70, A748, A759, +13 more
|
||||
Zp66 = $66 ; 5 refs; reads=3 writes=2; used at $831C, A7D6, A7D8, C09C, +1 more
|
||||
Zp67 = $67 ; 26 refs; reads=9 writes=17; used at $8B06, A4DE, A513, A51D, +22 more
|
||||
Zp68 = $68 ; 34 refs; reads=20 writes=14; used at $87DB, 87E4, 89E9, 89ED, +26 more
|
||||
Zp69 = $69 ; 56 refs; reads=46 writes=10; used at $85CE, 87D6, 87E0, 8B0D, +52 more
|
||||
Zp6A = $6A ; 12 refs; reads=8 writes=4; used at $8743, 8790, 87CE, 8E14, +8 more
|
||||
Zp6B = $6B ; 4 refs; reads=3 writes=1; used at $857B, 8721, A78E, AAF4
|
||||
Zp6C = $6C ; 9 refs; reads=5 writes=4; used at $8772, C4F3, C538, C70C, +5 more
|
||||
Zp6E = $6E ; 2 refs; reads=1 writes=1; used at $B228, CA0C
|
||||
Zp6F = $6F ; 3 refs; reads=1 writes=2; used at $83F5, 83FD, 88E6
|
||||
Zp70 = $70 ; 3 refs; reads=2 writes=1; used at $8863, 8E79, 8E7D
|
||||
Zp71 = $71 ; 3 refs; reads=1 writes=2; used at $86B6, 877A, 8E55
|
||||
Zp72 = $72 ; 2 refs; reads=1 writes=1; used at $A51B, A827
|
||||
Zp73 = $73 ; 2 refs; reads=1 writes=1; used at $A72D, A746
|
||||
Zp74 = $74 ; 7 refs; reads=4 writes=3; used at $85F3, A733, A73E, A9D1, +1 more
|
||||
Zp75 = $75 ; 5 refs; reads=3 writes=2; used at $A9DE, AA0F, AA12, AAE2
|
||||
Zp76 = $76 ; 2 refs; reads=1 writes=1; used at $A9F8, AAD8
|
||||
Zp77 = $77 ; 2 refs; reads=1 writes=1; used at $AA00, AA17
|
||||
Zp78 = $78 ; 3 refs; reads=2 writes=1; used at $AB65, AB79
|
||||
Zp79 = $79 ; 6 refs; reads=3 writes=3; used at $8DF8, CD19, CD1D, CD27, +2 more
|
||||
Zp7A = $7A ; 30 refs; reads=13 writes=17; used at $C4C4, C8C0, CD79, CFE2, +23 more
|
||||
Zp7B = $7B ; 35 refs; reads=18 writes=17; used at $C155, C19D, C1A5, C271, +30 more
|
||||
Zp7C = $7C ; 9 refs; reads=4 writes=5; used at $CFEA, D0B1, D178, D404, +1 more
|
||||
Zp7D = $7D ; 28 refs; reads=17 writes=11; used at $A4B3, A4D0, A50D, A590, +20 more
|
||||
Zp7E = $7E ; 11 refs; reads=8 writes=3; used at $85DC, A67B, A7ED, A952, +7 more
|
||||
Zp7F = $7F ; 4 refs; reads=2 writes=2; used at $D3D9, D448, D44C
|
||||
Zp80 = $80 ; 43 refs; reads=24 writes=19; used at $840E, A718, A9AA, AA3F, +39 more
|
||||
Zp82 = $82 ; 2 refs; reads=1 writes=1; used at $FFFA
|
||||
Zp85 = $85 ; 4 refs; reads=3 writes=1; used at $85D9, BE18, C89A, D486
|
||||
Zp86 = $86 ; 5 refs; reads=1 writes=4; used at $8410, 8872, 8B96, 8BEA, +1 more
|
||||
Zp87 = $87 ; 47 refs; reads=34 writes=13; used at $841A, A6B3, A9A4, AAAB, +42 more
|
||||
Zp8C = $8C ; 8 refs; reads=7 writes=1; used at $85AC, C89E, C8E9, C930, +4 more
|
||||
Zp8D = $8D ; 2 refs; reads=0 writes=2; used at $841C, 85B0
|
||||
Zp8E = $8E ; 32 refs; reads=29 writes=3; used at $8426, A639, ACD7, AD67, +28 more
|
||||
Zp93 = $93 ; 11 refs; reads=11 writes=0; used at $A684, A961, A969, C8F3, +7 more
|
||||
Zp94 = $94 ; 21 refs; reads=20 writes=1; used at $842A, 8BB7, A63B, A687, +17 more
|
||||
Zp95 = $95 ; 2 refs; reads=2 writes=0; used at $AC6B, BAA8
|
||||
Zp99 = $99 ; 2 refs; reads=2 writes=0; used at $B9AC, CB69
|
||||
Zp9C = $9C ; 1 refs; reads=1 writes=0; used at $B930
|
||||
Zp9F = $9F ; 25 refs; reads=20 writes=5; used at $8412, AA43, ACCE, AD61, +20 more
|
||||
ZpA4 = $A4 ; 7 refs; reads=7 writes=0; used at $A67F, A956, C8AF, D491, +3 more
|
||||
ZpA5 = $A5 ; 1 refs; reads=0 writes=1; used at $8414
|
||||
ZpA6 = $A6 ; 2 refs; reads=2 writes=0; used at $AC66, BAA4
|
||||
ZpAA = $AA ; 2 refs; reads=2 writes=0; used at $B98C, CB5E
|
||||
ZpAD = $AD ; 1 refs; reads=1 writes=0; used at $B913
|
||||
ZpB0 = $B0 ; 40 refs; reads=24 writes=16; used at $8420, 8C9D, AAB9, AC23, +36 more
|
||||
ZpB5 = $B5 ; 5 refs; reads=3 writes=2; used at $85A2, D1F6, D451, D4A1, +1 more
|
||||
ZpB6 = $B6 ; 8 refs; reads=3 writes=5; used at $8422, 85A4, 8BE2, 8C00, +4 more
|
||||
ZpB7 = $B7 ; 55 refs; reads=16 writes=39; used at $8C92, A637, A656, AD97, +49 more
|
||||
ZpBC = $BC ; 30 refs; reads=5 writes=25; used at $CFE0, CFE8, CFFA, D0AF, +24 more
|
||||
ZpBD = $BD ; 6 refs; reads=2 writes=4; used at $8BC7, 8BD9, 8BDD, C50D, +1 more
|
||||
ZpBE = $BE ; 14 refs; reads=13 writes=1; used at $8549, 8718, AAEC, AB19, +10 more
|
||||
ZpC0 = $C0 ; 60 refs; reads=41 writes=19; used at $8416, A9B8, AAAF, ACC2, +55 more
|
||||
ZpC5 = $C5 ; 8 refs; reads=6 writes=2; used at $85D3, D554, D55E, D590, +4 more
|
||||
ZpC6 = $C6 ; 3 refs; reads=2 writes=1; used at $8B3A, 8BA7, 8C04
|
||||
ZpC7 = $C7 ; 27 refs; reads=14 writes=13; used at $B120, B133, B135, B159, +18 more
|
||||
ZpCE = $CE ; 39 refs; reads=23 writes=16; used at $8B81, 8C99, AACC, ABEF, +34 more
|
||||
ZpD3 = $D3 ; 10 refs; reads=6 writes=4; used at $85E9, B25F, D060, D064, +6 more
|
||||
ZpD4 = $D4 ; 12 refs; reads=9 writes=3; used at $85FD, A831, A833, ABBE, +8 more
|
||||
ZpD5 = $D5 ; 1 refs; reads=0 writes=1; used at $8618
|
||||
ZpD9 = $D9 ; 3 refs; reads=1 writes=2; used at $B7CE, B7D0, B806
|
||||
ZpDC = $DC ; 1 refs; reads=0 writes=1; used at $B8D5
|
||||
ZpDF = $DF ; 61 refs; reads=35 writes=26; used at $8C95, AAC4, AAD0, ABAD, +46 more
|
||||
ZpE4 = $E4 ; 13 refs; reads=10 writes=3; used at $85E4, B261, D058, D429, +9 more
|
||||
ZpE5 = $E5 ; 18 refs; reads=13 writes=5; used at $85F8, A82E, A837, ABAB, +10 more
|
||||
ZpE6 = $E6 ; 1 refs; reads=0 writes=1; used at $861D
|
||||
ZpEA = $EA ; 5 refs; reads=2 writes=3; used at $B7CB, B7D4, B808
|
||||
ZpED = $ED ; 1 refs; reads=0 writes=1; used at $B8D7
|
||||
ZpF0 = $F0 ; 8 refs; reads=4 writes=4; used at $FB6A, FBA3, FBAA, FBAC, +2 more
|
||||
ZpF1 = $F1 ; 3 refs; reads=1 writes=2; used at $F8E2, F8F4, F902
|
||||
ZpF2 = $F2 ; 6 refs; reads=3 writes=3; used at $F92A, F948, F95F, F96D, +2 more
|
||||
@@ -47,8 +163,30 @@ ZpF7 = $F7 ; 2 refs; reads=1 writes=1; used at $FB77, FCE2
|
||||
ZpF8 = $F8 ; 8 refs; reads=5 writes=3; used at $FB86, FC68, FC71, FC73, +2 more
|
||||
ZpF9 = $F9 ; 7 refs; reads=6 writes=1; used at $FB7C, FBAE, FBDA, FC2E, +3 more
|
||||
ZpFA = $FA ; 1 refs; reads=0 writes=1; used at $FB81
|
||||
ZpFB = $FB ; 3 refs; reads=1 writes=2; used at $8927, F84F, FB3C
|
||||
ZpFC = $FC ; 10 refs; reads=5 writes=5; used at $F84D, F9D9, F9E0, F9E4, +2 more
|
||||
ZpFD = $FD ; 2 refs; reads=1 writes=1; used at $F84B, FAF6
|
||||
ZpFE = $FE ; 6 refs; reads=3 writes=3; used at $F849, F967, F972, F976
|
||||
ZpFF = $FF ; 8 refs; reads=4 writes=4; used at $F847, F8F0, F8F6, F8FA, +1 more
|
||||
ZpFB = $FB ; 8 refs; reads=1 writes=7; used at $8710, 8777, 88B4, 8927, +4 more
|
||||
ZpFC = $FC ; 23 refs; reads=5 writes=18; used at $8784, 8BB2, 8BD3, BEE7, +15 more
|
||||
ZpFD = $FD ; 10 refs; reads=2 writes=8; used at $887F, 89B7, A5C9, A85D, +6 more
|
||||
ZpFE = $FE ; 11 refs; reads=3 writes=8; used at $8B85, 8C1C, A727, C50B, +5 more
|
||||
ZpFF = $FF ; 22 refs; reads=4 writes=18; used at $B055, B083, B193, B1CA, +15 more
|
||||
|
||||
; Pass 3 semantic aliases (proven from the disassembly):
|
||||
PpuCtrlShadow = Zp10
|
||||
VramWritePtrLo = Zp00
|
||||
VramWritePtrHi = Zp01
|
||||
DispatchPtrLo = Zp02
|
||||
DispatchPtrHi = Zp03
|
||||
PlayerIndex = Zp69
|
||||
PlayerSide = ZpC5
|
||||
SpriteIndex = Zp5F
|
||||
GameState = ZpC0
|
||||
LevelIndex = Zp50
|
||||
PlayerX = ZpB0
|
||||
PlayerY = ZpB7
|
||||
EnemyIndex = Zp87
|
||||
EnemyHealth = ZpDF
|
||||
PpuMaskShadow = Zp86
|
||||
GameMode = Zp9F
|
||||
LifeCount = ZpA5
|
||||
SpriteScore = ZpB6
|
||||
SpriteTimer = Zp80
|
||||
SpriteTimer2 = Zp8D
|
||||
+17401
-1727
File diff suppressed because it is too large.
Load diff
@@ -1,3 +1,4 @@
|
||||
# routinemap (seed)
|
||||
8258 Reset
|
||||
82D6 NmiHandler
|
||||
FFF0 IrqHandler
|
||||
|
Reference in new issue
Block a user