- Apply symbols.inc hardware register names to Defender 2 (U) (51 operands)
- Apply symbols.inc hardware register names to Donkey Kong 3 (JUE) (36 operands)
- Add APU register symbols (-) to Defender 2 (U) and Donkey Kong 3 (JUE) symbols.inc
- Apply symbols to Donkey Kong Jr. Math (U) (80 operands: 11 single + 69 hardware)
- Apply symbols to Excitebike (JU) (786 operands: 785 single + 1 hardware)
- Add promotion criteria to PROMPTS.md: symbol/local substitution,
ROM-specific semantic naming, and verification checklist
Add branch/jump target naming requirement to PROMPTS.md
All branches and jumps must target symbolic labels with descriptive names
derived from program flow role (e.g., _Loop, _Next, _Done, _Store, _Return),
never raw address literals. Adds criterion 8 to verification checklist.
Rename all OVERVIEW.md to README.md; add root README content to top-level
- Rename all OVERVIEW.md files to README.md throughout the repo (47 files)
- Prepend README.md content to top-level OVERVIEW.md before rename
- Fix apply_symbols.py NAME_RE regex to handle spaced assignments
- Apply symbols.inc to Defender 2 (U) (51 hardware operands)
- Apply symbols.inc to Donkey Kong 3 (JUE) (36 hardware operands)
- Apply symbols.inc to Donkey Kong Jr. Math (U) (80 operands: 11 single + 69 hardware)
- Apply symbols.inc to Excitebike (JU) (786 operands: 785 single + 1 hardware)
- Add missing Zp18/FrameCounter aliases to Excitebike prg.s
- Build all 27 top-level projects: byte-identical
Promote Donkey Kong Jr. Math back to _wip tier
Moves code from `copilot` folder and verifies each builds after
Add pre-commit hook for byte-identical verification
Add .git/hooks/pre-commit that runs 'make' then 'make clean' in each
project directory before committing. This ensures every project builds
byte-identical before any commit is accepted.
Also includes all file moves from the Donkey Kong Jr. Math (U) demotion
and other file restructuring from the session.
moves code out of copilot folder, its all AI generated.
Moves NROM games into NROM folder
removes copilot folder from Lunar Pool
Adds makefile to build all projects recursively
Updates docs to reflect changes in layout
Repromotes Donkey Kong Jr Math
Repromotes Excitebike
Promotes Popeye (JU) (PRG 1)
Updates Makefile to provide summary of build failure/success
Promote Raid on Bungeling Bay (U): Pass 2/3 partial, whole-ROM byte-identical
Move _wip/NROM/Raid on Bungeling Bay (U) to NROM/ and switch the build
from a PRG-only compare to a whole-ROM one:
- header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
- linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
areas ahead of PRG ($C000, $4000)
- rom.nes symlink to the space-containing original ROM name
- Makefile builds header.o/prg.o/chr.o into reconstructed.nes and
compares it against rom.nes ('Byte-identical ROM verified.')
- one leftover neutral indirect operand jmp (Zp01) at $E2EC becomes
jmp (IndDispatch01); apply_symbols.py reports 0 substitutions pending
README.md / TODO.md / AGENTS.md updated: 29 promoted, 7 in _wip/.
Pac-Man (U): Pass 2 complete (label renaming) + Pass 3 partial (ZP aliases, table names)
Pass 2 — fresh map derived from the committed split, not from any drafted
map (the drafted maps in other projects were audited and found not
applicable):
- all 194 address-derived Label_XXXX definitions renamed to semantic
routine-entry names plus <Routine>_<Role>_<addr> internal branch
targets; zero Label_ remains
- all 49 jsr/jmp call sites resolved from raw $XXXX to labels; zero
raw $XXXX call operands remain
- routinemap.tsv / derived_names.tsv record the derivation
Pass 3 (partial):
- 15 proven semantic zero-page aliases added to locals.inc
(GameState, NmiFlag, ScrollX/Y, PpuCtrlShadow, OamDmaPage,
CocktailModeFlag, ActivePlayerFlag, GameplaySuspended, FrameCounter,
StateTimer, Player1/2Input, ActiveInput, CopyrightVerified)
- 112 operands substituted into prg.s (11 single + 101 hardware)
- key data tables named: ProgrammerSig ($C0EB), GameStateDispatchTable
($C253), TitleScreenData ($C2FD), EntityPtrTable ($D912),
AudioCommandTable ($EFDD)
Also corrects the README's claim that the RESET vector points at padding:
$FF00 holds real boot code (sei/cld, PPU off, double vblank wait, then
jmp ColdStart at $C042).
.gitignore: ignore reconstructed_prg.bin (build artifact of the _wip
Makefiles; '**/reconstructed.*' does not match the underscore form).
Promote Pac-Man (U): Pass 2/3 complete, whole-ROM byte-identical
Move _wip/NROM/Pac-Man (U) to NROM/ and switch the build from a PRG-only
compare to a whole-ROM one:
- header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
- linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
areas ahead of PRG ($C000, $4000)
- rom.nes symlink to 'Pac-Man (U) [!].nes' (the original ROM name
contains a space and brackets)
- Makefile builds header.o/prg.o/chr.o into reconstructed.nes and
compares it against rom.nes
- reconstructed.nes is 24,592 bytes, MD5 a69d310f8cae9397fbd39f204672b5c7
- equal to the original ROM; the header/prg/chr splits were checked
against the original before promotion and are byte-exact
Pass 3 residue closed. The last 7 multi-alias zero-page operands are
resolved per site through a new sites.tsv, each proven from context
rather than guessed:
- jmp ($0010) at $C250/$D3CA/$D90F/$D9B6 -> (DispatchPtrLo); each
is immediately preceded by sta DispatchPtrLo/sta DispatchPtrHi
- jmp ($00FE) at $EFDA -> (AudioHandlerPtrLo); preceded by
sta AudioHandlerPtrLo/sta AudioHandlerPtrHi
- sta a:$0000,y at $C048/$C089 -> a:Zp00,y; the literal zero-page
base in the two ZP clear loops, so the neutral name is used rather
than the semantic WorkPtrLo. The 'a:' prefix survives the
substitution, so the bytes stay 99 00 00 (sta abs,Y)
apply_symbols.py now reports 119 operands substituted (101 hardware,
11 single-name, 7 site) and 0 residue.
New tool _tools/align_audit_comments.py: re-aligns the audit comment to
column 35 after a substitution lengthens an operand (nesdis.py pads each
instruction to 31 characters). Whitespace-only, so the byte identity
cannot change. 405 lines re-aligned in this project; all 2,387 audit
comments still match prg.bin at the stated PRG offset, 0 mismatches.
Docs: root README.md / TODO.md / AGENTS.md updated - 30 promoted, 6 in
_wip/; a per-project detail entry for Pac-Man (U) added; the stale
'Donkey Kong 3 (JUE) has no README.md' claim corrected (it has a
318-line one).
Promote Raid on Bungeling Bay (U) [a2]: Pass 3 complete, whole-ROM byte-identical
Move _wip/NROM/Raid on Bungeling Bay (U) [a2] to NROM/ and switch the build
from a PRG-only compare to a whole-ROM one:
- header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
- linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
areas ahead of PRG ($C000, $4000)
- rom.nes symlink to 'Raid on Bungeling Bay (U) [a2].nes' (the original
ROM name contains spaces and brackets)
- reconstructed.nes is 24,592 bytes, MD5 659d340a1e9d420eee28df13319b0094
- equal to the original ROM; the header/prg/chr splits were checked
against the original before promotion and are byte-exact
Pass 3 - 15 semantic zero-page aliases, each applied only at the sites
where its role is proven:
- PpuCtrlShadow ($C2), 15 sites: the reset entry primes it right after
'sta PPUCTRL', and every other use is an ora/and/eor followed by
'sta PPUCTRL'
- NmiPathSelector ($C4), 5 sites: written 1 at $C3E9 and 0 at $C962
- GameState ($D6), 6 sites: 'cmp #$02' and used as an index at $C4C7
- FrameSubCounter ($55), 6 sites: set to $0A at $C520, decremented per
NMI at $C07B
- PrngPeriodCounter ($EA) / PrngSeedB ($EB) / PrngState ($EC), 13 sites:
the PRNG state
- PtrLo ($00) / PtrHi ($01), 8 sites: the 16-bit pair $1C13 and $1610
compared at $E785/$E791
- IndDispatch01 ($01) / IndDispatch02 ($02), 3 sites: the computed
dispatch at $E2EC
- IndDispatch1B ($1B) / IndDispatch1C ($1C), 6 sites: the dispatch at
$E7A3
- IndDispatch17 ($17) / IndDispatch19 ($19): the dispatches at $E79D
and $E7A0
Addresses that carry two names keep the neutral ZpXX name where the other
role applies - $01 is PtrHi at the 16-bit compare and IndDispatch01 at the
dispatch; $17 is IndDispatch17 at the dispatch and Zp17 for the absolute
RAM $0017 store in the copy loop at $E895/$E8D0.
New tool _tools/apply_zp_aliases.py does the per-site substitution:
apply_symbols.py only rewrites *numeric* operands, so it cannot rename an
operand that is already written as a neutral ZpXX name. The tool keeps the
ca65 'a:' prefix (dropping it would turn 'sta a:Zp17,y' into a zero-page
store and change the bytes) and rewrites only the operand token, so the
audit comment survives byte for byte.
Naming correction in the promoted sibling. Finishing this dump showed that
$EA was misnamed 'VBlankWaitCounter': the routine at $C412 is the game's
pseudo-random generator (the classic eor/asl/php/lsr/plp/rol scrambler,
called from thirteen gameplay sites, twice in a row at $CDF4/$CDF9 with the
second result masked #$07), so $EA is the scrambler's phase counter.
Renamed PrngPeriodCounter in both dumps and named $EB/$EC PrngSeedB /
PrngState. The sibling's two 'sta a:IndDispatch17,y' operands were also
wrong - they are absolute stores to RAM $0017, not the dispatch pointer -
and are now 'a:Zp17,y', matching the file's 'a:' = absolute convention.
Audit-comment alignment re-done with _tools/align_audit_comments.py (1,040
lines here, 1,080 in the sibling). Both files still match prg.bin at every
stated PRG offset: 5,467 and 5,483 audit comments, 0 mismatches.
Docs: root README.md / TODO.md / AGENTS.md updated - 31 promoted, 5 in
_wip/; per-project detail entries added for both Raid dumps.
Promote Pac-Man (Tengen) (U): Pass 2/3 from scratch, whole-ROM byte-identical
Move _wip/NROM/Pac-Man (Tengen) (U) to NROM/ and switch the build from a
PRG-only compare to a whole-ROM one:
- header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
- linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
areas ahead of PRG ($C000, $4000)
- rom.nes symlink to 'Pac-Man (Tengen) (U) [!].nes'
- reconstructed.nes is 24,592 bytes, MD5 d34e7a74d8d2c231b6cc601210e28ad0
- equal to the original ROM; the header/prg/chr splits were checked
against the original before promotion and are byte-exact
Disassembled from scratch. No name, map or file was carried over from the
sibling 'Pac-Man (U)' dump; the map was derived from this dump's own
committed split and the two were only compared afterwards.
Pass 2 (new tool _tools/apply_pass2_map.py):
- all 194 Label_XXXX definitions renamed to semantic routine entries plus
<Routine>_<Role> branch targets; zero Label_ remains
- all 48 raw $XXXX jsr/jmp operands resolved to labels; zero raw $XXXX
call or branch operands remain
- the map is in routinemap.tsv
Pass 3:
- 30 semantic zero-page aliases, each applied only at the sites where its
role is proven (per-site choice in sites.tsv; the addresses that carry
two roles keep the neutral ZpXX name elsewhere). _tools/
derive_zp_aliases.py records how the set was derived, and locals.inc
records the reason for every remaining neutral slot
- 28 data tables named (new tool _tools/name_data_region.py), including
CharacterDataTable ($C66A) and CharacterNameStrings ($C67E), where the
ROM itself names Blinky, Pinky, Inky and Clyde - which is why the four
indexed entities are called ghosts and not 'actors'
- apply_symbols.py reports 0 substitutions pending and 0 residue
- audit-comment alignment re-done with _tools/align_audit_comments.py;
all 2,479 audit comments still match prg.bin at the stated PRG offset
Pass 1 correction - six command handlers recovered (new tool
_tools/recode_region.py). ScriptCommandTable ($EFDD) is read by the traced
instruction at $EFCC, and six of its entries point at $F00A, $F022, $F03A,
$F052, $F062 and $F072 - all of which the tracer had left as data, and two
of which it had mis-split across the 'jmp $EF61' at $F01F and $F04F.
Those 120 bytes are code here, decoded straight from the ROM; the six
handlers tile $F00A-$F081 exactly. The same gap exists in the promoted
'Pac-Man (U)' dump, which has not been corrected - recorded in both READMEs.
Residue (documented, not guessed): the unreached main game logic at
$C45A-$C55F is still .byte data. It is code - the tracer's own decoder
walks it cleanly and the dispatch table at $C511 points into it - but
nothing reaches it, so it cannot be entered without a guess. The same gap
exists in the promoted 'Pac-Man (U)' dump. Re-deriving it is a Pass 1 job;
a Mesen Code Data Logger capture is the tool the repo uses for it.
Docs: root README.md / TODO.md / AGENTS.md updated - 32 promoted, 4 in
_wip/; a per-project detail entry added for the Tengen dump.
Promote Pyramid (U): Pass 1 corrected, Pass 2/3 complete, whole-ROM byte-identical
Move _wip/NROM/Pyramid (U) to NROM/ and switch the build from a PRG-only
compare to a whole-ROM one:
- header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
- linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
areas ahead of PRG ($C000, $4000)
- rom.nes symlink to 'Pyramid (U) (Sachen).nes'
- reconstructed.nes is 24,592 bytes, MD5 aa285ff17f25dd05da5996b7466c59e2
- equal to the original ROM; the header/prg/chr splits were checked
against the original before promotion and are byte-exact
Pass 1 correction - the committed split was a strict subset of the correct
one. This game dispatches through 'jmp' trampoline tables that live
*inside* the data regions, and the tracer cannot follow a jmp there, so
828 bytes of code were still marked as data. Four such tables were found
($C01E 3 entries, $C02A 6, $C042 2, $C054 5) plus ten more entries at
$C000-$C01B; all sixteen targets decode as valid instructions. Seeding
them, the $C800 boot mainline and six further code starts recovers the
whole lot, plus a five-byte stub at $DF89 (lda $33 / jmp $DECB) that sat
in a hole between two routines. The re-trace loses NO committed code byte
and takes the split from 34.5% to 39.6% (3,130 instructions / 6,493 code
bytes). 'make regen' reproduces it, so the split stays verifiable.
Pass 2 - a fresh map derived from this dump's own committed split:
- 428 Label_XXXX definitions renamed; zero Label_ residue
- 320 raw $XXXX jsr/jmp operands resolved; zero raw $XXXX branch
operands remain
- 431 routine entries and the 32 data blocks named from the code
- the internal branch-target names are derived mechanically from the
branch that reaches them by the new _tools/derive_branch_names.py
(beq -> OnZero, bne -> OnNonzero, bcc/bcs -> the carry cases, a
backwards branch -> Loop)
- recorded in routinemap.tsv
Pass 3:
- 24 semantic zero-page aliases, each applied only where its role is
proven; the 57 slots that stay neutral are each listed with the reason
in locals.inc (the neutral set lives in zp_aliases.inc so that
'make regen' can rebuild locals.inc from prg.bin)
- 32 data tables named - TaskVectorTable1/2, LevelScriptData,
MusicPeriodTable, SoundEnvelopeTable, the actor tables - recorded in
data_region_names.tsv
- apply_symbols.py reports 0 substitutions pending and 0 residue; no
hardware register is left as a raw literal
- the audit comments are now canonical on every line, data included
(the old file carried only 'PRG:$xxxx' on its 1,358 data lines);
all 3,762 audit comments match prg.bin at their stated PRG offset
Kept as-is, not 'cleaned up':
- sta $4100 stays a raw operand. The iNES header claims mapper 0 but
the boot code writes past the NES register space; the ROM does not
explain it, so it is recorded rather than guessed
- the 'A'/'V' check on RAM $0120/$0121 and its seed/clear routines
are named for what they do, not for what they are for
- the ninth entry of the $C3A6 task vector table ($D820) is a junk
slot and stays data
Docs: root README.md / TODO.md / AGENTS.md updated - 33 promoted, 3 in
_wip/; a per-project detail entry added.
Hogan's Alley (JU): Pass 1 correction, Pass 2, Pass 3, promoted to NROM/
The light-gun game whose engine dispatches through *inline* tables:
`IndirectCall` at $C34D pops the return address of the `jsr` that called
it and reads a 16-bit handler pointer from the word that follows, so all
six handler tables ($C124 19 entries, $C219 4, $C89C 14, $CDD1 1, $D234 2,
$D3D6 14) live inside the code stream and the static tracer cannot follow
them.
Pass 1 correction. The committed split was a strict subset of the correct
one -- 41.8% of the PRG was classified as code. A fresh Mesen Code Data
Logger capture was merged with the four captures already in the folder
(hogans_merged.cdl, the OR of five per-byte flag arrays, 6,544 code bytes)
and _tools/cdl_reclass.py rewrote the split to match what the CPU actually
fetched: 1,216 bytes moved from data to code, five the other way, 59 labels
emitted. The split is now 49.1% code (3,950 instructions, 8,041 bytes).
The four branch targets the reclassifier could not prove were turned into
labels by the new _tools/resolve_raw_branches.py.
Pass 2. 206 routine entries hand-named from this dump's own code and 413
internal branch targets derived mechanically by _tools/derive_branch_names.py:
630 Label_XXXX definitions gone, 484 raw $XXXX call operands resolved, 15
call targets the tracer had never labelled given a label. Recorded in
routinemap.tsv. No SubC<addr> residue was needed -- every entry the engine
reaches is named after what it does.
Pass 3. 60 semantic zero-page aliases, each applied only where its role is
proven (zp_aliases.inc, zp_alias_sites.tsv); the slots that stay neutral are
each listed with the reason. All 34 data blocks named
(data_region_names.tsv). apply_symbols.py reports 1 residue: `sta a:$00B4,y`
at $C203, the same address as Zp40/ActorPalette but forced to absolute
addressing, so it must stay numeric.
Promotion. header.s, chr.s and a HEADER/PRG/CHR linker.cfg added, rom.nes
symlinked to the original ROM; the whole-ROM cmp passes on the first
promoted build. There is deliberately no `make regen` target: the Pass 1
split here is the static trace corrected by a CDL capture, and the base the
correction was applied to is not what the current _tools/nesdis.py
produces, so prg.s is the maintained source of truth.
Tools changed:
nesdis.py --split/--note/--provenance options, so a data
region can carry its own name and explanation;
a forced-data address is no longer reported as a
recovered routine entry
apply_pass2_map.py can create the label for a call target the tracer
left unlabelled; no longer double-labels it
apply_zp_aliases.py --at-file, an address-based per-site list
derive_branch_names.py keeps the map's own header instead of writing a
fixed one
resolve_raw_branches.py new: turns `bXX *+$NN` operands into labels
build_hogans_map.py new: the hand-written Pass 2 map builder
The existing regen pipelines (MUSCLE (U), Urban Champion (JU)) still
reproduce prg.s byte for byte.
Apply the symbols.inc register names at Pass 1; fix a dropped byte in cdl_reclass
nesdis.py now names the hardware registers as it renders the operands, so a
project's Pass 1 output already reads `lda PPUSTATUS` instead of `lda $2002`
and the Pass 3 apply_symbols.py step has nothing left to do for them.
* nesdis.py --symbols FILE reads a symbols.inc-style file and substitutes
the register names. Only unambiguous entries in the $2000-$4017 window
are used: $4017 is both JOY2 and APUFRAMECOUNTER, so it stays numeric
and apply_symbols.py reports it as multi-alias residue, exactly as
before. The default is the symbols.inc next to --out, so a new project
gets the names without asking; --no-symbols opts out.
* The renderer records the operand's numeric value on the Insn, because
operand_value() used to re-parse the operand text and could no longer
read a name.
* The controller bit masks in symbols.inc (PAD_A and friends) are
constants, not addresses, and are still never substituted.
MUSCLE (U) and Urban Champion (JU) keep --no-symbols: their committed
prg.s was produced with the registers named by the Pass 3 apply_symbols.py
step, and the columns in those files reflect the in-place substitution.
Adding the missing apply_symbols.py step to both regen pipelines makes
them reproduce their committed prg.s byte for byte again - neither did
before this change (MUSCLE was 440 lines out, Urban Champion 772).
cdl_reclass.py had a bug that cost a byte: a region whose last source row
straddled the region's end was replaced by a regeneration of the region
only, so the tail of that row was dropped. Mario Bros (JU) hit it at
$C595, where the rebuild came out one byte short and every label after it
shifted. A region now covers the whole rows it replaces.
pass2.py reflow takes an optional column argument; the default is
unchanged (the ';' lands on the same column as before).
Mario Bros (JU): Pass 1 correction, Pass 2, Pass 3, promoted to NROM/
A two-player platformer whose handler tables are *inline*: the pointers sit
in the middle of the code stream, right after the `jsr` that reads them, so
the static tracer could never follow them.
Pass 1 correction. The committed split was a strict subset of the correct
one -- only 72.0% of the PRG was classified as code. A Mesen Code Data
Logger capture of this ROM (mario_mesen.cdl, 10,915 code bytes) showed
1,010 bytes the tracer had left as data were code; two branch targets the
capture never reached ($E4CB and $E639) were forced with --override for 57
more, so 1,067 bytes moved from data to code and 22 moved the other way.
The split is now 78.4% code (6,210 instructions, 12,847 bytes). The three
branch targets the reclassifier could not prove were turned into labels by
_resolve_raw_branches.py, which now refuses to put a label on a `.byte` row.
Pass 2. 206 routine entries and 519 internal branch targets: 931
Label_XXXX definitions gone, 51 raw $XXXX call operands resolved and 12 call
targets the tracer had never labelled given a label. Zero SubC residue --
the 185 entries a previous session had left as address-derived residue were
all named from this dump's own code. Recorded in routinemap.tsv.
Pass 3. 25 semantic zero-page aliases, each applied only where its role is
proven (zp_aliases.inc); the slots that stay neutral are each listed with the
reason. 35 data tables named -- GameStateHandlerTable, EnemyBehaviourTable,
EnemyScriptTable, EnemyTypePointerTable, SoundRoutineTable,
NoteFrequencyTable and the rest -- and recorded in
data_region_names.tsv. apply_symbols.py reports 0 residue.
Promotion. header.s, chr.s and a HEADER/PRG/CHR linker.cfg added, rom.nes
symlinked to the original ROM; the whole-ROM cmp passes on the first
promoted build. There is deliberately no `make regen` target: the Pass 1
split here is the static trace corrected by a CDL capture, and the base the
correction was applied to is not what the current _tools/nesdis.py
produces, so prg.s is the maintained source of truth.
Tools:
apply_pass2_map.py renames a label of any spelling -- SubC<addr> is
the honest residue form -- and its references
follow it; one combined pattern, so a 16,000-line
file does not need a substitution per label
resolve_raw_branches.py refuses to label a data row
build_mario_map.py new: the hand-written Pass 2 map builder
Remove the old _wip/NROM/Mario Bros (JU) folder (promoted to NROM/)
Mario Bros (JU): add the promoted-tier header, CHR, rom.nes symlink and zero-page aliases
Moves _ROMS/<ROM> into _wip/<MAPPER>/<ROM>
Sync the docs and the skeleton tool with the 857-project _wip tier
The _wip/ tier now holds 857 projects across 30 mapper folders, all
building byte-identical for the whole ROM. README.md, TODO.md and
AGENTS.md still described the old 39-project tier, so bring them in line
with WIP.md, which carries the tier's index.
The tier is no longer 39 projects of NROM-256 with a 16/32 KB PRG:
only two projects have a 16 KB PRG, 151 have 32 KB, 523 have 128 KB and
one has 1.5 MB, so most of it is a banked mapper whose image does not fit
the 6502's address space. Those projects link their MEMORY areas at .nes
file offsets rather than CPU addresses, which is the only option and the
honest model; the 39 older projects keep the CPU-address layout because
their PRG really is one contiguous window.
make_skeleton.py gains the two layouts (--layout flat|cpu), the board
name for the mapper, and a fix for find_rom() mistaking the build
output reconstructed.nes for the source ROM.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
703 lines
33 KiB
Plaintext
703 lines
33 KiB
Plaintext
label Label_800E WaitForFirstPpuWarmup
|
|
label Label_8019 WaitForSecondPpuWarmup
|
|
label Label_802C InitializeGameState
|
|
label Label_803B InitializeGameState_OnNonzero_803B
|
|
label Label_8052 UpdateNametableFromStream
|
|
label Label_805B UpdateNametableFromStream_OnNonzero_805B
|
|
label Label_8066 UpdateNametableFromStream_OnZero_8066
|
|
label Label_806E UpdateNametableFromStream_OnNonnegative_806E
|
|
label Label_8077 UpdateNametableFromStream_OnZero_8077
|
|
label Label_807A UpdateNametableFromStream_OnZero_807A
|
|
label Label_8080 UpdateNametableFromStream_OnZero_8080
|
|
label Label_8094 UpdateNametableFromStream_OnZero_8094
|
|
label Label_80AC StartStageSequence
|
|
label Label_80E0 StartStageSequence_OnZero_80E0
|
|
label Label_8105 StartStageSequence_OnNonzero_8105
|
|
label Label_810A StartStageSequence_OnNonzero_810A
|
|
label Label_811A StartStageSequence_OnZero_811A
|
|
label Label_8132 UpdateFadeFlashSprites
|
|
label Label_8154 UpdateFadeFlashSprites_OnCarryClear_8154
|
|
label Label_8164 InitializeRound
|
|
label Label_8173 InitializeRound_OnCarryClear_8173
|
|
label Label_8187 InitializeRound_OnNonnegative_8187
|
|
label Label_8191 InitializeRound_OnNonzero_8191
|
|
label Label_8196 InitializeRound_OnNonnegative_8196
|
|
label Label_81A0 InitializeRound_OnNonzero_81A0
|
|
label Label_81D6 InitializeRound_OnCarryClear_81D6
|
|
label Label_81DA InitializeRound_OnCarryClear_81DA
|
|
label Label_81DE InitializeRound_OnCarryClear_81DE
|
|
label Label_81E0 InitializeRound_OnCarryClear_81E0
|
|
label Label_81E2 InitializeRound_JoinBranchPaths_81E2
|
|
label Label_8223 InitializeRound_OnNonzero_8223
|
|
label Label_8226 MainGameLoop
|
|
label Label_8232 MainGameLoop_OnZero_8232
|
|
label Label_8235 MainGameLoop_OnZero_8235
|
|
label Label_824D MainGameLoop_OnZero_824D
|
|
label Label_8255 MainGameLoop_OnNonzero_8255
|
|
label Label_8261 MainGameLoop_OnNonzero_8261
|
|
label Label_8267 MainGameLoop_OnNonnegative_8267
|
|
label Label_8284 MainGameLoop_OnZero_8284
|
|
label Label_828C MainGameLoop_OnNonzero_828C
|
|
label Label_8298 MainGameLoop_OnNonzero_8298
|
|
label Label_829E MainGameLoop_OnNonnegative_829E
|
|
label Label_82AC DivideBy20
|
|
label Label_82BE DivideBy20_OnNonzero_82BE
|
|
label Label_82DA DivideBy20_OnCarryClear_82DA
|
|
label Label_82E1 SilenceSoundChannels1And3
|
|
label Label_82ED SilenceSoundChannel3
|
|
label Label_82FA StartIntroMusic
|
|
label Label_82FF StartMusicSequence
|
|
label Label_832A UpdateHudTallyTiles
|
|
label Label_833E UpdateHudTallyTiles_OnZero_833E
|
|
label Label_8352 UpdateHudTallyTiles_OnZero_8352
|
|
label Label_8353 UpdateScoreTallyDigits
|
|
label Label_8372 WriteScoreTallyDigits
|
|
label Label_8374 WriteScoreTallyDigits_OnCarryClear_8374
|
|
label Label_8385 WriteScoreTallyDigits_OnZero_8385
|
|
label Label_8390 WriteScoreTallyDigits_OnNonzero_8390
|
|
label Label_8399 LoadOamShadowFromTable
|
|
label Label_839B LoadOamShadowFromTable_OnNonnegative_839B
|
|
label Label_83A7 UpdateActorPositions
|
|
label Label_83AB UpdateActorPositions_OnNonnegative_83AB
|
|
label Label_83D0 UpdateActorPositions_OnZero_83D0
|
|
label Label_83E1 UpdateActorPositions_OnCarryClear_83E1
|
|
label Label_841A UpdateActorPositions_OnZero_841A
|
|
label Label_8434 UpdateActorPositions_OnNonzero_8434
|
|
label Label_845C UpdateRoundTimers
|
|
label Label_848D UpdateRoundTimers_OnNonzero_848D
|
|
label Label_84A1 UpdateRoundTimers_OnZero_84A1
|
|
label Label_84B1 UpdateRoundTimers_OnNonzero_84B1
|
|
label Label_84B5 UpdateRoundTimers_OnNonzero_84B5
|
|
label Label_84E9 UpdateRoundTimers_OnCarrySet_84E9
|
|
label Label_84EE UpdateRoundTimers_OnNonzero_84EE
|
|
label Label_84F4 UpdateRoundTimers_OnCarryClear_84F4
|
|
label Label_850F UpdateRoundTimers_OnZero_850F
|
|
label Label_851C UpdateRoundTimers_OnCarrySet_851C
|
|
label Label_851F UpdateRoundTimers_OnNonzero_851F
|
|
label Label_8522 UpdateRoundTimers_OnCarrySet_8522
|
|
label Label_8564 UpdateRoundTimers_OnZero_8564
|
|
label Label_856C PlayRoundChangeMusic
|
|
label Label_858F PlayRoundChangeMusic_OnNonzero_858F
|
|
label Label_8596 UpdateScrollTarget
|
|
label Label_8598 UpdateScrollTargetAlt
|
|
label Label_85A3 UpdateScrollTargetAlt_OnZero_85A3
|
|
label Label_85A8 UpdateScrollTargetAlt_OnNonzero_85A8
|
|
label Label_85DA UpdateScrollTargetAlt_OnNonzero_85DA
|
|
label Label_85EC UpdateScrollTargetAlt_JoinBranchPaths_85EC
|
|
label Label_8639 BeginVblankFrame
|
|
label Label_8644 ForceRenderingOff
|
|
label Label_8653 SetRenderingOffAndSignalVblank
|
|
label Label_865D UpdateRoundLogic
|
|
label Label_8682 UpdateRoundLogic_OnNonzero_8682
|
|
label Label_86A0 UpdateRoundLogic_JoinBranchPaths_86A0
|
|
label Label_86AA UpdateRoundLogic_JoinBranchPaths_86AA
|
|
label Label_86AD UpdateRoundLogic_OnNegative_86AD
|
|
label Label_86D8 NmiHandler_OnZero_86D8
|
|
label Label_86E3 NmiHandler_OnNonzero_86E3
|
|
label Label_86FA NmiHandler_OnZero_86FA
|
|
label Label_8703 NmiHandler_OnNegative_8703
|
|
label Label_8709 NmiHandler_OnZero_8709
|
|
label Label_8728 NmiHandler_OnCarrySet_8728
|
|
label Label_872F NmiHandler_OnNonzero_872F
|
|
label Label_8742 NmiHandler_OnNonzero_8742
|
|
label Label_8751 FinishNmiUpdates
|
|
label Label_8759 FinishNmiRegisters
|
|
label Label_8765 SetSoundSequenceChannel1
|
|
label Label_877C RunGameStateDispatcher
|
|
label Label_8787 RunGameStateDispatcher_JoinBranchPaths_8787
|
|
label Label_8795 RunGameStateDispatcher_OnNonzero_8795
|
|
label Label_87BF UpdateTimersAlt
|
|
label Label_87D1 PollControllerStart
|
|
label Label_87F1 PollControllerStart_JoinBranchPaths_87F1
|
|
label Label_87F2 UpdateFlashCounter
|
|
label Label_8801 UpdateFlashCounter_OnZero_8801
|
|
label Label_8803 UpdateFlashCounter_OnNonzero_8803
|
|
label Label_8819 UpdateFlashCounter_OnCarryClear_8819
|
|
label Label_8837 PlayDeathSequence
|
|
label Label_8848 PollControllerBits
|
|
label Label_885A PollControllerBits_JoinBranchPaths_885A
|
|
label Label_885B PollControllerAndAdvance
|
|
label Label_886C PollControllerBitsAlt
|
|
label Label_887C SignalVblankComplete
|
|
label Label_8881 SignalVblankComplete_JoinBranchPaths_8881
|
|
label Label_8882 PollControllerAndCheckRound
|
|
label Label_888D PollControllerAndCheckRound_OnZero_888D
|
|
label Label_8899 PollControllerAndCheckRound_OnCarrySet_8899
|
|
label Label_889D PollControllerAndCheckRound_OnNonzero_889D
|
|
label Label_88A4 BuildOamList
|
|
label Label_88AE BuildOamList_OnNonzero_88AE
|
|
label Label_88B0 EmitOamEntry
|
|
label Label_88EB EmitOamBlankEntry
|
|
label Label_88F3 EmitOamBlankEntry_JoinBranchPaths_88F3
|
|
label Label_88F4 EmitOamBlankEntry_OnZero_88F4
|
|
label Label_88F9 EmitOamFromTable
|
|
label Label_88FF EmitOamAtOffset
|
|
label Label_8909 EmitOamAtOffset_OnZero_8909
|
|
label Label_890F EmitOamAtOffset_JoinBranchPaths_890F
|
|
label Label_891B EmitOamAtOffset_OnZero_891B
|
|
label Label_892A EmitOamAtOffset_OnNonzero_892A
|
|
label Label_8936 FindFreeOamSlot
|
|
label Label_8938 FindFreeOamSlot_OnNonnegative_8938
|
|
label Label_8942 FindFreeOamSlot_OnZero_8942
|
|
label Label_8943 FindFreeOamSlot_JoinBranchPaths_8943
|
|
label Label_896A FindFreeOamSlot_JoinBranchPaths_896A
|
|
label Label_896B FindFreeOamSlot_OnZero_896B
|
|
label Label_897F FindFreeOamSlot_OnNonzero_897F
|
|
label Label_8986 CompactOamList
|
|
label Label_898A CompactOamList_OnNonnegative_898A
|
|
label Label_899D CompactOamList_OnZero_899D
|
|
label Label_899F CompactOamList_OnNonzero_899F
|
|
label Label_89A8 CompactOamList_OnZero_89A8
|
|
label Label_89AC CompactOamList_OnZero_89AC
|
|
label Label_89B0 CompactOamList_OnCarryClear_89B0
|
|
label Label_89B2 CompactOamList_OnNonzero_89B2
|
|
label Label_89B5 CompactOamList_OnNonzero_89B5
|
|
label Label_89B8 CompactOamList_OnNonzero_89B8
|
|
label Label_89CE ReadControllerAndInit
|
|
label Label_89EE ReadControllerAndInit_OnCarryClear_89EE
|
|
label Label_89F7 ReadControllerAndInit_OnNonzero_89F7
|
|
label Label_8A28 UpdateStageActors
|
|
label Label_8A5D UpdateStageActors_JoinBranchPaths_8A5D
|
|
label Label_8A5E SpawnStageActors
|
|
label Label_8A68 SpawnStageActors_OnCarryClear_8A68
|
|
label Label_8A74 SpawnStageActors_OnZero_8A74
|
|
label Label_8A84 SpawnStageActors_OnNonzero_8A84
|
|
label Label_8A93 SpawnStageActors_OnZero_8A93
|
|
label Label_8AA4 SpawnStageActors_JoinBranchPaths_8AA4
|
|
label Label_8AA5 SpawnStageActors_OnZero_8AA5
|
|
label Label_8AE1 SpawnStageActors_JoinBranchPaths_8AE1
|
|
label Label_8AE8 UpdateAttributeTable
|
|
label Label_8B07 ClearScrollLatch
|
|
label Label_8B0D ClearScrollLatch_OnNonzero_8B0D
|
|
label Label_8B20 WriteNametableTile
|
|
label Label_8B25 WriteNametableTile_OnNonzero_8B25
|
|
label Label_8B33 ClearAttributeRegion
|
|
label Label_8B37 ClearAttributeRegion_JoinBranchPaths_8B37
|
|
label Label_8B3B ClearAttributeRegion_OnNonnegative_8B3B
|
|
label Label_8B5F ClearAttributeRegion_OnCarryClear_8B5F
|
|
label Label_8B67 ClearAttributeRegion_OnZero_8B67
|
|
label Label_8B6D ClearAttributeRegion_JoinBranchPaths_8B6D
|
|
label Label_8B92 RenderHudDigits
|
|
label Label_8BBA RenderHudDigits_OnNonzero_8BBA
|
|
label Label_8BEF RenderHudDigitDescriptor
|
|
label Label_8BF8 SetRenderingOn
|
|
label Label_8BFF SetRenderingOn_OnNonnegative_8BFF
|
|
label Label_8C05 AdvanceAnimationSlot
|
|
label Label_8C0E QueueVramTransfer
|
|
label Label_8C11 QueueVramTransferAlt
|
|
label Label_8C3A QueueVramTransferAlt_OnNonnegative_8C3A
|
|
label Label_8C55 QueueVramTransferAlt_OnNonzero_8C55
|
|
label Label_8C65 ExecuteVramTransfer
|
|
label Label_8C72 ExecuteVramTransfer_OnNonzero_8C72
|
|
label Label_8C98 ExecuteVramTransfer_OnZero_8C98
|
|
label Label_8CB8 QueueVramDescriptor
|
|
label Label_9287 QueueVramDescriptor_Entry_9287
|
|
label Label_928D QueueVramDescriptor_JumpNext_928D
|
|
label Label_9293 QueueVramDescriptor_JumpNext_9293
|
|
label Label_929F QueueVramDescriptor_OnNonzero_929F
|
|
label Label_92AF QueueVramDescriptor_OnNonzero_92AF
|
|
label Label_92B2 QueueVramDescriptor_JumpNext_92B2
|
|
label Label_92CD QueueVramDescriptor_JumpNext_92CD
|
|
label Label_92E8 QueueVramDescriptor_OnZero_92E8
|
|
label Label_9329 QueueVramDescriptor_OnZero_9329
|
|
label Label_932C QueueVramDescriptor_JumpNext_932C
|
|
label Label_934B UpdateActorX
|
|
label Label_9354 UpdateActorX_JumpNext_9354
|
|
label Label_9371 UpdateActorTile
|
|
label Label_9374 UpdateActorTileAlt
|
|
label Label_937C UpdateActorTileAlt_JumpNext_937C
|
|
label Label_93A4 UpdateActorTileAlt_JumpNext_93A4
|
|
label Label_93C4 UpdateActorTileAlt_OnCarrySet_93C4
|
|
label Label_93CC UpdateActorTileAlt_JumpNext_93CC
|
|
label Label_93D0 UpdateActorTileAlt_OnZero_93D0
|
|
label Label_93D3 UpdateActorTileAlt_OnNonzero_93D3
|
|
label Label_9401 UpdateActorTileAlt_OnCarrySet_9401
|
|
label Label_9409 UpdateActorTileAlt_JumpNext_9409
|
|
label Label_941B UpdateActorTileAlt_JumpNext_941B
|
|
label Label_942C UpdateActorTileAlt_OnNegative_942C
|
|
label Label_9441 UpdateActorTileAlt_OnNonnegative_9441
|
|
label Label_9450 UpdateActorTileAlt_OnNonzero_9450
|
|
label Label_9451 UpdateActorTileAlt_OnCarrySet_9451
|
|
label Label_9454 UpdateActorTileAlt_OnCarryClear_9454
|
|
label Label_945B UpdateActorTileAlt_OnNegative_945B
|
|
label Label_9465 UpdateActorTileAlt_JumpNext_9465
|
|
label Label_946D UpdateActorTileAlt_JumpNext_946D
|
|
label Label_9477 UpdateActorTileAlt_JumpNext_9477
|
|
label Label_947D UpdateActorTileAlt_OnZero_947D
|
|
label Label_9480 UpdateActorTileAlt_JumpNext_9480
|
|
label Label_948F UpdateActorTileAlt_JumpNext_948F
|
|
label Label_9499 UpdateActorTileAlt_JumpNext_9499
|
|
label Label_94AA UpdateActorTileAlt_OnZero_94AA
|
|
label Label_94AD UpdateActorTileAlt_JumpNext_94AD
|
|
label Label_94B1 TestPlayerFacing
|
|
label Label_94C0 TestPlayerFacing_JumpNext_94C0
|
|
label Label_94C7 SelectActorSlot
|
|
label Label_94C8 SelectActorSlotAlt
|
|
label Label_94CF ClearActorPosition
|
|
label Label_94D7 ClearActorFields
|
|
label Label_94F3 ClearActorFields_JoinBranchPaths_94F3
|
|
label Label_94F6 ClearActorFields_OnNonzero_94F6
|
|
label Label_94FE SetActorFlag
|
|
label Label_950B SetActorFlag_JumpNext_950B
|
|
label Label_9513 SetActorFlag_JumpNext_9513
|
|
label Label_951F SetActorFlag_OnNonzero_951F
|
|
label Label_9522 SetActorFlag_JumpNext_9522
|
|
label Label_9535 SetActorFlag_OnNonzero_9535
|
|
label Label_9541 SetActorFlag_Return_9541
|
|
label Label_9551 SetActorFlag_OnNonzero_9551
|
|
label Label_9559 SetActorFlag_JumpNext_9559
|
|
label Label_9585 UpdateActorState
|
|
label Label_9590 UpdateActorState_OnNonzero_9590
|
|
label Label_95A5 UpdateActorState_OnCarryClear_95A5
|
|
label Label_95AE ComputeActorLeftEdge
|
|
label Label_95B8 ComputeActorLeftEdge_OnNonzero_95B8
|
|
label Label_95C9 ComputeActorLeftEdge_OnCarryClear_95C9
|
|
label Label_95D2 ComputeActorRightEdge
|
|
label Label_95D9 CompareActorToLimit
|
|
label Label_95DC CompareActorToLimit_Return_95DC
|
|
label Label_95E3 CompareActorToLimit_OnNonzero_95E3
|
|
label Label_9628 CompareActorToLimit_OnCarrySet_9628
|
|
label Label_963C CompareActorToLimit_OnCarrySet_963C
|
|
label Label_963E CompareActorToLimit_OnNonnegative_963E
|
|
label Label_9641 CompareActorToLimit_OnZero_9641
|
|
label Label_9644 CompareActorToLimit_JumpNext_9644
|
|
label Label_9653 SetActorTileFromPalette
|
|
label Label_9664 SetActorTileFromPalette_OnNonzero_9664
|
|
label Label_9667 StoreActorTile
|
|
label Label_966D StoreActorTile_Return_966D
|
|
label Label_9679 StoreActorTile_OnNegative_9679
|
|
label Label_968E StoreActorTile_OnNonnegative_968E
|
|
label Label_969D StoreActorTile_OnNonzero_969D
|
|
label Label_969E AdvanceActorCounter
|
|
label Label_96A6 AdvanceActorCounter_OnCarryClear_96A6
|
|
label Label_96AA SetActorTileValue
|
|
label Label_96B3 SetActorTileValue_OnNonzero_96B3
|
|
label Label_96B9 SetActorTileValue_OnNegative_96B9
|
|
label Label_96BC SetActorTileValue_JumpNext_96BC
|
|
label Label_96C2 SetActorTileValue_Continue_96C2
|
|
label Label_96C8 TestActorCollisionFlag
|
|
label Label_96CC TestActorCollisionFlag_OnZero_96CC
|
|
label Label_96CE TestActorCollisionFlag_OnZero_96CE
|
|
label Label_96EE TestActorCollisionFlag_OnCarryClear_96EE
|
|
label Label_96F7 ComputeActorLeftEdgeAlt
|
|
label Label_9701 ComputeActorLeftEdgeAlt_OnNonzero_9701
|
|
label Label_9719 ComputeActorLeftEdgeAlt_OnCarryClear_9719
|
|
label Label_9722 ComputeActorRightEdgeAlt
|
|
label Label_9729 TestActorRange
|
|
label Label_9731 TestActorRange_OnCarrySet_9731
|
|
label Label_9732 MoveActorByStep
|
|
label Label_975D MoveActorByStep_OnCarrySet_975D
|
|
label Label_975E MoveActorByStep_Return_975E
|
|
label Label_9766 MoveActorByStep_OnCarryClear_9766
|
|
label Label_979A MoveActorByStep_OnNonzero_979A
|
|
label Label_97A0 MoveActorByStep_OnNonzero_97A0
|
|
label Label_97BC SetActorAnimation63
|
|
label Label_97C0 SetActorAnimation62
|
|
label Label_97C4 SetActorAnimation61
|
|
label Label_97C6 SetActorAnimation61_OnNonzero_97C6
|
|
label Label_97D5 UpdateActorAnimation
|
|
label Label_97FB UpdateActorAnimation_OnZero_97FB
|
|
label Label_97FC TestAnimationSlot
|
|
label Label_9800 TestAnimationSlot_JoinBranchPaths_9800
|
|
label Label_9802 TestAnimationSlot_OnNonzero_9802
|
|
label Label_981C TestAnimationSlot_OnCarryClear_981C
|
|
label Label_982A ComputeActorLeftEdgeAt
|
|
label Label_9834 ComputeActorLeftEdgeAt_OnNonzero_9834
|
|
label Label_984A ComputeActorLeftEdgeAt_OnCarryClear_984A
|
|
label Label_9858 ComputeActorRightEdgeAt
|
|
label Label_985F TestActorValue
|
|
label Label_986A TestActorValue_Return_986A
|
|
label Label_9875 TestActorValue_OnCarryClear_9875
|
|
label Label_98A7 TestActorValue_OnCarryClear_98A7
|
|
label Label_98AA TestActorValue_JoinBranchPaths_98AA
|
|
label Label_98AD TestActorValue_JoinBranchPaths_98AD
|
|
label Label_98B0 TestActorValue_JumpNext_98B0
|
|
label Label_98B7 TestActorValue_OnNonzero_98B7
|
|
label Label_98BE TestActorValue_JoinBranchPaths_98BE
|
|
label Label_98C1 TestActorValue_OnNonzero_98C1
|
|
label Label_98D8 TestActorValue_OnCarryClear_98D8
|
|
label Label_98E6 ComputeActorLeftEdgeAlt2
|
|
label Label_98F0 ComputeActorLeftEdgeAlt2_OnNonzero_98F0
|
|
label Label_9903 ComputeActorLeftEdgeAlt2_OnCarryClear_9903
|
|
label Label_9911 UpdateActorTileFromIndex
|
|
label Label_9918 UpdateActorTileFromIndexAlt
|
|
label Label_9948 UpdateActorTileFromIndexAlt_JoinBranchPaths_9948
|
|
label Label_994B UpdateActorTileFromIndexAlt_JumpNext_994B
|
|
label Label_996E UpdateActorTileFromIndexAlt_JumpNext_996E
|
|
label Label_997C UpdateActorTileFromIndexAlt_JumpNext_997C
|
|
label Label_9989 UpdateActorTileFromIndexAlt_OnNonzero_9989
|
|
label Label_9994 UpdateActorTileFromIndexAlt_OnNonzero_9994
|
|
label Label_99A0 UpdateActorTileFromIndexAlt_OnNonzero_99A0
|
|
label Label_99A3 SetSoundSequenceChannel2
|
|
label Label_99B0 SetSoundSequenceChannel2_Return_99B0
|
|
label Label_99B7 SetSoundSequenceChannel2_JumpNext_99B7
|
|
label Label_99D7 SetSoundSequenceChannel2_OnNegative_99D7
|
|
label Label_99E2 LookupActorTileId
|
|
label Label_99E4 LookupActorTileIdAlt
|
|
label Label_9A02 LookupActorTileIdAlt_OnCarryClear_9A02
|
|
label Label_9A24 StoreActorCoordinates
|
|
label Label_9A2E StoreActorCoordinatesAlt
|
|
label Label_9A36 StoreActorCoordinatesAlt_OnNonnegative_9A36
|
|
label Label_9A3F FlipActorFacing
|
|
label Label_9A4E SpawnActorPair
|
|
label Label_9A6B SpawnActorPairAlt
|
|
label Label_9ABC SpawnActorPairAlt_OnNonzero_9ABC
|
|
label Label_9ACE SpawnActorPairAlt_OnNonzero_9ACE
|
|
label Label_9AD3 SpawnActorPairAlt_JoinBranchPaths_9AD3
|
|
label Label_9AD8 SpawnActorPairAlt_OnNonzero_9AD8
|
|
label Label_9AE8 RunBytecodeInterpreter
|
|
label Label_9B05 DispatchThroughPointer
|
|
label Label_9B08 DispatchThroughPointer_JoinBranchPaths_9B08
|
|
label Label_9B18 DispatchThroughPointer_OnNonzero_9B18
|
|
label Label_9B25 RunBytecodeProgram
|
|
label Label_9B4C RunBytecodeProgram_OnNonnegative_9B4C
|
|
label Label_9B64 RunBytecodeProgram_OnNonnegative_9B64
|
|
label Label_9B72 RunBytecodeProgram_OnNonnegative_9B72
|
|
label Label_9BA1 RunBytecodeProgram_OnZero_9BA1
|
|
label Label_9BB0 RunBytecodeProgram_OnNonzero_9BB0
|
|
label Label_9BB4 RunBytecodeProgram_OnNonzero_9BB4
|
|
label Label_9BD9 RunBytecodeProgram_OnNonzero_9BD9
|
|
label Label_9BDD RunBytecodeProgram_OnNonzero_9BDD
|
|
label Label_9BF3 RunBytecodeProgram_OnCarryClear_9BF3
|
|
label Label_9C2C RunBytecodeProgram_OnZero_9C2C
|
|
label Label_9C2E RunBytecodeProgram_OnNonnegative_9C2E
|
|
label Label_9C4C RunBytecodeProgram_OnNonnegative_9C4C
|
|
label Label_9C52 RunBytecodeProgram_OnNonnegative_9C52
|
|
label Label_9C66 RunBytecodeProgram_OnCarryClear_9C66
|
|
label Label_9C71 RunBytecodeProgram_OnZero_9C71
|
|
label Label_9C73 RunBytecodeProgram_JoinBranchPaths_9C73
|
|
label Label_9C84 RunBytecodeProgram_OnNonzero_9C84
|
|
label Label_9C8D RunBytecodeProgram_OnCarryClear_9C8D
|
|
label Label_9C91 RunBytecodeProgram_JoinBranchPaths_9C91
|
|
label Label_9CAD RunBytecodeProgram_Return_9CAD
|
|
label Label_9CBB ResetBytecodeState
|
|
label Label_9CDB ResetBytecodeState_OnCarryClear_9CDB
|
|
label Label_9CE5 ResetBytecodeState_OnCarryClear_9CE5
|
|
label Label_9D04 ResetBytecodeState_OnNonnegative_9D04
|
|
label Label_9D0D ResetBytecodeState_OnCarrySet_9D0D
|
|
label Label_9D10 ResetBytecodeState_OnNonzero_9D10
|
|
label Label_9D39 ResetBytecodeState_OnZero_9D39
|
|
label Label_9D4A ResetBytecodeState_OnZero_9D4A
|
|
label Label_9D4E CopyActorCoordinates
|
|
label Label_9D61 CopyActorCoordinates_OnCarryClear_9D61
|
|
label Label_9DA2 CopyActorCoordinates_OnNonzero_9DA2
|
|
label Label_9DB6 CopyActorCoordinates_OnZero_9DB6
|
|
label Label_9DBB CopyActorCoordinates_OnNonzero_9DBB
|
|
label Label_9DD0 CopyActorCoordinates_OnCarryClear_9DD0
|
|
label Label_9DD4 CopyActorCoordinates_OnCarryClear_9DD4
|
|
label Label_9DD6 SetActorBounds
|
|
label Label_9DE6 LoadActorTileIndex
|
|
label Label_9E02 LoadActorTileIndex_OnCarrySet_9E02
|
|
label Label_9E19 LoadActorTileIndex_OnZero_9E19
|
|
label Label_9E37 LoadActorTileIndex_OnNonzero_9E37
|
|
label Label_9E4B LoadActorTileIndex_OnZero_9E4B
|
|
label Label_9E50 LoadActorTileIndex_OnNonzero_9E50
|
|
label Label_9E65 LoadActorTileIndex_OnCarryClear_9E65
|
|
label Label_9E69 LoadActorTileIndex_OnCarryClear_9E69
|
|
label Label_9E6B LoadActorTileIndex_OnNonzero_9E6B
|
|
label Label_9E6E UpdateActorFacing
|
|
label Label_9E7F QueueNametableWrite
|
|
label Label_9E87 QueueNametableWrite_OnNonzero_9E87
|
|
label Label_9E89 QueueNametableWrite_OnNonnegative_9E89
|
|
label Label_9F14 FlushNametableWrite
|
|
label Label_9F2A FlushNametableWrite_JoinBranchPaths_9F2A
|
|
label Label_9F4B UpdateActorMovement
|
|
label Label_9F54 MoveActorByOpcode
|
|
label Label_9F7F MoveActorByOpcode_JoinBranchPaths_9F7F
|
|
label Label_9F83 MoveActorByOpcode_JoinBranchPaths_9F83
|
|
label Label_9FAC MoveActorByOpcode_OnCarryClear_9FAC
|
|
label Label_9FB8 MoveActorByOpcode_OnNonzero_9FB8
|
|
label Label_9FBA MoveActorByOpcode_JoinBranchPaths_9FBA
|
|
label Label_9FBB MoveActorByOpcode_Return_9FBB
|
|
label Label_9FC2 MoveActorByOpcode_Continue_9FC2
|
|
label Label_9FC9 MoveActorByOpcode_Continue_9FC9
|
|
label Label_9FD0 MoveActorByOpcode_Continue_9FD0
|
|
label Label_9FD7 MoveActorByOpcode_Continue_9FD7
|
|
label Label_9FDF AddToNametableValue
|
|
label Label_9FEF AddToNametableValue_Return_9FEF
|
|
label Label_9FFA AddToNametableValue_JumpNext_9FFA
|
|
label Label_A002 SubtractFromNametableValue
|
|
label Label_A012 SubtractFromNametableValue_Return_A012
|
|
label Label_A01D ProcessBytecodeOpcode
|
|
label Label_A060 ProcessBytecodeOpcode_OnCarrySet_A060
|
|
label Label_A062 ProcessBytecodeOpcode_JoinBranchPaths_A062
|
|
label Label_A07B ProcessBytecodeOpcode_JoinBranchPaths_A07B
|
|
label Label_A085 ComputeBytecodeOffset
|
|
label Label_A08B ComputeBytecodeOffset_OnNonzero_A08B
|
|
label Label_A09F ComputeBytecodeOffset_OnCarryClear_A09F
|
|
label Label_A0A5 ResetBytecodeAccumulator
|
|
label Label_A0AD ResetBytecodeAccumulator_OnNonzero_A0AD
|
|
label Label_A0C2 ResetBytecodeAccumulator_OnCarryClear_A0C2
|
|
label Label_A0C6 ResetBytecodeAccumulatorAlt
|
|
label Label_A0CE ResetBytecodeAccumulatorAlt_OnNonzero_A0CE
|
|
label Label_A0EC ResetBytecodeAccumulatorAlt_OnCarryClear_A0EC
|
|
label Label_A0F4 AdvanceBytecodeProgram
|
|
label Label_A0FB ResetBytecodeStateAlt
|
|
label Label_A105 ResetBytecodeStateAlt_OnNonzero_A105
|
|
label Label_A122 ResetBytecodeStateAlt_OnCarryClear_A122
|
|
label Label_A12E ComputeActorTileRow
|
|
label Label_A14F ComputeActorTileRow_OnNonnegative_A14F
|
|
label Label_A157 ComputeActorTileRow_JoinBranchPaths_A157
|
|
label Label_A15D ResetBytecodePointers
|
|
label Label_A165 ResetBytecodePointers_OnNonzero_A165
|
|
label Label_A179 ResetBytecodePointers_OnCarryClear_A179
|
|
label Label_A17F RunActorScript
|
|
label Label_A1A5 RunActorScript_OnCarrySet_A1A5
|
|
label Label_A1C3 RunActorScript_OnZero_A1C3
|
|
label Label_A1E3 RunActorScript_OnNonnegative_A1E3
|
|
label Label_A1F1 RunActorScript_OnNonnegative_A1F1
|
|
label Label_A201 RunActorScript_OnNonzero_A201
|
|
label Label_A246 RunActorScript_OnZero_A246
|
|
label Label_A250 LoadActorConfigByte
|
|
label Label_A253 ComputeActorConfigOffset
|
|
label Label_A25F CopyConfigBytes
|
|
label Label_A261 CopyConfigBytes_OnNonnegative_A261
|
|
label Label_A270 LoadActorConfigRecord
|
|
label Label_A28D LoadActorConfigRecord_JoinBranchPaths_A28D
|
|
label Label_A298 CompareConfigValue
|
|
label Label_A2BD CompareConfigValue_JoinBranchPaths_A2BD
|
|
label Label_A2C8 ReturnFromConfigLoad
|
|
label Label_A2C9 LoadActorConfigFields
|
|
label Label_A2D8 LoadActorConfigFields_OnZero_A2D8
|
|
label Label_A2EB LoadActorConfigFields_OnNegative_A2EB
|
|
label Label_A2F1 LoadActorConfigFields_OnNonzero_A2F1
|
|
label Label_A305 LoadActorConfigFields_OnZero_A305
|
|
label Label_A30B LoadActorConfigFields_OnNonzero_A30B
|
|
label Label_A316 StoreActorPaletteByte
|
|
label Label_A32A StoreActorPaletteByte_OnZero_A32A
|
|
label Label_A32C StoreActorControlByte
|
|
label Label_A334 StoreActorControlByte_OnZero_A334
|
|
label Label_A338 ReadActorConfigByte
|
|
label Label_A388 ReadActorConfigByte_JoinBranchPaths_A388
|
|
label Label_A3A5 ReadActorConfigByte_JoinBranchPaths_A3A5
|
|
label Label_A3B1 ReadActorConfigByte_OnNonzero_A3B1
|
|
label Label_A3C9 ReadActorConfigByte_OnCarrySet_A3C9
|
|
label Label_A3E9 ReadActorConfigByte_OnCarrySet_A3E9
|
|
label Label_A3F1 ReadActorConfigByte_OnNonzero_A3F1
|
|
label Label_A3FA ReadActorConfigByte_OnNonzero_A3FA
|
|
label Label_A406 ReadActorConfigByte_JoinBranchPaths_A406
|
|
label Label_A40A ReadActorConfigByte_OnCarrySet_A40A
|
|
label Label_A40D ReadActorConfigByte_OnNonzero_A40D
|
|
label Label_A418 ReadActorConfigByte_OnZero_A418
|
|
label Label_A423 ReadActorConfigByte_OnNonzero_A423
|
|
label Label_A428 ReadActorConfigByte_OnCarrySet_A428
|
|
label Label_A430 ReadActorConfigByte_JoinBranchPaths_A430
|
|
label Label_A435 CompareActorConfigValue
|
|
label Label_A44E CompareActorConfigValue_OnZero_A44E
|
|
label Label_A459 CompareActorConfigValue_OnZero_A459
|
|
label Label_A464 CompareActorConfigValue_OnZero_A464
|
|
label Label_A46D CompareActorConfigValue_OnNonzero_A46D
|
|
label Label_A46F StoreActorConfigResult
|
|
label Label_A475 StoreActorConfigResult_JoinBranchPaths_A475
|
|
label Label_A482 LoadActorConfigAlt
|
|
label Label_A48D LoadActorConfigAlt_OnZero_A48D
|
|
label Label_A49B LoadActorConfigAlt_OnZero_A49B
|
|
label Label_A49F StoreActorConfigResultAlt
|
|
label Label_A4A5 StoreActorConfigResultAlt_OnZero_A4A5
|
|
label Label_A4AA LoadActorFacingFlag
|
|
label Label_A4B5 LoadActorFacingFlag_OnNonzero_A4B5
|
|
label Label_A4BA LoadActorFacingFlag_OnCarryClear_A4BA
|
|
label Label_A4C2 LoadActorFacingFlag_JoinBranchPaths_A4C2
|
|
label Label_A4C7 LoadActorConfigBlock
|
|
label Label_A4DF TestSoundChannelState
|
|
label Label_A4F1 TestSoundChannelState_OnNonzero_A4F1
|
|
label Label_A4F2 SetSoundSequenceChannel2Alt
|
|
label Label_A4FF FlipObjectIndex
|
|
label Label_A508 LookupObjectIndex
|
|
label Label_A512 UpdateObjectSlots
|
|
label Label_A51B AdvanceObjectSlot
|
|
label Label_A522 AdvanceObjectSlot_OnNonzero_A522
|
|
label Label_A52D AdvanceObjectSlot_OnCarrySet_A52D
|
|
label Label_A532 AdvanceObjectSlot_OnCarryClear_A532
|
|
label Label_A583 AdvanceObjectSlot_OnNegative_A583
|
|
label Label_A5DD WriteNametableBytes
|
|
label Label_A5DF WriteNametableBytes_OnNonnegative_A5DF
|
|
label Label_A660 SetSoundSequenceChannel4
|
|
label Label_A67F SetSoundSequenceChannel4_OnZero_A67F
|
|
label Label_A68E UpdateObjectList
|
|
label Label_A695 UpdateObjectListEntry
|
|
label Label_A6BE UpdateObjectListEntry_OnNegative_A6BE
|
|
label Label_A6DF UpdateObjectListEntry_OnNonzero_A6DF
|
|
label Label_A6EB UpdateObjectListEntry_OnZero_A6EB
|
|
label Label_A6EF UpdateObjectListEntry_OnZero_A6EF
|
|
label Label_A6F8 UpdateObjectCollisions
|
|
label Label_A70D UpdateObjectCollisions_OnNonzero_A70D
|
|
label Label_A714 UpdateObjectCollisions_OnNonzero_A714
|
|
label Label_A728 UpdateObjectCollisions_OnNonzero_A728
|
|
label Label_A729 UpdateObjectCollisions_OnCarryClear_A729
|
|
label Label_A73D UpdateObjectCollisions_OnNonzero_A73D
|
|
label Label_A745 UpdateObjectCollisions_OnNonzero_A745
|
|
label Label_A758 UpdateObjectCollisions_OnNonzero_A758
|
|
label Label_A75D UpdateObjectCollisions_OnNonzero_A75D
|
|
label Label_A773 UpdateObjectCollisions_OnCarryClear_A773
|
|
label Label_A77F UpdateObjectCollisions_OnCarryClear_A77F
|
|
label Label_A78F UpdateObjectCollisions_JoinBranchPaths_A78F
|
|
label Label_A79B UpdateObjectCollisions_OnZero_A79B
|
|
label Label_A79C UpdateObjectCollisions_OnZero_A79C
|
|
label Label_A79F CheckObjectScroll
|
|
label Label_A7B0 CheckObjectScroll_OnNonzero_A7B0
|
|
label Label_A7B8 CheckObjectScroll_OnZero_A7B8
|
|
label Label_A7BF CheckObjectScroll_OnNonnegative_A7BF
|
|
label Label_A7CA CheckObjectScroll_OnNegative_A7CA
|
|
label Label_A7E1 CheckObjectScroll_OnNonzero_A7E1
|
|
label Label_A7E8 CheckObjectScroll_OnNonzero_A7E8
|
|
label Label_A7FD CheckObjectScroll_JoinBranchPaths_A7FD
|
|
label Label_A800 CheckObjectScroll_OnNonnegative_A800
|
|
label Label_A82F ClearScrollLatchAlt
|
|
label Label_A833 ClearScrollLatchAlt_OnCarryClear_A833
|
|
label Label_A834 UpdateObjectSprite
|
|
label Label_A842 UpdateObjectSprite_OnCarryClear_A842
|
|
label Label_A856 UpdateObjectSprite_OnCarrySet_A856
|
|
label Label_A862 UpdateObjectSprite_OnZero_A862
|
|
label Label_A884 SetObjectFlags
|
|
label Label_A89D SetObjectFlags_OnCarryClear_A89D
|
|
label Label_A8D1 AdvanceObjectFrame
|
|
label Label_A8E9 TestObjectActive
|
|
label Label_A8F9 TestObjectActive_OnNonzero_A8F9
|
|
label Label_A916 TestObjectActive_OnNonnegative_A916
|
|
label Label_A936 TestObjectActive_OnNonzero_A936
|
|
label Label_A949 UpdateObjectAnimations
|
|
label Label_A952 UpdateObjectAnimation
|
|
label Label_A982 UpdateObjectAnimation_OnCarryClear_A982
|
|
label Label_A991 UpdateObjectAnimation_JoinBranchPaths_A991
|
|
label Label_A992 UpdateObjectTimer
|
|
label Label_A99E DecrementObjectCounter
|
|
label Label_A9A4 DecrementObjectCounter_OnZero_A9A4
|
|
label Label_A9AA DecrementObjectCounter_JoinBranchPaths_A9AA
|
|
label Label_A9AB UpdateObjectState
|
|
label Label_A9C9 UpdateObjectState_OnCarrySet_A9C9
|
|
label Label_A9CD UpdateObjectState_OnZero_A9CD
|
|
label Label_A9D6 UpdateObjectState_OnNegative_A9D6
|
|
label Label_A9D8 ToggleScrollRegionFlip
|
|
label Label_A9E9 ToggleScrollRegionFlip_OnNonzero_A9E9
|
|
label Label_A9EA ToggleScrollRegionFlip_OnCarrySet_A9EA
|
|
label Label_A9FF BuildObjectList
|
|
label Label_AA55 ToggleScrollRegionFlip_OnCarrySet_AA55
|
|
label Label_AA56 ReadControllers
|
|
label Label_AA63 ReadControllerShiftRegister
|
|
label Label_AA69 ReadControllerShiftRegister_OnNonzero_AA69
|
|
label Label_AA82 ReadControllerShiftRegister_JoinBranchPaths_AA82
|
|
label Label_AA98 ReadControllerShiftRegister_OnZero_AA98
|
|
label Label_AA9D ReadControllerShiftRegister_OnCarrySet_AA9D
|
|
label Label_AAA1 ReadControllerShiftRegister_OnCarrySet_AAA1
|
|
label Label_AAA8 ReadControllerShiftRegister_OnCarrySet_AAA8
|
|
label Label_AAAE ReadControllerShiftRegister_OnCarryClear_AAAE
|
|
label Label_AAB4 ReadControllerShiftRegister_OnCarrySet_AAB4
|
|
label Label_AAB8 StoreControllerButtonBits
|
|
label Label_AAC0 StoreControllerButtonBits_OnZero_AAC0
|
|
label Label_AACC StoreControllerButtonBits_OnZero_AACC
|
|
label Label_AACD EnableRendering
|
|
label Label_AADC DisableRenderingAndClearNametables
|
|
label Label_AAEF ClearNametablePattern
|
|
label Label_AAFF ClearNametablePattern_OnNonzero_AAFF
|
|
label Label_AB0B ClearNametablePattern_OnNonzero_AB0B
|
|
label Label_AB68 CopyPaletteFromTable
|
|
label Label_AB7D CopyPaletteFromTable_OnNonnegative_AB7D
|
|
label Label_AB98 LoadShadowOamBlock
|
|
label Label_ABA3 FillShadowOamBlock
|
|
label Label_ABA8 FillShadowOamBlock_OnNonnegative_ABA8
|
|
label Label_ABB1 UploadPalette
|
|
label Label_ABC4 UploadPalette_OnCarryClear_ABC4
|
|
label Label_ABE4 ApplyPpuScrollAndControl
|
|
label Label_ABF7 ShiftAccumulatorRight4
|
|
label Label_ABFC ClearOamShadow
|
|
label Label_AC03 ClearOamShadow_OnNonzero_AC03
|
|
label Label_AC0D SelectLevelVramWriter
|
|
label Label_AC3B SetLevelVramStream
|
|
label Label_AC43 FillAttributeBlock
|
|
label Label_AC4C WriteAttributeBlock
|
|
label Label_AC56 WriteAttributeBlock_OnNonzero_AC56
|
|
label Label_AC62 LoadAttributeStream
|
|
label Label_AC78 SetPpuAddressHighAnd40
|
|
label Label_AC82 WriteCompressedVramStream
|
|
label Label_AC88 AdvanceSourceByte
|
|
label Label_AC96 DecodeVramStreamToken
|
|
label Label_AC9E AdvanceSourceByte_OnCarrySet_AC9E
|
|
label Label_ACA1 AdvanceSourceByte_OnZero_ACA1
|
|
label Label_ACA7 WriteVramRunToken
|
|
label Label_ACB5 AdvanceSourceByte_OnNonzero_ACB5
|
|
label Label_ACC9 AdvanceDestinationWord
|
|
label Label_ACD7 AdvanceCountWord
|
|
label Label_ACE5 WithRenderingEnabled
|
|
label Label_ACF5 WriteCompressedVramBlocks
|
|
label Label_AD01 WriteCompressedVramBlocks_OnNonzero_AD01
|
|
label Label_AD19 ComputeCollisionBits
|
|
label Label_AD36 ComputePlayerOverlapBits
|
|
label Label_AD71 ComputePlayerOverlapBits_OnCarrySet_AD71
|
|
label Label_AD73 ComputePlayerOverlapBits_OnNonzero_AD73
|
|
label Label_AD7A ComputePlayerOverlapBits_JoinBranchPaths_AD7A
|
|
label Label_AD84 ComputePlayerOverlapBits_OnCarrySet_AD84
|
|
label Label_AD8B ComputePlayerOverlapBits_OnZero_AD8B
|
|
label Label_AD91 ComputePlayerOverlapBits_OnCarrySet_AD91
|
|
label Label_AD94 ComputePlayerOverlapBits_JoinBranchPaths_AD94
|
|
label Label_ADAD ComputePlayerOverlapBits_OnNonnegative_ADAD
|
|
label Label_ADAF ComputePlayerOverlapBits_OnNonzero_ADAF
|
|
label Label_ADB1 ComputePlayerOverlapBits_OnCarryClear_ADB1
|
|
label Label_ADC2 ComputePlayerOverlapBits_JoinBranchPaths_ADC2
|
|
label Label_AE01 ComputePlayerOverlapBits_OnCarrySet_AE01
|
|
label Label_AE03 ComputePlayerOverlapBits_OnNonzero_AE03
|
|
label Label_AE0B ComputePlayerOverlapBits_OnNegative_AE0B
|
|
label Label_AE0F ComputePlayerOverlapBits_JoinBranchPaths_AE0F
|
|
label Label_AE11 ComputePlayerOverlapBits_OnNonzero_AE11
|
|
label Label_AE15 ComputePlayerOverlapBits_OnCarryClear_AE15
|
|
label Label_AE16 ComputePlayerOverlapBits_OnZero_AE16
|
|
label Label_AE45 SetDefaultOverlapBits
|
|
label Label_AE51 SetDefaultOverlapBits_OnNonzero_AE51
|
|
label Label_AE53 SetDefaultOverlapBits_OnNonzero_AE53
|
|
label Label_AE56 SetDefaultOverlapBits_OnCarryClear_AE56
|
|
label Label_AE63 SetDefaultOverlapBits_OnCarrySet_AE63
|
|
label Label_AE72 SetDefaultOverlapBits_OnCarrySet_AE72
|
|
label Label_AE80 SetDefaultOverlapBits_OnNegative_AE80
|
|
label Label_AE82 SetDefaultOverlapBits_OnNonzero_AE82
|
|
label Label_AE88 SetDefaultOverlapBits_OnCarrySet_AE88
|
|
label Label_AE90 SetDefaultOverlapBits_OnNegative_AE90
|
|
label Label_AE92 SetDefaultOverlapBits_OnNonzero_AE92
|
|
label Label_AE96 SetDefaultOverlapBits_OnNonzero_AE96
|
|
label Label_AE9B ComputeEdgeOverlapBits
|
|
label Label_AEBE ComputeEdgeOverlapBits_OnNonzero_AEBE
|
|
label Label_AECA ComputeEdgeOverlapBits_JoinBranchPaths_AECA
|
|
label Label_AEDC ComputeEdgeOverlapBits_JoinBranchPaths_AEDC
|
|
label Label_AEE3 ComputeEdgeOverlapBits_OnZero_AEE3
|
|
label Label_AEE9 ComputeEdgeOverlapBits_JoinBranchPaths_AEE9
|
|
label Label_AEEA ComputeEdgeOverlapBits_JoinBranchPaths_AEEA
|
|
label Label_AEFA ComputeEdgeOverlapBits_OnZero_AEFA
|
|
label Label_AF01 ComputeEdgeOverlapBits_JoinBranchPaths_AF01
|
|
label Label_AF24 ComputeEdgeOverlapBits_JoinBranchPaths_AF24
|
|
label Label_AF25 InitializeSoundEngine
|
|
label Label_AF3B UpdateSoundFrame
|
|
label Label_AF40 UpdateAllSoundChannels
|
|
label Label_AF43 UpdateSoundChannel
|
|
label Label_AF55 AdvanceSoundChannelNote
|
|
label Label_AF68 UpdateSoundChannel_JoinBranchPaths_AF68
|
|
label Label_AF69 WriteSoundChannelState
|
|
label Label_AF6B RebuildApuEnableMask
|
|
label Label_AF73 StartSoundChannelNote
|
|
label Label_AFAB AdvanceSoundSequencePointer
|
|
label Label_AFC5 ComputeEnvelopeMask
|
|
label Label_AFD5 ComputeEnvelopeMask_OnZero_AFD5
|
|
label Label_AFD9 ComputeTonePeriod
|
|
label Label_B000 ShiftNoteTableIndex
|
|
label Label_B007 WriteToneRegisters
|
|
label Label_B028 ComputeTonePeriod_OnCarrySet_B028
|
|
label Label_B029 WriteFixedToneRegisters
|
|
label Label_B036 ComputeTonePeriod_OnCarrySet_B036
|
|
label Label_B037 ComputeTonePeriod_OnCarrySet_B037
|
|
label Label_B03A ReadNoteDuration
|
|
label Label_B049 StoreNoteDuration
|
|
label Label_B058 ReadNoteDuration_OnZero_B058
|
|
label Label_B059 StoreShortNoteDuration
|
|
label Label_B05D BuildApuChannelMask
|
|
label Label_B062 WriteApuEnable
|
|
label Label_B069 WriteApuEnable_OnNegative_B069
|
|
label Label_B06C ApplySoundCommand
|
|
label Label_B083 WriteApuControlRegister
|
|
label Label_B08C AdvanceSoundSequenceStep
|
|
label Label_B08E AdvanceSoundSequenceStepAlt
|
|
label Label_B095 ReturnFromSoundCommand
|
|
label Label_B096 ReadLoopFlag
|
|
label Label_B09D HandleNoteTerminator
|
|
label Label_B0A9 HandleSustainCounter
|
|
label Label_B0B3 LoadSoundSequenceStep
|
|
label Label_B0BB LoadSoundSequenceStep_OnCarrySet_B0BB
|
|
label Label_B0C6 DecrementSustainCounter
|