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

Binary file not shown.
@@ -0,0 +1,9 @@
CA65?=ca65
LD65?=ld65
all: verify
%.o: %.s
$(CA65) -o $@ $<
defender2_rebuilt.nes: header.o prg.o chr.o
$(LD65) -C linker.cfg -o $@ $^
verify: defender2_rebuilt.nes
cmp dk3.nes $<
@@ -0,0 +1,2 @@
.segment "CHR"
.incbin "dk3.nes", $4010, $2000
@@ -0,0 +1,2 @@
.segment "HEADER"
.incbin "dk3.nes", 0, 16
@@ -0,0 +1,2 @@
MEMORY { HEADER:start=$0000,size=$0010,file=%O; PRG:start=$C000,size=$3FFA,file=%O; VECTORS:start=$FFFA,size=$0006,file=%O; CHR:start=$0000,size=$2000,file=%O; }
SEGMENTS { HEADER:load=HEADER,type=ro; PRG:load=PRG,type=ro; VECTORS:load=VECTORS,type=ro; CHR:load=CHR,type=ro; }
@@ -0,0 +1,319 @@
; Defender II application-specific symbols identified in Pass 2.
ControllerSerialBits = $00
WorkPointerOrValueLo = $01
WorkPointerOrValueHi = $02
SourceRecordPointerLo = $03
PackedCoordinateOrValue = $04
LoopCounter05 = $05
RecordFieldCount = $06
RecordRepeatCount = $07
ObjectScanIndex = $08
MetaspriteLayoutOffset = $0C
SkippedSpriteCount = $0D
ObjectSlotOrFieldIndex = $0E
IndirectStorePointer = $0F
SignedOffsetAccumulator = $10
CurrentSpriteTileId = $11
CoordinateLimit = $12
CoordinateValue = $13
MetaspriteLayoutPointerLo = $14
MetaspriteLayoutPointerHi = $15
PackedHudOrObjectValue = $16
CoordinateDelta = $17
ControllerButtons = $1A
ControllerPressedOrScriptInput = $1B
SecondControllerPressed = $1D
GameplayTimerArray = $20
GameplayTimer = $21
GameplayStateBackup = $22
GameplayStateFlags = $23
ScreenSelectionPositionOrDelay = $25
FrameCounter = $27
SavedGameplayTimerArray = $28
FrameReadyFlag = $30
CollisionResultFlag = $31
NmiFrameDelay = $32
NmiWorkMode = $33
QueuedPpuTransferCount = $34
ScreenSubstate = $36
StartInputLatch = $37
SelectedPlayerAndScreenFlags = $38
GameMode = $3A
CurrentScreenState = $3B
PlayerModeOrScreenPhase = $3C
ReturnScreenState = $3D
SelectedPlayerIndex = $40
SelectedScreenVariant = $41
SelectedActorIndex = $43
ScreenCollisionState = $44
CollisionCandidateIndex = $45
PendingObstacleInteraction = $46
ObjectSpawnDelay = $47
ObjectSpawnType = $48
ObjectSpawnX = $49
ObjectSpawnState = $4B
ScreenEffectState = $4E
ScreenEffectTimer = $4F
GameplayObjectState = $50
GameplayObjectTimer = $51
GameplayObjectX = $52
GameplayObjectFlags = $54
GameplayObjectAnimation = $55
ActiveActorType = $60
ActiveActorState = $61
ScreenObjectMode = $62
ScreenObjectTimer = $63
ScreenObjectTrigger = $64
ScreenObjectCounter = $65
ActorTimerArray = $68
ActorSequenceStep = $69
ActorTableIndex = $6F
ActorStateArray = $70
ActorAnimationStep = $75
ScreenVariantInitialState = $78
PlayerOrActorX = $81
PlayerOrActorY = $82
PlayerMotionState = $83
ActorFlags = $84
ActorX = $85
ActorY = $86
PlayerStartXTable = $8C
PlayerStartYTable = $8D
ActorAnimationTimer = $90
ActorInteractionState = $91
ActorAnimationFrame = $92
ObstacleAnimationTimer = $94
ObstacleInteractionState = $95
ObstacleAnimationFrame = $96
ObjectRecordPointerLo = $A8
ObjectRecordPointerHi = $A9
ObjectRecordStride = $AA
OamBufferWriteOffset = $AB
SpriteAttributes = $B7
ObjectScreenY = $B8
ObjectScreenX = $B9
MovementDirectionFlags = $BC
MovementStepIndex = $BD
CollisionMask = $BF
CollisionExtent = $C0
CollisionCoordinate = $C2
CollisionFlags = $C4
CollisionTableIndex = $C8
AudioChannelStateArray = $F0
AudioFrameCounter = $F1
AudioSequenceDelay = $F2
AudioSequencePosition = $F3
AudioCommandValue = $F4
AudioEffectIndex = $F5
AudioNoteIndex = $F6
AudioPeriodBase = $F7
AudioEnvelopeOrSequenceIndex = $F8
AudioSequencePointerLo = $F9
AudioSequencePointerHi = $FA
AudioRequestFlags = $FB
AudioModeOrEffectIndex = $FC
AudioPendingFlags = $FD
AudioEffectRequest = $FE
AudioChannelRequest = $FF
; Main RAM
OamBuffer = $0200
Ram_02E0 = $02E0
Ram_0300 = $0300
Ram_0301 = $0301
Ram_0302 = $0302
Ram_0303 = $0303
Ram_0304 = $0304
Ram_0305 = $0305
Ram_0306 = $0306
Ram_0307 = $0307
Ram_0308 = $0308
Ram_0309 = $0309
Ram_030A = $030A
Ram_030B = $030B
Ram_030C = $030C
Ram_030D = $030D
Ram_030E = $030E
Ram_0310 = $0310
Ram_0312 = $0312
Ram_0320 = $0320
Ram_0321 = $0321
Ram_0326 = $0326
Ram_0327 = $0327
Ram_0328 = $0328
Ram_0329 = $0329
Ram_032A = $032A
Ram_032E = $032E
Ram_0340 = $0340
Ram_0342 = $0342
Ram_0343 = $0343
Ram_0344 = $0344
Ram_0345 = $0345
Ram_0346 = $0346
Ram_0347 = $0347
Ram_0348 = $0348
Ram_0349 = $0349
Ram_034A = $034A
Ram_034B = $034B
Ram_034C = $034C
Ram_034D = $034D
Ram_034E = $034E
Ram_034F = $034F
Ram_0350 = $0350
Ram_035A = $035A
Ram_0360 = $0360
Ram_0361 = $0361
Ram_0362 = $0362
Ram_0363 = $0363
Ram_0365 = $0365
Ram_0366 = $0366
Ram_0367 = $0367
Ram_0368 = $0368
Ram_0369 = $0369
Ram_036A = $036A
Ram_036B = $036B
Ram_036C = $036C
Ram_036D = $036D
Ram_036E = $036E
Ram_0371 = $0371
Ram_0372 = $0372
Ram_0373 = $0373
Ram_0374 = $0374
Ram_0375 = $0375
Ram_0376 = $0376
Ram_0377 = $0377
Ram_0380 = $0380
Ram_0381 = $0381
Ram_0386 = $0386
Ram_0388 = $0388
Ram_0389 = $0389
Ram_038A = $038A
Ram_038B = $038B
Ram_038D = $038D
Ram_038E = $038E
Ram_0390 = $0390
Ram_0396 = $0396
Ram_0398 = $0398
Ram_0399 = $0399
Ram_039A = $039A
Ram_03A0 = $03A0
Ram_03A1 = $03A1
Ram_03A3 = $03A3
Ram_03A6 = $03A6
Ram_03A8 = $03A8
Ram_03A9 = $03A9
Ram_03AD = $03AD
Ram_03AE = $03AE
Ram_03AF = $03AF
Ram_03B0 = $03B0
Ram_03B6 = $03B6
Ram_03B7 = $03B7
Ram_03B8 = $03B8
Ram_03B9 = $03B9
Ram_03BA = $03BA
Ram_03C0 = $03C0
Ram_03C6 = $03C6
Ram_03C7 = $03C7
Ram_03C8 = $03C8
Ram_03C9 = $03C9
Ram_03CA = $03CA
Ram_03CB = $03CB
Ram_03CC = $03CC
Ram_03CD = $03CD
Ram_03CE = $03CE
Ram_0400 = $0400
Ram_0401 = $0401
Ram_0402 = $0402
Ram_0403 = $0403
Ram_0405 = $0405
Ram_0406 = $0406
Ram_0407 = $0407
Ram_0408 = $0408
Ram_0409 = $0409
Ram_040E = $040E
Ram_040F = $040F
Ram_0415 = $0415
Ram_041B = $041B
Ram_041D = $041D
Ram_04A0 = $04A0
Ram_04A4 = $04A4
Ram_04A6 = $04A6
Ram_04A8 = $04A8
Ram_04A9 = $04A9
Ram_04AB = $04AB
Ram_04AC = $04AC
Ram_04AE = $04AE
Ram_04E0 = $04E0
Ram_04E1 = $04E1
Ram_04E2 = $04E2
Ram_04E3 = $04E3
Ram_04E5 = $04E5
Ram_04E6 = $04E6
Ram_04E8 = $04E8
Ram_04E9 = $04E9
Ram_04EA = $04EA
Ram_04EB = $04EB
Ram_04ED = $04ED
Ram_04EE = $04EE
Ram_04EF = $04EF
Ram_04FE = $04FE
Ram_0500 = $0500
Ram_0501 = $0501
Ram_0502 = $0502
Ram_0580 = $0580
Ram_0584 = $0584
Ram_05A4 = $05A4
Ram_0600 = $0600
Ram_0601 = $0601
Ram_0602 = $0602
Ram_0603 = $0603
Ram_0605 = $0605
Ram_0606 = $0606
Ram_0607 = $0607
Ram_0608 = $0608
Ram_0609 = $0609
Ram_060A = $060A
Ram_060B = $060B
Ram_060C = $060C
Ram_060D = $060D
Ram_060E = $060E
Ram_060F = $060F
Ram_0611 = $0611
Ram_0612 = $0612
Ram_0614 = $0614
Ram_0615 = $0615
Ram_0618 = $0618
Ram_06A0 = $06A0
Ram_06A3 = $06A3
Ram_06A4 = $06A4
Ram_06A5 = $06A5
Ram_06A6 = $06A6
Ram_06A7 = $06A7
Ram_06A8 = $06A8
Ram_06A9 = $06A9
Ram_06AA = $06AA
Ram_06BA = $06BA
Ram_06C0 = $06C0
Ram_06F0 = $06F0
Ram_06F1 = $06F1
Ram_06F2 = $06F2
Ram_06F3 = $06F3
Ram_0700 = $0700
Ram_0701 = $0701
Ram_0790 = $0790
Ram_0792 = $0792
Ram_0796 = $0796
Ram_079A = $079A
Ram_07A8 = $07A8
Ram_07B1 = $07B1
Ram_07B3 = $07B3
Ram_07B4 = $07B4
Ram_07B5 = $07B5
Ram_07B6 = $07B6
Ram_07F0 = $07F0
Ram_07F4 = $07F4
Ram_07FF = $07FF
Data_C206 = $C206
Data_F970 = $F970
Data_FAB3 = $FAB3
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,12 @@
PPUCTRL = $2000
PPUMASK = $2001
PPUSTATUS = $2002
OAMADDR = $2003
OAMDATA = $2004
PPUSCROLL = $2005
PPUADDR = $2006
PPUDATA = $2007
OAMDMA = $4014
SND_CHN = $4015
JOY1 = $4016
JOY2 = $4017
Binary file not shown.
Binary file not shown.
Binary file not shown.