Redo Pass 1 for Wild Gunman (U): 20.5% -> 49.3% code coverage

The original tracer followed only vectors and direct jsr/jmp/branch targets and
knew just the 151 documented 6502 opcodes. Wild Gunman dispatches at runtime, so
~4.9 KB of real code was filed as .byte data.

Root cause: Label_C341 ($C341) is a computed goto that pulls the CALLER's return
address with two 'pla' instructions, so its jump table physically follows each
'jsr $C341' (opcode 20 41 C3) and is indexed by A*2. Seven call sites exist; the
table at $C114 (after 'lda $33 / jsr $C341') decodes to 14 valid targets.

Changes:
- Tracer rebuilt with all 54 undocumented opcodes + 26 unofficial NOPs (these
  ROMs use them as 2/3-byte padding; a tracer that halts on them strands code)
- Iterative expansion seeded from inline $C341 tables, in-trace control-flow
  references, and explicit pointer tables (e.g. the 5-entry table at $DEDD)
- prg.s updated SURGICALLY: all 249 existing routine headers, semantic labels
  and locals.inc aliases preserved; only data->code promotion applied
- Fixed a byte-dropping parser bug: some .byte lines use symbolic values
  (Zp01, NmiPhase, Ctrl1), which a $XX-only regex silently skipped
- Branch targets landing mid-instruction now force a split so labels land on
  real instruction boundaries
- Bytes that cannot be assembled stay .byte: ca65's 6502 has no
  SLO/RLA/SRE/RRA/ISC/DCP/LAS/TAS/ANE/AXS/LXA mnemonics

Verified: 1,597 -> 3,956 instructions, 3,352 -> 8,085 code bytes (49.3%).
Every one of the 16,384 PRG bytes emitted exactly once, every value equal to the
ROM, zero audit-comment mismatches. Byte-identical ROM verified.
This commit is contained in:
tmerritt committed 2026-10-16 20:39:11 -04:00
1 parent 4c644d2a20
commit b96fb1932e
3 files changed
+7850 -781

No files matched your search

