MUSCLE (U): decode the bytecode VM layer (Pass 3b)

The 42 token programs were the last undecoded part of MUSCLE. Each now carries a
token-by-token listing above its unchanged .byte data, generated by
_tools/bytecode_dis.py and wired into the build as 'make pass3'.

Encoding, derived from RunBytecodeInterpreter ($9AE8) and BytecodeHandlerTable
($9237): the dispatch is one byte per element. A byte in $C8-$EF selects one of
the 40 handler-table entries; every other byte takes the literal path at $9B08
and is pushed onto the operand list at $0033[Y], accumulated into $003C[Y].

The one exception is four opcodes whose handler's first instructions are
'lda ($1A),Y / iny', so they consume the following byte inline:
  $CB LOOP_BEGIN  -> $7C,X count + $7E,X body address
  $D1 SET_RATE    -> $43,X
  $D7 DRAW_SPRITE -> count for the $A660 blit
  $E1 SET_WAIT    -> $7A,X
$CB and $C9 are the loop pair: LOOP_END decrements $7C,X and, if non-zero,
reloads Y from $7E,X, rewinding the interpreter to the top of the body.

Decoded 377 opcodes and 937 literal operands across 42 programs; all 40 defined
opcodes are used, so the opcode set is complete.

Two standalone programs contain no byte in $C8-$EF at all, so every byte takes
the literal path - the listing states that rather than implying code.

Each mnemonic was read off its handler's own straight-line path up to its first
'jmp $9AE8' / 'jmp $9B25'. Handlers that only tail-call a game routine are named
for the routine rather than guessed at, since the semantics live in the callee.

bytecode_dis.py inserts comment lines only; .byte data is copied through
verbatim. Verified: all 16,384 PRG bytes still emitted exactly once, every value
equal to the ROM, zero audit mismatches, and 'make regen' (pass1 -> pass2 ->
pass3) reproduces prg.s byte-for-byte. Byte-identical ROM verified.

MUSCLE (U): trace the stage payload with py65 (Pass 3c)

The stage payload at $B0FB-$BEBF could not be decoded statically, and the
trace confirms why: across all 16 KB of code there is exactly ONE operand in
that range - $BD28, the literal pointer table itself. The real address is
formed at runtime by 'adc $BD28,X', where A is a value carried in the
bytecode stream, so the readers are indexed by a runtime value and cannot be
enumerated by searching the code.

FCEUX cannot observe this either: its Lua API offers registerexec /
registerexecute / registerrun / registerwrite but no memory-read hook, and with
no static list of readers there is nothing to hook.

_tools/trace_stage_payload.py therefore uses py65's
ObservableMemory.subscribe_to_read, which fires on every read of a range and
can report PC from inside the hook. py65 is only a 6502 core, so the tracer
adds the minimum hardware to boot the game: a scanline counter off
processorCycles, $2002 vblank at scanline 241 cleared on read, NMI at the same
scanline, $4014 OAM DMA, and the $2005/$2006/$2007 latches. Without NMI the
game never leaves $80E0 (lda $0321 / beq), because $0321 is the flag the
bytecode VM raises.

Results over 300 frames (26.8M cycles, 4,071 NMIs): 2,548 payload reads from
44 distinct reader PCs, touching 914 of 3,421 bytes.

Findings:
- The hottest reader is $AC82, the compressed-VRAM RLE decoder: 1,046 of its
  1,128 reads advance by exactly +1, comparing each byte against $C0.
- $9B50 is a backward copy (lda ($12),Y / sta ($10),Y / dey), stepping -1.
- 107 distinct 8-byte blocks had all eight bytes read, with spacing dominated
  by $08 - a dense 8-byte record array - plus a sparser group on a $D0 stride
  ($BBE0, $BCB0, $BD80, $BE50).
- Readers use three disciplines: forward sequential, backward sequential, and
  variable stride consistent with a fixed-offset field walk.

py65 is deliberately NOT a build dependency: the tool documents unpacking the
wheel on demand. 'make regen' is unaffected. Byte-identical ROM verified.

MUSCLE (U): fix the NMI/controller bugs in the payload tracer; correct the Pass 3c model

The Pass 3c tracer had two bugs that were suppressing all progress, both now
fixed in _tools/trace_stage_payload.py (previously scratch, now durable):

* NMI re-armed by $2002 reads. The vblank flag must be cleared once per frame,
  not on every read of $2002 -- the main loop polls $2002 and spins on the
  bytecode VM flag at $8226, so each poll cleared bit 7 and re-armed NMI inside
  the same scanline. That gave 40,900 NMIs across 3,000 frames and corrupted all
  game state. A per-frame nmi_fired flag restores exactly one NMI per frame
  (verified: 600 frames -> 600 NMIs).

* Input went to $4017. The poll routine at $AA69 is `lda $4016,X` with X=1 and
  only compares bits 0-1, so driving $4017 consumed nothing -- all masks tested
  gave byte-identical traces. The game consumes joy1 on $4016 and needs a real
  latch/shift register. With it, START matters: 47.7% coverage vs 39.0%.
  Match entry is two discrete START presses (title -> char select -> match).

Coverage 26.3% -> 40.9%. Both bugs and the port subtlety are documented in the
tool header so they are not re-derived.

Corrects the Pass 3c conclusion. $B0FB-$BEBF is NOT per-stage level data:

* $BD28 is an 8-entry per-ACTOR entry-offset table, not a stage table.
  $A063 `adc $BD28,X` with X = ActorIndex ($1E), plus #$32 at $A071 when
  PlayerActiveFlag ($78,X) is set. Observed actors are $00-$04.
  Forcing all 8 actor indices adds zero new bytes.

* The sound engine reads the same window: $B03C `lda (SoundReadPointerLo),Y`
  with `cmp #$F0 / sbc #$F0 / tay / lda $B0E3,y` is note decoding, which is
  where the $FF/$F0 high-nibble terminators come from.

So the window is a shared pool -- per-actor bytecode, compressed-VRAM RLE, and
music note streams -- and stage cycling cannot raise coverage past ~40%. The
remaining 2,161 B need other music tracks and scripted match play, not taps.

Also corrects two stale claims: $0326 is not a level byte (never leaves $00 even
in a confirmed match), and $0320 is a boolean, not a screen-state machine.

Build unaffected: byte-identical, and `make regen` still reproduces prg.s
byte-for-byte.

MUSCLE (U): promote to the top-level inventory as #16

git mv _wip/MUSCLE (U) -> MUSCLE (U). The relative symlink
copilot/rom.nes -> ../M.U.S.C.L.E. (U).nes survives the move untouched.

* copilot/Makefile: tool paths ../../../_tools/ -> ../../_tools/ for NESDIS,
  PASS2 and BYTECODE. `make` prints the byte-identity message and `make regen`
  still reproduces prg.s byte-for-byte, both verified after the move.
* MUSCLE (U)/OVERVIEW.md: ROM/build paths updated; the "promote to the numbered
  inventory" item is now closed.
* Root OVERVIEW.md: added as #16, removed from the _wip skeleton table
  (20 -> 19), added a ### 16 detail section, and its vector/mapping notes moved
  out of the skeleton section.

All 16 top-level projects verified byte-identical.

Add Pass 1 verification tool; teach nesdis.py the undocumented opcodes

_tools/verify_pass1.py verifies Pass 1 across every top-level project in two
independent directions:

  * Faithful  - does the source still rebuild its ROM byte-identical?
  * Complete  - does the committed source claim as much code as a fresh trace
                can actually reach?

The second is the one that catches real problems. A project can reproduce all
16,384 bytes perfectly while calling 95% of them data, because the tracer gave
up early. Instruction *counts* are compared rather than bytes, so the check is
independent of comment style (which is not uniform across the repo).

Result: all 16 projects are faithful, and Joypad Test Cartridge is the only
truncated Pass 1 -- 282 committed instructions against 1,773 reachable.

nesdis.py gains three fixes needed to make that verdict trustworthy:

* --undocumented (default OFF) decodes the 105 undocumented NMOS opcodes.
  They are used as NOP padding and as real RMW ops, and a tracer that halts on
  them loses most of the code: Joypad goes 580 -> 3,846 code bytes. Default off
  so MUSCLE's `make regen` still reproduces prg.s byte-for-byte.

* Undocumented opcodes are emitted as explicit `.byte` with the disassembly in
  the comment. ca65 V2.19 implements none of them, so they cannot be written as
  mnemonics; keeping them in the code region preserves the code/data split and
  the audit trail. Official 0xEA NOP still encodes normally.

* Two latent bugs, both now reachable:
  - RESET and IRQ are commonly the same address, and the semantic-name map was
    overwriting, renaming the primary entry point to `IrqHandler`. Now
    setdefault, in RESET/NMI/IRQ priority order.
  - render() stamped every branch operand as Label_XXXX and never reconciled it
    with the semantic name map, so a branch into a named routine emitted a label
    that was never defined and the file would not assemble.

