Files
disasm/CNROM/World Class Track Meet (U)/routinemap.tsv
T
tmerritt 691b2bc23c Xevious (U): Pass 1 disassembly
The first _wip project to get a real disassembly.  4,165 instructions /
8,444 code bytes (25.8%), 24,324 data bytes, 0 unclassified -- every byte
of the 32 KB PRG is now classified as code or data.

The split needed three stages, all recorded in prg.s's header:

  * nesdis.py --undocumented --auto-seed at base $8000 gave 3,272
    instructions / 6,555 bytes.  The undocumented opcodes matter here: the
    trace stops dead at the first one it cannot decode.
  * Four hand-seeded entries ($C08B, $DC1E, $E0D5, $E134).  Each is a
    branch target from decoded code that sat inside an untraced data run,
    so the tracer never reached it.
  * A merged four-session Mesen Code Data Logger capture (kept as
    xevious_mesen.cdl) promoted 1,902 bytes from data to code and
    demoted 22 the trace had called code.

Two tool bugs fell out and are fixed here:

  * nesdis.py emitted the undocumented single-byte NOPs ($1A/$3A/$5A/
    $7A/$DA/$FA) as `nop`, which ca65 assembles as the *official* $EA --
    the rebuild stopped being byte-identical at $DF82.  The check now
    keys on the opcode byte, not just the addressing mode.  All three
    `make regen` pipelines (MUSCLE, Pyramid, Urban Champion) are
    unaffected and still reproduce prg.s byte for byte.

  * cdl_reclass.py left the original data-block header in place when the
    CDL split that block, so the file ended up with two region headers
    describing overlapping spans (20 of them here).  The header is now
    dropped with the block it describes; the promoted projects that use
    the tool are byte-for-byte unchanged.

The project README has the power-on flow analysis.  The most interesting
find is at $FC45: the reset path compares RAM $0100-$0107 against the
ASCII string "Kei Cros", and the copyright text at $FF1E reads
"MAIN: KEI CROSS.  SOUND: UHOHOY OHNOGI."  The OAM is at $0700, not
$0200 -- the NMI handler does LDA #$07 / STA $4014.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Add explicit `make wip` / `make wipclean` targets for the _wip tier

The root Makefile's all / clean / <MAPPER> targets deliberately name only
the promoted mapper folders, so nothing in them reaches into _wip/.  Give
the pre-promotion tier its own opt-in targets instead of the manual
`for d in _wip/*/*/; do make -C "$d"; done` loop:

  make wip          # build + verify every _wip/<MAPPER>/<Project>/
  make wipclean     # clean the build artifacts in that tier

Both the Makefile and the four documents that describe the tier (README,
TODO, WIP, AGENTS) are updated together, so the tree stays consistent.

The same commit records Xevious (U) reaching Pass 2 in those documents:
all 487 labels named, every branch and call symbolic, zero Label_XXXX and
zero raw $XXXX operands left.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Update the _wip/ tier documentation; fix the make wip target and the mirroring bug

The WIP tier's four documents (WIP.md, README.md, TODO.md, AGENTS.md) had
drifted away from the tree.  Every number in them was re-derived from the
ROMs and the folder layout rather than carried forward.

Counts and structure
  - The tier holds 854 projects across 29 mapper folders, not "856 across
    30".  Xevious (U) and Zanac (U) were promoted on 2026-10-20 and their
    _wip/ folders were left behind as residue -- "git mv" moves only the
    tracked files, so the old folder survived with its build artifacts and a
    stale README.  Both are removed now; the promotion procedure documents
    the step so it does not recur.
  - _wip/MAPPER8/ holds a copy of the already-promoted Mermaids of
    Atlantis (U) and is excluded from every count and table.
  - Pass 0 skeletons: 852 (was 855).  Xevious (U) left the tier, so the
    two projects with a real disassembly are Golf (JU) and Volleyball (U).
  - PRG sizes 2 / 150 / 42 / 522 / 127 / 10 / 1; 226 projects with no CHR;
    38 keep the CPU-address linker layout; 37 are mapper 0.
  - Every inventory row was re-checked against its ROM: PRG/CHR size,
    mirroring, all three vectors, and the battery / four-screen / footer
    notes.  854 of 854 rows now match.

Fixes
  - The root Makefile used $(WIP) but never defined it, so "make wip" and
    "make wipclean" expanded to "for m in /*/" -- they walked the
    filesystem root instead of the tier.  "WIP := _wip" is now defined, and
    "make wip" builds and verifies the whole tier: 855 of 855 passed, 0
    failures.
  - make_skeleton.py masked header byte 6 with 0x03, so the battery bit
    (bit 1) leaked into the mirroring value and 56 battery-backed ROMs'
    READMEs claimed "Four-screen" while their own "Four-screen VRAM" row
    said "no".  The mask is now 0x01 and the 56 READMEs are corrected.
  - Golf (JU)'s README still described the pre-flatten copilot/ folder and
    the old PRG-only compare; it now describes the whole-ROM build.
  - Pyramid (U)'s audit comments are canonical again, so Golf (JU) is the
    only project in the tree still on the pre-canonical spelling.

New in WIP.md
  - Byte 7's lower nybble is non-zero on 58 of the ROMs -- 55 carry the
    literal "DiskDude!" watermark, two "DisNi0330", one "byKH+KEN".  Only
    the upper nybble carries mapper bits, so the noise is harmless.
  - The twelve ROMs that set the four-screen bit, split by whether their
    board actually supports four-screen VRAM.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Promote Volleyball (U) from _wip/NROM/ to NROM/

Volleyball (U) reached Pass 3 before promotion, so this is a promotion of a
finished disassembly rather than a Pass 0 skeleton.

The disassembly
  - 11,395 instructions / 23,926 code bytes (73.0 % of the PRG image),
    8,842 data bytes, 0 unclassified.
  - The split needed the game-state dispatch table at $85E1 declared to the
    tracer (--table 85E1:11) -- without it only 66 % of the image traced --
    plus a Mesen Code Data Logger capture taken while a random-input bot
    played the attract demo, which promoted 1,757 bytes from data to code.
  - Pass 2 named all 1,989 labels: 730 read out of the code by hand, 1,221
    internal branch targets derived mechanically.  Zero Label_XXXX, zero raw
    $XXXX call or branch operands, zero SubC residue.
  - Pass 3 named the zero page, the $0500 ball structure and all 37 data
    blocks.  apply_symbols.py --report: 0 pending substitutions, 0
    multi-alias residue.  align_audit_comments.py: no column drift.
  - cdl_check.py cross-checks the finished prg.s against the capture: 0
    CDL-code bytes not covered by an instruction, 0 CDL-data bytes that
    start one.
  - 29 neutral ZpXX zero-page slots remain, each with its reason recorded
    in locals.inc, as the promotion rules allow.

