diff options
author | luckytyphlosion <alan.rj.huang@gmail.com> | 2015-05-24 15:04:40 -0400 |
---|---|---|
committer | luckytyphlosion <alan.rj.huang@gmail.com> | 2015-05-24 15:04:40 -0400 |
commit | d79888b81ad2adb022ecfc438ecc432dfaeb28cb (patch) | |
tree | 91e85b3c129bbfcd3ed7bf7ce815a42edc78a038 | |
parent | b7e34ecc401032ee14d998fd545a302d6b430010 (diff) |
Bank 3c and 3f stuff.
-rw-r--r-- | yellow/bank3c/main.asm | 12 | ||||
-rw-r--r-- | yellow/bank3f/main.asm | 145 |
2 files changed, 153 insertions, 4 deletions
diff --git a/yellow/bank3c/main.asm b/yellow/bank3c/main.asm index 751471d7..7e3d2068 100644 --- a/yellow/bank3c/main.asm +++ b/yellow/bank3c/main.asm @@ -74,8 +74,18 @@ Func_f02da:: ; f02da (3c:42da) Pointer_f02fa:: ; f02fa (3c:42fa) db $cf,$d0,$d1,$d2,$d3,$d4 db $d5,$e9,$ea,$eb,$d6,$d7 - ; a lot more raw data here that I have no idea what it might mean + db $d8,$a5,$a6,$87,$c7,$ca + db $c6,$6c,$c2,$71,$f5,$f6 + db $f7,$ff +SECTION "bank3C",ROMX[$4314],BANK[$3C] + +BeachHouse_GFX:: ; f0314 (3c:4314) + INCBIN "gfx/tilesets/beachhouse.2bpp" + +BeachHouse_Block:: + INCBIN "gfx/blocksets/beachhouse.bst" + SECTION "bank3c",ROMX[$4a55],BANK[$3c] Func_f0a55:: ; f0a55 (3c:4a55) ld hl,Pointer_f0a76 ; 3c:4a76 diff --git a/yellow/bank3f/main.asm b/yellow/bank3f/main.asm index f9cc0ad9..cf822e4c 100644 --- a/yellow/bank3f/main.asm +++ b/yellow/bank3f/main.asm @@ -1,9 +1,148 @@ -; asm to be added
+SECTION "bank3f",ROMX,BANK[$3f]
-Func_fc4dd:: ; fc4dd (3f:44dd)
+INCLUDE "yellow/bank3f/data/map_songs.asm"
+INCLUDE "yellow/bank3f/data/map_header_pointers.asm"
+INCLUDE "yellow/bank3f/data/map_header_banks.asm"
-Func_fc5fa:: ; fc5fa (3f:45fa)
+Func_fc4dd:: ; fc4dd (3f:44dd)
+; possibly to test if pika should be out?
+ ld a,[wd430]
+ bit 5,a
+ jr nz,.asm_fc4f8 ; 3f:44f8
+ ld a,[wd430]
+ bit 7,a
+ jr nz,.asm_fc4f8
+ call Func_fcdb8
+ jr nc,.asm_fc4f8
+ ld a,[wWalkBikeSurfState]
+ and a
+ jr nz,.asm_fc4f8
+ scf
+ ret
+.asm_fc4f8
+ and a
+ ret
+
+Func_fc5fa:: ; fc5fa (3f:44fa)
+ ld hl,wd430
+ bit 4,[hl]
+ res 4,[hl]
+ jr nz,.asm_fc515
+ call Func_1542
+ call Func_fc523
+ ld a,$ff
+ ld [wSpriteStateData1 + $f2],a
+ call Func_fcb84
+ call Func_fc5bc
+ ret
+
+.asm_fc515
+ call Func_fc53f
+ xor a
+ ld [wd431],a
+ ld a,[wSpriteStateData1 + $9]
+ ld [wSpriteStateData1 + $f9],a
+ ret
+
+Func_fc523:: ; fc523 (3f:4523)
+ ld hl,wSpriteStateData1 + $f0
+ call Func_fc52c
+ ld hl,wSpriteStateData2 + $f0
+Func_fc52c:: ; fc52c (3f:4523)
+ ld bc,$10
+ xor a
+ call FillMemory
+ ret
+Func_fc534:: ; fc534 (3f:4534)
+ call Func_fc53f
+ call Func_fc5bc
+ xor a
+ ld [wd431],a
+ ret
+
+Func_fc53f:: ; fc53f (3f:453f)
+ ld bc,wSpriteStateData1 + $10
+ ld a,[W_YCOORD]
+ add $4
+ ld e,a
+ ld a,[W_XCOORD]
+ add $4
+ ld d,a
+ ld a,[wd431]
+ and a
+ jr z,.asm_fc5aa
+ cp $1
+ jr z,.asm_fc59e
+ cp $2
+ jr z,.asm_fc584
+ cp $3
+ jr z,.asm_fc5aa
+ cp $4
+ jr z,.asm_fc5a4
+ cp $5
+ jr z,.asm_fc5a7
+ cp $6
+ jr z,.asm_fc5a1
+ cp $7
+ jr z,.asm_fc572
+ jr .asm_fc59e
+
+.asm_fc572
+ ld a,[wSpriteStateData1 + $9]
+ and a ; SPRITE_FACING_DOWN
+ jr z,.asm_fc5a4
+ cp SPRITE_FACING_UP
+ jr z,.asm_fc5a7
+ cp SPRITE_FACING_LEFT
+ jr z,.asm_fc5a1
+ cp SPRITE_FACING_RIGHT
+ jr z,.asm_fc59e
+.asm_fc584
+ ld a,[wSpriteStateData1 + $9]
+ and a
+ jr nz,.asm_fc58d
+ dec e
+ jr .asm_fc5aa
+.asm_fc58d
+ cp SPRITE_FACING_UP
+ jr nz,.asm_fc594
+ inc e
+ jr .asm_fc5aa
+.asm_fc594
+ cp SPRITE_FACING_LEFT
+ jr nz,.asm_fc59b
+ inc d
+ jr .asm_fc5aa
+.asm_fc59b
+ dec d
+ jr .asm_fc5aa
+.asm_fc59e
+ inc d
+ jr .asm_fc5aa
+.asm_fc5a1
+ dec d
+ jr .asm_fc5aa
+.asm_fc5a4
+ inc e
+ jr .asm_fc5aa
+.asm_fc5a7
+ dec e
+ jr .asm_fc5aa ; useless jr
+.asm_fc5aa
+ ld hl,$104
+ add hl,bc
+ ld [hl],e
+ inc hl
+ ld [hl],d
+ inc hl
+ ld [hl],$ff
+ push hl
+ ld hl,wd472
+ set 5,[hl]
+ pop hl
+ ret
+
Func_fc65b:: ; fc65b (3f:465b)
Func_fc69a:: ; fc69a (3f:469a)
|