Joypad Test Cartridge (U): redo Pass 1, complete Pass 2; merge _wip into the inventory

Pass 1 (redone). The committed split claimed 282 instructions / 580 bytes (3.5%).
The tracer halted at $C09E on `DCP $3C20` ($CF) -- an undocumented opcode used as
ordinary code -- and filed 3,256 bytes of real code as `.byte` data.

Now 1,773 instructions / 3,836 bytes (23.4%), a 6.6x increase. Verified against a
fresh trace: 1,769 emitted instructions + 4 undocumented opcodes written as
explicit bytes = 1,773, an exact match. Byte accounting stays exact at
3,836 + 12,548 = 16,384.

ca65 V2.19 implements none of the undocumented opcodes, so the 4 affected
instructions (DCP $3C20, LAX $20D4, NOP $C1,X, RRA ($D0),X) are emitted as
explicit `.byte` with the disassembly in the comment. They stay in the code
region, so the split and the audit trail are both preserved.

Pass 2 (complete). All 202 labels renamed; zero `Label_Cxxxx` remaining. Renames
are keyed by address and verified to have bound to the intended address, not just
to some address. 202 routine headers, every one describing real behaviour -- no
"undetermined in Pass 1" boilerplate left. `locals.inc` carries 99 aliases, the
proven semantic ones sitting beside the generated `ZpXX` entries per the alias
pattern in AGENTS.md.

Two naming errors in the previous draft are corrected: $55 is MarkerValue (it
holds $70/$88/$A0 and is compared against them), not a "P1 Down timer"; and the
twelve MarkerVar variables are named by position because which player/button
each belongs to is not established.

Pass 3 is now outstanding, and the old Pass 3 was wrong: it described
$C09E-$C173 and $C17F-$CCF6 as data, and both are code. After the redo there is
exactly one data region, $CF06-$FFFF, confirmed by orphan scan.

Documentation.

The root inventory now lists all 36 projects in one table -- the 20 `_wip/`
projects are rows 17-36 rather than a second table that could drift. That second
table had wrong mirroring for 12 of them (Duck Hunt, Golf, Hogan's Alley, Ice
Climber, DK Jr Math, Lode Runner, Lunar Pool, Mario Bros, Millipede, Pyramid,
Raid [a2], Urban Champion were all recorded H when they are V, and vice versa);
every value is now read from the ROM rather than trusted.

Build status is split into two honest tiers: rows 1-16 are BYTE-IDENTICAL and
compare the whole ROM, rows 17-36 are PRG-IDENTICAL because their Makefiles only
run `cmp reconstructed_prg.bin prg.bin`. Header and CHR are not proven for those.
All 36 build cleanly; the WIP count was also corrected from 19 to 20.

`_tools/verify_pass1.py` checks all 36 and reports none truncated.

Mario Bros (JU): Pass 1 disassembly, 14.6% -> 72.2% code

The skeleton prg.s was a 12-line .incbin of the whole PRG. It is now a real
disassembly: 5,735 instructions, 11,829 code bytes (72.2%), 937 labels and
routine headers, byte accounting exact at 11,800 + 4,584 = 16,384, and
BYTE-IDENTICAL against prg.bin.

Coverage came from four steps, not one:

  vectors + direct jsr/jmp/branch, official opcodes   1,185 instr   14.6%
  --undocumented (105 extra NMOS opcodes)            1,210 instr   14.9%
  --auto-seed (61 table-referenced entries)          4,187 instr   51.1%
  --extra-seed 0xC0B6,0xC5A3                         5,735 instr   72.2%

Almost everything sits behind computed dispatch. Three mechanisms are now
documented in the project OVERVIEW:

* $CD9E is a stack-based indirect call: it pops the table address with `pla`,
  indexes it by A*2 with `lda ($14),y`, then `jmp ($0014)`. Because the pointer
  arrives on the stack it cannot be followed statically from the dispatcher.
* $C5A3 is a 20-entry table of `JSR` thunks ending in `rts`. Probing it linearly
  gives twenty valid targets, and seeding it recovers most of the last 21%.
* $C0B6 is the NMI phase dispatcher, reachable only by computed dispatch.

Two overlapping-decode bugs in _tools/nesdis.py had to be fixed first:

* Control-flow targets must win over fall-through. `bne` at $C4BA targets $C528,
  but the fall-through path had decoded $C527 as a 2-byte `NOP #$A5` whose
  operand swallowed $C528. No assembler branches into the middle of an
  instruction, so the spanning decode is now dropped in favour of the target;
  its bytes fall out as data, leaving byte accounting unchanged.
* Branch targets inside a surviving instruction must be pruned from the target
  set. Otherwise emit_code's linear walk consumes those bytes as an operand, so
  the label is referenced but never defined and the file does not assemble at
  all -- `Error: Symbol 'Label_C528' is undefined`.

Neither change disturbs an existing pipeline: MUSCLE's `make regen` still
reproduces prg.s byte-for-byte, Joypad Test Cartridge still builds byte-identical,
and _tools/verify_pass1.py reports all 16 top-level projects faithful with none
truncated.

Mario Bros (JU): Pass 2, partial -- make the call graph readable

Two mechanical wins, in order of value:

* **477 jsr/jmp operands rewritten from raw $XXXX to labels.** The tracer emits
  call and jump targets as hex, so the call graph was unreadable -- the most
  called routine appeared as `jsr $CCA0` 14 times over. Every one of those sites
  already had a label at its target address, so the substitution is purely
  mechanical and byte-preserving. Zero raw hex call operands remain.

* **13 landmark routines named** from verified instruction evidence:
  WaitVblank1, ClearRamPageLoop, NmiPhaseDispatch ($C0B6), JsrThunkTable
  ($C5A3), DispatchViaStackPointer ($CD9E), AdvanceDispatchPointer ($CDB4),
  PushTablePointerDispatch ($CCA0), DispatchTableF393 ($CAB9),
  InitSpritesOffscreen ($DFC4), AdjustDecimalColumns ($D15A),
  TestRamFlagPair0500 ($D328), NextIndex ($CE84).

**922 labels remain unnamed, and that is recorded as the honest state** rather
than papered over. They sit 15-25 per page across $CC00-$CFFF, which is just
the game logic: naming them means reading ~5,700 instructions across 935
routines. Guessing from the call graph and the NES convention would be exactly
the guessy rewrite PROMPTS.md rules out.

The productive next step is more reach, not more naming. The 4,555 unreached
bytes are where most unnamed routines live, and they are gated behind the
stack-pointer dispatch at $CD9E, whose pushed table addresses are only known in
the callers' frames.

Still BYTE-IDENTICAL; all 16 top-level projects remain faithful.

Record audit-comment work for Excitebike and Pac-Man as a TODO

Both projects are hand-written sources with semantic labels but no
byte-identity audit comment, so a source line cannot be mapped back to exact
ROM bytes without re-assembling. Every other project in the repo carries one.

Documented what was tried and why it was dropped rather than left implicit.
Addresses from 'ca65 -l' work fine -- the listing offset indexes prg.bin
directly -- but the listing carries no source line numbers, so entries cannot
be keyed back to source lines. Byte values also have to come from prg.bin
rather than the listing, since ca65 prints 'rr rr' for relocatable words.

No tool was committed, because the one written does not work. Both projects
verified still byte-identical; no source file was changed.

Add TODO.md handoff; bring AGENTS.md back in line with the repo

AGENTS.md had drifted on facts that are now wrong, not just incomplete:

* "Eleven disassemblies" -> 36 (16 top-level, 20 in _wip). The index it points
  at had the same stale count.
* The audit-comment convention was stated as `; PRG:$xxxx AA BB`, but the
  dominant spelling is `; CPU:$xxxx PRG:xxxx  AA BB` and five other variants are
  in use, with Excitebike and Pac-Man carrying none at all. Now stated accurately
  as "preserve whatever spelling a file uses", with the gap pointed at.
* `_tools/` was described as holding splitnes.py and chr2gif.py. It holds six
  tools now, including the Pass 1 tracer and the verifier.
* ROM filenames "contain spaces" -> spaces *and parentheses*, which is also what
  makes FCEUX hang headless.

Added, because each one costs real time if rediscovered:

* The two build tiers. The 20 _wip projects only `cmp reconstructed_prg.bin
  prg.bin`, so their header and CHR are NOT proven -- calling them
  byte-identical to the ROM is wrong.
* A promotion procedure, since that has now been done twice.
* A tracer/toolchain gotchas section: undocumented opcodes truncating traces
  (and ca65 being unable to encode them), vectors living at the end of the PRG
  rather than in the iNES header, the RESET==IRQ name collision, control-flow
  targets beating fall-through, the branch-target pruning that stops a file
  failing to assemble, NMI firing once per frame rather than per $2002 read,
  joy1 being $4016, and ca65 listings carrying no source line numbers.

TODO.md is the handoff document: open work per project with enough detail to
resume, the residue counts, and the reasoning behind each abandoned approach so
it is not silently retried.

Nothing rebuilt or changed; all projects still verify.

