Promotes Donkey Kong Jr

Adds remaining NROM as _wip
Update gitignore to not keep object files
Adds AGENTS.md as this is an AI helped project
This commit is contained in:
tmerritt committed 2026-10-16 13:46:20 -04:00
1 parent a29b03b00b
commit 9aef410424
412 files changed
+33427 -221

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
CA65 ?= ca65
LD65 ?= ld65
all: reconstructed.nes verify
prg.o: prg.s symbols.inc locals.inc
$(CA65) -g -o $@ $<
header.o: header.s
$(CA65) -g -o $@ $<
chr.o: chr.s
$(CA65) -g -o $@ $<
reconstructed.nes: header.o prg.o chr.o linker.cfg
$(LD65) -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ header.o prg.o chr.o
verify: reconstructed.nes
cmp reconstructed.nes rom.nes
@echo "Byte-identical ROM verified."
clean:
rm -f *.o reconstructed.nes reconstructed.map reconstructed.lbl
.PHONY: all verify clean
+5
View File
@@ -0,0 +1,5 @@
Clu Clu Land disassembly project.
you will disassemble a NES rom. I will provide you with the binary file renamed as a txt file. With that file I want you to read the header to identify the type of file, locate the vectors that code starts from, and follow each of the 3 through the rom file. build the byte identical rom with ca65. once you have completed a first pass to identify the code vs the data blocks, stop and provide me with the code. The goal is a byte-identical disassembly. Identify code and data sections. After the first pass, take a second pass and replace the known labels. Pass a third time to better identify use of code and data tables naming more appropriately.
with code blocks that are generated, each method will have a local and global description, the parameters and the return value(s). for each instruction, include a comment at the end of the line with the offset followed by the actual bytes that are expected to be encoded. during building the byte exact source, include the remaining incbin line so we can cycle through builds quickly and efficently.
Binary file not shown.
+2
View File
@@ -0,0 +1,2 @@
.segment "CHR"
.incbin "chr.bin"
Binary file not shown.
+2
View File
@@ -0,0 +1,2 @@
.segment "HEADER"
.incbin "header.bin"
+10
View File
@@ -0,0 +1,10 @@
MEMORY {
HEADER: start = $0000, size = $0010, fill = yes;
PRG: start = $C000, size = $4000, file = %O, fill = yes;
CHR: start = $0000, size = $2000, file = %O, fill = yes;
}
SEGMENTS {
HEADER: load = HEADER, type = ro;
PRG: load = PRG, type = ro;
CHR: load = CHR, type = ro;
}
+231
View File
@@ -0,0 +1,231 @@
;------------------------------------------------------------
; Shared zero-page pointer and scratch workspace
;------------------------------------------------------------
WorkPtr0Lo = $00
WorkPtr0Hi = $01
WorkPtr1Lo = $02
WorkPtr1Hi = $03
DataPtrLo = $04
DataPtrHi = $05
ListPtrLo = $06
ListPtrHi = $07
CurrentObjectPtrLo = $08
CurrentObjectPtrHi = $09
CurrentObjectIndex = $0A
AlternateObjectPtrLo = $0B
AlternateObjectPtrHi = $0C
TempDirection = $0D
TempClass = $0E
LoopCounter = $0F
;------------------------------------------------------------
; Frame and controller shift state
;------------------------------------------------------------
FrameShiftRegister0 = $10
FrameShiftRegister1 = $11
FrameShiftRegister2 = $12
FrameShiftRegister3 = $13
FrameShiftRegister4 = $14
FrameShiftRegister5 = $15
FrameShiftRegister6 = $16
FrameShiftRegister7 = $17
;------------------------------------------------------------
; Movement and collision workspace
;------------------------------------------------------------
CollisionRecordA0 = $20
CollisionRecordA1 = $21
CollisionRecordA2 = $22
CollisionRecordA3 = $23
VectorComponent0 = $24
VectorComponent1 = $25
VectorComponent2 = $26
VectorComponent3 = $27
TempField2C = $2C
TempField2E = $2E
TempField2F = $2F
TempField33 = $33
TempField34 = $34
TempField3F = $3F
;------------------------------------------------------------
; PPU shadow and rendering state
;------------------------------------------------------------
ShadowPPUCTRL = $40
ShadowPPUMASK = $41
ScrollOrRenderState0 = $42
ScrollOrRenderState1 = $43
;------------------------------------------------------------
; Controller state
;
; $44-$47 is accessed through overlapping indexed bases at
; $44 and $46. Names for individual bytes remain provisional.
;------------------------------------------------------------
ControllerButtonsBase = $44
ControllerButtonsAltBase = $46
; Implicit indexed array members:
ControllerState44 = $44
ControllerState45 = $45
ControllerState46 = $46
ControllerState47 = $47
;------------------------------------------------------------
; Startup, context, and input state
;------------------------------------------------------------
StartupPreserveFlag0 = $48
StartupPreserveFlag1 = $49
ContextIndex = $4A
ModeToggleFlag = $4B
ActiveContext = $4C
PendingStateIndex = $4D
StateTransitionFlag = $4E
InputLockFlag = $4F
;------------------------------------------------------------
; Global timers and gameplay workspace
;------------------------------------------------------------
GlobalTickDivider = $50
TimerArrayBase = $51
TimerArrayElement2 = $53
GameVar54 = $54
GameVar55 = $55
GameVar56 = $56
GameVar57 = $57
GameVar58 = $58
GameVar5A = $5A
GameVar5C = $5C
GameVar5E = $5E
GameVar5F = $5F
GameVar62 = $62
GameVar63 = $63
GameVar64 = $64
GameVar67 = $67
GameVar68 = $68
GameVar6C = $6C
GameVar70 = $70
GameVar72 = $72
;------------------------------------------------------------
; Player timers and input delays
;------------------------------------------------------------
PlayerTimerBase = $75
PlayerTimer1 = $76
PlayerTimer2 = $77
StateTimer = $78
InputRepeatDelay = $7D
;------------------------------------------------------------
; Primary match and game-state variables
;------------------------------------------------------------
MatchState80 = $80
MatchState81 = $81
CurrentStageOrPlayer = $82
StateCounter83 = $83
StateCounter84 = $84
StateCounter85 = $85
StateCounter86 = $86
PreviousContextIndex = $87
RoundOrSubstate = $88
ContextRoundSelector = $89
GameState = $8A
GameSubstate = $8B
StateFlags8C = $8C
StateControlFlag = $8D
StateCounter8E = $8E
StateCounter8F = $8F
;------------------------------------------------------------
; Player state and countdown
;------------------------------------------------------------
PlayerStateBase = $90
PlayerState1 = $91
CountdownValue = $92
CountdownDivider = $93
ObjectStateArray9F = $9F
;------------------------------------------------------------
; Additional gameplay and object state
;------------------------------------------------------------
StateVarA0 = $A0
StateVarA1 = $A1
StateVarA2 = $A2
StateVarA3 = $A3
StateVarA4 = $A4
StateVarA5 = $A5
StateVarA6 = $A6
StateVarA7 = $A7
StateVarA8 = $A8
StateVarA9 = $A9
StateVarAC = $AC
StateVarAD = $AD
StateVarAE = $AE
StateVarAF = $AF
ToggleStateB0 = $B0
StateVarB2 = $B2
;------------------------------------------------------------
; Object and behavior state
;------------------------------------------------------------
ObjectVarD0 = $D0
ObjectVarD1 = $D1
ObjectVarD2 = $D2
ObjectVarD4 = $D4
ObjectVarD5 = $D5
ObjectVarD6 = $D6
ObjectVarD7 = $D7
ObjectVarD8 = $D8
ObjectVarDA = $DA
ObjectVarE9 = $E9
ObjectVarEE = $EE
ObjectVarEF = $EF
;------------------------------------------------------------
; Audio workspace
;------------------------------------------------------------
AudioPulse1State = $F0
AudioPulse2State = $F1
AudioTriangleState = $F2
AudioNoiseState = $F3
AudioPeriodOrEnvelope = $F4
AudioSequencePtrLo = $F5
AudioSequencePtrHi = $F6
AudioSequenceCursor = $F7
AudioChannelCursor = $F8
AudioChannelIndex = $F9
AudioSequenceState = $FA
AudioRequest0 = $FB
AudioRequest1 = $FC
AudioRequest2 = $FD
AudioRequest3 = $FE
AudioRequest4 = $FF
; Verified vector-owned entry points
IRQHandler = $C196
; First-pass routine entry aliases. These emit no bytes.
; Names beyond the vectors are provisional and intentionally conservative.
CheckBoundingBoxOverlap = $F730
Binary file not shown.
File diff suppressed because it is too large. Load diff
+770
View File
@@ -0,0 +1,770 @@
al 00FFFA .VectorTable
al 00FC78 .AudioDataTables
al 00FC5B .UpdateNoiseOnNonZero_FC5B
al 00FC55 .AudioPathOnNonZero_FC55
al 00FC64 .AudioPathContinue_FC64
al 00FC20 .UpdateTriangleOnNoCarry_FC20
al 00FC2B .AudioPathContinue_FC2B
al 00FC01 .UpdatePulse1OnNonZero_FC01
al 00FBFF .AudioPathOnNonZero_FBFF
al 00FBED .AudioPathOnNonZero_FBED
al 00FBDA .UpdatePulse1Loop_FBDA
al 00FC04 .AudioPathContinue_FC04
al 00FBCB .UpdatePulse2OnZero_FBCB
al 00FBD1 .AudioPathOnZero_FBD1
al 00FBBA .UpdatePulse2OnCarry_FBBA
al 00FBAF .AudioPathOnNonZero_FBAF
al 00FBAA .AudioPathOnZero_FBAA
al 00FF41 .ProcessAudioStateRoutine_FF41
al 00FB95 .AudioPathOnNonZero_FB95
al 00FB84 .UpdatePulse2OnZero_FB84
al 00FB73 .AudioPathLoop_FB73
al 00FBBD .AudioPathOnNonZero_FBBD
al 00FB31 .UpdatePulse1Loop_FB31
al 00FB6E .AudioPathOnNonZero_FB6E
al 00FB2B .AudioPathLoop_FB2B
al 00FB21 .AudioPathOnNonZero_FB21
al 00FB05 .UpdateNoiseOnCarry_FB05
al 00FAFE .AudioPathOnCarry_FAFE
al 00FAF0 .UpdateNoiseOnCarry_FAF0
al 00FAE9 .AudioPathOnCarry_FAE9
al 00FB10 .UpdateNoiseOnNonZero_FB10
al 00FABC .UpdateNoiseLoop_FABC
al 00FAB5 .AudioPathLoop_FAB5
al 00FA5A .AudioPathOnNonZero_FA5A
al 00FA46 .AudioPathOnCarry_FA46
al 00FA41 .AudioPathOnCarry_FA41
al 00FA4E .UpdatePulse2OnNonZero_FA4E
al 00FA26 .AudioPathLoop_FA26
al 00FA21 .AudioPathLoop_FA21
al 00FA0C .UpdatePulse2Routine_FA0C
al 00FA07 .AudioPathOnNonZero_FA07
al 00FA04 .UpdatePulse1OnNonZero_FA04
al 00F9FC .AudioPathOnCarry_F9FC
al 00F9F2 .AudioPathOnCarry_F9F2
al 00F9D3 .UpdatePulse1Routine_F9D3
al 00F9D8 .AudioPathOnNonZero_F9D8
al 00F9BB .AudioPathLoop_F9BB
al 00F9AE .AudioPathLoop_F9AE
al 00F9A7 .AudioPathOnNonZero_F9A7
al 00F9A1 .AudioPathOnNonZero_F9A1
al 00F9A9 .AudioPathOnNonZero_F9A9
al 00F999 .AudioPathOnNonZero_F999
al 00F98D .AudioPathLoop_F98D
al 00F97E .AudioPathLoop_F97E
al 00F9C3 .UpdatePulse1OnNonZero_F9C3
al 00F976 .UpdatePulse1Dispatch_F976
al 00F971 .AudioPathLoop_F971
al 00F9D9 .AudioPathOnNoCarry_F9D9
al 00F95C .AudioPathOnNonZero_F95C
al 00F94D .UpdatePulse1OnNonZero_F94D
al 00F92B .UpdatePulse1OnZero_F92B
al 00F935 .UpdatePulse1OnNoCarry_F935
al 00F917 .UpdatePulse1Loop_F917
al 00F95F .UpdatePulse1OnNoCarry_F95F
al 00F8E2 .AudioPathOnNonZero_F8E2
al 00F8D8 .AudioPathLoop_F8D8
al 00F8CA .AudioPathLoop_F8CA
al 00F9CF .ProcessAudioStateDispatch_F9CF
al 00F8C7 .AudioPathLoop_F8C7
al 00F8EA .UpdatePulse1OnNoCarry_F8EA
al 00F8BD .AudioPathOnNoCarry_F8BD
al 00F8B5 .AudioPathLoop_F8B5
al 00F8F9 .UpdatePulse1OnNoCarry_F8F9
al 00F9CB .ProcessAudioStateDispatch_F9CB
al 00F895 .AudioPathContinue_F895
al 00F890 .AudioPathOnNonZero_F890
al 00F881 .AudioPathOnNonZero_F881
al 00F875 .AudioPathLoop_F875
al 00F871 .AudioPathLoop_F871
al 00F86B .AudioPathLoop_F86B
al 00F818 .ProcessAudioStateRoutine_F818
al 00F814 .ProcessAudioStateRoutine_F814
al 00F813 .AudioPathOnZero_F813
al 00F802 .UpdatePulse1Loop_F802
al 00F800 .ProcessAudioStateRoutine_F800
al 00F7FD .ProcessAudioStateRoutine_F7FD
al 00F7F6 .UpdatePulse1Routine_F7F6
al 00F7F2 .AudioPathContinue_F7F2
al 00F7EC .AudioPathOnZero_F7EC
al 00FB22 .ProcessAudioStateRoutine_FB22
al 00FACF .ProcessAudioStateRoutine_FACF
al 00FA2E .ProcessAudioStateRoutine_FA2E
al 00F898 .ProcessAudioStateRoutine_F898
al 00F7B0 .EnginePathLoop_F7B0
al 00F79D .EnginePathLoop_F79D
al 00F77C .EnginePathContinue_F77C
al 00F719 .EnginePath_F719
al 00F70B .EnginePathLoop_F70B
al 00F6FD .EnginePathLoop_F6FD
al 00F6E4 .EnginePathLoop_F6E4
al 00F6E2 .EnginePathLoop_F6E2
al 00F6E7 .EnginePathOnNonZero_F6E7
al 00F6D4 .EnginePathOnOverflowClear_F6D4
al 00F6A3 .EnginePathLoop_F6A3
al 00F6AF .EnginePathOnZero_F6AF
al 00F69C .EnginePathLoop_F69C
al 00F6C0 .EnginePathOnOverflowSet_F6C0
al 00F6BE .EnginePathOnNegative_F6BE
al 00F682 .EnginePathLoop_F682
al 00F667 .EnginePathLoop_F667
al 00F665 .EnginePathLoop_F665
al 00F661 .EnginePathLoop_F661
al 00F677 .EnginePathOnZero_F677
al 00F707 .ProcessResourceStateRoutine_F707
al 00F659 .EnginePathOnZero_F659
al 00F6B0 .EnginePathOnNonZero_F6B0
al 00F6FB .ProcessResourceStateRoutine_F6FB
al 00F600 .EnginePathLoop_F600
al 00F5F5 .EnginePathLoop_F5F5
al 00F5F4 .EnginePathOnZero_F5F4
al 00F5C0 .EnginePathLoop_F5C0
al 00F5BE .ProcessResourceStateRoutine_F5BE
al 00F59D .EnginePathOnZero_F59D
al 00F589 .EnginePathOnZero_F589
al 00F583 .EnginePathLoop_F583
al 00F55E .EnginePathOnNoCarry_F55E
al 00F56A .EnginePathContinue_F56A
al 00F549 .EnginePathLoop_F549
al 00F574 .EnginePathOnNonZero_F574
al 00F56F .EnginePathOnCarry_F56F
al 00F51E .EnginePathLoop_F51E
al 00F544 .EnginePathLoop_F544
al 00F56B .EnginePathOnZero_F56B
al 00F515 .EnginePathLoop_F515
al 00F4EE .EnginePathOnCarry_F4EE
al 00F4E2 .EnginePathOnCarry_F4E2
al 00F4C6 .EnginePathLoop_F4C6
al 00F4CA .EnginePathOnNoCarry_F4CA
al 00F4B9 .EnginePathOnNoCarry_F4B9
al 00F4F1 .ProcessResourceStateRoutine_F4F1
al 00F4AD .EnginePathOnCarry_F4AD
al 00F491 .EnginePathOnZero_F491
al 00F48B .EnginePathOnNonZero_F48B
al 00F4CF .ProcessResourceStateRoutine_F4CF
al 00F4AE .ProcessResourceStateRoutine_F4AE
al 00F436 .EnginePathLoop_F436
al 00F45D .EnginePathOnZero_F45D
al 00F459 .EnginePathOnZero_F459
al 00F429 .ProcessResourceStateRoutine_F429
al 00F41F .EnginePathOnNonZero_F41F
al 00F40E .EnginePathOnNonZero_F40E
al 00F407 .EnginePathOnNoCarry_F407
al 00F3CB .UpdateCommandBufferLoop_F3CB
al 00F3B4 .UpdateCommandBufferLoop_F3B4
al 00F38F .UpdateCommandBufferOnZero_F38F
al 00F370 .UpdateCommandBufferLoop_F370
al 00F3F7 .UpdateCommandBufferRoutine_F3F7
al 00F3F5 .ProcessResourceStateRoutine_F3F5
al 00F3A0 .EnginePathContinue_F3A0
al 00F32C .UpdateCommandBufferRoutine_F32C
al 00F302 .EnginePathOnNonZero_F302
al 00F2F4 .EnginePathOnNonZero_F2F4
al 00F2DE .EnginePathLoop_F2DE
al 00F2C5 .EnginePathOnCarry_F2C5
al 00F2C2 .EnginePathLoop_F2C2
al 00F2BF .EnginePathOnNoCarry_F2BF
al 00F2B3 .EnginePathOnCarry_F2B3
al 00F29C .EnginePathLoop_F29C
al 00F295 .EnginePathLoop_F295
al 00F27C .EnginePathLoop_F27C
al 00F266 .EnginePathLoop_F266
al 00F248 .UpdateCommandBufferOnNonZero_F248
al 00F22D .UpdateCommandBufferLoop_F22D
al 00F220 .ResourceInputCollisionCode
al 00F21B .PPUCommandLoop_F21B
al 00F249 .PPUCommandReadNextByte_F249
al 00E73C .UpdateObjectBufferOnNoCarry_E73C
al 00E731 .ObjectPathOnZero_E731
al 00E700 .UpdateObjectBuffer_E700
al 00E6FD .ProcessObjectStateDispatch_E6FD
al 00E6F9 .ObjectPathLoop_E6F9
al 00E6D7 .UpdateObjectBufferOnNonZero_E6D7
al 00E6CC .ObjectPathLoop_E6CC
al 00E6C5 .ObjectPathOnNonZero_E6C5
al 00E6F2 .ObjectPathLoop_E6F2
al 00E69C .ReadObjectRecordLoop_E69C
al 00E59B .ObjectPathLoop_E59B
al 00E592 .UpdateObjectRecordOnZero_E592
al 00E571 .UpdateObjectRecordOnZero_E571
al 00E55A .UpdateObjectRecordLoop_E55A
al 00E59C .ObjectPathOnZero_E59C
al 00E547 .ObjectPathLoop_E547
al 00E538 .ObjectPathLoop_E538
al 00E4EA .UpdateObjectRecordLoop_E4EA
al 00E4E3 .ReadObjectRecordOnZero_E4E3
al 00E49F .UpdateObjectRecordOnZero_E49F
al 00E49B .ObjectPathOnNonZero_E49B
al 00E491 .ObjectPathOnNonZero_E491
al 00E470 .ReadObjectRecordLoop_E470
al 00E40F .ReadObjectRecordOnNoCarry_E40F
al 00E3F4 .UpdateObjectRecordOnNoCarry_E3F4
al 00E405 .ProcessObjectStateRoutine_E405
al 00E3E4 .UpdateObjectRecordOnCarry_E3E4
al 00E3B6 .UpdateObjectRecord_E3B6
al 00E380 .ObjectPathOnZero_E380
al 00E35C .ReadObjectRecord_E35C
al 00E37E .ObjectPathLoop_E37E
al 00E350 .ObjectPathOnNoCarry_E350
al 00E313 .UpdateObjectRecordOnZero_E313
al 00E301 .UpdateObjectRecordOnNoCarry_E301
al 00E2D8 .ReadObjectRecordOnPositive_E2D8
al 00E2AA .UpdateObjectRecordRoutine_E2AA
al 00E2B9 .ObjectPathOnNegative_E2B9
al 00E2B5 .ObjectPathOnNegative_E2B5
al 00E2E6 .UpdateObjectRecordRoutine_E2E6
al 00E2BA .ObjectPathOnCarry_E2BA
al 00E2C7 .ReadObjectRecordOnNonZero_E2C7
al 00E275 .UpdateObjectRecordOnPositive_E275
al 00E251 .UpdateObjectRecordOnNonZero_E251
al 00E249 .ObjectPathOnNoCarry_E249
al 00E69A .ProcessObjectStateRoutine_E69A
al 00E21D .ObjectPathOnNoCarry_E21D
al 00E281 .ProcessObjectStateRoutine_E281
al 00E1FD .UpdateObjectRecordOnNonZero_E1FD
al 00E1E8 .ObjectPathOnNegative_E1E8
al 00E229 .UpdateObjectRecordRoutine_E229
al 00E262 .ReadObjectRecordRoutine_E262
al 00E1CF .UpdateObjectRecordOnPositive_E1CF
al 00E1BD .ObjectPathOnNonZero_E1BD
al 00E1B9 .ObjectPathContinue_E1B9
al 00E1A3 .ObjectPathOnCarry_E1A3
al 00E1A7 .ObjectPathOnZero_E1A7
al 00E191 .ObjectPathOnCarry_E191
al 00E1BB .ObjectPathContinue_E1BB
al 00E15B .ObjectPathLoop_E15B
al 00E165 .ObjectPathOnCarry_E165
al 00E153 .ReadObjectRecordOnZero_E153
al 00E15D .ReadObjectRecordOnZero_E15D
al 00E13F .ReadObjectRecordRoutine_E13F
al 00E118 .ObjectPathLoop_E118
al 00E0D2 .UpdateObjectBufferOnNonZero_E0D2
al 00E0B5 .ObjectPathLoop_E0B5
al 00E09C .UpdateObjectRecordOnZero_E09C
al 00E080 .UpdateObjectRecordOnNoCarry_E080
al 00E09B .ObjectPathContinue_E09B
al 00E069 .ObjectPathOnNonZero_E069
al 00E059 .ObjectPathOnNoCarry_E059
al 00E04F .ObjectPathOnNoCarry_E04F
al 00E045 .ProcessObjectStateRoutine_E045
al 00DFE6 .ObjectPathOnZero_DFE6
al 00DFD1 .ObjectPathLoop_DFD1
al 00DFA3 .ObjectPathOnCarry_DFA3
al 00DFAC .UpdateObjectBufferContinue_DFAC
al 00DF7D .ObjectPathOnNonZero_DF7D
al 00DF66 .UpdateObjectBufferDispatch_DF66
al 00DF53 .ObjectPathLoop_DF53
al 00DF1F .ObjectPathOnCarry_DF1F
al 00DEE2 .UpdateObjectBufferOnNoCarry_DEE2
al 00DED5 .ObjectPathLoop_DED5
al 00DE8B .ProcessObjectStateRoutine_DE8B
al 00DE6B .ObjectPathOnCarry_DE6B
al 00DE55 .UpdateObjectBufferOnCarry_DE55
al 00DE4D .ObjectPathOnNonZero_DE4D
al 00DE3C .UpdateObjectBufferOnZero_DE3C
al 00DE81 .UpdateObjectBufferRoutine_DE81
al 00DE31 .ObjectPathLoop_DE31
al 00DE26 .UpdateObjectBufferLoop_DE26
al 00DE17 .ObjectPathLoop_DE17
al 00DDF3 .ObjectPathOnCarry_DDF3
al 00DDDB .ObjectPathLoop_DDDB
al 00DDE3 .ObjectPathOnNonZero_DDE3
al 00DDC7 .ObjectPathLoop_DDC7
al 00DDF8 .ObjectPathOnZero_DDF8
al 00DDAC .ObjectPathContinue_DDAC
al 00DD99 .ObjectPathLoop_DD99
al 00DD8E .ObjectPathOnNegative_DD8E
al 00DD67 .UpdateObjectBufferLoop_DD67
al 00DD4F .ObjectPathOnNonZero_DD4F
al 00DD5A .ObjectPathOnNonZero_DD5A
al 00DD3E .ObjectPathOnNonZero_DD3E
al 00DD2F .ObjectPathOnNonZero_DD2F
al 00DD20 .ObjectPathOnNonZero_DD20
al 00DCE9 .ObjectPathOnNonZero_DCE9
al 00DCD6 .ObjectPathOnZero_DCD6
al 00DD08 .ObjectPathOnZero_DD08
al 00DCEA .ObjectPathOnZero_DCEA
al 00DCBB .UpdateObjectBufferOnZero_DCBB
al 00DC9E .ObjectPathOnNegative_DC9E
al 00DC8A .ObjectPathLoop_DC8A
al 00DC72 .ObjectPathLoop_DC72
al 00DC66 .UpdateObjectBufferLoop_DC66
al 00DC44 .ObjectPathLoop_DC44
al 00DC1E .ObjectPathLoop_DC1E
al 00DC18 .ObjectPathOnZero_DC18
al 00DC2E .ObjectPathLoop_DC2E
al 00DC34 .ObjectPathOnZero_DC34
al 00DC3E .ObjectPathOnNegative_DC3E
al 00DC36 .ObjectPathLoop_DC36
al 00DBD3 .ObjectPathLoop_DBD3
al 00DBA7 .UpdateObjectBufferOnNegative_DBA7
al 00DB8A .ProcessObjectStateRoutine_DB8A
al 00DBC3 .ObjectPathContinue_DBC3
al 00DB30 .ReadObjectRecordOnNoCarry_DB30
al 00DB0A .ReadObjectRecordLoop_DB0A
al 00DB28 .ObjectPathOnNegative_DB28
al 00DB27 .ObjectPathContinue_DB27
al 00DABD .ObjectPathOnZero_DABD
al 00DAB5 .ObjectPathOnZero_DAB5
al 00DA9F .ObjectPathOnZero_DA9F
al 00DA81 .ObjectPathOnCarry_DA81
al 00DA79 .ObjectPathOnCarry_DA79
al 00DA8B .ObjectPathOnNonZero_DA8B
al 00DA65 .ObjectPathOnZero_DA65
al 00DA85 .ObjectPathLoop_DA85
al 00DA3E .ObjectPathOnZero_DA3E
al 00DA36 .ObjectPathOnNonZero_DA36
al 00DA8A .ObjectPathContinue_DA8A
al 00DA14 .ObjectPathOnNoCarry_DA14
al 00D9F2 .ObjectPathOnNoCarry_D9F2
al 00DA04 .UpdateObjectBufferRoutine_DA04
al 00D9E1 .ObjectPathOnNoCarry_D9E1
al 00D9E2 .UpdateObjectBufferRoutine_D9E2
al 00D9CF .ObjectPathOnNonZero_D9CF
al 00D9CB .ObjectPathOnCarry_D9CB
al 00D9DE .ObjectPathContinue_D9DE
al 00D9B1 .ProcessObjectStateRoutine_D9B1
al 00D9A0 .ObjectPathOnNoCarry_D9A0
al 00D998 .ObjectPathLoop_D998
al 00D987 .UpdateObjectBufferLoop_D987
al 00D978 .ObjectPathOnNonZero_D978
al 00D95A .ObjectPathOnNoCarry_D95A
al 00D96D .ObjectPathContinue_D96D
al 00D93D .UpdateObjectBufferOnZero_D93D
al 00D918 .UpdateObjectBufferLoop_D918
al 00D8F2 .UpdateObjectBufferLoop_D8F2
al 00D928 .ObjectPathOnCarry_D928
al 00D8E1 .ObjectPathOnPositive_D8E1
al 00D904 .ProcessObjectStateDispatch_D904
al 00D970 .ProcessObjectStateRoutine_D970
al 00D8D2 .ObjectPathLoop_D8D2
al 00D8C6 .UpdateObjectBufferLoop_D8C6
al 00F71C .ProcessResourceStateRoutine_F71C
al 00D896 .UpdateObjectBufferOnPositive_D896
al 00D888 .ObjectPathOnZero_D888
al 00D8A5 .ObjectPathContinue_D8A5
al 00D86E .ObjectPathLoop_D86E
al 00D862 .UpdateObjectBufferLoop_D862
al 00D842 .UpdateObjectRecordOnNoCarry_D842
al 00D83A .ObjectPathOnZero_D83A
al 00D82F .ObjectPathLoop_D82F
al 00D828 .ReadObjectRecordOnCarry_D828
al 00D804 .ObjectPathOnNonZero_D804
al 00D7F0 .UpdateObjectRecordOnNonZero_D7F0
al 00D7E8 .ObjectPathOnNoCarry_D7E8
al 00D7DD .ProcessObjectStateDispatch_D7DD
al 00D7DB .ObjectPathLoop_D7DB
al 00D809 .ObjectPathOnZero_D809
al 00D807 .ObjectPathOnCarry_D807
al 00D80D .ReadObjectRecordLoop_D80D
al 00D7B9 .TestObjectFieldOnNoCarry_D7B9
al 00D814 .UpdateObjectRecordContinue_D814
al 00D7A1 .ObjectPathOnNoCarry_D7A1
al 00D794 .UpdateObjectRecordOnNonZero_D794
al 00D765 .UpdateObjectRecordOnCarry_D765
al 00D75D .ObjectPathOnCarry_D75D
al 00D755 .ObjectPathOnCarry_D755
al 00D7A4 .ReadObjectRecordContinue_D7A4
al 00D775 .UpdateObjectRecordOnNonZero_D775
al 00D736 .ObjectPathLoop_D736
al 00D72A .ObjectPathContinue_D72A
al 00D716 .ObjectPathLoop_D716
al 00D6D6 .UpdateObjectRecordLoop_D6D6
al 00D6C0 .UpdateObjectBufferOnNonZero_D6C0
al 00D6A8 .ObjectPathOnNonZero_D6A8
al 00D699 .ObjectPathOnZero_D699
al 00D680 .UpdateObjectRecordLoop_D680
al 00D68E .UpdateObjectRecordContinue_D68E
al 00D6A9 .ReadObjectRecordOnZero_D6A9
al 00D65B .ReadObjectRecordLoop_D65B
al 00D64C .ObjectPathLoop_D64C
al 00D73B .UpdateObjectBufferDispatch_D73B
al 00D649 .ObjectPathLoop_D649
al 00D646 .ObjectPathLoop_D646
al 00D643 .ObjectPathLoop_D643
al 00D640 .ObjectPathLoop_D640
al 00D62A .UpdateObjectRecordLoop_D62A
al 00D615 .ObjectPathLoop_D615
al 00D60C .UpdateObjectRecordOnNoCarry_D60C
al 00D5FF .UpdateObjectRecordOnNoCarry_D5FF
al 00D5F6 .ObjectPathOnCarry_D5F6
al 00D5F8 .ObjectPathOnZero_D5F8
al 00D5D5 .ReadObjectRecordOnNonZero_D5D5
al 00D5C7 .UpdateObjectRecordOnNonZero_D5C7
al 00D5C9 .ObjectPathOnNonZero_D5C9
al 00D5CC .ObjectPathContinue_D5CC
al 00D5A3 .UpdateObjectRecordDispatch_D5A3
al 00D59F .ProcessObjectStateDispatch_D59F
al 00D777 .ReadObjectRecordDispatch_D777
al 00D595 .UpdateObjectRecordOnNonZero_D595
al 00D555 .UpdateObjectRecordDispatch_D555
al 00D548 .UpdateObjectRecordLoop_D548
al 00D546 .ObjectPathOnNonZero_D546
al 00D54C .ObjectPathOnNoCarry_D54C
al 00D527 .UpdateObjectRecordDispatch_D527
al 00DD5B .UpdateObjectBufferRoutine_DD5B
al 00D67A .ProcessObjectStateDispatch_D67A
al 00D4FC .UpdateObjectRecordOnCarry_D4FC
al 00D57E .UpdateObjectRecordDispatch_D57E
al 00D4F9 .ObjectPathOnNonZero_D4F9
al 00D783 .ProcessObjectStateDispatch_D783
al 00D4C6 .ObjectPathLoop_D4C6
al 00D4B8 .UpdateObjectRecordOnZero_D4B8
al 00D4CB .UpdateObjectRecordContinue_D4CB
al 00D4DE .UpdateObjectRecordOnCarry_D4DE
al 00D4D5 .ReadObjectRecordOnCarry_D4D5
al 00D481 .ReadObjectRecordDispatch_D481
al 00D49E .UpdateObjectRecordDispatch_D49E
al 00D47E .ObjectPathOnNoCarry_D47E
al 00D476 .ObjectPathLoop_D476
al 00D4A3 .ObjectPathOnNegative_D4A3
al 00D436 .UpdateObjectBufferLoop_D436
al 00D416 .ObjectPathLoop_D416
al 00D41A .UpdateObjectRecordOnZero_D41A
al 00D418 .ObjectPathOnNonZero_D418
al 00D3FF .ObjectPathOnZero_D3FF
al 00D3DC .ObjectPathOnNonZero_D3DC
al 00D3E0 .ObjectPathOnPositive_D3E0
al 00D3DA .ObjectPathContinue_D3DA
al 00D3A2 .UpdateObjectBufferOnNoCarry_D3A2
al 00D396 .UpdateObjectBufferOnNonZero_D396
al 00D3AF .UpdateObjectBufferOnZero_D3AF
al 00D384 .UpdateObjectBufferOnZero_D384
al 00D382 .ObjectPathOnZero_D382
al 00D401 .UpdateObjectRecordDispatch_D401
al 00D34B .ObjectPathLoop_D34B
al 00D36E .UpdateObjectRecordOnZero_D36E
al 00E335 .UpdateObjectRecordRoutine_E335
al 00D331 .ReadObjectRecordLoop_D331
al 00D32F .ObjectPathLoop_D32F
al 00D32B .ObjectPathLoop_D32B
al 00D312 .UpdateObjectRecordLoop_D312
al 00D30B .UpdateObjectRecordOnZero_D30B
al 00D2E0 .UpdateObjectRecordOnZero_D2E0
al 00D2C7 .ObjectPathOnZero_D2C7
al 00E325 .UpdateObjectRecordRoutine_E325
al 00D2B5 .UpdateObjectRecordOnZero_D2B5
al 00D2D0 .ObjectPathOnZero_D2D0
al 00D2CE .ObjectPathOnZero_D2CE
al 00D275 .ObjectPathLoop_D275
al 00D272 .ObjectPathOnZero_D272
al 00D277 .ObjectPathOnZero_D277
al 00D25F .ObjectPathLoop_D25F
al 00D23A .ObjectPathOnNegative_D23A
al 00D220 .ObjectPathOnPositive_D220
al 00D222 .UpdateObjectBufferOnNonZero_D222
al 00D254 .ObjectPathContinue_D254
al 00D1EF .ObjectPathOnZero_D1EF
al 00D1E6 .ObjectPathOnZero_D1E6
al 00D1F4 .ObjectPathOnNonZero_D1F4
al 00D16D .UpdateObjectRecordOnNoCarry_D16D
al 00D161 .ObjectPathOnCarry_D161
al 00D158 .ObjectPathLoop_D158
al 00D14E .ObjectPathOnNoCarry_D14E
al 00D13A .UpdateObjectRecordOnNonZero_D13A
al 00D14F .ObjectPathOnNoCarry_D14F
al 00D132 .ObjectPathContinue_D132
al 00DDB2 .ProcessObjectStateRoutine_DDB2
al 00D102 .ObjectPathLoop_D102
al 00D0EB .ObjectPathLoop_D0EB
al 00D0D4 .ObjectPathLoop_D0D4
al 00D0BD .ObjectPathLoop_D0BD
al 00F601 .ProcessResourceStateRoutine_F601
al 00D04C .UpdateObjectRecordOnZero_D04C
al 00D045 .ObjectPathOnNonZero_D045
al 00D04F .ProcessObjectStateDispatch_D04F
al 00D01A .UpdateObjectRecordOnCarry_D01A
al 00D052 .UpdateObjectRecordOnZero_D052
al 00CFF7 .UpdateObjectRecordContinue_CFF7
al 00CFDB .ReadObjectRecordOnNonZero_CFDB
al 00D004 .UpdateObjectRecordOnZero_D004
al 00CFFA .ProcessObjectStateDispatch_CFFA
al 00CF9E .ObjectPathLoop_CF9E
al 00CFAD .UpdateObjectRecordLoop_CFAD
al 00CF96 .UpdateObjectRecordOnCarry_CF96
al 00CF6B .UpdateObjectRecordOnZero_CF6B
al 00CF3C .ReadObjectRecordDispatch_CF3C
al 00CF1E .ObjectPathContinue_CF1E
al 00CF02 .ObjectPathContinue_CF02
al 00D94D .ProcessObjectStateRoutine_D94D
al 00CED7 .ObjectPathLoop_CED7
al 00CECA .ObjectPathOnZero_CECA
al 00CE96 .ObjectPathContinue_CE96
al 00CE7A .ObjectPathLoop_CE7A
al 00E0F9 .UpdateObjectBufferRoutine_E0F9
al 00CE9D .ObjectPathOnZero_CE9D
al 00CE6D .ObjectPathLoop_CE6D
al 00CE6F .ObjectPathOnZero_CE6F
al 00CE60 .ObjectPathLoop_CE60
al 00CE41 .ObjectPathOnZero_CE41
al 00CE26 .ObjectPathOnZero_CE26
al 00CE2A .ProcessObjectStateDispatch_CE2A
al 00CE34 .ObjectPathOnZero_CE34
al 00CE33 .ObjectPathContinue_CE33
al 00CE50 .ProcessObjectStateRoutine_CE50
al 00CDE4 .UpdateObjectBufferContinue_CDE4
al 00CDBE .ObjectPathOnCarry_CDBE
al 00CDCE .ObjectPathContinue_CDCE
al 00CDCD .ObjectPathContinue_CDCD
al 00CD70 .ObjectPathOnZero_CD70
al 00CD64 .ObjectPathLoop_CD64
al 00CD62 .ObjectPathOnZero_CD62
al 00CD5C .ObjectPathOnNoCarry_CD5C
al 00CD45 .UpdateObjectRecordRoutine_CD45
al 00CD1E .UpdateObjectRecordRoutine_CD1E
al 00CCDE .UpdateObjectRecordLoop_CCDE
al 00CCF7 .UpdateObjectRecordRoutine_CCF7
al 00CCD9 .ObjectPathLoop_CCD9
al 00CD54 .ProcessObjectStateRoutine_CD54
al 00CCEF .ObjectPathOnCarry_CCEF
al 00CCE9 .ObjectPathContinue_CCE9
al 00CCCC .ObjectPathContinue_CCCC
al 00CCB8 .ObjectEngineCodeAndTables
al 00CCB6 .@SetObjectFieldOffset
al 00CC40 .MovementTables
al 00E28F .ProcessObjectStateRoutine_E28F
al 00CC1F .RunGameTaskDispatch_CC1F
al 00E3A7 .UpdateObjectRecordRoutine_E3A7
al 00CC22 .CorePathOnNoCarry_CC22
al 00E351 .ReadObjectRecordRoutine_E351
al 00CCA8 .PrepareObjectMovementContext
al 00E1BF .ProcessObjectStateRoutine_E1BF
al 00E17F .ProcessObjectStateRoutine_E17F
al 00CC10 .CorePathContinue_CC10
al 00E5AA .ReadObjectRecordRoutine_E5AA
al 00E06A .ReadObjectRecordRoutine_E06A
al 00CC23 .CorePathOnCarry_CC23
al 00E539 .ReadObjectRecordRoutine_E539
al 00E468 .UpdateObjectBufferRoutine_E468
al 00CBFA .CorePathOnPositive_CBFA
al 00CBAE .CorePathLoop_CBAE
al 00F2EA .ProcessResourceStateDispatch_F2EA
al 00CB85 .CorePathOnNonZero_CB85
al 00CB5E .UpdateGameStateOnZero_CB5E
al 00CB56 .UpdatePlayerStateOnZero_CB56
al 00D42C .ProcessObjectStateRoutine_D42C
al 00CB3F .UpdatePlayerStateOnZero_CB3F
al 00CB15 .UpdateGameStateOnNonZero_CB15
al 00CAD4 .CorePathLoop_CAD4
al 00CA4D .CorePathOnNonZero_CA4D
al 00CA25 .UpdateGameStateLoop_CA25
al 00CA1D .CorePathLoop_CA1D
al 00CBA8 .RunGameTaskRoutine_CBA8
al 00DF5E .UpdateObjectBuffer_DF5E
al 00DE15 .ObjectPath_DE15
al 00D211 .ProcessObjectStateRoutine_D211
al 00CA09 .CorePathOnZero_CA09
al 00DF2F .ObjectPath_DF2F
al 00CB87 .RunGameTaskDispatch_CB87
al 00C9D3 .CorePathOnZero_C9D3
al 00CB8C .RunGameTaskRoutine_CB8C
al 00C9B8 .UpdateGameStateOnZero_C9B8
al 00F257 .ProcessResourceStateRoutine_F257
al 00C9DA .CorePathOnZero_C9DA
al 00C99B .UpdateGameStateOnNonZero_C99B
al 00C986 .CorePathContinue_C986
al 00C974 .CorePathContinue_C974
al 00C95D .CorePathOnNonZero_C95D
al 00C94D .CorePathLoop_C94D
al 00C939 .CorePathLoop_C939
al 00C937 .CorePathLoop_C937
al 00C941 .CorePathContinue_C941
al 00E0B2 .ProcessObjectStateRoutine_E0B2
al 00E0DF .UpdateObjectBufferRoutine_E0DF
al 00C907 .CorePathLoop_C907
al 00C8FB .RunGameTaskRoutine_C8FB
al 00C8E1 .CorePathLoop_C8E1
al 00C8D6 .RunGameTaskRoutine_C8D6
al 00CBD3 .RunGameTaskRoutine_CBD3
al 00C8CA .CorePathLoop_C8CA
al 00C8B9 .RunGameTaskRoutine_C8B9
al 00C8AA .RunGameTaskRoutine_C8AA
al 00C889 .CorePathLoop_C889
al 00C875 .CorePathLoop_C875
al 00C873 .CorePathLoop_C873
al 00C86A .CorePathLoop_C86A
al 00C862 .CorePathLoop_C862
al 00C851 .CorePathLoop_C851
al 00C82C .CorePathOnZero_C82C
al 00C81E .CorePathLoop_C81E
al 00C80F .CorePathLoop_C80F
al 00C808 .CorePathOnZero_C808
al 00F500 .ProcessResourceStateRoutine_F500
al 00C816 .RunGameTaskRoutine_C816
al 00C7DD .CorePathOnZero_C7DD
al 00C79B .CorePathOnNegative_C79B
al 00C78B .RunGameTaskDispatch_C78B
al 00C77C .CorePathLoop_C77C
al 00C77A .CorePathOnNonZero_C77A
al 00C76A .CorePathOnZero_C76A
al 00C7AD .RunGameTaskDispatch_C7AD
al 00C772 .RunGameTaskDispatch_C772
al 00C72E .CorePathContinue_C72E
al 00C713 .UpdateGameStateOnZero_C713
al 00C703 .CorePathOnNonZero_C703
al 00C6E5 .CorePathOnNonZero_C6E5
al 00C73D .CorePathOnZero_C73D
al 00C73A .CorePathOnZero_C73A
al 00C740 .CorePathOnZero_C740
al 00C6BB .CorePathLoop_C6BB
al 00C6B8 .CorePathLoop_C6B8
al 00C6B5 .CorePathLoop_C6B5
al 00D0A5 .ProcessObjectStateRoutine_D0A5
al 00D083 .ProcessObjectStateRoutine_D083
al 00C6A8 .CorePathOnNonZero_C6A8
al 00C6A2 .CorePathOnNonZero_C6A2
al 00C689 .CorePathLoop_C689
al 00C67F .CorePathOnZero_C67F
al 00C678 .CorePathLoop_C678
al 00C7E8 .RunGameTaskDispatch_C7E8
al 00C66B .CorePathLoop_C66B
al 00C667 .CorePathOnNegative_C667
al 00C66A .CorePathLoop_C66A
al 00C670 .CorePathOnZero_C670
al 00C654 .CorePathLoop_C654
al 00C682 .CorePathOnZero_C682
al 00D44A .ProcessObjectStateRoutine_D44A
al 00C62D .RunGameTaskDispatch_C62D
al 00C621 .RunGameTaskDispatch_C621
al 00C80B .RunGameTaskDispatch_C80B
al 00C824 .RunGameTaskRoutine_C824
al 00C830 .RunGameTaskRoutine_C830
al 00C60E .CorePathOnZero_C60E
al 00C601 .CorePathLoop_C601
al 00C61E .CorePathOnZero_C61E
al 00C5FF .CorePathOnNonZero_C5FF
al 00C5F7 .RunGameTaskDispatch_C5F7
al 00C5F2 .RunGameTaskDispatch_C5F2
al 00C5EC .UpdatePlayerStateDispatch_C5EC
al 00C81A .RunGameTaskRoutine_C81A
al 00C5E4 .CorePathOnNonZero_C5E4
al 00C5CB .CorePathLoop_C5CB
al 00C5C8 .CorePathLoop_C5C8
al 00C7E5 .RunGameTaskDispatch_C7E5
al 00F408 .ProcessResourceStateRoutine_F408
al 00C5A5 .CorePathOnZero_C5A5
al 00C594 .UpdatePlayerStateLoop_C594
al 00C590 .CorePathOnNonZero_C590
al 00C5C5 .CorePathContinue_C5C5
al 00C584 .CorePathLoop_C584
al 00C7EA .RunGameTaskDispatch_C7EA
al 00C809 .RunGameTaskRoutine_C809
al 00C7EF .RunGameTaskRoutine_C7EF
al 00F40C .ProcessResourceStateRoutine_F40C
al 00F3A1 .UpdateCommandBufferRoutine_F3A1
al 00C56B .CorePathOnZero_C56B
al 00C547 .UpdatePlayerStateLoop_C547
al 00C581 .CorePathOnNonZero_C581
al 00C53B .RunGameTaskDispatch_C53B
al 00C51A .CorePathOnNonZero_C51A
al 00F31A .ProcessResourceStateRoutine_F31A
al 00C7F3 .RunGameTaskRoutine_C7F3
al 00C4EB .CorePathLoop_C4EB
al 00C4E1 .CorePathOnNonZero_C4E1
al 00C4D1 .CorePathLoop_C4D1
al 00C4C3 .CorePathLoop_C4C3
al 00C4BF .CorePathOnZero_C4BF
al 00DD48 .ProcessObjectStateDispatch_DD48
al 00F77D .ProcessResourceStateRoutine_F77D
al 00C4A9 .CorePathOnNonZero_C4A9
al 00C4A3 .UpdatePlayerStateOnNonZero_C4A3
al 00C4B3 .CorePathLoop_C4B3
al 00D1CE .ProcessObjectStateRoutine_D1CE
al 00DA26 .ProcessObjectStateRoutine_DA26
al 00C504 .UpdatePlayerStateRoutine_C504
al 00C46E .CorePathLoop_C46E
al 00C467 .CorePathLoop_C467
al 00C463 .RunGameTaskRoutine_C463
al 00C45A .CorePathOnZero_C45A
al 00C475 .CorePathOnCarry_C475
al 00C43A .UpdatePlayerStateLoop_C43A
al 00C438 .CorePathLoop_C438
al 00D1AE .UpdateObjectBufferRoutine_D1AE
al 00C432 .CorePathLoop_C432
al 00C437 .CorePathOnNonZero_C437
al 00C421 .CorePathLoop_C421
al 00C41C .CorePathContinue_C41C
al 00C402 .UpdateGameStateRoutine_C402
al 00C3EE .CorePathOnNonZero_C3EE
al 00C6BE .RunGameTaskRoutine_C6BE
al 00C3DF .CorePathContinue_C3DF
al 00C400 .CorePathOnZero_C400
al 00C3BC .UpdateGameStateRoutine_C3BC
al 00C3E0 .CorePathOnZero_C3E0
al 00C3CC .CorePathLoop_C3CC
al 00C3A3 .CorePathOnNonZero_C3A3
al 00C3A9 .UpdateGameStateContinue_C3A9
al 00C387 .CorePathOnNonZero_C387
al 00C38D .CorePathOnZero_C38D
al 00F577 .ProcessResourceStateRoutine_F577
al 00C373 .UpdateGameStateOnNonZero_C373
al 00C3CD .CorePathOnNonZero_C3CD
al 00C359 .UpdateGameStateOnNonZero_C359
al 00C342 .UpdatePlayerStateLoop_C342
al 00C33A .CorePathLoop_C33A
al 00C365 .CorePathContinue_C365
al 00C31C .CorePathOnZero_C31C
al 00C310 .UpdatePlayerStateContinue_C310
al 00C2F8 .CorePathLoop_C2F8
al 00C2F1 .UpdateGameStateDispatch_C2F1
al 00C2DD .UpdateGameStateOnNonZero_C2DD
al 00C2D4 .InitializePlayerAndGameState
al 00C2CA .CorePathLoop_C2CA
al 00C84B .RunGameTaskRoutine_C84B
al 00C2C3 .CorePathLoop_C2C3
al 00D209 .ObjectPath_D209
al 00C47A .UpdateGameStateRoutine_C47A
al 00D0F6 .UpdateObjectBuffer_D0F6
al 00DD8F .UpdateObjectBuffer_DD8F
al 00D1D6 .ObjectPath_D1D6
al 00D0DF .ObjectPath_D0DF
al 00DBC7 .UpdateObjectBuffer_DBC7
al 00DA91 .ObjectPath_DA91
al 00E6F3 .ProcessObjectStateRoutine_E6F3
al 00D0B1 .ObjectPath_D0B1
al 00CFA1 .ObjectPath_CFA1
al 00D0C8 .UpdateObjectBuffer_D0C8
al 00D97B .ObjectPath_D97B
al 00D64F .UpdateObjectBuffer_D64F
al 00D8BA .ObjectPath_D8BA
al 00D856 .ObjectPath_D856
al 00DB52 .UpdateObjectBuffer_DB52
al 00DC5A .ObjectPath_DC5A
al 00DD10 .ObjectPath_DD10
al 00D08F .ObjectPath_D08F
al 00C286 .CorePathContinue_C286
al 00CBC6 .RunGameTaskRoutine_CBC6
al 00D06D .ObjectPath_D06D
al 00D11E .ReadObjectRecord_D11E
al 00CD7B .ReadObjectRecord_CD7B
al 00DADA .ReadObjectRecord_DADA
al 00CBE3 .ProcessCurrentObjectRoutine_CBE3
al 00D27D .UpdateObjectRecord_D27D
al 00C264 .ProcessCurrentObjectContinue_C264
al 00D34E .ObjectPath_D34E
al 00CBB9 .RunGameTaskRoutine_CBB9
al 00C245 .CoreGameCode
al 00C234 .NMIReadPPUStatus_C234
al 00C368 .RunGameTaskRoutine_C368
al 00DDC1 .ObjectPath_DDC1
al 00F5AE .EnginePath_F5AE
al 00F7C1 .AudioDriverCode
al 00E113 .ObjectPath_E113
al 00F20B .ResourceAndLevelData
al 00C996 .UpdateGameStateRoutine_C996
al 00C1F1 .NMIHandler
al 00F58D .EnginePath_F58D
al 00C1EB .InterruptPathDispatch_C1EB
al 00C3E4 .RunGameTaskRoutine_C3E4
al 00CBA6 .RunGameTaskRoutine_CBA6
al 00C1B8 .InterruptPathLoop_C1B8
al 00C1B6 .InterruptPathOnZero_C1B6
al 00C1B4 .InterruptPathOnNonZero_C1B4
al 00C1A2 .InterruptPathLoop_C1A2
al 00C196 .ResetEntry
al 00C0E9 .StartupObjectTemplateData_C0E9
al 00C0B4 .DirectionAndCoordinateTables_C0B4
al 00C058 .ResourceDescriptorData_C058
al 00C044 .TitleOrMessageTileString
al 00C008 .ResourceScriptPointerTable
al 00C000 .DeveloperCreditText
@@ -0,0 +1,32 @@
Modules list:
-------------
header.o:
HEADER Offs=000000 Size=000010 Align=00001 Fill=0000
prg.o:
PRG Offs=000000 Size=004000 Align=00001 Fill=0000
chr.o:
CHR Offs=000000 Size=002000 Align=00001 Fill=0000
Segment list:
-------------
Name Start End Size Align
----------------------------------------------------
CHR 000000 001FFF 002000 00001
HEADER 000000 00000F 000010 00001
PRG 00C000 00FFFF 004000 00001
Exports list by name:
---------------------
Exports list by value:
----------------------
Imports list:
-------------
Binary file not shown.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
../rom.nes
+35
View File
@@ -0,0 +1,35 @@
;------------------------------------------------------------
; NES hardware registers
;------------------------------------------------------------
PPUCTRL = $2000
PPUMASK = $2001
PPUSTATUS = $2002
OAMADDR = $2003
OAMDATA = $2004
PPUSCROLL = $2005
PPUADDR = $2006
PPUDATA = $2007
SQ1_VOL = $4000
SQ1_SWEEP = $4001
SQ1_LO = $4002
SQ1_HI = $4003
SQ2_VOL = $4004
SQ2_SWEEP = $4005
SQ2_LO = $4006
SQ2_HI = $4007
TRI_LINEAR = $4008
TRI_LO = $400A
TRI_HI = $400B
NOISE_VOL = $400C
NOISE_LO = $400E
NOISE_HI = $400F
OAMDMA = $4014
APUSTATUS = $4015
JOY1 = $4016
JOY2 = $4017