Standardizes build process and adds OVERVIEW.md for each
This commit is contained in:
1 parent
25423d3828
commit
a29b03b00b
135 files changed
+26562
-420
No files matched your search
@@ -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.
@@ -0,0 +1,2 @@
|
||||
.segment "CHR"
|
||||
.incbin "chr.bin"
|
||||
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
.segment "HEADER"
|
||||
.incbin "header.bin"
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
@@ -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.
Symlink
+1
@@ -0,0 +1 @@
|
||||
../rom.nes
|
||||
Reference in new issue
Block a user