From f3a7706b8ab7ec384698477d4e34deb40344b7ad Mon Sep 17 00:00:00 2001 From: "U-Daniel-PC\\Daniel" Date: Sun, 15 Feb 2015 00:31:16 -0500 Subject: audio.o --- Makefile | 2 +- audio.asm | 12 + audio/music1.asm | 1891 +++++++++++++++++++++++++++++++++++++++++++ audio/music1_headers.asm | 281 +++++++ audio/music2.asm | 1885 ++++++++++++++++++++++++++++++++++++++++++ audio/music2_headers.asm | 281 +++++++ audio/noise_instruments.asm | 37 + audio/sfx.asm | 599 ++++++++++++++ audio/sfx_headers.asm | 494 +++++++++++ audio/vibrato_types.asm | 44 + audio/wave_instruments.asm | 20 + data/music1_headers.asm | 281 ------- data/music2_headers.asm | 281 ------- data/noise_instruments.asm | 37 - data/sfx_headers.asm | 494 ----------- data/vibrato_types.asm | 44 - data/wave_instruments.asm | 20 - engine/home.asm | 2 +- engine/music1.asm | 1891 ------------------------------------------- engine/music2.asm | 1885 ------------------------------------------ engine/sfx.asm | 599 -------------- main.asm | 9 - wram.asm | 36 +- 23 files changed, 5564 insertions(+), 5561 deletions(-) create mode 100755 audio.asm create mode 100755 audio/music1.asm create mode 100755 audio/music1_headers.asm create mode 100755 audio/music2.asm create mode 100755 audio/music2_headers.asm create mode 100755 audio/noise_instruments.asm create mode 100755 audio/sfx.asm create mode 100755 audio/sfx_headers.asm create mode 100755 audio/vibrato_types.asm create mode 100755 audio/wave_instruments.asm delete mode 100755 data/music1_headers.asm delete mode 100755 data/music2_headers.asm delete mode 100755 data/noise_instruments.asm delete mode 100755 data/sfx_headers.asm delete mode 100755 data/vibrato_types.asm delete mode 100755 data/wave_instruments.asm delete mode 100755 engine/music1.asm delete mode 100755 engine/music2.asm delete mode 100755 engine/sfx.asm diff --git a/Makefile b/Makefile index 7a6e47f..c41aa7a 100755 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ .SECONDEXPANSION: ROMS := tcg.gbc -OBJS := main.o gfx.o text.o +OBJS := main.o gfx.o text.o audio.o $(foreach obj, $(OBJS), \ $(eval $(obj:.o=)_dep := $(shell python extras/scan_includes.py $(obj:.o=.asm))) \ diff --git a/audio.asm b/audio.asm new file mode 100755 index 0000000..adfa6a6 --- /dev/null +++ b/audio.asm @@ -0,0 +1,12 @@ +INCLUDE "constants.asm" +INCLUDE "macros.asm" +INCLUDE "hram.asm" + +SECTION "bank3D",ROMX,BANK[$3D] +INCLUDE "audio/music1.asm" + +SECTION "bank3E",ROMX,BANK[$3E] +INCLUDE "audio/music2.asm" + +SECTION "bank3F",ROMX,BANK[$3F] +INCLUDE "audio/sfx.asm" diff --git a/audio/music1.asm b/audio/music1.asm new file mode 100755 index 0000000..0e1767b --- /dev/null +++ b/audio/music1.asm @@ -0,0 +1,1891 @@ +SetupSound_Ext:: ; f4000 (3d:4000) + jp Func_f407d + +SoundTimerHandler_Ext:: ; f4003 (3d:4003) + jp Func_f40e9 + +Func_f4006:: ; f4006 (3d:4006) + jp Func_f4021 + +Func_f4009:: ; f4009 (3d:4009) + jp Func_f402d + +Func_f400c:: ; f400c (3d:400c) + jp Func_f404e + +Func_f400f:: ; f400f (3d:400f) + jp Func_f4052 + +Func_f4012:: ; f4012 (3d:4012) + jp Func_f405c + +Func_f4015:: ; f4015 (3d:4015) + jp Func_f4066 + +Func_f4018:: ; f4018 (3d:4018) + jp Func_f406f + +Func_f401b:: ; f401b (3d:401b) + jp Func_f49c4 + +Func_f401e:: ; f401e (3d:401e) + jp Func_f49d0 + +Func_f4021: ; f4021 (3d:4021) + push hl + ld hl, NumberOfSongs1 + cp [hl] + jr nc, .asm_f402b + ld [$dd80], a +.asm_f402b + pop hl + ret + +Func_f402d: ; f402d (3d:402d) + push bc + push hl + ld b, $0 + ld c, a + or a + jr z, .asm_f4043 + ld hl, Unknown_f4e85 + add hl, bc + ld b, [hl] + ld a, [$dd83] + or a + jr z, .asm_f4043 + cp b + jr c, .asm_f404b +.asm_f4043 + ld a, b + ld [$dd83], a + ld a, c + ld [$dd82], a +.asm_f404b + pop hl + pop bc + ret + +Func_f404e: ; f404e (3d:404e) + ld [$ddf0], a + ret + +Func_f4052: ; f4052 (3d:4052) + ld a, [$dd80] + cp $80 + ld a, $1 + ret nz + xor a + ret + +Func_f405c: ; f405c (3d:405c) + ld a, [$dd82] + cp $80 + ld a, $1 + ret nz + xor a + ret + +Func_f4066: ; f4066 (3d:4066) + ld a, [$ddf2] + xor $1 + ld [$ddf2], a + ret + +Func_f406f: ; f406f (3d:406f) + push bc + push af + and $7 + ld b, a + swap b + or b + ld [$ddf1], a + pop af + pop bc + ret + +Func_f407d: ; f407d (3d:407d) + xor a + ld [rNR52], a + ld a, $80 + ld [rNR52], a + ld a, $77 + ld [rNR50], a + ld a, $ff + ld [rNR51], a + ld a, $3d + ld [$dd81], a + ld a, $80 + ld [$dd80], a + ld [$dd82], a + ld a, $77 + ld [$ddf1], a + xor a + ld [$dd8c], a + ld [$de53], a + ld [wMusicWaveChange], a + ld [$ddef], a + ld [$ddf0], a + ld [$ddf2], a + dec a + ld [wMusicDC], a + ld de, $0001 + ld bc, $0000 +.asm_f40bb + ld hl, wMusicIsPlaying + add hl, bc + ld [hl], d + ld hl, wMusicTie + add hl, bc + ld [hl], d + ld hl, $ddb3 + add hl, bc + ld [hl], d + ld hl, wMusicEC + add hl, bc + ld [hl], d + ld hl, wMusicE8 + add hl, bc + ld [hl], d + inc c + ld a, c + cp $4 + jr nz, .asm_f40bb + ld hl, Unknown_f4c20 + ld bc, wMusicReturnAddress + ld d, $8 +.asm_f40e2 + ld a, [hli] + ld [bc], a + inc bc + dec d + jr nz, .asm_f40e2 + ret + +Func_f40e9: ; f40e9 (3d:40e9) + call Func_f42a4 + call Func_f411c + ld hl, Func_fc003 + call Bankswitch3dTo3f + ld a, [$dd81] + ld [hBankROM], a + ld [MBC3RomBank], a + ld a, [$ddf2] + cp $0 + jr z, .asm_f4109 + call Func_f4980 + jr .asm_f4115 +.asm_f4109 + call Func_f42a5 + call Func_f430a + call Func_f436f + call Func_f43ce +.asm_f4115 + call Func_f4866 + call Func_f49b1 + ret + +Func_f411c: ; f411c (3d:411c) + ld a, [$dd80] + rla + jr c, .asm_f4133 + call Func_f414b + ld a, [$dd80] + call Music1_PlaySong + ld a, [$dd80] + or $80 + ld [$dd80], a +.asm_f4133 + ld a, [$dd82] + rla + jr c, .asm_f414a + ld a, [$dd82] + ld hl, Func_fc000 + call Bankswitch3dTo3f + ld a, [$dd82] + or $80 + ld [$dd82], a +.asm_f414a + ret + +Func_f414b: ; f414b (3d:414b) + ld a, [$dd8c] + ld d, a + xor a + ld [wMusicIsPlaying], a + bit 0, d + jr nz, .asm_f415f + ld a, $8 + ld [rNR12], a + swap a + ld [rNR14], a +.asm_f415f + xor a + ld [$dd8e], a + bit 1, d + jr nz, .asm_f416f + ld a, $8 + ld [rNR22], a + swap a + ld [rNR24], a +.asm_f416f + xor a + ld [$dd90], a + bit 3, d + jr nz, .asm_f417f + ld a, $8 + ld [rNR42], a + swap a + ld [rNR44], a +.asm_f417f + xor a + ld [$dd8f], a + bit 2, d + jr nz, .asm_f418b + ld a, $0 + ld [rNR32], a +.asm_f418b + ret + +; plays the song given by the id in a +Music1_PlaySong: ; f418c (3d:418c) + push af + ld c, a + ld b, $0 + ld hl, SongBanks1 + add hl, bc + ld a, [hl] + ld [$dd81], a + ld [hBankROM], a + ld [MBC3RomBank], a + pop af + add a + ld c, a + ld b, $0 + ld hl, SongHeaderPointers1 + add hl, bc + ld e, [hl] + inc hl + ld h, [hl] + ld l, e + ld e, [hl] + inc hl + ld b, h + ld c, l + rr e + jr nc, .asm_f41eb + ld a, [bc] + inc bc + ld [$dd95], a + ld [wMusicMainLoop], a + ld a, [bc] + inc bc + ld [$dd96], a + ld [$dd9e], a + ld a, $1 + ld [$ddbb], a + ld [wMusicIsPlaying], a + xor a + ld [wMusicTie], a + ld [wMusicE4], a + ld [wMusicE8], a + ld [wMusicVibratoDelay], a + ld [wMusicEC], a + ld a, [Unknown_f4c20] + ld [wMusicReturnAddress], a + ld a, [Unknown_f4c20 + 1] + ld [$ddf4], a + ld a, $8 + ld [wMusicE9], a +.asm_f41eb + rr e + jr nc, .asm_f4228 + ld a, [bc] + inc bc + ld [$dd97], a + ld [$dd9f], a + ld a, [bc] + inc bc + ld [$dd98], a + ld [$dda0], a + ld a, $1 + ld [$ddbc], a + ld [$dd8e], a + xor a + ld [$dd92], a + ld [$ddeb], a + ld [$ddc0], a + ld [$dde0], a + ld [$ddcc], a + ld a, [Unknown_f4c20 + 2] + ld [$ddf5], a + ld a, [Unknown_f4c20 + 3] + ld [$ddf6], a + ld a, $8 + ld [$ddc8], a +.asm_f4228 + rr e + jr nc, .asm_f4265 + ld a, [bc] + inc bc + ld [$dd99], a + ld [$dda1], a + ld a, [bc] + inc bc + ld [$dd9a], a + ld [$dda2], a + ld a, $1 + ld [$ddbd], a + ld [$dd8f], a + xor a + ld [$dd93], a + ld [$ddec], a + ld [$ddc1], a + ld [$dde1], a + ld [$ddcd], a + ld a, [Unknown_f4c20 + 4] + ld [$ddf7], a + ld a, [Unknown_f4c20 + 5] + ld [$ddf8], a + ld a, $40 + ld [$ddc9], a +.asm_f4265 + rr e + jr nc, .asm_f429f + ld a, [bc] + inc bc + ld [$dd9b], a + ld [$dda3], a + ld a, [bc] + inc bc + ld [$dd9c], a + ld [$dda4], a + ld a, $1 + ld [$ddbe], a + ld [$dd90], a + xor a + ld [$dd94], a + ld [$ddc2], a + ld [$dde2], a + ld [$ddce], a + ld a, [Unknown_f4c20 + 6] + ld [$ddf9], a + ld a, [Unknown_f4c20 + 7] + ld [$ddfa], a + ld a, $40 + ld [$ddca], a +.asm_f429f + xor a + ld [$ddf2], a + ret + +Func_f42a4: ; f42a4 (3d:42a4) + ret + +Func_f42a5: ; f42a5 (3d:42a5) + ld a, [wMusicIsPlaying] + or a + jr z, .asm_f42fa + ld a, [$ddb7] + cp $0 + jr z, .asm_f42d4 + ld a, [$ddc3] + dec a + ld [$ddc3], a + jr nz, .asm_f42d4 + ld a, [$ddbb] + cp $1 + jr z, .asm_f42d4 + ld a, [$dd8c] + bit 0, a + jr nz, .asm_f42d4 + ld hl, rNR12 + ld a, [wMusicE9] + ld [hli], a + inc hl + ld a, $80 + ld [hl], a +.asm_f42d4 + ld a, [$ddbb] + dec a + ld [$ddbb], a + jr nz, .asm_f42f4 + ld a, [$dd96] + ld h, a + ld a, [$dd95] + ld l, a + ld bc, $0000 + call Music1_PlayNextNote + ld a, [wMusicIsPlaying] + or a + jr z, .asm_f42fa + call Func_f4714 +.asm_f42f4 + ld a, $0 + call Func_f485a + ret +.asm_f42fa + ld a, [$dd8c] + bit 0, a + jr nz, .asm_f4309 + ld a, $8 + ld [rNR12], a + swap a + ld [rNR14], a +.asm_f4309 + ret + +Func_f430a: ; f430a (3d:430a) + ld a, [$dd8e] + or a + jr z, .asm_f435f + ld a, [$ddb8] + cp $0 + jr z, .asm_f4339 + ld a, [$ddc4] + dec a + ld [$ddc4], a + jr nz, .asm_f4339 + ld a, [$ddbc] + cp $1 + jr z, .asm_f4339 + ld a, [$dd8c] + bit 1, a + jr nz, .asm_f4339 + ld hl, rNR22 + ld a, [$ddc8] + ld [hli], a + inc hl + ld a, $80 + ld [hl], a +.asm_f4339 + ld a, [$ddbc] + dec a + ld [$ddbc], a + jr nz, .asm_f4359 + ld a, [$dd98] + ld h, a + ld a, [$dd97] + ld l, a + ld bc, $0001 + call Music1_PlayNextNote + ld a, [$dd8e] + or a + jr z, .asm_f435f + call Func_f475a +.asm_f4359 + ld a, $1 + call Func_f485a + ret +.asm_f435f + ld a, [$dd8c] + bit 1, a + jr nz, .asm_f436e + ld a, $8 + ld [rNR22], a + swap a + ld [rNR24], a +.asm_f436e + ret + +Func_f436f: ; f436f (3d:436f) + ld a, [$dd8f] + or a + jr z, .asm_f43be + ld a, [$ddb9] + cp $0 + jr z, .asm_f4398 + ld a, [$ddc5] + dec a + ld [$ddc5], a + jr nz, .asm_f4398 + ld a, [$dd8c] + bit 2, a + jr nz, .asm_f4398 + ld a, [$ddbd] + cp $1 + jr z, .asm_f4398 + ld a, [$ddc9] + ld [rNR32], a +.asm_f4398 + ld a, [$ddbd] + dec a + ld [$ddbd], a + jr nz, .asm_f43b8 + ld a, [$dd9a] + ld h, a + ld a, [$dd99] + ld l, a + ld bc, $0002 + call Music1_PlayNextNote + ld a, [$dd8f] + or a + jr z, .asm_f43be + call Func_f479c +.asm_f43b8 + ld a, $2 + call Func_f485a + ret +.asm_f43be + ld a, [$dd8c] + bit 2, a + jr nz, .asm_f43cd + ld a, $0 + ld [rNR32], a + ld a, $80 + ld [rNR34], a +.asm_f43cd + ret + +Func_f43ce: ; f43ce (3d:43ce) + ld a, [$dd90] + or a + jr z, .asm_f4400 + ld a, [$ddbe] + dec a + ld [$ddbe], a + jr nz, .asm_f43f6 + ld a, [$dd9c] + ld h, a + ld a, [$dd9b] + ld l, a + ld bc, $0003 + call Music1_PlayNextNote + ld a, [$dd90] + or a + jr z, .asm_f4400 + call Func_f480a + jr .asm_f4413 +.asm_f43f6 + ld a, [$ddef] + or a + jr z, .asm_f4413 + call Func_f4839 + ret +.asm_f4400 + ld a, [$dd8c] + bit 3, a + jr nz, .asm_f4413 + xor a + ld [$ddef], a + ld a, $8 + ld [rNR42], a + swap a + ld [rNR44], a +.asm_f4413 + ret + +Music1_PlayNextNote: ; f4414 (3d:4414) + ld a, [hli] + push hl + push af + cp $d0 + jr c, Music1_note + sub $d0 + add a + ld e, a + ld d, $0 + ld hl, Music1_CommandTable + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld h, d + ld l, e + pop af + jp [hl] + +Music1_CommandTable: ; f442c (3d:442c) + dw Music1_speed + dw Music1_octave + dw Music1_octave + dw Music1_octave + dw Music1_octave + dw Music1_octave + dw Music1_octave + dw Music1_inc_octave + dw Music1_dec_octave + dw Music1_tie + dw Music1_end + dw Music1_end + dw Music1_musicdc + dw Music1_MainLoop + dw Music1_EndMainLoop + dw Music1_Loop + dw Music1_EndLoop + dw Music1_jp + dw Music1_call + dw Music1_ret + dw Music1_musice4 + dw Music1_duty + dw Music1_volume + dw Music1_wave + dw Music1_musice8 + dw Music1_musice9 + dw Music1_vibrato_type + dw Music1_vibrato_delay + dw Music1_musicec + dw Music1_musiced + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + dw Music1_end + +Music1_note: ; f448c (3d:448c) + push af + ld a, [hl] + ld e, a + ld hl, wMusicTie + add hl, bc + ld a, [hl] + cp $80 + jr z, .asm_f44b0 + ld [hl], $1 + xor a + ld hl, $dddb + add hl, bc + ld [hl], a + ld hl, $dde3 + add hl, bc + ld [hl], a + inc [hl] + ld hl, wMusicVibratoType2 + add hl, bc + ld a, [hl] + ld hl, wMusicVibratoType + add hl, bc + ld [hl], a +.asm_f44b0 + pop af + push de + ld hl, wMusicSpeed + add hl, bc + ld d, [hl] + and $f + inc a + cp d + jr nc, .asm_f44c0 + ld e, a + ld a, d + ld d, e +.asm_f44c0 + ld e, a +.asm_f44c1 + dec d + jr z, .asm_f44c7 + add e + jr .asm_f44c1 +.asm_f44c7 + ld hl, $ddbb + add hl, bc + ld [hl], a + pop de + ld d, a + ld a, e + cp $d9 + ld a, d + jr z, .asm_f44fb + ld e, a + ld hl, wMusicE8 + add hl, bc + ld a, [hl] + cp $8 + ld d, a + ld a, e + jr z, .asm_f44fb + push hl + push bc + ld b, $0 + ld c, a + ld hl, $0000 +.asm_f44e8 + add hl, bc + dec d + jr nz, .asm_f44e8 + srl h + rr l + srl h + rr l + srl h + rr l + ld a, l + pop bc + pop hl +.asm_f44fb + ld hl, $ddc3 + add hl, bc + ld [hl], a + pop af + and $f0 + ld hl, $ddb7 + add hl, bc + ld [hl], a + or a + jr nz, .asm_f450e + jp .asm_f458e +.asm_f450e + swap a + dec a + ld h, a + ld a, $3 + cp c + ld a, h + jr z, .asm_f451a + jr .asm_f4564 +.asm_f451a + push af + ld hl, wMusicOctave + add hl, bc + ld a, [hl] + ld d, a + sla a + add d + sla a + sla a + sla a + ld e, a + pop af + ld hl, Music1_NoiseInstruments + add a + ld d, c + ld c, a + add hl, bc + ld c, e + add hl, bc + ld c, d + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + ld d, a + ld a, [wMusicDC] + and $77 + or d + ld [wMusicDC], a + ld de, $ddab + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld b, [hl] + inc hl + ld a, [hli] + ld [de], a + inc de + ld a, b + ld [de], a + ld b, $0 + ld a, l + ld d, h + ld hl, $dded + ld [hli], a + ld [hl], d + ld a, $1 + ld [$ddef], a + jr .asm_f458e +.asm_f4564 + ld hl, $dda5 + add hl, bc + add hl, bc + push hl + ld hl, wMusicOctave + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, Unknown_f4c28 + add hl, de + add a + ld e, [hl] + add e + ld hl, wMusicEC + add hl, bc + ld e, [hl] + add e + add e + ld e, a + ld hl, Unknown_f4c30 + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + call Func_f4967 + pop hl + ld a, e + ld [hli], a + ld [hl], d +.asm_f458e + pop de + ld hl, $dd95 + add hl, bc + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +Music1_speed: ; f4598 (3d:4598) + pop hl + ld a, [hli] + push hl + ld hl, wMusicSpeed + add hl, bc + ld [hl], a + jp Music1_PlayNextNote_pop + +Music1_octave: ; f45a3 (3d:45a3) + and $7 + dec a + ld hl, wMusicOctave + add hl, bc + push af + ld a, c + cp $2 + jr nz, .asm_f45b6 + pop af + inc a + ld [hl], a + jp Music1_PlayNextNote_pop +.asm_f45b6 + pop af + ld [hl], a + jp Music1_PlayNextNote_pop + +Music1_inc_octave: ; f45bb (3d:45bb) + ld hl, wMusicOctave + add hl, bc + inc [hl] + jp Music1_PlayNextNote_pop + +Music1_dec_octave: ; f45c3 (3d:45c3) + ld hl, wMusicOctave + add hl, bc + dec [hl] + jp Music1_PlayNextNote_pop + +Music1_tie: ; f45cb (3d:45cb) + ld hl, wMusicTie + add hl, bc + ld [hl], $80 + jp Music1_PlayNextNote_pop + +Music1_musicdc: ; f45d4 (3d:45d4) + pop hl + ld a, [hli] + push hl + push bc + inc c + ld e, $ee +.asm_f45db + dec c + jr z, .asm_f45e3 + rlca + rlc e + jr .asm_f45db +.asm_f45e3 + ld d, a + ld hl, wMusicDC + ld a, [hl] + and e + or d + ld [hl], a + pop bc + jp Music1_PlayNextNote_pop + +Music1_MainLoop: ; f45ef (3d:45ef) + pop de + push de + dec de + ld hl, wMusicMainLoop + add hl, bc + add hl, bc + ld [hl], e + inc hl + ld [hl], d + jp Music1_PlayNextNote_pop + +Music1_EndMainLoop: ; f45fd (3d:45fd) + pop hl + ld hl, wMusicMainLoop + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp Music1_PlayNextNote + +Music1_Loop: ; f4609 (3d:4609) + pop de + ld a, [de] + inc de + push af + call Music1_GetReturnAddress + ld [hl], e + inc hl + ld [hl], d + inc hl + pop af + ld [hl], a + inc hl + push de + call Music1_SetReturnAddress + jp Music1_PlayNextNote_pop + +Music1_EndLoop: ; f461e (3d:461e) + call Music1_GetReturnAddress + dec hl + ld a, [hl] + dec a + jr z, .asm_f4630 + ld [hld], a + ld d, [hl] + dec hl + ld e, [hl] + pop hl + ld h, d + ld l, e + jp Music1_PlayNextNote +.asm_f4630 + dec hl + dec hl + call Music1_SetReturnAddress + jp Music1_PlayNextNote_pop + +Music1_jp: ; f4638 (3d:4638) + pop hl + ld a, [hli] + ld h, [hl] + ld l, a + jp Music1_PlayNextNote + +Music1_call: ; f463f (3d:463f) + call Music1_GetReturnAddress + pop de + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, [de] + ld b, a + inc de + ld a, [de] + ld d, a + ld e, b + ld b, $0 + push de + call Music1_SetReturnAddress + jp Music1_PlayNextNote_pop + +Music1_ret: ; f4656 (3d:4656) + pop de + call Music1_GetReturnAddress + dec hl + ld a, [hld] + ld e, [hl] + ld d, a + inc de + inc de + push de + call Music1_SetReturnAddress + jp Music1_PlayNextNote_pop + +Music1_musice4: ; f4667 (3d:4667) + pop de + ld a, [de] + inc de + ld hl, wMusicE4 + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_duty: ; f4674 (3d:4674) + pop de + ld a, [de] + and $c0 + inc de + ld hl, wMusicDuty + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_volume: ; f4683 (3d:4683) + pop de + ld a, [de] + inc de + ld hl, wMusicVolume + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_wave: ; f4690 (3d:4690) + pop de + ld a, [de] + inc de + ld [wMusicWave], a + ld a, $1 + ld [wMusicWaveChange], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_musice8: ; f46a0 (3d:46a0) + pop de + ld a, [de] + inc de + ld hl, wMusicE8 + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_musice9: ; f46ad (3d:46ad) + pop de + ld a, [de] + inc de + ld hl, wMusicE9 + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_vibrato_type: ; f46ba (3d:46ba) + pop de + ld a, [de] + inc de + ld hl, wMusicVibratoType + add hl, bc + ld [hl], a + ld hl, wMusicVibratoType2 + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_vibrato_delay: ; f46cc (3d:46cc) + pop de + ld a, [de] + inc de + ld hl, wMusicVibratoDelay + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_musicec: ; f46d9 (3d:46d9) + pop de + ld a, [de] + inc de + ld hl, wMusicEC + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_musiced: ; f46e6 (3d:46e6) + pop de + ld a, [de] + inc de + ld hl, wMusicEC + add hl, bc + add [hl] + ld [hl], a + ld h, d + ld l, e + jp Music1_PlayNextNote + +Music1_end: ; f46f4 (3d:46f4) + ld hl, wMusicIsPlaying + add hl, bc + ld [hl], $0 + pop hl + ret + +; returns the address where the address to +; return to is stored for the current channel +Music1_GetReturnAddress: ; f46fc (3d:46fc) + ld hl, wMusicReturnAddress + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ret + +; puts the address in hl where the address to +; return to is stored for the currentchannel +Music1_SetReturnAddress: ; f4705 (3d:4705) + ld d, h + ld e, l + ld hl, wMusicReturnAddress + add hl, bc + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +Music1_PlayNextNote_pop ; f4710 (3d:4710) + pop hl + jp Music1_PlayNextNote + +Func_f4714: ; f4714 (3d:4714) + ld a, [$dd8c] + bit 0, a + jr nz, .asm_f4749 + ld a, [$ddb7] + cp $0 + jr z, .asm_f474a + ld d, $0 + ld hl, wMusicTie + ld a, [hl] + cp $80 + jr z, .asm_f4733 + ld a, [wMusicVolume] + ld [rNR12], a + ld d, $80 +.asm_f4733 + ld [hl], $2 + ld a, $8 + ld [rNR10], a + ld a, [wMusicDuty] + ld [rNR11], a + ld a, [$dda5] + ld [rNR13], a + ld a, [$dda6] + or d + ld [rNR14], a +.asm_f4749 + ret +.asm_f474a + ld hl, wMusicTie + ld [hl], $0 + ld hl, rNR12 + ld a, $8 + ld [hli], a + inc hl + swap a + ld [hl], a + ret + +Func_f475a: ; f475a (3d:475a) + ld a, [$dd8c] + bit 1, a + jr nz, .asm_f478b + ld a, [$ddb8] + cp $0 + jr z, .asm_f478c + ld d, $0 + ld hl, $dd92 + ld a, [hl] + cp $80 + jr z, .asm_f4779 + ld a, [$dde8] + ld [rNR22], a + ld d, $80 +.asm_f4779 + ld [hl], $2 + ld a, [$dd87] + ld [rNR21], a + ld a, [$dda7] + ld [rNR23], a + ld a, [$dda8] + or d + ld [rNR24], a +.asm_f478b + ret +.asm_f478c + ld hl, $dd92 + ld [hl], $0 + ld hl, rNR22 + ld a, $8 + ld [hli], a + inc hl + swap a + ld [hl], a + ret + +Func_f479c: ; f479c (3d:479c) + ld a, [$dd8c] + bit 2, a + jr nz, .asm_f47e0 + ld d, $0 + ld a, [wMusicWaveChange] + or a + jr z, .asm_f47b3 + xor a + ld [rNR30], a + call Func_f47ea + ld d, $80 +.asm_f47b3 + ld a, [$ddb9] + cp $0 + jr z, .asm_f47e1 + ld hl, $dd93 + ld a, [hl] + cp $80 + jr z, .asm_f47cc + ld a, [$dde9] + ld [rNR32], a + xor a + ld [rNR30], a + ld d, $80 +.asm_f47cc + ld [hl], $2 + xor a + ld [rNR31], a + ld a, [$dda9] + ld [rNR33], a + ld a, $80 + ld [rNR30], a + ld a, [$ddaa] + or d + ld [rNR34], a +.asm_f47e0 + ret +.asm_f47e1 + ld hl, wMusicTie + ld [hl], $0 + xor a + ld [rNR30], a + ret + +Func_f47ea: ; f479c (3d:47ea) + ld a, [wMusicWave] + add a + ld d, $0 + ld e, a + ld hl, Music1_WaveInstruments + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld b, d + ld de, $ff30 +.asm_f47fc + ld a, [hli] + ld [de], a + inc de + inc b + ld a, b + cp $10 + jr nz, .asm_f47fc + xor a + ld [wMusicWaveChange], a + ret + +Func_f480a: ; f480a (3d:480a) + ld a, [$dd8c] + bit 3, a + jr nz, .asm_f4829 + ld a, [$ddba] + cp $0 + jr z, asm_f482a + ld de, rNR41 + ld hl, $ddab + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a +.asm_f4829 + ret +asm_f482a + xor a + ld [$ddef], a + ld hl, rNR42 + ld a, $8 + ld [hli], a + inc hl + swap a + ld [hl], a + ret + +Func_f4839: ; f4839 (3d:4839) + ld a, [$dd8c] + bit 3, a + jr z, .asm_f4846 + xor a + ld [$ddef], a + jr .asm_f4859 +.asm_f4846 + ld hl, $dded + ld a, [hli] + ld d, [hl] + ld e, a + ld a, [de] + cp $ff + jr nz, .asm_f4853 + jr asm_f482a +.asm_f4853 + ld [rNR43], a + inc de + ld a, d + ld [hld], a + ld [hl], e +.asm_f4859 + ret + +Func_f485a: ; f485a (3d:485a) + push af + ld b, $0 + ld c, a + call Func_f4898 + pop af + call Func_f490b + ret + +Func_f4866: ; f4866 (3d:4866) + ld a, [$ddf1] + ld [rNR50], a + ld a, [$dd8c] + or a + ld hl, wMusicDC + ld a, [hli] + jr z, .asm_f4888 + ld a, [$dd8c] + and $f + ld d, a + swap d + or d + ld d, a + xor $ff + ld e, a + ld a, [hld] + and d + ld d, a + ld a, [hl] + and e + or d +.asm_f4888 + ld d, a + ld a, [$ddf0] + xor $ff + and $f + ld e, a + swap e + or e + and d + ld [rNR51], a + ret + +Func_f4898: ; f4898 (3d:4898) + ld hl, wMusicVibratoDelay + add hl, bc + ld a, [hl] + cp $0 + jr z, .asm_f4902 + ld hl, $dde3 + add hl, bc + cp [hl] + jr z, .asm_f48ab + inc [hl] + jr .asm_f4902 +.asm_f48ab + ld hl, wMusicVibratoType + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, Music1_VibratoTypes + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld hl, $dddb + add hl, bc + ld d, $0 + ld e, [hl] + inc [hl] + pop hl + add hl, de + ld a, [hli] + cp $80 + jr z, .asm_f48ee + ld hl, $dda5 + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + bit 7, a + jr nz, .asm_f48df + add e + ld e, a + ld a, $0 + adc d + and $7 + ld d, a + ret +.asm_f48df + xor $ff + inc a + push bc + ld c, a + ld a, e + sub c + ld e, a + ld a, d + sbc b + and $7 + ld d, a + pop bc + ret +.asm_f48ee + push hl + ld hl, $dddb + add hl, bc + ld [hl], $0 + pop hl + ld a, [hl] + cp $80 + jr z, .asm_f48ab + ld hl, wMusicVibratoType + add hl, bc + ld [hl], a + jr .asm_f48ab +.asm_f4902 + ld hl, $dda5 + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ret + +Func_f490b: ; f490b (3d:490b) + cp $0 + jr nz, .asm_f492c + ld a, [wMusicVibratoDelay] + cp $0 + jr z, .asm_f4966 + ld a, [$dd8c] + bit 0, a + jr nz, .asm_f4966 + ld a, e + ld [rNR13], a + ld a, [rNR11] + and $c0 + ld [rNR11], a + ld a, d + and $3f + ld [rNR14], a + ret +.asm_f492c + cp $1 + jr nz, .asm_f494b + ld a, [$dde0] + cp $0 + jr z, .asm_f4966 + ld a, [$dd8c] + bit 1, a + jr nz, .asm_f4966 + ld a, e + ld [rNR23], a + ld a, [rNR21] + and $c0 + ld [rNR21], a + ld a, d + ld [rNR24], a + ret +.asm_f494b + cp $2 + jr nz, .asm_f4966 + ld a, [$dde1] + cp $0 + jr z, .asm_f4966 + ld a, [$dd8c] + bit 2, a + jr nz, .asm_f4966 + ld a, e + ld [rNR33], a + xor a + ld [rNR31], a + ld a, d + ld [rNR34], a +.asm_f4966 + ret + +Func_f4967: ; f4967 (3d:4967) + ld hl, wMusicE4 + add hl, bc + ld a, [hl] + bit 7, a + jr nz, .asm_f4976 + add e + ld e, a + ld a, d + adc b + ld d, a + ret +.asm_f4976 + xor $ff + ld h, a + ld a, e + sub h + ld e, a + ld a, d + sbc b + ld d, a + ret + +Func_f4980: ; f4980 (3d:4980) + ld a, [$dd8c] + ld d, a + bit 0, d + jr nz, .asm_f4990 + ld a, $8 + ld [rNR12], a + swap a + ld [rNR14], a +.asm_f4990 + bit 1, d + jr nz, .asm_f499c + swap a + ld [rNR22], a + swap a + ld [rNR24], a +.asm_f499c + bit 3, d + jr nz, .asm_f49a8 + swap a + ld [rNR42], a + swap a + ld [rNR44], a +.asm_f49a8 + bit 2, d + jr nz, .asm_f49b0 + ld a, $0 + ld [rNR32], a +.asm_f49b0 + ret + +Func_f49b1: ; f49b1 (3d:49b1) + ld hl, wMusicIsPlaying + xor a + add [hl] + inc hl + add [hl] + inc hl + add [hl] + inc hl + add [hl] + or a + ret nz + ld a, $80 + ld [$dd80], a + ret + +Func_f49c4: ; f49c4 (3d:49c4) + di + call Func_f4980 + call Func_f49dc + call Func_f414b + ei + ret + +Func_f49d0: ; f49d0 (3d:49d0) + di + call Func_f4980 + call Func_f414b + call Func_f4b01 + ei + ret + +Func_f49dc: ; f49dc (3d:49dc) + ld a, [$dd80] + ld [$de55], a + ld a, [$dd81] + ld [$de56], a + ld a, [wMusicDC] + ld [$de57], a + ld hl, wMusicDuty + ld de, $de58 + ld a, $4 + call Music1_CopyData + ld a, [wMusicWave] + ld [$de5c], a + ld a, [wMusicWaveChange] + ld [$de5d], a + ld hl, wMusicIsPlaying + ld de, $de5e + ld a, $4 + call Music1_CopyData + ld hl, wMusicTie + ld de, $de62 + ld a, $4 + call Music1_CopyData + ld hl, $dd95 + ld de, $de66 + ld a, $8 + call Music1_CopyData + ld hl, wMusicMainLoop + ld de, $de6e + ld a, $8 + call Music1_CopyData + ld a, [$ddab] + ld [$de76], a + ld a, [$ddac] + ld [$de77], a + ld hl, wMusicOctave + ld de, $de78 + ld a, $4 + call Music1_CopyData + ld hl, $ddb3 + ld de, $de7c + ld a, $4 + call Music1_CopyData + ld hl, $ddb7 + ld de, $de80 + ld a, $4 + call Music1_CopyData + ld hl, $ddbb + ld de, $de84 + ld a, $4 + call Music1_CopyData + ld hl, wMusicE8 + ld de, $de88 + ld a, $4 + call Music1_CopyData + ld hl, $ddc3 + ld de, $de8c + ld a, $4 + call Music1_CopyData + ld hl, wMusicE9 + ld de, $de90 + ld a, $4 + call Music1_CopyData + ld hl, wMusicEC + ld de, $de94 + ld a, $4 + call Music1_CopyData + ld hl, wMusicSpeed + ld de, $de98 + ld a, $4 + call Music1_CopyData + ld hl, wMusicVibratoType2 + ld de, $de9c + ld a, $4 + call Music1_CopyData + ld hl, wMusicVibratoDelay + ld de, $dea0 + ld a, $4 + call Music1_CopyData + ld a, $0 + ld [$dddb], a + ld [$dddc], a + ld [$dddd], a + ld [$ddde], a + ld hl, wMusicVolume + ld de, $dea4 + ld a, $3 + call Music1_CopyData + ld hl, wMusicE4 + ld de, $dea7 + ld a, $3 + call Music1_CopyData + ld hl, $dded + ld de, $deaa + ld a, $2 + call Music1_CopyData + ld a, $0 + ld [$deac], a + ld hl, wMusicReturnAddress + ld de, $dead + ld a, $8 + call Music1_CopyData + ld hl, $ddfb + ld de, $deb5 + ld a, $30 + call Music1_CopyData + ret + +Func_f4b01: ; f4b01 (3d:4b01) + ld a, [$de55] + ld [$dd80], a + ld a, [$de56] + ld [$dd81], a + ld a, [$de57] + ld [wMusicDC], a + ld hl, $de58 + ld de, wMusicDuty + ld a, $4 + call Music1_CopyData + ld a, [$de5c] + ld [wMusicWave], a + ld a, $1 + ld [wMusicWaveChange], a + ld hl, $de5e + ld de, wMusicIsPlaying + ld a, $4 + call Music1_CopyData + ld hl, $de62 + ld de, wMusicTie + ld a, $4 + call Music1_CopyData + ld hl, $de66 + ld de, $dd95 + ld a, $8 + call Music1_CopyData + ld hl, $de6e + ld de, wMusicMainLoop + ld a, $8 + call Music1_CopyData + ld a, [$de76] + ld [$ddab], a + ld a, [$de77] + ld [$ddac], a + ld hl, $de78 + ld de, wMusicOctave + ld a, $4 + call Music1_CopyData + ld hl, $de7c + ld de, $ddb3 + ld a, $4 + call Music1_CopyData + ld hl, $de80 + ld de, $ddb7 + ld a, $4 + call Music1_CopyData + ld hl, $de84 + ld de, $ddbb + ld a, $4 + call Music1_CopyData + ld hl, $de88 + ld de, wMusicE8 + ld a, $4 + call Music1_CopyData + ld hl, $de8c + ld de, $ddc3 + ld a, $4 + call Music1_CopyData + ld hl, $de90 + ld de, wMusicE9 + ld a, $4 + call Music1_CopyData + ld hl, $de94 + ld de, wMusicEC + ld a, $4 + call Music1_CopyData + ld hl, $de98 + ld de, wMusicSpeed + ld a, $4 + call Music1_CopyData + ld hl, $de9c + ld de, wMusicVibratoType2 + ld a, $4 + call Music1_CopyData + ld hl, $dea0 + ld de, wMusicVibratoDelay + ld a, $4 + call Music1_CopyData + ld hl, $dea4 + ld de, wMusicVolume + ld a, $3 + call Music1_CopyData + ld hl, $dea7 + ld de, wMusicE4 + ld a, $3 + call Music1_CopyData + ld hl, $deaa + ld de, $dded + ld a, $2 + call Music1_CopyData + ld a, [$deac] + ld [$ddef], a + ld hl, $dead + ld de, wMusicReturnAddress + ld a, $8 + call Music1_CopyData + ld hl, $deb5 + ld de, $ddfb + ld a, $30 + call Music1_CopyData + ret + +; copies a bytes from hl to de +Music1_CopyData: ; f4c18 (3d:4c18) + ld c, a +.asm_f4c19 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_f4c19 + ret + +Unknown_f4c20: ; f4c20 (3d:4c20) +INCBIN "baserom.gbc",$f4c20,$f4c28 - $f4c20 + +Unknown_f4c28: ; f4c28 (3d:4c28) +INCBIN "baserom.gbc",$f4c28,$f4c30 - $f4c28 + +Unknown_f4c30: ; f4c30 (3d:4c30) +INCBIN "baserom.gbc",$f4c30,$f4cda - $f4c30 + +Music1_WaveInstruments: ; f4cda (3d:4cda) +INCLUDE "audio/wave_instruments.asm" + +Music1_NoiseInstruments: ; f4d34 (3d:4d34) +INCLUDE "audio/noise_instruments.asm" + +Music1_VibratoTypes: ; f4dde (3d:4dde) +INCLUDE "audio/vibrato_types.asm" + +Unknown_f4e85: ; f4e85 (3d:4e85) +INCBIN "baserom.gbc",$f4e85,$f4ee5 - $f4e85 + +INCLUDE "audio/music1_headers.asm" + +INCLUDE "audio/music/titlescreen.asm" +INCLUDE "audio/music/dueltheme1.asm" +INCLUDE "audio/music/dueltheme2.asm" +INCLUDE "audio/music/dueltheme3.asm" +INCLUDE "audio/music/pausemenu.asm" +INCLUDE "audio/music/deckmachine.asm" +INCLUDE "audio/music/cardpop.asm" +INCLUDE "audio/music/overworld.asm" +INCLUDE "audio/music/matchstart1.asm" +INCLUDE "audio/music/matchstart2.asm" +INCLUDE "audio/music/matchstart3.asm" +INCLUDE "audio/music/matchvictory.asm" +INCLUDE "audio/music/matchloss.asm" +INCLUDE "audio/music/darkdiddly.asm" +INCLUDE "audio/music/boosterpack.asm" +INCLUDE "audio/music/medal.asm" + +rept $138 +db $ff +endr diff --git a/audio/music1_headers.asm b/audio/music1_headers.asm new file mode 100755 index 0000000..3344365 --- /dev/null +++ b/audio/music1_headers.asm @@ -0,0 +1,281 @@ +NumberOfSongs1: ; 4fee5 (3d:4ee5) + db $1f + +SongBanks1: ; f4ee6 (3d:4ee6) + db BANK(Music_Stop) + db BANK(Music_TitleScreen) + db BANK(Music_DuelTheme1) + db BANK(Music_DuelTheme2) + db BANK(Music_DuelTheme3) + db BANK(Music_PauseMenu) + db BANK(Music_PCMainMenu) + db BANK(Music_DeckMachine) + db BANK(Music_CardPop) + db BANK(Music_Overworld) + db BANK(Music_PokemonDome) + db BANK(Music_ChallengeHall) + db BANK(Music_Club1) + db BANK(Music_Club2) + db BANK(Music_Club3) + db BANK(Music_Ronald) + db BANK(Music_Imakuni) + db BANK(Music_HallOfHonor) + db BANK(Music_Credits) + db BANK(Music_Unused13) + db BANK(Music_Unused14) + db BANK(Music_MatchStart1) + db BANK(Music_MatchStart2) + db BANK(Music_MatchStart3) + db BANK(Music_MatchVictory) + db BANK(Music_MatchLoss) + db BANK(Music_DarkDiddly) + db BANK(Music_Unused1b) + db BANK(Music_BoosterPack) + db BANK(Music_Medal) + db BANK(Music_Unused1e) + +SongHeaderPointers1: ; f4f05 (3d:4f05) + dw Music_Stop + dw Music_TitleScreen + dw Music_DuelTheme1 + dw Music_DuelTheme2 + dw Music_DuelTheme3 + dw Music_PauseMenu + dw $0000 + dw Music_DeckMachine + dw Music_CardPop + dw Music_Overworld + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Music_Unused13 + dw Music_Unused14 + dw Music_MatchStart1 + dw Music_MatchStart2 + dw Music_MatchStart3 + dw Music_MatchVictory + dw Music_MatchLoss + dw Music_DarkDiddly + dw Music_Unused1b + dw Music_BoosterPack + dw Music_Medal + dw Music_Unused1e + +Music_Stop: ; f4f43 (3d:4f43) + db %0000 + +Music_TitleScreen: ; f4f44 (3d:4f44) + db %1111 + dw Music_TitleScreen_Ch1 + dw Music_TitleScreen_Ch2 + dw Music_TitleScreen_Ch3 + dw Music_TitleScreen_Ch4 + +Music_DuelTheme1: ; f4f4d (3d:4f4d) + db %1111 + dw Music_DuelTheme1_Ch1 + dw Music_DuelTheme1_Ch2 + dw Music_DuelTheme1_Ch3 + dw Music_DuelTheme1_Ch4 + +Music_DuelTheme2: ; f4f56 (3d:4f56) + db %1111 + dw Music_DuelTheme2_Ch1 + dw Music_DuelTheme2_Ch2 + dw Music_DuelTheme2_Ch3 + dw Music_DuelTheme2_Ch4 + +Music_DuelTheme3: ; f4f5f (3d:4f5f) + db %1111 + dw Music_DuelTheme3_Ch1 + dw Music_DuelTheme3_Ch2 + dw Music_DuelTheme3_Ch3 + dw Music_DuelTheme3_Ch4 + +Music_PauseMenu: ; f4f68 (3d:4f68) + db %1111 + dw Music_PauseMenu_Ch1 + dw Music_PauseMenu_Ch2 + dw Music_PauseMenu_Ch3 + dw Music_PauseMenu_Ch4 + +;Music_PCMainMenu + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +Music_DeckMachine: ; f4f7a (3d:4f7a) + db %1111 + dw Music_DeckMachine_Ch1 + dw Music_DeckMachine_Ch2 + dw Music_DeckMachine_Ch3 + dw Music_DeckMachine_Ch4 + +Music_CardPop: ; f4f83 (3d:4f83) + db %1111 + dw Music_CardPop_Ch1 + dw Music_CardPop_Ch2 + dw Music_CardPop_Ch3 + dw Music_CardPop_Ch4 + +Music_Overworld: ; f4f8c (3d:4f8c) + db %1111 + dw Music_Overworld_Ch1 + dw Music_Overworld_Ch2 + dw Music_Overworld_Ch3 + dw Music_Overworld_Ch4 + +;Music_PokemonDome + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_ChallengeHall + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Club1 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Club2 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Club3 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Ronald + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Imakuni + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_HallOfHonor + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Credits + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +Music_Unused13: ; f4fe6 (3d:4fe6) + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +Music_Unused14: ; f4fef (3d:4fef) + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +Music_MatchStart1: ; f4ff8 (3d:4ff8) + db %0001 + dw Music_MatchStart1_Ch1 + dw $0000 + dw $0000 + dw $0000 + +Music_MatchStart2: ; f5001 (3d:5001) + db %0011 + dw Music_MatchStart2_Ch1 + dw Music_MatchStart2_Ch2 + dw $0000 + dw $0000 + +Music_MatchStart3: ; f500a (3d:500a) + db %0011 + dw Music_MatchStart3_Ch1 + dw Music_MatchStart3_Ch2 + dw $0000 + dw $0000 + +Music_MatchVictory: ; f5013 (3d:5013) + db %0111 + dw Music_MatchVictory_Ch1 + dw Music_MatchVictory_Ch2 + dw Music_MatchVictory_Ch3 + dw $0000 + +Music_MatchLoss: ; f501c (3d:501c) + db %0111 + dw Music_MatchLoss_Ch1 + dw Music_MatchLoss_Ch2 + dw Music_MatchLoss_Ch3 + dw $0000 + +Music_DarkDiddly: ; f5025 (3d:5025) + db %0111 + dw Music_DarkDiddly_Ch1 + dw Music_DarkDiddly_Ch2 + dw Music_DarkDiddly_Ch3 + dw $0000 + +Music_Unused1b: ; f502e (3d:502e) + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +Music_BoosterPack: ; f5037 (3d:5037) + db %0111 + dw Music_BoosterPack_Ch1 + dw Music_BoosterPack_Ch2 + dw Music_BoosterPack_Ch3 + dw $0000 + +Music_Medal: ; f5040 (3d:5040) + db %0111 + dw Music_Medal_Ch1 + dw Music_Medal_Ch2 + dw Music_Medal_Ch3 + dw $0000 + +Music_Unused1e: ; f5049 (3d:5049) + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 diff --git a/audio/music2.asm b/audio/music2.asm new file mode 100755 index 0000000..6ed8e63 --- /dev/null +++ b/audio/music2.asm @@ -0,0 +1,1885 @@ +Func_f8000: ; f8000 (3e:4000) + jp Func_f807d + +Func_f8003: ; f8003 (3e:4003) + jp Func_f80e9 + +Func_f8006: ; f8006 (3e:4006) + jp Func_f8021 + +Func_f8009: ; f8009 (3e:4009) + jp Func_f802d + +Func_f800c: ; f800c (3e:400c) + jp Func_f804e + +Func_f800f: ; f800f (3e:400f) + jp Func_f8052 + +Func_f8012: ; f8012 (3e:4012) + jp Func_f805c + +Func_f8015: ; f8015 (3e:4015) + jp Func_f8066 + +Func_f8018: ; f8018 (3e:4018) + jp Func_f806f + +Func_f801b: ; f801b (3e:401b) + jp Func_f89c4 + +Func_f801e: ; f801e (3e:401e) + jp Func_f89d0 + +Func_f8021: ; f8021 (3e:4021) + push hl + ld hl, NumberOfSongs2 + cp [hl] + jr nc, .asm_f802b + ld [$dd80], a +.asm_f802b + pop hl + ret + +Func_f802d: ; f802d (3e:402d) + push bc + push hl + ld b, $0 + ld c, a + or a + jr z, .asm_f8043 + ld hl, Unknown_f8e85 + add hl, bc + ld b, [hl] + ld a, [$dd83] + or a + jr z, .asm_f8043 + cp b + jr c, .asm_f804b +.asm_f8043 + ld a, b + ld [$dd83], a + ld a, c + ld [$dd82], a +.asm_f804b + pop hl + pop bc + ret + +Func_f804e: ; f804e (3e:404e) + ld [$ddf0], a + ret + +Func_f8052: ; f8052 (3e:4052) + ld a, [$dd80] + cp $80 + ld a, $1 + ret nz + xor a + ret + +Func_f805c: ; f805c (3e:405c) + ld a, [$dd82] + cp $80 + ld a, $1 + ret nz + xor a + ret + +Func_f8066: ; f8066 (3e:4066) + ld a, [$ddf2] + xor $1 + ld [$ddf2], a + ret + +Func_f806f: ; f806f (3e:406f) + push bc + push af + and $7 + ld b, a + swap b + or b + ld [$ddf1], a + pop af + pop bc + ret + +Func_f807d: ; f807d (3e:407d) + xor a + ld [rNR52], a + ld a, $80 + ld [rNR52], a + ld a, $77 + ld [rNR50], a + ld a, $ff + ld [rNR51], a + ld a, $3d + ld [$dd81], a + ld a, $80 + ld [$dd80], a + ld [$dd82], a + ld a, $77 + ld [$ddf1], a + xor a + ld [$dd8c], a + ld [$de53], a + ld [wMusicWaveChange], a + ld [$ddef], a + ld [$ddf0], a + ld [$ddf2], a + dec a + ld [wMusicDC], a + ld de, $0001 + ld bc, $0000 +.asm_f80bb + ld hl, wMusicIsPlaying + add hl, bc + ld [hl], d + ld hl, wMusicTie + add hl, bc + ld [hl], d + ld hl, $ddb3 + add hl, bc + ld [hl], d + ld hl, wMusicEC + add hl, bc + ld [hl], d + ld hl, wMusicE8 + add hl, bc + ld [hl], d + inc c + ld a, c + cp $4 + jr nz, .asm_f80bb + ld hl, Unknown_f8c20 + ld bc, wMusicReturnAddress + ld d, $8 +.asm_f80e2 + ld a, [hli] + ld [bc], a + inc bc + dec d + jr nz, .asm_f80e2 + ret + +Func_f80e9: ; f80e9 (3e:40e9) + call Func_f82a4 + call Func_f811c + ld hl, Func_fc003 + call Bankswitch3dTo3f + ld a, [$dd81] + ld [hBankROM], a + ld [MBC3RomBank], a + ld a, [$ddf2] + cp $0 + jr z, .asm_f8109 + call Func_f8980 + jr .asm_f8115 +.asm_f8109 + call Func_f82a5 + call Func_f830a + call Func_f836f + call Func_f83ce +.asm_f8115 + call Func_f8866 + call Func_f89b1 + ret + +Func_f811c: ; f811c (3e:411c) + ld a, [$dd80] + rla + jr c, .asm_f8133 + call Func_f814b + ld a, [$dd80] + call Music2_PlaySong + ld a, [$dd80] + or $80 + ld [$dd80], a +.asm_f8133 + ld a, [$dd82] + rla + jr c, .asm_f814a + ld a, [$dd82] + ld hl, Func_fc000 + call Bankswitch3dTo3f + ld a, [$dd82] + or $80 + ld [$dd82], a +.asm_f814a + ret + +Func_f814b: ; f814b (3e:414b) + ld a, [$dd8c] + ld d, a + xor a + ld [wMusicIsPlaying], a + bit 0, d + jr nz, .asm_f815f + ld a, $8 + ld [rNR12], a + swap a + ld [rNR14], a +.asm_f815f + xor a + ld [$dd8e], a + bit 1, d + jr nz, .asm_f816f + ld a, $8 + ld [rNR22], a + swap a + ld [rNR24], a +.asm_f816f + xor a + ld [$dd90], a + bit 3, d + jr nz, .asm_f817f + ld a, $8 + ld [rNR42], a + swap a + ld [rNR44], a +.asm_f817f + xor a + ld [$dd8f], a + bit 2, d + jr nz, .asm_f818b + ld a, $0 + ld [rNR32], a +.asm_f818b + ret + +; plays the song given by the id in a +Music2_PlaySong: ; f818c (3e:418c) + push af + ld c, a + ld b, $0 + ld hl, SongBanks2 + add hl, bc + ld a, [hl] + ld [$dd81], a + ld [hBankROM], a + ld [MBC3RomBank], a + pop af + add a + ld c, a + ld b, $0 + ld hl, SongHeaderPointers2 + add hl, bc + ld e, [hl] + inc hl + ld h, [hl] + ld l, e + ld e, [hl] + inc hl + ld b, h + ld c, l + rr e + jr nc, .asm_f81eb + ld a, [bc] + inc bc + ld [$dd95], a + ld [wMusicMainLoop], a + ld a, [bc] + inc bc + ld [$dd96], a + ld [$dd9e], a + ld a, $1 + ld [$ddbb], a + ld [wMusicIsPlaying], a + xor a + ld [wMusicTie], a + ld [wMusicE4], a + ld [wMusicE8], a + ld [wMusicVibratoDelay], a + ld [wMusicEC], a + ld a, [Unknown_f8c20] + ld [wMusicReturnAddress], a + ld a, [Unknown_f8c20 + 1] + ld [$ddf4], a + ld a, $8 + ld [wMusicE9], a +.asm_f81eb + rr e + jr nc, .asm_f8228 + ld a, [bc] + inc bc + ld [$dd97], a + ld [$dd9f], a + ld a, [bc] + inc bc + ld [$dd98], a + ld [$dda0], a + ld a, $1 + ld [$ddbc], a + ld [$dd8e], a + xor a + ld [$dd92], a + ld [$ddeb], a + ld [$ddc0], a + ld [$dde0], a + ld [$ddcc], a + ld a, [Unknown_f8c20 + 2] + ld [$ddf5], a + ld a, [Unknown_f8c20 + 3] + ld [$ddf6], a + ld a, $8 + ld [$ddc8], a +.asm_f8228 + rr e + jr nc, .asm_f8265 + ld a, [bc] + inc bc + ld [$dd99], a + ld [$dda1], a + ld a, [bc] + inc bc + ld [$dd9a], a + ld [$dda2], a + ld a, $1 + ld [$ddbd], a + ld [$dd8f], a + xor a + ld [$dd93], a + ld [$ddec], a + ld [$ddc1], a + ld [$dde1], a + ld [$ddcd], a + ld a, [Unknown_f8c20 + 4] + ld [$ddf7], a + ld a, [Unknown_f8c20 + 5] + ld [$ddf8], a + ld a, $40 + ld [$ddc9], a +.asm_f8265 + rr e + jr nc, .asm_f829f + ld a, [bc] + inc bc + ld [$dd9b], a + ld [$dda3], a + ld a, [bc] + inc bc + ld [$dd9c], a + ld [$dda4], a + ld a, $1 + ld [$ddbe], a + ld [$dd90], a + xor a + ld [$dd94], a + ld [$ddc2], a + ld [$dde2], a + ld [$ddce], a + ld a, [Unknown_f8c20 + 6] + ld [$ddf9], a + ld a, [Unknown_f8c20 + 7] + ld [$ddfa], a + ld a, $40 + ld [$ddca], a +.asm_f829f + xor a + ld [$ddf2], a + ret + +Func_f82a4: ; f82a4 (3e:42a4) + ret + +Func_f82a5: ; f82a5 (3e:42a5) + ld a, [wMusicIsPlaying] + or a + jr z, .asm_f82fa + ld a, [$ddb7] + cp $0 + jr z, .asm_f82d4 + ld a, [$ddc3] + dec a + ld [$ddc3], a + jr nz, .asm_f82d4 + ld a, [$ddbb] + cp $1 + jr z, .asm_f82d4 + ld a, [$dd8c] + bit 0, a + jr nz, .asm_f82d4 + ld hl, rNR12 + ld a, [wMusicE9] + ld [hli], a + inc hl + ld a, $80 + ld [hl], a +.asm_f82d4 + ld a, [$ddbb] + dec a + ld [$ddbb], a + jr nz, .asm_f82f4 + ld a, [$dd96] + ld h, a + ld a, [$dd95] + ld l, a + ld bc, $0000 + call Music2_PlayNextNote + ld a, [wMusicIsPlaying] + or a + jr z, .asm_f82fa + call Func_f8714 +.asm_f82f4 + ld a, $0 + call Func_f885a + ret +.asm_f82fa + ld a, [$dd8c] + bit 0, a + jr nz, .asm_f8309 + ld a, $8 + ld [rNR12], a + swap a + ld [rNR14], a +.asm_f8309 + ret + +Func_f830a: ; f830a (3e:430a) + ld a, [$dd8e] + or a + jr z, .asm_f835f + ld a, [$ddb8] + cp $0 + jr z, .asm_f8339 + ld a, [$ddc4] + dec a + ld [$ddc4], a + jr nz, .asm_f8339 + ld a, [$ddbc] + cp $1 + jr z, .asm_f8339 + ld a, [$dd8c] + bit 1, a + jr nz, .asm_f8339 + ld hl, rNR22 + ld a, [$ddc8] + ld [hli], a + inc hl + ld a, $80 + ld [hl], a +.asm_f8339 + ld a, [$ddbc] + dec a + ld [$ddbc], a + jr nz, .asm_f8359 + ld a, [$dd98] + ld h, a + ld a, [$dd97] + ld l, a + ld bc, $0001 + call Music2_PlayNextNote + ld a, [$dd8e] + or a + jr z, .asm_f835f + call Func_f875a +.asm_f8359 + ld a, $1 + call Func_f885a + ret +.asm_f835f + ld a, [$dd8c] + bit 1, a + jr nz, .asm_f836e + ld a, $8 + ld [rNR22], a + swap a + ld [rNR24], a +.asm_f836e + ret + +Func_f836f: ; f836f (3e:436f) + ld a, [$dd8f] + or a + jr z, .asm_f83be + ld a, [$ddb9] + cp $0 + jr z, .asm_f8398 + ld a, [$ddc5] + dec a + ld [$ddc5], a + jr nz, .asm_f8398 + ld a, [$dd8c] + bit 2, a + jr nz, .asm_f8398 + ld a, [$ddbd] + cp $1 + jr z, .asm_f8398 + ld a, [$ddc9] + ld [rNR32], a +.asm_f8398 + ld a, [$ddbd] + dec a + ld [$ddbd], a + jr nz, .asm_f83b8 + ld a, [$dd9a] + ld h, a + ld a, [$dd99] + ld l, a + ld bc, $0002 + call Music2_PlayNextNote + ld a, [$dd8f] + or a + jr z, .asm_f83be + call Func_f879c +.asm_f83b8 + ld a, $2 + call Func_f885a + ret +.asm_f83be + ld a, [$dd8c] + bit 2, a + jr nz, .asm_f83cd + ld a, $0 + ld [rNR32], a + ld a, $80 + ld [rNR34], a +.asm_f83cd + ret + +Func_f83ce: ; f83ce (3e:43ce) + ld a, [$dd90] + or a + jr z, .asm_f8400 + ld a, [$ddbe] + dec a + ld [$ddbe], a + jr nz, .asm_f83f6 + ld a, [$dd9c] + ld h, a + ld a, [$dd9b] + ld l, a + ld bc, $0003 + call Music2_PlayNextNote + ld a, [$dd90] + or a + jr z, .asm_f8400 + call Func_f880a + jr .asm_f8413 +.asm_f83f6 + ld a, [$ddef] + or a + jr z, .asm_f8413 + call Func_f8839 + ret +.asm_f8400 + ld a, [$dd8c] + bit 3, a + jr nz, .asm_f8413 + xor a + ld [$ddef], a + ld a, $8 + ld [rNR42], a + swap a + ld [rNR44], a +.asm_f8413 + ret + +Music2_PlayNextNote: ; f8414 (3e:4414) + ld a, [hli] + push hl + push af + cp $d0 + jr c, Music2_note + sub $d0 + add a + ld e, a + ld d, $0 + ld hl, Music2_CommandTable + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld h, d + ld l, e + pop af + jp [hl] + +Music2_CommandTable: ; f842c (3e:442c) + dw Music2_speed + dw Music2_octave + dw Music2_octave + dw Music2_octave + dw Music2_octave + dw Music2_octave + dw Music2_octave + dw Music2_inc_octave + dw Music2_dec_octave + dw Music2_tie + dw Music2_end + dw Music2_end + dw Music2_musicdc + dw Music2_MainLoop + dw Music2_EndMainLoop + dw Music2_Loop + dw Music2_EndLoop + dw Music2_jp + dw Music2_call + dw Music2_ret + dw Music2_musice4 + dw Music2_duty + dw Music2_volume + dw Music2_wave + dw Music2_musice8 + dw Music2_musice9 + dw Music2_vibrato_type + dw Music2_vibrato_delay + dw Music2_musicec + dw Music2_musiced + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + dw Music2_end + +Music2_note: ; f448c (3d:448c) + push af + ld a, [hl] + ld e, a + ld hl, wMusicTie + add hl, bc + ld a, [hl] + cp $80 + jr z, .asm_f84b0 + ld [hl], $1 + xor a + ld hl, $dddb + add hl, bc + ld [hl], a + ld hl, $dde3 + add hl, bc + ld [hl], a + inc [hl] + ld hl, wMusicVibratoType2 + add hl, bc + ld a, [hl] + ld hl, wMusicVibratoType + add hl, bc + ld [hl], a +.asm_f84b0 + pop af + push de + ld hl, wMusicSpeed + add hl, bc + ld d, [hl] + and $f + inc a + cp d + jr nc, .asm_f84c0 + ld e, a + ld a, d + ld d, e +.asm_f84c0 + ld e, a +.asm_f84c1 + dec d + jr z, .asm_f84c7 + add e + jr .asm_f84c1 +.asm_f84c7 + ld hl, $ddbb + add hl, bc + ld [hl], a + pop de + ld d, a + ld a, e + cp $d9 + ld a, d + jr z, .asm_f84fb + ld e, a + ld hl, wMusicE8 + add hl, bc + ld a, [hl] + cp $8 + ld d, a + ld a, e + jr z, .asm_f84fb + push hl + push bc + ld b, $0 + ld c, a + ld hl, $0000 +.asm_f84e8 + add hl, bc + dec d + jr nz, .asm_f84e8 + srl h + rr l + srl h + rr l + srl h + rr l + ld a, l + pop bc + pop hl +.asm_f84fb + ld hl, $ddc3 + add hl, bc + ld [hl], a + pop af + and $f0 + ld hl, $ddb7 + add hl, bc + ld [hl], a + or a + jr nz, .asm_f850e + jp .asm_f858e +.asm_f850e + swap a + dec a + ld h, a + ld a, $3 + cp c + ld a, h + jr z, .asm_f851a + jr .asm_f8564 +.asm_f851a + push af + ld hl, wMusicOctave + add hl, bc + ld a, [hl] + ld d, a + sla a + add d + sla a + sla a + sla a + ld e, a + pop af + ld hl, Music2_NoiseInstruments + add a + ld d, c + ld c, a + add hl, bc + ld c, e + add hl, bc + ld c, d + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + ld d, a + ld a, [wMusicDC] + and $77 + or d + ld [wMusicDC], a + ld de, $ddab + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld b, [hl] + inc hl + ld a, [hli] + ld [de], a + inc de + ld a, b + ld [de], a + ld b, $0 + ld a, l + ld d, h + ld hl, $dded + ld [hli], a + ld [hl], d + ld a, $1 + ld [$ddef], a + jr .asm_f858e +.asm_f8564 + ld hl, $dda5 + add hl, bc + add hl, bc + push hl + ld hl, wMusicOctave + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, Unknown_f8c28 + add hl, de + add a + ld e, [hl] + add e + ld hl, wMusicEC + add hl, bc + ld e, [hl] + add e + add e + ld e, a + ld hl, Unknown_f8c30 + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + call Func_f8967 + pop hl + ld a, e + ld [hli], a + ld [hl], d +.asm_f858e + pop de + ld hl, $dd95 + add hl, bc + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +Music2_speed: ; f8598 (3e:4598) + pop hl + ld a, [hli] + push hl + ld hl, wMusicSpeed + add hl, bc + ld [hl], a + jp Music2_PlayNextNote_pop + +Music2_octave: ; f85a3 (3e:45a3) + and $7 + dec a + ld hl, wMusicOctave + add hl, bc + push af + ld a, c + cp $2 + jr nz, .asm_f85b6 + pop af + inc a + ld [hl], a + jp Music2_PlayNextNote_pop +.asm_f85b6 + pop af + ld [hl], a + jp Music2_PlayNextNote_pop + +Music2_inc_octave: ; f85bb (3e:45bb) + ld hl, wMusicOctave + add hl, bc + inc [hl] + jp Music2_PlayNextNote_pop + +Music2_dec_octave: ; f85c3 (3e:45c3) + ld hl, wMusicOctave + add hl, bc + dec [hl] + jp Music2_PlayNextNote_pop + +Music2_tie: ; f85cb (3e:45cb) + ld hl, wMusicTie + add hl, bc + ld [hl], $80 + jp Music2_PlayNextNote_pop + +Music2_musicdc: ; f85d4 (3e:45d4) + pop hl + ld a, [hli] + push hl + push bc + inc c + ld e, $ee +.asm_f85db + dec c + jr z, .asm_f85e3 + rlca + rlc e + jr .asm_f85db +.asm_f85e3 + ld d, a + ld hl, wMusicDC + ld a, [hl] + and e + or d + ld [hl], a + pop bc + jp Music2_PlayNextNote_pop + +Music2_MainLoop: ; f85ef (3e:45ef) + pop de + push de + dec de + ld hl, wMusicMainLoop + add hl, bc + add hl, bc + ld [hl], e + inc hl + ld [hl], d + jp Music2_PlayNextNote_pop + +Music2_EndMainLoop: ; f85fd (3e:45fd) + pop hl + ld hl, wMusicMainLoop + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp Music2_PlayNextNote + +Music2_Loop: ; f8609 (3e:4609) + pop de + ld a, [de] + inc de + push af + call Music2_GetReturnAddress + ld [hl], e + inc hl + ld [hl], d + inc hl + pop af + ld [hl], a + inc hl + push de + call Music2_SetReturnAddress + jp Music2_PlayNextNote_pop + +Music2_EndLoop: ; f861e (3e:461e) + call Music2_GetReturnAddress + dec hl + ld a, [hl] + dec a + jr z, .asm_f8630 + ld [hld], a + ld d, [hl] + dec hl + ld e, [hl] + pop hl + ld h, d + ld l, e + jp Music2_PlayNextNote +.asm_f8630 + dec hl + dec hl + call Music2_SetReturnAddress + jp Music2_PlayNextNote_pop + +Music2_jp: ; f8638 (3e:4638) + pop hl + ld a, [hli] + ld h, [hl] + ld l, a + jp Music2_PlayNextNote + +Music2_call: ; f863f (3e:463f) + call Music2_GetReturnAddress + pop de + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, [de] + ld b, a + inc de + ld a, [de] + ld d, a + ld e, b + ld b, $0 + push de + call Music2_SetReturnAddress + jp Music2_PlayNextNote_pop + +Music2_ret: ; f8656 (3e:4656) + pop de + call Music2_GetReturnAddress + dec hl + ld a, [hld] + ld e, [hl] + ld d, a + inc de + inc de + push de + call Music2_SetReturnAddress + jp Music2_PlayNextNote_pop + +Music2_musice4: ; f8667 (3e:4667) + pop de + ld a, [de] + inc de + ld hl, wMusicE4 + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_duty: ; f8674 (3e:4674) + pop de + ld a, [de] + and $c0 + inc de + ld hl, wMusicDuty + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_volume: ; f8683 (3e:4683) + pop de + ld a, [de] + inc de + ld hl, wMusicVolume + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_wave: ; f8690 (3e:4690) + pop de + ld a, [de] + inc de + ld [wMusicWave], a + ld a, $1 + ld [wMusicWaveChange], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_musice8: ; f86a0 (3e:46a0) + pop de + ld a, [de] + inc de + ld hl, wMusicE8 + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_musice9: ; f86ad (3e:46ad) + pop de + ld a, [de] + inc de + ld hl, wMusicE9 + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_vibrato_type: ; f86ba (3e:46ba) + pop de + ld a, [de] + inc de + ld hl, wMusicVibratoType + add hl, bc + ld [hl], a + ld hl, wMusicVibratoType2 + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_vibrato_delay: ; f86cc (3e:46cc) + pop de + ld a, [de] + inc de + ld hl, wMusicVibratoDelay + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_musicec: ; f86d9 (3e:46d9) + pop de + ld a, [de] + inc de + ld hl, wMusicEC + add hl, bc + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_musiced: ; f86e6 (3e:46e6) + pop de + ld a, [de] + inc de + ld hl, wMusicEC + add hl, bc + add [hl] + ld [hl], a + ld h, d + ld l, e + jp Music2_PlayNextNote + +Music2_end: ; f86f4 (3e:46f4) + ld hl, wMusicIsPlaying + add hl, bc + ld [hl], $0 + pop hl + ret + +; returns the address where the address to +; return to is stored for the current channel +Music2_GetReturnAddress: ; f86fc (3e:46fc) + ld hl, wMusicReturnAddress + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ret + +; puts the address in hl where the address to +; return to is stored for the currentchannel +Music2_SetReturnAddress: ; f8705 (3e:4705) + ld d, h + ld e, l + ld hl, wMusicReturnAddress + add hl, bc + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +Music2_PlayNextNote_pop: ; f8710 (3e:4710) + pop hl + jp Music2_PlayNextNote + +Func_f8714: ; f8714 (3e:4714) + ld a, [$dd8c] + bit 0, a + jr nz, .asm_f8749 + ld a, [$ddb7] + cp $0 + jr z, .asm_f874a + ld d, $0 + ld hl, wMusicTie + ld a, [hl] + cp $80 + jr z, .asm_f8733 + ld a, [wMusicVolume] + ld [rNR12], a + ld d, $80 +.asm_f8733 + ld [hl], $2 + ld a, $8 + ld [rNR10], a + ld a, [wMusicDuty] + ld [rNR11], a + ld a, [$dda5] + ld [rNR13], a + ld a, [$dda6] + or d + ld [rNR14], a +.asm_f8749 + ret +.asm_f874a + ld hl, wMusicTie + ld [hl], $0 + ld hl, rNR12 + ld a, $8 + ld [hli], a + inc hl + swap a + ld [hl], a + ret + +Func_f875a: ; f875a (3e:475a) + ld a, [$dd8c] + bit 1, a + jr nz, .asm_f878b + ld a, [$ddb8] + cp $0 + jr z, .asm_f878c + ld d, $0 + ld hl, $dd92 + ld a, [hl] + cp $80 + jr z, .asm_f8779 + ld a, [$dde8] + ld [rNR22], a + ld d, $80 +.asm_f8779 + ld [hl], $2 + ld a, [$dd87] + ld [rNR21], a + ld a, [$dda7] + ld [rNR23], a + ld a, [$dda8] + or d + ld [rNR24], a +.asm_f878b + ret +.asm_f878c + ld hl, $dd92 + ld [hl], $0 + ld hl, rNR22 + ld a, $8 + ld [hli], a + inc hl + swap a + ld [hl], a + ret + +Func_f879c: ; f879c (3e:479c) + ld a, [$dd8c] + bit 2, a + jr nz, .asm_f87e0 + ld d, $0 + ld a, [wMusicWaveChange] + or a + jr z, .asm_f87b3 + xor a + ld [rNR30], a + call Func_f87ea + ld d, $80 +.asm_f87b3 + ld a, [$ddb9] + cp $0 + jr z, .asm_f87e1 + ld hl, $dd93 + ld a, [hl] + cp $80 + jr z, .asm_f87cc + ld a, [$dde9] + ld [rNR32], a + xor a + ld [rNR30], a + ld d, $80 +.asm_f87cc + ld [hl], $2 + xor a + ld [rNR31], a + ld a, [$dda9] + ld [rNR33], a + ld a, $80 + ld [rNR30], a + ld a, [$ddaa] + or d + ld [rNR34], a +.asm_f87e0 + ret +.asm_f87e1 + ld hl, wMusicTie + ld [hl], $0 + xor a + ld [rNR30], a + ret + +Func_f87ea: ; f879c (3e:47ea) + ld a, [wMusicWave] + add a + ld d, $0 + ld e, a + ld hl, Music2_WaveInstruments + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld b, d + ld de, $ff30 +.asm_f87fc + ld a, [hli] + ld [de], a + inc de + inc b + ld a, b + cp $10 + jr nz, .asm_f87fc + xor a + ld [wMusicWaveChange], a + ret + +Func_f880a: ; f880a (3e:480a) + ld a, [$dd8c] + bit 3, a + jr nz, .asm_f8829 + ld a, [$ddba] + cp $0 + jr z, asm_f882a + ld de, rNR41 + ld hl, $ddab + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a +.asm_f8829 + ret +asm_f882a + xor a + ld [$ddef], a + ld hl, rNR42 + ld a, $8 + ld [hli], a + inc hl + swap a + ld [hl], a + ret + +Func_f8839: ; f8839 (3e:4839) + ld a, [$dd8c] + bit 3, a + jr z, .asm_f8846 + xor a + ld [$ddef], a + jr .asm_f8859 +.asm_f8846 + ld hl, $dded + ld a, [hli] + ld d, [hl] + ld e, a + ld a, [de] + cp $ff + jr nz, .asm_f8853 + jr asm_f882a +.asm_f8853 + ld [rNR43], a + inc de + ld a, d + ld [hld], a + ld [hl], e +.asm_f8859 + ret + +Func_f885a: ; f885a (3e:485a) + push af + ld b, $0 + ld c, a + call Func_f8898 + pop af + call Func_f890b + ret + +Func_f8866: ; f8866 (3e:4866) + ld a, [$ddf1] + ld [rNR50], a + ld a, [$dd8c] + or a + ld hl, wMusicDC + ld a, [hli] + jr z, .asm_f8888 + ld a, [$dd8c] + and $f + ld d, a + swap d + or d + ld d, a + xor $ff + ld e, a + ld a, [hld] + and d + ld d, a + ld a, [hl] + and e + or d +.asm_f8888 + ld d, a + ld a, [$ddf0] + xor $ff + and $f + ld e, a + swap e + or e + and d + ld [rNR51], a + ret + +Func_f8898: ; f8898 (3e:4898) + ld hl, wMusicVibratoDelay + add hl, bc + ld a, [hl] + cp $0 + jr z, .asm_f8902 + ld hl, $dde3 + add hl, bc + cp [hl] + jr z, .asm_f88ab + inc [hl] + jr .asm_f8902 +.asm_f88ab + ld hl, wMusicVibratoType + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, Music2_VibratoTypes + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld hl, $dddb + add hl, bc + ld d, $0 + ld e, [hl] + inc [hl] + pop hl + add hl, de + ld a, [hli] + cp $80 + jr z, .asm_f88ee + ld hl, $dda5 + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + bit 7, a + jr nz, .asm_f88df + add e + ld e, a + ld a, $0 + adc d + and $7 + ld d, a + ret +.asm_f88df + xor $ff + inc a + push bc + ld c, a + ld a, e + sub c + ld e, a + ld a, d + sbc b + and $7 + ld d, a + pop bc + ret +.asm_f88ee + push hl + ld hl, $dddb + add hl, bc + ld [hl], $0 + pop hl + ld a, [hl] + cp $80 + jr z, .asm_f88ab + ld hl, wMusicVibratoType + add hl, bc + ld [hl], a + jr .asm_f88ab +.asm_f8902 + ld hl, $dda5 + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ret + +Func_f890b: ; f890b (3e:490b) + cp $0 + jr nz, .asm_f892c + ld a, [wMusicVibratoDelay] + cp $0 + jr z, .asm_f8966 + ld a, [$dd8c] + bit 0, a + jr nz, .asm_f8966 + ld a, e + ld [rNR13], a + ld a, [rNR11] + and $c0 + ld [rNR11], a + ld a, d + and $3f + ld [rNR14], a + ret +.asm_f892c + cp $1 + jr nz, .asm_f894b + ld a, [$dde0] + cp $0 + jr z, .asm_f8966 + ld a, [$dd8c] + bit 1, a + jr nz, .asm_f8966 + ld a, e + ld [rNR23], a + ld a, [rNR21] + and $c0 + ld [rNR21], a + ld a, d + ld [rNR24], a + ret +.asm_f894b + cp $2 + jr nz, .asm_f8966 + ld a, [$dde1] + cp $0 + jr z, .asm_f8966 + ld a, [$dd8c] + bit 2, a + jr nz, .asm_f8966 + ld a, e + ld [rNR33], a + xor a + ld [rNR31], a + ld a, d + ld [rNR34], a +.asm_f8966 + ret + +Func_f8967: ; f8967 (3e:4967) + ld hl, wMusicE4 + add hl, bc + ld a, [hl] + bit 7, a + jr nz, .asm_f8976 + add e + ld e, a + ld a, d + adc b + ld d, a + ret +.asm_f8976 + xor $ff + ld h, a + ld a, e + sub h + ld e, a + ld a, d + sbc b + ld d, a + ret + +Func_f8980: ; f8980 (3e:4980) + ld a, [$dd8c] + ld d, a + bit 0, d + jr nz, .asm_f8990 + ld a, $8 + ld [rNR12], a + swap a + ld [rNR14], a +.asm_f8990 + bit 1, d + jr nz, .asm_f899c + swap a + ld [rNR22], a + swap a + ld [rNR24], a +.asm_f899c + bit 3, d + jr nz, .asm_f89a8 + swap a + ld [rNR42], a + swap a + ld [rNR44], a +.asm_f89a8 + bit 2, d + jr nz, .asm_f89b0 + ld a, $0 + ld [rNR32], a +.asm_f89b0 + ret + +Func_f89b1: ; f89b1 (3e:49b1) + ld hl, wMusicIsPlaying + xor a + add [hl] + inc hl + add [hl] + inc hl + add [hl] + inc hl + add [hl] + or a + ret nz + ld a, $80 + ld [$dd80], a + ret + +Func_f89c4: ; f89c4 (3e:49c4) + di + call Func_f8980 + call Func_f89dc + call Func_f814b + ei + ret + +Func_f89d0: ; f89d0 (3e:49d0) + di + call Func_f8980 + call Func_f814b + call Func_f8b01 + ei + ret + +Func_f89dc: ; f89dc (3e:49dc) + ld a, [$dd80] + ld [$de55], a + ld a, [$dd81] + ld [$de56], a + ld a, [wMusicDC] + ld [$de57], a + ld hl, wMusicDuty + ld de, $de58 + ld a, $4 + call Music2_CopyData + ld a, [wMusicWave] + ld [$de5c], a + ld a, [wMusicWaveChange] + ld [$de5d], a + ld hl, wMusicIsPlaying + ld de, $de5e + ld a, $4 + call Music2_CopyData + ld hl, wMusicTie + ld de, $de62 + ld a, $4 + call Music2_CopyData + ld hl, $dd95 + ld de, $de66 + ld a, $8 + call Music2_CopyData + ld hl, wMusicMainLoop + ld de, $de6e + ld a, $8 + call Music2_CopyData + ld a, [$ddab] + ld [$de76], a + ld a, [$ddac] + ld [$de77], a + ld hl, wMusicOctave + ld de, $de78 + ld a, $4 + call Music2_CopyData + ld hl, $ddb3 + ld de, $de7c + ld a, $4 + call Music2_CopyData + ld hl, $ddb7 + ld de, $de80 + ld a, $4 + call Music2_CopyData + ld hl, $ddbb + ld de, $de84 + ld a, $4 + call Music2_CopyData + ld hl, wMusicE8 + ld de, $de88 + ld a, $4 + call Music2_CopyData + ld hl, $ddc3 + ld de, $de8c + ld a, $4 + call Music2_CopyData + ld hl, wMusicE9 + ld de, $de90 + ld a, $4 + call Music2_CopyData + ld hl, wMusicEC + ld de, $de94 + ld a, $4 + call Music2_CopyData + ld hl, wMusicSpeed + ld de, $de98 + ld a, $4 + call Music2_CopyData + ld hl, wMusicVibratoType2 + ld de, $de9c + ld a, $4 + call Music2_CopyData + ld hl, wMusicVibratoDelay + ld de, $dea0 + ld a, $4 + call Music2_CopyData + ld a, $0 + ld [$dddb], a + ld [$dddc], a + ld [$dddd], a + ld [$ddde], a + ld hl, wMusicVolume + ld de, $dea4 + ld a, $3 + call Music2_CopyData + ld hl, wMusicE4 + ld de, $dea7 + ld a, $3 + call Music2_CopyData + ld hl, $dded + ld de, $deaa + ld a, $2 + call Music2_CopyData + ld a, $0 + ld [$deac], a + ld hl, wMusicReturnAddress + ld de, $dead + ld a, $8 + call Music2_CopyData + ld hl, $ddfb + ld de, $deb5 + ld a, $30 + call Music2_CopyData + ret + +Func_f8b01: ; f8b01 (3e:4b01) + ld a, [$de55] + ld [$dd80], a + ld a, [$de56] + ld [$dd81], a + ld a, [$de57] + ld [wMusicDC], a + ld hl, $de58 + ld de, wMusicDuty + ld a, $4 + call Music2_CopyData + ld a, [$de5c] + ld [wMusicWave], a + ld a, $1 + ld [wMusicWaveChange], a + ld hl, $de5e + ld de, wMusicIsPlaying + ld a, $4 + call Music2_CopyData + ld hl, $de62 + ld de, wMusicTie + ld a, $4 + call Music2_CopyData + ld hl, $de66 + ld de, $dd95 + ld a, $8 + call Music2_CopyData + ld hl, $de6e + ld de, wMusicMainLoop + ld a, $8 + call Music2_CopyData + ld a, [$de76] + ld [$ddab], a + ld a, [$de77] + ld [$ddac], a + ld hl, $de78 + ld de, wMusicOctave + ld a, $4 + call Music2_CopyData + ld hl, $de7c + ld de, $ddb3 + ld a, $4 + call Music2_CopyData + ld hl, $de80 + ld de, $ddb7 + ld a, $4 + call Music2_CopyData + ld hl, $de84 + ld de, $ddbb + ld a, $4 + call Music2_CopyData + ld hl, $de88 + ld de, wMusicE8 + ld a, $4 + call Music2_CopyData + ld hl, $de8c + ld de, $ddc3 + ld a, $4 + call Music2_CopyData + ld hl, $de90 + ld de, wMusicE9 + ld a, $4 + call Music2_CopyData + ld hl, $de94 + ld de, wMusicEC + ld a, $4 + call Music2_CopyData + ld hl, $de98 + ld de, wMusicSpeed + ld a, $4 + call Music2_CopyData + ld hl, $de9c + ld de, wMusicVibratoType2 + ld a, $4 + call Music2_CopyData + ld hl, $dea0 + ld de, wMusicVibratoDelay + ld a, $4 + call Music2_CopyData + ld hl, $dea4 + ld de, wMusicVolume + ld a, $3 + call Music2_CopyData + ld hl, $dea7 + ld de, wMusicE4 + ld a, $3 + call Music2_CopyData + ld hl, $deaa + ld de, $dded + ld a, $2 + call Music2_CopyData + ld a, [$deac] + ld [$ddef], a + ld hl, $dead + ld de, wMusicReturnAddress + ld a, $8 + call Music2_CopyData + ld hl, $deb5 + ld de, $ddfb + ld a, $30 + call Music2_CopyData + ret + +; copies a bytes from hl to de +Music2_CopyData: ; f8c18 (3e:4c18) + ld c, a +.asm_f8c19 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_f8c19 + ret + +Unknown_f8c20: ; f8c20 (3e:4c20) +INCBIN "baserom.gbc",$f8c20,$f8c28 - $f8c20 + +Unknown_f8c28: ; f8c28 (3e:4c28) +INCBIN "baserom.gbc",$f8c28,$f8c30 - $f8c28 + +Unknown_f8c30: ; f8c30 (3e:4c30) +INCBIN "baserom.gbc",$f8c30,$f8cda - $f8c30 + +Music2_WaveInstruments: ; f8cda (3e:4cda) +INCLUDE "audio/wave_instruments.asm" + +Music2_NoiseInstruments: ; f8d34 (3e:4d34) +INCLUDE "audio/noise_instruments.asm" + +Music2_VibratoTypes: ; f8dde (3e:4dde) +INCLUDE "audio/vibrato_types.asm" + +Unknown_f8e85: ; f8e85 (3e:4e85) +INCBIN "baserom.gbc",$f8e85,$f8ee5 - $f8e85 + +INCLUDE "audio/music2_headers.asm" + +INCLUDE "audio/music/pcmainmenu.asm" +INCLUDE "audio/music/pokemondome.asm" +INCLUDE "audio/music/challengehall.asm" +INCLUDE "audio/music/club1.asm" +INCLUDE "audio/music/club2.asm" +INCLUDE "audio/music/club3.asm" +INCLUDE "audio/music/ronald.asm" +INCLUDE "audio/music/imakuni.asm" +INCLUDE "audio/music/hallofhonor.asm" +INCLUDE "audio/music/credits.asm" + +rept $109 +db $ff +endr diff --git a/audio/music2_headers.asm b/audio/music2_headers.asm new file mode 100755 index 0000000..cafaa4f --- /dev/null +++ b/audio/music2_headers.asm @@ -0,0 +1,281 @@ +NumberOfSongs2: ; f8ee5 (3e:4ee5) + db $1f + +SongBanks2: ; f8ee6 (3e:4ee6) + db BANK(Music_Stop) + db BANK(Music_TitleScreen) + db BANK(Music_DuelTheme1) + db BANK(Music_DuelTheme2) + db BANK(Music_DuelTheme3) + db BANK(Music_PauseMenu) + db BANK(Music_PCMainMenu) + db BANK(Music_DeckMachine) + db BANK(Music_CardPop) + db BANK(Music_Overworld) + db BANK(Music_PokemonDome) + db BANK(Music_ChallengeHall) + db BANK(Music_Club1) + db BANK(Music_Club2) + db BANK(Music_Club3) + db BANK(Music_Ronald) + db BANK(Music_Imakuni) + db BANK(Music_HallOfHonor) + db BANK(Music_Credits) + db BANK(Music_Unused13) + db BANK(Music_Unused14) + db BANK(Music_MatchStart1) + db BANK(Music_MatchStart2) + db BANK(Music_MatchStart3) + db BANK(Music_MatchVictory) + db BANK(Music_MatchLoss) + db BANK(Music_DarkDiddly) + db BANK(Music_Unused1b) + db BANK(Music_BoosterPack) + db BANK(Music_Medal) + db BANK(Music_Unused1e) + +SongHeaderPointers2: ; f8f05 (3e:4f05) + dw Music_Stop + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Music_PCMainMenu + dw $0000 + dw $0000 + dw $0000 + dw Music_PokemonDome + dw Music_ChallengeHall + dw Music_Club1 + dw Music_Club2 + dw Music_Club3 + dw Music_Ronald + dw Music_Imakuni + dw Music_HallOfHonor + dw Music_Credits + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Stop + db %0000 + +;Music_TitleScreen + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_DuelTheme1 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_DuelTheme2 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_DuelTheme3 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_PauseMenu + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +Music_PCMainMenu: ; f8f71 (3e:4f71) + db %1111 + dw Music_PCMainMenu_Ch1 + dw Music_PCMainMenu_Ch2 + dw Music_PCMainMenu_Ch3 + dw Music_PCMainMenu_Ch4 + +;Music_DeckMachine + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_CardPop + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Overworld + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +Music_PokemonDome: ; f8f95 (3e:4f95) + db %1111 + dw Music_PokemonDome_Ch1 + dw Music_PokemonDome_Ch2 + dw Music_PokemonDome_Ch3 + dw Music_PokemonDome_Ch4 + +Music_ChallengeHall: ; f8f9e (3e:4f9e) + db %1111 + dw Music_ChallengeHall_Ch1 + dw Music_ChallengeHall_Ch2 + dw Music_ChallengeHall_Ch3 + dw Music_ChallengeHall_Ch4 + +Music_Club1: ; f8fa7 (3e:4fa7) + db %1111 + dw Music_Club1_Ch1 + dw Music_Club1_Ch2 + dw Music_Club1_Ch3 + dw Music_Club1_Ch4 + +Music_Club2: ; f8fb0 (3e:4fb0) + db %0111 + dw Music_Club2_Ch1 + dw Music_Club2_Ch2 + dw Music_Club2_Ch3 + dw $0000 + +Music_Club3: ; f8fb9 (3e:4fb9) + db %1111 + dw Music_Club3_Ch1 + dw Music_Club3_Ch2 + dw Music_Club3_Ch3 + dw Music_Club3_Ch4 + +Music_Ronald: ; f8fc2 (3e:4fc2) + db %1111 + dw Music_Ronald_Ch1 + dw Music_Ronald_Ch2 + dw Music_Ronald_Ch3 + dw Music_Ronald_Ch4 + +Music_Imakuni: ; f8fcb (3e:4fcb) + db %1111 + dw Music_Imakuni_Ch1 + dw Music_Imakuni_Ch2 + dw Music_Imakuni_Ch3 + dw Music_Imakuni_Ch4 + +Music_HallOfHonor: ; f8fd4 (3e:4fd4) + db %0111 + dw Music_HallOfHonor_Ch1 + dw Music_HallOfHonor_Ch2 + dw Music_HallOfHonor_Ch3 + dw $0000 + +Music_Credits: ; f8fdd (3e:4fdd) + db %1111 + dw Music_Credits_Ch1 + dw Music_Credits_Ch2 + dw Music_Credits_Ch3 + dw Music_Credits_Ch4 + +;Music_Unused13 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Unused14 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_MatchStart1 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_MatchStart2 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_MatchStart3 + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_MatchVictory + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_MatchLoss + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_DarkDiddly + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Unused1b + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_BoosterPack + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Medal + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + +;Music_Unused1e + db %0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 diff --git a/audio/noise_instruments.asm b/audio/noise_instruments.asm new file mode 100755 index 0000000..96433ab --- /dev/null +++ b/audio/noise_instruments.asm @@ -0,0 +1,37 @@ + dw .bass + dw .unused + dw .snare1 + dw .unused + dw .snare2 + dw .unused + dw .snare3 + dw .unused + dw .snare4 + dw .unused + dw .unused + dw .snare5 + +.unused + db $00,$ed,$02,$c0,$46,$63,$ff + +.bass + db $88,$32,$d2,$c0,$46,$61,$ff + +.snare1 + db $88,$24,$a1,$80,$16,$16,$16,$15,$17,$ff + +.snare2 + db $88,$00,$95,$80,$05,$04,$02,$01,$ff + +.snare3 + db $88,$32,$b1,$c0,$02,$01,$01,$01,$ff + +.snare4 + db $88,$00,$84,$80,$04,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02 + db $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02 + db $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$ff + +.snare5 + db $88,$00,$c4,$80,$05,$03,$03,$03,$03,$03,$03,$03,$03,$02,$02,$02,$02,$02 + db $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02 + db $02,$02,$02,$02,$02,$02,$02,$02,$02,$01,$01,$01,$01,$01,$01,$ff diff --git a/audio/sfx.asm b/audio/sfx.asm new file mode 100755 index 0000000..cb3e2a8 --- /dev/null +++ b/audio/sfx.asm @@ -0,0 +1,599 @@ +Func_fc000: ; fc000 (3f:4000) + jp Func_fc006 + +Func_fc003: ; fc003 (3f:4003) + jp Func_fc059 + +Func_fc006: ; fc006 (3f:4006) + ld hl, NumberOfSFX + cp [hl] + jr nc, .asm_fc058 + add a + ld c, a + ld b, $0 + ld a, [$de53] + or a + jr z, .asm_fc019 + call Func_fc279 +.asm_fc019 + ld a, $1 + ld [$de53], a + ld hl, SFXHeaderPointers + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + ld [$dd8c], a + ld [$de54], a + ld de, $de4b + ld c, $0 +.asm_fc031 + ld a, [$de54] + rrca + ld [$de54], a + jr nc, .asm_fc050 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + push hl + ld hl, $de2f + add hl, bc + ld [hl], $0 + ld hl, $de33 + add hl, bc + ld [hl], $1 + pop hl + jr .asm_fc052 +.asm_fc050 + inc de + inc de +.asm_fc052 + inc c + ld a, $4 + cp c + jr nz, .asm_fc031 +.asm_fc058 + ret + +Func_fc059: ; fc059 (3f:4059) + ld a, [$dd8c] + or a + jr nz, .asm_fc063 + call Func_fc26c + ret +.asm_fc063 + xor a + ld b, a + ld c, a + ld a, [$dd8c] + ld [$de54], a +.asm_fc06c + ld hl, $de54 + ld a, [hl] + rrca + ld [hl], a + jr nc, .asm_fc08d + ld hl, $de33 + add hl, bc + ld a, [hl] + dec a + jr z, .asm_fc082 + ld [hl], a + call Func_fc18d + jr .asm_fc08d +.asm_fc082 + ld hl, $de4b + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + call Func_fc094 +.asm_fc08d + inc c + ld a, c + cp $4 + jr nz, .asm_fc06c + ret + +Func_fc094: ; fc094 (3f:4094) + ld a, [hl] + and $f0 + swap a + add a + ld e, a + ld d, $0 + ld a, [hli] + push hl + and $f + ld hl, SFX_CommandTable + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld h, d + ld l, e + jp [hl] + +SFX_CommandTable: ; fc0ab (3f:40ab) + dw SFX_0 + dw SFX_1 + dw SFX_2 + dw SFX_loop + dw SFX_endloop + dw SFX_5 + dw SFX_6 + dw SFX_7 + dw SFX_8 + dw SFX_unused + dw SFX_unused + dw SFX_unused + dw SFX_unused + dw SFX_unused + dw SFX_unused + dw SFX_end + +SFX_unused: ; fc0cb (3f:40cb) + jp Func_fc094 + +SFX_0: ; fc0ce (3f:40ce) + ld d, a + pop hl + ld a, [hli] + ld e, a + push hl + ld hl, $de37 + add hl, bc + add hl, bc + push bc + ld b, [hl] + ld [hl], e + inc hl + ld [hl], d + ld a, c + cp $3 + jr nz, .asm_fc0e9 + ld a, b + xor e + and $8 + swap a + ld d, a +.asm_fc0e9 + pop bc + ld hl, $de2b + add hl, bc + ld a, [hl] + ld [hl], $0 + or d + ld d, a + ld hl, rNR11 + ld a, c + add a + add a + add c + add l + ld l, a + ld a, [hl] + and $c0 + ld [hli], a + inc hl + ld a, e + ld [hli], a + ld [hl], d + pop de +Func_fc105: ; fc105 (3f:4105) + ld hl, $de4b + add hl, bc + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +SFX_1: ; fc10e (3f:410e) + ld hl, $de2b + add hl, bc + ld a, $80 + ld [hl], a + pop hl + ld a, [hli] + ld e, a + push hl + ld hl, rNR12 + ld a, c + add a + add a + add c + add l + ld l, a + ld [hl], e + pop hl + jp Func_fc094 + +SFX_2: ; fc127 (3f:4127) + swap a + ld e, a + ld hl, rNR11 + ld a, c + add a + add a + add c + add l + ld l, a + ld [hl], e + pop hl + jp Func_fc094 + +SFX_loop: ; fc138 (3f:4138) + ld hl, $de43 + add hl, bc + add hl, bc + pop de + ld a, [de] + inc de + ld [hl], e + inc hl + ld [hl], d + ld hl, $de3f + add hl, bc + ld [hl], a + ld l, e + ld h, d + jp Func_fc094 + +SFX_endloop: ; fc14d (3f:414d) + ld hl, $de3f + add hl, bc + ld a, [hl] + dec a + jr z, .asm_fc162 + ld [hl], a + ld hl, $de43 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + pop de + jp Func_fc094 +.asm_fc162 + pop hl + jp Func_fc094 + +SFX_5: ; fc166 (3f:4166) + ld hl, $de2f + add hl, bc + ld e, l + ld d, h + pop hl + ld a, [hli] + ld [de], a + jp Func_fc094 + +SFX_6: ; fc172 (3f:4172) + ld a, c + cp $3 + jr nz, .asm_fc17c + call Func_fc1cd + jr .asm_fc17f +.asm_fc17c + call Func_fc18d +.asm_fc17f + ld hl, $de33 + add hl, bc + ld e, l + ld d, h + pop hl + ld a, [hli] + ld [de], a + ld e, l + ld d, h + jp Func_fc105 + +Func_fc18d: ; fc18d (3f:418d) + ld hl, $de2f + add hl, bc + ld a, [hl] + or a + jr z, .asm_fc1cc + ld hl, $de37 + add hl, bc + add hl, bc + bit 7, a + jr z, .asm_fc1aa + xor $ff + inc a + ld d, a + ld a, [hl] + sub d + ld [hli], a + ld e, a + ld a, [hl] + sbc b + jr .asm_fc1b1 +.asm_fc1aa + ld d, a + ld a, [hl] + add d + ld [hli], a + ld e, a + ld a, [hl] + adc b +.asm_fc1b1 + ld [hl], a + ld hl, $de2b + add hl, bc + ld d, [hl] + ld [hl], $0 + or d + ld d, a + ld hl, rNR11 + ld a, c + add a + add a + add c + add l + ld l, a + ld a, [hl] + and $c0 + ld [hli], a + inc hl + ld a, e + ld [hli], a + ld [hl], d +.asm_fc1cc + ret + +Func_fc1cd: ; fc1cd (3f:41cd) + ld hl, $de32 + ld a, [hl] + or a + jr z, .asm_fc201 + ld hl, $de3d + bit 7, a + jr z, .asm_fc1e5 + xor $ff + inc a + ld d, a + ld e, [hl] + ld a, e + sub d + ld [hl], a + jr .asm_fc1ea +.asm_fc1e5 + ld d, a + ld e, [hl] + ld a, e + add d + ld [hl], a +.asm_fc1ea + ld d, a + xor e + and $8 + swap a + ld hl, $de2e + ld e, [hl] + ld [hl], $0 + or e + ld e, a + ld hl, rNR41 + xor a + ld [hli], a + inc hl + ld a, d + ld [hli], a + ld [hl], e +.asm_fc201 + ret + +SFX_7: ; fc202 (3f:4202) + add a + ld d, $0 + ld e, a + ld hl, SFX_WaveInstruments + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $0 + ld [rNR30], a + ld b, d + ld de, $ff30 +.asm_fc215 + ld a, [hli] + ld [de], a + inc de + inc b + ld a, b + cp $10 + jr nz, .asm_fc215 + ld a, $1 + ld [$dd8b], a + ld a, $80 + ld [rNR30], a + ld b, $0 + pop hl + jp Func_fc094 + +SFX_8: ; fc22d (3f:422d) + pop hl + ld a, [hli] + push hl + push bc + inc c + ld e, $ee +.asm_fc234 + dec c + jr z, .asm_fc23c + rlca + rlc e + jr .asm_fc234 +.asm_fc23c + ld d, a + ld hl, $dd85 + ld a, [hl] + and e + or d + ld [hl], a + pop bc + pop hl + jp Func_fc094 + +SFX_end: ; fc249 (3f:4249) + ld e, c + inc e + ld a, $7f +.asm_fc24d + rlca + dec e + jr nz, .asm_fc24d + ld e, a + ld a, [$dd8c] + and e + ld [$dd8c], a + ld a, c + rlca + rlca + add c + ld e, a + ld d, b + ld hl, rNR12 + add hl, de + ld a, $8 + ld [hli], a + inc hl + swap a + ld [hl], a + pop hl + ret + +Func_fc26c: ; fc26c (3f:426c) + xor a + ld [$de53], a + ld [$dd83], a + ld a, $80 + ld [$dd82], a + ret + +Func_fc279: ; fc279 (3f:4279) + ld a, $8 + ld a, [rNR12] + ld a, [rNR22] + ld a, [rNR32] + ld a, [rNR42] + ld a, $80 + ld a, [rNR14] + ld a, [rNR24] + ld a, [rNR44] + xor a + ld [$dd8c], a + ret + +INCLUDE "audio/sfx_headers.asm" + +SFX_WaveInstruments: ; fc485 (3f:4485) +INCLUDE "audio/wave_instruments.asm" + +INCLUDE "audio/sfx/sfx_01.asm" +INCLUDE "audio/sfx/sfx_02.asm" +INCLUDE "audio/sfx/sfx_03.asm" +INCLUDE "audio/sfx/sfx_04.asm" +INCLUDE "audio/sfx/sfx_05.asm" +INCLUDE "audio/sfx/sfx_06.asm" +INCLUDE "audio/sfx/sfx_07.asm" +INCLUDE "audio/sfx/sfx_08.asm" +INCLUDE "audio/sfx/sfx_09.asm" +INCLUDE "audio/sfx/sfx_0a.asm" +INCLUDE "audio/sfx/sfx_0b.asm" +INCLUDE "audio/sfx/sfx_0c.asm" +INCLUDE "audio/sfx/sfx_0d.asm" +INCLUDE "audio/sfx/sfx_0e.asm" +INCLUDE "audio/sfx/sfx_0f.asm" +INCLUDE "audio/sfx/sfx_10.asm" +INCLUDE "audio/sfx/sfx_11.asm" +INCLUDE "audio/sfx/sfx_12.asm" +INCLUDE "audio/sfx/sfx_13.asm" +INCLUDE "audio/sfx/sfx_14.asm" +INCLUDE "audio/sfx/sfx_15.asm" +INCLUDE "audio/sfx/sfx_16.asm" +INCLUDE "audio/sfx/sfx_17.asm" +INCLUDE "audio/sfx/sfx_18.asm" +INCLUDE "audio/sfx/sfx_19.asm" +INCLUDE "audio/sfx/sfx_1a.asm" +INCLUDE "audio/sfx/sfx_1b.asm" +INCLUDE "audio/sfx/sfx_1c.asm" +INCLUDE "audio/sfx/sfx_1d.asm" +INCLUDE "audio/sfx/sfx_1e.asm" +INCLUDE "audio/sfx/sfx_1f.asm" +INCLUDE "audio/sfx/sfx_20.asm" +INCLUDE "audio/sfx/sfx_21.asm" +INCLUDE "audio/sfx/sfx_22.asm" +INCLUDE "audio/sfx/sfx_23.asm" +INCLUDE "audio/sfx/sfx_24.asm" +INCLUDE "audio/sfx/sfx_25.asm" +INCLUDE "audio/sfx/sfx_26.asm" +INCLUDE "audio/sfx/sfx_27.asm" +INCLUDE "audio/sfx/sfx_28.asm" +INCLUDE "audio/sfx/sfx_29.asm" +INCLUDE "audio/sfx/sfx_2a.asm" +INCLUDE "audio/sfx/sfx_2b.asm" +INCLUDE "audio/sfx/sfx_2c.asm" +INCLUDE "audio/sfx/sfx_2d.asm" +INCLUDE "audio/sfx/sfx_2e.asm" +INCLUDE "audio/sfx/sfx_2f.asm" +INCLUDE "audio/sfx/sfx_30.asm" +INCLUDE "audio/sfx/sfx_31.asm" +INCLUDE "audio/sfx/sfx_32.asm" +INCLUDE "audio/sfx/sfx_33.asm" +INCLUDE "audio/sfx/sfx_34.asm" +INCLUDE "audio/sfx/sfx_35.asm" +INCLUDE "audio/sfx/sfx_36.asm" +INCLUDE "audio/sfx/sfx_37.asm" +INCLUDE "audio/sfx/sfx_38.asm" +INCLUDE "audio/sfx/sfx_39.asm" +INCLUDE "audio/sfx/sfx_3a.asm" +INCLUDE "audio/sfx/sfx_3b.asm" +INCLUDE "audio/sfx/sfx_3c.asm" +INCLUDE "audio/sfx/sfx_3d.asm" +INCLUDE "audio/sfx/sfx_3e.asm" +INCLUDE "audio/sfx/sfx_3f.asm" +INCLUDE "audio/sfx/sfx_40.asm" +INCLUDE "audio/sfx/sfx_41.asm" +INCLUDE "audio/sfx/sfx_42.asm" +INCLUDE "audio/sfx/sfx_43.asm" +INCLUDE "audio/sfx/sfx_44.asm" +INCLUDE "audio/sfx/sfx_45.asm" +INCLUDE "audio/sfx/sfx_46.asm" +INCLUDE "audio/sfx/sfx_47.asm" +INCLUDE "audio/sfx/sfx_48.asm" +INCLUDE "audio/sfx/sfx_49.asm" +INCLUDE "audio/sfx/sfx_4a.asm" +INCLUDE "audio/sfx/sfx_4b.asm" +INCLUDE "audio/sfx/sfx_4c.asm" +INCLUDE "audio/sfx/sfx_4d.asm" +INCLUDE "audio/sfx/sfx_4e.asm" +INCLUDE "audio/sfx/sfx_4f.asm" +INCLUDE "audio/sfx/sfx_50.asm" +INCLUDE "audio/sfx/sfx_51.asm" +INCLUDE "audio/sfx/sfx_52.asm" +INCLUDE "audio/sfx/sfx_53.asm" +INCLUDE "audio/sfx/sfx_54.asm" +INCLUDE "audio/sfx/sfx_55.asm" +INCLUDE "audio/sfx/sfx_56.asm" +INCLUDE "audio/sfx/sfx_57.asm" +INCLUDE "audio/sfx/sfx_58.asm" +INCLUDE "audio/sfx/sfx_59.asm" +INCLUDE "audio/sfx/sfx_5a.asm" +INCLUDE "audio/sfx/sfx_5b.asm" +INCLUDE "audio/sfx/sfx_5c.asm" +INCLUDE "audio/sfx/sfx_5d.asm" +INCLUDE "audio/sfx/sfx_5e.asm" +INCLUDE "audio/sfx/sfx_5f.asm" + +rept $c1 +db $ff +endr diff --git a/audio/sfx_headers.asm b/audio/sfx_headers.asm new file mode 100755 index 0000000..6485425 --- /dev/null +++ b/audio/sfx_headers.asm @@ -0,0 +1,494 @@ +NumberOfSFX: ; fc290 (3f:4290) + db $60 + +SFXHeaderPointers: ; fc291 (3f:4291) + dw SFX_Stop + dw SFX_01 + dw SFX_02 + dw SFX_03 + dw SFX_04 + dw SFX_05 + dw SFX_06 + dw SFX_07 + dw SFX_08 + dw SFX_09 + dw SFX_0a + dw SFX_0b + dw SFX_0c + dw SFX_0d + dw SFX_0e + dw SFX_0f + dw SFX_10 + dw SFX_11 + dw SFX_12 + dw SFX_13 + dw SFX_14 + dw SFX_15 + dw SFX_16 + dw SFX_17 + dw SFX_18 + dw SFX_19 + dw SFX_1a + dw SFX_1b + dw SFX_1c + dw SFX_1d + dw SFX_1e + dw SFX_1f + dw SFX_20 + dw SFX_21 + dw SFX_22 + dw SFX_23 + dw SFX_24 + dw SFX_25 + dw SFX_26 + dw SFX_27 + dw SFX_28 + dw SFX_29 + dw SFX_2a + dw SFX_2b + dw SFX_2c + dw SFX_2d + dw SFX_2e + dw SFX_2f + dw SFX_30 + dw SFX_31 + dw SFX_32 + dw SFX_33 + dw SFX_34 + dw SFX_35 + dw SFX_36 + dw SFX_37 + dw SFX_38 + dw SFX_39 + dw SFX_3a + dw SFX_3b + dw SFX_3c + dw SFX_3d + dw SFX_3e + dw SFX_3f + dw SFX_40 + dw SFX_41 + dw SFX_42 + dw SFX_43 + dw SFX_44 + dw SFX_45 + dw SFX_46 + dw SFX_47 + dw SFX_48 + dw SFX_49 + dw SFX_4a + dw SFX_4b + dw SFX_4c + dw SFX_4d + dw SFX_4e + dw SFX_4f + dw SFX_50 + dw SFX_51 + dw SFX_52 + dw SFX_53 + dw SFX_54 + dw SFX_55 + dw SFX_56 + dw SFX_57 + dw SFX_58 + dw SFX_59 + dw SFX_5a + dw SFX_5b + dw SFX_5c + dw SFX_5d + dw SFX_5e + dw SFX_5f + +SFX_Stop: ; fc351 (3f:4351) + db %0000 + +SFX_01: ; fc352 (3f:4352) + db %0010 + dw SFX_01_Ch1 + +SFX_02: ; fc355 (3f:4355) + db %0010 + dw SFX_02_Ch1 + +SFX_03: ; fc358 (3f:4358) + db %0010 + dw SFX_03_Ch1 + +SFX_04: ; fc35b (3f:435b) + db %0010 + dw SFX_04_Ch1 + +SFX_05: ; fc35e (3f:435e) + db %0010 + dw SFX_05_Ch1 + +SFX_06: ; fc361 (3f:4361) + db %0010 + dw SFX_06_Ch1 + +SFX_07: ; fc364 (3f:4364) + db %1000 + dw SFX_07_Ch1 + +SFX_08: ; fc367 (3f:4367) + db %1000 + dw SFX_08_Ch1 + +SFX_09: ; fc36a (3f:436a) + db %1000 + dw SFX_09_Ch1 + +SFX_0a: ; fc36d (3f:436d) + db %0010 + dw SFX_0a_Ch1 + +SFX_0b: ; fc370 (3f:4370) + db %0010 + dw SFX_0b_Ch1 + +SFX_0c: ; fc373 (3f:4373) + db %1000 + dw SFX_0c_Ch1 + +SFX_0d: ; fc376 (3f:4376) + db %0010 + dw SFX_0d_Ch1 + +SFX_0e: ; fc379 (3f:4379) + db %0010 + dw SFX_0e_Ch1 + +SFX_0f: ; fc37c (3f:437c) + db %1000 + dw SFX_0f_Ch1 + +SFX_10: ; fc37f (3f:437f) + db %0010 + dw SFX_10_Ch1 + +SFX_11: ; fc382 (3f:4382) + db %0010 + dw SFX_11_Ch1 + +SFX_12: ; fc385 (3f:4385) + db %0010 + dw SFX_12_Ch1 + +SFX_13: ; fc388 (3f:4388) + db %0010 + dw SFX_13_Ch1 + +SFX_14: ; fc38b (3f:438b) + db %0010 + dw SFX_14_Ch1 + +SFX_15: ; fc38e (3f:438e) + db %0010 + dw SFX_15_Ch1 + +SFX_16: ; fc391 (3f:4391) + db %1000 + dw SFX_16_Ch1 + +SFX_17: ; fc394 (3f:4394) + db %1000 + dw SFX_17_Ch1 + +SFX_18: ; fc397 (3f:4397) + db %1000 + dw SFX_18_Ch1 + +SFX_19: ; fc39a (3f:439a) + db %1000 + dw SFX_19_Ch1 + +SFX_1a: ; fc39d (3f:439d) + db %1000 + dw SFX_1a_Ch1 + +SFX_1b: ; fc3a0 (3f:43a0) + db %1000 + dw SFX_1b_Ch1 + +SFX_1c: ; fc3a3 (3f:43a3) + db %1000 + dw SFX_1c_Ch1 + +SFX_1d: ; fc3a6 (3f:43a6) + db %1000 + dw SFX_1d_Ch1 + +SFX_1e: ; fc3a9 (3f:43a9) + db %1000 + dw SFX_1e_Ch1 + +SFX_1f: ; fc3ac (3f:43ac) + db %1000 + dw SFX_1f_Ch1 + +SFX_20: ; fc3af (3f:43af) + db %1000 + dw SFX_20_Ch1 + +SFX_21: ; fc3b2 (3f:43b2) + db %1000 + dw SFX_21_Ch1 + +SFX_22: ; fc3b5 (3f:43b5) + db %1000 + dw SFX_22_Ch1 + +SFX_23: ; fc3b8 (3f:43b8) + db %1000 + dw SFX_23_Ch1 + +SFX_24: ; fc3bb (3f:43bb) + db %1000 + dw SFX_24_Ch1 + +SFX_25: ; fc3be (3f:43be) + db %0010 + dw SFX_25_Ch1 + +SFX_26: ; fc3c1 (3f:43c1) + db %0010 + dw SFX_26_Ch1 + +SFX_27: ; fc3c4 (3f:43c4) + db %0010 + dw SFX_27_Ch1 + +SFX_28: ; fc3c7 (3f:43c7) + db %1010 + dw SFX_28_Ch1 + dw SFX_28_Ch2 + +SFX_29: ; fc3cc (3f:43cc) + db %1000 + dw SFX_29_Ch1 + +SFX_2a: ; fc3cf (3f:43cf) + db %1000 + dw SFX_2a_Ch1 + +SFX_2b: ; fc3d2 (3f:43d2) + db %0010 + dw SFX_2b_Ch1 + +SFX_2c: ; fc3d5 (3f:43d5) + db %0010 + dw SFX_2c_Ch1 + +SFX_2d: ; fc3d8 (3f:43d8) + db %1000 + dw SFX_2d_Ch1 + +SFX_2e: ; fc3db (3f:43db) + db %1000 + dw SFX_2e_Ch1 + +SFX_2f: ; fc3de (3f:43de) + db %1000 + dw SFX_2f_Ch1 + +SFX_30: ; fc3e1 (3f:43e1) + db %1000 + dw SFX_30_Ch1 + +SFX_31: ; fc3e4 (3f:43e4) + db %0010 + dw SFX_31_Ch1 + +SFX_32: ; fc3e7 (3f:43e7) + db %1010 + dw SFX_32_Ch1 + dw SFX_32_Ch2 + +SFX_33: ; fc3ec (3f:43ec) + db %1010 + dw SFX_33_Ch1 + dw SFX_33_Ch2 + +SFX_34: ; fc3f1 (3f:43f1) + db %0010 + dw SFX_34_Ch1 + +SFX_35: ; fc3f4 (3f:43f4) + db %1000 + dw SFX_35_Ch1 + +SFX_36: ; fc3f7 (3f:43f7) + db %0010 + dw SFX_36_Ch1 + +SFX_37: ; fc3fa (3f:43fa) + db %1010 + dw SFX_37_Ch1 + dw SFX_37_Ch2 + +SFX_38: ; fc3ff (3f:43ff) + db %0010 + dw SFX_38_Ch1 + +SFX_39: ; fc402 (3f:4402) + db %1010 + dw SFX_39_Ch1 + dw SFX_39_Ch2 + +SFX_3a: ; fc407 (3f:4407) + db %0010 + dw SFX_3a_Ch1 + +SFX_3b: ; fc40a (3f:440a) + db %0010 + dw SFX_3b_Ch1 + +SFX_3c: ; fc40d (3f:440d) + db %0010 + dw SFX_3c_Ch1 + +SFX_3d: ; fc410 (3f:4410) + db %0010 + dw SFX_3d_Ch1 + +SFX_3e: ; fc413 (3f:4413) + db %0010 + dw SFX_3e_Ch1 + +SFX_3f: ; fc416 (3f:4416) + db %1000 + dw SFX_3f_Ch1 + +SFX_40: ; fc419 (3f:4419) + db %0010 + dw SFX_40_Ch1 + +SFX_41: ; fc41c (3f:441c) + db %0010 + dw SFX_41_Ch1 + +SFX_42: ; fc41f (3f:441f) + db %0010 + dw SFX_42_Ch1 + +SFX_43: ; fc422 (3f:4422) + db %1000 + dw SFX_43_Ch1 + +SFX_44: ; fc425 (3f:4425) + db %1000 + dw SFX_44_Ch1 + +SFX_45: ; fc428 (3f:4428) + db %0010 + dw SFX_45_Ch1 + +SFX_46: ; fc42b (3f:442b) + db %0010 + dw SFX_46_Ch1 + +SFX_47: ; fc42e (3f:442e) + db %1000 + dw SFX_47_Ch1 + +SFX_48: ; fc431 (3f:4431) + db %1000 + dw SFX_48_Ch1 + +SFX_49: ; fc434 (3f:4434) + db %0010 + dw SFX_49_Ch1 + +SFX_4a: ; fc437 (3f:4437) + db %0010 + dw SFX_4a_Ch1 + +SFX_4b: ; fc43a (3f:443a) + db %1000 + dw SFX_4b_Ch1 + +SFX_4c: ; fc43d (3f:443d) + db %0010 + dw SFX_4c_Ch1 + +SFX_4d: ; fc440 (3f:4440) + db %0010 + dw SFX_4d_Ch1 + +SFX_4e: ; fc443 (3f:4443) + db %0010 + dw SFX_4e_Ch1 + +SFX_4f: ; fc446 (3f:4446) + db %0010 + dw SFX_4f_Ch1 + +SFX_50: ; fc449 (3f:4449) + db %1010 + dw SFX_50_Ch1 + dw SFX_50_Ch2 + +SFX_51: ; fc44e (3f:444e) + db %1010 + dw SFX_51_Ch1 + dw SFX_51_Ch2 + +SFX_52: ; fc453 (3f:4453) + db %1010 + dw SFX_52_Ch1 + dw SFX_52_Ch2 + +SFX_53: ; fc458 (3f:4458) + db %1010 + dw SFX_53_Ch1 + dw SFX_53_Ch2 + +SFX_54: ; fc45d (3f:445d) + db %0010 + dw SFX_54_Ch1 + +SFX_55: ; fc460 (3f:4460) + db %0010 + dw SFX_55_Ch1 + +SFX_56: ; fc463 (3f:4463) + db %0010 + dw SFX_56_Ch1 + +SFX_57: ; fc466 (3f:4466) + db %0010 + dw SFX_57_Ch1 + +SFX_58: ; fc469 (3f:4469) + db %0010 + dw SFX_58_Ch1 + +SFX_59: ; fc46c (3f:446c) + db %0010 + dw SFX_59_Ch1 + +SFX_5a: ; fc46f (3f:446f) + db %0010 + dw SFX_5a_Ch1 + +SFX_5b: ; fc472 (3f:4472) + db %0010 + dw SFX_5b_Ch1 + +SFX_5c: ; fc475 (3f:4475) + db %1000 + dw SFX_5c_Ch1 + +SFX_5d: ; fc478 (3f:4478) + db %1011 + dw SFX_5d_Ch1 + dw SFX_5d_Ch2 + dw SFX_5d_Ch3 + +SFX_5e: ; fc47f (3f:447f) + db %0010 + dw SFX_5e_Ch1 + +SFX_5f: ; fc482 (3f:4482) + db %1000 + dw SFX_5f_Ch1 diff --git a/audio/vibrato_types.asm b/audio/vibrato_types.asm new file mode 100755 index 0000000..d51546e --- /dev/null +++ b/audio/vibrato_types.asm @@ -0,0 +1,44 @@ + dw .vibratoType0 + dw .vibratoType1 + dw .vibratoType2 + dw .vibratoType3 + dw .vibratoType4 + dw .vibratoType5 + dw .vibratoType6 + dw .vibratoType7 + dw .vibratoType8 + dw .vibratoType9 + dw .vibratoTypeA + +.vibratoType0 + db $00,$80,$80 + +.vibratoType1 + db $01,$02,$01,$00,$ff,$fe,$ff,$00,$80,$80 + +.vibratoType2 + db $03,$fd,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$01 + +.vibratoType3 + db $01,$01,$00,$00,$ff,$ff,$00,$00,$80,$80 + +.vibratoType4 + db $01,$01,$01,$00,$00,$00,$ff,$ff,$ff,$00,$00,$00,$80,$80 + +.vibratoType5 + db $02,$04,$06,$04,$02,$00,$fe,$fc,$fa,$fc,$fe,$00,$80,$80 + +.vibratoType6 + db $04,$04,$08,$08,$04,$04,$00,$00,$fc,$fc,$f8,$f8,$fc,$fc,$00,$00,$80,$80 + +.vibratoType7 + db $f8,$f8,$f9,$f9,$fa,$fa,$fb,$fb,$fc,$fc,$fd,$fd,$fe,$fe,$ff,$ff,$00,$00,$80,$05 + +.vibratoType8 + db $02,$04,$02,$00,$fe,$fc,$fe,$00,$80,$80 + +.vibratoType9 + db $01,$02,$04,$02,$01,$00,$ff,$fe,$fc,$fe,$ff,$00,$80,$08 + +.vibratoTypeA + db $01,$01,$01,$01,$00,$00,$00,$00,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$80,$80 diff --git a/audio/wave_instruments.asm b/audio/wave_instruments.asm new file mode 100755 index 0000000..98197dc --- /dev/null +++ b/audio/wave_instruments.asm @@ -0,0 +1,20 @@ + dw .wave0 + dw .wave1 + dw .wave2 + dw .wave3 + dw .wave4 + +.wave0 + db $79,$bd,$ff,$ff,$ff,$ff,$fd,$b9,$75,$31,$00,$00,$00,$00,$01,$35 + +.wave1 + db $01,$12,$23,$34,$45,$56,$67,$77,$88,$99,$aa,$bb,$cc,$dd,$ee,$ff + +.wave2 + db $46,$8a,$cc,$cc,$cc,$cc,$ca,$86,$42,$11,$00,$00,$00,$00,$01,$12 + +.wave3 + db $7a,$df,$ff,$da,$74,$10,$00,$14,$7a,$df,$ff,$da,$74,$10,$00,$14 + +.wave4 + db $ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$00,$00,$00,$00,$00,$00,$00,$00 diff --git a/data/music1_headers.asm b/data/music1_headers.asm deleted file mode 100755 index 3344365..0000000 --- a/data/music1_headers.asm +++ /dev/null @@ -1,281 +0,0 @@ -NumberOfSongs1: ; 4fee5 (3d:4ee5) - db $1f - -SongBanks1: ; f4ee6 (3d:4ee6) - db BANK(Music_Stop) - db BANK(Music_TitleScreen) - db BANK(Music_DuelTheme1) - db BANK(Music_DuelTheme2) - db BANK(Music_DuelTheme3) - db BANK(Music_PauseMenu) - db BANK(Music_PCMainMenu) - db BANK(Music_DeckMachine) - db BANK(Music_CardPop) - db BANK(Music_Overworld) - db BANK(Music_PokemonDome) - db BANK(Music_ChallengeHall) - db BANK(Music_Club1) - db BANK(Music_Club2) - db BANK(Music_Club3) - db BANK(Music_Ronald) - db BANK(Music_Imakuni) - db BANK(Music_HallOfHonor) - db BANK(Music_Credits) - db BANK(Music_Unused13) - db BANK(Music_Unused14) - db BANK(Music_MatchStart1) - db BANK(Music_MatchStart2) - db BANK(Music_MatchStart3) - db BANK(Music_MatchVictory) - db BANK(Music_MatchLoss) - db BANK(Music_DarkDiddly) - db BANK(Music_Unused1b) - db BANK(Music_BoosterPack) - db BANK(Music_Medal) - db BANK(Music_Unused1e) - -SongHeaderPointers1: ; f4f05 (3d:4f05) - dw Music_Stop - dw Music_TitleScreen - dw Music_DuelTheme1 - dw Music_DuelTheme2 - dw Music_DuelTheme3 - dw Music_PauseMenu - dw $0000 - dw Music_DeckMachine - dw Music_CardPop - dw Music_Overworld - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw Music_Unused13 - dw Music_Unused14 - dw Music_MatchStart1 - dw Music_MatchStart2 - dw Music_MatchStart3 - dw Music_MatchVictory - dw Music_MatchLoss - dw Music_DarkDiddly - dw Music_Unused1b - dw Music_BoosterPack - dw Music_Medal - dw Music_Unused1e - -Music_Stop: ; f4f43 (3d:4f43) - db %0000 - -Music_TitleScreen: ; f4f44 (3d:4f44) - db %1111 - dw Music_TitleScreen_Ch1 - dw Music_TitleScreen_Ch2 - dw Music_TitleScreen_Ch3 - dw Music_TitleScreen_Ch4 - -Music_DuelTheme1: ; f4f4d (3d:4f4d) - db %1111 - dw Music_DuelTheme1_Ch1 - dw Music_DuelTheme1_Ch2 - dw Music_DuelTheme1_Ch3 - dw Music_DuelTheme1_Ch4 - -Music_DuelTheme2: ; f4f56 (3d:4f56) - db %1111 - dw Music_DuelTheme2_Ch1 - dw Music_DuelTheme2_Ch2 - dw Music_DuelTheme2_Ch3 - dw Music_DuelTheme2_Ch4 - -Music_DuelTheme3: ; f4f5f (3d:4f5f) - db %1111 - dw Music_DuelTheme3_Ch1 - dw Music_DuelTheme3_Ch2 - dw Music_DuelTheme3_Ch3 - dw Music_DuelTheme3_Ch4 - -Music_PauseMenu: ; f4f68 (3d:4f68) - db %1111 - dw Music_PauseMenu_Ch1 - dw Music_PauseMenu_Ch2 - dw Music_PauseMenu_Ch3 - dw Music_PauseMenu_Ch4 - -;Music_PCMainMenu - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -Music_DeckMachine: ; f4f7a (3d:4f7a) - db %1111 - dw Music_DeckMachine_Ch1 - dw Music_DeckMachine_Ch2 - dw Music_DeckMachine_Ch3 - dw Music_DeckMachine_Ch4 - -Music_CardPop: ; f4f83 (3d:4f83) - db %1111 - dw Music_CardPop_Ch1 - dw Music_CardPop_Ch2 - dw Music_CardPop_Ch3 - dw Music_CardPop_Ch4 - -Music_Overworld: ; f4f8c (3d:4f8c) - db %1111 - dw Music_Overworld_Ch1 - dw Music_Overworld_Ch2 - dw Music_Overworld_Ch3 - dw Music_Overworld_Ch4 - -;Music_PokemonDome - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_ChallengeHall - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Club1 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Club2 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Club3 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Ronald - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Imakuni - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_HallOfHonor - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Credits - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -Music_Unused13: ; f4fe6 (3d:4fe6) - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -Music_Unused14: ; f4fef (3d:4fef) - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -Music_MatchStart1: ; f4ff8 (3d:4ff8) - db %0001 - dw Music_MatchStart1_Ch1 - dw $0000 - dw $0000 - dw $0000 - -Music_MatchStart2: ; f5001 (3d:5001) - db %0011 - dw Music_MatchStart2_Ch1 - dw Music_MatchStart2_Ch2 - dw $0000 - dw $0000 - -Music_MatchStart3: ; f500a (3d:500a) - db %0011 - dw Music_MatchStart3_Ch1 - dw Music_MatchStart3_Ch2 - dw $0000 - dw $0000 - -Music_MatchVictory: ; f5013 (3d:5013) - db %0111 - dw Music_MatchVictory_Ch1 - dw Music_MatchVictory_Ch2 - dw Music_MatchVictory_Ch3 - dw $0000 - -Music_MatchLoss: ; f501c (3d:501c) - db %0111 - dw Music_MatchLoss_Ch1 - dw Music_MatchLoss_Ch2 - dw Music_MatchLoss_Ch3 - dw $0000 - -Music_DarkDiddly: ; f5025 (3d:5025) - db %0111 - dw Music_DarkDiddly_Ch1 - dw Music_DarkDiddly_Ch2 - dw Music_DarkDiddly_Ch3 - dw $0000 - -Music_Unused1b: ; f502e (3d:502e) - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -Music_BoosterPack: ; f5037 (3d:5037) - db %0111 - dw Music_BoosterPack_Ch1 - dw Music_BoosterPack_Ch2 - dw Music_BoosterPack_Ch3 - dw $0000 - -Music_Medal: ; f5040 (3d:5040) - db %0111 - dw Music_Medal_Ch1 - dw Music_Medal_Ch2 - dw Music_Medal_Ch3 - dw $0000 - -Music_Unused1e: ; f5049 (3d:5049) - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 diff --git a/data/music2_headers.asm b/data/music2_headers.asm deleted file mode 100755 index cafaa4f..0000000 --- a/data/music2_headers.asm +++ /dev/null @@ -1,281 +0,0 @@ -NumberOfSongs2: ; f8ee5 (3e:4ee5) - db $1f - -SongBanks2: ; f8ee6 (3e:4ee6) - db BANK(Music_Stop) - db BANK(Music_TitleScreen) - db BANK(Music_DuelTheme1) - db BANK(Music_DuelTheme2) - db BANK(Music_DuelTheme3) - db BANK(Music_PauseMenu) - db BANK(Music_PCMainMenu) - db BANK(Music_DeckMachine) - db BANK(Music_CardPop) - db BANK(Music_Overworld) - db BANK(Music_PokemonDome) - db BANK(Music_ChallengeHall) - db BANK(Music_Club1) - db BANK(Music_Club2) - db BANK(Music_Club3) - db BANK(Music_Ronald) - db BANK(Music_Imakuni) - db BANK(Music_HallOfHonor) - db BANK(Music_Credits) - db BANK(Music_Unused13) - db BANK(Music_Unused14) - db BANK(Music_MatchStart1) - db BANK(Music_MatchStart2) - db BANK(Music_MatchStart3) - db BANK(Music_MatchVictory) - db BANK(Music_MatchLoss) - db BANK(Music_DarkDiddly) - db BANK(Music_Unused1b) - db BANK(Music_BoosterPack) - db BANK(Music_Medal) - db BANK(Music_Unused1e) - -SongHeaderPointers2: ; f8f05 (3e:4f05) - dw Music_Stop - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw Music_PCMainMenu - dw $0000 - dw $0000 - dw $0000 - dw Music_PokemonDome - dw Music_ChallengeHall - dw Music_Club1 - dw Music_Club2 - dw Music_Club3 - dw Music_Ronald - dw Music_Imakuni - dw Music_HallOfHonor - dw Music_Credits - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Stop - db %0000 - -;Music_TitleScreen - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_DuelTheme1 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_DuelTheme2 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_DuelTheme3 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_PauseMenu - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -Music_PCMainMenu: ; f8f71 (3e:4f71) - db %1111 - dw Music_PCMainMenu_Ch1 - dw Music_PCMainMenu_Ch2 - dw Music_PCMainMenu_Ch3 - dw Music_PCMainMenu_Ch4 - -;Music_DeckMachine - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_CardPop - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Overworld - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -Music_PokemonDome: ; f8f95 (3e:4f95) - db %1111 - dw Music_PokemonDome_Ch1 - dw Music_PokemonDome_Ch2 - dw Music_PokemonDome_Ch3 - dw Music_PokemonDome_Ch4 - -Music_ChallengeHall: ; f8f9e (3e:4f9e) - db %1111 - dw Music_ChallengeHall_Ch1 - dw Music_ChallengeHall_Ch2 - dw Music_ChallengeHall_Ch3 - dw Music_ChallengeHall_Ch4 - -Music_Club1: ; f8fa7 (3e:4fa7) - db %1111 - dw Music_Club1_Ch1 - dw Music_Club1_Ch2 - dw Music_Club1_Ch3 - dw Music_Club1_Ch4 - -Music_Club2: ; f8fb0 (3e:4fb0) - db %0111 - dw Music_Club2_Ch1 - dw Music_Club2_Ch2 - dw Music_Club2_Ch3 - dw $0000 - -Music_Club3: ; f8fb9 (3e:4fb9) - db %1111 - dw Music_Club3_Ch1 - dw Music_Club3_Ch2 - dw Music_Club3_Ch3 - dw Music_Club3_Ch4 - -Music_Ronald: ; f8fc2 (3e:4fc2) - db %1111 - dw Music_Ronald_Ch1 - dw Music_Ronald_Ch2 - dw Music_Ronald_Ch3 - dw Music_Ronald_Ch4 - -Music_Imakuni: ; f8fcb (3e:4fcb) - db %1111 - dw Music_Imakuni_Ch1 - dw Music_Imakuni_Ch2 - dw Music_Imakuni_Ch3 - dw Music_Imakuni_Ch4 - -Music_HallOfHonor: ; f8fd4 (3e:4fd4) - db %0111 - dw Music_HallOfHonor_Ch1 - dw Music_HallOfHonor_Ch2 - dw Music_HallOfHonor_Ch3 - dw $0000 - -Music_Credits: ; f8fdd (3e:4fdd) - db %1111 - dw Music_Credits_Ch1 - dw Music_Credits_Ch2 - dw Music_Credits_Ch3 - dw Music_Credits_Ch4 - -;Music_Unused13 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Unused14 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_MatchStart1 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_MatchStart2 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_MatchStart3 - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_MatchVictory - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_MatchLoss - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_DarkDiddly - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Unused1b - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_BoosterPack - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Medal - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - -;Music_Unused1e - db %0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 diff --git a/data/noise_instruments.asm b/data/noise_instruments.asm deleted file mode 100755 index 96433ab..0000000 --- a/data/noise_instruments.asm +++ /dev/null @@ -1,37 +0,0 @@ - dw .bass - dw .unused - dw .snare1 - dw .unused - dw .snare2 - dw .unused - dw .snare3 - dw .unused - dw .snare4 - dw .unused - dw .unused - dw .snare5 - -.unused - db $00,$ed,$02,$c0,$46,$63,$ff - -.bass - db $88,$32,$d2,$c0,$46,$61,$ff - -.snare1 - db $88,$24,$a1,$80,$16,$16,$16,$15,$17,$ff - -.snare2 - db $88,$00,$95,$80,$05,$04,$02,$01,$ff - -.snare3 - db $88,$32,$b1,$c0,$02,$01,$01,$01,$ff - -.snare4 - db $88,$00,$84,$80,$04,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02 - db $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02 - db $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$ff - -.snare5 - db $88,$00,$c4,$80,$05,$03,$03,$03,$03,$03,$03,$03,$03,$02,$02,$02,$02,$02 - db $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02 - db $02,$02,$02,$02,$02,$02,$02,$02,$02,$01,$01,$01,$01,$01,$01,$ff diff --git a/data/sfx_headers.asm b/data/sfx_headers.asm deleted file mode 100755 index 6485425..0000000 --- a/data/sfx_headers.asm +++ /dev/null @@ -1,494 +0,0 @@ -NumberOfSFX: ; fc290 (3f:4290) - db $60 - -SFXHeaderPointers: ; fc291 (3f:4291) - dw SFX_Stop - dw SFX_01 - dw SFX_02 - dw SFX_03 - dw SFX_04 - dw SFX_05 - dw SFX_06 - dw SFX_07 - dw SFX_08 - dw SFX_09 - dw SFX_0a - dw SFX_0b - dw SFX_0c - dw SFX_0d - dw SFX_0e - dw SFX_0f - dw SFX_10 - dw SFX_11 - dw SFX_12 - dw SFX_13 - dw SFX_14 - dw SFX_15 - dw SFX_16 - dw SFX_17 - dw SFX_18 - dw SFX_19 - dw SFX_1a - dw SFX_1b - dw SFX_1c - dw SFX_1d - dw SFX_1e - dw SFX_1f - dw SFX_20 - dw SFX_21 - dw SFX_22 - dw SFX_23 - dw SFX_24 - dw SFX_25 - dw SFX_26 - dw SFX_27 - dw SFX_28 - dw SFX_29 - dw SFX_2a - dw SFX_2b - dw SFX_2c - dw SFX_2d - dw SFX_2e - dw SFX_2f - dw SFX_30 - dw SFX_31 - dw SFX_32 - dw SFX_33 - dw SFX_34 - dw SFX_35 - dw SFX_36 - dw SFX_37 - dw SFX_38 - dw SFX_39 - dw SFX_3a - dw SFX_3b - dw SFX_3c - dw SFX_3d - dw SFX_3e - dw SFX_3f - dw SFX_40 - dw SFX_41 - dw SFX_42 - dw SFX_43 - dw SFX_44 - dw SFX_45 - dw SFX_46 - dw SFX_47 - dw SFX_48 - dw SFX_49 - dw SFX_4a - dw SFX_4b - dw SFX_4c - dw SFX_4d - dw SFX_4e - dw SFX_4f - dw SFX_50 - dw SFX_51 - dw SFX_52 - dw SFX_53 - dw SFX_54 - dw SFX_55 - dw SFX_56 - dw SFX_57 - dw SFX_58 - dw SFX_59 - dw SFX_5a - dw SFX_5b - dw SFX_5c - dw SFX_5d - dw SFX_5e - dw SFX_5f - -SFX_Stop: ; fc351 (3f:4351) - db %0000 - -SFX_01: ; fc352 (3f:4352) - db %0010 - dw SFX_01_Ch1 - -SFX_02: ; fc355 (3f:4355) - db %0010 - dw SFX_02_Ch1 - -SFX_03: ; fc358 (3f:4358) - db %0010 - dw SFX_03_Ch1 - -SFX_04: ; fc35b (3f:435b) - db %0010 - dw SFX_04_Ch1 - -SFX_05: ; fc35e (3f:435e) - db %0010 - dw SFX_05_Ch1 - -SFX_06: ; fc361 (3f:4361) - db %0010 - dw SFX_06_Ch1 - -SFX_07: ; fc364 (3f:4364) - db %1000 - dw SFX_07_Ch1 - -SFX_08: ; fc367 (3f:4367) - db %1000 - dw SFX_08_Ch1 - -SFX_09: ; fc36a (3f:436a) - db %1000 - dw SFX_09_Ch1 - -SFX_0a: ; fc36d (3f:436d) - db %0010 - dw SFX_0a_Ch1 - -SFX_0b: ; fc370 (3f:4370) - db %0010 - dw SFX_0b_Ch1 - -SFX_0c: ; fc373 (3f:4373) - db %1000 - dw SFX_0c_Ch1 - -SFX_0d: ; fc376 (3f:4376) - db %0010 - dw SFX_0d_Ch1 - -SFX_0e: ; fc379 (3f:4379) - db %0010 - dw SFX_0e_Ch1 - -SFX_0f: ; fc37c (3f:437c) - db %1000 - dw SFX_0f_Ch1 - -SFX_10: ; fc37f (3f:437f) - db %0010 - dw SFX_10_Ch1 - -SFX_11: ; fc382 (3f:4382) - db %0010 - dw SFX_11_Ch1 - -SFX_12: ; fc385 (3f:4385) - db %0010 - dw SFX_12_Ch1 - -SFX_13: ; fc388 (3f:4388) - db %0010 - dw SFX_13_Ch1 - -SFX_14: ; fc38b (3f:438b) - db %0010 - dw SFX_14_Ch1 - -SFX_15: ; fc38e (3f:438e) - db %0010 - dw SFX_15_Ch1 - -SFX_16: ; fc391 (3f:4391) - db %1000 - dw SFX_16_Ch1 - -SFX_17: ; fc394 (3f:4394) - db %1000 - dw SFX_17_Ch1 - -SFX_18: ; fc397 (3f:4397) - db %1000 - dw SFX_18_Ch1 - -SFX_19: ; fc39a (3f:439a) - db %1000 - dw SFX_19_Ch1 - -SFX_1a: ; fc39d (3f:439d) - db %1000 - dw SFX_1a_Ch1 - -SFX_1b: ; fc3a0 (3f:43a0) - db %1000 - dw SFX_1b_Ch1 - -SFX_1c: ; fc3a3 (3f:43a3) - db %1000 - dw SFX_1c_Ch1 - -SFX_1d: ; fc3a6 (3f:43a6) - db %1000 - dw SFX_1d_Ch1 - -SFX_1e: ; fc3a9 (3f:43a9) - db %1000 - dw SFX_1e_Ch1 - -SFX_1f: ; fc3ac (3f:43ac) - db %1000 - dw SFX_1f_Ch1 - -SFX_20: ; fc3af (3f:43af) - db %1000 - dw SFX_20_Ch1 - -SFX_21: ; fc3b2 (3f:43b2) - db %1000 - dw SFX_21_Ch1 - -SFX_22: ; fc3b5 (3f:43b5) - db %1000 - dw SFX_22_Ch1 - -SFX_23: ; fc3b8 (3f:43b8) - db %1000 - dw SFX_23_Ch1 - -SFX_24: ; fc3bb (3f:43bb) - db %1000 - dw SFX_24_Ch1 - -SFX_25: ; fc3be (3f:43be) - db %0010 - dw SFX_25_Ch1 - -SFX_26: ; fc3c1 (3f:43c1) - db %0010 - dw SFX_26_Ch1 - -SFX_27: ; fc3c4 (3f:43c4) - db %0010 - dw SFX_27_Ch1 - -SFX_28: ; fc3c7 (3f:43c7) - db %1010 - dw SFX_28_Ch1 - dw SFX_28_Ch2 - -SFX_29: ; fc3cc (3f:43cc) - db %1000 - dw SFX_29_Ch1 - -SFX_2a: ; fc3cf (3f:43cf) - db %1000 - dw SFX_2a_Ch1 - -SFX_2b: ; fc3d2 (3f:43d2) - db %0010 - dw SFX_2b_Ch1 - -SFX_2c: ; fc3d5 (3f:43d5) - db %0010 - dw SFX_2c_Ch1 - -SFX_2d: ; fc3d8 (3f:43d8) - db %1000 - dw SFX_2d_Ch1 - -SFX_2e: ; fc3db (3f:43db) - db %1000 - dw SFX_2e_Ch1 - -SFX_2f: ; fc3de (3f:43de) - db %1000 - dw SFX_2f_Ch1 - -SFX_30: ; fc3e1 (3f:43e1) - db %1000 - dw SFX_30_Ch1 - -SFX_31: ; fc3e4 (3f:43e4) - db %0010 - dw SFX_31_Ch1 - -SFX_32: ; fc3e7 (3f:43e7) - db %1010 - dw SFX_32_Ch1 - dw SFX_32_Ch2 - -SFX_33: ; fc3ec (3f:43ec) - db %1010 - dw SFX_33_Ch1 - dw SFX_33_Ch2 - -SFX_34: ; fc3f1 (3f:43f1) - db %0010 - dw SFX_34_Ch1 - -SFX_35: ; fc3f4 (3f:43f4) - db %1000 - dw SFX_35_Ch1 - -SFX_36: ; fc3f7 (3f:43f7) - db %0010 - dw SFX_36_Ch1 - -SFX_37: ; fc3fa (3f:43fa) - db %1010 - dw SFX_37_Ch1 - dw SFX_37_Ch2 - -SFX_38: ; fc3ff (3f:43ff) - db %0010 - dw SFX_38_Ch1 - -SFX_39: ; fc402 (3f:4402) - db %1010 - dw SFX_39_Ch1 - dw SFX_39_Ch2 - -SFX_3a: ; fc407 (3f:4407) - db %0010 - dw SFX_3a_Ch1 - -SFX_3b: ; fc40a (3f:440a) - db %0010 - dw SFX_3b_Ch1 - -SFX_3c: ; fc40d (3f:440d) - db %0010 - dw SFX_3c_Ch1 - -SFX_3d: ; fc410 (3f:4410) - db %0010 - dw SFX_3d_Ch1 - -SFX_3e: ; fc413 (3f:4413) - db %0010 - dw SFX_3e_Ch1 - -SFX_3f: ; fc416 (3f:4416) - db %1000 - dw SFX_3f_Ch1 - -SFX_40: ; fc419 (3f:4419) - db %0010 - dw SFX_40_Ch1 - -SFX_41: ; fc41c (3f:441c) - db %0010 - dw SFX_41_Ch1 - -SFX_42: ; fc41f (3f:441f) - db %0010 - dw SFX_42_Ch1 - -SFX_43: ; fc422 (3f:4422) - db %1000 - dw SFX_43_Ch1 - -SFX_44: ; fc425 (3f:4425) - db %1000 - dw SFX_44_Ch1 - -SFX_45: ; fc428 (3f:4428) - db %0010 - dw SFX_45_Ch1 - -SFX_46: ; fc42b (3f:442b) - db %0010 - dw SFX_46_Ch1 - -SFX_47: ; fc42e (3f:442e) - db %1000 - dw SFX_47_Ch1 - -SFX_48: ; fc431 (3f:4431) - db %1000 - dw SFX_48_Ch1 - -SFX_49: ; fc434 (3f:4434) - db %0010 - dw SFX_49_Ch1 - -SFX_4a: ; fc437 (3f:4437) - db %0010 - dw SFX_4a_Ch1 - -SFX_4b: ; fc43a (3f:443a) - db %1000 - dw SFX_4b_Ch1 - -SFX_4c: ; fc43d (3f:443d) - db %0010 - dw SFX_4c_Ch1 - -SFX_4d: ; fc440 (3f:4440) - db %0010 - dw SFX_4d_Ch1 - -SFX_4e: ; fc443 (3f:4443) - db %0010 - dw SFX_4e_Ch1 - -SFX_4f: ; fc446 (3f:4446) - db %0010 - dw SFX_4f_Ch1 - -SFX_50: ; fc449 (3f:4449) - db %1010 - dw SFX_50_Ch1 - dw SFX_50_Ch2 - -SFX_51: ; fc44e (3f:444e) - db %1010 - dw SFX_51_Ch1 - dw SFX_51_Ch2 - -SFX_52: ; fc453 (3f:4453) - db %1010 - dw SFX_52_Ch1 - dw SFX_52_Ch2 - -SFX_53: ; fc458 (3f:4458) - db %1010 - dw SFX_53_Ch1 - dw SFX_53_Ch2 - -SFX_54: ; fc45d (3f:445d) - db %0010 - dw SFX_54_Ch1 - -SFX_55: ; fc460 (3f:4460) - db %0010 - dw SFX_55_Ch1 - -SFX_56: ; fc463 (3f:4463) - db %0010 - dw SFX_56_Ch1 - -SFX_57: ; fc466 (3f:4466) - db %0010 - dw SFX_57_Ch1 - -SFX_58: ; fc469 (3f:4469) - db %0010 - dw SFX_58_Ch1 - -SFX_59: ; fc46c (3f:446c) - db %0010 - dw SFX_59_Ch1 - -SFX_5a: ; fc46f (3f:446f) - db %0010 - dw SFX_5a_Ch1 - -SFX_5b: ; fc472 (3f:4472) - db %0010 - dw SFX_5b_Ch1 - -SFX_5c: ; fc475 (3f:4475) - db %1000 - dw SFX_5c_Ch1 - -SFX_5d: ; fc478 (3f:4478) - db %1011 - dw SFX_5d_Ch1 - dw SFX_5d_Ch2 - dw SFX_5d_Ch3 - -SFX_5e: ; fc47f (3f:447f) - db %0010 - dw SFX_5e_Ch1 - -SFX_5f: ; fc482 (3f:4482) - db %1000 - dw SFX_5f_Ch1 diff --git a/data/vibrato_types.asm b/data/vibrato_types.asm deleted file mode 100755 index d51546e..0000000 --- a/data/vibrato_types.asm +++ /dev/null @@ -1,44 +0,0 @@ - dw .vibratoType0 - dw .vibratoType1 - dw .vibratoType2 - dw .vibratoType3 - dw .vibratoType4 - dw .vibratoType5 - dw .vibratoType6 - dw .vibratoType7 - dw .vibratoType8 - dw .vibratoType9 - dw .vibratoTypeA - -.vibratoType0 - db $00,$80,$80 - -.vibratoType1 - db $01,$02,$01,$00,$ff,$fe,$ff,$00,$80,$80 - -.vibratoType2 - db $03,$fd,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$01 - -.vibratoType3 - db $01,$01,$00,$00,$ff,$ff,$00,$00,$80,$80 - -.vibratoType4 - db $01,$01,$01,$00,$00,$00,$ff,$ff,$ff,$00,$00,$00,$80,$80 - -.vibratoType5 - db $02,$04,$06,$04,$02,$00,$fe,$fc,$fa,$fc,$fe,$00,$80,$80 - -.vibratoType6 - db $04,$04,$08,$08,$04,$04,$00,$00,$fc,$fc,$f8,$f8,$fc,$fc,$00,$00,$80,$80 - -.vibratoType7 - db $f8,$f8,$f9,$f9,$fa,$fa,$fb,$fb,$fc,$fc,$fd,$fd,$fe,$fe,$ff,$ff,$00,$00,$80,$05 - -.vibratoType8 - db $02,$04,$02,$00,$fe,$fc,$fe,$00,$80,$80 - -.vibratoType9 - db $01,$02,$04,$02,$01,$00,$ff,$fe,$fc,$fe,$ff,$00,$80,$08 - -.vibratoTypeA - db $01,$01,$01,$01,$00,$00,$00,$00,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$80,$80 diff --git a/data/wave_instruments.asm b/data/wave_instruments.asm deleted file mode 100755 index 98197dc..0000000 --- a/data/wave_instruments.asm +++ /dev/null @@ -1,20 +0,0 @@ - dw .wave0 - dw .wave1 - dw .wave2 - dw .wave3 - dw .wave4 - -.wave0 - db $79,$bd,$ff,$ff,$ff,$ff,$fd,$b9,$75,$31,$00,$00,$00,$00,$01,$35 - -.wave1 - db $01,$12,$23,$34,$45,$56,$67,$77,$88,$99,$aa,$bb,$cc,$dd,$ee,$ff - -.wave2 - db $46,$8a,$cc,$cc,$cc,$cc,$ca,$86,$42,$11,$00,$00,$00,$00,$01,$12 - -.wave3 - db $7a,$df,$ff,$da,$74,$10,$00,$14,$7a,$df,$ff,$da,$74,$10,$00,$14 - -.wave4 - db $ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$00,$00,$00,$00,$00,$00,$00,$00 diff --git a/engine/home.asm b/engine/home.asm index e7570cc..dd06781 100755 --- a/engine/home.asm +++ b/engine/home.asm @@ -4830,7 +4830,7 @@ Func_3e2a: ; 3e2a (0:3e2a) INCBIN "baserom.gbc",$3e31,$3fe0 - $3e31 ; jumps to 3f:hl -Bankswitch3dTo3f: ; 3fe0 (0:3fe0) +Bankswitch3dTo3f:: ; 3fe0 (0:3fe0) push af ld a, $3f ld [hBankROM], a diff --git a/engine/music1.asm b/engine/music1.asm deleted file mode 100755 index 21b7007..0000000 --- a/engine/music1.asm +++ /dev/null @@ -1,1891 +0,0 @@ -SetupSound_Ext: ; f4000 (3d:4000) - jp Func_f407d - -SoundTimerHandler_Ext: ; f4003 (3d:4003) - jp Func_f40e9 - -Func_f4006: ; f4006 (3d:4006) - jp Func_f4021 - -Func_f4009: ; f4009 (3d:4009) - jp Func_f402d - -Func_f400c: ; f400c (3d:400c) - jp Func_f404e - -Func_f400f: ; f400f (3d:400f) - jp Func_f4052 - -Func_f4012: ; f4012 (3d:4012) - jp Func_f405c - -Func_f4015: ; f4015 (3d:4015) - jp Func_f4066 - -Func_f4018: ; f4018 (3d:4018) - jp Func_f406f - -Func_f401b: ; f401b (3d:401b) - jp Func_f49c4 - -Func_f401e: ; f401e (3d:401e) - jp Func_f49d0 - -Func_f4021: ; f4021 (3d:4021) - push hl - ld hl, NumberOfSongs1 - cp [hl] - jr nc, .asm_f402b - ld [$dd80], a -.asm_f402b - pop hl - ret - -Func_f402d: ; f402d (3d:402d) - push bc - push hl - ld b, $0 - ld c, a - or a - jr z, .asm_f4043 - ld hl, Unknown_f4e85 - add hl, bc - ld b, [hl] - ld a, [$dd83] - or a - jr z, .asm_f4043 - cp b - jr c, .asm_f404b -.asm_f4043 - ld a, b - ld [$dd83], a - ld a, c - ld [$dd82], a -.asm_f404b - pop hl - pop bc - ret - -Func_f404e: ; f404e (3d:404e) - ld [$ddf0], a - ret - -Func_f4052: ; f4052 (3d:4052) - ld a, [$dd80] - cp $80 - ld a, $1 - ret nz - xor a - ret - -Func_f405c: ; f405c (3d:405c) - ld a, [$dd82] - cp $80 - ld a, $1 - ret nz - xor a - ret - -Func_f4066: ; f4066 (3d:4066) - ld a, [$ddf2] - xor $1 - ld [$ddf2], a - ret - -Func_f406f: ; f406f (3d:406f) - push bc - push af - and $7 - ld b, a - swap b - or b - ld [$ddf1], a - pop af - pop bc - ret - -Func_f407d: ; f407d (3d:407d) - xor a - ld [rNR52], a - ld a, $80 - ld [rNR52], a - ld a, $77 - ld [rNR50], a - ld a, $ff - ld [rNR51], a - ld a, $3d - ld [$dd81], a - ld a, $80 - ld [$dd80], a - ld [$dd82], a - ld a, $77 - ld [$ddf1], a - xor a - ld [$dd8c], a - ld [$de53], a - ld [wMusicWaveChange], a - ld [$ddef], a - ld [$ddf0], a - ld [$ddf2], a - dec a - ld [wMusicDC], a - ld de, $0001 - ld bc, $0000 -.asm_f40bb - ld hl, wMusicIsPlaying - add hl, bc - ld [hl], d - ld hl, wMusicTie - add hl, bc - ld [hl], d - ld hl, $ddb3 - add hl, bc - ld [hl], d - ld hl, wMusicEC - add hl, bc - ld [hl], d - ld hl, wMusicE8 - add hl, bc - ld [hl], d - inc c - ld a, c - cp $4 - jr nz, .asm_f40bb - ld hl, Unknown_f4c20 - ld bc, wMusicReturnAddress - ld d, $8 -.asm_f40e2 - ld a, [hli] - ld [bc], a - inc bc - dec d - jr nz, .asm_f40e2 - ret - -Func_f40e9: ; f40e9 (3d:40e9) - call Func_f42a4 - call Func_f411c - ld hl, Func_fc003 - call Bankswitch3dTo3f - ld a, [$dd81] - ld [hBankROM], a - ld [MBC3RomBank], a - ld a, [$ddf2] - cp $0 - jr z, .asm_f4109 - call Func_f4980 - jr .asm_f4115 -.asm_f4109 - call Func_f42a5 - call Func_f430a - call Func_f436f - call Func_f43ce -.asm_f4115 - call Func_f4866 - call Func_f49b1 - ret - -Func_f411c: ; f411c (3d:411c) - ld a, [$dd80] - rla - jr c, .asm_f4133 - call Func_f414b - ld a, [$dd80] - call Music1_PlaySong - ld a, [$dd80] - or $80 - ld [$dd80], a -.asm_f4133 - ld a, [$dd82] - rla - jr c, .asm_f414a - ld a, [$dd82] - ld hl, Func_fc000 - call Bankswitch3dTo3f - ld a, [$dd82] - or $80 - ld [$dd82], a -.asm_f414a - ret - -Func_f414b: ; f414b (3d:414b) - ld a, [$dd8c] - ld d, a - xor a - ld [wMusicIsPlaying], a - bit 0, d - jr nz, .asm_f415f - ld a, $8 - ld [rNR12], a - swap a - ld [rNR14], a -.asm_f415f - xor a - ld [$dd8e], a - bit 1, d - jr nz, .asm_f416f - ld a, $8 - ld [rNR22], a - swap a - ld [rNR24], a -.asm_f416f - xor a - ld [$dd90], a - bit 3, d - jr nz, .asm_f417f - ld a, $8 - ld [rNR42], a - swap a - ld [rNR44], a -.asm_f417f - xor a - ld [$dd8f], a - bit 2, d - jr nz, .asm_f418b - ld a, $0 - ld [rNR32], a -.asm_f418b - ret - -; plays the song given by the id in a -Music1_PlaySong: ; f418c (3d:418c) - push af - ld c, a - ld b, $0 - ld hl, SongBanks1 - add hl, bc - ld a, [hl] - ld [$dd81], a - ld [hBankROM], a - ld [MBC3RomBank], a - pop af - add a - ld c, a - ld b, $0 - ld hl, SongHeaderPointers1 - add hl, bc - ld e, [hl] - inc hl - ld h, [hl] - ld l, e - ld e, [hl] - inc hl - ld b, h - ld c, l - rr e - jr nc, .asm_f41eb - ld a, [bc] - inc bc - ld [$dd95], a - ld [wMusicMainLoop], a - ld a, [bc] - inc bc - ld [$dd96], a - ld [$dd9e], a - ld a, $1 - ld [$ddbb], a - ld [wMusicIsPlaying], a - xor a - ld [wMusicTie], a - ld [wMusicE4], a - ld [wMusicE8], a - ld [wMusicVibratoDelay], a - ld [wMusicEC], a - ld a, [Unknown_f4c20] - ld [wMusicReturnAddress], a - ld a, [Unknown_f4c20 + 1] - ld [$ddf4], a - ld a, $8 - ld [wMusicE9], a -.asm_f41eb - rr e - jr nc, .asm_f4228 - ld a, [bc] - inc bc - ld [$dd97], a - ld [$dd9f], a - ld a, [bc] - inc bc - ld [$dd98], a - ld [$dda0], a - ld a, $1 - ld [$ddbc], a - ld [$dd8e], a - xor a - ld [$dd92], a - ld [$ddeb], a - ld [$ddc0], a - ld [$dde0], a - ld [$ddcc], a - ld a, [Unknown_f4c20 + 2] - ld [$ddf5], a - ld a, [Unknown_f4c20 + 3] - ld [$ddf6], a - ld a, $8 - ld [$ddc8], a -.asm_f4228 - rr e - jr nc, .asm_f4265 - ld a, [bc] - inc bc - ld [$dd99], a - ld [$dda1], a - ld a, [bc] - inc bc - ld [$dd9a], a - ld [$dda2], a - ld a, $1 - ld [$ddbd], a - ld [$dd8f], a - xor a - ld [$dd93], a - ld [$ddec], a - ld [$ddc1], a - ld [$dde1], a - ld [$ddcd], a - ld a, [Unknown_f4c20 + 4] - ld [$ddf7], a - ld a, [Unknown_f4c20 + 5] - ld [$ddf8], a - ld a, $40 - ld [$ddc9], a -.asm_f4265 - rr e - jr nc, .asm_f429f - ld a, [bc] - inc bc - ld [$dd9b], a - ld [$dda3], a - ld a, [bc] - inc bc - ld [$dd9c], a - ld [$dda4], a - ld a, $1 - ld [$ddbe], a - ld [$dd90], a - xor a - ld [$dd94], a - ld [$ddc2], a - ld [$dde2], a - ld [$ddce], a - ld a, [Unknown_f4c20 + 6] - ld [$ddf9], a - ld a, [Unknown_f4c20 + 7] - ld [$ddfa], a - ld a, $40 - ld [$ddca], a -.asm_f429f - xor a - ld [$ddf2], a - ret - -Func_f42a4: ; f42a4 (3d:42a4) - ret - -Func_f42a5: ; f42a5 (3d:42a5) - ld a, [wMusicIsPlaying] - or a - jr z, .asm_f42fa - ld a, [$ddb7] - cp $0 - jr z, .asm_f42d4 - ld a, [$ddc3] - dec a - ld [$ddc3], a - jr nz, .asm_f42d4 - ld a, [$ddbb] - cp $1 - jr z, .asm_f42d4 - ld a, [$dd8c] - bit 0, a - jr nz, .asm_f42d4 - ld hl, rNR12 - ld a, [wMusicE9] - ld [hli], a - inc hl - ld a, $80 - ld [hl], a -.asm_f42d4 - ld a, [$ddbb] - dec a - ld [$ddbb], a - jr nz, .asm_f42f4 - ld a, [$dd96] - ld h, a - ld a, [$dd95] - ld l, a - ld bc, $0000 - call Music1_PlayNextNote - ld a, [wMusicIsPlaying] - or a - jr z, .asm_f42fa - call Func_f4714 -.asm_f42f4 - ld a, $0 - call Func_f485a - ret -.asm_f42fa - ld a, [$dd8c] - bit 0, a - jr nz, .asm_f4309 - ld a, $8 - ld [rNR12], a - swap a - ld [rNR14], a -.asm_f4309 - ret - -Func_f430a: ; f430a (3d:430a) - ld a, [$dd8e] - or a - jr z, .asm_f435f - ld a, [$ddb8] - cp $0 - jr z, .asm_f4339 - ld a, [$ddc4] - dec a - ld [$ddc4], a - jr nz, .asm_f4339 - ld a, [$ddbc] - cp $1 - jr z, .asm_f4339 - ld a, [$dd8c] - bit 1, a - jr nz, .asm_f4339 - ld hl, rNR22 - ld a, [$ddc8] - ld [hli], a - inc hl - ld a, $80 - ld [hl], a -.asm_f4339 - ld a, [$ddbc] - dec a - ld [$ddbc], a - jr nz, .asm_f4359 - ld a, [$dd98] - ld h, a - ld a, [$dd97] - ld l, a - ld bc, $0001 - call Music1_PlayNextNote - ld a, [$dd8e] - or a - jr z, .asm_f435f - call Func_f475a -.asm_f4359 - ld a, $1 - call Func_f485a - ret -.asm_f435f - ld a, [$dd8c] - bit 1, a - jr nz, .asm_f436e - ld a, $8 - ld [rNR22], a - swap a - ld [rNR24], a -.asm_f436e - ret - -Func_f436f: ; f436f (3d:436f) - ld a, [$dd8f] - or a - jr z, .asm_f43be - ld a, [$ddb9] - cp $0 - jr z, .asm_f4398 - ld a, [$ddc5] - dec a - ld [$ddc5], a - jr nz, .asm_f4398 - ld a, [$dd8c] - bit 2, a - jr nz, .asm_f4398 - ld a, [$ddbd] - cp $1 - jr z, .asm_f4398 - ld a, [$ddc9] - ld [rNR32], a -.asm_f4398 - ld a, [$ddbd] - dec a - ld [$ddbd], a - jr nz, .asm_f43b8 - ld a, [$dd9a] - ld h, a - ld a, [$dd99] - ld l, a - ld bc, $0002 - call Music1_PlayNextNote - ld a, [$dd8f] - or a - jr z, .asm_f43be - call Func_f479c -.asm_f43b8 - ld a, $2 - call Func_f485a - ret -.asm_f43be - ld a, [$dd8c] - bit 2, a - jr nz, .asm_f43cd - ld a, $0 - ld [rNR32], a - ld a, $80 - ld [rNR34], a -.asm_f43cd - ret - -Func_f43ce: ; f43ce (3d:43ce) - ld a, [$dd90] - or a - jr z, .asm_f4400 - ld a, [$ddbe] - dec a - ld [$ddbe], a - jr nz, .asm_f43f6 - ld a, [$dd9c] - ld h, a - ld a, [$dd9b] - ld l, a - ld bc, $0003 - call Music1_PlayNextNote - ld a, [$dd90] - or a - jr z, .asm_f4400 - call Func_f480a - jr .asm_f4413 -.asm_f43f6 - ld a, [$ddef] - or a - jr z, .asm_f4413 - call Func_f4839 - ret -.asm_f4400 - ld a, [$dd8c] - bit 3, a - jr nz, .asm_f4413 - xor a - ld [$ddef], a - ld a, $8 - ld [rNR42], a - swap a - ld [rNR44], a -.asm_f4413 - ret - -Music1_PlayNextNote: ; f4414 (3d:4414) - ld a, [hli] - push hl - push af - cp $d0 - jr c, Music1_note - sub $d0 - add a - ld e, a - ld d, $0 - ld hl, Music1_CommandTable - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld h, d - ld l, e - pop af - jp [hl] - -Music1_CommandTable: ; f442c (3d:442c) - dw Music1_speed - dw Music1_octave - dw Music1_octave - dw Music1_octave - dw Music1_octave - dw Music1_octave - dw Music1_octave - dw Music1_inc_octave - dw Music1_dec_octave - dw Music1_tie - dw Music1_end - dw Music1_end - dw Music1_musicdc - dw Music1_MainLoop - dw Music1_EndMainLoop - dw Music1_Loop - dw Music1_EndLoop - dw Music1_jp - dw Music1_call - dw Music1_ret - dw Music1_musice4 - dw Music1_duty - dw Music1_volume - dw Music1_wave - dw Music1_musice8 - dw Music1_musice9 - dw Music1_vibrato_type - dw Music1_vibrato_delay - dw Music1_musicec - dw Music1_musiced - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - dw Music1_end - -Music1_note: ; f448c (3d:448c) - push af - ld a, [hl] - ld e, a - ld hl, wMusicTie - add hl, bc - ld a, [hl] - cp $80 - jr z, .asm_f44b0 - ld [hl], $1 - xor a - ld hl, $dddb - add hl, bc - ld [hl], a - ld hl, $dde3 - add hl, bc - ld [hl], a - inc [hl] - ld hl, wMusicVibratoType2 - add hl, bc - ld a, [hl] - ld hl, wMusicVibratoType - add hl, bc - ld [hl], a -.asm_f44b0 - pop af - push de - ld hl, wMusicSpeed - add hl, bc - ld d, [hl] - and $f - inc a - cp d - jr nc, .asm_f44c0 - ld e, a - ld a, d - ld d, e -.asm_f44c0 - ld e, a -.asm_f44c1 - dec d - jr z, .asm_f44c7 - add e - jr .asm_f44c1 -.asm_f44c7 - ld hl, $ddbb - add hl, bc - ld [hl], a - pop de - ld d, a - ld a, e - cp $d9 - ld a, d - jr z, .asm_f44fb - ld e, a - ld hl, wMusicE8 - add hl, bc - ld a, [hl] - cp $8 - ld d, a - ld a, e - jr z, .asm_f44fb - push hl - push bc - ld b, $0 - ld c, a - ld hl, $0000 -.asm_f44e8 - add hl, bc - dec d - jr nz, .asm_f44e8 - srl h - rr l - srl h - rr l - srl h - rr l - ld a, l - pop bc - pop hl -.asm_f44fb - ld hl, $ddc3 - add hl, bc - ld [hl], a - pop af - and $f0 - ld hl, $ddb7 - add hl, bc - ld [hl], a - or a - jr nz, .asm_f450e - jp .asm_f458e -.asm_f450e - swap a - dec a - ld h, a - ld a, $3 - cp c - ld a, h - jr z, .asm_f451a - jr .asm_f4564 -.asm_f451a - push af - ld hl, wMusicOctave - add hl, bc - ld a, [hl] - ld d, a - sla a - add d - sla a - sla a - sla a - ld e, a - pop af - ld hl, Music1_NoiseInstruments - add a - ld d, c - ld c, a - add hl, bc - ld c, e - add hl, bc - ld c, d - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - ld d, a - ld a, [wMusicDC] - and $77 - or d - ld [wMusicDC], a - ld de, $ddab - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld b, [hl] - inc hl - ld a, [hli] - ld [de], a - inc de - ld a, b - ld [de], a - ld b, $0 - ld a, l - ld d, h - ld hl, $dded - ld [hli], a - ld [hl], d - ld a, $1 - ld [$ddef], a - jr .asm_f458e -.asm_f4564 - ld hl, $dda5 - add hl, bc - add hl, bc - push hl - ld hl, wMusicOctave - add hl, bc - ld e, [hl] - ld d, $0 - ld hl, Unknown_f4c28 - add hl, de - add a - ld e, [hl] - add e - ld hl, wMusicEC - add hl, bc - ld e, [hl] - add e - add e - ld e, a - ld hl, Unknown_f4c30 - add hl, de - ld a, [hli] - ld e, a - ld d, [hl] - call Func_f4967 - pop hl - ld a, e - ld [hli], a - ld [hl], d -.asm_f458e - pop de - ld hl, $dd95 - add hl, bc - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -Music1_speed: ; f4598 (3d:4598) - pop hl - ld a, [hli] - push hl - ld hl, wMusicSpeed - add hl, bc - ld [hl], a - jp Music1_PlayNextNote_pop - -Music1_octave: ; f45a3 (3d:45a3) - and $7 - dec a - ld hl, wMusicOctave - add hl, bc - push af - ld a, c - cp $2 - jr nz, .asm_f45b6 - pop af - inc a - ld [hl], a - jp Music1_PlayNextNote_pop -.asm_f45b6 - pop af - ld [hl], a - jp Music1_PlayNextNote_pop - -Music1_inc_octave: ; f45bb (3d:45bb) - ld hl, wMusicOctave - add hl, bc - inc [hl] - jp Music1_PlayNextNote_pop - -Music1_dec_octave: ; f45c3 (3d:45c3) - ld hl, wMusicOctave - add hl, bc - dec [hl] - jp Music1_PlayNextNote_pop - -Music1_tie: ; f45cb (3d:45cb) - ld hl, wMusicTie - add hl, bc - ld [hl], $80 - jp Music1_PlayNextNote_pop - -Music1_musicdc: ; f45d4 (3d:45d4) - pop hl - ld a, [hli] - push hl - push bc - inc c - ld e, $ee -.asm_f45db - dec c - jr z, .asm_f45e3 - rlca - rlc e - jr .asm_f45db -.asm_f45e3 - ld d, a - ld hl, wMusicDC - ld a, [hl] - and e - or d - ld [hl], a - pop bc - jp Music1_PlayNextNote_pop - -Music1_MainLoop: ; f45ef (3d:45ef) - pop de - push de - dec de - ld hl, wMusicMainLoop - add hl, bc - add hl, bc - ld [hl], e - inc hl - ld [hl], d - jp Music1_PlayNextNote_pop - -Music1_EndMainLoop: ; f45fd (3d:45fd) - pop hl - ld hl, wMusicMainLoop - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - jp Music1_PlayNextNote - -Music1_Loop: ; f4609 (3d:4609) - pop de - ld a, [de] - inc de - push af - call Music1_GetReturnAddress - ld [hl], e - inc hl - ld [hl], d - inc hl - pop af - ld [hl], a - inc hl - push de - call Music1_SetReturnAddress - jp Music1_PlayNextNote_pop - -Music1_EndLoop: ; f461e (3d:461e) - call Music1_GetReturnAddress - dec hl - ld a, [hl] - dec a - jr z, .asm_f4630 - ld [hld], a - ld d, [hl] - dec hl - ld e, [hl] - pop hl - ld h, d - ld l, e - jp Music1_PlayNextNote -.asm_f4630 - dec hl - dec hl - call Music1_SetReturnAddress - jp Music1_PlayNextNote_pop - -Music1_jp: ; f4638 (3d:4638) - pop hl - ld a, [hli] - ld h, [hl] - ld l, a - jp Music1_PlayNextNote - -Music1_call: ; f463f (3d:463f) - call Music1_GetReturnAddress - pop de - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, [de] - ld b, a - inc de - ld a, [de] - ld d, a - ld e, b - ld b, $0 - push de - call Music1_SetReturnAddress - jp Music1_PlayNextNote_pop - -Music1_ret: ; f4656 (3d:4656) - pop de - call Music1_GetReturnAddress - dec hl - ld a, [hld] - ld e, [hl] - ld d, a - inc de - inc de - push de - call Music1_SetReturnAddress - jp Music1_PlayNextNote_pop - -Music1_musice4: ; f4667 (3d:4667) - pop de - ld a, [de] - inc de - ld hl, wMusicE4 - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_duty: ; f4674 (3d:4674) - pop de - ld a, [de] - and $c0 - inc de - ld hl, wMusicDuty - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_volume: ; f4683 (3d:4683) - pop de - ld a, [de] - inc de - ld hl, wMusicVolume - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_wave: ; f4690 (3d:4690) - pop de - ld a, [de] - inc de - ld [wMusicWave], a - ld a, $1 - ld [wMusicWaveChange], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_musice8: ; f46a0 (3d:46a0) - pop de - ld a, [de] - inc de - ld hl, wMusicE8 - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_musice9: ; f46ad (3d:46ad) - pop de - ld a, [de] - inc de - ld hl, wMusicE9 - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_vibrato_type: ; f46ba (3d:46ba) - pop de - ld a, [de] - inc de - ld hl, wMusicVibratoType - add hl, bc - ld [hl], a - ld hl, wMusicVibratoType2 - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_vibrato_delay: ; f46cc (3d:46cc) - pop de - ld a, [de] - inc de - ld hl, wMusicVibratoDelay - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_musicec: ; f46d9 (3d:46d9) - pop de - ld a, [de] - inc de - ld hl, wMusicEC - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_musiced: ; f46e6 (3d:46e6) - pop de - ld a, [de] - inc de - ld hl, wMusicEC - add hl, bc - add [hl] - ld [hl], a - ld h, d - ld l, e - jp Music1_PlayNextNote - -Music1_end: ; f46f4 (3d:46f4) - ld hl, wMusicIsPlaying - add hl, bc - ld [hl], $0 - pop hl - ret - -; returns the address where the address to -; return to is stored for the current channel -Music1_GetReturnAddress: ; f46fc (3d:46fc) - ld hl, wMusicReturnAddress - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ret - -; puts the address in hl where the address to -; return to is stored for the currentchannel -Music1_SetReturnAddress: ; f4705 (3d:4705) - ld d, h - ld e, l - ld hl, wMusicReturnAddress - add hl, bc - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -Music1_PlayNextNote_pop ; f4710 (3d:4710) - pop hl - jp Music1_PlayNextNote - -Func_f4714: ; f4714 (3d:4714) - ld a, [$dd8c] - bit 0, a - jr nz, .asm_f4749 - ld a, [$ddb7] - cp $0 - jr z, .asm_f474a - ld d, $0 - ld hl, wMusicTie - ld a, [hl] - cp $80 - jr z, .asm_f4733 - ld a, [wMusicVolume] - ld [rNR12], a - ld d, $80 -.asm_f4733 - ld [hl], $2 - ld a, $8 - ld [rNR10], a - ld a, [wMusicDuty] - ld [rNR11], a - ld a, [$dda5] - ld [rNR13], a - ld a, [$dda6] - or d - ld [rNR14], a -.asm_f4749 - ret -.asm_f474a - ld hl, wMusicTie - ld [hl], $0 - ld hl, rNR12 - ld a, $8 - ld [hli], a - inc hl - swap a - ld [hl], a - ret - -Func_f475a: ; f475a (3d:475a) - ld a, [$dd8c] - bit 1, a - jr nz, .asm_f478b - ld a, [$ddb8] - cp $0 - jr z, .asm_f478c - ld d, $0 - ld hl, $dd92 - ld a, [hl] - cp $80 - jr z, .asm_f4779 - ld a, [$dde8] - ld [rNR22], a - ld d, $80 -.asm_f4779 - ld [hl], $2 - ld a, [$dd87] - ld [rNR21], a - ld a, [$dda7] - ld [rNR23], a - ld a, [$dda8] - or d - ld [rNR24], a -.asm_f478b - ret -.asm_f478c - ld hl, $dd92 - ld [hl], $0 - ld hl, rNR22 - ld a, $8 - ld [hli], a - inc hl - swap a - ld [hl], a - ret - -Func_f479c: ; f479c (3d:479c) - ld a, [$dd8c] - bit 2, a - jr nz, .asm_f47e0 - ld d, $0 - ld a, [wMusicWaveChange] - or a - jr z, .asm_f47b3 - xor a - ld [rNR30], a - call Func_f47ea - ld d, $80 -.asm_f47b3 - ld a, [$ddb9] - cp $0 - jr z, .asm_f47e1 - ld hl, $dd93 - ld a, [hl] - cp $80 - jr z, .asm_f47cc - ld a, [$dde9] - ld [rNR32], a - xor a - ld [rNR30], a - ld d, $80 -.asm_f47cc - ld [hl], $2 - xor a - ld [rNR31], a - ld a, [$dda9] - ld [rNR33], a - ld a, $80 - ld [rNR30], a - ld a, [$ddaa] - or d - ld [rNR34], a -.asm_f47e0 - ret -.asm_f47e1 - ld hl, wMusicTie - ld [hl], $0 - xor a - ld [rNR30], a - ret - -Func_f47ea: ; f479c (3d:47ea) - ld a, [wMusicWave] - add a - ld d, $0 - ld e, a - ld hl, Music1_WaveInstruments - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld b, d - ld de, $ff30 -.asm_f47fc - ld a, [hli] - ld [de], a - inc de - inc b - ld a, b - cp $10 - jr nz, .asm_f47fc - xor a - ld [wMusicWaveChange], a - ret - -Func_f480a: ; f480a (3d:480a) - ld a, [$dd8c] - bit 3, a - jr nz, .asm_f4829 - ld a, [$ddba] - cp $0 - jr z, asm_f482a - ld de, rNR41 - ld hl, $ddab - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a -.asm_f4829 - ret -asm_f482a - xor a - ld [$ddef], a - ld hl, rNR42 - ld a, $8 - ld [hli], a - inc hl - swap a - ld [hl], a - ret - -Func_f4839: ; f4839 (3d:4839) - ld a, [$dd8c] - bit 3, a - jr z, .asm_f4846 - xor a - ld [$ddef], a - jr .asm_f4859 -.asm_f4846 - ld hl, $dded - ld a, [hli] - ld d, [hl] - ld e, a - ld a, [de] - cp $ff - jr nz, .asm_f4853 - jr asm_f482a -.asm_f4853 - ld [rNR43], a - inc de - ld a, d - ld [hld], a - ld [hl], e -.asm_f4859 - ret - -Func_f485a: ; f485a (3d:485a) - push af - ld b, $0 - ld c, a - call Func_f4898 - pop af - call Func_f490b - ret - -Func_f4866: ; f4866 (3d:4866) - ld a, [$ddf1] - ld [rNR50], a - ld a, [$dd8c] - or a - ld hl, wMusicDC - ld a, [hli] - jr z, .asm_f4888 - ld a, [$dd8c] - and $f - ld d, a - swap d - or d - ld d, a - xor $ff - ld e, a - ld a, [hld] - and d - ld d, a - ld a, [hl] - and e - or d -.asm_f4888 - ld d, a - ld a, [$ddf0] - xor $ff - and $f - ld e, a - swap e - or e - and d - ld [rNR51], a - ret - -Func_f4898: ; f4898 (3d:4898) - ld hl, wMusicVibratoDelay - add hl, bc - ld a, [hl] - cp $0 - jr z, .asm_f4902 - ld hl, $dde3 - add hl, bc - cp [hl] - jr z, .asm_f48ab - inc [hl] - jr .asm_f4902 -.asm_f48ab - ld hl, wMusicVibratoType - add hl, bc - ld e, [hl] - ld d, $0 - ld hl, Music1_VibratoTypes - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld hl, $dddb - add hl, bc - ld d, $0 - ld e, [hl] - inc [hl] - pop hl - add hl, de - ld a, [hli] - cp $80 - jr z, .asm_f48ee - ld hl, $dda5 - add hl, bc - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - bit 7, a - jr nz, .asm_f48df - add e - ld e, a - ld a, $0 - adc d - and $7 - ld d, a - ret -.asm_f48df - xor $ff - inc a - push bc - ld c, a - ld a, e - sub c - ld e, a - ld a, d - sbc b - and $7 - ld d, a - pop bc - ret -.asm_f48ee - push hl - ld hl, $dddb - add hl, bc - ld [hl], $0 - pop hl - ld a, [hl] - cp $80 - jr z, .asm_f48ab - ld hl, wMusicVibratoType - add hl, bc - ld [hl], a - jr .asm_f48ab -.asm_f4902 - ld hl, $dda5 - add hl, bc - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ret - -Func_f490b: ; f490b (3d:490b) - cp $0 - jr nz, .asm_f492c - ld a, [wMusicVibratoDelay] - cp $0 - jr z, .asm_f4966 - ld a, [$dd8c] - bit 0, a - jr nz, .asm_f4966 - ld a, e - ld [rNR13], a - ld a, [rNR11] - and $c0 - ld [rNR11], a - ld a, d - and $3f - ld [rNR14], a - ret -.asm_f492c - cp $1 - jr nz, .asm_f494b - ld a, [$dde0] - cp $0 - jr z, .asm_f4966 - ld a, [$dd8c] - bit 1, a - jr nz, .asm_f4966 - ld a, e - ld [rNR23], a - ld a, [rNR21] - and $c0 - ld [rNR21], a - ld a, d - ld [rNR24], a - ret -.asm_f494b - cp $2 - jr nz, .asm_f4966 - ld a, [$dde1] - cp $0 - jr z, .asm_f4966 - ld a, [$dd8c] - bit 2, a - jr nz, .asm_f4966 - ld a, e - ld [rNR33], a - xor a - ld [rNR31], a - ld a, d - ld [rNR34], a -.asm_f4966 - ret - -Func_f4967: ; f4967 (3d:4967) - ld hl, wMusicE4 - add hl, bc - ld a, [hl] - bit 7, a - jr nz, .asm_f4976 - add e - ld e, a - ld a, d - adc b - ld d, a - ret -.asm_f4976 - xor $ff - ld h, a - ld a, e - sub h - ld e, a - ld a, d - sbc b - ld d, a - ret - -Func_f4980: ; f4980 (3d:4980) - ld a, [$dd8c] - ld d, a - bit 0, d - jr nz, .asm_f4990 - ld a, $8 - ld [rNR12], a - swap a - ld [rNR14], a -.asm_f4990 - bit 1, d - jr nz, .asm_f499c - swap a - ld [rNR22], a - swap a - ld [rNR24], a -.asm_f499c - bit 3, d - jr nz, .asm_f49a8 - swap a - ld [rNR42], a - swap a - ld [rNR44], a -.asm_f49a8 - bit 2, d - jr nz, .asm_f49b0 - ld a, $0 - ld [rNR32], a -.asm_f49b0 - ret - -Func_f49b1: ; f49b1 (3d:49b1) - ld hl, wMusicIsPlaying - xor a - add [hl] - inc hl - add [hl] - inc hl - add [hl] - inc hl - add [hl] - or a - ret nz - ld a, $80 - ld [$dd80], a - ret - -Func_f49c4: ; f49c4 (3d:49c4) - di - call Func_f4980 - call Func_f49dc - call Func_f414b - ei - ret - -Func_f49d0: ; f49d0 (3d:49d0) - di - call Func_f4980 - call Func_f414b - call Func_f4b01 - ei - ret - -Func_f49dc: ; f49dc (3d:49dc) - ld a, [$dd80] - ld [$de55], a - ld a, [$dd81] - ld [$de56], a - ld a, [wMusicDC] - ld [$de57], a - ld hl, wMusicDuty - ld de, $de58 - ld a, $4 - call Music1_CopyData - ld a, [wMusicWave] - ld [$de5c], a - ld a, [wMusicWaveChange] - ld [$de5d], a - ld hl, wMusicIsPlaying - ld de, $de5e - ld a, $4 - call Music1_CopyData - ld hl, wMusicTie - ld de, $de62 - ld a, $4 - call Music1_CopyData - ld hl, $dd95 - ld de, $de66 - ld a, $8 - call Music1_CopyData - ld hl, wMusicMainLoop - ld de, $de6e - ld a, $8 - call Music1_CopyData - ld a, [$ddab] - ld [$de76], a - ld a, [$ddac] - ld [$de77], a - ld hl, wMusicOctave - ld de, $de78 - ld a, $4 - call Music1_CopyData - ld hl, $ddb3 - ld de, $de7c - ld a, $4 - call Music1_CopyData - ld hl, $ddb7 - ld de, $de80 - ld a, $4 - call Music1_CopyData - ld hl, $ddbb - ld de, $de84 - ld a, $4 - call Music1_CopyData - ld hl, wMusicE8 - ld de, $de88 - ld a, $4 - call Music1_CopyData - ld hl, $ddc3 - ld de, $de8c - ld a, $4 - call Music1_CopyData - ld hl, wMusicE9 - ld de, $de90 - ld a, $4 - call Music1_CopyData - ld hl, wMusicEC - ld de, $de94 - ld a, $4 - call Music1_CopyData - ld hl, wMusicSpeed - ld de, $de98 - ld a, $4 - call Music1_CopyData - ld hl, wMusicVibratoType2 - ld de, $de9c - ld a, $4 - call Music1_CopyData - ld hl, wMusicVibratoDelay - ld de, $dea0 - ld a, $4 - call Music1_CopyData - ld a, $0 - ld [$dddb], a - ld [$dddc], a - ld [$dddd], a - ld [$ddde], a - ld hl, wMusicVolume - ld de, $dea4 - ld a, $3 - call Music1_CopyData - ld hl, wMusicE4 - ld de, $dea7 - ld a, $3 - call Music1_CopyData - ld hl, $dded - ld de, $deaa - ld a, $2 - call Music1_CopyData - ld a, $0 - ld [$deac], a - ld hl, wMusicReturnAddress - ld de, $dead - ld a, $8 - call Music1_CopyData - ld hl, $ddfb - ld de, $deb5 - ld a, $30 - call Music1_CopyData - ret - -Func_f4b01: ; f4b01 (3d:4b01) - ld a, [$de55] - ld [$dd80], a - ld a, [$de56] - ld [$dd81], a - ld a, [$de57] - ld [wMusicDC], a - ld hl, $de58 - ld de, wMusicDuty - ld a, $4 - call Music1_CopyData - ld a, [$de5c] - ld [wMusicWave], a - ld a, $1 - ld [wMusicWaveChange], a - ld hl, $de5e - ld de, wMusicIsPlaying - ld a, $4 - call Music1_CopyData - ld hl, $de62 - ld de, wMusicTie - ld a, $4 - call Music1_CopyData - ld hl, $de66 - ld de, $dd95 - ld a, $8 - call Music1_CopyData - ld hl, $de6e - ld de, wMusicMainLoop - ld a, $8 - call Music1_CopyData - ld a, [$de76] - ld [$ddab], a - ld a, [$de77] - ld [$ddac], a - ld hl, $de78 - ld de, wMusicOctave - ld a, $4 - call Music1_CopyData - ld hl, $de7c - ld de, $ddb3 - ld a, $4 - call Music1_CopyData - ld hl, $de80 - ld de, $ddb7 - ld a, $4 - call Music1_CopyData - ld hl, $de84 - ld de, $ddbb - ld a, $4 - call Music1_CopyData - ld hl, $de88 - ld de, wMusicE8 - ld a, $4 - call Music1_CopyData - ld hl, $de8c - ld de, $ddc3 - ld a, $4 - call Music1_CopyData - ld hl, $de90 - ld de, wMusicE9 - ld a, $4 - call Music1_CopyData - ld hl, $de94 - ld de, wMusicEC - ld a, $4 - call Music1_CopyData - ld hl, $de98 - ld de, wMusicSpeed - ld a, $4 - call Music1_CopyData - ld hl, $de9c - ld de, wMusicVibratoType2 - ld a, $4 - call Music1_CopyData - ld hl, $dea0 - ld de, wMusicVibratoDelay - ld a, $4 - call Music1_CopyData - ld hl, $dea4 - ld de, wMusicVolume - ld a, $3 - call Music1_CopyData - ld hl, $dea7 - ld de, wMusicE4 - ld a, $3 - call Music1_CopyData - ld hl, $deaa - ld de, $dded - ld a, $2 - call Music1_CopyData - ld a, [$deac] - ld [$ddef], a - ld hl, $dead - ld de, wMusicReturnAddress - ld a, $8 - call Music1_CopyData - ld hl, $deb5 - ld de, $ddfb - ld a, $30 - call Music1_CopyData - ret - -; copies a bytes from hl to de -Music1_CopyData: ; f4c18 (3d:4c18) - ld c, a -.asm_f4c19 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_f4c19 - ret - -Unknown_f4c20: ; f4c20 (3d:4c20) -INCBIN "baserom.gbc",$f4c20,$f4c28 - $f4c20 - -Unknown_f4c28: ; f4c28 (3d:4c28) -INCBIN "baserom.gbc",$f4c28,$f4c30 - $f4c28 - -Unknown_f4c30: ; f4c30 (3d:4c30) -INCBIN "baserom.gbc",$f4c30,$f4cda - $f4c30 - -Music1_WaveInstruments: ; f4cda (3d:4cda) -INCLUDE "data/wave_instruments.asm" - -Music1_NoiseInstruments: ; f4d34 (3d:4d34) -INCLUDE "data/noise_instruments.asm" - -Music1_VibratoTypes: ; f4dde (3d:4dde) -INCLUDE "data/vibrato_types.asm" - -Unknown_f4e85: ; f4e85 (3d:4e85) -INCBIN "baserom.gbc",$f4e85,$f4ee5 - $f4e85 - -INCLUDE "data/music1_headers.asm" - -INCLUDE "audio/music/titlescreen.asm" -INCLUDE "audio/music/dueltheme1.asm" -INCLUDE "audio/music/dueltheme2.asm" -INCLUDE "audio/music/dueltheme3.asm" -INCLUDE "audio/music/pausemenu.asm" -INCLUDE "audio/music/deckmachine.asm" -INCLUDE "audio/music/cardpop.asm" -INCLUDE "audio/music/overworld.asm" -INCLUDE "audio/music/matchstart1.asm" -INCLUDE "audio/music/matchstart2.asm" -INCLUDE "audio/music/matchstart3.asm" -INCLUDE "audio/music/matchvictory.asm" -INCLUDE "audio/music/matchloss.asm" -INCLUDE "audio/music/darkdiddly.asm" -INCLUDE "audio/music/boosterpack.asm" -INCLUDE "audio/music/medal.asm" - -rept $138 -db $ff -endr diff --git a/engine/music2.asm b/engine/music2.asm deleted file mode 100755 index db44d1d..0000000 --- a/engine/music2.asm +++ /dev/null @@ -1,1885 +0,0 @@ -Func_f8000: ; f8000 (3e:4000) - jp Func_f807d - -Func_f8003: ; f8003 (3e:4003) - jp Func_f80e9 - -Func_f8006: ; f8006 (3e:4006) - jp Func_f8021 - -Func_f8009: ; f8009 (3e:4009) - jp Func_f802d - -Func_f800c: ; f800c (3e:400c) - jp Func_f804e - -Func_f800f: ; f800f (3e:400f) - jp Func_f8052 - -Func_f8012: ; f8012 (3e:4012) - jp Func_f805c - -Func_f8015: ; f8015 (3e:4015) - jp Func_f8066 - -Func_f8018: ; f8018 (3e:4018) - jp Func_f806f - -Func_f801b: ; f801b (3e:401b) - jp Func_f89c4 - -Func_f801e: ; f801e (3e:401e) - jp Func_f89d0 - -Func_f8021: ; f8021 (3e:4021) - push hl - ld hl, NumberOfSongs2 - cp [hl] - jr nc, .asm_f802b - ld [$dd80], a -.asm_f802b - pop hl - ret - -Func_f802d: ; f802d (3e:402d) - push bc - push hl - ld b, $0 - ld c, a - or a - jr z, .asm_f8043 - ld hl, Unknown_f8e85 - add hl, bc - ld b, [hl] - ld a, [$dd83] - or a - jr z, .asm_f8043 - cp b - jr c, .asm_f804b -.asm_f8043 - ld a, b - ld [$dd83], a - ld a, c - ld [$dd82], a -.asm_f804b - pop hl - pop bc - ret - -Func_f804e: ; f804e (3e:404e) - ld [$ddf0], a - ret - -Func_f8052: ; f8052 (3e:4052) - ld a, [$dd80] - cp $80 - ld a, $1 - ret nz - xor a - ret - -Func_f805c: ; f805c (3e:405c) - ld a, [$dd82] - cp $80 - ld a, $1 - ret nz - xor a - ret - -Func_f8066: ; f8066 (3e:4066) - ld a, [$ddf2] - xor $1 - ld [$ddf2], a - ret - -Func_f806f: ; f806f (3e:406f) - push bc - push af - and $7 - ld b, a - swap b - or b - ld [$ddf1], a - pop af - pop bc - ret - -Func_f807d: ; f807d (3e:407d) - xor a - ld [rNR52], a - ld a, $80 - ld [rNR52], a - ld a, $77 - ld [rNR50], a - ld a, $ff - ld [rNR51], a - ld a, $3d - ld [$dd81], a - ld a, $80 - ld [$dd80], a - ld [$dd82], a - ld a, $77 - ld [$ddf1], a - xor a - ld [$dd8c], a - ld [$de53], a - ld [wMusicWaveChange], a - ld [$ddef], a - ld [$ddf0], a - ld [$ddf2], a - dec a - ld [wMusicDC], a - ld de, $0001 - ld bc, $0000 -.asm_f80bb - ld hl, wMusicIsPlaying - add hl, bc - ld [hl], d - ld hl, wMusicTie - add hl, bc - ld [hl], d - ld hl, $ddb3 - add hl, bc - ld [hl], d - ld hl, wMusicEC - add hl, bc - ld [hl], d - ld hl, wMusicE8 - add hl, bc - ld [hl], d - inc c - ld a, c - cp $4 - jr nz, .asm_f80bb - ld hl, Unknown_f8c20 - ld bc, wMusicReturnAddress - ld d, $8 -.asm_f80e2 - ld a, [hli] - ld [bc], a - inc bc - dec d - jr nz, .asm_f80e2 - ret - -Func_f80e9: ; f80e9 (3e:40e9) - call Func_f82a4 - call Func_f811c - ld hl, Func_fc003 - call Bankswitch3dTo3f - ld a, [$dd81] - ld [hBankROM], a - ld [MBC3RomBank], a - ld a, [$ddf2] - cp $0 - jr z, .asm_f8109 - call Func_f8980 - jr .asm_f8115 -.asm_f8109 - call Func_f82a5 - call Func_f830a - call Func_f836f - call Func_f83ce -.asm_f8115 - call Func_f8866 - call Func_f89b1 - ret - -Func_f811c: ; f811c (3e:411c) - ld a, [$dd80] - rla - jr c, .asm_f8133 - call Func_f814b - ld a, [$dd80] - call Music2_PlaySong - ld a, [$dd80] - or $80 - ld [$dd80], a -.asm_f8133 - ld a, [$dd82] - rla - jr c, .asm_f814a - ld a, [$dd82] - ld hl, Func_fc000 - call Bankswitch3dTo3f - ld a, [$dd82] - or $80 - ld [$dd82], a -.asm_f814a - ret - -Func_f814b: ; f814b (3e:414b) - ld a, [$dd8c] - ld d, a - xor a - ld [wMusicIsPlaying], a - bit 0, d - jr nz, .asm_f815f - ld a, $8 - ld [rNR12], a - swap a - ld [rNR14], a -.asm_f815f - xor a - ld [$dd8e], a - bit 1, d - jr nz, .asm_f816f - ld a, $8 - ld [rNR22], a - swap a - ld [rNR24], a -.asm_f816f - xor a - ld [$dd90], a - bit 3, d - jr nz, .asm_f817f - ld a, $8 - ld [rNR42], a - swap a - ld [rNR44], a -.asm_f817f - xor a - ld [$dd8f], a - bit 2, d - jr nz, .asm_f818b - ld a, $0 - ld [rNR32], a -.asm_f818b - ret - -; plays the song given by the id in a -Music2_PlaySong: ; f818c (3e:418c) - push af - ld c, a - ld b, $0 - ld hl, SongBanks2 - add hl, bc - ld a, [hl] - ld [$dd81], a - ld [hBankROM], a - ld [MBC3RomBank], a - pop af - add a - ld c, a - ld b, $0 - ld hl, SongHeaderPointers2 - add hl, bc - ld e, [hl] - inc hl - ld h, [hl] - ld l, e - ld e, [hl] - inc hl - ld b, h - ld c, l - rr e - jr nc, .asm_f81eb - ld a, [bc] - inc bc - ld [$dd95], a - ld [wMusicMainLoop], a - ld a, [bc] - inc bc - ld [$dd96], a - ld [$dd9e], a - ld a, $1 - ld [$ddbb], a - ld [wMusicIsPlaying], a - xor a - ld [wMusicTie], a - ld [wMusicE4], a - ld [wMusicE8], a - ld [wMusicVibratoDelay], a - ld [wMusicEC], a - ld a, [Unknown_f8c20] - ld [wMusicReturnAddress], a - ld a, [Unknown_f8c20 + 1] - ld [$ddf4], a - ld a, $8 - ld [wMusicE9], a -.asm_f81eb - rr e - jr nc, .asm_f8228 - ld a, [bc] - inc bc - ld [$dd97], a - ld [$dd9f], a - ld a, [bc] - inc bc - ld [$dd98], a - ld [$dda0], a - ld a, $1 - ld [$ddbc], a - ld [$dd8e], a - xor a - ld [$dd92], a - ld [$ddeb], a - ld [$ddc0], a - ld [$dde0], a - ld [$ddcc], a - ld a, [Unknown_f8c20 + 2] - ld [$ddf5], a - ld a, [Unknown_f8c20 + 3] - ld [$ddf6], a - ld a, $8 - ld [$ddc8], a -.asm_f8228 - rr e - jr nc, .asm_f8265 - ld a, [bc] - inc bc - ld [$dd99], a - ld [$dda1], a - ld a, [bc] - inc bc - ld [$dd9a], a - ld [$dda2], a - ld a, $1 - ld [$ddbd], a - ld [$dd8f], a - xor a - ld [$dd93], a - ld [$ddec], a - ld [$ddc1], a - ld [$dde1], a - ld [$ddcd], a - ld a, [Unknown_f8c20 + 4] - ld [$ddf7], a - ld a, [Unknown_f8c20 + 5] - ld [$ddf8], a - ld a, $40 - ld [$ddc9], a -.asm_f8265 - rr e - jr nc, .asm_f829f - ld a, [bc] - inc bc - ld [$dd9b], a - ld [$dda3], a - ld a, [bc] - inc bc - ld [$dd9c], a - ld [$dda4], a - ld a, $1 - ld [$ddbe], a - ld [$dd90], a - xor a - ld [$dd94], a - ld [$ddc2], a - ld [$dde2], a - ld [$ddce], a - ld a, [Unknown_f8c20 + 6] - ld [$ddf9], a - ld a, [Unknown_f8c20 + 7] - ld [$ddfa], a - ld a, $40 - ld [$ddca], a -.asm_f829f - xor a - ld [$ddf2], a - ret - -Func_f82a4: ; f82a4 (3e:42a4) - ret - -Func_f82a5: ; f82a5 (3e:42a5) - ld a, [wMusicIsPlaying] - or a - jr z, .asm_f82fa - ld a, [$ddb7] - cp $0 - jr z, .asm_f82d4 - ld a, [$ddc3] - dec a - ld [$ddc3], a - jr nz, .asm_f82d4 - ld a, [$ddbb] - cp $1 - jr z, .asm_f82d4 - ld a, [$dd8c] - bit 0, a - jr nz, .asm_f82d4 - ld hl, rNR12 - ld a, [wMusicE9] - ld [hli], a - inc hl - ld a, $80 - ld [hl], a -.asm_f82d4 - ld a, [$ddbb] - dec a - ld [$ddbb], a - jr nz, .asm_f82f4 - ld a, [$dd96] - ld h, a - ld a, [$dd95] - ld l, a - ld bc, $0000 - call Music2_PlayNextNote - ld a, [wMusicIsPlaying] - or a - jr z, .asm_f82fa - call Func_f8714 -.asm_f82f4 - ld a, $0 - call Func_f885a - ret -.asm_f82fa - ld a, [$dd8c] - bit 0, a - jr nz, .asm_f8309 - ld a, $8 - ld [rNR12], a - swap a - ld [rNR14], a -.asm_f8309 - ret - -Func_f830a: ; f830a (3e:430a) - ld a, [$dd8e] - or a - jr z, .asm_f835f - ld a, [$ddb8] - cp $0 - jr z, .asm_f8339 - ld a, [$ddc4] - dec a - ld [$ddc4], a - jr nz, .asm_f8339 - ld a, [$ddbc] - cp $1 - jr z, .asm_f8339 - ld a, [$dd8c] - bit 1, a - jr nz, .asm_f8339 - ld hl, rNR22 - ld a, [$ddc8] - ld [hli], a - inc hl - ld a, $80 - ld [hl], a -.asm_f8339 - ld a, [$ddbc] - dec a - ld [$ddbc], a - jr nz, .asm_f8359 - ld a, [$dd98] - ld h, a - ld a, [$dd97] - ld l, a - ld bc, $0001 - call Music2_PlayNextNote - ld a, [$dd8e] - or a - jr z, .asm_f835f - call Func_f875a -.asm_f8359 - ld a, $1 - call Func_f885a - ret -.asm_f835f - ld a, [$dd8c] - bit 1, a - jr nz, .asm_f836e - ld a, $8 - ld [rNR22], a - swap a - ld [rNR24], a -.asm_f836e - ret - -Func_f836f: ; f836f (3e:436f) - ld a, [$dd8f] - or a - jr z, .asm_f83be - ld a, [$ddb9] - cp $0 - jr z, .asm_f8398 - ld a, [$ddc5] - dec a - ld [$ddc5], a - jr nz, .asm_f8398 - ld a, [$dd8c] - bit 2, a - jr nz, .asm_f8398 - ld a, [$ddbd] - cp $1 - jr z, .asm_f8398 - ld a, [$ddc9] - ld [rNR32], a -.asm_f8398 - ld a, [$ddbd] - dec a - ld [$ddbd], a - jr nz, .asm_f83b8 - ld a, [$dd9a] - ld h, a - ld a, [$dd99] - ld l, a - ld bc, $0002 - call Music2_PlayNextNote - ld a, [$dd8f] - or a - jr z, .asm_f83be - call Func_f879c -.asm_f83b8 - ld a, $2 - call Func_f885a - ret -.asm_f83be - ld a, [$dd8c] - bit 2, a - jr nz, .asm_f83cd - ld a, $0 - ld [rNR32], a - ld a, $80 - ld [rNR34], a -.asm_f83cd - ret - -Func_f83ce: ; f83ce (3e:43ce) - ld a, [$dd90] - or a - jr z, .asm_f8400 - ld a, [$ddbe] - dec a - ld [$ddbe], a - jr nz, .asm_f83f6 - ld a, [$dd9c] - ld h, a - ld a, [$dd9b] - ld l, a - ld bc, $0003 - call Music2_PlayNextNote - ld a, [$dd90] - or a - jr z, .asm_f8400 - call Func_f880a - jr .asm_f8413 -.asm_f83f6 - ld a, [$ddef] - or a - jr z, .asm_f8413 - call Func_f8839 - ret -.asm_f8400 - ld a, [$dd8c] - bit 3, a - jr nz, .asm_f8413 - xor a - ld [$ddef], a - ld a, $8 - ld [rNR42], a - swap a - ld [rNR44], a -.asm_f8413 - ret - -Music2_PlayNextNote: ; f8414 (3e:4414) - ld a, [hli] - push hl - push af - cp $d0 - jr c, Music2_note - sub $d0 - add a - ld e, a - ld d, $0 - ld hl, Music2_CommandTable - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld h, d - ld l, e - pop af - jp [hl] - -Music2_CommandTable: ; f842c (3e:442c) - dw Music2_speed - dw Music2_octave - dw Music2_octave - dw Music2_octave - dw Music2_octave - dw Music2_octave - dw Music2_octave - dw Music2_inc_octave - dw Music2_dec_octave - dw Music2_tie - dw Music2_end - dw Music2_end - dw Music2_musicdc - dw Music2_MainLoop - dw Music2_EndMainLoop - dw Music2_Loop - dw Music2_EndLoop - dw Music2_jp - dw Music2_call - dw Music2_ret - dw Music2_musice4 - dw Music2_duty - dw Music2_volume - dw Music2_wave - dw Music2_musice8 - dw Music2_musice9 - dw Music2_vibrato_type - dw Music2_vibrato_delay - dw Music2_musicec - dw Music2_musiced - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - dw Music2_end - -Music2_note: ; f448c (3d:448c) - push af - ld a, [hl] - ld e, a - ld hl, wMusicTie - add hl, bc - ld a, [hl] - cp $80 - jr z, .asm_f84b0 - ld [hl], $1 - xor a - ld hl, $dddb - add hl, bc - ld [hl], a - ld hl, $dde3 - add hl, bc - ld [hl], a - inc [hl] - ld hl, wMusicVibratoType2 - add hl, bc - ld a, [hl] - ld hl, wMusicVibratoType - add hl, bc - ld [hl], a -.asm_f84b0 - pop af - push de - ld hl, wMusicSpeed - add hl, bc - ld d, [hl] - and $f - inc a - cp d - jr nc, .asm_f84c0 - ld e, a - ld a, d - ld d, e -.asm_f84c0 - ld e, a -.asm_f84c1 - dec d - jr z, .asm_f84c7 - add e - jr .asm_f84c1 -.asm_f84c7 - ld hl, $ddbb - add hl, bc - ld [hl], a - pop de - ld d, a - ld a, e - cp $d9 - ld a, d - jr z, .asm_f84fb - ld e, a - ld hl, wMusicE8 - add hl, bc - ld a, [hl] - cp $8 - ld d, a - ld a, e - jr z, .asm_f84fb - push hl - push bc - ld b, $0 - ld c, a - ld hl, $0000 -.asm_f84e8 - add hl, bc - dec d - jr nz, .asm_f84e8 - srl h - rr l - srl h - rr l - srl h - rr l - ld a, l - pop bc - pop hl -.asm_f84fb - ld hl, $ddc3 - add hl, bc - ld [hl], a - pop af - and $f0 - ld hl, $ddb7 - add hl, bc - ld [hl], a - or a - jr nz, .asm_f850e - jp .asm_f858e -.asm_f850e - swap a - dec a - ld h, a - ld a, $3 - cp c - ld a, h - jr z, .asm_f851a - jr .asm_f8564 -.asm_f851a - push af - ld hl, wMusicOctave - add hl, bc - ld a, [hl] - ld d, a - sla a - add d - sla a - sla a - sla a - ld e, a - pop af - ld hl, Music2_NoiseInstruments - add a - ld d, c - ld c, a - add hl, bc - ld c, e - add hl, bc - ld c, d - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - ld d, a - ld a, [wMusicDC] - and $77 - or d - ld [wMusicDC], a - ld de, $ddab - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld b, [hl] - inc hl - ld a, [hli] - ld [de], a - inc de - ld a, b - ld [de], a - ld b, $0 - ld a, l - ld d, h - ld hl, $dded - ld [hli], a - ld [hl], d - ld a, $1 - ld [$ddef], a - jr .asm_f858e -.asm_f8564 - ld hl, $dda5 - add hl, bc - add hl, bc - push hl - ld hl, wMusicOctave - add hl, bc - ld e, [hl] - ld d, $0 - ld hl, Unknown_f8c28 - add hl, de - add a - ld e, [hl] - add e - ld hl, wMusicEC - add hl, bc - ld e, [hl] - add e - add e - ld e, a - ld hl, Unknown_f8c30 - add hl, de - ld a, [hli] - ld e, a - ld d, [hl] - call Func_f8967 - pop hl - ld a, e - ld [hli], a - ld [hl], d -.asm_f858e - pop de - ld hl, $dd95 - add hl, bc - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -Music2_speed: ; f8598 (3e:4598) - pop hl - ld a, [hli] - push hl - ld hl, wMusicSpeed - add hl, bc - ld [hl], a - jp Music2_PlayNextNote_pop - -Music2_octave: ; f85a3 (3e:45a3) - and $7 - dec a - ld hl, wMusicOctave - add hl, bc - push af - ld a, c - cp $2 - jr nz, .asm_f85b6 - pop af - inc a - ld [hl], a - jp Music2_PlayNextNote_pop -.asm_f85b6 - pop af - ld [hl], a - jp Music2_PlayNextNote_pop - -Music2_inc_octave: ; f85bb (3e:45bb) - ld hl, wMusicOctave - add hl, bc - inc [hl] - jp Music2_PlayNextNote_pop - -Music2_dec_octave: ; f85c3 (3e:45c3) - ld hl, wMusicOctave - add hl, bc - dec [hl] - jp Music2_PlayNextNote_pop - -Music2_tie: ; f85cb (3e:45cb) - ld hl, wMusicTie - add hl, bc - ld [hl], $80 - jp Music2_PlayNextNote_pop - -Music2_musicdc: ; f85d4 (3e:45d4) - pop hl - ld a, [hli] - push hl - push bc - inc c - ld e, $ee -.asm_f85db - dec c - jr z, .asm_f85e3 - rlca - rlc e - jr .asm_f85db -.asm_f85e3 - ld d, a - ld hl, wMusicDC - ld a, [hl] - and e - or d - ld [hl], a - pop bc - jp Music2_PlayNextNote_pop - -Music2_MainLoop: ; f85ef (3e:45ef) - pop de - push de - dec de - ld hl, wMusicMainLoop - add hl, bc - add hl, bc - ld [hl], e - inc hl - ld [hl], d - jp Music2_PlayNextNote_pop - -Music2_EndMainLoop: ; f85fd (3e:45fd) - pop hl - ld hl, wMusicMainLoop - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - jp Music2_PlayNextNote - -Music2_Loop: ; f8609 (3e:4609) - pop de - ld a, [de] - inc de - push af - call Music2_GetReturnAddress - ld [hl], e - inc hl - ld [hl], d - inc hl - pop af - ld [hl], a - inc hl - push de - call Music2_SetReturnAddress - jp Music2_PlayNextNote_pop - -Music2_EndLoop: ; f861e (3e:461e) - call Music2_GetReturnAddress - dec hl - ld a, [hl] - dec a - jr z, .asm_f8630 - ld [hld], a - ld d, [hl] - dec hl - ld e, [hl] - pop hl - ld h, d - ld l, e - jp Music2_PlayNextNote -.asm_f8630 - dec hl - dec hl - call Music2_SetReturnAddress - jp Music2_PlayNextNote_pop - -Music2_jp: ; f8638 (3e:4638) - pop hl - ld a, [hli] - ld h, [hl] - ld l, a - jp Music2_PlayNextNote - -Music2_call: ; f863f (3e:463f) - call Music2_GetReturnAddress - pop de - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, [de] - ld b, a - inc de - ld a, [de] - ld d, a - ld e, b - ld b, $0 - push de - call Music2_SetReturnAddress - jp Music2_PlayNextNote_pop - -Music2_ret: ; f8656 (3e:4656) - pop de - call Music2_GetReturnAddress - dec hl - ld a, [hld] - ld e, [hl] - ld d, a - inc de - inc de - push de - call Music2_SetReturnAddress - jp Music2_PlayNextNote_pop - -Music2_musice4: ; f8667 (3e:4667) - pop de - ld a, [de] - inc de - ld hl, wMusicE4 - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_duty: ; f8674 (3e:4674) - pop de - ld a, [de] - and $c0 - inc de - ld hl, wMusicDuty - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_volume: ; f8683 (3e:4683) - pop de - ld a, [de] - inc de - ld hl, wMusicVolume - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_wave: ; f8690 (3e:4690) - pop de - ld a, [de] - inc de - ld [wMusicWave], a - ld a, $1 - ld [wMusicWaveChange], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_musice8: ; f86a0 (3e:46a0) - pop de - ld a, [de] - inc de - ld hl, wMusicE8 - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_musice9: ; f86ad (3e:46ad) - pop de - ld a, [de] - inc de - ld hl, wMusicE9 - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_vibrato_type: ; f86ba (3e:46ba) - pop de - ld a, [de] - inc de - ld hl, wMusicVibratoType - add hl, bc - ld [hl], a - ld hl, wMusicVibratoType2 - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_vibrato_delay: ; f86cc (3e:46cc) - pop de - ld a, [de] - inc de - ld hl, wMusicVibratoDelay - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_musicec: ; f86d9 (3e:46d9) - pop de - ld a, [de] - inc de - ld hl, wMusicEC - add hl, bc - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_musiced: ; f86e6 (3e:46e6) - pop de - ld a, [de] - inc de - ld hl, wMusicEC - add hl, bc - add [hl] - ld [hl], a - ld h, d - ld l, e - jp Music2_PlayNextNote - -Music2_end: ; f86f4 (3e:46f4) - ld hl, wMusicIsPlaying - add hl, bc - ld [hl], $0 - pop hl - ret - -; returns the address where the address to -; return to is stored for the current channel -Music2_GetReturnAddress: ; f86fc (3e:46fc) - ld hl, wMusicReturnAddress - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ret - -; puts the address in hl where the address to -; return to is stored for the currentchannel -Music2_SetReturnAddress: ; f8705 (3e:4705) - ld d, h - ld e, l - ld hl, wMusicReturnAddress - add hl, bc - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -Music2_PlayNextNote_pop: ; f8710 (3e:4710) - pop hl - jp Music2_PlayNextNote - -Func_f8714: ; f8714 (3e:4714) - ld a, [$dd8c] - bit 0, a - jr nz, .asm_f8749 - ld a, [$ddb7] - cp $0 - jr z, .asm_f874a - ld d, $0 - ld hl, wMusicTie - ld a, [hl] - cp $80 - jr z, .asm_f8733 - ld a, [wMusicVolume] - ld [rNR12], a - ld d, $80 -.asm_f8733 - ld [hl], $2 - ld a, $8 - ld [rNR10], a - ld a, [wMusicDuty] - ld [rNR11], a - ld a, [$dda5] - ld [rNR13], a - ld a, [$dda6] - or d - ld [rNR14], a -.asm_f8749 - ret -.asm_f874a - ld hl, wMusicTie - ld [hl], $0 - ld hl, rNR12 - ld a, $8 - ld [hli], a - inc hl - swap a - ld [hl], a - ret - -Func_f875a: ; f875a (3e:475a) - ld a, [$dd8c] - bit 1, a - jr nz, .asm_f878b - ld a, [$ddb8] - cp $0 - jr z, .asm_f878c - ld d, $0 - ld hl, $dd92 - ld a, [hl] - cp $80 - jr z, .asm_f8779 - ld a, [$dde8] - ld [rNR22], a - ld d, $80 -.asm_f8779 - ld [hl], $2 - ld a, [$dd87] - ld [rNR21], a - ld a, [$dda7] - ld [rNR23], a - ld a, [$dda8] - or d - ld [rNR24], a -.asm_f878b - ret -.asm_f878c - ld hl, $dd92 - ld [hl], $0 - ld hl, rNR22 - ld a, $8 - ld [hli], a - inc hl - swap a - ld [hl], a - ret - -Func_f879c: ; f879c (3e:479c) - ld a, [$dd8c] - bit 2, a - jr nz, .asm_f87e0 - ld d, $0 - ld a, [wMusicWaveChange] - or a - jr z, .asm_f87b3 - xor a - ld [rNR30], a - call Func_f87ea - ld d, $80 -.asm_f87b3 - ld a, [$ddb9] - cp $0 - jr z, .asm_f87e1 - ld hl, $dd93 - ld a, [hl] - cp $80 - jr z, .asm_f87cc - ld a, [$dde9] - ld [rNR32], a - xor a - ld [rNR30], a - ld d, $80 -.asm_f87cc - ld [hl], $2 - xor a - ld [rNR31], a - ld a, [$dda9] - ld [rNR33], a - ld a, $80 - ld [rNR30], a - ld a, [$ddaa] - or d - ld [rNR34], a -.asm_f87e0 - ret -.asm_f87e1 - ld hl, wMusicTie - ld [hl], $0 - xor a - ld [rNR30], a - ret - -Func_f87ea: ; f879c (3e:47ea) - ld a, [wMusicWave] - add a - ld d, $0 - ld e, a - ld hl, Music2_WaveInstruments - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld b, d - ld de, $ff30 -.asm_f87fc - ld a, [hli] - ld [de], a - inc de - inc b - ld a, b - cp $10 - jr nz, .asm_f87fc - xor a - ld [wMusicWaveChange], a - ret - -Func_f880a: ; f880a (3e:480a) - ld a, [$dd8c] - bit 3, a - jr nz, .asm_f8829 - ld a, [$ddba] - cp $0 - jr z, asm_f882a - ld de, rNR41 - ld hl, $ddab - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a -.asm_f8829 - ret -asm_f882a - xor a - ld [$ddef], a - ld hl, rNR42 - ld a, $8 - ld [hli], a - inc hl - swap a - ld [hl], a - ret - -Func_f8839: ; f8839 (3e:4839) - ld a, [$dd8c] - bit 3, a - jr z, .asm_f8846 - xor a - ld [$ddef], a - jr .asm_f8859 -.asm_f8846 - ld hl, $dded - ld a, [hli] - ld d, [hl] - ld e, a - ld a, [de] - cp $ff - jr nz, .asm_f8853 - jr asm_f882a -.asm_f8853 - ld [rNR43], a - inc de - ld a, d - ld [hld], a - ld [hl], e -.asm_f8859 - ret - -Func_f885a: ; f885a (3e:485a) - push af - ld b, $0 - ld c, a - call Func_f8898 - pop af - call Func_f890b - ret - -Func_f8866: ; f8866 (3e:4866) - ld a, [$ddf1] - ld [rNR50], a - ld a, [$dd8c] - or a - ld hl, wMusicDC - ld a, [hli] - jr z, .asm_f8888 - ld a, [$dd8c] - and $f - ld d, a - swap d - or d - ld d, a - xor $ff - ld e, a - ld a, [hld] - and d - ld d, a - ld a, [hl] - and e - or d -.asm_f8888 - ld d, a - ld a, [$ddf0] - xor $ff - and $f - ld e, a - swap e - or e - and d - ld [rNR51], a - ret - -Func_f8898: ; f8898 (3e:4898) - ld hl, wMusicVibratoDelay - add hl, bc - ld a, [hl] - cp $0 - jr z, .asm_f8902 - ld hl, $dde3 - add hl, bc - cp [hl] - jr z, .asm_f88ab - inc [hl] - jr .asm_f8902 -.asm_f88ab - ld hl, wMusicVibratoType - add hl, bc - ld e, [hl] - ld d, $0 - ld hl, Music2_VibratoTypes - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld hl, $dddb - add hl, bc - ld d, $0 - ld e, [hl] - inc [hl] - pop hl - add hl, de - ld a, [hli] - cp $80 - jr z, .asm_f88ee - ld hl, $dda5 - add hl, bc - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - bit 7, a - jr nz, .asm_f88df - add e - ld e, a - ld a, $0 - adc d - and $7 - ld d, a - ret -.asm_f88df - xor $ff - inc a - push bc - ld c, a - ld a, e - sub c - ld e, a - ld a, d - sbc b - and $7 - ld d, a - pop bc - ret -.asm_f88ee - push hl - ld hl, $dddb - add hl, bc - ld [hl], $0 - pop hl - ld a, [hl] - cp $80 - jr z, .asm_f88ab - ld hl, wMusicVibratoType - add hl, bc - ld [hl], a - jr .asm_f88ab -.asm_f8902 - ld hl, $dda5 - add hl, bc - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ret - -Func_f890b: ; f890b (3e:490b) - cp $0 - jr nz, .asm_f892c - ld a, [wMusicVibratoDelay] - cp $0 - jr z, .asm_f8966 - ld a, [$dd8c] - bit 0, a - jr nz, .asm_f8966 - ld a, e - ld [rNR13], a - ld a, [rNR11] - and $c0 - ld [rNR11], a - ld a, d - and $3f - ld [rNR14], a - ret -.asm_f892c - cp $1 - jr nz, .asm_f894b - ld a, [$dde0] - cp $0 - jr z, .asm_f8966 - ld a, [$dd8c] - bit 1, a - jr nz, .asm_f8966 - ld a, e - ld [rNR23], a - ld a, [rNR21] - and $c0 - ld [rNR21], a - ld a, d - ld [rNR24], a - ret -.asm_f894b - cp $2 - jr nz, .asm_f8966 - ld a, [$dde1] - cp $0 - jr z, .asm_f8966 - ld a, [$dd8c] - bit 2, a - jr nz, .asm_f8966 - ld a, e - ld [rNR33], a - xor a - ld [rNR31], a - ld a, d - ld [rNR34], a -.asm_f8966 - ret - -Func_f8967: ; f8967 (3e:4967) - ld hl, wMusicE4 - add hl, bc - ld a, [hl] - bit 7, a - jr nz, .asm_f8976 - add e - ld e, a - ld a, d - adc b - ld d, a - ret -.asm_f8976 - xor $ff - ld h, a - ld a, e - sub h - ld e, a - ld a, d - sbc b - ld d, a - ret - -Func_f8980: ; f8980 (3e:4980) - ld a, [$dd8c] - ld d, a - bit 0, d - jr nz, .asm_f8990 - ld a, $8 - ld [rNR12], a - swap a - ld [rNR14], a -.asm_f8990 - bit 1, d - jr nz, .asm_f899c - swap a - ld [rNR22], a - swap a - ld [rNR24], a -.asm_f899c - bit 3, d - jr nz, .asm_f89a8 - swap a - ld [rNR42], a - swap a - ld [rNR44], a -.asm_f89a8 - bit 2, d - jr nz, .asm_f89b0 - ld a, $0 - ld [rNR32], a -.asm_f89b0 - ret - -Func_f89b1: ; f89b1 (3e:49b1) - ld hl, wMusicIsPlaying - xor a - add [hl] - inc hl - add [hl] - inc hl - add [hl] - inc hl - add [hl] - or a - ret nz - ld a, $80 - ld [$dd80], a - ret - -Func_f89c4: ; f89c4 (3e:49c4) - di - call Func_f8980 - call Func_f89dc - call Func_f814b - ei - ret - -Func_f89d0: ; f89d0 (3e:49d0) - di - call Func_f8980 - call Func_f814b - call Func_f8b01 - ei - ret - -Func_f89dc: ; f89dc (3e:49dc) - ld a, [$dd80] - ld [$de55], a - ld a, [$dd81] - ld [$de56], a - ld a, [wMusicDC] - ld [$de57], a - ld hl, wMusicDuty - ld de, $de58 - ld a, $4 - call Music2_CopyData - ld a, [wMusicWave] - ld [$de5c], a - ld a, [wMusicWaveChange] - ld [$de5d], a - ld hl, wMusicIsPlaying - ld de, $de5e - ld a, $4 - call Music2_CopyData - ld hl, wMusicTie - ld de, $de62 - ld a, $4 - call Music2_CopyData - ld hl, $dd95 - ld de, $de66 - ld a, $8 - call Music2_CopyData - ld hl, wMusicMainLoop - ld de, $de6e - ld a, $8 - call Music2_CopyData - ld a, [$ddab] - ld [$de76], a - ld a, [$ddac] - ld [$de77], a - ld hl, wMusicOctave - ld de, $de78 - ld a, $4 - call Music2_CopyData - ld hl, $ddb3 - ld de, $de7c - ld a, $4 - call Music2_CopyData - ld hl, $ddb7 - ld de, $de80 - ld a, $4 - call Music2_CopyData - ld hl, $ddbb - ld de, $de84 - ld a, $4 - call Music2_CopyData - ld hl, wMusicE8 - ld de, $de88 - ld a, $4 - call Music2_CopyData - ld hl, $ddc3 - ld de, $de8c - ld a, $4 - call Music2_CopyData - ld hl, wMusicE9 - ld de, $de90 - ld a, $4 - call Music2_CopyData - ld hl, wMusicEC - ld de, $de94 - ld a, $4 - call Music2_CopyData - ld hl, wMusicSpeed - ld de, $de98 - ld a, $4 - call Music2_CopyData - ld hl, wMusicVibratoType2 - ld de, $de9c - ld a, $4 - call Music2_CopyData - ld hl, wMusicVibratoDelay - ld de, $dea0 - ld a, $4 - call Music2_CopyData - ld a, $0 - ld [$dddb], a - ld [$dddc], a - ld [$dddd], a - ld [$ddde], a - ld hl, wMusicVolume - ld de, $dea4 - ld a, $3 - call Music2_CopyData - ld hl, wMusicE4 - ld de, $dea7 - ld a, $3 - call Music2_CopyData - ld hl, $dded - ld de, $deaa - ld a, $2 - call Music2_CopyData - ld a, $0 - ld [$deac], a - ld hl, wMusicReturnAddress - ld de, $dead - ld a, $8 - call Music2_CopyData - ld hl, $ddfb - ld de, $deb5 - ld a, $30 - call Music2_CopyData - ret - -Func_f8b01: ; f8b01 (3e:4b01) - ld a, [$de55] - ld [$dd80], a - ld a, [$de56] - ld [$dd81], a - ld a, [$de57] - ld [wMusicDC], a - ld hl, $de58 - ld de, wMusicDuty - ld a, $4 - call Music2_CopyData - ld a, [$de5c] - ld [wMusicWave], a - ld a, $1 - ld [wMusicWaveChange], a - ld hl, $de5e - ld de, wMusicIsPlaying - ld a, $4 - call Music2_CopyData - ld hl, $de62 - ld de, wMusicTie - ld a, $4 - call Music2_CopyData - ld hl, $de66 - ld de, $dd95 - ld a, $8 - call Music2_CopyData - ld hl, $de6e - ld de, wMusicMainLoop - ld a, $8 - call Music2_CopyData - ld a, [$de76] - ld [$ddab], a - ld a, [$de77] - ld [$ddac], a - ld hl, $de78 - ld de, wMusicOctave - ld a, $4 - call Music2_CopyData - ld hl, $de7c - ld de, $ddb3 - ld a, $4 - call Music2_CopyData - ld hl, $de80 - ld de, $ddb7 - ld a, $4 - call Music2_CopyData - ld hl, $de84 - ld de, $ddbb - ld a, $4 - call Music2_CopyData - ld hl, $de88 - ld de, wMusicE8 - ld a, $4 - call Music2_CopyData - ld hl, $de8c - ld de, $ddc3 - ld a, $4 - call Music2_CopyData - ld hl, $de90 - ld de, wMusicE9 - ld a, $4 - call Music2_CopyData - ld hl, $de94 - ld de, wMusicEC - ld a, $4 - call Music2_CopyData - ld hl, $de98 - ld de, wMusicSpeed - ld a, $4 - call Music2_CopyData - ld hl, $de9c - ld de, wMusicVibratoType2 - ld a, $4 - call Music2_CopyData - ld hl, $dea0 - ld de, wMusicVibratoDelay - ld a, $4 - call Music2_CopyData - ld hl, $dea4 - ld de, wMusicVolume - ld a, $3 - call Music2_CopyData - ld hl, $dea7 - ld de, wMusicE4 - ld a, $3 - call Music2_CopyData - ld hl, $deaa - ld de, $dded - ld a, $2 - call Music2_CopyData - ld a, [$deac] - ld [$ddef], a - ld hl, $dead - ld de, wMusicReturnAddress - ld a, $8 - call Music2_CopyData - ld hl, $deb5 - ld de, $ddfb - ld a, $30 - call Music2_CopyData - ret - -; copies a bytes from hl to de -Music2_CopyData: ; f8c18 (3e:4c18) - ld c, a -.asm_f8c19 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_f8c19 - ret - -Unknown_f8c20: ; f8c20 (3e:4c20) -INCBIN "baserom.gbc",$f8c20,$f8c28 - $f8c20 - -Unknown_f8c28: ; f8c28 (3e:4c28) -INCBIN "baserom.gbc",$f8c28,$f8c30 - $f8c28 - -Unknown_f8c30: ; f8c30 (3e:4c30) -INCBIN "baserom.gbc",$f8c30,$f8cda - $f8c30 - -Music2_WaveInstruments: ; f8cda (3e:4cda) -INCLUDE "data/wave_instruments.asm" - -Music2_NoiseInstruments: ; f8d34 (3e:4d34) -INCLUDE "data/noise_instruments.asm" - -Music2_VibratoTypes: ; f8dde (3e:4dde) -INCLUDE "data/vibrato_types.asm" - -Unknown_f8e85: ; f8e85 (3e:4e85) -INCBIN "baserom.gbc",$f8e85,$f8ee5 - $f8e85 - -INCLUDE "data/music2_headers.asm" - -INCLUDE "audio/music/pcmainmenu.asm" -INCLUDE "audio/music/pokemondome.asm" -INCLUDE "audio/music/challengehall.asm" -INCLUDE "audio/music/club1.asm" -INCLUDE "audio/music/club2.asm" -INCLUDE "audio/music/club3.asm" -INCLUDE "audio/music/ronald.asm" -INCLUDE "audio/music/imakuni.asm" -INCLUDE "audio/music/hallofhonor.asm" -INCLUDE "audio/music/credits.asm" - -rept $109 -db $ff -endr diff --git a/engine/sfx.asm b/engine/sfx.asm deleted file mode 100755 index 63a83b6..0000000 --- a/engine/sfx.asm +++ /dev/null @@ -1,599 +0,0 @@ -Func_fc000: ; fc000 (3f:4000) - jp Func_fc006 - -Func_fc003: ; fc003 (3f:4003) - jp Func_fc059 - -Func_fc006: ; fc006 (3f:4006) - ld hl, NumberOfSFX - cp [hl] - jr nc, .asm_fc058 - add a - ld c, a - ld b, $0 - ld a, [$de53] - or a - jr z, .asm_fc019 - call Func_fc279 -.asm_fc019 - ld a, $1 - ld [$de53], a - ld hl, SFXHeaderPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - ld [$dd8c], a - ld [$de54], a - ld de, $de4b - ld c, $0 -.asm_fc031 - ld a, [$de54] - rrca - ld [$de54], a - jr nc, .asm_fc050 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - push hl - ld hl, $de2f - add hl, bc - ld [hl], $0 - ld hl, $de33 - add hl, bc - ld [hl], $1 - pop hl - jr .asm_fc052 -.asm_fc050 - inc de - inc de -.asm_fc052 - inc c - ld a, $4 - cp c - jr nz, .asm_fc031 -.asm_fc058 - ret - -Func_fc059: ; fc059 (3f:4059) - ld a, [$dd8c] - or a - jr nz, .asm_fc063 - call Func_fc26c - ret -.asm_fc063 - xor a - ld b, a - ld c, a - ld a, [$dd8c] - ld [$de54], a -.asm_fc06c - ld hl, $de54 - ld a, [hl] - rrca - ld [hl], a - jr nc, .asm_fc08d - ld hl, $de33 - add hl, bc - ld a, [hl] - dec a - jr z, .asm_fc082 - ld [hl], a - call Func_fc18d - jr .asm_fc08d -.asm_fc082 - ld hl, $de4b - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - call Func_fc094 -.asm_fc08d - inc c - ld a, c - cp $4 - jr nz, .asm_fc06c - ret - -Func_fc094: ; fc094 (3f:4094) - ld a, [hl] - and $f0 - swap a - add a - ld e, a - ld d, $0 - ld a, [hli] - push hl - and $f - ld hl, SFX_CommandTable - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld h, d - ld l, e - jp [hl] - -SFX_CommandTable: ; fc0ab (3f:40ab) - dw SFX_0 - dw SFX_1 - dw SFX_2 - dw SFX_loop - dw SFX_endloop - dw SFX_5 - dw SFX_6 - dw SFX_7 - dw SFX_8 - dw SFX_unused - dw SFX_unused - dw SFX_unused - dw SFX_unused - dw SFX_unused - dw SFX_unused - dw SFX_end - -SFX_unused: ; fc0cb (3f:40cb) - jp Func_fc094 - -SFX_0: ; fc0ce (3f:40ce) - ld d, a - pop hl - ld a, [hli] - ld e, a - push hl - ld hl, $de37 - add hl, bc - add hl, bc - push bc - ld b, [hl] - ld [hl], e - inc hl - ld [hl], d - ld a, c - cp $3 - jr nz, .asm_fc0e9 - ld a, b - xor e - and $8 - swap a - ld d, a -.asm_fc0e9 - pop bc - ld hl, $de2b - add hl, bc - ld a, [hl] - ld [hl], $0 - or d - ld d, a - ld hl, rNR11 - ld a, c - add a - add a - add c - add l - ld l, a - ld a, [hl] - and $c0 - ld [hli], a - inc hl - ld a, e - ld [hli], a - ld [hl], d - pop de -Func_fc105: ; fc105 (3f:4105) - ld hl, $de4b - add hl, bc - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -SFX_1: ; fc10e (3f:410e) - ld hl, $de2b - add hl, bc - ld a, $80 - ld [hl], a - pop hl - ld a, [hli] - ld e, a - push hl - ld hl, rNR12 - ld a, c - add a - add a - add c - add l - ld l, a - ld [hl], e - pop hl - jp Func_fc094 - -SFX_2: ; fc127 (3f:4127) - swap a - ld e, a - ld hl, rNR11 - ld a, c - add a - add a - add c - add l - ld l, a - ld [hl], e - pop hl - jp Func_fc094 - -SFX_loop: ; fc138 (3f:4138) - ld hl, $de43 - add hl, bc - add hl, bc - pop de - ld a, [de] - inc de - ld [hl], e - inc hl - ld [hl], d - ld hl, $de3f - add hl, bc - ld [hl], a - ld l, e - ld h, d - jp Func_fc094 - -SFX_endloop: ; fc14d (3f:414d) - ld hl, $de3f - add hl, bc - ld a, [hl] - dec a - jr z, .asm_fc162 - ld [hl], a - ld hl, $de43 - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - pop de - jp Func_fc094 -.asm_fc162 - pop hl - jp Func_fc094 - -SFX_5: ; fc166 (3f:4166) - ld hl, $de2f - add hl, bc - ld e, l - ld d, h - pop hl - ld a, [hli] - ld [de], a - jp Func_fc094 - -SFX_6: ; fc172 (3f:4172) - ld a, c - cp $3 - jr nz, .asm_fc17c - call Func_fc1cd - jr .asm_fc17f -.asm_fc17c - call Func_fc18d -.asm_fc17f - ld hl, $de33 - add hl, bc - ld e, l - ld d, h - pop hl - ld a, [hli] - ld [de], a - ld e, l - ld d, h - jp Func_fc105 - -Func_fc18d: ; fc18d (3f:418d) - ld hl, $de2f - add hl, bc - ld a, [hl] - or a - jr z, .asm_fc1cc - ld hl, $de37 - add hl, bc - add hl, bc - bit 7, a - jr z, .asm_fc1aa - xor $ff - inc a - ld d, a - ld a, [hl] - sub d - ld [hli], a - ld e, a - ld a, [hl] - sbc b - jr .asm_fc1b1 -.asm_fc1aa - ld d, a - ld a, [hl] - add d - ld [hli], a - ld e, a - ld a, [hl] - adc b -.asm_fc1b1 - ld [hl], a - ld hl, $de2b - add hl, bc - ld d, [hl] - ld [hl], $0 - or d - ld d, a - ld hl, rNR11 - ld a, c - add a - add a - add c - add l - ld l, a - ld a, [hl] - and $c0 - ld [hli], a - inc hl - ld a, e - ld [hli], a - ld [hl], d -.asm_fc1cc - ret - -Func_fc1cd: ; fc1cd (3f:41cd) - ld hl, $de32 - ld a, [hl] - or a - jr z, .asm_fc201 - ld hl, $de3d - bit 7, a - jr z, .asm_fc1e5 - xor $ff - inc a - ld d, a - ld e, [hl] - ld a, e - sub d - ld [hl], a - jr .asm_fc1ea -.asm_fc1e5 - ld d, a - ld e, [hl] - ld a, e - add d - ld [hl], a -.asm_fc1ea - ld d, a - xor e - and $8 - swap a - ld hl, $de2e - ld e, [hl] - ld [hl], $0 - or e - ld e, a - ld hl, rNR41 - xor a - ld [hli], a - inc hl - ld a, d - ld [hli], a - ld [hl], e -.asm_fc201 - ret - -SFX_7: ; fc202 (3f:4202) - add a - ld d, $0 - ld e, a - ld hl, SFX_WaveInstruments - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $0 - ld [rNR30], a - ld b, d - ld de, $ff30 -.asm_fc215 - ld a, [hli] - ld [de], a - inc de - inc b - ld a, b - cp $10 - jr nz, .asm_fc215 - ld a, $1 - ld [$dd8b], a - ld a, $80 - ld [rNR30], a - ld b, $0 - pop hl - jp Func_fc094 - -SFX_8: ; fc22d (3f:422d) - pop hl - ld a, [hli] - push hl - push bc - inc c - ld e, $ee -.asm_fc234 - dec c - jr z, .asm_fc23c - rlca - rlc e - jr .asm_fc234 -.asm_fc23c - ld d, a - ld hl, $dd85 - ld a, [hl] - and e - or d - ld [hl], a - pop bc - pop hl - jp Func_fc094 - -SFX_end: ; fc249 (3f:4249) - ld e, c - inc e - ld a, $7f -.asm_fc24d - rlca - dec e - jr nz, .asm_fc24d - ld e, a - ld a, [$dd8c] - and e - ld [$dd8c], a - ld a, c - rlca - rlca - add c - ld e, a - ld d, b - ld hl, rNR12 - add hl, de - ld a, $8 - ld [hli], a - inc hl - swap a - ld [hl], a - pop hl - ret - -Func_fc26c: ; fc26c (3f:426c) - xor a - ld [$de53], a - ld [$dd83], a - ld a, $80 - ld [$dd82], a - ret - -Func_fc279: ; fc279 (3f:4279) - ld a, $8 - ld a, [rNR12] - ld a, [rNR22] - ld a, [rNR32] - ld a, [rNR42] - ld a, $80 - ld a, [rNR14] - ld a, [rNR24] - ld a, [rNR44] - xor a - ld [$dd8c], a - ret - -INCLUDE "data/sfx_headers.asm" - -SFX_WaveInstruments: ; fc485 (3f:4485) -INCLUDE "data/wave_instruments.asm" - -INCLUDE "audio/sfx/sfx_01.asm" -INCLUDE "audio/sfx/sfx_02.asm" -INCLUDE "audio/sfx/sfx_03.asm" -INCLUDE "audio/sfx/sfx_04.asm" -INCLUDE "audio/sfx/sfx_05.asm" -INCLUDE "audio/sfx/sfx_06.asm" -INCLUDE "audio/sfx/sfx_07.asm" -INCLUDE "audio/sfx/sfx_08.asm" -INCLUDE "audio/sfx/sfx_09.asm" -INCLUDE "audio/sfx/sfx_0a.asm" -INCLUDE "audio/sfx/sfx_0b.asm" -INCLUDE "audio/sfx/sfx_0c.asm" -INCLUDE "audio/sfx/sfx_0d.asm" -INCLUDE "audio/sfx/sfx_0e.asm" -INCLUDE "audio/sfx/sfx_0f.asm" -INCLUDE "audio/sfx/sfx_10.asm" -INCLUDE "audio/sfx/sfx_11.asm" -INCLUDE "audio/sfx/sfx_12.asm" -INCLUDE "audio/sfx/sfx_13.asm" -INCLUDE "audio/sfx/sfx_14.asm" -INCLUDE "audio/sfx/sfx_15.asm" -INCLUDE "audio/sfx/sfx_16.asm" -INCLUDE "audio/sfx/sfx_17.asm" -INCLUDE "audio/sfx/sfx_18.asm" -INCLUDE "audio/sfx/sfx_19.asm" -INCLUDE "audio/sfx/sfx_1a.asm" -INCLUDE "audio/sfx/sfx_1b.asm" -INCLUDE "audio/sfx/sfx_1c.asm" -INCLUDE "audio/sfx/sfx_1d.asm" -INCLUDE "audio/sfx/sfx_1e.asm" -INCLUDE "audio/sfx/sfx_1f.asm" -INCLUDE "audio/sfx/sfx_20.asm" -INCLUDE "audio/sfx/sfx_21.asm" -INCLUDE "audio/sfx/sfx_22.asm" -INCLUDE "audio/sfx/sfx_23.asm" -INCLUDE "audio/sfx/sfx_24.asm" -INCLUDE "audio/sfx/sfx_25.asm" -INCLUDE "audio/sfx/sfx_26.asm" -INCLUDE "audio/sfx/sfx_27.asm" -INCLUDE "audio/sfx/sfx_28.asm" -INCLUDE "audio/sfx/sfx_29.asm" -INCLUDE "audio/sfx/sfx_2a.asm" -INCLUDE "audio/sfx/sfx_2b.asm" -INCLUDE "audio/sfx/sfx_2c.asm" -INCLUDE "audio/sfx/sfx_2d.asm" -INCLUDE "audio/sfx/sfx_2e.asm" -INCLUDE "audio/sfx/sfx_2f.asm" -INCLUDE "audio/sfx/sfx_30.asm" -INCLUDE "audio/sfx/sfx_31.asm" -INCLUDE "audio/sfx/sfx_32.asm" -INCLUDE "audio/sfx/sfx_33.asm" -INCLUDE "audio/sfx/sfx_34.asm" -INCLUDE "audio/sfx/sfx_35.asm" -INCLUDE "audio/sfx/sfx_36.asm" -INCLUDE "audio/sfx/sfx_37.asm" -INCLUDE "audio/sfx/sfx_38.asm" -INCLUDE "audio/sfx/sfx_39.asm" -INCLUDE "audio/sfx/sfx_3a.asm" -INCLUDE "audio/sfx/sfx_3b.asm" -INCLUDE "audio/sfx/sfx_3c.asm" -INCLUDE "audio/sfx/sfx_3d.asm" -INCLUDE "audio/sfx/sfx_3e.asm" -INCLUDE "audio/sfx/sfx_3f.asm" -INCLUDE "audio/sfx/sfx_40.asm" -INCLUDE "audio/sfx/sfx_41.asm" -INCLUDE "audio/sfx/sfx_42.asm" -INCLUDE "audio/sfx/sfx_43.asm" -INCLUDE "audio/sfx/sfx_44.asm" -INCLUDE "audio/sfx/sfx_45.asm" -INCLUDE "audio/sfx/sfx_46.asm" -INCLUDE "audio/sfx/sfx_47.asm" -INCLUDE "audio/sfx/sfx_48.asm" -INCLUDE "audio/sfx/sfx_49.asm" -INCLUDE "audio/sfx/sfx_4a.asm" -INCLUDE "audio/sfx/sfx_4b.asm" -INCLUDE "audio/sfx/sfx_4c.asm" -INCLUDE "audio/sfx/sfx_4d.asm" -INCLUDE "audio/sfx/sfx_4e.asm" -INCLUDE "audio/sfx/sfx_4f.asm" -INCLUDE "audio/sfx/sfx_50.asm" -INCLUDE "audio/sfx/sfx_51.asm" -INCLUDE "audio/sfx/sfx_52.asm" -INCLUDE "audio/sfx/sfx_53.asm" -INCLUDE "audio/sfx/sfx_54.asm" -INCLUDE "audio/sfx/sfx_55.asm" -INCLUDE "audio/sfx/sfx_56.asm" -INCLUDE "audio/sfx/sfx_57.asm" -INCLUDE "audio/sfx/sfx_58.asm" -INCLUDE "audio/sfx/sfx_59.asm" -INCLUDE "audio/sfx/sfx_5a.asm" -INCLUDE "audio/sfx/sfx_5b.asm" -INCLUDE "audio/sfx/sfx_5c.asm" -INCLUDE "audio/sfx/sfx_5d.asm" -INCLUDE "audio/sfx/sfx_5e.asm" -INCLUDE "audio/sfx/sfx_5f.asm" - -rept $c1 -db $ff -endr diff --git a/main.asm b/main.asm index 0057991..08d9c56 100755 --- a/main.asm +++ b/main.asm @@ -47,12 +47,3 @@ INCLUDE "engine/bank1c.asm" SECTION "bank20",ROMX,BANK[$20] INCLUDE "engine/bank20.asm" - -SECTION "bank3D",ROMX,BANK[$3D] -INCLUDE "engine/music1.asm" - -SECTION "bank3E",ROMX,BANK[$3E] -INCLUDE "engine/music2.asm" - -SECTION "bank3F",ROMX,BANK[$3F] -INCLUDE "engine/sfx.asm" diff --git a/wram.asm b/wram.asm index 1f40a45..9acee3e 100755 --- a/wram.asm +++ b/wram.asm @@ -150,56 +150,56 @@ wPlayerXCoord: ; d330 wPlayerYCoord: ; d331 ds $a53 -wMusicDC: ; dd84 +wMusicDC:: ; dd84 ds $2 -wMusicDuty: ; dd86 +wMusicDuty:: ; dd86 ds $4 -wMusicWave: ; dd8a +wMusicWave:: ; dd8a ds $1 -wMusicWaveChange: ; dd8b +wMusicWaveChange:: ; dd8b ds $2 -wMusicIsPlaying: ; dd8d +wMusicIsPlaying:: ; dd8d ds $4 -wMusicTie: ; dd91 +wMusicTie:: ; dd91 ds $c -wMusicMainLoop: ; dd9d +wMusicMainLoop:: ; dd9d ds $12 -wMusicOctave: ; ddaf +wMusicOctave:: ; ddaf ds $10 -wMusicE8: ; ddbf +wMusicE8:: ; ddbf ds $8 -wMusicE9: ; ddc7 +wMusicE9:: ; ddc7 ds $4 -wMusicEC: ; ddcb +wMusicEC:: ; ddcb ds $4 -wMusicSpeed: ; ddcf +wMusicSpeed:: ; ddcf ds $4 -wMusicVibratoType: ; ddd3 +wMusicVibratoType:: ; ddd3 ds $4 -wMusicVibratoType2: ; ddd7 +wMusicVibratoType2:: ; ddd7 ds $8 -wMusicVibratoDelay: ; dddf +wMusicVibratoDelay:: ; dddf ds $8 -wMusicVolume: ; dde7 +wMusicVolume:: ; dde7 ds $3 -wMusicE4: ; ddea +wMusicE4:: ; ddea ds $9 -wMusicReturnAddress: ; ddf3 +wMusicReturnAddress:: ; ddf3 ds $8 -- cgit v1.2.3