+3 -3
View File
@@ -151,7 +151,7 @@ This document provides a consolidated overview of all NES disassembly projects i
- **Linker:** HEADER at $0000 (16 bytes), PRG at $C000 (16 KB), CHR at $0000 (8 KB) - **Linker:** HEADER at $0000 (16 bytes), PRG at $C000 (16 KB), CHR at $0000 (8 KB)
- **Vectors:** NMI → $C086 (`NmiHandler`), RESET → $C000 (`Reset`), IRQ → $C000 (reuses `Reset`) - **Vectors:** NMI → $C086 (`NmiHandler`), RESET → $C000 (`Reset`), IRQ → $C000 (reuses `Reset`)
- **Key subsystems:** NMI-driven frame loop — main loop is a spin loop waiting on NMI phase flag ($20); NMI handler does OAM DMA ($4014), PPU updates, and calls game logic subroutines ($C29F, $C233, $C3AC, $C265); main state dispatcher at $C0B3 based on `GameMode` ($30); reset copies sprite/OAM data from $C844 to $05F0; APU enabled via $4015 = $0F - **Key subsystems:** NMI-driven frame loop — main loop is a spin loop waiting on NMI phase flag ($20); NMI handler does OAM DMA ($4014), PPU updates, and calls game logic subroutines ($C29F, $C233, $C3AC, $C265); main state dispatcher at $C0B3 based on `GameMode` ($30); reset copies sprite/OAM data from $C844 to $05F0; APU enabled via $4015 = $0F
- **Build fix:** None needed; byte-identical out of the box (`make` in `copilot/`). Pass 1 complete — full code/data classification (~20% code / ~80% data); Pass 2 partial — routine headers and semantic naming for key routines (`Reset`, `NmiHandler`, `MainStateDispatch`, `MainLoopBody`, etc.); zero-page aliases in `locals.inc` (`GameMode`=$30, `NmiPhase`=$20, `NmiFlag`=$22, `Timer2F`=$2F, etc.) - **Build fix:** None needed; byte-identical out of the box (`make` in `copilot/`). **Pass 1 redone 2026-10-16** — the original tracer followed only RESET/NMI/IRQ and jsr/jmp/branch targets and knew just the 151 documented opcodes, so it missed Wild Gunman's runtime dispatch (`Label_C341`'s `pla`-based computed goto puts the jump table inline right after each `jsr $C341`) and filed ~4.9 KB of real code as `.byte` data. Code coverage went **1,597 instr / 3,352 B (20.5%) → 3,956 instr / 8,085 B (49.3%)**. Pass 2 partial — routine headers and semantic naming for key routines (`Reset`, `NmiHandler`, `MainStateDispatch`, `MainLoopBody`, etc.); zero-page aliases in `locals.inc` (`GameMode`=$30, `NmiPhase`=$20, `NmiFlag`=$22, `Timer2F`=$2F, etc.). Pass 3 pending (no data tables named yet)
- **Details:** `Wild Gunman (U)/OVERVIEW.md` - **Details:** `Wild Gunman (U)/OVERVIEW.md`
### 14. Joypad Test Cartridge (U) ### 14. Joypad Test Cartridge (U)
@@ -206,7 +206,7 @@ Notable vector/header observations for Pass 1 work:
- **MUSCLE (U)** — *at Pass 3*: bytecode-VM game. A naive recursive trace reaches only 50.6% of the PRG because the game dispatches through three jump tables and two zero-page `jmp (zp)` calls that a static descender cannot follow: a 38-entry token-program pointer table at `$8CEF`, a 40-entry opcode handler table at `$9237`, a second 16-entry handler table at `$9F2B`, and a 3-entry per-level VRAM-writer table at `$AC35`. Resolving those took code coverage to 64.9%. Compressed-VRAM RLE decoder at `$AC82` with a 12-byte fill table at `$ACBD`; restoring division by 20 at `$82AC`; four-channel sound engine with per-channel state in zero page `$C4-$EF`. See `MUSCLE (U)/OVERVIEW.md`. - **MUSCLE (U)** — *at Pass 3*: bytecode-VM game. A naive recursive trace reaches only 50.6% of the PRG because the game dispatches through three jump tables and two zero-page `jmp (zp)` calls that a static descender cannot follow: a 38-entry token-program pointer table at `$8CEF`, a 40-entry opcode handler table at `$9237`, a second 16-entry handler table at `$9F2B`, and a 3-entry per-level VRAM-writer table at `$AC35`. Resolving those took code coverage to 64.9%. Compressed-VRAM RLE decoder at `$AC82` with a 12-byte fill table at `$ACBD`; restoring division by 20 at `$82AC`; four-channel sound engine with per-channel state in zero page `$C4-$EF`. See `MUSCLE (U)/OVERVIEW.md`.
- **CIRCUS** — *at Pass 2/3*: full recursive disassembly complete. NMI-driven frame state machine (main loop is a spin loop at $C057). Menu text at $C763 ("CONTINUE", "STAGE", "SELECT", "PLAY"). Object state machine at $DC3F–$FE7B. Audio sequence data at $FABB–$FFFB. See `CIRCUS/OVERVIEW.md`. - **CIRCUS** — *at Pass 2/3*: full recursive disassembly complete. NMI-driven frame state machine (main loop is a spin loop at $C057). Menu text at $C763 ("CONTINUE", "STAGE", "SELECT", "PLAY"). Object state machine at $DC3F–$FE7B. Audio sequence data at $FABB–$FFFB. See `CIRCUS/OVERVIEW.md`.
- **Joypad Test Cartridge (U)** — *at Pass 2/3*: minimal code (~3.5%), data-heavy test cartridge. NMI handler drives per-frame PPU/OAM updates. Uses return-address modification trick at `RetAddrUpdate` ($CDC8) with `VramPtrWrite` ($CD3F) for runtime-computed dispatch. See `Joypad Test Cartridge (U)/OVERVIEW.md`. - **Joypad Test Cartridge (U)** — *at Pass 2/3*: minimal code (~3.5%), data-heavy test cartridge. NMI handler drives per-frame PPU/OAM updates. Uses return-address modification trick at `RetAddrUpdate` ($CDC8) with `VramPtrWrite` ($CD3F) for runtime-computed dispatch. See `Joypad Test Cartridge (U)/OVERVIEW.md`.
- **Wild Gunman (U)** — *at Pass 2/3*: NMI-driven frame loop with sprite/OAM table at $C844. See `Wild Gunman (U)/OVERVIEW.md`. - **Wild Gunman (U)** — *Pass 1 redone, Pass 2 partial, Pass 3 pending*: NMI-driven frame loop. Gates its code behind runtime computed-goto tables — see the `prg.s` header block and its `OVERVIEW.md`.
## Common Patterns Across All Projects ## Common Patterns Across All Projects
@@ -276,7 +276,7 @@ All 15 projects in this repository rebuild **byte-identical** to their original
| 10 | Donkey Kong 3 (JUE) | BYTE-IDENTICAL | complete | | 10 | Donkey Kong 3 (JUE) | BYTE-IDENTICAL | complete |
| 11 | Donkey Kong Jr. (JU) | BYTE-IDENTICAL | pending | | 11 | Donkey Kong Jr. (JU) | BYTE-IDENTICAL | pending |
| 12 | CIRCUS | BYTE-IDENTICAL | complete | | 12 | CIRCUS | BYTE-IDENTICAL | complete |
| 13 | Wild Gunman (U) | BYTE-IDENTICAL | pending | | 13 | Wild Gunman (U) | BYTE-IDENTICAL | pending (Pass 1 redone) |
| 14 | Joypad Test Cartridge (U) | BYTE-IDENTICAL | pending | | 14 | Joypad Test Cartridge (U) | BYTE-IDENTICAL | pending |
| 15 | NES PowerPad Test Card (U) | BYTE-IDENTICAL | pending | | 15 | NES PowerPad Test Card (U) | BYTE-IDENTICAL | pending |
File diff suppressed because it is too large. Load diff
+480
View File
@@ -1,5 +1,9 @@
al 00FFF7 .Label_FFF7 al 00FFF7 .Label_FFF7
al 00FFF4 .Label_FFF4 al 00FFF4 .Label_FFF4
al 00FE1B .Label_FE1B
al 00FDF7 .Label_FDF7
al 00FCF0 .Label_FCF0
al 00FB10 .Label_FB10
al 00F76F .Label_F76F al 00F76F .Label_F76F
al 00F724 .Label_F724 al 00F724 .Label_F724
al 00F723 .Label_F723 al 00F723 .Label_F723
@@ -20,18 +24,22 @@ al 00F652 .Label_F652
al 00F650 .Label_F650 al 00F650 .Label_F650
al 00F642 .Label_F642 al 00F642 .Label_F642
al 00F64B .Label_F64B al 00F64B .Label_F64B
al 00F631 .Label_F631
al 00F659 .Label_F659 al 00F659 .Label_F659
al 00F613 .Label_F613 al 00F613 .Label_F613
al 00F60F .Label_F60F al 00F60F .Label_F60F
al 00F60E .Label_F60E al 00F60E .Label_F60E
al 00F5FD .Label_F5FD al 00F5FD .Label_F5FD
al 00F5FB .Label_F5FB al 00F5FB .Label_F5FB
al 00F5F2 .Label_F5F2
al 00F5EF .Label_F5EF al 00F5EF .Label_F5EF
al 00F5DB .Label_F5DB
al 00F5EC .Label_F5EC al 00F5EC .Label_F5EC
al 00F5E1 .Label_F5E1 al 00F5E1 .Label_F5E1
al 00F5D5 .Label_F5D5 al 00F5D5 .Label_F5D5
al 00F5C7 .Label_F5C7 al 00F5C7 .Label_F5C7
al 00F5B4 .Label_F5B4 al 00F5B4 .Label_F5B4
al 00F5B3 .Label_F5B3
al 00F617 .Label_F617 al 00F617 .Label_F617
al 00F5AC .Label_F5AC al 00F5AC .Label_F5AC
al 00F592 .Label_F592 al 00F592 .Label_F592
@@ -53,6 +61,8 @@ al 00F51A .Label_F51A
al 00F50D .Label_F50D al 00F50D .Label_F50D
al 00F50A .Label_F50A al 00F50A .Label_F50A
al 00F4EF .Label_F4EF al 00F4EF .Label_F4EF
al 00F4D0 .Label_F4D0
al 00F4B7 .Label_F4B7
al 00F48A .Label_F48A al 00F48A .Label_F48A
al 00F48E .Label_F48E al 00F48E .Label_F48E
al 00F468 .Label_F468 al 00F468 .Label_F468
@@ -62,9 +72,13 @@ al 00F42A .Label_F42A
al 00F426 .Label_F426 al 00F426 .Label_F426
al 00F418 .Label_F418 al 00F418 .Label_F418
al 00F40F .Label_F40F al 00F40F .Label_F40F
al 00F40A .Label_F40A
al 00F3FA .Label_F3FA
al 00F417 .Label_F417
al 00F3EB .Label_F3EB al 00F3EB .Label_F3EB
al 00F3EE .Label_F3EE al 00F3EE .Label_F3EE
al 00F3E3 .Label_F3E3 al 00F3E3 .Label_F3E3
al 00F3C4 .Label_F3C4
al 00F3C0 .Label_F3C0 al 00F3C0 .Label_F3C0
al 00F3A8 .Label_F3A8 al 00F3A8 .Label_F3A8
al 00F39D .Label_F39D al 00F39D .Label_F39D
@@ -73,36 +87,286 @@ al 00F38B .Label_F38B
al 00F391 .Label_F391 al 00F391 .Label_F391
al 00F387 .Label_F387 al 00F387 .Label_F387
al 00F372 .Label_F372 al 00F372 .Label_F372
al 00F380 .Label_F380
al 00F35C .Label_F35C
al 00F30A .Label_F30A
al 00E63E .Label_E63E
al 00E629 .Label_E629
al 00E614 .Label_E614
al 00E642 .Label_E642
al 00E603 .Label_E603
al 00E5FF .Label_E5FF
al 00E62D .Label_E62D
al 00E5FA .Label_E5FA
al 00E5EA .Label_E5EA
al 00E5E5 .Label_E5E5
al 00E5D9 .Label_E5D9
al 00E5D5 .Label_E5D5
al 00E5D0 .Label_E5D0
al 00E5C4 .Label_E5C4
al 00E5C0 .Label_E5C0
al 00E5EE .Label_E5EE
al 00E5BB .Label_E5BB
al 00E5AF .Label_E5AF
al 00E5AB .Label_E5AB
al 00E5A6 .Label_E5A6
al 00E1D0 .Label_E1D0
al 00E063 .Label_E063
al 00E061 .Label_E061
al 00E05E .Label_E05E
al 00E03E .Label_E03E
al 00E040 .Label_E040
al 00DEED .Label_DEED al 00DEED .Label_DEED
al 00DED4 .Label_DED4 al 00DED4 .Label_DED4
al 00DEC5 .Label_DEC5
al 00DCE8 .Label_DCE8
al 00DCD8 .Label_DCD8
al 00DCD3 .Label_DCD3
al 00DCCA .Label_DCCA
al 00DCBE .Label_DCBE
al 00DCAB .Label_DCAB
al 00DC96 .Label_DC96
al 00DC81 .Label_DC81
al 00DC8D .Label_DC8D
al 00DC7B .Label_DC7B
al 00DC75 .Label_DC75
al 00DC6B .Label_DC6B
al 00DC52 .Label_DC52
al 00DC48 .Label_DC48
al 00DC4B .Label_DC4B
al 00DC36 .Label_DC36
al 00DC2D .Label_DC2D
al 00DC26 .Label_DC26
al 00DC27 .Label_DC27
al 00DC15 .Label_DC15
al 00DC11 .Label_DC11
al 00DBE7 .Label_DBE7
al 00DBE4 .Label_DBE4
al 00DBE0 .Label_DBE0
al 00DBDD .Label_DBDD
al 00DBCA .Label_DBCA
al 00DBC8 .Label_DBC8
al 00DBA8 .Label_DBA8
al 00DBA2 .Label_DBA2
al 00DBE3 .Label_DBE3
al 00DB9D .Label_DB9D
al 00DB98 .Label_DB98
al 00DB8C .Label_DB8C
al 00DB70 .Label_DB70
al 00DB8D .Label_DB8D
al 00DB6B .Label_DB6B
al 00DB68 .Label_DB68
al 00DB64 .Label_DB64
al 00DB6F .Label_DB6F
al 00DB5E .Label_DB5E
al 00DB4F .Label_DB4F
al 00DB4D .Label_DB4D
al 00DB4A .Label_DB4A
al 00DB3B .Label_DB3B
al 00DB39 .Label_DB39
al 00DB34 .Label_DB34
al 00DB4C .Label_DB4C
al 00DB2C .Label_DB2C
al 00DB23 .Label_DB23
al 00DB19 .Label_DB19
al 00DAED .Label_DAED
al 00DAE0 .Label_DAE0 al 00DAE0 .Label_DAE0
al 00DAD2 .Label_DAD2 al 00DAD2 .Label_DAD2
al 00DABF .Label_DABF
al 00DABE .Label_DABE
al 00DABD .Label_DABD
al 00DAB5 .Label_DAB5
al 00DAB0 .Label_DAB0
al 00DAAB .Label_DAAB
al 00DAA6 .Label_DAA6
al 00DAA7 .Label_DAA7
al 00DAA2 .Label_DAA2
al 00DA8C .Label_DA8C
al 00DA70 .Label_DA70
al 00DA45 .Label_DA45
al 00DA16 .Label_DA16
al 00DA0C .Label_DA0C
al 00DA10 .Label_DA10
al 00DA06 .Label_DA06
al 00D9FA .Label_D9FA
al 00D9F9 .Label_D9F9
al 00D9E9 .Label_D9E9
al 00D9D8 .Label_D9D8
al 00D9CC .Label_D9CC
al 00D9C8 .Label_D9C8
al 00D9BB .Label_D9BB
al 00D9B5 .Label_D9B5
al 00D99D .Label_D99D
al 00D994 .Label_D994
al 00D990 .Label_D990
al 00D98C .Label_D98C
al 00D988 .Label_D988
al 00D984 .Label_D984
al 00D980 .Label_D980
al 00D97C .Label_D97C al 00D97C .Label_D97C
al 00D996 .Label_D996 al 00D996 .Label_D996
al 00D978 .Label_D978 al 00D978 .Label_D978
al 00D971 .Label_D971
al 00D96D .Label_D96D
al 00D969 .Label_D969 al 00D969 .Label_D969
al 00D965 .Label_D965 al 00D965 .Label_D965
al 00D961 .Label_D961
al 00D95D .Label_D95D
al 00D95B .Label_D95B
al 00D959 .Label_D959 al 00D959 .Label_D959
al 00D973 .Label_D973 al 00D973 .Label_D973
al 00D955 .Label_D955 al 00D955 .Label_D955
al 00D949 .Label_D949
al 00D938 .Label_D938
al 00D92A .Label_D92A
al 00D926 .Label_D926
al 00D920 .Label_D920
al 00D91C .Label_D91C
al 00D916 .Label_D916
al 00D912 .Label_D912
al 00D90B .Label_D90B
al 00D908 .Label_D908
al 00D8FF .Label_D8FF al 00D8FF .Label_D8FF
al 00D8FB .Label_D8FB
al 00D8FE .Label_D8FE
al 00D8EF .Label_D8EF al 00D8EF .Label_D8EF
al 00D8E5 .Label_D8E5 al 00D8E5 .Label_D8E5
al 00D8E3 .Label_D8E3 al 00D8E3 .Label_D8E3
al 00D8E2 .Label_D8E2
al 00D8D9 .Label_D8D9 al 00D8D9 .Label_D8D9
al 00D8D7 .Label_D8D7 al 00D8D7 .Label_D8D7
al 00D8D0 .Label_D8D0
al 00D8BB .Label_D8BB
al 00D8B4 .Label_D8B4
al 00D8AD .Label_D8AD
al 00D8A3 .Label_D8A3
al 00D897 .Label_D897
al 00D89A .Label_D89A
al 00D88E .Label_D88E
al 00D8AC .Label_D8AC
al 00D87C .Label_D87C
al 00D871 .Label_D871
al 00D86C .Label_D86C
al 00D855 .Label_D855
al 00D853 .Label_D853
al 00D84F .Label_D84F
al 00D849 .Label_D849
al 00D844 .Label_D844
al 00D848 .Label_D848
al 00D83B .Label_D83B
al 00D82E .Label_D82E
al 00D821 .Label_D821
al 00D7FA .Label_D7FA
al 00D819 .Label_D819
al 00D7E7 .Label_D7E7
al 00D7E4 .Label_D7E4
al 00D7DF .Label_D7DF
al 00D7CA .Label_D7CA
al 00D7BC .Label_D7BC
al 00D7B6 .Label_D7B6
al 00D7B4 .Label_D7B4
al 00D7A8 .Label_D7A8
al 00D7AC .Label_D7AC
al 00D7C9 .Label_D7C9
al 00D792 .Label_D792
al 00D788 .Label_D788
al 00D780 .Label_D780
al 00D77D .Label_D77D
al 00D76E .Label_D76E
al 00D75D .Label_D75D
al 00D74E .Label_D74E
al 00D748 .Label_D748
al 00D73E .Label_D73E
al 00D732 .Label_D732
al 00D736 .Label_D736
al 00D73C .Label_D73C
al 00D72D .Label_D72D
al 00D71C .Label_D71C
al 00D70D .Label_D70D
al 00D718 .Label_D718
al 00D6FF .Label_D6FF
al 00D757 .Label_D757
al 00D6F0 .Label_D6F0
al 00D6E9 .Label_D6E9
al 00D6E4 .Label_D6E4
al 00D6DD .Label_D6DD
al 00D6CE .Label_D6CE
al 00D6CA .Label_D6CA
al 00D6C4 .Label_D6C4
al 00D6AE .Label_D6AE
al 00D6A5 .Label_D6A5
al 00D696 .Label_D696
al 00D683 .Label_D683
al 00D67F .Label_D67F
al 00D6BC .Label_D6BC
al 00D672 .Label_D672
al 00D670 .Label_D670
al 00D668 .Label_D668
al 00D653 .Label_D653
al 00D643 .Label_D643
al 00D639 .Label_D639
al 00D652 .Label_D652
al 00D5ED .Label_D5ED
al 00D5E8 .Label_D5E8
al 00D5E1 .Label_D5E1
al 00D5E0 .Label_D5E0
al 00D5D9 .Label_D5D9
al 00D5BE .Label_D5BE
al 00D5B7 .Label_D5B7
al 00D5B3 .Label_D5B3 al 00D5B3 .Label_D5B3
al 00D5AF .Label_D5AF al 00D5AF .Label_D5AF
al 00D5A3 .Label_D5A3
al 00D574 .Label_D574
al 00D561 .Label_D561
al 00D55B .Label_D55B
al 00D550 .Label_D550
al 00D53B .Label_D53B
al 00D530 .Label_D530
al 00D520 .Label_D520
al 00D52B .Label_D52B
al 00D54B .Label_D54B
al 00D545 .Label_D545
al 00D544 .Label_D544
al 00D50B .Label_D50B
al 00D504 .Label_D504
al 00D500 .Label_D500
al 00D4F4 .Label_D4F4 al 00D4F4 .Label_D4F4
al 00D4ED .Label_D4ED
al 00D4E7 .Label_D4E7
al 00D4D7 .Label_D4D7
al 00D4D3 .Label_D4D3
al 00D4C8 .Label_D4C8
al 00D4B8 .Label_D4B8
al 00D4AB .Label_D4AB
al 00D4B5 .Label_D4B5
al 00D49E .Label_D49E
al 00D4A7 .Label_D4A7
al 00D4B7 .Label_D4B7
al 00D487 .Label_D487
al 00D47E .Label_D47E
al 00D476 .Label_D476
al 00D474 .Label_D474
al 00D466 .Label_D466
al 00D45E .Label_D45E
al 00D44E .Label_D44E
al 00D432 .Label_D432
al 00D447 .Label_D447
al 00D429 .Label_D429
al 00D41D .Label_D41D
al 00D416 .Label_D416 al 00D416 .Label_D416
al 00D400 .Label_D400
al 00D3F1 .Label_D3F1
al 00D3EE .Label_D3EE al 00D3EE .Label_D3EE
al 00D3FD .Label_D3FD al 00D3FD .Label_D3FD
al 00D3DA .Label_D3DA
al 00D3CF .Label_D3CF al 00D3CF .Label_D3CF
al 00D3C4 .Label_D3C4 al 00D3C4 .Label_D3C4
al 00D3C2 .Label_D3C2 al 00D3C2 .Label_D3C2
al 00D3B9 .Label_D3B9 al 00D3B9 .Label_D3B9
al 00D3BF .Label_D3BF al 00D3BF .Label_D3BF
al 00D3B1 .Label_D3B1
al 00D396 .Label_D396 al 00D396 .Label_D396
al 00D385 .Label_D385
al 00D382 .Label_D382 al 00D382 .Label_D382
al 00D36C .Label_D36C al 00D36C .Label_D36C
al 00D33C .Label_D33C al 00D33C .Label_D33C
@@ -121,14 +385,19 @@ al 00D25E .Label_D25E
al 00D23B .Label_D23B al 00D23B .Label_D23B
al 00D213 .Label_D213 al 00D213 .Label_D213
al 00D208 .Label_D208 al 00D208 .Label_D208
al 00D202 .Label_D202
al 00D1FF .Label_D1FF al 00D1FF .Label_D1FF
al 00D205 .Label_D205 al 00D205 .Label_D205
al 00D1C9 .Label_D1C9 al 00D1C9 .Label_D1C9
al 00D1D3 .Label_D1D3 al 00D1D3 .Label_D1D3
al 00D1C5 .Label_D1C5 al 00D1C5 .Label_D1C5
al 00D1B6 .Label_D1B6
al 00D1D9 .Label_D1D9 al 00D1D9 .Label_D1D9
al 00D1A8 .Label_D1A8
al 00D1AE .Label_D1AE al 00D1AE .Label_D1AE
al 00D19D .Label_D19D al 00D19D .Label_D19D
al 00D195 .Label_D195
al 00D183 .Label_D183
al 00D187 .Label_D187 al 00D187 .Label_D187
al 00D175 .Label_D175 al 00D175 .Label_D175
al 00D172 .Label_D172 al 00D172 .Label_D172
@@ -137,6 +406,7 @@ al 00D154 .Label_D154
al 00D15B .Label_D15B al 00D15B .Label_D15B
al 00D149 .Label_D149 al 00D149 .Label_D149
al 00D14E .Label_D14E al 00D14E .Label_D14E
al 00D12E .Label_D12E
al 00D118 .Label_D118 al 00D118 .Label_D118
al 00D110 .Label_D110 al 00D110 .Label_D110
al 00D134 .Label_D134 al 00D134 .Label_D134
@@ -151,35 +421,232 @@ al 00D0C3 .Label_D0C3
al 00D0B6 .Label_D0B6 al 00D0B6 .Label_D0B6
al 00D0A6 .Label_D0A6 al 00D0A6 .Label_D0A6
al 00D097 .Label_D097 al 00D097 .Label_D097
al 00D08B .Label_D08B
al 00D089 .Label_D089 al 00D089 .Label_D089
al 00D068 .Label_D068 al 00D068 .Label_D068
al 00D053 .Label_D053 al 00D053 .Label_D053
al 00D04F .Label_D04F al 00D04F .Label_D04F
al 00D054 .Label_D054 al 00D054 .Label_D054
al 00D04B .Label_D04B
al 00D03E .Label_D03E al 00D03E .Label_D03E
al 00D02B .Label_D02B al 00D02B .Label_D02B
al 00D027 .Label_D027 al 00D027 .Label_D027
al 00D02C .Label_D02C al 00D02C .Label_D02C
al 00D01C .Label_D01C al 00D01C .Label_D01C
al 00D019 .Label_D019
al 00D00F .Label_D00F
al 00CFFE .Label_CFFE
al 00CFF1 .Label_CFF1
al 00CFE7 .Label_CFE7
al 00CFD5 .Label_CFD5
al 00CFA4 .Label_CFA4
al 00CF98 .Label_CF98
al 00CF87 .Label_CF87
al 00CF86 .Label_CF86
al 00CF7F .Label_CF7F
al 00CF84 .Label_CF84
al 00CF6C .Label_CF6C
al 00CF65 .Label_CF65
al 00CF39 .Label_CF39
al 00CF43 .Label_CF43
al 00CF35 .Label_CF35
al 00CF44 .Label_CF44
al 00CF2A .Label_CF2A
al 00CF1F .Label_CF1F
al 00CF17 .Label_CF17
al 00CF12 .Label_CF12
al 00CF0D .Label_CF0D
al 00CF0C .Label_CF0C al 00CF0C .Label_CF0C
al 00CF01 .Label_CF01 al 00CF01 .Label_CF01
al 00CEF9 .Label_CEF9
al 00CEF8 .Label_CEF8
al 00CEEA .Label_CEEA
al 00CEEF .Label_CEEF
al 00CEE6 .Label_CEE6
al 00CEDE .Label_CEDE
al 00CEDB .Label_CEDB
al 00CED1 .Label_CED1
al 00CEC9 .Label_CEC9
al 00CEC7 .Label_CEC7
al 00CEA3 .Label_CEA3
al 00CEA4 .Label_CEA4
al 00CEAB .Label_CEAB
al 00CE96 .Label_CE96
al 00CE93 .Label_CE93
al 00CE80 .Label_CE80
al 00CE7D .Label_CE7D
al 00CE88 .Label_CE88
al 00CE41 .Label_CE41
al 00CE32 .Label_CE32
al 00CE57 .Label_CE57
al 00CE0C .Label_CE0C
al 00CDFB .Label_CDFB
al 00CDFE .Label_CDFE
al 00CDF0 .Label_CDF0
al 00CDDC .Label_CDDC
al 00CDD1 .Label_CDD1
al 00CDC6 .Label_CDC6
al 00CDB4 .Label_CDB4
al 00CDB2 .Label_CDB2
al 00CDA6 .Label_CDA6
al 00CDAB .Label_CDAB
al 00CD9F .Label_CD9F
al 00CD7D .Label_CD7D
al 00CD77 .Label_CD77
al 00CD54 .Label_CD54
al 00CD4C .Label_CD4C
al 00CD3A .Label_CD3A
al 00CD40 .Label_CD40
al 00CD22 .Label_CD22
al 00CD11 .Label_CD11
al 00CD44 .Label_CD44
al 00CCFC .Label_CCFC
al 00CCF0 .Label_CCF0
al 00CD05 .Label_CD05
al 00CD42 .Label_CD42
al 00CCE8 .Label_CCE8
al 00CCDC .Label_CCDC
al 00CCF3 .Label_CCF3
al 00CCCC .Label_CCCC
al 00CCCB .Label_CCCB
al 00CCBE .Label_CCBE
al 00CCB2 .Label_CCB2
al 00CC9A .Label_CC9A
al 00CC89 .Label_CC89
al 00CC7B .Label_CC7B
al 00CC77 .Label_CC77
al 00CC68 .Label_CC68
al 00CC65 .Label_CC65
al 00CC57 .Label_CC57
al 00CC38 .Label_CC38
al 00CC3C .Label_CC3C
al 00CC33 .Label_CC33
al 00CC5C .Label_CC5C
al 00CC47 .Label_CC47
al 00CC13 .Label_CC13
al 00CBF1 .Label_CBF1
al 00CBEA .Label_CBEA
al 00CBDA .Label_CBDA
al 00CBE2 .Label_CBE2
al 00CBA7 .Label_CBA7
al 00CBA8 .Label_CBA8
al 00CBA0 .Label_CBA0
al 00CB5B .Label_CB5B
al 00CB5C .Label_CB5C
al 00CB6A .Label_CB6A
al 00CB34 .Label_CB34
al 00CB28 .Label_CB28
al 00CB24 .Label_CB24
al 00CB18 .Label_CB18
al 00CB3D .Label_CB3D
al 00CB10 .Label_CB10
al 00CAFF .Label_CAFF
al 00CAE9 .Label_CAE9
al 00CB03 .Label_CB03
al 00CACE .Label_CACE
al 00CAD5 .Label_CAD5
al 00CB04 .Label_CB04
al 00CAAC .Label_CAAC
al 00CA7A .Label_CA7A
al 00CA57 .Label_CA57
al 00CA4B .Label_CA4B
al 00CA39 .Label_CA39
al 00CA56 .Label_CA56
al 00CA30 .Label_CA30
al 00CA25 .Label_CA25
al 00CA2F .Label_CA2F
al 00CA13 .Label_CA13
al 00CA0D .Label_CA0D
al 00CA1B .Label_CA1B
al 00CA01 .Label_CA01
al 00C9E0 .Label_C9E0
al 00C9F5 .Label_C9F5
al 00C9D3 .Label_C9D3
al 00C9AC .Label_C9AC
al 00C99C .Label_C99C
al 00C992 .Label_C992
al 00C9A9 .Label_C9A9
al 00C984 .Label_C984
al 00C97D .Label_C97D
al 00C96F .Label_C96F
al 00C974 .Label_C974
al 00C97F .Label_C97F
al 00C95F .Label_C95F
al 00C955 .Label_C955
al 00C95C .Label_C95C
al 00C950 .Label_C950
al 00C9AB .Label_C9AB
al 00C948 .Label_C948
al 00C929 .Label_C929
al 00C8B8 .Label_C8B8
al 00C8B7 .Label_C8B7
al 00C8B5 .Label_C8B5
al 00C8AB .Label_C8AB
al 00C8A6 .Label_C8A6
al 00C871 .Label_C871
al 00C887 .Label_C887
al 00C855 .Label_C855
al 00C840 .Label_C840
al 00C84A .Label_C84A
al 00C837 .Label_C837
al 00C841 .Label_C841
al 00C82E .Label_C82E
al 00C838 .Label_C838
al 00C825 .Label_C825
al 00C821 .Label_C821
al 00C82F .Label_C82F
al 00C81C .Label_C81C
al 00C826 .Label_C826
al 00C803 .Label_C803
al 00C5EC .Label_C5EC al 00C5EC .Label_C5EC
al 00C5E6 .Label_C5E6 al 00C5E6 .Label_C5E6
al 00C5DF .Label_C5DF al 00C5DF .Label_C5DF
al 00C5D7 .Label_C5D7 al 00C5D7 .Label_C5D7
al 00C5D1 .Label_C5D1
al 00C5D1 .Sub_C5D1 al 00C5D1 .Sub_C5D1
al 00C5CA .Label_C5CA
al 00C585 .Label_C585 al 00C585 .Label_C585
al 00C573 .Label_C573
al 00C573 .MainLoopBody al 00C573 .MainLoopBody
al 00C560 .Label_C560
al 00C552 .Label_C552
al 00C55A .Label_C55A
al 00C566 .Label_C566
al 00C545 .Label_C545
al 00C570 .Label_C570
al 00C56B .Label_C56B
al 00C52F .Label_C52F
al 00C524 .Label_C524
al 00C51B .Label_C51B
al 00C51A .Label_C51A
al 00C540 .Label_C540
al 00C567 .Label_C567
al 00C511 .Label_C511
al 00C500 .Label_C500
al 00C4FC .Label_C4FC
al 00C4F5 .Label_C4F5
al 00C4ED .Label_C4ED al 00C4ED .Label_C4ED
al 00C4EA .Label_C4EA
al 00C4DE .Label_C4DE
al 00C4CB .Label_C4CB
al 00C4C2 .Label_C4C2 al 00C4C2 .Label_C4C2
al 00C4C6 .Label_C4C6 al 00C4C6 .Label_C4C6
al 00C4B5 .Label_C4B5 al 00C4B5 .Label_C4B5
al 00C4AA .Label_C4AA al 00C4AA .Label_C4AA
al 00C4A9 .Label_C4A9
al 00C48D .Label_C48D
al 00C487 .Label_C487
al 00C47B .Label_C47B
al 00C432 .Label_C432
al 00C459 .Label_C459
al 00C455 .Label_C455
al 00C422 .Label_C422
al 00C421 .Label_C421 al 00C421 .Label_C421
al 00C411 .Label_C411 al 00C411 .Label_C411
al 00C3E7 .Label_C3E7 al 00C3E7 .Label_C3E7
al 00C3D0 .Label_C3D0 al 00C3D0 .Label_C3D0
al 00C3B9 .Label_C3B9 al 00C3B9 .Label_C3B9
al 00C3AC .Label_C3AC
al 00C3AC .NmiGameLogic5 al 00C3AC .NmiGameLogic5
al 00C3A3 .Label_C3A3 al 00C3A3 .Label_C3A3
al 00C38F .Label_C38F al 00C38F .Label_C38F
@@ -190,6 +657,7 @@ al 00C367 .Label_C367
al 00C341 .Label_C341 al 00C341 .Label_C341
al 00C33D .Label_C33D al 00C33D .Label_C33D
al 00C337 .Label_C337 al 00C337 .Label_C337
al 00C32B .Label_C32B
al 00C32B .NmiGameLogic4 al 00C32B .NmiGameLogic4
al 00C324 .Label_C324 al 00C324 .Label_C324
al 00C30B .Label_C30B al 00C30B .Label_C30B
@@ -199,22 +667,28 @@ al 00C2CA .Label_C2CA
al 00C2BB .Label_C2BB al 00C2BB .Label_C2BB
al 00C2D4 .Label_C2D4 al 00C2D4 .Label_C2D4
al 00C2E2 .Label_C2E2 al 00C2E2 .Label_C2E2
al 00C29F .Label_C29F
al 00C29F .NmiGameLogic3 al 00C29F .NmiGameLogic3
al 00C29E .Label_C29E al 00C29E .Label_C29E
al 00C275 .Label_C275 al 00C275 .Label_C275
al 00C273 .Label_C273 al 00C273 .Label_C273
al 00C265 .Label_C265
al 00C265 .NmiGameLogic2 al 00C265 .NmiGameLogic2
al 00C25A .Label_C25A al 00C25A .Label_C25A
al 00C24D .Label_C24D al 00C24D .Label_C24D
al 00C259 .Label_C259 al 00C259 .Label_C259
al 00C233 .Label_C233
al 00C233 .NmiGameLogic1 al 00C233 .NmiGameLogic1
al 00C232 .Label_C232 al 00C232 .Label_C232
al 00C22B .Label_C22B al 00C22B .Label_C22B
al 00C225 .Label_C225 al 00C225 .Label_C225
al 00C21B .Label_C21B
al 00C21B .ResetInitSub2 al 00C21B .ResetInitSub2
al 00C212 .Label_C212 al 00C212 .Label_C212
al 00C210 .Label_C210
al 00C202 .Label_C202 al 00C202 .Label_C202
al 00C1EB .Label_C1EB al 00C1EB .Label_C1EB
al 00C1D2 .Label_C1D2
al 00C1CA .Label_C1CA al 00C1CA .Label_C1CA
al 00C1A8 .Label_C1A8 al 00C1A8 .Label_C1A8
al 00C1F7 .Label_C1F7 al 00C1F7 .Label_C1F7
@@ -228,21 +702,27 @@ al 00C169 .Label_C169
al 00C179 .Label_C179 al 00C179 .Label_C179
al 00C156 .Label_C156 al 00C156 .Label_C156
al 00C16D .Label_C16D al 00C16D .Label_C16D
al 00C125 .Label_C125
al 00C101 .Label_C101 al 00C101 .Label_C101
al 00C0E0 .Label_C0E0
al 00C0DE .Label_C0DE al 00C0DE .Label_C0DE
al 00C0D4 .Label_C0D4 al 00C0D4 .Label_C0D4
al 00C0F0 .Label_C0F0 al 00C0F0 .Label_C0F0
al 00C10F .Label_C10F al 00C10F .Label_C10F
al 00C10A .Label_C10A al 00C10A .Label_C10A
al 00C130 .Label_C130 al 00C130 .Label_C130
al 00C0B3 .Label_C0B3
al 00C0B3 .MainStateDispatch al 00C0B3 .MainStateDispatch
al 00C0AC .Label_C0AC
al 00C0A6 .Label_C0A6 al 00C0A6 .Label_C0A6
al 00C086 .Label_C086
al 00C086 .NmiHandler al 00C086 .NmiHandler
al 00C06E .Label_C06E al 00C06E .Label_C06E
al 00C06B .Label_C06B al 00C06B .Label_C06B
al 00C061 .Label_C061 al 00C061 .Label_C061
al 00C07C .Label_C07C al 00C07C .Label_C07C
al 00C056 .Label_C056 al 00C056 .Label_C056
al 00C054 .Label_C054
al 00C02C .Label_C02C al 00C02C .Label_C02C
al 00C01E .Label_C01E al 00C01E .Label_C01E
al 00C002 .Label_C002 al 00C002 .Label_C002