Joypad Test Cartridge (U): Pass 3 complete — data region named and VRAM command stream decoded

The monolithic `.byte $CF06-$FFFF` block (12,538 bytes) has been broken into 20 named sub-blocks:

VRAM command streams ($CF06-$D4AD): three command streams separated by $FF terminators, read by VramWriteLoop via RetAddrUpdate. Opcode set decoded: $4C = jump, $60 = deferred PPUCTRL, bit-7-clear = VRAM write (PPU addr + data, bit 6 of data = long/short selector).

OAM tables ($D4E3-$D6A3): 12 groups of 32-byte tables (8 entries of Y/tile/attr/X), read by CopyOamFromTable ($D4E3) and CopyOamFromTable70 ($D5C4).

Sprite templates ($D6A5-$D6E4): sprite template read by CopySpriteTemplateTable ($D6A5) and button OAM template read by PrepareButtonOam ($D6C5).

Padding: $FF ROM padding ($D6E5-$FFF9) and vectors ($FFFA-$FFFF).

OVERVIEW.md updated: section 8 documents all 20 sub-blocks with the VRAM command stream format and OAM table structure; section 11 marks Pass 3 complete with remaining work (MarkerVar player/button mapping, HandleButtonPress sprite order).

Build verified byte-identical.

Root OVERVIEW.md: mark Joypad Pass 3 complete

Update summary table (row 14: Pass Pass 2 → Pass 3 complete), detail section
(section 14: Pass 2/3 → Pass 3 complete with VRAM command stream decoded),
methodology note table (Pass 2 complete → Pass 3 complete), and notable
observations (Joypad at Pass 2/3 → Pass 3 complete).

Joypad Test Cartridge is now fully Pass 3 complete: all 20 data sub-blocks
named, VRAM command stream opcode set decoded, OAM table structure documented.

TODO.md: mark Joycad Test Cartridge Pass 3 complete

Mario Bros (JU): Pass 2 substantial — 252 subroutine entry points named

All 252 jsr/jmp targets resolved from raw $XXXX to labels:
- 90 semantic names: audio/sound routines ($F8xx-$F9xx: AudioPulse1CtrlSetup,
  WritePulse2Freq, ProcessTriangleChannel, SetupAudioChannel, etc.), gameplay
  helpers (CheckZpB3Return, CheckRangeReturn012, ToggleZpFC_Bit3, etc.)
- 165 address-based names (SubCxxxx) for the remainder
- Zero raw $XXXX call operands remain

667 Label_Cxxxx internal branch targets remain — these are local control-flow
destinations within routines, not subroutine entry points, and do not need
semantic names for the call graph to be readable.

Build verified BYTE-IDENTICAL. Root OVERVIEW.md updated (row 26: Pass 0 skeleton
→ Pass 1 complete, Pass 2 substantial). TODO.md updated.

Lunar Pool (U): Pass 1 complete, 57.8% code; nesdis.py opcode/emitter fixes

The skeleton prg.s was a 12-line .incbin of the whole PRG. It is now a real
disassembly: 4,586 instructions, 9,475 code bytes (57.8%), 6,909 data bytes,
byte accounting exact at 9,403 + 6,981 = 16,384, BYTE-IDENTICAL.

Coverage: vectors + direct jsr/jmp/branch reached 1,259 instructions (15.6%).
--undocumented took it to 4,572 (57.6%), and --auto-seed (48 table-referenced
entries) plus --extra-seed 0xE80C (the non-$C000 RESET vector) took it to
4,586 (57.8%).

Three undocumented opcodes were missing from nesdis.py and are added:
* $72 RRA abs (the RRA family was missing the $72 absolute form)
* $42 NOP #imm (the NOP-immediate family was missing $42)
* $FA NOP abs,X (the NOP-abs,X family was missing $FA)

One emitter fix: ca65 silently rewrites an operand whose high byte is $00 in
the shorter zero-page form -- `sta $00FF,x` assembles as `sta $FF,x` ($95
instead of $9D). render() now emits the `a:` prefix for ABS/ABSX/ABSY/IND
operands with a high byte of $00, forcing the absolute form so the emitted
bytes match the ROM. operand_value() strips the prefix when parsing.

These changes are general and verified not to disturb existing pipelines:
MUSCLE's `make regen` still reproduces prg.s byte-for-byte.

Remaining gaps: 6,909 bytes (42.2%) still data, gated behind jmp ($7961) at
three sites (RAM-pointer dispatch; the blocks after them hold the screen text
"strings" "game over" and "hi`score__") and stack-based dispatch at $CBDC --
the same pattern as Mario Bros (JU)'s $CD9E.

TODO.md: add Lunar Pool as an open item

Adds comments for all lines to Pacman and Excitebike
Moves Pacman 'locals' and 'symbols' definitions into the right places
This commit is contained in:
tmerritt committed 2026-10-17 17:36:28 -04:00
1 parent e9caa8cb36
commit 837007843d
50 files changed
+62939 -13111

No files matched your search

