diff options
-rw-r--r-- | main.asm | 128 |
1 files changed, 119 insertions, 9 deletions
@@ -1,8 +1,56 @@ SECTION "bank0",HOME - -INCBIN "baserom.gbc",0,$100 +SECTION "rst0",HOME[$0] + di + jp Start + +SECTION "rst8",HOME[$8] + jp $2d63 + +SECTION "rst10",HOME[$10] ; Bankswitch + ld [$ff9d], a + ld [$2000], a + ret + +SECTION "rst18",HOME[$18] ; Unused + rst $38 + +SECTION "rst20",HOME[$20] ; Unused + rst $38 + +SECTION "rst28",HOME[$28] ; Jump from pointer table + push de + ld e, a + ld d, 00 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + jp [hl] ; (actually jp hl) + +; rst30 is midst rst28 + +SECTION "rst38",HOME[$38] ; Unused + rst $38 + +SECTION "vblank",HOME[$40] ; vblank interrupt + jp $0283 + +SECTION "lcd",HOME[$48] ; lcd interrupt + jp $0552 + +SECTION "timer",HOME[$50] ; timer interrupt + jp $3e93 + +SECTION "serial",HOME[$58] ; serial interrupt + jp $06ef + +SECTION "joypad",HOME[$60] ; joypad interrupt + jp $092e SECTION "romheader",HOME[$100] +Start: nop jp $016e @@ -77,7 +125,54 @@ EnableLCD: ; 58a ret ; 0x591 -INCBIN "baserom.gbc",$591,$ff1 - $591 +INCBIN "baserom.gbc",$591,$e8d - $591 + +; copy bc bytes from a:hl to de +FarCopyBytes: + ld [$ff00+$8b], a + ld a, [$ff00+$9d] ; save old bank + push af + ld a, [$ff00+$8b] + rst $10 + call CopyBytes + pop af + rst $10 + ret +; 0xe9b + +; copy bc*2 source bytes from a:hl to de, doubling each byte in process +FarCopyBytesDouble: ; e9b + ld [$ff00+$8b], a + ld a, [$ff00+$9d] ; save current bank + push af + ld a, [$ff00+$8b] + rst $10 ; bankswitch + ld a, h ; switcheroo, de <> hl + ld h, d + ld d, a + ld a, l + ld l, e + ld e, a + inc b + inc c + jr .dec ; 0xeab $4 +.loop + ld a, [de] + inc de + ld [hli], a ; write twice + ld [hli], a +.dec + dec c + jr nz, .loop + dec b + jr nz, .loop + pop af + rst $10 + ret +; 0xeba + + +INCBIN "baserom.gbc",$eba,$ff1 - $eba TextBoxBorder: ; ff1 ; draw a text box @@ -32831,6 +32926,9 @@ UnknownScript_0x6cfac: ; 0x6cfac loadmovesprites applymovement $4, MovementData_0x6d267 disappear $4 +; 0x6d075 + +UnknownScript_0x6d075: ; 0x6d075 applymovement $0, MovementData_0x6d271 end ; 0x6d07a @@ -33646,8 +33744,8 @@ TeamRocketBaseB2F_MapEventHeader: ; 0x6de44 xy_trigger 0, $d, $4, $0, UnknownScript_0x6d08b, $0, $0 xy_trigger 1, $b, $e, $0, UnknownScript_0x6cf95, $0, $0 xy_trigger 1, $b, $f, $0, UnknownScript_0x6cf9c, $0, $0 - xy_trigger 2, $c, $e, $0, $5075, $0, $0 - xy_trigger 2, $c, $f, $0, $5075, $0, $0 + xy_trigger 2, $c, $e, $0, UnknownScript_0x6d075, $0, $0 + xy_trigger 2, $c, $f, $0, UnknownScript_0x6d075, $0, $0 xy_trigger 2, $3, $c, $0, UnknownScript_0x6d07a, $0, $0 xy_trigger 2, $a, $c, $0, UnknownScript_0x6d07a, $0, $0 xy_trigger 2, $b, $c, $0, UnknownScript_0x6d07a, $0, $0 @@ -40539,6 +40637,9 @@ UnknownScript_0x751e4: ; 0x751e4 UnknownScript_0x751e7: ; 0x751e7 moveperson $5, $14, $6 +; 0x751eb + +UnknownScript_0x751eb: ; 0x751eb appear $5 applymovement $5, MovementData_0x7521b playsound $0041 @@ -40725,7 +40826,7 @@ FastShip1F_MapEventHeader: ; 0x754f1 ; xy triggers db 2 - xy_trigger 2, $6, $18, $0, $51eb, $0, $0 + xy_trigger 2, $6, $18, $0, UnknownScript_0x751eb, $0, $0 xy_trigger 2, $6, $19, $0, UnknownScript_0x751e7, $0, $0 ; signposts @@ -44674,6 +44775,9 @@ UnknownScript_0x78f0c: ; 0x78f0c UnknownScript_0x78f12: ; 0x78f12 applymovement $0, MovementData_0x78f72 +; 0x78f16 + +UnknownScript_0x78f16: ; 0x78f16 applymovement $0, MovementData_0x78f74 spriteface $7, $2 loadfont @@ -45429,7 +45533,7 @@ ElmsLab_MapEventHeader: ; 0x7a3de db 8 xy_trigger 1, $6, $4, $0, UnknownScript_0x78c65, $0, $0 xy_trigger 1, $6, $5, $0, UnknownScript_0x78c65, $0, $0 - xy_trigger 3, $5, $4, $0, $4f16, $0, $0 + xy_trigger 3, $5, $4, $0, UnknownScript_0x78f16, $0, $0 xy_trigger 3, $5, $5, $0, UnknownScript_0x78f12, $0, $0 xy_trigger 5, $8, $4, $0, UnknownScript_0x78e7f, $0, $0 xy_trigger 5, $8, $5, $0, UnknownScript_0x78e8e, $0, $0 @@ -45487,6 +45591,9 @@ UnknownScript_0x7a4d7: ; 0x7a4d7 UnknownScript_0x7a4d8: ; 0x7a4d8 setbit1 $0000 +; 0x7a4db + +UnknownScript_0x7a4db: ; 0x7a4db playmusic $004e showemote $0, $2, 15 spriteface $0, $2 @@ -45860,7 +45967,7 @@ KrissHouse1F_MapEventHeader: ; 0x7ab31 ; xy triggers db 2 xy_trigger 0, $4, $8, $0, UnknownScript_0x7a4d8, $0, $0 - xy_trigger 0, $4, $9, $0, $64db, $0, $0 + xy_trigger 0, $4, $9, $0, UnknownScript_0x7a4db, $0, $0 ; signposts db 4 @@ -95545,6 +95652,9 @@ UnknownScript_0x19c0a4: ; 0x19c0a4 UnknownScript_0x19c0aa: ; 0x19c0aa moveperson $3, $27, $7 +; 0x19c0ae + +UnknownScript_0x19c0ae: ; 0x19c0ae spriteface $0, $3 showemote $0, $0, 15 special $006a @@ -95996,7 +96106,7 @@ CherrygroveCity_MapEventHeader: ; 0x19c829 ; xy triggers db 2 - xy_trigger 1, $6, $21, $0, $40ae, $0, $0 + xy_trigger 1, $6, $21, $0, UnknownScript_0x19c0ae, $0, $0 xy_trigger 1, $7, $21, $0, UnknownScript_0x19c0aa, $0, $0 ; signposts |