The promotion
  - git mv "_wip/NROM/Volleyball (U)" "NROM/Volleyball (U)".  Mapper 0, so
    it lands in NROM/.  The whole-ROM build was already in place, so there
    was no build surgery; the project builds byte-identically at its new
    home and the old folder is gone (git mv moves the untracked build
    artifacts too, so no residue was left behind).
  - Root README.md: new inventory row 39 and a per-project detail section,
    plus the WIP-tier counts.  The detail sections for Xevious (U) and
    Zanac (U) were numbered one too high against the inventory rows and
    are now aligned; a leftover editing note in the same place is gone.
  - WIP.md: the Volleyball row leaves the inventory, and the tier is now
    853 projects across 29 mapper folders (36 in _wip/NROM/), 852 of them
    Pass 0 skeletons.  Golf (JU) is the only project left in the tier with
    a real disassembly.
  - TODO.md and AGENTS.md: the same counts, and the promoted tier is now
    40 projects (39 under NROM/).

Verified: make wip builds and verifies the whole tier (854 of 854 passed,
0 failures) and make builds the promoted tier (39 of 39 passed).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Rename NROM/Pyramid (U) to NROM/Pyramid (U) (Sachen)

The promoted inventory row had read "Pyramid (U) (Sachen)" since the
project was promoted on 2026-10-20, but the folder was named "Pyramid (U)" --
so the row pointed at a folder that did not exist.  The folder now matches
the row, and the project's own README title, its ROM file name
("Pyramid (U) (Sachen).nes") and the parenthetical convention the rest of
the promoted tier already uses (Popeye (JU) (PRG 0/1), Raid on Bungeling
Bay (U) [a2], Pac-Man (Tengen) (U)).

What changed inside the project
  - The Makefile's regen target passes --project "Pyramid (U) (Sachen)", so
    the tracer writes the matching header line.  prg.s and locals.inc were
    updated to that header line and nothing else -- the disassembly is
    byte-identical to before.
  - make regen still reproduces prg.s and locals.inc byte for byte.
  - The project's README's build-verification line now names the new folder.

References updated: the root README.md (inventory prose, the row-33 detail
section, the build-status table, and the notable-observations bullet),
TODO.md (the promoted-projects table and the Pyramid notes) and AGENTS.md
(the recently-promoted list and the unlicensed-titles quirk).

Verified: make builds the promoted tier (39 of 39 passed) and the project
rebuilds byte-identically at its new path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Rebuild Mermaids of Atlantis (U): bank-aware Pass 1, Pass 2/3 names

The promoted project did not build: a Pass 2 rename had been applied
half-way, leaving eight undefined symbols and two jumps that pointed at
the wrong routine, while the root README already claimed the project was
byte identical.  The _wip copy still built, because it held the un-renamed
Pass 1 source.

The disassembly is now derived from the ROM itself, with the Mesen Code
Data Logger as the oracle for the code/data split:

* _tools/banked_dis.py traces every MMC3 bank separately, each with the CPU
  window it is visible at, seeded from a CDL capture so the code a static
  trace cannot reach is disassembled too.  The CDL is the authority: a
  decode the CPU never fetched is dropped, and so is the fall-through
  behind a call whose target never returns (the game's dispatchers have
  their jump table right behind the call).
* One segment per bank (PRG0..PRG7) with its own .org, so the assembler
  knows the CPU address of every label while the linker still writes the
  bytes to the bank's file offset.  A flat segment cannot do both: a call
  would encode the file offset instead of the CPU address.
* Pass 2 names every label - 494 routines, no Label_XXXX and no raw
  $XXXX branch or jump operand left.  Pass 3 applies 13 semantic zero-page
  aliases and writes the routine headers.
* 8,075 bytes of code (12.3% of the 64 KB PRG), up from 200 bytes.

The banking turned out to be unusual and is documented: the fixed bank is
the fourth 8 KB bank (file $6000-$7FFF), not the last one, and the image
carries the reset stub and the vector table twice.  The live NMI vector
is $808F - the frame handler - while the copy at the end of the image
names $8189, which is a BRK in the first half.  The game's text table
lives at CPU $F1D6, which is the fixed window, and that is what settles
the question.

Also: the leftover _wip/MAPPER8 folder is removed, as it is for every
other promotion.

The project builds byte identical:

    Byte-identical ROM verified.

Add CHANGELOG.md: the pass history of every project

A project goes through four milestones - Pass 1 (the code/data split),
Pass 2 (the labels replaced by names), Pass 3 (the semantic naming) and
Promotion (the move into the top-level mapper folder) - and the history
of those milestones was scattered over the commit log, the project
READMEs and the root README.

CHANGELOG.md gathers it: one section per project with a row for each
milestone, the date, and a sentence saying what the milestone produced.
The numbers are the ones the project README and the root README already
carry - instruction count, code coverage, named labels, semantic
zero-page aliases, named data tables - so a reader can see at a glance
which projects are done and which are not.  Golf (JU), the only project
still in _wip/ with a real disassembly, is listed with its open
milestones, and the other 852 _wip/ projects are covered as a tier.

The requirement is now part of the workflow contract: PROMPTS.md gains a
"Pass 3: Changelog entry" section and a ninth checklist item, and
AGENTS.md points at the file.  A milestone and its changelog row go in
the same commit, so the changelog and the source never disagree.

Balloon Fight (JU): repair the audit trail and complete the routine headers

The per-instruction audit trail was stale by two bytes from
ResetInitializationData ($C085) onward.  5,944 of the 6,007 comments named
the wrong CPU address and PRG offset, because the three-byte .byte "HAL"
signature at $C082-$C084 had been counted as one byte when the trail was
first generated - the routine headers and the linker labels were right all
along, so the source and its own headers disagreed with each other.  The
trail was rebuilt from the ca65 -l listing with
_tools/repair_audit_comments.py, and every rewritten comment was re-checked
against prg.bin.  The comments were also moved into the canonical column-35
field: they had sat two spaces after the mnemonic, with no column discipline
at all, unlike every other promoted project.

All 63 routine headers now carry a ; Clobbers: block, so the headers carry
the full template AGENTS.md describes.  The blocks are derived, not written by
hand.  The new _tools/derive_clobbers.py takes the opcode from the audit
comment's byte list, so the addressing mode is exact and a data directive is
never mistaken for an instruction; it resolves the operand through
locals.inc and symbols.inc to name what is written; it follows the real
control flow, so a jsr to another named entry is a call (the callee's
clobbers count) while a branch or a fall-through is not; and it models
register preservation, so NmiHandler reports *no register* - it saves and
restores A, X and Y around the frame - and FlushPpuCommandPreserved reports
only A, because X and Y come back unchanged.

Two tools changed.  derive_clobbers.py is new.  align_audit_comments.py had
an off-by-one: it tested the indented code length against 31 instead of
against 35, so code texts of 28-31 characters were never padded into the
column.

The change is comments only.  The code text of all 8,538 lines is unchanged,
make still prints "Byte-identical ROM verified.", the 6,007 audit comments
still re-check against prg.bin, all 63 routine headers agree with the
instructions they describe, and every label agrees with reconstructed.lbl.
ReflectObjectYVelocity and UpdateSpecialObjectSystem moved out of locals.inc
and became labels in prg.s at their real addresses.

CHANGELOG.md becomes the repository's running log: a Pending list of the
changes to be put in the next commit, a History of the commits already made,
and the per-project milestone index at the end.  The next commit's message is
written from the Pending entries, so the two cannot drift apart.  PROMPTS.md
and AGENTS.md describe the new shape.  WIP.md drops the _wip/MAPPER8/ note:
the folder held a copy of Mermaids of Atlantis (U) that had already been
promoted.

