summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
Diffstat (limited to 'home')
-rw-r--r--home/audio.asm8
-rw-r--r--home/cry.asm111
-rw-r--r--home/text.asm2
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