Files
disasm/_wip/MUSCLE (U)/copilot/routine_names.tsv
T
tmerritt 4c644d2a20 Pass 3 for NES PowerPad Test Card (U): name all data tables and VramWrite streams
- Decoded the VramWrite ($E1CC) stream format: <addr hi> <addr lo> <count> <bytes>, $00 terminator
- Named all 9 payload streams ($E4CC-$E7C2, no gaps/overlaps) plus VramWriteSourcePointerTable at $F000
- Split PadBitTableLives into Player1TileTable ($E4B4) and Player2TileTable ($E4C0), 12 entries each (Y=0..11)
- Decoded CHR font (digits $30-$39, letters $3A-$52, space $5F; 'W' missing from the A-Z run)
  and recovered on-screen text including 'PRESS A TO TEST SIDE-A' / 'SIDE-B'
- Documented that the 16 KiB PRG is two byte-identical 8 KiB halves; $C000 copy is dead
- Documented 7 unreached subroutines inside the live code region (kept as .byte per Pass-1 policy)
- Fixed a stray duplicate sentence and stale _wip paths in root OVERVIEW.md

Byte-identical ROM verified.
2026-10-16 20:24:23 -04:00

229 lines
6.1 KiB
Plaintext

0x8000 Reset
0x800E WaitForFirstPpuWarmup
0x8019 WaitForSecondPpuWarmup
0x802C InitializeGameState
0x8052 UpdateNametableFromStream
0x80AC StartStageSequence
0x8132 UpdateFadeFlashSprites
0x8164 InitializeRound
0x8226 MainGameLoop
0x82AC DivideBy20
0x82E1 SilenceSoundChannels1And3
0x82ED SilenceSoundChannel3
0x82FA StartIntroMusic
0x82FF StartMusicSequence
0x832A UpdateHudTallyTiles
0x8353 UpdateScoreTallyDigits
0x8372 WriteScoreTallyDigits
0x8399 LoadOamShadowFromTable
0x83A7 UpdateActorPositions
0x845C UpdateRoundTimers
0x856C PlayRoundChangeMusic
0x8596 UpdateScrollTarget
0x8598 UpdateScrollTargetAlt
0x8639 BeginVblankFrame
0x8644 ForceRenderingOff
0x8653 SetRenderingOffAndSignalVblank
0x865D UpdateRoundLogic
0x86CB NmiHandler
0x8751 FinishNmiUpdates
0x8759 FinishNmiRegisters
0x8764 IrqHandler
0x8765 SetSoundSequenceChannel1
0x877C RunGameStateDispatcher
0x87BF UpdateTimersAlt
0x87D1 PollControllerStart
0x87F2 UpdateFlashCounter
0x8837 PlayDeathSequence
0x8848 PollControllerBits
0x885B PollControllerAndAdvance
0x886C PollControllerBitsAlt
0x887C SignalVblankComplete
0x8882 PollControllerAndCheckRound
0x88A4 BuildOamList
0x88B0 EmitOamEntry
0x88EB EmitOamBlankEntry
0x88F9 EmitOamFromTable
0x88FF EmitOamAtOffset
0x8936 FindFreeOamSlot
0x8986 CompactOamList
0x89CE ReadControllerAndInit
0x8A28 UpdateStageActors
0x8A5E SpawnStageActors
0x8AE8 UpdateAttributeTable
0x8B07 ClearScrollLatch
0x8B20 WriteNametableTile
0x8B33 ClearAttributeRegion
0x8B92 RenderHudDigits
0x8BEF RenderHudDigitDescriptor
0x8BF8 SetRenderingOn
0x8C05 AdvanceAnimationSlot
0x8C0E QueueVramTransfer
0x8C11 QueueVramTransferAlt
0x8C65 ExecuteVramTransfer
0x8CB8 QueueVramDescriptor
0x934B UpdateActorX
0x9371 UpdateActorTile
0x9374 UpdateActorTileAlt
0x94B1 TestPlayerFacing
0x94C7 SelectActorSlot
0x94C8 SelectActorSlotAlt
0x94CF ClearActorPosition
0x94D7 ClearActorFields
0x94FE SetActorFlag
0x9585 UpdateActorState
0x95AE ComputeActorLeftEdge
0x95D2 ComputeActorRightEdge
0x95D9 CompareActorToLimit
0x9653 SetActorTileFromPalette
0x9667 StoreActorTile
0x969E AdvanceActorCounter
0x96AA SetActorTileValue
0x96C8 TestActorCollisionFlag
0x96F7 ComputeActorLeftEdgeAlt
0x9722 ComputeActorRightEdgeAlt
0x9729 TestActorRange
0x9732 MoveActorByStep
0x97BC SetActorAnimation63
0x97C0 SetActorAnimation62
0x97C4 SetActorAnimation61
0x97D5 UpdateActorAnimation
0x97FC TestAnimationSlot
0x982A ComputeActorLeftEdgeAt
0x9858 ComputeActorRightEdgeAt
0x985F TestActorValue
0x98E6 ComputeActorLeftEdgeAlt2
0x9911 UpdateActorTileFromIndex
0x9918 UpdateActorTileFromIndexAlt
0x99A3 SetSoundSequenceChannel2
0x99E2 LookupActorTileId
0x99E4 LookupActorTileIdAlt
0x9A24 StoreActorCoordinates
0x9A2E StoreActorCoordinatesAlt
0x9A3F FlipActorFacing
0x9A4E SpawnActorPair
0x9A6B SpawnActorPairAlt
0x9AE8 RunBytecodeInterpreter
0x9B05 DispatchThroughPointer
0x9B25 RunBytecodeProgram
0x9CBB ResetBytecodeState
0x9D4E CopyActorCoordinates
0x9DD6 SetActorBounds
0x9DE6 LoadActorTileIndex
0x9E6E UpdateActorFacing
0x9E7F QueueNametableWrite
0x9F14 FlushNametableWrite
0x9F4B UpdateActorMovement
0x9F54 MoveActorByOpcode
0x9FDF AddToNametableValue
0xA002 SubtractFromNametableValue
0xA01D ProcessBytecodeOpcode
0xA085 ComputeBytecodeOffset
0xA0A5 ResetBytecodeAccumulator
0xA0C6 ResetBytecodeAccumulatorAlt
0xA0F4 AdvanceBytecodeProgram
0xA0FB ResetBytecodeStateAlt
0xA12E ComputeActorTileRow
0xA15D ResetBytecodePointers
0xA17F RunActorScript
0xA250 LoadActorConfigByte
0xA253 ComputeActorConfigOffset
0xA25F CopyConfigBytes
0xA270 LoadActorConfigRecord
0xA298 CompareConfigValue
0xA2C8 ReturnFromConfigLoad
0xA2C9 LoadActorConfigFields
0xA316 StoreActorPaletteByte
0xA32C StoreActorControlByte
0xA338 ReadActorConfigByte
0xA435 CompareActorConfigValue
0xA46F StoreActorConfigResult
0xA482 LoadActorConfigAlt
0xA49F StoreActorConfigResultAlt
0xA4AA LoadActorFacingFlag
0xA4C7 LoadActorConfigBlock
0xA4DF TestSoundChannelState
0xA4F2 SetSoundSequenceChannel2Alt
0xA4FF FlipObjectIndex
0xA508 LookupObjectIndex
0xA512 UpdateObjectSlots
0xA51B AdvanceObjectSlot
0xA5DD WriteNametableBytes
0xA660 SetSoundSequenceChannel4
0xA68E UpdateObjectList
0xA695 UpdateObjectListEntry
0xA6F8 UpdateObjectCollisions
0xA79F CheckObjectScroll
0xA82F ClearScrollLatchAlt
0xA834 UpdateObjectSprite
0xA884 SetObjectFlags
0xA8D1 AdvanceObjectFrame
0xA8E9 TestObjectActive
0xA949 UpdateObjectAnimations
0xA952 UpdateObjectAnimation
0xA992 UpdateObjectTimer
0xA99E DecrementObjectCounter
0xA9AB UpdateObjectState
0xA9D8 ToggleScrollRegionFlip
0xA9FF BuildObjectList
0xAA56 ReadControllers
0xAA63 ReadControllerShiftRegister
0xAAB8 StoreControllerButtonBits
0xAACD EnableRendering
0xAADC DisableRenderingAndClearNametables
0xAAEF ClearNametablePattern
0xAB68 CopyPaletteFromTable
0xAB98 LoadShadowOamBlock
0xABA3 FillShadowOamBlock
0xABB1 UploadPalette
0xABE4 ApplyPpuScrollAndControl
0xABF7 ShiftAccumulatorRight4
0xABFC ClearOamShadow
0xAC0D SelectLevelVramWriter
0xAC3B SetLevelVramStream
0xAC43 FillAttributeBlock
0xAC4C WriteAttributeBlock
0xAC62 LoadAttributeStream
0xAC78 SetPpuAddressHighAnd40
0xAC82 WriteCompressedVramStream
0xAC88 AdvanceSourceByte
0xAC96 DecodeVramStreamToken
0xACA7 WriteVramRunToken
0xACC9 AdvanceDestinationWord
0xACD7 AdvanceCountWord
0xACE5 WithRenderingEnabled
0xACF5 WriteCompressedVramBlocks
0xAD19 ComputeCollisionBits
0xAD36 ComputePlayerOverlapBits
0xAE45 SetDefaultOverlapBits
0xAE9B ComputeEdgeOverlapBits
0xAF25 InitializeSoundEngine
0xAF3B UpdateSoundFrame
0xAF40 UpdateAllSoundChannels
0xAF43 UpdateSoundChannel
0xAF55 AdvanceSoundChannelNote
0xAF69 WriteSoundChannelState
0xAF6B RebuildApuEnableMask
0xAF73 StartSoundChannelNote
0xAFAB AdvanceSoundSequencePointer
0xAFC5 ComputeEnvelopeMask
0xAFD9 ComputeTonePeriod
0xB000 ShiftNoteTableIndex
0xB007 WriteToneRegisters
0xB029 WriteFixedToneRegisters
0xB03A ReadNoteDuration
0xB049 StoreNoteDuration
0xB059 StoreShortNoteDuration
0xB05D BuildApuChannelMask
0xB062 WriteApuEnable
0xB06C ApplySoundCommand
0xB083 WriteApuControlRegister
0xB08C AdvanceSoundSequenceStep
0xB08E AdvanceSoundSequenceStepAlt
0xB095 ReturnFromSoundCommand
0xB096 ReadLoopFlag
0xB09D HandleNoteTerminator
0xB0A9 HandleSustainCounter
0xB0B3 LoadSoundSequenceStep
0xB0C6 DecrementSustainCounter