mirror of
https://github.com/pret/pokegold-spaceworld.git
synced 2026-08-26 10:35:00 -05:00
Addresses of sections will now be added to the linkerscript via `org`, and the section name will be the path/to/file. If there is more than one section in the file, then add a @SectionName after the path/to/file to describe the section.
269 lines
3.4 KiB
NASM
269 lines
3.4 KiB
NASM
INCLUDE "constants.asm"
|
|
|
|
; if DEBUG
|
|
SECTION "home/audio.asm", ROM0
|
|
; else
|
|
; SECTION "Audio interface", ROM0[$3C83]
|
|
; endc
|
|
|
|
DisableAudio:: ; 3cbf
|
|
push hl
|
|
push de
|
|
push bc
|
|
push af
|
|
ldh a, [hROMBank]
|
|
push af
|
|
ld a, BANK(_DisableAudio)
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
call _DisableAudio
|
|
pop af
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
pop af
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
UpdateSound:: ; 3cdb
|
|
push hl
|
|
push de
|
|
push bc
|
|
push af
|
|
ldh a, [hROMBank]
|
|
push af
|
|
ld a, BANK(_UpdateSound)
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
call _UpdateSound
|
|
pop af
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
pop af
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
_LoadMusicByte:: ; 3cf7
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
ld a, [de]
|
|
push af
|
|
ld a, BANK(_UpdateSound)
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
pop af
|
|
ret
|
|
|
|
PlayMusic:: ; 3d07
|
|
push hl
|
|
push de
|
|
push bc
|
|
push af
|
|
ldh a, [hROMBank]
|
|
push af
|
|
ld a, BANK(_PlayMusic)
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
call _PlayMusic
|
|
pop af
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
pop af
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
PlayCryHeader:: ; 3d23
|
|
push hl
|
|
push de
|
|
push bc
|
|
push af
|
|
ldh a, [hROMBank]
|
|
push af
|
|
|
|
ld a, BANK(CryHeaders)
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
ld hl, CryHeaders
|
|
rept 6
|
|
add hl, de
|
|
endr
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
inc hl
|
|
ld a, [hli]
|
|
ld [wCryPitch], a
|
|
ld a, [hli]
|
|
ld [wCryPitch + 1], a
|
|
ld a, [hli]
|
|
ld [wCryLength], a
|
|
ld a, [hl]
|
|
ld [wCryLength + 1], a
|
|
|
|
ld a, BANK(_PlayCryHeader)
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
call _PlayCryHeader
|
|
|
|
pop af
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
pop af
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
PlaySFX:: ; 3d63
|
|
push hl
|
|
push de
|
|
push bc
|
|
push af
|
|
ldh a, [hROMBank]
|
|
push af
|
|
ld a, BANK(_PlaySFX)
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
call _PlaySFX
|
|
pop af
|
|
ld [MBC3RomBank], a ; Unsafe
|
|
ldh [hROMBank], a
|
|
pop af
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
WaitPlaySFX:: ; 3d7f
|
|
call WaitSFX
|
|
call PlaySFX
|
|
ret
|
|
|
|
WaitSFX:: ; 3d86
|
|
push hl
|
|
.loop
|
|
ld hl, wChannel5Flags1
|
|
bit 0, [hl]
|
|
jr nz, .loop
|
|
ld hl, wChannel6Flags1
|
|
bit 0, [hl]
|
|
jr nz, .loop
|
|
ld hl, wChannel7Flags1
|
|
bit 0, [hl]
|
|
jr nz, .loop
|
|
ld hl, wChannel8Flags1
|
|
bit 0, [hl]
|
|
jr nz, .loop
|
|
pop hl
|
|
ret
|
|
|
|
MaxVolume:: ; 3DA5
|
|
ld a, $77
|
|
ld [wVolume], a
|
|
ret
|
|
|
|
LowVolume:: ; 3DAB
|
|
ld a, $33
|
|
ld [wVolume], a
|
|
ret
|
|
|
|
VolumeOff:: ; 3DB1
|
|
xor a
|
|
ld [wVolume], a
|
|
ret
|
|
|
|
UpdateSoundNTimes:: ; 3DB6
|
|
.loop
|
|
and a
|
|
ret z
|
|
dec a
|
|
call UpdateSound
|
|
jr .loop
|
|
|
|
FadeToMapMusic:: ; 3DBE
|
|
push hl
|
|
push de
|
|
push bc
|
|
push af
|
|
call GetMapMusic
|
|
ld a, [wMapMusic]
|
|
cp e
|
|
jr z, .jump
|
|
ld a, $08
|
|
ld [wMusicFade], a
|
|
ld a, e
|
|
ld [wMusicFadeID], a
|
|
ld a, d
|
|
ld [wMusicFadeID+1], a
|
|
ld a, e
|
|
ld [wMapMusic], a
|
|
.jump
|
|
pop af
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
PlayMapMusic:: ; 3DE1
|
|
push hl
|
|
push de
|
|
push bc
|
|
push af
|
|
call GetMapMusic
|
|
ld a, [wMapMusic]
|
|
cp e
|
|
jr z, .jump
|
|
push de
|
|
ld de, $0000
|
|
call PlayMusic
|
|
call DelayFrame
|
|
pop de
|
|
ld a, e
|
|
ld [wMapMusic], a
|
|
call PlayMusic
|
|
.jump
|
|
pop af
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
SpecialMapMusic:: ; 3E05
|
|
ld a, [wPlayerState]
|
|
and a
|
|
jr z, .normal
|
|
cp $02
|
|
jr z, .state2
|
|
ld de, $0009
|
|
scf
|
|
ret
|
|
|
|
.state2 ; 3E14
|
|
ld de, $0000
|
|
scf
|
|
ret
|
|
|
|
.normal ; 3E19
|
|
and a
|
|
ret
|
|
|
|
GetMapMusic:: ; 3E1B
|
|
call SpecialMapMusic
|
|
ret c
|
|
ld a, [wMapPermissions]
|
|
cp $01
|
|
jr z, .jump
|
|
cp $03
|
|
jr z, .jump
|
|
ld de, $0002
|
|
ret
|
|
.jump ; 3E2E
|
|
ld de, $0007
|
|
ret
|
|
|
|
; 3E32, this is likely not a function. |