diff options
-rw-r--r-- | engine/bank3c/main.asm | 156 | ||||
-rwxr-xr-x | yellow/main.asm | 111 |
2 files changed, 238 insertions, 29 deletions
diff --git a/engine/bank3c/main.asm b/engine/bank3c/main.asm index 3c1966ff..5e74c61e 100644 --- a/engine/bank3c/main.asm +++ b/engine/bank3c/main.asm @@ -1,7 +1,159 @@ -;INCLUDE "engine/bank3c/overworld.asm" Func_f0000:: ; f0000 (3c:4000) - dr $f0000,$f010c + ld a, e + ld e, a + ld d, $0 + ld hl, PikachuCriesPointerTable + add hl, de + add hl, de + add hl, de + ld b, [hl] ; bank of pikachu cry data + inc hl + ld a, [hli] ; cry data pointer + ld h, [hl] + ld l, a + ld c, $4 +.loop + dec c + jr z, .asm_f0019 + call DelayFrame + jr .loop +.asm_f0019 + di + push bc + push hl + ld a, $80 + ld [rNR52], a + ld a, $77 + ld [rNR50], a + xor a + ld [rNR30], a + ld hl, $ff30 ; wave data + ld de, wRedrawRowOrColumnSrcTiles +.saveWaveDataLoop + ld a, [hl] + ld [de], a + inc de + ld a, $ff + ld [hli], a + ld a, l + cp $40 ; end of wave data + jr nz, .saveWaveDataLoop + ld a, $80 + ld [rNR30], a + ld a, [rNR51] + or $44 + ld [rNR51], a + ld a, $ff + ld [rNR31], a + ld a, $20 + ld [rNR32], a + ld a, $ff + ld [rNR33], a + ld a, $87 + ld [rNR34], a + pop hl + pop bc + call Func_150 + xor a + ld [wc0f3], a + ld [wc0f4], a + ld a, $80 + ld [rNR52], a + xor a + ld [rNR30], a + ld hl, $ff30 + ld de, wRedrawRowOrColumnSrcTiles +.reloadWaveDataLoop + ld a, [de] + inc de + ld [hli], a + ld a, l + cp $40 ; end of wave data + jr nz, .reloadWaveDataLoop + ld a, $80 + ld [rNR30], a + ld a, [rNR51] + and $bb + ld [rNR51], a + xor a + ld [wChannelSoundIDs+CH4], a + ld [wChannelSoundIDs+CH5], a + ld [wChannelSoundIDs+CH6], a + ld [wChannelSoundIDs+CH7], a + ld a, [H_LOADEDROMBANK] + ei + ret + +PikachuCriesPointerTable: ; f008e (3c:408e) +; format: +; db bank +; dw pointer to cry + +; bank 21 + dbw BANK(PikachuCry1), PikachuCry1 ; 21:4000 + dbw BANK(PikachuCry2), PikachuCry2 ; 21:491a + dbw BANK(PikachuCry3), PikachuCry3 ; 21:4fdc + dbw BANK(PikachuCry4), PikachuCry4 ; 21:59ee + +; bank 22 + dbw BANK(PikachuCry5), PikachuCry5 ; 22:4000 + dbw BANK(PikachuCry6), PikachuCry6 ; 22:5042 + dbw BANK(PikachuCry7), PikachuCry7 ; 22:6254 + +; bank 23 + dbw BANK(PikachuCry8), PikachuCry8 ; 23:4000 + dbw BANK(PikachuCry9), PikachuCry9 ; 23:50ca + dbw BANK(PikachuCry10), PikachuCry10 ; 23:5e0c + +; bank 24 + dbw BANK(PikachuCry11), PikachuCry11 ; 24:4000 + dbw BANK(PikachuCry12), PikachuCry12 ; 24:4722 + dbw BANK(PikachuCry13), PikachuCry13 ; 24:54a4 + +; bank 25 + dbw BANK(PikachuCry14), PikachuCry14 ; 25:4000 + dbw BANK(PikachuCry15), PikachuCry15 ; 25:589a + +; banks 31-34, in no particular order + + dbw BANK(PikachuCry16), PikachuCry16 ; 31:4000 + dbw BANK(PikachuCry17), PikachuCry17 ; 34:4000 + dbw BANK(PikachuCry18), PikachuCry18 ; 31:549a + dbw BANK(PikachuCry19), PikachuCry19 ; 33:4000 + dbw BANK(PikachuCry20), PikachuCry20 ; 32:4000 + dbw BANK(PikachuCry21), PikachuCry21 ; 32:6002 + dbw BANK(PikachuCry22), PikachuCry22 ; 31:63a4 + dbw BANK(PikachuCry23), PikachuCry23 ; 34:4862 + dbw BANK(PikachuCry24), PikachuCry24 ; 33:5632 + dbw BANK(PikachuCry25), PikachuCry25 ; 34:573c + dbw BANK(PikachuCry26), PikachuCry26 ; 33:725c + +; bank 35 + dbw BANK(PikachuCry27), PikachuCry27 ; 35:4000 + dbw BANK(PikachuCry28), PikachuCry28 ; 35:4b5a + dbw BANK(PikachuCry29), PikachuCry29 ; 35:5da4 + dbw BANK(PikachuCry30), PikachuCry30 ; 35:69ce + dbw BANK(PikachuCry31), PikachuCry31 ; 35:6e80 + +; bank 36 + dbw BANK(PikachuCry32), PikachuCry32 ; 36:4000 + dbw BANK(PikachuCry33), PikachuCry33 ; 36:458a + dbw BANK(PikachuCry34), PikachuCry34 ; 36:523c + +; bank 37 + dbw BANK(PikachuCry35), PikachuCry35 ; 37:4000 + dbw BANK(PikachuCry36), PikachuCry36 ; 37:522a + +; banks 36-38 + dbw BANK(PikachuCry37), PikachuCry37 ; 38:4000 + dbw BANK(PikachuCry38), PikachuCry38 ; 38:4dfa + dbw BANK(PikachuCry39), PikachuCry39 ; 37:6e0c + dbw BANK(PikachuCry40), PikachuCry40 ; 38:5a64 + dbw BANK(PikachuCry41), PikachuCry41 ; 36:6746 + dbw BANK(PikachuCry42), PikachuCry42 ; 38:6976 + _AdvancePlayerSprite:: ; f010c (3c:410c) +;INCLUDE "engine/bank3c/overworld.asm" dr $f010c,$f0274 ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274) diff --git a/yellow/main.asm b/yellow/main.asm index 0797a2d0..87964875 100755 --- a/yellow/main.asm +++ b/yellow/main.asm @@ -1632,28 +1632,48 @@ Func_82bd4: ; 82bd4 (20:6bd4) SECTION "bank21",ROMX,BANK[$21] - - dr $84000,$88000 +PikachuCry1: ; 84000 (21:4000) + dr $84000,$8491a +PikachuCry2: ; 8491a (21:491a) + dr $8491a,$84fdc +PikachuCry3: ; 84fdc (21:4fdc) + dr $84fdc,$859ee +PikachuCry4: ; 859ee (21:59ee) + dr $859ee,$88000 SECTION "bank22",ROMX,BANK[$22] - - dr $88000,$8c000 +PikachuCry5: ; 88000 (22:4000) + dr $88000,$89042 +PikachuCry6: ; 89042 (22:5042) + dr $89042,$8a254 +PikachuCry7: ; 8a254 (22:6254) + dr $8a254,$8c000 SECTION "bank23",ROMX,BANK[$23] - - dr $8c000,$90000 +PikachuCry8: ; 8c000 (23:4000) + dr $8c000,$8d0ca +PikachuCry9: ; 8d0ca (23:50ca) + dr $8d0ca,$8de0c +PikachuCry10: ; 8de0c (23:5e0c) + dr $8de0c,$90000 SECTION "bank24",ROMX,BANK[$24] - - dr $90000,$94000 +PikachuCry11: ; 90000 (24:4000) + dr $90000,$90722 +PikachuCry12: ; 90722 (24:4772) + dr $90722,$914a4 +PikachuCry13: ; 914a4 (24:54a4) + dr $914a4,$94000 SECTION "bank25",ROMX,BANK[$25] - - dr $94000,$98000 +PikachuCry14: ; 94000 (25:4000) + dr $94000,$9589a +PikachuCry15: ; 9589a (25:589a) + dr $9589a,$98000 SECTION "bank2f",ROMX[$5000],BANK[$2F] @@ -1668,43 +1688,80 @@ SECTION "bank30",ROMX,BANK[$30] SECTION "bank31",ROMX,BANK[$31] - - dr $c4000,$c8000 +PikachuCry16: ; c4000 (31:4000) + dr $c4000,$c549a +PikachuCry18: ; c549a (31:549a) + dr $c549a,$c63a4 +PikachuCry22: ; c63a4 (31:63a4) + dr $c63a4,$c8000 SECTION "bank32",ROMX,BANK[$32] - - dr $c8000,$cc000 +PikachuCry20: ; c8000 (32:4000) + dr $c8000,$ca002 +PikachuCry21: ; ca002 (32:6002) + dr $ca002,$cc000 SECTION "bank33",ROMX,BANK[$33] - - dr $cc000,$d0000 +PikachuCry19: ; cc000 (33:4000) + dr $cc000,$cd632 +PikachuCry24: ; cd632 (33:5632) + dr $cd632,$cf25c +PikachuCry26: ; cf25c (33:725c) + dr $cf25c,$d0000 SECTION "bank34",ROMX,BANK[$34] - - dr $d0000,$d4000 +PikachuCry17: ; d0000 (34:4000) + dr $d0000,$d0862 +PikachuCry23: ; d0862 (34:4862) + dr $d0862,$d173c +PikachuCry25: ; d173c (34:573c) + dr $d173c,$d4000 SECTION "bank35",ROMX,BANK[$35] - - dr $d4000,$d8000 +PikachuCry27: ; d4000 (35:4000) + dr $d4000,$d4b5a +PikachuCry28: ; d4b5a (35:4b5a) + dr $d4b5a,$d5da4 +PikachuCry29: ; d5da4 (35:5da4) + dr $d5da4,$d69ce +PikachuCry30: ; d69ce (35:69ce) + dr $d69ce,$d6e80 +PikachuCry31: ; d6e80 (35:6ea0) + dr $d6e80,$d8000 SECTION "bank36",ROMX,BANK[$36] - - dr $d8000,$dc000 - +PikachuCry32: ; d8000 (36:4000) + dr $d8000,$d858a +PikachuCry33: ; d858a (36:458a) + dr $d858a,$d923c +PikachuCry34: ; d923c (36:523c) + dr $d923c,$da746 +PikachuCry41: ; da746 (36:6746) + dr $da746,$dc000 SECTION "bank37",ROMX,BANK[$37] - - dr $dc000,$e0000 +PikachuCry35: ; dc000 (37:4000) + dr $dc000,$dd22a +PikachuCry36: ; dd22a (37:5d2a) + dr $dd22a,$dee0c +PikachuCry39: ; dee0c (37:6e0c) + dr $dee0c,$e0000 SECTION "bank38",ROMX,BANK[$38] - - dr $e0000,$e4000 +PikachuCry37: ; e0000 (38:4000) + dr $e0000,$e0dfa +PikachuCry38: ; e0dfa (38:4dfa) + dr $e0dfa,$e1a64 +PikachuCry40: ; e1a64 (38:5a64) + dr $e1a64,$e2976 +PikachuCry42: ; e2976 (38:6976) + dr $e2976,$e4000 SECTION "bank39",ROMX,BANK[$39] |