World Class Track Meet (U): Pass 1, the code/data split

Pass 1 is done.  The split is 8,400 instructions / 18,028 code bytes (55.0 %)
of the 32 KB PRG, with 884 routine entries, 55 data blocks and 102 zero-page
aliases.  The PRG is CNROM (mapper 3) and maps whole at $8000-$FFFF, so the
linker moved the PRG segment from a .nes file offset to $8000 and the build
still compares byte identical.

Four dispatch tables had to be seeded by hand.  The event table at $F796 (5
entries) is read at $F780 and jumped to through `jmp ($001F)`.  The three
push-pointer tables - $BFC4 (16 entries), $BFE4 (2) and $E5F2 (7) - push a
handler address and `rts` into it, and the 6502's `rts` adds one to the
address it pops, so each table stores the entry address minus one; the seeds
are the table values plus one.  The tracer runs with --undocumented: the code
uses undocumented NMOS opcodes as ordinary code (ANC $37 at $BFF8, and the
RRA/RLA/SLO and NOP forms elsewhere).  Seeding the tables takes the coverage
from 27.8 % to 55.0 %.

$C0BE-$C0C5 is forced back to data: the IRQ vector $C0C0 points into the
middle of the `jmp $C047` at $C0BE, and the game never executes CLI, so the
vector is dead.  `make pass1` regenerates prg.s and locals.inc from prg.bin
and reproduces the committed prg.s byte for byte.

The project README records the split, the four dispatch tables, the dead IRQ
vector, the wrong CHR size field in the header, and what is still data.  The
milestone index in CHANGELOG.md gains the project; WIP.md, README.md and
AGENTS.md follow the tier counts and the layout.

nesdis.py gains a --mapping-note option, so the header's "PRG mapped at" line
can describe a board that is not NROM - CNROM's whole 32 KB at $8000-$FFFF is
not "mirrored to the upper half".

Replaces runs of $00 and $FF with .res <run>, <byte>

Golf (JU) and World Class Track Meet (U): Pass 2/3 complete, promoted from _wip/

- World Class Track Meet (U) - Pass 2 complete: all 884 Label_<addr>
  definitions replaced (651 semantic routine names + 233 Sub_<addr>), all 731
  raw $XXXX jsr/jmp call operands resolved to symbolic labels, all branch
  targets given role-based names; routinemap.tsv added; make stays
  byte-identical.
- World Class Track Meet (U) - Pass 3 complete: 24 semantic zero-page
  aliases applied via apply_symbols.py (0 residue), 78 neutral ZpXX slots
  documented with reasons in locals.inc, all hardware-register operands use
  symbols.inc names, project README rewritten with Pass 2/Pass 3 sections and
  data-table inventory; promoted out of _wip/CNROM/.
- World Class Track Meet (U) - project README documents the five event-table
  entries at $F796 and marks the olympics mode as not yet proven.
- Golf (JU) - audit comments converted from pre-canonical (; C000: A9 00)
  to the canonical ; CPU:$C000 PRG:0000  A9 00 form at column 35; 4,156
  comments re-aligned, comment/whitespace only, whole-ROM build stays
  byte-identical.
- Golf (JU) - 339 internal branch-target Label_ labels given role-based names
  via _tools/derive_branch_names.py; 0 raw $XXXX branch/jump operands remain.
- Golf (JU) - 275 zero-page operands substituted with locals.inc aliases via
  apply_symbols.py; 0 residue; promoted out of _wip/NROM/.
- Xevious (U) - runs of $FF padding replaced with .res <count>, $FF in prg.s;
  whole-ROM build stays byte-identical.
- Both projects promoted via git mv; leftover _wip/ folders removed; root
  README.md inventory rows added; WIP.md rows removed.

World Class Track Meet (U): apply zero-page symbol substitutions

Run apply_symbols.py to substitute ZpXX zero-page operands with
semantic locals.inc aliases (SlotState, GameMode, etc.) at proven
sites; 0 residue, whole-ROM build stays byte-identical.

Xevious (U): re-split Pass 1 from the Mesen CDL and decode the data tables

- Xevious (U) - Pass 1 re-split from the Mesen CDL (xevious_mesen.cdl) with
  _tools/cdl_reclass.py: 1,158 bytes data->code, 48 code->data, 42 labels
  emitted and 3 branch targets labelled; code 11,321->12,455 bytes
  (34.5%->38.0%), instructions 5,513->6,002. The 45 recovered entry points
  are named Sub_XXXX, so no Label_XXXX remains; six CDL-silent raw call
  operands are documented as residue.
- Xevious (U) - the 4,448-byte block at $A74B-$B8AA is split into six proven
  tables: VramWritePtrTable (15 pointers), VramWriteData, DataStreamPtrTable
  (16), ObjTilePtrTable (99), ObjTileData and DataStreamData. The $D833
  pointer table is corrected to base $D833 (4 entries; the old ObjCodePtrTable
  at $D834 was one byte late). $F957-$FAF5 is split into ObjSpeedTable,
  ObjSpeedTable2, SpriteLayoutPtrTable (19) and SpriteLayoutData;
  $FEE6-$FF1C into PaletteData and OamAttrTable. $F5D8 is decoded as
  TextTileData (font tile indices: PLAYER, GAME OVER, READY, SOLVALOU, LEFT,
  PAUSE); $F53C becomes AttrAddrTable, $F89E HandlerPtrTable and $EF3B
  SpriteLayoutData2. Project README rewritten with the corrected stats, a
  32-entry table inventory and the Pass 1 residue.
- _tools/cdl_reclass.py - preserve the data label(s) between a data-block
  header and its first .byte row when the block stays data; the $DF78 split
  dropped Data_DF78 and the rebuild failed with an undefined symbol.
- _tools/resolve_raw_branches.py - handle negative relative offsets
  (beq *-$0B); the pattern only matched *+$NN and *$NN.

Docs: refresh the tier counts to 41 promoted / 851 _wip, add the WCTM row

- Docs - tier counts refreshed to the post-promotion state across AGENTS.md,
  root README.md, WIP.md, TODO.md and CHANGELOG.md: 41 promoted projects
  (38 under NROM/, plus CNROM/World Class Track Meet (U), UNROM/Zanac (U) and
  MAPPER8/Mermaids of Atlantis (U)) and 851 _wip/ projects, every one of them
  a Pass 0 skeleton. The stale "39/40 promoted", "853 _wip", "Golf (JU) is
  still in _wip/" and "Golf is the last pre-canonical project" statements are
  corrected.
- Root README.md - the promoted inventory gained the missing World Class Track
  Meet (U) row (row 41, mapper 3, 32 KB PRG / 32 KB CHR), and the "All 38 are
  mapper 0 / 16 KB PRG" sentence is replaced with the actual split (36 of the
  41 rows are mapper 0 / 16 KB; Xevious and Volleyball are 32 KB, World Class
  Track Meet is mapper 3, Zanac mapper 2 and Mermaids mapper 8).
2026-10-21 11:36:32 -04:00

21 KiB

