shithub: pokecrystal

Download patch

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