ref: 5be98bae3c3c27b4b57bb8fda9368cf6c7f0d473
parent: 31cce83e9b3bab01d8a605b170549fbd25ca5fee
author: Remy Oukaour <[email protected]>
date: Mon Dec 11 10:20:32 EST 2017
Move more data tables into data/ files.
--- a/audio.asm
+++ b/audio.asm
@@ -5,8 +5,8 @@
INCLUDE "audio/engine.asm"
-; What music plays when a trainer notices you
-INCLUDE "audio/trainer_encounters.asm"
+TrainerEncounterMusic::
+INCLUDE "trainers/encounter_music.asm"
Music:
INCLUDE "audio/music_pointers.asm"
--- /dev/null
+++ b/audio/drumkits.asm
@@ -1,0 +1,301 @@
+Drumkits: ; e8e52
+ dw Drumkit0
+ dw Drumkit1
+ dw Drumkit2
+ dw Drumkit3
+ dw Drumkit4
+ dw Drumkit5
+; e8e5e
+
+Drumkit0: ; e8e5e
+ dw Drum00 ; rest
+ dw Snare1 ; c
+ dw Snare2 ; c#
+ dw Snare3 ; d
+ dw Snare4 ; d#
+ dw Drum05 ; e
+ dw Triangle1 ; f
+ dw Triangle2 ; f#
+ dw HiHat1 ; g
+ dw Snare5 ; g#
+ dw Snare6 ; a
+ dw Snare7 ; a#
+ dw HiHat2 ; b
+Drumkit1: ; e8e78
+ dw Drum00
+ dw HiHat1
+ dw Snare5
+ dw Snare6
+ dw Snare7
+ dw HiHat2
+ dw HiHat3
+ dw Snare8
+ dw Triangle3
+ dw Triangle4
+ dw Snare9
+ dw Snare10
+ dw Snare11
+Drumkit2: ; e8e92
+ dw Drum00
+ dw Snare1
+ dw Snare9
+ dw Snare10
+ dw Snare11
+ dw Drum05
+ dw Triangle1
+ dw Triangle2
+ dw HiHat1
+ dw Snare5
+ dw Snare6
+ dw Snare7
+ dw HiHat2
+Drumkit3: ; e8eac
+ dw Drum21
+ dw Snare12
+ dw Snare13
+ dw Snare14
+ dw Kick1
+ dw Triangle5
+ dw Drum20
+ dw Drum27
+ dw Drum28
+ dw Drum29
+ dw Drum21
+ dw Kick2
+ dw Crash2
+Drumkit4: ; e8ec6
+ dw Drum21
+ dw Drum20
+ dw Snare13
+ dw Snare14
+ dw Kick1
+ dw Drum33
+ dw Triangle5
+ dw Drum35
+ dw Drum31
+ dw Drum32
+ dw Drum36
+ dw Kick2
+ dw Crash1
+Drumkit5: ; e8ee0
+ dw Drum00
+ dw Snare9
+ dw Snare10
+ dw Snare11
+ dw Drum27
+ dw Drum28
+ dw Drum29
+ dw Drum05
+ dw Triangle1
+ dw Crash1
+ dw Snare14
+ dw Snare13
+ dw Kick2
+; e8efa
+
+Drum00: ; e8efa
+; unused
+ noise C#, 1, $11, $00
+ endchannel
+; e8efe
+
+Snare1: ; e8efe
+ noise C#, 1, $c1, $33
+ endchannel
+; e8f02
+
+Snare2: ; e8f02
+ noise C#, 1, $b1, $33
+ endchannel
+; e8f06
+
+Snare3: ; e8f06
+ noise C#, 1, $a1, $33
+ endchannel
+; e8f0a
+
+Snare4: ; e8f0a
+ noise C#, 1, $81, $33
+ endchannel
+; e8f0e
+
+Drum05: ; e8f0e
+ noise C#, 8, $84, $37
+ noise C#, 7, $84, $36
+ noise C#, 6, $83, $35
+ noise C#, 5, $83, $34
+ noise C#, 4, $82, $33
+ noise C#, 3, $81, $32
+ endchannel
+; e8f21
+
+Triangle1: ; e8f21
+ noise C#, 1, $51, $2a
+ endchannel
+; e8f25
+
+Triangle2: ; e8f25
+ noise C#, 2, $41, $2b
+ noise C#, 1, $61, $2a
+ endchannel
+; e8f2c
+
+HiHat1: ; e8f2c
+ noise C#, 1, $81, $10
+ endchannel
+; e8f30
+
+Snare5: ; e8f30
+ noise C#, 1, $82, $23
+ endchannel
+; e8f34
+
+Snare6: ; e8f34
+ noise C#, 1, $82, $25
+ endchannel
+; e8f38
+
+Snare7: ; e8f38
+ noise C#, 1, $82, $26
+ endchannel
+; e8f3c
+
+HiHat2: ; e8f3c
+ noise C#, 1, $a1, $10
+ endchannel
+; e8f40
+
+HiHat3: ; e8f40
+ noise C#, 1, $a2, $11
+ endchannel
+; e8f44
+
+Snare8: ; e8f44
+ noise C#, 1, $a2, $50
+ endchannel
+; e8f48
+
+Triangle3: ; e8f48
+ noise C#, 1, $a1, $18
+ noise C#, 1, $31, $33
+ endchannel
+; e8f4f
+
+Triangle4: ; e8f4f
+ noise C#, 3, $91, $28
+ noise C#, 1, $71, $18
+ endchannel
+; e8f56
+
+Snare9: ; e8f56
+ noise C#, 1, $91, $22
+ endchannel
+; e8f5a
+
+Snare10: ; e8f5a
+ noise C#, 1, $71, $22
+ endchannel
+; e8f5e
+
+Snare11: ; e8f5e
+ noise C#, 1, $61, $22
+ endchannel
+; e8f62
+
+Drum20: ; e8f62
+ noise C#, 1, $11, $11
+ endchannel
+; e8f66
+
+Drum21: ; e8f66
+ endchannel
+; e8f67
+
+Snare12: ; e8f67
+ noise C#, 1, $91, $33
+ endchannel
+; e8f6b
+
+Snare13: ; e8f6b
+ noise C#, 1, $51, $32
+ endchannel
+; e8f6f
+
+Snare14: ; e8f6f
+ noise C#, 1, $81, $31
+ endchannel
+; e8f73
+
+Kick1: ; e8f73
+ noise C#, 1, $88, $6b
+ noise C#, 1, $71, $00
+ endchannel
+; e8f7a
+
+Triangle5: ; e8f7a
+ noise D_, 1, $91, $18
+ endchannel
+; e8f7e
+
+Drum27: ; e8f7e
+ noise C#, 8, $92, $10
+ endchannel
+; e8f82
+
+Drum28: ; e8f82
+ noise D_, 4, $91, $00
+ noise D_, 4, $11, $00
+ endchannel
+; e8f89
+
+Drum29: ; e8f89
+ noise D_, 4, $91, $11
+ noise D_, 4, $11, $00
+ endchannel
+; e8f90
+
+Crash1: ; e8f90
+ noise D_, 4, $88, $15
+ noise C#, 1, $65, $12
+ endchannel
+; e8f97
+
+Drum31: ; e8f97
+ noise D_, 4, $51, $21
+ noise D_, 4, $11, $11
+ endchannel
+; e8f9e
+
+Drum32: ; e8f9e
+ noise D_, 4, $51, $50
+ noise D_, 4, $11, $11
+ endchannel
+; e8fa5
+
+Drum33: ; e8fa5
+ noise C#, 1, $a1, $31
+ endchannel
+; e8fa9
+
+Crash2: ; e8fa9
+ noise C#, 1, $84, $12
+ endchannel
+; e8fad
+
+Drum35: ; e8fad
+ noise D_, 4, $81, $00
+ noise D_, 4, $11, $00
+ endchannel
+; e8fb4
+
+Drum36: ; e8fb4
+ noise D_, 4, $81, $21
+ noise D_, 4, $11, $11
+ endchannel
+; e8fbb
+
+Kick2: ; e8fbb
+ noise C#, 1, $a8, $6b
+ noise C#, 1, $71, $00
+ endchannel
+; e8fc2
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -2883,350 +2883,15 @@
; e8d80
FrequencyTable: ; e8d80
- dw 0 ; __
- dw $f82c ; C_
- dw $f89d ; C#
- dw $f907 ; D_
- dw $f96b ; D#
- dw $f9ca ; E_
- dw $fa23 ; F_
- dw $fa77 ; F#
- dw $fac7 ; G_
- dw $fb12 ; G#
- dw $fb58 ; A_
- dw $fb9b ; A#
- dw $fbda ; B_
- dw $fc16 ; C_
- dw $fc4e ; C#
- dw $fc83 ; D_
- dw $fcb5 ; D#
- dw $fce5 ; E_
- dw $fd11 ; F_
- dw $fd3b ; F#
- dw $fd63 ; G_
- dw $fd89 ; G#
- dw $fdac ; A_
- dw $fdcd ; A#
- dw $fded ; B_
+INCLUDE "data/audio/notes.asm"
; e8db2
WaveSamples: ; e8db2
- ; these are streams of 32 4-bit values used as wavepatterns
- ; nothing interesting here!
- dn 0, 2, 4, 6, 8, 10, 12, 14, 15, 15, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 3, 3, 2, 2, 1, 1
- dn 0, 2, 4, 6, 8, 10, 12, 14, 14, 15, 15, 15, 15, 14, 14, 14, 13, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 1, 1
- dn 1, 3, 6, 9, 11, 13, 14, 14, 14, 14, 15, 15, 15, 15, 14, 13, 13, 14, 15, 15, 15, 15, 14, 14, 14, 14, 13, 11, 9, 6, 3, 1
- dn 0, 2, 4, 6, 8, 10, 12, 13, 14, 15, 15, 14, 13, 14, 15, 15, 14, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
- dn 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 14, 15, 7, 7, 15, 14, 14, 13, 12, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0
- dn 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 3, 3, 2, 2, 1, 1, 15, 15, 14, 14, 12, 12, 10, 10, 8, 8, 10, 10, 12, 12, 14, 14
- dn 0, 2, 4, 6, 8, 10, 12, 14, 12, 11, 10, 9, 8, 7, 6, 5, 15, 15, 15, 14, 14, 13, 13, 12, 4, 4, 3, 3, 2, 2, 1, 1
- dn 12, 0, 10, 9, 8, 7, 15, 5, 15, 15, 15, 14, 14, 13, 13, 12, 4, 4, 3, 3, 2, 2, 15, 1, 0, 2, 4, 6, 8, 10, 12, 14
- dn 4, 4, 3, 3, 2, 2, 1, 15, 0, 0, 4, 6, 8, 10, 12, 14, 15, 8, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5
- dn 1, 1, 0, 0, 0, 0, 0, 8, 0, 0, 1, 3, 5, 7, 9, 10, 11, 4, 11, 10, 10, 9, 9, 8, 8, 7, 6, 5, 4, 3, 2, 1
+INCLUDE "data/audio/wave_samples.asm"
; e8e52
-Drumkits: ; e8e52
- dw Drumkit0
- dw Drumkit1
- dw Drumkit2
- dw Drumkit3
- dw Drumkit4
- dw Drumkit5
-; e8e5e
+INCLUDE "audio/drumkits.asm"
-Drumkit0: ; e8e5e
- dw Drum00 ; rest
- dw Snare1 ; c
- dw Snare2 ; c#
- dw Snare3 ; d
- dw Snare4 ; d#
- dw Drum05 ; e
- dw Triangle1 ; f
- dw Triangle2 ; f#
- dw HiHat1 ; g
- dw Snare5 ; g#
- dw Snare6 ; a
- dw Snare7 ; a#
- dw HiHat2 ; b
-Drumkit1: ; e8e78
- dw Drum00
- dw HiHat1
- dw Snare5
- dw Snare6
- dw Snare7
- dw HiHat2
- dw HiHat3
- dw Snare8
- dw Triangle3
- dw Triangle4
- dw Snare9
- dw Snare10
- dw Snare11
-Drumkit2: ; e8e92
- dw Drum00
- dw Snare1
- dw Snare9
- dw Snare10
- dw Snare11
- dw Drum05
- dw Triangle1
- dw Triangle2
- dw HiHat1
- dw Snare5
- dw Snare6
- dw Snare7
- dw HiHat2
-Drumkit3: ; e8eac
- dw Drum21
- dw Snare12
- dw Snare13
- dw Snare14
- dw Kick1
- dw Triangle5
- dw Drum20
- dw Drum27
- dw Drum28
- dw Drum29
- dw Drum21
- dw Kick2
- dw Crash2
-Drumkit4: ; e8ec6
- dw Drum21
- dw Drum20
- dw Snare13
- dw Snare14
- dw Kick1
- dw Drum33
- dw Triangle5
- dw Drum35
- dw Drum31
- dw Drum32
- dw Drum36
- dw Kick2
- dw Crash1
-Drumkit5: ; e8ee0
- dw Drum00
- dw Snare9
- dw Snare10
- dw Snare11
- dw Drum27
- dw Drum28
- dw Drum29
- dw Drum05
- dw Triangle1
- dw Crash1
- dw Snare14
- dw Snare13
- dw Kick2
-; e8efa
-
-Drum00: ; e8efa
-; unused
- noise C#, 1, $11, $00
- endchannel
-; e8efe
-
-Snare1: ; e8efe
- noise C#, 1, $c1, $33
- endchannel
-; e8f02
-
-Snare2: ; e8f02
- noise C#, 1, $b1, $33
- endchannel
-; e8f06
-
-Snare3: ; e8f06
- noise C#, 1, $a1, $33
- endchannel
-; e8f0a
-
-Snare4: ; e8f0a
- noise C#, 1, $81, $33
- endchannel
-; e8f0e
-
-Drum05: ; e8f0e
- noise C#, 8, $84, $37
- noise C#, 7, $84, $36
- noise C#, 6, $83, $35
- noise C#, 5, $83, $34
- noise C#, 4, $82, $33
- noise C#, 3, $81, $32
- endchannel
-; e8f21
-
-Triangle1: ; e8f21
- noise C#, 1, $51, $2a
- endchannel
-; e8f25
-
-Triangle2: ; e8f25
- noise C#, 2, $41, $2b
- noise C#, 1, $61, $2a
- endchannel
-; e8f2c
-
-HiHat1: ; e8f2c
- noise C#, 1, $81, $10
- endchannel
-; e8f30
-
-Snare5: ; e8f30
- noise C#, 1, $82, $23
- endchannel
-; e8f34
-
-Snare6: ; e8f34
- noise C#, 1, $82, $25
- endchannel
-; e8f38
-
-Snare7: ; e8f38
- noise C#, 1, $82, $26
- endchannel
-; e8f3c
-
-HiHat2: ; e8f3c
- noise C#, 1, $a1, $10
- endchannel
-; e8f40
-
-HiHat3: ; e8f40
- noise C#, 1, $a2, $11
- endchannel
-; e8f44
-
-Snare8: ; e8f44
- noise C#, 1, $a2, $50
- endchannel
-; e8f48
-
-Triangle3: ; e8f48
- noise C#, 1, $a1, $18
- noise C#, 1, $31, $33
- endchannel
-; e8f4f
-
-Triangle4: ; e8f4f
- noise C#, 3, $91, $28
- noise C#, 1, $71, $18
- endchannel
-; e8f56
-
-Snare9: ; e8f56
- noise C#, 1, $91, $22
- endchannel
-; e8f5a
-
-Snare10: ; e8f5a
- noise C#, 1, $71, $22
- endchannel
-; e8f5e
-
-Snare11: ; e8f5e
- noise C#, 1, $61, $22
- endchannel
-; e8f62
-
-Drum20: ; e8f62
- noise C#, 1, $11, $11
- endchannel
-; e8f66
-
-Drum21: ; e8f66
- endchannel
-; e8f67
-
-Snare12: ; e8f67
- noise C#, 1, $91, $33
- endchannel
-; e8f6b
-
-Snare13: ; e8f6b
- noise C#, 1, $51, $32
- endchannel
-; e8f6f
-
-Snare14: ; e8f6f
- noise C#, 1, $81, $31
- endchannel
-; e8f73
-
-Kick1: ; e8f73
- noise C#, 1, $88, $6b
- noise C#, 1, $71, $00
- endchannel
-; e8f7a
-
-Triangle5: ; e8f7a
- noise D_, 1, $91, $18
- endchannel
-; e8f7e
-
-Drum27: ; e8f7e
- noise C#, 8, $92, $10
- endchannel
-; e8f82
-
-Drum28: ; e8f82
- noise D_, 4, $91, $00
- noise D_, 4, $11, $00
- endchannel
-; e8f89
-
-Drum29: ; e8f89
- noise D_, 4, $91, $11
- noise D_, 4, $11, $00
- endchannel
-; e8f90
-
-Crash1: ; e8f90
- noise D_, 4, $88, $15
- noise C#, 1, $65, $12
- endchannel
-; e8f97
-
-Drum31: ; e8f97
- noise D_, 4, $51, $21
- noise D_, 4, $11, $11
- endchannel
-; e8f9e
-
-Drum32: ; e8f9e
- noise D_, 4, $51, $50
- noise D_, 4, $11, $11
- endchannel
-; e8fa5
-
-Drum33: ; e8fa5
- noise C#, 1, $a1, $31
- endchannel
-; e8fa9
-
-Crash2: ; e8fa9
- noise C#, 1, $84, $12
- endchannel
-; e8fad
-
-Drum35: ; e8fad
- noise D_, 4, $81, $00
- noise D_, 4, $11, $00
- endchannel
-; e8fb4
-
-Drum36: ; e8fb4
- noise D_, 4, $81, $21
- noise D_, 4, $11, $11
- endchannel
-; e8fbb
-
-Kick2: ; e8fbb
- noise C#, 1, $a8, $6b
- noise C#, 1, $71, $00
- endchannel
-; e8fc2
-
GetLRTracks: ; e8fc2
; gets the default sound l/r channels
; stores mono/stereo table in hl
@@ -3306,3 +2971,24 @@
ret
; e900a
+
+PlayTrainerEncounterMusic:: ; e900a
+; input: e = trainer type
+ ; turn fade off
+ xor a
+ ld [MusicFade], a
+ ; play nothing for one frame
+ push de
+ ld de, 0 ; id: Music_Nothing
+ call PlayMusic
+ call DelayFrame
+ ; play new song
+ call MaxVolume
+ pop de
+ ld d, $00
+ ld hl, TrainerEncounterMusic
+ add hl, de
+ ld e, [hl]
+ call PlayMusic
+ ret
+; e9027
--- a/audio/trainer_encounters.asm
+++ /dev/null
@@ -1,96 +1,0 @@
-; Currently, must be in the same bank as the sound engine.
-
-PlayTrainerEncounterMusic:: ; e900a
-; input: e = trainer type
- ; turn fade off
- xor a
- ld [MusicFade], a
- ; play nothing for one frame
- push de
- ld de, 0 ; id: Music_Nothing
- call PlayMusic
- call DelayFrame
- ; play new song
- call MaxVolume
- pop de
- ld d, $00
- ld hl, TrainerEncounterMusic
- add hl, de
- ld e, [hl]
- call PlayMusic
- 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
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -1,4 +1,5 @@
; pitch
+; FrequencyTable indexes (see data/audio/notes.asm)
const_def
const __ ; 0
const C_ ; 1
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -7,8 +7,8 @@
; map group ids
; `newgroup` indexes are for:
; - MapGroupPointers (see maps/map_headers.asm)
-; - OutdoorSprites (see engine/overworld.asm)
-; - MapGroupRoofs (see tilesets/roofs.asm)
+; - OutdoorSprites (see data/outdoor_sprites.asm)
+; - MapGroupRoofs (see data/mapgroup_roofs.asm)
; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm)
const_def
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -2,8 +2,8 @@
; `trainerclass` indexes are for:
; - TrainerClassAttributes (see trainers/attributes.asm)
; - TrainerClassDVs (see trainers/dvs.asm)
+; - TrainerEncounterMusic (see trainers/encounter_music.asm)
; - TrainerGroups (see trainers/trainer_pointers.asm)
-; - TrainerEncounterMusic (see audio/trainer_encounters.asm)
; - BTTrainerClassGenders (see misc/battle_tower_47.asm)
; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see trainers/trainers.asm)
enum_start
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -48,6 +48,11 @@
const LEFT ; 2
const RIGHT ; 3
+DOWN_MASK EQU 1 << DOWN
+UP_MASK EQU 1 << UP
+LEFT_MASK EQU 1 << LEFT
+RIGHT_MASK EQU 1 << RIGHT
+
; FacingDirection: ; d044
FACE_CURRENT EQU 0
FACE_DOWN EQU 8
--- /dev/null
+++ b/data/audio/notes.asm
@@ -1,0 +1,25 @@
+ dw 0 ; __
+ dw $f82c ; C_
+ dw $f89d ; C#
+ dw $f907 ; D_
+ dw $f96b ; D#
+ dw $f9ca ; E_
+ dw $fa23 ; F_
+ dw $fa77 ; F#
+ dw $fac7 ; G_
+ dw $fb12 ; G#
+ dw $fb58 ; A_
+ dw $fb9b ; A#
+ dw $fbda ; B_
+ dw $fc16 ; C_
+ dw $fc4e ; C#
+ dw $fc83 ; D_
+ dw $fcb5 ; D#
+ dw $fce5 ; E_
+ dw $fd11 ; F_
+ dw $fd3b ; F#
+ dw $fd63 ; G_
+ dw $fd89 ; G#
+ dw $fdac ; A_
+ dw $fdcd ; A#
+ dw $fded ; B_
--- /dev/null
+++ b/data/audio/wave_samples.asm
@@ -1,0 +1,12 @@
+ ; these are streams of 32 4-bit values used as wavepatterns
+ ; nothing interesting here!
+ dn 0, 2, 4, 6, 8, 10, 12, 14, 15, 15, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 4, 3, 3, 2, 2, 1, 1
+ dn 0, 2, 4, 6, 8, 10, 12, 14, 14, 15, 15, 15, 15, 14, 14, 14, 13, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 1, 1
+ dn 1, 3, 6, 9, 11, 13, 14, 14, 14, 14, 15, 15, 15, 15, 14, 13, 13, 14, 15, 15, 15, 15, 14, 14, 14, 14, 13, 11, 9, 6, 3, 1
+ dn 0, 2, 4, 6, 8, 10, 12, 13, 14, 15, 15, 14, 13, 14, 15, 15, 14, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
+ dn 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 14, 15, 7, 7, 15, 14, 14, 13, 12, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0
+ dn 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 3, 3, 2, 2, 1, 1, 15, 15, 14, 14, 12, 12, 10, 10, 8, 8, 10, 10, 12, 12, 14, 14
+ dn 0, 2, 4, 6, 8, 10, 12, 14, 12, 11, 10, 9, 8, 7, 6, 5, 15, 15, 15, 14, 14, 13, 13, 12, 4, 4, 3, 3, 2, 2, 1, 1
+ dn 12, 0, 10, 9, 8, 7, 15, 5, 15, 15, 15, 14, 14, 13, 13, 12, 4, 4, 3, 3, 2, 2, 15, 1, 0, 2, 4, 6, 8, 10, 12, 14
+ dn 4, 4, 3, 3, 2, 2, 1, 15, 0, 0, 4, 6, 8, 10, 12, 14, 15, 8, 15, 14, 14, 13, 13, 12, 12, 11, 10, 9, 8, 7, 6, 5
+ dn 1, 1, 0, 0, 0, 0, 0, 8, 0, 0, 1, 3, 5, 7, 9, 10, 11, 4, 11, 10, 10, 9, 9, 8, 8, 7, 6, 5, 4, 3, 2, 1
--- /dev/null
+++ b/data/bug_contest_winners.asm
@@ -1,0 +1,74 @@
+BugContestantPointers: ; 13783
+ dw BugContestant_BugCatcherDon ; This reverts back to the player
+ dw BugContestant_BugCatcherDon
+ dw BugContestant_BugCatcherEd
+ dw BugContestant_CooltrainerMNick
+ dw BugContestant_PokefanMWilliam
+ dw BugContestant_BugCatcherBenny
+ dw BugContestant_CamperBarry
+ dw BugContestant_PicnickerCindy
+ dw BugContestant_BugCatcherJosh
+ dw BugContestant_YoungsterSamuel
+ dw BugContestant_SchoolboyKipp
+; 13799
+
+BugContestant_BugCatcherDon:
+ db BUG_CATCHER, DON
+ dbw KAKUNA, 300
+ dbw METAPOD, 285
+ dbw CATERPIE, 226
+
+BugContestant_BugCatcherEd:
+ db BUG_CATCHER, ED
+ dbw BUTTERFREE, 286
+ dbw BUTTERFREE, 251
+ dbw CATERPIE, 237
+
+BugContestant_CooltrainerMNick:
+ db COOLTRAINERM, NICK
+ dbw SCYTHER, 357
+ dbw BUTTERFREE, 349
+ dbw PINSIR, 368
+
+BugContestant_PokefanMWilliam:
+ db POKEFANM, WILLIAM
+ dbw PINSIR, 332
+ dbw BUTTERFREE, 324
+ dbw VENONAT, 321
+
+BugContestant_BugCatcherBenny:
+ db BUG_CATCHER, BUG_CATCHER_BENNY
+ dbw BUTTERFREE, 318
+ dbw WEEDLE, 295
+ dbw CATERPIE, 285
+
+BugContestant_CamperBarry:
+ db CAMPER, BARRY
+ dbw PINSIR, 366
+ dbw VENONAT, 329
+ dbw KAKUNA, 314
+
+BugContestant_PicnickerCindy:
+ db PICNICKER, CINDY
+ dbw BUTTERFREE, 341
+ dbw METAPOD, 301
+ dbw CATERPIE, 264
+
+BugContestant_BugCatcherJosh:
+ db BUG_CATCHER, JOSH
+ dbw SCYTHER, 326
+ dbw BUTTERFREE, 292
+ dbw METAPOD, 282
+
+BugContestant_YoungsterSamuel:
+ db YOUNGSTER, SAMUEL
+ dbw WEEDLE, 270
+ dbw PINSIR, 282
+ dbw CATERPIE, 251
+
+BugContestant_SchoolboyKipp:
+ db SCHOOLBOY, KIPP
+ dbw VENONAT, 267
+ dbw PARAS, 254
+ dbw KAKUNA, 259
+; 13807
--- /dev/null
+++ b/data/hm_moves.asm
@@ -1,0 +1,9 @@
+; HM moves can't be forgotten
+ db CUT
+ db FLY
+ db SURF
+ db STRENGTH
+ db FLASH
+ db WATERFALL
+ db WHIRLPOOL
+ db -1 ; end
--- /dev/null
+++ b/data/mail_input_chars.asm
@@ -1,0 +1,19 @@
+; see engine/naming_screen.asm
+
+MailEntry_Uppercase: ; 122dd
+ db "A B C D E F G H I J"
+ db "K L M N O P Q R S T"
+ db "U V W X Y Z , ? !"
+ db "1 2 3 4 5 6 7 8 9 0"
+ db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×"
+ db "lower DEL END "
+
+; 1224f
+
+MailEntry_Lowercase: ; 1224f
+ db "a b c d e f g h i j"
+ db "k l m n o p q r s t"
+ db "u v w x y z . - /"
+ db "'d 'l 'm 'r 's 't 'v & ( )"
+ db "<``> <''> [ ] ' : ; "
+ db "UPPER DEL END "
--- /dev/null
+++ b/data/mapgroup_roofs.asm
@@ -1,0 +1,28 @@
+; valid roofs: 0, 1, 2, 3, 4; -1 for none
+ db -1 ; group 0 (unused)
+ db 3 ; group 1 (Olivine)
+ db 2 ; group 2 (Mahogany)
+ db -1 ; group 3
+ db 1 ; group 4 (Ecruteak)
+ db 2 ; group 5 (Blackthorn)
+ db -1 ; group 6
+ db -1 ; group 7
+ db 2 ; group 8 (Azalea)
+ db 2 ; group 9 (Lake of Rage)
+ db 1 ; group 10 (Violet)
+ db 4 ; group 11 (Goldenrod)
+ db -1 ; group 12
+ db -1 ; group 13
+ db -1 ; group 14
+ db -1 ; group 15
+ db -1 ; group 16
+ db -1 ; group 17
+ db -1 ; group 18
+ db 0 ; group 19 (Silver Cave)
+ db -1 ; group 20
+ db -1 ; group 21
+ db 3 ; group 22 (Cianwood)
+ db -1 ; group 23
+ db 0 ; group 24 (New Bark)
+ db -1 ; group 25
+ db 0 ; group 26 (Cherrygrove)
--- /dev/null
+++ b/data/name_input_chars.asm
@@ -1,0 +1,31 @@
+; see engine/naming_screen.asm
+
+NameInputLower:
+ db "a b c d e f g h i"
+ db "j k l m n o p q r"
+ db "s t u v w x y z "
+ db "× ( ) : ; [ ] <PK> <MN>"
+ db "UPPER DEL END "
+
+BoxNameInputLower:
+ db "a b c d e f g h i"
+ db "j k l m n o p q r"
+ db "s t u v w x y z "
+ db "é 'd 'l 'm 'r 's 't 'v 0"
+ db "1 2 3 4 5 6 7 8 9"
+ db "UPPER DEL END "
+
+NameInputUpper:
+ db "A B C D E F G H I"
+ db "J K L M N O P Q R"
+ db "S T U V W X Y Z "
+ db "- ? ! / . , "
+ db "lower DEL END "
+
+BoxNameInputUpper:
+ db "A B C D E F G H I"
+ db "J K L M N O P Q R"
+ db "S T U V W X Y Z "
+ db "× ( ) : ; [ ] <PK> <MN>"
+ db "- ? ! ♂ ♀ / . , &"
+ db "lower DEL END "
--- a/data/outdoor_sprites.asm
+++ b/data/outdoor_sprites.asm
@@ -1,5 +1,7 @@
-OutdoorSprites: ; 144b8
; Valid sprite IDs for each map group.
+; Maps with permission ROUTE or TOWN can only use these sprites.
+
+OutdoorSprites: ; 144b8
dw Group1Sprites
dw Group2Sprites
dw Group3Sprites
--- /dev/null
+++ b/data/time_capsule/catch_rate_items.asm
@@ -1,0 +1,17 @@
+; Pokémon traded from RBY do not have held items, so GSC usually interprets the
+; catch rate as an item. However, if the catch rate appears in this table, the
+; item associated with the table entry is used instead.
+
+ db ITEM_19, LEFTOVERS
+ db ITEM_2D, BITTER_BERRY
+ db ITEM_32, GOLD_BERRY
+ db ITEM_5A, BERRY
+ db ITEM_64, BERRY
+ db ITEM_78, BERRY
+ db ITEM_87, BERRY
+ db ITEM_BE, BERRY
+ db ITEM_C3, BERRY
+ db ITEM_DC, BERRY
+ db ITEM_FA, BERRY
+ db -1, BERRY
+ db 0 ; end
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -1130,22 +1130,7 @@
ret
.TimeCapsuleAlt: ; 28785
-; Pokémon traded from RBY do not have held items, so GSC usually interprets the
-; catch rate as an item. However, if the catch rate appears in this table, the
-; item associated with the table entry is used instead.
- db ITEM_19, LEFTOVERS
- db ITEM_2D, BITTER_BERRY
- db ITEM_32, GOLD_BERRY
- db ITEM_5A, BERRY
- db ITEM_64, BERRY
- db ITEM_78, BERRY
- db ITEM_87, BERRY
- db ITEM_BE, BERRY
- db ITEM_C3, BERRY
- db ITEM_DC, BERRY
- db ITEM_FA, BERRY
- db -1, BERRY
- db 0
+INCLUDE "data/time_capsule/catch_rate_items.asm"
; 2879e
Link_CopyOTData: ; 2879e
--- a/engine/namingscreen.asm
+++ b/engine/namingscreen.asm
@@ -953,36 +953,7 @@
INCBIN "gfx/namingscreen/cursor.2bpp"
; 11ce7
-NameInputLower:
- db "a b c d e f g h i"
- db "j k l m n o p q r"
- db "s t u v w x y z "
- db "× ( ) : ; [ ] <PK> <MN>"
- db "UPPER DEL END "
-
-BoxNameInputLower:
- db "a b c d e f g h i"
- db "j k l m n o p q r"
- db "s t u v w x y z "
- db "é 'd 'l 'm 'r 's 't 'v 0"
- db "1 2 3 4 5 6 7 8 9"
- db "UPPER DEL END "
-
-NameInputUpper:
- db "A B C D E F G H I"
- db "J K L M N O P Q R"
- db "S T U V W X Y Z "
- db "- ? ! / . , "
- db "lower DEL END "
-
-BoxNameInputUpper:
- db "A B C D E F G H I"
- db "J K L M N O P Q R"
- db "S T U V W X Y Z "
- db "× ( ) : ; [ ] <PK> <MN>"
- db "- ? ! ♂ ♀ / . , &"
- db "lower DEL END "
-
+INCLUDE "data/name_input_chars.asm"
; 11e5d
NamingScreenGFX_End: ; unused
@@ -1499,22 +1470,6 @@
; 121dd
-MailEntry_Uppercase: ; 122dd
- db "A B C D E F G H I J"
- db "K L M N O P Q R S T"
- db "U V W X Y Z , ? !"
- db "1 2 3 4 5 6 7 8 9 0"
- db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×"
- db "lower DEL END "
-
-; 1224f
-
-MailEntry_Lowercase: ; 1224f
- db "a b c d e f g h i j"
- db "k l m n o p q r s t"
- db "u v w x y z . - /"
- db "'d 'l 'm 'r 's 't 'v & ( )"
- db "<``> <''> [ ] ' : ; "
- db "UPPER DEL END "
+INCLUDE "data/mail_input_chars.asm"
; 122c1
--- a/engine/npc_movement.asm
+++ b/engine/npc_movement.asm
@@ -118,7 +118,7 @@
; 6f5b
.data_6f5b
- db 1 << DOWN, 1 << UP, 1 << RIGHT, 1 << LEFT
+ db DOWN_MASK, UP_MASK, RIGHT_MASK, LEFT_MASK
; 6f5f
Function6f5f: ; 6f5f
@@ -143,7 +143,7 @@
; 6f7b
.data_6f7b
- db 1 << UP, 1 << DOWN, 1 << LEFT, 1 << RIGHT
+ db UP_MASK, DOWN_MASK, LEFT_MASK, RIGHT_MASK
; 6f7f
Function6f7f: ; 6f7f
--- a/event/bug_contest_judging.asm
+++ b/event/bug_contest_judging.asm
@@ -134,80 +134,10 @@
jp CopyBytes
; 13783
-BugContestantPointers: ; 13783
- dw BugContestant_BugCatcherDon ; This reverts back to the player
- dw BugContestant_BugCatcherDon
- dw BugContestant_BugCatcherEd
- dw BugContestant_CooltrainerMNick
- dw BugContestant_PokefanMWilliam
- dw BugContestant_BugCatcherBenny
- dw BugContestant_CamperBarry
- dw BugContestant_PicnickerCindy
- dw BugContestant_BugCatcherJosh
- dw BugContestant_YoungsterSamuel
- dw BugContestant_SchoolboyKipp
-; 13799
-BugContestant_BugCatcherDon:
- db BUG_CATCHER, DON
- dbw KAKUNA, 300
- dbw METAPOD, 285
- dbw CATERPIE, 226
-
-BugContestant_BugCatcherEd:
- db BUG_CATCHER, ED
- dbw BUTTERFREE, 286
- dbw BUTTERFREE, 251
- dbw CATERPIE, 237
-
-BugContestant_CooltrainerMNick:
- db COOLTRAINERM, NICK
- dbw SCYTHER, 357
- dbw BUTTERFREE, 349
- dbw PINSIR, 368
-
-BugContestant_PokefanMWilliam:
- db POKEFANM, WILLIAM
- dbw PINSIR, 332
- dbw BUTTERFREE, 324
- dbw VENONAT, 321
-
-BugContestant_BugCatcherBenny:
- db BUG_CATCHER, BUG_CATCHER_BENNY
- dbw BUTTERFREE, 318
- dbw WEEDLE, 295
- dbw CATERPIE, 285
-
-BugContestant_CamperBarry:
- db CAMPER, BARRY
- dbw PINSIR, 366
- dbw VENONAT, 329
- dbw KAKUNA, 314
-
-BugContestant_PicnickerCindy:
- db PICNICKER, CINDY
- dbw BUTTERFREE, 341
- dbw METAPOD, 301
- dbw CATERPIE, 264
-
-BugContestant_BugCatcherJosh:
- db BUG_CATCHER, JOSH
- dbw SCYTHER, 326
- dbw BUTTERFREE, 292
- dbw METAPOD, 282
-
-BugContestant_YoungsterSamuel:
- db YOUNGSTER, SAMUEL
- dbw WEEDLE, 270
- dbw PINSIR, 282
- dbw CATERPIE, 251
-
-BugContestant_SchoolboyKipp:
- db SCHOOLBOY, KIPP
- dbw VENONAT, 267
- dbw PARAS, 254
- dbw KAKUNA, 259
+INCLUDE "data/bug_contest_winners.asm"
; 13807
+
BugContest_GetPlayersResult: ; 13807
ld hl, wBugContestThirdPlacePersonID
--- a/home.asm
+++ b/home.asm
@@ -1041,14 +1041,7 @@
jp IsInArray
.HMMoves:
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
- db WATERFALL
- db WHIRLPOOL
- db -1
+INCLUDE "data/hm_moves.asm"
; 34f8
GetMoveName:: ; 34f8
--- a/home/map.asm
+++ b/home/map.asm
@@ -1593,14 +1593,14 @@
; 2945
.MovementPermissionsData: ; 2945
- db 1 << DOWN
- db 1 << UP
- db 1 << LEFT
- db 1 << RIGHT
- db (1 << DOWN) | (1 << RIGHT)
- db (1 << UP) | (1 << RIGHT)
- db (1 << DOWN) | (1 << LEFT)
- db (1 << UP) | (1 << LEFT)
+ db DOWN_MASK
+ db UP_MASK
+ db LEFT_MASK
+ db RIGHT_MASK
+ db DOWN_MASK | RIGHT_MASK
+ db UP_MASK | RIGHT_MASK
+ db DOWN_MASK | LEFT_MASK
+ db UP_MASK | LEFT_MASK
; 294d
.UpDown:
--- a/main.asm
+++ b/main.asm
@@ -3398,46 +3398,7 @@
ld a, [hl]
ret
-MaleTrainers: ; 4e95d
- db BURGLAR
- db YOUNGSTER
- db SCHOOLBOY
- db BIRD_KEEPER
- db POKEMANIAC
- db GENTLEMAN
- db BUG_CATCHER
- db FISHER
- db SWIMMERM
- db SAILOR
- db SUPER_NERD
- db GUITARIST
- db HIKER
- db FIREBREATHER
- db BLACKBELT_T
- db PSYCHIC_T
- db CAMPER
- db COOLTRAINERM
- db BOARDER
- db JUGGLER
- db POKEFANM
- db OFFICER
- db SAGE
- db BIKER
- db SCIENTIST
-MaleTrainersEnd:
-
-FemaleTrainers: ; 4e976
- db MEDIUM
- db LASS
- db BEAUTY
- db SKIER
- db TEACHER
- db SWIMMERF
- db PICNICKER
- db KIMONO_GIRL
- db POKEFANF
- db COOLTRAINERF
-FemaleTrainersEnd:
+INCLUDE "trainers/gendered_trainers.asm"
INCLUDE "battle/sliding_intro.asm"
--- a/tilesets/roofs.asm
+++ b/tilesets/roofs.asm
@@ -18,33 +18,7 @@
; 1c021
MapGroupRoofs: ; 1c021i
- db -1 ; group 0 (unused)
- db 3 ; group 1 (Olivine)
- db 2 ; group 2 (Mahogany)
- db -1 ; group 3
- db 1 ; group 4 (Ecruteak)
- db 2 ; group 5 (Blackthorn)
- db -1 ; group 6
- db -1 ; group 7
- db 2 ; group 8 (Azalea)
- db 2 ; group 9 (Lake of Rage)
- db 1 ; group 10 (Violet)
- db 4 ; group 11 (Goldenrod)
- db -1 ; group 12
- db -1 ; group 13
- db -1 ; group 14
- db -1 ; group 15
- db -1 ; group 16
- db -1 ; group 17
- db -1 ; group 18
- db 0 ; group 19 (Silver Cave)
- db -1 ; group 20
- db -1 ; group 21
- db 3 ; group 22 (Cianwood)
- db -1 ; group 23
- db 0 ; group 24 (New Bark)
- db -1 ; group 25
- db 0 ; group 26 (Cherrygrove)
+INCLUDE "data/mapgroup_roofs.asm"
; 1c03c
Roofs: ; 1c03c
--- /dev/null
+++ b/trainers/encounter_music.asm
@@ -1,0 +1,73 @@
+; What music plays when a trainer notices you
+
+ db MUSIC_HIKER_ENCOUNTER ; none
+ 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
--- /dev/null
+++ b/trainers/gendered_trainers.asm
@@ -1,0 +1,40 @@
+MaleTrainers: ; 4e95d
+ db BURGLAR
+ db YOUNGSTER
+ db SCHOOLBOY
+ db BIRD_KEEPER
+ db POKEMANIAC
+ db GENTLEMAN
+ db BUG_CATCHER
+ db FISHER
+ db SWIMMERM
+ db SAILOR
+ db SUPER_NERD
+ db GUITARIST
+ db HIKER
+ db FIREBREATHER
+ db BLACKBELT_T
+ db PSYCHIC_T
+ db CAMPER
+ db COOLTRAINERM
+ db BOARDER
+ db JUGGLER
+ db POKEFANM
+ db OFFICER
+ db SAGE
+ db BIKER
+ db SCIENTIST
+MaleTrainersEnd
+
+FemaleTrainers: ; 4e976
+ db MEDIUM
+ db LASS
+ db BEAUTY
+ db SKIER
+ db TEACHER
+ db SWIMMERF
+ db PICNICKER
+ db KIMONO_GIRL
+ db POKEFANF
+ db COOLTRAINERF
+FemaleTrainersEnd