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.
This commit is contained in:
1 parent
3ef16a6f99
commit
4c644d2a20
23 files changed
+17290
-507
No files matched your search
@@ -0,0 +1,228 @@
|
||||
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
|
||||
|
Reference in new issue
Block a user