summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlibjet <libj3t@gmail.com>2020-03-15 00:59:43 +0000
committerlibjet <libj3t@gmail.com>2020-03-15 00:59:43 +0000
commit4050f252cd5b0842959242e84a2ec54b5b78a217 (patch)
treefefffff02374573f35584e704b3c7f842981a418
parente81df1886affec6bf47405065ee39837990f2cfa (diff)
Create home/header.asm
-rw-r--r--home.asm12
-rwxr-xr-xhome/header.asm66
-rwxr-xr-xhome/interrupts.asm2
-rw-r--r--home/joypad.asm4
-rw-r--r--home/vblank.asm8
5 files changed, 74 insertions, 18 deletions
diff --git a/home.asm b/home.asm
index 3ae3e8d0..2e31ddf2 100644
--- a/home.asm
+++ b/home.asm
@@ -1,19 +1,9 @@
INCLUDE "constants.asm"
SECTION "NULL", ROM0
-
NULL::
-; rst vectors
-INCLUDE "home/rst.asm"
-INCLUDE "home/interrupts.asm"
-
-SECTION "Header", ROM0
-
-Start::
- nop
- jp _Start
-
+INCLUDE "home/header.asm"
SECTION "Home", ROM0
diff --git a/home/header.asm b/home/header.asm
new file mode 100755
index 00000000..92e302c8
--- /dev/null
+++ b/home/header.asm
@@ -0,0 +1,66 @@
+; rst vectors (called through the rst instruction)
+
+SECTION "rst0", ROM0
+ di
+ jp Start
+
+SECTION "rst8", ROM0 ; rst FarCall
+ jp FarCall_hl
+
+SECTION "rst10", ROM0 ; rst Bankswitch
+ ldh [hROMBank], a
+ ld [MBC3RomBank], a
+ ret
+
+SECTION "rst18", ROM0
+ rst $38
+
+SECTION "rst20", ROM0
+ rst $38
+
+SECTION "rst28", ROM0 ; rst JumpTable
+ push de
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+; SECTION "rst30", ROM0
+ ld l, a
+ pop de
+ jp hl
+
+SECTION "rst38", ROM0
+ rst $38
+
+
+; Game Boy hardware interrupts
+
+SECTION "vblank", ROM0
+ jp VBlank
+
+SECTION "lcd", ROM0
+ jp LCD
+
+SECTION "timer", ROM0
+ reti
+
+SECTION "serial", ROM0
+ jp Serial
+
+SECTION "joypad", ROM0
+ jp Joypad
+
+
+; Game Boy cartridge header
+
+SECTION "Header", ROM0
+
+Start::
+ nop
+ jp _Start
+
+; The cartridge header data is filled in by rgbfix.
+; This makes sure it doesn't get used.
+ ds $0150 - $0104
diff --git a/home/interrupts.asm b/home/interrupts.asm
index 2b0d9e0f..c65e5061 100755
--- a/home/interrupts.asm
+++ b/home/interrupts.asm
@@ -13,4 +13,4 @@ SECTION "serial",ROM0
jp Serial
SECTION "joypad",ROM0
- jp JoypadInt
+ jp Joypad
diff --git a/home/joypad.asm b/home/joypad.asm
index 317413d0..8f8e9b2f 100644
--- a/home/joypad.asm
+++ b/home/joypad.asm
@@ -1,4 +1,4 @@
-JoypadInt:: ; 8df (0:08df)
+Joypad:: ; 8df (0:08df)
reti
ClearJoypad::
@@ -7,7 +7,7 @@ ClearJoypad::
ldh [hJoyDown], a
ret
-Joypad:: ; 8e6 (0:08e6)
+UpdateJoypad:: ; 8e6 (0:08e6)
ld a, [wd8ba]
and $d0
ret nz
diff --git a/home/vblank.asm b/home/vblank.asm
index 04726475..88923ee0 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -128,7 +128,7 @@ VBlank0::
ld [wTextDelayFrames], a
.ok2
- call Joypad
+ call UpdateJoypad
ld a, BANK(_UpdateSound)
rst Bankswitch
@@ -233,7 +233,7 @@ VBlank4::
call hTransferVirtualOAM
- call Joypad
+ call UpdateJoypad
xor a
ld [wVBlankOccurred], a
@@ -271,7 +271,7 @@ VBlank5::
xor a
ld [wVBlankOccurred], a
- call Joypad
+ call UpdateJoypad
xor a
ldh [rIF], a
@@ -336,7 +336,7 @@ VBlank3::
sbc b
ldh [hRandomSub], a
- call Joypad
+ call UpdateJoypad
ldh a, [hROMBank]
ld [wROMBankBackup], a