mirror of https://github.com/pret/pokecrystal.git
start work on audio engine
This commit is contained in:
parent
99b86cdd8f
commit
a7631774b4
107
constants.asm
107
constants.asm
|
@ -3005,4 +3005,109 @@ MOBILE_STUDIUM EQU 5
|
|||
|
||||
; name length
|
||||
PLAYER_NAME_LENGTH EQU 8
|
||||
PKMN_NAME_LENGTH EQU 11
|
||||
PKMN_NAME_LENGTH EQU 11
|
||||
|
||||
; music
|
||||
MUSIC_NONE EQU 0
|
||||
MUSIC_TITLE EQU 1
|
||||
MUSIC_ROUTE_1 EQU 2
|
||||
MUSIC_ROUTE_3 EQU 3
|
||||
MUSIC_ROUTE_12 EQU 4
|
||||
MUSIC_MAGNET_TRAIN EQU 5
|
||||
MUSIC_KANTO_GYM_LEADER_BATTLE EQU 6
|
||||
MUSIC_KANTO_TRAINER_BATTLE EQU 7
|
||||
MUSIC_KANTO_WILD_BATTLE EQU 8
|
||||
MUSIC_POKEMON_CENTER EQU 9
|
||||
MUSIC_HIKER_ENCOUNTER EQU 10
|
||||
MUSIC_LASS_ENCOUNTER EQU 11
|
||||
MUSIC_OFFICER_ENCOUNTER EQU 12
|
||||
MUSIC_HEAL EQU 13
|
||||
MUSIC_LAVENDER_TOWN EQU 14
|
||||
MUSIC_ROUTE_2 EQU 15
|
||||
MUSIC_MT_MOON EQU 16
|
||||
MUSIC_SHOW_ME_AROUND EQU 17
|
||||
MUSIC_GAME_CORNER EQU 18
|
||||
MUSIC_BICYCLE EQU 19
|
||||
MUSIC_HALL_OF_FAME EQU 20
|
||||
MUSIC_VIRIDIAN_CITY EQU 21
|
||||
MUSIC_CELADON_CITY EQU 22
|
||||
MUSIC_TRAINER_VICTORY EQU 23
|
||||
MUSIC_WILD_VICTORY EQU 24
|
||||
MUSIC_GYM_VICTORY EQU 25
|
||||
MUSIC_MT_MOON_SQUARE EQU 26
|
||||
MUSIC_GYM EQU 27
|
||||
MUSIC_PALLET_TOWN EQU 28
|
||||
MUSIC_POKEMON_TALK EQU 29
|
||||
MUSIC_PROF_OAK EQU 30
|
||||
MUSIC_RIVAL_ENCOUNTER EQU 31
|
||||
MUSIC_RIVAL_AFTER EQU 32
|
||||
MUSIC_SURF EQU 33
|
||||
MUSIC_EVOLUTION EQU 34
|
||||
MUSIC_NATIONAL_PARK EQU 35
|
||||
MUSIC_CREDITS EQU 36
|
||||
MUSIC_AZALEA_TOWN EQU 37
|
||||
MUSIC_CHERRYGROVE_CITY EQU 38
|
||||
MUSIC_KIMONO_ENCOUNTER EQU 39
|
||||
MUSIC_UNION_CAVE EQU 40
|
||||
MUSIC_JOHTO_WILD_BATTLE EQU 41
|
||||
MUSIC_JOHTO_TRAINER_BATTLE EQU 42
|
||||
MUSIC_ROUTE_30 EQU 43
|
||||
MUSIC_ECRUTEAK_CITY EQU 44
|
||||
MUSIC_VIOLET_CITY EQU 45
|
||||
MUSIC_JOHTO_GYM_LEADER_BATTLE EQU 46
|
||||
MUSIC_CHAMPION_BATTLE EQU 47
|
||||
MUSIC_RIVAL_BATTLE EQU 48
|
||||
MUSIC_ROCKET_BATTLE EQU 49
|
||||
MUSIC_PROF_ELM EQU 50
|
||||
MUSIC_SLOWPOKE_WELL EQU 51
|
||||
MUSIC_ROUTE_29 EQU 52
|
||||
MUSIC_ROUTE_36 EQU 53
|
||||
MUSIC_SS_AQUA EQU 54
|
||||
MUSIC_YOUNGSTER_ENCOUNTER EQU 55
|
||||
MUSIC_BEAUTY_ENCOUNTER EQU 56
|
||||
MUSIC_ROCKET_ENCOUNTER EQU 57
|
||||
MUSIC_POKEMANIAC_ENCOUNTER EQU 58
|
||||
MUSIC_SAGE_ENCOUNTER EQU 59
|
||||
MUSIC_NEW_BARK_TOWN EQU 60
|
||||
MUSIC_GOLDENROD_CITY EQU 61
|
||||
MUSIC_VERMILION_CITY EQU 62
|
||||
MUSIC_POKEMON_CHANNEL EQU 63
|
||||
MUSIC_POKE_FLUTE_CHANNEL EQU 64
|
||||
MUSIC_TIN_TOWER EQU 65
|
||||
MUSIC_SPROUT_TOWER EQU 66
|
||||
MUSIC_BURNED_TOWER EQU 67
|
||||
MUSIC_LIGHTHOUSE EQU 68
|
||||
MUSIC_LAKE_OF_RAGE EQU 69
|
||||
MUSIC_INDIGO_PLATEAU EQU 70
|
||||
MUSIC_ROUTE_37 EQU 71
|
||||
MUSIC_ROCKET_HIDEOUT EQU 72
|
||||
MUSIC_DRAGONS_DEN EQU 73
|
||||
MUSIC_JOHTO_WILD_BATTLE_NIGHT EQU 74
|
||||
MUSIC_RUINS_OF_ALPH_RADIO EQU 75
|
||||
MUSIC_CAPTURE EQU 76
|
||||
MUSIC_ROUTE_26 EQU 77
|
||||
MUSIC_MOM EQU 78
|
||||
MUSIC_VICTORY_ROAD EQU 79
|
||||
MUSIC_POKEMON_LULLABY EQU 80
|
||||
MUSIC_POKEMON_MARCH EQU 81
|
||||
MUSIC_GS_OPENING EQU 82
|
||||
MUSIC_GS_OPENING_2 EQU 83
|
||||
MUSIC_MAIN_MENU EQU 84
|
||||
MUSIC_RUINS_OF_ALPH_INTERIOR EQU 85
|
||||
MUSIC_ROCKET_OVERTURE EQU 86
|
||||
MUSIC_DANCING_HALL EQU 87
|
||||
MUSIC_BUG_CATCHING_CONTEST_RANKING EQU 88
|
||||
MUSIC_BUG_CATCHING_CONTEST EQU 89
|
||||
MUSIC_LAKE_OF_RAGE_ROCKET_RADIO EQU 90
|
||||
MUSIC_PRINTER EQU 91
|
||||
MUSIC_POST_CREDITS EQU 92
|
||||
MUSIC_CLAIR EQU 93
|
||||
MUSIC_MOBILE_ADAPTER_MENU EQU 94
|
||||
MUSIC_MOBILE_ADAPTER EQU 95
|
||||
MUSIC_BUENAS_PASSWORD EQU 96
|
||||
MUSIC_MYSTICALMAN_ENCOUNTER EQU 97
|
||||
MUSIC_CRYSTAL_OPENING EQU 98
|
||||
MUSIC_BATTLE_TOWER_THEME EQU 99
|
||||
MUSIC_SUICUNE_BATTLE EQU 100
|
||||
MUSIC_BATTLE_TOWER_LOBBY EQU 101
|
||||
MUSIC_MOBILE_CENTER EQU 102
|
||||
|
|
552
main.asm
552
main.asm
|
@ -1285,7 +1285,74 @@ Function3927: ; 3927
|
|||
jp AddNTimes
|
||||
; 392d
|
||||
|
||||
INCBIN "baserom.gbc",$392d,$4000 - $392d
|
||||
INCBIN "baserom.gbc",$392d,$3b86 - $392d
|
||||
|
||||
LoadMusicHeader: ; 3b86
|
||||
; store music header in ram
|
||||
; input:
|
||||
; a: bank
|
||||
; de: address
|
||||
ld [$ff00+$9d], a
|
||||
ld [$2000], a ; bankswitch
|
||||
ld a, [de]
|
||||
ld [MusicHeaderBuffer], a
|
||||
ld a, $3a ; manual bank restore
|
||||
ld [$ff00+$9d], a
|
||||
ld [$2000], a ; bankswitch
|
||||
ret
|
||||
; 3b97
|
||||
|
||||
StartMusic: ; 3b97
|
||||
; input:
|
||||
; e = song number
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
push af
|
||||
ld a, [$ff00+$9d] ; save bank
|
||||
push af
|
||||
ld a, BANK(LoadMusic)
|
||||
ld [$ff00+$9d], a
|
||||
ld [$2000], a ; bankswitch
|
||||
ld a, e ; song number
|
||||
and a
|
||||
jr z, .nomusic
|
||||
call LoadMusic
|
||||
jr .end
|
||||
.nomusic
|
||||
call SoundRestart
|
||||
.end
|
||||
pop af
|
||||
ld [$ff00+$9d], a ; restore bank
|
||||
ld [$2000], a
|
||||
pop af
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
; 3bbc
|
||||
|
||||
INCBIN "baserom.gbc",$3bbc,$3c97 - $3bbc
|
||||
|
||||
MaxVolume: ; 3c97
|
||||
ld a, $77 ; max
|
||||
ld [Volume], a
|
||||
ret
|
||||
; 3c9d
|
||||
|
||||
LowVolume: ; 3c9d
|
||||
ld a, $33 ; 40%
|
||||
ld [Volume], a
|
||||
ret
|
||||
; 3ca3
|
||||
|
||||
VolumeOff: ; 3ca3
|
||||
xor a
|
||||
ld [Volume], a
|
||||
ret
|
||||
; 3ca8
|
||||
|
||||
INCBIN "baserom.gbc",$3ca8,$4000 - $3ca8
|
||||
|
||||
SECTION "bank1",DATA,BANK[$1]
|
||||
|
||||
|
@ -74217,7 +74284,488 @@ INCBIN "baserom.gbc",$E4000,$4000
|
|||
|
||||
SECTION "bank3A",DATA,BANK[$3A]
|
||||
|
||||
INCBIN "baserom.gbc",$E8000,$4000
|
||||
SoundRestart: ; e8000
|
||||
; restart sound operation
|
||||
; clear all relevant registers
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
push af
|
||||
call MusicOff
|
||||
ld hl, $ff24 ; channel control registers
|
||||
xor a
|
||||
ld [hli], a ; ff24 ; volume/vin
|
||||
ld [hli], a ; ff25 ; stereo channels
|
||||
ld a, $80 ; all channels on
|
||||
ld [hli], a ; ff26 ; mono channels
|
||||
|
||||
ld hl, $ff10 ; sound channel registers
|
||||
ld e, $04 ; number of channels
|
||||
.clearsound
|
||||
; sound channel 1 2 3 4
|
||||
xor a
|
||||
ld [hli], a ; $ff10, $ff15, $ff1a, $ff1f ; sweep = 0
|
||||
|
||||
ld [hli], a ; $ff11, $ff16, $ff1b, $ff20 ; length/wavepattern = 0
|
||||
ld a, $08
|
||||
ld [hli], a ; $ff12, $ff17, $ff1c, $ff21 ; envelope = 0
|
||||
xor a
|
||||
ld [hli], a ; $ff13, $ff18, $ff1d, $ff22 ; frequency lo = 0
|
||||
ld a, $80
|
||||
ld [hli], a ; $ff14, $ff19, $ff1e, $ff23 ; restart sound (freq hi = 0)
|
||||
dec e
|
||||
jr nz, .clearsound
|
||||
|
||||
ld hl, $c101 ; start of channel data
|
||||
ld de, $01bf ; length ($ * 8 channels)
|
||||
.clearchannels ; clear $c101-$c2bf
|
||||
xor a
|
||||
ld [hli], a
|
||||
dec de
|
||||
ld a, e
|
||||
or d
|
||||
jr nz, .clearchannels
|
||||
ld a, $77 ; max
|
||||
ld [Volume], a
|
||||
call MusicOn
|
||||
pop af
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
; e803d
|
||||
|
||||
INCBIN "baserom.gbc",$e803d,$e8051 - $e803d
|
||||
|
||||
MusicOn: ; e8051
|
||||
ld a, $01
|
||||
ld [$c100], a
|
||||
ret
|
||||
; e8057
|
||||
|
||||
MusicOff: ; e8057
|
||||
xor a
|
||||
ld [$c100], a
|
||||
ret
|
||||
; e805c
|
||||
|
||||
INCBIN "baserom.gbc",$e805c,$e8b11 - $e805c
|
||||
|
||||
StartChannel: ; e8b11
|
||||
call SetLRTracks
|
||||
ld hl, $0003
|
||||
add hl, bc
|
||||
set 0, [hl] ; channel on
|
||||
ret
|
||||
; e8b1b
|
||||
|
||||
SetLRTracks: ; e8b1b
|
||||
; input:
|
||||
; bc = Channels ($c101)
|
||||
; seems to be redundant since this is overwritten by stereo data later
|
||||
push de
|
||||
ld a, [CurMusicChannel]
|
||||
and a, $03 ; bit 0-1
|
||||
ld e, a
|
||||
ld d, $00
|
||||
call GetLRTracks ; hl = mono / stereo table
|
||||
add hl, de ; + channel #
|
||||
ld a, [hl] ; get result
|
||||
ld hl, Channel1LR - Channel1
|
||||
add hl, bc
|
||||
ld [hl], a ; set tracks
|
||||
pop de
|
||||
ret
|
||||
; e8b30
|
||||
|
||||
LoadMusic: ; e8b30
|
||||
; load music
|
||||
call MusicOff
|
||||
ld hl, MusicID
|
||||
ld [hl], e ; song number
|
||||
inc hl
|
||||
ld [hl], d ; MusicIDHi (always $00)
|
||||
ld hl, Music
|
||||
add hl, de ; three
|
||||
add hl, de ; byte
|
||||
add hl, de ; pointer
|
||||
ld a, [hli]
|
||||
ld [MusicBank], a
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
ld d, [hl] ; music header address
|
||||
call GetByteFromMusicHeader ; store first byte of music header in [a]
|
||||
rlca
|
||||
rlca
|
||||
and a, $03 ; get number of channels
|
||||
inc a
|
||||
.loop
|
||||
; start playing channels
|
||||
push af
|
||||
call LoadChannel
|
||||
call StartChannel
|
||||
pop af
|
||||
dec a
|
||||
jr nz, .loop
|
||||
xor a
|
||||
ld [$c2b5], a
|
||||
ld [$c2b8], a
|
||||
ld [$c2b9], a
|
||||
ld [$c2ba], a
|
||||
ld [$c2bb], a
|
||||
ld [$c2a0], a
|
||||
ld [$c2a1], a
|
||||
ld [$c2a2], a
|
||||
ld [$c2a4], a
|
||||
call MusicOn
|
||||
ret
|
||||
; e8b79
|
||||
|
||||
INCBIN "baserom.gbc",$e8b79,$e8d1b - $e8b79
|
||||
|
||||
LoadChannel: ; e8d1b
|
||||
; prep channel for use
|
||||
; get pointer to current channel
|
||||
call GetByteFromMusicHeader
|
||||
inc de
|
||||
and a, $07 ; bit 0-2 (current channel)
|
||||
ld [CurMusicChannel], a
|
||||
ld c, a
|
||||
ld b, $00
|
||||
ld hl, ChannelPointers
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
ld c, [hl]
|
||||
inc hl
|
||||
ld b, [hl] ; bc = channel pointer
|
||||
ld hl, $0003
|
||||
add hl, bc
|
||||
res 0, [hl] ; channel off
|
||||
call ChannelInit
|
||||
; load music pointer
|
||||
ld hl, Channel1MusicAddress - Channel1
|
||||
add hl, bc
|
||||
call GetByteFromMusicHeader
|
||||
ld [hli], a
|
||||
inc de
|
||||
call GetByteFromMusicHeader
|
||||
ld [hl], a
|
||||
inc de
|
||||
; load music id
|
||||
ld hl, Channel1MusicID - Channel1
|
||||
add hl, bc
|
||||
ld a, [MusicIDLo]
|
||||
ld [hli], a
|
||||
ld a, [MusicIDHi]
|
||||
ld [hl], a
|
||||
; load music bank
|
||||
ld hl, Channel1MusicBank - Channel1
|
||||
add hl, bc
|
||||
ld a, [MusicBank]
|
||||
ld [hl], a
|
||||
ret
|
||||
; e8d5b
|
||||
|
||||
ChannelInit: ; e8d5b
|
||||
; make sure channel is clean
|
||||
; set default tempo and note length in case nothing is loaded
|
||||
; input:
|
||||
; bc = channel struct pointer
|
||||
push de
|
||||
xor a
|
||||
ld hl, $0000
|
||||
add hl, bc
|
||||
ld e, $32 ; channel struct length
|
||||
; clear channel struct
|
||||
.loop
|
||||
ld [hli], a
|
||||
dec e
|
||||
jr nz, .loop
|
||||
ld hl, $0019 ; note length
|
||||
add hl, bc
|
||||
xor a
|
||||
ld [hli], a
|
||||
inc a
|
||||
ld [hl], a ; default note length $100
|
||||
ld hl, $002d ; tempo
|
||||
add hl, bc
|
||||
ld [hl], a ; default tempo $01 (fast)
|
||||
pop de
|
||||
ret
|
||||
; e8d76
|
||||
|
||||
GetByteFromMusicHeader: ; e8d76
|
||||
; input:
|
||||
; de = address of current spot in music header
|
||||
; output:
|
||||
; a
|
||||
ld a, [MusicBank]
|
||||
call LoadMusicHeader
|
||||
ld a, [MusicHeaderBuffer]
|
||||
ret
|
||||
; e8d80
|
||||
|
||||
INCBIN "baserom.gbc",$e8d80,$e8fc2 - $e8d80
|
||||
|
||||
GetLRTracks: ; e8fc2
|
||||
; gets the default sound l/r channels
|
||||
; stores mono/stereo table in hl
|
||||
ld a, [Options]
|
||||
bit 5, a ; stereo
|
||||
; made redundant, could have had a purpose in gold
|
||||
jr nz, .stereo
|
||||
ld hl, MonoTracks
|
||||
ret
|
||||
.stereo
|
||||
ld hl, StereoTracks
|
||||
ret
|
||||
; e8fd1
|
||||
|
||||
MonoTracks: ; e8fd1
|
||||
; bit corresponds to track #
|
||||
; top nybble: right channel
|
||||
; bottom nybble: left channel
|
||||
db $11, $22, $44, $88
|
||||
; e8fd5
|
||||
|
||||
StereoTracks: ; e8fd5
|
||||
; seems to be wrong
|
||||
; figure out what this is actually for
|
||||
; might be default then clears one nybble based on song id
|
||||
db $11, $22, $44, $88
|
||||
; e8fd9
|
||||
|
||||
ChannelPointers: ; e8fd9
|
||||
; mono channels
|
||||
dw Channel1
|
||||
dw Channel2
|
||||
dw Channel3
|
||||
dw Channel4
|
||||
; stereo channels
|
||||
dw Channel5
|
||||
dw Channel6
|
||||
dw Channel7
|
||||
dw Channel8
|
||||
; e8fe9
|
||||
|
||||
; identical in function to SoundRestart but cleaner
|
||||
INCBIN "baserom.gbc",$e8fe9,$e900a - $e8fe9
|
||||
|
||||
PlayTrainerEncounterMusic: ; e900a
|
||||
; input: e = trainer type
|
||||
; turn music off for one frame
|
||||
xor a
|
||||
ld [MusicLength], a ; $00 = infinite
|
||||
push de
|
||||
ld de, $0000
|
||||
call StartMusic
|
||||
call DelayFrame
|
||||
; play new song
|
||||
call MaxVolume
|
||||
pop de
|
||||
ld d, $00
|
||||
ld hl, TrainerEncounterMusic
|
||||
add hl, de
|
||||
ld e, [hl]
|
||||
call StartMusic
|
||||
ret
|
||||
; e9027
|
||||
|
||||
TrainerEncounterMusic: ; e9027
|
||||
db MUSIC_HIKER_ENCOUNTER
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; falkner
|
||||
db MUSIC_LASS_ENCOUNTER ; whitney
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; bugsy
|
||||
db MUSIC_OFFICER_ENCOUNTER ; morty
|
||||
db MUSIC_OFFICER_ENCOUNTER ; pryce
|
||||
db MUSIC_LASS_ENCOUNTER ; jasmine
|
||||
db MUSIC_OFFICER_ENCOUNTER ; chuck
|
||||
db MUSIC_BEAUTY_ENCOUNTER ; clair
|
||||
db MUSIC_RIVAL_ENCOUNTER ; rival1
|
||||
db MUSIC_HIKER_ENCOUNTER ; pokemon_prof
|
||||
db MUSIC_HIKER_ENCOUNTER ; will
|
||||
db MUSIC_HIKER_ENCOUNTER ; cal
|
||||
db MUSIC_OFFICER_ENCOUNTER ; bruno
|
||||
db MUSIC_HIKER_ENCOUNTER ; karen
|
||||
db MUSIC_HIKER_ENCOUNTER ; koga
|
||||
db MUSIC_OFFICER_ENCOUNTER ; champion
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; brock
|
||||
db MUSIC_LASS_ENCOUNTER ; misty
|
||||
db MUSIC_OFFICER_ENCOUNTER ; lt_surge
|
||||
db MUSIC_ROCKET_ENCOUNTER ; scientist
|
||||
db MUSIC_OFFICER_ENCOUNTER ; erika
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; youngster
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; schoolboy
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; bird_keeper
|
||||
db MUSIC_LASS_ENCOUNTER ; lass
|
||||
db MUSIC_LASS_ENCOUNTER ; janine
|
||||
db MUSIC_HIKER_ENCOUNTER ; cooltrainerm
|
||||
db MUSIC_BEAUTY_ENCOUNTER ; cooltrainerf
|
||||
db MUSIC_BEAUTY_ENCOUNTER ; beauty
|
||||
db MUSIC_POKEMANIAC_ENCOUNTER ; pokemaniac
|
||||
db MUSIC_ROCKET_ENCOUNTER ; gruntm
|
||||
db MUSIC_HIKER_ENCOUNTER ; gentleman
|
||||
db MUSIC_BEAUTY_ENCOUNTER ; skier
|
||||
db MUSIC_BEAUTY_ENCOUNTER ; teacher
|
||||
db MUSIC_BEAUTY_ENCOUNTER ; sabrina
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; bug_catcher
|
||||
db MUSIC_HIKER_ENCOUNTER ; fisher
|
||||
db MUSIC_HIKER_ENCOUNTER ; swimmerm
|
||||
db MUSIC_BEAUTY_ENCOUNTER ; swimmerf
|
||||
db MUSIC_HIKER_ENCOUNTER ; sailor
|
||||
db MUSIC_POKEMANIAC_ENCOUNTER ; super_nerd
|
||||
db MUSIC_RIVAL_ENCOUNTER ; rival2
|
||||
db MUSIC_HIKER_ENCOUNTER ; guitarist
|
||||
db MUSIC_HIKER_ENCOUNTER ; hiker
|
||||
db MUSIC_HIKER_ENCOUNTER ; biker
|
||||
db MUSIC_OFFICER_ENCOUNTER ; blaine
|
||||
db MUSIC_POKEMANIAC_ENCOUNTER ; burglar
|
||||
db MUSIC_HIKER_ENCOUNTER ; firebreather
|
||||
db MUSIC_POKEMANIAC_ENCOUNTER ; juggler
|
||||
db MUSIC_HIKER_ENCOUNTER ; blackbelt_t
|
||||
db MUSIC_ROCKET_ENCOUNTER ; executivem
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; psychic_t
|
||||
db MUSIC_LASS_ENCOUNTER ; picnicker
|
||||
db MUSIC_YOUNGSTER_ENCOUNTER ; camper
|
||||
db MUSIC_ROCKET_ENCOUNTER ; executivef
|
||||
db MUSIC_SAGE_ENCOUNTER ; sage
|
||||
db MUSIC_SAGE_ENCOUNTER ; medium
|
||||
db MUSIC_HIKER_ENCOUNTER ; boarder
|
||||
db MUSIC_HIKER_ENCOUNTER ; pokefanm
|
||||
db MUSIC_KIMONO_ENCOUNTER ; kimono_girl
|
||||
db MUSIC_LASS_ENCOUNTER ; twins
|
||||
db MUSIC_BEAUTY_ENCOUNTER ; pokefanf
|
||||
db MUSIC_HIKER_ENCOUNTER ; red
|
||||
db MUSIC_RIVAL_ENCOUNTER ; blue
|
||||
db MUSIC_HIKER_ENCOUNTER ; officer
|
||||
db MUSIC_ROCKET_ENCOUNTER ; gruntf
|
||||
db MUSIC_HIKER_ENCOUNTER ; mysticalman
|
||||
db MUSIC_HIKER_ENCOUNTER
|
||||
db MUSIC_HIKER_ENCOUNTER
|
||||
db MUSIC_HIKER_ENCOUNTER
|
||||
; e906e
|
||||
|
||||
Music: ; e906e
|
||||
; bank, address
|
||||
dbw BANK(NoMusic), NoMusic
|
||||
dbw $3a, $7808
|
||||
dbw $3b, $4000
|
||||
dbw $3b, $42ca
|
||||
dbw $3b, $4506
|
||||
dbw $3b, $75f0
|
||||
dbw $3b, $4720
|
||||
dbw $3b, $49fa
|
||||
dbw $3b, $506d
|
||||
dbw $3b, $55c6
|
||||
dbw $3d, $7411
|
||||
dbw $3b, $579b
|
||||
dbw $3b, $582d
|
||||
dbw $3c, $4697
|
||||
dbw $3b, $772f
|
||||
dbw $3b, $58dd
|
||||
dbw $3b, $5b29
|
||||
dbw $3b, $5bd8
|
||||
dbw $3b, $5d6d
|
||||
dbw $3b, $6119
|
||||
dbw $3c, $45bf
|
||||
dbw $3d, $4000
|
||||
dbw $3d, $435b
|
||||
dbw $3a, $7eab
|
||||
dbw $3d, $4518
|
||||
dbw $3d, $462c
|
||||
dbw $3d, $4815
|
||||
dbw $3d, $48ae
|
||||
dbw $3d, $4b0c
|
||||
dbw $3d, $4c9f
|
||||
dbw $3d, $4dea
|
||||
dbw $3d, $4f79
|
||||
dbw $3d, $5127
|
||||
dbw $3d, $518a
|
||||
dbw $3c, $46e1
|
||||
dbw $3d, $54e8
|
||||
dbw $07, $731c
|
||||
dbw $3d, $57e8
|
||||
dbw $3d, $5b03
|
||||
dbw $3d, $79b8
|
||||
dbw $3d, $5c60
|
||||
dbw $3d, $5dc5
|
||||
dbw $3d, $6096
|
||||
dbw $3b, $7c01
|
||||
dbw $3b, $72d0
|
||||
dbw $3c, $4000
|
||||
dbw $3a, $650d
|
||||
dbw $3a, $69c1
|
||||
dbw $3a, $574f
|
||||
dbw $3a, $5b6f
|
||||
dbw $3a, $6040
|
||||
dbw $3a, $62be
|
||||
dbw $3c, $4386
|
||||
dbw $3a, $54e9
|
||||
dbw $3a, $6d99
|
||||
dbw $3d, $66c3
|
||||
dbw $3b, $6e3e
|
||||
dbw $3d, $74a2
|
||||
dbw $3a, $7de1
|
||||
dbw $3b, $635e
|
||||
dbw $3a, $72d3
|
||||
dbw $3a, $7453
|
||||
dbw $3a, $7676
|
||||
dbw $3b, $645f
|
||||
dbw $3d, $7b13
|
||||
dbw $3d, $6811
|
||||
dbw $3d, $6974
|
||||
dbw $3d, $6a99
|
||||
dbw $3b, $6569
|
||||
dbw $3b, $66c5
|
||||
dbw $3b, $6852
|
||||
dbw $3b, $694b
|
||||
dbw $3b, $6b75
|
||||
dbw $3b, $6ce8
|
||||
dbw $3d, $605c
|
||||
dbw $3b, $6dcb
|
||||
dbw $3d, $4602
|
||||
dbw $3b, $6fb2
|
||||
dbw $3d, $6bf2
|
||||
dbw $3d, $6c72
|
||||
dbw $3d, $6d79
|
||||
dbw $3d, $6e23
|
||||
dbw $3d, $7055
|
||||
dbw $3d, $7308
|
||||
dbw $3d, $78fd
|
||||
dbw $3a, $7d9e
|
||||
dbw $3d, $766d
|
||||
dbw $3b, $79bc
|
||||
dbw $3b, $7b3e
|
||||
dbw $3d, $7c16
|
||||
dbw $3b, $75b1
|
||||
dbw $3c, $47fd
|
||||
dbw $33, $7d9e
|
||||
dbw $07, $7a8d
|
||||
dbw $5e, $401f
|
||||
dbw $07, $7c87
|
||||
dbw $5e, $4153
|
||||
dbw $5e, $443b
|
||||
dbw $5e, $46e8
|
||||
dbw $5e, $4889
|
||||
dbw $5e, $4b81
|
||||
dbw $5e, $548b
|
||||
dbw $5e, $561d
|
||||
; e91a3
|
||||
|
||||
NoMusic: ; e91a3
|
||||
; (nothing)
|
||||
dbw $c0, NoMusic_Ch0
|
||||
dbw $01, NoMusic_Ch1
|
||||
dbw $02, NoMusic_Ch2
|
||||
dbw $03, NoMusic_Ch3
|
||||
NoMusic_Ch0:
|
||||
NoMusic_Ch1:
|
||||
NoMusic_Ch2:
|
||||
NoMusic_Ch3: ; e91af
|
||||
db $ff ; end
|
||||
; e91b0
|
||||
|
||||
INCBIN "baserom.gbc",$e91b0,$ec000-$e91b0
|
||||
|
||||
SECTION "bank3B",DATA,BANK[$3B]
|
||||
|
||||
|
|
126
wram.asm
126
wram.asm
|
@ -1,3 +1,87 @@
|
|||
SECTION "audio",BSS[$c100]
|
||||
; channel structure:
|
||||
; $00: music id lo
|
||||
; $01: music id hi
|
||||
;
|
||||
; $03: channel flags? bit 0 = on/off
|
||||
;
|
||||
; $06: address of music data
|
||||
;
|
||||
; $19: note length lo
|
||||
; $1a: note length hi
|
||||
; $1b: lr tracks (bit corresponds to track #)
|
||||
;
|
||||
; $2d: tempo
|
||||
|
||||
Channels:
|
||||
Channel1:
|
||||
Channel1MusicID: ; c101
|
||||
ds 2
|
||||
Channel1MusicBank: ; c103
|
||||
ds 1
|
||||
; $03 = channel flags?
|
||||
ds 1
|
||||
; note/octave????
|
||||
ds 2
|
||||
Channel1MusicAddress: ; c107
|
||||
ds 2
|
||||
ds 17
|
||||
Channel1NoteLength: ; c11a
|
||||
ds 2
|
||||
Channel1LR: ; c11c
|
||||
ds 1
|
||||
ds 16
|
||||
Channel1Tempo: ; c12e
|
||||
ds 1
|
||||
ds 3
|
||||
|
||||
Channel2: ; c133
|
||||
ds 50
|
||||
Channel3: ; c165
|
||||
ds 50
|
||||
Channel4: ; c197
|
||||
ds 50
|
||||
|
||||
StereoChannels:
|
||||
Channel5: ; c1c9
|
||||
ds 50
|
||||
Channel6: ; c1fb
|
||||
ds 50
|
||||
Channel7: ; c22d
|
||||
ds 50
|
||||
Channel8: ; c25f
|
||||
ds 50
|
||||
|
||||
|
||||
MusicHeaderBuffer: ; c298
|
||||
ds 1
|
||||
CurMusicChannel: ; c299
|
||||
ds 1
|
||||
|
||||
Volume: ; c29a
|
||||
; corresponds to $ff24
|
||||
; Channel control / ON-OFF / Volume (R/W)
|
||||
; bit 7 - Vin->SO2 ON/OFF
|
||||
; bit 6-4 - SO2 output level (volume) (# 0-7)
|
||||
; bit 3 - Vin->SO1 ON/OFF
|
||||
; bit 2-0 - SO1 output level (volume) (# 0-7)
|
||||
ds 1
|
||||
|
||||
MusicID:
|
||||
MusicIDLo: ; c29d
|
||||
ds 1
|
||||
MusicIDHi: ; c29e
|
||||
ds 1
|
||||
|
||||
MusicBank: ; c29f
|
||||
ds 1
|
||||
|
||||
MusicLength: ; c2a7
|
||||
; fades out when counter hits this value
|
||||
; $00 = infinite
|
||||
ds 1
|
||||
|
||||
|
||||
SECTION "linkbattle",BSS[$c2dc]
|
||||
|
||||
InLinkBattle: ; 0xc2dc
|
||||
|
@ -63,6 +147,48 @@ BattleMonSpclAtk: ; c646
|
|||
BattleMonSpclDef: ; c648
|
||||
ds 2
|
||||
|
||||
SECTION "Engine",BSS[$cfcc]
|
||||
Options: ; cfcc
|
||||
; bit 0-2: number of frames to delay when printing text
|
||||
; fast 1; mid 3; slow 5
|
||||
; bit 3-4: unused
|
||||
; bit 5: stereo off/on
|
||||
; bit 6: battle style shift/set
|
||||
; bit 7: battle scene off/on
|
||||
ds 1
|
||||
|
||||
TextBoxFrame: ; cfce
|
||||
; bits 0-2: textbox frame 0-7
|
||||
ds 1
|
||||
|
||||
GBPrinter: ; cfd0
|
||||
; bit 0-6: brightness
|
||||
; lightest: $00
|
||||
; lighter: $20
|
||||
; normal: $40 (default)
|
||||
; darker: $60
|
||||
; darkest: $7F
|
||||
ds 1
|
||||
|
||||
Options2: ; cfd1
|
||||
; bit 1: menu account off/on
|
||||
ds 1
|
||||
|
||||
|
||||
VramState: ; d0ed
|
||||
; bit 0: overworld sprite updating on/off
|
||||
; bit 6: something to do with text
|
||||
; bit 7: on when surf initiates
|
||||
; flickers when climbing waterfall
|
||||
ds 1
|
||||
|
||||
|
||||
CurPartyMon: ; d109
|
||||
; contains which monster in your party
|
||||
; is being dealt with at the moment
|
||||
; 0-5
|
||||
ds 1
|
||||
|
||||
SECTION "EnemyMon",BSS[$d204]
|
||||
|
||||
EnemyMonSpecies: ; d204
|
||||
|
|
Loading…
Reference in New Issue