diff options
Diffstat (limited to 'home')
-rw-r--r-- | home/audio.asm | 8 | ||||
-rw-r--r-- | home/cry.asm | 111 | ||||
-rw-r--r-- | home/text.asm | 2 |
3 files changed, 116 insertions, 5 deletions
diff --git a/home/audio.asm b/home/audio.asm index 348da52c6..8130cf2c5 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -142,7 +142,7 @@ PlayMusic2:: ; 3bbc PlayCryHeader:: ; 3be3 -; Play a cry given parameters at header de +; Play cry header de. push hl push de @@ -173,17 +173,17 @@ PlayCryHeader:: ; 3be3 ld a, [hli] ld [CryPitch], a ld a, [hli] - ld [CryEcho], a + ld [CryPitch + 1], a ld a, [hli] ld [CryLength], a ld a, [hl] ld [CryLength + 1], a - ld a, BANK(PlayCry) + ld a, BANK(_PlayCryHeader) ld [hROMBank], a ld [MBC3RomBank], a - call PlayCry + call _PlayCryHeader pop af ld [hROMBank], a diff --git a/home/cry.asm b/home/cry.asm new file mode 100644 index 000000000..19723643a --- /dev/null +++ b/home/cry.asm @@ -0,0 +1,111 @@ +PlayStereoCry:: ; 37b6 + push af + ld a, 1 + ld [$c2bc], a + pop af + call _PlayCry + call WaitSFX + ret +; 37c4 + +PlayStereoCry2:: ; 37c4 +; Don't wait for the cry to end. +; Used during pic animations. + push af + ld a, 1 + ld [$c2bc], a + pop af + jp _PlayCry +; 37ce + +PlayCry:: ; 37ce + call PlayCry2 + call WaitSFX + ret +; 37d5 + +PlayCry2:: ; 37d5 +; Don't wait for the cry to end. + push af + xor a + ld [$c2bc], a + ld [CryTracks], a + pop af + call _PlayCry + ret +; 37e2 + +_PlayCry:: ; 37e2 + push hl + push de + push bc + + call GetCryIndex + jr c, .done + + ld e, c + ld d, b + call PlayCryHeader + +.done + pop bc + pop de + pop hl + ret +; 37f3 + +LoadCryHeader:: ; 37f3 +; Load cry header bc. + + call GetCryIndex + ret c + + ld a, [hROMBank] + push af + ld a, BANK(CryHeaders) + rst Bankswitch + + ld hl, CryHeaders + add hl, bc + add hl, bc + add hl, bc + add hl, bc + add hl, bc + add hl, bc + + ld e, [hl] + inc hl + ld d, [hl] + inc hl + + ld a, [hli] + ld [CryPitch], a + ld a, [hli] + ld [CryPitch + 1], a + ld a, [hli] + ld [CryLength], a + ld a, [hl] + ld [CryLength + 1], a + + pop af + rst Bankswitch + and a + ret +; 381e + +GetCryIndex:: ; 381e + and a + jr z, .no + cp NUM_POKEMON + 1 + jr nc, .no + + dec a + ld c, a + ld b, 0 + and a + ret + +.no + scf + ret +; 382d diff --git a/home/text.asm b/home/text.asm index 33d8dba14..e319a1bdf 100644 --- a/home/text.asm +++ b/home/text.asm @@ -1108,7 +1108,7 @@ Function1522:: ; 1522 ld e, [hl] inc hl ld d, [hl] - call Function37ce + call PlayCry pop de pop hl pop bc |