1F6FDReset
2F803NmiHandler
3F719ClearRam
4F743ClearOam
5F74FMainLoop
6F757MainLoop_NextSlot
7F77AMainLoop_RunTask
8F780TaskDispatch
9F78DFrameEnd
10F7DEEnableNmi
11F7A0TaskSlotStart
12F7CATaskSlotClear
13F7EATaskFrameWait
14F8BCInitDisplay
15F8D7WaitVblankStart
16F8DCWaitVblankEnd
17F8E6FrameDelay
18F8F5NmiPaletteUpdate
19D0F1PollControllers
20D32BEventTaskInit
218004EventTaskRun
22924CEventTaskB
23A8C8GameModeTask
24E0D5OlympicsScheduler
25F7F5DelayFrames
26BE63AudioChannelLoop
27A792ObjectUpdate
28A56FObjectDraw
29FBE3OamCopy
30985ESpritePosition
31A2DDObjectState
32F7CATaskSlotClear
33A12ESpriteDraw
34F7A0TaskSlotStart
35BEBFClearObjectSlot
3683EFSpriteSetup
37FC2BSpriteTile
38FA9DPaletteLoad
39C2C2ObjectCollision
40BF89SoundNote
41A870EventState
428000ShortDelay
43EF7CEventInit
44BE75SoundChannelStep
45BEDDSoundChanInit
46# ---- indirect-dispatch entry points (reached via push-pointer tables,
47# not via direct jsr/jmp/branch; exact per-routine role not statically
48# classified, so the address-derived Sub_ form is the honest residue) ----
498A08Sub_8A08
508D18Sub_8D18
51A02BSub_A02B
52BFE8Sub_BFE8
53BFF0Sub_BFF0
54BFF8Sub_BFF8
55C00ASub_C00A
56C015Sub_C015
57C029Sub_C029
58C037Sub_C037
59C04FSub_C04F
60C057Sub_C057
61C07BSub_C07B
62C083Sub_C083
63C097Sub_C097
64C0ADSub_C0AD
65C0D1Sub_C0D1
66C0F8Sub_C0F8
67C129Sub_C129
68C134Sub_C134
69E0EFSub_E0EF
70E16DSub_E16D
71E20DSub_E20D
72E2DESub_E2DE
73E42ASub_E42A
74E52CSub_E52C
75# ---- derived internal branch-target names ----
768000ShortDelay
778004EventTaskRun
78801BEventTaskRun_Loop
798050EventTaskRun_Loop2
808058EventTaskRun_OnNonzero
818059EventTaskRun_Loop3
828068EventTaskRun_Loop4
838075EventTaskRun_Loop5
848078EventTaskRun_Loop6
8580A7EventTaskRun_Loop7
8680AFEventTaskRun_Loop8
8780B4EventTaskRun_Loop9
8880C4EventTaskRun_Loop10
8980FEEventTaskRun_Loop11
908118Sub_8118
91815AEventTaskRun_Loop12
928170EventTaskRun_Loop13
938183EventTaskRun_Loop14
948184EventTaskRun_Loop15
958189EventTaskRun_Loop16
9681D3Sub_81D3
9781EEEventTaskRun_Loop17
988219EventTaskRun_Loop18
998221EventTaskRun_Loop19
1008249EventTaskRun_Loop20
1018265EventTaskRun_Loop21
102826CEventTaskRun_Loop22
103827CEventTaskRun_Loop23
104827DEventTaskRun_Loop24
10582B9EventTaskRun_Loop25
10682BASub_82BA
1078357EventTaskRun_Loop26
1088358Sub_8358
1098377EventTaskRun_OnNonzero2
11083B2EventTaskRun_Loop27
11183C3EventTaskRun_Loop28
11283C6Sub_83C6
11383EFSpriteSetup
1148409Sub_8409
1158416SpriteSetup_Loop
1168428SpriteSetup_Loop2
117842FSpriteSetup_Loop3
118843ASpriteSetup_Loop4
1198443SpriteSetup_Loop5
1208450SpriteSetup_Loop6
1218466SpriteSetup_Loop7
1228473SpriteSetup_Loop8
123847BSpriteSetup_Loop9
1248485SpriteSetup_Loop10
125848BSpriteSetup_Loop11
126848ESpriteSetup_Loop12
127849BSpriteSetup_Loop13
12884ACSpriteSetup_Loop14
12984B7SpriteSetup_Loop15
13084C2SpriteSetup_Loop16
13184C5Sub_84C5
13284D1SpriteSetup_Loop17
13384DBSpriteSetup_Loop18
13484DESpriteSetup_Loop19
1358512SpriteSetup_Loop20
1368528SpriteSetup_Loop21
137852BSpriteSetup_Loop22
1388539SpriteSetup_Loop23
1398547SpriteSetup_Loop24
1408557SpriteSetup_Loop25
1418575SpriteSetup_Loop26
142857ESpriteSetup_Loop27
1438581Sub_8581
144858BSpriteSetup_Loop28
14585B3Sub_85B3
14685C1Sub_85C1
14785CCSub_85CC
14885D3SpriteSetup_Loop29
14985E8SpriteSetup_Loop30
1508600SpriteSetup_Loop31
1518612SpriteSetup_Loop32
1528613SpriteSetup_Loop33
1538620SpriteSetup_Loop34
1548626SpriteSetup_OnCarryClear
1558627Sub_8627
1568636SpriteSetup_Loop35
157864ESpriteSetup_Loop36
158865ESpriteSetup_Loop37
159865FSpriteSetup_Loop38
1608660Sub_8660
161866ESpriteSetup_Loop39
1628677Sub_8677
163868CSpriteSetup_Loop40
164868FSpriteSetup_Loop41
16586B0SpriteSetup_Loop42
16686B6SpriteSetup_Loop43
16786BASpriteSetup_Loop44
16886ECSpriteSetup_Loop45
16986F1Sub_86F1
170870BSpriteSetup_Loop46
171874ESub_874E
1728758SpriteSetup_Loop47
173875BSub_875B
174879BSub_879B
17587A7SpriteSetup_Loop48
17687AASub_87AA
17787EASub_87EA
17887F6Sub_87F6
179881FSpriteSetup_Loop49
1808868Sub_8868
18188A8Sub_88A8
18288F9Sub_88F9
1838908Sub_8908
1848910Sub_8910
1858ABCSub_8ABC
1868AC7Sub_8AC7
1878AD5SpriteSetup_Loop50
1888ADESub_8ADE
1898AEASpriteSetup_Loop51
1908D42Sub_8D42
1918D45Sub_8D45
1928D93SpriteSetup_Loop52
1939141Sub_9141
1949150SpriteSetup_Loop53
19591CFSub_91CF
1969216SpriteSetup_Loop54
197924CEventTaskB
1989275EventTaskB_Loop
199927DEventTaskB_OnNonzero
200927EEventTaskB_Loop2
201928DEventTaskB_Loop3
2029294EventTaskB_Loop4
20392E2Sub_92E2
20492F8EventTaskB_Loop5
205931EEventTaskB_Loop6
206931FEventTaskB_Loop7
2079346EventTaskB_Loop8
2089347EventTaskB_Loop9
2099364EventTaskB_Loop10
210937BEventTaskB_Loop11
211937CEventTaskB_Loop12
21293A9EventTaskB_Loop13
21393B5EventTaskB_Loop14
21493BDSub_93BD
2159452EventTaskB_Loop15
2169453Sub_9453
2179477EventTaskB_OnNonzero2
21894B2EventTaskB_Loop16
21994BESub_94BE
22094E3Sub_94E3
22194FFSub_94FF
222950EEventTaskB_Loop17
2239515EventTaskB_Loop18
2249520EventTaskB_Loop19
2259529EventTaskB_Loop20
226953BEventTaskB_Loop21
2279555EventTaskB_Loop22
2289563EventTaskB_Loop23
2299585EventTaskB_Loop24
230959EEventTaskB_Loop25
23195B2Sub_95B2
23295B9EventTaskB_Loop26
23395BCEventTaskB_Loop27
23495CBEventTaskB_OnNonzero3
23595E1EventTaskB_Loop28
23695EBEventTaskB_OnNonzero4
2379601EventTaskB_Loop29
2389621EventTaskB_Loop30
2399631Sub_9631
2409649EventTaskB_Loop31
24196CCSub_96CC
242971ASub_971A
2439721EventTaskB_Loop32
2449757EventTaskB_Loop33
2459771EventTaskB_OnCarrySet
2469772EventTaskB_Loop34
24797A3EventTaskB_Loop35
24897BDEventTaskB_Loop36
24997EAEventTaskB_Loop37
25097EEEventTaskB_Loop38
2519803EventTaskB_Loop39
2529810Sub_9810
253981DSub_981D
254985DEventTaskB_Loop40
255985ESpritePosition
2569865SpritePosition_Loop
257986BSpritePosition_Loop2
2589889SpritePosition_Loop3
25998DBSub_98DB
26098FESpritePosition_Loop4
261990ESpritePosition_Loop5
2629910Sub_9910
2639933SpritePosition_Loop6
264993FSpritePosition_Loop7
2659941Sub_9941
2669957SpritePosition_Loop8
2679959SpritePosition_OnNonzero
2689964Sub_9964
26999B7SpritePosition_Loop9
27099C4SpritePosition_Loop10
27199CCSub_99CC
2729A18SpritePosition_Loop11
2739A41Sub_9A41
2749A80Sub_9A80
2759AC6SpritePosition_Loop12
2769B23Sub_9B23
2779B5ASub_9B5A
2789B6DSpritePosition_Loop13
2799B76SpritePosition_OnNonzero2
2809B7DSpritePosition_Loop14
2819B8ESpritePosition_Loop15
2829B90SpritePosition_OnNonzero3
2839BA5SpritePosition_OnZero
2849BDCSpritePosition_OnNonzero4
2859BF5Sub_9BF5
2869C33Sub_9C33
2879C46SpritePosition_Loop16
2889C4FSpritePosition_OnNonzero5
2899C56SpritePosition_Loop17
2909C6CSpritePosition_Loop18
2919C6ESpritePosition_OnNonzero6
2929C89Sub_9C89
2939C91SpritePosition_Loop19
2949C9BSub_9C9B
2959CB4SpritePosition_Loop20
2969CB7Sub_9CB7
2979CC1SpritePosition_OnNonzero7
2989CCESpritePosition_OnNonzero8
2999CDBSpritePosition_OnNonzero9
3009CE8SpritePosition_OnNonzero10
3019CF5SpritePosition_OnNonzero11
3029D02SpritePosition_OnNonzero12
3039D0ESub_9D0E
3049D10SpritePosition_OnNonzero13
3059D22SpritePosition_OnNonzero14
3069D34SpritePosition_OnNonzero15
3079D46SpritePosition_OnNonzero16
3089D58SpritePosition_OnNonzero17
3099D6ASpritePosition_OnNonzero18
3109D7BSub_9D7B
3119D84SpritePosition_Loop21
3129D8FSpritePosition_Loop22
3139D9CSpritePosition_Loop23
3149DCESpritePosition_Loop24
3159DFESpritePosition_Loop25
3169E30SpritePosition_Loop26
3179E65Sub_9E65
3189E93SpritePosition_Loop27
3199EBASpritePosition_Loop28
3209EC9SpritePosition_Loop29
3219ED0SpritePosition_Loop30
3229F04SpritePosition_Loop31
323A04BSub_A04B
324A059SpritePosition_Loop32
325A062SpritePosition_Loop33
326A079SpritePosition_Loop34
327A089Sub_A089
328A092SpritePosition_Loop35
329A0AESpritePosition_Loop36
330A0B1SpritePosition_Loop37
331A0CBSpritePosition_Loop38
332A0CESpritePosition_Loop39
333A0EDSpritePosition_Loop40
334A0F1SpritePosition_Loop41
335A10CSpritePosition_OnNonzero19
336A114Sub_A114
337A12ESpriteDraw
338A147SpriteDraw_Loop
339A14BSub_A14B
340A169Sub_A169
341A16ESpriteDraw_Loop2
342A182SpriteDraw_OnNonzero
343A1BFSpriteDraw_Loop3
344A1C8SpriteDraw_OnNonzero2
345A1D6Sub_A1D6
346A1DBSpriteDraw_Loop4
347A1F3SpriteDraw_OnNonzero3
348A247SpriteDraw_OnNonzero4
349A274SpriteDraw_OnNonzero5
350A2A1SpriteDraw_OnNonzero6
351A2DDObjectState
352A31ASub_A31A
353A32EObjectState_Loop
354A333ObjectState_Loop2
355A356ObjectState_Loop3
356A35BObjectState_Loop4
357A37ESub_A37E
358A3B1ObjectState_Loop5
359A3BBObjectState_Loop6
360A3BCSub_A3BC
361A3ECObjectState_Loop7
362A3F6ObjectState_Loop8
363A3F7Sub_A3F7
364A41EObjectState_Loop9
365A42EObjectState_Loop10
366A440ObjectState_Loop11
367A448Sub_A448
368A453ObjectState_Loop12
369A45EObjectState_Loop13
370A45FSub_A45F
371A46FObjectState_Loop14
372A481ObjectState_Loop15
373A48CSub_A48C
374A4C5ObjectState_Loop16
375A4C6ObjectState_Loop17
376A4E3ObjectState_Loop18
377A4E4Sub_A4E4
378A524ObjectState_Loop19
379A527ObjectState_Loop20
380A534ObjectState_Loop21
381A539ObjectState_Loop22
382A546ObjectState_Loop23
383A56FObjectDraw
384A592ObjectDraw_Loop
385A59EObjectDraw_Loop2
386A614Sub_A614
387A630ObjectDraw_Loop3
388A635Sub_A635
389A643ObjectDraw_Loop4
390A649Sub_A649
391A66FObjectDraw_Loop5
392A67EObjectDraw_Loop6
393A68ASub_A68A
394A68BSub_A68B
395A6F0Sub_A6F0
396A705Sub_A705
397A70DObjectDraw_Loop7
398A789Sub_A789
399A792ObjectUpdate
400A79EObjectUpdate_OnNonzero
401A7ACSub_A7AC
402A7E9ObjectUpdate_OnNonzero2
403A82BSub_A82B
404A83AObjectUpdate_OnNonzero3
405A853ObjectUpdate_Loop
406A86FObjectUpdate_Loop2
407A870EventState
408A8C8GameModeTask
409A905GameModeTask_Loop
410A908GameModeTask_Loop2
411A918GameModeTask_Loop3
412A91FGameModeTask_Loop4
413A92FGameModeTask_Loop5
414A936GameModeTask_Loop6
415A937Sub_A937
416A946GameModeTask_Loop7
417A96FGameModeTask_Loop8
418A971GameModeTask_Loop9
419A97FSub_A97F
420A98EGameModeTask_Loop10
421A9B7GameModeTask_Loop11
422A9B9GameModeTask_Loop12
423A9D0Sub_A9D0
424A9E7GameModeTask_Loop13
425AA03GameModeTask_Loop14
426AA33GameModeTask_Loop15
427AA35GameModeTask_Loop16
428AA39GameModeTask_Loop17
429AA5DGameModeTask_Loop18
430AA6BGameModeTask_Loop19
431AA75GameModeTask_Loop20
432AA85GameModeTask_Loop21
433AA90GameModeTask_Loop22
434AA9AGameModeTask_Loop23
435AAA5Sub_AAA5
436AABCGameModeTask_Loop24
437AAD8GameModeTask_Loop25
438AB0AGameModeTask_Loop26
439AB0CGameModeTask_Loop27
440AB10GameModeTask_Loop28
441AB34GameModeTask_Loop29
442AB42GameModeTask_Loop30
443AB4CGameModeTask_Loop31
444AB5CGameModeTask_Loop32
445AB67GameModeTask_Loop33
446AB71GameModeTask_Loop34
447AB7CSub_AB7C
448ABD1GameModeTask_Loop35
449ABD6GameModeTask_Loop36
450ABF0Sub_ABF0
451AC47GameModeTask_Loop37
452AC4CGameModeTask_Loop38
453AD0CSub_AD0C
454AD34GameModeTask_Loop39
455AD44GameModeTask_Loop40
456AD51GameModeTask_Loop41
457AD52Sub_AD52
458AD61GameModeTask_Loop42
459AD86Sub_AD86
460ADA3GameModeTask_Loop43
461ADA7GameModeTask_Loop44
462ADB1Sub_ADB1
463ADC4GameModeTask_Loop45
464AE14Sub_AE14
465AE3DGameModeTask_Loop46
466AE4CGameModeTask_Loop47
467AE58GameModeTask_Loop48
468AE61GameModeTask_Loop49
469AE6AGameModeTask_Loop50
470AE73GameModeTask_Loop51
471AE7CGameModeTask_Loop52
472AE85GameModeTask_Loop53
473AE86Sub_AE86
474AEC2Sub_AEC2
475AEFESub_AEFE
476AF3ASub_AF3A
477AF76Sub_AF76
478AFB2Sub_AFB2
479AFEESub_AFEE
480BE63AudioChannelLoop
481BE66AudioChannelLoop_OnNonzero
482BE75SoundChannelStep
483BEBBSoundChannelStep_Loop
484BEBFClearObjectSlot
485BEC9ClearObjectSlot_OnNonnegative
486BED0ClearObjectSlot_OnNonnegative2
487BEDDSoundChanInit
488BEE4Sub_BEE4
489BEEBSub_BEEB
490BEF2SoundChanInit_OnNonnegative
491BF00SoundChanInit_Loop
492BF04Sub_BF04
493BF22SoundChanInit_Loop2
494BF25SoundChanInit_Loop3
495BF3DSoundChanInit_Loop4
496BF40SoundChanInit_Loop5
497BF5FSoundChanInit_Loop6
498BF6DSoundChanInit_Loop7
499BF70SoundChanInit_Loop8
500BF77SoundChanInit_Loop9
501BF84SoundChanInit_OnZero
502BF89SoundNote
503BFA2SoundNote_Loop
504BFB5SoundNote_Loop2
505C000SoundNote_Loop3
506C02FSoundNote_OnNonzero
507C047SoundNote_Loop4
508C0E5SoundNote_Loop5
509C105SoundNote_OnNonzero2
510C111SoundNote_Loop6
511C126SoundNote_Loop7
512C168SoundNote_Loop8
513C169SoundNote_Loop9
514C16CSoundNote_OnNonnegative
515C174SoundNote_Loop10
516C189Sub_C189
517C1B8SoundNote_Loop11
518C1BASoundNote_Loop12
519C1C0SoundNote_Loop13
520C1D0SoundNote_Loop14
521C1F9SoundNote_Loop15
522C216SoundNote_Loop16
523C21BSoundNote_OnCarryClear
524C23ASoundNote_Loop17
525C243SoundNote_Loop18
526C24DSoundNote_Loop19
527C24FSoundNote_Loop20
528C267Sub_C267
529C272SoundNote_Loop21
530C289Sub_C289
531C2BFSub_C2BF
532C2C2ObjectCollision
533C2CBObjectCollision_Loop
534C2CCSub_C2CC
535C2D3Sub_C2D3
536C2FEObjectCollision_Loop2
537C2FFSub_C2FF
538C30ESub_C30E
539C320ObjectCollision_Loop3
540C33ASub_C33A
541C343ObjectCollision_Loop4
542C373ObjectCollision_Loop5
543C390ObjectCollision_Loop6
544C3A5ObjectCollision_Loop7
545C3A7ObjectCollision_Loop8
546C3B2ObjectCollision_Loop9
547C3BBObjectCollision_Loop10
548C3C2Sub_C3C2
549C3D4Sub_C3D4
550C3DDObjectCollision_Loop11
551C3FEObjectCollision_Loop12
552C3FFSub_C3FF
553C418ObjectCollision_Loop13
554C419Sub_C419
555C41DObjectCollision_OnNonzero
556C42DObjectCollision_Loop14
557CF36Sub_CF36
558CF7DObjectCollision_Loop15
559CF92ObjectCollision_Loop16
560CF97Sub_CF97
561CF99ObjectCollision_OnNonzero2
562CFBASub_CFBA
563CFC2ObjectCollision_OnNonzero3
564CFF8ObjectCollision_Loop17
565CFF9Sub_CFF9
566D007ObjectCollision_Loop18
567D017ObjectCollision_Loop19
568D022ObjectCollision_Loop20
569D02DObjectCollision_Loop21
570D03DObjectCollision_Loop22
571D048ObjectCollision_Loop23
572D053ObjectCollision_Loop24
573D054Sub_D054
574D065ObjectCollision_Loop25
575D077Sub_D077
576D08ESub_D08E
577D098ObjectCollision_OnNonzero4
578D0A5ObjectCollision_Loop26
579D0AEObjectCollision_Loop27
580D0AFSub_D0AF
581D0BDObjectCollision_Loop28
582D0C7ObjectCollision_Loop29
583D0D5ObjectCollision_Loop30
584D0DFObjectCollision_Loop31
585D0F0ObjectCollision_Loop32
586D0F1PollControllers
587D103PollControllers_Loop
588D13BSub_D13B
589D151PollControllers_Loop2
590D15ASub_D15A
591D17DPollControllers_Loop3
592D17ESub_D17E
593D19BPollControllers_Loop4
594D1ADPollControllers_Loop5
595D1AESub_D1AE
596D1C2PollControllers_Loop6
597D1DCPollControllers_Loop7
598D1DDSub_D1DD
599D1ECPollControllers_OnNonzero
600D1FAPollControllers_Loop8
601D221Sub_D221
602D22DPollControllers_Loop9
603D23FPollControllers_Loop10
604D240Sub_D240
605D25DSub_D25D
606D269PollControllers_Loop11
607D27CPollControllers_OnNonzero2
608D28APollControllers_Loop12
609D299PollControllers_Loop13
610D2B2PollControllers_Loop14
611D2BESub_D2BE
612D2D6PollControllers_Loop15
613D2F8PollControllers_Loop16
614D304PollControllers_Loop17
615D32BEventTaskInit
616D334EventTaskInit_Loop
617D370EventTaskInit_Loop2
618D390EventTaskInit_OnNonzero
619D3D5EventTaskInit_OnNonzero2
620D42CEventTaskInit_Loop3
621D43BSub_D43B
622D460EventTaskInit_Loop4
623D468EventTaskInit_Loop5
624D496EventTaskInit_Loop6
625D4B9EventTaskInit_Loop7
626D4BCEventTaskInit_Loop8
627D4C9EventTaskInit_Loop9
628D4E3EventTaskInit_Loop10
629D507EventTaskInit_OnNonzero3
630D52FEventTaskInit_Loop11
631D563EventTaskInit_Loop12
632D565Sub_D565
633D686Sub_D686
634D690EventTaskInit_Loop13
635D6C2EventTaskInit_Loop14
636D6D3Sub_D6D3
637D6DDEventTaskInit_Loop15
638D6F3EventTaskInit_Loop16
639D6F4Sub_D6F4
640D721EventTaskInit_Loop17
641D738Sub_D738
642D759EventTaskInit_Loop18
643D75AEventTaskInit_Loop19
644D770Sub_D770
645D78CEventTaskInit_Loop20
646D790EventTaskInit_OnNonzero4
647D7A5EventTaskInit_OnNonzero5
648D7B0EventTaskInit_Loop21
649D7B3EventTaskInit_Loop22
650D7C0EventTaskInit_OnNonzero6
651D7CFSub_D7CF
652D7DBEventTaskInit_OnNonzero7
653D7EAEventTaskInit_OnNonzero8
654D801EventTaskInit_Loop23
655D80FSub_D80F
656D822EventTaskInit_Loop24
657D82BEventTaskInit_OnNonzero9
658D832EventTaskInit_Loop25
659D83BEventTaskInit_Loop26
660D847EventTaskInit_Loop27
661D855Sub_D855
662D868EventTaskInit_Loop28
663D876EventTaskInit_OnNonzero10
664D87DEventTaskInit_Loop29
665D889Sub_D889
666D88CEventTaskInit_Loop30
667D88EEventTaskInit_OnNonzero11
668D89DEventTaskInit_Loop31
669D8A8EventTaskInit_OnNonzero12
670D8F2Sub_D8F2
671D8F4EventTaskInit_OnNonzero13
672D907Sub_D907
673D90FEventTaskInit_OnNonzero14
674D977Sub_D977
675D979EventTaskInit_OnNonzero15
676D9BDEventTaskInit_Loop32
677E0D5OlympicsScheduler
678E0EEOlympicsScheduler_Loop
679E109Sub_E109
680E114OlympicsScheduler_Loop2
681E117OlympicsScheduler_Loop3
682E13COlympicsScheduler_OnNonzero
683E144OlympicsScheduler_OnNonzero2
684E178OlympicsScheduler_Loop4
685E18COlympicsScheduler_Loop5
686E19DOlympicsScheduler_Loop6
687E1AEOlympicsScheduler_Loop7
688E1B9OlympicsScheduler_Loop8
689E1C3OlympicsScheduler_OnNonzero3
690E1C4OlympicsScheduler_Loop9
691E1EAOlympicsScheduler_Loop10
692E21DOlympicsScheduler_Loop11
693E225OlympicsScheduler_Loop12
694E233Sub_E233
695E245OlympicsScheduler_Loop13
696E25FOlympicsScheduler_Loop14
697E268OlympicsScheduler_Loop15
698E27ESub_E27E
699E290OlympicsScheduler_Loop16
700E298OlympicsScheduler_Loop17
701E2B2Sub_E2B2
702E2EAOlympicsScheduler_Loop18
703E328OlympicsScheduler_Loop19
704E329OlympicsScheduler_Loop20
705E36FOlympicsScheduler_Loop21
706E38BOlympicsScheduler_Loop22
707E395Sub_E395
708E3B4OlympicsScheduler_Loop23
709E3D3OlympicsScheduler_Loop24
710E402OlympicsScheduler_Loop25
711E405OlympicsScheduler_Loop26
712E423OlympicsScheduler_Loop27
713E424OlympicsScheduler_Loop28
714E427Sub_E427
715E434OlympicsScheduler_Loop29
716E44DOlympicsScheduler_Loop30
717E456OlympicsScheduler_Loop31
718E466OlympicsScheduler_Loop32
719E46EOlympicsScheduler_Loop33
720E492OlympicsScheduler_OnNonzero4
721E4A4OlympicsScheduler_Loop34
722E4A7OlympicsScheduler_Loop35
723E4AFOlympicsScheduler_Loop36
724E4BAOlympicsScheduler_Loop37
725E4E9OlympicsScheduler_Loop38
726E4EBSub_E4EB
727E515OlympicsScheduler_OnNonnegative
728E54FOlympicsScheduler_Loop39
729E553OlympicsScheduler_OnNonzero5
730E554OlympicsScheduler_Loop40
731E55FSub_E55F
732E566OlympicsScheduler_OnNonzero6
733E569OlympicsScheduler_Loop41
734E581OlympicsScheduler_OnCarryClear
735E587OlympicsScheduler_Loop42
736E592OlympicsScheduler_Loop43
737E5B5OlympicsScheduler_Loop44
738E5CBOlympicsScheduler_Loop45
739E5D2OlympicsScheduler_Loop46
740E5E4OlympicsScheduler_Loop47
741E5E6OlympicsScheduler_Loop48
742E5F1OlympicsScheduler_Loop49
743E60ASub_E60A
744E625Sub_E625
745E62CSub_E62C
746E638OlympicsScheduler_OnNonzero7
747E642OlympicsScheduler_OnNonzero8
748E674OlympicsScheduler_OnNonzero9
749E67COlympicsScheduler_OnNonzero10
750E695OlympicsScheduler_Loop50
751E6A2OlympicsScheduler_Loop51
752E6A8Sub_E6A8
753E6B2OlympicsScheduler_OnCarrySet
754E6B6OlympicsScheduler_OnNonnegative2
755E6CBOlympicsScheduler_Loop52
756E6CCSub_E6CC
757E709Sub_E709
758E72BOlympicsScheduler_Loop53
759E735OlympicsScheduler_OnCarryClear2
760E73BOlympicsScheduler_Loop54
761E745Sub_E745
762E772Sub_E772
763E7AESub_E7AE
764E7B6OlympicsScheduler_Loop55
765E7E1OlympicsScheduler_Loop56
766E7FDOlympicsScheduler_Loop57
767E807OlympicsScheduler_Loop58
768E819OlympicsScheduler_Loop59
769E835OlympicsScheduler_Loop60
770E839OlympicsScheduler_Loop61
771E83DOlympicsScheduler_Loop62
772E844OlympicsScheduler_Loop63
773E85ASub_E85A
774E866OlympicsScheduler_Loop64
775E880Sub_E880
776E89FSub_E89F
777E8C0Sub_E8C0
778E8C6OlympicsScheduler_Loop65
779E8D8OlympicsScheduler_Loop66
780E8E0OlympicsScheduler_Loop67
781E8EBOlympicsScheduler_Loop68
782E8FASub_E8FA
783E90BSub_E90B
784E918OlympicsScheduler_Loop69
785E943Sub_E943
786E94EOlympicsScheduler_OnCarryClear3
787E957OlympicsScheduler_Loop70
788E95COlympicsScheduler_OnCarryClear4
789E965OlympicsScheduler_Loop71
790E978OlympicsScheduler_OnNonnegative3
791EB04Sub_EB04
792EB2DOlympicsScheduler_Loop72
793EB3BOlympicsScheduler_Loop73
794EB4DOlympicsScheduler_Loop74
795EB4ESub_EB4E
796EB5COlympicsScheduler_OnNonzero11
797EB70OlympicsScheduler_Loop75
798EB74OlympicsScheduler_Loop76
799EB78OlympicsScheduler_OnCarryClear5
800EB7AOlympicsScheduler_OnCarryClear6
801EB89OlympicsScheduler_OnNonzero12
802EB9BOlympicsScheduler_Loop77
803EBA5Sub_EBA5
804EBBAOlympicsScheduler_Loop78
805EBC5OlympicsScheduler_Loop79
806EBC8OlympicsScheduler_Loop80
807EBC9Sub_EBC9
808EBF5OlympicsScheduler_OnCarryClear7
809EC0ESub_EC0E
810EC22Sub_EC22
811EC24OlympicsScheduler_OnCarrySet2
812EC44OlympicsScheduler_Loop81
813EC5EOlympicsScheduler_Loop82
814EC68OlympicsScheduler_Loop83
815EC6FOlympicsScheduler_OnNonzero13
816EC84OlympicsScheduler_Loop84
817EC86OlympicsScheduler_Loop85
818EC8BOlympicsScheduler_Loop86
819EC8CSub_EC8C
820EC96OlympicsScheduler_Loop87
821ECB5OlympicsScheduler_Loop88
822ECF0OlympicsScheduler_Loop89
823ED01OlympicsScheduler_Loop90
824ED31OlympicsScheduler_Loop91
825ED35Sub_ED35
826ED53Sub_ED53
827ED59OlympicsScheduler_Loop92
828ED5ASub_ED5A
829ED62OlympicsScheduler_Loop93
830ED64OlympicsScheduler_OnCarryClear8
831ED96OlympicsScheduler_Loop94
832ED9FSub_ED9F
833EDC6OlympicsScheduler_OnCarryClear9
834EDF7OlympicsScheduler_OnNonzero14
835EE1BSub_EE1B
836EE3DSub_EE3D
837EE52Sub_EE52
838EE6ESub_EE6E
839EE7ASub_EE7A
840EE90OlympicsScheduler_Loop95
841EEA5OlympicsScheduler_Loop96
842EEA6OlympicsScheduler_OnNonzero15
843EEB1OlympicsScheduler_Loop97
844EEC0OlympicsScheduler_OnNonzero16
845EECBOlympicsScheduler_Loop98
846EEE0OlympicsScheduler_Loop99
847EEF8OlympicsScheduler_OnNonzero17
848EF23OlympicsScheduler_Loop100
849EF25OlympicsScheduler_Loop101
850EF29OlympicsScheduler_OnNonzero18
851EF3FOlympicsScheduler_Loop102
852EF4CSub_EF4C
853EF7CEventInit
854EFC6Sub_EFC6
855EFD7Sub_EFD7
856EFD9Sub_EFD9
857F00CSub_F00C
858F014EventInit_OnNonzero
859F6FDReset
860F719ClearRam
861F743ClearOam
862F74FMainLoop
863F757MainLoop_NextSlot
864F77AMainLoop_RunTask
865F780TaskDispatch
866F78DFrameEnd
867F7A0TaskSlotStart
868F7BETaskSlotStart_OnNonzero
869F7C5TaskSlotStart_Loop
870F7CATaskSlotClear
871F7DEEnableNmi
872F7EATaskFrameWait
873F7F5DelayFrames
874F7F9DelayFrames_OnNonzero
875F803NmiHandler
876F83FNmiHandler_Loop
877F84FNmiHandler_Loop2
878F859NmiHandler_OnNonzero
879F868NmiHandler_OnZero
880F8A8Sub_F8A8
881F8BCInitDisplay
882F8D7WaitVblankStart
883F8DCWaitVblankEnd
884F8E6FrameDelay
885F8F5NmiPaletteUpdate
886F91FNmiPaletteUpdate_OnNonzero
887F939NmiPaletteUpdate_Loop
888F957NmiPaletteUpdate_Loop2
889F963NmiPaletteUpdate_OnNonzero2
890F970NmiPaletteUpdate_Loop3
891F999NmiPaletteUpdate_OnNonzero3
892F9A3NmiPaletteUpdate_Loop4
893F9CANmiPaletteUpdate_OnNonzero4
894F9D6NmiPaletteUpdate_Loop5
895F9E0Sub_F9E0
896F9FCNmiPaletteUpdate_Loop6
897F9FFNmiPaletteUpdate_Loop7
898FA14NmiPaletteUpdate_Loop8
899FA32NmiPaletteUpdate_OnNonzero5
900FA4CNmiPaletteUpdate_Loop9
901FA55NmiPaletteUpdate_Loop10
902FA59NmiPaletteUpdate_OnNonzero6
903FA69NmiPaletteUpdate_Loop11
904FA88NmiPaletteUpdate_Loop12
905FA91NmiPaletteUpdate_Loop13
906FA9DPaletteLoad
907FAAFPaletteLoad_Loop
908FABBSub_FABB
909FABDSub_FABD
910FACBPaletteLoad_Loop2
911FAE8PaletteLoad_Loop3
912FAFBPaletteLoad_Loop4
913FB1ESub_FB1E
914FB37PaletteLoad_Loop5
915FB52PaletteLoad_Loop6
916FB58PaletteLoad_OnNonzero
917FB6APaletteLoad_OnNonzero2
918FB72PaletteLoad_Loop7
919FB96PaletteLoad_Loop8
920FB97Sub_FB97
921FBABSub_FBAB
922FBB9PaletteLoad_Loop9
923FBCBPaletteLoad_Loop10
924FBE3OamCopy
925FC0DOamCopy_OnNonzero
926FC2AOamCopy_Loop
927FC2BSpriteTile
928FC2DSpriteTile_OnNonzero
929FC39Sub_FC39
930FC45Sub_FC45
931FC4ESub_FC4E
932FC52SpriteTile_OnNonzero2
933FC63Sub_FC63