aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile22
-rw-r--r--src/jetpac.s30
-rw-r--r--src/title.s2
3 files changed, 43 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index cd212d1..d693d23 100644
--- a/Makefile
+++ b/Makefile
@@ -28,20 +28,30 @@ deps:
@which $(CC65) >/dev/null 2>/dev/null || (echo "ERROR: $(CC65) not found." && false)
.PHONY: build
-build: build-full build-partial
+build: build-full build-partial build-pal
.PHONY: build-full
build-full:
$(Q) rm -f config/generated.s
- $(Q) touch config/generated.s
+ $(Q) echo "HZ = 60" >> config/generated.s
- $(E) " CC jetpac (full)"
- $(Q) $(CC65) $(CCOPTS) src/jetpac.s -C config/nrom.cfg -o out/jetpac.nes
+ $(E) " CC jetpac (full, NTSC)"
+ $(Q) $(CC65) $(CCOPTS) src/jetpac.s -C config/nrom.cfg -o "out/Jetpac (NTSC).nes"
.PHONY: build-partial
build-partial:
$(Q) rm -f config/generated.s
$(Q) echo "PARTIAL = 1" >> config/generated.s
+ $(Q) echo "HZ = 60" >> config/generated.s
- $(E) " CC jetpac (partial)"
- $(Q) $(CC65) $(CCOPTS) src/jetpac.s -C config/nrom.cfg -Wa -DPARTIAL=1 -o out/partial.nes
+ $(E) " CC jetpac (partial, NTSC)"
+ $(Q) $(CC65) $(CCOPTS) src/jetpac.s -C config/nrom.cfg -o "out/Jetpac (DEV).nes"
+
+.PHONY: build-pal
+build-pal:
+ $(Q) rm -f config/generated.s
+ $(Q) echo "PAL = 1" >> config/generated.s
+ $(Q) echo "HZ = 50" >> config/generated.s
+
+ $(E) " CC jetpac (PAL)"
+ $(Q) $(CC65) $(CCOPTS) src/jetpac.s -C config/nrom.cfg -o "out/Jetpac (PAL).nes"
diff --git a/src/jetpac.s b/src/jetpac.s
index 8acbb4e..d3eef5a 100644
--- a/src/jetpac.s
+++ b/src/jetpac.s
@@ -1,12 +1,34 @@
+;; NOTE: automatically generated by the build system.
+.include "../config/generated.s"
+
.segment "HEADER"
+ ;; Bytes 0-3: NES\0 magic header.
.byte 'N', 'E', 'S', $1A
+
+ ;; Standard 32KB + 8KB NROM cartridge.
.byte $02, $01
- .res $0A, $00
-.segment "CODE"
+ ;; Horizontal mirroring, no battery.
+ .byte $00
-;; NOTE: automatically generated by the build system.
-.include "../config/generated.s"
+ ;; We use the NES 2.0 header mainly to differentiate between NTSC vs PAL in
+ ;; a way that emulators won't ignore it.
+ .byte $08
+
+ ;; Blanked out stuff.
+ .res $04, $00
+
+ ;; NTSC vs PAL
+ .ifdef PAL
+ .byte $01
+ .else
+ .byte $00
+ .endif
+
+ ;; Blanked out stuff.
+ .res $03, $00
+
+.segment "CODE"
.include "../include/apu.s"
.include "../include/oam.s"
diff --git a/src/title.s b/src/title.s
index db627ae..3e6da61 100644
--- a/src/title.s
+++ b/src/title.s
@@ -8,7 +8,7 @@
SPRITE_X_POSITION = $40
;; The title has a timer as a delay between joypad presses from the player.
- TIMER_INIT_VALUE = 20
+ TIMER_INIT_VALUE = (HZ / 3)
zp_title_timer = $30
;; Initialize all the elements for the title screen.