Standardizes build process and adds OVERVIEW.md for each

This commit is contained in:
tmerritt committed 2026-10-15 18:50:41 -04:00
1 parent 25423d3828
commit a29b03b00b
135 files changed
+26562 -420

No files matched your search

+24 -9
View File
@@ -1,10 +1,25 @@
all: reconstructed_prg.bin verify
prg.o: prg.s symbols.inc prg.bin
ca65 -g -o $@ prg.s
reconstructed_prg.bin: prg.o linker.cfg
ld65 -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ prg.o
verify: reconstructed_prg.bin prg.bin
cmp reconstructed_prg.bin prg.bin
@echo BYTE-IDENTICAL
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 prg.o reconstructed_prg.bin reconstructed.map reconstructed.lbl
rm -f *.o reconstructed.nes reconstructed.map reconstructed.lbl
.PHONY: all verify clean
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"
+7 -3
View File
@@ -1,6 +1,10 @@
MEMORY {
PRG: start = $C000, size = $4000, file = %O, fill = yes;
HEADER: start = $0000, size = $0010, fill = yes;
PRG: start = $C000, size = $4000, fill = yes;
CHR: start = $0000, size = $2000, fill = yes;
}
SEGMENTS {
PRG: load = PRG, type = ro;
}
HEADER: load = HEADER, type = ro;
PRG: load = PRG, type = ro;
CHR: load = CHR, type = ro;
}
+181
View File
@@ -0,0 +1,181 @@
; Excitebike-specific zero-page aliases used during Pass 1.
; These intentionally conservative names will be refined in Passes 2 and 3.
Zp00 = $00
WorkPtrLo = $01
WorkPtrHi = $02
Zp03 = $03
Zp04 = $04
Zp05 = $05
Zp06 = $06
PpuCtrlShadow = $09
PpuMaskShadow = $0A
Zp0C = $0C
Zp0D = $0D
Zp0E = $0E
Zp10 = $10
Zp11 = $11
MathOperandLo = $12
MathOperandHi = $13
MathResultLo = $14
MathResultHi = $15
Zp16 = $16
Zp17 = $17
Zp18 = $18
ControllerHeld = $1A
Zp1B = $1B
Zp1D = $1D
Zp1E = $1E
Zp1F = $1F
Zp20 = $20
Zp21 = $21
Zp24 = $24
StateTimer = $25
Zp26 = $26
FrameCounter = $27
Zp28 = $28
NmiWorkComplete = $30
PpuBufferReady = $31
NmiUpdatesEnabled = $32
NmiTriggerFlag = $33
StartButtonLatch = $34
StateTransitionFlag = $35
GameActiveFlag = $38
GameMode = $39
Zp3A = $3A
Zp3B = $3B
PaletteUpdateMode = $3C
GameState = $3D
GameStateStep = $3E
DemoCounter = $3F
Zp40 = $40
PendingStateFlag = $43
StateSubstep = $44
PlayerCourtOrder = $46
ModeAnimTimerA = $48
ModeAnimFrameA = $49
ModeAnimTimerB = $4A
ModeAnimFrameB = $4B
ServingPlayer = $4C
ModeAnimSubframe = $4D
MessageTimer = $4E
MessagePlayerIndex = $4F
PointWinner = $50
PlayerPointScore = $51
Player2PointScore = $52
PlayerGameScore = $53
ScoreUpdatePhase = $57
ScoreLo = $58
ScoreHi = $59
ScoreAnimationStep = $5A
CourtMessageId = $5B
MatchResultType = $5C
ScoreDisplayState = $5D
PendingGameState = $5E
Player1MotionControl = $60
Player1XSubpixel = $61
Player1XPosition = $62
Player1YSubpixel = $63
Player1YPosition = $64
Player2XSubpixel = $66
Player2XPosition = $67
Player2YSubpixel = $68
Player2YPosition = $69
BallMotionControl = $6A
BallXSubpixel = $6B
BallXPosition = $6C
BallYSubpixel = $6D
BallYPosition = $6E
BallHeight = $6F
BallHeightReference = $70
BallTargetOffset = $71
BallVerticalVelocityLo = $72
BallVerticalVelocityHi = $73
PlayerAnimationFlags = $78
UmpireMessageId = $79
BallStateFlags = $7A
BallBounceState = $7B
PlayerTargetXLo = $80
PlayerTargetXHi = $81
PlayerTargetYLo = $82
PlayerTargetYHi = $83
PlayerActionType = $84
PlayerActionParameter = $85
PlayerActionState = $86
PlayerFacingDirection = $87
PlayerXPosition = $88
PlayerYPosition = $89
PlayerPreviousX = $8A
PlayerPreviousY = $8B
PlayerMovementFlags = $8C
BallTrajectoryFlags = $8D
BallCollisionFlags = $8E
BallContactState = $8F
MathCarryByte = $97
MathVectorXHi = $98
MathVectorXLo = $99
MathVectorXResult = $9A
MathVectorYHi = $9B
MathVectorYLo = $9C
ProjectedXLo = $9D
ProjectedXHi = $9E
ProjectedYLo = $9F
ProjectedYHi = $A0
SignedAimDelta = $A4
AimMagnitude = $A5
AimDirection = $A6
ObjectDataPointerLo = $A8
ObjectDataPointerHi = $A9
ObjectDataOffset = $AA
ActiveObjectIndex = $AB
AnimationFrame = $B0
AnimationTimer = $B1
PoseFrameTimer = $B3
PlayerAnimationId = $B4
PoseSequenceOffset = $B5
PlayerPoseId = $B6
PlayerPoseFlags = $B7
RacketTargetX = $B8
RacketTargetY = $B9
RacketContactFlags = $BA
RacketAimOffset = $BB
ContactPointX = $BC
ContactPointY = $BD
PlayerActionDuration = $BF
RallyFlags = $C0
RallyPhase = $C1
CourtSide = $C2
SignedMovementDelta = $C3
PlayerActionDelay = $C4
NetAnimationTimer = $C5
BallAnimationTimer = $C6
UmpireAnimationTimer = $C7
ObjectAnimationState = $C8
ObjectAnimationFrame = $C9
RacketContactState = $CA
BallContactTimer = $CB
BallContactFlags = $CC
PlayerMovementSpeed = $CD
ComputerActionState = $CE
PreviousPlayerState = $CF
SelectedGameMode = $E0
PendingAudioCue = $E6
DmcOutputLevel = $F0
AudioChannelControl = $F1
ActiveSoundEffect = $F2
SoundEffectTimer = $F3
SoundEffectPhase = $F4
Pulse2EffectTimer = $F5
PitchAdjustment = $F6
AudioSequencePtrLo = $F7
AudioSequenceIndex = $F9
AudioSequenceOffset = $FA
AudioStreamPosition = $FB
AudioEventPriority = $FC
AudioRequestFlags1 = $FD
AudioRequestFlags2 = $FE
AudioRequestFlags3 = $FF
; Additional traced fields
Player2MotionControl = $65
AudioSequencePtrHi = $F8
Binary file not shown.
File diff suppressed because it is too large. Load diff
+32
View File
@@ -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