summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordannye <corrnondacqb@yahoo.com>2015-10-10 10:31:23 -0500
committerdannye <corrnondacqb@yahoo.com>2015-10-10 10:31:23 -0500
commitb588526b89b003faf22888ab542df67685891f49 (patch)
tree6b61d9707d736a83b1638301832b18e19dab33f4
parentd867415edd72d2956b53aea66bae93566f3b984a (diff)
rst vectors, interrupts, and rom header
-rw-r--r--Makefile4
-rwxr-xr-xsrc/home.asm57
-rw-r--r--src/main.asm3
3 files changed, 60 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index d1651ab..175e8f5 100644
--- a/Makefile
+++ b/Makefile
@@ -21,8 +21,8 @@ $(OBJS): $$*.asm $$($$*_dep)
rgbasm -i src/ -o $@ $<
pokepuzzle.gbc: $(OBJS)
- rgblink -n $*.sym -o $@ $^
- rgbfix -v $@
+ rgblink -p 0xff -n $*.sym -o $@ $^
+ rgbfix -Cjv -k 01 -l 0x33 -m 0x1b -n 00 -p 06 -r 03 -t POKEMONPC -i BPNE $@
clean:
rm -f pokepuzzle.gbc $(OBJS) *.sym
diff --git a/src/home.asm b/src/home.asm
new file mode 100755
index 0000000..18addba
--- /dev/null
+++ b/src/home.asm
@@ -0,0 +1,57 @@
+; rst vectors
+SECTION "rst 00",ROM0[$00]
+ rst $38
+
+SECTION "rst 08",ROM0[$08]
+ rst $38
+
+SECTION "rst 10",ROM0[$10]
+ rst $38
+
+SECTION "rst 18",ROM0[$18]
+ rst $38
+
+SECTION "rst 20",ROM0[$20]
+ rst $38
+
+SECTION "rst 28",ROM0[$28]
+ rst $38
+
+SECTION "rst 30",ROM0[$30]
+ rst $38
+
+SECTION "rst 38",ROM0[$38]
+ rst $38
+
+; interrupts
+SECTION "vblank",ROM0[$40]
+ jp $c492 ; VBlankHandler
+
+SECTION "hblank",ROM0[$48]
+ jp $c342 ; HBlankHandler
+
+SECTION "timer",ROM0[$50]
+ jp $0ef8 ; TimerHandler
+
+SECTION "serial",ROM0[$58]
+ jp $0e54 ; SerialHandler
+
+SECTION "joypad",ROM0[$60]
+ reti
+
+SECTION "romheader",ROM0[$100]
+ nop
+ jp Start
+
+; manually declare part of the rom header
+; because rgblink mistakenly pads these with FF
+SECTION "gbc only",ROM0[$143]
+ db $c0
+
+SECTION "sgb flag",ROM0[$146]
+ db $00
+
+SECTION "start",ROM0[$150]
+Start: ; 0150 (0:0150)
+
+INCBIN "baserom.gbc",$150,$35b6 - $150
diff --git a/src/main.asm b/src/main.asm
index ca09a5e..ee98b27 100644
--- a/src/main.asm
+++ b/src/main.asm
@@ -1,5 +1,4 @@
-SECTION "bank0",ROM0[0]
-INCBIN "baserom.gbc",$0,$4000
+INCLUDE "home.asm"
SECTION "bank1",ROMX,BANK[$1]
INCBIN "baserom.gbc",$4000,$4000