summaryrefslogtreecommitdiff
path: root/audio.asm
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2020-11-04 00:06:44 -0600
committerdannye <33dannye@gmail.com>2020-11-04 00:06:44 -0600
commit5647ca687b92954dcf37a6ea6bfbc9a341c32de4 (patch)
treedde1937a1bfdb3a835f4155e1c2eb8f1aaf86f63 /audio.asm
parent53fcd05aa24693093d8af1dc8ec4fedd3957decc (diff)
Sync with pokered
Diffstat (limited to 'audio.asm')
-rw-r--r--audio.asm254
1 files changed, 27 insertions, 227 deletions
diff --git a/audio.asm b/audio.asm
index cff600d2..737e9f70 100644
--- a/audio.asm
+++ b/audio.asm
@@ -1,33 +1,33 @@
INCLUDE "constants.asm"
-SECTION "Sound Effect Headers 1", ROMX ; BANK $02
+SECTION "Sound Effect Headers 1", ROMX
INCLUDE "audio/headers/sfxheaders1.asm"
-SECTION "Sound Effect Headers 2", ROMX ; BANK $08
+SECTION "Sound Effect Headers 2", ROMX
INCLUDE "audio/headers/sfxheaders2.asm"
-SECTION "Sound Effect Headers 3", ROMX ; BANK $1f
+SECTION "Sound Effect Headers 3", ROMX
INCLUDE "audio/headers/sfxheaders3.asm"
-SECTION "Sound Effect Headers 4", ROMX ; BANK $20
+SECTION "Sound Effect Headers 4", ROMX
INCLUDE "audio/headers/sfxheaders4.asm"
-SECTION "Music Headers 1", ROMX ; BANK $02
+SECTION "Music Headers 1", ROMX
INCLUDE "audio/headers/musicheaders1.asm"
-SECTION "Music Headers 2", ROMX ; BANK $08
+SECTION "Music Headers 2", ROMX
INCLUDE "audio/headers/musicheaders2.asm"
-SECTION "Music Headers 3", ROMX ; BANK $1f
+SECTION "Music Headers 3", ROMX
INCLUDE "audio/headers/musicheaders3.asm"
-SECTION "Music Headers 4", ROMX ; BANK $20
+SECTION "Music Headers 4", ROMX
INCLUDE "audio/headers/musicheaders4.asm"
-SECTION "Sound Effects 1", ROMX ; BANK $02
+SECTION "Sound Effects 1", ROMX
INCLUDE "audio/sfx/noise_instrument01_1.asm"
INCLUDE "audio/sfx/noise_instrument02_1.asm"
@@ -49,8 +49,6 @@ INCLUDE "audio/sfx/noise_instrument17_1.asm"
INCLUDE "audio/sfx/noise_instrument18_1.asm"
INCLUDE "audio/sfx/noise_instrument19_1.asm"
-; Audio1_WavePointers: INCLUDE "audio/wave_instruments.asm"
-
INCLUDE "audio/sfx/start_menu_1.asm"
INCLUDE "audio/sfx/pokeflute.asm"
INCLUDE "audio/sfx/cut_1.asm"
@@ -126,7 +124,7 @@ INCLUDE "audio/sfx/cry21_1.asm"
INCLUDE "audio/sfx/cry22_1.asm"
-SECTION "Sound Effects 2", ROMX ; BANK $08
+SECTION "Sound Effects 2", ROMX
INCLUDE "audio/sfx/noise_instrument01_2.asm"
INCLUDE "audio/sfx/noise_instrument02_2.asm"
@@ -148,8 +146,6 @@ INCLUDE "audio/sfx/noise_instrument17_2.asm"
INCLUDE "audio/sfx/noise_instrument18_2.asm"
INCLUDE "audio/sfx/noise_instrument19_2.asm"
-; Audio2_WavePointers: INCLUDE "audio/wave_instruments.asm"
-
INCLUDE "audio/sfx/press_ab_2.asm"
INCLUDE "audio/sfx/start_menu_2.asm"
INCLUDE "audio/sfx/tink_2.asm"
@@ -252,7 +248,7 @@ INCLUDE "audio/sfx/cry21_2.asm"
INCLUDE "audio/sfx/cry22_2.asm"
-SECTION "Sound Effects 3", ROMX ; BANK $1f
+SECTION "Sound Effects 3", ROMX
INCLUDE "audio/sfx/noise_instrument01_3.asm"
INCLUDE "audio/sfx/noise_instrument02_3.asm"
@@ -274,8 +270,6 @@ INCLUDE "audio/sfx/noise_instrument17_3.asm"
INCLUDE "audio/sfx/noise_instrument18_3.asm"
INCLUDE "audio/sfx/noise_instrument19_3.asm"
-; Audio3_WavePointers: INCLUDE "audio/wave_instruments.asm"
-
INCLUDE "audio/sfx/start_menu_3.asm"
INCLUDE "audio/sfx/cut_3.asm"
INCLUDE "audio/sfx/go_inside_3.asm"
@@ -359,7 +353,7 @@ INCLUDE "audio/sfx/cry21_3.asm"
INCLUDE "audio/sfx/cry22_3.asm"
-SECTION "Sound Effects 4", ROMX ; BANK $20
+SECTION "Sound Effects 4", ROMX
INCLUDE "audio/sfx/noise_instrument01_4.asm"
INCLUDE "audio/sfx/noise_instrument02_4.asm"
@@ -437,230 +431,36 @@ INCLUDE "audio/sfx/get_item1_4_2.asm"
INCLUDE "audio/sfx/get_item2_4.asm"
-SECTION "Audio Engine 1", ROMX ; BANK $02
+SECTION "Audio Engine 1", ROMX
AudioEngine1::
-PlayBattleMusic::
- xor a
- ld [wAudioFadeOutControl], a
- ld [wLowHealthAlarm], a
- call StopAllMusic
- call DelayFrame
- ld c, BANK(Music_GymLeaderBattle)
- ld a, [wGymLeaderNo]
- and a
- jr z, .notGymLeaderBattle
- ld a, MUSIC_GYM_LEADER_BATTLE
- jr .playSong
-.notGymLeaderBattle
- ld a, [wCurOpponent]
- cp OPP_ID_OFFSET
- jr c, .wildBattle
- cp OPP_SONY3
- jr z, .finalBattle
- cp OPP_LANCE
- jr nz, .normalTrainerBattle
- ld a, MUSIC_GYM_LEADER_BATTLE ; lance also plays gym leader theme
- jr .playSong
-.normalTrainerBattle
- ld a, MUSIC_TRAINER_BATTLE
- jr .playSong
-.finalBattle
- ld a, MUSIC_FINAL_BATTLE
- jr .playSong
-.wildBattle
- ld a, MUSIC_WILD_BATTLE
-.playSong
- jp PlayMusic
+INCLUDE "audio/play_battle_music.asm"
+INCLUDE "audio/engine_1.asm"
+INCLUDE "audio/alternate_tempo.asm"
+
+SECTION "Low Health Alarm (Audio Engine 2)", ROMX
-INCLUDE "audio/engine_1.asm"
+INCLUDE "audio/low_health_alarm.asm"
-; an alternate start for MeetRival which has a different first measure
-Music_RivalAlternateStart::
- ld c, BANK(Music_MeetRival)
- ld a, MUSIC_MEET_RIVAL
- call PlayMusic
- ld hl, wChannelCommandPointers
- ld de, Music_MeetRival_branch_b1a2
- call Audio1_OverwriteChannelPointer
- ld de, Music_MeetRival_branch_b21d
- call Audio1_OverwriteChannelPointer
- ld de, Music_MeetRival_branch_b2b5
-
-Audio1_OverwriteChannelPointer:
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ret
-
-; an alternate tempo for MeetRival which is slightly slower
-Music_RivalAlternateTempo::
- ld c, BANK(Music_MeetRival)
- ld a, MUSIC_MEET_RIVAL
- call PlayMusic
- ld de, Music_MeetRival_branch_b119
- jr asm_99ed
-
-; applies both the alternate start and alternate tempo
-Music_RivalAlternateStartAndTempo::
- call Music_RivalAlternateStart
- ld de, Music_MeetRival_branch_b19b
-asm_99ed:
- ld hl, wChannelCommandPointers
- jp Audio1_OverwriteChannelPointer
-
-; XXX
- ret
-
-; an alternate tempo for Cities1 which is used for the Hall of Fame room
-Music_Cities1AlternateTempo::
- ld a, 10
- ld [wAudioFadeOutCounterReloadValue], a
- ld [wAudioFadeOutCounter], a
- ld a, $ff ; stop playing music after the fade-out is finished
- ld [wAudioFadeOutControl], a
- ld c, 100
- call DelayFrames ; wait for the fade-out to finish
- ld c, BANK(Music_Cities1)
- ld a, MUSIC_CITIES1
- call PlayMusic
- ld hl, wChannelCommandPointers
- ld de, Music_Cities1_branch_aa6f
- jp Audio1_OverwriteChannelPointer
-
-
-SECTION "Audio Engine 2", ROMX ; BANK $08
+SECTION "Audio Engine 2", ROMX
AudioEngine2::
-Music_DoLowHealthAlarm::
- ld a, [wLowHealthAlarm]
- cp $ff
- jr z, .disableAlarm
-
- bit 7, a ;alarm enabled?
- ret z ;nope
-
- and $7f ;low 7 bits are the timer.
- jr nz, .asm_21383 ;if timer > 0, play low tone.
-
- call .playToneHi
- ld a, 30 ;keep this tone for 30 frames.
- jr .asm_21395 ;reset the timer.
-
-.asm_21383
- cp 20
- jr nz, .asm_2138a ;if timer == 20,
- call .playToneLo ;actually set the sound registers.
-
-.asm_2138a
- ld a, $86
- ld [wChannelSoundIDs + Ch5], a ;disable sound channel?
- ld a, [wLowHealthAlarm]
- and $7f ;decrement alarm timer.
- dec a
-
-.asm_21395
- ; reset the timer and enable flag.
- set 7, a
- ld [wLowHealthAlarm], a
- ret
-
-.disableAlarm
- xor a
- ld [wLowHealthAlarm], a ;disable alarm
- ld [wChannelSoundIDs + Ch5], a ;re-enable sound channel?
- ld de, .toneDataSilence
- jr .playTone
-
-;update the sound registers to change the frequency.
-;the tone set here stays until we change it.
-.playToneHi
- ld de, .toneDataHi
- jr .playTone
-
-.playToneLo
- ld de, .toneDataLo
-
-;update sound channel 1 to play the alarm, overriding all other sounds.
-.playTone
- ld hl, rNR10 ;channel 1 sound register
- ld c, $5
- xor a
-
-.copyLoop
- ld [hli], a
- ld a, [de]
- inc de
- dec c
- jr nz, .copyLoop
- ret
-
-;bytes to write to sound channel 1 registers for health alarm.
-;starting at FF11 (FF10 is always zeroed), so these bytes are:
-;length, envelope, freq lo, freq hi
-.toneDataHi
- db $A0,$E2,$50,$87
-
-.toneDataLo
- db $B0,$E2,$EE,$86
-
-;written to stop the alarm
-.toneDataSilence
- db $00,$00,$00,$80
-
-INCLUDE "engine/menu/bills_pc.asm"
-
INCLUDE "audio/engine_2.asm"
-SECTION "Audio Engine 3", ROMX ; BANK $1f
+SECTION "Audio Engine 3", ROMX
AudioEngine3::
-PlayPokedexRatingSfx::
- ld a, [$ffdc]
- ld c, $0
- ld hl, OwnedMonValues
-.getSfxPointer
- cp [hl]
- jr c, .gotSfxPointer
- inc c
- inc hl
- jr .getSfxPointer
-.gotSfxPointer
- push bc
- call StopAllMusic
- pop bc
- ld b, $0
- ld hl, PokedexRatingSfxPointers
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, [hl]
- call PlayMusic
- jp PlayDefaultMusic
-
-PokedexRatingSfxPointers:
- db SFX_DENIED, BANK(SFX_Denied_3)
- db SFX_POKEDEX_RATING, BANK(SFX_Pokedex_Rating_1)
- db SFX_GET_ITEM_1, BANK(SFX_Get_Item1_1)
- db SFX_CAUGHT_MON, BANK(SFX_Caught_Mon)
- db SFX_LEVEL_UP, BANK(SFX_Level_Up)
- db SFX_GET_KEY_ITEM, BANK(SFX_Get_Key_Item_1)
- db SFX_GET_ITEM_2, BANK(SFX_Get_Item2_1)
-
-OwnedMonValues:
- db 10, 40, 60, 90, 120, 150, $ff
-
+INCLUDE "audio/pokedex_rating_sfx.asm"
INCLUDE "audio/engine_3.asm"
-SECTION "Audio Engine 4", ROMX ; BANK $20
+SECTION "Audio Engine 4", ROMX
SurfingPikachu1Graphics1:: INCBIN "gfx/surfing_pikachu_1a.2bpp"
SurfingPikachu1Graphics2:: INCBIN "gfx/surfing_pikachu_1b.2bpp"
@@ -669,7 +469,7 @@ SurfingPikachu1Graphics3:: INCBIN "gfx/surfing_pikachu_1c.2bpp"
INCLUDE "audio/engine_4.asm"
-SECTION "Music 1", ROMX ; BANK $02
+SECTION "Music 1", ROMX
Audio1_WavePointers: INCLUDE "audio/wave_instruments.asm"
@@ -700,7 +500,7 @@ INCLUDE "audio/music/gym.asm"
INCLUDE "audio/music/pokecenter.asm"
-SECTION "Music 2", ROMX ; BANK $08
+SECTION "Music 2", ROMX
INCLUDE "audio/sfx/unused2_2.asm"
INCLUDE "audio/music/gymleaderbattle.asm"
@@ -715,7 +515,7 @@ INCLUDE "audio/music/defeatedwildmon.asm"
INCLUDE "audio/music/defeatedgymleader.asm"
-SECTION "Music 3", ROMX ; BANK $1f
+SECTION "Music 3", ROMX
INCLUDE "audio/music/bikeriding.asm"
INCLUDE "audio/music/dungeon1.asm"
@@ -742,7 +542,7 @@ INCLUDE "audio/music/credits.asm"
INCLUDE "audio/music/yellowintro.asm"
-SECTION "Music 4", ROMX ; BANK $20
+SECTION "Music 4", ROMX
INCLUDE "audio/music/surfingpikachu.asm"
INCLUDE "audio/music/yellowunusedsong.asm"