+702
View File
@@ -0,0 +1,702 @@
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
1 label Label_800E WaitForFirstPpuWarmup
2 label Label_8019 WaitForSecondPpuWarmup
3 label Label_802C InitializeGameState
4 label Label_803B InitializeGameState_OnNonzero_803B
5 label Label_8052 UpdateNametableFromStream
6 label Label_805B UpdateNametableFromStream_OnNonzero_805B
7 label Label_8066 UpdateNametableFromStream_OnZero_8066
8 label Label_806E UpdateNametableFromStream_OnNonnegative_806E
9 label Label_8077 UpdateNametableFromStream_OnZero_8077
10 label Label_807A UpdateNametableFromStream_OnZero_807A
11 label Label_8080 UpdateNametableFromStream_OnZero_8080
12 label Label_8094 UpdateNametableFromStream_OnZero_8094
13 label Label_80AC StartStageSequence
14 label Label_80E0 StartStageSequence_OnZero_80E0
15 label Label_8105 StartStageSequence_OnNonzero_8105
16 label Label_810A StartStageSequence_OnNonzero_810A
17 label Label_811A StartStageSequence_OnZero_811A
18 label Label_8132 UpdateFadeFlashSprites
19 label Label_8154 UpdateFadeFlashSprites_OnCarryClear_8154
20 label Label_8164 InitializeRound
21 label Label_8173 InitializeRound_OnCarryClear_8173
22 label Label_8187 InitializeRound_OnNonnegative_8187
23 label Label_8191 InitializeRound_OnNonzero_8191
24 label Label_8196 InitializeRound_OnNonnegative_8196
25 label Label_81A0 InitializeRound_OnNonzero_81A0
26 label Label_81D6 InitializeRound_OnCarryClear_81D6
27 label Label_81DA InitializeRound_OnCarryClear_81DA
28 label Label_81DE InitializeRound_OnCarryClear_81DE
29 label Label_81E0 InitializeRound_OnCarryClear_81E0
30 label Label_81E2 InitializeRound_JoinBranchPaths_81E2
31 label Label_8223 InitializeRound_OnNonzero_8223
32 label Label_8226 MainGameLoop
33 label Label_8232 MainGameLoop_OnZero_8232
34 label Label_8235 MainGameLoop_OnZero_8235
35 label Label_824D MainGameLoop_OnZero_824D
36 label Label_8255 MainGameLoop_OnNonzero_8255
37 label Label_8261 MainGameLoop_OnNonzero_8261
38 label Label_8267 MainGameLoop_OnNonnegative_8267
39 label Label_8284 MainGameLoop_OnZero_8284
40 label Label_828C MainGameLoop_OnNonzero_828C
41 label Label_8298 MainGameLoop_OnNonzero_8298
42 label Label_829E MainGameLoop_OnNonnegative_829E
43 label Label_82AC DivideBy20
44 label Label_82BE DivideBy20_OnNonzero_82BE
45 label Label_82DA DivideBy20_OnCarryClear_82DA
46 label Label_82E1 SilenceSoundChannels1And3
47 label Label_82ED SilenceSoundChannel3
48 label Label_82FA StartIntroMusic
49 label Label_82FF StartMusicSequence
50 label Label_832A UpdateHudTallyTiles
51 label Label_833E UpdateHudTallyTiles_OnZero_833E
52 label Label_8352 UpdateHudTallyTiles_OnZero_8352
53 label Label_8353 UpdateScoreTallyDigits
54 label Label_8372 WriteScoreTallyDigits
55 label Label_8374 WriteScoreTallyDigits_OnCarryClear_8374
56 label Label_8385 WriteScoreTallyDigits_OnZero_8385
57 label Label_8390 WriteScoreTallyDigits_OnNonzero_8390
58 label Label_8399 LoadOamShadowFromTable
59 label Label_839B LoadOamShadowFromTable_OnNonnegative_839B
60 label Label_83A7 UpdateActorPositions
61 label Label_83AB UpdateActorPositions_OnNonnegative_83AB
62 label Label_83D0 UpdateActorPositions_OnZero_83D0
63 label Label_83E1 UpdateActorPositions_OnCarryClear_83E1
64 label Label_841A UpdateActorPositions_OnZero_841A
65 label Label_8434 UpdateActorPositions_OnNonzero_8434
66 label Label_845C UpdateRoundTimers
67 label Label_848D UpdateRoundTimers_OnNonzero_848D
68 label Label_84A1 UpdateRoundTimers_OnZero_84A1
69 label Label_84B1 UpdateRoundTimers_OnNonzero_84B1
70 label Label_84B5 UpdateRoundTimers_OnNonzero_84B5
71 label Label_84E9 UpdateRoundTimers_OnCarrySet_84E9
72 label Label_84EE UpdateRoundTimers_OnNonzero_84EE
73 label Label_84F4 UpdateRoundTimers_OnCarryClear_84F4
74 label Label_850F UpdateRoundTimers_OnZero_850F
75 label Label_851C UpdateRoundTimers_OnCarrySet_851C
76 label Label_851F UpdateRoundTimers_OnNonzero_851F
77 label Label_8522 UpdateRoundTimers_OnCarrySet_8522
78 label Label_8564 UpdateRoundTimers_OnZero_8564
79 label Label_856C PlayRoundChangeMusic
80 label Label_858F PlayRoundChangeMusic_OnNonzero_858F
81 label Label_8596 UpdateScrollTarget
82 label Label_8598 UpdateScrollTargetAlt
83 label Label_85A3 UpdateScrollTargetAlt_OnZero_85A3
84 label Label_85A8 UpdateScrollTargetAlt_OnNonzero_85A8
85 label Label_85DA UpdateScrollTargetAlt_OnNonzero_85DA
86 label Label_85EC UpdateScrollTargetAlt_JoinBranchPaths_85EC
87 label Label_8639 BeginVblankFrame
88 label Label_8644 ForceRenderingOff
89 label Label_8653 SetRenderingOffAndSignalVblank
90 label Label_865D UpdateRoundLogic
91 label Label_8682 UpdateRoundLogic_OnNonzero_8682
92 label Label_86A0 UpdateRoundLogic_JoinBranchPaths_86A0
93 label Label_86AA UpdateRoundLogic_JoinBranchPaths_86AA
94 label Label_86AD UpdateRoundLogic_OnNegative_86AD
95 label Label_86D8 NmiHandler_OnZero_86D8
96 label Label_86E3 NmiHandler_OnNonzero_86E3
97 label Label_86FA NmiHandler_OnZero_86FA
98 label Label_8703 NmiHandler_OnNegative_8703
99 label Label_8709 NmiHandler_OnZero_8709
100 label Label_8728 NmiHandler_OnCarrySet_8728
101 label Label_872F NmiHandler_OnNonzero_872F
102 label Label_8742 NmiHandler_OnNonzero_8742
103 label Label_8751 FinishNmiUpdates
104 label Label_8759 FinishNmiRegisters
105 label Label_8765 SetSoundSequenceChannel1
106 label Label_877C RunGameStateDispatcher
107 label Label_8787 RunGameStateDispatcher_JoinBranchPaths_8787
108 label Label_8795 RunGameStateDispatcher_OnNonzero_8795
109 label Label_87BF UpdateTimersAlt
110 label Label_87D1 PollControllerStart
111 label Label_87F1 PollControllerStart_JoinBranchPaths_87F1
112 label Label_87F2 UpdateFlashCounter
113 label Label_8801 UpdateFlashCounter_OnZero_8801
114 label Label_8803 UpdateFlashCounter_OnNonzero_8803
115 label Label_8819 UpdateFlashCounter_OnCarryClear_8819
116 label Label_8837 PlayDeathSequence
117 label Label_8848 PollControllerBits
118 label Label_885A PollControllerBits_JoinBranchPaths_885A
119 label Label_885B PollControllerAndAdvance
120 label Label_886C PollControllerBitsAlt
121 label Label_887C SignalVblankComplete
122 label Label_8881 SignalVblankComplete_JoinBranchPaths_8881
123 label Label_8882 PollControllerAndCheckRound
124 label Label_888D PollControllerAndCheckRound_OnZero_888D
125 label Label_8899 PollControllerAndCheckRound_OnCarrySet_8899
126 label Label_889D PollControllerAndCheckRound_OnNonzero_889D
127 label Label_88A4 BuildOamList
128 label Label_88AE BuildOamList_OnNonzero_88AE
129 label Label_88B0 EmitOamEntry
130 label Label_88EB EmitOamBlankEntry
131 label Label_88F3 EmitOamBlankEntry_JoinBranchPaths_88F3
132 label Label_88F4 EmitOamBlankEntry_OnZero_88F4
133 label Label_88F9 EmitOamFromTable
134 label Label_88FF EmitOamAtOffset
135 label Label_8909 EmitOamAtOffset_OnZero_8909
136 label Label_890F EmitOamAtOffset_JoinBranchPaths_890F
137 label Label_891B EmitOamAtOffset_OnZero_891B
138 label Label_892A EmitOamAtOffset_OnNonzero_892A
139 label Label_8936 FindFreeOamSlot
140 label Label_8938 FindFreeOamSlot_OnNonnegative_8938
141 label Label_8942 FindFreeOamSlot_OnZero_8942
142 label Label_8943 FindFreeOamSlot_JoinBranchPaths_8943
143 label Label_896A FindFreeOamSlot_JoinBranchPaths_896A
144 label Label_896B FindFreeOamSlot_OnZero_896B
145 label Label_897F FindFreeOamSlot_OnNonzero_897F
146 label Label_8986 CompactOamList
147 label Label_898A CompactOamList_OnNonnegative_898A
148 label Label_899D CompactOamList_OnZero_899D
149 label Label_899F CompactOamList_OnNonzero_899F
150 label Label_89A8 CompactOamList_OnZero_89A8
151 label Label_89AC CompactOamList_OnZero_89AC
152 label Label_89B0 CompactOamList_OnCarryClear_89B0
153 label Label_89B2 CompactOamList_OnNonzero_89B2
154 label Label_89B5 CompactOamList_OnNonzero_89B5
155 label Label_89B8 CompactOamList_OnNonzero_89B8
156 label Label_89CE ReadControllerAndInit
157 label Label_89EE ReadControllerAndInit_OnCarryClear_89EE
158 label Label_89F7 ReadControllerAndInit_OnNonzero_89F7
159 label Label_8A28 UpdateStageActors
160 label Label_8A5D UpdateStageActors_JoinBranchPaths_8A5D
161 label Label_8A5E SpawnStageActors
162 label Label_8A68 SpawnStageActors_OnCarryClear_8A68
163 label Label_8A74 SpawnStageActors_OnZero_8A74
164 label Label_8A84 SpawnStageActors_OnNonzero_8A84
165 label Label_8A93 SpawnStageActors_OnZero_8A93
166 label Label_8AA4 SpawnStageActors_JoinBranchPaths_8AA4
167 label Label_8AA5 SpawnStageActors_OnZero_8AA5
168 label Label_8AE1 SpawnStageActors_JoinBranchPaths_8AE1
169 label Label_8AE8 UpdateAttributeTable
170 label Label_8B07 ClearScrollLatch
171 label Label_8B0D ClearScrollLatch_OnNonzero_8B0D
172 label Label_8B20 WriteNametableTile
173 label Label_8B25 WriteNametableTile_OnNonzero_8B25
174 label Label_8B33 ClearAttributeRegion
175 label Label_8B37 ClearAttributeRegion_JoinBranchPaths_8B37
176 label Label_8B3B ClearAttributeRegion_OnNonnegative_8B3B
177 label Label_8B5F ClearAttributeRegion_OnCarryClear_8B5F
178 label Label_8B67 ClearAttributeRegion_OnZero_8B67
179 label Label_8B6D ClearAttributeRegion_JoinBranchPaths_8B6D
180 label Label_8B92 RenderHudDigits
181 label Label_8BBA RenderHudDigits_OnNonzero_8BBA
182 label Label_8BEF RenderHudDigitDescriptor
183 label Label_8BF8 SetRenderingOn
184 label Label_8BFF SetRenderingOn_OnNonnegative_8BFF
185 label Label_8C05 AdvanceAnimationSlot
186 label Label_8C0E QueueVramTransfer
187 label Label_8C11 QueueVramTransferAlt
188 label Label_8C3A QueueVramTransferAlt_OnNonnegative_8C3A
189 label Label_8C55 QueueVramTransferAlt_OnNonzero_8C55
190 label Label_8C65 ExecuteVramTransfer
191 label Label_8C72 ExecuteVramTransfer_OnNonzero_8C72
192 label Label_8C98 ExecuteVramTransfer_OnZero_8C98
193 label Label_8CB8 QueueVramDescriptor
194 label Label_9287 QueueVramDescriptor_Entry_9287
195 label Label_928D QueueVramDescriptor_JumpNext_928D
196 label Label_9293 QueueVramDescriptor_JumpNext_9293
197 label Label_929F QueueVramDescriptor_OnNonzero_929F
198 label Label_92AF QueueVramDescriptor_OnNonzero_92AF
199 label Label_92B2 QueueVramDescriptor_JumpNext_92B2
200 label Label_92CD QueueVramDescriptor_JumpNext_92CD
201 label Label_92E8 QueueVramDescriptor_OnZero_92E8
202 label Label_9329 QueueVramDescriptor_OnZero_9329
203 label Label_932C QueueVramDescriptor_JumpNext_932C
204 label Label_934B UpdateActorX
205 label Label_9354 UpdateActorX_JumpNext_9354
206 label Label_9371 UpdateActorTile
207 label Label_9374 UpdateActorTileAlt
208 label Label_937C UpdateActorTileAlt_JumpNext_937C
209 label Label_93A4 UpdateActorTileAlt_JumpNext_93A4
210 label Label_93C4 UpdateActorTileAlt_OnCarrySet_93C4
211 label Label_93CC UpdateActorTileAlt_JumpNext_93CC
212 label Label_93D0 UpdateActorTileAlt_OnZero_93D0
213 label Label_93D3 UpdateActorTileAlt_OnNonzero_93D3
214 label Label_9401 UpdateActorTileAlt_OnCarrySet_9401
215 label Label_9409 UpdateActorTileAlt_JumpNext_9409
216 label Label_941B UpdateActorTileAlt_JumpNext_941B
217 label Label_942C UpdateActorTileAlt_OnNegative_942C
218 label Label_9441 UpdateActorTileAlt_OnNonnegative_9441
219 label Label_9450 UpdateActorTileAlt_OnNonzero_9450
220 label Label_9451 UpdateActorTileAlt_OnCarrySet_9451
221 label Label_9454 UpdateActorTileAlt_OnCarryClear_9454
222 label Label_945B UpdateActorTileAlt_OnNegative_945B
223 label Label_9465 UpdateActorTileAlt_JumpNext_9465
224 label Label_946D UpdateActorTileAlt_JumpNext_946D
225 label Label_9477 UpdateActorTileAlt_JumpNext_9477
226 label Label_947D UpdateActorTileAlt_OnZero_947D
227 label Label_9480 UpdateActorTileAlt_JumpNext_9480
228 label Label_948F UpdateActorTileAlt_JumpNext_948F
229 label Label_9499 UpdateActorTileAlt_JumpNext_9499
230 label Label_94AA UpdateActorTileAlt_OnZero_94AA
231 label Label_94AD UpdateActorTileAlt_JumpNext_94AD
232 label Label_94B1 TestPlayerFacing
233 label Label_94C0 TestPlayerFacing_JumpNext_94C0
234 label Label_94C7 SelectActorSlot
235 label Label_94C8 SelectActorSlotAlt
236 label Label_94CF ClearActorPosition
237 label Label_94D7 ClearActorFields
238 label Label_94F3 ClearActorFields_JoinBranchPaths_94F3
239 label Label_94F6 ClearActorFields_OnNonzero_94F6
240 label Label_94FE SetActorFlag
241 label Label_950B SetActorFlag_JumpNext_950B
242 label Label_9513 SetActorFlag_JumpNext_9513
243 label Label_951F SetActorFlag_OnNonzero_951F
244 label Label_9522 SetActorFlag_JumpNext_9522
245 label Label_9535 SetActorFlag_OnNonzero_9535
246 label Label_9541 SetActorFlag_Return_9541
247 label Label_9551 SetActorFlag_OnNonzero_9551
248 label Label_9559 SetActorFlag_JumpNext_9559
249 label Label_9585 UpdateActorState
250 label Label_9590 UpdateActorState_OnNonzero_9590
251 label Label_95A5 UpdateActorState_OnCarryClear_95A5
252 label Label_95AE ComputeActorLeftEdge
253 label Label_95B8 ComputeActorLeftEdge_OnNonzero_95B8
254 label Label_95C9 ComputeActorLeftEdge_OnCarryClear_95C9
255 label Label_95D2 ComputeActorRightEdge
256 label Label_95D9 CompareActorToLimit
257 label Label_95DC CompareActorToLimit_Return_95DC
258 label Label_95E3 CompareActorToLimit_OnNonzero_95E3
259 label Label_9628 CompareActorToLimit_OnCarrySet_9628
260 label Label_963C CompareActorToLimit_OnCarrySet_963C
261 label Label_963E CompareActorToLimit_OnNonnegative_963E
262 label Label_9641 CompareActorToLimit_OnZero_9641
263 label Label_9644 CompareActorToLimit_JumpNext_9644
264 label Label_9653 SetActorTileFromPalette
265 label Label_9664 SetActorTileFromPalette_OnNonzero_9664
266 label Label_9667 StoreActorTile
267 label Label_966D StoreActorTile_Return_966D
268 label Label_9679 StoreActorTile_OnNegative_9679
269 label Label_968E StoreActorTile_OnNonnegative_968E
270 label Label_969D StoreActorTile_OnNonzero_969D
271 label Label_969E AdvanceActorCounter
272 label Label_96A6 AdvanceActorCounter_OnCarryClear_96A6
273 label Label_96AA SetActorTileValue
274 label Label_96B3 SetActorTileValue_OnNonzero_96B3
275 label Label_96B9 SetActorTileValue_OnNegative_96B9
276 label Label_96BC SetActorTileValue_JumpNext_96BC
277 label Label_96C2 SetActorTileValue_Continue_96C2
278 label Label_96C8 TestActorCollisionFlag
279 label Label_96CC TestActorCollisionFlag_OnZero_96CC
280 label Label_96CE TestActorCollisionFlag_OnZero_96CE
281 label Label_96EE TestActorCollisionFlag_OnCarryClear_96EE
282 label Label_96F7 ComputeActorLeftEdgeAlt
283 label Label_9701 ComputeActorLeftEdgeAlt_OnNonzero_9701
284 label Label_9719 ComputeActorLeftEdgeAlt_OnCarryClear_9719
285 label Label_9722 ComputeActorRightEdgeAlt
286 label Label_9729 TestActorRange
287 label Label_9731 TestActorRange_OnCarrySet_9731
288 label Label_9732 MoveActorByStep
289 label Label_975D MoveActorByStep_OnCarrySet_975D
290 label Label_975E MoveActorByStep_Return_975E
291 label Label_9766 MoveActorByStep_OnCarryClear_9766
292 label Label_979A MoveActorByStep_OnNonzero_979A
293 label Label_97A0 MoveActorByStep_OnNonzero_97A0
294 label Label_97BC SetActorAnimation63
295 label Label_97C0 SetActorAnimation62
296 label Label_97C4 SetActorAnimation61
297 label Label_97C6 SetActorAnimation61_OnNonzero_97C6
298 label Label_97D5 UpdateActorAnimation
299 label Label_97FB UpdateActorAnimation_OnZero_97FB
300 label Label_97FC TestAnimationSlot
301 label Label_9800 TestAnimationSlot_JoinBranchPaths_9800
302 label Label_9802 TestAnimationSlot_OnNonzero_9802
303 label Label_981C TestAnimationSlot_OnCarryClear_981C
304 label Label_982A ComputeActorLeftEdgeAt
305 label Label_9834 ComputeActorLeftEdgeAt_OnNonzero_9834
306 label Label_984A ComputeActorLeftEdgeAt_OnCarryClear_984A
307 label Label_9858 ComputeActorRightEdgeAt
308 label Label_985F TestActorValue
309 label Label_986A TestActorValue_Return_986A
310 label Label_9875 TestActorValue_OnCarryClear_9875
311 label Label_98A7 TestActorValue_OnCarryClear_98A7
312 label Label_98AA TestActorValue_JoinBranchPaths_98AA
313 label Label_98AD TestActorValue_JoinBranchPaths_98AD
314 label Label_98B0 TestActorValue_JumpNext_98B0
315 label Label_98B7 TestActorValue_OnNonzero_98B7
316 label Label_98BE TestActorValue_JoinBranchPaths_98BE
317 label Label_98C1 TestActorValue_OnNonzero_98C1
318 label Label_98D8 TestActorValue_OnCarryClear_98D8
319 label Label_98E6 ComputeActorLeftEdgeAlt2
320 label Label_98F0 ComputeActorLeftEdgeAlt2_OnNonzero_98F0
321 label Label_9903 ComputeActorLeftEdgeAlt2_OnCarryClear_9903
322 label Label_9911 UpdateActorTileFromIndex
323 label Label_9918 UpdateActorTileFromIndexAlt
324 label Label_9948 UpdateActorTileFromIndexAlt_JoinBranchPaths_9948
325 label Label_994B UpdateActorTileFromIndexAlt_JumpNext_994B
326 label Label_996E UpdateActorTileFromIndexAlt_JumpNext_996E
327 label Label_997C UpdateActorTileFromIndexAlt_JumpNext_997C
328 label Label_9989 UpdateActorTileFromIndexAlt_OnNonzero_9989
329 label Label_9994 UpdateActorTileFromIndexAlt_OnNonzero_9994
330 label Label_99A0 UpdateActorTileFromIndexAlt_OnNonzero_99A0
331 label Label_99A3 SetSoundSequenceChannel2
332 label Label_99B0 SetSoundSequenceChannel2_Return_99B0
333 label Label_99B7 SetSoundSequenceChannel2_JumpNext_99B7
334 label Label_99D7 SetSoundSequenceChannel2_OnNegative_99D7
335 label Label_99E2 LookupActorTileId
336 label Label_99E4 LookupActorTileIdAlt
337 label Label_9A02 LookupActorTileIdAlt_OnCarryClear_9A02
338 label Label_9A24 StoreActorCoordinates
339 label Label_9A2E StoreActorCoordinatesAlt
340 label Label_9A36 StoreActorCoordinatesAlt_OnNonnegative_9A36
341 label Label_9A3F FlipActorFacing
342 label Label_9A4E SpawnActorPair
343 label Label_9A6B SpawnActorPairAlt
344 label Label_9ABC SpawnActorPairAlt_OnNonzero_9ABC
345 label Label_9ACE SpawnActorPairAlt_OnNonzero_9ACE
346 label Label_9AD3 SpawnActorPairAlt_JoinBranchPaths_9AD3
347 label Label_9AD8 SpawnActorPairAlt_OnNonzero_9AD8
348 label Label_9AE8 RunBytecodeInterpreter
349 label Label_9B05 DispatchThroughPointer
350 label Label_9B08 DispatchThroughPointer_JoinBranchPaths_9B08
351 label Label_9B18 DispatchThroughPointer_OnNonzero_9B18
352 label Label_9B25 RunBytecodeProgram
353 label Label_9B4C RunBytecodeProgram_OnNonnegative_9B4C
354 label Label_9B64 RunBytecodeProgram_OnNonnegative_9B64
355 label Label_9B72 RunBytecodeProgram_OnNonnegative_9B72
356 label Label_9BA1 RunBytecodeProgram_OnZero_9BA1
357 label Label_9BB0 RunBytecodeProgram_OnNonzero_9BB0
358 label Label_9BB4 RunBytecodeProgram_OnNonzero_9BB4
359 label Label_9BD9 RunBytecodeProgram_OnNonzero_9BD9
360 label Label_9BDD RunBytecodeProgram_OnNonzero_9BDD
361 label Label_9BF3 RunBytecodeProgram_OnCarryClear_9BF3
362 label Label_9C2C RunBytecodeProgram_OnZero_9C2C
363 label Label_9C2E RunBytecodeProgram_OnNonnegative_9C2E
364 label Label_9C4C RunBytecodeProgram_OnNonnegative_9C4C
365 label Label_9C52 RunBytecodeProgram_OnNonnegative_9C52
366 label Label_9C66 RunBytecodeProgram_OnCarryClear_9C66
367 label Label_9C71 RunBytecodeProgram_OnZero_9C71
368 label Label_9C73 RunBytecodeProgram_JoinBranchPaths_9C73
369 label Label_9C84 RunBytecodeProgram_OnNonzero_9C84
370 label Label_9C8D RunBytecodeProgram_OnCarryClear_9C8D
371 label Label_9C91 RunBytecodeProgram_JoinBranchPaths_9C91
372 label Label_9CAD RunBytecodeProgram_Return_9CAD
373 label Label_9CBB ResetBytecodeState
374 label Label_9CDB ResetBytecodeState_OnCarryClear_9CDB
375 label Label_9CE5 ResetBytecodeState_OnCarryClear_9CE5
376 label Label_9D04 ResetBytecodeState_OnNonnegative_9D04
377 label Label_9D0D ResetBytecodeState_OnCarrySet_9D0D
378 label Label_9D10 ResetBytecodeState_OnNonzero_9D10
379 label Label_9D39 ResetBytecodeState_OnZero_9D39
380 label Label_9D4A ResetBytecodeState_OnZero_9D4A
381 label Label_9D4E CopyActorCoordinates
382 label Label_9D61 CopyActorCoordinates_OnCarryClear_9D61
383 label Label_9DA2 CopyActorCoordinates_OnNonzero_9DA2
384 label Label_9DB6 CopyActorCoordinates_OnZero_9DB6
385 label Label_9DBB CopyActorCoordinates_OnNonzero_9DBB
386 label Label_9DD0 CopyActorCoordinates_OnCarryClear_9DD0
387 label Label_9DD4 CopyActorCoordinates_OnCarryClear_9DD4
388 label Label_9DD6 SetActorBounds
389 label Label_9DE6 LoadActorTileIndex
390 label Label_9E02 LoadActorTileIndex_OnCarrySet_9E02
391 label Label_9E19 LoadActorTileIndex_OnZero_9E19
392 label Label_9E37 LoadActorTileIndex_OnNonzero_9E37
393 label Label_9E4B LoadActorTileIndex_OnZero_9E4B
394 label Label_9E50 LoadActorTileIndex_OnNonzero_9E50
395 label Label_9E65 LoadActorTileIndex_OnCarryClear_9E65
396 label Label_9E69 LoadActorTileIndex_OnCarryClear_9E69
397 label Label_9E6B LoadActorTileIndex_OnNonzero_9E6B
398 label Label_9E6E UpdateActorFacing
399 label Label_9E7F QueueNametableWrite
400 label Label_9E87 QueueNametableWrite_OnNonzero_9E87
401 label Label_9E89 QueueNametableWrite_OnNonnegative_9E89
402 label Label_9F14 FlushNametableWrite
403 label Label_9F2A FlushNametableWrite_JoinBranchPaths_9F2A
404 label Label_9F4B UpdateActorMovement
405 label Label_9F54 MoveActorByOpcode
406 label Label_9F7F MoveActorByOpcode_JoinBranchPaths_9F7F
407 label Label_9F83 MoveActorByOpcode_JoinBranchPaths_9F83
408 label Label_9FAC MoveActorByOpcode_OnCarryClear_9FAC
409 label Label_9FB8 MoveActorByOpcode_OnNonzero_9FB8
410 label Label_9FBA MoveActorByOpcode_JoinBranchPaths_9FBA
411 label Label_9FBB MoveActorByOpcode_Return_9FBB
412 label Label_9FC2 MoveActorByOpcode_Continue_9FC2
413 label Label_9FC9 MoveActorByOpcode_Continue_9FC9
414 label Label_9FD0 MoveActorByOpcode_Continue_9FD0
415 label Label_9FD7 MoveActorByOpcode_Continue_9FD7
416 label Label_9FDF AddToNametableValue
417 label Label_9FEF AddToNametableValue_Return_9FEF
418 label Label_9FFA AddToNametableValue_JumpNext_9FFA
419 label Label_A002 SubtractFromNametableValue
420 label Label_A012 SubtractFromNametableValue_Return_A012
421 label Label_A01D ProcessBytecodeOpcode
422 label Label_A060 ProcessBytecodeOpcode_OnCarrySet_A060
423 label Label_A062 ProcessBytecodeOpcode_JoinBranchPaths_A062
424 label Label_A07B ProcessBytecodeOpcode_JoinBranchPaths_A07B
425 label Label_A085 ComputeBytecodeOffset
426 label Label_A08B ComputeBytecodeOffset_OnNonzero_A08B
427 label Label_A09F ComputeBytecodeOffset_OnCarryClear_A09F
428 label Label_A0A5 ResetBytecodeAccumulator
429 label Label_A0AD ResetBytecodeAccumulator_OnNonzero_A0AD
430 label Label_A0C2 ResetBytecodeAccumulator_OnCarryClear_A0C2
431 label Label_A0C6 ResetBytecodeAccumulatorAlt
432 label Label_A0CE ResetBytecodeAccumulatorAlt_OnNonzero_A0CE
433 label Label_A0EC ResetBytecodeAccumulatorAlt_OnCarryClear_A0EC
434 label Label_A0F4 AdvanceBytecodeProgram
435 label Label_A0FB ResetBytecodeStateAlt
436 label Label_A105 ResetBytecodeStateAlt_OnNonzero_A105
437 label Label_A122 ResetBytecodeStateAlt_OnCarryClear_A122
438 label Label_A12E ComputeActorTileRow
439 label Label_A14F ComputeActorTileRow_OnNonnegative_A14F
440 label Label_A157 ComputeActorTileRow_JoinBranchPaths_A157
441 label Label_A15D ResetBytecodePointers
442 label Label_A165 ResetBytecodePointers_OnNonzero_A165
443 label Label_A179 ResetBytecodePointers_OnCarryClear_A179
444 label Label_A17F RunActorScript
445 label Label_A1A5 RunActorScript_OnCarrySet_A1A5
446 label Label_A1C3 RunActorScript_OnZero_A1C3
447 label Label_A1E3 RunActorScript_OnNonnegative_A1E3
448 label Label_A1F1 RunActorScript_OnNonnegative_A1F1
449 label Label_A201 RunActorScript_OnNonzero_A201
450 label Label_A246 RunActorScript_OnZero_A246
451 label Label_A250 LoadActorConfigByte
452 label Label_A253 ComputeActorConfigOffset
453 label Label_A25F CopyConfigBytes
454 label Label_A261 CopyConfigBytes_OnNonnegative_A261
455 label Label_A270 LoadActorConfigRecord
456 label Label_A28D LoadActorConfigRecord_JoinBranchPaths_A28D
457 label Label_A298 CompareConfigValue
458 label Label_A2BD CompareConfigValue_JoinBranchPaths_A2BD
459 label Label_A2C8 ReturnFromConfigLoad
460 label Label_A2C9 LoadActorConfigFields
461 label Label_A2D8 LoadActorConfigFields_OnZero_A2D8
462 label Label_A2EB LoadActorConfigFields_OnNegative_A2EB
463 label Label_A2F1 LoadActorConfigFields_OnNonzero_A2F1
464 label Label_A305 LoadActorConfigFields_OnZero_A305
465 label Label_A30B LoadActorConfigFields_OnNonzero_A30B
466 label Label_A316 StoreActorPaletteByte
467 label Label_A32A StoreActorPaletteByte_OnZero_A32A
468 label Label_A32C StoreActorControlByte
469 label Label_A334 StoreActorControlByte_OnZero_A334
470 label Label_A338 ReadActorConfigByte
471 label Label_A388 ReadActorConfigByte_JoinBranchPaths_A388
472 label Label_A3A5 ReadActorConfigByte_JoinBranchPaths_A3A5
473 label Label_A3B1 ReadActorConfigByte_OnNonzero_A3B1
474 label Label_A3C9 ReadActorConfigByte_OnCarrySet_A3C9
475 label Label_A3E9 ReadActorConfigByte_OnCarrySet_A3E9
476 label Label_A3F1 ReadActorConfigByte_OnNonzero_A3F1
477 label Label_A3FA ReadActorConfigByte_OnNonzero_A3FA
478 label Label_A406 ReadActorConfigByte_JoinBranchPaths_A406
479 label Label_A40A ReadActorConfigByte_OnCarrySet_A40A
480 label Label_A40D ReadActorConfigByte_OnNonzero_A40D
481 label Label_A418 ReadActorConfigByte_OnZero_A418
482 label Label_A423 ReadActorConfigByte_OnNonzero_A423
483 label Label_A428 ReadActorConfigByte_OnCarrySet_A428
484 label Label_A430 ReadActorConfigByte_JoinBranchPaths_A430
485 label Label_A435 CompareActorConfigValue
486 label Label_A44E CompareActorConfigValue_OnZero_A44E
487 label Label_A459 CompareActorConfigValue_OnZero_A459
488 label Label_A464 CompareActorConfigValue_OnZero_A464
489 label Label_A46D CompareActorConfigValue_OnNonzero_A46D
490 label Label_A46F StoreActorConfigResult
491 label Label_A475 StoreActorConfigResult_JoinBranchPaths_A475
492 label Label_A482 LoadActorConfigAlt
493 label Label_A48D LoadActorConfigAlt_OnZero_A48D
494 label Label_A49B LoadActorConfigAlt_OnZero_A49B
495 label Label_A49F StoreActorConfigResultAlt
496 label Label_A4A5 StoreActorConfigResultAlt_OnZero_A4A5
497 label Label_A4AA LoadActorFacingFlag
498 label Label_A4B5 LoadActorFacingFlag_OnNonzero_A4B5
499 label Label_A4BA LoadActorFacingFlag_OnCarryClear_A4BA
500 label Label_A4C2 LoadActorFacingFlag_JoinBranchPaths_A4C2
501 label Label_A4C7 LoadActorConfigBlock
502 label Label_A4DF TestSoundChannelState
503 label Label_A4F1 TestSoundChannelState_OnNonzero_A4F1
504 label Label_A4F2 SetSoundSequenceChannel2Alt
505 label Label_A4FF FlipObjectIndex
506 label Label_A508 LookupObjectIndex
507 label Label_A512 UpdateObjectSlots
508 label Label_A51B AdvanceObjectSlot
509 label Label_A522 AdvanceObjectSlot_OnNonzero_A522
510 label Label_A52D AdvanceObjectSlot_OnCarrySet_A52D
511 label Label_A532 AdvanceObjectSlot_OnCarryClear_A532
512 label Label_A583 AdvanceObjectSlot_OnNegative_A583
513 label Label_A5DD WriteNametableBytes
514 label Label_A5DF WriteNametableBytes_OnNonnegative_A5DF
515 label Label_A660 SetSoundSequenceChannel4
516 label Label_A67F SetSoundSequenceChannel4_OnZero_A67F
517 label Label_A68E UpdateObjectList
518 label Label_A695 UpdateObjectListEntry
519 label Label_A6BE UpdateObjectListEntry_OnNegative_A6BE
520 label Label_A6DF UpdateObjectListEntry_OnNonzero_A6DF
521 label Label_A6EB UpdateObjectListEntry_OnZero_A6EB
522 label Label_A6EF UpdateObjectListEntry_OnZero_A6EF
523 label Label_A6F8 UpdateObjectCollisions
524 label Label_A70D UpdateObjectCollisions_OnNonzero_A70D
525 label Label_A714 UpdateObjectCollisions_OnNonzero_A714
526 label Label_A728 UpdateObjectCollisions_OnNonzero_A728
527 label Label_A729 UpdateObjectCollisions_OnCarryClear_A729
528 label Label_A73D UpdateObjectCollisions_OnNonzero_A73D
529 label Label_A745 UpdateObjectCollisions_OnNonzero_A745
530 label Label_A758 UpdateObjectCollisions_OnNonzero_A758
531 label Label_A75D UpdateObjectCollisions_OnNonzero_A75D
532 label Label_A773 UpdateObjectCollisions_OnCarryClear_A773
533 label Label_A77F UpdateObjectCollisions_OnCarryClear_A77F
534 label Label_A78F UpdateObjectCollisions_JoinBranchPaths_A78F
535 label Label_A79B UpdateObjectCollisions_OnZero_A79B
536 label Label_A79C UpdateObjectCollisions_OnZero_A79C
537 label Label_A79F CheckObjectScroll
538 label Label_A7B0 CheckObjectScroll_OnNonzero_A7B0
539 label Label_A7B8 CheckObjectScroll_OnZero_A7B8
540 label Label_A7BF CheckObjectScroll_OnNonnegative_A7BF
541 label Label_A7CA CheckObjectScroll_OnNegative_A7CA
542 label Label_A7E1 CheckObjectScroll_OnNonzero_A7E1
543 label Label_A7E8 CheckObjectScroll_OnNonzero_A7E8
544 label Label_A7FD CheckObjectScroll_JoinBranchPaths_A7FD
545 label Label_A800 CheckObjectScroll_OnNonnegative_A800
546 label Label_A82F ClearScrollLatchAlt
547 label Label_A833 ClearScrollLatchAlt_OnCarryClear_A833
548 label Label_A834 UpdateObjectSprite
549 label Label_A842 UpdateObjectSprite_OnCarryClear_A842
550 label Label_A856 UpdateObjectSprite_OnCarrySet_A856
551 label Label_A862 UpdateObjectSprite_OnZero_A862
552 label Label_A884 SetObjectFlags
553 label Label_A89D SetObjectFlags_OnCarryClear_A89D
554 label Label_A8D1 AdvanceObjectFrame
555 label Label_A8E9 TestObjectActive
556 label Label_A8F9 TestObjectActive_OnNonzero_A8F9
557 label Label_A916 TestObjectActive_OnNonnegative_A916
558 label Label_A936 TestObjectActive_OnNonzero_A936
559 label Label_A949 UpdateObjectAnimations
560 label Label_A952 UpdateObjectAnimation
561 label Label_A982 UpdateObjectAnimation_OnCarryClear_A982
562 label Label_A991 UpdateObjectAnimation_JoinBranchPaths_A991
563 label Label_A992 UpdateObjectTimer
564 label Label_A99E DecrementObjectCounter
565 label Label_A9A4 DecrementObjectCounter_OnZero_A9A4
566 label Label_A9AA DecrementObjectCounter_JoinBranchPaths_A9AA
567 label Label_A9AB UpdateObjectState
568 label Label_A9C9 UpdateObjectState_OnCarrySet_A9C9
569 label Label_A9CD UpdateObjectState_OnZero_A9CD
570 label Label_A9D6 UpdateObjectState_OnNegative_A9D6
571 label Label_A9D8 ToggleScrollRegionFlip
572 label Label_A9E9 ToggleScrollRegionFlip_OnNonzero_A9E9
573 label Label_A9EA ToggleScrollRegionFlip_OnCarrySet_A9EA
574 label Label_A9FF BuildObjectList
575 label Label_AA55 ToggleScrollRegionFlip_OnCarrySet_AA55
576 label Label_AA56 ReadControllers
577 label Label_AA63 ReadControllerShiftRegister
578 label Label_AA69 ReadControllerShiftRegister_OnNonzero_AA69
579 label Label_AA82 ReadControllerShiftRegister_JoinBranchPaths_AA82
580 label Label_AA98 ReadControllerShiftRegister_OnZero_AA98
581 label Label_AA9D ReadControllerShiftRegister_OnCarrySet_AA9D
582 label Label_AAA1 ReadControllerShiftRegister_OnCarrySet_AAA1
583 label Label_AAA8 ReadControllerShiftRegister_OnCarrySet_AAA8
584 label Label_AAAE ReadControllerShiftRegister_OnCarryClear_AAAE
585 label Label_AAB4 ReadControllerShiftRegister_OnCarrySet_AAB4
586 label Label_AAB8 StoreControllerButtonBits
587 label Label_AAC0 StoreControllerButtonBits_OnZero_AAC0
588 label Label_AACC StoreControllerButtonBits_OnZero_AACC
589 label Label_AACD EnableRendering
590 label Label_AADC DisableRenderingAndClearNametables
591 label Label_AAEF ClearNametablePattern
592 label Label_AAFF ClearNametablePattern_OnNonzero_AAFF
593 label Label_AB0B ClearNametablePattern_OnNonzero_AB0B
594 label Label_AB68 CopyPaletteFromTable
595 label Label_AB7D CopyPaletteFromTable_OnNonnegative_AB7D
596 label Label_AB98 LoadShadowOamBlock
597 label Label_ABA3 FillShadowOamBlock
598 label Label_ABA8 FillShadowOamBlock_OnNonnegative_ABA8
599 label Label_ABB1 UploadPalette
600 label Label_ABC4 UploadPalette_OnCarryClear_ABC4
601 label Label_ABE4 ApplyPpuScrollAndControl
602 label Label_ABF7 ShiftAccumulatorRight4
603 label Label_ABFC ClearOamShadow
604 label Label_AC03 ClearOamShadow_OnNonzero_AC03
605 label Label_AC0D SelectLevelVramWriter
606 label Label_AC3B SetLevelVramStream
607 label Label_AC43 FillAttributeBlock
608 label Label_AC4C WriteAttributeBlock
609 label Label_AC56 WriteAttributeBlock_OnNonzero_AC56
610 label Label_AC62 LoadAttributeStream
611 label Label_AC78 SetPpuAddressHighAnd40
612 label Label_AC82 WriteCompressedVramStream
613 label Label_AC88 AdvanceSourceByte
614 label Label_AC96 DecodeVramStreamToken
615 label Label_AC9E AdvanceSourceByte_OnCarrySet_AC9E
616 label Label_ACA1 AdvanceSourceByte_OnZero_ACA1
617 label Label_ACA7 WriteVramRunToken
618 label Label_ACB5 AdvanceSourceByte_OnNonzero_ACB5
619 label Label_ACC9 AdvanceDestinationWord
620 label Label_ACD7 AdvanceCountWord
621 label Label_ACE5 WithRenderingEnabled
622 label Label_ACF5 WriteCompressedVramBlocks
623 label Label_AD01 WriteCompressedVramBlocks_OnNonzero_AD01
624 label Label_AD19 ComputeCollisionBits
625 label Label_AD36 ComputePlayerOverlapBits
626 label Label_AD71 ComputePlayerOverlapBits_OnCarrySet_AD71
627 label Label_AD73 ComputePlayerOverlapBits_OnNonzero_AD73
628 label Label_AD7A ComputePlayerOverlapBits_JoinBranchPaths_AD7A
629 label Label_AD84 ComputePlayerOverlapBits_OnCarrySet_AD84
630 label Label_AD8B ComputePlayerOverlapBits_OnZero_AD8B
631 label Label_AD91 ComputePlayerOverlapBits_OnCarrySet_AD91
632 label Label_AD94 ComputePlayerOverlapBits_JoinBranchPaths_AD94
633 label Label_ADAD ComputePlayerOverlapBits_OnNonnegative_ADAD
634 label Label_ADAF ComputePlayerOverlapBits_OnNonzero_ADAF
635 label Label_ADB1 ComputePlayerOverlapBits_OnCarryClear_ADB1
636 label Label_ADC2 ComputePlayerOverlapBits_JoinBranchPaths_ADC2
637 label Label_AE01 ComputePlayerOverlapBits_OnCarrySet_AE01
638 label Label_AE03 ComputePlayerOverlapBits_OnNonzero_AE03
639 label Label_AE0B ComputePlayerOverlapBits_OnNegative_AE0B
640 label Label_AE0F ComputePlayerOverlapBits_JoinBranchPaths_AE0F
641 label Label_AE11 ComputePlayerOverlapBits_OnNonzero_AE11
642 label Label_AE15 ComputePlayerOverlapBits_OnCarryClear_AE15
643 label Label_AE16 ComputePlayerOverlapBits_OnZero_AE16
644 label Label_AE45 SetDefaultOverlapBits
645 label Label_AE51 SetDefaultOverlapBits_OnNonzero_AE51
646 label Label_AE53 SetDefaultOverlapBits_OnNonzero_AE53
647 label Label_AE56 SetDefaultOverlapBits_OnCarryClear_AE56
648 label Label_AE63 SetDefaultOverlapBits_OnCarrySet_AE63
649 label Label_AE72 SetDefaultOverlapBits_OnCarrySet_AE72
650 label Label_AE80 SetDefaultOverlapBits_OnNegative_AE80
651 label Label_AE82 SetDefaultOverlapBits_OnNonzero_AE82
652 label Label_AE88 SetDefaultOverlapBits_OnCarrySet_AE88
653 label Label_AE90 SetDefaultOverlapBits_OnNegative_AE90
654 label Label_AE92 SetDefaultOverlapBits_OnNonzero_AE92
655 label Label_AE96 SetDefaultOverlapBits_OnNonzero_AE96
656 label Label_AE9B ComputeEdgeOverlapBits
657 label Label_AEBE ComputeEdgeOverlapBits_OnNonzero_AEBE
658 label Label_AECA ComputeEdgeOverlapBits_JoinBranchPaths_AECA
659 label Label_AEDC ComputeEdgeOverlapBits_JoinBranchPaths_AEDC
660 label Label_AEE3 ComputeEdgeOverlapBits_OnZero_AEE3
661 label Label_AEE9 ComputeEdgeOverlapBits_JoinBranchPaths_AEE9
662 label Label_AEEA ComputeEdgeOverlapBits_JoinBranchPaths_AEEA
663 label Label_AEFA ComputeEdgeOverlapBits_OnZero_AEFA
664 label Label_AF01 ComputeEdgeOverlapBits_JoinBranchPaths_AF01
665 label Label_AF24 ComputeEdgeOverlapBits_JoinBranchPaths_AF24
666 label Label_AF25 InitializeSoundEngine
667 label Label_AF3B UpdateSoundFrame
668 label Label_AF40 UpdateAllSoundChannels
669 label Label_AF43 UpdateSoundChannel
670 label Label_AF55 AdvanceSoundChannelNote
671 label Label_AF68 UpdateSoundChannel_JoinBranchPaths_AF68
672 label Label_AF69 WriteSoundChannelState
673 label Label_AF6B RebuildApuEnableMask
674 label Label_AF73 StartSoundChannelNote
675 label Label_AFAB AdvanceSoundSequencePointer
676 label Label_AFC5 ComputeEnvelopeMask
677 label Label_AFD5 ComputeEnvelopeMask_OnZero_AFD5
678 label Label_AFD9 ComputeTonePeriod
679 label Label_B000 ShiftNoteTableIndex
680 label Label_B007 WriteToneRegisters
681 label Label_B028 ComputeTonePeriod_OnCarrySet_B028
682 label Label_B029 WriteFixedToneRegisters
683 label Label_B036 ComputeTonePeriod_OnCarrySet_B036
684 label Label_B037 ComputeTonePeriod_OnCarrySet_B037
685 label Label_B03A ReadNoteDuration
686 label Label_B049 StoreNoteDuration
687 label Label_B058 ReadNoteDuration_OnZero_B058
688 label Label_B059 StoreShortNoteDuration
689 label Label_B05D BuildApuChannelMask
690 label Label_B062 WriteApuEnable
691 label Label_B069 WriteApuEnable_OnNegative_B069
692 label Label_B06C ApplySoundCommand
693 label Label_B083 WriteApuControlRegister
694 label Label_B08C AdvanceSoundSequenceStep
695 label Label_B08E AdvanceSoundSequenceStepAlt
696 label Label_B095 ReturnFromSoundCommand
697 label Label_B096 ReadLoopFlag
698 label Label_B09D HandleNoteTerminator
699 label Label_B0A9 HandleSustainCounter
700 label Label_B0B3 LoadSoundSequenceStep
701 label Label_B0BB LoadSoundSequenceStep_OnCarrySet_B0BB
702 label Label_B0C6 DecrementSustainCounter