summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audio.asm754
-rw-r--r--audio/engine_1.asm1467
-rw-r--r--audio/engine_2.asm914
-rw-r--r--audio/engine_3.asm898
-rw-r--r--[-rwxr-xr-x]audio/headers/musicheaders1.asm (renamed from audio/headers/musicheaders02.asm)2
-rw-r--r--[-rwxr-xr-x]audio/headers/musicheaders2.asm (renamed from audio/headers/musicheaders08.asm)0
-rw-r--r--[-rwxr-xr-x]audio/headers/musicheaders3.asm (renamed from audio/headers/musicheaders1f.asm)2
-rwxr-xr-xaudio/headers/sfxheaders02.asm564
-rwxr-xr-xaudio/headers/sfxheaders08.asm708
-rw-r--r--audio/headers/sfxheaders1.asm562
-rwxr-xr-xaudio/headers/sfxheaders1f.asm598
-rw-r--r--audio/headers/sfxheaders2.asm706
-rw-r--r--audio/headers/sfxheaders3.asm596
-rw-r--r--audio/music/bikeriding.asm1
-rw-r--r--audio/music/celadon.asm1
-rw-r--r--audio/music/cinnabar.asm1
-rw-r--r--audio/music/cinnabarmansion.asm1
-rw-r--r--audio/music/cities1.asm1
-rw-r--r--audio/music/cities2.asm1
-rw-r--r--audio/music/credits.asm1
-rw-r--r--audio/music/defeatedgymleader.asm1
-rw-r--r--audio/music/defeatedtrainer.asm1
-rw-r--r--audio/music/defeatedwildmon.asm1
-rw-r--r--audio/music/dungeon1.asm1
-rw-r--r--audio/music/dungeon2.asm1
-rw-r--r--audio/music/dungeon3.asm1
-rw-r--r--audio/music/finalbattle.asm1
-rw-r--r--audio/music/gamecorner.asm1
-rw-r--r--audio/music/gym.asm1
-rw-r--r--audio/music/gymleaderbattle.asm1
-rw-r--r--audio/music/halloffame.asm1
-rw-r--r--audio/music/indigoplateau.asm1
-rw-r--r--audio/music/introbattle.asm1
-rw-r--r--audio/music/jigglypuffsong.asm1
-rw-r--r--audio/music/lavender.asm1
-rw-r--r--audio/music/meeteviltrainer.asm1
-rw-r--r--audio/music/meetfemaletrainer.asm1
-rw-r--r--audio/music/meetjessiejames.asm1
-rw-r--r--audio/music/meetmaletrainer.asm1
-rw-r--r--audio/music/meetprofoak.asm1
-rw-r--r--audio/music/meetrival.asm1
-rw-r--r--audio/music/museumguy.asm1
-rw-r--r--audio/music/oakslab.asm1
-rw-r--r--audio/music/pallettown.asm1
-rw-r--r--audio/music/pkmnhealed.asm1
-rw-r--r--audio/music/pokecenter.asm1
-rw-r--r--audio/music/pokemontower.asm1
-rw-r--r--audio/music/routes1.asm1
-rw-r--r--audio/music/routes2.asm1
-rw-r--r--audio/music/routes3.asm1
-rw-r--r--audio/music/routes4.asm1
-rw-r--r--audio/music/safarizone.asm1
-rw-r--r--audio/music/silphco.asm1
-rw-r--r--audio/music/ssanne.asm1
-rw-r--r--audio/music/surfing.asm1
-rw-r--r--audio/music/surfingpikachu.asm1
-rw-r--r--audio/music/titlescreen.asm1
-rw-r--r--audio/music/trainerbattle.asm1
-rw-r--r--audio/music/unusedsong.asm1
-rw-r--r--audio/music/vermilion.asm1
-rw-r--r--audio/music/wildbattle.asm1
-rw-r--r--audio/music/yellowintro.asm1
-rw-r--r--audio/music/yellowunusedsong.asm1
-rw-r--r--[-rwxr-xr-x]audio/sfx/59_1.asm (renamed from audio/sfx/sfx_02_59.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/59_3.asm (renamed from audio/sfx/sfx_1f_59.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/arrow_tiles_1.asm (renamed from audio/sfx/sfx_02_52.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/arrow_tiles_3.asm (renamed from audio/sfx/sfx_1f_52.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/ball_poof.asm (renamed from audio/sfx/sfx_08_42.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/ball_toss.asm (renamed from audio/sfx/sfx_08_41.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_09.asm (renamed from audio/sfx/sfx_08_49.asm)3
-rw-r--r--audio/sfx/battle_0b.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_0c.asm (renamed from audio/sfx/sfx_08_4c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_0d.asm (renamed from audio/sfx/sfx_08_4d.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_0e.asm (renamed from audio/sfx/sfx_08_4e.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_0f.asm (renamed from audio/sfx/sfx_08_4f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_12.asm (renamed from audio/sfx/sfx_08_52.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_13.asm (renamed from audio/sfx/sfx_08_53.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_14.asm (renamed from audio/sfx/sfx_08_54.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_16.asm (renamed from audio/sfx/sfx_08_56.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_17.asm (renamed from audio/sfx/sfx_08_57.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_18.asm (renamed from audio/sfx/sfx_08_58.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_19.asm (renamed from audio/sfx/sfx_08_59.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_1b.asm (renamed from audio/sfx/sfx_08_5b.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_1c.asm (renamed from audio/sfx/sfx_08_5c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_1e.asm (renamed from audio/sfx/sfx_08_5e.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_20.asm (renamed from audio/sfx/sfx_08_60.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_21.asm (renamed from audio/sfx/sfx_08_61.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_22.asm (renamed from audio/sfx/sfx_08_62.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_23.asm (renamed from audio/sfx/sfx_08_63.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_24.asm (renamed from audio/sfx/sfx_08_64.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_25.asm (renamed from audio/sfx/sfx_08_65.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_26.asm (renamed from audio/sfx/sfx_08_66.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_27.asm (renamed from audio/sfx/sfx_08_67.asm)17
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_28.asm (renamed from audio/sfx/sfx_08_68.asm)13
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_29.asm (renamed from audio/sfx/sfx_08_69.asm)9
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_2a.asm (renamed from audio/sfx/sfx_08_6a.asm)13
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_2b.asm (renamed from audio/sfx/sfx_08_6b.asm)9
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_2c.asm (renamed from audio/sfx/sfx_08_6c.asm)13
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_2e.asm (renamed from audio/sfx/sfx_08_6e.asm)13
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_2f.asm (renamed from audio/sfx/sfx_08_6f.asm)13
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_31.asm (renamed from audio/sfx/sfx_08_71.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_32.asm (renamed from audio/sfx/sfx_08_72.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_33.asm (renamed from audio/sfx/sfx_08_73.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_34.asm (renamed from audio/sfx/sfx_08_74.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_35.asm (renamed from audio/sfx/sfx_08_75.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/battle_36.asm (renamed from audio/sfx/sfx_08_76.asm)15
-rw-r--r--[-rwxr-xr-x]audio/sfx/caught_mon.asm (renamed from audio/sfx/sfx_08_46.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/collision_1.asm (renamed from audio/sfx/sfx_02_5b.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/collision_3.asm (renamed from audio/sfx/sfx_1f_5b.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry00_1.asm (renamed from audio/sfx/sfx_02_14.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry00_2.asm (renamed from audio/sfx/sfx_08_14.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry00_3.asm (renamed from audio/sfx/sfx_1f_14.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry01_1.asm (renamed from audio/sfx/sfx_02_15.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry01_2.asm (renamed from audio/sfx/sfx_08_15.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry01_3.asm (renamed from audio/sfx/sfx_1f_15.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry02_1.asm (renamed from audio/sfx/sfx_02_16.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry02_2.asm (renamed from audio/sfx/sfx_08_16.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry02_3.asm (renamed from audio/sfx/sfx_1f_16.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry03_1.asm (renamed from audio/sfx/sfx_02_17.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry03_2.asm (renamed from audio/sfx/sfx_08_17.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry03_3.asm (renamed from audio/sfx/sfx_1f_17.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry04_1.asm (renamed from audio/sfx/sfx_02_18.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry04_2.asm (renamed from audio/sfx/sfx_08_18.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry04_3.asm (renamed from audio/sfx/sfx_1f_18.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry05_1.asm (renamed from audio/sfx/sfx_02_19.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry05_2.asm (renamed from audio/sfx/sfx_08_19.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry05_3.asm (renamed from audio/sfx/sfx_1f_19.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry06_1.asm (renamed from audio/sfx/sfx_02_1a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry06_2.asm (renamed from audio/sfx/sfx_08_1a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry06_3.asm (renamed from audio/sfx/sfx_1f_1a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry07_1.asm (renamed from audio/sfx/sfx_02_1b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry07_2.asm (renamed from audio/sfx/sfx_08_1b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry07_3.asm (renamed from audio/sfx/sfx_1f_1b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry08_1.asm (renamed from audio/sfx/sfx_02_1c.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry08_2.asm (renamed from audio/sfx/sfx_08_1c.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry08_3.asm (renamed from audio/sfx/sfx_1f_1c.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry09_1.asm (renamed from audio/sfx/sfx_02_1d.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry09_2.asm (renamed from audio/sfx/sfx_08_1d.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry09_3.asm (renamed from audio/sfx/sfx_1f_1d.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0a_1.asm (renamed from audio/sfx/sfx_02_1e.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0a_2.asm (renamed from audio/sfx/sfx_08_1e.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0a_3.asm (renamed from audio/sfx/sfx_1f_1e.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0b_1.asm (renamed from audio/sfx/sfx_02_1f.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0b_2.asm (renamed from audio/sfx/sfx_08_1f.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0b_3.asm (renamed from audio/sfx/sfx_1f_1f.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0c_1.asm (renamed from audio/sfx/sfx_02_20.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0c_2.asm (renamed from audio/sfx/sfx_08_20.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0c_3.asm (renamed from audio/sfx/sfx_1f_20.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0d_1.asm (renamed from audio/sfx/sfx_02_21.asm)9
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0d_2.asm (renamed from audio/sfx/sfx_08_21.asm)9
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0d_3.asm (renamed from audio/sfx/sfx_1f_21.asm)9
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0e_1.asm (renamed from audio/sfx/sfx_02_22.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0e_2.asm (renamed from audio/sfx/sfx_08_22.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0e_3.asm (renamed from audio/sfx/sfx_1f_22.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0f_1.asm (renamed from audio/sfx/sfx_02_23.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0f_2.asm (renamed from audio/sfx/sfx_08_23.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry0f_3.asm (renamed from audio/sfx/sfx_1f_23.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry10_1.asm (renamed from audio/sfx/sfx_02_24.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry10_2.asm (renamed from audio/sfx/sfx_08_24.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry10_3.asm (renamed from audio/sfx/sfx_1f_24.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry11_1.asm (renamed from audio/sfx/sfx_02_25.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry11_2.asm (renamed from audio/sfx/sfx_08_25.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry11_3.asm (renamed from audio/sfx/sfx_1f_25.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry12_1.asm (renamed from audio/sfx/sfx_02_26.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry12_2.asm (renamed from audio/sfx/sfx_08_26.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry12_3.asm (renamed from audio/sfx/sfx_1f_26.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry13_1.asm (renamed from audio/sfx/sfx_02_27.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry13_2.asm (renamed from audio/sfx/sfx_08_27.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry13_3.asm (renamed from audio/sfx/sfx_1f_27.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry14_1.asm (renamed from audio/sfx/sfx_02_28.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry14_2.asm (renamed from audio/sfx/sfx_08_28.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry14_3.asm (renamed from audio/sfx/sfx_1f_28.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry15_1.asm (renamed from audio/sfx/sfx_02_29.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry15_2.asm (renamed from audio/sfx/sfx_08_29.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry15_3.asm (renamed from audio/sfx/sfx_1f_29.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry16_1.asm (renamed from audio/sfx/sfx_02_2a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry16_2.asm (renamed from audio/sfx/sfx_08_2a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry16_3.asm (renamed from audio/sfx/sfx_1f_2a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry17_1.asm (renamed from audio/sfx/sfx_02_2b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry17_2.asm (renamed from audio/sfx/sfx_08_2b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry17_3.asm (renamed from audio/sfx/sfx_1f_2b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry18_1.asm (renamed from audio/sfx/sfx_02_2c.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry18_2.asm (renamed from audio/sfx/sfx_08_2c.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry18_3.asm (renamed from audio/sfx/sfx_1f_2c.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry19_1.asm (renamed from audio/sfx/sfx_02_2d.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry19_2.asm (renamed from audio/sfx/sfx_08_2d.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry19_3.asm (renamed from audio/sfx/sfx_1f_2d.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1a_1.asm (renamed from audio/sfx/sfx_02_2e.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1a_2.asm (renamed from audio/sfx/sfx_08_2e.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1a_3.asm (renamed from audio/sfx/sfx_1f_2e.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1b_1.asm (renamed from audio/sfx/sfx_02_2f.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1b_2.asm (renamed from audio/sfx/sfx_08_2f.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1b_3.asm (renamed from audio/sfx/sfx_1f_2f.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1c_1.asm (renamed from audio/sfx/sfx_02_30.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1c_2.asm (renamed from audio/sfx/sfx_08_30.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1c_3.asm (renamed from audio/sfx/sfx_1f_30.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1d_1.asm (renamed from audio/sfx/sfx_02_31.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1d_2.asm (renamed from audio/sfx/sfx_08_31.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1d_3.asm (renamed from audio/sfx/sfx_1f_31.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1e_1.asm (renamed from audio/sfx/sfx_02_32.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1e_2.asm (renamed from audio/sfx/sfx_08_32.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1e_3.asm (renamed from audio/sfx/sfx_1f_32.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1f_1.asm (renamed from audio/sfx/sfx_02_33.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1f_2.asm (renamed from audio/sfx/sfx_08_33.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry1f_3.asm (renamed from audio/sfx/sfx_1f_33.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry20_1.asm (renamed from audio/sfx/sfx_02_34.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry20_2.asm (renamed from audio/sfx/sfx_08_34.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry20_3.asm (renamed from audio/sfx/sfx_1f_34.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry21_1.asm (renamed from audio/sfx/sfx_02_35.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry21_2.asm (renamed from audio/sfx/sfx_08_35.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry21_3.asm (renamed from audio/sfx/sfx_1f_35.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry22_1.asm (renamed from audio/sfx/sfx_02_36.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry22_2.asm (renamed from audio/sfx/sfx_08_36.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry22_3.asm (renamed from audio/sfx/sfx_1f_36.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry23_1.asm (renamed from audio/sfx/sfx_02_37.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry23_2.asm (renamed from audio/sfx/sfx_08_37.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry23_3.asm (renamed from audio/sfx/sfx_1f_37.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry24_1.asm (renamed from audio/sfx/sfx_02_38.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry24_2.asm (renamed from audio/sfx/sfx_08_38.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry24_3.asm (renamed from audio/sfx/sfx_1f_38.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry25_1.asm (renamed from audio/sfx/sfx_02_39.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry25_2.asm (renamed from audio/sfx/sfx_08_39.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cry25_3.asm (renamed from audio/sfx/sfx_1f_39.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/cut_1.asm (renamed from audio/sfx/sfx_02_56.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/cut_3.asm (renamed from audio/sfx/sfx_1f_56.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/cymbal1_1.asm (renamed from audio/sfx/sfx_02_0c.asm)3
-rw-r--r--audio/sfx/cymbal1_2.asm3
-rw-r--r--audio/sfx/cymbal1_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/cymbal2_1.asm (renamed from audio/sfx/sfx_02_0d.asm)3
-rw-r--r--audio/sfx/cymbal2_2.asm3
-rw-r--r--audio/sfx/cymbal2_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/cymbal3_1.asm (renamed from audio/sfx/sfx_02_0e.asm)3
-rw-r--r--audio/sfx/cymbal3_2.asm3
-rw-r--r--audio/sfx/cymbal3_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/damage.asm (renamed from audio/sfx/sfx_08_50.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/denied_1.asm (renamed from audio/sfx/sfx_02_51.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/denied_3.asm (renamed from audio/sfx/sfx_1f_51.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/dex_page_added.asm (renamed from audio/sfx/sfx_08_45.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/doubleslap.asm (renamed from audio/sfx/sfx_08_5d.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/enter_pc_1.asm (renamed from audio/sfx/sfx_02_47.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/enter_pc_3.asm (renamed from audio/sfx/sfx_1f_47.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/faint_fall.asm (renamed from audio/sfx/sfx_08_48.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/faint_thud.asm (renamed from audio/sfx/sfx_08_43.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/fly_1.asm (renamed from audio/sfx/sfx_02_50.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/fly_3.asm (renamed from audio/sfx/sfx_1f_50.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/get_item1_1.asm (renamed from audio/sfx/sfx_02_3a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/get_item1_3.asm (renamed from audio/sfx/sfx_1f_3a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/get_item2_1.asm (renamed from audio/sfx/sfx_1f_3b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/get_item2_2.asm (renamed from audio/sfx/sfx_02_3b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/get_item2_3.asm (renamed from audio/sfx/sfx_08_3b.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/get_key_item_1.asm (renamed from audio/sfx/sfx_1f_42.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/get_key_item_3.asm (renamed from audio/sfx/sfx_02_42.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/go_inside_1.asm (renamed from audio/sfx/sfx_02_57.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/go_inside_3.asm (renamed from audio/sfx/sfx_1f_57.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/go_outside_1.asm (renamed from audio/sfx/sfx_02_5c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/go_outside_3.asm (renamed from audio/sfx/sfx_1f_5c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/heal_ailment_1.asm (renamed from audio/sfx/sfx_02_3e.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/heal_ailment_2.asm (renamed from audio/sfx/sfx_08_3e.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/heal_ailment_3.asm (renamed from audio/sfx/sfx_1f_3e.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/heal_hp_1.asm (renamed from audio/sfx/sfx_02_3d.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/heal_hp_2.asm (renamed from audio/sfx/sfx_08_3d.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/heal_hp_3.asm (renamed from audio/sfx/sfx_1f_3d.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/healing_machine_1.asm (renamed from audio/sfx/sfx_1f_4a.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/healing_machine_3.asm (renamed from audio/sfx/sfx_02_4a.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/horn_drill.asm (renamed from audio/sfx/sfx_08_5f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/intro_crash.asm (renamed from audio/sfx/sfx_1f_62.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/intro_hip.asm (renamed from audio/sfx/sfx_1f_5f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/intro_hop.asm (renamed from audio/sfx/sfx_1f_60.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/intro_lunge.asm (renamed from audio/sfx/sfx_1f_5e.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/intro_raise.asm (renamed from audio/sfx/sfx_1f_61.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/intro_whoosh.asm (renamed from audio/sfx/sfx_1f_63.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/ledge_1.asm (renamed from audio/sfx/sfx_02_4e.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/ledge_3.asm (renamed from audio/sfx/sfx_1f_4e.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/level_up.asm (renamed from audio/sfx/sfx_08_3a.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/muted_snare1_1.asm (renamed from audio/sfx/sfx_02_0f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/muted_snare1_2.asm (renamed from audio/sfx/sfx_08_0f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/muted_snare1_3.asm (renamed from audio/sfx/sfx_1f_0f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/muted_snare2_1.asm (renamed from audio/sfx/sfx_02_11.asm)3
-rw-r--r--audio/sfx/muted_snare2_2.asm3
-rw-r--r--audio/sfx/muted_snare2_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/muted_snare3_1.asm (renamed from audio/sfx/sfx_02_12.asm)3
-rw-r--r--audio/sfx/muted_snare3_2.asm3
-rw-r--r--audio/sfx/muted_snare3_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/muted_snare4_1.asm (renamed from audio/sfx/sfx_02_13.asm)3
-rw-r--r--audio/sfx/muted_snare4_2.asm3
-rw-r--r--audio/sfx/muted_snare4_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/not_very_effective.asm (renamed from audio/sfx/sfx_08_51.asm)3
-rw-r--r--audio/sfx/peck.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/poisoned_1.asm (renamed from audio/sfx/sfx_02_43.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/poisoned_3.asm (renamed from audio/sfx/sfx_1f_43.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/pokedex_rating_1.asm (renamed from audio/sfx/sfx_1f_41.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/pokedex_rating_3.asm (renamed from audio/sfx/sfx_02_41.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/pokeflute.asm (renamed from audio/sfx/sfx_02_5e.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/pokeflute_ch1_ch2.asm (renamed from audio/sfx/sfx_08_pokeflute.asm)1
-rw-r--r--[-rwxr-xr-x]audio/sfx/pokeflute_ch3.asm (renamed from audio/sfx/sfx_08_pokeflute_ch3.asm)1
-rw-r--r--audio/sfx/pound.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/press_ab_1.asm (renamed from audio/sfx/sfx_02_40.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/press_ab_2.asm (renamed from audio/sfx/sfx_08_40.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/press_ab_3.asm (renamed from audio/sfx/sfx_1f_40.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/psybeam.asm (renamed from audio/sfx/sfx_08_6d.asm)13
-rw-r--r--[-rwxr-xr-x]audio/sfx/psychic_m.asm (renamed from audio/sfx/sfx_08_70.asm)7
-rw-r--r--[-rwxr-xr-x]audio/sfx/purchase_1.asm (renamed from audio/sfx/sfx_02_5a.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/purchase_3.asm (renamed from audio/sfx/sfx_1f_5a.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/push_boulder_1.asm (renamed from audio/sfx/sfx_02_53.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/push_boulder_3.asm (renamed from audio/sfx/sfx_1f_53.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/run.asm (renamed from audio/sfx/sfx_08_44.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/safari_zone_pa.asm (renamed from audio/sfx/sfx_02_5f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/save_1.asm (renamed from audio/sfx/sfx_02_5d.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/save_3.asm (renamed from audio/sfx/sfx_1f_5d.asm)5
-rwxr-xr-xaudio/sfx/sfx_08_01.asm4
-rwxr-xr-xaudio/sfx/sfx_08_02.asm4
-rwxr-xr-xaudio/sfx/sfx_08_03.asm4
-rwxr-xr-xaudio/sfx/sfx_08_04.asm4
-rwxr-xr-xaudio/sfx/sfx_08_06.asm4
-rwxr-xr-xaudio/sfx/sfx_08_08.asm4
-rwxr-xr-xaudio/sfx/sfx_08_09.asm4
-rwxr-xr-xaudio/sfx/sfx_08_0a.asm4
-rwxr-xr-xaudio/sfx/sfx_08_0b.asm4
-rwxr-xr-xaudio/sfx/sfx_08_0c.asm4
-rwxr-xr-xaudio/sfx/sfx_08_0d.asm4
-rwxr-xr-xaudio/sfx/sfx_08_0e.asm4
-rwxr-xr-xaudio/sfx/sfx_08_11.asm4
-rwxr-xr-xaudio/sfx/sfx_08_12.asm4
-rwxr-xr-xaudio/sfx/sfx_08_13.asm4
-rwxr-xr-xaudio/sfx/sfx_08_47.asm4
-rwxr-xr-xaudio/sfx/sfx_08_4a.asm4
-rwxr-xr-xaudio/sfx/sfx_08_4b.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_01.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_02.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_03.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_04.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_06.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_08.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_09.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_0a.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_0b.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_0c.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_0d.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_0e.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_11.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_12.asm4
-rwxr-xr-xaudio/sfx/sfx_1f_13.asm4
-rw-r--r--[-rwxr-xr-x]audio/sfx/shooting_star.asm (renamed from audio/sfx/sfx_1f_67.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/shrink_1.asm (renamed from audio/sfx/sfx_02_48.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/shrink_3.asm (renamed from audio/sfx/sfx_1f_48.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/silph_scope.asm (renamed from audio/sfx/sfx_08_77.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/slots_new_spin.asm (renamed from audio/sfx/sfx_1f_66.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/slots_reward.asm (renamed from audio/sfx/sfx_1f_65.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/slots_stop_wheel.asm (renamed from audio/sfx/sfx_1f_64.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare1_1.asm (renamed from audio/sfx/sfx_02_01.asm)3
-rw-r--r--audio/sfx/snare1_2.asm3
-rw-r--r--audio/sfx/snare1_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare2_1.asm (renamed from audio/sfx/sfx_02_02.asm)3
-rw-r--r--audio/sfx/snare2_2.asm3
-rw-r--r--audio/sfx/snare2_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare3_1.asm (renamed from audio/sfx/sfx_02_03.asm)3
-rw-r--r--audio/sfx/snare3_2.asm3
-rw-r--r--audio/sfx/snare3_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare4_1.asm (renamed from audio/sfx/sfx_02_04.asm)3
-rw-r--r--audio/sfx/snare4_2.asm3
-rw-r--r--audio/sfx/snare4_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare5_1.asm (renamed from audio/sfx/sfx_02_05.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare5_2.asm (renamed from audio/sfx/sfx_08_05.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare5_3.asm (renamed from audio/sfx/sfx_1f_05.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare6_1.asm (renamed from audio/sfx/sfx_02_08.asm)3
-rw-r--r--audio/sfx/snare6_2.asm3
-rw-r--r--audio/sfx/snare6_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare7_1.asm (renamed from audio/sfx/sfx_02_09.asm)3
-rw-r--r--audio/sfx/snare7_2.asm3
-rw-r--r--audio/sfx/snare7_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare8_1.asm (renamed from audio/sfx/sfx_02_0a.asm)3
-rw-r--r--audio/sfx/snare8_2.asm3
-rw-r--r--audio/sfx/snare8_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/snare9_1.asm (renamed from audio/sfx/sfx_02_0b.asm)3
-rw-r--r--audio/sfx/snare9_2.asm3
-rw-r--r--audio/sfx/snare9_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/ss_anne_horn_1.asm (renamed from audio/sfx/sfx_02_54.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/ss_anne_horn_3.asm (renamed from audio/sfx/sfx_1f_54.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/start_menu_1.asm (renamed from audio/sfx/sfx_02_3f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/start_menu_2.asm (renamed from audio/sfx/sfx_08_3f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/start_menu_3.asm (renamed from audio/sfx/sfx_1f_3f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/super_effective.asm (renamed from audio/sfx/sfx_08_5a.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/swap_1.asm (renamed from audio/sfx/sfx_02_58.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/swap_3.asm (renamed from audio/sfx/sfx_1f_58.asm)5
-rw-r--r--[-rwxr-xr-x]audio/sfx/switch_1.asm (renamed from audio/sfx/sfx_02_49.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/switch_3.asm (renamed from audio/sfx/sfx_1f_49.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/teleport_enter1_1.asm (renamed from audio/sfx/sfx_02_4c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/teleport_enter1_3.asm (renamed from audio/sfx/sfx_1f_4c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/teleport_enter2_1.asm (renamed from audio/sfx/sfx_02_4f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/teleport_enter2_3.asm (renamed from audio/sfx/sfx_1f_4f.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/teleport_exit1_1.asm (renamed from audio/sfx/sfx_02_4b.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/teleport_exit1_3.asm (renamed from audio/sfx/sfx_1f_4b.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/teleport_exit2_1.asm (renamed from audio/sfx/sfx_02_4d.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/teleport_exit2_3.asm (renamed from audio/sfx/sfx_1f_4d.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/tink_1.asm (renamed from audio/sfx/sfx_02_3c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/tink_2.asm (renamed from audio/sfx/sfx_08_3c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/tink_3.asm (renamed from audio/sfx/sfx_1f_3c.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/trade_machine_1.asm (renamed from audio/sfx/sfx_02_44.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/trade_machine_3.asm (renamed from audio/sfx/sfx_1f_44.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/triangle1_1.asm (renamed from audio/sfx/sfx_02_06.asm)3
-rw-r--r--audio/sfx/triangle1_2.asm3
-rw-r--r--audio/sfx/triangle1_3.asm3
-rw-r--r--[-rwxr-xr-x]audio/sfx/triangle2_1.asm (renamed from audio/sfx/sfx_02_07.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/triangle2_2.asm (renamed from audio/sfx/sfx_08_07.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/triangle2_3.asm (renamed from audio/sfx/sfx_1f_07.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/triangle3_1.asm (renamed from audio/sfx/sfx_02_10.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/triangle3_2.asm (renamed from audio/sfx/sfx_08_10.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/triangle3_3.asm (renamed from audio/sfx/sfx_1f_10.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/turn_off_pc_1.asm (renamed from audio/sfx/sfx_02_46.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/turn_off_pc_3.asm (renamed from audio/sfx/sfx_1f_46.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/turn_on_pc_1.asm (renamed from audio/sfx/sfx_02_45.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/turn_on_pc_3.asm (renamed from audio/sfx/sfx_1f_45.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/unused2_2.asm (renamed from audio/sfx/sfx_08_unused2.asm)1
-rw-r--r--[-rwxr-xr-x]audio/sfx/unused_1.asm (renamed from audio/sfx/sfx_02_unused.asm)1
-rw-r--r--[-rwxr-xr-x]audio/sfx/unused_2.asm (renamed from audio/sfx/sfx_08_unused.asm)1
-rw-r--r--[-rwxr-xr-x]audio/sfx/unused_3.asm (renamed from audio/sfx/sfx_1f_unused.asm)1
-rw-r--r--[-rwxr-xr-x]audio/sfx/vine_whip.asm (renamed from audio/sfx/sfx_08_55.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/withdraw_deposit_1.asm (renamed from audio/sfx/sfx_02_55.asm)3
-rw-r--r--[-rwxr-xr-x]audio/sfx/withdraw_deposit_3.asm (renamed from audio/sfx/sfx_1f_55.asm)3
-rw-r--r--constants.asm3
-rwxr-xr-xconstants/connection_constants.asm4
-rw-r--r--constants/credits_constants.asm130
-rw-r--r--constants/event_constants.asm2562
-rw-r--r--constants/event_macros.asm446
-rw-r--r--constants/hardware_constants.asm1
-rwxr-xr-xconstants/hide_show_constants.asm2
-rwxr-xr-xconstants/item_constants.asm300
-rwxr-xr-xconstants/list_constants.asm6
-rw-r--r--constants/map_constants.asm500
-rwxr-xr-xconstants/map_dimensions.asm10
-rw-r--r--constants/misc_constants.asm119
-rw-r--r--constants/move_animation_constants.asm79
-rw-r--r--constants/move_effect_constants.asm175
-rw-r--r--constants/music_constants.asm217
-rwxr-xr-xconstants/palette_constants.asm92
-rw-r--r--constants/pokedex_constants.asm304
-rw-r--r--constants/pokemon_constants.asm382
-rwxr-xr-xconstants/sprite_constants.asm168
-rwxr-xr-xconstants/status_constants.asm6
-rw-r--r--constants/tilesets.asm50
-rwxr-xr-xconstants/trainer_constants.asm103
-rwxr-xr-xdata/animations.asm16
-rwxr-xr-xdata/baseStats/abra.asm14
-rwxr-xr-xdata/baseStats/aerodactyl.asm14
-rwxr-xr-xdata/baseStats/alakazam.asm14
-rwxr-xr-xdata/baseStats/arbok.asm14
-rwxr-xr-xdata/baseStats/arcanine.asm14
-rwxr-xr-xdata/baseStats/articuno.asm14
-rwxr-xr-xdata/baseStats/beedrill.asm14
-rwxr-xr-xdata/baseStats/bellsprout.asm14
-rwxr-xr-xdata/baseStats/blastoise.asm14
-rwxr-xr-xdata/baseStats/bulbasaur.asm14
-rwxr-xr-xdata/baseStats/butterfree.asm15
-rwxr-xr-xdata/baseStats/caterpie.asm14
-rwxr-xr-xdata/baseStats/chansey.asm14
-rwxr-xr-xdata/baseStats/charizard.asm14
-rwxr-xr-xdata/baseStats/charmander.asm14
-rwxr-xr-xdata/baseStats/charmeleon.asm14
-rwxr-xr-xdata/baseStats/clefable.asm14
-rwxr-xr-xdata/baseStats/clefairy.asm14
-rwxr-xr-xdata/baseStats/cloyster.asm14
-rwxr-xr-xdata/baseStats/cubone.asm14
-rwxr-xr-xdata/baseStats/dewgong.asm14
-rwxr-xr-xdata/baseStats/diglett.asm14
-rwxr-xr-xdata/baseStats/ditto.asm14
-rwxr-xr-xdata/baseStats/dodrio.asm14
-rwxr-xr-xdata/baseStats/doduo.asm14
-rwxr-xr-xdata/baseStats/dragonair.asm14
-rwxr-xr-xdata/baseStats/dragonite.asm14
-rwxr-xr-xdata/baseStats/dratini.asm14
-rwxr-xr-xdata/baseStats/drowzee.asm14
-rwxr-xr-xdata/baseStats/dugtrio.asm14
-rwxr-xr-xdata/baseStats/eevee.asm14
-rwxr-xr-xdata/baseStats/ekans.asm14
-rwxr-xr-xdata/baseStats/electabuzz.asm14
-rwxr-xr-xdata/baseStats/electrode.asm14
-rwxr-xr-xdata/baseStats/exeggcute.asm14
-rwxr-xr-xdata/baseStats/exeggutor.asm14
-rwxr-xr-xdata/baseStats/farfetchd.asm14
-rwxr-xr-xdata/baseStats/fearow.asm14
-rwxr-xr-xdata/baseStats/flareon.asm14
-rwxr-xr-xdata/baseStats/gastly.asm14
-rwxr-xr-xdata/baseStats/gengar.asm14
-rwxr-xr-xdata/baseStats/geodude.asm14
-rwxr-xr-xdata/baseStats/gloom.asm14
-rwxr-xr-xdata/baseStats/golbat.asm14
-rwxr-xr-xdata/baseStats/goldeen.asm14
-rwxr-xr-xdata/baseStats/golduck.asm14
-rwxr-xr-xdata/baseStats/golem.asm14
-rwxr-xr-xdata/baseStats/graveler.asm14
-rwxr-xr-xdata/baseStats/grimer.asm14
-rwxr-xr-xdata/baseStats/growlithe.asm14
-rwxr-xr-xdata/baseStats/gyarados.asm14
-rwxr-xr-xdata/baseStats/haunter.asm14
-rwxr-xr-xdata/baseStats/hitmonchan.asm14
-rwxr-xr-xdata/baseStats/hitmonlee.asm14
-rwxr-xr-xdata/baseStats/horsea.asm14
-rwxr-xr-xdata/baseStats/hypno.asm14
-rwxr-xr-xdata/baseStats/ivysaur.asm14
-rwxr-xr-xdata/baseStats/jigglypuff.asm14
-rwxr-xr-xdata/baseStats/jolteon.asm14
-rwxr-xr-xdata/baseStats/jynx.asm14
-rwxr-xr-xdata/baseStats/kabuto.asm14
-rwxr-xr-xdata/baseStats/kabutops.asm14
-rwxr-xr-xdata/baseStats/kadabra.asm14
-rwxr-xr-xdata/baseStats/kakuna.asm14
-rwxr-xr-xdata/baseStats/kangaskhan.asm14
-rwxr-xr-xdata/baseStats/kingler.asm14
-rwxr-xr-xdata/baseStats/koffing.asm14
-rwxr-xr-xdata/baseStats/krabby.asm14
-rwxr-xr-xdata/baseStats/lapras.asm14
-rwxr-xr-xdata/baseStats/lickitung.asm14
-rwxr-xr-xdata/baseStats/machamp.asm14
-rwxr-xr-xdata/baseStats/machoke.asm14
-rwxr-xr-xdata/baseStats/machop.asm14
-rwxr-xr-xdata/baseStats/magikarp.asm14
-rwxr-xr-xdata/baseStats/magmar.asm14
-rwxr-xr-xdata/baseStats/magnemite.asm14
-rwxr-xr-xdata/baseStats/magneton.asm14
-rwxr-xr-xdata/baseStats/mankey.asm14
-rwxr-xr-xdata/baseStats/marowak.asm14
-rwxr-xr-xdata/baseStats/meowth.asm14
-rwxr-xr-xdata/baseStats/metapod.asm14
-rwxr-xr-xdata/baseStats/mew.asm16
-rwxr-xr-xdata/baseStats/mewtwo.asm14
-rwxr-xr-xdata/baseStats/moltres.asm14
-rwxr-xr-xdata/baseStats/mrmime.asm14
-rwxr-xr-xdata/baseStats/muk.asm14
-rwxr-xr-xdata/baseStats/nidoking.asm14
-rwxr-xr-xdata/baseStats/nidoqueen.asm14
-rwxr-xr-xdata/baseStats/nidoranf.asm14
-rwxr-xr-xdata/baseStats/nidoranm.asm14
-rwxr-xr-xdata/baseStats/nidorina.asm14
-rwxr-xr-xdata/baseStats/nidorino.asm14
-rwxr-xr-xdata/baseStats/ninetails.asm14
-rwxr-xr-xdata/baseStats/oddish.asm14
-rwxr-xr-xdata/baseStats/omanyte.asm14
-rwxr-xr-xdata/baseStats/omastar.asm14
-rwxr-xr-xdata/baseStats/onix.asm14
-rwxr-xr-xdata/baseStats/paras.asm14
-rwxr-xr-xdata/baseStats/parasect.asm14
-rwxr-xr-xdata/baseStats/persian.asm14
-rwxr-xr-xdata/baseStats/pidgeot.asm14
-rwxr-xr-xdata/baseStats/pidgeotto.asm14
-rwxr-xr-xdata/baseStats/pidgey.asm14
-rwxr-xr-xdata/baseStats/pikachu.asm14
-rwxr-xr-xdata/baseStats/pinsir.asm14
-rwxr-xr-xdata/baseStats/poliwag.asm14
-rwxr-xr-xdata/baseStats/poliwhirl.asm14
-rwxr-xr-xdata/baseStats/poliwrath.asm14
-rwxr-xr-xdata/baseStats/ponyta.asm14
-rwxr-xr-xdata/baseStats/porygon.asm14
-rwxr-xr-xdata/baseStats/primeape.asm14
-rwxr-xr-xdata/baseStats/psyduck.asm14
-rwxr-xr-xdata/baseStats/raichu.asm14
-rwxr-xr-xdata/baseStats/rapidash.asm14
-rwxr-xr-xdata/baseStats/raticate.asm14
-rwxr-xr-xdata/baseStats/rattata.asm14
-rwxr-xr-xdata/baseStats/rhydon.asm16
-rwxr-xr-xdata/baseStats/rhyhorn.asm14
-rwxr-xr-xdata/baseStats/sandshrew.asm14
-rwxr-xr-xdata/baseStats/sandslash.asm14
-rwxr-xr-xdata/baseStats/scyther.asm14
-rwxr-xr-xdata/baseStats/seadra.asm14
-rwxr-xr-xdata/baseStats/seaking.asm14
-rwxr-xr-xdata/baseStats/seel.asm14
-rwxr-xr-xdata/baseStats/shellder.asm14
-rwxr-xr-xdata/baseStats/slowbro.asm14
-rwxr-xr-xdata/baseStats/slowpoke.asm14
-rwxr-xr-xdata/baseStats/snorlax.asm14
-rwxr-xr-xdata/baseStats/spearow.asm14
-rwxr-xr-xdata/baseStats/squirtle.asm14
-rwxr-xr-xdata/baseStats/starmie.asm14
-rwxr-xr-xdata/baseStats/staryu.asm14
-rwxr-xr-xdata/baseStats/tangela.asm14
-rwxr-xr-xdata/baseStats/tauros.asm14
-rwxr-xr-xdata/baseStats/tentacool.asm14
-rwxr-xr-xdata/baseStats/tentacruel.asm14
-rwxr-xr-xdata/baseStats/vaporeon.asm14
-rwxr-xr-xdata/baseStats/venomoth.asm14
-rwxr-xr-xdata/baseStats/venonat.asm14
-rwxr-xr-xdata/baseStats/venusaur.asm14
-rwxr-xr-xdata/baseStats/victreebel.asm14
-rwxr-xr-xdata/baseStats/vileplume.asm14
-rwxr-xr-xdata/baseStats/voltorb.asm14
-rwxr-xr-xdata/baseStats/vulpix.asm14
-rwxr-xr-xdata/baseStats/wartortle.asm14
-rwxr-xr-xdata/baseStats/weedle.asm14
-rwxr-xr-xdata/baseStats/weepinbell.asm14
-rwxr-xr-xdata/baseStats/weezing.asm14
-rwxr-xr-xdata/baseStats/wigglytuff.asm14
-rwxr-xr-xdata/baseStats/zapdos.asm14
-rwxr-xr-xdata/baseStats/zubat.asm14
-rwxr-xr-xdata/evos_moves.asm169
-rwxr-xr-xdata/hidden_objects.asm18
-rwxr-xr-xdata/item_prices.asm28
-rwxr-xr-xdata/mapHeaders/battlecenterm.asm6
-rwxr-xr-xdata/mapHeaders/celadoncity.asm4
-rwxr-xr-xdata/mapHeaders/ceruleancity.asm8
-rwxr-xr-xdata/mapHeaders/cinnabarisland.asm4
-rw-r--r--data/mapHeaders/colosseum.asm6
-rwxr-xr-xdata/mapHeaders/fuchsiacity.asm6
-rwxr-xr-xdata/mapHeaders/indigoplateau.asm2
-rwxr-xr-xdata/mapHeaders/lavendertown.asm6
-rwxr-xr-xdata/mapHeaders/pallettown.asm4
-rwxr-xr-xdata/mapHeaders/pewtercity.asm4
-rwxr-xr-xdata/mapHeaders/route1.asm4
-rwxr-xr-xdata/mapHeaders/route10.asm4
-rwxr-xr-xdata/mapHeaders/route11.asm4
-rwxr-xr-xdata/mapHeaders/route12.asm6
-rwxr-xr-xdata/mapHeaders/route13.asm4
-rwxr-xr-xdata/mapHeaders/route14.asm4
-rwxr-xr-xdata/mapHeaders/route15.asm4
-rwxr-xr-xdata/mapHeaders/route16.asm4
-rwxr-xr-xdata/mapHeaders/route17.asm4
-rwxr-xr-xdata/mapHeaders/route18.asm4
-rwxr-xr-xdata/mapHeaders/route19.asm4
-rwxr-xr-xdata/mapHeaders/route2.asm4
-rwxr-xr-xdata/mapHeaders/route20.asm4
-rwxr-xr-xdata/mapHeaders/route21.asm4
-rwxr-xr-xdata/mapHeaders/route22.asm4
-rwxr-xr-xdata/mapHeaders/route23.asm4
-rwxr-xr-xdata/mapHeaders/route24.asm4
-rwxr-xr-xdata/mapHeaders/route25.asm2
-rwxr-xr-xdata/mapHeaders/route3.asm4
-rwxr-xr-xdata/mapHeaders/route4.asm4
-rwxr-xr-xdata/mapHeaders/route5.asm4
-rwxr-xr-xdata/mapHeaders/route6.asm4
-rwxr-xr-xdata/mapHeaders/route7.asm4
-rwxr-xr-xdata/mapHeaders/route8.asm4
-rwxr-xr-xdata/mapHeaders/route9.asm4
-rwxr-xr-xdata/mapHeaders/saffroncity.asm8
-rw-r--r--data/mapHeaders/tradecenter.asm6
-rwxr-xr-xdata/mapHeaders/tradecenterm.asm6
-rwxr-xr-xdata/mapHeaders/vermilioncity.asm4
-rwxr-xr-xdata/mapHeaders/viridiancity.asm6
-rwxr-xr-xdata/mapObjects/agatha.asm4
-rwxr-xr-xdata/mapObjects/battlecenterm.asm9
-rw-r--r--data/mapObjects/beach_house.asm6
-rwxr-xr-xdata/mapObjects/bikeshop.asm8
-rwxr-xr-xdata/mapObjects/billshouse.asm8
-rwxr-xr-xdata/mapObjects/blueshouse.asm8
-rwxr-xr-xdata/mapObjects/bruno.asm4
-rwxr-xr-xdata/mapObjects/celadoncity.asm20
-rwxr-xr-xdata/mapObjects/celadondiner.asm12
-rwxr-xr-xdata/mapObjects/celadongamecorner.asm24
-rwxr-xr-xdata/mapObjects/celadongym.asm18
-rwxr-xr-xdata/mapObjects/celadonhotel.asm8
-rwxr-xr-xdata/mapObjects/celadonhouse.asm8
-rwxr-xr-xdata/mapObjects/celadonmansion1.asm10
-rwxr-xr-xdata/mapObjects/celadonmansion2.asm2
-rwxr-xr-xdata/mapObjects/celadonmansion3.asm10
-rwxr-xr-xdata/mapObjects/celadonmansion4.asm2
-rwxr-xr-xdata/mapObjects/celadonmansion5.asm6
-rwxr-xr-xdata/mapObjects/celadonmart1.asm4
-rwxr-xr-xdata/mapObjects/celadonmart2.asm10
-rwxr-xr-xdata/mapObjects/celadonmart3.asm12
-rwxr-xr-xdata/mapObjects/celadonmart4.asm8
-rwxr-xr-xdata/mapObjects/celadonmart5.asm10
-rwxr-xr-xdata/mapObjects/celadonmartelevator.asm2
-rwxr-xr-xdata/mapObjects/celadonmartroof.asm6
-rwxr-xr-xdata/mapObjects/celadonpokecenter.asm10
-rwxr-xr-xdata/mapObjects/celadonprizeroom.asm6
-rwxr-xr-xdata/mapObjects/ceruleancity.asm24
-rwxr-xr-xdata/mapObjects/ceruleangym.asm10
-rwxr-xr-xdata/mapObjects/ceruleanhouse1.asm6
-rwxr-xr-xdata/mapObjects/ceruleanhouse2.asm4
-rwxr-xr-xdata/mapObjects/ceruleanhousetrashed.asm6
-rwxr-xr-xdata/mapObjects/ceruleanmart.asm8
-rwxr-xr-xdata/mapObjects/ceruleanpokecenter.asm10
-rwxr-xr-xdata/mapObjects/cinnabargym.asm20
-rwxr-xr-xdata/mapObjects/cinnabarisland.asm6
-rwxr-xr-xdata/mapObjects/cinnabarmart.asm8
-rwxr-xr-xdata/mapObjects/cinnabarpokecenter.asm10
-rw-r--r--data/mapObjects/colosseum.asm9
-rwxr-xr-xdata/mapObjects/copycatshouse1f.asm8
-rwxr-xr-xdata/mapObjects/copycatshouse2f.asm12
-rwxr-xr-xdata/mapObjects/daycarem.asm4
-rwxr-xr-xdata/mapObjects/diglettscave.asm2
-rwxr-xr-xdata/mapObjects/diglettscaveroute11.asm4
-rwxr-xr-xdata/mapObjects/diglettscaveroute2.asm4
-rwxr-xr-xdata/mapObjects/fanclub.asm14
-rwxr-xr-xdata/mapObjects/fightingdojo.asm16
-rwxr-xr-xdata/mapObjects/fuchsiacity.asm22
-rwxr-xr-xdata/mapObjects/fuchsiagym.asm18
-rwxr-xr-xdata/mapObjects/fuchsiahouse1.asm8
-rwxr-xr-xdata/mapObjects/fuchsiahouse2.asm8
-rwxr-xr-xdata/mapObjects/fuchsiahouse3.asm4
-rwxr-xr-xdata/mapObjects/fuchsiamart.asm8
-rwxr-xr-xdata/mapObjects/fuchsiameetingroom.asm8
-rwxr-xr-xdata/mapObjects/fuchsiapokecenter.asm10
-rwxr-xr-xdata/mapObjects/gary.asm6
-rwxr-xr-xdata/mapObjects/halloffameroom.asm4
-rwxr-xr-xdata/mapObjects/indigoplateau.asm2
-rwxr-xr-xdata/mapObjects/indigoplateaulobby.asm12
-rwxr-xr-xdata/mapObjects/lab1.asm4
-rwxr-xr-xdata/mapObjects/lab2.asm8
-rwxr-xr-xdata/mapObjects/lab3.asm6
-rwxr-xr-xdata/mapObjects/lab4.asm6
-rwxr-xr-xdata/mapObjects/lance.asm4
-rwxr-xr-xdata/mapObjects/lavenderhouse1.asm14
-rwxr-xr-xdata/mapObjects/lavenderhouse2.asm6
-rwxr-xr-xdata/mapObjects/lavendermart.asm8
-rwxr-xr-xdata/mapObjects/lavenderpokecenter.asm10
-rwxr-xr-xdata/mapObjects/lavendertown.asm8
-rwxr-xr-xdata/mapObjects/lorelei.asm4
-rwxr-xr-xdata/mapObjects/mansion1.asm8
-rwxr-xr-xdata/mapObjects/mansion2.asm10
-rwxr-xr-xdata/mapObjects/mansion3.asm12
-rwxr-xr-xdata/mapObjects/mansion4.asm18
-rwxr-xr-xdata/mapObjects/mtmoon1.asm28
-rwxr-xr-xdata/mapObjects/mtmoon2.asm2
-rwxr-xr-xdata/mapObjects/mtmoon3.asm20
-rwxr-xr-xdata/mapObjects/mtmoonpokecenter.asm14
-rwxr-xr-xdata/mapObjects/museum1f.asm12
-rwxr-xr-xdata/mapObjects/museum2f.asm12
-rwxr-xr-xdata/mapObjects/namerater.asm4
-rwxr-xr-xdata/mapObjects/oakslab.asm24
-rwxr-xr-xdata/mapObjects/pallettown.asm8
-rwxr-xr-xdata/mapObjects/pewtercity.asm12
-rwxr-xr-xdata/mapObjects/pewtergym.asm8
-rwxr-xr-xdata/mapObjects/pewterhouse1.asm8
-rwxr-xr-xdata/mapObjects/pewterhouse2.asm6
-rwxr-xr-xdata/mapObjects/pewtermart.asm8
-rwxr-xr-xdata/mapObjects/pewterpokecenter.asm10
-rwxr-xr-xdata/mapObjects/pokemontower1.asm12
-rwxr-xr-xdata/mapObjects/pokemontower2.asm6
-rwxr-xr-xdata/mapObjects/pokemontower3.asm10
-rwxr-xr-xdata/mapObjects/pokemontower4.asm14
-rwxr-xr-xdata/mapObjects/pokemontower5.asm14
-rwxr-xr-xdata/mapObjects/pokemontower6.asm12
-rwxr-xr-xdata/mapObjects/pokemontower7.asm8
-rwxr-xr-xdata/mapObjects/powerplant.asm30
-rwxr-xr-xdata/mapObjects/redshouse1f.asm4
-rwxr-xr-xdata/mapObjects/redshouse2f.asm4
-rwxr-xr-xdata/mapObjects/rockethideout1.asm16
-rwxr-xr-xdata/mapObjects/rockethideout2.asm12
-rwxr-xr-xdata/mapObjects/rockethideout3.asm10
-rwxr-xr-xdata/mapObjects/rockethideout4.asm20
-rwxr-xr-xdata/mapObjects/rockethideoutelevator.asm2
-rwxr-xr-xdata/mapObjects/rocktunnel1.asm16
-rwxr-xr-xdata/mapObjects/rocktunnel2.asm18
-rwxr-xr-xdata/mapObjects/rocktunnelpokecenter.asm10
-rwxr-xr-xdata/mapObjects/route1.asm6
-rwxr-xr-xdata/mapObjects/route10.asm14
-rwxr-xr-xdata/mapObjects/route11.asm22
-rwxr-xr-xdata/mapObjects/route11gate.asm4
-rwxr-xr-xdata/mapObjects/route11gateupstairs.asm6
-rwxr-xr-xdata/mapObjects/route12.asm22
-rwxr-xr-xdata/mapObjects/route12gate.asm4
-rwxr-xr-xdata/mapObjects/route12gateupstairs.asm4
-rwxr-xr-xdata/mapObjects/route12house.asm4
-rwxr-xr-xdata/mapObjects/route13.asm22
-rwxr-xr-xdata/mapObjects/route14.asm22
-rwxr-xr-xdata/mapObjects/route15.asm24
-rwxr-xr-xdata/mapObjects/route15gate.asm4
-rwxr-xr-xdata/mapObjects/route15gateupstairs.asm4
-rwxr-xr-xdata/mapObjects/route16.asm16
-rwxr-xr-xdata/mapObjects/route16gate.asm6
-rwxr-xr-xdata/mapObjects/route16gateupstairs.asm6
-rwxr-xr-xdata/mapObjects/route16house.asm6
-rwxr-xr-xdata/mapObjects/route17.asm22
-rwxr-xr-xdata/mapObjects/route18.asm8
-rwxr-xr-xdata/mapObjects/route18gate.asm4
-rwxr-xr-xdata/mapObjects/route18gateupstairs.asm4
-rwxr-xr-xdata/mapObjects/route19.asm20
-rwxr-xr-xdata/mapObjects/route2.asm6
-rwxr-xr-xdata/mapObjects/route20.asm22
-rwxr-xr-xdata/mapObjects/route21.asm20
-rwxr-xr-xdata/mapObjects/route22.asm6
-rwxr-xr-xdata/mapObjects/route22gate.asm4
-rwxr-xr-xdata/mapObjects/route23.asm16
-rwxr-xr-xdata/mapObjects/route24.asm18
-rwxr-xr-xdata/mapObjects/route25.asm22
-rwxr-xr-xdata/mapObjects/route2gate.asm6
-rwxr-xr-xdata/mapObjects/route2house.asm6
-rwxr-xr-xdata/mapObjects/route3.asm20
-rwxr-xr-xdata/mapObjects/route4.asm8
-rwxr-xr-xdata/mapObjects/route5.asm2
-rwxr-xr-xdata/mapObjects/route5gate.asm4
-rwxr-xr-xdata/mapObjects/route6.asm14
-rwxr-xr-xdata/mapObjects/route6gate.asm4
-rwxr-xr-xdata/mapObjects/route7.asm2
-rwxr-xr-xdata/mapObjects/route7gate.asm4
-rwxr-xr-xdata/mapObjects/route8.asm20
-rwxr-xr-xdata/mapObjects/route8gate.asm4
-rwxr-xr-xdata/mapObjects/route9.asm22
-rwxr-xr-xdata/mapObjects/safarizonecenter.asm4
-rwxr-xr-xdata/mapObjects/safarizoneeast.asm10
-rwxr-xr-xdata/mapObjects/safarizoneentrance.asm6
-rwxr-xr-xdata/mapObjects/safarizonenorth.asm6
-rwxr-xr-xdata/mapObjects/safarizoneresthouse1.asm6
-rwxr-xr-xdata/mapObjects/safarizoneresthouse2.asm8
-rwxr-xr-xdata/mapObjects/safarizoneresthouse3.asm8
-rwxr-xr-xdata/mapObjects/safarizoneresthouse4.asm8
-rwxr-xr-xdata/mapObjects/safarizonesecrethouse.asm4
-rwxr-xr-xdata/mapObjects/safarizonewest.asm10
-rwxr-xr-xdata/mapObjects/saffroncity.asm32
-rwxr-xr-xdata/mapObjects/saffrongym.asm20
-rwxr-xr-xdata/mapObjects/saffronhouse1.asm10
-rwxr-xr-xdata/mapObjects/saffronhouse2.asm4
-rwxr-xr-xdata/mapObjects/saffronmart.asm8
-rwxr-xr-xdata/mapObjects/saffronpokecenter.asm10
-rwxr-xr-xdata/mapObjects/school.asm6
-rwxr-xr-xdata/mapObjects/seafoamislands1.asm6
-rwxr-xr-xdata/mapObjects/seafoamislands2.asm6
-rwxr-xr-xdata/mapObjects/seafoamislands3.asm6
-rwxr-xr-xdata/mapObjects/seafoamislands4.asm14
-rwxr-xr-xdata/mapObjects/seafoamislands5.asm8
-rwxr-xr-xdata/mapObjects/silphco1.asm4
-rwxr-xr-xdata/mapObjects/silphco10.asm14
-rwxr-xr-xdata/mapObjects/silphco11.asm12
-rwxr-xr-xdata/mapObjects/silphco2.asm12
-rwxr-xr-xdata/mapObjects/silphco3.asm10
-rwxr-xr-xdata/mapObjects/silphco4.asm16
-rwxr-xr-xdata/mapObjects/silphco5.asm24
-rwxr-xr-xdata/mapObjects/silphco6.asm22
-rwxr-xr-xdata/mapObjects/silphco7.asm24
-rwxr-xr-xdata/mapObjects/silphco8.asm10
-rwxr-xr-xdata/mapObjects/silphco9.asm10
-rwxr-xr-xdata/mapObjects/silphcoelevator.asm2
-rwxr-xr-xdata/mapObjects/ssanne1.asm6
-rwxr-xr-xdata/mapObjects/ssanne10.asm24
-rwxr-xr-xdata/mapObjects/ssanne2.asm6
-rwxr-xr-xdata/mapObjects/ssanne3.asm4
-rwxr-xr-xdata/mapObjects/ssanne4.asm2
-rwxr-xr-xdata/mapObjects/ssanne5.asm12
-rwxr-xr-xdata/mapObjects/ssanne6.asm16
-rwxr-xr-xdata/mapObjects/ssanne7.asm4
-rwxr-xr-xdata/mapObjects/ssanne8.asm24
-rwxr-xr-xdata/mapObjects/ssanne9.asm28
-rw-r--r--data/mapObjects/tradecenter.asm9
-rwxr-xr-xdata/mapObjects/tradecenterm.asm9
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute5.asm4
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute6.asm4
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute7.asm4
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute7copy.asm6
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute8.asm4
-rwxr-xr-xdata/mapObjects/undergroundpathns.asm2
-rwxr-xr-xdata/mapObjects/undergroundpathwe.asm2
-rwxr-xr-xdata/mapObjects/unknowndungeon1.asm8
-rwxr-xr-xdata/mapObjects/unknowndungeon2.asm8
-rwxr-xr-xdata/mapObjects/unknowndungeon3.asm8
-rwxr-xr-xdata/mapObjects/vermilioncity.asm14
-rwxr-xr-xdata/mapObjects/vermiliondock.asm2
-rwxr-xr-xdata/mapObjects/vermiliongym.asm12
-rwxr-xr-xdata/mapObjects/vermilionhouse1.asm8
-rwxr-xr-xdata/mapObjects/vermilionhouse2.asm4
-rwxr-xr-xdata/mapObjects/vermilionhouse3.asm4
-rwxr-xr-xdata/mapObjects/vermilionmart.asm8
-rwxr-xr-xdata/mapObjects/vermilionpokecenter.asm10
-rwxr-xr-xdata/mapObjects/victoryroad1.asm16
-rwxr-xr-xdata/mapObjects/victoryroad2.asm28
-rwxr-xr-xdata/mapObjects/victoryroad3.asm22
-rwxr-xr-xdata/mapObjects/viridiancity.asm16
-rwxr-xr-xdata/mapObjects/viridianforest.asm18
-rwxr-xr-xdata/mapObjects/viridianforestentrance.asm6
-rwxr-xr-xdata/mapObjects/viridianforestexit.asm6
-rwxr-xr-xdata/mapObjects/viridiangym.asm24
-rwxr-xr-xdata/mapObjects/viridianhouse.asm10
-rwxr-xr-xdata/mapObjects/viridianmart.asm8
-rwxr-xr-xdata/mapObjects/viridianpokecenter.asm10
-rwxr-xr-xdata/mon_party_sprites.asm4
-rwxr-xr-xdata/moves.asm1
-rwxr-xr-xdata/sgb_packets.asm2
-rwxr-xr-xdata/special_warps.asm24
-rwxr-xr-xdata/town_map_entries.asm120
-rwxr-xr-xdata/town_map_order.asm1
-rwxr-xr-xdata/trainer_types.asm27
-rwxr-xr-xengine/HoF_room_pc.asm206
-rw-r--r--engine/bank3d/bank3d_battle.asm6
-rwxr-xr-xengine/battle/animations.asm1648
-rwxr-xr-xengine/battle/bank_e_misc.asm56
-rw-r--r--engine/battle/battle_transitions.asm300
-rw-r--r--engine/battle/common_text.asm63
-rwxr-xr-xengine/battle/core.asm997
-rw-r--r--engine/battle/decrement_pp.asm16
-rw-r--r--engine/battle/draw_hud_pokeball_gfx.asm81
-rwxr-xr-xengine/battle/end_of_battle.asm12
-rw-r--r--engine/battle/experience.asm46
-rw-r--r--engine/battle/ghost_marowak_anim.asm10
-rw-r--r--engine/battle/init_battle_variables.asm26
-rw-r--r--engine/battle/link_battle_versus_text.asm8
-rw-r--r--engine/battle/moveEffects/conversion_effect.asm2
-rw-r--r--engine/battle/moveEffects/drain_hp_effect.asm14
-rw-r--r--engine/battle/moveEffects/focus_energy_effect.asm6
-rw-r--r--engine/battle/moveEffects/haze_effect.asm10
-rw-r--r--engine/battle/moveEffects/heal_effect.asm6
-rw-r--r--engine/battle/moveEffects/leech_seed_effect.asm20
-rw-r--r--engine/battle/moveEffects/mist_effect.asm4
-rw-r--r--engine/battle/moveEffects/one_hit_ko_effect.asm6
-rw-r--r--engine/battle/moveEffects/paralyze_effect.asm16
-rw-r--r--engine/battle/moveEffects/pay_day_effect.asm6
-rw-r--r--engine/battle/moveEffects/recoil_effect.asm6
-rw-r--r--engine/battle/moveEffects/reflect_light_screen_effect.asm2
-rw-r--r--engine/battle/moveEffects/substitute_effect.asm30
-rw-r--r--engine/battle/moveEffects/transform_effect.asm28
-rwxr-xr-xengine/battle/read_trainer_party.asm14
-rw-r--r--engine/battle/scale_sprites.asm8
-rw-r--r--engine/battle/scroll_draw_trainer_pic.asm6
-rw-r--r--engine/battle/trainer_ai.asm73
-rw-r--r--engine/battle/wild_encounters.asm20
-rwxr-xr-xengine/cable_club.asm128
-rwxr-xr-xengine/clear_save.asm6
-rwxr-xr-xengine/evolution.asm149
-rwxr-xr-xengine/evolve_trade.asm6
-rwxr-xr-xengine/evos_moves.asm131
-rwxr-xr-xengine/experience.asm94
-rwxr-xr-xengine/game_corner_slots.asm30
-rwxr-xr-xengine/game_corner_slots2.asm10
-rwxr-xr-xengine/gamefreak.asm179
-rwxr-xr-xengine/give_pokemon.asm33
-rwxr-xr-xengine/hall_of_fame.asm217
-rwxr-xr-xengine/hidden_object_functions14.asm18
-rwxr-xr-xengine/hidden_object_functions17.asm182
-rwxr-xr-xengine/hidden_object_functions18.asm95
-rwxr-xr-xengine/hidden_object_functions3.asm63
-rwxr-xr-xengine/hidden_object_functions7.asm254
-rwxr-xr-xengine/hp_bar.asm23
-rwxr-xr-xengine/in_game_trades.asm44
-rwxr-xr-xengine/intro.asm271
-rwxr-xr-xengine/items/itemfinder.asm34
-rwxr-xr-xengine/items/items.asm517
-rwxr-xr-xengine/items/tm_prices.asm11
-rwxr-xr-xengine/items/tms.asm2
-rwxr-xr-xengine/learn_move.asm90
-rwxr-xr-xengine/load_pokedex_tiles.asm8
-rw-r--r--engine/menu/bills_pc.asm403
-rwxr-xr-xengine/menu/diploma.asm56
-rwxr-xr-xengine/menu/league_pc.asm70
-rwxr-xr-xengine/menu/main_menu.asm298
-rwxr-xr-xengine/menu/naming_screen.asm383
-rwxr-xr-xengine/menu/oaks_pc.asm2
-rwxr-xr-xengine/menu/party_menu.asm48
-rwxr-xr-xengine/menu/pc.asm67
-rwxr-xr-xengine/menu/players_pc.asm182
-rwxr-xr-xengine/menu/pokedex.asm171
-rwxr-xr-xengine/menu/prize_menu.asm130
-rwxr-xr-xengine/menu/start_menu.asm13
-rwxr-xr-xengine/menu/start_sub_menus.asm255
-rwxr-xr-xengine/menu/status_screen.asm247
-rwxr-xr-xengine/menu/vending_machine.asm63
-rwxr-xr-xengine/mon_party_sprites.asm22
-rwxr-xr-xengine/multiply_divide.asm4
-rwxr-xr-xengine/oak_speech.asm125
-rwxr-xr-xengine/oak_speech2.asm203
-rw-r--r--engine/oam_dma.asm5
-rwxr-xr-xengine/overworld/cable_club_npc.asm34
-rwxr-xr-xengine/overworld/card_key.asm12
-rwxr-xr-xengine/overworld/cinnabar_lab.asm69
-rwxr-xr-xengine/overworld/cut.asm191
-rwxr-xr-xengine/overworld/cut2.asm86
-rwxr-xr-xengine/overworld/doors.asm4
-rwxr-xr-xengine/overworld/elevator.asm36
-rwxr-xr-xengine/overworld/emotion_bubbles.asm32
-rwxr-xr-xengine/overworld/healing_machine.asm50
-rwxr-xr-xengine/overworld/hidden_items.asm90
-rwxr-xr-xengine/overworld/hidden_objects.asm10
-rw-r--r--engine/overworld/item.asm8
-rwxr-xr-xengine/overworld/ledges.asm9
-rwxr-xr-xengine/overworld/map_sprites.asm16
-rw-r--r--engine/overworld/movement.asm341
-rwxr-xr-xengine/overworld/npc_movement.asm128
-rwxr-xr-xengine/overworld/oaks_aide.asm36
-rw-r--r--engine/overworld/oam.asm99
-rwxr-xr-xengine/overworld/pewter_guys.asm37
-rwxr-xr-xengine/overworld/player_animations.asm136
-rwxr-xr-xengine/overworld/pokecenter.asm14
-rwxr-xr-xengine/overworld/pokemart.asm144
-rwxr-xr-xengine/overworld/saffron_guards.asm4
-rwxr-xr-xengine/overworld/ssanne.asm13
-rwxr-xr-xengine/overworld/trainers.asm42
-rwxr-xr-xengine/palettes.asm385
-rwxr-xr-xengine/pokedex_rating.asm39
-rwxr-xr-xengine/predefs.asm4
-rwxr-xr-xengine/predefs12.asm66
-rwxr-xr-xengine/predefs17.asm4
-rwxr-xr-xengine/predefs7.asm24
-rwxr-xr-xengine/save.asm469
-rwxr-xr-xengine/slot_machine.asm644
-rwxr-xr-xengine/titlescreen.asm280
-rwxr-xr-xengine/titlescreen2.asm10
-rwxr-xr-xengine/town_map.asm415
-rwxr-xr-xengine/trade.asm115
-rwxr-xr-xengine/trade2.asm28
-rw-r--r--home.asm684
-rw-r--r--home/audio.asm161
-rw-r--r--home/copy2.asm12
-rw-r--r--home/init.asm44
-rw-r--r--home/overworld.asm366
-rw-r--r--home/pic.asm15
-rw-r--r--home/predef.asm2
-rw-r--r--home/text.asm80
-rw-r--r--home/vblank.asm17
-rw-r--r--home/vcopy.asm79
-rw-r--r--hram.asm173
-rw-r--r--macros.asm222
-rwxr-xr-xmain.asm1021
-rw-r--r--maps/colosseum.blk (renamed from maps/tradecenterm.blk)0
-rw-r--r--maps/tradecenter.blk (renamed from maps/battlecenterm.blk)0
-rwxr-xr-x[-rw-r--r--]pic/ymon/electrode.pngbin659 -> 659 bytes
-rwxr-xr-xscripts/agatha.asm44
-rw-r--r--scripts/beach_house.asm12
-rwxr-xr-xscripts/bikeshop.asm59
-rwxr-xr-xscripts/billshouse.asm94
-rwxr-xr-xscripts/blueshouse.asm18
-rwxr-xr-xscripts/bruno.asm44
-rwxr-xr-xscripts/celadoncity.asm23
-rwxr-xr-xscripts/celadondiner.asm20
-rwxr-xr-xscripts/celadongamecorner.asm262
-rwxr-xr-xscripts/celadongym.asm149
-rwxr-xr-xscripts/celadonmansion1.asm6
-rwxr-xr-xscripts/celadonmansion3.asm6
-rwxr-xr-xscripts/celadonmansion5.asm10
-rwxr-xr-xscripts/celadonmart3.asm20
-rwxr-xr-xscripts/celadonmartelevator.asm29
-rwxr-xr-xscripts/celadonmartroof.asm172
-rwxr-xr-xscripts/ceruleancity.asm171
-rwxr-xr-xscripts/ceruleancity2.asm8
-rwxr-xr-xscripts/ceruleangym.asm88
-rwxr-xr-xscripts/ceruleanhouse1.asm2
-rwxr-xr-xscripts/ceruleanhouse2.asm14
-rwxr-xr-xscripts/ceruleanhousetrashed.asm12
-rwxr-xr-xscripts/cinnabargym.asm194
-rwxr-xr-xscripts/cinnabarisland.asm12
-rw-r--r--scripts/colosseum.asm9
-rwxr-xr-xscripts/copycatshouse1f.asm2
-rwxr-xr-xscripts/copycatshouse2f.asm30
-rwxr-xr-xscripts/daycarem.asm214
-rwxr-xr-xscripts/fanclub.asm36
-rwxr-xr-xscripts/fightingdojo.asm131
-rwxr-xr-xscripts/fuchsiacity.asm33
-rwxr-xr-xscripts/fuchsiagym.asm174
-rwxr-xr-xscripts/fuchsiahouse2.asm50
-rwxr-xr-xscripts/fuchsiahouse3.asm8
-rwxr-xr-xscripts/gary.asm105
-rwxr-xr-xscripts/halloffameroom.asm34
-rwxr-xr-xscripts/indigoplateaulobby.asm13
-rwxr-xr-xscripts/lab2.asm8
-rwxr-xr-xscripts/lab3.asm20
-rwxr-xr-xscripts/lab4.asm50
-rwxr-xr-xscripts/lance.asm55
-rwxr-xr-xscripts/lavenderhouse1.asm50
-rwxr-xr-xscripts/lavenderhouse2.asm15
-rwxr-xr-xscripts/lavendermart.asm13
-rwxr-xr-xscripts/lavendertown.asm6
-rwxr-xr-xscripts/lorelei.asm47
-rwxr-xr-xscripts/mansion1.asm67
-rwxr-xr-xscripts/mansion2.asm53
-rwxr-xr-xscripts/mansion3.asm41
-rwxr-xr-xscripts/mansion4.asm45
-rwxr-xr-xscripts/mtmoon1.asm110
-rwxr-xr-xscripts/mtmoon3.asm152
-rwxr-xr-xscripts/mtmoonpokecenter.asm52
-rwxr-xr-xscripts/museum1f.asm79
-rwxr-xr-xscripts/namerater.asm30
-rwxr-xr-xscripts/oakslab.asm528
-rwxr-xr-xscripts/pallettown.asm78
-rwxr-xr-xscripts/pewtercity.asm71
-rwxr-xr-xscripts/pewtergym.asm88
-rwxr-xr-xscripts/pewterhouse1.asm2
-rwxr-xr-xscripts/pewtermart.asm4
-rwxr-xr-xscripts/pewterpokecenter.asm56
-rwxr-xr-xscripts/pokemontower2.asm95
-rwxr-xr-xscripts/pokemontower3.asm44
-rwxr-xr-xscripts/pokemontower4.asm48
-rwxr-xr-xscripts/pokemontower5.asm71
-rwxr-xr-xscripts/pokemontower6.asm68
-rwxr-xr-xscripts/pokemontower7.asm128
-rwxr-xr-xscripts/powerplant.asm104
-rwxr-xr-xscripts/redshouse1f.asm22
-rwxr-xr-xscripts/redshouse2f.asm4
-rwxr-xr-xscripts/rockethideout1.asm93
-rwxr-xr-xscripts/rockethideout2.asm168
-rwxr-xr-xscripts/rockethideout3.asm84
-rwxr-xr-xscripts/rockethideout4.asm97
-rwxr-xr-xscripts/rockethideoutelevator.asm33
-rwxr-xr-xscripts/rocktunnel1.asm126
-rwxr-xr-xscripts/rocktunnel2.asm112
-rwxr-xr-xscripts/route1.asm24
-rwxr-xr-xscripts/route10.asm84
-rwxr-xr-xscripts/route11.asm140
-rwxr-xr-xscripts/route11gateupstairs.asm45
-rwxr-xr-xscripts/route12.asm124
-rwxr-xr-xscripts/route12gateupstairs.asm40
-rwxr-xr-xscripts/route12house.asm10
-rwxr-xr-xscripts/route13.asm140
-rwxr-xr-xscripts/route14.asm140
-rwxr-xr-xscripts/route15.asm162
-rwxr-xr-xscripts/route15gateupstairs.asm28
-rwxr-xr-xscripts/route16.asm106
-rwxr-xr-xscripts/route16gate.asm24
-rwxr-xr-xscripts/route16gateupstairs.asm14
-rwxr-xr-xscripts/route16house.asm18
-rwxr-xr-xscripts/route17.asm140
-rwxr-xr-xscripts/route18.asm42
-rwxr-xr-xscripts/route18gate.asm26
-rwxr-xr-xscripts/route18gateupstairs.asm14
-rwxr-xr-xscripts/route19.asm140
-rwxr-xr-xscripts/route2.asm4
-rwxr-xr-xscripts/route20.asm164
-rwxr-xr-xscripts/route21.asm126
-rwxr-xr-xscripts/route22.asm248
-rwxr-xr-xscripts/route22gate.asm26
-rwxr-xr-xscripts/route23.asm86
-rwxr-xr-xscripts/route24.asm134
-rwxr-xr-xscripts/route25.asm147
-rwxr-xr-xscripts/route2gate.asm30
-rwxr-xr-xscripts/route2house.asm2
-rwxr-xr-xscripts/route3.asm112
-rwxr-xr-xscripts/route4.asm16
-rwxr-xr-xscripts/route5gate.asm26
-rwxr-xr-xscripts/route6.asm84
-rwxr-xr-xscripts/route6gate.asm10
-rwxr-xr-xscripts/route7gate.asm10
-rwxr-xr-xscripts/route8.asm126
-rwxr-xr-xscripts/route8gate.asm10
-rwxr-xr-xscripts/route9.asm146
-rwxr-xr-xscripts/safarizonecenter.asm2
-rwxr-xr-xscripts/safarizoneeast.asm8
-rw-r--r--scripts/safarizoneentrance-yellow.asm33
-rwxr-xr-xscripts/safarizoneentrance.asm83
-rwxr-xr-xscripts/safarizonenorth.asm4
-rwxr-xr-xscripts/safarizonesecrethouse.asm20
-rwxr-xr-xscripts/safarizonewest.asm8
-rwxr-xr-xscripts/saffrongym.asm164
-rwxr-xr-xscripts/saffronhouse1.asm2
-rwxr-xr-xscripts/saffronhouse2.asm20
-rwxr-xr-xscripts/seafoamislands1.asm35
-rwxr-xr-xscripts/seafoamislands2.asm32
-rwxr-xr-xscripts/seafoamislands3.asm32
-rwxr-xr-xscripts/seafoamislands4.asm59
-rwxr-xr-xscripts/seafoamislands5.asm50
-rwxr-xr-xscripts/silphco1.asm11
-rwxr-xr-xscripts/silphco10.asm56
-rwxr-xr-xscripts/silphco11.asm126
-rwxr-xr-xscripts/silphco2.asm107
-rwxr-xr-xscripts/silphco3.asm70
-rwxr-xr-xscripts/silphco4.asm89
-rwxr-xr-xscripts/silphco5.asm112
-rwxr-xr-xscripts/silphco6.asm81
-rwxr-xr-xscripts/silphco7.asm203
-rwxr-xr-xscripts/silphco8.asm68
-rwxr-xr-xscripts/silphco9.asm112
-rwxr-xr-xscripts/silphcoelevator.asm31
-rwxr-xr-xscripts/ssanne10.asm92
-rwxr-xr-xscripts/ssanne2.asm72
-rwxr-xr-xscripts/ssanne5.asm30
-rwxr-xr-xscripts/ssanne6.asm16
-rwxr-xr-xscripts/ssanne7.asm48
-rwxr-xr-xscripts/ssanne8.asm60
-rwxr-xr-xscripts/ssanne9.asm74
-rw-r--r--[-rwxr-xr-x]scripts/tradecenter.asm (renamed from scripts/battlecenterm.asm)26
-rwxr-xr-xscripts/tradecenterm.asm9
-rwxr-xr-xscripts/undergroundpathentranceroute5.asm2
-rwxr-xr-xscripts/undergroundpathentranceroute7copy.asm20
-rwxr-xr-xscripts/unknowndungeon1.asm6
-rwxr-xr-xscripts/unknowndungeon2.asm6
-rwxr-xr-xscripts/unknowndungeon3.asm20
-rwxr-xr-xscripts/vermilioncity.asm82
-rwxr-xr-xscripts/vermiliondock.asm124
-rwxr-xr-xscripts/vermiliongym.asm114
-rwxr-xr-xscripts/vermilionhouse1.asm2
-rwxr-xr-xscripts/vermilionhouse2.asm8
-rwxr-xr-xscripts/vermilionhouse3.asm2
-rwxr-xr-xscripts/victoryroad1.asm47
-rwxr-xr-xscripts/victoryroad2.asm120
-rwxr-xr-xscripts/victoryroad3.asm90
-rwxr-xr-xscripts/viridiancity.asm87
-rwxr-xr-xscripts/viridianforest.asm48
-rwxr-xr-xscripts/viridiangym.asm221
-rwxr-xr-xscripts/viridianhouse.asm2
-rwxr-xr-xscripts/viridianmart.asm24
-rw-r--r--sram.asm55
-rw-r--r--text.asm39
-rw-r--r--text/maps/daycare.asm43
-rw-r--r--text/maps/fuchsia_gym.asm21
-rw-r--r--text/maps/fuchsia_gym_1.asm27
-rw-r--r--text/maps/lorelei.asm6
-rw-r--r--text/maps/name_rater.asm2
-rw-r--r--text/maps/oaks_lab.asm4
-rw-r--r--text/maps/underground_path_route_7_entrance_unused.asm14
-rwxr-xr-xwram.asm1588
-rwxr-xr-xyellow/main.asm6
1184 files changed, 27142 insertions, 22376 deletions
diff --git a/audio.asm b/audio.asm
index 8b2ee0e3..55bf4a1b 100644
--- a/audio.asm
+++ b/audio.asm
@@ -7,356 +7,356 @@ INCLUDE "constants.asm"
SECTION "Sound Effect Headers 1", ROMX, BANK[AUDIO_1]
-INCLUDE "audio/headers/sfxheaders02.asm"
+INCLUDE "audio/headers/sfxheaders1.asm"
SECTION "Sound Effect Headers 2", ROMX, BANK[AUDIO_2]
-INCLUDE "audio/headers/sfxheaders08.asm"
+INCLUDE "audio/headers/sfxheaders2.asm"
SECTION "Sound Effect Headers 3", ROMX, BANK[AUDIO_3]
-INCLUDE "audio/headers/sfxheaders1f.asm"
+INCLUDE "audio/headers/sfxheaders3.asm"
SECTION "Music Headers 1", ROMX, BANK[AUDIO_1]
-INCLUDE "audio/headers/musicheaders02.asm"
+INCLUDE "audio/headers/musicheaders1.asm"
SECTION "Music Headers 2", ROMX, BANK[AUDIO_2]
-INCLUDE "audio/headers/musicheaders08.asm"
+INCLUDE "audio/headers/musicheaders2.asm"
SECTION "Music Headers 3", ROMX, BANK[AUDIO_3]
-INCLUDE "audio/headers/musicheaders1f.asm"
+INCLUDE "audio/headers/musicheaders3.asm"
SECTION "Sound Effects 1", ROMX, BANK[AUDIO_1]
-INCLUDE "audio/sfx/sfx_02_01.asm"
-INCLUDE "audio/sfx/sfx_02_02.asm"
-INCLUDE "audio/sfx/sfx_02_03.asm"
-INCLUDE "audio/sfx/sfx_02_04.asm"
-INCLUDE "audio/sfx/sfx_02_05.asm"
-INCLUDE "audio/sfx/sfx_02_06.asm"
-INCLUDE "audio/sfx/sfx_02_07.asm"
-INCLUDE "audio/sfx/sfx_02_08.asm"
-INCLUDE "audio/sfx/sfx_02_09.asm"
-INCLUDE "audio/sfx/sfx_02_0a.asm"
-INCLUDE "audio/sfx/sfx_02_0b.asm"
-INCLUDE "audio/sfx/sfx_02_0c.asm"
-INCLUDE "audio/sfx/sfx_02_0d.asm"
-INCLUDE "audio/sfx/sfx_02_0e.asm"
-INCLUDE "audio/sfx/sfx_02_0f.asm"
-INCLUDE "audio/sfx/sfx_02_10.asm"
-INCLUDE "audio/sfx/sfx_02_11.asm"
-INCLUDE "audio/sfx/sfx_02_12.asm"
-INCLUDE "audio/sfx/sfx_02_13.asm"
-
-Music2_WavePointers: INCLUDE "audio/wave_instruments.asm"
-
-INCLUDE "audio/sfx/sfx_02_3f.asm"
-INCLUDE "audio/sfx/sfx_02_5e.asm"
-INCLUDE "audio/sfx/sfx_02_56.asm"
-INCLUDE "audio/sfx/sfx_02_57.asm"
-INCLUDE "audio/sfx/sfx_02_58.asm"
-INCLUDE "audio/sfx/sfx_02_3c.asm"
-INCLUDE "audio/sfx/sfx_02_59.asm"
-INCLUDE "audio/sfx/sfx_02_5a.asm"
-INCLUDE "audio/sfx/sfx_02_5b.asm"
-INCLUDE "audio/sfx/sfx_02_5c.asm"
-INCLUDE "audio/sfx/sfx_02_40.asm"
-INCLUDE "audio/sfx/sfx_02_5d.asm"
-INCLUDE "audio/sfx/sfx_02_3d.asm"
-INCLUDE "audio/sfx/sfx_02_43.asm"
-INCLUDE "audio/sfx/sfx_02_3e.asm"
-INCLUDE "audio/sfx/sfx_02_44.asm"
-INCLUDE "audio/sfx/sfx_02_45.asm"
-INCLUDE "audio/sfx/sfx_02_46.asm"
-INCLUDE "audio/sfx/sfx_02_47.asm"
-INCLUDE "audio/sfx/sfx_02_48.asm"
-INCLUDE "audio/sfx/sfx_02_49.asm"
-INCLUDE "audio/sfx/sfx_02_4a.asm"
-INCLUDE "audio/sfx/sfx_02_4b.asm"
-INCLUDE "audio/sfx/sfx_02_4c.asm"
-INCLUDE "audio/sfx/sfx_02_4d.asm"
-INCLUDE "audio/sfx/sfx_02_4e.asm"
-INCLUDE "audio/sfx/sfx_02_4f.asm"
-INCLUDE "audio/sfx/sfx_02_50.asm"
-INCLUDE "audio/sfx/sfx_02_51.asm"
-INCLUDE "audio/sfx/sfx_02_52.asm"
-INCLUDE "audio/sfx/sfx_02_53.asm"
-INCLUDE "audio/sfx/sfx_02_54.asm"
-INCLUDE "audio/sfx/sfx_02_55.asm"
-INCLUDE "audio/sfx/sfx_02_5f.asm"
-INCLUDE "audio/sfx/sfx_02_unused.asm"
-INCLUDE "audio/sfx/sfx_02_1d.asm"
-INCLUDE "audio/sfx/sfx_02_37.asm"
-INCLUDE "audio/sfx/sfx_02_38.asm"
-INCLUDE "audio/sfx/sfx_02_25.asm"
-INCLUDE "audio/sfx/sfx_02_39.asm"
-INCLUDE "audio/sfx/sfx_02_17.asm"
-INCLUDE "audio/sfx/sfx_02_23.asm"
-INCLUDE "audio/sfx/sfx_02_24.asm"
-INCLUDE "audio/sfx/sfx_02_14.asm"
-INCLUDE "audio/sfx/sfx_02_22.asm"
-INCLUDE "audio/sfx/sfx_02_1a.asm"
-INCLUDE "audio/sfx/sfx_02_1b.asm"
-INCLUDE "audio/sfx/sfx_02_19.asm"
-INCLUDE "audio/sfx/sfx_02_1f.asm"
-INCLUDE "audio/sfx/sfx_02_20.asm"
-INCLUDE "audio/sfx/sfx_02_16.asm"
-INCLUDE "audio/sfx/sfx_02_21.asm"
-INCLUDE "audio/sfx/sfx_02_15.asm"
-INCLUDE "audio/sfx/sfx_02_1e.asm"
-INCLUDE "audio/sfx/sfx_02_1c.asm"
-INCLUDE "audio/sfx/sfx_02_18.asm"
-INCLUDE "audio/sfx/sfx_02_2d.asm"
-INCLUDE "audio/sfx/sfx_02_2a.asm"
-INCLUDE "audio/sfx/sfx_02_2f.asm"
-INCLUDE "audio/sfx/sfx_02_26.asm"
-INCLUDE "audio/sfx/sfx_02_27.asm"
-INCLUDE "audio/sfx/sfx_02_28.asm"
-INCLUDE "audio/sfx/sfx_02_32.asm"
-INCLUDE "audio/sfx/sfx_02_29.asm"
-INCLUDE "audio/sfx/sfx_02_2b.asm"
-INCLUDE "audio/sfx/sfx_02_30.asm"
-INCLUDE "audio/sfx/sfx_02_2e.asm"
-INCLUDE "audio/sfx/sfx_02_31.asm"
-INCLUDE "audio/sfx/sfx_02_2c.asm"
-INCLUDE "audio/sfx/sfx_02_33.asm"
-INCLUDE "audio/sfx/sfx_02_34.asm"
-INCLUDE "audio/sfx/sfx_02_35.asm"
-INCLUDE "audio/sfx/sfx_02_36.asm"
+INCLUDE "audio/sfx/snare1_1.asm"
+INCLUDE "audio/sfx/snare2_1.asm"
+INCLUDE "audio/sfx/snare3_1.asm"
+INCLUDE "audio/sfx/snare4_1.asm"
+INCLUDE "audio/sfx/snare5_1.asm"
+INCLUDE "audio/sfx/triangle1_1.asm"
+INCLUDE "audio/sfx/triangle2_1.asm"
+INCLUDE "audio/sfx/snare6_1.asm"
+INCLUDE "audio/sfx/snare7_1.asm"
+INCLUDE "audio/sfx/snare8_1.asm"
+INCLUDE "audio/sfx/snare9_1.asm"
+INCLUDE "audio/sfx/cymbal1_1.asm"
+INCLUDE "audio/sfx/cymbal2_1.asm"
+INCLUDE "audio/sfx/cymbal3_1.asm"
+INCLUDE "audio/sfx/muted_snare1_1.asm"
+INCLUDE "audio/sfx/triangle3_1.asm"
+INCLUDE "audio/sfx/muted_snare2_1.asm"
+INCLUDE "audio/sfx/muted_snare3_1.asm"
+INCLUDE "audio/sfx/muted_snare4_1.asm"
+
+Audio1_WavePointers: INCLUDE "audio/wave_instruments.asm"
+
+INCLUDE "audio/sfx/start_menu_1.asm"
+INCLUDE "audio/sfx/pokeflute.asm"
+INCLUDE "audio/sfx/cut_1.asm"
+INCLUDE "audio/sfx/go_inside_1.asm"
+INCLUDE "audio/sfx/swap_1.asm"
+INCLUDE "audio/sfx/tink_1.asm"
+INCLUDE "audio/sfx/59_1.asm"
+INCLUDE "audio/sfx/purchase_1.asm"
+INCLUDE "audio/sfx/collision_1.asm"
+INCLUDE "audio/sfx/go_outside_1.asm"
+INCLUDE "audio/sfx/press_ab_1.asm"
+INCLUDE "audio/sfx/save_1.asm"
+INCLUDE "audio/sfx/heal_hp_1.asm"
+INCLUDE "audio/sfx/poisoned_1.asm"
+INCLUDE "audio/sfx/heal_ailment_1.asm"
+INCLUDE "audio/sfx/trade_machine_1.asm"
+INCLUDE "audio/sfx/turn_on_pc_1.asm"
+INCLUDE "audio/sfx/turn_off_pc_1.asm"
+INCLUDE "audio/sfx/enter_pc_1.asm"
+INCLUDE "audio/sfx/shrink_1.asm"
+INCLUDE "audio/sfx/switch_1.asm"
+INCLUDE "audio/sfx/healing_machine_1.asm"
+INCLUDE "audio/sfx/teleport_exit1_1.asm"
+INCLUDE "audio/sfx/teleport_enter1_1.asm"
+INCLUDE "audio/sfx/teleport_exit2_1.asm"
+INCLUDE "audio/sfx/ledge_1.asm"
+INCLUDE "audio/sfx/teleport_enter2_1.asm"
+INCLUDE "audio/sfx/fly_1.asm"
+INCLUDE "audio/sfx/denied_1.asm"
+INCLUDE "audio/sfx/arrow_tiles_1.asm"
+INCLUDE "audio/sfx/push_boulder_1.asm"
+INCLUDE "audio/sfx/ss_anne_horn_1.asm"
+INCLUDE "audio/sfx/withdraw_deposit_1.asm"
+INCLUDE "audio/sfx/safari_zone_pa.asm"
+INCLUDE "audio/sfx/unused_1.asm"
+INCLUDE "audio/sfx/cry09_1.asm"
+INCLUDE "audio/sfx/cry23_1.asm"
+INCLUDE "audio/sfx/cry24_1.asm"
+INCLUDE "audio/sfx/cry11_1.asm"
+INCLUDE "audio/sfx/cry25_1.asm"
+INCLUDE "audio/sfx/cry03_1.asm"
+INCLUDE "audio/sfx/cry0f_1.asm"
+INCLUDE "audio/sfx/cry10_1.asm"
+INCLUDE "audio/sfx/cry00_1.asm"
+INCLUDE "audio/sfx/cry0e_1.asm"
+INCLUDE "audio/sfx/cry06_1.asm"
+INCLUDE "audio/sfx/cry07_1.asm"
+INCLUDE "audio/sfx/cry05_1.asm"
+INCLUDE "audio/sfx/cry0b_1.asm"
+INCLUDE "audio/sfx/cry0c_1.asm"
+INCLUDE "audio/sfx/cry02_1.asm"
+INCLUDE "audio/sfx/cry0d_1.asm"
+INCLUDE "audio/sfx/cry01_1.asm"
+INCLUDE "audio/sfx/cry0a_1.asm"
+INCLUDE "audio/sfx/cry08_1.asm"
+INCLUDE "audio/sfx/cry04_1.asm"
+INCLUDE "audio/sfx/cry19_1.asm"
+INCLUDE "audio/sfx/cry16_1.asm"
+INCLUDE "audio/sfx/cry1b_1.asm"
+INCLUDE "audio/sfx/cry12_1.asm"
+INCLUDE "audio/sfx/cry13_1.asm"
+INCLUDE "audio/sfx/cry14_1.asm"
+INCLUDE "audio/sfx/cry1e_1.asm"
+INCLUDE "audio/sfx/cry15_1.asm"
+INCLUDE "audio/sfx/cry17_1.asm"
+INCLUDE "audio/sfx/cry1c_1.asm"
+INCLUDE "audio/sfx/cry1a_1.asm"
+INCLUDE "audio/sfx/cry1d_1.asm"
+INCLUDE "audio/sfx/cry18_1.asm"
+INCLUDE "audio/sfx/cry1f_1.asm"
+INCLUDE "audio/sfx/cry20_1.asm"
+INCLUDE "audio/sfx/cry21_1.asm"
+INCLUDE "audio/sfx/cry22_1.asm"
SECTION "Sound Effects 2", ROMX, BANK[AUDIO_2]
-INCLUDE "audio/sfx/sfx_08_01.asm"
-INCLUDE "audio/sfx/sfx_08_02.asm"
-INCLUDE "audio/sfx/sfx_08_03.asm"
-INCLUDE "audio/sfx/sfx_08_04.asm"
-INCLUDE "audio/sfx/sfx_08_05.asm"
-INCLUDE "audio/sfx/sfx_08_06.asm"
-INCLUDE "audio/sfx/sfx_08_07.asm"
-INCLUDE "audio/sfx/sfx_08_08.asm"
-INCLUDE "audio/sfx/sfx_08_09.asm"
-INCLUDE "audio/sfx/sfx_08_0a.asm"
-INCLUDE "audio/sfx/sfx_08_0b.asm"
-INCLUDE "audio/sfx/sfx_08_0c.asm"
-INCLUDE "audio/sfx/sfx_08_0d.asm"
-INCLUDE "audio/sfx/sfx_08_0e.asm"
-INCLUDE "audio/sfx/sfx_08_0f.asm"
-INCLUDE "audio/sfx/sfx_08_10.asm"
-INCLUDE "audio/sfx/sfx_08_11.asm"
-INCLUDE "audio/sfx/sfx_08_12.asm"
-INCLUDE "audio/sfx/sfx_08_13.asm"
-
-Music8_WavePointers: INCLUDE "audio/wave_instruments.asm"
-
-INCLUDE "audio/sfx/sfx_08_40.asm"
-INCLUDE "audio/sfx/sfx_08_3f.asm"
-INCLUDE "audio/sfx/sfx_08_3c.asm"
-INCLUDE "audio/sfx/sfx_08_3d.asm"
-INCLUDE "audio/sfx/sfx_08_3e.asm"
-INCLUDE "audio/sfx/sfx_08_77.asm"
-INCLUDE "audio/sfx/sfx_08_41.asm"
-INCLUDE "audio/sfx/sfx_08_42.asm"
-INCLUDE "audio/sfx/sfx_08_43.asm"
-INCLUDE "audio/sfx/sfx_08_44.asm"
-INCLUDE "audio/sfx/sfx_08_45.asm"
-INCLUDE "audio/sfx/sfx_08_pokeflute_ch3.asm"
-INCLUDE "audio/sfx/sfx_08_47.asm"
-INCLUDE "audio/sfx/sfx_08_48.asm"
-INCLUDE "audio/sfx/sfx_08_49.asm"
-INCLUDE "audio/sfx/sfx_08_4a.asm"
-INCLUDE "audio/sfx/sfx_08_4b.asm"
-INCLUDE "audio/sfx/sfx_08_4c.asm"
-INCLUDE "audio/sfx/sfx_08_4d.asm"
-INCLUDE "audio/sfx/sfx_08_4e.asm"
-INCLUDE "audio/sfx/sfx_08_4f.asm"
-INCLUDE "audio/sfx/sfx_08_50.asm"
-INCLUDE "audio/sfx/sfx_08_51.asm"
-INCLUDE "audio/sfx/sfx_08_52.asm"
-INCLUDE "audio/sfx/sfx_08_53.asm"
-INCLUDE "audio/sfx/sfx_08_54.asm"
-INCLUDE "audio/sfx/sfx_08_55.asm"
-INCLUDE "audio/sfx/sfx_08_56.asm"
-INCLUDE "audio/sfx/sfx_08_57.asm"
-INCLUDE "audio/sfx/sfx_08_58.asm"
-INCLUDE "audio/sfx/sfx_08_59.asm"
-INCLUDE "audio/sfx/sfx_08_5a.asm"
-INCLUDE "audio/sfx/sfx_08_5b.asm"
-INCLUDE "audio/sfx/sfx_08_5c.asm"
-INCLUDE "audio/sfx/sfx_08_5d.asm"
-INCLUDE "audio/sfx/sfx_08_5e.asm"
-INCLUDE "audio/sfx/sfx_08_5f.asm"
-INCLUDE "audio/sfx/sfx_08_60.asm"
-INCLUDE "audio/sfx/sfx_08_61.asm"
-INCLUDE "audio/sfx/sfx_08_62.asm"
-INCLUDE "audio/sfx/sfx_08_63.asm"
-INCLUDE "audio/sfx/sfx_08_64.asm"
-INCLUDE "audio/sfx/sfx_08_65.asm"
-INCLUDE "audio/sfx/sfx_08_66.asm"
-INCLUDE "audio/sfx/sfx_08_67.asm"
-INCLUDE "audio/sfx/sfx_08_68.asm"
-INCLUDE "audio/sfx/sfx_08_69.asm"
-INCLUDE "audio/sfx/sfx_08_6a.asm"
-INCLUDE "audio/sfx/sfx_08_6b.asm"
-INCLUDE "audio/sfx/sfx_08_6c.asm"
-INCLUDE "audio/sfx/sfx_08_6d.asm"
-INCLUDE "audio/sfx/sfx_08_6e.asm"
-INCLUDE "audio/sfx/sfx_08_6f.asm"
-INCLUDE "audio/sfx/sfx_08_70.asm"
-INCLUDE "audio/sfx/sfx_08_71.asm"
-INCLUDE "audio/sfx/sfx_08_72.asm"
-INCLUDE "audio/sfx/sfx_08_73.asm"
-INCLUDE "audio/sfx/sfx_08_74.asm"
-INCLUDE "audio/sfx/sfx_08_75.asm"
-INCLUDE "audio/sfx/sfx_08_76.asm"
-INCLUDE "audio/sfx/sfx_08_unused.asm"
-INCLUDE "audio/sfx/sfx_08_1d.asm"
-INCLUDE "audio/sfx/sfx_08_37.asm"
-INCLUDE "audio/sfx/sfx_08_38.asm"
-INCLUDE "audio/sfx/sfx_08_25.asm"
-INCLUDE "audio/sfx/sfx_08_39.asm"
-INCLUDE "audio/sfx/sfx_08_17.asm"
-INCLUDE "audio/sfx/sfx_08_23.asm"
-INCLUDE "audio/sfx/sfx_08_24.asm"
-INCLUDE "audio/sfx/sfx_08_14.asm"
-INCLUDE "audio/sfx/sfx_08_22.asm"
-INCLUDE "audio/sfx/sfx_08_1a.asm"
-INCLUDE "audio/sfx/sfx_08_1b.asm"
-INCLUDE "audio/sfx/sfx_08_19.asm"
-INCLUDE "audio/sfx/sfx_08_1f.asm"
-INCLUDE "audio/sfx/sfx_08_20.asm"
-INCLUDE "audio/sfx/sfx_08_16.asm"
-INCLUDE "audio/sfx/sfx_08_21.asm"
-INCLUDE "audio/sfx/sfx_08_15.asm"
-INCLUDE "audio/sfx/sfx_08_1e.asm"
-INCLUDE "audio/sfx/sfx_08_1c.asm"
-INCLUDE "audio/sfx/sfx_08_18.asm"
-INCLUDE "audio/sfx/sfx_08_2d.asm"
-INCLUDE "audio/sfx/sfx_08_2a.asm"
-INCLUDE "audio/sfx/sfx_08_2f.asm"
-INCLUDE "audio/sfx/sfx_08_26.asm"
-INCLUDE "audio/sfx/sfx_08_27.asm"
-INCLUDE "audio/sfx/sfx_08_28.asm"
-INCLUDE "audio/sfx/sfx_08_32.asm"
-INCLUDE "audio/sfx/sfx_08_29.asm"
-INCLUDE "audio/sfx/sfx_08_2b.asm"
-INCLUDE "audio/sfx/sfx_08_30.asm"
-INCLUDE "audio/sfx/sfx_08_2e.asm"
-INCLUDE "audio/sfx/sfx_08_31.asm"
-INCLUDE "audio/sfx/sfx_08_2c.asm"
-INCLUDE "audio/sfx/sfx_08_33.asm"
-INCLUDE "audio/sfx/sfx_08_34.asm"
-INCLUDE "audio/sfx/sfx_08_35.asm"
-INCLUDE "audio/sfx/sfx_08_36.asm"
+INCLUDE "audio/sfx/snare1_2.asm"
+INCLUDE "audio/sfx/snare2_2.asm"
+INCLUDE "audio/sfx/snare3_2.asm"
+INCLUDE "audio/sfx/snare4_2.asm"
+INCLUDE "audio/sfx/snare5_2.asm"
+INCLUDE "audio/sfx/triangle1_2.asm"
+INCLUDE "audio/sfx/triangle2_2.asm"
+INCLUDE "audio/sfx/snare6_2.asm"
+INCLUDE "audio/sfx/snare7_2.asm"
+INCLUDE "audio/sfx/snare8_2.asm"
+INCLUDE "audio/sfx/snare9_2.asm"
+INCLUDE "audio/sfx/cymbal1_2.asm"
+INCLUDE "audio/sfx/cymbal2_2.asm"
+INCLUDE "audio/sfx/cymbal3_2.asm"
+INCLUDE "audio/sfx/muted_snare1_2.asm"
+INCLUDE "audio/sfx/triangle3_2.asm"
+INCLUDE "audio/sfx/muted_snare2_2.asm"
+INCLUDE "audio/sfx/muted_snare3_2.asm"
+INCLUDE "audio/sfx/muted_snare4_2.asm"
+
+Audio2_WavePointers: INCLUDE "audio/wave_instruments.asm"
+
+INCLUDE "audio/sfx/press_ab_2.asm"
+INCLUDE "audio/sfx/start_menu_2.asm"
+INCLUDE "audio/sfx/tink_2.asm"
+INCLUDE "audio/sfx/heal_hp_2.asm"
+INCLUDE "audio/sfx/heal_ailment_2.asm"
+INCLUDE "audio/sfx/silph_scope.asm"
+INCLUDE "audio/sfx/ball_toss.asm"
+INCLUDE "audio/sfx/ball_poof.asm"
+INCLUDE "audio/sfx/faint_thud.asm"
+INCLUDE "audio/sfx/run.asm"
+INCLUDE "audio/sfx/dex_page_added.asm"
+INCLUDE "audio/sfx/pokeflute_ch3.asm"
+INCLUDE "audio/sfx/peck.asm"
+INCLUDE "audio/sfx/faint_fall.asm"
+INCLUDE "audio/sfx/battle_09.asm"
+INCLUDE "audio/sfx/pound.asm"
+INCLUDE "audio/sfx/battle_0b.asm"
+INCLUDE "audio/sfx/battle_0c.asm"
+INCLUDE "audio/sfx/battle_0d.asm"
+INCLUDE "audio/sfx/battle_0e.asm"
+INCLUDE "audio/sfx/battle_0f.asm"
+INCLUDE "audio/sfx/damage.asm"
+INCLUDE "audio/sfx/not_very_effective.asm"
+INCLUDE "audio/sfx/battle_12.asm"
+INCLUDE "audio/sfx/battle_13.asm"
+INCLUDE "audio/sfx/battle_14.asm"
+INCLUDE "audio/sfx/vine_whip.asm"
+INCLUDE "audio/sfx/battle_16.asm"
+INCLUDE "audio/sfx/battle_17.asm"
+INCLUDE "audio/sfx/battle_18.asm"
+INCLUDE "audio/sfx/battle_19.asm"
+INCLUDE "audio/sfx/super_effective.asm"
+INCLUDE "audio/sfx/battle_1b.asm"
+INCLUDE "audio/sfx/battle_1c.asm"
+INCLUDE "audio/sfx/doubleslap.asm"
+INCLUDE "audio/sfx/battle_1e.asm"
+INCLUDE "audio/sfx/horn_drill.asm"
+INCLUDE "audio/sfx/battle_20.asm"
+INCLUDE "audio/sfx/battle_21.asm"
+INCLUDE "audio/sfx/battle_22.asm"
+INCLUDE "audio/sfx/battle_23.asm"
+INCLUDE "audio/sfx/battle_24.asm"
+INCLUDE "audio/sfx/battle_25.asm"
+INCLUDE "audio/sfx/battle_26.asm"
+INCLUDE "audio/sfx/battle_27.asm"
+INCLUDE "audio/sfx/battle_28.asm"
+INCLUDE "audio/sfx/battle_29.asm"
+INCLUDE "audio/sfx/battle_2a.asm"
+INCLUDE "audio/sfx/battle_2b.asm"
+INCLUDE "audio/sfx/battle_2c.asm"
+INCLUDE "audio/sfx/psybeam.asm"
+INCLUDE "audio/sfx/battle_2e.asm"
+INCLUDE "audio/sfx/battle_2f.asm"
+INCLUDE "audio/sfx/psychic_m.asm"
+INCLUDE "audio/sfx/battle_31.asm"
+INCLUDE "audio/sfx/battle_32.asm"
+INCLUDE "audio/sfx/battle_33.asm"
+INCLUDE "audio/sfx/battle_34.asm"
+INCLUDE "audio/sfx/battle_35.asm"
+INCLUDE "audio/sfx/battle_36.asm"
+INCLUDE "audio/sfx/unused_2.asm"
+INCLUDE "audio/sfx/cry09_2.asm"
+INCLUDE "audio/sfx/cry23_2.asm"
+INCLUDE "audio/sfx/cry24_2.asm"
+INCLUDE "audio/sfx/cry11_2.asm"
+INCLUDE "audio/sfx/cry25_2.asm"
+INCLUDE "audio/sfx/cry03_2.asm"
+INCLUDE "audio/sfx/cry0f_2.asm"
+INCLUDE "audio/sfx/cry10_2.asm"
+INCLUDE "audio/sfx/cry00_2.asm"
+INCLUDE "audio/sfx/cry0e_2.asm"
+INCLUDE "audio/sfx/cry06_2.asm"
+INCLUDE "audio/sfx/cry07_2.asm"
+INCLUDE "audio/sfx/cry05_2.asm"
+INCLUDE "audio/sfx/cry0b_2.asm"
+INCLUDE "audio/sfx/cry0c_2.asm"
+INCLUDE "audio/sfx/cry02_2.asm"
+INCLUDE "audio/sfx/cry0d_2.asm"
+INCLUDE "audio/sfx/cry01_2.asm"
+INCLUDE "audio/sfx/cry0a_2.asm"
+INCLUDE "audio/sfx/cry08_2.asm"
+INCLUDE "audio/sfx/cry04_2.asm"
+INCLUDE "audio/sfx/cry19_2.asm"
+INCLUDE "audio/sfx/cry16_2.asm"
+INCLUDE "audio/sfx/cry1b_2.asm"
+INCLUDE "audio/sfx/cry12_2.asm"
+INCLUDE "audio/sfx/cry13_2.asm"
+INCLUDE "audio/sfx/cry14_2.asm"
+INCLUDE "audio/sfx/cry1e_2.asm"
+INCLUDE "audio/sfx/cry15_2.asm"
+INCLUDE "audio/sfx/cry17_2.asm"
+INCLUDE "audio/sfx/cry1c_2.asm"
+INCLUDE "audio/sfx/cry1a_2.asm"
+INCLUDE "audio/sfx/cry1d_2.asm"
+INCLUDE "audio/sfx/cry18_2.asm"
+INCLUDE "audio/sfx/cry1f_2.asm"
+INCLUDE "audio/sfx/cry20_2.asm"
+INCLUDE "audio/sfx/cry21_2.asm"
+INCLUDE "audio/sfx/cry22_2.asm"
SECTION "Sound Effects 3", ROMX, BANK[AUDIO_3]
-INCLUDE "audio/sfx/sfx_1f_01.asm"
-INCLUDE "audio/sfx/sfx_1f_02.asm"
-INCLUDE "audio/sfx/sfx_1f_03.asm"
-INCLUDE "audio/sfx/sfx_1f_04.asm"
-INCLUDE "audio/sfx/sfx_1f_05.asm"
-INCLUDE "audio/sfx/sfx_1f_06.asm"
-INCLUDE "audio/sfx/sfx_1f_07.asm"
-INCLUDE "audio/sfx/sfx_1f_08.asm"
-INCLUDE "audio/sfx/sfx_1f_09.asm"
-INCLUDE "audio/sfx/sfx_1f_0a.asm"
-INCLUDE "audio/sfx/sfx_1f_0b.asm"
-INCLUDE "audio/sfx/sfx_1f_0c.asm"
-INCLUDE "audio/sfx/sfx_1f_0d.asm"
-INCLUDE "audio/sfx/sfx_1f_0e.asm"
-INCLUDE "audio/sfx/sfx_1f_0f.asm"
-INCLUDE "audio/sfx/sfx_1f_10.asm"
-INCLUDE "audio/sfx/sfx_1f_11.asm"
-INCLUDE "audio/sfx/sfx_1f_12.asm"
-INCLUDE "audio/sfx/sfx_1f_13.asm"
-
-Music1f_WavePointers: INCLUDE "audio/wave_instruments.asm"
-
-INCLUDE "audio/sfx/sfx_1f_3f.asm"
-INCLUDE "audio/sfx/sfx_1f_56.asm"
-INCLUDE "audio/sfx/sfx_1f_57.asm"
-INCLUDE "audio/sfx/sfx_1f_58.asm"
-INCLUDE "audio/sfx/sfx_1f_3c.asm"
-INCLUDE "audio/sfx/sfx_1f_59.asm"
-INCLUDE "audio/sfx/sfx_1f_5a.asm"
-INCLUDE "audio/sfx/sfx_1f_5b.asm"
-INCLUDE "audio/sfx/sfx_1f_5c.asm"
-INCLUDE "audio/sfx/sfx_1f_40.asm"
-INCLUDE "audio/sfx/sfx_1f_5d.asm"
-INCLUDE "audio/sfx/sfx_1f_3d.asm"
-INCLUDE "audio/sfx/sfx_1f_43.asm"
-INCLUDE "audio/sfx/sfx_1f_3e.asm"
-INCLUDE "audio/sfx/sfx_1f_44.asm"
-INCLUDE "audio/sfx/sfx_1f_45.asm"
-INCLUDE "audio/sfx/sfx_1f_46.asm"
-INCLUDE "audio/sfx/sfx_1f_47.asm"
-INCLUDE "audio/sfx/sfx_1f_48.asm"
-INCLUDE "audio/sfx/sfx_1f_49.asm"
-INCLUDE "audio/sfx/sfx_1f_4a.asm"
-INCLUDE "audio/sfx/sfx_1f_4b.asm"
-INCLUDE "audio/sfx/sfx_1f_4c.asm"
-INCLUDE "audio/sfx/sfx_1f_4d.asm"
-INCLUDE "audio/sfx/sfx_1f_4e.asm"
-INCLUDE "audio/sfx/sfx_1f_4f.asm"
-INCLUDE "audio/sfx/sfx_1f_50.asm"
-INCLUDE "audio/sfx/sfx_1f_51.asm"
-INCLUDE "audio/sfx/sfx_1f_52.asm"
-INCLUDE "audio/sfx/sfx_1f_53.asm"
-INCLUDE "audio/sfx/sfx_1f_54.asm"
-INCLUDE "audio/sfx/sfx_1f_55.asm"
-INCLUDE "audio/sfx/sfx_1f_5e.asm"
-INCLUDE "audio/sfx/sfx_1f_5f.asm"
-INCLUDE "audio/sfx/sfx_1f_60.asm"
-INCLUDE "audio/sfx/sfx_1f_61.asm"
-INCLUDE "audio/sfx/sfx_1f_62.asm"
-INCLUDE "audio/sfx/sfx_1f_63.asm"
-INCLUDE "audio/sfx/sfx_1f_64.asm"
-INCLUDE "audio/sfx/sfx_1f_65.asm"
-INCLUDE "audio/sfx/sfx_1f_66.asm"
-INCLUDE "audio/sfx/sfx_1f_67.asm"
-INCLUDE "audio/sfx/sfx_1f_unused.asm"
-INCLUDE "audio/sfx/sfx_1f_1d.asm"
-INCLUDE "audio/sfx/sfx_1f_37.asm"
-INCLUDE "audio/sfx/sfx_1f_38.asm"
-INCLUDE "audio/sfx/sfx_1f_25.asm"
-INCLUDE "audio/sfx/sfx_1f_39.asm"
-INCLUDE "audio/sfx/sfx_1f_17.asm"
-INCLUDE "audio/sfx/sfx_1f_23.asm"
-INCLUDE "audio/sfx/sfx_1f_24.asm"
-INCLUDE "audio/sfx/sfx_1f_14.asm"
-INCLUDE "audio/sfx/sfx_1f_22.asm"
-INCLUDE "audio/sfx/sfx_1f_1a.asm"
-INCLUDE "audio/sfx/sfx_1f_1b.asm"
-INCLUDE "audio/sfx/sfx_1f_19.asm"
-INCLUDE "audio/sfx/sfx_1f_1f.asm"
-INCLUDE "audio/sfx/sfx_1f_20.asm"
-INCLUDE "audio/sfx/sfx_1f_16.asm"
-INCLUDE "audio/sfx/sfx_1f_21.asm"
-INCLUDE "audio/sfx/sfx_1f_15.asm"
-INCLUDE "audio/sfx/sfx_1f_1e.asm"
-INCLUDE "audio/sfx/sfx_1f_1c.asm"
-INCLUDE "audio/sfx/sfx_1f_18.asm"
-INCLUDE "audio/sfx/sfx_1f_2d.asm"
-INCLUDE "audio/sfx/sfx_1f_2a.asm"
-INCLUDE "audio/sfx/sfx_1f_2f.asm"
-INCLUDE "audio/sfx/sfx_1f_26.asm"
-INCLUDE "audio/sfx/sfx_1f_27.asm"
-INCLUDE "audio/sfx/sfx_1f_28.asm"
-INCLUDE "audio/sfx/sfx_1f_32.asm"
-INCLUDE "audio/sfx/sfx_1f_29.asm"
-INCLUDE "audio/sfx/sfx_1f_2b.asm"
-INCLUDE "audio/sfx/sfx_1f_30.asm"
-INCLUDE "audio/sfx/sfx_1f_2e.asm"
-INCLUDE "audio/sfx/sfx_1f_31.asm"
-INCLUDE "audio/sfx/sfx_1f_2c.asm"
-INCLUDE "audio/sfx/sfx_1f_33.asm"
-INCLUDE "audio/sfx/sfx_1f_34.asm"
-INCLUDE "audio/sfx/sfx_1f_35.asm"
-INCLUDE "audio/sfx/sfx_1f_36.asm"
+INCLUDE "audio/sfx/snare1_3.asm"
+INCLUDE "audio/sfx/snare2_3.asm"
+INCLUDE "audio/sfx/snare3_3.asm"
+INCLUDE "audio/sfx/snare4_3.asm"
+INCLUDE "audio/sfx/snare5_3.asm"
+INCLUDE "audio/sfx/triangle1_3.asm"
+INCLUDE "audio/sfx/triangle2_3.asm"
+INCLUDE "audio/sfx/snare6_3.asm"
+INCLUDE "audio/sfx/snare7_3.asm"
+INCLUDE "audio/sfx/snare8_3.asm"
+INCLUDE "audio/sfx/snare9_3.asm"
+INCLUDE "audio/sfx/cymbal1_3.asm"
+INCLUDE "audio/sfx/cymbal2_3.asm"
+INCLUDE "audio/sfx/cymbal3_3.asm"
+INCLUDE "audio/sfx/muted_snare1_3.asm"
+INCLUDE "audio/sfx/triangle3_3.asm"
+INCLUDE "audio/sfx/muted_snare2_3.asm"
+INCLUDE "audio/sfx/muted_snare3_3.asm"
+INCLUDE "audio/sfx/muted_snare4_3.asm"
+
+Audio3_WavePointers: INCLUDE "audio/wave_instruments.asm"
+
+INCLUDE "audio/sfx/start_menu_3.asm"
+INCLUDE "audio/sfx/cut_3.asm"
+INCLUDE "audio/sfx/go_inside_3.asm"
+INCLUDE "audio/sfx/swap_3.asm"
+INCLUDE "audio/sfx/tink_3.asm"
+INCLUDE "audio/sfx/59_3.asm"
+INCLUDE "audio/sfx/purchase_3.asm"
+INCLUDE "audio/sfx/collision_3.asm"
+INCLUDE "audio/sfx/go_outside_3.asm"
+INCLUDE "audio/sfx/press_ab_3.asm"
+INCLUDE "audio/sfx/save_3.asm"
+INCLUDE "audio/sfx/heal_hp_3.asm"
+INCLUDE "audio/sfx/poisoned_3.asm"
+INCLUDE "audio/sfx/heal_ailment_3.asm"
+INCLUDE "audio/sfx/trade_machine_3.asm"
+INCLUDE "audio/sfx/turn_on_pc_3.asm"
+INCLUDE "audio/sfx/turn_off_pc_3.asm"
+INCLUDE "audio/sfx/enter_pc_3.asm"
+INCLUDE "audio/sfx/shrink_3.asm"
+INCLUDE "audio/sfx/switch_3.asm"
+INCLUDE "audio/sfx/healing_machine_3.asm"
+INCLUDE "audio/sfx/teleport_exit1_3.asm"
+INCLUDE "audio/sfx/teleport_enter1_3.asm"
+INCLUDE "audio/sfx/teleport_exit2_3.asm"
+INCLUDE "audio/sfx/ledge_3.asm"
+INCLUDE "audio/sfx/teleport_enter2_3.asm"
+INCLUDE "audio/sfx/fly_3.asm"
+INCLUDE "audio/sfx/denied_3.asm"
+INCLUDE "audio/sfx/arrow_tiles_3.asm"
+INCLUDE "audio/sfx/push_boulder_3.asm"
+INCLUDE "audio/sfx/ss_anne_horn_3.asm"
+INCLUDE "audio/sfx/withdraw_deposit_3.asm"
+INCLUDE "audio/sfx/intro_lunge.asm"
+INCLUDE "audio/sfx/intro_hip.asm"
+INCLUDE "audio/sfx/intro_hop.asm"
+INCLUDE "audio/sfx/intro_raise.asm"
+INCLUDE "audio/sfx/intro_crash.asm"
+INCLUDE "audio/sfx/intro_whoosh.asm"
+INCLUDE "audio/sfx/slots_stop_wheel.asm"
+INCLUDE "audio/sfx/slots_reward.asm"
+INCLUDE "audio/sfx/slots_new_spin.asm"
+INCLUDE "audio/sfx/shooting_star.asm"
+INCLUDE "audio/sfx/unused_3.asm"
+INCLUDE "audio/sfx/cry09_3.asm"
+INCLUDE "audio/sfx/cry23_3.asm"
+INCLUDE "audio/sfx/cry24_3.asm"
+INCLUDE "audio/sfx/cry11_3.asm"
+INCLUDE "audio/sfx/cry25_3.asm"
+INCLUDE "audio/sfx/cry03_3.asm"
+INCLUDE "audio/sfx/cry0f_3.asm"
+INCLUDE "audio/sfx/cry10_3.asm"
+INCLUDE "audio/sfx/cry00_3.asm"
+INCLUDE "audio/sfx/cry0e_3.asm"
+INCLUDE "audio/sfx/cry06_3.asm"
+INCLUDE "audio/sfx/cry07_3.asm"
+INCLUDE "audio/sfx/cry05_3.asm"
+INCLUDE "audio/sfx/cry0b_3.asm"
+INCLUDE "audio/sfx/cry0c_3.asm"
+INCLUDE "audio/sfx/cry02_3.asm"
+INCLUDE "audio/sfx/cry0d_3.asm"
+INCLUDE "audio/sfx/cry01_3.asm"
+INCLUDE "audio/sfx/cry0a_3.asm"
+INCLUDE "audio/sfx/cry08_3.asm"
+INCLUDE "audio/sfx/cry04_3.asm"
+INCLUDE "audio/sfx/cry19_3.asm"
+INCLUDE "audio/sfx/cry16_3.asm"
+INCLUDE "audio/sfx/cry1b_3.asm"
+INCLUDE "audio/sfx/cry12_3.asm"
+INCLUDE "audio/sfx/cry13_3.asm"
+INCLUDE "audio/sfx/cry14_3.asm"
+INCLUDE "audio/sfx/cry1e_3.asm"
+INCLUDE "audio/sfx/cry15_3.asm"
+INCLUDE "audio/sfx/cry17_3.asm"
+INCLUDE "audio/sfx/cry1c_3.asm"
+INCLUDE "audio/sfx/cry1a_3.asm"
+INCLUDE "audio/sfx/cry1d_3.asm"
+INCLUDE "audio/sfx/cry18_3.asm"
+INCLUDE "audio/sfx/cry1f_3.asm"
+INCLUDE "audio/sfx/cry20_3.asm"
+INCLUDE "audio/sfx/cry21_3.asm"
+INCLUDE "audio/sfx/cry22_3.asm"
@@ -364,10 +364,10 @@ SECTION "Audio Engine 1", ROMX, BANK[AUDIO_1]
PlayBattleMusic:: ; 0x90c6
xor a
- ld [wMusicHeaderPointer], a
+ ld [wAudioFadeOutControl], a
ld [wLowHealthAlarm], a
dec a
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound ; stop music
call DelayFrame
ld c, BANK(Music_GymLeaderBattle)
@@ -378,11 +378,11 @@ PlayBattleMusic:: ; 0x90c6
jr .playSong
.notGymLeaderBattle
ld a, [W_CUROPPONENT]
- cp $c8
+ cp 200
jr c, .wildBattle
- cp SONY3 + $c8
+ cp OPP_SONY3
jr z, .finalBattle
- cp LANCE + $c8
+ cp OPP_LANCE
jr nz, .normalTrainerBattle
ld a, MUSIC_GYM_LEADER_BATTLE ; lance also plays gym leader theme
jr .playSong
@@ -406,14 +406,14 @@ Music_RivalAlternateStart:: ; 0x9b47
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld de, Music_MeetRival_branch_b1a2
- call Music2_OverwriteChannelPointer
+ call Audio1_OverwriteChannelPointer
ld de, Music_MeetRival_branch_b21d
- call Music2_OverwriteChannelPointer
+ call Audio1_OverwriteChannelPointer
ld de, Music_MeetRival_branch_b2b5
-Music2_OverwriteChannelPointer: ; 0x9b60
+Audio1_OverwriteChannelPointer: ; 0x9b60
ld a, e
ld [hli], a
ld a, d
@@ -425,32 +425,32 @@ Music_RivalAlternateTempo:: ; 0x9b65
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld de, Music_MeetRival_branch_b119
- jp Music2_OverwriteChannelPointer
+ jp Audio1_OverwriteChannelPointer
; applies both the alternate start and alternate tempo
Music_RivalAlternateStartAndTempo:: ; 0x9b75
call Music_RivalAlternateStart
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld de, Music_MeetRival_branch_b19b
- jp Music2_OverwriteChannelPointer
+ jp Audio1_OverwriteChannelPointer
; an alternate tempo for Cities1 which is used for the Hall of Fame room
Music_Cities1AlternateTempo:: ; 0x9b81
- ld a, $a
- ld [wcfc8], a
- ld [wcfc9], a
- ld a, $ff
- ld [wMusicHeaderPointer], a
- ld c, $64
- call DelayFrames
+ ld a, 10
+ ld [wAudioFadeOutCounterReloadValue], a
+ ld [wAudioFadeOutCounter], a
+ ld a, $ff ; stop playing music after the fade-out is finished
+ ld [wAudioFadeOutControl], a
+ ld c, 100
+ call DelayFrames ; wait for the fade-out to finish
ld c, BANK(Music_Cities1)
ld a, MUSIC_CITIES1
call PlayMusic
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld de, Music_Cities1_branch_aa6f
- jp Music2_OverwriteChannelPointer
+ jp Audio1_OverwriteChannelPointer
SECTION "Audio Engine 2", ROMX, BANK[AUDIO_2]
@@ -477,7 +477,7 @@ Music_DoLowHealthAlarm:: ; 2136e (8:536e)
.asm_2138a
ld a, $86
- ld [wc02a], a ;disable sound channel?
+ ld [wChannelSoundIDs + CH4], a ;disable sound channel?
ld a, [wLowHealthAlarm]
and $7f ;decrement alarm timer.
dec a
@@ -491,7 +491,7 @@ Music_DoLowHealthAlarm:: ; 2136e (8:536e)
.disableAlarm
xor a
ld [wLowHealthAlarm], a ;disable alarm
- ld [wc02a], a ;re-enable sound channel?
+ ld [wChannelSoundIDs + CH4], a ;re-enable sound channel?
ld de, .toneDataSilence
jr .playTone
@@ -538,16 +538,18 @@ INCLUDE "audio/engine_2.asm"
Music_PokeFluteInBattle:: ; 22306 (8:6306)
- ld a, (SFX_08_46 - SFX_Headers_08) / 3 ; PokeFlute outside of battle
+ ; begin playing the "caught mon" sound effect
+ ld a, SFX_CAUGHT_MON
call PlaySoundWaitForCurrent
- ld hl, wc00e
+ ; then immediately overwrtie the channel pointers
+ ld hl, wChannelCommandPointers + CH4 * 2
ld de, SFX_08_PokeFlute_Ch1
- call Music8_OverwriteChannelPointer
+ call Audio2_OverwriteChannelPointer
ld de, SFX_08_PokeFlute_Ch2
- call Music8_OverwriteChannelPointer
+ call Audio2_OverwriteChannelPointer
ld de, SFX_08_PokeFlute_Ch3
-Music8_OverwriteChannelPointer: ; 2231d (8:631d)
+Audio2_OverwriteChannelPointer: ; 2231d (8:631d)
ld a, e
ld [hli], a
ld a, d
@@ -557,7 +559,7 @@ Music8_OverwriteChannelPointer: ; 2231d (8:631d)
SECTION "Audio Engine 3", ROMX, BANK[AUDIO_3]
-Func_7d13b:: ; 7d13b (1f:513b)
+PlayPokedexRatingSfx:: ; 7d13b (1f:513b)
ld a, [$ffdc]
ld c, $0
ld hl, OwnedMonValues
@@ -570,7 +572,7 @@ Func_7d13b:: ; 7d13b (1f:513b)
.gotSfxPointer
push bc
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySoundWaitForCurrent
pop bc
ld b, $0
@@ -583,13 +585,13 @@ Func_7d13b:: ; 7d13b (1f:513b)
jp PlayDefaultMusic
PokedexRatingSfxPointers: ; 7d162 (1f:5162)
- db (SFX_1f_51 - SFX_Headers_1f) / 3, BANK(SFX_1f_51)
- db (SFX_02_41 - SFX_Headers_02) / 3, BANK(SFX_02_41)
- db (SFX_02_3a - SFX_Headers_02) / 3, BANK(SFX_02_3a)
- db (SFX_08_46 - SFX_Headers_08) / 3, BANK(SFX_08_46)
- db (SFX_08_3a - SFX_Headers_08) / 3, BANK(SFX_08_3a)
- db (SFX_02_42 - SFX_Headers_02) / 3, BANK(SFX_02_42)
- db (SFX_02_3b - SFX_Headers_02) / 3, BANK(SFX_02_3b)
+ db SFX_DENIED, BANK(SFX_Denied_3)
+ db SFX_POKEDEX_RATING, BANK(SFX_Pokedex_Rating_1)
+ db SFX_GET_ITEM_1, BANK(SFX_Get_Item1_1)
+ db SFX_CAUGHT_MON, BANK(SFX_Caught_Mon)
+ db SFX_LEVEL_UP, BANK(SFX_Level_Up)
+ db SFX_GET_KEY_ITEM, BANK(SFX_Get_Key_Item_1)
+ db SFX_GET_ITEM_2, BANK(SFX_Get_Item2_1)
OwnedMonValues: ; 7d170 (1f:5170)
db 10, 40, 60, 90, 120, 150, $ff
@@ -610,13 +612,13 @@ INCLUDE "audio/music/indigoplateau.asm"
INCLUDE "audio/music/pallettown.asm"
INCLUDE "audio/music/unusedsong.asm"
INCLUDE "audio/music/cities1.asm"
-INCLUDE "audio/sfx/sfx_02_3a.asm"
+INCLUDE "audio/sfx/get_item1_1.asm"
INCLUDE "audio/music/museumguy.asm"
INCLUDE "audio/music/meetprofoak.asm"
INCLUDE "audio/music/meetrival.asm"
-INCLUDE "audio/sfx/sfx_02_41.asm"
-INCLUDE "audio/sfx/sfx_02_3b.asm"
-INCLUDE "audio/sfx/sfx_02_42.asm"
+INCLUDE "audio/sfx/pokedex_rating_1.asm"
+INCLUDE "audio/sfx/get_item2_1.asm"
+INCLUDE "audio/sfx/get_key_item_1.asm"
INCLUDE "audio/music/ssanne.asm"
INCLUDE "audio/music/cities2.asm"
INCLUDE "audio/music/celadon.asm"
@@ -630,15 +632,15 @@ INCLUDE "audio/music/pokecenter.asm"
SECTION "Music 2", ROMX, BANK[AUDIO_2]
-INCLUDE "audio/sfx/sfx_08_pokeflute.asm"
-INCLUDE "audio/sfx/sfx_08_unused2.asm"
+INCLUDE "audio/sfx/pokeflute_ch1_ch2.asm"
+INCLUDE "audio/sfx/unused2_2.asm"
INCLUDE "audio/music/gymleaderbattle.asm"
INCLUDE "audio/music/trainerbattle.asm"
INCLUDE "audio/music/wildbattle.asm"
INCLUDE "audio/music/finalbattle.asm"
-INCLUDE "audio/sfx/sfx_08_3a.asm"
-INCLUDE "audio/sfx/sfx_08_3b.asm"
-INCLUDE "audio/sfx/sfx_08_46.asm"
+INCLUDE "audio/sfx/level_up.asm"
+INCLUDE "audio/sfx/get_item2_2.asm"
+INCLUDE "audio/sfx/caught_mon.asm"
INCLUDE "audio/music/defeatedtrainer.asm"
INCLUDE "audio/music/defeatedwildmon.asm"
INCLUDE "audio/music/defeatedgymleader.asm"
@@ -650,13 +652,13 @@ INCLUDE "audio/music/bikeriding.asm"
INCLUDE "audio/music/dungeon1.asm"
INCLUDE "audio/music/gamecorner.asm"
INCLUDE "audio/music/titlescreen.asm"
-INCLUDE "audio/sfx/sfx_1f_3a.asm"
+INCLUDE "audio/sfx/get_item1_3.asm"
INCLUDE "audio/music/dungeon2.asm"
INCLUDE "audio/music/dungeon3.asm"
INCLUDE "audio/music/cinnabarmansion.asm"
-INCLUDE "audio/sfx/sfx_1f_41.asm"
-INCLUDE "audio/sfx/sfx_1f_3b.asm"
-INCLUDE "audio/sfx/sfx_1f_42.asm"
+INCLUDE "audio/sfx/pokedex_rating_3.asm"
+INCLUDE "audio/sfx/get_item2_3.asm"
+INCLUDE "audio/sfx/get_key_item_3.asm"
INCLUDE "audio/music/oakslab.asm"
INCLUDE "audio/music/pokemontower.asm"
INCLUDE "audio/music/silphco.asm"
diff --git a/audio/engine_1.asm b/audio/engine_1.asm
index 8343074a..c729fa7e 100644
--- a/audio/engine_1.asm
+++ b/audio/engine_1.asm
@@ -1,32 +1,32 @@
; The first of three duplicated sound engines.
-Music2_UpdateMusic:: ; 0x9103
+Audio1_UpdateMusic:: ; 0x9103
ld c, CH0
.loop
- ld b, $0
- ld hl, wc026
+ ld b, 0
+ ld hl, wChannelSoundIDs
add hl, bc
ld a, [hl]
and a
jr z, .nextChannel
ld a, c
cp CH4
- jr nc, .asm_912e ; if sfx channel
- ld a, [wc002]
+ jr nc, .applyAffects ; if sfx channel
+ ld a, [wMuteAudioAndPauseMusic]
and a
- jr z, .asm_912e
+ jr z, .applyAffects
bit 7, a
jr nz, .nextChannel
set 7, a
- ld [wc002], a
- xor a
- ld [$ff25], a
- ld [$ff1a], a
+ ld [wMuteAudioAndPauseMusic], a
+ xor a ; disable all channels' output
+ ld [rNR51], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
jr .nextChannel
-.asm_912e
- call Music2_ApplyMusicAffects
+.applyAffects
+ call Audio1_ApplyMusicAffects
.nextChannel
ld a, c
inc c ; inc channel number
@@ -36,63 +36,57 @@ Music2_UpdateMusic:: ; 0x9103
; this routine checks flags for music effects currently applied
; to the channel and calls certain functions based on flags.
-; known flags for wc02e:
-; 0: toggleperfectpitch has been used
-; 1: call has been used
-; 3: a toggle used only by this routine for vibrato
-; 4: pitchbend flag
-; 6: dutycycle flag
-Music2_ApplyMusicAffects: ; 0x9138
+Audio1_ApplyMusicAffects: ; 0x9138
ld b, $0
- ld hl, wc0b6 ; delay until next note
+ ld hl, wChannelNoteDelayCounters ; delay until next note
add hl, bc
ld a, [hl]
cp $1 ; if the delay is 1, play next note
- jp z, Music2_PlayNextNote
+ jp z, Audio1_PlayNextNote
dec a ; otherwise, decrease the delay timer
ld [hl], a
ld a, c
cp CH4
jr nc, .startChecks ; if a sfx channel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
jr z, .startChecks
ret
.startChecks
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
- bit 6, [hl] ; dutycycle
+ bit BIT_ROTATE_DUTY, [hl]
jr z, .checkForExecuteMusic
- call Music2_ApplyDutyCycle
+ call Audio1_ApplyDutyCycle
.checkForExecuteMusic
- ld b, $0
- ld hl, wc036
+ ld b, 0
+ ld hl, wChannelFlags2
add hl, bc
- bit 0, [hl]
+ bit BIT_EXECUTE_MUSIC, [hl]
jr nz, .checkForPitchBend
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
- bit 2, [hl]
- jr nz, .disablePitchBendVibrato
+ bit BIT_NOISE_OR_SFX, [hl]
+ jr nz, .skipPitchBendVibrato
.checkForPitchBend
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
- bit 4, [hl] ; pitchbend
+ bit BIT_PITCH_BEND_ON, [hl]
jr z, .checkVibratoDelay
- jp Music2_ApplyPitchBend
+ jp Audio1_ApplyPitchBend
.checkVibratoDelay
- ld hl, wc04e ; vibrato delay
+ ld hl, wChannelVibratoDelayCounters
add hl, bc
ld a, [hl]
and a ; check if delay is over
jr z, .checkForVibrato
dec [hl] ; otherwise, dec delay
-.disablePitchBendVibrato
+.skipPitchBendVibrato
ret
.checkForVibrato
- ld hl, wc056 ; vibrato rate
+ ld hl, wChannelVibratoExtents
add hl, bc
ld a, [hl]
and a
@@ -100,38 +94,40 @@ Music2_ApplyMusicAffects: ; 0x9138
ret ; no vibrato
.vibrato
ld d, a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, bc
ld a, [hl]
and $f
and a
- jr z, .vibratoAlreadyDone
- dec [hl] ; apply vibrato pitch change
+ jr z, .applyVibrato
+ dec [hl] ; decrement counter
ret
-.vibratoAlreadyDone
+.applyVibrato
ld a, [hl]
swap [hl]
or [hl]
- ld [hl], a ; reset the vibrato value and start again
- ld hl, wc066
+ ld [hl], a ; reload the counter
+ ld hl, wChannelFrequencyLowBytes
add hl, bc
ld e, [hl] ; get note pitch
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
- bit 3, [hl] ; this is the only code that sets/resets bit three so
- jr z, .unset ; it continuously alternates which path it takes
- res 3, [hl]
+; This is the only code that sets/resets the vibrato direction bit, so it
+; continuously alternates which path it takes.
+ bit BIT_VIBRATO_DIRECTION, [hl]
+ jr z, .unset
+ res BIT_VIBRATO_DIRECTION, [hl]
ld a, d
and $f
ld d, a
ld a, e
sub d
jr nc, .noCarry
- ld a, $0
+ ld a, 0
.noCarry
jr .done
.unset
- set 3, [hl]
+ set BIT_VIBRATO_DIRECTION, [hl]
ld a, d
and $f0
swap a
@@ -140,61 +136,64 @@ Music2_ApplyMusicAffects: ; 0x9138
ld a, $ff
.done
ld d, a
- ld b, $3
- call Func_9838
+ ld b, REG_FREQUENCY_LO
+ call Audio1_GetRegisterPointer
ld [hl], d
ret
; this routine executes all music commands that take up no time,
; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached
-Music2_PlayNextNote ; 0x91d0
- ld hl, wc06e
+Audio1_PlayNextNote: ; 0x91d0
+; reload the vibrato delay counter
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, bc
ld a, [hl]
- ld hl, wc04e
+ ld hl, wChannelVibratoDelayCounters
add hl, bc
ld [hl], a
- ld hl, wc02e
+
+ ld hl, wChannelFlags1
add hl, bc
- res 4, [hl]
- res 5, [hl]
- call Music2_endchannel
+ res BIT_PITCH_BEND_ON, [hl]
+ res BIT_PITCH_BEND_DECREASING, [hl]
+ call Audio1_endchannel
ret
-Music2_endchannel: ; 0x91e6
- call Music2_GetNextMusicByte
+Audio1_endchannel: ; 0x91e6
+ call Audio1_GetNextMusicByte
ld d, a
cp $ff ; is this command an endchannel?
- jp nz, Music2_callchannel ; no
- ld b, $0 ; yes
- ld hl, wc02e
+ jp nz, Audio1_callchannel ; no
+ ld b, 0
+ ld hl, wChannelFlags1
add hl, bc
- bit 1, [hl]
+ bit BIT_CHANNEL_CALL, [hl]
jr nz, .returnFromCall
ld a, c
cp CH3
jr nc, .noiseOrSfxChannel
- jr .asm_923f
+ jr .disableChannelOutput
.noiseOrSfxChannel
- res 2, [hl]
- ld hl, wc036
+ res BIT_NOISE_OR_SFX, [hl]
+ ld hl, wChannelFlags2
add hl, bc
- res 0, [hl]
+ res BIT_EXECUTE_MUSIC, [hl]
cp CH6
- jr nz, .notSfxChannel3
+ jr nz, .skipSfxChannel3
+; restart hardware channel 3 (wave channel) output
ld a, $0
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
-.notSfxChannel3
+ ld [rNR30], a
+.skipSfxChannel3
jr nz, .asm_9222
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr z, .asm_9222
xor a
- ld [wc003], a
- jr .asm_923f
+ ld [wDisableChannelOutputWhenSfxEnds], a
+ jr .disableChannelOutput
.asm_9222
jr .asm_9248
.returnFromCall
@@ -203,10 +202,10 @@ Music2_endchannel: ; 0x91e6
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
push hl ; store current channel address
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld e, l
ld d, h
@@ -216,47 +215,47 @@ Music2_endchannel: ; 0x91e6
inc de
ld a, [de]
ld [hl], a ; loads channel address to return to
- jp Music2_endchannel
-.asm_923f
- ld hl, Unknown_9b1f
+ jp Audio1_endchannel
+.disableChannelOutput
+ ld hl, Audio1_HWChannelDisableMasks
add hl, bc
- ld a, [$ff25]
+ ld a, [rNR51]
and [hl]
- ld [$ff25], a
+ ld [rNR51], a
.asm_9248
- ld a, [wc02a]
- cp $14
+ ld a, [wChannelSoundIDs + CH4]
+ cp CRY_SFX_START
jr nc, .asm_9251
- jr .asm_926e
+ jr .skipCry
.asm_9251
- ld a, [wc02a]
- cp $86
- jr z, .asm_926e
- jr c, .asm_925c
- jr .asm_926e
-.asm_925c
+ ld a, [wChannelSoundIDs + CH4]
+ cp CRY_SFX_END
+ jr z, .skipCry
+ jr c, .cry
+ jr .skipCry
+.cry
ld a, c
cp CH4
jr z, .asm_9265
- call Func_96c7
+ call Audio1_GoBackOneCommandIfCry
ret c
.asm_9265
- ld a, [wc005]
- ld [$ff24], a
+ ld a, [wSavedVolume]
+ ld [rNR50], a
xor a
- ld [wc005], a
-.asm_926e
- ld hl, wc026
+ ld [wSavedVolume], a
+.skipCry
+ ld hl, wChannelSoundIDs
add hl, bc
ld [hl], b
ret
-Music2_callchannel: ; 0x9274
+Audio1_callchannel: ; 0x9274
cp $fd ; is this command a callchannel?
- jp nz, Music2_loopchannel ; no
- call Music2_GetNextMusicByte ; yes
+ jp nz, Audio1_loopchannel ; no
+ call Audio1_GetNextMusicByte
push af
- call Music2_GetNextMusicByte
+ call Audio1_GetNextMusicByte
ld d, a
pop af
ld e, a
@@ -265,10 +264,10 @@ Music2_callchannel: ; 0x9274
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
push hl
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld e, l
ld d, h
@@ -283,77 +282,77 @@ Music2_callchannel: ; 0x9274
inc hl
ld [hl], d ; overwrite current address with pointer
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
- set 1, [hl] ; set the call flag
- jp Music2_endchannel
+ set BIT_CHANNEL_CALL, [hl] ; set the call flag
+ jp Audio1_endchannel
-Music2_loopchannel: ; 0x92a9
+Audio1_loopchannel: ; 0x92a9
cp $fe ; is this command a loopchannel?
- jp nz, Music2_notetype ; no
- call Music2_GetNextMusicByte ; yes
+ jp nz, Audio1_notetype ; no
+ call Audio1_GetNextMusicByte
ld e, a
and a
jr z, .infiniteLoop
- ld b, $0
- ld hl, wc0be
+ ld b, 0
+ ld hl, wChannelLoopCounters
add hl, bc
ld a, [hl]
cp e
jr nz, .loopAgain
ld a, $1 ; if no more loops to make,
ld [hl], a
- call Music2_GetNextMusicByte ; skip pointer
- call Music2_GetNextMusicByte
- jp Music2_endchannel
+ call Audio1_GetNextMusicByte ; skip pointer
+ call Audio1_GetNextMusicByte
+ jp Audio1_endchannel
.loopAgain ; inc loop count
inc a
ld [hl], a
; fall through
.infiniteLoop ; overwrite current address with pointer
- call Music2_GetNextMusicByte
+ call Audio1_GetNextMusicByte
push af
- call Music2_GetNextMusicByte
+ call Audio1_GetNextMusicByte
ld b, a
ld d, $0
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
pop af
ld [hli], a
ld [hl], b
- jp Music2_endchannel
+ jp Audio1_endchannel
-Music2_notetype: ; 0x92e4
+Audio1_notetype: ; 0x92e4
and $f0
cp $d0 ; is this command a notetype?
- jp nz, Music2_toggleperfectpitch ; no
- ld a, d ; yes
+ jp nz, Audio1_toggleperfectpitch ; no
+ ld a, d
and $f
ld b, $0
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, bc
ld [hl], a ; store low nibble as speed
ld a, c
cp CH3
jr z, .noiseChannel ; noise channel has 0 params
- call Music2_GetNextMusicByte
+ call Audio1_GetNextMusicByte
ld d, a
ld a, c
cp CH2
jr z, .musicChannel3
cp CH6
- jr nz, .notChannel3
- ld hl, wc0e7
- jr .sfxChannel3
+ jr nz, .skipChannel3
+ ld hl, wSfxWaveInstrument
+ jr .channel3
.musicChannel3
- ld hl, wc0e6
-.sfxChannel3
+ ld hl, wMusicWaveInstrument
+.channel3
ld a, d
and $f
- ld [hl], a ; store low nibble of param as duty
+ ld [hl], a ; store low nibble of param as wave instrument
ld a, d
and $30
sla a
@@ -362,273 +361,294 @@ Music2_notetype: ; 0x92e4
; if channel 3, store high nibble as volume
; else, store volume (high nibble) and fade (low nibble)
-.notChannel3
- ld b, $0
- ld hl, wc0de
+.skipChannel3
+ ld b, 0
+ ld hl, wChannelVolumes
add hl, bc
ld [hl], d
.noiseChannel
- jp Music2_endchannel
+ jp Audio1_endchannel
-Music2_toggleperfectpitch: ; 0x9323
+Audio1_toggleperfectpitch: ; 0x9323
ld a, d
cp $e8 ; is this command a toggleperfectpitch?
- jr nz, Music2_vibrato ; no
- ld b, $0 ; yes
- ld hl, wc02e
+ jr nz, Audio1_vibrato ; no
+ ld b, 0
+ ld hl, wChannelFlags1
add hl, bc
ld a, [hl]
xor $1
- ld [hl], a ; flip bit 0 of wc02e
- jp Music2_endchannel
+ ld [hl], a ; flip bit 0 of wChannelFlags1
+ jp Audio1_endchannel
-Music2_vibrato: ; 0x9335
+Audio1_vibrato: ; 0x9335
cp $ea ; is this command a vibrato?
- jr nz, Music2_pitchbend ; no
- call Music2_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wc04e
+ jr nz, Audio1_pitchbend ; no
+ call Audio1_GetNextMusicByte
+ ld b, 0
+ ld hl, wChannelVibratoDelayCounters
add hl, bc
ld [hl], a ; store delay
- ld hl, wc06e
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, bc
ld [hl], a ; store delay
- call Music2_GetNextMusicByte
+ call Audio1_GetNextMusicByte
ld d, a
+
+; The high nybble of the command byte is the extent of the vibrato.
+; Let n be the extent.
+; The upper nybble of the channel's byte in the wChannelVibratoExtents
+; array will store the extent above the note: (n / 2) + (n % 2).
+; The lower nybble will store the extent below the note: (n / 2).
+; These two values add to the total extent, n.
and $f0
swap a
- ld b, $0
- ld hl, wc056
+ ld b, 0
+ ld hl, wChannelVibratoExtents
add hl, bc
srl a
ld e, a
adc b
swap a
or e
- ld [hl], a ; store rate as both high and low nibbles
+ ld [hl], a
+
+; The low nybble of the command byte is the rate of the vibrato.
+; The high and low nybbles of the channel's byte in the wChannelVibratoRates
+; array are both initialised to this value because the high nybble is the
+; counter reload value and the low nybble is the counter itself, which should
+; start at its value upon reload.
ld a, d
and $f
ld d, a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, bc
swap a
or d
- ld [hl], a ; store depth as both high and low nibbles
- jp Music2_endchannel
+ ld [hl], a
+
+ jp Audio1_endchannel
-Music2_pitchbend: ; 0x936d
+Audio1_pitchbend: ; 0x936d
cp $eb ; is this command a pitchbend?
- jr nz, Music2_duty ; no
- call Music2_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wc076
+ jr nz, Audio1_duty ; no
+ call Audio1_GetNextMusicByte
+ ld b, 0
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
- ld [hl], a ; store first param
- call Music2_GetNextMusicByte
+ ld [hl], a
+ call Audio1_GetNextMusicByte
ld d, a
and $f0
swap a
ld b, a
ld a, d
and $f
- call Func_9858
- ld b, $0
- ld hl, wc0a6
+ call Audio1_CalculateFrequency
+ ld b, 0
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
- ld [hl], d ; store unknown part of second param
- ld hl, wc0ae
+ ld [hl], d
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
- ld [hl], e ; store unknown part of second param
- ld b, $0
- ld hl, wc02e
+ ld [hl], e
+ ld b, 0
+ ld hl, wChannelFlags1
add hl, bc
- set 4, [hl] ; set pitchbend flag
- call Music2_GetNextMusicByte
+ set BIT_PITCH_BEND_ON, [hl]
+ call Audio1_GetNextMusicByte
ld d, a
- jp Music2_notelength
+ jp Audio1_notelength
-Music2_duty: ; 0x93a5
+Audio1_duty: ; 0x93a5
cp $ec ; is this command a duty?
- jr nz, Music2_tempo ; no
- call Music2_GetNextMusicByte ; yes
+ jr nz, Audio1_tempo ; no
+ call Audio1_GetNextMusicByte
rrca
rrca
and $c0
- ld b, $0
- ld hl, wc03e
+ ld b, 0
+ ld hl, wChannelDuties
add hl, bc
ld [hl], a ; store duty
- jp Music2_endchannel
+ jp Audio1_endchannel
-Music2_tempo: ; 0x93ba
+Audio1_tempo: ; 0x93ba
cp $ed ; is this command a tempo?
- jr nz, Music2_stereopanning ; no
- ld a, c ; yes
+ jr nz, Audio1_stereopanning ; no
+ ld a, c
cp CH4
jr nc, .sfxChannel
- call Music2_GetNextMusicByte
- ld [wc0e8], a ; store first param
- call Music2_GetNextMusicByte
- ld [wc0e9], a ; store second param
+ call Audio1_GetNextMusicByte
+ ld [wMusicTempo], a ; store first param
+ call Audio1_GetNextMusicByte
+ ld [wMusicTempo + 1], a ; store second param
xor a
- ld [wc0ce], a ; clear RAM
- ld [wc0cf], a
- ld [wc0d0], a
- ld [wc0d1], a
+ ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM
+ ld [wChannelNoteDelayCountersFractionalPart + 1], a
+ ld [wChannelNoteDelayCountersFractionalPart + 2], a
+ ld [wChannelNoteDelayCountersFractionalPart + 3], a
jr .musicChannelDone
.sfxChannel
- call Music2_GetNextMusicByte
- ld [wc0ea], a ; store first param
- call Music2_GetNextMusicByte
- ld [wc0eb], a ; store second param
+ call Audio1_GetNextMusicByte
+ ld [wSfxTempo], a ; store first param
+ call Audio1_GetNextMusicByte
+ ld [wSfxTempo + 1], a ; store second param
xor a
- ld [wc0d2], a ; clear RAM
- ld [wc0d3], a
- ld [wc0d4], a
- ld [wc0d5], a
+ ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM
+ ld [wChannelNoteDelayCountersFractionalPart + 5], a
+ ld [wChannelNoteDelayCountersFractionalPart + 6], a
+ ld [wChannelNoteDelayCountersFractionalPart + 7], a
.musicChannelDone
- jp Music2_endchannel
+ jp Audio1_endchannel
-Music2_stereopanning: ; 0x93fa
+Audio1_stereopanning: ; 0x93fa
cp $ee ; is this command a stereopanning?
- jr nz, Music2_unknownmusic0xef ; no
- call Music2_GetNextMusicByte ; yes
- ld [wc004], a ; store panning
- jp Music2_endchannel
+ jr nz, Audio1_unknownmusic0xef ; no
+ call Audio1_GetNextMusicByte
+ ld [wStereoPanning], a ; store panning
+ jp Audio1_endchannel
; this appears to never be used
-Music2_unknownmusic0xef ; 0x9407
+Audio1_unknownmusic0xef: ; 0x9407
cp $ef ; is this command an unknownmusic0xef?
- jr nz, Music2_dutycycle ; no
- call Music2_GetNextMusicByte ; yes
+ jr nz, Audio1_dutycycle ; no
+ call Audio1_GetNextMusicByte
push bc
- call Func_9876
+ call Audio1_PlaySound
pop bc
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr nz, .skip
- ld a, [wc02d]
- ld [wc003], a
+ ld a, [wChannelSoundIDs + CH7]
+ ld [wDisableChannelOutputWhenSfxEnds], a
xor a
- ld [wc02d], a
+ ld [wChannelSoundIDs + CH7], a
.skip
- jp Music2_endchannel
+ jp Audio1_endchannel
-Music2_dutycycle: ; 0x9426
+Audio1_dutycycle: ; 0x9426
cp $fc ; is this command a dutycycle?
- jr nz, Music2_volume ; no
- call Music2_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wc046
+ jr nz, Audio1_volume ; no
+ call Audio1_GetNextMusicByte
+ ld b, 0
+ ld hl, wChannelDutyCycles
add hl, bc
ld [hl], a ; store full cycle
and $c0
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld [hl], a ; store first duty
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
- set 6, [hl] ; set dutycycle flag
- jp Music2_endchannel
+ set BIT_ROTATE_DUTY, [hl]
+ jp Audio1_endchannel
-Music2_volume: ; 0x9444
+Audio1_volume: ; 0x9444
cp $f0 ; is this command a volume?
- jr nz, Music2_executemusic ; no
- call Music2_GetNextMusicByte ; yes
- ld [$ff24], a ; store volume
- jp Music2_endchannel
+ jr nz, Audio1_executemusic ; no
+ call Audio1_GetNextMusicByte
+ ld [rNR50], a ; store volume
+ jp Audio1_endchannel
-Music2_executemusic: ; 0x9450
+Audio1_executemusic: ; 0x9450
cp $f8 ; is this command an executemusic?
- jr nz, Music2_octave ; no
- ld b, $0 ; yes
- ld hl, wc036
+ jr nz, Audio1_octave ; no
+ ld b, $0
+ ld hl, wChannelFlags2
add hl, bc
- set 0, [hl]
- jp Music2_endchannel
+ set BIT_EXECUTE_MUSIC, [hl]
+ jp Audio1_endchannel
-Music2_octave: ; 0x945f
+Audio1_octave: ; 0x945f
and $f0
cp $e0 ; is this command an octave?
- jr nz, Music2_unknownsfx0x20 ; no
- ld hl, wc0d6 ; yes
- ld b, $0
+ jr nz, Audio1_unknownsfx0x20 ; no
+ ld hl, wChannelOctaves
+ ld b, 0
add hl, bc
ld a, d
and $f
ld [hl], a ; store low nibble as octave
- jp Music2_endchannel
+ jp Audio1_endchannel
-Music2_unknownsfx0x20: ; 0x9472
+Audio1_unknownsfx0x20: ; 0x9472
cp $20 ; is this command an unknownsfx0x20?
- jr nz, Music2_unknownsfx0x10 ; no
+ jr nz, Audio1_unknownsfx0x10
ld a, c
cp CH3 ; is this a noise or sfx channel?
- jr c, Music2_unknownsfx0x10 ; no
- ld b, $0
- ld hl, wc036
+ jr c, Audio1_unknownsfx0x10 ; no
+ ld b, 0
+ ld hl, wChannelFlags2
add hl, bc
- bit 0, [hl]
- jr nz, Music2_unknownsfx0x10 ; no
- call Music2_notelength ; yes
+ bit BIT_EXECUTE_MUSIC, [hl] ; is executemusic being used?
+ jr nz, Audio1_unknownsfx0x10 ; yes
+ call Audio1_notelength
+
+; This code seems to do the same thing as what Audio1_ApplyDutyAndSoundLength
+; does below.
ld d, a
- ld b, $0
- ld hl, wc03e
+ ld b, 0
+ ld hl, wChannelDuties
add hl, bc
ld a, [hl]
or d
ld d, a
- ld b, $1
- call Func_9838
+ ld b, REG_DUTY_SOUND_LEN
+ call Audio1_GetRegisterPointer
ld [hl], d
- call Music2_GetNextMusicByte
+
+ call Audio1_GetNextMusicByte
ld d, a
- ld b, $2
- call Func_9838
+ ld b, REG_VOLUME_ENVELOPE
+ call Audio1_GetRegisterPointer
ld [hl], d
- call Music2_GetNextMusicByte
+ call Audio1_GetNextMusicByte
ld e, a
ld a, c
cp CH7
- ld a, $0
- jr z, .sfxNoiseChannel ; only two params for noise channel
+ ld a, 0
+ jr z, .skip
+; Channels 1 through 3 have 2 registers that control frequency, but the noise
+; channel a single register (the polynomial counter) that controls frequency,
+; so this command has one less byte on the noise channel.
push de
- call Music2_GetNextMusicByte
+ call Audio1_GetNextMusicByte
pop de
-.sfxNoiseChannel
+.skip
ld d, a
push de
- call Func_9629
- call Func_95f8
+ call Audio1_ApplyDutyAndSoundLength
+ call Audio1_EnableChannelOutput
pop de
- call Func_964b
+ call Audio1_ApplyWavePatternAndFrequency
ret
-Music2_unknownsfx0x10:
+Audio1_unknownsfx0x10:
ld a, c
cp CH4
- jr c, Music2_note ; if not a sfx
+ jr c, Audio1_note ; if not a sfx
ld a, d
cp $10 ; is this command a unknownsfx0x10?
- jr nz, Music2_note ; no
+ jr nz, Audio1_note ; no
ld b, $0
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
- bit 0, [hl]
- jr nz, Music2_note ; no
- call Music2_GetNextMusicByte ; yes
- ld [$ff10], a
- jp Music2_endchannel
+ bit BIT_EXECUTE_MUSIC, [hl]
+ jr nz, Audio1_note ; no
+ call Audio1_GetNextMusicByte
+ ld [rNR10], a
+ jp Audio1_endchannel
-Music2_note:
+Audio1_note:
ld a, c
cp CH3
- jr nz, Music2_notelength ; if not noise channel
+ jr nz, Audio1_notelength ; if not noise channel
ld a, d
and $f0
cp $b0 ; is this command a dnote?
- jr z, Music2_dnote ; yes
- jr nc, Music2_notelength ; no
+ jr z, Audio1_dnote
+ jr nc, Audio1_notelength ; no
swap a
ld b, a
ld a, d
@@ -639,42 +659,42 @@ Music2_note:
push bc
jr asm_94fd
-Music2_dnote:
+Audio1_dnote:
ld a, d
and $f
push af
push bc
- call Music2_GetNextMusicByte ; get dnote instrument
+ call Audio1_GetNextMusicByte ; get dnote instrument
asm_94fd
ld d, a
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr nz, .asm_9508
ld a, d
- call Func_9876
+ call Audio1_PlaySound
.asm_9508
pop bc
pop de
-Music2_notelength: ; 0x950a
+Audio1_notelength: ; 0x950a
ld a, d
push af
and $f
inc a
- ld b, $0
+ ld b, 0
ld e, a ; store note length (in 16ths)
ld d, b
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, bc
ld a, [hl]
ld l, b
- call Func_9847
+ call Audio1_MultiplyAdd
ld a, c
cp CH4
jr nc, .sfxChannel
- ld a, [wc0e8]
+ ld a, [wMusicTempo]
ld d, a
- ld a, [wc0e9]
+ ld a, [wMusicTempo + 1]
ld e, a
jr .skip
.sfxChannel
@@ -682,216 +702,222 @@ Music2_notelength: ; 0x950a
ld e, $0
cp CH7
jr z, .skip ; if noise channel
- call Func_9693
- ld a, [wc0ea]
+ call Audio1_SetSfxTempo
+ ld a, [wSfxTempo]
ld d, a
- ld a, [wc0eb]
+ ld a, [wSfxTempo + 1]
ld e, a
.skip
- ld a, l
- ld b, $0
- ld hl, wc0ce
+ ld a, l ; a = note_length * note_speed
+ ld b, 0
+ ld hl, wChannelNoteDelayCountersFractionalPart
add hl, bc
ld l, [hl]
- call Func_9847
+ call Audio1_MultiplyAdd
ld e, l
- ld d, h
- ld hl, wc0ce
+ ld d, h ; de = note_delay_frac_part + (note_length * note_speed * tempo)
+ ld hl, wChannelNoteDelayCountersFractionalPart
add hl, bc
ld [hl], e
ld a, d
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, bc
ld [hl], a
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
- bit 0, [hl]
- jr nz, Music2_notepitch
- ld hl, wc02e
+ bit BIT_EXECUTE_MUSIC, [hl]
+ jr nz, Audio1_notepitch
+ ld hl, wChannelFlags1
add hl, bc
- bit 2, [hl]
- jr z, Music2_notepitch
+ bit BIT_NOISE_OR_SFX, [hl]
+ jr z, Audio1_notepitch
pop hl
ret
-Music2_notepitch: ; 0x9568
+Audio1_notepitch: ; 0x9568
pop af
and $f0
cp $c0 ; compare to rest
jr nz, .notRest
ld a, c
cp CH4
- jr nc, .sfxChannel
- ld hl, wc02a
+ jr nc, .next
+; If this isn't an SFX channel, try the corresponding SFX channel.
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
jr nz, .done
; fall through
-.sfxChannel
+.next
ld a, c
cp CH2
- jr z, .musicChannel3
+ jr z, .channel3
cp CH6
- jr nz, .notSfxChannel3
-.musicChannel3
- ld b, $0
- ld hl, Unknown_9b1f
+ jr nz, .notChannel3
+.channel3
+ ld b, 0
+ ld hl, Audio1_HWChannelDisableMasks
add hl, bc
- ld a, [$ff25]
+ ld a, [rNR51]
and [hl]
- ld [$ff25], a
+ ld [rNR51], a ; disable hardware channel 3's output
jr .done
-.notSfxChannel3
- ld b, $2
- call Func_9838
- ld a, $8
+.notChannel3
+ ld b, REG_VOLUME_ENVELOPE
+ call Audio1_GetRegisterPointer
+ ld a, $8 ; fade in sound
ld [hli], a
inc hl
- ld a, $80
+ ld a, $80 ; restart sound
ld [hl], a
.done
ret
.notRest
swap a
- ld b, $0
- ld hl, wc0d6
+ ld b, 0
+ ld hl, wChannelOctaves
add hl, bc
ld b, [hl]
- call Func_9858
- ld b, $0
- ld hl, wc02e
- add hl, bc
- bit 4, [hl]
- jr z, .asm_95b8
- call Func_978f
-.asm_95b8
+ call Audio1_CalculateFrequency
+ ld b, 0
+ ld hl, wChannelFlags1
+ add hl, bc
+ bit BIT_PITCH_BEND_ON, [hl]
+ jr z, .skipPitchBend
+ call Audio1_InitPitchBendVars
+.skipPitchBend
push de
ld a, c
cp CH4
- jr nc, .skip ; if sfx channel
- ld hl, wc02a
- ld d, $0
+ jr nc, .sfxChannel ; if sfx channel
+; If this isn't an SFX channel, try the corresponding SFX channel.
+ ld hl, wChannelSoundIDs + CH4
+ ld d, 0
ld e, a
add hl, de
ld a, [hl]
and a
- jr nz, .asm_95cb
- jr .skip
-.asm_95cb
+ jr nz, .noSfx
+ jr .sfxChannel
+.noSfx
pop de
ret
-.skip
- ld b, $0
- ld hl, wc0de
+.sfxChannel
+ ld b, 0
+ ld hl, wChannelVolumes
add hl, bc
ld d, [hl]
- ld b, $2
- call Func_9838
+ ld b, REG_VOLUME_ENVELOPE
+ call Audio1_GetRegisterPointer
ld [hl], d
- call Func_9629
- call Func_95f8
+ call Audio1_ApplyDutyAndSoundLength
+ call Audio1_EnableChannelOutput
pop de
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
- bit 0, [hl] ; has toggleperfectpitch been used?
- jr z, .skip2
- inc e ; if yes, increment the pitch by 1
- jr nc, .skip2
+ bit BIT_PERFECT_PITCH, [hl] ; has toggleperfectpitch been used?
+ jr z, .skipFrequencyInc
+ inc e ; if yes, increment the frequency by 1
+ jr nc, .skipFrequencyInc
inc d
-.skip2
- ld hl, wc066
+.skipFrequencyInc
+ ld hl, wChannelFrequencyLowBytes
add hl, bc
ld [hl], e
- call Func_964b
+ call Audio1_ApplyWavePatternAndFrequency
ret
-Func_95f8: ; 0x95f8
- ld b, $0
- ld hl, Unknown_9b27
+Audio1_EnableChannelOutput: ; 0x95f8
+ ld b, 0
+ ld hl, Audio1_HWChannelEnableMasks
add hl, bc
- ld a, [$ff25]
- or [hl]
+ ld a, [rNR51]
+ or [hl] ; set this channel's bits
ld d, a
ld a, c
cp CH7
- jr z, .sfxNoiseChannel
+ jr z, .noiseChannelOrNoSfx
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, wc02a
+; If this isn't an SFX channel, try the corresponding SFX channel.
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
jr nz, .skip
-.sfxNoiseChannel
- ld a, [wc004]
- ld hl, Unknown_9b27
+.noiseChannelOrNoSfx
+; If this is the SFX noise channel or a music channel whose corresponding
+; SFX channel is off, apply stereo panning.
+ ld a, [wStereoPanning]
+ ld hl, Audio1_HWChannelEnableMasks
add hl, bc
and [hl]
ld d, a
- ld a, [$ff25]
- ld hl, Unknown_9b1f
+ ld a, [rNR51]
+ ld hl, Audio1_HWChannelDisableMasks
add hl, bc
- and [hl]
- or d
+ and [hl] ; reset this channel's output bits
+ or d ; set this channel's output bits that enabled in [wStereoPanning]
ld d, a
.skip
ld a, d
- ld [$ff25], a
+ ld [rNR51], a
ret
-Func_9629: ; 0x9629
- ld b, $0
- ld hl, wc0b6
+Audio1_ApplyDutyAndSoundLength: ; 0x9629
+ ld b, 0
+ ld hl, wChannelNoteDelayCounters ; use the note delay as sound length
add hl, bc
ld d, [hl]
ld a, c
cp CH2
- jr z, .channel3 ; if music channel 3
+ jr z, .skipDuty ; if music channel 3
cp CH6
- jr z, .channel3 ; if sfx channel 3
+ jr z, .skipDuty ; if sfx channel 3
+; include duty (except on channel 3 which doesn't have it)
ld a, d
and $3f
ld d, a
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld a, [hl]
or d
ld d, a
-.channel3
- ld b, $1
- call Func_9838
+.skipDuty
+ ld b, REG_DUTY_SOUND_LEN
+ call Audio1_GetRegisterPointer
ld [hl], d
ret
-Func_964b: ; 0x964b
+Audio1_ApplyWavePatternAndFrequency: ; 0x964b
ld a, c
cp CH2
jr z, .channel3
cp CH6
- jr nz, .notSfxChannel3
+ jr nz, .notChannel3
; fall through
.channel3
push de
- ld de, wc0e6
+ ld de, wMusicWaveInstrument
cp CH2
- jr z, .musicChannel3
- ld de, wc0e7
-.musicChannel3
+ jr z, .next
+ ld de, wSfxWaveInstrument
+.next
ld a, [de]
add a
- ld d, $0
+ ld d, 0
ld e, a
- ld hl, Music2_WavePointers
+ ld hl, Audio1_WavePointers
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, $ff30
+ ld hl, $ff30 ; wave pattern RAM
ld b, $f
- ld a, $0
- ld [$ff1a], a
+ ld a, $0 ; stop hardware channel 3
+ ld [rNR30], a
.loop
ld a, [de]
inc de
@@ -900,152 +926,155 @@ Func_964b: ; 0x964b
dec b
and a
jr nz, .loop
- ld a, $80
- ld [$ff1a], a
+ ld a, $80 ; start hardware channel 3
+ ld [rNR30], a
pop de
-.notSfxChannel3
+.notChannel3
ld a, d
- or $80
- and $c7
+ or $80 ; use counter mode (i.e. disable output when the counter reaches 0)
+ and $c7 ; zero the unused bits in the register
ld d, a
- ld b, $3
- call Func_9838
- ld [hl], e
+ ld b, REG_FREQUENCY_LO
+ call Audio1_GetRegisterPointer
+ ld [hl], e ; store frequency low byte
inc hl
- ld [hl], d
- call Func_96b5
+ ld [hl], d ; store frequency high byte
+ call Audio1_ApplyFrequencyModifier
ret
-Func_9693: ; 0x9693
- call Func_96e5
- jr nc, .asm_96ab
- ld d, $0
- ld a, [wc0f2]
+Audio1_SetSfxTempo: ; 0x9693
+ call Audio1_IsCry
+ jr nc, .notCry
+ ld d, 0
+ ld a, [wTempoModifier]
add $80
- jr nc, .asm_96a2
+ jr nc, .next
inc d
-.asm_96a2
- ld [wc0eb], a
+.next
+ ld [wSfxTempo + 1], a
ld a, d
- ld [wc0ea], a
- jr .asm_96b4
-.asm_96ab
+ ld [wSfxTempo], a
+ jr .done
+.notCry
xor a
- ld [wc0eb], a
+ ld [wSfxTempo + 1], a
ld a, $1
- ld [wc0ea], a
-.asm_96b4
+ ld [wSfxTempo], a
+.done
ret
-Func_96b5: ; 0x96b5
- call Func_96e5
- jr nc, .asm_96c6
- ld a, [wc0f1]
+Audio1_ApplyFrequencyModifier: ; 0x96b5
+ call Audio1_IsCry
+ jr nc, .done
+; if playing a cry, add the cry's frequency modifier
+ ld a, [wFrequencyModifier]
add e
- jr nc, .asm_96c1
+ jr nc, .noCarry
inc d
-.asm_96c1
+.noCarry
dec hl
ld e, a
ld [hl], e
inc hl
ld [hl], d
-.asm_96c6
+.done
ret
-Func_96c7: ; 0x96c7
- call Func_96e5
- jr nc, .asm_96e2
- ld hl, wc006
+Audio1_GoBackOneCommandIfCry: ; 0x96c7
+ call Audio1_IsCry
+ jr nc, .done
+ ld hl, wChannelCommandPointers
ld e, c
- ld d, $0
+ ld d, 0
sla e
rl d
add hl, de
ld a, [hl]
- sub $1
+ sub 1
ld [hl], a
inc hl
ld a, [hl]
- sbc $0
+ sbc 0
ld [hl], a
scf
ret
-.asm_96e2
+.done
scf
ccf
ret
-Func_96e5: ; 0x96e5
- ld a, [wc02a]
- cp $14
- jr nc, .asm_96ee
- jr .asm_96f4
-.asm_96ee
- cp $86
- jr z, .asm_96f4
- jr c, .asm_96f7
-.asm_96f4
+Audio1_IsCry: ; 0x96e5
+; Returns whether the currently playing audio is a cry in carry.
+ ld a, [wChannelSoundIDs + CH4]
+ cp CRY_SFX_START
+ jr nc, .next
+ jr .no
+.next
+ cp CRY_SFX_END
+ jr z, .no
+ jr c, .yes
+.no
scf
ccf
ret
-.asm_96f7
+.yes
scf
ret
-Music2_ApplyPitchBend: ; 0x96f9
- ld hl, wc02e
+Audio1_ApplyPitchBend: ; 0x96f9
+ ld hl, wChannelFlags1
add hl, bc
- bit 5, [hl]
- jp nz, .asm_9740
- ld hl, wc09e
+ bit BIT_PITCH_BEND_DECREASING, [hl]
+ jp nz, .frequencyDecreasing
+; frequency increasing
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld e, [hl]
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
ld l, [hl]
ld h, b
add hl, de
ld d, h
ld e, l
- ld hl, wc08e
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, bc
push hl
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
ld a, [hl]
pop hl
add [hl]
ld [hl], a
- ld a, $0
+ ld a, 0
adc e
ld e, a
- ld a, $0
+ ld a, 0
adc d
ld d, a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, [hl]
cp d
- jp c, .asm_9786
- jr nz, .asm_9773
- ld hl, wc0ae
+ jp c, .reachedTargetFrequency
+ jr nz, .applyUpdatedFrequency
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, [hl]
cp e
- jp c, .asm_9786
- jr .asm_9773
-.asm_9740
- ld hl, wc09e
+ jp c, .reachedTargetFrequency
+ jr .applyUpdatedFrequency
+.frequencyDecreasing
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld a, [hl]
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
ld e, [hl]
sub e
@@ -1053,7 +1082,7 @@ Music2_ApplyPitchBend: ; 0x96f9
ld a, d
sbc b
ld d, a
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
ld a, [hl]
add a
@@ -1064,129 +1093,140 @@ Music2_ApplyPitchBend: ; 0x96f9
ld a, d
sbc b
ld d, a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, d
cp [hl]
- jr c, .asm_9786
- jr nz, .asm_9773
- ld hl, wc0ae
+ jr c, .reachedTargetFrequency
+ jr nz, .applyUpdatedFrequency
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, e
cp [hl]
- jr c, .asm_9786
-.asm_9773
- ld hl, wc09e
+ jr c, .reachedTargetFrequency
+.applyUpdatedFrequency
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld [hl], e
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld [hl], d
- ld b, $3
- call Func_9838
+ ld b, REG_FREQUENCY_LO
+ call Audio1_GetRegisterPointer
ld a, e
ld [hli], a
ld [hl], d
ret
-.asm_9786
- ld hl, wc02e
+.reachedTargetFrequency
+; Turn off pitch bend when the target frequency has been reached.
+ ld hl, wChannelFlags1
add hl, bc
- res 4, [hl]
- res 5, [hl]
+ res BIT_PITCH_BEND_ON, [hl]
+ res BIT_PITCH_BEND_DECREASING, [hl]
ret
-Func_978f: ; 0x978f
- ld hl, wc096
+Audio1_InitPitchBendVars: ; 0x978f
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld [hl], d
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld [hl], e
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, bc
ld a, [hl]
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
sub [hl]
- jr nc, .asm_97a7
- ld a, $1
-.asm_97a7
+ jr nc, .next
+ ld a, 1
+.next
ld [hl], a
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, e
sub [hl]
ld e, a
ld a, d
sbc b
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
sub [hl]
- jr c, .asm_97c3
+ jr c, .targetFrequencyGreater
ld d, a
- ld b, $0
- ld hl, wc02e
+ ld b, 0
+ ld hl, wChannelFlags1
add hl, bc
- set 5, [hl]
- jr .asm_97e6
-.asm_97c3
- ld hl, wc096
+ set BIT_PITCH_BEND_DECREASING, [hl]
+ jr .next2
+.targetFrequencyGreater
+; If the target frequency is greater, subtract the current frequency from
+; the target frequency to get the absolute difference.
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld e, [hl]
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, [hl]
sub e
ld e, a
+
+; Bug. Instead of borrowing from the high byte of the target frequency as it
+; should, it borrows from the high byte of the current frequency instead.
+; This means that the result will be 0x200 greater than it should be if the
+; low byte of the current frequency is greater than the low byte of the
+; target frequency.
ld a, d
sbc b
ld d, a
- ld hl, wc0a6
+
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, [hl]
sub d
ld d, a
- ld b, $0
- ld hl, wc02e
+ ld b, 0
+ ld hl, wChannelFlags1
add hl, bc
- res 5, [hl]
-.asm_97e6
- ld hl, wc076
+ res BIT_PITCH_BEND_DECREASING, [hl]
+
+.next2
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
-.asm_97ea
+.divideLoop
inc b
ld a, e
sub [hl]
ld e, a
- jr nc, .asm_97ea
+ jr nc, .divideLoop
ld a, d
and a
- jr z, .asm_97f8
+ jr z, .doneDividing
dec a
ld d, a
- jr .asm_97ea
-.asm_97f8
- ld a, e
+ jr .divideLoop
+.doneDividing
+ ld a, e ; a = remainder - dividend
add [hl]
- ld d, b
- ld b, $0
- ld hl, wc07e
+ ld d, b ; d = quotient + 1
+ ld b, 0
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
- ld [hl], d
- ld hl, wc086
+ ld [hl], d ; store quotient + 1
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
- ld [hl], a
- ld hl, wc08e
+ ld [hl], a ; store remainder - dividend
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, bc
- ld [hl], a
+ ld [hl], a ; store remainder - dividend
ret
-Music2_ApplyDutyCycle: ; 0x980d
- ld b, $0
- ld hl, wc046
+Audio1_ApplyDutyCycle: ; 0x980d
+ ld b, 0
+ ld hl, wChannelDutyCycles
add hl, bc
ld a, [hl]
rlca
@@ -1194,20 +1234,20 @@ Music2_ApplyDutyCycle: ; 0x980d
ld [hl], a
and $c0
ld d, a
- ld b, $1
- call Func_9838
+ ld b, REG_DUTY_SOUND_LEN
+ call Audio1_GetRegisterPointer
ld a, [hl]
and $3f
or d
ld [hl], a
ret
-Music2_GetNextMusicByte: ; 0x9825
- ld d, $0
+Audio1_GetNextMusicByte: ; 0x9825
+ ld d, 0
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
ld a, [hli]
ld e, a
@@ -1220,9 +1260,10 @@ Music2_GetNextMusicByte: ; 0x9825
ld [hl], d
ret
-Func_9838: ; 0x9838
+Audio1_GetRegisterPointer: ; 0x9838
+; hl = address of hardware sound register b for software channel c
ld a, c
- ld hl, Unknown_9b17
+ ld hl, Audio1_HWChannelBaseAddresses
add l
jr nc, .noCarry
inc h
@@ -1234,13 +1275,14 @@ Func_9838: ; 0x9838
ld h, $ff
ret
-Func_9847: ; 0x9847
- ld h, $0
+Audio1_MultiplyAdd: ; 0x9847
+; hl = l + (a * de)
+ ld h, 0
.loop
srl a
- jr nc, .noCarry
+ jr nc, .skipAdd
add hl, de
-.noCarry
+.skipAdd
sla e
rl d
and a
@@ -1249,150 +1291,152 @@ Func_9847: ; 0x9847
.done
ret
-Func_9858: ; 0x9858
- ld h, $0
+Audio1_CalculateFrequency: ; 0x9858
+; return the frequency for note a, octave b in de
+ ld h, 0
ld l, a
add hl, hl
ld d, h
ld e, l
- ld hl, Music2_Pitches
+ ld hl, Audio1_Pitches
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld a, b
.loop
- cp $7
+ cp 7
jr z, .done
sra d
rr e
inc a
jr .loop
.done
- ld a, $8
+ ld a, 8
add d
ld d, a
ret
-Func_9876:: ; 0x9876
- ld [wc001], a
+Audio1_PlaySound:: ; 0x9876
+ ld [wSoundID], a
cp $ff
- jp z, Func_9a34
- cp $b9
- jp z, Func_994e
- jp c, Func_994e
+ jp z, .stopAllAudio
+ cp MAX_SFX_ID
+ jp z, .playSfx
+ jp c, .playSfx
cp $fe
- jr z, .asm_988d
- jp nc, Func_994e
-.asm_988d
+ jr z, .playMusic
+ jp nc, .playSfx
+
+.playMusic
xor a
- ld [wc000], a
- ld [wc003], a
- ld [wc0e9], a
- ld [wc0e6], a
- ld [wc0e7], a
+ ld [wUnusedC000], a
+ ld [wDisableChannelOutputWhenSfxEnds], a
+ ld [wMusicTempo + 1], a
+ ld [wMusicWaveInstrument], a
+ ld [wSfxWaveInstrument], a
ld d, $8
- ld hl, wc016
- call FillMusicRAM2
- ld hl, wc006
- call FillMusicRAM2
+ ld hl, wChannelReturnAddresses
+ call .FillMem
+ ld hl, wChannelCommandPointers
+ call .FillMem
ld d, $4
- ld hl, wc026
- call FillMusicRAM2
- ld hl, wc02e
- call FillMusicRAM2
- ld hl, wc03e
- call FillMusicRAM2
- ld hl, wc046
- call FillMusicRAM2
- ld hl, wc04e
- call FillMusicRAM2
- ld hl, wc056
- call FillMusicRAM2
- ld hl, wc05e
- call FillMusicRAM2
- ld hl, wc066
- call FillMusicRAM2
- ld hl, wc06e
- call FillMusicRAM2
- ld hl, wc036
- call FillMusicRAM2
- ld hl, wc076
- call FillMusicRAM2
- ld hl, wc07e
- call FillMusicRAM2
- ld hl, wc086
- call FillMusicRAM2
- ld hl, wc08e
- call FillMusicRAM2
- ld hl, wc096
- call FillMusicRAM2
- ld hl, wc09e
- call FillMusicRAM2
- ld hl, wc0a6
- call FillMusicRAM2
- ld hl, wc0ae
- call FillMusicRAM2
+ ld hl, wChannelSoundIDs
+ call .FillMem
+ ld hl, wChannelFlags1
+ call .FillMem
+ ld hl, wChannelDuties
+ call .FillMem
+ ld hl, wChannelDutyCycles
+ call .FillMem
+ ld hl, wChannelVibratoDelayCounters
+ call .FillMem
+ ld hl, wChannelVibratoExtents
+ call .FillMem
+ ld hl, wChannelVibratoRates
+ call .FillMem
+ ld hl, wChannelFrequencyLowBytes
+ call .FillMem
+ ld hl, wChannelVibratoDelayCounterReloadValues
+ call .FillMem
+ ld hl, wChannelFlags2
+ call .FillMem
+ ld hl, wChannelPitchBendLengthModifiers
+ call .FillMem
+ ld hl, wChannelPitchBendFrequencySteps
+ call .FillMem
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
+ call .FillMem
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
+ call .FillMem
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
+ call .FillMem
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
+ call .FillMem
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
+ call .FillMem
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
+ call .FillMem
ld a, $1
- ld hl, wc0be
- call FillMusicRAM2
- ld hl, wc0b6
- call FillMusicRAM2
- ld hl, wc0c6
- call FillMusicRAM2
- ld [wc0e8], a
+ ld hl, wChannelLoopCounters
+ call .FillMem
+ ld hl, wChannelNoteDelayCounters
+ call .FillMem
+ ld hl, wChannelNoteSpeeds
+ call .FillMem
+ ld [wMusicTempo], a
ld a, $ff
- ld [wc004], a
+ ld [wStereoPanning], a
xor a
- ld [$ff24], a
+ ld [rNR50], a
ld a, $8
- ld [$ff10], a
- ld a, $0
- ld [$ff25], a
+ ld [rNR10], a
+ ld a, 0
+ ld [rNR51], a
xor a
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $77
- ld [$ff24], a
- jp Func_9a8f
+ ld [rNR50], a
+ jp .playSoundCommon
-Func_994e: ; 0x994e
+.playSfx
ld l, a
ld e, a
- ld h, $0
+ ld h, 0
ld d, h
add hl, hl
add hl, de
- ld de, SFX_Headers_02
+ ld de, SFX_Headers_1
add hl, de
ld a, h
- ld [wc0ec], a
+ ld [wSfxHeaderPointer], a
ld a, l
- ld [wc0ed], a
+ ld [wSfxHeaderPointer + 1], a
ld a, [hl]
and $c0
rlca
rlca
ld c, a
-.asm_9967
+.sfxChannelLoop
ld d, c
ld a, c
add a
add c
ld c, a
- ld b, $0
- ld a, [wc0ec]
+ ld b, 0
+ ld a, [wSfxHeaderPointer]
ld h, a
- ld a, [wc0ed]
+ ld a, [wSfxHeaderPointer + 1]
ld l, a
add hl, bc
ld c, d
ld a, [hl]
and $f
- ld e, a
- ld d, $0
- ld hl, wc026
+ ld e, a ; software channel ID
+ ld d, 0
+ ld hl, wChannelSoundIDs
add hl, de
ld a, [hl]
and a
@@ -1400,7 +1444,7 @@ Func_994e: ; 0x994e
ld a, e
cp $7
jr nz, .asm_999a
- ld a, [wc001]
+ ld a, [wSoundID]
cp $14
jr nc, .asm_9993
ret
@@ -1410,7 +1454,7 @@ Func_994e: ; 0x994e
jr z, .asm_99a3
jr c, .asm_99a3
.asm_999a
- ld a, [wc001]
+ ld a, [wSoundID]
cp [hl]
jr z, .asm_99a3
jr c, .asm_99a3
@@ -1423,132 +1467,132 @@ Func_994e: ; 0x994e
add hl, hl
ld d, h
ld e, l
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld [hli], a
ld [hl], a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
ld [hli], a
ld [hl], a
pop de
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, de
ld [hl], a
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, de
ld [hl], a
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, de
ld [hl], a
- ld hl, wc046
+ ld hl, wChannelDutyCycles
add hl, de
ld [hl], a
- ld hl, wc04e
+ ld hl, wChannelVibratoDelayCounters
add hl, de
ld [hl], a
- ld hl, wc056
+ ld hl, wChannelVibratoExtents
add hl, de
ld [hl], a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, de
ld [hl], a
- ld hl, wc066
+ ld hl, wChannelFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc06e
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, de
ld [hl], a
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, de
ld [hl], a
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, de
ld [hl], a
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, de
ld [hl], a
- ld hl, wc08e
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, de
ld [hl], a
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, de
ld [hl], a
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, de
ld [hl], a
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, de
ld [hl], a
ld a, $1
- ld hl, wc0be
+ ld hl, wChannelLoopCounters
add hl, de
ld [hl], a
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, de
ld [hl], a
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, de
ld [hl], a
ld a, e
- cp $4
+ cp CH4
jr nz, .asm_9a2b
ld a, $8
- ld [$ff10], a
+ ld [rNR10], a ; sweep off
.asm_9a2b
ld a, c
and a
- jp z, Func_9a8f
+ jp z, .playSoundCommon
dec c
- jp .asm_9967
+ jp .sfxChannelLoop
-Func_9a34: ; 0x9a34
+.stopAllAudio
ld a, $80
- ld [$ff26], a
- ld [$ff1a], a
+ ld [rNR52], a ; sound hardware on
+ ld [rNR30], a ; wave playback on
xor a
- ld [$ff25], a
- ld [$ff1c], a
+ ld [rNR51], a ; no sound output
+ ld [rNR32], a ; mute channel 3 (wave channel)
ld a, $8
- ld [$ff10], a
- ld [$ff12], a
- ld [$ff17], a
- ld [$ff21], a
+ ld [rNR10], a ; sweep off
+ ld [rNR12], a ; mute channel 1 (pulse channel 1)
+ ld [rNR22], a ; mute channel 2 (pulse channel 2)
+ ld [rNR42], a ; mute channel 4 (noise channel)
ld a, $40
- ld [$ff14], a
- ld [$ff19], a
- ld [$ff23], a
+ ld [rNR14], a ; counter mode
+ ld [rNR24], a
+ ld [rNR44], a
ld a, $77
- ld [$ff24], a
+ ld [rNR50], a ; full volume
xor a
- ld [wc000], a
- ld [wc003], a
- ld [wc002], a
- ld [wc0e9], a
- ld [wc0eb], a
- ld [wc0e6], a
- ld [wc0e7], a
+ ld [wUnusedC000], a
+ ld [wDisableChannelOutputWhenSfxEnds], a
+ ld [wMuteAudioAndPauseMusic], a
+ ld [wMusicTempo + 1], a
+ ld [wSfxTempo + 1], a
+ ld [wMusicWaveInstrument], a
+ ld [wSfxWaveInstrument], a
ld d, $a0
- ld hl, wc006
- call FillMusicRAM2
+ ld hl, wChannelCommandPointers
+ call .FillMem
ld a, $1
ld d, $18
- ld hl, wc0b6
- call FillMusicRAM2
- ld [wc0e8], a
- ld [wc0ea], a
+ ld hl, wChannelNoteDelayCounters
+ call .FillMem
+ ld [wMusicTempo], a
+ ld [wSfxTempo], a
ld a, $ff
- ld [wc004], a
+ ld [wStereoPanning], a
ret
; fills d bytes at hl with a
-FillMusicRAM2: ; 0x9a89
+.FillMem
ld b, d
.loop
ld [hli], a
@@ -1556,19 +1600,19 @@ FillMusicRAM2: ; 0x9a89
jr nz, .loop
ret
-Func_9a8f: ; 0x9a8f
- ld a, [wc001]
+.playSoundCommon
+ ld a, [wSoundID]
ld l, a
ld e, a
- ld h, $0
+ ld h, 0
ld d, h
add hl, hl
add hl, de
- ld de, SFX_Headers_02
+ ld de, SFX_Headers_1
add hl, de
ld e, l
ld d, h
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld a, [de] ; get channel number
ld b, a
rlca
@@ -1580,31 +1624,31 @@ Func_9a8f: ; 0x9a8f
ld b, c
inc b
inc de
- ld c, $0
-.asm_9ab1
+ ld c, 0
+.commandPointerLoop
cp c
- jr z, .asm_9ab9
+ jr z, .next
inc c
inc hl
inc hl
- jr .asm_9ab1
-.asm_9ab9
+ jr .commandPointerLoop
+.next
push hl
push bc
push af
- ld b, $0
+ ld b, 0
ld c, a
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, bc
- ld a, [wc001]
+ ld a, [wSoundID]
ld [hl], a
pop af
- cp $3
- jr c, .asm_9ad2
- ld hl, wc02e
+ cp CH3
+ jr c, .skipSettingFlag
+ ld hl, wChannelFlags1
add hl, bc
- set 2, [hl]
-.asm_9ad2
+ set BIT_NOISE_OR_SFX, [hl]
+.skipSettingFlag
pop bc
pop hl
ld a, [de] ; get channel pointer
@@ -1619,54 +1663,55 @@ Func_9a8f: ; 0x9a8f
and a
ld a, [de]
inc de
- jr nz, .asm_9ab1
- ld a, [wc001]
- cp $14
+ jr nz, .commandPointerLoop
+ ld a, [wSoundID]
+ cp CRY_SFX_START
jr nc, .asm_9aeb
- jr .asm_9b15
+ jr .done
.asm_9aeb
- ld a, [wc001]
- cp $86
- jr z, .asm_9b15
- jr c, .asm_9af6
- jr .asm_9b15
-.asm_9af6
- ld hl, wc02a
+ ld a, [wSoundID]
+ cp CRY_SFX_END
+ jr z, .done
+ jr c, .cry
+ jr .done
+.cry
+ ld hl, wChannelSoundIDs + CH4
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld hl, wc012 ; sfx noise channel pointer
- ld de, Noise2_endchannel
+ ld hl, wChannelCommandPointers + CH6 * 2 ; sfx wave channel pointer
+ ld de, Audio1_CryEndchannel
ld [hl], e
inc hl
ld [hl], d ; overwrite pointer to point to endchannel
- ld a, [wc005]
+ ld a, [wSavedVolume]
and a
- jr nz, .asm_9b15
- ld a, [$ff24]
- ld [wc005], a
+ jr nz, .done
+ ld a, [rNR50]
+ ld [wSavedVolume], a
ld a, $77
- ld [$ff24], a
-.asm_9b15
+ ld [rNR50], a ; full volume
+.done
ret
-Noise2_endchannel: ; 0x9b16
+Audio1_CryEndchannel: ; 0x9b16
endchannel
-Unknown_9b17: ; 0x9b17
- db $10, $15, $1A, $1F ; channels 0-3
- db $10, $15, $1A, $1F ; channels 4-7
+Audio1_HWChannelBaseAddresses: ; 0x9b17
+; the low bytes of each HW channel's base address
+ db HW_CH1_BASE, HW_CH2_BASE, HW_CH3_BASE, HW_CH4_BASE ; channels 0-3
+ db HW_CH1_BASE, HW_CH2_BASE, HW_CH3_BASE, HW_CH4_BASE ; channels 4-7
-Unknown_9b1f: ; 0x9b1f
- db $EE, $DD, $BB, $77 ; channels 0-3
- db $EE, $DD, $BB, $77 ; channels 4-7
+Audio1_HWChannelDisableMasks: ; 0x9b1f
+ db HW_CH1_DISABLE_MASK, HW_CH2_DISABLE_MASK, HW_CH3_DISABLE_MASK, HW_CH4_DISABLE_MASK ; channels 0-3
+ db HW_CH1_DISABLE_MASK, HW_CH2_DISABLE_MASK, HW_CH3_DISABLE_MASK, HW_CH4_DISABLE_MASK ; channels 4-7
-Unknown_9b27: ; 0x9b27
- db $11, $22, $44, $88 ; channels 0-3
- db $11, $22, $44, $88 ; channels 4-7
+Audio1_HWChannelEnableMasks: ; 0x9b27
+ db HW_CH1_ENABLE_MASK, HW_CH2_ENABLE_MASK, HW_CH3_ENABLE_MASK, HW_CH4_ENABLE_MASK ; channels 0-3
+ db HW_CH1_ENABLE_MASK, HW_CH2_ENABLE_MASK, HW_CH3_ENABLE_MASK, HW_CH4_ENABLE_MASK ; channels 4-7
-Music2_Pitches: ; 0x9b2f
+Audio1_Pitches: ; 0x9b2f
dw $F82C ; C_
dw $F89D ; C#
dw $F907 ; D_
diff --git a/audio/engine_2.asm b/audio/engine_2.asm
index 067ecc0c..e70a305f 100644
--- a/audio/engine_2.asm
+++ b/audio/engine_2.asm
@@ -1,10 +1,10 @@
; The second of three duplicated sound engines.
-Music8_UpdateMusic:: ; 21879 (8:5879)
+Audio2_UpdateMusic:: ; 21879 (8:5879)
ld c, CH0
.loop
ld b, $0
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, bc
ld a, [hl]
and a
@@ -12,21 +12,21 @@ Music8_UpdateMusic:: ; 21879 (8:5879)
ld a, c
cp CH4
jr nc, .applyAffects ; if sfx channel
- ld a, [wc002]
+ ld a, [wMuteAudioAndPauseMusic]
and a
jr z, .applyAffects
bit 7, a
jr nz, .nextChannel
set 7, a
- ld [wc002], a
+ ld [wMuteAudioAndPauseMusic], a
xor a
- ld [$ff25], a
- ld [$ff1a], a
+ ld [rNR51], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
jr .nextChannel
.applyAffects
- call Music8_ApplyMusicAffects
+ call Audio2_ApplyMusicAffects
.nextChannel
ld a, c
inc c
@@ -36,54 +36,54 @@ Music8_UpdateMusic:: ; 21879 (8:5879)
; this routine checks flags for music effects currently applied
; to the channel and calls certain functions based on flags.
-; known flags for wc02e:
+; known flags for wChannelFlags1:
; 0: toggleperfectpitch has been used
; 1: call has been used
; 3: a toggle used only by this routine for vibrato
; 4: pitchbend flag
; 6: dutycycle flag
-Music8_ApplyMusicAffects: ; 218ae (8:58ae)
+Audio2_ApplyMusicAffects: ; 218ae (8:58ae)
ld b, $0
- ld hl, wc0b6 ; delay until next note
+ ld hl, wChannelNoteDelayCounters ; delay until next note
add hl, bc
ld a, [hl]
cp $1 ; if the delay is 1, play next note
- jp z, Music8_PlayNextNote
+ jp z, Audio2_PlayNextNote
dec a ; otherwise, decrease the delay timer
ld [hl], a
ld a, c
cp CH4
jr nc, .startChecks ; if a sfx channel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
jr z, .startChecks
ret
.startChecks
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 6, [hl] ; dutycycle
jr z, .checkForExecuteMusic
- call Music8_ApplyDutyCycle
+ call Audio2_ApplyDutyCycle
.checkForExecuteMusic
ld b, $0
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
bit 0, [hl]
jr nz, .checkForPitchBend
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 2, [hl]
jr nz, .disablePitchBendVibrato
.checkForPitchBend
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 4, [hl] ; pitchbend
jr z, .checkVibratoDelay
- jp Music8_ApplyPitchBend
+ jp Audio2_ApplyPitchBend
.checkVibratoDelay
- ld hl, wc04e ; vibrato delay
+ ld hl, wChannelVibratoDelayCounters ; vibrato delay
add hl, bc
ld a, [hl]
and a ; check if delay is over
@@ -92,7 +92,7 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae)
.disablePitchBendVibrato
ret
.checkForVibrato
- ld hl, wc056 ; vibrato rate
+ ld hl, wChannelVibratoExtents ; vibrato rate
add hl, bc
ld a, [hl]
and a
@@ -100,7 +100,7 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae)
ret ; no vibrato
.vibrato
ld d, a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, bc
ld a, [hl]
and $f
@@ -113,10 +113,10 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae)
swap [hl]
or [hl]
ld [hl], a ; reset the vibrato value and start again
- ld hl, wc066
+ ld hl, wChannelFrequencyLowBytes
add hl, bc
ld e, [hl] ; get note pitch
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 3, [hl] ; this is the only code that sets/resets bit three so
jr z, .unset ; it continuously alternates which path it takes
@@ -141,21 +141,21 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae)
.done
ld d, a
ld b, $3
- call Func_21ff7
+ call Audio2_21ff7
ld [hl], d
ret
; this routine executes all music commands that take up no time,
; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached
-Music8_PlayNextNote: ; 21946 (8:5946)
- ld hl, wc06e
+Audio2_PlayNextNote: ; 21946 (8:5946)
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, bc
ld a, [hl]
- ld hl, wc04e
+ ld hl, wChannelVibratoDelayCounters
add hl, bc
ld [hl], a
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
res 4, [hl]
res 5, [hl]
@@ -166,16 +166,16 @@ Music8_PlayNextNote: ; 21946 (8:5946)
bit 7, a
ret nz
.beginChecks
- call Music8_endchannel
+ call Audio2_endchannel
ret
-Music8_endchannel: ; 21967 (8:5967)
- call Music8_GetNextMusicByte
+Audio2_endchannel: ; 21967 (8:5967)
+ call Audio2_GetNextMusicByte
ld d, a
cp $ff ; is this command an endchannel?
- jp nz, Music8_callchannel ; no
+ jp nz, Audio2_callchannel ; no
ld b, $0 ; yes
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 1, [hl]
jr nz, .returnFromCall
@@ -185,22 +185,22 @@ Music8_endchannel: ; 21967 (8:5967)
jr .asm_219c0
.noiseOrSfxChannel
res 2, [hl]
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
res 0, [hl]
cp CH6
jr nz, .notSfxChannel3
ld a, $0
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
.notSfxChannel3
jr nz, .asm_219a3
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr z, .asm_219a3
xor a
- ld [wc003], a
+ ld [wDisableChannelOutputWhenSfxEnds], a
jr .asm_219c0
.asm_219a3
jr .asm_219c9
@@ -210,10 +210,10 @@ Music8_endchannel: ; 21967 (8:5967)
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
push hl ; store current channel address
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld e, l
ld d, h
@@ -223,20 +223,20 @@ Music8_endchannel: ; 21967 (8:5967)
inc de
ld a, [de]
ld [hl], a ; loads channel address to return to
- jp Music8_endchannel
+ jp Audio2_endchannel
.asm_219c0
ld hl, Unknown_222de
add hl, bc
- ld a, [$ff25]
+ ld a, [rNR51]
and [hl]
- ld [$ff25], a
+ ld [rNR51], a
.asm_219c9
- ld a, [wc02a]
+ ld a, [wChannelSoundIDs + CH4]
cp $14
jr nc, .asm_219d2
jr .asm_219ef
.asm_219d2
- ld a, [wc02a]
+ ld a, [wChannelSoundIDs + CH4]
cp $86
jr z, .asm_219ef
jr c, .asm_219dd
@@ -245,25 +245,25 @@ Music8_endchannel: ; 21967 (8:5967)
ld a, c
cp CH4
jr z, .asm_219e6
- call Func_21e6d
+ call Audio2_21e6d
ret c
.asm_219e6
- ld a, [wc005]
- ld [$ff24], a
+ ld a, [wSavedVolume]
+ ld [rNR50], a
xor a
- ld [wc005], a
+ ld [wSavedVolume], a
.asm_219ef
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, bc
ld [hl], b
ret
-Music8_callchannel: ; 219f5 (8:59f5)
+Audio2_callchannel: ; 219f5 (8:59f5)
cp $fd ; is this command a callchannel?
- jp nz, Music8_loopchannel ; no
- call Music8_GetNextMusicByte ; yes
+ jp nz, Audio2_loopchannel ; no
+ call Audio2_GetNextMusicByte ; yes
push af
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
ld d, a
pop af
ld e, a
@@ -272,10 +272,10 @@ Music8_callchannel: ; 219f5 (8:59f5)
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
push hl
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld e, l
ld d, h
@@ -290,73 +290,73 @@ Music8_callchannel: ; 219f5 (8:59f5)
inc hl
ld [hl], d ; overwrite current address with pointer
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 1, [hl] ; set the call flag
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_loopchannel: ; 21a2a (8:5a2a)
+Audio2_loopchannel: ; 21a2a (8:5a2a)
cp $fe ; is this command a loopchannel?
- jp nz, Music8_notetype ; no
- call Music8_GetNextMusicByte ; yes
+ jp nz, Audio2_notetype ; no
+ call Audio2_GetNextMusicByte ; yes
ld e, a
and a
jr z, .infiniteLoop
ld b, $0
- ld hl, wc0be
+ ld hl, wChannelLoopCounters
add hl, bc
ld a, [hl]
cp e
jr nz, .loopAgain
ld a, $1 ; if no more loops to make,
ld [hl], a
- call Music8_GetNextMusicByte ; skip pointer
- call Music8_GetNextMusicByte
- jp Music8_endchannel
+ call Audio2_GetNextMusicByte ; skip pointer
+ call Audio2_GetNextMusicByte
+ jp Audio2_endchannel
.loopAgain ; inc loop count
inc a
ld [hl], a
; fall through
.infiniteLoop ; overwrite current address with pointer
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
push af
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
ld b, a
ld d, $0
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
pop af
ld [hli], a
ld [hl], b
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_notetype: ; 21a65 (8:5a65)
+Audio2_notetype: ; 21a65 (8:5a65)
and $f0
cp $d0 ; is this command a notetype?
- jp nz, Music8_toggleperfectpitch ; no
+ jp nz, Audio2_toggleperfectpitch ; no
ld a, d ; yes
and $f
ld b, $0
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, bc
ld [hl], a ; store low nibble as speed
ld a, c
cp CH3
jr z, .noiseChannel ; noise channel has 0 params
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
ld d, a
ld a, c
cp CH2
jr z, .musicChannel3
cp CH6
jr nz, .notChannel3
- ld hl, wc0e7
+ ld hl, wSfxWaveInstrument
jr .sfxChannel3
.musicChannel3
- ld hl, wc0e6
+ ld hl, wMusicWaveInstrument
.sfxChannel3
ld a, d
and $f
@@ -371,41 +371,41 @@ Music8_notetype: ; 21a65 (8:5a65)
; else, store volume (high nibble) and fade (low nibble)
.notChannel3
ld b, $0
- ld hl, wc0de
+ ld hl, wChannelVolumes
add hl, bc
ld [hl], d
.noiseChannel
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_toggleperfectpitch: ; 21aa4 (8:5aa4)
+Audio2_toggleperfectpitch: ; 21aa4 (8:5aa4)
ld a, d
cp $e8 ; is this command a toggleperfectpitch?
- jr nz, Music8_vibrato ; no
+ jr nz, Audio2_vibrato ; no
ld b, $0 ; yes
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
ld a, [hl]
xor $1
- ld [hl], a ; flip bit 0 of wc02e
- jp Music8_endchannel
+ ld [hl], a ; flip bit 0 of wChannelFlags1
+ jp Audio2_endchannel
-Music8_vibrato: ; 21ab6 (8:5ab6)
+Audio2_vibrato: ; 21ab6 (8:5ab6)
cp $ea ; is this command a vibrato?
- jr nz, Music8_pitchbend ; no
- call Music8_GetNextMusicByte ; yes
+ jr nz, Audio2_pitchbend ; no
+ call Audio2_GetNextMusicByte ; yes
ld b, $0
- ld hl, wc04e
+ ld hl, wChannelVibratoDelayCounters
add hl, bc
ld [hl], a ; store delay
- ld hl, wc06e
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, bc
ld [hl], a ; store delay
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
ld d, a
and $f0
swap a
ld b, $0
- ld hl, wc056
+ ld hl, wChannelVibratoExtents
add hl, bc
srl a
ld e, a
@@ -416,226 +416,226 @@ Music8_vibrato: ; 21ab6 (8:5ab6)
ld a, d
and $f
ld d, a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, bc
swap a
or d
ld [hl], a ; store depth as both high and low nibbles
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_pitchbend: ; 21aee (8:5aee)
+Audio2_pitchbend: ; 21aee (8:5aee)
cp $eb ; is this command a pitchbend?
- jr nz, Music8_duty ; no
- call Music8_GetNextMusicByte ; yes
+ jr nz, Audio2_duty ; no
+ call Audio2_GetNextMusicByte ; yes
ld b, $0
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
ld [hl], a ; store first param
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
ld d, a
and $f0
swap a
ld b, a
ld a, d
and $f
- call Func_22017
+ call Audio2_22017
ld b, $0
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld [hl], d ; store unknown part of second param
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld [hl], e ; store unknown part of second param
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 4, [hl] ; set pitchbend flag
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
ld d, a
- jp Music8_notelength
+ jp Audio2_notelength
-Music8_duty: ; 21b26 (8:5b26)
+Audio2_duty: ; 21b26 (8:5b26)
cp $ec ; is this command a duty?
- jr nz, Music8_tempo ; no
- call Music8_GetNextMusicByte ; yes
+ jr nz, Audio2_tempo ; no
+ call Audio2_GetNextMusicByte ; yes
rrca
rrca
and $c0
ld b, $0
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld [hl], a ; store duty
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_tempo: ; 21b3b (8:5b3b)
+Audio2_tempo: ; 21b3b (8:5b3b)
cp $ed ; is this command a tempo?
- jr nz, Music8_stereopanning ; no
+ jr nz, Audio2_stereopanning ; no
ld a, c ; yes
cp CH4
jr nc, .sfxChannel
- call Music8_GetNextMusicByte
- ld [wc0e8], a ; store first param
- call Music8_GetNextMusicByte
- ld [wc0e9], a ; store second param
+ call Audio2_GetNextMusicByte
+ ld [wMusicTempo], a ; store first param
+ call Audio2_GetNextMusicByte
+ ld [wMusicTempo + 1], a ; store second param
xor a
- ld [wc0ce], a ; clear RAM
- ld [wc0cf], a
- ld [wc0d0], a
- ld [wc0d1], a
+ ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM
+ ld [wChannelNoteDelayCountersFractionalPart + 1], a
+ ld [wChannelNoteDelayCountersFractionalPart + 2], a
+ ld [wChannelNoteDelayCountersFractionalPart + 3], a
jr .musicChannelDone
.sfxChannel
- call Music8_GetNextMusicByte
- ld [wc0ea], a ; store first param
- call Music8_GetNextMusicByte
- ld [wc0eb], a ; store second param
+ call Audio2_GetNextMusicByte
+ ld [wSfxTempo], a ; store first param
+ call Audio2_GetNextMusicByte
+ ld [wSfxTempo + 1], a ; store second param
xor a
- ld [wc0d2], a ; clear RAM
- ld [wc0d3], a
- ld [wc0d4], a
- ld [wc0d5], a
+ ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM
+ ld [wChannelNoteDelayCountersFractionalPart + 5], a
+ ld [wChannelNoteDelayCountersFractionalPart + 6], a
+ ld [wChannelNoteDelayCountersFractionalPart + 7], a
.musicChannelDone
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_stereopanning: ; 21b7b (8:5b7b)
+Audio2_stereopanning: ; 21b7b (8:5b7b)
cp $ee ; is this command a stereopanning?
- jr nz, Music8_unknownmusic0xef ; no
- call Music8_GetNextMusicByte ; yes
- ld [wc004], a ; store panning
- jp Music8_endchannel
+ jr nz, Audio2_unknownmusic0xef ; no
+ call Audio2_GetNextMusicByte ; yes
+ ld [wStereoPanning], a ; store panning
+ jp Audio2_endchannel
; this appears to never be used
-Music8_unknownmusic0xef: ; 21b88 (8:5b88)
+Audio2_unknownmusic0xef: ; 21b88 (8:5b88)
cp $ef ; is this command an unknownmusic0xef?
- jr nz, Music8_dutycycle ; no
- call Music8_GetNextMusicByte ; yes
+ jr nz, Audio2_dutycycle ; no
+ call Audio2_GetNextMusicByte ; yes
push bc
- call Func_22035
+ call Audio2_PlaySound
pop bc
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr nz, .skip
- ld a, [wc02d]
- ld [wc003], a
+ ld a, [wChannelSoundIDs + CH7]
+ ld [wDisableChannelOutputWhenSfxEnds], a
xor a
- ld [wc02d], a
+ ld [wChannelSoundIDs + CH7], a
.skip
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_dutycycle: ; 21ba7 (8:5ba7)
+Audio2_dutycycle: ; 21ba7 (8:5ba7)
cp $fc ; is this command a dutycycle?
- jr nz, Music8_volume ; no
- call Music8_GetNextMusicByte ; yes
+ jr nz, Audio2_volume ; no
+ call Audio2_GetNextMusicByte ; yes
ld b, $0
- ld hl, wc046
+ ld hl, wChannelDutyCycles
add hl, bc
ld [hl], a ; store full cycle
and $c0
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld [hl], a ; store first duty
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 6, [hl] ; set dutycycle flag
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_volume: ; 21bc5 (8:5bc5)
+Audio2_volume: ; 21bc5 (8:5bc5)
cp $f0 ; is this command a volume?
- jr nz, Music8_executemusic ; no
- call Music8_GetNextMusicByte ; yes
- ld [$ff24], a ; store volume
- jp Music8_endchannel
+ jr nz, Audio2_executemusic ; no
+ call Audio2_GetNextMusicByte ; yes
+ ld [rNR50], a ; store volume
+ jp Audio2_endchannel
-Music8_executemusic: ; 21bd1 (8:5bd1)
+Audio2_executemusic: ; 21bd1 (8:5bd1)
cp $f8 ; is this command an executemusic?
- jr nz, Music8_octave ; no
+ jr nz, Audio2_octave ; no
ld b, $0 ; yes
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
set 0, [hl]
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_octave: ; 21be0 (8:5be0)
+Audio2_octave: ; 21be0 (8:5be0)
and $f0
cp $e0 ; is this command an octave?
- jr nz, Music8_unknownsfx0x20 ; no
- ld hl, wc0d6 ; yes
+ jr nz, Audio2_unknownsfx0x20 ; no
+ ld hl, wChannelOctaves ; yes
ld b, $0
add hl, bc
ld a, d
and $f
ld [hl], a ; store low nibble as octave
- jp Music8_endchannel
+ jp Audio2_endchannel
-Music8_unknownsfx0x20: ; 21bf3
+Audio2_unknownsfx0x20: ; 21bf3
cp $20 ; is this command an unknownsfx0x20?
- jr nz, Music8_unknownsfx0x10 ; no
+ jr nz, Audio2_unknownsfx0x10 ; no
ld a, c
cp CH3 ; is this a noise or sfx channel?
- jr c, Music8_unknownsfx0x10 ; no
+ jr c, Audio2_unknownsfx0x10 ; no
ld b, $0
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
bit 0, [hl]
- jr nz, Music8_unknownsfx0x10 ; no
- call Music8_notelength
+ jr nz, Audio2_unknownsfx0x10 ; no
+ call Audio2_notelength
ld d, a
ld b, $0
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld a, [hl]
or d
ld d, a
ld b, $1
- call Func_21ff7
+ call Audio2_21ff7
ld [hl], d
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
ld d, a
ld b, $2
- call Func_21ff7
+ call Audio2_21ff7
ld [hl], d
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
ld e, a
ld a, c
cp CH7
ld a, $0
jr z, .sfxNoiseChannel ; only two params for noise channel
push de
- call Music8_GetNextMusicByte
+ call Audio2_GetNextMusicByte
pop de
.sfxNoiseChannel
ld d, a
push de
- call Func_21daa
- call Func_21d79
+ call Audio2_21daa
+ call Audio2_21d79
pop de
- call Func_21dcc
+ call Audio2_21dcc
ret
-Music8_unknownsfx0x10: ; 21c40 (8:5c40)
+Audio2_unknownsfx0x10: ; 21c40 (8:5c40)
ld a, c
cp CH4
- jr c, Music8_note ; if not a sfx
+ jr c, Audio2_note ; if not a sfx
ld a, d
cp $10 ; is this command a unknownsfx0x10?
- jr nz, Music8_note ; no
+ jr nz, Audio2_note ; no
ld b, $0
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
bit 0, [hl]
- jr nz, Music8_note ; no
- call Music8_GetNextMusicByte ; yes
- ld [$ff10], a
- jp Music8_endchannel
+ jr nz, Audio2_note ; no
+ call Audio2_GetNextMusicByte ; yes
+ ld [rNR10], a
+ jp Audio2_endchannel
-Music8_note: ; 21c5c (8:5c5c)
+Audio2_note: ; 21c5c (8:5c5c)
ld a, c
cp CH3
- jr nz, Music8_notelength ; if not noise channel
+ jr nz, Audio2_notelength ; if not noise channel
ld a, d
and $f0
cp $b0 ; is this command a dnote?
- jr z, Music8_dnote ; yes
- jr nc, Music8_notelength ; no
+ jr z, Audio2_dnote ; yes
+ jr nc, Audio2_notelength ; no
swap a
ld b, a
ld a, d
@@ -646,24 +646,24 @@ Music8_note: ; 21c5c (8:5c5c)
push bc
jr asm_21c7e
-Music8_dnote: ; 21c76 (8:5c76)
+Audio2_dnote: ; 21c76 (8:5c76)
ld a, d
and $f
push af
push bc
- call Music8_GetNextMusicByte ; get dnote instrument
+ call Audio2_GetNextMusicByte ; get dnote instrument
asm_21c7e
ld d, a
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr nz, .asm_21c89
ld a, d
- call Func_22035
+ call Audio2_PlaySound
.asm_21c89
pop bc
pop de
-Music8_notelength: ; 21c8b (8:5c8b)
+Audio2_notelength: ; 21c8b (8:5c8b)
ld a, d
push af
and $f
@@ -671,17 +671,17 @@ Music8_notelength: ; 21c8b (8:5c8b)
ld b, $0
ld e, a ; store note length (in 16ths)
ld d, b
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, bc
ld a, [hl]
ld l, b
- call Func_22006
+ call Audio2_22006
ld a, c
cp CH4
jr nc, .sfxChannel
- ld a, [wc0e8]
+ ld a, [wMusicTempo]
ld d, a
- ld a, [wc0e9]
+ ld a, [wMusicTempo + 1]
ld e, a
jr .skip
.sfxChannel
@@ -689,39 +689,39 @@ Music8_notelength: ; 21c8b (8:5c8b)
ld e, $0
cp CH7
jr z, .skip ; if noise channel
- call Func_21e2f
- ld a, [wc0ea]
+ call Audio2_21e2f
+ ld a, [wSfxTempo]
ld d, a
- ld a, [wc0eb]
+ ld a, [wSfxTempo + 1]
ld e, a
.skip
ld a, l
ld b, $0
- ld hl, wc0ce
+ ld hl, wChannelNoteDelayCountersFractionalPart
add hl, bc
ld l, [hl]
- call Func_22006
+ call Audio2_22006
ld e, l
ld d, h
- ld hl, wc0ce
+ ld hl, wChannelNoteDelayCountersFractionalPart
add hl, bc
ld [hl], e
ld a, d
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, bc
ld [hl], a
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
bit 0, [hl]
- jr nz, Music8_notepitch
- ld hl, wc02e
+ jr nz, Audio2_notepitch
+ ld hl, wChannelFlags1
add hl, bc
bit 2, [hl]
- jr z, Music8_notepitch
+ jr z, Audio2_notepitch
pop hl
ret
-Music8_notepitch: ; 21ce9 (8:5ce9)
+Audio2_notepitch: ; 21ce9 (8:5ce9)
pop af
and $f0
cp $c0 ; compare to rest
@@ -729,7 +729,7 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
ld a, c
cp CH4
jr nc, .sfxChannel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
@@ -745,13 +745,13 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
ld b, $0
ld hl, Unknown_222de
add hl, bc
- ld a, [$ff25]
+ ld a, [rNR51]
and [hl]
- ld [$ff25], a
+ ld [rNR51], a
jr .done
.notSfxChannel3
ld b, $2
- call Func_21ff7
+ call Audio2_21ff7
ld a, $8
ld [hli], a
inc hl
@@ -762,22 +762,22 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
.notRest
swap a
ld b, $0
- ld hl, wc0d6
+ ld hl, wChannelOctaves
add hl, bc
ld b, [hl]
- call Func_22017
+ call Audio2_22017
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 4, [hl]
jr z, .asm_21d39
- call Func_21f4e
+ call Audio2_21f4e
.asm_21d39
push de
ld a, c
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
ld d, $0
ld e, a
add hl, de
@@ -790,17 +790,17 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
ret
.skip
ld b, $0
- ld hl, wc0de
+ ld hl, wChannelVolumes
add hl, bc
ld d, [hl]
ld b, $2
- call Func_21ff7
+ call Audio2_21ff7
ld [hl], d
- call Func_21daa
- call Func_21d79
+ call Audio2_21daa
+ call Audio2_21d79
pop de
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 0, [hl] ; has toggleperfectpitch been used?
jr z, .skip2
@@ -808,17 +808,17 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
jr nc, .skip2
inc d
.skip2
- ld hl, wc066
+ ld hl, wChannelFrequencyLowBytes
add hl, bc
ld [hl], e
- call Func_21dcc
+ call Audio2_21dcc
ret
-Func_21d79: ; 21d79 (8:5d79)
+Audio2_21d79: ; 21d79 (8:5d79)
ld b, $0
ld hl, Unknown_222e6
add hl, bc
- ld a, [$ff25]
+ ld a, [rNR51]
or [hl]
ld d, a
ld a, c
@@ -826,18 +826,18 @@ Func_21d79: ; 21d79 (8:5d79)
jr z, .sfxNoiseChannel
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
jr nz, .skip
.sfxNoiseChannel
- ld a, [wc004]
+ ld a, [wStereoPanning]
ld hl, Unknown_222e6
add hl, bc
and [hl]
ld d, a
- ld a, [$ff25]
+ ld a, [rNR51]
ld hl, Unknown_222de
add hl, bc
and [hl]
@@ -845,12 +845,12 @@ Func_21d79: ; 21d79 (8:5d79)
ld d, a
.skip
ld a, d
- ld [$ff25], a
+ ld [rNR51], a
ret
-Func_21daa: ; 21daa (8:5daa)
+Audio2_21daa: ; 21daa (8:5daa)
ld b, $0
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, bc
ld d, [hl]
ld a, c
@@ -861,18 +861,18 @@ Func_21daa: ; 21daa (8:5daa)
ld a, d
and $3f
ld d, a
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld a, [hl]
or d
ld d, a
.channel3
ld b, $1
- call Func_21ff7
+ call Audio2_21ff7
ld [hl], d
ret
-Func_21dcc: ; 21dcc (8:5dcc)
+Audio2_21dcc: ; 21dcc (8:5dcc)
ld a, c
cp CH2
jr z, .channel3
@@ -881,16 +881,16 @@ Func_21dcc: ; 21dcc (8:5dcc)
; fall through
.channel3
push de
- ld de, wc0e6
+ ld de, wMusicWaveInstrument
cp CH2
jr z, .musicChannel3
- ld de, wc0e7
+ ld de, wSfxWaveInstrument
.musicChannel3
ld a, [de]
add a
ld d, $0
ld e, a
- ld hl, Music8_WavePointers
+ ld hl, Audio2_WavePointers
add hl, de
ld e, [hl]
inc hl
@@ -898,7 +898,7 @@ Func_21dcc: ; 21dcc (8:5dcc)
ld hl, $ff30
ld b, $f
ld a, $0
- ld [$ff1a], a
+ ld [rNR30], a
.loop
ld a, [de]
inc de
@@ -908,7 +908,7 @@ Func_21dcc: ; 21dcc (8:5dcc)
and a
jr nz, .loop
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
pop de
.notSfxChannel3
ld a, d
@@ -916,18 +916,18 @@ Func_21dcc: ; 21dcc (8:5dcc)
and $c7
ld d, a
ld b, $3
- call Func_21ff7
+ call Audio2_21ff7
ld [hl], e
inc hl
ld [hl], d
ld a, c
cp CH4
jr c, .musicChannel
- call Func_21e56
+ call Audio2_21e56
.musicChannel
ret
-Func_21e19: ; 21e19 (8:5e19)
+Audio2_21e19: ; 21e19 (8:5e19)
ld a, c
cp CH4
jr nz, .asm_21e2e
@@ -935,43 +935,43 @@ Func_21e19: ; 21e19 (8:5e19)
bit 7, a
jr z, .asm_21e2e
xor a
- ld [wc0f1], a
+ ld [wFrequencyModifier], a
ld a, $80
- ld [wc0f2], a
+ ld [wTempoModifier], a
.asm_21e2e
ret
-Func_21e2f: ; 21e2f (8:5e2f)
- call Func_21e8b
+Audio2_21e2f: ; 21e2f (8:5e2f)
+ call Audio2_21e8b
jr c, .asm_21e39
- call Func_21e9f
+ call Audio2_21e9f
jr nc, .asm_21e4c
.asm_21e39
ld d, $0
- ld a, [wc0f2]
+ ld a, [wTempoModifier]
add $80
jr nc, .asm_21e43
inc d
.asm_21e43
- ld [wc0eb], a
+ ld [wSfxTempo + 1], a
ld a, d
- ld [wc0ea], a
+ ld [wSfxTempo], a
jr .asm_21e55
.asm_21e4c
xor a
- ld [wc0eb], a
+ ld [wSfxTempo + 1], a
ld a, $1
- ld [wc0ea], a
+ ld [wSfxTempo], a
.asm_21e55
ret
-Func_21e56: ; 21e56 (8:5e56)
- call Func_21e8b
+Audio2_21e56: ; 21e56 (8:5e56)
+ call Audio2_21e8b
jr c, .asm_21e60
- call Func_21e9f
+ call Audio2_21e9f
jr nc, .asm_21e6c
.asm_21e60
- ld a, [wc0f1]
+ ld a, [wFrequencyModifier]
add e
jr nc, .asm_21e67
inc d
@@ -984,10 +984,10 @@ Func_21e56: ; 21e56 (8:5e56)
.asm_21e6c
ret
-Func_21e6d: ; 21e6d (8:5e6d)
- call Func_21e8b
+Audio2_21e6d: ; 21e6d (8:5e6d)
+ call Audio2_21e8b
jr nc, .asm_21e88
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld e, c
ld d, $0
sla e
@@ -1007,8 +1007,8 @@ Func_21e6d: ; 21e6d (8:5e6d)
ccf
ret
-Func_21e8b: ; 21e8b (8:5e8b)
- ld a, [wc02a]
+Audio2_21e8b: ; 21e8b (8:5e8b)
+ ld a, [wChannelSoundIDs + CH4]
cp $14
jr nc, .asm_21e94
jr .asm_21e9a
@@ -1024,10 +1024,10 @@ Func_21e8b: ; 21e8b (8:5e8b)
scf
ret
-Func_21e9f: ; 21e9f (8:5e9f)
- ld a, [wc02d]
+Audio2_21e9f: ; 21e9f (8:5e9f)
+ ld a, [wChannelSoundIDs + CH7]
ld b, a
- ld a, [wc02a]
+ ld a, [wChannelSoundIDs + CH4]
or b
cp $9d
jr nc, .asm_21ead
@@ -1044,28 +1044,28 @@ Func_21e9f: ; 21e9f (8:5e9f)
scf
ret
-Music8_ApplyPitchBend: ; 21eb8 (8:5eb8)
- ld hl, wc02e
+Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8)
+ ld hl, wChannelFlags1
add hl, bc
bit 5, [hl]
jp nz, .asm_21eff
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld e, [hl]
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
ld l, [hl]
ld h, b
add hl, de
ld d, h
ld e, l
- ld hl, wc08e
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, bc
push hl
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
ld a, [hl]
pop hl
@@ -1077,26 +1077,26 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8)
ld a, $0
adc d
ld d, a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, [hl]
cp d
jp c, .asm_21f45
jr nz, .asm_21f32
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, [hl]
cp e
jp c, .asm_21f45
jr .asm_21f32
.asm_21eff
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld a, [hl]
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
ld e, [hl]
sub e
@@ -1104,7 +1104,7 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8)
ld a, d
sbc b
ld d, a
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
ld a, [hl]
add a
@@ -1115,79 +1115,79 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8)
ld a, d
sbc b
ld d, a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, d
cp [hl]
jr c, .asm_21f45
jr nz, .asm_21f32
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, e
cp [hl]
jr c, .asm_21f45
.asm_21f32
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld [hl], e
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld [hl], d
ld b, $3
- call Func_21ff7
+ call Audio2_21ff7
ld a, e
ld [hli], a
ld [hl], d
ret
.asm_21f45
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
res 4, [hl]
res 5, [hl]
ret
-Func_21f4e: ; 21f4e (8:5f4e)
- ld hl, wc096
+Audio2_21f4e: ; 21f4e (8:5f4e)
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld [hl], d
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld [hl], e
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, bc
ld a, [hl]
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
sub [hl]
jr nc, .asm_21f66
ld a, $1
.asm_21f66
ld [hl], a
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, e
sub [hl]
ld e, a
ld a, d
sbc b
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
sub [hl]
jr c, .asm_21f82
ld d, a
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 5, [hl]
jr .asm_21fa5
.asm_21f82
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld e, [hl]
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, [hl]
sub e
@@ -1195,17 +1195,17 @@ Func_21f4e: ; 21f4e (8:5f4e)
ld a, d
sbc b
ld d, a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, [hl]
sub d
ld d, a
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
res 5, [hl]
.asm_21fa5
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
.asm_21fa9
inc b
@@ -1224,20 +1224,20 @@ Func_21f4e: ; 21f4e (8:5f4e)
add [hl]
ld d, b
ld b, $0
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
ld [hl], d
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
ld [hl], a
- ld hl, wc08e
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, bc
ld [hl], a
ret
-Music8_ApplyDutyCycle: ; 21fcc (8:5fcc)
+Audio2_ApplyDutyCycle: ; 21fcc (8:5fcc)
ld b, $0
- ld hl, wc046
+ ld hl, wChannelDutyCycles
add hl, bc
ld a, [hl]
rlca
@@ -1246,19 +1246,19 @@ Music8_ApplyDutyCycle: ; 21fcc (8:5fcc)
and $c0
ld d, a
ld b, $1
- call Func_21ff7
+ call Audio2_21ff7
ld a, [hl]
and $3f
or d
ld [hl], a
ret
-Music8_GetNextMusicByte: ; 21fe4 (8:5fe4)
+Audio2_GetNextMusicByte: ; 21fe4 (8:5fe4)
ld d, $0
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
ld a, [hli]
ld e, a
@@ -1271,7 +1271,7 @@ Music8_GetNextMusicByte: ; 21fe4 (8:5fe4)
ld [hl], d
ret
-Func_21ff7: ; 21ff7 (8:5ff7)
+Audio2_21ff7: ; 21ff7 (8:5ff7)
ld a, c
ld hl, Unknown_222d6
add l
@@ -1285,7 +1285,7 @@ Func_21ff7: ; 21ff7 (8:5ff7)
ld h, $ff
ret
-Func_22006: ; 22006 (8:6006)
+Audio2_22006: ; 22006 (8:6006)
ld h, $0
.loop
srl a
@@ -1300,13 +1300,13 @@ Func_22006: ; 22006 (8:6006)
.done
ret
-Func_22017: ; 22017 (8:6017)
+Audio2_22017: ; 22017 (8:6017)
ld h, $0
ld l, a
add hl, hl
ld d, h
ld e, l
- ld hl, Music8_Pitches
+ ld hl, Audio2_Pitches
add hl, de
ld e, [hl]
inc hl
@@ -1325,102 +1325,102 @@ Func_22017: ; 22017 (8:6017)
ld d, a
ret
-Func_22035:: ; 22035 (8:6035)
- ld [wc001], a
+Audio2_PlaySound:: ; 22035 (8:6035)
+ ld [wSoundID], a
cp $ff
- jp z, Func_221f3
+ jp z, Audio2_221f3
cp $e9
- jp z, Func_2210d
- jp c, Func_2210d
+ jp z, Audio2_2210d
+ jp c, Audio2_2210d
cp $fe
jr z, .asm_2204c
- jp nc, Func_2210d
+ jp nc, Audio2_2210d
.asm_2204c
xor a
- ld [wc000], a
- ld [wc003], a
- ld [wc0e9], a
- ld [wc0e6], a
- ld [wc0e7], a
+ ld [wUnusedC000], a
+ ld [wDisableChannelOutputWhenSfxEnds], a
+ ld [wMusicTempo + 1], a
+ ld [wMusicWaveInstrument], a
+ ld [wSfxWaveInstrument], a
ld d, $8
- ld hl, wc016
- call FillMusicRAM8
- ld hl, wc006
- call FillMusicRAM8
+ ld hl, wChannelReturnAddresses
+ call FillAudioRAM2
+ ld hl, wChannelCommandPointers
+ call FillAudioRAM2
ld d, $4
- ld hl, wc026
- call FillMusicRAM8
- ld hl, wc02e
- call FillMusicRAM8
- ld hl, wc03e
- call FillMusicRAM8
- ld hl, wc046
- call FillMusicRAM8
- ld hl, wc04e
- call FillMusicRAM8
- ld hl, wc056
- call FillMusicRAM8
- ld hl, wc05e
- call FillMusicRAM8
- ld hl, wc066
- call FillMusicRAM8
- ld hl, wc06e
- call FillMusicRAM8
- ld hl, wc036
- call FillMusicRAM8
- ld hl, wc076
- call FillMusicRAM8
- ld hl, wc07e
- call FillMusicRAM8
- ld hl, wc086
- call FillMusicRAM8
- ld hl, wc08e
- call FillMusicRAM8
- ld hl, wc096
- call FillMusicRAM8
- ld hl, wc09e
- call FillMusicRAM8
- ld hl, wc0a6
- call FillMusicRAM8
- ld hl, wc0ae
- call FillMusicRAM8
+ ld hl, wChannelSoundIDs
+ call FillAudioRAM2
+ ld hl, wChannelFlags1
+ call FillAudioRAM2
+ ld hl, wChannelDuties
+ call FillAudioRAM2
+ ld hl, wChannelDutyCycles
+ call FillAudioRAM2
+ ld hl, wChannelVibratoDelayCounters
+ call FillAudioRAM2
+ ld hl, wChannelVibratoExtents
+ call FillAudioRAM2
+ ld hl, wChannelVibratoRates
+ call FillAudioRAM2
+ ld hl, wChannelFrequencyLowBytes
+ call FillAudioRAM2
+ ld hl, wChannelVibratoDelayCounterReloadValues
+ call FillAudioRAM2
+ ld hl, wChannelFlags2
+ call FillAudioRAM2
+ ld hl, wChannelPitchBendLengthModifiers
+ call FillAudioRAM2
+ ld hl, wChannelPitchBendFrequencySteps
+ call FillAudioRAM2
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
+ call FillAudioRAM2
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
+ call FillAudioRAM2
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
+ call FillAudioRAM2
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
+ call FillAudioRAM2
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
+ call FillAudioRAM2
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
+ call FillAudioRAM2
ld a, $1
- ld hl, wc0be
- call FillMusicRAM8
- ld hl, wc0b6
- call FillMusicRAM8
- ld hl, wc0c6
- call FillMusicRAM8
- ld [wc0e8], a
+ ld hl, wChannelLoopCounters
+ call FillAudioRAM2
+ ld hl, wChannelNoteDelayCounters
+ call FillAudioRAM2
+ ld hl, wChannelNoteSpeeds
+ call FillAudioRAM2
+ ld [wMusicTempo], a
ld a, $ff
- ld [wc004], a
+ ld [wStereoPanning], a
xor a
- ld [$ff24], a
+ ld [rNR50], a
ld a, $8
- ld [$ff10], a
+ ld [rNR10], a
ld a, $0
- ld [$ff25], a
+ ld [rNR51], a
xor a
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $77
- ld [$ff24], a
- jp Func_2224e
+ ld [rNR50], a
+ jp Audio2_2224e
-Func_2210d: ; 2210d (8:610d)
+Audio2_2210d: ; 2210d (8:610d)
ld l, a
ld e, a
ld h, $0
ld d, h
add hl, hl
add hl, de
- ld de, SFX_Headers_08
+ ld de, SFX_Headers_2
add hl, de
ld a, h
- ld [wc0ec], a
+ ld [wSfxHeaderPointer], a
ld a, l
- ld [wc0ed], a
+ ld [wSfxHeaderPointer + 1], a
ld a, [hl]
and $c0
rlca
@@ -1433,9 +1433,9 @@ Func_2210d: ; 2210d (8:610d)
add c
ld c, a
ld b, $0
- ld a, [wc0ec]
+ ld a, [wSfxHeaderPointer]
ld h, a
- ld a, [wc0ed]
+ ld a, [wSfxHeaderPointer + 1]
ld l, a
add hl, bc
ld c, d
@@ -1443,7 +1443,7 @@ Func_2210d: ; 2210d (8:610d)
and $f
ld e, a
ld d, $0
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, de
ld a, [hl]
and a
@@ -1451,7 +1451,7 @@ Func_2210d: ; 2210d (8:610d)
ld a, e
cp $7
jr nz, .asm_22159
- ld a, [wc001]
+ ld a, [wSoundID]
cp $14
jr nc, .asm_22152
ret
@@ -1461,7 +1461,7 @@ Func_2210d: ; 2210d (8:610d)
jr z, .asm_22162
jr c, .asm_22162
.asm_22159
- ld a, [wc001]
+ ld a, [wSoundID]
cp [hl]
jr z, .asm_22162
jr c, .asm_22162
@@ -1474,132 +1474,132 @@ Func_2210d: ; 2210d (8:610d)
add hl, hl
ld d, h
ld e, l
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld [hli], a
ld [hl], a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
ld [hli], a
ld [hl], a
pop de
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, de
ld [hl], a
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, de
ld [hl], a
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, de
ld [hl], a
- ld hl, wc046
+ ld hl, wChannelDutyCycles
add hl, de
ld [hl], a
- ld hl, wc04e
+ ld hl, wChannelVibratoDelayCounters
add hl, de
ld [hl], a
- ld hl, wc056
+ ld hl, wChannelVibratoExtents
add hl, de
ld [hl], a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, de
ld [hl], a
- ld hl, wc066
+ ld hl, wChannelFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc06e
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, de
ld [hl], a
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, de
ld [hl], a
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, de
ld [hl], a
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, de
ld [hl], a
- ld hl, wc08e
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, de
ld [hl], a
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, de
ld [hl], a
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, de
ld [hl], a
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, de
ld [hl], a
ld a, $1
- ld hl, wc0be
+ ld hl, wChannelLoopCounters
add hl, de
ld [hl], a
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, de
ld [hl], a
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, de
ld [hl], a
ld a, e
cp $4
jr nz, .asm_221ea
ld a, $8
- ld [$ff10], a
+ ld [rNR10], a
.asm_221ea
ld a, c
and a
- jp z, Func_2224e
+ jp z, Audio2_2224e
dec c
jp .asm_22126
-Func_221f3: ; 221f3 (8:61f3)
+Audio2_221f3: ; 221f3 (8:61f3)
ld a, $80
- ld [$ff26], a
- ld [$ff1a], a
+ ld [rNR52], a
+ ld [rNR30], a
xor a
- ld [$ff25], a
- ld [$ff1c], a
+ ld [rNR51], a
+ ld [rNR32], a
ld a, $8
- ld [$ff10], a
- ld [$ff12], a
- ld [$ff17], a
- ld [$ff21], a
+ ld [rNR10], a
+ ld [rNR12], a
+ ld [rNR22], a
+ ld [rNR42], a
ld a, $40
- ld [$ff14], a
- ld [$ff19], a
- ld [$ff23], a
+ ld [rNR14], a
+ ld [rNR24], a
+ ld [rNR44], a
ld a, $77
- ld [$ff24], a
+ ld [rNR50], a
xor a
- ld [wc000], a
- ld [wc003], a
- ld [wc002], a
- ld [wc0e9], a
- ld [wc0eb], a
- ld [wc0e6], a
- ld [wc0e7], a
+ ld [wUnusedC000], a
+ ld [wDisableChannelOutputWhenSfxEnds], a
+ ld [wMuteAudioAndPauseMusic], a
+ ld [wMusicTempo + 1], a
+ ld [wSfxTempo + 1], a
+ ld [wMusicWaveInstrument], a
+ ld [wSfxWaveInstrument], a
ld d, $a0
- ld hl, wc006
- call FillMusicRAM8
+ ld hl, wChannelCommandPointers
+ call FillAudioRAM2
ld a, $1
ld d, $18
- ld hl, wc0b6
- call FillMusicRAM8
- ld [wc0e8], a
- ld [wc0ea], a
+ ld hl, wChannelNoteDelayCounters
+ call FillAudioRAM2
+ ld [wMusicTempo], a
+ ld [wSfxTempo], a
ld a, $ff
- ld [wc004], a
+ ld [wStereoPanning], a
ret
; fills d bytes at hl with a
-FillMusicRAM8: ; 22248 (8:6248)
+FillAudioRAM2: ; 22248 (8:6248)
ld b, d
.loop
ld [hli], a
@@ -1607,19 +1607,19 @@ FillMusicRAM8: ; 22248 (8:6248)
jr nz, .loop
ret
-Func_2224e: ; 2224e (8:624e)
- ld a, [wc001]
+Audio2_2224e: ; 2224e (8:624e)
+ ld a, [wSoundID]
ld l, a
ld e, a
ld h, $0
ld d, h
add hl, hl
add hl, de
- ld de, SFX_Headers_08
+ ld de, SFX_Headers_2
add hl, de
ld e, l
ld d, h
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld a, [de] ; get channel number
ld b, a
rlca
@@ -1645,14 +1645,14 @@ Func_2224e: ; 2224e (8:624e)
push af
ld b, $0
ld c, a
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, bc
- ld a, [wc001]
+ ld a, [wSoundID]
ld [hl], a
pop af
cp $3
jr c, .asm_22291
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 2, [hl]
.asm_22291
@@ -1671,38 +1671,38 @@ Func_2224e: ; 2224e (8:624e)
ld a, [de]
inc de
jr nz, .asm_22270
- ld a, [wc001]
+ ld a, [wSoundID]
cp $14
jr nc, .asm_222aa
jr .asm_222d4
.asm_222aa
- ld a, [wc001]
+ ld a, [wSoundID]
cp $86
jr z, .asm_222d4
jr c, .asm_222b5
jr .asm_222d4
.asm_222b5
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld hl, wc012 ; sfx noise channel pointer
- ld de, Noise8_endchannel
+ ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer
+ ld de, Noise2_endchannel
ld [hl], e
inc hl
ld [hl], d ; overwrite pointer to point to endchannel
- ld a, [wc005]
+ ld a, [wSavedVolume]
and a
jr nz, .asm_222d4
- ld a, [$ff24]
- ld [wc005], a
+ ld a, [rNR50]
+ ld [wSavedVolume], a
ld a, $77
- ld [$ff24], a
+ ld [rNR50], a
.asm_222d4
ret
-Noise8_endchannel: ; 222d5 (8:62d5)
+Noise2_endchannel: ; 222d5 (8:62d5)
endchannel
Unknown_222d6: ; 222d6 (8:62d6)
@@ -1717,7 +1717,7 @@ Unknown_222e6: ; 222e6 (8:62e6)
db $11, $22, $44, $88 ; channels 0-3
db $11, $22, $44, $88 ; channels 4-7
-Music8_Pitches: ; 222ee (8:62ee)
+Audio2_Pitches: ; 222ee (8:62ee)
dw $F82C ; C_
dw $F89D ; C#
dw $F907 ; D_
diff --git a/audio/engine_3.asm b/audio/engine_3.asm
index fabdecef..c7254405 100644
--- a/audio/engine_3.asm
+++ b/audio/engine_3.asm
@@ -1,10 +1,10 @@
; The third of three duplicated sound engines.
-Music1f_UpdateMusic:: ; 7d177 (1f:5177)
+Audio3_UpdateMusic:: ; 7d177 (1f:5177)
ld c, CH0
.loop
ld b, $0
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, bc
ld a, [hl]
and a
@@ -12,21 +12,21 @@ Music1f_UpdateMusic:: ; 7d177 (1f:5177)
ld a, c
cp CH4
jr nc, .applyAffects ; if sfx channel
- ld a, [wc002]
+ ld a, [wMuteAudioAndPauseMusic]
and a
jr z, .applyAffects
bit 7, a
jr nz, .nextChannel
set 7, a
- ld [wc002], a
+ ld [wMuteAudioAndPauseMusic], a
xor a
- ld [$ff25], a
- ld [$ff1a], a
+ ld [rNR51], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
jr .nextChannel
.applyAffects
- call Music1f_ApplyMusicAffects
+ call Audio3_ApplyMusicAffects
.nextChannel
ld a, c
inc c ; inc channel number
@@ -36,54 +36,54 @@ Music1f_UpdateMusic:: ; 7d177 (1f:5177)
; this routine checks flags for music effects currently applied
; to the channel and calls certain functions based on flags.
-; known flags for wc02e:
+; known flags for wChannelFlags1:
; 0: toggleperfectpitch has been used
; 1: call has been used
; 3: a toggle used only by this routine for vibrato
; 4: pitchbend flag
; 6: dutycycle flag
-Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
+Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac)
ld b, $0
- ld hl, wc0b6 ; delay until next note
+ ld hl, wChannelNoteDelayCounters ; delay until next note
add hl, bc
ld a, [hl]
cp $1 ; if delay is 1, play next note
- jp z, Music1f_PlayNextNote
+ jp z, Audio3_PlayNextNote
dec a ; otherwise, decrease the delay timer
ld [hl], a
ld a, c
cp CH4
jr nc, .startChecks ; if a sfx channel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
jr z, .startChecks
ret
.startChecks
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 6, [hl] ; dutycycle
jr z, .checkForExecuteMusic
- call Music1f_ApplyDutyCycle
+ call Audio3_ApplyDutyCycle
.checkForExecuteMusic
ld b, $0
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
bit 0, [hl]
jr nz, .checkForPitchBend
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 2, [hl]
jr nz, .disablePitchBendVibrato
.checkForPitchBend
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 4, [hl] ; pitchbend
jr z, .checkVibratoDelay
- jp Music1f_ApplyPitchBend
+ jp Audio3_ApplyPitchBend
.checkVibratoDelay
- ld hl, wc04e ; vibrato delay
+ ld hl, wChannelVibratoDelayCounters ; vibrato delay
add hl, bc
ld a, [hl]
and a ; check if delay is over
@@ -92,7 +92,7 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
.disablePitchBendVibrato
ret
.checkForVibrato
- ld hl, wc056 ; vibrato rate
+ ld hl, wChannelVibratoExtents ; vibrato rate
add hl, bc
ld a, [hl]
and a
@@ -100,7 +100,7 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
ret ; no vibrato
.vibrato
ld d, a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, bc
ld a, [hl]
and $f
@@ -113,10 +113,10 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
swap [hl]
or [hl]
ld [hl], a ; reset the vibrato value and start again
- ld hl, wc066
+ ld hl, wChannelFrequencyLowBytes
add hl, bc
ld e, [hl] ; get note pitch
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 3, [hl] ; this is the only code that sets/resets bit three so
jr z, .unset ; it continuously alternates which path it takes
@@ -141,34 +141,34 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
.done
ld d, a
ld b, $3
- call Func_7d8ac
+ call Audio3_7d8ac
ld [hl], d
ret
; this routine executes all music commands that take up no time,
; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached
-Music1f_PlayNextNote: ; 7d244 (1f:5244)
- ld hl, wc06e
+Audio3_PlayNextNote: ; 7d244 (1f:5244)
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, bc
ld a, [hl]
- ld hl, wc04e
+ ld hl, wChannelVibratoDelayCounters
add hl, bc
ld [hl], a
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
res 4, [hl]
res 5, [hl]
- call Music1f_endchannel
+ call Audio3_endchannel
ret
-Music1f_endchannel: ; 7d25a (1f:525a)
- call Music1f_GetNextMusicByte
+Audio3_endchannel: ; 7d25a (1f:525a)
+ call Audio3_GetNextMusicByte
ld d, a
cp $ff ; is this command an endchannel?
- jp nz, Music1f_callchannel ; no
+ jp nz, Audio3_callchannel ; no
ld b, $0 ; yes
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 1, [hl]
jr nz, .returnFromCall
@@ -178,22 +178,22 @@ Music1f_endchannel: ; 7d25a (1f:525a)
jr .asm_7d2b3
.noiseOrSfxChannel
res 2, [hl]
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
res 0, [hl]
cp CH6
jr nz, .notSfxChannel3
ld a, $0
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
.notSfxChannel3
jr nz, .asm_7d296
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr z, .asm_7d296
xor a
- ld [wc003], a
+ ld [wDisableChannelOutputWhenSfxEnds], a
jr .asm_7d2b3
.asm_7d296
jr .asm_7d2bc
@@ -203,10 +203,10 @@ Music1f_endchannel: ; 7d25a (1f:525a)
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
push hl ; store current channel address
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld e, l
ld d, h
@@ -216,20 +216,20 @@ Music1f_endchannel: ; 7d25a (1f:525a)
inc de
ld a, [de]
ld [hl], a ; loads channel address to return to
- jp Music1f_endchannel
+ jp Audio3_endchannel
.asm_7d2b3
ld hl, Unknown_7db93
add hl, bc
- ld a, [$ff25]
+ ld a, [rNR51]
and [hl]
- ld [$ff25], a
+ ld [rNR51], a
.asm_7d2bc
- ld a, [wc02a]
+ ld a, [wChannelSoundIDs + CH4]
cp $14
jr nc, .asm_7d2c5
jr .asm_7d2e2
.asm_7d2c5
- ld a, [wc02a]
+ ld a, [wChannelSoundIDs + CH4]
cp $86
jr z, .asm_7d2e2
jr c, .asm_7d2d0
@@ -238,25 +238,25 @@ Music1f_endchannel: ; 7d25a (1f:525a)
ld a, c
cp CH4
jr z, .asm_7d2d9
- call Func_7d73b
+ call Audio3_7d73b
ret c
.asm_7d2d9
- ld a, [wc005]
- ld [$ff24], a
+ ld a, [wSavedVolume]
+ ld [rNR50], a
xor a
- ld [wc005], a
+ ld [wSavedVolume], a
.asm_7d2e2
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, bc
ld [hl], b
ret
-Music1f_callchannel: ; 7d2e8 (1f:52e8)
+Audio3_callchannel: ; 7d2e8 (1f:52e8)
cp $fd ; is this command a callchannel?
- jp nz, Music1f_loopchannel ; no
- call Music1f_GetNextMusicByte ; yes
+ jp nz, Audio3_loopchannel ; no
+ call Audio3_GetNextMusicByte ; yes
push af
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
ld d, a
pop af
ld e, a
@@ -265,10 +265,10 @@ Music1f_callchannel: ; 7d2e8 (1f:52e8)
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
push hl
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld e, l
ld d, h
@@ -283,73 +283,73 @@ Music1f_callchannel: ; 7d2e8 (1f:52e8)
inc hl
ld [hl], d ; overwrite current address with pointer
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 1, [hl] ; set the call flag
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_loopchannel: ; 7d31d (1f:531d)
+Audio3_loopchannel: ; 7d31d (1f:531d)
cp $fe ; is this command a loopchannel?
- jp nz, Music1f_notetype ; no
- call Music1f_GetNextMusicByte ; yes
+ jp nz, Audio3_notetype ; no
+ call Audio3_GetNextMusicByte ; yes
ld e, a
and a
jr z, .infiniteLoop
ld b, $0
- ld hl, wc0be
+ ld hl, wChannelLoopCounters
add hl, bc
ld a, [hl]
cp e
jr nz, .loopAgain
ld a, $1 ; if no more loops to make
ld [hl], a
- call Music1f_GetNextMusicByte ; skip pointer
- call Music1f_GetNextMusicByte
- jp Music1f_endchannel
+ call Audio3_GetNextMusicByte ; skip pointer
+ call Audio3_GetNextMusicByte
+ jp Audio3_endchannel
.loopAgain ; inc loop count
inc a
ld [hl], a
; fall through
.infiniteLoop ; overwrite current address with pointer
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
push af
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
ld b, a
ld d, $0
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
pop af
ld [hli], a
ld [hl], b
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_notetype: ; 7d358 (1f:5358)
+Audio3_notetype: ; 7d358 (1f:5358)
and $f0
cp $d0 ; is this command a notetype?
- jp nz, Music1f_toggleperfectpitch ; no
+ jp nz, Audio3_toggleperfectpitch ; no
ld a, d ; yes
and $f
ld b, $0
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, bc
ld [hl], a ; store low nibble as speed
ld a, c
cp CH3
jr z, .noiseChannel ; noise channel has 0 params
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
ld d, a
ld a, c
cp CH2
jr z, .musicChannel3
cp CH6
jr nz, .notChannel3
- ld hl, wc0e7
+ ld hl, wSfxWaveInstrument
jr .sfxChannel3
.musicChannel3
- ld hl, wc0e6
+ ld hl, wMusicWaveInstrument
.sfxChannel3
ld a, d
and $f
@@ -364,41 +364,41 @@ Music1f_notetype: ; 7d358 (1f:5358)
; else, store volume (high nibble) and fade (low nibble)
.notChannel3
ld b, $0
- ld hl, wc0de
+ ld hl, wChannelVolumes
add hl, bc
ld [hl], d
.noiseChannel
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_toggleperfectpitch: ; 7d397 (1f:5397)
+Audio3_toggleperfectpitch: ; 7d397 (1f:5397)
ld a, d
cp $e8 ; is this command a toggleperfectpitch?
- jr nz, Music1f_vibrato ; no
+ jr nz, Audio3_vibrato ; no
ld b, $0 ; yes
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
ld a, [hl]
xor $1
- ld [hl], a ; flip bit 0 of wc02e
- jp Music1f_endchannel
+ ld [hl], a ; flip bit 0 of wChannelFlags1
+ jp Audio3_endchannel
-Music1f_vibrato: ; 7d3a9 (1f:53a9)
+Audio3_vibrato: ; 7d3a9 (1f:53a9)
cp $ea ; is this command a vibrato?
- jr nz, Music1f_pitchbend ; no
- call Music1f_GetNextMusicByte ; yes
+ jr nz, Audio3_pitchbend ; no
+ call Audio3_GetNextMusicByte ; yes
ld b, $0
- ld hl, wc04e
+ ld hl, wChannelVibratoDelayCounters
add hl, bc
ld [hl], a ; store delay
- ld hl, wc06e
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, bc
ld [hl], a ; store delay
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
ld d, a
and $f0
swap a
ld b, $0
- ld hl, wc056
+ ld hl, wChannelVibratoExtents
add hl, bc
srl a
ld e, a
@@ -409,226 +409,226 @@ Music1f_vibrato: ; 7d3a9 (1f:53a9)
ld a, d
and $f
ld d, a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, bc
swap a
or d
ld [hl], a ; store depth as both high and low nibbles
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_pitchbend: ; 7d3e1 (1f:53e1)
+Audio3_pitchbend: ; 7d3e1 (1f:53e1)
cp $eb ; is this command a pitchbend?
- jr nz, Music1f_duty ; no
- call Music1f_GetNextMusicByte ; yes
+ jr nz, Audio3_duty ; no
+ call Audio3_GetNextMusicByte ; yes
ld b, $0
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
ld [hl], a ; store first param
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
ld d, a
and $f0
swap a
ld b, a
ld a, d
and $f
- call Func_7d8cc
+ call Audio3_7d8cc
ld b, $0
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld [hl], d ; store unknown part of second param
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld [hl], e ; store unknown part of second param
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 4, [hl] ; set pitchbend flag
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
ld d, a
- jp Music1f_notelength
+ jp Audio3_notelength
-Music1f_duty: ; 7d419 (1f:5419)
+Audio3_duty: ; 7d419 (1f:5419)
cp $ec ; is this command a duty?
- jr nz, Music1f_tempo ; no
- call Music1f_GetNextMusicByte ; yes
+ jr nz, Audio3_tempo ; no
+ call Audio3_GetNextMusicByte ; yes
rrca
rrca
and $c0
ld b, $0
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld [hl], a ; store duty
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_tempo: ; 7d42e (1f:542e)
+Audio3_tempo: ; 7d42e (1f:542e)
cp $ed ; is this command a tempo?
- jr nz, Music1f_stereopanning ; no
+ jr nz, Audio3_stereopanning ; no
ld a, c ; yes
cp CH4
jr nc, .sfxChannel
- call Music1f_GetNextMusicByte
- ld [wc0e8], a ; store first param
- call Music1f_GetNextMusicByte
- ld [wc0e9], a ; store second param
+ call Audio3_GetNextMusicByte
+ ld [wMusicTempo], a ; store first param
+ call Audio3_GetNextMusicByte
+ ld [wMusicTempo + 1], a ; store second param
xor a
- ld [wc0ce], a ; clear RAM
- ld [wc0cf], a
- ld [wc0d0], a
- ld [wc0d1], a
+ ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM
+ ld [wChannelNoteDelayCountersFractionalPart + 1], a
+ ld [wChannelNoteDelayCountersFractionalPart + 2], a
+ ld [wChannelNoteDelayCountersFractionalPart + 3], a
jr .musicChannelDone
.sfxChannel
- call Music1f_GetNextMusicByte
- ld [wc0ea], a ; store first param
- call Music1f_GetNextMusicByte
- ld [wc0eb], a ; store second param
+ call Audio3_GetNextMusicByte
+ ld [wSfxTempo], a ; store first param
+ call Audio3_GetNextMusicByte
+ ld [wSfxTempo + 1], a ; store second param
xor a
- ld [wc0d2], a ; clear RAM
- ld [wc0d3], a
- ld [wc0d4], a
- ld [wc0d5], a
+ ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM
+ ld [wChannelNoteDelayCountersFractionalPart + 5], a
+ ld [wChannelNoteDelayCountersFractionalPart + 6], a
+ ld [wChannelNoteDelayCountersFractionalPart + 7], a
.musicChannelDone
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_stereopanning: ; 7d46e (1f:546e)
+Audio3_stereopanning: ; 7d46e (1f:546e)
cp $ee ; is this command a stereopanning?
- jr nz, Music1f_unknownmusic0xef ; no
- call Music1f_GetNextMusicByte ; yes
- ld [wc004], a ; store panning
- jp Music1f_endchannel
+ jr nz, Audio3_unknownmusic0xef ; no
+ call Audio3_GetNextMusicByte ; yes
+ ld [wStereoPanning], a ; store panning
+ jp Audio3_endchannel
; this appears to never be used
-Music1f_unknownmusic0xef: ; 7d47b (1f:547b)
+Audio3_unknownmusic0xef: ; 7d47b (1f:547b)
cp $ef ; is this command an unknownmusic0xef?
- jr nz, Music1f_dutycycle ; no
- call Music1f_GetNextMusicByte ; yes
+ jr nz, Audio3_dutycycle ; no
+ call Audio3_GetNextMusicByte ; yes
push bc
- call Func_7d8ea
+ call Audio3_PlaySound
pop bc
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr nz, .skip
- ld a, [wc02d]
- ld [wc003], a
+ ld a, [wChannelSoundIDs + CH7]
+ ld [wDisableChannelOutputWhenSfxEnds], a
xor a
- ld [wc02d], a
+ ld [wChannelSoundIDs + CH7], a
.skip
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_dutycycle: ; 7d49a (1f:549a)
+Audio3_dutycycle: ; 7d49a (1f:549a)
cp $fc ; is this command a dutycycle?
- jr nz, Music1f_volume ; no
- call Music1f_GetNextMusicByte ; yes
+ jr nz, Audio3_volume ; no
+ call Audio3_GetNextMusicByte ; yes
ld b, $0
- ld hl, wc046
+ ld hl, wChannelDutyCycles
add hl, bc
ld [hl], a ; store full cycle
and $c0
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld [hl], a ; store first duty
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 6, [hl] ; set duty flag
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_volume: ; 7d4b8 (1f:54b8)
+Audio3_volume: ; 7d4b8 (1f:54b8)
cp $f0 ; is this command a volume?
- jr nz, Music1f_executemusic ; no
- call Music1f_GetNextMusicByte ; yes
- ld [$ff24], a ; store volume
- jp Music1f_endchannel
+ jr nz, Audio3_executemusic ; no
+ call Audio3_GetNextMusicByte ; yes
+ ld [rNR50], a ; store volume
+ jp Audio3_endchannel
-Music1f_executemusic: ; 7d4c4 (1f:54c4)
+Audio3_executemusic: ; 7d4c4 (1f:54c4)
cp $f8 ; is this command an executemusic?
- jr nz, Music1f_octave ; no
+ jr nz, Audio3_octave ; no
ld b, $0 ; yes
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
set 0, [hl]
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_octave: ; 7d4d3 (1f:54d3)
+Audio3_octave: ; 7d4d3 (1f:54d3)
and $f0
cp $e0 ; is this command an octave?
- jr nz, Music1f_unknownsfx0x20 ; no
- ld hl, wc0d6 ; yes
+ jr nz, Audio3_unknownsfx0x20 ; no
+ ld hl, wChannelOctaves ; yes
ld b, $0
add hl, bc
ld a, d
and $f
ld [hl], a ; store low nibble as octave
- jp Music1f_endchannel
+ jp Audio3_endchannel
-Music1f_unknownsfx0x20: ; 7d4e6 (1f:54e6)
+Audio3_unknownsfx0x20: ; 7d4e6 (1f:54e6)
cp $20 ; is this command an unknownsfx0x20?
- jr nz, Music1f_unknownsfx0x10 ; no
+ jr nz, Audio3_unknownsfx0x10 ; no
ld a, c
cp CH3 ; is this a noise or sfx channel?
- jr c, Music1f_unknownsfx0x10 ; no
+ jr c, Audio3_unknownsfx0x10 ; no
ld b, $0
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
bit 0, [hl]
- jr nz, Music1f_unknownsfx0x10 ; no
- call Music1f_notelength ; yes
+ jr nz, Audio3_unknownsfx0x10 ; no
+ call Audio3_notelength ; yes
ld d, a
ld b, $0
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld a, [hl]
or d
ld d, a
ld b, $1
- call Func_7d8ac
+ call Audio3_7d8ac
ld [hl], d
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
ld d, a
ld b, $2
- call Func_7d8ac
+ call Audio3_7d8ac
ld [hl], d
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
ld e, a
ld a, c
cp CH7
ld a, $0
jr z, .sfxNoiseChannel ; only two params for noise channel
push de
- call Music1f_GetNextMusicByte
+ call Audio3_GetNextMusicByte
pop de
.sfxNoiseChannel
ld d, a
push de
- call Func_7d69d
- call Func_7d66c
+ call Audio3_7d69d
+ call Audio3_7d66c
pop de
- call Func_7d6bf
+ call Audio3_7d6bf
ret
-Music1f_unknownsfx0x10 ; 7d533 (1f:5533)
+Audio3_unknownsfx0x10: ; 7d533 (1f:5533)
ld a, c
cp CH4
- jr c, Music1f_note ; if not a sfx
+ jr c, Audio3_note ; if not a sfx
ld a, d
cp $10 ; is this command an unknownsfx0x10?
- jr nz, Music1f_note ; no
+ jr nz, Audio3_note ; no
ld b, $0
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
bit 0, [hl]
- jr nz, Music1f_note ; no
- call Music1f_GetNextMusicByte ; yes
- ld [$ff10], a
- jp Music1f_endchannel
+ jr nz, Audio3_note ; no
+ call Audio3_GetNextMusicByte ; yes
+ ld [rNR10], a
+ jp Audio3_endchannel
-Music1f_note: ; 7d54f (1f:554f)
+Audio3_note: ; 7d54f (1f:554f)
ld a, c
cp CH3
- jr nz, Music1f_notelength ; if not noise channel
+ jr nz, Audio3_notelength ; if not noise channel
ld a, d
and $f0
cp $b0 ; is this command a dnote?
- jr z, Music1f_dnote ; yes
- jr nc, Music1f_notelength ; no
+ jr z, Audio3_dnote ; yes
+ jr nc, Audio3_notelength ; no
swap a
ld b, a
ld a, d
@@ -639,24 +639,24 @@ Music1f_note: ; 7d54f (1f:554f)
push bc
jr asm_7d571
-Music1f_dnote: ; 7d569 (1f:5569)
+Audio3_dnote: ; 7d569 (1f:5569)
ld a, d
and $f
push af
push bc
- call Music1f_GetNextMusicByte ; get dnote instrument
+ call Audio3_GetNextMusicByte ; get dnote instrument
asm_7d571
ld d, a
- ld a, [wc003]
+ ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr nz, .asm_7d57c
ld a, d
- call Func_7d8ea
+ call Audio3_PlaySound
.asm_7d57c
pop bc
pop de
-Music1f_notelength: ; 7d57e (1f:557e)
+Audio3_notelength: ; 7d57e (1f:557e)
ld a, d
push af
and $f
@@ -664,17 +664,17 @@ Music1f_notelength: ; 7d57e (1f:557e)
ld b, $0
ld e, a ; store note length (in 16ths)
ld d, b
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, bc
ld a, [hl]
ld l, b
- call Func_7d8bb
+ call Audio3_7d8bb
ld a, c
cp CH4
jr nc, .sfxChannel
- ld a, [wc0e8]
+ ld a, [wMusicTempo]
ld d, a
- ld a, [wc0e9]
+ ld a, [wMusicTempo + 1]
ld e, a
jr .skip
.sfxChannel
@@ -682,39 +682,39 @@ Music1f_notelength: ; 7d57e (1f:557e)
ld e, $0
cp CH7
jr z, .skip ; if noise channel
- call Func_7d707
- ld a, [wc0ea]
+ call Audio3_7d707
+ ld a, [wSfxTempo]
ld d, a
- ld a, [wc0eb]
+ ld a, [wSfxTempo + 1]
ld e, a
.skip
ld a, l
ld b, $0
- ld hl, wc0ce
+ ld hl, wChannelNoteDelayCountersFractionalPart
add hl, bc
ld l, [hl]
- call Func_7d8bb
+ call Audio3_7d8bb
ld e, l
ld d, h
- ld hl, wc0ce
+ ld hl, wChannelNoteDelayCountersFractionalPart
add hl, bc
ld [hl], e
ld a, d
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, bc
ld [hl], a
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, bc
bit 0, [hl]
- jr nz, Music1f_notepitch
- ld hl, wc02e
+ jr nz, Audio3_notepitch
+ ld hl, wChannelFlags1
add hl, bc
bit 2, [hl]
- jr z, Music1f_notepitch
+ jr z, Audio3_notepitch
pop hl
ret
-Music1f_notepitch: ; 7d5dc (1f:55dc)
+Audio3_notepitch: ; 7d5dc (1f:55dc)
pop af
and $f0
cp $c0 ; compare to rest
@@ -722,7 +722,7 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
ld a, c
cp CH4
jr nc, .sfxChannel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
@@ -738,13 +738,13 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
ld b, $0
ld hl, Unknown_7db93
add hl, bc
- ld a, [$ff25]
+ ld a, [rNR51]
and [hl]
- ld [$ff25], a
+ ld [rNR51], a
jr .quit
.notSfxChannel3
ld b, $2
- call Func_7d8ac
+ call Audio3_7d8ac
ld a, $8
ld [hli], a
inc hl
@@ -755,22 +755,22 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
.notRest
swap a
ld b, $0
- ld hl, wc0d6
+ ld hl, wChannelOctaves
add hl, bc
ld b, [hl]
- call Func_7d8cc
+ call Audio3_7d8cc
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 4, [hl]
jr z, .asm_7d62c
- call Func_7d803
+ call Audio3_7d803
.asm_7d62c
push de
ld a, c
cp CH4
jr nc, .skip ; if sfx Channel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
ld d, $0
ld e, a
add hl, de
@@ -783,17 +783,17 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
ret
.skip
ld b, $0
- ld hl, wc0de
+ ld hl, wChannelVolumes
add hl, bc
ld d, [hl]
ld b, $2
- call Func_7d8ac
+ call Audio3_7d8ac
ld [hl], d
- call Func_7d69d
- call Func_7d66c
+ call Audio3_7d69d
+ call Audio3_7d66c
pop de
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
bit 0, [hl] ; has toggleperfectpitch been used?
jr z, .skip2
@@ -801,17 +801,17 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
jr nc, .skip2
inc d
.skip2
- ld hl, wc066
+ ld hl, wChannelFrequencyLowBytes
add hl, bc
ld [hl], e
- call Func_7d6bf
+ call Audio3_7d6bf
ret
-Func_7d66c: ; 7d66c (1f:566c)
+Audio3_7d66c: ; 7d66c (1f:566c)
ld b, $0
ld hl, Unknown_7db9b
add hl, bc
- ld a, [$ff25]
+ ld a, [rNR51]
or [hl]
ld d, a
ld a, c
@@ -819,18 +819,18 @@ Func_7d66c: ; 7d66c (1f:566c)
jr z, .sfxNoiseChannel
cp CH4
jr nc, .skip ; if sfx channel
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
add hl, bc
ld a, [hl]
and a
jr nz, .skip
.sfxNoiseChannel
- ld a, [wc004]
+ ld a, [wStereoPanning]
ld hl, Unknown_7db9b
add hl, bc
and [hl]
ld d, a
- ld a, [$ff25]
+ ld a, [rNR51]
ld hl, Unknown_7db93
add hl, bc
and [hl]
@@ -838,12 +838,12 @@ Func_7d66c: ; 7d66c (1f:566c)
ld d, a
.skip
ld a, d
- ld [$ff25], a
+ ld [rNR51], a
ret
-Func_7d69d: ; 7d69d (1f:569d)
+Audio3_7d69d: ; 7d69d (1f:569d)
ld b, $0
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, bc
ld d, [hl]
ld a, c
@@ -854,18 +854,18 @@ Func_7d69d: ; 7d69d (1f:569d)
ld a, d
and $3f
ld d, a
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, bc
ld a, [hl]
or d
ld d, a
.channel3
ld b, $1
- call Func_7d8ac
+ call Audio3_7d8ac
ld [hl], d
ret
-Func_7d6bf: ; 7d6bf (1f:56bf)
+Audio3_7d6bf: ; 7d6bf (1f:56bf)
ld a, c
cp CH2
jr z, .channel3
@@ -874,16 +874,16 @@ Func_7d6bf: ; 7d6bf (1f:56bf)
; fall through
.channel3
push de
- ld de, wc0e6
+ ld de, wMusicWaveInstrument
cp CH2
jr z, .musicChannel3
- ld de, wc0e7
+ ld de, wSfxWaveInstrument
.musicChannel3
ld a, [de]
add a
ld d, $0
ld e, a
- ld hl, Music1f_WavePointers
+ ld hl, Audio3_WavePointers
add hl, de
ld e, [hl]
inc hl
@@ -891,7 +891,7 @@ Func_7d6bf: ; 7d6bf (1f:56bf)
ld hl, $ff30
ld b, $f
ld a, $0
- ld [$ff1a], a
+ ld [rNR30], a
.loop
ld a, [de]
inc de
@@ -901,7 +901,7 @@ Func_7d6bf: ; 7d6bf (1f:56bf)
and a
jr nz, .loop
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
pop de
.notSfxChannel3
ld a, d
@@ -909,38 +909,38 @@ Func_7d6bf: ; 7d6bf (1f:56bf)
and $c7
ld d, a
ld b, $3
- call Func_7d8ac
+ call Audio3_7d8ac
ld [hl], e
inc hl
ld [hl], d
- call Func_7d729
+ call Audio3_7d729
ret
-Func_7d707: ; 7d707 (1f:5707)
- call Func_7d759
+Audio3_7d707: ; 7d707 (1f:5707)
+ call Audio3_7d759
jr nc, .asm_7d71f
ld d, $0
- ld a, [wc0f2]
+ ld a, [wTempoModifier]
add $80
jr nc, .asm_7d716
inc d
.asm_7d716
- ld [wc0eb], a
+ ld [wSfxTempo + 1], a
ld a, d
- ld [wc0ea], a
+ ld [wSfxTempo], a
jr .asm_7d728
.asm_7d71f
xor a
- ld [wc0eb], a
+ ld [wSfxTempo + 1], a
ld a, $1
- ld [wc0ea], a
+ ld [wSfxTempo], a
.asm_7d728
ret
-Func_7d729: ; 7d729 (1f:5729)
- call Func_7d759
+Audio3_7d729: ; 7d729 (1f:5729)
+ call Audio3_7d759
jr nc, .asm_7d73a
- ld a, [wc0f1]
+ ld a, [wFrequencyModifier]
add e
jr nc, .asm_7d735
inc d
@@ -953,10 +953,10 @@ Func_7d729: ; 7d729 (1f:5729)
.asm_7d73a
ret
-Func_7d73b: ; 7d73b (1f:573b)
- call Func_7d759
+Audio3_7d73b: ; 7d73b (1f:573b)
+ call Audio3_7d759
jr nc, .asm_7d756
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld e, c
ld d, $0
sla e
@@ -976,8 +976,8 @@ Func_7d73b: ; 7d73b (1f:573b)
ccf
ret
-Func_7d759: ; 7d759 (1f:5759)
- ld a, [wc02a]
+Audio3_7d759: ; 7d759 (1f:5759)
+ ld a, [wChannelSoundIDs + CH4]
cp $14
jr nc, .asm_7d762
jr .asm_7d768
@@ -993,28 +993,28 @@ Func_7d759: ; 7d759 (1f:5759)
scf
ret
-Music1f_ApplyPitchBend: ; 7d76d (1f:576d)
- ld hl, wc02e
+Audio3_ApplyPitchBend: ; 7d76d (1f:576d)
+ ld hl, wChannelFlags1
add hl, bc
bit 5, [hl]
jp nz, .asm_7d7b4
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld e, [hl]
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
ld l, [hl]
ld h, b
add hl, de
ld d, h
ld e, l
- ld hl, wc08e
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, bc
push hl
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
ld a, [hl]
pop hl
@@ -1026,26 +1026,26 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d)
ld a, $0
adc d
ld d, a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, [hl]
cp d
jp c, .asm_7d7fa
jr nz, .asm_7d7e7
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, [hl]
cp e
jp c, .asm_7d7fa
jr .asm_7d7e7
.asm_7d7b4
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld a, [hl]
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
ld e, [hl]
sub e
@@ -1053,7 +1053,7 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d)
ld a, d
sbc b
ld d, a
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
ld a, [hl]
add a
@@ -1064,79 +1064,79 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d)
ld a, d
sbc b
ld d, a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, d
cp [hl]
jr c, .asm_7d7fa
jr nz, .asm_7d7e7
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, e
cp [hl]
jr c, .asm_7d7fa
.asm_7d7e7
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld [hl], e
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld [hl], d
ld b, $3
- call Func_7d8ac
+ call Audio3_7d8ac
ld a, e
ld [hli], a
ld [hl], d
ret
.asm_7d7fa
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
res 4, [hl]
res 5, [hl]
ret
-Func_7d803: ; 7d803 (1f:5803)
- ld hl, wc096
+Audio3_7d803: ; 7d803 (1f:5803)
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld [hl], d
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld [hl], e
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, bc
ld a, [hl]
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
sub [hl]
jr nc, .asm_7d81b
ld a, $1
.asm_7d81b
ld [hl], a
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, e
sub [hl]
ld e, a
ld a, d
sbc b
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
sub [hl]
jr c, .asm_7d837
ld d, a
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 5, [hl]
jr .asm_7d85a
.asm_7d837
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, bc
ld d, [hl]
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, bc
ld e, [hl]
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, bc
ld a, [hl]
sub e
@@ -1144,17 +1144,17 @@ Func_7d803: ; 7d803 (1f:5803)
ld a, d
sbc b
ld d, a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, bc
ld a, [hl]
sub d
ld d, a
ld b, $0
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
res 5, [hl]
.asm_7d85a
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, bc
.asm_7d85e
inc b
@@ -1173,20 +1173,20 @@ Func_7d803: ; 7d803 (1f:5803)
add [hl]
ld d, b
ld b, $0
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, bc
ld [hl], d
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, bc
ld [hl], a
- ld hl, wc08e
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, bc
ld [hl], a
ret
-Music1f_ApplyDutyCycle: ; 7d881 (1f:5881)
+Audio3_ApplyDutyCycle: ; 7d881 (1f:5881)
ld b, $0
- ld hl, wc046
+ ld hl, wChannelDutyCycles
add hl, bc
ld a, [hl]
rlca
@@ -1195,19 +1195,19 @@ Music1f_ApplyDutyCycle: ; 7d881 (1f:5881)
and $c0
ld d, a
ld b, $1
- call Func_7d8ac
+ call Audio3_7d8ac
ld a, [hl]
and $3f
or d
ld [hl], a
ret
-Music1f_GetNextMusicByte: ; 7d899 (1f:5899)
+Audio3_GetNextMusicByte: ; 7d899 (1f:5899)
ld d, $0
ld a, c
add a
ld e, a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
ld a, [hli]
ld e, a
@@ -1220,7 +1220,7 @@ Music1f_GetNextMusicByte: ; 7d899 (1f:5899)
ld [hl], d
ret
-Func_7d8ac: ; 7d8ac (1f:58ac)
+Audio3_7d8ac: ; 7d8ac (1f:58ac)
ld a, c
ld hl, Unknown_7db8b
add l
@@ -1234,7 +1234,7 @@ Func_7d8ac: ; 7d8ac (1f:58ac)
ld h, $ff
ret
-Func_7d8bb: ; 7d8bb (1f:58bb)
+Audio3_7d8bb: ; 7d8bb (1f:58bb)
ld h, $0
.loop
srl a
@@ -1249,13 +1249,13 @@ Func_7d8bb: ; 7d8bb (1f:58bb)
.done
ret
-Func_7d8cc: ; 7d8cc (1f:58cc)
+Audio3_7d8cc: ; 7d8cc (1f:58cc)
ld h, $0
ld l, a
add hl, hl
ld d, h
ld e, l
- ld hl, Music1f_Pitches
+ ld hl, Audio3_Pitches
add hl, de
ld e, [hl]
inc hl
@@ -1274,102 +1274,102 @@ Func_7d8cc: ; 7d8cc (1f:58cc)
ld d, a
ret
-Func_7d8ea:: ; 7d8ea (1f:58ea)
- ld [wc001], a
+Audio3_PlaySound:: ; 7d8ea (1f:58ea)
+ ld [wSoundID], a
cp $ff
- jp z, Func_7daa8
+ jp z, Audio3_7daa8
cp $c2
- jp z, Func_7d9c2
- jp c, Func_7d9c2
+ jp z, Audio3_7d9c2
+ jp c, Audio3_7d9c2
cp $fe
jr z, .asm_7d901
- jp nc, Func_7d9c2
+ jp nc, Audio3_7d9c2
.asm_7d901
xor a
- ld [wc000], a
- ld [wc003], a
- ld [wc0e9], a
- ld [wc0e6], a
- ld [wc0e7], a
+ ld [wUnusedC000], a
+ ld [wDisableChannelOutputWhenSfxEnds], a
+ ld [wMusicTempo + 1], a
+ ld [wMusicWaveInstrument], a
+ ld [wSfxWaveInstrument], a
ld d, $8
- ld hl, wc016
- call FillMusicRAM1f
- ld hl, wc006
- call FillMusicRAM1f
+ ld hl, wChannelReturnAddresses
+ call FillAudioRAM3
+ ld hl, wChannelCommandPointers
+ call FillAudioRAM3
ld d, $4
- ld hl, wc026
- call FillMusicRAM1f
- ld hl, wc02e
- call FillMusicRAM1f
- ld hl, wc03e
- call FillMusicRAM1f
- ld hl, wc046
- call FillMusicRAM1f
- ld hl, wc04e
- call FillMusicRAM1f
- ld hl, wc056
- call FillMusicRAM1f
- ld hl, wc05e
- call FillMusicRAM1f
- ld hl, wc066
- call FillMusicRAM1f
- ld hl, wc06e
- call FillMusicRAM1f
- ld hl, wc036
- call FillMusicRAM1f
- ld hl, wc076
- call FillMusicRAM1f
- ld hl, wc07e
- call FillMusicRAM1f
- ld hl, wc086
- call FillMusicRAM1f
- ld hl, wc08e
- call FillMusicRAM1f
- ld hl, wc096
- call FillMusicRAM1f
- ld hl, wc09e
- call FillMusicRAM1f
- ld hl, wc0a6
- call FillMusicRAM1f
- ld hl, wc0ae
- call FillMusicRAM1f
+ ld hl, wChannelSoundIDs
+ call FillAudioRAM3
+ ld hl, wChannelFlags1
+ call FillAudioRAM3
+ ld hl, wChannelDuties
+ call FillAudioRAM3
+ ld hl, wChannelDutyCycles
+ call FillAudioRAM3
+ ld hl, wChannelVibratoDelayCounters
+ call FillAudioRAM3
+ ld hl, wChannelVibratoExtents
+ call FillAudioRAM3
+ ld hl, wChannelVibratoRates
+ call FillAudioRAM3
+ ld hl, wChannelFrequencyLowBytes
+ call FillAudioRAM3
+ ld hl, wChannelVibratoDelayCounterReloadValues
+ call FillAudioRAM3
+ ld hl, wChannelFlags2
+ call FillAudioRAM3
+ ld hl, wChannelPitchBendLengthModifiers
+ call FillAudioRAM3
+ ld hl, wChannelPitchBendFrequencySteps
+ call FillAudioRAM3
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
+ call FillAudioRAM3
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
+ call FillAudioRAM3
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
+ call FillAudioRAM3
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
+ call FillAudioRAM3
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
+ call FillAudioRAM3
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
+ call FillAudioRAM3
ld a, $1
- ld hl, wc0be
- call FillMusicRAM1f
- ld hl, wc0b6
- call FillMusicRAM1f
- ld hl, wc0c6
- call FillMusicRAM1f
- ld [wc0e8], a
+ ld hl, wChannelLoopCounters
+ call FillAudioRAM3
+ ld hl, wChannelNoteDelayCounters
+ call FillAudioRAM3
+ ld hl, wChannelNoteSpeeds
+ call FillAudioRAM3
+ ld [wMusicTempo], a
ld a, $ff
- ld [wc004], a
+ ld [wStereoPanning], a
xor a
- ld [$ff24], a
+ ld [rNR50], a
ld a, $8
- ld [$ff10], a
+ ld [rNR10], a
ld a, $0
- ld [$ff25], a
+ ld [rNR51], a
xor a
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $80
- ld [$ff1a], a
+ ld [rNR30], a
ld a, $77
- ld [$ff24], a
- jp Func_7db03
+ ld [rNR50], a
+ jp Audio3_7db03
-Func_7d9c2: ; 7d9c2 (1f:59c2)
+Audio3_7d9c2: ; 7d9c2 (1f:59c2)
ld l, a
ld e, a
ld h, $0
ld d, h
add hl, hl
add hl, de
- ld de, SFX_Headers_1f
+ ld de, SFX_Headers_3
add hl, de
ld a, h
- ld [wc0ec], a
+ ld [wSfxHeaderPointer], a
ld a, l
- ld [wc0ed], a
+ ld [wSfxHeaderPointer + 1], a
ld a, [hl]
and $c0
rlca
@@ -1382,9 +1382,9 @@ Func_7d9c2: ; 7d9c2 (1f:59c2)
add c
ld c, a
ld b, $0
- ld a, [wc0ec]
+ ld a, [wSfxHeaderPointer]
ld h, a
- ld a, [wc0ed]
+ ld a, [wSfxHeaderPointer + 1]
ld l, a
add hl, bc
ld c, d
@@ -1392,7 +1392,7 @@ Func_7d9c2: ; 7d9c2 (1f:59c2)
and $f
ld e, a
ld d, $0
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, de
ld a, [hl]
and a
@@ -1400,7 +1400,7 @@ Func_7d9c2: ; 7d9c2 (1f:59c2)
ld a, e
cp $7
jr nz, .asm_7da0e
- ld a, [wc001]
+ ld a, [wSoundID]
cp $14
jr nc, .asm_7da07
ret
@@ -1410,7 +1410,7 @@ Func_7d9c2: ; 7d9c2 (1f:59c2)
jr z, .asm_7da17
jr c, .asm_7da17
.asm_7da0e
- ld a, [wc001]
+ ld a, [wSoundID]
cp [hl]
jr z, .asm_7da17
jr c, .asm_7da17
@@ -1423,132 +1423,132 @@ Func_7d9c2: ; 7d9c2 (1f:59c2)
add hl, hl
ld d, h
ld e, l
- ld hl, wc016
+ ld hl, wChannelReturnAddresses
add hl, de
ld [hli], a
ld [hl], a
- ld hl, wc006
+ ld hl, wChannelCommandPointers
add hl, de
ld [hli], a
ld [hl], a
pop de
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, de
ld [hl], a
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, de
ld [hl], a
- ld hl, wc03e
+ ld hl, wChannelDuties
add hl, de
ld [hl], a
- ld hl, wc046
+ ld hl, wChannelDutyCycles
add hl, de
ld [hl], a
- ld hl, wc04e
+ ld hl, wChannelVibratoDelayCounters
add hl, de
ld [hl], a
- ld hl, wc056
+ ld hl, wChannelVibratoExtents
add hl, de
ld [hl], a
- ld hl, wc05e
+ ld hl, wChannelVibratoRates
add hl, de
ld [hl], a
- ld hl, wc066
+ ld hl, wChannelFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc06e
+ ld hl, wChannelVibratoDelayCounterReloadValues
add hl, de
ld [hl], a
- ld hl, wc076
+ ld hl, wChannelPitchBendLengthModifiers
add hl, de
ld [hl], a
- ld hl, wc07e
+ ld hl, wChannelPitchBendFrequencySteps
add hl, de
ld [hl], a
- ld hl, wc086
+ ld hl, wChannelPitchBendFrequencyStepsFractionalPart
add hl, de
ld [hl], a
- ld hl, wc08e
+ ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
add hl, de
ld [hl], a
- ld hl, wc096
+ ld hl, wChannelPitchBendCurrentFrequencyHighBytes
add hl, de
ld [hl], a
- ld hl, wc09e
+ ld hl, wChannelPitchBendCurrentFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc0a6
+ ld hl, wChannelPitchBendTargetFrequencyHighBytes
add hl, de
ld [hl], a
- ld hl, wc0ae
+ ld hl, wChannelPitchBendTargetFrequencyLowBytes
add hl, de
ld [hl], a
- ld hl, wc036
+ ld hl, wChannelFlags2
add hl, de
ld [hl], a
ld a, $1
- ld hl, wc0be
+ ld hl, wChannelLoopCounters
add hl, de
ld [hl], a
- ld hl, wc0b6
+ ld hl, wChannelNoteDelayCounters
add hl, de
ld [hl], a
- ld hl, wc0c6
+ ld hl, wChannelNoteSpeeds
add hl, de
ld [hl], a
ld a, e
cp $4
jr nz, .asm_7da9f
ld a, $8
- ld [$ff10], a
+ ld [rNR10], a
.asm_7da9f
ld a, c
and a
- jp z, Func_7db03
+ jp z, Audio3_7db03
dec c
jp .asm_7d9db
-Func_7daa8: ; 7daa8 (1f:5aa8)
+Audio3_7daa8: ; 7daa8 (1f:5aa8)
ld a, $80
- ld [$ff26], a
- ld [$ff1a], a
+ ld [rNR52], a
+ ld [rNR30], a
xor a
- ld [$ff25], a
- ld [$ff1c], a
+ ld [rNR51], a
+ ld [rNR32], a
ld a, $8
- ld [$ff10], a
- ld [$ff12], a
- ld [$ff17], a
- ld [$ff21], a
+ ld [rNR10], a
+ ld [rNR12], a
+ ld [rNR22], a
+ ld [rNR42], a
ld a, $40
- ld [$ff14], a
- ld [$ff19], a
- ld [$ff23], a
+ ld [rNR14], a
+ ld [rNR24], a
+ ld [rNR44], a
ld a, $77
- ld [$ff24], a
+ ld [rNR50], a
xor a
- ld [wc000], a
- ld [wc003], a
- ld [wc002], a
- ld [wc0e9], a
- ld [wc0eb], a
- ld [wc0e6], a
- ld [wc0e7], a
+ ld [wUnusedC000], a
+ ld [wDisableChannelOutputWhenSfxEnds], a
+ ld [wMuteAudioAndPauseMusic], a
+ ld [wMusicTempo + 1], a
+ ld [wSfxTempo + 1], a
+ ld [wMusicWaveInstrument], a
+ ld [wSfxWaveInstrument], a
ld d, $a0
- ld hl, wc006
- call FillMusicRAM1f
+ ld hl, wChannelCommandPointers
+ call FillAudioRAM3
ld a, $1
ld d, $18
- ld hl, wc0b6
- call FillMusicRAM1f
- ld [wc0e8], a
- ld [wc0ea], a
+ ld hl, wChannelNoteDelayCounters
+ call FillAudioRAM3
+ ld [wMusicTempo], a
+ ld [wSfxTempo], a
ld a, $ff
- ld [wc004], a
+ ld [wStereoPanning], a
ret
; fills d bytes at hl with a
-FillMusicRAM1f: ; 7dafd (1f:5afd)
+FillAudioRAM3: ; 7dafd (1f:5afd)
ld b, d
.loop
ld [hli], a
@@ -1556,19 +1556,19 @@ FillMusicRAM1f: ; 7dafd (1f:5afd)
jr nz, .loop
ret
-Func_7db03: ; 7db03 (1f:5b03)
- ld a, [wc001]
+Audio3_7db03: ; 7db03 (1f:5b03)
+ ld a, [wSoundID]
ld l, a
ld e, a
ld h, $0
ld d, h
add hl, hl
add hl, de
- ld de, SFX_Headers_1f
+ ld de, SFX_Headers_3
add hl, de
ld e, l
ld d, h
- ld hl, wc006
+ ld hl, wChannelCommandPointers
ld a, [de] ; get channel number
ld b, a
rlca
@@ -1594,14 +1594,14 @@ Func_7db03: ; 7db03 (1f:5b03)
push af
ld b, $0
ld c, a
- ld hl, wc026
+ ld hl, wChannelSoundIDs
add hl, bc
- ld a, [wc001]
+ ld a, [wSoundID]
ld [hl], a
pop af
cp $3
jr c, .asm_7db46
- ld hl, wc02e
+ ld hl, wChannelFlags1
add hl, bc
set 2, [hl]
.asm_7db46
@@ -1620,38 +1620,38 @@ Func_7db03: ; 7db03 (1f:5b03)
ld a, [de]
inc de
jr nz, .asm_7db25
- ld a, [wc001]
+ ld a, [wSoundID]
cp $14
jr nc, .asm_7db5f
jr .asm_7db89
.asm_7db5f
- ld a, [wc001]
+ ld a, [wSoundID]
cp $86
jr z, .asm_7db89
jr c, .asm_7db6a
jr .asm_7db89
.asm_7db6a
- ld hl, wc02a
+ ld hl, wChannelSoundIDs + CH4
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld hl, wc012 ; sfx noise channel pointer
- ld de, Noise1f_endchannel
+ ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer
+ ld de, Noise3_endchannel
ld [hl], e
inc hl
ld [hl], d ; overwrite pointer to point to endchannel
- ld a, [wc005]
+ ld a, [wSavedVolume]
and a
jr nz, .asm_7db89
- ld a, [$ff24]
- ld [wc005], a
+ ld a, [rNR50]
+ ld [wSavedVolume], a
ld a, $77
- ld [$ff24], a
+ ld [rNR50], a
.asm_7db89
ret
-Noise1f_endchannel: ; 7db8a (1f:5b8a)
+Noise3_endchannel: ; 7db8a (1f:5b8a)
endchannel
Unknown_7db8b: ; 7db8b (1f:5b8b)
@@ -1666,7 +1666,7 @@ Unknown_7db9b: ; 7db9b (1f:5b9b)
db $11, $22, $44, $88 ; channels 0-3
db $11, $22, $44, $88 ; channels 4-7
-Music1f_Pitches: ; 7dba3 (1f:5ba3)
+Audio3_Pitches: ; 7dba3 (1f:5ba3)
dw $F82C ; C_
dw $F89D ; C#
dw $F907 ; D_
diff --git a/audio/headers/musicheaders02.asm b/audio/headers/musicheaders1.asm
index 82342c81..a6449436 100755..100644
--- a/audio/headers/musicheaders02.asm
+++ b/audio/headers/musicheaders1.asm
@@ -182,5 +182,3 @@ Music_IndigoPlateau:: ; 82f1 (2:42f1)
dw Music_IndigoPlateau_Ch3
db CH3
dw Music_IndigoPlateau_Ch4
-
-; 0x82fd
diff --git a/audio/headers/musicheaders08.asm b/audio/headers/musicheaders2.asm
index 85cf2825..85cf2825 100755..100644
--- a/audio/headers/musicheaders08.asm
+++ b/audio/headers/musicheaders2.asm
diff --git a/audio/headers/musicheaders1f.asm b/audio/headers/musicheaders3.asm
index 97b81d45..7846e48f 100755..100644
--- a/audio/headers/musicheaders1f.asm
+++ b/audio/headers/musicheaders3.asm
@@ -156,5 +156,3 @@ Music_MeetMaleTrainer:: ; 7c2f4 (1f:42f4)
dw Music_MeetMaleTrainer_Ch2
db CH2
dw Music_MeetMaleTrainer_Ch3
-
-; 0x7c2fd
diff --git a/audio/headers/sfxheaders02.asm b/audio/headers/sfxheaders02.asm
deleted file mode 100755
index 22ccb1d7..00000000
--- a/audio/headers/sfxheaders02.asm
+++ /dev/null
@@ -1,564 +0,0 @@
-SFX_Headers_02::
- db $ff, $ff, $ff ; padding
-
-SFX_02_01:: ; 8003 (2:4003)
- db CH7
- dw SFX_02_01_Ch1
-
-SFX_02_02:: ; 8006 (2:4006)
- db CH7
- dw SFX_02_02_Ch1
-
-SFX_02_03:: ; 8009 (2:4009)
- db CH7
- dw SFX_02_03_Ch1
-
-SFX_02_04:: ; 800c (2:400c)
- db CH7
- dw SFX_02_04_Ch1
-
-SFX_02_05:: ; 800f (2:400f)
- db CH7
- dw SFX_02_05_Ch1
-
-SFX_02_06:: ; 8012 (2:4012)
- db CH7
- dw SFX_02_06_Ch1
-
-SFX_02_07:: ; 8015 (2:4015)
- db CH7
- dw SFX_02_07_Ch1
-
-SFX_02_08:: ; 8018 (2:4018)
- db CH7
- dw SFX_02_08_Ch1
-
-SFX_02_09:: ; 801b (2:401b)
- db CH7
- dw SFX_02_09_Ch1
-
-SFX_02_0a:: ; 801e (2:401e)
- db CH7
- dw SFX_02_0a_Ch1
-
-SFX_02_0b:: ; 8021 (2:4021)
- db CH7
- dw SFX_02_0b_Ch1
-
-SFX_02_0c:: ; 8024 (2:4024)
- db CH7
- dw SFX_02_0c_Ch1
-
-SFX_02_0d:: ; 8027 (2:4027)
- db CH7
- dw SFX_02_0d_Ch1
-
-SFX_02_0e:: ; 802a (2:402a)
- db CH7
- dw SFX_02_0e_Ch1
-
-SFX_02_0f:: ; 802d (2:402d)
- db CH7
- dw SFX_02_0f_Ch1
-
-SFX_02_10:: ; 8030 (2:4030)
- db CH7
- dw SFX_02_10_Ch1
-
-SFX_02_11:: ; 8033 (2:4033)
- db CH7
- dw SFX_02_11_Ch1
-
-SFX_02_12:: ; 8036 (2:4036)
- db CH7
- dw SFX_02_12_Ch1
-
-SFX_02_13:: ; 8039 (2:4039)
- db CH7
- dw SFX_02_13_Ch1
-
-SFX_02_14:: ; 803c (2:403c)
- db ( $80 | CH4 )
- dw SFX_02_14_Ch1
- db CH5
- dw SFX_02_14_Ch2
- db CH7
- dw SFX_02_14_Ch3
-
-SFX_02_15:: ; 8045 (2:4045)
- db ( $80 | CH4 )
- dw SFX_02_15_Ch1
- db CH5
- dw SFX_02_15_Ch2
- db CH7
- dw SFX_02_15_Ch3
-
-SFX_02_16:: ; 804e (2:404e)
- db ( $80 | CH4 )
- dw SFX_02_16_Ch1
- db CH5
- dw SFX_02_16_Ch2
- db CH7
- dw SFX_02_16_Ch3
-
-SFX_02_17:: ; 8057 (2:4057)
- db ( $80 | CH4 )
- dw SFX_02_17_Ch1
- db CH5
- dw SFX_02_17_Ch2
- db CH7
- dw SFX_02_17_Ch3
-
-SFX_02_18:: ; 8060 (2:4060)
- db ( $80 | CH4 )
- dw SFX_02_18_Ch1
- db CH5
- dw SFX_02_18_Ch2
- db CH7
- dw SFX_02_18_Ch3
-
-SFX_02_19:: ; 8069 (2:4069)
- db ( $80 | CH4 )
- dw SFX_02_19_Ch1
- db CH5
- dw SFX_02_19_Ch2
- db CH7
- dw SFX_02_19_Ch3
-
-SFX_02_1a:: ; 8072 (2:4072)
- db ( $80 | CH4 )
- dw SFX_02_1a_Ch1
- db CH5
- dw SFX_02_1a_Ch2
- db CH7
- dw SFX_02_1a_Ch3
-
-SFX_02_1b:: ; 807b (2:407b)
- db ( $80 | CH4 )
- dw SFX_02_1b_Ch1
- db CH5
- dw SFX_02_1b_Ch2
- db CH7
- dw SFX_02_1b_Ch3
-
-SFX_02_1c:: ; 8084 (2:4084)
- db ( $80 | CH4 )
- dw SFX_02_1c_Ch1
- db CH5
- dw SFX_02_1c_Ch2
- db CH7
- dw SFX_02_1c_Ch3
-
-SFX_02_1d:: ; 808d (2:408d)
- db ( $80 | CH4 )
- dw SFX_02_1d_Ch1
- db CH5
- dw SFX_02_1d_Ch2
- db CH7
- dw SFX_02_1d_Ch3
-
-SFX_02_1e:: ; 8096 (2:4096)
- db ( $80 | CH4 )
- dw SFX_02_1e_Ch1
- db CH5
- dw SFX_02_1e_Ch2
- db CH7
- dw SFX_02_1e_Ch3
-
-SFX_02_1f:: ; 809f (2:409f)
- db ( $80 | CH4 )
- dw SFX_02_1f_Ch1
- db CH5
- dw SFX_02_1f_Ch2
- db CH7
- dw SFX_02_1f_Ch3
-
-SFX_02_20:: ; 80a8 (2:40a8)
- db ( $80 | CH4 )
- dw SFX_02_20_Ch1
- db CH5
- dw SFX_02_20_Ch2
- db CH7
- dw SFX_02_20_Ch3
-
-SFX_02_21:: ; 80b1 (2:40b1)
- db ( $80 | CH4 )
- dw SFX_02_21_Ch1
- db CH5
- dw SFX_02_21_Ch2
- db CH7
- dw SFX_02_21_Ch3
-
-SFX_02_22:: ; 80ba (2:40ba)
- db ( $80 | CH4 )
- dw SFX_02_22_Ch1
- db CH5
- dw SFX_02_22_Ch2
- db CH7
- dw SFX_02_22_Ch3
-
-SFX_02_23:: ; 80c3 (2:40c3)
- db ( $80 | CH4 )
- dw SFX_02_23_Ch1
- db CH5
- dw SFX_02_23_Ch2
- db CH7
- dw SFX_02_23_Ch3
-
-SFX_02_24:: ; 80cc (2:40cc)
- db ( $80 | CH4 )
- dw SFX_02_24_Ch1
- db CH5
- dw SFX_02_24_Ch2
- db CH7
- dw SFX_02_24_Ch3
-
-SFX_02_25:: ; 80d5 (2:40d5)
- db ( $80 | CH4 )
- dw SFX_02_25_Ch1
- db CH5
- dw SFX_02_25_Ch2
- db CH7
- dw SFX_02_25_Ch3
-
-SFX_02_26:: ; 80de (2:40de)
- db ( $80 | CH4 )
- dw SFX_02_26_Ch1
- db CH5
- dw SFX_02_26_Ch2
- db CH7
- dw SFX_02_26_Ch3
-
-SFX_02_27:: ; 80e7 (2:40e7)
- db ( $80 | CH4 )
- dw SFX_02_27_Ch1
- db CH5
- dw SFX_02_27_Ch2
- db CH7
- dw SFX_02_27_Ch3
-
-SFX_02_28:: ; 80f0 (2:40f0)
- db ( $80 | CH4 )
- dw SFX_02_28_Ch1
- db CH5
- dw SFX_02_28_Ch2
- db CH7
- dw SFX_02_28_Ch3
-
-SFX_02_29:: ; 80f9 (2:40f9)
- db ( $80 | CH4 )
- dw SFX_02_29_Ch1
- db CH5
- dw SFX_02_29_Ch2
- db CH7
- dw SFX_02_29_Ch3
-
-SFX_02_2a:: ; 8102 (2:4102)
- db ( $80 | CH4 )
- dw SFX_02_2a_Ch1
- db CH5
- dw SFX_02_2a_Ch2
- db CH7
- dw SFX_02_2a_Ch3
-
-SFX_02_2b:: ; 810b (2:410b)
- db ( $80 | CH4 )
- dw SFX_02_2b_Ch1
- db CH5
- dw SFX_02_2b_Ch2
- db CH7
- dw SFX_02_2b_Ch3
-
-SFX_02_2c:: ; 8114 (2:4114)
- db ( $80 | CH4 )
- dw SFX_02_2c_Ch1
- db CH5
- dw SFX_02_2c_Ch2
- db CH7
- dw SFX_02_2c_Ch3
-
-SFX_02_2d:: ; 811d (2:411d)
- db ( $80 | CH4 )
- dw SFX_02_2d_Ch1
- db CH5
- dw SFX_02_2d_Ch2
- db CH7
- dw SFX_02_2d_Ch3
-
-SFX_02_2e:: ; 8126 (2:4126)
- db ( $80 | CH4 )
- dw SFX_02_2e_Ch1
- db CH5
- dw SFX_02_2e_Ch2
- db CH7
- dw SFX_02_2e_Ch3
-
-SFX_02_2f:: ; 812f (2:412f)
- db ( $80 | CH4 )
- dw SFX_02_2f_Ch1
- db CH5
- dw SFX_02_2f_Ch2
- db CH7
- dw SFX_02_2f_Ch3
-
-SFX_02_30:: ; 8138 (2:4138)
- db ( $80 | CH4 )
- dw SFX_02_30_Ch1
- db CH5
- dw SFX_02_30_Ch2
- db CH7
- dw SFX_02_30_Ch3
-
-SFX_02_31:: ; 8141 (2:4141)
- db ( $80 | CH4 )
- dw SFX_02_31_Ch1
- db CH5
- dw SFX_02_31_Ch2
- db CH7
- dw SFX_02_31_Ch3
-
-SFX_02_32:: ; 814a (2:414a)
- db ( $80 | CH4 )
- dw SFX_02_32_Ch1
- db CH5
- dw SFX_02_32_Ch2
- db CH7
- dw SFX_02_32_Ch3
-
-SFX_02_33:: ; 8153 (2:4153)
- db ( $80 | CH4 )
- dw SFX_02_33_Ch1
- db CH5
- dw SFX_02_33_Ch2
- db CH7
- dw SFX_02_33_Ch3
-
-SFX_02_34:: ; 815c (2:415c)
- db ( $80 | CH4 )
- dw SFX_02_34_Ch1
- db CH5
- dw SFX_02_34_Ch2
- db CH7
- dw SFX_02_34_Ch3
-
-SFX_02_35:: ; 8165 (2:4165)
- db ( $80 | CH4 )
- dw SFX_02_35_Ch1
- db CH5
- dw SFX_02_35_Ch2
- db CH7
- dw SFX_02_35_Ch3
-
-SFX_02_36:: ; 816e (2:416e)
- db ( $80 | CH4 )
- dw SFX_02_36_Ch1
- db CH5
- dw SFX_02_36_Ch2
- db CH7
- dw SFX_02_36_Ch3
-
-SFX_02_37:: ; 8177 (2:4177)
- db ( $80 | CH4 )
- dw SFX_02_37_Ch1
- db CH5
- dw SFX_02_37_Ch2
- db CH7
- dw SFX_02_37_Ch3
-
-SFX_02_38:: ; 8180 (2:4180)
- db ( $80 | CH4 )
- dw SFX_02_38_Ch1
- db CH5
- dw SFX_02_38_Ch2
- db CH7
- dw SFX_02_38_Ch3
-
-SFX_02_39:: ; 8189 (2:4189)
- db ( $80 | CH4 )
- dw SFX_02_39_Ch1
- db CH5
- dw SFX_02_39_Ch2
- db CH7
- dw SFX_02_39_Ch3
-
-SFX_02_3a:: ; 8192 (2:4192)
- db ( $80 | CH4 )
- dw SFX_02_3a_Ch1
- db CH5
- dw SFX_02_3a_Ch2
- db CH6
- dw SFX_02_3a_Ch3
-
-SFX_02_3b:: ; 819b (2:419b)
- db ( $80 | CH4 )
- dw SFX_02_3b_Ch1
- db CH5
- dw SFX_02_3b_Ch2
- db CH6
- dw SFX_02_3b_Ch3
-
-SFX_02_3c:: ; 81a4 (2:41a4)
- db CH4
- dw SFX_02_3c_Ch1
-
-SFX_02_3d:: ; 81a7 (2:41a7)
- db CH4
- dw SFX_02_3d_Ch1
-
-SFX_02_3e:: ; 81aa (2:41aa)
- db CH4
- dw SFX_02_3e_Ch1
-
-SFX_02_3f:: ; 81ad (2:41ad)
- db CH7
- dw SFX_02_3f_Ch1
-
-SFX_02_40:: ; 81b0 (2:41b0)
- db CH4
- dw SFX_02_40_Ch1
-
-SFX_02_41:: ; 81b3 (2:41b3)
- db ( $80 | CH4 )
- dw SFX_02_41_Ch1
- db CH5
- dw SFX_02_41_Ch2
- db CH6
- dw SFX_02_41_Ch3
-
-SFX_02_42:: ; 81bc (2:41bc)
- db ( $80 | CH4 )
- dw SFX_02_42_Ch1
- db CH5
- dw SFX_02_42_Ch2
- db CH6
- dw SFX_02_42_Ch3
-
-SFX_02_43:: ; 81c5 (2:41c5)
- db CH4
- dw SFX_02_43_Ch1
-
-SFX_02_44:: ; 81c8 (2:41c8)
- db CH4
- dw SFX_02_44_Ch1
-
-SFX_02_45:: ; 81cb (2:41cb)
- db CH4
- dw SFX_02_45_Ch1
-
-SFX_02_46:: ; 81ce (2:41ce)
- db CH4
- dw SFX_02_46_Ch1
-
-SFX_02_47:: ; 81d1 (2:41d1)
- db CH4
- dw SFX_02_47_Ch1
-
-SFX_02_48:: ; 81d4 (2:41d4)
- db CH4
- dw SFX_02_48_Ch1
-
-SFX_02_49:: ; 81d7 (2:41d7)
- db CH4
- dw SFX_02_49_Ch1
-
-SFX_02_4a:: ; 81da (2:41da)
- db CH4
- dw SFX_02_4a_Ch1
-
-SFX_02_4b:: ; 81dd (2:41dd)
- db CH4
- dw SFX_02_4b_Ch1
-
-SFX_02_4c:: ; 81e0 (2:41e0)
- db CH4
- dw SFX_02_4c_Ch1
-
-SFX_02_4d:: ; 81e3 (2:41e3)
- db CH4
- dw SFX_02_4d_Ch1
-
-SFX_02_4e:: ; 81e6 (2:41e6)
- db CH4
- dw SFX_02_4e_Ch1
-
-SFX_02_4f:: ; 81e9 (2:41e9)
- db CH7
- dw SFX_02_4f_Ch1
-
-SFX_02_50:: ; 81ec (2:41ec)
- db CH7
- dw SFX_02_50_Ch1
-
-SFX_02_51:: ; 81ef (2:41ef)
- db ( $40 | CH4 )
- dw SFX_02_51_Ch1
- db CH5
- dw SFX_02_51_Ch2
-
-SFX_02_52:: ; 81f5 (2:41f5)
- db CH4
- dw SFX_02_52_Ch1
-
-SFX_02_53:: ; 81f8 (2:41f8)
- db CH7
- dw SFX_02_53_Ch1
-
-SFX_02_54:: ; 81fb (2:41fb)
- db ( $40 | CH4 )
- dw SFX_02_54_Ch1
- db CH5
- dw SFX_02_54_Ch2
-
-SFX_02_55:: ; 8201 (2:4201)
- db CH4
- dw SFX_02_55_Ch1
-
-SFX_02_56:: ; 8204 (2:4204)
- db CH7
- dw SFX_02_56_Ch1
-
-SFX_02_57:: ; 8207 (2:4207)
- db CH7
- dw SFX_02_57_Ch1
-
-SFX_02_58:: ; 820a (2:420a)
- db ( $40 | CH4 )
- dw SFX_02_58_Ch1
- db CH5
- dw SFX_02_58_Ch2
-
-SFX_02_59:: ; 8210 (2:4210)
- db ( $40 | CH4 )
- dw SFX_02_59_Ch1
- db CH5
- dw SFX_02_59_Ch2
-
-SFX_02_5a:: ; 8216 (2:4216)
- db ( $40 | CH4 )
- dw SFX_02_5a_Ch1
- db CH5
- dw SFX_02_5a_Ch2
-
-SFX_02_5b:: ; 821c (2:421c)
- db CH4
- dw SFX_02_5b_Ch1
-
-SFX_02_5c:: ; 821f (2:421f)
- db CH7
- dw SFX_02_5c_Ch1
-
-SFX_02_5d:: ; 8222 (2:4222)
- db ( $40 | CH4 )
- dw SFX_02_5d_Ch1
- db CH5
- dw SFX_02_5d_Ch2
-
-SFX_02_5e:: ; 8228 (2:4228)
- db CH2
- dw SFX_02_5e_Ch1
-
-SFX_02_5f:: ; 822b (2:422b)
- db CH4
- dw SFX_02_5f_Ch1
-
-; 0x822e
diff --git a/audio/headers/sfxheaders08.asm b/audio/headers/sfxheaders08.asm
deleted file mode 100755
index 6ee61953..00000000
--- a/audio/headers/sfxheaders08.asm
+++ /dev/null
@@ -1,708 +0,0 @@
-SFX_Headers_08::
- db $ff, $ff, $ff ; padding
-
-SFX_08_01:: ; 20003 (8:4003)
- db CH7
- dw SFX_08_01_Ch1
-
-SFX_08_02:: ; 20006 (8:4006)
- db CH7
- dw SFX_08_02_Ch1
-
-SFX_08_03:: ; 20009 (8:4009)
- db CH7
- dw SFX_08_03_Ch1
-
-SFX_08_04:: ; 2000c (8:400c)
- db CH7
- dw SFX_08_04_Ch1
-
-SFX_08_05:: ; 2000f (8:400f)
- db CH7
- dw SFX_08_05_Ch1
-
-SFX_08_06:: ; 20012 (8:4012)
- db CH7
- dw SFX_08_06_Ch1
-
-SFX_08_07:: ; 20015 (8:4015)
- db CH7
- dw SFX_08_07_Ch1
-
-SFX_08_08:: ; 20018 (8:4018)
- db CH7
- dw SFX_08_08_Ch1
-
-SFX_08_09:: ; 2001b (8:401b)
- db CH7
- dw SFX_08_09_Ch1
-
-SFX_08_0a:: ; 2001e (8:401e)
- db CH7
- dw SFX_08_0a_Ch1
-
-SFX_08_0b:: ; 20021 (8:4021)
- db CH7
- dw SFX_08_0b_Ch1
-
-SFX_08_0c:: ; 20024 (8:4024)
- db CH7
- dw SFX_08_0c_Ch1
-
-SFX_08_0d:: ; 20027 (8:4027)
- db CH7
- dw SFX_08_0d_Ch1
-
-SFX_08_0e:: ; 2002a (8:402a)
- db CH7
- dw SFX_08_0e_Ch1
-
-SFX_08_0f:: ; 2002d (8:402d)
- db CH7
- dw SFX_08_0f_Ch1
-
-SFX_08_10:: ; 20030 (8:4030)
- db CH7
- dw SFX_08_10_Ch1
-
-SFX_08_11:: ; 20033 (8:4033)
- db CH7
- dw SFX_08_11_Ch1
-
-SFX_08_12:: ; 20036 (8:4036)
- db CH7
- dw SFX_08_12_Ch1
-
-SFX_08_13:: ; 20039 (8:4039)
- db CH7
- dw SFX_08_13_Ch1
-
-SFX_08_14:: ; 2003c (8:403c)
- db ( $80 | CH4 )
- dw SFX_08_14_Ch1
- db CH5
- dw SFX_08_14_Ch2
- db CH7
- dw SFX_08_14_Ch3
-
-SFX_08_15:: ; 20045 (8:4045)
- db ( $80 | CH4 )
- dw SFX_08_15_Ch1
- db CH5
- dw SFX_08_15_Ch2
- db CH7
- dw SFX_08_15_Ch3
-
-SFX_08_16:: ; 2004e (8:404e)
- db ( $80 | CH4 )
- dw SFX_08_16_Ch1
- db CH5
- dw SFX_08_16_Ch2
- db CH7
- dw SFX_08_16_Ch3
-
-SFX_08_17:: ; 20057 (8:4057)
- db ( $80 | CH4 )
- dw SFX_08_17_Ch1
- db CH5
- dw SFX_08_17_Ch2
- db CH7
- dw SFX_08_17_Ch3
-
-SFX_08_18:: ; 20060 (8:4060)
- db ( $80 | CH4 )
- dw SFX_08_18_Ch1
- db CH5
- dw SFX_08_18_Ch2
- db CH7
- dw SFX_08_18_Ch3
-
-SFX_08_19:: ; 20069 (8:4069)
- db ( $80 | CH4 )
- dw SFX_08_19_Ch1
- db CH5
- dw SFX_08_19_Ch2
- db CH7
- dw SFX_08_19_Ch3
-
-SFX_08_1a:: ; 20072 (8:4072)
- db ( $80 | CH4 )
- dw SFX_08_1a_Ch1
- db CH5
- dw SFX_08_1a_Ch2
- db CH7
- dw SFX_08_1a_Ch3
-
-SFX_08_1b:: ; 2007b (8:407b)
- db ( $80 | CH4 )
- dw SFX_08_1b_Ch1
- db CH5
- dw SFX_08_1b_Ch2
- db CH7
- dw SFX_08_1b_Ch3
-
-SFX_08_1c:: ; 20084 (8:4084)
- db ( $80 | CH4 )
- dw SFX_08_1c_Ch1
- db CH5
- dw SFX_08_1c_Ch2
- db CH7
- dw SFX_08_1c_Ch3
-
-SFX_08_1d:: ; 2008d (8:408d)
- db ( $80 | CH4 )
- dw SFX_08_1d_Ch1
- db CH5
- dw SFX_08_1d_Ch2
- db CH7
- dw SFX_08_1d_Ch3
-
-SFX_08_1e:: ; 20096 (8:4096)
- db ( $80 | CH4 )
- dw SFX_08_1e_Ch1
- db CH5
- dw SFX_08_1e_Ch2
- db CH7
- dw SFX_08_1e_Ch3
-
-SFX_08_1f:: ; 2009f (8:409f)
- db ( $80 | CH4 )
- dw SFX_08_1f_Ch1
- db CH5
- dw SFX_08_1f_Ch2
- db CH7
- dw SFX_08_1f_Ch3
-
-SFX_08_20:: ; 200a8 (8:40a8)
- db ( $80 | CH4 )
- dw SFX_08_20_Ch1
- db CH5
- dw SFX_08_20_Ch2
- db CH7
- dw SFX_08_20_Ch3
-
-SFX_08_21:: ; 200b1 (8:40b1)
- db ( $80 | CH4 )
- dw SFX_08_21_Ch1
- db CH5
- dw SFX_08_21_Ch2
- db CH7
- dw SFX_08_21_Ch3
-
-SFX_08_22:: ; 200ba (8:40ba)
- db ( $80 | CH4 )
- dw SFX_08_22_Ch1
- db CH5
- dw SFX_08_22_Ch2
- db CH7
- dw SFX_08_22_Ch3
-
-SFX_08_23:: ; 200c3 (8:40c3)
- db ( $80 | CH4 )
- dw SFX_08_23_Ch1
- db CH5
- dw SFX_08_23_Ch2
- db CH7
- dw SFX_08_23_Ch3
-
-SFX_08_24:: ; 200cc (8:40cc)
- db ( $80 | CH4 )
- dw SFX_08_24_Ch1
- db CH5
- dw SFX_08_24_Ch2
- db CH7
- dw SFX_08_24_Ch3
-
-SFX_08_25:: ; 200d5 (8:40d5)
- db ( $80 | CH4 )
- dw SFX_08_25_Ch1
- db CH5
- dw SFX_08_25_Ch2
- db CH7
- dw SFX_08_25_Ch3
-
-SFX_08_26:: ; 200de (8:40de)
- db ( $80 | CH4 )
- dw SFX_08_26_Ch1
- db CH5
- dw SFX_08_26_Ch2
- db CH7
- dw SFX_08_26_Ch3
-
-SFX_08_27:: ; 200e7 (8:40e7)
- db ( $80 | CH4 )
- dw SFX_08_27_Ch1
- db CH5
- dw SFX_08_27_Ch2
- db CH7
- dw SFX_08_27_Ch3
-
-SFX_08_28:: ; 200f0 (8:40f0)
- db ( $80 | CH4 )
- dw SFX_08_28_Ch1
- db CH5
- dw SFX_08_28_Ch2
- db CH7
- dw SFX_08_28_Ch3
-
-SFX_08_29:: ; 200f9 (8:40f9)
- db ( $80 | CH4 )
- dw SFX_08_29_Ch1
- db CH5
- dw SFX_08_29_Ch2
- db CH7
- dw SFX_08_29_Ch3
-
-SFX_08_2a:: ; 20102 (8:4102)
- db ( $80 | CH4 )
- dw SFX_08_2a_Ch1
- db CH5
- dw SFX_08_2a_Ch2
- db CH7
- dw SFX_08_2a_Ch3
-
-SFX_08_2b:: ; 2010b (8:410b)
- db ( $80 | CH4 )
- dw SFX_08_2b_Ch1
- db CH5
- dw SFX_08_2b_Ch2
- db CH7
- dw SFX_08_2b_Ch3
-
-SFX_08_2c:: ; 20114 (8:4114)
- db ( $80 | CH4 )
- dw SFX_08_2c_Ch1
- db CH5
- dw SFX_08_2c_Ch2
- db CH7
- dw SFX_08_2c_Ch3
-
-SFX_08_2d:: ; 2011d (8:411d)
- db ( $80 | CH4 )
- dw SFX_08_2d_Ch1
- db CH5
- dw SFX_08_2d_Ch2
- db CH7
- dw SFX_08_2d_Ch3
-
-SFX_08_2e:: ; 20126 (8:4126)
- db ( $80 | CH4 )
- dw SFX_08_2e_Ch1
- db CH5
- dw SFX_08_2e_Ch2
- db CH7
- dw SFX_08_2e_Ch3
-
-SFX_08_2f:: ; 2012f (8:412f)
- db ( $80 | CH4 )
- dw SFX_08_2f_Ch1
- db CH5
- dw SFX_08_2f_Ch2
- db CH7
- dw SFX_08_2f_Ch3
-
-SFX_08_30:: ; 20138 (8:4138)
- db ( $80 | CH4 )
- dw SFX_08_30_Ch1
- db CH5
- dw SFX_08_30_Ch2
- db CH7
- dw SFX_08_30_Ch3
-
-SFX_08_31:: ; 20141 (8:4141)
- db ( $80 | CH4 )
- dw SFX_08_31_Ch1
- db CH5
- dw SFX_08_31_Ch2
- db CH7
- dw SFX_08_31_Ch3
-
-SFX_08_32:: ; 2014a (8:414a)
- db ( $80 | CH4 )
- dw SFX_08_32_Ch1
- db CH5
- dw SFX_08_32_Ch2
- db CH7
- dw SFX_08_32_Ch3
-
-SFX_08_33:: ; 20153 (8:4153)
- db ( $80 | CH4 )
- dw SFX_08_33_Ch1
- db CH5
- dw SFX_08_33_Ch2
- db CH7
- dw SFX_08_33_Ch3
-
-SFX_08_34:: ; 2015c (8:415c)
- db ( $80 | CH4 )
- dw SFX_08_34_Ch1
- db CH5
- dw SFX_08_34_Ch2
- db CH7
- dw SFX_08_34_Ch3
-
-SFX_08_35:: ; 20165 (8:4165)
- db ( $80 | CH4 )
- dw SFX_08_35_Ch1
- db CH5
- dw SFX_08_35_Ch2
- db CH7
- dw SFX_08_35_Ch3
-
-SFX_08_36:: ; 2016e (8:416e)
- db ( $80 | CH4 )
- dw SFX_08_36_Ch1
- db CH5
- dw SFX_08_36_Ch2
- db CH7
- dw SFX_08_36_Ch3
-
-SFX_08_37:: ; 20177 (8:4177)
- db ( $80 | CH4 )
- dw SFX_08_37_Ch1
- db CH5
- dw SFX_08_37_Ch2
- db CH7
- dw SFX_08_37_Ch3
-
-SFX_08_38:: ; 20180 (8:4180)
- db ( $80 | CH4 )
- dw SFX_08_38_Ch1
- db CH5
- dw SFX_08_38_Ch2
- db CH7
- dw SFX_08_38_Ch3
-
-SFX_08_39:: ; 20189 (8:4189)
- db ( $80 | CH4 )
- dw SFX_08_39_Ch1
- db CH5
- dw SFX_08_39_Ch2
- db CH7
- dw SFX_08_39_Ch3
-
-SFX_08_3a:: ; 20192 (8:4192)
- db ( $80 | CH4 )
- dw SFX_08_3a_Ch1
- db CH5
- dw SFX_08_3a_Ch2
- db CH6
- dw SFX_08_3a_Ch3
-
-SFX_08_3b:: ; 2019b (8:419b)
- db ( $80 | CH4 )
- dw SFX_08_3b_Ch1
- db CH5
- dw SFX_08_3b_Ch2
- db CH6
- dw SFX_08_3b_Ch3
-
-SFX_08_3c:: ; 201a4 (8:41a4)
- db CH4
- dw SFX_08_3c_Ch1
-
-SFX_08_3d:: ; 201a7 (8:41a7)
- db CH4
- dw SFX_08_3d_Ch1
-
-SFX_08_3e:: ; 201aa (8:41aa)
- db CH4
- dw SFX_08_3e_Ch1
-
-SFX_08_3f:: ; 201ad (8:41ad)
- db CH7
- dw SFX_08_3f_Ch1
-
-SFX_08_40:: ; 201b0 (8:41b0)
- db CH4
- dw SFX_08_40_Ch1
-
-SFX_08_41:: ; 201b3 (8:41b3)
- db ( $40 | CH4 )
- dw SFX_08_41_Ch1
- db CH5
- dw SFX_08_41_Ch2
-
-SFX_08_42:: ; 201b9 (8:41b9)
- db ( $40 | CH4 )
- dw SFX_08_42_Ch1
- db CH7
- dw SFX_08_42_Ch2
-
-SFX_08_43:: ; 201bf (8:41bf)
- db ( $40 | CH4 )
- dw SFX_08_43_Ch1
- db CH7
- dw SFX_08_43_Ch2
-
-SFX_08_44:: ; 201c5 (8:41c5)
- db CH7
- dw SFX_08_44_Ch1
-
-SFX_08_45:: ; 201c8 (8:41c8)
- db ( $40 | CH4 )
- dw SFX_08_45_Ch1
- db CH5
- dw SFX_08_45_Ch2
-
-SFX_08_46:: ; 201ce (8:41ce)
- db ( $80 | CH4 )
- dw SFX_08_46_Ch1
- db CH5
- dw SFX_08_46_Ch2
- db CH6
- dw SFX_08_46_Ch3
-
-SFX_08_47:: ; 201d7 (8:41d7)
- db CH7
- dw SFX_08_47_Ch1
-
-SFX_08_48:: ; 201da (8:41da)
- db CH4
- dw SFX_08_48_Ch1
-
-SFX_08_49:: ; 201dd (8:41dd)
- db CH4
- dw SFX_08_49_Ch1
-
-SFX_08_4a:: ; 201e0 (8:41e0)
- db CH7
- dw SFX_08_4a_Ch1
-
-SFX_08_4b:: ; 201e3 (8:41e3)
- db CH7
- dw SFX_08_4b_Ch1
-
-SFX_08_4c:: ; 201e6 (8:41e6)
- db CH7
- dw SFX_08_4c_Ch1
-
-SFX_08_4d:: ; 201e9 (8:41e9)
- db CH7
- dw SFX_08_4d_Ch1
-
-SFX_08_4e:: ; 201ec (8:41ec)
- db CH7
- dw SFX_08_4e_Ch1
-
-SFX_08_4f:: ; 201ef (8:41ef)
- db CH7
- dw SFX_08_4f_Ch1
-
-SFX_08_50:: ; 201f2 (8:41f2)
- db CH7
- dw SFX_08_50_Ch1
-
-SFX_08_51:: ; 201f5 (8:41f5)
- db CH7
- dw SFX_08_51_Ch1
-
-SFX_08_52:: ; 201f8 (8:41f8)
- db CH7
- dw SFX_08_52_Ch1
-
-SFX_08_53:: ; 201fb (8:41fb)
- db CH7
- dw SFX_08_53_Ch1
-
-SFX_08_54:: ; 201fe (8:41fe)
- db CH7
- dw SFX_08_54_Ch1
-
-SFX_08_55:: ; 20201 (8:4201)
- db CH7
- dw SFX_08_55_Ch1
-
-SFX_08_56:: ; 20204 (8:4204)
- db CH7
- dw SFX_08_56_Ch1
-
-SFX_08_57:: ; 20207 (8:4207)
- db CH7
- dw SFX_08_57_Ch1
-
-SFX_08_58:: ; 2020a (8:420a)
- db CH7
- dw SFX_08_58_Ch1
-
-SFX_08_59:: ; 2020d (8:420d)
- db CH7
- dw SFX_08_59_Ch1
-
-SFX_08_5a:: ; 20210 (8:4210)
- db CH7
- dw SFX_08_5a_Ch1
-
-SFX_08_5b:: ; 20213 (8:4213)
- db CH7
- dw SFX_08_5b_Ch1
-
-SFX_08_5c:: ; 20216 (8:4216)
- db CH7
- dw SFX_08_5c_Ch1
-
-SFX_08_5d:: ; 20219 (8:4219)
- db CH7
- dw SFX_08_5d_Ch1
-
-SFX_08_5e:: ; 2021c (8:421c)
- db ( $40 | CH4 )
- dw SFX_08_5e_Ch1
- db CH7
- dw SFX_08_5e_Ch2
-
-SFX_08_5f:: ; 20222 (8:4222)
- db CH7
- dw SFX_08_5f_Ch1
-
-SFX_08_60:: ; 20225 (8:4225)
- db CH7
- dw SFX_08_60_Ch1
-
-SFX_08_61:: ; 20228 (8:4228)
- db CH7
- dw SFX_08_61_Ch1
-
-SFX_08_62:: ; 2022b (8:422b)
- db CH7
- dw SFX_08_62_Ch1
-
-SFX_08_63:: ; 2022e (8:422e)
- db CH7
- dw SFX_08_63_Ch1
-
-SFX_08_64:: ; 20231 (8:4231)
- db ( $40 | CH4 )
- dw SFX_08_64_Ch1
- db CH7
- dw SFX_08_64_Ch2
-
-SFX_08_65:: ; 20237 (8:4237)
- db CH7
- dw SFX_08_65_Ch1
-
-SFX_08_66:: ; 2023a (8:423a)
- db CH7
- dw SFX_08_66_Ch1
-
-SFX_08_67:: ; 2023d (8:423d)
- db ( $80 | CH4 )
- dw SFX_08_67_Ch1
- db CH5
- dw SFX_08_67_Ch2
- db CH7
- dw SFX_08_67_Ch3
-
-SFX_08_68:: ; 20246 (8:4246)
- db ( $80 | CH4 )
- dw SFX_08_68_Ch1
- db CH5
- dw SFX_08_68_Ch2
- db CH7
- dw SFX_08_68_Ch3
-
-SFX_08_69:: ; 2024f (8:424f)
- db ( $40 | CH4 )
- dw SFX_08_69_Ch1
- db CH7
- dw SFX_08_69_Ch2
-
-SFX_08_6a:: ; 20255 (8:4255)
- db ( $80 | CH4 )
- dw SFX_08_6a_Ch1
- db CH5
- dw SFX_08_6a_Ch2
- db CH7
- dw SFX_08_6a_Ch3
-
-SFX_08_6b:: ; 2025e (8:425e)
- db ( $40 | CH4 )
- dw SFX_08_6b_Ch1
- db CH7
- dw SFX_08_6b_Ch2
-
-SFX_08_6c:: ; 20264 (8:4264)
- db ( $80 | CH4 )
- dw SFX_08_6c_Ch1
- db CH5
- dw SFX_08_6c_Ch2
- db CH7
- dw SFX_08_6c_Ch3
-
-SFX_08_6d:: ; 2026d (8:426d)
- db ( $80 | CH4 )
- dw SFX_08_6d_Ch1
- db CH5
- dw SFX_08_6d_Ch2
- db CH7
- dw SFX_08_6d_Ch3
-
-SFX_08_6e:: ; 20276 (8:4276)
- db ( $80 | CH4 )
- dw SFX_08_6e_Ch1
- db CH5
- dw SFX_08_6e_Ch2
- db CH7
- dw SFX_08_6e_Ch3
-
-SFX_08_6f:: ; 2027f (8:427f)
- db ( $80 | CH4 )
- dw SFX_08_6f_Ch1
- db CH5
- dw SFX_08_6f_Ch2
- db CH7
- dw SFX_08_6f_Ch3
-
-SFX_08_70:: ; 20288 (8:4288)
- db ( $80 | CH4 )
- dw SFX_08_70_Ch1
- db CH5
- dw SFX_08_70_Ch2
- db CH7
- dw SFX_08_70_Ch3
-
-SFX_08_71:: ; 20291 (8:4291)
- db ( $40 | CH4 )
- dw SFX_08_71_Ch1
- db CH5
- dw SFX_08_71_Ch2
-
-SFX_08_72:: ; 20297 (8:4297)
- db ( $40 | CH4 )
- dw SFX_08_72_Ch1
- db CH5
- dw SFX_08_72_Ch2
-
-SFX_08_73:: ; 2029d (8:429d)
- db ( $40 | CH4 )
- dw SFX_08_73_Ch1
- db CH5
- dw SFX_08_73_Ch2
-
-SFX_08_74:: ; 202a3 (8:42a3)
- db ( $80 | CH4 )
- dw SFX_08_74_Ch1
- db CH5
- dw SFX_08_74_Ch2
- db CH7
- dw SFX_08_74_Ch3
-
-SFX_08_75:: ; 202ac (8:42ac)
- db ( $40 | CH4 )
- dw SFX_08_75_Ch1
- db CH5
- dw SFX_08_75_Ch2
-
-SFX_08_76:: ; 202b2 (8:42b2)
- db ( $80 | CH4 )
- dw SFX_08_76_Ch1
- db CH5
- dw SFX_08_76_Ch2
- db CH7
- dw SFX_08_76_Ch3
-
-SFX_08_77:: ; 202bb (8:42bb)
- db CH4
- dw SFX_08_77_Ch1
-
-; 0x202be
diff --git a/audio/headers/sfxheaders1.asm b/audio/headers/sfxheaders1.asm
new file mode 100644
index 00000000..49370aa4
--- /dev/null
+++ b/audio/headers/sfxheaders1.asm
@@ -0,0 +1,562 @@
+SFX_Headers_1::
+ db $ff, $ff, $ff ; padding
+
+SFX_Snare1_1:: ; 8003 (2:4003)
+ db CH7
+ dw SFX_Snare1_1_Ch1
+
+SFX_Snare2_1:: ; 8006 (2:4006)
+ db CH7
+ dw SFX_Snare2_1_Ch1
+
+SFX_Snare3_1:: ; 8009 (2:4009)
+ db CH7
+ dw SFX_Snare3_1_Ch1
+
+SFX_Snare4_1:: ; 800c (2:400c)
+ db CH7
+ dw SFX_Snare4_1_Ch1
+
+SFX_Snare5_1:: ; 800f (2:400f)
+ db CH7
+ dw SFX_Snare5_1_Ch1
+
+SFX_Triangle1_1:: ; 8012 (2:4012)
+ db CH7
+ dw SFX_Triangle1_1_Ch1
+
+SFX_Triangle2_1:: ; 8015 (2:4015)
+ db CH7
+ dw SFX_Triangle2_1_Ch1
+
+SFX_Snare6_1:: ; 8018 (2:4018)
+ db CH7
+ dw SFX_Snare6_1_Ch1
+
+SFX_Snare7_1:: ; 801b (2:401b)
+ db CH7
+ dw SFX_Snare7_1_Ch1
+
+SFX_Snare8_1:: ; 801e (2:401e)
+ db CH7
+ dw SFX_Snare8_1_Ch1
+
+SFX_Snare9_1:: ; 8021 (2:4021)
+ db CH7
+ dw SFX_Snare9_1_Ch1
+
+SFX_Cymbal1_1:: ; 8024 (2:4024)
+ db CH7
+ dw SFX_Cymbal1_1_Ch1
+
+SFX_Cymbal2_1:: ; 8027 (2:4027)
+ db CH7
+ dw SFX_Cymbal2_1_Ch1
+
+SFX_Cymbal3_1:: ; 802a (2:402a)
+ db CH7
+ dw SFX_Cymbal3_1_Ch1
+
+SFX_Muted_Snare1_1:: ; 802d (2:402d)
+ db CH7
+ dw SFX_Muted_Snare1_1_Ch1
+
+SFX_Triangle3_1:: ; 8030 (2:4030)
+ db CH7
+ dw SFX_Triangle3_1_Ch1
+
+SFX_Muted_Snare2_1:: ; 8033 (2:4033)
+ db CH7
+ dw SFX_Muted_Snare2_1_Ch1
+
+SFX_Muted_Snare3_1:: ; 8036 (2:4036)
+ db CH7
+ dw SFX_Muted_Snare3_1_Ch1
+
+SFX_Muted_Snare4_1:: ; 8039 (2:4039)
+ db CH7
+ dw SFX_Muted_Snare4_1_Ch1
+
+SFX_Cry00_1:: ; 803c (2:403c)
+ db ( $80 | CH4 )
+ dw SFX_Cry00_1_Ch1
+ db CH5
+ dw SFX_Cry00_1_Ch2
+ db CH7
+ dw SFX_Cry00_1_Ch3
+
+SFX_Cry01_1:: ; 8045 (2:4045)
+ db ( $80 | CH4 )
+ dw SFX_Cry01_1_Ch1
+ db CH5
+ dw SFX_Cry01_1_Ch2
+ db CH7
+ dw SFX_Cry01_1_Ch3
+
+SFX_Cry02_1:: ; 804e (2:404e)
+ db ( $80 | CH4 )
+ dw SFX_Cry02_1_Ch1
+ db CH5
+ dw SFX_Cry02_1_Ch2
+ db CH7
+ dw SFX_Cry02_1_Ch3
+
+SFX_Cry03_1:: ; 8057 (2:4057)
+ db ( $80 | CH4 )
+ dw SFX_Cry03_1_Ch1
+ db CH5
+ dw SFX_Cry03_1_Ch2
+ db CH7
+ dw SFX_Cry03_1_Ch3
+
+SFX_Cry04_1:: ; 8060 (2:4060)
+ db ( $80 | CH4 )
+ dw SFX_Cry04_1_Ch1
+ db CH5
+ dw SFX_Cry04_1_Ch2
+ db CH7
+ dw SFX_Cry04_1_Ch3
+
+SFX_Cry05_1:: ; 8069 (2:4069)
+ db ( $80 | CH4 )
+ dw SFX_Cry05_1_Ch1
+ db CH5
+ dw SFX_Cry05_1_Ch2
+ db CH7
+ dw SFX_Cry05_1_Ch3
+
+SFX_Cry06_1:: ; 8072 (2:4072)
+ db ( $80 | CH4 )
+ dw SFX_Cry06_1_Ch1
+ db CH5
+ dw SFX_Cry06_1_Ch2
+ db CH7
+ dw SFX_Cry06_1_Ch3
+
+SFX_Cry07_1:: ; 807b (2:407b)
+ db ( $80 | CH4 )
+ dw SFX_Cry07_1_Ch1
+ db CH5
+ dw SFX_Cry07_1_Ch2
+ db CH7
+ dw SFX_Cry07_1_Ch3
+
+SFX_Cry08_1:: ; 8084 (2:4084)
+ db ( $80 | CH4 )
+ dw SFX_Cry08_1_Ch1
+ db CH5
+ dw SFX_Cry08_1_Ch2
+ db CH7
+ dw SFX_Cry08_1_Ch3
+
+SFX_Cry09_1:: ; 808d (2:408d)
+ db ( $80 | CH4 )
+ dw SFX_Cry09_1_Ch1
+ db CH5
+ dw SFX_Cry09_1_Ch2
+ db CH7
+ dw SFX_Cry09_1_Ch3
+
+SFX_Cry0A_1:: ; 8096 (2:4096)
+ db ( $80 | CH4 )
+ dw SFX_Cry0A_1_Ch1
+ db CH5
+ dw SFX_Cry0A_1_Ch2
+ db CH7
+ dw SFX_Cry0A_1_Ch3
+
+SFX_Cry0B_1:: ; 809f (2:409f)
+ db ( $80 | CH4 )
+ dw SFX_Cry0B_1_Ch1
+ db CH5
+ dw SFX_Cry0B_1_Ch2
+ db CH7
+ dw SFX_Cry0B_1_Ch3
+
+SFX_Cry0C_1:: ; 80a8 (2:40a8)
+ db ( $80 | CH4 )
+ dw SFX_Cry0C_1_Ch1
+ db CH5
+ dw SFX_Cry0C_1_Ch2
+ db CH7
+ dw SFX_Cry0C_1_Ch3
+
+SFX_Cry0D_1:: ; 80b1 (2:40b1)
+ db ( $80 | CH4 )
+ dw SFX_Cry0D_1_Ch1
+ db CH5
+ dw SFX_Cry0D_1_Ch2
+ db CH7
+ dw SFX_Cry0D_1_Ch3
+
+SFX_Cry0E_1:: ; 80ba (2:40ba)
+ db ( $80 | CH4 )
+ dw SFX_Cry0E_1_Ch1
+ db CH5
+ dw SFX_Cry0E_1_Ch2
+ db CH7
+ dw SFX_Cry0E_1_Ch3
+
+SFX_Cry0F_1:: ; 80c3 (2:40c3)
+ db ( $80 | CH4 )
+ dw SFX_Cry0F_1_Ch1
+ db CH5
+ dw SFX_Cry0F_1_Ch2
+ db CH7
+ dw SFX_Cry0F_1_Ch3
+
+SFX_Cry10_1:: ; 80cc (2:40cc)
+ db ( $80 | CH4 )
+ dw SFX_Cry10_1_Ch1
+ db CH5
+ dw SFX_Cry10_1_Ch2
+ db CH7
+ dw SFX_Cry10_1_Ch3
+
+SFX_Cry11_1:: ; 80d5 (2:40d5)
+ db ( $80 | CH4 )
+ dw SFX_Cry11_1_Ch1
+ db CH5
+ dw SFX_Cry11_1_Ch2
+ db CH7
+ dw SFX_Cry11_1_Ch3
+
+SFX_Cry12_1:: ; 80de (2:40de)
+ db ( $80 | CH4 )
+ dw SFX_Cry12_1_Ch1
+ db CH5
+ dw SFX_Cry12_1_Ch2
+ db CH7
+ dw SFX_Cry12_1_Ch3
+
+SFX_Cry13_1:: ; 80e7 (2:40e7)
+ db ( $80 | CH4 )
+ dw SFX_Cry13_1_Ch1
+ db CH5
+ dw SFX_Cry13_1_Ch2
+ db CH7
+ dw SFX_Cry13_1_Ch3
+
+SFX_Cry14_1:: ; 80f0 (2:40f0)
+ db ( $80 | CH4 )
+ dw SFX_Cry14_1_Ch1
+ db CH5
+ dw SFX_Cry14_1_Ch2
+ db CH7
+ dw SFX_Cry14_1_Ch3
+
+SFX_Cry15_1:: ; 80f9 (2:40f9)
+ db ( $80 | CH4 )
+ dw SFX_Cry15_1_Ch1
+ db CH5
+ dw SFX_Cry15_1_Ch2
+ db CH7
+ dw SFX_Cry15_1_Ch3
+
+SFX_Cry16_1:: ; 8102 (2:4102)
+ db ( $80 | CH4 )
+ dw SFX_Cry16_1_Ch1
+ db CH5
+ dw SFX_Cry16_1_Ch2
+ db CH7
+ dw SFX_Cry16_1_Ch3
+
+SFX_Cry17_1:: ; 810b (2:410b)
+ db ( $80 | CH4 )
+ dw SFX_Cry17_1_Ch1
+ db CH5
+ dw SFX_Cry17_1_Ch2
+ db CH7
+ dw SFX_Cry17_1_Ch3
+
+SFX_Cry18_1:: ; 8114 (2:4114)
+ db ( $80 | CH4 )
+ dw SFX_Cry18_1_Ch1
+ db CH5
+ dw SFX_Cry18_1_Ch2
+ db CH7
+ dw SFX_Cry18_1_Ch3
+
+SFX_Cry19_1:: ; 811d (2:411d)
+ db ( $80 | CH4 )
+ dw SFX_Cry19_1_Ch1
+ db CH5
+ dw SFX_Cry19_1_Ch2
+ db CH7
+ dw SFX_Cry19_1_Ch3
+
+SFX_Cry1A_1:: ; 8126 (2:4126)
+ db ( $80 | CH4 )
+ dw SFX_Cry1A_1_Ch1
+ db CH5
+ dw SFX_Cry1A_1_Ch2
+ db CH7
+ dw SFX_Cry1A_1_Ch3
+
+SFX_Cry1B_1:: ; 812f (2:412f)
+ db ( $80 | CH4 )
+ dw SFX_Cry1B_1_Ch1
+ db CH5
+ dw SFX_Cry1B_1_Ch2
+ db CH7
+ dw SFX_Cry1B_1_Ch3
+
+SFX_Cry1C_1:: ; 8138 (2:4138)
+ db ( $80 | CH4 )
+ dw SFX_Cry1C_1_Ch1
+ db CH5
+ dw SFX_Cry1C_1_Ch2
+ db CH7
+ dw SFX_Cry1C_1_Ch3
+
+SFX_Cry1D_1:: ; 8141 (2:4141)
+ db ( $80 | CH4 )
+ dw SFX_Cry1D_1_Ch1
+ db CH5
+ dw SFX_Cry1D_1_Ch2
+ db CH7
+ dw SFX_Cry1D_1_Ch3
+
+SFX_Cry1E_1:: ; 814a (2:414a)
+ db ( $80 | CH4 )
+ dw SFX_Cry1E_1_Ch1
+ db CH5
+ dw SFX_Cry1E_1_Ch2
+ db CH7
+ dw SFX_Cry1E_1_Ch3
+
+SFX_Cry1F_1:: ; 8153 (2:4153)
+ db ( $80 | CH4 )
+ dw SFX_Cry1F_1_Ch1
+ db CH5
+ dw SFX_Cry1F_1_Ch2
+ db CH7
+ dw SFX_Cry1F_1_Ch3
+
+SFX_Cry20_1:: ; 815c (2:415c)
+ db ( $80 | CH4 )
+ dw SFX_Cry20_1_Ch1
+ db CH5
+ dw SFX_Cry20_1_Ch2
+ db CH7
+ dw SFX_Cry20_1_Ch3
+
+SFX_Cry21_1:: ; 8165 (2:4165)
+ db ( $80 | CH4 )
+ dw SFX_Cry21_1_Ch1
+ db CH5
+ dw SFX_Cry21_1_Ch2
+ db CH7
+ dw SFX_Cry21_1_Ch3
+
+SFX_Cry22_1:: ; 816e (2:416e)
+ db ( $80 | CH4 )
+ dw SFX_Cry22_1_Ch1
+ db CH5
+ dw SFX_Cry22_1_Ch2
+ db CH7
+ dw SFX_Cry22_1_Ch3
+
+SFX_Cry23_1:: ; 8177 (2:4177)
+ db ( $80 | CH4 )
+ dw SFX_Cry23_1_Ch1
+ db CH5
+ dw SFX_Cry23_1_Ch2
+ db CH7
+ dw SFX_Cry23_1_Ch3
+
+SFX_Cry24_1:: ; 8180 (2:4180)
+ db ( $80 | CH4 )
+ dw SFX_Cry24_1_Ch1
+ db CH5
+ dw SFX_Cry24_1_Ch2
+ db CH7
+ dw SFX_Cry24_1_Ch3
+
+SFX_Cry25_1:: ; 8189 (2:4189)
+ db ( $80 | CH4 )
+ dw SFX_Cry25_1_Ch1
+ db CH5
+ dw SFX_Cry25_1_Ch2
+ db CH7
+ dw SFX_Cry25_1_Ch3
+
+SFX_Get_Item1_1:: ; 8192 (2:4192)
+ db ( $80 | CH4 )
+ dw SFX_Get_Item1_1_Ch1
+ db CH5
+ dw SFX_Get_Item1_1_Ch2
+ db CH6
+ dw SFX_Get_Item1_1_Ch3
+
+SFX_Get_Item2_1:: ; 819b (2:419b)
+ db ( $80 | CH4 )
+ dw SFX_Get_Item2_1_Ch1
+ db CH5
+ dw SFX_Get_Item2_1_Ch2
+ db CH6
+ dw SFX_Get_Item2_1_Ch3
+
+SFX_Tink_1:: ; 81a4 (2:41a4)
+ db CH4
+ dw SFX_Tink_1_Ch1
+
+SFX_Heal_HP_1:: ; 81a7 (2:41a7)
+ db CH4
+ dw SFX_Heal_HP_1_Ch1
+
+SFX_Heal_Ailment_1:: ; 81aa (2:41aa)
+ db CH4
+ dw SFX_Heal_Ailment_1_Ch1
+
+SFX_Start_Menu_1:: ; 81ad (2:41ad)
+ db CH7
+ dw SFX_Start_Menu_1_Ch1
+
+SFX_Press_AB_1:: ; 81b0 (2:41b0)
+ db CH4
+ dw SFX_Press_AB_1_Ch1
+
+SFX_Pokedex_Rating_1:: ; 81b3 (2:41b3)
+ db ( $80 | CH4 )
+ dw SFX_Pokedex_Rating_1_Ch1
+ db CH5
+ dw SFX_Pokedex_Rating_1_Ch2
+ db CH6
+ dw SFX_Pokedex_Rating_1_Ch3
+
+SFX_Get_Key_Item_1:: ; 81bc (2:41bc)
+ db ( $80 | CH4 )
+ dw SFX_Get_Key_Item_1_Ch1
+ db CH5
+ dw SFX_Get_Key_Item_1_Ch2
+ db CH6
+ dw SFX_Get_Key_Item_1_Ch3
+
+SFX_Poisoned_1:: ; 81c5 (2:41c5)
+ db CH4
+ dw SFX_Poisoned_1_Ch1
+
+SFX_Trade_Machine_1:: ; 81c8 (2:41c8)
+ db CH4
+ dw SFX_Trade_Machine_1_Ch1
+
+SFX_Turn_On_PC_1:: ; 81cb (2:41cb)
+ db CH4
+ dw SFX_Turn_On_PC_1_Ch1
+
+SFX_Turn_Off_PC_1:: ; 81ce (2:41ce)
+ db CH4
+ dw SFX_Turn_Off_PC_1_Ch1
+
+SFX_Enter_PC_1:: ; 81d1 (2:41d1)
+ db CH4
+ dw SFX_Enter_PC_1_Ch1
+
+SFX_Shrink_1:: ; 81d4 (2:41d4)
+ db CH4
+ dw SFX_Shrink_1_Ch1
+
+SFX_Switch_1:: ; 81d7 (2:41d7)
+ db CH4
+ dw SFX_Switch_1_Ch1
+
+SFX_Healing_Machine_1:: ; 81da (2:41da)
+ db CH4
+ dw SFX_Healing_Machine_1_Ch1
+
+SFX_Teleport_Exit1_1:: ; 81dd (2:41dd)
+ db CH4
+ dw SFX_Teleport_Exit1_1_Ch1
+
+SFX_Teleport_Enter1_1:: ; 81e0 (2:41e0)
+ db CH4
+ dw SFX_Teleport_Enter1_1_Ch1
+
+SFX_Teleport_Exit2_1:: ; 81e3 (2:41e3)
+ db CH4
+ dw SFX_Teleport_Exit2_1_Ch1
+
+SFX_Ledge_1:: ; 81e6 (2:41e6)
+ db CH4
+ dw SFX_Ledge_1_Ch1
+
+SFX_Teleport_Enter2_1:: ; 81e9 (2:41e9)
+ db CH7
+ dw SFX_Teleport_Enter2_1_Ch1
+
+SFX_Fly_1:: ; 81ec (2:41ec)
+ db CH7
+ dw SFX_Fly_1_Ch1
+
+SFX_Denied_1:: ; 81ef (2:41ef)
+ db ( $40 | CH4 )
+ dw SFX_Denied_1_Ch1
+ db CH5
+ dw SFX_Denied_1_Ch2
+
+SFX_Arrow_Tiles_1:: ; 81f5 (2:41f5)
+ db CH4
+ dw SFX_Arrow_Tiles_1_Ch1
+
+SFX_Push_Boulder_1:: ; 81f8 (2:41f8)
+ db CH7
+ dw SFX_Push_Boulder_1_Ch1
+
+SFX_SS_Anne_Horn_1:: ; 81fb (2:41fb)
+ db ( $40 | CH4 )
+ dw SFX_SS_Anne_Horn_1_Ch1
+ db CH5
+ dw SFX_SS_Anne_Horn_1_Ch2
+
+SFX_Withdraw_Deposit_1:: ; 8201 (2:4201)
+ db CH4
+ dw SFX_Withdraw_Deposit_1_Ch1
+
+SFX_Cut_1:: ; 8204 (2:4204)
+ db CH7
+ dw SFX_Cut_1_Ch1
+
+SFX_Go_Inside_1:: ; 8207 (2:4207)
+ db CH7
+ dw SFX_Go_Inside_1_Ch1
+
+SFX_Swap_1:: ; 820a (2:420a)
+ db ( $40 | CH4 )
+ dw SFX_Swap_1_Ch1
+ db CH5
+ dw SFX_Swap_1_Ch2
+
+SFX_59_1:: ; 8210 (2:4210)
+ db ( $40 | CH4 )
+ dw SFX_59_1_Ch1
+ db CH5
+ dw SFX_59_1_Ch2
+
+SFX_Purchase_1:: ; 8216 (2:4216)
+ db ( $40 | CH4 )
+ dw SFX_Purchase_1_Ch1
+ db CH5
+ dw SFX_Purchase_1_Ch2
+
+SFX_Collision_1:: ; 821c (2:421c)
+ db CH4
+ dw SFX_Collision_1_Ch1
+
+SFX_Go_Outside_1:: ; 821f (2:421f)
+ db CH7
+ dw SFX_Go_Outside_1_Ch1
+
+SFX_Save_1:: ; 8222 (2:4222)
+ db ( $40 | CH4 )
+ dw SFX_Save_1_Ch1
+ db CH5
+ dw SFX_Save_1_Ch2
+
+SFX_Pokeflute:: ; 8228 (2:4228)
+ db CH2
+ dw SFX_Pokeflute_Ch1
+
+SFX_Safari_Zone_PA:: ; 822b (2:422b)
+ db CH4
+ dw SFX_Safari_Zone_PA_Ch1
diff --git a/audio/headers/sfxheaders1f.asm b/audio/headers/sfxheaders1f.asm
deleted file mode 100755
index aa127123..00000000
--- a/audio/headers/sfxheaders1f.asm
+++ /dev/null
@@ -1,598 +0,0 @@
-SFX_Headers_1f::
- db $ff, $ff, $ff ; padding
-
-SFX_1f_01:: ; 7c003 (1f:4003)
- db CH7
- dw SFX_1f_01_Ch1
-
-SFX_1f_02:: ; 7c006 (1f:4006)
- db CH7
- dw SFX_1f_02_Ch1
-
-SFX_1f_03:: ; 7c009 (1f:4009)
- db CH7
- dw SFX_1f_03_Ch1
-
-SFX_1f_04:: ; 7c00c (1f:400c)
- db CH7
- dw SFX_1f_04_Ch1
-
-SFX_1f_05:: ; 7c00f (1f:400f)
- db CH7
- dw SFX_1f_05_Ch1
-
-SFX_1f_06:: ; 7c012 (1f:4012)
- db CH7
- dw SFX_1f_06_Ch1
-
-SFX_1f_07:: ; 7c015 (1f:4015)
- db CH7
- dw SFX_1f_07_Ch1
-
-SFX_1f_08:: ; 7c018 (1f:4018)
- db CH7
- dw SFX_1f_08_Ch1
-
-SFX_1f_09:: ; 7c01b (1f:401b)
- db CH7
- dw SFX_1f_09_Ch1
-
-SFX_1f_0a:: ; 7c01e (1f:401e)
- db CH7
- dw SFX_1f_0a_Ch1
-
-SFX_1f_0b:: ; 7c021 (1f:4021)
- db CH7
- dw SFX_1f_0b_Ch1
-
-SFX_1f_0c:: ; 7c024 (1f:4024)
- db CH7
- dw SFX_1f_0c_Ch1
-
-SFX_1f_0d:: ; 7c027 (1f:4027)
- db CH7
- dw SFX_1f_0d_Ch1
-
-SFX_1f_0e:: ; 7c02a (1f:402a)
- db CH7
- dw SFX_1f_0e_Ch1
-
-SFX_1f_0f:: ; 7c02d (1f:402d)
- db CH7
- dw SFX_1f_0f_Ch1
-
-SFX_1f_10:: ; 7c030 (1f:4030)
- db CH7
- dw SFX_1f_10_Ch1
-
-SFX_1f_11:: ; 7c033 (1f:4033)
- db CH7
- dw SFX_1f_11_Ch1
-
-SFX_1f_12:: ; 7c036 (1f:4036)
- db CH7
- dw SFX_1f_12_Ch1
-
-SFX_1f_13:: ; 7c039 (1f:4039)
- db CH7
- dw SFX_1f_13_Ch1
-
-SFX_1f_14:: ; 7c03c (1f:403c)
- db ( $80 | CH4 )
- dw SFX_1f_14_Ch1
- db CH5
- dw SFX_1f_14_Ch2
- db CH7
- dw SFX_1f_14_Ch3
-
-SFX_1f_15:: ; 7c045 (1f:4045)
- db ( $80 | CH4 )
- dw SFX_1f_15_Ch1
- db CH5
- dw SFX_1f_15_Ch2
- db CH7
- dw SFX_1f_15_Ch3
-
-SFX_1f_16:: ; 7c04e (1f:404e)
- db ( $80 | CH4 )
- dw SFX_1f_16_Ch1
- db CH5
- dw SFX_1f_16_Ch2
- db CH7
- dw SFX_1f_16_Ch3
-
-SFX_1f_17:: ; 7c057 (1f:4057)
- db ( $80 | CH4 )
- dw SFX_1f_17_Ch1
- db CH5
- dw SFX_1f_17_Ch2
- db CH7
- dw SFX_1f_17_Ch3
-
-SFX_1f_18:: ; 7c060 (1f:4060)
- db ( $80 | CH4 )
- dw SFX_1f_18_Ch1
- db CH5
- dw SFX_1f_18_Ch2
- db CH7
- dw SFX_1f_18_Ch3
-
-SFX_1f_19:: ; 7c069 (1f:4069)
- db ( $80 | CH4 )
- dw SFX_1f_19_Ch1
- db CH5
- dw SFX_1f_19_Ch2
- db CH7
- dw SFX_1f_19_Ch3
-
-SFX_1f_1a:: ; 7c072 (1f:4072)
- db ( $80 | CH4 )
- dw SFX_1f_1a_Ch1
- db CH5
- dw SFX_1f_1a_Ch2
- db CH7
- dw SFX_1f_1a_Ch3
-
-SFX_1f_1b:: ; 7c07b (1f:407b)
- db ( $80 | CH4 )
- dw SFX_1f_1b_Ch1
- db CH5
- dw SFX_1f_1b_Ch2
- db CH7
- dw SFX_1f_1b_Ch3
-
-SFX_1f_1c:: ; 7c084 (1f:4084)
- db ( $80 | CH4 )
- dw SFX_1f_1c_Ch1
- db CH5
- dw SFX_1f_1c_Ch2
- db CH7
- dw SFX_1f_1c_Ch3
-
-SFX_1f_1d:: ; 7c08d (1f:408d)
- db ( $80 | CH4 )
- dw SFX_1f_1d_Ch1
- db CH5
- dw SFX_1f_1d_Ch2
- db CH7
- dw SFX_1f_1d_Ch3
-
-SFX_1f_1e:: ; 7c096 (1f:4096)
- db ( $80 | CH4 )
- dw SFX_1f_1e_Ch1
- db CH5
- dw SFX_1f_1e_Ch2
- db CH7
- dw SFX_1f_1e_Ch3
-
-SFX_1f_1f:: ; 7c09f (1f:409f)
- db ( $80 | CH4 )
- dw SFX_1f_1f_Ch1
- db CH5
- dw SFX_1f_1f_Ch2
- db CH7
- dw SFX_1f_1f_Ch3
-
-SFX_1f_20:: ; 7c0a8 (1f:40a8)
- db ( $80 | CH4 )
- dw SFX_1f_20_Ch1
- db CH5
- dw SFX_1f_20_Ch2
- db CH7
- dw SFX_1f_20_Ch3
-
-SFX_1f_21:: ; 7c0b1 (1f:40b1)
- db ( $80 | CH4 )
- dw SFX_1f_21_Ch1
- db CH5
- dw SFX_1f_21_Ch2
- db CH7
- dw SFX_1f_21_Ch3
-
-SFX_1f_22:: ; 7c0ba (1f:40ba)
- db ( $80 | CH4 )
- dw SFX_1f_22_Ch1
- db CH5
- dw SFX_1f_22_Ch2
- db CH7
- dw SFX_1f_22_Ch3
-
-SFX_1f_23:: ; 7c0c3 (1f:40c3)
- db ( $80 | CH4 )
- dw SFX_1f_23_Ch1
- db CH5
- dw SFX_1f_23_Ch2
- db CH7
- dw SFX_1f_23_Ch3
-
-SFX_1f_24:: ; 7c0cc (1f:40cc)
- db ( $80 | CH4 )
- dw SFX_1f_24_Ch1
- db CH5
- dw SFX_1f_24_Ch2
- db CH7
- dw SFX_1f_24_Ch3
-
-SFX_1f_25:: ; 7c0d5 (1f:40d5)
- db ( $80 | CH4 )
- dw SFX_1f_25_Ch1
- db CH5
- dw SFX_1f_25_Ch2
- db CH7
- dw SFX_1f_25_Ch3
-
-SFX_1f_26:: ; 7c0de (1f:40de)
- db ( $80 | CH4 )
- dw SFX_1f_26_Ch1
- db CH5
- dw SFX_1f_26_Ch2
- db CH7
- dw SFX_1f_26_Ch3
-
-SFX_1f_27:: ; 7c0e7 (1f:40e7)
- db ( $80 | CH4 )
- dw SFX_1f_27_Ch1
- db CH5
- dw SFX_1f_27_Ch2
- db CH7
- dw SFX_1f_27_Ch3
-
-SFX_1f_28:: ; 7c0f0 (1f:40f0)
- db ( $80 | CH4 )
- dw SFX_1f_28_Ch1
- db CH5
- dw SFX_1f_28_Ch2
- db CH7
- dw SFX_1f_28_Ch3
-
-SFX_1f_29:: ; 7c0f9 (1f:40f9)
- db ( $80 | CH4 )
- dw SFX_1f_29_Ch1
- db CH5
- dw SFX_1f_29_Ch2
- db CH7
- dw SFX_1f_29_Ch3
-
-SFX_1f_2a:: ; 7c102 (1f:4102)
- db ( $80 | CH4 )
- dw SFX_1f_2a_Ch1
- db CH5
- dw SFX_1f_2a_Ch2
- db CH7
- dw SFX_1f_2a_Ch3
-
-SFX_1f_2b:: ; 7c10b (1f:410b)
- db ( $80 | CH4 )
- dw SFX_1f_2b_Ch1
- db CH5
- dw SFX_1f_2b_Ch2
- db CH7
- dw SFX_1f_2b_Ch3
-
-SFX_1f_2c:: ; 7c114 (1f:4114)
- db ( $80 | CH4 )
- dw SFX_1f_2c_Ch1
- db CH5
- dw SFX_1f_2c_Ch2
- db CH7
- dw SFX_1f_2c_Ch3
-
-SFX_1f_2d:: ; 7c11d (1f:411d)
- db ( $80 | CH4 )
- dw SFX_1f_2d_Ch1
- db CH5
- dw SFX_1f_2d_Ch2
- db CH7
- dw SFX_1f_2d_Ch3
-
-SFX_1f_2e:: ; 7c126 (1f:4126)
- db ( $80 | CH4 )
- dw SFX_1f_2e_Ch1
- db CH5
- dw SFX_1f_2e_Ch2
- db CH7
- dw SFX_1f_2e_Ch3
-
-SFX_1f_2f:: ; 7c12f (1f:412f)
- db ( $80 | CH4 )
- dw SFX_1f_2f_Ch1
- db CH5
- dw SFX_1f_2f_Ch2
- db CH7
- dw SFX_1f_2f_Ch3
-
-SFX_1f_30:: ; 7c138 (1f:4138)
- db ( $80 | CH4 )
- dw SFX_1f_30_Ch1
- db CH5
- dw SFX_1f_30_Ch2
- db CH7
- dw SFX_1f_30_Ch3
-
-SFX_1f_31:: ; 7c141 (1f:4141)
- db ( $80 | CH4 )
- dw SFX_1f_31_Ch1
- db CH5
- dw SFX_1f_31_Ch2
- db CH7
- dw SFX_1f_31_Ch3
-
-SFX_1f_32:: ; 7c14a (1f:414a)
- db ( $80 | CH4 )
- dw SFX_1f_32_Ch1
- db CH5
- dw SFX_1f_32_Ch2
- db CH7
- dw SFX_1f_32_Ch3
-
-SFX_1f_33:: ; 7c153 (1f:4153)
- db ( $80 | CH4 )
- dw SFX_1f_33_Ch1
- db CH5
- dw SFX_1f_33_Ch2
- db CH7
- dw SFX_1f_33_Ch3
-
-SFX_1f_34:: ; 7c15c (1f:415c)
- db ( $80 | CH4 )
- dw SFX_1f_34_Ch1
- db CH5
- dw SFX_1f_34_Ch2
- db CH7
- dw SFX_1f_34_Ch3
-
-SFX_1f_35:: ; 7c165 (1f:4165)
- db ( $80 | CH4 )
- dw SFX_1f_35_Ch1
- db CH5
- dw SFX_1f_35_Ch2
- db CH7
- dw SFX_1f_35_Ch3
-
-SFX_1f_36:: ; 7c16e (1f:416e)
- db ( $80 | CH4 )
- dw SFX_1f_36_Ch1
- db CH5
- dw SFX_1f_36_Ch2
- db CH7
- dw SFX_1f_36_Ch3
-
-SFX_1f_37:: ; 7c177 (1f:4177)
- db ( $80 | CH4 )
- dw SFX_1f_37_Ch1
- db CH5
- dw SFX_1f_37_Ch2
- db CH7
- dw SFX_1f_37_Ch3
-
-SFX_1f_38:: ; 7c180 (1f:4180)
- db ( $80 | CH4 )
- dw SFX_1f_38_Ch1
- db CH5
- dw SFX_1f_38_Ch2
- db CH7
- dw SFX_1f_38_Ch3
-
-SFX_1f_39:: ; 7c189 (1f:4189)
- db ( $80 | CH4 )
- dw SFX_1f_39_Ch1
- db CH5
- dw SFX_1f_39_Ch2
- db CH7
- dw SFX_1f_39_Ch3
-
-SFX_1f_3a:: ; 7c192 (1f:4192)
- db ( $80 | CH4 )
- dw SFX_1f_3a_Ch1
- db CH5
- dw SFX_1f_3a_Ch2
- db CH6
- dw SFX_1f_3a_Ch3
-
-SFX_1f_3b:: ; 7c19b (1f:419b)
- db ( $80 | CH4 )
- dw SFX_1f_3b_Ch1
- db CH5
- dw SFX_1f_3b_Ch2
- db CH6
- dw SFX_1f_3b_Ch3
-
-SFX_1f_3c:: ; 7c1a4 (1f:41a4)
- db CH4
- dw SFX_1f_3c_Ch1
-
-SFX_1f_3d:: ; 7c1a7 (1f:41a7)
- db CH4
- dw SFX_1f_3d_Ch1
-
-SFX_1f_3e:: ; 7c1aa (1f:41aa)
- db CH4
- dw SFX_1f_3e_Ch1
-
-SFX_1f_3f:: ; 7c1ad (1f:41ad)
- db CH7
- dw SFX_1f_3f_Ch1
-
-SFX_1f_40:: ; 7c1b0 (1f:41b0)
- db CH4
- dw SFX_1f_40_Ch1
-
-SFX_1f_41:: ; 7c1b3 (1f:41b3)
- db ( $80 | CH4 )
- dw SFX_1f_41_Ch1
- db CH5
- dw SFX_1f_41_Ch2
- db CH6
- dw SFX_1f_41_Ch3
-
-SFX_1f_42:: ; 7c1bc (1f:41bc)
- db ( $80 | CH4 )
- dw SFX_1f_42_Ch1
- db CH5
- dw SFX_1f_42_Ch2
- db CH6
- dw SFX_1f_42_Ch3
-
-SFX_1f_43:: ; 7c1c5 (1f:41c5)
- db CH4
- dw SFX_1f_43_Ch1
-
-SFX_1f_44:: ; 7c1c8 (1f:41c8)
- db CH4
- dw SFX_1f_44_Ch1
-
-SFX_1f_45:: ; 7c1cb (1f:41cb)
- db CH4
- dw SFX_1f_45_Ch1
-
-SFX_1f_46:: ; 7c1ce (1f:41ce)
- db CH4
- dw SFX_1f_46_Ch1
-
-SFX_1f_47:: ; 7c1d1 (1f:41d1)
- db CH4
- dw SFX_1f_47_Ch1
-
-SFX_1f_48:: ; 7c1d4 (1f:41d4)
- db CH4
- dw SFX_1f_48_Ch1
-
-SFX_1f_49:: ; 7c1d7 (1f:41d7)
- db CH4
- dw SFX_1f_49_Ch1
-
-SFX_1f_4a:: ; 7c1da (1f:41da)
- db CH4
- dw SFX_1f_4a_Ch1
-
-SFX_1f_4b:: ; 7c1dd (1f:41dd)
- db CH4
- dw SFX_1f_4b_Ch1
-
-SFX_1f_4c:: ; 7c1e0 (1f:41e0)
- db CH4
- dw SFX_1f_4c_Ch1
-
-SFX_1f_4d:: ; 7c1e3 (1f:41e3)
- db CH4
- dw SFX_1f_4d_Ch1
-
-SFX_1f_4e:: ; 7c1e6 (1f:41e6)
- db CH4
- dw SFX_1f_4e_Ch1
-
-SFX_1f_4f:: ; 7c1e9 (1f:41e9)
- db CH7
- dw SFX_1f_4f_Ch1
-
-SFX_1f_50:: ; 7c1ec (1f:41ec)
- db CH7
- dw SFX_1f_50_Ch1
-
-SFX_1f_51:: ; 7c1ef (1f:41ef)
- db ( $40 | CH4 )
- dw SFX_1f_51_Ch1
- db CH5
- dw SFX_1f_51_Ch2
-
-SFX_1f_52:: ; 7c1f5 (1f:41f5)
- db CH4
- dw SFX_1f_52_Ch1
-
-SFX_1f_53:: ; 7c1f8 (1f:41f8)
- db CH7
- dw SFX_1f_53_Ch1
-
-SFX_1f_54:: ; 7c1fb (1f:41fb)
- db ( $40 | CH4 )
- dw SFX_1f_54_Ch1
- db CH5
- dw SFX_1f_54_Ch2
-
-SFX_1f_55:: ; 7c201 (1f:4201)
- db CH4
- dw SFX_1f_55_Ch1
-
-SFX_1f_56:: ; 7c204 (1f:4204)
- db CH7
- dw SFX_1f_56_Ch1
-
-SFX_1f_57:: ; 7c207 (1f:4207)
- db CH7
- dw SFX_1f_57_Ch1
-
-SFX_1f_58:: ; 7c20a (1f:420a)
- db ( $40 | CH4 )
- dw SFX_1f_58_Ch1
- db CH5
- dw SFX_1f_58_Ch2
-
-SFX_1f_59:: ; 7c210 (1f:4210)
- db ( $40 | CH4 )
- dw SFX_1f_59_Ch1
- db CH5
- dw SFX_1f_59_Ch2
-
-SFX_1f_5a:: ; 7c216 (1f:4216)
- db ( $40 | CH4 )
- dw SFX_1f_5a_Ch1
- db CH5
- dw SFX_1f_5a_Ch2
-
-SFX_1f_5b:: ; 7c21c (1f:421c)
- db CH4
- dw SFX_1f_5b_Ch1
-
-SFX_1f_5c:: ; 7c21f (1f:421f)
- db CH7
- dw SFX_1f_5c_Ch1
-
-SFX_1f_5d:: ; 7c222 (1f:4222)
- db ( $40 | CH4 )
- dw SFX_1f_5d_Ch1
- db CH5
- dw SFX_1f_5d_Ch2
-
-SFX_1f_5e:: ; 7c228 (1f:4228)
- db CH7
- dw SFX_1f_5e_Ch1
-
-SFX_1f_5f:: ; 7c22b (1f:422b)
- db CH4
- dw SFX_1f_5f_Ch1
-
-SFX_1f_60:: ; 7c22e (1f:422e)
- db CH4
- dw SFX_1f_60_Ch1
-
-SFX_1f_61:: ; 7c231 (1f:4231)
- db CH7
- dw SFX_1f_61_Ch1
-
-SFX_1f_62:: ; 7c234 (1f:4234)
- db CH7
- dw SFX_1f_62_Ch1
-
-SFX_1f_63:: ; 7c237 (1f:4237)
- db CH7
- dw SFX_1f_63_Ch1
-
-SFX_1f_64:: ; 7c23a (1f:423a)
- db CH4
- dw SFX_1f_64_Ch1
-
-SFX_1f_65:: ; 7c23d (1f:423d)
- db CH4
- dw SFX_1f_65_Ch1
-
-SFX_1f_66:: ; 7c240 (1f:4240)
- db ( $40 | CH4 )
- dw SFX_1f_66_Ch1
- db CH5
- dw SFX_1f_66_Ch2
-
-SFX_1f_67:: ; 7c246 (1f:4246)
- db CH4
- dw SFX_1f_67_Ch1
-
-; 0x7c249
diff --git a/audio/headers/sfxheaders2.asm b/audio/headers/sfxheaders2.asm
new file mode 100644
index 00000000..1b30f5cc
--- /dev/null
+++ b/audio/headers/sfxheaders2.asm
@@ -0,0 +1,706 @@
+SFX_Headers_2::
+ db $ff, $ff, $ff ; padding
+
+SFX_Snare1_2:: ; 20003 (8:4003)
+ db CH7
+ dw SFX_Snare1_2_Ch1
+
+SFX_Snare2_2:: ; 20006 (8:4006)
+ db CH7
+ dw SFX_Snare2_2_Ch1
+
+SFX_Snare3_2:: ; 20009 (8:4009)
+ db CH7
+ dw SFX_Snare3_2_Ch1
+
+SFX_Snare4_2:: ; 2000c (8:400c)
+ db CH7
+ dw SFX_Snare4_2_Ch1
+
+SFX_Snare5_2:: ; 2000f (8:400f)
+ db CH7
+ dw SFX_Snare5_2_Ch1
+
+SFX_Triangle1_2:: ; 20012 (8:4012)
+ db CH7
+ dw SFX_Triangle1_2_Ch1
+
+SFX_Triangle2_2:: ; 20015 (8:4015)
+ db CH7
+ dw SFX_Triangle2_2_Ch1
+
+SFX_Snare6_2:: ; 20018 (8:4018)
+ db CH7
+ dw SFX_Snare6_2_Ch1
+
+SFX_Snare7_2:: ; 2001b (8:401b)
+ db CH7
+ dw SFX_Snare7_2_Ch1
+
+SFX_Snare8_2:: ; 2001e (8:401e)
+ db CH7
+ dw SFX_Snare8_2_Ch1
+
+SFX_Snare9_2:: ; 20021 (8:4021)
+ db CH7
+ dw SFX_Snare9_2_Ch1
+
+SFX_Cymbal1_2:: ; 20024 (8:4024)
+ db CH7
+ dw SFX_Cymbal1_2_Ch1
+
+SFX_Cymbal2_2:: ; 20027 (8:4027)
+ db CH7
+ dw SFX_Cymbal2_2_Ch1
+
+SFX_Cymbal3_2:: ; 2002a (8:402a)
+ db CH7
+ dw SFX_Cymbal3_2_Ch1
+
+SFX_Muted_Snare1_2:: ; 2002d (8:402d)
+ db CH7
+ dw SFX_Muted_Snare1_2_Ch1
+
+SFX_Triangle3_2:: ; 20030 (8:4030)
+ db CH7
+ dw SFX_Triangle3_2_Ch1
+
+SFX_Muted_Snare2_2:: ; 20033 (8:4033)
+ db CH7
+ dw SFX_Muted_Snare2_2_Ch1
+
+SFX_Muted_Snare3_2:: ; 20036 (8:4036)
+ db CH7
+ dw SFX_Muted_Snare3_2_Ch1
+
+SFX_Muted_Snare4_2:: ; 20039 (8:4039)
+ db CH7
+ dw SFX_Muted_Snare4_2_Ch1
+
+SFX_Cry00_2:: ; 2003c (8:403c)
+ db ( $80 | CH4 )
+ dw SFX_Cry00_2_Ch1
+ db CH5
+ dw SFX_Cry00_2_Ch2
+ db CH7
+ dw SFX_Cry00_2_Ch3
+
+SFX_Cry01_2:: ; 20045 (8:4045)
+ db ( $80 | CH4 )
+ dw SFX_Cry01_2_Ch1
+ db CH5
+ dw SFX_Cry01_2_Ch2
+ db CH7
+ dw SFX_Cry01_2_Ch3
+
+SFX_Cry02_2:: ; 2004e (8:404e)
+ db ( $80 | CH4 )
+ dw SFX_Cry02_2_Ch1
+ db CH5
+ dw SFX_Cry02_2_Ch2
+ db CH7
+ dw SFX_Cry02_2_Ch3
+
+SFX_Cry03_2:: ; 20057 (8:4057)
+ db ( $80 | CH4 )
+ dw SFX_Cry03_2_Ch1
+ db CH5
+ dw SFX_Cry03_2_Ch2
+ db CH7
+ dw SFX_Cry03_2_Ch3
+
+SFX_Cry04_2:: ; 20060 (8:4060)
+ db ( $80 | CH4 )
+ dw SFX_Cry04_2_Ch1
+ db CH5
+ dw SFX_Cry04_2_Ch2
+ db CH7
+ dw SFX_Cry04_2_Ch3
+
+SFX_Cry05_2:: ; 20069 (8:4069)
+ db ( $80 | CH4 )
+ dw SFX_Cry05_2_Ch1
+ db CH5
+ dw SFX_Cry05_2_Ch2
+ db CH7
+ dw SFX_Cry05_2_Ch3
+
+SFX_Cry06_2:: ; 20072 (8:4072)
+ db ( $80 | CH4 )
+ dw SFX_Cry06_2_Ch1
+ db CH5
+ dw SFX_Cry06_2_Ch2
+ db CH7
+ dw SFX_Cry06_2_Ch3
+
+SFX_Cry07_2:: ; 2007b (8:407b)
+ db ( $80 | CH4 )
+ dw SFX_Cry07_2_Ch1
+ db CH5
+ dw SFX_Cry07_2_Ch2
+ db CH7
+ dw SFX_Cry07_2_Ch3
+
+SFX_Cry08_2:: ; 20084 (8:4084)
+ db ( $80 | CH4 )
+ dw SFX_Cry08_2_Ch1
+ db CH5
+ dw SFX_Cry08_2_Ch2
+ db CH7
+ dw SFX_Cry08_2_Ch3
+
+SFX_Cry09_2:: ; 2008d (8:408d)
+ db ( $80 | CH4 )
+ dw SFX_Cry09_2_Ch1
+ db CH5
+ dw SFX_Cry09_2_Ch2
+ db CH7
+ dw SFX_Cry09_2_Ch3
+
+SFX_Cry0A_2:: ; 20096 (8:4096)
+ db ( $80 | CH4 )
+ dw SFX_Cry0A_2_Ch1
+ db CH5
+ dw SFX_Cry0A_2_Ch2
+ db CH7
+ dw SFX_Cry0A_2_Ch3
+
+SFX_Cry0B_2:: ; 2009f (8:409f)
+ db ( $80 | CH4 )
+ dw SFX_Cry0B_2_Ch1
+ db CH5
+ dw SFX_Cry0B_2_Ch2
+ db CH7
+ dw SFX_Cry0B_2_Ch3
+
+SFX_Cry0C_2:: ; 200a8 (8:40a8)
+ db ( $80 | CH4 )
+ dw SFX_Cry0C_2_Ch1
+ db CH5
+ dw SFX_Cry0C_2_Ch2
+ db CH7
+ dw SFX_Cry0C_2_Ch3
+
+SFX_Cry0D_2:: ; 200b1 (8:40b1)
+ db ( $80 | CH4 )
+ dw SFX_Cry0D_2_Ch1
+ db CH5
+ dw SFX_Cry0D_2_Ch2
+ db CH7
+ dw SFX_Cry0D_2_Ch3
+
+SFX_Cry0E_2:: ; 200ba (8:40ba)
+ db ( $80 | CH4 )
+ dw SFX_Cry0E_2_Ch1
+ db CH5
+ dw SFX_Cry0E_2_Ch2
+ db CH7
+ dw SFX_Cry0E_2_Ch3
+
+SFX_Cry0F_2:: ; 200c3 (8:40c3)
+ db ( $80 | CH4 )
+ dw SFX_Cry0F_2_Ch1
+ db CH5
+ dw SFX_Cry0F_2_Ch2
+ db CH7
+ dw SFX_Cry0F_2_Ch3
+
+SFX_Cry10_2:: ; 200cc (8:40cc)
+ db ( $80 | CH4 )
+ dw SFX_Cry10_2_Ch1
+ db CH5
+ dw SFX_Cry10_2_Ch2
+ db CH7
+ dw SFX_Cry10_2_Ch3
+
+SFX_Cry11_2:: ; 200d5 (8:40d5)
+ db ( $80 | CH4 )
+ dw SFX_Cry11_2_Ch1
+ db CH5
+ dw SFX_Cry11_2_Ch2
+ db CH7
+ dw SFX_Cry11_2_Ch3
+
+SFX_Cry12_2:: ; 200de (8:40de)
+ db ( $80 | CH4 )
+ dw SFX_Cry12_2_Ch1
+ db CH5
+ dw SFX_Cry12_2_Ch2
+ db CH7
+ dw SFX_Cry12_2_Ch3
+
+SFX_Cry13_2:: ; 200e7 (8:40e7)
+ db ( $80 | CH4 )
+ dw SFX_Cry13_2_Ch1
+ db CH5
+ dw SFX_Cry13_2_Ch2
+ db CH7
+ dw SFX_Cry13_2_Ch3
+
+SFX_Cry14_2:: ; 200f0 (8:40f0)
+ db ( $80 | CH4 )
+ dw SFX_Cry14_2_Ch1
+ db CH5
+ dw SFX_Cry14_2_Ch2
+ db CH7
+ dw SFX_Cry14_2_Ch3
+
+SFX_Cry15_2:: ; 200f9 (8:40f9)
+ db ( $80 | CH4 )
+ dw SFX_Cry15_2_Ch1
+ db CH5
+ dw SFX_Cry15_2_Ch2
+ db CH7
+ dw SFX_Cry15_2_Ch3
+
+SFX_Cry16_2:: ; 20102 (8:4102)
+ db ( $80 | CH4 )
+ dw SFX_Cry16_2_Ch1
+ db CH5
+ dw SFX_Cry16_2_Ch2
+ db CH7
+ dw SFX_Cry16_2_Ch3
+
+SFX_Cry17_2:: ; 2010b (8:410b)
+ db ( $80 | CH4 )
+ dw SFX_Cry17_2_Ch1
+ db CH5
+ dw SFX_Cry17_2_Ch2
+ db CH7
+ dw SFX_Cry17_2_Ch3
+
+SFX_Cry18_2:: ; 20114 (8:4114)
+ db ( $80 | CH4 )
+ dw SFX_Cry18_2_Ch1
+ db CH5
+ dw SFX_Cry18_2_Ch2
+ db CH7
+ dw SFX_Cry18_2_Ch3
+
+SFX_Cry19_2:: ; 2011d (8:411d)
+ db ( $80 | CH4 )
+ dw SFX_Cry19_2_Ch1
+ db CH5
+ dw SFX_Cry19_2_Ch2
+ db CH7
+ dw SFX_Cry19_2_Ch3
+
+SFX_Cry1A_2:: ; 20126 (8:4126)
+ db ( $80 | CH4 )
+ dw SFX_Cry1A_2_Ch1
+ db CH5
+ dw SFX_Cry1A_2_Ch2
+ db CH7
+ dw SFX_Cry1A_2_Ch3
+
+SFX_Cry1B_2:: ; 2012f (8:412f)
+ db ( $80 | CH4 )
+ dw SFX_Cry1B_2_Ch1
+ db CH5
+ dw SFX_Cry1B_2_Ch2
+ db CH7
+ dw SFX_Cry1B_2_Ch3
+
+SFX_Cry1C_2:: ; 20138 (8:4138)
+ db ( $80 | CH4 )
+ dw SFX_Cry1C_2_Ch1
+ db CH5
+ dw SFX_Cry1C_2_Ch2
+ db CH7
+ dw SFX_Cry1C_2_Ch3
+
+SFX_Cry1D_2:: ; 20141 (8:4141)
+ db ( $80 | CH4 )
+ dw SFX_Cry1D_2_Ch1
+ db CH5
+ dw SFX_Cry1D_2_Ch2
+ db CH7
+ dw SFX_Cry1D_2_Ch3
+
+SFX_Cry1E_2:: ; 2014a (8:414a)
+ db ( $80 | CH4 )
+ dw SFX_Cry1E_2_Ch1
+ db CH5
+ dw SFX_Cry1E_2_Ch2
+ db CH7
+ dw SFX_Cry1E_2_Ch3
+
+SFX_Cry1F_2:: ; 20153 (8:4153)
+ db ( $80 | CH4 )
+ dw SFX_Cry1F_2_Ch1
+ db CH5
+ dw SFX_Cry1F_2_Ch2
+ db CH7
+ dw SFX_Cry1F_2_Ch3
+
+SFX_Cry20_2:: ; 2015c (8:415c)
+ db ( $80 | CH4 )
+ dw SFX_Cry20_2_Ch1
+ db CH5
+ dw SFX_Cry20_2_Ch2
+ db CH7
+ dw SFX_Cry20_2_Ch3
+
+SFX_Cry21_2:: ; 20165 (8:4165)
+ db ( $80 | CH4 )
+ dw SFX_Cry21_2_Ch1
+ db CH5
+ dw SFX_Cry21_2_Ch2
+ db CH7
+ dw SFX_Cry21_2_Ch3
+
+SFX_Cry22_2:: ; 2016e (8:416e)
+ db ( $80 | CH4 )
+ dw SFX_Cry22_2_Ch1
+ db CH5
+ dw SFX_Cry22_2_Ch2
+ db CH7
+ dw SFX_Cry22_2_Ch3
+
+SFX_Cry23_2:: ; 20177 (8:4177)
+ db ( $80 | CH4 )
+ dw SFX_Cry23_2_Ch1
+ db CH5
+ dw SFX_Cry23_2_Ch2
+ db CH7
+ dw SFX_Cry23_2_Ch3
+
+SFX_Cry24_2:: ; 20180 (8:4180)
+ db ( $80 | CH4 )
+ dw SFX_Cry24_2_Ch1
+ db CH5
+ dw SFX_Cry24_2_Ch2
+ db CH7
+ dw SFX_Cry24_2_Ch3
+
+SFX_Cry25_2:: ; 20189 (8:4189)
+ db ( $80 | CH4 )
+ dw SFX_Cry25_2_Ch1
+ db CH5
+ dw SFX_Cry25_2_Ch2
+ db CH7
+ dw SFX_Cry25_2_Ch3
+
+SFX_Level_Up:: ; 20192 (8:4192)
+ db ( $80 | CH4 )
+ dw SFX_Level_Up_Ch1
+ db CH5
+ dw SFX_Level_Up_Ch2
+ db CH6
+ dw SFX_Level_Up_Ch3
+
+SFX_Get_Item2_2:: ; 2019b (8:419b)
+ db ( $80 | CH4 )
+ dw SFX_Get_Item2_2_Ch1
+ db CH5
+ dw SFX_Get_Item2_2_Ch2
+ db CH6
+ dw SFX_Get_Item2_2_Ch3
+
+SFX_Tink_2:: ; 201a4 (8:41a4)
+ db CH4
+ dw SFX_Tink_2_Ch1
+
+SFX_Heal_HP_2:: ; 201a7 (8:41a7)
+ db CH4
+ dw SFX_Heal_HP_2_Ch1
+
+SFX_Heal_Ailment_2:: ; 201aa (8:41aa)
+ db CH4
+ dw SFX_Heal_Ailment_2_Ch1
+
+SFX_Start_Menu_2:: ; 201ad (8:41ad)
+ db CH7
+ dw SFX_Start_Menu_2_Ch1
+
+SFX_Press_AB_2:: ; 201b0 (8:41b0)
+ db CH4
+ dw SFX_Press_AB_2_Ch1
+
+SFX_Ball_Toss:: ; 201b3 (8:41b3)
+ db ( $40 | CH4 )
+ dw SFX_Ball_Toss_Ch1
+ db CH5
+ dw SFX_Ball_Toss_Ch2
+
+SFX_Ball_Poof:: ; 201b9 (8:41b9)
+ db ( $40 | CH4 )
+ dw SFX_Ball_Poof_Ch1
+ db CH7
+ dw SFX_Ball_Poof_Ch2
+
+SFX_Faint_Thud:: ; 201bf (8:41bf)
+ db ( $40 | CH4 )
+ dw SFX_Faint_Thud_Ch1
+ db CH7
+ dw SFX_Faint_Thud_Ch2
+
+SFX_Run:: ; 201c5 (8:41c5)
+ db CH7
+ dw SFX_Run_Ch1
+
+SFX_Dex_Page_Added:: ; 201c8 (8:41c8)
+ db ( $40 | CH4 )
+ dw SFX_Dex_Page_Added_Ch1
+ db CH5
+ dw SFX_Dex_Page_Added_Ch2
+
+SFX_Caught_Mon:: ; 201ce (8:41ce)
+ db ( $80 | CH4 )
+ dw SFX_Caught_Mon_Ch1
+ db CH5
+ dw SFX_Caught_Mon_Ch2
+ db CH6
+ dw SFX_Caught_Mon_Ch3
+
+SFX_Peck:: ; 201d7 (8:41d7)
+ db CH7
+ dw SFX_Peck_Ch1
+
+SFX_Faint_Fall:: ; 201da (8:41da)
+ db CH4
+ dw SFX_Faint_Fall_Ch1
+
+SFX_Battle_09:: ; 201dd (8:41dd)
+ db CH4
+ dw SFX_Battle_09_Ch1
+
+SFX_Pound:: ; 201e0 (8:41e0)
+ db CH7
+ dw SFX_Pound_Ch1
+
+SFX_Battle_0B:: ; 201e3 (8:41e3)
+ db CH7
+ dw SFX_Battle_0B_Ch1
+
+SFX_Battle_0C:: ; 201e6 (8:41e6)
+ db CH7
+ dw SFX_Battle_0C_Ch1
+
+SFX_Battle_0D:: ; 201e9 (8:41e9)
+ db CH7
+ dw SFX_Battle_0D_Ch1
+
+SFX_Battle_0E:: ; 201ec (8:41ec)
+ db CH7
+ dw SFX_Battle_0E_Ch1
+
+SFX_Battle_0F:: ; 201ef (8:41ef)
+ db CH7
+ dw SFX_Battle_0F_Ch1
+
+SFX_Damage:: ; 201f2 (8:41f2)
+ db CH7
+ dw SFX_Damage_Ch1
+
+SFX_Not_Very_Effective:: ; 201f5 (8:41f5)
+ db CH7
+ dw SFX_Not_Very_Effective_Ch1
+
+SFX_Battle_12:: ; 201f8 (8:41f8)
+ db CH7
+ dw SFX_Battle_12_Ch1
+
+SFX_Battle_13:: ; 201fb (8:41fb)
+ db CH7
+ dw SFX_Battle_13_Ch1
+
+SFX_Battle_14:: ; 201fe (8:41fe)
+ db CH7
+ dw SFX_Battle_14_Ch1
+
+SFX_Vine_Whip:: ; 20201 (8:4201)
+ db CH7
+ dw SFX_Vine_Whip_Ch1
+
+SFX_Battle_16:: ; 20204 (8:4204)
+ db CH7
+ dw SFX_Battle_16_Ch1
+
+SFX_Battle_17:: ; 20207 (8:4207)
+ db CH7
+ dw SFX_Battle_17_Ch1
+
+SFX_Battle_18:: ; 2020a (8:420a)
+ db CH7
+ dw SFX_Battle_18_Ch1
+
+SFX_Battle_19:: ; 2020d (8:420d)
+ db CH7
+ dw SFX_Battle_19_Ch1
+
+SFX_Super_Effective:: ; 20210 (8:4210)
+ db CH7
+ dw SFX_Super_Effective_Ch1
+
+SFX_Battle_1B:: ; 20213 (8:4213)
+ db CH7
+ dw SFX_Battle_1B_Ch1
+
+SFX_Battle_1C:: ; 20216 (8:4216)
+ db CH7
+ dw SFX_Battle_1C_Ch1
+
+SFX_Doubleslap:: ; 20219 (8:4219)
+ db CH7
+ dw SFX_Doubleslap_Ch1
+
+SFX_Battle_1E:: ; 2021c (8:421c)
+ db ( $40 | CH4 )
+ dw SFX_Battle_1E_Ch1
+ db CH7
+ dw SFX_Battle_1E_Ch2
+
+SFX_Horn_Drill:: ; 20222 (8:4222)
+ db CH7
+ dw SFX_Horn_Drill_Ch1
+
+SFX_Battle_20:: ; 20225 (8:4225)
+ db CH7
+ dw SFX_Battle_20_Ch1
+
+SFX_Battle_21:: ; 20228 (8:4228)
+ db CH7
+ dw SFX_Battle_21_Ch1
+
+SFX_Battle_22:: ; 2022b (8:422b)
+ db CH7
+ dw SFX_Battle_22_Ch1
+
+SFX_Battle_23:: ; 2022e (8:422e)
+ db CH7
+ dw SFX_Battle_23_Ch1
+
+SFX_Battle_24:: ; 20231 (8:4231)
+ db ( $40 | CH4 )
+ dw SFX_Battle_24_Ch1
+ db CH7
+ dw SFX_Battle_24_Ch2
+
+SFX_Battle_25:: ; 20237 (8:4237)
+ db CH7
+ dw SFX_Battle_25_Ch1
+
+SFX_Battle_26:: ; 2023a (8:423a)
+ db CH7
+ dw SFX_Battle_26_Ch1
+
+SFX_Battle_27:: ; 2023d (8:423d)
+ db ( $80 | CH4 )
+ dw SFX_Battle_27_Ch1
+ db CH5
+ dw SFX_Battle_27_Ch2
+ db CH7
+ dw SFX_Battle_27_Ch3
+
+SFX_Battle_28:: ; 20246 (8:4246)
+ db ( $80 | CH4 )
+ dw SFX_Battle_28_Ch1
+ db CH5
+ dw SFX_Battle_28_Ch2
+ db CH7
+ dw SFX_Battle_28_Ch3
+
+SFX_Battle_29:: ; 2024f (8:424f)
+ db ( $40 | CH4 )
+ dw SFX_Battle_29_Ch1
+ db CH7
+ dw SFX_Battle_29_Ch2
+
+SFX_Battle_2A:: ; 20255 (8:4255)
+ db ( $80 | CH4 )
+ dw SFX_Battle_2A_Ch1
+ db CH5
+ dw SFX_Battle_2A_Ch2
+ db CH7
+ dw SFX_Battle_2A_Ch3
+
+SFX_Battle_2B:: ; 2025e (8:425e)
+ db ( $40 | CH4 )
+ dw SFX_Battle_2B_Ch1
+ db CH7
+ dw SFX_Battle_2B_Ch2
+
+SFX_Battle_2C:: ; 20264 (8:4264)
+ db ( $80 | CH4 )
+ dw SFX_Battle_2C_Ch1
+ db CH5
+ dw SFX_Battle_2C_Ch2
+ db CH7
+ dw SFX_Battle_2C_Ch3
+
+SFX_Psybeam:: ; 2026d (8:426d)
+ db ( $80 | CH4 )
+ dw SFX_Psybeam_Ch1
+ db CH5
+ dw SFX_Psybeam_Ch2
+ db CH7
+ dw SFX_Psybeam_Ch3
+
+SFX_Battle_2E:: ; 20276 (8:4276)
+ db ( $80 | CH4 )
+ dw SFX_Battle_2E_Ch1
+ db CH5
+ dw SFX_Battle_2E_Ch2
+ db CH7
+ dw SFX_Battle_2E_Ch3
+
+SFX_Battle_2F:: ; 2027f (8:427f)
+ db ( $80 | CH4 )
+ dw SFX_Battle_2F_Ch1
+ db CH5
+ dw SFX_Battle_2F_Ch2
+ db CH7
+ dw SFX_Battle_2F_Ch3
+
+SFX_Psychic_M:: ; 20288 (8:4288)
+ db ( $80 | CH4 )
+ dw SFX_Psychic_M_Ch1
+ db CH5
+ dw SFX_Psychic_M_Ch2
+ db CH7
+ dw SFX_Psychic_M_Ch3
+
+SFX_Battle_31:: ; 20291 (8:4291)
+ db ( $40 | CH4 )
+ dw SFX_Battle_31_Ch1
+ db CH5
+ dw SFX_Battle_31_Ch2
+
+SFX_Battle_32:: ; 20297 (8:4297)
+ db ( $40 | CH4 )
+ dw SFX_Battle_32_Ch1
+ db CH5
+ dw SFX_Battle_32_Ch2
+
+SFX_Battle_33:: ; 2029d (8:429d)
+ db ( $40 | CH4 )
+ dw SFX_Battle_33_Ch1
+ db CH5
+ dw SFX_Battle_33_Ch2
+
+SFX_Battle_34:: ; 202a3 (8:42a3)
+ db ( $80 | CH4 )
+ dw SFX_Battle_34_Ch1
+ db CH5
+ dw SFX_Battle_34_Ch2
+ db CH7
+ dw SFX_Battle_34_Ch3
+
+SFX_Battle_35:: ; 202ac (8:42ac)
+ db ( $40 | CH4 )
+ dw SFX_Battle_35_Ch1
+ db CH5
+ dw SFX_Battle_35_Ch2
+
+SFX_Battle_36:: ; 202b2 (8:42b2)
+ db ( $80 | CH4 )
+ dw SFX_Battle_36_Ch1
+ db CH5
+ dw SFX_Battle_36_Ch2
+ db CH7
+ dw SFX_Battle_36_Ch3
+
+SFX_Silph_Scope:: ; 202bb (8:42bb)
+ db CH4
+ dw SFX_Silph_Scope_Ch1
diff --git a/audio/headers/sfxheaders3.asm b/audio/headers/sfxheaders3.asm
new file mode 100644
index 00000000..321a33f5
--- /dev/null
+++ b/audio/headers/sfxheaders3.asm
@@ -0,0 +1,596 @@
+SFX_Headers_3::
+ db $ff, $ff, $ff ; padding
+
+SFX_Snare1_3:: ; 7c003 (1f:4003)
+ db CH7
+ dw SFX_Snare1_3_Ch1
+
+SFX_Snare2_3:: ; 7c006 (1f:4006)
+ db CH7
+ dw SFX_Snare2_3_Ch1
+
+SFX_Snare3_3:: ; 7c009 (1f:4009)
+ db CH7
+ dw SFX_Snare3_3_Ch1
+
+SFX_Snare4_3:: ; 7c00c (1f:400c)
+ db CH7
+ dw SFX_Snare4_3_Ch1
+
+SFX_Snare5_3:: ; 7c00f (1f:400f)
+ db CH7
+ dw SFX_Snare5_3_Ch1
+
+SFX_Triangle1_3:: ; 7c012 (1f:4012)
+ db CH7
+ dw SFX_Triangle1_3_Ch1
+
+SFX_Triangle2_3:: ; 7c015 (1f:4015)
+ db CH7
+ dw SFX_Triangle2_3_Ch1
+
+SFX_Snare6_3:: ; 7c018 (1f:4018)
+ db CH7
+ dw SFX_Snare6_3_Ch1
+
+SFX_Snare7_3:: ; 7c01b (1f:401b)
+ db CH7
+ dw SFX_Snare7_3_Ch1
+
+SFX_Snare8_3:: ; 7c01e (1f:401e)
+ db CH7
+ dw SFX_Snare8_3_Ch1
+
+SFX_Snare9_3:: ; 7c021 (1f:4021)
+ db CH7
+ dw SFX_Snare9_3_Ch1
+
+SFX_Cymbal1_3:: ; 7c024 (1f:4024)
+ db CH7
+ dw SFX_Cymbal1_3_Ch1
+
+SFX_Cymbal2_3:: ; 7c027 (1f:4027)
+ db CH7
+ dw SFX_Cymbal2_3_Ch1
+
+SFX_Cymbal3_3:: ; 7c02a (1f:402a)
+ db CH7
+ dw SFX_Cymbal3_3_Ch1
+
+SFX_Muted_Snare1_3:: ; 7c02d (1f:402d)
+ db CH7
+ dw SFX_Muted_Snare1_3_Ch1
+
+SFX_Triangle3_3:: ; 7c030 (1f:4030)
+ db CH7
+ dw SFX_Triangle3_3_Ch1
+
+SFX_Muted_Snare2_3:: ; 7c033 (1f:4033)
+ db CH7
+ dw SFX_Muted_Snare2_3_Ch1
+
+SFX_Muted_Snare3_3:: ; 7c036 (1f:4036)
+ db CH7
+ dw SFX_Muted_Snare3_3_Ch1
+
+SFX_Muted_Snare4_3:: ; 7c039 (1f:4039)
+ db CH7
+ dw SFX_Muted_Snare4_3_Ch1
+
+SFX_Cry00_3:: ; 7c03c (1f:403c)
+ db ( $80 | CH4 )
+ dw SFX_Cry00_3_Ch1
+ db CH5
+ dw SFX_Cry00_3_Ch2
+ db CH7
+ dw SFX_Cry00_3_Ch3
+
+SFX_Cry01_3:: ; 7c045 (1f:4045)
+ db ( $80 | CH4 )
+ dw SFX_Cry01_3_Ch1
+ db CH5
+ dw SFX_Cry01_3_Ch2
+ db CH7
+ dw SFX_Cry01_3_Ch3
+
+SFX_Cry02_3:: ; 7c04e (1f:404e)
+ db ( $80 | CH4 )
+ dw SFX_Cry02_3_Ch1
+ db CH5
+ dw SFX_Cry02_3_Ch2
+ db CH7
+ dw SFX_Cry02_3_Ch3
+
+SFX_Cry03_3:: ; 7c057 (1f:4057)
+ db ( $80 | CH4 )
+ dw SFX_Cry03_3_Ch1
+ db CH5
+ dw SFX_Cry03_3_Ch2
+ db CH7
+ dw SFX_Cry03_3_Ch3
+
+SFX_Cry04_3:: ; 7c060 (1f:4060)
+ db ( $80 | CH4 )
+ dw SFX_Cry04_3_Ch1
+ db CH5
+ dw SFX_Cry04_3_Ch2
+ db CH7
+ dw SFX_Cry04_3_Ch3
+
+SFX_Cry05_3:: ; 7c069 (1f:4069)
+ db ( $80 | CH4 )
+ dw SFX_Cry05_3_Ch1
+ db CH5
+ dw SFX_Cry05_3_Ch2
+ db CH7
+ dw SFX_Cry05_3_Ch3
+
+SFX_Cry06_3:: ; 7c072 (1f:4072)
+ db ( $80 | CH4 )
+ dw SFX_Cry06_3_Ch1
+ db CH5
+ dw SFX_Cry06_3_Ch2
+ db CH7
+ dw SFX_Cry06_3_Ch3
+
+SFX_Cry07_3:: ; 7c07b (1f:407b)
+ db ( $80 | CH4 )
+ dw SFX_Cry07_3_Ch1
+ db CH5
+ dw SFX_Cry07_3_Ch2
+ db CH7
+ dw SFX_Cry07_3_Ch3
+
+SFX_Cry08_3:: ; 7c084 (1f:4084)
+ db ( $80 | CH4 )
+ dw SFX_Cry08_3_Ch1
+ db CH5
+ dw SFX_Cry08_3_Ch2
+ db CH7
+ dw SFX_Cry08_3_Ch3
+
+SFX_Cry09_3:: ; 7c08d (1f:408d)
+ db ( $80 | CH4 )
+ dw SFX_Cry09_3_Ch1
+ db CH5
+ dw SFX_Cry09_3_Ch2
+ db CH7
+ dw SFX_Cry09_3_Ch3
+
+SFX_Cry0A_3:: ; 7c096 (1f:4096)
+ db ( $80 | CH4 )
+ dw SFX_Cry0A_3_Ch1
+ db CH5
+ dw SFX_Cry0A_3_Ch2
+ db CH7
+ dw SFX_Cry0A_3_Ch3
+
+SFX_Cry0B_3:: ; 7c09f (1f:409f)
+ db ( $80 | CH4 )
+ dw SFX_Cry0B_3_Ch1
+ db CH5
+ dw SFX_Cry0B_3_Ch2
+ db CH7
+ dw SFX_Cry0B_3_Ch3
+
+SFX_Cry0C_3:: ; 7c0a8 (1f:40a8)
+ db ( $80 | CH4 )
+ dw SFX_Cry0C_3_Ch1
+ db CH5
+ dw SFX_Cry0C_3_Ch2
+ db CH7
+ dw SFX_Cry0C_3_Ch3
+
+SFX_Cry0D_3:: ; 7c0b1 (1f:40b1)
+ db ( $80 | CH4 )
+ dw SFX_Cry0D_3_Ch1
+ db CH5
+ dw SFX_Cry0D_3_Ch2
+ db CH7
+ dw SFX_Cry0D_3_Ch3
+
+SFX_Cry0E_3:: ; 7c0ba (1f:40ba)
+ db ( $80 | CH4 )
+ dw SFX_Cry0E_3_Ch1
+ db CH5
+ dw SFX_Cry0E_3_Ch2
+ db CH7
+ dw SFX_Cry0E_3_Ch3
+
+SFX_Cry0F_3:: ; 7c0c3 (1f:40c3)
+ db ( $80 | CH4 )
+ dw SFX_Cry0F_3_Ch1
+ db CH5
+ dw SFX_Cry0F_3_Ch2
+ db CH7
+ dw SFX_Cry0F_3_Ch3
+
+SFX_Cry10_3:: ; 7c0cc (1f:40cc)
+ db ( $80 | CH4 )
+ dw SFX_Cry10_3_Ch1
+ db CH5
+ dw SFX_Cry10_3_Ch2
+ db CH7
+ dw SFX_Cry10_3_Ch3
+
+SFX_Cry11_3:: ; 7c0d5 (1f:40d5)
+ db ( $80 | CH4 )
+ dw SFX_Cry11_3_Ch1
+ db CH5
+ dw SFX_Cry11_3_Ch2
+ db CH7
+ dw SFX_Cry11_3_Ch3
+
+SFX_Cry12_3:: ; 7c0de (1f:40de)
+ db ( $80 | CH4 )
+ dw SFX_Cry12_3_Ch1
+ db CH5
+ dw SFX_Cry12_3_Ch2
+ db CH7
+ dw SFX_Cry12_3_Ch3
+
+SFX_Cry13_3:: ; 7c0e7 (1f:40e7)
+ db ( $80 | CH4 )
+ dw SFX_Cry13_3_Ch1
+ db CH5
+ dw SFX_Cry13_3_Ch2
+ db CH7
+ dw SFX_Cry13_3_Ch3
+
+SFX_Cry14_3:: ; 7c0f0 (1f:40f0)
+ db ( $80 | CH4 )
+ dw SFX_Cry14_3_Ch1
+ db CH5
+ dw SFX_Cry14_3_Ch2
+ db CH7
+ dw SFX_Cry14_3_Ch3
+
+SFX_Cry15_3:: ; 7c0f9 (1f:40f9)
+ db ( $80 | CH4 )
+ dw SFX_Cry15_3_Ch1
+ db CH5
+ dw SFX_Cry15_3_Ch2
+ db CH7
+ dw SFX_Cry15_3_Ch3
+
+SFX_Cry16_3:: ; 7c102 (1f:4102)
+ db ( $80 | CH4 )
+ dw SFX_Cry16_3_Ch1
+ db CH5
+ dw SFX_Cry16_3_Ch2
+ db CH7
+ dw SFX_Cry16_3_Ch3
+
+SFX_Cry17_3:: ; 7c10b (1f:410b)
+ db ( $80 | CH4 )
+ dw SFX_Cry17_3_Ch1
+ db CH5
+ dw SFX_Cry17_3_Ch2
+ db CH7
+ dw SFX_Cry17_3_Ch3
+
+SFX_Cry18_3:: ; 7c114 (1f:4114)
+ db ( $80 | CH4 )
+ dw SFX_Cry18_3_Ch1
+ db CH5
+ dw SFX_Cry18_3_Ch2
+ db CH7
+ dw SFX_Cry18_3_Ch3
+
+SFX_Cry19_3:: ; 7c11d (1f:411d)
+ db ( $80 | CH4 )
+ dw SFX_Cry19_3_Ch1
+ db CH5
+ dw SFX_Cry19_3_Ch2
+ db CH7
+ dw SFX_Cry19_3_Ch3
+
+SFX_Cry1A_3:: ; 7c126 (1f:4126)
+ db ( $80 | CH4 )
+ dw SFX_Cry1A_3_Ch1
+ db CH5
+ dw SFX_Cry1A_3_Ch2
+ db CH7
+ dw SFX_Cry1A_3_Ch3
+
+SFX_Cry1B_3:: ; 7c12f (1f:412f)
+ db ( $80 | CH4 )
+ dw SFX_Cry1B_3_Ch1
+ db CH5
+ dw SFX_Cry1B_3_Ch2
+ db CH7
+ dw SFX_Cry1B_3_Ch3
+
+SFX_Cry1C_3:: ; 7c138 (1f:4138)
+ db ( $80 | CH4 )
+ dw SFX_Cry1C_3_Ch1
+ db CH5
+ dw SFX_Cry1C_3_Ch2
+ db CH7
+ dw SFX_Cry1C_3_Ch3
+
+SFX_Cry1D_3:: ; 7c141 (1f:4141)
+ db ( $80 | CH4 )
+ dw SFX_Cry1D_3_Ch1
+ db CH5
+ dw SFX_Cry1D_3_Ch2
+ db CH7
+ dw SFX_Cry1D_3_Ch3
+
+SFX_Cry1E_3:: ; 7c14a (1f:414a)
+ db ( $80 | CH4 )
+ dw SFX_Cry1E_3_Ch1
+ db CH5
+ dw SFX_Cry1E_3_Ch2
+ db CH7
+ dw SFX_Cry1E_3_Ch3
+
+SFX_Cry1F_3:: ; 7c153 (1f:4153)
+ db ( $80 | CH4 )
+ dw SFX_Cry1F_3_Ch1
+ db CH5
+ dw SFX_Cry1F_3_Ch2
+ db CH7
+ dw SFX_Cry1F_3_Ch3
+
+SFX_Cry20_3:: ; 7c15c (1f:415c)
+ db ( $80 | CH4 )
+ dw SFX_Cry20_3_Ch1
+ db CH5
+ dw SFX_Cry20_3_Ch2
+ db CH7
+ dw SFX_Cry20_3_Ch3
+
+SFX_Cry21_3:: ; 7c165 (1f:4165)
+ db ( $80 | CH4 )
+ dw SFX_Cry21_3_Ch1
+ db CH5
+ dw SFX_Cry21_3_Ch2
+ db CH7
+ dw SFX_Cry21_3_Ch3
+
+SFX_Cry22_3:: ; 7c16e (1f:416e)
+ db ( $80 | CH4 )
+ dw SFX_Cry22_3_Ch1
+ db CH5
+ dw SFX_Cry22_3_Ch2
+ db CH7
+ dw SFX_Cry22_3_Ch3
+
+SFX_Cry23_3:: ; 7c177 (1f:4177)
+ db ( $80 | CH4 )
+ dw SFX_Cry23_3_Ch1
+ db CH5
+ dw SFX_Cry23_3_Ch2
+ db CH7
+ dw SFX_Cry23_3_Ch3
+
+SFX_Cry24_3:: ; 7c180 (1f:4180)
+ db ( $80 | CH4 )
+ dw SFX_Cry24_3_Ch1
+ db CH5
+ dw SFX_Cry24_3_Ch2
+ db CH7
+ dw SFX_Cry24_3_Ch3
+
+SFX_Cry25_3:: ; 7c189 (1f:4189)
+ db ( $80 | CH4 )
+ dw SFX_Cry25_3_Ch1
+ db CH5
+ dw SFX_Cry25_3_Ch2
+ db CH7
+ dw SFX_Cry25_3_Ch3
+
+SFX_Get_Item1_3:: ; 7c192 (1f:4192)
+ db ( $80 | CH4 )
+ dw SFX_Get_Item1_3_Ch1
+ db CH5
+ dw SFX_Get_Item1_3_Ch2
+ db CH6
+ dw SFX_Get_Item1_3_Ch3
+
+SFX_Get_Item2_3:: ; 7c19b (1f:419b)
+ db ( $80 | CH4 )
+ dw SFX_Get_Item2_3_Ch1
+ db CH5
+ dw SFX_Get_Item2_3_Ch2
+ db CH6
+ dw SFX_Get_Item2_3_Ch3
+
+SFX_Tink_3:: ; 7c1a4 (1f:41a4)
+ db CH4
+ dw SFX_Tink_3_Ch1
+
+SFX_Heal_HP_3:: ; 7c1a7 (1f:41a7)
+ db CH4
+ dw SFX_Heal_HP_3_Ch1
+
+SFX_Heal_Ailment_3:: ; 7c1aa (1f:41aa)
+ db CH4
+ dw SFX_Heal_Ailment_3_Ch1
+
+SFX_Start_Menu_3:: ; 7c1ad (1f:41ad)
+ db CH7
+ dw SFX_Start_Menu_3_Ch1
+
+SFX_Press_AB_3:: ; 7c1b0 (1f:41b0)
+ db CH4
+ dw SFX_Press_AB_3_Ch1
+
+SFX_Pokedex_Rating_3:: ; 7c1b3 (1f:41b3)
+ db ( $80 | CH4 )
+ dw SFX_Pokedex_Rating_3_Ch1
+ db CH5
+ dw SFX_Pokedex_Rating_3_Ch2
+ db CH6
+ dw SFX_Pokedex_Rating_3_Ch3
+
+SFX_Get_Key_Item_3:: ; 7c1bc (1f:41bc)
+ db ( $80 | CH4 )
+ dw SFX_Get_Key_Item_3_Ch1
+ db CH5
+ dw SFX_Get_Key_Item_3_Ch2
+ db CH6
+ dw SFX_Get_Key_Item_3_Ch3
+
+SFX_Poisoned_3:: ; 7c1c5 (1f:41c5)
+ db CH4
+ dw SFX_Poisoned_3_Ch1
+
+SFX_Trade_Machine_3:: ; 7c1c8 (1f:41c8)
+ db CH4
+ dw SFX_Trade_Machine_3_Ch1
+
+SFX_Turn_On_PC_3:: ; 7c1cb (1f:41cb)
+ db CH4
+ dw SFX_Turn_On_PC_3_Ch1
+
+SFX_Turn_Off_PC_3:: ; 7c1ce (1f:41ce)
+ db CH4
+ dw SFX_Turn_Off_PC_3_Ch1
+
+SFX_Enter_PC_3:: ; 7c1d1 (1f:41d1)
+ db CH4
+ dw SFX_Enter_PC_3_Ch1
+
+SFX_Shrink_3:: ; 7c1d4 (1f:41d4)
+ db CH4
+ dw SFX_Shrink_3_Ch1
+
+SFX_Switch_3:: ; 7c1d7 (1f:41d7)
+ db CH4
+ dw SFX_Switch_3_Ch1
+
+SFX_Healing_Machine_3:: ; 7c1da (1f:41da)
+ db CH4
+ dw SFX_Healing_Machine_3_Ch1
+
+SFX_Teleport_Exit1_3:: ; 7c1dd (1f:41dd)
+ db CH4
+ dw SFX_Teleport_Exit1_3_Ch1
+
+SFX_Teleport_Enter1_3:: ; 7c1e0 (1f:41e0)
+ db CH4
+ dw SFX_Teleport_Enter1_3_Ch1
+
+SFX_Teleport_Exit2_3:: ; 7c1e3 (1f:41e3)
+ db CH4
+ dw SFX_Teleport_Exit2_3_Ch1
+
+SFX_Ledge_3:: ; 7c1e6 (1f:41e6)
+ db CH4
+ dw SFX_Ledge_3_Ch1
+
+SFX_Teleport_Enter2_3:: ; 7c1e9 (1f:41e9)
+ db CH7
+ dw SFX_Teleport_Enter2_3_Ch1
+
+SFX_Fly_3:: ; 7c1ec (1f:41ec)
+ db CH7
+ dw SFX_Fly_3_Ch1
+
+SFX_Denied_3:: ; 7c1ef (1f:41ef)
+ db ( $40 | CH4 )
+ dw SFX_Denied_3_Ch1
+ db CH5
+ dw SFX_Denied_3_Ch2
+
+SFX_Arrow_Tiles_3:: ; 7c1f5 (1f:41f5)
+ db CH4
+ dw SFX_Arrow_Tiles_3_Ch1
+
+SFX_Push_Boulder_3:: ; 7c1f8 (1f:41f8)
+ db CH7
+ dw SFX_Push_Boulder_3_Ch1
+
+SFX_SS_Anne_Horn_3:: ; 7c1fb (1f:41fb)
+ db ( $40 | CH4 )
+ dw SFX_SS_Anne_Horn_3_Ch1
+ db CH5
+ dw SFX_SS_Anne_Horn_3_Ch2
+
+SFX_Withdraw_Deposit_3:: ; 7c201 (1f:4201)
+ db CH4
+ dw SFX_Withdraw_Deposit_3_Ch1
+
+SFX_Cut_3:: ; 7c204 (1f:4204)
+ db CH7
+ dw SFX_Cut_3_Ch1
+
+SFX_Go_Inside_3:: ; 7c207 (1f:4207)
+ db CH7
+ dw SFX_Go_Inside_3_Ch1
+
+SFX_Swap_3:: ; 7c20a (1f:420a)
+ db ( $40 | CH4 )
+ dw SFX_Swap_3_Ch1
+ db CH5
+ dw SFX_Swap_3_Ch2
+
+SFX_59_3:: ; 7c210 (1f:4210)
+ db ( $40 | CH4 )
+ dw SFX_59_3_Ch1
+ db CH5
+ dw SFX_59_3_Ch2
+
+SFX_Purchase_3:: ; 7c216 (1f:4216)
+ db ( $40 | CH4 )
+ dw SFX_Purchase_3_Ch1
+ db CH5
+ dw SFX_Purchase_3_Ch2
+
+SFX_Collision_3:: ; 7c21c (1f:421c)
+ db CH4
+ dw SFX_Collision_3_Ch1
+
+SFX_Go_Outside_3:: ; 7c21f (1f:421f)
+ db CH7
+ dw SFX_Go_Outside_3_Ch1
+
+SFX_Save_3:: ; 7c222 (1f:4222)
+ db ( $40 | CH4 )
+ dw SFX_Save_3_Ch1
+ db CH5
+ dw SFX_Save_3_Ch2
+
+SFX_Intro_Lunge:: ; 7c228 (1f:4228)
+ db CH7
+ dw SFX_Intro_Lunge_Ch1
+
+SFX_Intro_Hip:: ; 7c22b (1f:422b)
+ db CH4
+ dw SFX_Intro_Hip_Ch1
+
+SFX_Intro_Hop:: ; 7c22e (1f:422e)
+ db CH4
+ dw SFX_Intro_Hop_Ch1
+
+SFX_Intro_Raise:: ; 7c231 (1f:4231)
+ db CH7
+ dw SFX_Intro_Raise_Ch1
+
+SFX_Intro_Crash:: ; 7c234 (1f:4234)
+ db CH7
+ dw SFX_Intro_Crash_Ch1
+
+SFX_Intro_Whoosh:: ; 7c237 (1f:4237)
+ db CH7
+ dw SFX_Intro_Whoosh_Ch1
+
+SFX_Slots_Stop_Wheel:: ; 7c23a (1f:423a)
+ db CH4
+ dw SFX_Slots_Stop_Wheel_Ch1
+
+SFX_Slots_Reward:: ; 7c23d (1f:423d)
+ db CH4
+ dw SFX_Slots_Reward_Ch1
+
+SFX_Slots_New_Spin:: ; 7c240 (1f:4240)
+ db ( $40 | CH4 )
+ dw SFX_Slots_New_Spin_Ch1
+ db CH5
+ dw SFX_Slots_New_Spin_Ch2
+
+SFX_Shooting_Star:: ; 7c246 (1f:4246)
+ db CH4
+ dw SFX_Shooting_Star_Ch1
diff --git a/audio/music/bikeriding.asm b/audio/music/bikeriding.asm
index 662f2fc8..6da2f9d6 100644
--- a/audio/music/bikeriding.asm
+++ b/audio/music/bikeriding.asm
@@ -702,4 +702,3 @@ Music_BikeRiding_branch_7dec2::
triangle3 1
triangle3 1
endchannel
-; 0x7ded1
diff --git a/audio/music/celadon.asm b/audio/music/celadon.asm
index 77dc2ab8..71758fe4 100644
--- a/audio/music/celadon.asm
+++ b/audio/music/celadon.asm
@@ -409,4 +409,3 @@ Music_Celadon_branch_b7c1::
F# 2
E_ 2
loopchannel 0, Music_Celadon_branch_b7c1
-; 0xb86d
diff --git a/audio/music/cinnabar.asm b/audio/music/cinnabar.asm
index 4fcbe842..f3a12c5e 100644
--- a/audio/music/cinnabar.asm
+++ b/audio/music/cinnabar.asm
@@ -352,4 +352,3 @@ Music_Cinnabar_branch_b93f::
C_ 1
rest 1
loopchannel 0, Music_Cinnabar_branch_b93f
-; 0xb9eb
diff --git a/audio/music/cinnabarmansion.asm b/audio/music/cinnabarmansion.asm
index 690fb915..f461ec56 100644
--- a/audio/music/cinnabarmansion.asm
+++ b/audio/music/cinnabarmansion.asm
@@ -170,4 +170,3 @@ Music_CinnabarMansion_branch_7edb5::
rest 8
cymbal3 8
loopchannel 0, Music_CinnabarMansion_branch_7edb5
-; 0x7edda
diff --git a/audio/music/cities1.asm b/audio/music/cities1.asm
index 82754e0e..4b068045 100644
--- a/audio/music/cities1.asm
+++ b/audio/music/cities1.asm
@@ -655,4 +655,3 @@ Music_Cities1_branch_ad6e::
triangle2 2
triangle2 2
endchannel
-; 0xad77
diff --git a/audio/music/cities2.asm b/audio/music/cities2.asm
index 34297e68..e0e4ab5e 100644
--- a/audio/music/cities2.asm
+++ b/audio/music/cities2.asm
@@ -414,4 +414,3 @@ Music_Cities2_branch_b64c::
E_ 2
G# 2
loopchannel 0, Music_Cities2_branch_b64c
-; 0xb6c7
diff --git a/audio/music/credits.asm b/audio/music/credits.asm
index 4c3fa487..803e3d02 100644
--- a/audio/music/credits.asm
+++ b/audio/music/credits.asm
@@ -818,4 +818,3 @@ Music_Credits_branch_7ffed::
A_ 1
rest 3
endchannel
-; 0x7fffa
diff --git a/audio/music/defeatedgymleader.asm b/audio/music/defeatedgymleader.asm
index 96c2b9fc..e3e6a3de 100644
--- a/audio/music/defeatedgymleader.asm
+++ b/audio/music/defeatedgymleader.asm
@@ -605,4 +605,3 @@ Music_DefeatedGymLeader_branch_23e65::
G_ 2
E_ 2
loopchannel 0, Music_DefeatedGymLeader_branch_23e65
-; 0x23f52
diff --git a/audio/music/defeatedtrainer.asm b/audio/music/defeatedtrainer.asm
index 624190f6..015aaaf5 100644
--- a/audio/music/defeatedtrainer.asm
+++ b/audio/music/defeatedtrainer.asm
@@ -264,4 +264,3 @@ Music_DefeatedTrainer_branch_23b24::
octave 4
A_ 3
loopchannel 0, Music_DefeatedTrainer_branch_23b24
-; 0x23b74
diff --git a/audio/music/defeatedwildmon.asm b/audio/music/defeatedwildmon.asm
index 93b4d3ff..6b378400 100644
--- a/audio/music/defeatedwildmon.asm
+++ b/audio/music/defeatedwildmon.asm
@@ -300,4 +300,3 @@ Music_DefeatedWildMon_branch_23c21::
octave 4
D# 4
loopchannel 0, Music_DefeatedWildMon_branch_23c21
-; 0x23cad
diff --git a/audio/music/dungeon1.asm b/audio/music/dungeon1.asm
index e73eb707..ac6b3e07 100644
--- a/audio/music/dungeon1.asm
+++ b/audio/music/dungeon1.asm
@@ -673,4 +673,3 @@ Music_Dungeon1_branch_7e202::
snare8 4
snare9 4
endchannel
-; 0x7e20b
diff --git a/audio/music/dungeon2.asm b/audio/music/dungeon2.asm
index e65de5be..57e1805c 100644
--- a/audio/music/dungeon2.asm
+++ b/audio/music/dungeon2.asm
@@ -315,4 +315,3 @@ Music_Dungeon2_branch_7e9dd::
snare9 4
snare7 4
loopchannel 0, Music_Dungeon2_branch_7e9dd
-; 0x7e9f1
diff --git a/audio/music/dungeon3.asm b/audio/music/dungeon3.asm
index 1bfdb682..796d1e78 100644
--- a/audio/music/dungeon3.asm
+++ b/audio/music/dungeon3.asm
@@ -754,4 +754,3 @@ Music_Dungeon3_Ch4:: ; 7ece4 (1f:6ce4)
rest 16
rest 10
endchannel
-; 0x7ed0f
diff --git a/audio/music/finalbattle.asm b/audio/music/finalbattle.asm
index eabc06ec..7e4eb43b 100644
--- a/audio/music/finalbattle.asm
+++ b/audio/music/finalbattle.asm
@@ -1342,4 +1342,3 @@ Music_FinalBattle_branch_2396c::
octave 5
E_ 2
endchannel
-; 0x2397d
diff --git a/audio/music/gamecorner.asm b/audio/music/gamecorner.asm
index a80652e3..97ed4e77 100644
--- a/audio/music/gamecorner.asm
+++ b/audio/music/gamecorner.asm
@@ -625,4 +625,3 @@ Music_GameCorner_branch_7e4ab::
A_ 1
rest 1
endchannel
-; 0x7e4c0
diff --git a/audio/music/gym.asm b/audio/music/gym.asm
index b4cb2a8d..3ee51100 100644
--- a/audio/music/gym.asm
+++ b/audio/music/gym.asm
@@ -355,4 +355,3 @@ Music_Gym_branch_be4d::
F_ 2
A# 2
endchannel
-; 0xbe56
diff --git a/audio/music/gymleaderbattle.asm b/audio/music/gymleaderbattle.asm
index c4e7907e..c4a702e5 100644
--- a/audio/music/gymleaderbattle.asm
+++ b/audio/music/gymleaderbattle.asm
@@ -1398,4 +1398,3 @@ Music_GymLeaderBattle_branch_227b1::
octave 4
G_ 6
loopchannel 0, Music_GymLeaderBattle_branch_227b1
-; 0x22919
diff --git a/audio/music/halloffame.asm b/audio/music/halloffame.asm
index d2347aa6..86fff1c8 100644
--- a/audio/music/halloffame.asm
+++ b/audio/music/halloffame.asm
@@ -94,4 +94,3 @@ Music_HallOfFame_branch_7fbfe::
E_ 4
G_ 4
loopchannel 0, Music_HallOfFame_Ch3
-; 0x7fc1f
diff --git a/audio/music/indigoplateau.asm b/audio/music/indigoplateau.asm
index 32ce02c2..ab4df7a7 100644
--- a/audio/music/indigoplateau.asm
+++ b/audio/music/indigoplateau.asm
@@ -319,4 +319,3 @@ Music_IndigoPlateau_branch_a7a8::
mutedsnare3 1
mutedsnare3 1
endchannel
-; 0xa7c5
diff --git a/audio/music/introbattle.asm b/audio/music/introbattle.asm
index d3464680..ff7d85d8 100644
--- a/audio/music/introbattle.asm
+++ b/audio/music/introbattle.asm
@@ -327,4 +327,3 @@ Music_IntroBattle_Ch4:: ; 7f95b (1f:795b)
rest 16
rest 14
endchannel
-; 0x7fa19
diff --git a/audio/music/jigglypuffsong.asm b/audio/music/jigglypuffsong.asm
index 8d676150..e21d331f 100644
--- a/audio/music/jigglypuffsong.asm
+++ b/audio/music/jigglypuffsong.asm
@@ -38,4 +38,3 @@ Music_JigglypuffSong_Ch2:: ; 7fb9a (1f:7b9a)
G# 4
E_ 10
endchannel
-; 0x7fbaf
diff --git a/audio/music/lavender.asm b/audio/music/lavender.asm
index b2d36593..b655a488 100644
--- a/audio/music/lavender.asm
+++ b/audio/music/lavender.asm
@@ -197,4 +197,3 @@ Music_Lavender_branch_bc26::
triangle2 8
triangle2 8
loopchannel 0, Music_Lavender_branch_bc26
-; 0xbc2e
diff --git a/audio/music/meeteviltrainer.asm b/audio/music/meeteviltrainer.asm
index af4245ba..77324e5c 100644
--- a/audio/music/meeteviltrainer.asm
+++ b/audio/music/meeteviltrainer.asm
@@ -78,4 +78,3 @@ Music_MeetEvilTrainer_branch_7f6ee::
rest 3
A# 4
loopchannel 0, Music_MeetEvilTrainer_branch_7f6ee
-; 0x7f6f9
diff --git a/audio/music/meetfemaletrainer.asm b/audio/music/meetfemaletrainer.asm
index 35c6ec16..b416987d 100644
--- a/audio/music/meetfemaletrainer.asm
+++ b/audio/music/meetfemaletrainer.asm
@@ -116,4 +116,3 @@ Music_MeetFemaleTrainer_branch_7f770::
F# 1
rest 1
endchannel
-; 0x7f77b
diff --git a/audio/music/meetjessiejames.asm b/audio/music/meetjessiejames.asm
index 5ef52491..168b1bdc 100644
--- a/audio/music/meetjessiejames.asm
+++ b/audio/music/meetjessiejames.asm
@@ -307,4 +307,3 @@ Music_MeetJessieJames_branch_83235::
rest 1
loopchannel 0, Music_MeetJessieJames_branch_83235
endchannel
-; 0x832ba
diff --git a/audio/music/meetmaletrainer.asm b/audio/music/meetmaletrainer.asm
index 8a937fc3..0a2e8396 100644
--- a/audio/music/meetmaletrainer.asm
+++ b/audio/music/meetmaletrainer.asm
@@ -188,4 +188,3 @@ Music_MeetMaleTrainer_branch_7f7ea::
D# 1
rest 1
loopchannel 0, Music_MeetMaleTrainer_branch_7f7ea
-; 0x7f844
diff --git a/audio/music/meetprofoak.asm b/audio/music/meetprofoak.asm
index e095557d..a2f0abca 100644
--- a/audio/music/meetprofoak.asm
+++ b/audio/music/meetprofoak.asm
@@ -421,4 +421,3 @@ Music_MeetProfOak_branch_b101::
rest 1
loopchannel 2, Music_MeetProfOak_branch_b101
loopchannel 0, Music_MeetProfOak_branch_b0bc
-; 0xb119
diff --git a/audio/music/meetrival.asm b/audio/music/meetrival.asm
index fb138e61..1588e1c7 100644
--- a/audio/music/meetrival.asm
+++ b/audio/music/meetrival.asm
@@ -394,4 +394,3 @@ Music_MeetRival_branch_b2b5::
G_ 1
rest 1
loopchannel 0, Music_MeetRival_branch_b24b
-; 0xb2c8
diff --git a/audio/music/museumguy.asm b/audio/music/museumguy.asm
index 533ac343..2e2b79bf 100644
--- a/audio/music/museumguy.asm
+++ b/audio/music/museumguy.asm
@@ -335,4 +335,3 @@ Music_MuseumGuy_branch_aee1::
mutedsnare3 1
mutedsnare3 1
loopchannel 0, Music_MuseumGuy_branch_aee1
-; 0xaf59
diff --git a/audio/music/oakslab.asm b/audio/music/oakslab.asm
index 51c6cbf6..018a3e92 100644
--- a/audio/music/oakslab.asm
+++ b/audio/music/oakslab.asm
@@ -391,4 +391,3 @@ Music_OaksLab_branch_7ef5c::
E_ 1
rest 3
loopchannel 0, Music_OaksLab_branch_7ef5c
-; 0x7f04a
diff --git a/audio/music/pallettown.asm b/audio/music/pallettown.asm
index 71be9eb1..9d64b331 100644
--- a/audio/music/pallettown.asm
+++ b/audio/music/pallettown.asm
@@ -312,4 +312,3 @@ Music_PalletTown_branch_a8e3::
F# 8
loopchannel 0, Music_PalletTown_branch_a8e3
endchannel
-; 0xa913
diff --git a/audio/music/pkmnhealed.asm b/audio/music/pkmnhealed.asm
index 24247326..c802f217 100644
--- a/audio/music/pkmnhealed.asm
+++ b/audio/music/pkmnhealed.asm
@@ -45,4 +45,3 @@ Music_PkmnHealed_Ch3:: ; 9bd2 (2:5bd2)
E_ 6
rest 2
endchannel
-; 0x9bde
diff --git a/audio/music/pokecenter.asm b/audio/music/pokecenter.asm
index de6e0873..d0c9ef2c 100644
--- a/audio/music/pokecenter.asm
+++ b/audio/music/pokecenter.asm
@@ -373,4 +373,3 @@ Music_Pokecenter_branch_bfeb::
F# 2
A_ 2
endchannel
-; 0xbff4
diff --git a/audio/music/pokemontower.asm b/audio/music/pokemontower.asm
index e04dcb30..9bb7826e 100644
--- a/audio/music/pokemontower.asm
+++ b/audio/music/pokemontower.asm
@@ -456,4 +456,3 @@ Music_PokemonTower_branch_7f1a2::
D# 1
rest 1
loopchannel 0, Music_PokemonTower_branch_7f1a2
-; 0x7f243
diff --git a/audio/music/routes1.asm b/audio/music/routes1.asm
index 9876b0ea..81f138eb 100644
--- a/audio/music/routes1.asm
+++ b/audio/music/routes1.asm
@@ -402,4 +402,3 @@ Music_Routes1_Ch4:: ; 9d24 (2:5d24)
mutedsnare1 2
loopchannel 0, Music_Routes1_Ch4
endchannel
-; 0x9db9
diff --git a/audio/music/routes2.asm b/audio/music/routes2.asm
index 9ba376ce..3926c8de 100644
--- a/audio/music/routes2.asm
+++ b/audio/music/routes2.asm
@@ -423,4 +423,3 @@ Music_Routes2_Ch4:: ; 9f08 (2:5f08)
rest 3
loopchannel 0, Music_Routes2_Ch4
endchannel
-; 0x9fad
diff --git a/audio/music/routes3.asm b/audio/music/routes3.asm
index e62ca9bd..09a0516f 100644
--- a/audio/music/routes3.asm
+++ b/audio/music/routes3.asm
@@ -513,4 +513,3 @@ Music_Routes3_branch_a17a::
mutedsnare3 1
mutedsnare3 1
loopchannel 0, Music_Routes3_branch_a17a
-; 0xa26a
diff --git a/audio/music/routes4.asm b/audio/music/routes4.asm
index 742244bc..d67411f7 100644
--- a/audio/music/routes4.asm
+++ b/audio/music/routes4.asm
@@ -679,4 +679,3 @@ Music_Routes4_branch_a4a8::
mutedsnare2 2
mutedsnare2 2
loopchannel 0, Music_Routes4_branch_a4a8
-; 0xa5f0
diff --git a/audio/music/safarizone.asm b/audio/music/safarizone.asm
index 3e0657fd..afa81f17 100644
--- a/audio/music/safarizone.asm
+++ b/audio/music/safarizone.asm
@@ -109,4 +109,3 @@ Music_SafariZone_branch_bca5::
A_ 2
rest 2
endchannel
-; 0xbcbb
diff --git a/audio/music/silphco.asm b/audio/music/silphco.asm
index c5cb1675..853d248d 100644
--- a/audio/music/silphco.asm
+++ b/audio/music/silphco.asm
@@ -998,4 +998,3 @@ Music_SilphCo_branch_7f5c9::
E_ 4
F_ 4
loopchannel 0, Music_SilphCo_branch_7f5c9
-; 0x7f69d
diff --git a/audio/music/ssanne.asm b/audio/music/ssanne.asm
index db55e3b6..62fd1a02 100644
--- a/audio/music/ssanne.asm
+++ b/audio/music/ssanne.asm
@@ -336,4 +336,3 @@ Music_SSAnne_Ch3:: ; b4cb (2:74cb)
G# 8
B_ 8
loopchannel 0, Music_SSAnne_Ch3
-; 0xb504
diff --git a/audio/music/surfing.asm b/audio/music/surfing.asm
index 2b829caf..4ee84233 100644
--- a/audio/music/surfing.asm
+++ b/audio/music/surfing.asm
@@ -333,4 +333,3 @@ Music_Surfing_branch_7fb03::
D_ 2
E_ 2
loopchannel 0, Music_Surfing_branch_7fb03
-; 0x7fb7d
diff --git a/audio/music/surfingpikachu.asm b/audio/music/surfingpikachu.asm
index 1832bb03..466a2c53 100644
--- a/audio/music/surfingpikachu.asm
+++ b/audio/music/surfingpikachu.asm
@@ -688,4 +688,3 @@ Music_SurfingPikachu_branch_82ea0::
D# 1
rest 1
loopchannel 0, Music_SurfingPikachu_branch_82ea0
-; 0x82fbe
diff --git a/audio/music/titlescreen.asm b/audio/music/titlescreen.asm
index 359ff877..edd3352f 100644
--- a/audio/music/titlescreen.asm
+++ b/audio/music/titlescreen.asm
@@ -675,4 +675,3 @@ Music_TitleScreen_branch_7e842::
snare2 1
rest 3
endchannel
-; 0x7e850
diff --git a/audio/music/trainerbattle.asm b/audio/music/trainerbattle.asm
index 52642fdc..ffc17e20 100644
--- a/audio/music/trainerbattle.asm
+++ b/audio/music/trainerbattle.asm
@@ -1855,4 +1855,3 @@ Music_TrainerBattle_branch_22d9c::
D_ 2
C_ 2
loopchannel 0, Music_TrainerBattle_branch_22d9c
-; 0x23099
diff --git a/audio/music/unusedsong.asm b/audio/music/unusedsong.asm
index fb51fd15..c2c87891 100644
--- a/audio/music/unusedsong.asm
+++ b/audio/music/unusedsong.asm
@@ -336,4 +336,3 @@ Music_UnusedSong_branch_a9d8::
rest 6
loopchannel 0, Music_UnusedSong_branch_a9d8
endchannel
-; 0xaa6f
diff --git a/audio/music/vermilion.asm b/audio/music/vermilion.asm
index 5dfd5702..59ea3e08 100644
--- a/audio/music/vermilion.asm
+++ b/audio/music/vermilion.asm
@@ -321,4 +321,3 @@ Music_Vermilion_branch_bb3f::
triangle1 1
triangle1 1
endchannel
-; 0xbb58
diff --git a/audio/music/wildbattle.asm b/audio/music/wildbattle.asm
index 70ce7d3f..e37e4b06 100644
--- a/audio/music/wildbattle.asm
+++ b/audio/music/wildbattle.asm
@@ -736,4 +736,3 @@ Music_WildBattle_branch_232d8::
C# 2
G# 2
loopchannel 0, Music_WildBattle_branch_232d8
-; 0x233a6
diff --git a/audio/music/yellowintro.asm b/audio/music/yellowintro.asm
index 4d9cf938..9b0b52ab 100644
--- a/audio/music/yellowintro.asm
+++ b/audio/music/yellowintro.asm
@@ -482,4 +482,3 @@ Music_YellowIntro_Ch3:: ; 7f749 (1f:7749)
E_ 1
rest 15
endchannel
-; 0x7f860
diff --git a/audio/music/yellowunusedsong.asm b/audio/music/yellowunusedsong.asm
index e8c2a7ba..86e55ee8 100644
--- a/audio/music/yellowunusedsong.asm
+++ b/audio/music/yellowunusedsong.asm
@@ -324,4 +324,3 @@ Music_YellowUnusedSong_branch_830c3::
snare3 4
snare3 4
loopchannel 0, Music_YellowUnusedSong_branch_830c3
-; 0x8316d
diff --git a/audio/sfx/sfx_02_59.asm b/audio/sfx/59_1.asm
index 3fdea72a..6cbfdb16 100755..100644
--- a/audio/sfx/sfx_02_59.asm
+++ b/audio/sfx/59_1.asm
@@ -1,12 +1,11 @@
-SFX_02_59_Ch1: ; 841b (2:441b)
+SFX_59_1_Ch1: ; 841b (2:441b)
duty 2
unknownsfx0x20 4, 241, 128, 7
endchannel
-SFX_02_59_Ch2: ; 8422 (2:4422)
+SFX_59_1_Ch2: ; 8422 (2:4422)
duty 2
unknownsfx0x20 1, 8, 0, 0
unknownsfx0x20 4, 161, 97, 7
endchannel
-; 0x842d
diff --git a/audio/sfx/sfx_1f_59.asm b/audio/sfx/59_3.asm
index 45e65572..9c808359 100755..100644
--- a/audio/sfx/sfx_1f_59.asm
+++ b/audio/sfx/59_3.asm
@@ -1,12 +1,11 @@
-SFX_1f_59_Ch1: ; 7c404 (1f:4404)
+SFX_59_3_Ch1: ; 7c404 (1f:4404)
duty 2
unknownsfx0x20 4, 241, 128, 7
endchannel
-SFX_1f_59_Ch2: ; 7c40b (1f:440b)
+SFX_59_3_Ch2: ; 7c40b (1f:440b)
duty 2
unknownsfx0x20 1, 8, 0, 0
unknownsfx0x20 4, 161, 97, 7
endchannel
-; 0x7c416
diff --git a/audio/sfx/sfx_02_52.asm b/audio/sfx/arrow_tiles_1.asm
index 6afe2bef..172907a8 100755..100644
--- a/audio/sfx/sfx_02_52.asm
+++ b/audio/sfx/arrow_tiles_1.asm
@@ -1,7 +1,6 @@
-SFX_02_52_Ch1: ; 8649 (2:4649)
+SFX_Arrow_Tiles_1_Ch1: ; 8649 (2:4649)
duty 0
unknownsfx0x10 23
unknownsfx0x20 15, 210, 0, 7
unknownsfx0x10 8
endchannel
-; 0x8654
diff --git a/audio/sfx/sfx_1f_52.asm b/audio/sfx/arrow_tiles_3.asm
index 0ac5e8ee..fd225a5f 100755..100644
--- a/audio/sfx/sfx_1f_52.asm
+++ b/audio/sfx/arrow_tiles_3.asm
@@ -1,7 +1,6 @@
-SFX_1f_52_Ch1: ; 7c626 (1f:4626)
+SFX_Arrow_Tiles_3_Ch1: ; 7c626 (1f:4626)
duty 0
unknownsfx0x10 23
unknownsfx0x20 15, 210, 0, 7
unknownsfx0x10 8
endchannel
-; 0x7c631
diff --git a/audio/sfx/sfx_08_42.asm b/audio/sfx/ball_poof.asm
index fadf0c42..46fb2a07 100755..100644
--- a/audio/sfx/sfx_08_42.asm
+++ b/audio/sfx/ball_poof.asm
@@ -1,4 +1,4 @@
-SFX_08_42_Ch1: ; 2043d (8:443d)
+SFX_Ball_Poof_Ch1: ; 2043d (8:443d)
duty 2
unknownsfx0x10 22
unknownsfx0x20 15, 242, 0, 4
@@ -6,7 +6,6 @@ SFX_08_42_Ch1: ; 2043d (8:443d)
endchannel
-SFX_08_42_Ch2: ; 20448 (8:4448)
+SFX_Ball_Poof_Ch2: ; 20448 (8:4448)
unknownnoise0x20 15, 162, 34
endchannel
-; 0x2044c
diff --git a/audio/sfx/sfx_08_41.asm b/audio/sfx/ball_toss.asm
index a4788ad6..fc9f81cc 100755..100644
--- a/audio/sfx/sfx_08_41.asm
+++ b/audio/sfx/ball_toss.asm
@@ -1,12 +1,11 @@
-SFX_08_41_Ch1: ; 2042d (8:442d)
+SFX_Ball_Toss_Ch1: ; 2042d (8:442d)
duty 2
unknownsfx0x10 47
unknownsfx0x20 15, 242, 128, 7
endchannel
-SFX_08_41_Ch2: ; 20436 (8:4436)
+SFX_Ball_Toss_Ch2: ; 20436 (8:4436)
duty 2
unknownsfx0x20 15, 194, 130, 7
endchannel
-; 0x2043d
diff --git a/audio/sfx/sfx_08_49.asm b/audio/sfx/battle_09.asm
index 9d145c09..19e9b9e7 100755..100644
--- a/audio/sfx/sfx_08_49.asm
+++ b/audio/sfx/battle_09.asm
@@ -1,7 +1,6 @@
-SFX_08_49_Ch1: ; 204b9 (8:44b9)
+SFX_Battle_09_Ch1: ; 204b9 (8:44b9)
duty 1
unknownsfx0x10 151
unknownsfx0x20 15, 242, 0, 5
unknownsfx0x10 8
endchannel
-; 0x204c4
diff --git a/audio/sfx/battle_0b.asm b/audio/sfx/battle_0b.asm
new file mode 100644
index 00000000..1a7e17ec
--- /dev/null
+++ b/audio/sfx/battle_0b.asm
@@ -0,0 +1,3 @@
+SFX_Battle_0B_Ch1: ; 204c8 (8:44c8)
+ unknownnoise0x20 8, 241, 84
+ endchannel
diff --git a/audio/sfx/sfx_08_4c.asm b/audio/sfx/battle_0c.asm
index 3b4d0350..b2fdf455 100755..100644
--- a/audio/sfx/sfx_08_4c.asm
+++ b/audio/sfx/battle_0c.asm
@@ -1,6 +1,5 @@
-SFX_08_4c_Ch1: ; 204cc (8:44cc)
+SFX_Battle_0C_Ch1: ; 204cc (8:44cc)
unknownnoise0x20 15, 143, 17
unknownnoise0x20 4, 255, 18
unknownnoise0x20 10, 241, 85
endchannel
-; 0x204d6
diff --git a/audio/sfx/sfx_08_4d.asm b/audio/sfx/battle_0d.asm
index 90c2fe6c..c70b281d 100755..100644
--- a/audio/sfx/sfx_08_4d.asm
+++ b/audio/sfx/battle_0d.asm
@@ -1,6 +1,5 @@
-SFX_08_4d_Ch1: ; 204d6 (8:44d6)
+SFX_Battle_0D_Ch1: ; 204d6 (8:44d6)
unknownnoise0x20 15, 143, 52
unknownnoise0x20 8, 242, 53
unknownnoise0x20 10, 241, 85
endchannel
-; 0x204e0
diff --git a/audio/sfx/sfx_08_4e.asm b/audio/sfx/battle_0e.asm
index 172d245c..20c20628 100755..100644
--- a/audio/sfx/sfx_08_4e.asm
+++ b/audio/sfx/battle_0e.asm
@@ -1,5 +1,4 @@
-SFX_08_4e_Ch1: ; 204e0 (8:44e0)
+SFX_Battle_0E_Ch1: ; 204e0 (8:44e0)
unknownnoise0x20 15, 159, 35
unknownnoise0x20 8, 241, 33
endchannel
-; 0x204e7
diff --git a/audio/sfx/sfx_08_4f.asm b/audio/sfx/battle_0f.asm
index d8f45c20..d84aed37 100755..100644
--- a/audio/sfx/sfx_08_4f.asm
+++ b/audio/sfx/battle_0f.asm
@@ -1,7 +1,6 @@
-SFX_08_4f_Ch1: ; 204e7 (8:44e7)
+SFX_Battle_0F_Ch1: ; 204e7 (8:44e7)
unknownnoise0x20 2, 225, 75
unknownnoise0x20 10, 241, 68
unknownnoise0x20 2, 225, 58
unknownnoise0x20 6, 241, 52
endchannel
-; 0x204f4
diff --git a/audio/sfx/sfx_08_52.asm b/audio/sfx/battle_12.asm
index 1ffbbd25..324ce9b9 100755..100644
--- a/audio/sfx/sfx_08_52.asm
+++ b/audio/sfx/battle_12.asm
@@ -1,7 +1,6 @@
-SFX_08_52_Ch1: ; 2050b (8:450b)
+SFX_Battle_12_Ch1: ; 2050b (8:450b)
unknownnoise0x20 8, 79, 35
unknownnoise0x20 4, 196, 34
unknownnoise0x20 6, 242, 35
- loopchannel 4, SFX_08_52_Ch1
+ loopchannel 4, SFX_Battle_12_Ch1
endchannel
-; 0x20519
diff --git a/audio/sfx/sfx_08_53.asm b/audio/sfx/battle_13.asm
index aae94ed9..74349bb5 100755..100644
--- a/audio/sfx/sfx_08_53.asm
+++ b/audio/sfx/battle_13.asm
@@ -1,7 +1,6 @@
-SFX_08_53_Ch1: ; 20519 (8:4519)
+SFX_Battle_13_Ch1: ; 20519 (8:4519)
unknownnoise0x20 8, 79, 51
unknownnoise0x20 4, 196, 34
unknownnoise0x20 6, 242, 35
unknownnoise0x20 15, 242, 34
endchannel
-; 0x20526
diff --git a/audio/sfx/sfx_08_54.asm b/audio/sfx/battle_14.asm
index 92f84454..82234904 100755..100644
--- a/audio/sfx/sfx_08_54.asm
+++ b/audio/sfx/battle_14.asm
@@ -1,7 +1,6 @@
-SFX_08_54_Ch1: ; 20526 (8:4526)
+SFX_Battle_14_Ch1: ; 20526 (8:4526)
unknownnoise0x20 8, 255, 50
unknownnoise0x20 8, 244, 67
unknownnoise0x20 8, 242, 84
unknownnoise0x20 8, 241, 101
endchannel
-; 0x20533
diff --git a/audio/sfx/sfx_08_56.asm b/audio/sfx/battle_16.asm
index db106420..a2b5031e 100755..100644
--- a/audio/sfx/sfx_08_56.asm
+++ b/audio/sfx/battle_16.asm
@@ -1,6 +1,5 @@
-SFX_08_56_Ch1: ; 2054c (8:454c)
+SFX_Battle_16_Ch1: ; 2054c (8:454c)
unknownnoise0x20 1, 148, 35
unknownnoise0x20 1, 180, 34
unknownnoise0x20 8, 241, 68
endchannel
-; 0x20556
diff --git a/audio/sfx/sfx_08_57.asm b/audio/sfx/battle_17.asm
index d69c0e11..4be1d96b 100755..100644
--- a/audio/sfx/sfx_08_57.asm
+++ b/audio/sfx/battle_17.asm
@@ -1,7 +1,6 @@
-SFX_08_57_Ch1: ; 20556 (8:4556)
+SFX_Battle_17_Ch1: ; 20556 (8:4556)
unknownnoise0x20 2, 148, 51
unknownnoise0x20 4, 180, 34
unknownnoise0x20 4, 241, 68
unknownnoise0x20 8, 241, 85
endchannel
-; 0x20563
diff --git a/audio/sfx/sfx_08_58.asm b/audio/sfx/battle_18.asm
index 92a51d59..6c201d38 100755..100644
--- a/audio/sfx/sfx_08_58.asm
+++ b/audio/sfx/battle_18.asm
@@ -1,5 +1,4 @@
-SFX_08_58_Ch1: ; 20563 (8:4563)
+SFX_Battle_18_Ch1: ; 20563 (8:4563)
unknownnoise0x20 4, 255, 85
unknownnoise0x20 8, 241, 101
endchannel
-; 0x2056a
diff --git a/audio/sfx/sfx_08_59.asm b/audio/sfx/battle_19.asm
index c8f67cc0..6b54f8cd 100755..100644
--- a/audio/sfx/sfx_08_59.asm
+++ b/audio/sfx/battle_19.asm
@@ -1,6 +1,5 @@
-SFX_08_59_Ch1: ; 2056a (8:456a)
+SFX_Battle_19_Ch1: ; 2056a (8:456a)
unknownnoise0x20 2, 132, 67
unknownnoise0x20 2, 196, 34
unknownnoise0x20 8, 242, 52
endchannel
-; 0x20574
diff --git a/audio/sfx/sfx_08_5b.asm b/audio/sfx/battle_1b.asm
index 31a58537..3bb451d5 100755..100644
--- a/audio/sfx/sfx_08_5b.asm
+++ b/audio/sfx/battle_1b.asm
@@ -1,5 +1,4 @@
-SFX_08_5b_Ch1: ; 2057b (8:457b)
+SFX_Battle_1B_Ch1: ; 2057b (8:457b)
unknownnoise0x20 2, 241, 34
unknownnoise0x20 15, 242, 18
endchannel
-; 0x20582
diff --git a/audio/sfx/sfx_08_5c.asm b/audio/sfx/battle_1c.asm
index f14c9aab..579e36cc 100755..100644
--- a/audio/sfx/sfx_08_5c.asm
+++ b/audio/sfx/battle_1c.asm
@@ -1,6 +1,5 @@
-SFX_08_5c_Ch1: ; 20582 (8:4582)
+SFX_Battle_1C_Ch1: ; 20582 (8:4582)
unknownnoise0x20 2, 194, 1
unknownnoise0x20 15, 244, 1
unknownnoise0x20 15, 242, 1
endchannel
-; 0x2058c
diff --git a/audio/sfx/sfx_08_5e.asm b/audio/sfx/battle_1e.asm
index 366a6410..df556540 100755..100644
--- a/audio/sfx/sfx_08_5e.asm
+++ b/audio/sfx/battle_1e.asm
@@ -1,4 +1,4 @@
-SFX_08_5e_Ch1: ; 20593 (8:4593)
+SFX_Battle_1E_Ch1: ; 20593 (8:4593)
duty 0
unknownsfx0x10 58
unknownsfx0x20 4, 242, 0, 2
@@ -8,10 +8,9 @@ SFX_08_5e_Ch1: ; 20593 (8:4593)
endchannel
-SFX_08_5e_Ch2: ; 205a4 (8:45a4)
+SFX_Battle_1E_Ch2: ; 205a4 (8:45a4)
unknownnoise0x20 0, 209, 66
unknownnoise0x20 4, 161, 50
unknownnoise0x20 0, 209, 34
unknownnoise0x20 6, 161, 50
endchannel
-; 0x205b1
diff --git a/audio/sfx/sfx_08_60.asm b/audio/sfx/battle_20.asm
index a1ae9cdb..142030ee 100755..100644
--- a/audio/sfx/sfx_08_60.asm
+++ b/audio/sfx/battle_20.asm
@@ -1,5 +1,4 @@
-SFX_08_60_Ch1: ; 205be (8:45be)
+SFX_Battle_20_Ch1: ; 205be (8:45be)
unknownnoise0x20 12, 241, 84
unknownnoise0x20 8, 241, 100
endchannel
-; 0x205c5
diff --git a/audio/sfx/sfx_08_61.asm b/audio/sfx/battle_21.asm
index c930fed6..10ad350e 100755..100644
--- a/audio/sfx/sfx_08_61.asm
+++ b/audio/sfx/battle_21.asm
@@ -1,8 +1,7 @@
-SFX_08_61_Ch1: ; 205c5 (8:45c5)
+SFX_Battle_21_Ch1: ; 205c5 (8:45c5)
unknownnoise0x20 2, 241, 51
unknownnoise0x20 2, 193, 50
unknownnoise0x20 2, 161, 49
unknownnoise0x20 15, 130, 50
unknownnoise0x20 8, 241, 52
endchannel
-; 0x205d5
diff --git a/audio/sfx/sfx_08_62.asm b/audio/sfx/battle_22.asm
index 62f178fb..c6b0d972 100755..100644
--- a/audio/sfx/sfx_08_62.asm
+++ b/audio/sfx/battle_22.asm
@@ -1,5 +1,4 @@
-SFX_08_62_Ch1: ; 205d5 (8:45d5)
+SFX_Battle_22_Ch1: ; 205d5 (8:45d5)
unknownnoise0x20 2, 210, 50
unknownnoise0x20 15, 242, 67
endchannel
-; 0x205dc
diff --git a/audio/sfx/sfx_08_63.asm b/audio/sfx/battle_23.asm
index a69c6976..474e43b6 100755..100644
--- a/audio/sfx/sfx_08_63.asm
+++ b/audio/sfx/battle_23.asm
@@ -1,8 +1,7 @@
-SFX_08_63_Ch1: ; 205dc (8:45dc)
+SFX_Battle_23_Ch1: ; 205dc (8:45dc)
unknownnoise0x20 2, 242, 67
unknownnoise0x20 4, 181, 50
unknownnoise0x20 9, 134, 49
unknownnoise0x20 7, 100, 0
unknownnoise0x20 15, 242, 85
endchannel
-; 0x205ec
diff --git a/audio/sfx/sfx_08_64.asm b/audio/sfx/battle_24.asm
index ad463435..4fea9cf9 100755..100644
--- a/audio/sfx/sfx_08_64.asm
+++ b/audio/sfx/battle_24.asm
@@ -1,4 +1,4 @@
-SFX_08_64_Ch1: ; 205ec (8:45ec)
+SFX_Battle_24_Ch1: ; 205ec (8:45ec)
duty 1
unknownsfx0x10 151
unknownsfx0x20 15, 242, 0, 7
@@ -6,8 +6,7 @@ SFX_08_64_Ch1: ; 205ec (8:45ec)
endchannel
-SFX_08_64_Ch2: ; 205f7 (8:45f7)
+SFX_Battle_24_Ch2: ; 205f7 (8:45f7)
unknownnoise0x20 15, 63, 34
unknownnoise0x20 15, 242, 33
endchannel
-; 0x205fe
diff --git a/audio/sfx/sfx_08_65.asm b/audio/sfx/battle_25.asm
index 2e2faa15..18a70f45 100755..100644
--- a/audio/sfx/sfx_08_65.asm
+++ b/audio/sfx/battle_25.asm
@@ -1,8 +1,7 @@
-SFX_08_65_Ch1: ; 205fe (8:45fe)
+SFX_Battle_25_Ch1: ; 205fe (8:45fe)
unknownnoise0x20 15, 79, 65
unknownnoise0x20 8, 143, 65
unknownnoise0x20 8, 207, 65
unknownnoise0x20 8, 242, 66
unknownnoise0x20 15, 242, 65
endchannel
-; 0x2060e
diff --git a/audio/sfx/sfx_08_66.asm b/audio/sfx/battle_26.asm
index 03e351e7..943078e1 100755..100644
--- a/audio/sfx/sfx_08_66.asm
+++ b/audio/sfx/battle_26.asm
@@ -1,4 +1,4 @@
-SFX_08_66_Ch1: ; 2060e (8:460e)
+SFX_Battle_26_Ch1: ; 2060e (8:460e)
unknownnoise0x20 10, 255, 80
unknownnoise0x20 15, 255, 81
unknownnoise0x20 8, 242, 81
@@ -7,4 +7,3 @@ SFX_08_66_Ch1: ; 2060e (8:460e)
unknownnoise0x20 8, 255, 84
unknownnoise0x20 15, 242, 84
endchannel
-; 0x20624
diff --git a/audio/sfx/sfx_08_67.asm b/audio/sfx/battle_27.asm
index 89a5cbc7..ddd4e452 100755..100644
--- a/audio/sfx/sfx_08_67.asm
+++ b/audio/sfx/battle_27.asm
@@ -1,28 +1,27 @@
-SFX_08_67_Ch1: ; 20624 (8:4624)
+SFX_Battle_27_Ch1: ; 20624 (8:4624)
duty 2
unknownsfx0x20 15, 63, 192, 7
-SFX_08_67_branch_2062a:
+SFX_Battle_27_branch_2062a:
unknownsfx0x20 15, 223, 192, 7
- loopchannel 4, SFX_08_67_branch_2062a
+ loopchannel 4, SFX_Battle_27_branch_2062a
unknownsfx0x20 15, 209, 192, 7
endchannel
-SFX_08_67_Ch2: ; 20637 (8:4637)
+SFX_Battle_27_Ch2: ; 20637 (8:4637)
dutycycle 179
unknownsfx0x20 15, 47, 200, 7
-SFX_08_67_branch_2063d:
+SFX_Battle_27_branch_2063d:
unknownsfx0x20 15, 207, 199, 7
- loopchannel 4, SFX_08_67_branch_2063d
+ loopchannel 4, SFX_Battle_27_branch_2063d
unknownsfx0x20 15, 193, 200, 7
endchannel
-SFX_08_67_Ch3: ; 2064a (8:464a)
+SFX_Battle_27_Ch3: ; 2064a (8:464a)
unknownnoise0x20 3, 151, 18
unknownnoise0x20 3, 161, 17
- loopchannel 10, SFX_08_67_Ch3
+ loopchannel 10, SFX_Battle_27_Ch3
endchannel
-; 0x20655
diff --git a/audio/sfx/sfx_08_68.asm b/audio/sfx/battle_28.asm
index e0fd06c5..73855179 100755..100644
--- a/audio/sfx/sfx_08_68.asm
+++ b/audio/sfx/battle_28.asm
@@ -1,22 +1,21 @@
-SFX_08_68_Ch1: ; 20655 (8:4655)
+SFX_Battle_28_Ch1: ; 20655 (8:4655)
duty 0
unknownsfx0x20 0, 241, 192, 7
unknownsfx0x20 0, 241, 0, 7
- loopchannel 12, SFX_08_68_Ch1
+ loopchannel 12, SFX_Battle_28_Ch1
endchannel
-SFX_08_68_Ch2: ; 20664 (8:4664)
+SFX_Battle_28_Ch2: ; 20664 (8:4664)
dutycycle 179
unknownsfx0x20 0, 225, 193, 7
unknownsfx0x20 0, 225, 1, 7
- loopchannel 12, SFX_08_68_Ch2
+ loopchannel 12, SFX_Battle_28_Ch2
endchannel
-SFX_08_68_Ch3: ; 20673 (8:4673)
+SFX_Battle_28_Ch3: ; 20673 (8:4673)
unknownnoise0x20 1, 209, 73
unknownnoise0x20 1, 209, 41
- loopchannel 6, SFX_08_68_Ch3
+ loopchannel 6, SFX_Battle_28_Ch3
endchannel
-; 0x2067e
diff --git a/audio/sfx/sfx_08_69.asm b/audio/sfx/battle_29.asm
index 7e1bafae..e766a453 100755..100644
--- a/audio/sfx/sfx_08_69.asm
+++ b/audio/sfx/battle_29.asm
@@ -1,19 +1,18 @@
-SFX_08_69_Ch1: ; 2067e (8:467e)
+SFX_Battle_29_Ch1: ; 2067e (8:467e)
dutycycle 201
unknownsfx0x20 11, 243, 32, 1
unknownsfx0x20 9, 211, 80, 1
- loopchannel 5, SFX_08_69_Ch1
+ loopchannel 5, SFX_Battle_29_Ch1
unknownsfx0x20 8, 227, 48, 1
unknownsfx0x20 15, 194, 16, 1
endchannel
-SFX_08_69_Ch2: ; 20695 (8:4695)
+SFX_Battle_29_Ch2: ; 20695 (8:4695)
unknownnoise0x20 10, 243, 53
unknownnoise0x20 14, 246, 69
- loopchannel 4, SFX_08_69_Ch2
+ loopchannel 4, SFX_Battle_29_Ch2
unknownnoise0x20 12, 244, 188
unknownnoise0x20 12, 245, 156
unknownnoise0x20 15, 244, 172
endchannel
-; 0x206a9
diff --git a/audio/sfx/sfx_08_6a.asm b/audio/sfx/battle_2a.asm
index f38948a4..d7334aae 100755..100644
--- a/audio/sfx/sfx_08_6a.asm
+++ b/audio/sfx/battle_2a.asm
@@ -1,29 +1,28 @@
-SFX_08_6a_Ch1: ; 206a9 (8:46a9)
+SFX_Battle_2A_Ch1: ; 206a9 (8:46a9)
dutycycle 57
unknownsfx0x20 4, 244, 0, 6
unknownsfx0x20 3, 196, 0, 5
unknownsfx0x20 5, 181, 0, 6
unknownsfx0x20 13, 226, 192, 6
- loopchannel 3, SFX_08_6a_Ch1
+ loopchannel 3, SFX_Battle_2A_Ch1
unknownsfx0x20 8, 209, 0, 6
endchannel
-SFX_08_6a_Ch2: ; 206c4 (8:46c4)
+SFX_Battle_2A_Ch2: ; 206c4 (8:46c4)
dutycycle 141
unknownsfx0x20 5, 228, 224, 5
unknownsfx0x20 4, 180, 224, 4
unknownsfx0x20 6, 165, 232, 5
unknownsfx0x20 14, 209, 160, 6
- loopchannel 3, SFX_08_6a_Ch2
+ loopchannel 3, SFX_Battle_2A_Ch2
endchannel
-SFX_08_6a_Ch3: ; 206db (8:46db)
+SFX_Battle_2A_Ch3: ; 206db (8:46db)
unknownnoise0x20 5, 195, 51
unknownnoise0x20 3, 146, 67
unknownnoise0x20 10, 181, 51
unknownnoise0x20 15, 195, 50
- loopchannel 2, SFX_08_6a_Ch3
+ loopchannel 2, SFX_Battle_2A_Ch3
endchannel
-; 0x206ec
diff --git a/audio/sfx/sfx_08_6b.asm b/audio/sfx/battle_2b.asm
index 85226308..276627c3 100755..100644
--- a/audio/sfx/sfx_08_6b.asm
+++ b/audio/sfx/battle_2b.asm
@@ -1,22 +1,21 @@
-SFX_08_6b_Ch1: ; 206ec (8:46ec)
+SFX_Battle_2B_Ch1: ; 206ec (8:46ec)
dutycycle 210
unknownsfx0x20 3, 129, 0, 3
unknownsfx0x20 3, 193, 0, 4
unknownsfx0x20 3, 241, 0, 5
unknownsfx0x20 3, 177, 0, 4
unknownsfx0x20 3, 113, 0, 3
- loopchannel 5, SFX_08_6b_Ch1
+ loopchannel 5, SFX_Battle_2B_Ch1
unknownsfx0x20 8, 129, 0, 4
endchannel
-SFX_08_6b_Ch2: ; 2070b (8:470b)
+SFX_Battle_2B_Ch2: ; 2070b (8:470b)
unknownnoise0x20 3, 98, 34
unknownnoise0x20 3, 162, 50
unknownnoise0x20 3, 210, 51
unknownnoise0x20 3, 146, 35
unknownnoise0x20 3, 82, 18
- loopchannel 5, SFX_08_6b_Ch2
+ loopchannel 5, SFX_Battle_2B_Ch2
unknownnoise0x20 8, 129, 18
endchannel
-; 0x20722
diff --git a/audio/sfx/sfx_08_6c.asm b/audio/sfx/battle_2c.asm
index 93821db5..22b902f1 100755..100644
--- a/audio/sfx/sfx_08_6c.asm
+++ b/audio/sfx/battle_2c.asm
@@ -1,26 +1,25 @@
-SFX_08_6c_Ch1: ; 20722 (8:4722)
+SFX_Battle_2C_Ch1: ; 20722 (8:4722)
dutycycle 57
unknownsfx0x20 15, 244, 0, 5
unknownsfx0x20 15, 196, 0, 4
unknownsfx0x20 15, 226, 192, 5
- loopchannel 3, SFX_08_6c_Ch1
+ loopchannel 3, SFX_Battle_2C_Ch1
endchannel
-SFX_08_6c_Ch2: ; 20735 (8:4735)
+SFX_Battle_2C_Ch2: ; 20735 (8:4735)
dutycycle 141
unknownsfx0x20 7, 228, 48, 4
unknownsfx0x20 15, 180, 48, 3
unknownsfx0x20 15, 162, 56, 4
- loopchannel 4, SFX_08_6c_Ch2
+ loopchannel 4, SFX_Battle_2C_Ch2
endchannel
-SFX_08_6c_Ch3: ; 20748 (8:4748)
+SFX_Battle_2C_Ch3: ; 20748 (8:4748)
unknownnoise0x20 9, 244, 68
unknownnoise0x20 9, 242, 67
unknownnoise0x20 15, 244, 66
unknownnoise0x20 15, 244, 65
- loopchannel 3, SFX_08_6c_Ch3
+ loopchannel 3, SFX_Battle_2C_Ch3
endchannel
-; 0x20759
diff --git a/audio/sfx/sfx_08_6e.asm b/audio/sfx/battle_2e.asm
index 6a5749c9..91dda605 100755..100644
--- a/audio/sfx/sfx_08_6e.asm
+++ b/audio/sfx/battle_2e.asm
@@ -1,28 +1,27 @@
-SFX_08_6e_Ch1: ; 20792 (8:4792)
+SFX_Battle_2E_Ch1: ; 20792 (8:4792)
duty 0
unknownsfx0x20 2, 241, 0, 2
unknownsfx0x20 3, 241, 0, 7
unknownsfx0x20 4, 241, 0, 5
unknownsfx0x20 5, 241, 240, 7
- loopchannel 8, SFX_08_6e_Ch1
+ loopchannel 8, SFX_Battle_2E_Ch1
endchannel
-SFX_08_6e_Ch2: ; 207a9 (8:47a9)
+SFX_Battle_2E_Ch2: ; 207a9 (8:47a9)
dutycycle 179
unknownsfx0x20 2, 225, 2, 3
unknownsfx0x20 3, 225, 242, 7
unknownsfx0x20 4, 225, 2, 6
unknownsfx0x20 5, 225, 2, 7
- loopchannel 8, SFX_08_6e_Ch2
+ loopchannel 8, SFX_Battle_2E_Ch2
endchannel
-SFX_08_6e_Ch3: ; 207c0 (8:47c0)
+SFX_Battle_2E_Ch3: ; 207c0 (8:47c0)
unknownnoise0x20 2, 211, 16
unknownnoise0x20 3, 211, 17
unknownnoise0x20 2, 210, 16
unknownnoise0x20 5, 210, 18
- loopchannel 9, SFX_08_6e_Ch3
+ loopchannel 9, SFX_Battle_2E_Ch3
endchannel
-; 0x207d1
diff --git a/audio/sfx/sfx_08_6f.asm b/audio/sfx/battle_2f.asm
index c233fd90..4b1d9b2c 100755..100644
--- a/audio/sfx/sfx_08_6f.asm
+++ b/audio/sfx/battle_2f.asm
@@ -1,22 +1,21 @@
-SFX_08_6f_Ch1: ; 207d1 (8:47d1)
+SFX_Battle_2F_Ch1: ; 207d1 (8:47d1)
dutycycle 43
unknownsfx0x20 3, 241, 240, 7
unknownsfx0x20 4, 242, 0, 2
- loopchannel 8, SFX_08_6f_Ch1
+ loopchannel 8, SFX_Battle_2F_Ch1
endchannel
-SFX_08_6f_Ch2: ; 207e0 (8:47e0)
+SFX_Battle_2F_Ch2: ; 207e0 (8:47e0)
dutycycle 179
unknownsfx0x20 4, 226, 2, 2
unknownsfx0x20 4, 225, 226, 7
- loopchannel 9, SFX_08_6f_Ch2
+ loopchannel 9, SFX_Battle_2F_Ch2
endchannel
-SFX_08_6f_Ch3: ; 207ef (8:47ef)
+SFX_Battle_2F_Ch3: ; 207ef (8:47ef)
unknownnoise0x20 4, 255, 67
unknownnoise0x20 4, 242, 68
- loopchannel 9, SFX_08_6f_Ch3
+ loopchannel 9, SFX_Battle_2F_Ch3
endchannel
-; 0x207fa
diff --git a/audio/sfx/sfx_08_71.asm b/audio/sfx/battle_31.asm
index 92a81006..5d3e2e40 100755..100644
--- a/audio/sfx/sfx_08_71.asm
+++ b/audio/sfx/battle_31.asm
@@ -1,4 +1,4 @@
-SFX_08_71_Ch1: ; 20847 (8:4847)
+SFX_Battle_31_Ch1: ; 20847 (8:4847)
duty 2
unknownsfx0x20 15, 255, 224, 7
unknownsfx0x20 15, 255, 224, 7
@@ -8,7 +8,7 @@ SFX_08_71_Ch1: ; 20847 (8:4847)
endchannel
-SFX_08_71_Ch2: ; 2085e (8:485e)
+SFX_Battle_31_Ch2: ; 2085e (8:485e)
duty 3
unknownsfx0x20 15, 255, 226, 7
unknownsfx0x20 15, 255, 225, 7
@@ -16,4 +16,3 @@ SFX_08_71_Ch2: ; 2085e (8:485e)
unknownsfx0x20 15, 255, 225, 7
unknownsfx0x20 15, 242, 226, 7
endchannel
-; 0x20875
diff --git a/audio/sfx/sfx_08_72.asm b/audio/sfx/battle_32.asm
index ba307ca0..c949fb5b 100755..100644
--- a/audio/sfx/sfx_08_72.asm
+++ b/audio/sfx/battle_32.asm
@@ -1,4 +1,4 @@
-SFX_08_72_Ch1: ; 20875 (8:4875)
+SFX_Battle_32_Ch1: ; 20875 (8:4875)
duty 2
unknownsfx0x10 175
unknownsfx0x20 8, 241, 0, 7
@@ -6,8 +6,7 @@ SFX_08_72_Ch1: ; 20875 (8:4875)
endchannel
-SFX_08_72_Ch2: ; 20880 (8:4880)
+SFX_Battle_32_Ch2: ; 20880 (8:4880)
duty 3
unknownsfx0x20 8, 241, 1, 7
endchannel
-; 0x20887
diff --git a/audio/sfx/sfx_08_73.asm b/audio/sfx/battle_33.asm
index c1b189fc..8b2bd17d 100755..100644
--- a/audio/sfx/sfx_08_73.asm
+++ b/audio/sfx/battle_33.asm
@@ -1,4 +1,4 @@
-SFX_08_73_Ch1: ; 20887 (8:4887)
+SFX_Battle_33_Ch1: ; 20887 (8:4887)
duty 2
unknownsfx0x20 6, 241, 0, 5
unknownsfx0x20 6, 241, 128, 5
@@ -8,7 +8,7 @@ SFX_08_73_Ch1: ; 20887 (8:4887)
endchannel
-SFX_08_73_Ch2: ; 2089e (8:489e)
+SFX_Battle_33_Ch2: ; 2089e (8:489e)
duty 3
unknownsfx0x20 6, 225, 16, 5
unknownsfx0x20 6, 225, 144, 5
@@ -16,4 +16,3 @@ SFX_08_73_Ch2: ; 2089e (8:489e)
unknownsfx0x20 6, 225, 144, 6
unknownsfx0x20 8, 225, 16, 7
endchannel
-; 0x208b5
diff --git a/audio/sfx/sfx_08_74.asm b/audio/sfx/battle_34.asm
index 37332169..ac80eeea 100755..100644
--- a/audio/sfx/sfx_08_74.asm
+++ b/audio/sfx/battle_34.asm
@@ -1,4 +1,4 @@
-SFX_08_74_Ch1: ; 208b5 (8:48b5)
+SFX_Battle_34_Ch1: ; 208b5 (8:48b5)
dutycycle 237
unknownsfx0x20 8, 255, 248, 3
unknownsfx0x20 15, 255, 0, 4
@@ -6,7 +6,7 @@ SFX_08_74_Ch1: ; 208b5 (8:48b5)
endchannel
-SFX_08_74_Ch2: ; 208c4 (8:48c4)
+SFX_Battle_34_Ch2: ; 208c4 (8:48c4)
dutycycle 180
unknownsfx0x20 8, 239, 192, 3
unknownsfx0x20 15, 239, 192, 3
@@ -14,10 +14,9 @@ SFX_08_74_Ch2: ; 208c4 (8:48c4)
endchannel
-SFX_08_74_Ch3: ; 208d3 (8:48d3)
+SFX_Battle_34_Ch3: ; 208d3 (8:48d3)
unknownnoise0x20 4, 255, 81
unknownnoise0x20 8, 255, 84
unknownnoise0x20 15, 255, 85
unknownnoise0x20 15, 243, 86
endchannel
-; 0x208e0
diff --git a/audio/sfx/sfx_08_75.asm b/audio/sfx/battle_35.asm
index f1513d04..7e64aca9 100755..100644
--- a/audio/sfx/sfx_08_75.asm
+++ b/audio/sfx/battle_35.asm
@@ -1,4 +1,4 @@
-SFX_08_75_Ch1: ; 208e0 (8:48e0)
+SFX_Battle_35_Ch1: ; 208e0 (8:48e0)
executemusic
vibrato 10, 2, 4
duty 2
@@ -13,7 +13,7 @@ SFX_08_75_Ch1: ; 208e0 (8:48e0)
endchannel
-SFX_08_75_Ch2: ; 208f0 (8:48f0)
+SFX_Battle_35_Ch2: ; 208f0 (8:48f0)
executemusic
vibrato 10, 2, 3
duty 2
@@ -27,4 +27,3 @@ SFX_08_75_Ch2: ; 208f0 (8:48f0)
octave 5
G# 8
endchannel
-; 0x20902
diff --git a/audio/sfx/sfx_08_76.asm b/audio/sfx/battle_36.asm
index 1318b1e2..f878a1c8 100755..100644
--- a/audio/sfx/sfx_08_76.asm
+++ b/audio/sfx/battle_36.asm
@@ -1,4 +1,4 @@
-SFX_08_76_Ch1: ; 20902 (8:4902)
+SFX_Battle_36_Ch1: ; 20902 (8:4902)
duty 0
unknownsfx0x20 2, 241, 128, 7
unknownsfx0x20 2, 241, 0, 7
@@ -12,15 +12,15 @@ SFX_08_76_Ch1: ; 20902 (8:4902)
unknownsfx0x20 2, 241, 0, 7
unknownsfx0x20 2, 241, 208, 7
-SFX_08_76_branch_20930:
+SFX_Battle_36_branch_20930:
unknownsfx0x20 2, 241, 0, 7
unknownsfx0x20 2, 241, 224, 7
- loopchannel 12, SFX_08_76_branch_20930
+ loopchannel 12, SFX_Battle_36_branch_20930
unknownsfx0x20 15, 241, 0, 7
endchannel
-SFX_08_76_Ch2: ; 20941 (8:4941)
+SFX_Battle_36_Ch2: ; 20941 (8:4941)
dutycycle 179
unknownsfx0x20 2, 241, 129, 7
unknownsfx0x20 2, 241, 1, 7
@@ -35,14 +35,13 @@ SFX_08_76_Ch2: ; 20941 (8:4941)
unknownsfx0x20 2, 241, 209, 7
unknownsfx0x20 2, 241, 1, 7
unknownsfx0x20 2, 241, 225, 7
- loopchannel 12, SFX_08_76_branch_20930
+ loopchannel 12, SFX_Battle_36_branch_20930
unknownsfx0x20 15, 241, 1, 7
endchannel
-SFX_08_76_Ch3: ; 20980 (8:4980)
+SFX_Battle_36_Ch3: ; 20980 (8:4980)
unknownnoise0x20 1, 209, 73
unknownnoise0x20 1, 209, 41
- loopchannel 26, SFX_08_76_Ch3
+ loopchannel 26, SFX_Battle_36_Ch3
endchannel
-; 0x2098b
diff --git a/audio/sfx/sfx_08_46.asm b/audio/sfx/caught_mon.asm
index 4e4732c5..d841f57a 100755..100644
--- a/audio/sfx/sfx_08_46.asm
+++ b/audio/sfx/caught_mon.asm
@@ -1,4 +1,4 @@
-SFX_08_46_Ch1: ; 23a13 (8:7a13)
+SFX_Caught_Mon_Ch1: ; 23a13 (8:7a13)
executemusic
tempo 256
volume 7, 7
@@ -22,7 +22,7 @@ SFX_08_46_Ch1: ; 23a13 (8:7a13)
endchannel
-SFX_08_46_Ch2: ; 23a2e (8:7a2e)
+SFX_Caught_Mon_Ch2: ; 23a2e (8:7a2e)
executemusic
duty 2
notetype 6, 12, 2
@@ -44,7 +44,7 @@ SFX_08_46_Ch2: ; 23a2e (8:7a2e)
endchannel
-SFX_08_46_Ch3: ; 23a44 (8:7a44)
+SFX_Caught_Mon_Ch3: ; 23a44 (8:7a44)
executemusic
notetype 6, 1, 0
octave 4
@@ -59,4 +59,3 @@ SFX_08_46_Ch3: ; 23a44 (8:7a44)
G_ 2
G# 4
endchannel
-; 0x23a53
diff --git a/audio/sfx/sfx_02_5b.asm b/audio/sfx/collision_1.asm
index 13144567..4b9c4a7e 100755..100644
--- a/audio/sfx/sfx_02_5b.asm
+++ b/audio/sfx/collision_1.asm
@@ -1,7 +1,6 @@
-SFX_02_5b_Ch1: ; 8447 (2:4447)
+SFX_Collision_1_Ch1: ; 8447 (2:4447)
duty 2
unknownsfx0x10 90
unknownsfx0x20 15, 241, 0, 3
unknownsfx0x10 8
endchannel
-; 0x8452
diff --git a/audio/sfx/sfx_1f_5b.asm b/audio/sfx/collision_3.asm
index 9921eb88..18806c1f 100755..100644
--- a/audio/sfx/sfx_1f_5b.asm
+++ b/audio/sfx/collision_3.asm
@@ -1,7 +1,6 @@
-SFX_1f_5b_Ch1: ; 7c430 (1f:4430)
+SFX_Collision_3_Ch1: ; 7c430 (1f:4430)
duty 2
unknownsfx0x10 90
unknownsfx0x20 15, 241, 0, 3
unknownsfx0x10 8
endchannel
-; 0x7c43b
diff --git a/audio/sfx/sfx_02_14.asm b/audio/sfx/cry00_1.asm
index 1d0e647d..f29e29ab 100755..100644
--- a/audio/sfx/sfx_02_14.asm
+++ b/audio/sfx/cry00_1.asm
@@ -1,4 +1,4 @@
-SFX_02_14_Ch1: ; 8987 (2:4987)
+SFX_Cry00_1_Ch1: ; 8987 (2:4987)
dutycycle 245
unknownsfx0x20 4, 243, 24, 7
unknownsfx0x20 15, 229, 152, 7
@@ -6,7 +6,7 @@ SFX_02_14_Ch1: ; 8987 (2:4987)
endchannel
-SFX_02_14_Ch2: ; 8996 (2:4996)
+SFX_Cry00_1_Ch2: ; 8996 (2:4996)
dutycycle 160
unknownsfx0x20 5, 179, 8, 7
unknownsfx0x20 15, 197, 136, 7
@@ -14,9 +14,8 @@ SFX_02_14_Ch2: ; 8996 (2:4996)
endchannel
-SFX_02_14_Ch3: ; 89a5 (2:49a5)
+SFX_Cry00_1_Ch3: ; 89a5 (2:49a5)
unknownnoise0x20 3, 161, 28
unknownnoise0x20 14, 148, 44
unknownnoise0x20 8, 129, 28
endchannel
-; 0x89af
diff --git a/audio/sfx/sfx_08_14.asm b/audio/sfx/cry00_2.asm
index c0a7d813..fa069f18 100755..100644
--- a/audio/sfx/sfx_08_14.asm
+++ b/audio/sfx/cry00_2.asm
@@ -1,4 +1,4 @@
-SFX_08_14_Ch1: ; 20c2f (8:4c2f)
+SFX_Cry00_2_Ch1: ; 20c2f (8:4c2f)
dutycycle 245
unknownsfx0x20 4, 243, 24, 7
unknownsfx0x20 15, 229, 152, 7
@@ -6,7 +6,7 @@ SFX_08_14_Ch1: ; 20c2f (8:4c2f)
endchannel
-SFX_08_14_Ch2: ; 20c3e (8:4c3e)
+SFX_Cry00_2_Ch2: ; 20c3e (8:4c3e)
dutycycle 160
unknownsfx0x20 5, 179, 8, 7
unknownsfx0x20 15, 197, 136, 7
@@ -14,9 +14,8 @@ SFX_08_14_Ch2: ; 20c3e (8:4c3e)
endchannel
-SFX_08_14_Ch3: ; 20c4d (8:4c4d)
+SFX_Cry00_2_Ch3: ; 20c4d (8:4c4d)
unknownnoise0x20 3, 161, 28
unknownnoise0x20 14, 148, 44
unknownnoise0x20 8, 129, 28
endchannel
-; 0x20c57
diff --git a/audio/sfx/sfx_1f_14.asm b/audio/sfx/cry00_3.asm
index a1c24136..bdeadab5 100755..100644
--- a/audio/sfx/sfx_1f_14.asm
+++ b/audio/sfx/cry00_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_14_Ch1: ; 7c9fc (1f:49fc)
+SFX_Cry00_3_Ch1: ; 7c9fc (1f:49fc)
dutycycle 245
unknownsfx0x20 4, 243, 24, 7
unknownsfx0x20 15, 229, 152, 7
@@ -6,7 +6,7 @@ SFX_1f_14_Ch1: ; 7c9fc (1f:49fc)
endchannel
-SFX_1f_14_Ch2: ; 7ca0b (1f:4a0b)
+SFX_Cry00_3_Ch2: ; 7ca0b (1f:4a0b)
dutycycle 160
unknownsfx0x20 5, 179, 8, 7
unknownsfx0x20 15, 197, 136, 7
@@ -14,9 +14,8 @@ SFX_1f_14_Ch2: ; 7ca0b (1f:4a0b)
endchannel
-SFX_1f_14_Ch3: ; 7ca1a (1f:4a1a)
+SFX_Cry00_3_Ch3: ; 7ca1a (1f:4a1a)
unknownnoise0x20 3, 161, 28
unknownnoise0x20 14, 148, 44
unknownnoise0x20 8, 129, 28
endchannel
-; 0x7ca24
diff --git a/audio/sfx/sfx_02_15.asm b/audio/sfx/cry01_1.asm
index 33699792..835d41f7 100755..100644
--- a/audio/sfx/sfx_02_15.asm
+++ b/audio/sfx/cry01_1.asm
@@ -1,4 +1,4 @@
-SFX_02_15_Ch1: ; 8b97 (2:4b97)
+SFX_Cry01_1_Ch1: ; 8b97 (2:4b97)
dutycycle 160
unknownsfx0x20 4, 243, 0, 6
unknownsfx0x20 8, 213, 96, 7
@@ -7,7 +7,7 @@ SFX_02_15_Ch1: ; 8b97 (2:4b97)
endchannel
-SFX_02_15_Ch2: ; 8baa (2:4baa)
+SFX_Cry01_1_Ch2: ; 8baa (2:4baa)
dutycycle 90
unknownsfx0x20 5, 179, 241, 6
unknownsfx0x20 7, 197, 82, 7
@@ -16,10 +16,9 @@ SFX_02_15_Ch2: ; 8baa (2:4baa)
endchannel
-SFX_02_15_Ch3: ; 8bbd (2:4bbd)
+SFX_Cry01_1_Ch3: ; 8bbd (2:4bbd)
unknownnoise0x20 3, 162, 60
unknownnoise0x20 12, 148, 44
unknownnoise0x20 3, 130, 28
unknownnoise0x20 8, 113, 44
endchannel
-; 0x8bca
diff --git a/audio/sfx/sfx_08_15.asm b/audio/sfx/cry01_2.asm
index ae20351d..bcafa873 100755..100644
--- a/audio/sfx/sfx_08_15.asm
+++ b/audio/sfx/cry01_2.asm
@@ -1,4 +1,4 @@
-SFX_08_15_Ch1: ; 20e3f (8:4e3f)
+SFX_Cry01_2_Ch1: ; 20e3f (8:4e3f)
dutycycle 160
unknownsfx0x20 4, 243, 0, 6
unknownsfx0x20 8, 213, 96, 7
@@ -7,7 +7,7 @@ SFX_08_15_Ch1: ; 20e3f (8:4e3f)
endchannel
-SFX_08_15_Ch2: ; 20e52 (8:4e52)
+SFX_Cry01_2_Ch2: ; 20e52 (8:4e52)
dutycycle 90
unknownsfx0x20 5, 179, 241, 6
unknownsfx0x20 7, 197, 82, 7
@@ -16,10 +16,9 @@ SFX_08_15_Ch2: ; 20e52 (8:4e52)
endchannel
-SFX_08_15_Ch3: ; 20e65 (8:4e65)
+SFX_Cry01_2_Ch3: ; 20e65 (8:4e65)
unknownnoise0x20 3, 162, 60
unknownnoise0x20 12, 148, 44
unknownnoise0x20 3, 130, 28
unknownnoise0x20 8, 113, 44
endchannel
-; 0x20e72
diff --git a/audio/sfx/sfx_1f_15.asm b/audio/sfx/cry01_3.asm
index 3f42e339..1a31c7ca 100755..100644
--- a/audio/sfx/sfx_1f_15.asm
+++ b/audio/sfx/cry01_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_15_Ch1: ; 7cc0c (1f:4c0c)
+SFX_Cry01_3_Ch1: ; 7cc0c (1f:4c0c)
dutycycle 160
unknownsfx0x20 4, 243, 0, 6
unknownsfx0x20 8, 213, 96, 7
@@ -7,7 +7,7 @@ SFX_1f_15_Ch1: ; 7cc0c (1f:4c0c)
endchannel
-SFX_1f_15_Ch2: ; 7cc1f (1f:4c1f)
+SFX_Cry01_3_Ch2: ; 7cc1f (1f:4c1f)
dutycycle 90
unknownsfx0x20 5, 179, 241, 6
unknownsfx0x20 7, 197, 82, 7
@@ -16,10 +16,9 @@ SFX_1f_15_Ch2: ; 7cc1f (1f:4c1f)
endchannel
-SFX_1f_15_Ch3: ; 7cc32 (1f:4c32)
+SFX_Cry01_3_Ch3: ; 7cc32 (1f:4c32)
unknownnoise0x20 3, 162, 60
unknownnoise0x20 12, 148, 44
unknownnoise0x20 3, 130, 28
unknownnoise0x20 8, 113, 44
endchannel
-; 0x7cc3f
diff --git a/audio/sfx/sfx_02_16.asm b/audio/sfx/cry02_1.asm
index fb1a3755..97cff95e 100755..100644
--- a/audio/sfx/sfx_02_16.asm
+++ b/audio/sfx/cry02_1.asm
@@ -1,4 +1,4 @@
-SFX_02_16_Ch1: ; 8b0c (2:4b0c)
+SFX_Cry02_1_Ch1: ; 8b0c (2:4b0c)
duty 0
unknownsfx0x20 8, 245, 128, 4
unknownsfx0x20 2, 225, 224, 5
@@ -6,13 +6,12 @@ SFX_02_16_Ch1: ; 8b0c (2:4b0c)
endchannel
-SFX_02_16_Ch2: ; 8b1b (2:4b1b)
+SFX_Cry02_1_Ch2: ; 8b1b (2:4b1b)
dutycycle 165
unknownsfx0x20 7, 149, 65, 4
unknownsfx0x20 2, 129, 33, 5
unknownsfx0x20 8, 97, 26, 5
-SFX_02_16_Ch3: ; 8b29 (2:4b29)
+SFX_Cry02_1_Ch3: ; 8b29 (2:4b29)
endchannel
-; 0x8b2a
diff --git a/audio/sfx/sfx_08_16.asm b/audio/sfx/cry02_2.asm
index d8a126ed..7d67fc4a 100755..100644
--- a/audio/sfx/sfx_08_16.asm
+++ b/audio/sfx/cry02_2.asm
@@ -1,4 +1,4 @@
-SFX_08_16_Ch1: ; 20db4 (8:4db4)
+SFX_Cry02_2_Ch1: ; 20db4 (8:4db4)
duty 0
unknownsfx0x20 8, 245, 128, 4
unknownsfx0x20 2, 225, 224, 5
@@ -6,13 +6,12 @@ SFX_08_16_Ch1: ; 20db4 (8:4db4)
endchannel
-SFX_08_16_Ch2: ; 20dc3 (8:4dc3)
+SFX_Cry02_2_Ch2: ; 20dc3 (8:4dc3)
dutycycle 165
unknownsfx0x20 7, 149, 65, 4
unknownsfx0x20 2, 129, 33, 5
unknownsfx0x20 8, 97, 26, 5
-SFX_08_16_Ch3: ; 20dd1 (8:4dd1)
+SFX_Cry02_2_Ch3: ; 20dd1 (8:4dd1)
endchannel
-; 0x20dd2
diff --git a/audio/sfx/sfx_1f_16.asm b/audio/sfx/cry02_3.asm
index a9f0e332..604d084a 100755..100644
--- a/audio/sfx/sfx_1f_16.asm
+++ b/audio/sfx/cry02_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_16_Ch1: ; 7cb81 (1f:4b81)
+SFX_Cry02_3_Ch1: ; 7cb81 (1f:4b81)
duty 0
unknownsfx0x20 8, 245, 128, 4
unknownsfx0x20 2, 225, 224, 5
@@ -6,13 +6,12 @@ SFX_1f_16_Ch1: ; 7cb81 (1f:4b81)
endchannel
-SFX_1f_16_Ch2: ; 7cb90 (1f:4b90)
+SFX_Cry02_3_Ch2: ; 7cb90 (1f:4b90)
dutycycle 165
unknownsfx0x20 7, 149, 65, 4
unknownsfx0x20 2, 129, 33, 5
unknownsfx0x20 8, 97, 26, 5
-SFX_1f_16_Ch3: ; 7cb9e (1f:4b9e)
+SFX_Cry02_3_Ch3: ; 7cb9e (1f:4b9e)
endchannel
-; 0x7cb9f
diff --git a/audio/sfx/sfx_02_17.asm b/audio/sfx/cry03_1.asm
index cf19ce38..42f2c5d3 100755..100644
--- a/audio/sfx/sfx_02_17.asm
+++ b/audio/sfx/cry03_1.asm
@@ -1,4 +1,4 @@
-SFX_02_17_Ch1: ; 88a6 (2:48a6)
+SFX_Cry03_1_Ch1: ; 88a6 (2:48a6)
dutycycle 240
unknownsfx0x20 4, 247, 8, 6
unknownsfx0x20 6, 230, 0, 6
@@ -10,7 +10,7 @@ SFX_02_17_Ch1: ; 88a6 (2:48a6)
endchannel
-SFX_02_17_Ch2: ; 88c5 (2:48c5)
+SFX_Cry03_1_Ch2: ; 88c5 (2:48c5)
dutycycle 10
unknownsfx0x20 4, 199, 4, 5
unknownsfx0x20 6, 166, 2, 5
@@ -22,10 +22,9 @@ SFX_02_17_Ch2: ; 88c5 (2:48c5)
endchannel
-SFX_02_17_Ch3: ; 88e4 (2:48e4)
+SFX_Cry03_1_Ch3: ; 88e4 (2:48e4)
unknownnoise0x20 12, 228, 76
unknownnoise0x20 10, 199, 92
unknownnoise0x20 12, 182, 76
unknownnoise0x20 15, 162, 92
endchannel
-; 0x88f1
diff --git a/audio/sfx/sfx_08_17.asm b/audio/sfx/cry03_2.asm
index 10143636..92dab482 100755..100644
--- a/audio/sfx/sfx_08_17.asm
+++ b/audio/sfx/cry03_2.asm
@@ -1,4 +1,4 @@
-SFX_08_17_Ch1: ; 20b4e (8:4b4e)
+SFX_Cry03_2_Ch1: ; 20b4e (8:4b4e)
dutycycle 240
unknownsfx0x20 4, 247, 8, 6
unknownsfx0x20 6, 230, 0, 6
@@ -10,7 +10,7 @@ SFX_08_17_Ch1: ; 20b4e (8:4b4e)
endchannel
-SFX_08_17_Ch2: ; 20b6d (8:4b6d)
+SFX_Cry03_2_Ch2: ; 20b6d (8:4b6d)
dutycycle 10
unknownsfx0x20 4, 199, 4, 5
unknownsfx0x20 6, 166, 2, 5
@@ -22,10 +22,9 @@ SFX_08_17_Ch2: ; 20b6d (8:4b6d)
endchannel
-SFX_08_17_Ch3: ; 20b8c (8:4b8c)
+SFX_Cry03_2_Ch3: ; 20b8c (8:4b8c)
unknownnoise0x20 12, 228, 76
unknownnoise0x20 10, 199, 92
unknownnoise0x20 12, 182, 76
unknownnoise0x20 15, 162, 92
endchannel
-; 0x20b99
diff --git a/audio/sfx/sfx_1f_17.asm b/audio/sfx/cry03_3.asm
index f0f15f40..0161b820 100755..100644
--- a/audio/sfx/sfx_1f_17.asm
+++ b/audio/sfx/cry03_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_17_Ch1: ; 7c91b (1f:491b)
+SFX_Cry03_3_Ch1: ; 7c91b (1f:491b)
dutycycle 240
unknownsfx0x20 4, 247, 8, 6
unknownsfx0x20 6, 230, 0, 6
@@ -10,7 +10,7 @@ SFX_1f_17_Ch1: ; 7c91b (1f:491b)
endchannel
-SFX_1f_17_Ch2: ; 7c93a (1f:493a)
+SFX_Cry03_3_Ch2: ; 7c93a (1f:493a)
dutycycle 10
unknownsfx0x20 4, 199, 4, 5
unknownsfx0x20 6, 166, 2, 5
@@ -22,10 +22,9 @@ SFX_1f_17_Ch2: ; 7c93a (1f:493a)
endchannel
-SFX_1f_17_Ch3: ; 7c959 (1f:4959)
+SFX_Cry03_3_Ch3: ; 7c959 (1f:4959)
unknownnoise0x20 12, 228, 76
unknownnoise0x20 10, 199, 92
unknownnoise0x20 12, 182, 76
unknownnoise0x20 15, 162, 92
endchannel
-; 0x7c966
diff --git a/audio/sfx/sfx_02_18.asm b/audio/sfx/cry04_1.asm
index a3039556..c80a6bd9 100755..100644
--- a/audio/sfx/sfx_02_18.asm
+++ b/audio/sfx/cry04_1.asm
@@ -1,4 +1,4 @@
-SFX_02_18_Ch1: ; 8c55 (2:4c55)
+SFX_Cry04_1_Ch1: ; 8c55 (2:4c55)
dutycycle 240
unknownsfx0x20 4, 247, 160, 6
unknownsfx0x20 8, 230, 164, 6
@@ -10,7 +10,7 @@ SFX_02_18_Ch1: ; 8c55 (2:4c55)
endchannel
-SFX_02_18_Ch2: ; 8c74 (2:4c74)
+SFX_Cry04_1_Ch2: ; 8c74 (2:4c74)
dutycycle 90
unknownsfx0x20 4, 231, 1, 6
unknownsfx0x20 8, 214, 3, 6
@@ -22,7 +22,7 @@ SFX_02_18_Ch2: ; 8c74 (2:4c74)
endchannel
-SFX_02_18_Ch3: ; 8c93 (2:4c93)
+SFX_Cry04_1_Ch3: ; 8c93 (2:4c93)
unknownnoise0x20 7, 214, 92
unknownnoise0x20 8, 230, 76
unknownnoise0x20 4, 212, 92
@@ -30,4 +30,3 @@ SFX_02_18_Ch3: ; 8c93 (2:4c93)
unknownnoise0x20 7, 195, 76
unknownnoise0x20 8, 161, 92
endchannel
-; 0x8ca6
diff --git a/audio/sfx/sfx_08_18.asm b/audio/sfx/cry04_2.asm
index 742edcd0..dcd866da 100755..100644
--- a/audio/sfx/sfx_08_18.asm
+++ b/audio/sfx/cry04_2.asm
@@ -1,4 +1,4 @@
-SFX_08_18_Ch1: ; 20efd (8:4efd)
+SFX_Cry04_2_Ch1: ; 20efd (8:4efd)
dutycycle 240
unknownsfx0x20 4, 247, 160, 6
unknownsfx0x20 8, 230, 164, 6
@@ -10,7 +10,7 @@ SFX_08_18_Ch1: ; 20efd (8:4efd)
endchannel
-SFX_08_18_Ch2: ; 20f1c (8:4f1c)
+SFX_Cry04_2_Ch2: ; 20f1c (8:4f1c)
dutycycle 90
unknownsfx0x20 4, 231, 1, 6
unknownsfx0x20 8, 214, 3, 6
@@ -22,7 +22,7 @@ SFX_08_18_Ch2: ; 20f1c (8:4f1c)
endchannel
-SFX_08_18_Ch3: ; 20f3b (8:4f3b)
+SFX_Cry04_2_Ch3: ; 20f3b (8:4f3b)
unknownnoise0x20 7, 214, 92
unknownnoise0x20 8, 230, 76
unknownnoise0x20 4, 212, 92
@@ -30,4 +30,3 @@ SFX_08_18_Ch3: ; 20f3b (8:4f3b)
unknownnoise0x20 7, 195, 76
unknownnoise0x20 8, 161, 92
endchannel
-; 0x20f4e
diff --git a/audio/sfx/sfx_1f_18.asm b/audio/sfx/cry04_3.asm
index 4496dd9a..5d8c6df9 100755..100644
--- a/audio/sfx/sfx_1f_18.asm
+++ b/audio/sfx/cry04_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_18_Ch1: ; 7ccca (1f:4cca)
+SFX_Cry04_3_Ch1: ; 7ccca (1f:4cca)
dutycycle 240
unknownsfx0x20 4, 247, 160, 6
unknownsfx0x20 8, 230, 164, 6
@@ -10,7 +10,7 @@ SFX_1f_18_Ch1: ; 7ccca (1f:4cca)
endchannel
-SFX_1f_18_Ch2: ; 7cce9 (1f:4ce9)
+SFX_Cry04_3_Ch2: ; 7cce9 (1f:4ce9)
dutycycle 90
unknownsfx0x20 4, 231, 1, 6
unknownsfx0x20 8, 214, 3, 6
@@ -22,7 +22,7 @@ SFX_1f_18_Ch2: ; 7cce9 (1f:4ce9)
endchannel
-SFX_1f_18_Ch3: ; 7cd08 (1f:4d08)
+SFX_Cry04_3_Ch3: ; 7cd08 (1f:4d08)
unknownnoise0x20 7, 214, 92
unknownnoise0x20 8, 230, 76
unknownnoise0x20 4, 212, 92
@@ -30,4 +30,3 @@ SFX_1f_18_Ch3: ; 7cd08 (1f:4d08)
unknownnoise0x20 7, 195, 76
unknownnoise0x20 8, 161, 92
endchannel
-; 0x7cd1b
diff --git a/audio/sfx/sfx_02_19.asm b/audio/sfx/cry05_1.asm
index 4ddb848d..891cc50e 100755..100644
--- a/audio/sfx/sfx_02_19.asm
+++ b/audio/sfx/cry05_1.asm
@@ -1,4 +1,4 @@
-SFX_02_19_Ch1: ; 8a35 (2:4a35)
+SFX_Cry05_1_Ch1: ; 8a35 (2:4a35)
dutycycle 10
unknownsfx0x20 6, 226, 0, 5
unknownsfx0x20 6, 227, 128, 5
@@ -7,7 +7,7 @@ SFX_02_19_Ch1: ; 8a35 (2:4a35)
endchannel
-SFX_02_19_Ch2: ; 8a48 (2:4a48)
+SFX_Cry05_1_Ch2: ; 8a48 (2:4a48)
dutycycle 245
unknownsfx0x20 6, 226, 130, 4
unknownsfx0x20 6, 211, 1, 5
@@ -15,6 +15,5 @@ SFX_02_19_Ch2: ; 8a48 (2:4a48)
unknownsfx0x20 8, 129, 193, 4
-SFX_02_19_Ch3: ; 8a5a (2:4a5a)
+SFX_Cry05_1_Ch3: ; 8a5a (2:4a5a)
endchannel
-; 0x8a5b
diff --git a/audio/sfx/sfx_08_19.asm b/audio/sfx/cry05_2.asm
index af2cab57..98df4c1d 100755..100644
--- a/audio/sfx/sfx_08_19.asm
+++ b/audio/sfx/cry05_2.asm
@@ -1,4 +1,4 @@
-SFX_08_19_Ch1: ; 20cdd (8:4cdd)
+SFX_Cry05_2_Ch1: ; 20cdd (8:4cdd)
dutycycle 10
unknownsfx0x20 6, 226, 0, 5
unknownsfx0x20 6, 227, 128, 5
@@ -7,7 +7,7 @@ SFX_08_19_Ch1: ; 20cdd (8:4cdd)
endchannel
-SFX_08_19_Ch2: ; 20cf0 (8:4cf0)
+SFX_Cry05_2_Ch2: ; 20cf0 (8:4cf0)
dutycycle 245
unknownsfx0x20 6, 226, 130, 4
unknownsfx0x20 6, 211, 1, 5
@@ -15,6 +15,5 @@ SFX_08_19_Ch2: ; 20cf0 (8:4cf0)
unknownsfx0x20 8, 129, 193, 4
-SFX_08_19_Ch3: ; 20d02 (8:4d02)
+SFX_Cry05_2_Ch3: ; 20d02 (8:4d02)
endchannel
-; 0x20d03
diff --git a/audio/sfx/sfx_1f_19.asm b/audio/sfx/cry05_3.asm
index 0398340e..a7f88abf 100755..100644
--- a/audio/sfx/sfx_1f_19.asm
+++ b/audio/sfx/cry05_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_19_Ch1: ; 7caaa (1f:4aaa)
+SFX_Cry05_3_Ch1: ; 7caaa (1f:4aaa)
dutycycle 10
unknownsfx0x20 6, 226, 0, 5
unknownsfx0x20 6, 227, 128, 5
@@ -7,7 +7,7 @@ SFX_1f_19_Ch1: ; 7caaa (1f:4aaa)
endchannel
-SFX_1f_19_Ch2: ; 7cabd (1f:4abd)
+SFX_Cry05_3_Ch2: ; 7cabd (1f:4abd)
dutycycle 245
unknownsfx0x20 6, 226, 130, 4
unknownsfx0x20 6, 211, 1, 5
@@ -15,6 +15,5 @@ SFX_1f_19_Ch2: ; 7cabd (1f:4abd)
unknownsfx0x20 8, 129, 193, 4
-SFX_1f_19_Ch3: ; 7cacf (1f:4acf)
+SFX_Cry05_3_Ch3: ; 7cacf (1f:4acf)
endchannel
-; 0x7cad0
diff --git a/audio/sfx/sfx_02_1a.asm b/audio/sfx/cry06_1.asm
index efd16f9b..b26004e2 100755..100644
--- a/audio/sfx/sfx_02_1a.asm
+++ b/audio/sfx/cry06_1.asm
@@ -1,4 +1,4 @@
-SFX_02_1a_Ch1: ; 89df (2:49df)
+SFX_Cry06_1_Ch1: ; 89df (2:49df)
dutycycle 250
unknownsfx0x20 6, 131, 71, 2
unknownsfx0x20 15, 98, 38, 2
@@ -8,11 +8,11 @@ SFX_02_1a_Ch1: ; 89df (2:49df)
unknownsfx0x20 15, 66, 7, 2
-SFX_02_1a_Ch2: ; 89f9 (2:49f9)
+SFX_Cry06_1_Ch2: ; 89f9 (2:49f9)
endchannel
-SFX_02_1a_Ch3: ; 89fa (2:49fa)
+SFX_Cry06_1_Ch3: ; 89fa (2:49fa)
unknownnoise0x20 8, 212, 140
unknownnoise0x20 4, 226, 156
unknownnoise0x20 15, 198, 140
@@ -20,4 +20,3 @@ SFX_02_1a_Ch3: ; 89fa (2:49fa)
unknownnoise0x20 15, 215, 156
unknownnoise0x20 15, 242, 172
endchannel
-; 0x8a0d
diff --git a/audio/sfx/sfx_08_1a.asm b/audio/sfx/cry06_2.asm
index 9bd8f231..283c1360 100755..100644
--- a/audio/sfx/sfx_08_1a.asm
+++ b/audio/sfx/cry06_2.asm
@@ -1,4 +1,4 @@
-SFX_08_1a_Ch1: ; 20c87 (8:4c87)
+SFX_Cry06_2_Ch1: ; 20c87 (8:4c87)
dutycycle 250
unknownsfx0x20 6, 131, 71, 2
unknownsfx0x20 15, 98, 38, 2
@@ -8,11 +8,11 @@ SFX_08_1a_Ch1: ; 20c87 (8:4c87)
unknownsfx0x20 15, 66, 7, 2
-SFX_08_1a_Ch2: ; 20ca1 (8:4ca1)
+SFX_Cry06_2_Ch2: ; 20ca1 (8:4ca1)
endchannel
-SFX_08_1a_Ch3: ; 20ca2 (8:4ca2)
+SFX_Cry06_2_Ch3: ; 20ca2 (8:4ca2)
unknownnoise0x20 8, 212, 140
unknownnoise0x20 4, 226, 156
unknownnoise0x20 15, 198, 140
@@ -20,4 +20,3 @@ SFX_08_1a_Ch3: ; 20ca2 (8:4ca2)
unknownnoise0x20 15, 215, 156
unknownnoise0x20 15, 242, 172
endchannel
-; 0x20cb5
diff --git a/audio/sfx/sfx_1f_1a.asm b/audio/sfx/cry06_3.asm
index 8fca97df..9feecc3b 100755..100644
--- a/audio/sfx/sfx_1f_1a.asm
+++ b/audio/sfx/cry06_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_1a_Ch1: ; 7ca54 (1f:4a54)
+SFX_Cry06_3_Ch1: ; 7ca54 (1f:4a54)
dutycycle 250
unknownsfx0x20 6, 131, 71, 2
unknownsfx0x20 15, 98, 38, 2
@@ -8,11 +8,11 @@ SFX_1f_1a_Ch1: ; 7ca54 (1f:4a54)
unknownsfx0x20 15, 66, 7, 2
-SFX_1f_1a_Ch2: ; 7ca6e (1f:4a6e)
+SFX_Cry06_3_Ch2: ; 7ca6e (1f:4a6e)
endchannel
-SFX_1f_1a_Ch3: ; 7ca6f (1f:4a6f)
+SFX_Cry06_3_Ch3: ; 7ca6f (1f:4a6f)
unknownnoise0x20 8, 212, 140
unknownnoise0x20 4, 226, 156
unknownnoise0x20 15, 198, 140
@@ -20,4 +20,3 @@ SFX_1f_1a_Ch3: ; 7ca6f (1f:4a6f)
unknownnoise0x20 15, 215, 156
unknownnoise0x20 15, 242, 172
endchannel
-; 0x7ca82
diff --git a/audio/sfx/sfx_02_1b.asm b/audio/sfx/cry07_1.asm
index b1857d2c..b1346b94 100755..100644
--- a/audio/sfx/sfx_02_1b.asm
+++ b/audio/sfx/cry07_1.asm
@@ -1,4 +1,4 @@
-SFX_02_1b_Ch1: ; 8a0d (2:4a0d)
+SFX_Cry07_1_Ch1: ; 8a0d (2:4a0d)
dutycycle 240
unknownsfx0x20 4, 243, 224, 6
unknownsfx0x20 15, 228, 64, 6
@@ -6,7 +6,7 @@ SFX_02_1b_Ch1: ; 8a0d (2:4a0d)
endchannel
-SFX_02_1b_Ch2: ; 8a1c (2:4a1c)
+SFX_Cry07_1_Ch2: ; 8a1c (2:4a1c)
dutycycle 10
unknownsfx0x20 3, 195, 131, 6
unknownsfx0x20 14, 180, 2, 6
@@ -14,9 +14,8 @@ SFX_02_1b_Ch2: ; 8a1c (2:4a1c)
endchannel
-SFX_02_1b_Ch3: ; 8a2b (2:4a2b)
+SFX_Cry07_1_Ch3: ; 8a2b (2:4a2b)
unknownnoise0x20 4, 211, 92
unknownnoise0x20 15, 230, 76
unknownnoise0x20 8, 177, 92
endchannel
-; 0x8a35
diff --git a/audio/sfx/sfx_08_1b.asm b/audio/sfx/cry07_2.asm
index 3ccfdd05..075b7139 100755..100644
--- a/audio/sfx/sfx_08_1b.asm
+++ b/audio/sfx/cry07_2.asm
@@ -1,4 +1,4 @@
-SFX_08_1b_Ch1: ; 20cb5 (8:4cb5)
+SFX_Cry07_2_Ch1: ; 20cb5 (8:4cb5)
dutycycle 240
unknownsfx0x20 4, 243, 224, 6
unknownsfx0x20 15, 228, 64, 6
@@ -6,7 +6,7 @@ SFX_08_1b_Ch1: ; 20cb5 (8:4cb5)
endchannel
-SFX_08_1b_Ch2: ; 20cc4 (8:4cc4)
+SFX_Cry07_2_Ch2: ; 20cc4 (8:4cc4)
dutycycle 10
unknownsfx0x20 3, 195, 131, 6
unknownsfx0x20 14, 180, 2, 6
@@ -14,9 +14,8 @@ SFX_08_1b_Ch2: ; 20cc4 (8:4cc4)
endchannel
-SFX_08_1b_Ch3: ; 20cd3 (8:4cd3)
+SFX_Cry07_2_Ch3: ; 20cd3 (8:4cd3)
unknownnoise0x20 4, 211, 92
unknownnoise0x20 15, 230, 76
unknownnoise0x20 8, 177, 92
endchannel
-; 0x20cdd
diff --git a/audio/sfx/sfx_1f_1b.asm b/audio/sfx/cry07_3.asm
index 307e7b43..4955e115 100755..100644
--- a/audio/sfx/sfx_1f_1b.asm
+++ b/audio/sfx/cry07_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_1b_Ch1: ; 7ca82 (1f:4a82)
+SFX_Cry07_3_Ch1: ; 7ca82 (1f:4a82)
dutycycle 240
unknownsfx0x20 4, 243, 224, 6
unknownsfx0x20 15, 228, 64, 6
@@ -6,7 +6,7 @@ SFX_1f_1b_Ch1: ; 7ca82 (1f:4a82)
endchannel
-SFX_1f_1b_Ch2: ; 7ca91 (1f:4a91)
+SFX_Cry07_3_Ch2: ; 7ca91 (1f:4a91)
dutycycle 10
unknownsfx0x20 3, 195, 131, 6
unknownsfx0x20 14, 180, 2, 6
@@ -14,9 +14,8 @@ SFX_1f_1b_Ch2: ; 7ca91 (1f:4a91)
endchannel
-SFX_1f_1b_Ch3: ; 7caa0 (1f:4aa0)
+SFX_Cry07_3_Ch3: ; 7caa0 (1f:4aa0)
unknownnoise0x20 4, 211, 92
unknownnoise0x20 15, 230, 76
unknownnoise0x20 8, 177, 92
endchannel
-; 0x7caaa
diff --git a/audio/sfx/sfx_02_1c.asm b/audio/sfx/cry08_1.asm
index a880a042..65131766 100755..100644
--- a/audio/sfx/sfx_02_1c.asm
+++ b/audio/sfx/cry08_1.asm
@@ -1,4 +1,4 @@
-SFX_02_1c_Ch1: ; 8c25 (2:4c25)
+SFX_Cry08_1_Ch1: ; 8c25 (2:4c25)
dutycycle 240
unknownsfx0x20 15, 246, 101, 5
unknownsfx0x20 10, 228, 124, 5
@@ -7,7 +7,7 @@ SFX_02_1c_Ch1: ; 8c25 (2:4c25)
endchannel
-SFX_02_1c_Ch2: ; 8c38 (2:4c38)
+SFX_Cry08_1_Ch2: ; 8c38 (2:4c38)
dutycycle 90
unknownsfx0x20 14, 214, 3, 5
unknownsfx0x20 9, 180, 27, 5
@@ -16,9 +16,8 @@ SFX_02_1c_Ch2: ; 8c38 (2:4c38)
endchannel
-SFX_02_1c_Ch3: ; 8c4b (2:4c4b)
+SFX_Cry08_1_Ch3: ; 8c4b (2:4c4b)
unknownnoise0x20 12, 230, 76
unknownnoise0x20 11, 215, 92
unknownnoise0x20 15, 194, 76
endchannel
-; 0x8c55
diff --git a/audio/sfx/sfx_08_1c.asm b/audio/sfx/cry08_2.asm
index 75f74f3e..71a0e205 100755..100644
--- a/audio/sfx/sfx_08_1c.asm
+++ b/audio/sfx/cry08_2.asm
@@ -1,4 +1,4 @@
-SFX_08_1c_Ch1: ; 20ecd (8:4ecd)
+SFX_Cry08_2_Ch1: ; 20ecd (8:4ecd)
dutycycle 240
unknownsfx0x20 15, 246, 101, 5
unknownsfx0x20 10, 228, 124, 5
@@ -7,7 +7,7 @@ SFX_08_1c_Ch1: ; 20ecd (8:4ecd)
endchannel
-SFX_08_1c_Ch2: ; 20ee0 (8:4ee0)
+SFX_Cry08_2_Ch2: ; 20ee0 (8:4ee0)
dutycycle 90
unknownsfx0x20 14, 214, 3, 5
unknownsfx0x20 9, 180, 27, 5
@@ -16,9 +16,8 @@ SFX_08_1c_Ch2: ; 20ee0 (8:4ee0)
endchannel
-SFX_08_1c_Ch3: ; 20ef3 (8:4ef3)
+SFX_Cry08_2_Ch3: ; 20ef3 (8:4ef3)
unknownnoise0x20 12, 230, 76
unknownnoise0x20 11, 215, 92
unknownnoise0x20 15, 194, 76
endchannel
-; 0x20efd
diff --git a/audio/sfx/sfx_1f_1c.asm b/audio/sfx/cry08_3.asm
index 3767953d..bfda8c3d 100755..100644
--- a/audio/sfx/sfx_1f_1c.asm
+++ b/audio/sfx/cry08_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_1c_Ch1: ; 7cc9a (1f:4c9a)
+SFX_Cry08_3_Ch1: ; 7cc9a (1f:4c9a)
dutycycle 240
unknownsfx0x20 15, 246, 101, 5
unknownsfx0x20 10, 228, 124, 5
@@ -7,7 +7,7 @@ SFX_1f_1c_Ch1: ; 7cc9a (1f:4c9a)
endchannel
-SFX_1f_1c_Ch2: ; 7ccad (1f:4cad)
+SFX_Cry08_3_Ch2: ; 7ccad (1f:4cad)
dutycycle 90
unknownsfx0x20 14, 214, 3, 5
unknownsfx0x20 9, 180, 27, 5
@@ -16,9 +16,8 @@ SFX_1f_1c_Ch2: ; 7ccad (1f:4cad)
endchannel
-SFX_1f_1c_Ch3: ; 7ccc0 (1f:4cc0)
+SFX_Cry08_3_Ch3: ; 7ccc0 (1f:4cc0)
unknownnoise0x20 12, 230, 76
unknownnoise0x20 11, 215, 92
unknownnoise0x20 15, 194, 76
endchannel
-; 0x7ccca
diff --git a/audio/sfx/sfx_02_1d.asm b/audio/sfx/cry09_1.asm
index fa70c67c..29dffdb6 100755..100644
--- a/audio/sfx/sfx_02_1d.asm
+++ b/audio/sfx/cry09_1.asm
@@ -1,4 +1,4 @@
-SFX_02_1d_Ch1: ; 872f (2:472f)
+SFX_Cry09_1_Ch1: ; 872f (2:472f)
dutycycle 240
unknownsfx0x20 15, 247, 160, 7
unknownsfx0x20 6, 230, 163, 7
@@ -10,7 +10,7 @@ SFX_02_1d_Ch1: ; 872f (2:472f)
endchannel
-SFX_02_1d_Ch2: ; 874c (2:474c)
+SFX_Cry09_1_Ch2: ; 874c (2:474c)
dutycycle 5
unknownsfx0x20 2, 8, 0, 0
unknownsfx0x20 15, 167, 161, 6
@@ -23,7 +23,7 @@ SFX_02_1d_Ch2: ; 874c (2:474c)
endchannel
-SFX_02_1d_Ch3: ; 876d (2:476d)
+SFX_Cry09_1_Ch3: ; 876d (2:476d)
unknownnoise0x20 2, 242, 60
unknownnoise0x20 8, 228, 62
unknownnoise0x20 15, 215, 60
@@ -33,4 +33,3 @@ SFX_02_1d_Ch3: ; 876d (2:476d)
unknownnoise0x20 6, 212, 61
unknownnoise0x20 8, 193, 59
endchannel
-; 0x8786
diff --git a/audio/sfx/sfx_08_1d.asm b/audio/sfx/cry09_2.asm
index 44f9a64f..c0e61ec7 100755..100644
--- a/audio/sfx/sfx_08_1d.asm
+++ b/audio/sfx/cry09_2.asm
@@ -1,4 +1,4 @@
-SFX_08_1d_Ch1: ; 209d7 (8:49d7)
+SFX_Cry09_2_Ch1: ; 209d7 (8:49d7)
dutycycle 240
unknownsfx0x20 15, 247, 160, 7
unknownsfx0x20 6, 230, 163, 7
@@ -10,7 +10,7 @@ SFX_08_1d_Ch1: ; 209d7 (8:49d7)
endchannel
-SFX_08_1d_Ch2: ; 209f4 (8:49f4)
+SFX_Cry09_2_Ch2: ; 209f4 (8:49f4)
dutycycle 5
unknownsfx0x20 2, 8, 0, 0
unknownsfx0x20 15, 167, 161, 6
@@ -23,7 +23,7 @@ SFX_08_1d_Ch2: ; 209f4 (8:49f4)
endchannel
-SFX_08_1d_Ch3: ; 20a15 (8:4a15)
+SFX_Cry09_2_Ch3: ; 20a15 (8:4a15)
unknownnoise0x20 2, 242, 60
unknownnoise0x20 8, 228, 62
unknownnoise0x20 15, 215, 60
@@ -33,4 +33,3 @@ SFX_08_1d_Ch3: ; 20a15 (8:4a15)
unknownnoise0x20 6, 212, 61
unknownnoise0x20 8, 193, 59
endchannel
-; 0x20a2e
diff --git a/audio/sfx/sfx_1f_1d.asm b/audio/sfx/cry09_3.asm
index c631f556..c5c0f599 100755..100644
--- a/audio/sfx/sfx_1f_1d.asm
+++ b/audio/sfx/cry09_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_1d_Ch1: ; 7c7a4 (1f:47a4)
+SFX_Cry09_3_Ch1: ; 7c7a4 (1f:47a4)
dutycycle 240
unknownsfx0x20 15, 247, 160, 7
unknownsfx0x20 6, 230, 163, 7
@@ -10,7 +10,7 @@ SFX_1f_1d_Ch1: ; 7c7a4 (1f:47a4)
endchannel
-SFX_1f_1d_Ch2: ; 7c7c1 (1f:47c1)
+SFX_Cry09_3_Ch2: ; 7c7c1 (1f:47c1)
dutycycle 5
unknownsfx0x20 2, 8, 0, 0
unknownsfx0x20 15, 167, 161, 6
@@ -23,7 +23,7 @@ SFX_1f_1d_Ch2: ; 7c7c1 (1f:47c1)
endchannel
-SFX_1f_1d_Ch3: ; 7c7e2 (1f:47e2)
+SFX_Cry09_3_Ch3: ; 7c7e2 (1f:47e2)
unknownnoise0x20 2, 242, 60
unknownnoise0x20 8, 228, 62
unknownnoise0x20 15, 215, 60
@@ -33,4 +33,3 @@ SFX_1f_1d_Ch3: ; 7c7e2 (1f:47e2)
unknownnoise0x20 6, 212, 61
unknownnoise0x20 8, 193, 59
endchannel
-; 0x7c7fb
diff --git a/audio/sfx/sfx_02_1e.asm b/audio/sfx/cry0a_1.asm
index 19ccdada..9a8e616b 100755..100644
--- a/audio/sfx/sfx_02_1e.asm
+++ b/audio/sfx/cry0a_1.asm
@@ -1,4 +1,4 @@
-SFX_02_1e_Ch1: ; 8bca (2:4bca)
+SFX_Cry0A_1_Ch1: ; 8bca (2:4bca)
dutycycle 240
unknownsfx0x20 8, 247, 224, 6
unknownsfx0x20 6, 230, 229, 6
@@ -10,7 +10,7 @@ SFX_02_1e_Ch1: ; 8bca (2:4bca)
endchannel
-SFX_02_1e_Ch2: ; 8be9 (2:4be9)
+SFX_Cry0A_1_Ch2: ; 8be9 (2:4be9)
dutycycle 5
unknownsfx0x20 3, 8, 0, 0
unknownsfx0x20 8, 167, 161, 6
@@ -23,7 +23,7 @@ SFX_02_1e_Ch2: ; 8be9 (2:4be9)
endchannel
-SFX_02_1e_Ch3: ; 8c0c (2:4c0c)
+SFX_Cry0A_1_Ch3: ; 8c0c (2:4c0c)
unknownnoise0x20 2, 242, 60
unknownnoise0x20 8, 228, 62
unknownnoise0x20 8, 215, 60
@@ -33,4 +33,3 @@ SFX_02_1e_Ch3: ; 8c0c (2:4c0c)
unknownnoise0x20 3, 164, 44
unknownnoise0x20 8, 145, 60
endchannel
-; 0x8c25
diff --git a/audio/sfx/sfx_08_1e.asm b/audio/sfx/cry0a_2.asm
index 372ecd89..0386099d 100755..100644
--- a/audio/sfx/sfx_08_1e.asm
+++ b/audio/sfx/cry0a_2.asm
@@ -1,4 +1,4 @@
-SFX_08_1e_Ch1: ; 20e72 (8:4e72)
+SFX_Cry0A_2_Ch1: ; 20e72 (8:4e72)
dutycycle 240
unknownsfx0x20 8, 247, 224, 6
unknownsfx0x20 6, 230, 229, 6
@@ -10,7 +10,7 @@ SFX_08_1e_Ch1: ; 20e72 (8:4e72)
endchannel
-SFX_08_1e_Ch2: ; 20e91 (8:4e91)
+SFX_Cry0A_2_Ch2: ; 20e91 (8:4e91)
dutycycle 5
unknownsfx0x20 3, 8, 0, 0
unknownsfx0x20 8, 167, 161, 6
@@ -23,7 +23,7 @@ SFX_08_1e_Ch2: ; 20e91 (8:4e91)
endchannel
-SFX_08_1e_Ch3: ; 20eb4 (8:4eb4)
+SFX_Cry0A_2_Ch3: ; 20eb4 (8:4eb4)
unknownnoise0x20 2, 242, 60
unknownnoise0x20 8, 228, 62
unknownnoise0x20 8, 215, 60
@@ -33,4 +33,3 @@ SFX_08_1e_Ch3: ; 20eb4 (8:4eb4)
unknownnoise0x20 3, 164, 44
unknownnoise0x20 8, 145, 60
endchannel
-; 0x20ecd
diff --git a/audio/sfx/sfx_1f_1e.asm b/audio/sfx/cry0a_3.asm
index f9df4ca3..4cf59333 100755..100644
--- a/audio/sfx/sfx_1f_1e.asm
+++ b/audio/sfx/cry0a_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_1e_Ch1: ; 7cc3f (1f:4c3f)
+SFX_Cry0A_3_Ch1: ; 7cc3f (1f:4c3f)
dutycycle 240
unknownsfx0x20 8, 247, 224, 6
unknownsfx0x20 6, 230, 229, 6
@@ -10,7 +10,7 @@ SFX_1f_1e_Ch1: ; 7cc3f (1f:4c3f)
endchannel
-SFX_1f_1e_Ch2: ; 7cc5e (1f:4c5e)
+SFX_Cry0A_3_Ch2: ; 7cc5e (1f:4c5e)
dutycycle 5
unknownsfx0x20 3, 8, 0, 0
unknownsfx0x20 8, 167, 161, 6
@@ -23,7 +23,7 @@ SFX_1f_1e_Ch2: ; 7cc5e (1f:4c5e)
endchannel
-SFX_1f_1e_Ch3: ; 7cc81 (1f:4c81)
+SFX_Cry0A_3_Ch3: ; 7cc81 (1f:4c81)
unknownnoise0x20 2, 242, 60
unknownnoise0x20 8, 228, 62
unknownnoise0x20 8, 215, 60
@@ -33,4 +33,3 @@ SFX_1f_1e_Ch3: ; 7cc81 (1f:4c81)
unknownnoise0x20 3, 164, 44
unknownnoise0x20 8, 145, 60
endchannel
-; 0x7cc9a
diff --git a/audio/sfx/sfx_02_1f.asm b/audio/sfx/cry0b_1.asm
index 0305f8bf..0f0edca7 100755..100644
--- a/audio/sfx/sfx_02_1f.asm
+++ b/audio/sfx/cry0b_1.asm
@@ -1,4 +1,4 @@
-SFX_02_1f_Ch1: ; 8a5b (2:4a5b)
+SFX_Cry0B_1_Ch1: ; 8a5b (2:4a5b)
dutycycle 204
unknownsfx0x20 4, 241, 0, 7
unknownsfx0x20 4, 225, 128, 7
@@ -13,7 +13,7 @@ SFX_02_1f_Ch1: ; 8a5b (2:4a5b)
endchannel
-SFX_02_1f_Ch2: ; 8a86 (2:4a86)
+SFX_Cry0B_1_Ch2: ; 8a86 (2:4a86)
dutycycle 68
unknownsfx0x20 12, 8, 0, 0
unknownsfx0x20 4, 241, 1, 7
@@ -25,7 +25,7 @@ SFX_02_1f_Ch2: ; 8a86 (2:4a86)
endchannel
-SFX_02_1f_Ch3: ; 8aa5 (2:4aa5)
+SFX_Cry0B_1_Ch3: ; 8aa5 (2:4aa5)
unknownnoise0x20 15, 8, 0
unknownnoise0x20 4, 8, 0
unknownnoise0x20 4, 209, 76
@@ -35,4 +35,3 @@ SFX_02_1f_Ch3: ; 8aa5 (2:4aa5)
unknownnoise0x20 4, 193, 44
unknownnoise0x20 8, 161, 76
endchannel
-; 0x8abe
diff --git a/audio/sfx/sfx_08_1f.asm b/audio/sfx/cry0b_2.asm
index 6ff114ea..071cd9b1 100755..100644
--- a/audio/sfx/sfx_08_1f.asm
+++ b/audio/sfx/cry0b_2.asm
@@ -1,4 +1,4 @@
-SFX_08_1f_Ch1: ; 20d03 (8:4d03)
+SFX_Cry0B_2_Ch1: ; 20d03 (8:4d03)
dutycycle 204
unknownsfx0x20 4, 241, 0, 7
unknownsfx0x20 4, 225, 128, 7
@@ -13,7 +13,7 @@ SFX_08_1f_Ch1: ; 20d03 (8:4d03)
endchannel
-SFX_08_1f_Ch2: ; 20d2e (8:4d2e)
+SFX_Cry0B_2_Ch2: ; 20d2e (8:4d2e)
dutycycle 68
unknownsfx0x20 12, 8, 0, 0
unknownsfx0x20 4, 241, 1, 7
@@ -25,7 +25,7 @@ SFX_08_1f_Ch2: ; 20d2e (8:4d2e)
endchannel
-SFX_08_1f_Ch3: ; 20d4d (8:4d4d)
+SFX_Cry0B_2_Ch3: ; 20d4d (8:4d4d)
unknownnoise0x20 15, 8, 0
unknownnoise0x20 4, 8, 0
unknownnoise0x20 4, 209, 76
@@ -35,4 +35,3 @@ SFX_08_1f_Ch3: ; 20d4d (8:4d4d)
unknownnoise0x20 4, 193, 44
unknownnoise0x20 8, 161, 76
endchannel
-; 0x20d66
diff --git a/audio/sfx/sfx_1f_1f.asm b/audio/sfx/cry0b_3.asm
index 1466c684..c2bd1809 100755..100644
--- a/audio/sfx/sfx_1f_1f.asm
+++ b/audio/sfx/cry0b_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_1f_Ch1: ; 7cad0 (1f:4ad0)
+SFX_Cry0B_3_Ch1: ; 7cad0 (1f:4ad0)
dutycycle 204
unknownsfx0x20 4, 241, 0, 7
unknownsfx0x20 4, 225, 128, 7
@@ -13,7 +13,7 @@ SFX_1f_1f_Ch1: ; 7cad0 (1f:4ad0)
endchannel
-SFX_1f_1f_Ch2: ; 7cafb (1f:4afb)
+SFX_Cry0B_3_Ch2: ; 7cafb (1f:4afb)
dutycycle 68
unknownsfx0x20 12, 8, 0, 0
unknownsfx0x20 4, 241, 1, 7
@@ -25,7 +25,7 @@ SFX_1f_1f_Ch2: ; 7cafb (1f:4afb)
endchannel
-SFX_1f_1f_Ch3: ; 7cb1a (1f:4b1a)
+SFX_Cry0B_3_Ch3: ; 7cb1a (1f:4b1a)
unknownnoise0x20 15, 8, 0
unknownnoise0x20 4, 8, 0
unknownnoise0x20 4, 209, 76
@@ -35,4 +35,3 @@ SFX_1f_1f_Ch3: ; 7cb1a (1f:4b1a)
unknownnoise0x20 4, 193, 44
unknownnoise0x20 8, 161, 76
endchannel
-; 0x7cb33
diff --git a/audio/sfx/sfx_02_20.asm b/audio/sfx/cry0c_1.asm
index 90e68dd0..1c0f9f65 100755..100644
--- a/audio/sfx/sfx_02_20.asm
+++ b/audio/sfx/cry0c_1.asm
@@ -1,4 +1,4 @@
-SFX_02_20_Ch1: ; 8abe (2:4abe)
+SFX_Cry0C_1_Ch1: ; 8abe (2:4abe)
dutycycle 204
unknownsfx0x20 8, 245, 0, 6
unknownsfx0x20 2, 210, 56, 6
@@ -12,7 +12,7 @@ SFX_02_20_Ch1: ; 8abe (2:4abe)
endchannel
-SFX_02_20_Ch2: ; 8ae5 (2:4ae5)
+SFX_Cry0C_1_Ch2: ; 8ae5 (2:4ae5)
dutycycle 68
unknownsfx0x20 12, 195, 192, 5
unknownsfx0x20 3, 177, 249, 5
@@ -25,6 +25,5 @@ SFX_02_20_Ch2: ; 8ae5 (2:4ae5)
unknownsfx0x20 8, 145, 225, 5
-SFX_02_20_Ch3: ; 8b0b (2:4b0b)
+SFX_Cry0C_1_Ch3: ; 8b0b (2:4b0b)
endchannel
-; 0x8b0c
diff --git a/audio/sfx/sfx_08_20.asm b/audio/sfx/cry0c_2.asm
index 35cd9acc..ef598b3e 100755..100644
--- a/audio/sfx/sfx_08_20.asm
+++ b/audio/sfx/cry0c_2.asm
@@ -1,4 +1,4 @@
-SFX_08_20_Ch1: ; 20d66 (8:4d66)
+SFX_Cry0C_2_Ch1: ; 20d66 (8:4d66)
dutycycle 204
unknownsfx0x20 8, 245, 0, 6
unknownsfx0x20 2, 210, 56, 6
@@ -12,7 +12,7 @@ SFX_08_20_Ch1: ; 20d66 (8:4d66)
endchannel
-SFX_08_20_Ch2: ; 20d8d (8:4d8d)
+SFX_Cry0C_2_Ch2: ; 20d8d (8:4d8d)
dutycycle 68
unknownsfx0x20 12, 195, 192, 5
unknownsfx0x20 3, 177, 249, 5
@@ -25,6 +25,5 @@ SFX_08_20_Ch2: ; 20d8d (8:4d8d)
unknownsfx0x20 8, 145, 225, 5
-SFX_08_20_Ch3: ; 20db3 (8:4db3)
+SFX_Cry0C_2_Ch3: ; 20db3 (8:4db3)
endchannel
-; 0x20db4
diff --git a/audio/sfx/sfx_1f_20.asm b/audio/sfx/cry0c_3.asm
index 68eb568c..4075ac51 100755..100644
--- a/audio/sfx/sfx_1f_20.asm
+++ b/audio/sfx/cry0c_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_20_Ch1: ; 7cb33 (1f:4b33)
+SFX_Cry0C_3_Ch1: ; 7cb33 (1f:4b33)
dutycycle 204
unknownsfx0x20 8, 245, 0, 6
unknownsfx0x20 2, 210, 56, 6
@@ -12,7 +12,7 @@ SFX_1f_20_Ch1: ; 7cb33 (1f:4b33)
endchannel
-SFX_1f_20_Ch2: ; 7cb5a (1f:4b5a)
+SFX_Cry0C_3_Ch2: ; 7cb5a (1f:4b5a)
dutycycle 68
unknownsfx0x20 12, 195, 192, 5
unknownsfx0x20 3, 177, 249, 5
@@ -25,6 +25,5 @@ SFX_1f_20_Ch2: ; 7cb5a (1f:4b5a)
unknownsfx0x20 8, 145, 225, 5
-SFX_1f_20_Ch3: ; 7cb80 (1f:4b80)
+SFX_Cry0C_3_Ch3: ; 7cb80 (1f:4b80)
endchannel
-; 0x7cb81
diff --git a/audio/sfx/sfx_02_21.asm b/audio/sfx/cry0d_1.asm
index b454585c..591bf58e 100755..100644
--- a/audio/sfx/sfx_02_21.asm
+++ b/audio/sfx/cry0d_1.asm
@@ -1,4 +1,4 @@
-SFX_02_21_Ch1: ; 8b2a (2:4b2a)
+SFX_Cry0D_1_Ch1: ; 8b2a (2:4b2a)
dutycycle 136
unknownsfx0x20 5, 242, 80, 6
unknownsfx0x20 9, 209, 96, 6
@@ -6,11 +6,11 @@ SFX_02_21_Ch1: ; 8b2a (2:4b2a)
unknownsfx0x20 9, 193, 34, 6
unknownsfx0x20 5, 242, 16, 6
unknownsfx0x20 6, 209, 32, 6
- loopchannel 2, SFX_02_21_Ch1
+ loopchannel 2, SFX_Cry0D_1_Ch1
endchannel
-SFX_02_21_Ch2: ; 8b49 (2:4b49)
+SFX_Cry0D_1_Ch2: ; 8b49 (2:4b49)
dutycycle 64
unknownsfx0x20 4, 8, 0, 0
unknownsfx0x20 5, 242, 81, 6
@@ -26,7 +26,7 @@ SFX_02_21_Ch2: ; 8b49 (2:4b49)
endchannel
-SFX_02_21_Ch3: ; 8b78 (2:4b78)
+SFX_Cry0D_1_Ch3: ; 8b78 (2:4b78)
unknownnoise0x20 6, 210, 28
unknownnoise0x20 9, 177, 44
unknownnoise0x20 8, 194, 44
@@ -38,4 +38,3 @@ SFX_02_21_Ch3: ; 8b78 (2:4b78)
unknownnoise0x20 9, 194, 44
unknownnoise0x20 4, 161, 60
endchannel
-; 0x8b97
diff --git a/audio/sfx/sfx_08_21.asm b/audio/sfx/cry0d_2.asm
index 50c0106a..a7ca34f1 100755..100644
--- a/audio/sfx/sfx_08_21.asm
+++ b/audio/sfx/cry0d_2.asm
@@ -1,4 +1,4 @@
-SFX_08_21_Ch1: ; 20dd2 (8:4dd2)
+SFX_Cry0D_2_Ch1: ; 20dd2 (8:4dd2)
dutycycle 136
unknownsfx0x20 5, 242, 80, 6
unknownsfx0x20 9, 209, 96, 6
@@ -6,11 +6,11 @@ SFX_08_21_Ch1: ; 20dd2 (8:4dd2)
unknownsfx0x20 9, 193, 34, 6
unknownsfx0x20 5, 242, 16, 6
unknownsfx0x20 6, 209, 32, 6
- loopchannel 2, SFX_08_21_Ch1
+ loopchannel 2, SFX_Cry0D_2_Ch1
endchannel
-SFX_08_21_Ch2: ; 20df1 (8:4df1)
+SFX_Cry0D_2_Ch2: ; 20df1 (8:4df1)
dutycycle 64
unknownsfx0x20 4, 8, 0, 0
unknownsfx0x20 5, 242, 81, 6
@@ -26,7 +26,7 @@ SFX_08_21_Ch2: ; 20df1 (8:4df1)
endchannel
-SFX_08_21_Ch3: ; 20e20 (8:4e20)
+SFX_Cry0D_2_Ch3: ; 20e20 (8:4e20)
unknownnoise0x20 6, 210, 28
unknownnoise0x20 9, 177, 44
unknownnoise0x20 8, 194, 44
@@ -38,4 +38,3 @@ SFX_08_21_Ch3: ; 20e20 (8:4e20)
unknownnoise0x20 9, 194, 44
unknownnoise0x20 4, 161, 60
endchannel
-; 0x20e3f
diff --git a/audio/sfx/sfx_1f_21.asm b/audio/sfx/cry0d_3.asm
index d37e2940..a9187dc8 100755..100644
--- a/audio/sfx/sfx_1f_21.asm
+++ b/audio/sfx/cry0d_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_21_Ch1: ; 7cb9f (1f:4b9f)
+SFX_Cry0D_3_Ch1: ; 7cb9f (1f:4b9f)
dutycycle 136
unknownsfx0x20 5, 242, 80, 6
unknownsfx0x20 9, 209, 96, 6
@@ -6,11 +6,11 @@ SFX_1f_21_Ch1: ; 7cb9f (1f:4b9f)
unknownsfx0x20 9, 193, 34, 6
unknownsfx0x20 5, 242, 16, 6
unknownsfx0x20 6, 209, 32, 6
- loopchannel 2, SFX_1f_21_Ch1
+ loopchannel 2, SFX_Cry0D_3_Ch1
endchannel
-SFX_1f_21_Ch2: ; 7cbbe (1f:4bbe)
+SFX_Cry0D_3_Ch2: ; 7cbbe (1f:4bbe)
dutycycle 64
unknownsfx0x20 4, 8, 0, 0
unknownsfx0x20 5, 242, 81, 6
@@ -26,7 +26,7 @@ SFX_1f_21_Ch2: ; 7cbbe (1f:4bbe)
endchannel
-SFX_1f_21_Ch3: ; 7cbed (1f:4bed)
+SFX_Cry0D_3_Ch3: ; 7cbed (1f:4bed)
unknownnoise0x20 6, 210, 28
unknownnoise0x20 9, 177, 44
unknownnoise0x20 8, 194, 44
@@ -38,4 +38,3 @@ SFX_1f_21_Ch3: ; 7cbed (1f:4bed)
unknownnoise0x20 9, 194, 44
unknownnoise0x20 4, 161, 60
endchannel
-; 0x7cc0c
diff --git a/audio/sfx/sfx_02_22.asm b/audio/sfx/cry0e_1.asm
index 5fb2b91c..1e778dea 100755..100644
--- a/audio/sfx/sfx_02_22.asm
+++ b/audio/sfx/cry0e_1.asm
@@ -1,4 +1,4 @@
-SFX_02_22_Ch1: ; 89af (2:49af)
+SFX_Cry0E_1_Ch1: ; 89af (2:49af)
dutycycle 165
unknownsfx0x20 4, 225, 0, 7
unknownsfx0x20 4, 242, 128, 7
@@ -7,7 +7,7 @@ SFX_02_22_Ch1: ; 89af (2:49af)
endchannel
-SFX_02_22_Ch2: ; 89c2 (2:49c2)
+SFX_Cry0E_1_Ch2: ; 89c2 (2:49c2)
dutycycle 10
unknownsfx0x20 4, 177, 225, 6
unknownsfx0x20 3, 194, 225, 6
@@ -16,9 +16,8 @@ SFX_02_22_Ch2: ; 89c2 (2:49c2)
endchannel
-SFX_02_22_Ch3: ; 89d5 (2:49d5)
+SFX_Cry0E_1_Ch3: ; 89d5 (2:49d5)
unknownnoise0x20 2, 97, 50
unknownnoise0x20 2, 97, 33
unknownnoise0x20 8, 97, 17
endchannel
-; 0x89df
diff --git a/audio/sfx/sfx_08_22.asm b/audio/sfx/cry0e_2.asm
index a08f0a89..bab74449 100755..100644
--- a/audio/sfx/sfx_08_22.asm
+++ b/audio/sfx/cry0e_2.asm
@@ -1,4 +1,4 @@
-SFX_08_22_Ch1: ; 20c57 (8:4c57)
+SFX_Cry0E_2_Ch1: ; 20c57 (8:4c57)
dutycycle 165
unknownsfx0x20 4, 225, 0, 7
unknownsfx0x20 4, 242, 128, 7
@@ -7,7 +7,7 @@ SFX_08_22_Ch1: ; 20c57 (8:4c57)
endchannel
-SFX_08_22_Ch2: ; 20c6a (8:4c6a)
+SFX_Cry0E_2_Ch2: ; 20c6a (8:4c6a)
dutycycle 10
unknownsfx0x20 4, 177, 225, 6
unknownsfx0x20 3, 194, 225, 6
@@ -16,9 +16,8 @@ SFX_08_22_Ch2: ; 20c6a (8:4c6a)
endchannel
-SFX_08_22_Ch3: ; 20c7d (8:4c7d)
+SFX_Cry0E_2_Ch3: ; 20c7d (8:4c7d)
unknownnoise0x20 2, 97, 50
unknownnoise0x20 2, 97, 33
unknownnoise0x20 8, 97, 17
endchannel
-; 0x20c87
diff --git a/audio/sfx/sfx_1f_22.asm b/audio/sfx/cry0e_3.asm
index f765ed15..da14b3a7 100755..100644
--- a/audio/sfx/sfx_1f_22.asm
+++ b/audio/sfx/cry0e_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_22_Ch1: ; 7ca24 (1f:4a24)
+SFX_Cry0E_3_Ch1: ; 7ca24 (1f:4a24)
dutycycle 165
unknownsfx0x20 4, 225, 0, 7
unknownsfx0x20 4, 242, 128, 7
@@ -7,7 +7,7 @@ SFX_1f_22_Ch1: ; 7ca24 (1f:4a24)
endchannel
-SFX_1f_22_Ch2: ; 7ca37 (1f:4a37)
+SFX_Cry0E_3_Ch2: ; 7ca37 (1f:4a37)
dutycycle 10
unknownsfx0x20 4, 177, 225, 6
unknownsfx0x20 3, 194, 225, 6
@@ -16,9 +16,8 @@ SFX_1f_22_Ch2: ; 7ca37 (1f:4a37)
endchannel
-SFX_1f_22_Ch3: ; 7ca4a (1f:4a4a)
+SFX_Cry0E_3_Ch3: ; 7ca4a (1f:4a4a)
unknownnoise0x20 2, 97, 50
unknownnoise0x20 2, 97, 33
unknownnoise0x20 8, 97, 17
endchannel
-; 0x7ca54
diff --git a/audio/sfx/sfx_02_23.asm b/audio/sfx/cry0f_1.asm
index 19110b45..84563293 100755..100644
--- a/audio/sfx/sfx_02_23.asm
+++ b/audio/sfx/cry0f_1.asm
@@ -1,4 +1,4 @@
-SFX_02_23_Ch1: ; 88f1 (2:48f1)
+SFX_Cry0F_1_Ch1: ; 88f1 (2:48f1)
dutycycle 241
unknownsfx0x20 4, 247, 192, 7
unknownsfx0x20 12, 230, 194, 7
@@ -9,7 +9,7 @@ SFX_02_23_Ch1: ; 88f1 (2:48f1)
endchannel
-SFX_02_23_Ch2: ; 890c (2:490c)
+SFX_Cry0F_1_Ch2: ; 890c (2:490c)
dutycycle 204
unknownsfx0x20 3, 199, 129, 7
unknownsfx0x20 12, 182, 128, 7
@@ -20,11 +20,10 @@ SFX_02_23_Ch2: ; 890c (2:490c)
endchannel
-SFX_02_23_Ch3: ; 8927 (2:4927)
+SFX_Cry0F_1_Ch3: ; 8927 (2:4927)
unknownnoise0x20 3, 228, 60
unknownnoise0x20 12, 214, 44
unknownnoise0x20 4, 228, 60
unknownnoise0x20 8, 183, 92
unknownnoise0x20 15, 194, 93
endchannel
-; 0x8937
diff --git a/audio/sfx/sfx_08_23.asm b/audio/sfx/cry0f_2.asm
index 8552ddc7..0fbaeb7a 100755..100644
--- a/audio/sfx/sfx_08_23.asm
+++ b/audio/sfx/cry0f_2.asm
@@ -1,4 +1,4 @@
-SFX_08_23_Ch1: ; 20b99 (8:4b99)
+SFX_Cry0F_2_Ch1: ; 20b99 (8:4b99)
dutycycle 241
unknownsfx0x20 4, 247, 192, 7
unknownsfx0x20 12, 230, 194, 7
@@ -9,7 +9,7 @@ SFX_08_23_Ch1: ; 20b99 (8:4b99)
endchannel
-SFX_08_23_Ch2: ; 20bb4 (8:4bb4)
+SFX_Cry0F_2_Ch2: ; 20bb4 (8:4bb4)
dutycycle 204
unknownsfx0x20 3, 199, 129, 7
unknownsfx0x20 12, 182, 128, 7
@@ -20,11 +20,10 @@ SFX_08_23_Ch2: ; 20bb4 (8:4bb4)
endchannel
-SFX_08_23_Ch3: ; 20bcf (8:4bcf)
+SFX_Cry0F_2_Ch3: ; 20bcf (8:4bcf)
unknownnoise0x20 3, 228, 60
unknownnoise0x20 12, 214, 44
unknownnoise0x20 4, 228, 60
unknownnoise0x20 8, 183, 92
unknownnoise0x20 15, 194, 93
endchannel
-; 0x20bdf
diff --git a/audio/sfx/sfx_1f_23.asm b/audio/sfx/cry0f_3.asm
index 76151d7e..810ab949 100755..100644
--- a/audio/sfx/sfx_1f_23.asm
+++ b/audio/sfx/cry0f_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_23_Ch1: ; 7c966 (1f:4966)
+SFX_Cry0F_3_Ch1: ; 7c966 (1f:4966)
dutycycle 241
unknownsfx0x20 4, 247, 192, 7
unknownsfx0x20 12, 230, 194, 7
@@ -9,7 +9,7 @@ SFX_1f_23_Ch1: ; 7c966 (1f:4966)
endchannel
-SFX_1f_23_Ch2: ; 7c981 (1f:4981)
+SFX_Cry0F_3_Ch2: ; 7c981 (1f:4981)
dutycycle 204
unknownsfx0x20 3, 199, 129, 7
unknownsfx0x20 12, 182, 128, 7
@@ -20,11 +20,10 @@ SFX_1f_23_Ch2: ; 7c981 (1f:4981)
endchannel
-SFX_1f_23_Ch3: ; 7c99c (1f:499c)
+SFX_Cry0F_3_Ch3: ; 7c99c (1f:499c)
unknownnoise0x20 3, 228, 60
unknownnoise0x20 12, 214, 44
unknownnoise0x20 4, 228, 60
unknownnoise0x20 8, 183, 92
unknownnoise0x20 15, 194, 93
endchannel
-; 0x7c9ac
diff --git a/audio/sfx/sfx_02_24.asm b/audio/sfx/cry10_1.asm
index c487c8b8..956fc910 100755..100644
--- a/audio/sfx/sfx_02_24.asm
+++ b/audio/sfx/cry10_1.asm
@@ -1,4 +1,4 @@
-SFX_02_24_Ch1: ; 8937 (2:4937)
+SFX_Cry10_1_Ch1: ; 8937 (2:4937)
dutycycle 201
unknownsfx0x20 8, 247, 128, 6
unknownsfx0x20 2, 247, 96, 6
@@ -11,7 +11,7 @@ SFX_02_24_Ch1: ; 8937 (2:4937)
endchannel
-SFX_02_24_Ch2: ; 895a (2:495a)
+SFX_Cry10_1_Ch2: ; 895a (2:495a)
dutycycle 121
unknownsfx0x20 10, 231, 130, 6
unknownsfx0x20 2, 231, 98, 6
@@ -24,9 +24,8 @@ SFX_02_24_Ch2: ; 895a (2:495a)
endchannel
-SFX_02_24_Ch3: ; 897d (2:497d)
+SFX_Cry10_1_Ch3: ; 897d (2:497d)
unknownnoise0x20 4, 116, 33
unknownnoise0x20 4, 116, 16
unknownnoise0x20 4, 113, 32
endchannel
-; 0x8987
diff --git a/audio/sfx/sfx_08_24.asm b/audio/sfx/cry10_2.asm
index 9b4def61..5d4cc3aa 100755..100644
--- a/audio/sfx/sfx_08_24.asm
+++ b/audio/sfx/cry10_2.asm
@@ -1,4 +1,4 @@
-SFX_08_24_Ch1: ; 20bdf (8:4bdf)
+SFX_Cry10_2_Ch1: ; 20bdf (8:4bdf)
dutycycle 201
unknownsfx0x20 8, 247, 128, 6
unknownsfx0x20 2, 247, 96, 6
@@ -11,7 +11,7 @@ SFX_08_24_Ch1: ; 20bdf (8:4bdf)
endchannel
-SFX_08_24_Ch2: ; 20c02 (8:4c02)
+SFX_Cry10_2_Ch2: ; 20c02 (8:4c02)
dutycycle 121
unknownsfx0x20 10, 231, 130, 6
unknownsfx0x20 2, 231, 98, 6
@@ -24,9 +24,8 @@ SFX_08_24_Ch2: ; 20c02 (8:4c02)
endchannel
-SFX_08_24_Ch3: ; 20c25 (8:4c25)
+SFX_Cry10_2_Ch3: ; 20c25 (8:4c25)
unknownnoise0x20 4, 116, 33
unknownnoise0x20 4, 116, 16
unknownnoise0x20 4, 113, 32
endchannel
-; 0x20c2f
diff --git a/audio/sfx/sfx_1f_24.asm b/audio/sfx/cry10_3.asm
index 55d6345c..2d5df465 100755..100644
--- a/audio/sfx/sfx_1f_24.asm
+++ b/audio/sfx/cry10_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_24_Ch1: ; 7c9ac (1f:49ac)
+SFX_Cry10_3_Ch1: ; 7c9ac (1f:49ac)
dutycycle 201
unknownsfx0x20 8, 247, 128, 6
unknownsfx0x20 2, 247, 96, 6
@@ -11,7 +11,7 @@ SFX_1f_24_Ch1: ; 7c9ac (1f:49ac)
endchannel
-SFX_1f_24_Ch2: ; 7c9cf (1f:49cf)
+SFX_Cry10_3_Ch2: ; 7c9cf (1f:49cf)
dutycycle 121
unknownsfx0x20 10, 231, 130, 6
unknownsfx0x20 2, 231, 98, 6
@@ -24,9 +24,8 @@ SFX_1f_24_Ch2: ; 7c9cf (1f:49cf)
endchannel
-SFX_1f_24_Ch3: ; 7c9f2 (1f:49f2)
+SFX_Cry10_3_Ch3: ; 7c9f2 (1f:49f2)
unknownnoise0x20 4, 116, 33
unknownnoise0x20 4, 116, 16
unknownnoise0x20 4, 113, 32
endchannel
-; 0x7c9fc
diff --git a/audio/sfx/sfx_02_25.asm b/audio/sfx/cry11_1.asm
index 97ed7c86..dd354c90 100755..100644
--- a/audio/sfx/sfx_02_25.asm
+++ b/audio/sfx/cry11_1.asm
@@ -1,4 +1,4 @@
-SFX_02_25_Ch1: ; 8813 (2:4813)
+SFX_Cry11_1_Ch1: ; 8813 (2:4813)
dutycycle 240
unknownsfx0x20 6, 247, 160, 7
unknownsfx0x20 8, 230, 164, 7
@@ -10,7 +10,7 @@ SFX_02_25_Ch1: ; 8813 (2:4813)
endchannel
-SFX_02_25_Ch2: ; 8832 (2:4832)
+SFX_Cry11_1_Ch2: ; 8832 (2:4832)
dutycycle 10
unknownsfx0x20 4, 8, 0, 0
unknownsfx0x20 6, 167, 65, 7
@@ -23,7 +23,7 @@ SFX_02_25_Ch2: ; 8832 (2:4832)
endchannel
-SFX_02_25_Ch3: ; 8855 (2:4855)
+SFX_Cry11_1_Ch3: ; 8855 (2:4855)
unknownnoise0x20 2, 242, 76
unknownnoise0x20 6, 230, 58
unknownnoise0x20 4, 215, 58
@@ -32,4 +32,3 @@ SFX_02_25_Ch3: ; 8855 (2:4855)
unknownnoise0x20 12, 210, 61
unknownnoise0x20 8, 209, 44
endchannel
-; 0x886b
diff --git a/audio/sfx/sfx_08_25.asm b/audio/sfx/cry11_2.asm
index b305664b..37546fe1 100755..100644
--- a/audio/sfx/sfx_08_25.asm
+++ b/audio/sfx/cry11_2.asm
@@ -1,4 +1,4 @@
-SFX_08_25_Ch1: ; 20abb (8:4abb)
+SFX_Cry11_2_Ch1: ; 20abb (8:4abb)
dutycycle 240
unknownsfx0x20 6, 247, 160, 7
unknownsfx0x20 8, 230, 164, 7
@@ -10,7 +10,7 @@ SFX_08_25_Ch1: ; 20abb (8:4abb)
endchannel
-SFX_08_25_Ch2: ; 20ada (8:4ada)
+SFX_Cry11_2_Ch2: ; 20ada (8:4ada)
dutycycle 10
unknownsfx0x20 4, 8, 0, 0
unknownsfx0x20 6, 167, 65, 7
@@ -23,7 +23,7 @@ SFX_08_25_Ch2: ; 20ada (8:4ada)
endchannel
-SFX_08_25_Ch3: ; 20afd (8:4afd)
+SFX_Cry11_2_Ch3: ; 20afd (8:4afd)
unknownnoise0x20 2, 242, 76
unknownnoise0x20 6, 230, 58
unknownnoise0x20 4, 215, 58
@@ -32,4 +32,3 @@ SFX_08_25_Ch3: ; 20afd (8:4afd)
unknownnoise0x20 12, 210, 61
unknownnoise0x20 8, 209, 44
endchannel
-; 0x20b13
diff --git a/audio/sfx/sfx_1f_25.asm b/audio/sfx/cry11_3.asm
index 15ea54a7..75b9a861 100755..100644
--- a/audio/sfx/sfx_1f_25.asm
+++ b/audio/sfx/cry11_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_25_Ch1: ; 7c888 (1f:4888)
+SFX_Cry11_3_Ch1: ; 7c888 (1f:4888)
dutycycle 240
unknownsfx0x20 6, 247, 160, 7
unknownsfx0x20 8, 230, 164, 7
@@ -10,7 +10,7 @@ SFX_1f_25_Ch1: ; 7c888 (1f:4888)
endchannel
-SFX_1f_25_Ch2: ; 7c8a7 (1f:48a7)
+SFX_Cry11_3_Ch2: ; 7c8a7 (1f:48a7)
dutycycle 10
unknownsfx0x20 4, 8, 0, 0
unknownsfx0x20 6, 167, 65, 7
@@ -23,7 +23,7 @@ SFX_1f_25_Ch2: ; 7c8a7 (1f:48a7)
endchannel
-SFX_1f_25_Ch3: ; 7c8ca (1f:48ca)
+SFX_Cry11_3_Ch3: ; 7c8ca (1f:48ca)
unknownnoise0x20 2, 242, 76
unknownnoise0x20 6, 230, 58
unknownnoise0x20 4, 215, 58
@@ -32,4 +32,3 @@ SFX_1f_25_Ch3: ; 7c8ca (1f:48ca)
unknownnoise0x20 12, 210, 61
unknownnoise0x20 8, 209, 44
endchannel
-; 0x7c8e0
diff --git a/audio/sfx/sfx_02_26.asm b/audio/sfx/cry12_1.asm
index 46f596d0..a6b1a0f8 100755..100644
--- a/audio/sfx/sfx_02_26.asm
+++ b/audio/sfx/cry12_1.asm
@@ -1,4 +1,4 @@
-SFX_02_26_Ch1: ; 8d2b (2:4d2b)
+SFX_Cry12_1_Ch1: ; 8d2b (2:4d2b)
dutycycle 165
unknownsfx0x20 12, 242, 64, 4
unknownsfx0x20 15, 227, 160, 4
@@ -7,7 +7,7 @@ SFX_02_26_Ch1: ; 8d2b (2:4d2b)
endchannel
-SFX_02_26_Ch2: ; 8d3e (2:4d3e)
+SFX_Cry12_1_Ch2: ; 8d3e (2:4d3e)
dutycycle 238
unknownsfx0x20 11, 210, 56, 4
unknownsfx0x20 14, 198, 152, 4
@@ -16,10 +16,9 @@ SFX_02_26_Ch2: ; 8d3e (2:4d3e)
endchannel
-SFX_02_26_Ch3: ; 8d51 (2:4d51)
+SFX_Cry12_1_Ch3: ; 8d51 (2:4d51)
unknownnoise0x20 10, 230, 108
unknownnoise0x20 15, 210, 92
unknownnoise0x20 3, 194, 108
unknownnoise0x20 8, 209, 92
endchannel
-; 0x8d5e
diff --git a/audio/sfx/sfx_08_26.asm b/audio/sfx/cry12_2.asm
index dd5f7897..e2b29de7 100755..100644
--- a/audio/sfx/sfx_08_26.asm
+++ b/audio/sfx/cry12_2.asm
@@ -1,4 +1,4 @@
-SFX_08_26_Ch1: ; 20fd3 (8:4fd3)
+SFX_Cry12_2_Ch1: ; 20fd3 (8:4fd3)
dutycycle 165
unknownsfx0x20 12, 242, 64, 4
unknownsfx0x20 15, 227, 160, 4
@@ -7,7 +7,7 @@ SFX_08_26_Ch1: ; 20fd3 (8:4fd3)
endchannel
-SFX_08_26_Ch2: ; 20fe6 (8:4fe6)
+SFX_Cry12_2_Ch2: ; 20fe6 (8:4fe6)
dutycycle 238
unknownsfx0x20 11, 210, 56, 4
unknownsfx0x20 14, 198, 152, 4
@@ -16,10 +16,9 @@ SFX_08_26_Ch2: ; 20fe6 (8:4fe6)
endchannel
-SFX_08_26_Ch3: ; 20ff9 (8:4ff9)
+SFX_Cry12_2_Ch3: ; 20ff9 (8:4ff9)
unknownnoise0x20 10, 230, 108
unknownnoise0x20 15, 210, 92
unknownnoise0x20 3, 194, 108
unknownnoise0x20 8, 209, 92
endchannel
-; 0x21006
diff --git a/audio/sfx/sfx_1f_26.asm b/audio/sfx/cry12_3.asm
index 488c9c32..143f8045 100755..100644
--- a/audio/sfx/sfx_1f_26.asm
+++ b/audio/sfx/cry12_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_26_Ch1: ; 7cda0 (1f:4da0)
+SFX_Cry12_3_Ch1: ; 7cda0 (1f:4da0)
dutycycle 165
unknownsfx0x20 12, 242, 64, 4
unknownsfx0x20 15, 227, 160, 4
@@ -7,7 +7,7 @@ SFX_1f_26_Ch1: ; 7cda0 (1f:4da0)
endchannel
-SFX_1f_26_Ch2: ; 7cdb3 (1f:4db3)
+SFX_Cry12_3_Ch2: ; 7cdb3 (1f:4db3)
dutycycle 238
unknownsfx0x20 11, 210, 56, 4
unknownsfx0x20 14, 198, 152, 4
@@ -16,10 +16,9 @@ SFX_1f_26_Ch2: ; 7cdb3 (1f:4db3)
endchannel
-SFX_1f_26_Ch3: ; 7cdc6 (1f:4dc6)
+SFX_Cry12_3_Ch3: ; 7cdc6 (1f:4dc6)
unknownnoise0x20 10, 230, 108
unknownnoise0x20 15, 210, 92
unknownnoise0x20 3, 194, 108
unknownnoise0x20 8, 209, 92
endchannel
-; 0x7cdd3
diff --git a/audio/sfx/sfx_02_27.asm b/audio/sfx/cry13_1.asm
index d25a4db9..c2f1002f 100755..100644
--- a/audio/sfx/sfx_02_27.asm
+++ b/audio/sfx/cry13_1.asm
@@ -1,4 +1,4 @@
-SFX_02_27_Ch1: ; 8d5e (2:4d5e)
+SFX_Cry13_1_Ch1: ; 8d5e (2:4d5e)
dutycycle 51
unknownsfx0x20 15, 246, 192, 5
unknownsfx0x20 8, 227, 188, 5
@@ -9,7 +9,7 @@ SFX_02_27_Ch1: ; 8d5e (2:4d5e)
endchannel
-SFX_02_27_Ch2: ; 8d79 (2:4d79)
+SFX_Cry13_1_Ch2: ; 8d79 (2:4d79)
dutycycle 153
unknownsfx0x20 14, 198, 177, 4
unknownsfx0x20 7, 195, 173, 4
@@ -20,7 +20,7 @@ SFX_02_27_Ch2: ; 8d79 (2:4d79)
endchannel
-SFX_02_27_Ch3: ; 8d94 (2:4d94)
+SFX_Cry13_1_Ch3: ; 8d94 (2:4d94)
unknownnoise0x20 10, 230, 92
unknownnoise0x20 10, 214, 108
unknownnoise0x20 4, 194, 76
@@ -28,4 +28,3 @@ SFX_02_27_Ch3: ; 8d94 (2:4d94)
unknownnoise0x20 8, 179, 76
unknownnoise0x20 8, 161, 92
endchannel
-; 0x8da7
diff --git a/audio/sfx/sfx_08_27.asm b/audio/sfx/cry13_2.asm
index 044e1d6f..b072fb07 100755..100644
--- a/audio/sfx/sfx_08_27.asm
+++ b/audio/sfx/cry13_2.asm
@@ -1,4 +1,4 @@
-SFX_08_27_Ch1: ; 21006 (8:5006)
+SFX_Cry13_2_Ch1: ; 21006 (8:5006)
dutycycle 51
unknownsfx0x20 15, 246, 192, 5
unknownsfx0x20 8, 227, 188, 5
@@ -9,7 +9,7 @@ SFX_08_27_Ch1: ; 21006 (8:5006)
endchannel
-SFX_08_27_Ch2: ; 21021 (8:5021)
+SFX_Cry13_2_Ch2: ; 21021 (8:5021)
dutycycle 153
unknownsfx0x20 14, 198, 177, 4
unknownsfx0x20 7, 195, 173, 4
@@ -20,7 +20,7 @@ SFX_08_27_Ch2: ; 21021 (8:5021)
endchannel
-SFX_08_27_Ch3: ; 2103c (8:503c)
+SFX_Cry13_2_Ch3: ; 2103c (8:503c)
unknownnoise0x20 10, 230, 92
unknownnoise0x20 10, 214, 108
unknownnoise0x20 4, 194, 76
@@ -28,4 +28,3 @@ SFX_08_27_Ch3: ; 2103c (8:503c)
unknownnoise0x20 8, 179, 76
unknownnoise0x20 8, 161, 92
endchannel
-; 0x2104f
diff --git a/audio/sfx/sfx_1f_27.asm b/audio/sfx/cry13_3.asm
index ade4b1ba..f2c110b8 100755..100644
--- a/audio/sfx/sfx_1f_27.asm
+++ b/audio/sfx/cry13_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_27_Ch1: ; 7cdd3 (1f:4dd3)
+SFX_Cry13_3_Ch1: ; 7cdd3 (1f:4dd3)
dutycycle 51
unknownsfx0x20 15, 246, 192, 5
unknownsfx0x20 8, 227, 188, 5
@@ -9,7 +9,7 @@ SFX_1f_27_Ch1: ; 7cdd3 (1f:4dd3)
endchannel
-SFX_1f_27_Ch2: ; 7cdee (1f:4dee)
+SFX_Cry13_3_Ch2: ; 7cdee (1f:4dee)
dutycycle 153
unknownsfx0x20 14, 198, 177, 4
unknownsfx0x20 7, 195, 173, 4
@@ -20,7 +20,7 @@ SFX_1f_27_Ch2: ; 7cdee (1f:4dee)
endchannel
-SFX_1f_27_Ch3: ; 7ce09 (1f:4e09)
+SFX_Cry13_3_Ch3: ; 7ce09 (1f:4e09)
unknownnoise0x20 10, 230, 92
unknownnoise0x20 10, 214, 108
unknownnoise0x20 4, 194, 76
@@ -28,4 +28,3 @@ SFX_1f_27_Ch3: ; 7ce09 (1f:4e09)
unknownnoise0x20 8, 179, 76
unknownnoise0x20 8, 161, 92
endchannel
-; 0x7ce1c
diff --git a/audio/sfx/sfx_02_28.asm b/audio/sfx/cry14_1.asm
index f4ed88b2..125fe86e 100755..100644
--- a/audio/sfx/sfx_02_28.asm
+++ b/audio/sfx/cry14_1.asm
@@ -1,4 +1,4 @@
-SFX_02_28_Ch1: ; 8da7 (2:4da7)
+SFX_Cry14_1_Ch1: ; 8da7 (2:4da7)
dutycycle 240
unknownsfx0x20 8, 228, 144, 7
unknownsfx0x20 15, 245, 192, 7
@@ -6,7 +6,7 @@ SFX_02_28_Ch1: ; 8da7 (2:4da7)
endchannel
-SFX_02_28_Ch2: ; 8db6 (2:4db6)
+SFX_Cry14_1_Ch2: ; 8db6 (2:4db6)
dutycycle 165
unknownsfx0x20 10, 196, 113, 7
unknownsfx0x20 15, 182, 162, 7
@@ -14,9 +14,8 @@ SFX_02_28_Ch2: ; 8db6 (2:4db6)
endchannel
-SFX_02_28_Ch3: ; 8dc5 (2:4dc5)
+SFX_Cry14_1_Ch3: ; 8dc5 (2:4dc5)
unknownnoise0x20 8, 228, 76
unknownnoise0x20 14, 196, 60
unknownnoise0x20 8, 209, 44
endchannel
-; 0x8dcf
diff --git a/audio/sfx/sfx_08_28.asm b/audio/sfx/cry14_2.asm
index c7f7e3a7..3ba2ac26 100755..100644
--- a/audio/sfx/sfx_08_28.asm
+++ b/audio/sfx/cry14_2.asm
@@ -1,4 +1,4 @@
-SFX_08_28_Ch1: ; 2104f (8:504f)
+SFX_Cry14_2_Ch1: ; 2104f (8:504f)
dutycycle 240
unknownsfx0x20 8, 228, 144, 7
unknownsfx0x20 15, 245, 192, 7
@@ -6,7 +6,7 @@ SFX_08_28_Ch1: ; 2104f (8:504f)
endchannel
-SFX_08_28_Ch2: ; 2105e (8:505e)
+SFX_Cry14_2_Ch2: ; 2105e (8:505e)
dutycycle 165
unknownsfx0x20 10, 196, 113, 7
unknownsfx0x20 15, 182, 162, 7
@@ -14,9 +14,8 @@ SFX_08_28_Ch2: ; 2105e (8:505e)
endchannel
-SFX_08_28_Ch3: ; 2106d (8:506d)
+SFX_Cry14_2_Ch3: ; 2106d (8:506d)
unknownnoise0x20 8, 228, 76
unknownnoise0x20 14, 196, 60
unknownnoise0x20 8, 209, 44
endchannel
-; 0x21077
diff --git a/audio/sfx/sfx_1f_28.asm b/audio/sfx/cry14_3.asm
index 5f24e7d9..fe2cd1e8 100755..100644
--- a/audio/sfx/sfx_1f_28.asm
+++ b/audio/sfx/cry14_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_28_Ch1: ; 7ce1c (1f:4e1c)
+SFX_Cry14_3_Ch1: ; 7ce1c (1f:4e1c)
dutycycle 240
unknownsfx0x20 8, 228, 144, 7
unknownsfx0x20 15, 245, 192, 7
@@ -6,7 +6,7 @@ SFX_1f_28_Ch1: ; 7ce1c (1f:4e1c)
endchannel
-SFX_1f_28_Ch2: ; 7ce2b (1f:4e2b)
+SFX_Cry14_3_Ch2: ; 7ce2b (1f:4e2b)
dutycycle 165
unknownsfx0x20 10, 196, 113, 7
unknownsfx0x20 15, 182, 162, 7
@@ -14,9 +14,8 @@ SFX_1f_28_Ch2: ; 7ce2b (1f:4e2b)
endchannel
-SFX_1f_28_Ch3: ; 7ce3a (1f:4e3a)
+SFX_Cry14_3_Ch3: ; 7ce3a (1f:4e3a)
unknownnoise0x20 8, 228, 76
unknownnoise0x20 14, 196, 60
unknownnoise0x20 8, 209, 44
endchannel
-; 0x7ce44
diff --git a/audio/sfx/sfx_02_29.asm b/audio/sfx/cry15_1.asm
index f0a86c6a..54f94deb 100755..100644
--- a/audio/sfx/sfx_02_29.asm
+++ b/audio/sfx/cry15_1.asm
@@ -1,4 +1,4 @@
-SFX_02_29_Ch1: ; 8e35 (2:4e35)
+SFX_Cry15_1_Ch1: ; 8e35 (2:4e35)
dutycycle 240
unknownsfx0x20 4, 243, 128, 7
unknownsfx0x20 15, 231, 0, 7
@@ -9,7 +9,7 @@ SFX_02_29_Ch1: ; 8e35 (2:4e35)
endchannel
-SFX_02_29_Ch2: ; 8e50 (2:4e50)
+SFX_Cry15_1_Ch2: ; 8e50 (2:4e50)
dutycycle 90
unknownsfx0x20 6, 195, 1, 7
unknownsfx0x20 14, 183, 129, 6
@@ -20,7 +20,7 @@ SFX_02_29_Ch2: ; 8e50 (2:4e50)
endchannel
-SFX_02_29_Ch3: ; 8e6b (2:4e6b)
+SFX_Cry15_1_Ch3: ; 8e6b (2:4e6b)
unknownnoise0x20 6, 227, 92
unknownnoise0x20 14, 214, 76
unknownnoise0x20 6, 198, 60
@@ -28,4 +28,3 @@ SFX_02_29_Ch3: ; 8e6b (2:4e6b)
unknownnoise0x20 3, 162, 92
unknownnoise0x20 8, 177, 108
endchannel
-; 0x8e7e
diff --git a/audio/sfx/sfx_08_29.asm b/audio/sfx/cry15_2.asm
index 7149e4e1..14b1af72 100755..100644
--- a/audio/sfx/sfx_08_29.asm
+++ b/audio/sfx/cry15_2.asm
@@ -1,4 +1,4 @@
-SFX_08_29_Ch1: ; 210dd (8:50dd)
+SFX_Cry15_2_Ch1: ; 210dd (8:50dd)
dutycycle 240
unknownsfx0x20 4, 243, 128, 7
unknownsfx0x20 15, 231, 0, 7
@@ -9,7 +9,7 @@ SFX_08_29_Ch1: ; 210dd (8:50dd)
endchannel
-SFX_08_29_Ch2: ; 210f8 (8:50f8)
+SFX_Cry15_2_Ch2: ; 210f8 (8:50f8)
dutycycle 90
unknownsfx0x20 6, 195, 1, 7
unknownsfx0x20 14, 183, 129, 6
@@ -20,7 +20,7 @@ SFX_08_29_Ch2: ; 210f8 (8:50f8)
endchannel
-SFX_08_29_Ch3: ; 21113 (8:5113)
+SFX_Cry15_2_Ch3: ; 21113 (8:5113)
unknownnoise0x20 6, 227, 92
unknownnoise0x20 14, 214, 76
unknownnoise0x20 6, 198, 60
@@ -28,4 +28,3 @@ SFX_08_29_Ch3: ; 21113 (8:5113)
unknownnoise0x20 3, 162, 92
unknownnoise0x20 8, 177, 108
endchannel
-; 0x21126
diff --git a/audio/sfx/sfx_1f_29.asm b/audio/sfx/cry15_3.asm
index 3c15675b..36951439 100755..100644
--- a/audio/sfx/sfx_1f_29.asm
+++ b/audio/sfx/cry15_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_29_Ch1: ; 7ceaa (1f:4eaa)
+SFX_Cry15_3_Ch1: ; 7ceaa (1f:4eaa)
dutycycle 240
unknownsfx0x20 4, 243, 128, 7
unknownsfx0x20 15, 231, 0, 7
@@ -9,7 +9,7 @@ SFX_1f_29_Ch1: ; 7ceaa (1f:4eaa)
endchannel
-SFX_1f_29_Ch2: ; 7cec5 (1f:4ec5)
+SFX_Cry15_3_Ch2: ; 7cec5 (1f:4ec5)
dutycycle 90
unknownsfx0x20 6, 195, 1, 7
unknownsfx0x20 14, 183, 129, 6
@@ -20,7 +20,7 @@ SFX_1f_29_Ch2: ; 7cec5 (1f:4ec5)
endchannel
-SFX_1f_29_Ch3: ; 7cee0 (1f:4ee0)
+SFX_Cry15_3_Ch3: ; 7cee0 (1f:4ee0)
unknownnoise0x20 6, 227, 92
unknownnoise0x20 14, 214, 76
unknownnoise0x20 6, 198, 60
@@ -28,4 +28,3 @@ SFX_1f_29_Ch3: ; 7cee0 (1f:4ee0)
unknownnoise0x20 3, 162, 92
unknownnoise0x20 8, 177, 108
endchannel
-; 0x7cef3
diff --git a/audio/sfx/sfx_02_2a.asm b/audio/sfx/cry16_1.asm
index 70778f03..91fa2596 100755..100644
--- a/audio/sfx/sfx_02_2a.asm
+++ b/audio/sfx/cry16_1.asm
@@ -1,4 +1,4 @@
-SFX_02_2a_Ch1: ; 8cc8 (2:4cc8)
+SFX_Cry16_1_Ch1: ; 8cc8 (2:4cc8)
dutycycle 240
unknownsfx0x20 15, 215, 128, 7
unknownsfx0x20 4, 230, 160, 7
@@ -6,7 +6,7 @@ SFX_02_2a_Ch1: ; 8cc8 (2:4cc8)
endchannel
-SFX_02_2a_Ch2: ; 8cd7 (2:4cd7)
+SFX_Cry16_1_Ch2: ; 8cd7 (2:4cd7)
dutycycle 90
unknownsfx0x20 15, 199, 83, 7
unknownsfx0x20 5, 182, 114, 7
@@ -14,9 +14,8 @@ SFX_02_2a_Ch2: ; 8cd7 (2:4cd7)
endchannel
-SFX_02_2a_Ch3: ; 8ce6 (2:4ce6)
+SFX_Cry16_1_Ch3: ; 8ce6 (2:4ce6)
unknownnoise0x20 13, 246, 76
unknownnoise0x20 4, 230, 60
unknownnoise0x20 15, 242, 76
endchannel
-; 0x8cf0
diff --git a/audio/sfx/sfx_08_2a.asm b/audio/sfx/cry16_2.asm
index a2b247ef..5e29eba8 100755..100644
--- a/audio/sfx/sfx_08_2a.asm
+++ b/audio/sfx/cry16_2.asm
@@ -1,4 +1,4 @@
-SFX_08_2a_Ch1: ; 20f70 (8:4f70)
+SFX_Cry16_2_Ch1: ; 20f70 (8:4f70)
dutycycle 240
unknownsfx0x20 15, 215, 128, 7
unknownsfx0x20 4, 230, 160, 7
@@ -6,7 +6,7 @@ SFX_08_2a_Ch1: ; 20f70 (8:4f70)
endchannel
-SFX_08_2a_Ch2: ; 20f7f (8:4f7f)
+SFX_Cry16_2_Ch2: ; 20f7f (8:4f7f)
dutycycle 90
unknownsfx0x20 15, 199, 83, 7
unknownsfx0x20 5, 182, 114, 7
@@ -14,9 +14,8 @@ SFX_08_2a_Ch2: ; 20f7f (8:4f7f)
endchannel
-SFX_08_2a_Ch3: ; 20f8e (8:4f8e)
+SFX_Cry16_2_Ch3: ; 20f8e (8:4f8e)
unknownnoise0x20 13, 246, 76
unknownnoise0x20 4, 230, 60
unknownnoise0x20 15, 242, 76
endchannel
-; 0x20f98
diff --git a/audio/sfx/sfx_1f_2a.asm b/audio/sfx/cry16_3.asm
index 36f0ccd5..af32e9ef 100755..100644
--- a/audio/sfx/sfx_1f_2a.asm
+++ b/audio/sfx/cry16_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_2a_Ch1: ; 7cd3d (1f:4d3d)
+SFX_Cry16_3_Ch1: ; 7cd3d (1f:4d3d)
dutycycle 240
unknownsfx0x20 15, 215, 128, 7
unknownsfx0x20 4, 230, 160, 7
@@ -6,7 +6,7 @@ SFX_1f_2a_Ch1: ; 7cd3d (1f:4d3d)
endchannel
-SFX_1f_2a_Ch2: ; 7cd4c (1f:4d4c)
+SFX_Cry16_3_Ch2: ; 7cd4c (1f:4d4c)
dutycycle 90
unknownsfx0x20 15, 199, 83, 7
unknownsfx0x20 5, 182, 114, 7
@@ -14,9 +14,8 @@ SFX_1f_2a_Ch2: ; 7cd4c (1f:4d4c)
endchannel
-SFX_1f_2a_Ch3: ; 7cd5b (1f:4d5b)
+SFX_Cry16_3_Ch3: ; 7cd5b (1f:4d5b)
unknownnoise0x20 13, 246, 76
unknownnoise0x20 4, 230, 60
unknownnoise0x20 15, 242, 76
endchannel
-; 0x7cd65
diff --git a/audio/sfx/sfx_02_2b.asm b/audio/sfx/cry17_1.asm
index dfc4d66d..2f2cde11 100755..100644
--- a/audio/sfx/sfx_02_2b.asm
+++ b/audio/sfx/cry17_1.asm
@@ -1,4 +1,4 @@
-SFX_02_2b_Ch1: ; 8e7e (2:4e7e)
+SFX_Cry17_1_Ch1: ; 8e7e (2:4e7e)
dutycycle 15
unknownsfx0x20 15, 247, 0, 5
unknownsfx0x20 15, 231, 8, 5
@@ -7,7 +7,7 @@ SFX_02_2b_Ch1: ; 8e7e (2:4e7e)
endchannel
-SFX_02_2b_Ch2: ; 8e91 (2:4e91)
+SFX_Cry17_1_Ch2: ; 8e91 (2:4e91)
dutycycle 68
unknownsfx0x20 14, 215, 129, 4
unknownsfx0x20 14, 199, 137, 4
@@ -16,10 +16,9 @@ SFX_02_2b_Ch2: ; 8e91 (2:4e91)
endchannel
-SFX_02_2b_Ch3: ; 8ea4 (2:4ea4)
+SFX_Cry17_1_Ch3: ; 8ea4 (2:4ea4)
unknownnoise0x20 14, 247, 124
unknownnoise0x20 12, 246, 108
unknownnoise0x20 9, 228, 124
unknownnoise0x20 15, 226, 108
endchannel
-; 0x8eb1
diff --git a/audio/sfx/sfx_08_2b.asm b/audio/sfx/cry17_2.asm
index 36411656..cca78ae2 100755..100644
--- a/audio/sfx/sfx_08_2b.asm
+++ b/audio/sfx/cry17_2.asm
@@ -1,4 +1,4 @@
-SFX_08_2b_Ch1: ; 21126 (8:5126)
+SFX_Cry17_2_Ch1: ; 21126 (8:5126)
dutycycle 15
unknownsfx0x20 15, 247, 0, 5
unknownsfx0x20 15, 231, 8, 5
@@ -7,7 +7,7 @@ SFX_08_2b_Ch1: ; 21126 (8:5126)
endchannel
-SFX_08_2b_Ch2: ; 21139 (8:5139)
+SFX_Cry17_2_Ch2: ; 21139 (8:5139)
dutycycle 68
unknownsfx0x20 14, 215, 129, 4
unknownsfx0x20 14, 199, 137, 4
@@ -16,10 +16,9 @@ SFX_08_2b_Ch2: ; 21139 (8:5139)
endchannel
-SFX_08_2b_Ch3: ; 2114c (8:514c)
+SFX_Cry17_2_Ch3: ; 2114c (8:514c)
unknownnoise0x20 14, 247, 124
unknownnoise0x20 12, 246, 108
unknownnoise0x20 9, 228, 124
unknownnoise0x20 15, 226, 108
endchannel
-; 0x21159
diff --git a/audio/sfx/sfx_1f_2b.asm b/audio/sfx/cry17_3.asm
index 859969eb..6aad35d0 100755..100644
--- a/audio/sfx/sfx_1f_2b.asm
+++ b/audio/sfx/cry17_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_2b_Ch1: ; 7cef3 (1f:4ef3)
+SFX_Cry17_3_Ch1: ; 7cef3 (1f:4ef3)
dutycycle 15
unknownsfx0x20 15, 247, 0, 5
unknownsfx0x20 15, 231, 8, 5
@@ -7,7 +7,7 @@ SFX_1f_2b_Ch1: ; 7cef3 (1f:4ef3)
endchannel
-SFX_1f_2b_Ch2: ; 7cf06 (1f:4f06)
+SFX_Cry17_3_Ch2: ; 7cf06 (1f:4f06)
dutycycle 68
unknownsfx0x20 14, 215, 129, 4
unknownsfx0x20 14, 199, 137, 4
@@ -16,10 +16,9 @@ SFX_1f_2b_Ch2: ; 7cf06 (1f:4f06)
endchannel
-SFX_1f_2b_Ch3: ; 7cf19 (1f:4f19)
+SFX_Cry17_3_Ch3: ; 7cf19 (1f:4f19)
unknownnoise0x20 14, 247, 124
unknownnoise0x20 12, 246, 108
unknownnoise0x20 9, 228, 124
unknownnoise0x20 15, 226, 108
endchannel
-; 0x7cf26
diff --git a/audio/sfx/sfx_02_2c.asm b/audio/sfx/cry18_1.asm
index 642d5fd5..576ea693 100755..100644
--- a/audio/sfx/sfx_02_2c.asm
+++ b/audio/sfx/cry18_1.asm
@@ -1,4 +1,4 @@
-SFX_02_2c_Ch1: ; 8f8e (2:4f8e)
+SFX_Cry18_1_Ch1: ; 8f8e (2:4f8e)
dutycycle 80
unknownsfx0x20 10, 245, 128, 6
unknownsfx0x20 3, 226, 160, 6
@@ -11,7 +11,7 @@ SFX_02_2c_Ch1: ; 8f8e (2:4f8e)
endchannel
-SFX_02_2c_Ch2: ; 8fb1 (2:4fb1)
+SFX_Cry18_1_Ch2: ; 8fb1 (2:4fb1)
dutycycle 15
unknownsfx0x20 9, 213, 49, 6
unknownsfx0x20 3, 210, 82, 6
@@ -24,7 +24,7 @@ SFX_02_2c_Ch2: ; 8fb1 (2:4fb1)
endchannel
-SFX_02_2c_Ch3: ; 8fd4 (2:4fd4)
+SFX_Cry18_1_Ch3: ; 8fd4 (2:4fd4)
unknownnoise0x20 6, 227, 76
unknownnoise0x20 4, 195, 60
unknownnoise0x20 5, 212, 60
@@ -32,4 +32,3 @@ SFX_02_2c_Ch3: ; 8fd4 (2:4fd4)
unknownnoise0x20 6, 180, 60
unknownnoise0x20 8, 193, 44
endchannel
-; 0x8fe7
diff --git a/audio/sfx/sfx_08_2c.asm b/audio/sfx/cry18_2.asm
index 5c7d9541..333ddb9e 100755..100644
--- a/audio/sfx/sfx_08_2c.asm
+++ b/audio/sfx/cry18_2.asm
@@ -1,4 +1,4 @@
-SFX_08_2c_Ch1: ; 21236 (8:5236)
+SFX_Cry18_2_Ch1: ; 21236 (8:5236)
dutycycle 80
unknownsfx0x20 10, 245, 128, 6
unknownsfx0x20 3, 226, 160, 6
@@ -11,7 +11,7 @@ SFX_08_2c_Ch1: ; 21236 (8:5236)
endchannel
-SFX_08_2c_Ch2: ; 21259 (8:5259)
+SFX_Cry18_2_Ch2: ; 21259 (8:5259)
dutycycle 15
unknownsfx0x20 9, 213, 49, 6
unknownsfx0x20 3, 210, 82, 6
@@ -24,7 +24,7 @@ SFX_08_2c_Ch2: ; 21259 (8:5259)
endchannel
-SFX_08_2c_Ch3: ; 2127c (8:527c)
+SFX_Cry18_2_Ch3: ; 2127c (8:527c)
unknownnoise0x20 6, 227, 76
unknownnoise0x20 4, 195, 60
unknownnoise0x20 5, 212, 60
@@ -32,4 +32,3 @@ SFX_08_2c_Ch3: ; 2127c (8:527c)
unknownnoise0x20 6, 180, 60
unknownnoise0x20 8, 193, 44
endchannel
-; 0x2128f
diff --git a/audio/sfx/sfx_1f_2c.asm b/audio/sfx/cry18_3.asm
index bdbcad46..3c7b1a99 100755..100644
--- a/audio/sfx/sfx_1f_2c.asm
+++ b/audio/sfx/cry18_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_2c_Ch1: ; 7d003 (1f:5003)
+SFX_Cry18_3_Ch1: ; 7d003 (1f:5003)
dutycycle 80
unknownsfx0x20 10, 245, 128, 6
unknownsfx0x20 3, 226, 160, 6
@@ -11,7 +11,7 @@ SFX_1f_2c_Ch1: ; 7d003 (1f:5003)
endchannel
-SFX_1f_2c_Ch2: ; 7d026 (1f:5026)
+SFX_Cry18_3_Ch2: ; 7d026 (1f:5026)
dutycycle 15
unknownsfx0x20 9, 213, 49, 6
unknownsfx0x20 3, 210, 82, 6
@@ -24,7 +24,7 @@ SFX_1f_2c_Ch2: ; 7d026 (1f:5026)
endchannel
-SFX_1f_2c_Ch3: ; 7d049 (1f:5049)
+SFX_Cry18_3_Ch3: ; 7d049 (1f:5049)
unknownnoise0x20 6, 227, 76
unknownnoise0x20 4, 195, 60
unknownnoise0x20 5, 212, 60
@@ -32,4 +32,3 @@ SFX_1f_2c_Ch3: ; 7d049 (1f:5049)
unknownnoise0x20 6, 180, 60
unknownnoise0x20 8, 193, 44
endchannel
-; 0x7d05c
diff --git a/audio/sfx/sfx_02_2d.asm b/audio/sfx/cry19_1.asm
index 4c42b231..94607b9b 100755..100644
--- a/audio/sfx/sfx_02_2d.asm
+++ b/audio/sfx/cry19_1.asm
@@ -1,4 +1,4 @@
-SFX_02_2d_Ch1: ; 8ca6 (2:4ca6)
+SFX_Cry19_1_Ch1: ; 8ca6 (2:4ca6)
dutycycle 27
unknownsfx0x20 7, 210, 64, 7
unknownsfx0x20 15, 229, 96, 7
@@ -6,7 +6,7 @@ SFX_02_2d_Ch1: ; 8ca6 (2:4ca6)
endchannel
-SFX_02_2d_Ch2: ; 8cb5 (2:4cb5)
+SFX_Cry19_1_Ch2: ; 8cb5 (2:4cb5)
dutycycle 129
unknownsfx0x20 2, 194, 1, 7
unknownsfx0x20 4, 194, 8, 7
@@ -14,6 +14,5 @@ SFX_02_2d_Ch2: ; 8cb5 (2:4cb5)
unknownsfx0x20 15, 162, 1, 7
-SFX_02_2d_Ch3: ; 8cc7 (2:4cc7)
+SFX_Cry19_1_Ch3: ; 8cc7 (2:4cc7)
endchannel
-; 0x8cc8
diff --git a/audio/sfx/sfx_08_2d.asm b/audio/sfx/cry19_2.asm
index 44033318..717a5d2b 100755..100644
--- a/audio/sfx/sfx_08_2d.asm
+++ b/audio/sfx/cry19_2.asm
@@ -1,4 +1,4 @@
-SFX_08_2d_Ch1: ; 20f4e (8:4f4e)
+SFX_Cry19_2_Ch1: ; 20f4e (8:4f4e)
dutycycle 27
unknownsfx0x20 7, 210, 64, 7
unknownsfx0x20 15, 229, 96, 7
@@ -6,7 +6,7 @@ SFX_08_2d_Ch1: ; 20f4e (8:4f4e)
endchannel
-SFX_08_2d_Ch2: ; 20f5d (8:4f5d)
+SFX_Cry19_2_Ch2: ; 20f5d (8:4f5d)
dutycycle 129
unknownsfx0x20 2, 194, 1, 7
unknownsfx0x20 4, 194, 8, 7
@@ -14,6 +14,5 @@ SFX_08_2d_Ch2: ; 20f5d (8:4f5d)
unknownsfx0x20 15, 162, 1, 7
-SFX_08_2d_Ch3: ; 20f6f (8:4f6f)
+SFX_Cry19_2_Ch3: ; 20f6f (8:4f6f)
endchannel
-; 0x20f70
diff --git a/audio/sfx/sfx_1f_2d.asm b/audio/sfx/cry19_3.asm
index 8ba33430..535be2b6 100755..100644
--- a/audio/sfx/sfx_1f_2d.asm
+++ b/audio/sfx/cry19_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_2d_Ch1: ; 7cd1b (1f:4d1b)
+SFX_Cry19_3_Ch1: ; 7cd1b (1f:4d1b)
dutycycle 27
unknownsfx0x20 7, 210, 64, 7
unknownsfx0x20 15, 229, 96, 7
@@ -6,7 +6,7 @@ SFX_1f_2d_Ch1: ; 7cd1b (1f:4d1b)
endchannel
-SFX_1f_2d_Ch2: ; 7cd2a (1f:4d2a)
+SFX_Cry19_3_Ch2: ; 7cd2a (1f:4d2a)
dutycycle 129
unknownsfx0x20 2, 194, 1, 7
unknownsfx0x20 4, 194, 8, 7
@@ -14,6 +14,5 @@ SFX_1f_2d_Ch2: ; 7cd2a (1f:4d2a)
unknownsfx0x20 15, 162, 1, 7
-SFX_1f_2d_Ch3: ; 7cd3c (1f:4d3c)
+SFX_Cry19_3_Ch3: ; 7cd3c (1f:4d3c)
endchannel
-; 0x7cd3d
diff --git a/audio/sfx/sfx_02_2e.asm b/audio/sfx/cry1a_1.asm
index a39964c8..0217deef 100755..100644
--- a/audio/sfx/sfx_02_2e.asm
+++ b/audio/sfx/cry1a_1.asm
@@ -1,4 +1,4 @@
-SFX_02_2e_Ch1: ; 8eff (2:4eff)
+SFX_Cry1A_1_Ch1: ; 8eff (2:4eff)
dutycycle 240
unknownsfx0x20 6, 247, 64, 7
unknownsfx0x20 12, 230, 68, 7
@@ -9,7 +9,7 @@ SFX_02_2e_Ch1: ; 8eff (2:4eff)
endchannel
-SFX_02_2e_Ch2: ; 8f1a (2:4f1a)
+SFX_Cry1A_1_Ch2: ; 8f1a (2:4f1a)
dutycycle 10
unknownsfx0x20 6, 199, 1, 7
unknownsfx0x20 11, 182, 2, 7
@@ -20,7 +20,7 @@ SFX_02_2e_Ch2: ; 8f1a (2:4f1a)
endchannel
-SFX_02_2e_Ch3: ; 8f35 (2:4f35)
+SFX_Cry1A_1_Ch3: ; 8f35 (2:4f35)
unknownnoise0x20 3, 226, 60
unknownnoise0x20 8, 214, 76
unknownnoise0x20 5, 212, 60
@@ -28,4 +28,3 @@ SFX_02_2e_Ch3: ; 8f35 (2:4f35)
unknownnoise0x20 2, 226, 60
unknownnoise0x20 8, 209, 44
endchannel
-; 0x8f48
diff --git a/audio/sfx/sfx_08_2e.asm b/audio/sfx/cry1a_2.asm
index 617d3b8b..c94fc657 100755..100644
--- a/audio/sfx/sfx_08_2e.asm
+++ b/audio/sfx/cry1a_2.asm
@@ -1,4 +1,4 @@
-SFX_08_2e_Ch1: ; 211a7 (8:51a7)
+SFX_Cry1A_2_Ch1: ; 211a7 (8:51a7)
dutycycle 240
unknownsfx0x20 6, 247, 64, 7
unknownsfx0x20 12, 230, 68, 7
@@ -9,7 +9,7 @@ SFX_08_2e_Ch1: ; 211a7 (8:51a7)
endchannel
-SFX_08_2e_Ch2: ; 211c2 (8:51c2)
+SFX_Cry1A_2_Ch2: ; 211c2 (8:51c2)
dutycycle 10
unknownsfx0x20 6, 199, 1, 7
unknownsfx0x20 11, 182, 2, 7
@@ -20,7 +20,7 @@ SFX_08_2e_Ch2: ; 211c2 (8:51c2)
endchannel
-SFX_08_2e_Ch3: ; 211dd (8:51dd)
+SFX_Cry1A_2_Ch3: ; 211dd (8:51dd)
unknownnoise0x20 3, 226, 60
unknownnoise0x20 8, 214, 76
unknownnoise0x20 5, 212, 60
@@ -28,4 +28,3 @@ SFX_08_2e_Ch3: ; 211dd (8:51dd)
unknownnoise0x20 2, 226, 60
unknownnoise0x20 8, 209, 44
endchannel
-; 0x211f0
diff --git a/audio/sfx/sfx_1f_2e.asm b/audio/sfx/cry1a_3.asm
index 8c76ae07..29ff2ec0 100755..100644
--- a/audio/sfx/sfx_1f_2e.asm
+++ b/audio/sfx/cry1a_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_2e_Ch1: ; 7cf74 (1f:4f74)
+SFX_Cry1A_3_Ch1: ; 7cf74 (1f:4f74)
dutycycle 240
unknownsfx0x20 6, 247, 64, 7
unknownsfx0x20 12, 230, 68, 7
@@ -9,7 +9,7 @@ SFX_1f_2e_Ch1: ; 7cf74 (1f:4f74)
endchannel
-SFX_1f_2e_Ch2: ; 7cf8f (1f:4f8f)
+SFX_Cry1A_3_Ch2: ; 7cf8f (1f:4f8f)
dutycycle 10
unknownsfx0x20 6, 199, 1, 7
unknownsfx0x20 11, 182, 2, 7
@@ -20,7 +20,7 @@ SFX_1f_2e_Ch2: ; 7cf8f (1f:4f8f)
endchannel
-SFX_1f_2e_Ch3: ; 7cfaa (1f:4faa)
+SFX_Cry1A_3_Ch3: ; 7cfaa (1f:4faa)
unknownnoise0x20 3, 226, 60
unknownnoise0x20 8, 214, 76
unknownnoise0x20 5, 212, 60
@@ -28,4 +28,3 @@ SFX_1f_2e_Ch3: ; 7cfaa (1f:4faa)
unknownnoise0x20 2, 226, 60
unknownnoise0x20 8, 209, 44
endchannel
-; 0x7cfbd
diff --git a/audio/sfx/sfx_02_2f.asm b/audio/sfx/cry1b_1.asm
index 3594ebd1..858d724a 100755..100644
--- a/audio/sfx/sfx_02_2f.asm
+++ b/audio/sfx/cry1b_1.asm
@@ -1,4 +1,4 @@
-SFX_02_2f_Ch1: ; 8cf0 (2:4cf0)
+SFX_Cry1B_1_Ch1: ; 8cf0 (2:4cf0)
dutycycle 240
unknownsfx0x20 6, 247, 192, 6
unknownsfx0x20 15, 231, 0, 7
@@ -8,7 +8,7 @@ SFX_02_2f_Ch1: ; 8cf0 (2:4cf0)
endchannel
-SFX_02_2f_Ch2: ; 8d07 (2:4d07)
+SFX_Cry1B_1_Ch2: ; 8d07 (2:4d07)
dutycycle 10
unknownsfx0x20 7, 230, 129, 6
unknownsfx0x20 14, 213, 193, 6
@@ -18,10 +18,9 @@ SFX_02_2f_Ch2: ; 8d07 (2:4d07)
endchannel
-SFX_02_2f_Ch3: ; 8d1e (2:4d1e)
+SFX_Cry1B_1_Ch3: ; 8d1e (2:4d1e)
unknownnoise0x20 10, 166, 60
unknownnoise0x20 14, 148, 44
unknownnoise0x20 5, 163, 60
unknownnoise0x20 8, 145, 44
endchannel
-; 0x8d2b
diff --git a/audio/sfx/sfx_08_2f.asm b/audio/sfx/cry1b_2.asm
index 5d786f9c..423258ee 100755..100644
--- a/audio/sfx/sfx_08_2f.asm
+++ b/audio/sfx/cry1b_2.asm
@@ -1,4 +1,4 @@
-SFX_08_2f_Ch1: ; 20f98 (8:4f98)
+SFX_Cry1B_2_Ch1: ; 20f98 (8:4f98)
dutycycle 240
unknownsfx0x20 6, 247, 192, 6
unknownsfx0x20 15, 231, 0, 7
@@ -8,7 +8,7 @@ SFX_08_2f_Ch1: ; 20f98 (8:4f98)
endchannel
-SFX_08_2f_Ch2: ; 20faf (8:4faf)
+SFX_Cry1B_2_Ch2: ; 20faf (8:4faf)
dutycycle 10
unknownsfx0x20 7, 230, 129, 6
unknownsfx0x20 14, 213, 193, 6
@@ -18,10 +18,9 @@ SFX_08_2f_Ch2: ; 20faf (8:4faf)
endchannel
-SFX_08_2f_Ch3: ; 20fc6 (8:4fc6)
+SFX_Cry1B_2_Ch3: ; 20fc6 (8:4fc6)
unknownnoise0x20 10, 166, 60
unknownnoise0x20 14, 148, 44
unknownnoise0x20 5, 163, 60
unknownnoise0x20 8, 145, 44
endchannel
-; 0x20fd3
diff --git a/audio/sfx/sfx_1f_2f.asm b/audio/sfx/cry1b_3.asm
index dbefbf62..7fe6019f 100755..100644
--- a/audio/sfx/sfx_1f_2f.asm
+++ b/audio/sfx/cry1b_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_2f_Ch1: ; 7cd65 (1f:4d65)
+SFX_Cry1B_3_Ch1: ; 7cd65 (1f:4d65)
dutycycle 240
unknownsfx0x20 6, 247, 192, 6
unknownsfx0x20 15, 231, 0, 7
@@ -8,7 +8,7 @@ SFX_1f_2f_Ch1: ; 7cd65 (1f:4d65)
endchannel
-SFX_1f_2f_Ch2: ; 7cd7c (1f:4d7c)
+SFX_Cry1B_3_Ch2: ; 7cd7c (1f:4d7c)
dutycycle 10
unknownsfx0x20 7, 230, 129, 6
unknownsfx0x20 14, 213, 193, 6
@@ -18,10 +18,9 @@ SFX_1f_2f_Ch2: ; 7cd7c (1f:4d7c)
endchannel
-SFX_1f_2f_Ch3: ; 7cd93 (1f:4d93)
+SFX_Cry1B_3_Ch3: ; 7cd93 (1f:4d93)
unknownnoise0x20 10, 166, 60
unknownnoise0x20 14, 148, 44
unknownnoise0x20 5, 163, 60
unknownnoise0x20 8, 145, 44
endchannel
-; 0x7cda0
diff --git a/audio/sfx/sfx_02_30.asm b/audio/sfx/cry1c_1.asm
index c94fbbbc..f7e66dfb 100755..100644
--- a/audio/sfx/sfx_02_30.asm
+++ b/audio/sfx/cry1c_1.asm
@@ -1,4 +1,4 @@
-SFX_02_30_Ch1: ; 8eb1 (2:4eb1)
+SFX_Cry1C_1_Ch1: ; 8eb1 (2:4eb1)
dutycycle 245
unknownsfx0x20 7, 214, 225, 7
unknownsfx0x20 6, 198, 226, 7
@@ -11,7 +11,7 @@ SFX_02_30_Ch1: ; 8eb1 (2:4eb1)
endchannel
-SFX_02_30_Ch2: ; 8ed4 (2:4ed4)
+SFX_Cry1C_1_Ch2: ; 8ed4 (2:4ed4)
dutycycle 68
unknownsfx0x20 6, 195, 201, 7
unknownsfx0x20 6, 179, 199, 7
@@ -22,11 +22,10 @@ SFX_02_30_Ch2: ; 8ed4 (2:4ed4)
endchannel
-SFX_02_30_Ch3: ; 8eef (2:4eef)
+SFX_Cry1C_1_Ch3: ; 8eef (2:4eef)
unknownnoise0x20 13, 25, 124
unknownnoise0x20 13, 247, 140
unknownnoise0x20 12, 214, 124
unknownnoise0x20 8, 196, 108
unknownnoise0x20 15, 179, 92
endchannel
-; 0x8eff
diff --git a/audio/sfx/sfx_08_30.asm b/audio/sfx/cry1c_2.asm
index 8877a00f..8037fc96 100755..100644
--- a/audio/sfx/sfx_08_30.asm
+++ b/audio/sfx/cry1c_2.asm
@@ -1,4 +1,4 @@
-SFX_08_30_Ch1: ; 21159 (8:5159)
+SFX_Cry1C_2_Ch1: ; 21159 (8:5159)
dutycycle 245
unknownsfx0x20 7, 214, 225, 7
unknownsfx0x20 6, 198, 226, 7
@@ -11,7 +11,7 @@ SFX_08_30_Ch1: ; 21159 (8:5159)
endchannel
-SFX_08_30_Ch2: ; 2117c (8:517c)
+SFX_Cry1C_2_Ch2: ; 2117c (8:517c)
dutycycle 68
unknownsfx0x20 6, 195, 201, 7
unknownsfx0x20 6, 179, 199, 7
@@ -22,11 +22,10 @@ SFX_08_30_Ch2: ; 2117c (8:517c)
endchannel
-SFX_08_30_Ch3: ; 21197 (8:5197)
+SFX_Cry1C_2_Ch3: ; 21197 (8:5197)
unknownnoise0x20 13, 25, 124
unknownnoise0x20 13, 247, 140
unknownnoise0x20 12, 214, 124
unknownnoise0x20 8, 196, 108
unknownnoise0x20 15, 179, 92
endchannel
-; 0x211a7
diff --git a/audio/sfx/sfx_1f_30.asm b/audio/sfx/cry1c_3.asm
index 89447832..853eb1c6 100755..100644
--- a/audio/sfx/sfx_1f_30.asm
+++ b/audio/sfx/cry1c_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_30_Ch1: ; 7cf26 (1f:4f26)
+SFX_Cry1C_3_Ch1: ; 7cf26 (1f:4f26)
dutycycle 245
unknownsfx0x20 7, 214, 225, 7
unknownsfx0x20 6, 198, 226, 7
@@ -11,7 +11,7 @@ SFX_1f_30_Ch1: ; 7cf26 (1f:4f26)
endchannel
-SFX_1f_30_Ch2: ; 7cf49 (1f:4f49)
+SFX_Cry1C_3_Ch2: ; 7cf49 (1f:4f49)
dutycycle 68
unknownsfx0x20 6, 195, 201, 7
unknownsfx0x20 6, 179, 199, 7
@@ -22,11 +22,10 @@ SFX_1f_30_Ch2: ; 7cf49 (1f:4f49)
endchannel
-SFX_1f_30_Ch3: ; 7cf64 (1f:4f64)
+SFX_Cry1C_3_Ch3: ; 7cf64 (1f:4f64)
unknownnoise0x20 13, 25, 124
unknownnoise0x20 13, 247, 140
unknownnoise0x20 12, 214, 124
unknownnoise0x20 8, 196, 108
unknownnoise0x20 15, 179, 92
endchannel
-; 0x7cf74
diff --git a/audio/sfx/sfx_02_31.asm b/audio/sfx/cry1d_1.asm
index 543aeea9..6e2818c1 100755..100644
--- a/audio/sfx/sfx_02_31.asm
+++ b/audio/sfx/cry1d_1.asm
@@ -1,4 +1,4 @@
-SFX_02_31_Ch1: ; 8f48 (2:4f48)
+SFX_Cry1D_1_Ch1: ; 8f48 (2:4f48)
dutycycle 244
unknownsfx0x20 15, 240, 5, 7
unknownsfx0x20 10, 224, 0, 7
@@ -9,7 +9,7 @@ SFX_02_31_Ch1: ; 8f48 (2:4f48)
endchannel
-SFX_02_31_Ch2: ; 8f63 (2:4f63)
+SFX_Cry1D_1_Ch2: ; 8f63 (2:4f63)
dutycycle 34
unknownsfx0x20 15, 176, 195, 6
unknownsfx0x20 10, 160, 193, 6
@@ -20,11 +20,10 @@ SFX_02_31_Ch2: ; 8f63 (2:4f63)
endchannel
-SFX_02_31_Ch3: ; 8f7e (2:4f7e)
+SFX_Cry1D_1_Ch3: ; 8f7e (2:4f7e)
unknownnoise0x20 6, 230, 76
unknownnoise0x20 15, 214, 60
unknownnoise0x20 10, 197, 74
unknownnoise0x20 1, 178, 91
unknownnoise0x20 15, 194, 76
endchannel
-; 0x8f8e
diff --git a/audio/sfx/sfx_08_31.asm b/audio/sfx/cry1d_2.asm
index 5afe29c7..c7a2c512 100755..100644
--- a/audio/sfx/sfx_08_31.asm
+++ b/audio/sfx/cry1d_2.asm
@@ -1,4 +1,4 @@
-SFX_08_31_Ch1: ; 211f0 (8:51f0)
+SFX_Cry1D_2_Ch1: ; 211f0 (8:51f0)
dutycycle 244
unknownsfx0x20 15, 240, 5, 7
unknownsfx0x20 10, 224, 0, 7
@@ -9,7 +9,7 @@ SFX_08_31_Ch1: ; 211f0 (8:51f0)
endchannel
-SFX_08_31_Ch2: ; 2120b (8:520b)
+SFX_Cry1D_2_Ch2: ; 2120b (8:520b)
dutycycle 34
unknownsfx0x20 15, 176, 195, 6
unknownsfx0x20 10, 160, 193, 6
@@ -20,11 +20,10 @@ SFX_08_31_Ch2: ; 2120b (8:520b)
endchannel
-SFX_08_31_Ch3: ; 21226 (8:5226)
+SFX_Cry1D_2_Ch3: ; 21226 (8:5226)
unknownnoise0x20 6, 230, 76
unknownnoise0x20 15, 214, 60
unknownnoise0x20 10, 197, 74
unknownnoise0x20 1, 178, 91
unknownnoise0x20 15, 194, 76
endchannel
-; 0x21236
diff --git a/audio/sfx/sfx_1f_31.asm b/audio/sfx/cry1d_3.asm
index 4af60d4a..7210406c 100755..100644
--- a/audio/sfx/sfx_1f_31.asm
+++ b/audio/sfx/cry1d_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_31_Ch1: ; 7cfbd (1f:4fbd)
+SFX_Cry1D_3_Ch1: ; 7cfbd (1f:4fbd)
dutycycle 244
unknownsfx0x20 15, 240, 5, 7
unknownsfx0x20 10, 224, 0, 7
@@ -9,7 +9,7 @@ SFX_1f_31_Ch1: ; 7cfbd (1f:4fbd)
endchannel
-SFX_1f_31_Ch2: ; 7cfd8 (1f:4fd8)
+SFX_Cry1D_3_Ch2: ; 7cfd8 (1f:4fd8)
dutycycle 34
unknownsfx0x20 15, 176, 195, 6
unknownsfx0x20 10, 160, 193, 6
@@ -20,11 +20,10 @@ SFX_1f_31_Ch2: ; 7cfd8 (1f:4fd8)
endchannel
-SFX_1f_31_Ch3: ; 7cff3 (1f:4ff3)
+SFX_Cry1D_3_Ch3: ; 7cff3 (1f:4ff3)
unknownnoise0x20 6, 230, 76
unknownnoise0x20 15, 214, 60
unknownnoise0x20 10, 197, 74
unknownnoise0x20 1, 178, 91
unknownnoise0x20 15, 194, 76
endchannel
-; 0x7d003
diff --git a/audio/sfx/sfx_02_32.asm b/audio/sfx/cry1e_1.asm
index c231ace0..e445fdd7 100755..100644
--- a/audio/sfx/sfx_02_32.asm
+++ b/audio/sfx/cry1e_1.asm
@@ -1,4 +1,4 @@
-SFX_02_32_Ch1: ; 8dcf (2:4dcf)
+SFX_Cry1E_1_Ch1: ; 8dcf (2:4dcf)
dutycycle 240
unknownsfx0x20 6, 242, 0, 6
unknownsfx0x20 6, 226, 64, 6
@@ -11,7 +11,7 @@ SFX_02_32_Ch1: ; 8dcf (2:4dcf)
endchannel
-SFX_02_32_Ch2: ; 8df2 (2:4df2)
+SFX_Cry1E_1_Ch2: ; 8df2 (2:4df2)
dutycycle 17
unknownsfx0x20 3, 8, 1, 0
unknownsfx0x20 6, 194, 193, 5
@@ -25,7 +25,7 @@ SFX_02_32_Ch2: ; 8df2 (2:4df2)
endchannel
-SFX_02_32_Ch3: ; 8e19 (2:4e19)
+SFX_Cry1E_1_Ch3: ; 8e19 (2:4e19)
unknownnoise0x20 6, 8, 1
unknownnoise0x20 5, 226, 92
unknownnoise0x20 5, 194, 76
@@ -36,4 +36,3 @@ SFX_02_32_Ch3: ; 8e19 (2:4e19)
unknownnoise0x20 5, 146, 26
unknownnoise0x20 8, 129, 24
endchannel
-; 0x8e35
diff --git a/audio/sfx/sfx_08_32.asm b/audio/sfx/cry1e_2.asm
index cda5f116..59c9985f 100755..100644
--- a/audio/sfx/sfx_08_32.asm
+++ b/audio/sfx/cry1e_2.asm
@@ -1,4 +1,4 @@
-SFX_08_32_Ch1: ; 21077 (8:5077)
+SFX_Cry1E_2_Ch1: ; 21077 (8:5077)
dutycycle 240
unknownsfx0x20 6, 242, 0, 6
unknownsfx0x20 6, 226, 64, 6
@@ -11,7 +11,7 @@ SFX_08_32_Ch1: ; 21077 (8:5077)
endchannel
-SFX_08_32_Ch2: ; 2109a (8:509a)
+SFX_Cry1E_2_Ch2: ; 2109a (8:509a)
dutycycle 17
unknownsfx0x20 3, 8, 1, 0
unknownsfx0x20 6, 194, 193, 5
@@ -25,7 +25,7 @@ SFX_08_32_Ch2: ; 2109a (8:509a)
endchannel
-SFX_08_32_Ch3: ; 210c1 (8:50c1)
+SFX_Cry1E_2_Ch3: ; 210c1 (8:50c1)
unknownnoise0x20 6, 8, 1
unknownnoise0x20 5, 226, 92
unknownnoise0x20 5, 194, 76
@@ -36,4 +36,3 @@ SFX_08_32_Ch3: ; 210c1 (8:50c1)
unknownnoise0x20 5, 146, 26
unknownnoise0x20 8, 129, 24
endchannel
-; 0x210dd
diff --git a/audio/sfx/sfx_1f_32.asm b/audio/sfx/cry1e_3.asm
index 4e11a38e..1c50d4b8 100755..100644
--- a/audio/sfx/sfx_1f_32.asm
+++ b/audio/sfx/cry1e_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_32_Ch1: ; 7ce44 (1f:4e44)
+SFX_Cry1E_3_Ch1: ; 7ce44 (1f:4e44)
dutycycle 240
unknownsfx0x20 6, 242, 0, 6
unknownsfx0x20 6, 226, 64, 6
@@ -11,7 +11,7 @@ SFX_1f_32_Ch1: ; 7ce44 (1f:4e44)
endchannel
-SFX_1f_32_Ch2: ; 7ce67 (1f:4e67)
+SFX_Cry1E_3_Ch2: ; 7ce67 (1f:4e67)
dutycycle 17
unknownsfx0x20 3, 8, 1, 0
unknownsfx0x20 6, 194, 193, 5
@@ -25,7 +25,7 @@ SFX_1f_32_Ch2: ; 7ce67 (1f:4e67)
endchannel
-SFX_1f_32_Ch3: ; 7ce8e (1f:4e8e)
+SFX_Cry1E_3_Ch3: ; 7ce8e (1f:4e8e)
unknownnoise0x20 6, 8, 1
unknownnoise0x20 5, 226, 92
unknownnoise0x20 5, 194, 76
@@ -36,4 +36,3 @@ SFX_1f_32_Ch3: ; 7ce8e (1f:4e8e)
unknownnoise0x20 5, 146, 26
unknownnoise0x20 8, 129, 24
endchannel
-; 0x7ceaa
diff --git a/audio/sfx/sfx_02_33.asm b/audio/sfx/cry1f_1.asm
index f13e35f7..52be80df 100755..100644
--- a/audio/sfx/sfx_02_33.asm
+++ b/audio/sfx/cry1f_1.asm
@@ -1,4 +1,4 @@
-SFX_02_33_Ch1: ; 8fe7 (2:4fe7)
+SFX_Cry1F_1_Ch1: ; 8fe7 (2:4fe7)
dutycycle 165
unknownsfx0x20 3, 244, 65, 6
unknownsfx0x20 13, 214, 33, 7
@@ -7,7 +7,7 @@ SFX_02_33_Ch1: ; 8fe7 (2:4fe7)
endchannel
-SFX_02_33_Ch2: ; 8ffa (2:4ffa)
+SFX_Cry1F_1_Ch2: ; 8ffa (2:4ffa)
dutycycle 204
unknownsfx0x20 4, 244, 128, 5
unknownsfx0x20 14, 230, 224, 6
@@ -16,10 +16,9 @@ SFX_02_33_Ch2: ; 8ffa (2:4ffa)
endchannel
-SFX_02_33_Ch3: ; 900d (2:500d)
+SFX_Cry1F_1_Ch3: ; 900d (2:500d)
unknownnoise0x20 5, 196, 70
unknownnoise0x20 13, 165, 68
unknownnoise0x20 8, 196, 69
unknownnoise0x20 8, 177, 68
endchannel
-; 0x901a
diff --git a/audio/sfx/sfx_08_33.asm b/audio/sfx/cry1f_2.asm
index 21c1fd1e..da7df61a 100755..100644
--- a/audio/sfx/sfx_08_33.asm
+++ b/audio/sfx/cry1f_2.asm
@@ -1,4 +1,4 @@
-SFX_08_33_Ch1: ; 2128f (8:528f)
+SFX_Cry1F_2_Ch1: ; 2128f (8:528f)
dutycycle 165
unknownsfx0x20 3, 244, 65, 6
unknownsfx0x20 13, 214, 33, 7
@@ -7,7 +7,7 @@ SFX_08_33_Ch1: ; 2128f (8:528f)
endchannel
-SFX_08_33_Ch2: ; 212a2 (8:52a2)
+SFX_Cry1F_2_Ch2: ; 212a2 (8:52a2)
dutycycle 204
unknownsfx0x20 4, 244, 128, 5
unknownsfx0x20 14, 230, 224, 6
@@ -16,10 +16,9 @@ SFX_08_33_Ch2: ; 212a2 (8:52a2)
endchannel
-SFX_08_33_Ch3: ; 212b5 (8:52b5)
+SFX_Cry1F_2_Ch3: ; 212b5 (8:52b5)
unknownnoise0x20 5, 196, 70
unknownnoise0x20 13, 165, 68
unknownnoise0x20 8, 196, 69
unknownnoise0x20 8, 177, 68
endchannel
-; 0x212c2
diff --git a/audio/sfx/sfx_1f_33.asm b/audio/sfx/cry1f_3.asm
index b273d6ac..2f6c1eda 100755..100644
--- a/audio/sfx/sfx_1f_33.asm
+++ b/audio/sfx/cry1f_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_33_Ch1: ; 7d05c (1f:505c)
+SFX_Cry1F_3_Ch1: ; 7d05c (1f:505c)
dutycycle 165
unknownsfx0x20 3, 244, 65, 6
unknownsfx0x20 13, 214, 33, 7
@@ -7,7 +7,7 @@ SFX_1f_33_Ch1: ; 7d05c (1f:505c)
endchannel
-SFX_1f_33_Ch2: ; 7d06f (1f:506f)
+SFX_Cry1F_3_Ch2: ; 7d06f (1f:506f)
dutycycle 204
unknownsfx0x20 4, 244, 128, 5
unknownsfx0x20 14, 230, 224, 6
@@ -16,10 +16,9 @@ SFX_1f_33_Ch2: ; 7d06f (1f:506f)
endchannel
-SFX_1f_33_Ch3: ; 7d082 (1f:5082)
+SFX_Cry1F_3_Ch3: ; 7d082 (1f:5082)
unknownnoise0x20 5, 196, 70
unknownnoise0x20 13, 165, 68
unknownnoise0x20 8, 196, 69
unknownnoise0x20 8, 177, 68
endchannel
-; 0x7d08f
diff --git a/audio/sfx/sfx_02_34.asm b/audio/sfx/cry20_1.asm
index 786ffbd4..d6586bdd 100755..100644
--- a/audio/sfx/sfx_02_34.asm
+++ b/audio/sfx/cry20_1.asm
@@ -1,4 +1,4 @@
-SFX_02_34_Ch1: ; 901a (2:501a)
+SFX_Cry20_1_Ch1: ; 901a (2:501a)
dutycycle 240
unknownsfx0x20 13, 241, 17, 5
unknownsfx0x20 13, 225, 21, 5
@@ -7,7 +7,7 @@ SFX_02_34_Ch1: ; 901a (2:501a)
endchannel
-SFX_02_34_Ch2: ; 902d (2:502d)
+SFX_Cry20_1_Ch2: ; 902d (2:502d)
dutycycle 21
unknownsfx0x20 12, 225, 12, 5
unknownsfx0x20 12, 209, 16, 5
@@ -16,10 +16,9 @@ SFX_02_34_Ch2: ; 902d (2:502d)
endchannel
-SFX_02_34_Ch3: ; 9040 (2:5040)
+SFX_Cry20_1_Ch3: ; 9040 (2:5040)
unknownnoise0x20 14, 242, 101
unknownnoise0x20 13, 226, 85
unknownnoise0x20 14, 210, 86
unknownnoise0x20 8, 209, 102
endchannel
-; 0x904d
diff --git a/audio/sfx/sfx_08_34.asm b/audio/sfx/cry20_2.asm
index 4c892016..b345eba5 100755..100644
--- a/audio/sfx/sfx_08_34.asm
+++ b/audio/sfx/cry20_2.asm
@@ -1,4 +1,4 @@
-SFX_08_34_Ch1: ; 212c2 (8:52c2)
+SFX_Cry20_2_Ch1: ; 212c2 (8:52c2)
dutycycle 240
unknownsfx0x20 13, 241, 17, 5
unknownsfx0x20 13, 225, 21, 5
@@ -7,7 +7,7 @@ SFX_08_34_Ch1: ; 212c2 (8:52c2)
endchannel
-SFX_08_34_Ch2: ; 212d5 (8:52d5)
+SFX_Cry20_2_Ch2: ; 212d5 (8:52d5)
dutycycle 21
unknownsfx0x20 12, 225, 12, 5
unknownsfx0x20 12, 209, 16, 5
@@ -16,10 +16,9 @@ SFX_08_34_Ch2: ; 212d5 (8:52d5)
endchannel
-SFX_08_34_Ch3: ; 212e8 (8:52e8)
+SFX_Cry20_2_Ch3: ; 212e8 (8:52e8)
unknownnoise0x20 14, 242, 101
unknownnoise0x20 13, 226, 85
unknownnoise0x20 14, 210, 86
unknownnoise0x20 8, 209, 102
endchannel
-; 0x212f5
diff --git a/audio/sfx/sfx_1f_34.asm b/audio/sfx/cry20_3.asm
index 18588747..5bcdf3df 100755..100644
--- a/audio/sfx/sfx_1f_34.asm
+++ b/audio/sfx/cry20_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_34_Ch1: ; 7d08f (1f:508f)
+SFX_Cry20_3_Ch1: ; 7d08f (1f:508f)
dutycycle 240
unknownsfx0x20 13, 241, 17, 5
unknownsfx0x20 13, 225, 21, 5
@@ -7,7 +7,7 @@ SFX_1f_34_Ch1: ; 7d08f (1f:508f)
endchannel
-SFX_1f_34_Ch2: ; 7d0a2 (1f:50a2)
+SFX_Cry20_3_Ch2: ; 7d0a2 (1f:50a2)
dutycycle 21
unknownsfx0x20 12, 225, 12, 5
unknownsfx0x20 12, 209, 16, 5
@@ -16,10 +16,9 @@ SFX_1f_34_Ch2: ; 7d0a2 (1f:50a2)
endchannel
-SFX_1f_34_Ch3: ; 7d0b5 (1f:50b5)
+SFX_Cry20_3_Ch3: ; 7d0b5 (1f:50b5)
unknownnoise0x20 14, 242, 101
unknownnoise0x20 13, 226, 85
unknownnoise0x20 14, 210, 86
unknownnoise0x20 8, 209, 102
endchannel
-; 0x7d0c2
diff --git a/audio/sfx/sfx_02_35.asm b/audio/sfx/cry21_1.asm
index 005ea485..9b81e2a3 100755..100644
--- a/audio/sfx/sfx_02_35.asm
+++ b/audio/sfx/cry21_1.asm
@@ -1,4 +1,4 @@
-SFX_02_35_Ch1: ; 904d (2:504d)
+SFX_Cry21_1_Ch1: ; 904d (2:504d)
dutycycle 27
unknownsfx0x20 3, 243, 100, 5
unknownsfx0x20 2, 226, 68, 5
@@ -11,7 +11,7 @@ SFX_02_35_Ch1: ; 904d (2:504d)
endchannel
-SFX_02_35_Ch2: ; 9070 (2:5070)
+SFX_Cry21_1_Ch2: ; 9070 (2:5070)
dutycycle 204
unknownsfx0x20 3, 211, 96, 5
unknownsfx0x20 2, 194, 64, 5
@@ -23,6 +23,5 @@ SFX_02_35_Ch2: ; 9070 (2:5070)
unknownsfx0x20 8, 193, 0, 5
-SFX_02_35_Ch3: ; 9092 (2:5092)
+SFX_Cry21_1_Ch3: ; 9092 (2:5092)
endchannel
-; 0x9093
diff --git a/audio/sfx/sfx_08_35.asm b/audio/sfx/cry21_2.asm
index 463f3597..f5571642 100755..100644
--- a/audio/sfx/sfx_08_35.asm
+++ b/audio/sfx/cry21_2.asm
@@ -1,4 +1,4 @@
-SFX_08_35_Ch1: ; 212f5 (8:52f5)
+SFX_Cry21_2_Ch1: ; 212f5 (8:52f5)
dutycycle 27
unknownsfx0x20 3, 243, 100, 5
unknownsfx0x20 2, 226, 68, 5
@@ -11,7 +11,7 @@ SFX_08_35_Ch1: ; 212f5 (8:52f5)
endchannel
-SFX_08_35_Ch2: ; 21318 (8:5318)
+SFX_Cry21_2_Ch2: ; 21318 (8:5318)
dutycycle 204
unknownsfx0x20 3, 211, 96, 5
unknownsfx0x20 2, 194, 64, 5
@@ -23,6 +23,5 @@ SFX_08_35_Ch2: ; 21318 (8:5318)
unknownsfx0x20 8, 193, 0, 5
-SFX_08_35_Ch3: ; 2133a (8:533a)
+SFX_Cry21_2_Ch3: ; 2133a (8:533a)
endchannel
-; 0x2133b
diff --git a/audio/sfx/sfx_1f_35.asm b/audio/sfx/cry21_3.asm
index 565dd1f2..d91177b8 100755..100644
--- a/audio/sfx/sfx_1f_35.asm
+++ b/audio/sfx/cry21_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_35_Ch1: ; 7d0c2 (1f:50c2)
+SFX_Cry21_3_Ch1: ; 7d0c2 (1f:50c2)
dutycycle 27
unknownsfx0x20 3, 243, 100, 5
unknownsfx0x20 2, 226, 68, 5
@@ -11,7 +11,7 @@ SFX_1f_35_Ch1: ; 7d0c2 (1f:50c2)
endchannel
-SFX_1f_35_Ch2: ; 7d0e5 (1f:50e5)
+SFX_Cry21_3_Ch2: ; 7d0e5 (1f:50e5)
dutycycle 204
unknownsfx0x20 3, 211, 96, 5
unknownsfx0x20 2, 194, 64, 5
@@ -23,6 +23,5 @@ SFX_1f_35_Ch2: ; 7d0e5 (1f:50e5)
unknownsfx0x20 8, 193, 0, 5
-SFX_1f_35_Ch3: ; 7d107 (1f:5107)
+SFX_Cry21_3_Ch3: ; 7d107 (1f:5107)
endchannel
-; 0x7d108
diff --git a/audio/sfx/sfx_02_36.asm b/audio/sfx/cry22_1.asm
index 369f6a4b..90961298 100755..100644
--- a/audio/sfx/sfx_02_36.asm
+++ b/audio/sfx/cry22_1.asm
@@ -1,4 +1,4 @@
-SFX_02_36_Ch1: ; 9093 (2:5093)
+SFX_Cry22_1_Ch1: ; 9093 (2:5093)
dutycycle 17
unknownsfx0x20 2, 61, 129, 3
unknownsfx0x20 7, 245, 1, 6
@@ -7,7 +7,7 @@ SFX_02_36_Ch1: ; 9093 (2:5093)
endchannel
-SFX_02_36_Ch2: ; 90a6 (2:50a6)
+SFX_Cry22_1_Ch2: ; 90a6 (2:50a6)
dutycycle 238
unknownsfx0x20 2, 62, 176, 5
unknownsfx0x20 7, 213, 93, 7
@@ -16,10 +16,9 @@ SFX_02_36_Ch2: ; 90a6 (2:50a6)
endchannel
-SFX_02_36_Ch3: ; 90b9 (2:50b9)
+SFX_Cry22_1_Ch3: ; 90b9 (2:50b9)
unknownnoise0x20 2, 146, 73
unknownnoise0x20 7, 181, 41
unknownnoise0x20 1, 162, 57
unknownnoise0x20 8, 145, 73
endchannel
-; 0x90c6
diff --git a/audio/sfx/sfx_08_36.asm b/audio/sfx/cry22_2.asm
index 843fa8e5..861c3bfb 100755..100644
--- a/audio/sfx/sfx_08_36.asm
+++ b/audio/sfx/cry22_2.asm
@@ -1,4 +1,4 @@
-SFX_08_36_Ch1: ; 2133b (8:533b)
+SFX_Cry22_2_Ch1: ; 2133b (8:533b)
dutycycle 17
unknownsfx0x20 2, 61, 129, 3
unknownsfx0x20 7, 245, 1, 6
@@ -7,7 +7,7 @@ SFX_08_36_Ch1: ; 2133b (8:533b)
endchannel
-SFX_08_36_Ch2: ; 2134e (8:534e)
+SFX_Cry22_2_Ch2: ; 2134e (8:534e)
dutycycle 238
unknownsfx0x20 2, 62, 176, 5
unknownsfx0x20 7, 213, 93, 7
@@ -16,10 +16,9 @@ SFX_08_36_Ch2: ; 2134e (8:534e)
endchannel
-SFX_08_36_Ch3: ; 21361 (8:5361)
+SFX_Cry22_2_Ch3: ; 21361 (8:5361)
unknownnoise0x20 2, 146, 73
unknownnoise0x20 7, 181, 41
unknownnoise0x20 1, 162, 57
unknownnoise0x20 8, 145, 73
endchannel
-; 0x2136e
diff --git a/audio/sfx/sfx_1f_36.asm b/audio/sfx/cry22_3.asm
index 2bb9dc28..42b3039c 100755..100644
--- a/audio/sfx/sfx_1f_36.asm
+++ b/audio/sfx/cry22_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_36_Ch1: ; 7d108 (1f:5108)
+SFX_Cry22_3_Ch1: ; 7d108 (1f:5108)
dutycycle 17
unknownsfx0x20 2, 61, 129, 3
unknownsfx0x20 7, 245, 1, 6
@@ -7,7 +7,7 @@ SFX_1f_36_Ch1: ; 7d108 (1f:5108)
endchannel
-SFX_1f_36_Ch2: ; 7d11b (1f:511b)
+SFX_Cry22_3_Ch2: ; 7d11b (1f:511b)
dutycycle 238
unknownsfx0x20 2, 62, 176, 5
unknownsfx0x20 7, 213, 93, 7
@@ -16,10 +16,9 @@ SFX_1f_36_Ch2: ; 7d11b (1f:511b)
endchannel
-SFX_1f_36_Ch3: ; 7d12e (1f:512e)
+SFX_Cry22_3_Ch3: ; 7d12e (1f:512e)
unknownnoise0x20 2, 146, 73
unknownnoise0x20 7, 181, 41
unknownnoise0x20 1, 162, 57
unknownnoise0x20 8, 145, 73
endchannel
-; 0x7d13b
diff --git a/audio/sfx/sfx_02_37.asm b/audio/sfx/cry23_1.asm
index cc093dcd..02868042 100755..100644
--- a/audio/sfx/sfx_02_37.asm
+++ b/audio/sfx/cry23_1.asm
@@ -1,4 +1,4 @@
-SFX_02_37_Ch1: ; 8786 (2:4786)
+SFX_Cry23_1_Ch1: ; 8786 (2:4786)
dutycycle 240
unknownsfx0x20 15, 247, 192, 7
unknownsfx0x20 6, 228, 193, 7
@@ -8,7 +8,7 @@ SFX_02_37_Ch1: ; 8786 (2:4786)
endchannel
-SFX_02_37_Ch2: ; 879d (2:479d)
+SFX_Cry23_1_Ch2: ; 879d (2:479d)
dutycycle 95
unknownsfx0x20 15, 151, 129, 7
unknownsfx0x20 6, 132, 128, 7
@@ -17,10 +17,9 @@ SFX_02_37_Ch2: ; 879d (2:479d)
endchannel
-SFX_02_37_Ch3: ; 87b0 (2:47b0)
+SFX_Cry23_1_Ch3: ; 87b0 (2:47b0)
unknownnoise0x20 3, 242, 60
unknownnoise0x20 13, 230, 44
unknownnoise0x20 15, 215, 60
unknownnoise0x20 8, 193, 44
endchannel
-; 0x87bd
diff --git a/audio/sfx/sfx_08_37.asm b/audio/sfx/cry23_2.asm
index 32a44e59..089a233c 100755..100644
--- a/audio/sfx/sfx_08_37.asm
+++ b/audio/sfx/cry23_2.asm
@@ -1,4 +1,4 @@
-SFX_08_37_Ch1: ; 20a2e (8:4a2e)
+SFX_Cry23_2_Ch1: ; 20a2e (8:4a2e)
dutycycle 240
unknownsfx0x20 15, 247, 192, 7
unknownsfx0x20 6, 228, 193, 7
@@ -8,7 +8,7 @@ SFX_08_37_Ch1: ; 20a2e (8:4a2e)
endchannel
-SFX_08_37_Ch2: ; 20a45 (8:4a45)
+SFX_Cry23_2_Ch2: ; 20a45 (8:4a45)
dutycycle 95
unknownsfx0x20 15, 151, 129, 7
unknownsfx0x20 6, 132, 128, 7
@@ -17,10 +17,9 @@ SFX_08_37_Ch2: ; 20a45 (8:4a45)
endchannel
-SFX_08_37_Ch3: ; 20a58 (8:4a58)
+SFX_Cry23_2_Ch3: ; 20a58 (8:4a58)
unknownnoise0x20 3, 242, 60
unknownnoise0x20 13, 230, 44
unknownnoise0x20 15, 215, 60
unknownnoise0x20 8, 193, 44
endchannel
-; 0x20a65
diff --git a/audio/sfx/sfx_1f_37.asm b/audio/sfx/cry23_3.asm
index 6dd98fb8..31ba3743 100755..100644
--- a/audio/sfx/sfx_1f_37.asm
+++ b/audio/sfx/cry23_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_37_Ch1: ; 7c7fb (1f:47fb)
+SFX_Cry23_3_Ch1: ; 7c7fb (1f:47fb)
dutycycle 240
unknownsfx0x20 15, 247, 192, 7
unknownsfx0x20 6, 228, 193, 7
@@ -8,7 +8,7 @@ SFX_1f_37_Ch1: ; 7c7fb (1f:47fb)
endchannel
-SFX_1f_37_Ch2: ; 7c812 (1f:4812)
+SFX_Cry23_3_Ch2: ; 7c812 (1f:4812)
dutycycle 95
unknownsfx0x20 15, 151, 129, 7
unknownsfx0x20 6, 132, 128, 7
@@ -17,10 +17,9 @@ SFX_1f_37_Ch2: ; 7c812 (1f:4812)
endchannel
-SFX_1f_37_Ch3: ; 7c825 (1f:4825)
+SFX_Cry23_3_Ch3: ; 7c825 (1f:4825)
unknownnoise0x20 3, 242, 60
unknownnoise0x20 13, 230, 44
unknownnoise0x20 15, 215, 60
unknownnoise0x20 8, 193, 44
endchannel
-; 0x7c832
diff --git a/audio/sfx/sfx_02_38.asm b/audio/sfx/cry24_1.asm
index 5511cfb1..061ed65a 100755..100644
--- a/audio/sfx/sfx_02_38.asm
+++ b/audio/sfx/cry24_1.asm
@@ -1,4 +1,4 @@
-SFX_02_38_Ch1: ; 87bd (2:47bd)
+SFX_Cry24_1_Ch1: ; 87bd (2:47bd)
dutycycle 240
unknownsfx0x20 15, 247, 128, 6
unknownsfx0x20 10, 230, 132, 6
@@ -11,7 +11,7 @@ SFX_02_38_Ch1: ; 87bd (2:47bd)
endchannel
-SFX_02_38_Ch2: ; 87e0 (2:47e0)
+SFX_Cry24_1_Ch2: ; 87e0 (2:47e0)
dutycycle 5
unknownsfx0x20 15, 183, 65, 6
unknownsfx0x20 10, 150, 66, 6
@@ -24,11 +24,10 @@ SFX_02_38_Ch2: ; 87e0 (2:47e0)
endchannel
-SFX_02_38_Ch3: ; 8803 (2:4803)
+SFX_Cry24_1_Ch3: ; 8803 (2:4803)
unknownnoise0x20 15, 228, 60
unknownnoise0x20 10, 199, 76
unknownnoise0x20 10, 199, 60
unknownnoise0x20 12, 183, 76
unknownnoise0x20 15, 162, 92
endchannel
-; 0x8813
diff --git a/audio/sfx/sfx_08_38.asm b/audio/sfx/cry24_2.asm
index 7db5b654..52986829 100755..100644
--- a/audio/sfx/sfx_08_38.asm
+++ b/audio/sfx/cry24_2.asm
@@ -1,4 +1,4 @@
-SFX_08_38_Ch1: ; 20a65 (8:4a65)
+SFX_Cry24_2_Ch1: ; 20a65 (8:4a65)
dutycycle 240
unknownsfx0x20 15, 247, 128, 6
unknownsfx0x20 10, 230, 132, 6
@@ -11,7 +11,7 @@ SFX_08_38_Ch1: ; 20a65 (8:4a65)
endchannel
-SFX_08_38_Ch2: ; 20a88 (8:4a88)
+SFX_Cry24_2_Ch2: ; 20a88 (8:4a88)
dutycycle 5
unknownsfx0x20 15, 183, 65, 6
unknownsfx0x20 10, 150, 66, 6
@@ -24,11 +24,10 @@ SFX_08_38_Ch2: ; 20a88 (8:4a88)
endchannel
-SFX_08_38_Ch3: ; 20aab (8:4aab)
+SFX_Cry24_2_Ch3: ; 20aab (8:4aab)
unknownnoise0x20 15, 228, 60
unknownnoise0x20 10, 199, 76
unknownnoise0x20 10, 199, 60
unknownnoise0x20 12, 183, 76
unknownnoise0x20 15, 162, 92
endchannel
-; 0x20abb
diff --git a/audio/sfx/sfx_1f_38.asm b/audio/sfx/cry24_3.asm
index 02c65baa..8c9cfc81 100755..100644
--- a/audio/sfx/sfx_1f_38.asm
+++ b/audio/sfx/cry24_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_38_Ch1: ; 7c832 (1f:4832)
+SFX_Cry24_3_Ch1: ; 7c832 (1f:4832)
dutycycle 240
unknownsfx0x20 15, 247, 128, 6
unknownsfx0x20 10, 230, 132, 6
@@ -11,7 +11,7 @@ SFX_1f_38_Ch1: ; 7c832 (1f:4832)
endchannel
-SFX_1f_38_Ch2: ; 7c855 (1f:4855)
+SFX_Cry24_3_Ch2: ; 7c855 (1f:4855)
dutycycle 5
unknownsfx0x20 15, 183, 65, 6
unknownsfx0x20 10, 150, 66, 6
@@ -24,11 +24,10 @@ SFX_1f_38_Ch2: ; 7c855 (1f:4855)
endchannel
-SFX_1f_38_Ch3: ; 7c878 (1f:4878)
+SFX_Cry24_3_Ch3: ; 7c878 (1f:4878)
unknownnoise0x20 15, 228, 60
unknownnoise0x20 10, 199, 76
unknownnoise0x20 10, 199, 60
unknownnoise0x20 12, 183, 76
unknownnoise0x20 15, 162, 92
endchannel
-; 0x7c888
diff --git a/audio/sfx/sfx_02_39.asm b/audio/sfx/cry25_1.asm
index 079059ec..ce238db2 100755..100644
--- a/audio/sfx/sfx_02_39.asm
+++ b/audio/sfx/cry25_1.asm
@@ -1,4 +1,4 @@
-SFX_02_39_Ch1: ; 886b (2:486b)
+SFX_Cry25_1_Ch1: ; 886b (2:486b)
dutycycle 165
unknownsfx0x20 6, 244, 64, 7
unknownsfx0x20 15, 227, 48, 7
@@ -8,7 +8,7 @@ SFX_02_39_Ch1: ; 886b (2:486b)
endchannel
-SFX_02_39_Ch2: ; 8882 (2:4882)
+SFX_Cry25_1_Ch2: ; 8882 (2:4882)
dutycycle 119
unknownsfx0x20 6, 195, 18, 7
unknownsfx0x20 15, 179, 4, 7
@@ -18,10 +18,9 @@ SFX_02_39_Ch2: ; 8882 (2:4882)
endchannel
-SFX_02_39_Ch3: ; 8899 (2:4899)
+SFX_Cry25_1_Ch3: ; 8899 (2:4899)
unknownnoise0x20 8, 214, 44
unknownnoise0x20 12, 198, 60
unknownnoise0x20 10, 182, 44
unknownnoise0x20 8, 145, 28
endchannel
-; 0x88a6
diff --git a/audio/sfx/sfx_08_39.asm b/audio/sfx/cry25_2.asm
index 1b9b0dae..b00210a9 100755..100644
--- a/audio/sfx/sfx_08_39.asm
+++ b/audio/sfx/cry25_2.asm
@@ -1,4 +1,4 @@
-SFX_08_39_Ch1: ; 20b13 (8:4b13)
+SFX_Cry25_2_Ch1: ; 20b13 (8:4b13)
dutycycle 165
unknownsfx0x20 6, 244, 64, 7
unknownsfx0x20 15, 227, 48, 7
@@ -8,7 +8,7 @@ SFX_08_39_Ch1: ; 20b13 (8:4b13)
endchannel
-SFX_08_39_Ch2: ; 20b2a (8:4b2a)
+SFX_Cry25_2_Ch2: ; 20b2a (8:4b2a)
dutycycle 119
unknownsfx0x20 6, 195, 18, 7
unknownsfx0x20 15, 179, 4, 7
@@ -18,10 +18,9 @@ SFX_08_39_Ch2: ; 20b2a (8:4b2a)
endchannel
-SFX_08_39_Ch3: ; 20b41 (8:4b41)
+SFX_Cry25_2_Ch3: ; 20b41 (8:4b41)
unknownnoise0x20 8, 214, 44
unknownnoise0x20 12, 198, 60
unknownnoise0x20 10, 182, 44
unknownnoise0x20 8, 145, 28
endchannel
-; 0x20b4e
diff --git a/audio/sfx/sfx_1f_39.asm b/audio/sfx/cry25_3.asm
index 7b9d5121..7c93b0e6 100755..100644
--- a/audio/sfx/sfx_1f_39.asm
+++ b/audio/sfx/cry25_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_39_Ch1: ; 7c8e0 (1f:48e0)
+SFX_Cry25_3_Ch1: ; 7c8e0 (1f:48e0)
dutycycle 165
unknownsfx0x20 6, 244, 64, 7
unknownsfx0x20 15, 227, 48, 7
@@ -8,7 +8,7 @@ SFX_1f_39_Ch1: ; 7c8e0 (1f:48e0)
endchannel
-SFX_1f_39_Ch2: ; 7c8f7 (1f:48f7)
+SFX_Cry25_3_Ch2: ; 7c8f7 (1f:48f7)
dutycycle 119
unknownsfx0x20 6, 195, 18, 7
unknownsfx0x20 15, 179, 4, 7
@@ -18,10 +18,9 @@ SFX_1f_39_Ch2: ; 7c8f7 (1f:48f7)
endchannel
-SFX_1f_39_Ch3: ; 7c90e (1f:490e)
+SFX_Cry25_3_Ch3: ; 7c90e (1f:490e)
unknownnoise0x20 8, 214, 44
unknownnoise0x20 12, 198, 60
unknownnoise0x20 10, 182, 44
unknownnoise0x20 8, 145, 28
endchannel
-; 0x7c91b
diff --git a/audio/sfx/sfx_02_56.asm b/audio/sfx/cut_1.asm
index ee6636e1..c1b763e0 100755..100644
--- a/audio/sfx/sfx_02_56.asm
+++ b/audio/sfx/cut_1.asm
@@ -1,8 +1,7 @@
-SFX_02_56_Ch1: ; 83e1 (2:43e1)
+SFX_Cut_1_Ch1: ; 83e1 (2:43e1)
unknownnoise0x20 2, 247, 36
unknownnoise0x20 2, 247, 52
unknownnoise0x20 4, 247, 68
unknownnoise0x20 8, 244, 85
unknownnoise0x20 8, 241, 68
endchannel
-; 0x83f1
diff --git a/audio/sfx/sfx_1f_56.asm b/audio/sfx/cut_3.asm
index 941c4b0c..4ad5551d 100755..100644
--- a/audio/sfx/sfx_1f_56.asm
+++ b/audio/sfx/cut_3.asm
@@ -1,8 +1,7 @@
-SFX_1f_56_Ch1: ; 7c3ca (1f:43ca)
+SFX_Cut_3_Ch1: ; 7c3ca (1f:43ca)
unknownnoise0x20 2, 247, 36
unknownnoise0x20 2, 247, 52
unknownnoise0x20 4, 247, 68
unknownnoise0x20 8, 244, 85
unknownnoise0x20 8, 241, 68
endchannel
-; 0x7c3da
diff --git a/audio/sfx/sfx_02_0c.asm b/audio/sfx/cymbal1_1.asm
index 57d20bc6..d001b750 100755..100644
--- a/audio/sfx/sfx_02_0c.asm
+++ b/audio/sfx/cymbal1_1.asm
@@ -1,4 +1,3 @@
-SFX_02_0c_Ch1: ; 833b (2:433b)
+SFX_Cymbal1_1_Ch1: ; 833b (2:433b)
unknownnoise0x20 0, 161, 16
endchannel
-; 0x833f
diff --git a/audio/sfx/cymbal1_2.asm b/audio/sfx/cymbal1_2.asm
new file mode 100644
index 00000000..8987d85f
--- /dev/null
+++ b/audio/sfx/cymbal1_2.asm
@@ -0,0 +1,3 @@
+SFX_Cymbal1_2_Ch1: ; 2033b (8:433b)
+ unknownnoise0x20 0, 161, 16
+ endchannel
diff --git a/audio/sfx/cymbal1_3.asm b/audio/sfx/cymbal1_3.asm
new file mode 100644
index 00000000..597a8b61
--- /dev/null
+++ b/audio/sfx/cymbal1_3.asm
@@ -0,0 +1,3 @@
+SFX_Cymbal1_3_Ch1: ; 7c33b (1f:433b)
+ unknownnoise0x20 0, 161, 16
+ endchannel
diff --git a/audio/sfx/sfx_02_0d.asm b/audio/sfx/cymbal2_1.asm
index f143024f..3f50299a 100755..100644
--- a/audio/sfx/sfx_02_0d.asm
+++ b/audio/sfx/cymbal2_1.asm
@@ -1,4 +1,3 @@
-SFX_02_0d_Ch1: ; 833f (2:433f)
+SFX_Cymbal2_1_Ch1: ; 833f (2:433f)
unknownnoise0x20 0, 162, 17
endchannel
-; 0x8343
diff --git a/audio/sfx/cymbal2_2.asm b/audio/sfx/cymbal2_2.asm
new file mode 100644
index 00000000..5224a20d
--- /dev/null
+++ b/audio/sfx/cymbal2_2.asm
@@ -0,0 +1,3 @@
+SFX_Cymbal2_2_Ch1: ; 2033f (8:433f)
+ unknownnoise0x20 0, 162, 17
+ endchannel
diff --git a/audio/sfx/cymbal2_3.asm b/audio/sfx/cymbal2_3.asm
new file mode 100644
index 00000000..dd3a4fc9
--- /dev/null
+++ b/audio/sfx/cymbal2_3.asm
@@ -0,0 +1,3 @@
+SFX_Cymbal2_3_Ch1: ; 7c33f (1f:433f)
+ unknownnoise0x20 0, 162, 17
+ endchannel
diff --git a/audio/sfx/sfx_02_0e.asm b/audio/sfx/cymbal3_1.asm
index 9ba580ae..8aa5ebe5 100755..100644
--- a/audio/sfx/sfx_02_0e.asm
+++ b/audio/sfx/cymbal3_1.asm
@@ -1,4 +1,3 @@
-SFX_02_0e_Ch1: ; 8343 (2:4343)
+SFX_Cymbal3_1_Ch1: ; 8343 (2:4343)
unknownnoise0x20 0, 162, 80
endchannel
-; 0x8347
diff --git a/audio/sfx/cymbal3_2.asm b/audio/sfx/cymbal3_2.asm
new file mode 100644
index 00000000..d1fd3b90
--- /dev/null
+++ b/audio/sfx/cymbal3_2.asm
@@ -0,0 +1,3 @@
+SFX_Cymbal3_2_Ch1: ; 20343 (8:4343)
+ unknownnoise0x20 0, 162, 80
+ endchannel
diff --git a/audio/sfx/cymbal3_3.asm b/audio/sfx/cymbal3_3.asm
new file mode 100644
index 00000000..45e41c15
--- /dev/null
+++ b/audio/sfx/cymbal3_3.asm
@@ -0,0 +1,3 @@
+SFX_Cymbal3_3_Ch1: ; 7c343 (1f:4343)
+ unknownnoise0x20 0, 162, 80
+ endchannel
diff --git a/audio/sfx/sfx_08_50.asm b/audio/sfx/damage.asm
index 23b6d22c..4022fcbf 100755..100644
--- a/audio/sfx/sfx_08_50.asm
+++ b/audio/sfx/damage.asm
@@ -1,6 +1,5 @@
-SFX_08_50_Ch1: ; 204f4 (8:44f4)
+SFX_Damage_Ch1: ; 204f4 (8:44f4)
unknownnoise0x20 2, 244, 68
unknownnoise0x20 2, 244, 20
unknownnoise0x20 15, 241, 50
endchannel
-; 0x204fe
diff --git a/audio/sfx/sfx_02_51.asm b/audio/sfx/denied_1.asm
index 1c039e7c..46520151 100755..100644
--- a/audio/sfx/sfx_02_51.asm
+++ b/audio/sfx/denied_1.asm
@@ -1,4 +1,4 @@
-SFX_02_51_Ch1: ; 861f (2:461f)
+SFX_Denied_1_Ch1: ; 861f (2:461f)
duty 3
unknownsfx0x10 90
unknownsfx0x20 4, 240, 0, 5
@@ -9,11 +9,10 @@ SFX_02_51_Ch1: ; 861f (2:461f)
endchannel
-SFX_02_51_Ch2: ; 8636 (2:4636)
+SFX_Denied_1_Ch2: ; 8636 (2:4636)
duty 3
unknownsfx0x20 4, 240, 1, 4
unknownsfx0x20 4, 0, 0, 0
unknownsfx0x20 15, 240, 1, 4
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x8649
diff --git a/audio/sfx/sfx_1f_51.asm b/audio/sfx/denied_3.asm
index 83501af4..2cebd766 100755..100644
--- a/audio/sfx/sfx_1f_51.asm
+++ b/audio/sfx/denied_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_51_Ch1: ; 7c5fc (1f:45fc)
+SFX_Denied_3_Ch1: ; 7c5fc (1f:45fc)
duty 3
unknownsfx0x10 90
unknownsfx0x20 4, 240, 0, 5
@@ -9,11 +9,10 @@ SFX_1f_51_Ch1: ; 7c5fc (1f:45fc)
endchannel
-SFX_1f_51_Ch2: ; 7c613 (1f:4613)
+SFX_Denied_3_Ch2: ; 7c613 (1f:4613)
duty 3
unknownsfx0x20 4, 240, 1, 4
unknownsfx0x20 4, 0, 0, 0
unknownsfx0x20 15, 240, 1, 4
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x7c626
diff --git a/audio/sfx/sfx_08_45.asm b/audio/sfx/dex_page_added.asm
index 77a1065f..dac55ed9 100755..100644
--- a/audio/sfx/sfx_08_45.asm
+++ b/audio/sfx/dex_page_added.asm
@@ -1,4 +1,4 @@
-SFX_08_45_Ch1: ; 2047f (8:447f)
+SFX_Dex_Page_Added_Ch1: ; 2047f (8:447f)
duty 2
unknownsfx0x10 68
unknownsfx0x20 15, 240, 240, 4
@@ -8,9 +8,8 @@ SFX_08_45_Ch1: ; 2047f (8:447f)
endchannel
-SFX_08_45_Ch2: ; 20490 (8:4490)
+SFX_Dex_Page_Added_Ch2: ; 20490 (8:4490)
duty 2
unknownsfx0x20 15, 146, 0, 6
unknownsfx0x20 15, 146, 130, 7
endchannel
-; 0x2049b
diff --git a/audio/sfx/sfx_08_5d.asm b/audio/sfx/doubleslap.asm
index c973dcf6..0918238a 100755..100644
--- a/audio/sfx/sfx_08_5d.asm
+++ b/audio/sfx/doubleslap.asm
@@ -1,5 +1,4 @@
-SFX_08_5d_Ch1: ; 2058c (8:458c)
+SFX_Doubleslap_Ch1: ; 2058c (8:458c)
unknownnoise0x20 8, 241, 50
unknownnoise0x20 8, 241, 51
endchannel
-; 0x20593
diff --git a/audio/sfx/sfx_02_47.asm b/audio/sfx/enter_pc_1.asm
index ee3214fa..5c1a189a 100755..100644
--- a/audio/sfx/sfx_02_47.asm
+++ b/audio/sfx/enter_pc_1.asm
@@ -1,8 +1,7 @@
-SFX_02_47_Ch1: ; 853b (2:453b)
+SFX_Enter_PC_1_Ch1: ; 853b (2:453b)
duty 2
unknownsfx0x20 6, 240, 0, 7
unknownsfx0x20 4, 0, 0, 0
unknownsfx0x20 6, 240, 0, 7
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x854e
diff --git a/audio/sfx/sfx_1f_47.asm b/audio/sfx/enter_pc_3.asm
index 945e93fe..5907a7e5 100755..100644
--- a/audio/sfx/sfx_1f_47.asm
+++ b/audio/sfx/enter_pc_3.asm
@@ -1,8 +1,7 @@
-SFX_1f_47_Ch1: ; 7c518 (1f:4518)
+SFX_Enter_PC_3_Ch1: ; 7c518 (1f:4518)
duty 2
unknownsfx0x20 4, 240, 0, 7
unknownsfx0x20 4, 0, 0, 0
unknownsfx0x20 4, 240, 0, 7
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x7c52b
diff --git a/audio/sfx/sfx_08_48.asm b/audio/sfx/faint_fall.asm
index 0792ae25..c252b93a 100755..100644
--- a/audio/sfx/sfx_08_48.asm
+++ b/audio/sfx/faint_fall.asm
@@ -1,7 +1,6 @@
-SFX_08_48_Ch1: ; 204ae (8:44ae)
+SFX_Faint_Fall_Ch1: ; 204ae (8:44ae)
duty 1
unknownsfx0x10 175
unknownsfx0x20 15, 242, 128, 7
unknownsfx0x10 8
endchannel
-; 0x204b9
diff --git a/audio/sfx/sfx_08_43.asm b/audio/sfx/faint_thud.asm
index 27bd52fb..5ef100c5 100755..100644
--- a/audio/sfx/sfx_08_43.asm
+++ b/audio/sfx/faint_thud.asm
@@ -1,12 +1,11 @@
-SFX_08_43_Ch1: ; 2044c (8:444c)
+SFX_Faint_Thud_Ch1: ; 2044c (8:444c)
unknownsfx0x20 15, 209, 0, 2
unknownsfx0x10 8
endchannel
-SFX_08_43_Ch2: ; 20453 (8:4453)
+SFX_Faint_Thud_Ch2: ; 20453 (8:4453)
unknownnoise0x20 4, 245, 51
unknownnoise0x20 8, 244, 34
unknownnoise0x20 15, 242, 33
endchannel
-; 0x2045d
diff --git a/audio/sfx/sfx_02_50.asm b/audio/sfx/fly_1.asm
index 3d5bf3fe..c2ecf435 100755..100644
--- a/audio/sfx/sfx_02_50.asm
+++ b/audio/sfx/fly_1.asm
@@ -1,4 +1,4 @@
-SFX_02_50_Ch1: ; 85ee (2:45ee)
+SFX_Fly_1_Ch1: ; 85ee (2:45ee)
unknownnoise0x20 2, 241, 18
unknownnoise0x20 2, 0, 0
unknownnoise0x20 2, 161, 18
@@ -16,4 +16,3 @@ SFX_02_50_Ch1: ; 85ee (2:45ee)
unknownnoise0x20 2, 65, 18
unknownnoise0x20 2, 0, 0
endchannel
-; 0x861f
diff --git a/audio/sfx/sfx_1f_50.asm b/audio/sfx/fly_3.asm
index 3b99e1f3..043d4b51 100755..100644
--- a/audio/sfx/sfx_1f_50.asm
+++ b/audio/sfx/fly_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_50_Ch1: ; 7c5cb (1f:45cb)
+SFX_Fly_3_Ch1: ; 7c5cb (1f:45cb)
unknownnoise0x20 2, 241, 18
unknownnoise0x20 2, 0, 0
unknownnoise0x20 2, 161, 18
@@ -16,4 +16,3 @@ SFX_1f_50_Ch1: ; 7c5cb (1f:45cb)
unknownnoise0x20 2, 65, 18
unknownnoise0x20 2, 0, 0
endchannel
-; 0x7c5fc
diff --git a/audio/sfx/sfx_02_3a.asm b/audio/sfx/get_item1_1.asm
index b394d7c9..471124d7 100755..100644
--- a/audio/sfx/sfx_02_3a.asm
+++ b/audio/sfx/get_item1_1.asm
@@ -1,4 +1,4 @@
-SFX_02_3a_Ch1: ; ad77 (2:6d77)
+SFX_Get_Item1_1_Ch1: ; ad77 (2:6d77)
executemusic
tempo 256
volume 7, 7
@@ -16,7 +16,7 @@ SFX_02_3a_Ch1: ; ad77 (2:6d77)
endchannel
-SFX_02_3a_Ch2: ; ad8e (2:6d8e)
+SFX_Get_Item1_1_Ch2: ; ad8e (2:6d8e)
executemusic
vibrato 8, 2, 7
duty 2
@@ -30,7 +30,7 @@ SFX_02_3a_Ch2: ; ad8e (2:6d8e)
endchannel
-SFX_02_3a_Ch3: ; ad9e (2:6d9e)
+SFX_Get_Item1_1_Ch3: ; ad9e (2:6d9e)
executemusic
notetype 4, 1, 0
octave 4
@@ -45,4 +45,3 @@ SFX_02_3a_Ch3: ; ad9e (2:6d9e)
B_ 2
rest 2
endchannel
-; 0xadae
diff --git a/audio/sfx/sfx_1f_3a.asm b/audio/sfx/get_item1_3.asm
index 3ab6c1d3..6a7ebabc 100755..100644
--- a/audio/sfx/sfx_1f_3a.asm
+++ b/audio/sfx/get_item1_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_3a_Ch1: ; 7e850 (1f:6850)
+SFX_Get_Item1_3_Ch1: ; 7e850 (1f:6850)
executemusic
tempo 256
volume 7, 7
@@ -16,7 +16,7 @@ SFX_1f_3a_Ch1: ; 7e850 (1f:6850)
endchannel
-SFX_1f_3a_Ch2: ; 7e867 (1f:6867)
+SFX_Get_Item1_3_Ch2: ; 7e867 (1f:6867)
executemusic
vibrato 8, 2, 7
duty 2
@@ -30,7 +30,7 @@ SFX_1f_3a_Ch2: ; 7e867 (1f:6867)
endchannel
-SFX_1f_3a_Ch3: ; 7e877 (1f:6877)
+SFX_Get_Item1_3_Ch3: ; 7e877 (1f:6877)
executemusic
notetype 4, 1, 0
octave 4
@@ -45,4 +45,3 @@ SFX_1f_3a_Ch3: ; 7e877 (1f:6877)
B_ 2
rest 2
endchannel
-; 0x7e887
diff --git a/audio/sfx/sfx_1f_3b.asm b/audio/sfx/get_item2_1.asm
index b864987b..6fda3404 100755..100644
--- a/audio/sfx/sfx_1f_3b.asm
+++ b/audio/sfx/get_item2_1.asm
@@ -1,4 +1,4 @@
-SFX_1f_3b_Ch1: ; 7ee28 (1f:6e28)
+SFX_Get_Item2_1_Ch1: ; b316 (2:7316)
executemusic
tempo 256
volume 7, 7
@@ -25,7 +25,7 @@ SFX_1f_3b_Ch1: ; 7ee28 (1f:6e28)
endchannel
-SFX_1f_3b_Ch2: ; 7ee47 (1f:6e47)
+SFX_Get_Item2_1_Ch2: ; b335 (2:7335)
executemusic
vibrato 8, 2, 7
duty 2
@@ -46,7 +46,7 @@ SFX_1f_3b_Ch2: ; 7ee47 (1f:6e47)
endchannel
-SFX_1f_3b_Ch3: ; 7ee5f (1f:6e5f)
+SFX_Get_Item2_1_Ch3: ; b34d (2:734d)
executemusic
notetype 5, 1, 0
octave 5
@@ -67,4 +67,3 @@ SFX_1f_3b_Ch3: ; 7ee5f (1f:6e5f)
rest 1
A_ 8
endchannel
-; 0x7ee74
diff --git a/audio/sfx/sfx_02_3b.asm b/audio/sfx/get_item2_2.asm
index 1c2fbd50..25e40744 100755..100644
--- a/audio/sfx/sfx_02_3b.asm
+++ b/audio/sfx/get_item2_2.asm
@@ -1,4 +1,4 @@
-SFX_02_3b_Ch1: ; b316 (2:7316)
+SFX_Get_Item2_2_Ch1: ; 239c7 (8:79c7)
executemusic
tempo 256
volume 7, 7
@@ -25,7 +25,7 @@ SFX_02_3b_Ch1: ; b316 (2:7316)
endchannel
-SFX_02_3b_Ch2: ; b335 (2:7335)
+SFX_Get_Item2_2_Ch2: ; 239e6 (8:79e6)
executemusic
vibrato 8, 2, 7
duty 2
@@ -46,7 +46,7 @@ SFX_02_3b_Ch2: ; b335 (2:7335)
endchannel
-SFX_02_3b_Ch3: ; b34d (2:734d)
+SFX_Get_Item2_2_Ch3: ; 239fe (8:79fe)
executemusic
notetype 5, 1, 0
octave 5
@@ -67,4 +67,3 @@ SFX_02_3b_Ch3: ; b34d (2:734d)
rest 1
A_ 8
endchannel
-; 0xb362
diff --git a/audio/sfx/sfx_08_3b.asm b/audio/sfx/get_item2_3.asm
index 6a178f4c..20a0ee04 100755..100644
--- a/audio/sfx/sfx_08_3b.asm
+++ b/audio/sfx/get_item2_3.asm
@@ -1,4 +1,4 @@
-SFX_08_3b_Ch1: ; 239c7 (8:79c7)
+SFX_Get_Item2_3_Ch1: ; 7ee28 (1f:6e28)
executemusic
tempo 256
volume 7, 7
@@ -25,7 +25,7 @@ SFX_08_3b_Ch1: ; 239c7 (8:79c7)
endchannel
-SFX_08_3b_Ch2: ; 239e6 (8:79e6)
+SFX_Get_Item2_3_Ch2: ; 7ee47 (1f:6e47)
executemusic
vibrato 8, 2, 7
duty 2
@@ -46,7 +46,7 @@ SFX_08_3b_Ch2: ; 239e6 (8:79e6)
endchannel
-SFX_08_3b_Ch3: ; 239fe (8:79fe)
+SFX_Get_Item2_3_Ch3: ; 7ee5f (1f:6e5f)
executemusic
notetype 5, 1, 0
octave 5
@@ -67,4 +67,3 @@ SFX_08_3b_Ch3: ; 239fe (8:79fe)
rest 1
A_ 8
endchannel
-; 0x23a13
diff --git a/audio/sfx/sfx_1f_42.asm b/audio/sfx/get_key_item_1.asm
index daa4c7bb..233ea01b 100755..100644
--- a/audio/sfx/sfx_1f_42.asm
+++ b/audio/sfx/get_key_item_1.asm
@@ -1,4 +1,4 @@
-SFX_1f_42_Ch1: ; 7ee74 (1f:6e74)
+SFX_Get_Key_Item_1_Ch1: ; b362 (2:7362)
executemusic
tempo 256
volume 7, 7
@@ -23,7 +23,7 @@ SFX_1f_42_Ch1: ; 7ee74 (1f:6e74)
endchannel
-SFX_1f_42_Ch2: ; 7ee93 (1f:6e93)
+SFX_Get_Key_Item_1_Ch2: ; b381 (2:7381)
executemusic
vibrato 4, 2, 3
duty 2
@@ -47,7 +47,7 @@ SFX_1f_42_Ch2: ; 7ee93 (1f:6e93)
endchannel
-SFX_1f_42_Ch3: ; 7eeaf (1f:6eaf)
+SFX_Get_Key_Item_1_Ch3: ; b39d (2:739d)
executemusic
notetype 5, 1, 0
octave 4
@@ -57,4 +57,3 @@ SFX_1f_42_Ch3: ; 7eeaf (1f:6eaf)
F_ 4
D# 8
endchannel
-; 0x7eeb9
diff --git a/audio/sfx/sfx_02_42.asm b/audio/sfx/get_key_item_3.asm
index f31a8e26..f918e1bf 100755..100644
--- a/audio/sfx/sfx_02_42.asm
+++ b/audio/sfx/get_key_item_3.asm
@@ -1,4 +1,4 @@
-SFX_02_42_Ch1: ; b362 (2:7362)
+SFX_Get_Key_Item_3_Ch1: ; 7ee74 (1f:6e74)
executemusic
tempo 256
volume 7, 7
@@ -23,7 +23,7 @@ SFX_02_42_Ch1: ; b362 (2:7362)
endchannel
-SFX_02_42_Ch2: ; b381 (2:7381)
+SFX_Get_Key_Item_3_Ch2: ; 7ee93 (1f:6e93)
executemusic
vibrato 4, 2, 3
duty 2
@@ -47,7 +47,7 @@ SFX_02_42_Ch2: ; b381 (2:7381)
endchannel
-SFX_02_42_Ch3: ; b39d (2:739d)
+SFX_Get_Key_Item_3_Ch3: ; 7eeaf (1f:6eaf)
executemusic
notetype 5, 1, 0
octave 4
@@ -57,4 +57,3 @@ SFX_02_42_Ch3: ; b39d (2:739d)
F_ 4
D# 8
endchannel
-; 0xb3a7
diff --git a/audio/sfx/sfx_02_57.asm b/audio/sfx/go_inside_1.asm
index e81877d1..1eb1e2ca 100755..100644
--- a/audio/sfx/sfx_02_57.asm
+++ b/audio/sfx/go_inside_1.asm
@@ -1,5 +1,4 @@
-SFX_02_57_Ch1: ; 83f1 (2:43f1)
+SFX_Go_Inside_1_Ch1: ; 83f1 (2:43f1)
unknownnoise0x20 9, 241, 68
unknownnoise0x20 8, 209, 67
endchannel
-; 0x83f8
diff --git a/audio/sfx/sfx_1f_57.asm b/audio/sfx/go_inside_3.asm
index 3ea03695..d8e18b7d 100755..100644
--- a/audio/sfx/sfx_1f_57.asm
+++ b/audio/sfx/go_inside_3.asm
@@ -1,5 +1,4 @@
-SFX_1f_57_Ch1: ; 7c3da (1f:43da)
+SFX_Go_Inside_3_Ch1: ; 7c3da (1f:43da)
unknownnoise0x20 9, 241, 68
unknownnoise0x20 8, 209, 67
endchannel
-; 0x7c3e1
diff --git a/audio/sfx/sfx_02_5c.asm b/audio/sfx/go_outside_1.asm
index 4f48870b..2e8a8b31 100755..100644
--- a/audio/sfx/sfx_02_5c.asm
+++ b/audio/sfx/go_outside_1.asm
@@ -1,8 +1,7 @@
-SFX_02_5c_Ch1: ; 8452 (2:4452)
+SFX_Go_Outside_1_Ch1: ; 8452 (2:4452)
unknownnoise0x20 2, 241, 84
unknownnoise0x20 12, 113, 35
unknownnoise0x20 2, 177, 84
unknownnoise0x20 12, 97, 35
unknownnoise0x20 6, 65, 84
endchannel
-; 0x8462
diff --git a/audio/sfx/sfx_1f_5c.asm b/audio/sfx/go_outside_3.asm
index 571db9a9..2dc4242d 100755..100644
--- a/audio/sfx/sfx_1f_5c.asm
+++ b/audio/sfx/go_outside_3.asm
@@ -1,8 +1,7 @@
-SFX_1f_5c_Ch1: ; 7c43b (1f:443b)
+SFX_Go_Outside_3_Ch1: ; 7c43b (1f:443b)
unknownnoise0x20 2, 241, 84
unknownnoise0x20 12, 113, 35
unknownnoise0x20 2, 177, 84
unknownnoise0x20 12, 97, 35
unknownnoise0x20 6, 65, 84
endchannel
-; 0x7c44b
diff --git a/audio/sfx/sfx_02_3e.asm b/audio/sfx/heal_ailment_1.asm
index 39757272..5937f3a2 100755..100644
--- a/audio/sfx/sfx_02_3e.asm
+++ b/audio/sfx/heal_ailment_1.asm
@@ -1,4 +1,4 @@
-SFX_02_3e_Ch1: ; 84d9 (2:44d9)
+SFX_Heal_Ailment_1_Ch1: ; 84d9 (2:44d9)
duty 2
unknownsfx0x10 20
unknownsfx0x20 4, 242, 0, 6
@@ -7,4 +7,3 @@ SFX_02_3e_Ch1: ; 84d9 (2:44d9)
unknownsfx0x20 15, 242, 0, 6
unknownsfx0x10 8
endchannel
-; 0x84ee
diff --git a/audio/sfx/sfx_08_3e.asm b/audio/sfx/heal_ailment_2.asm
index 0808979b..4b39895a 100755..100644
--- a/audio/sfx/sfx_08_3e.asm
+++ b/audio/sfx/heal_ailment_2.asm
@@ -1,4 +1,4 @@
-SFX_08_3e_Ch1: ; 203fd (8:43fd)
+SFX_Heal_Ailment_2_Ch1: ; 203fd (8:43fd)
duty 2
unknownsfx0x10 20
unknownsfx0x20 4, 242, 0, 6
@@ -7,4 +7,3 @@ SFX_08_3e_Ch1: ; 203fd (8:43fd)
unknownsfx0x20 15, 242, 0, 6
unknownsfx0x10 8
endchannel
-; 0x20412
diff --git a/audio/sfx/sfx_1f_3e.asm b/audio/sfx/heal_ailment_3.asm
index 89518f22..b2805f3d 100755..100644
--- a/audio/sfx/sfx_1f_3e.asm
+++ b/audio/sfx/heal_ailment_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_3e_Ch1: ; 7c4b2 (1f:44b2)
+SFX_Heal_Ailment_3_Ch1: ; 7c4b2 (1f:44b2)
duty 2
unknownsfx0x10 20
unknownsfx0x20 4, 242, 0, 6
@@ -7,4 +7,3 @@ SFX_1f_3e_Ch1: ; 7c4b2 (1f:44b2)
unknownsfx0x20 15, 242, 0, 6
unknownsfx0x10 8
endchannel
-; 0x7c4c7
diff --git a/audio/sfx/sfx_02_3d.asm b/audio/sfx/heal_hp_1.asm
index 35f52890..eb8063f7 100755..100644
--- a/audio/sfx/sfx_02_3d.asm
+++ b/audio/sfx/heal_hp_1.asm
@@ -1,8 +1,7 @@
-SFX_02_3d_Ch1: ; 84b7 (2:44b7)
+SFX_Heal_HP_1_Ch1: ; 84b7 (2:44b7)
duty 2
unknownsfx0x10 23
unknownsfx0x20 15, 240, 240, 4
unknownsfx0x20 15, 242, 80, 6
unknownsfx0x10 8
endchannel
-; 0x84c6
diff --git a/audio/sfx/sfx_08_3d.asm b/audio/sfx/heal_hp_2.asm
index c263a999..890a2151 100755..100644
--- a/audio/sfx/sfx_08_3d.asm
+++ b/audio/sfx/heal_hp_2.asm
@@ -1,8 +1,7 @@
-SFX_08_3d_Ch1: ; 203ee (8:43ee)
+SFX_Heal_HP_2_Ch1: ; 203ee (8:43ee)
duty 2
unknownsfx0x10 23
unknownsfx0x20 15, 240, 240, 4
unknownsfx0x20 15, 242, 80, 6
unknownsfx0x10 8
endchannel
-; 0x203fd
diff --git a/audio/sfx/sfx_1f_3d.asm b/audio/sfx/heal_hp_3.asm
index 0275329d..da80d48f 100755..100644
--- a/audio/sfx/sfx_1f_3d.asm
+++ b/audio/sfx/heal_hp_3.asm
@@ -1,8 +1,7 @@
-SFX_1f_3d_Ch1: ; 7c490 (1f:4490)
+SFX_Heal_HP_3_Ch1: ; 7c490 (1f:4490)
duty 2
unknownsfx0x10 23
unknownsfx0x20 15, 240, 240, 4
unknownsfx0x20 15, 242, 80, 6
unknownsfx0x10 8
endchannel
-; 0x7c49f
diff --git a/audio/sfx/sfx_1f_4a.asm b/audio/sfx/healing_machine_1.asm
index 4e1c7e2e..4babf6b0 100755..100644
--- a/audio/sfx/sfx_1f_4a.asm
+++ b/audio/sfx/healing_machine_1.asm
@@ -1,4 +1,4 @@
-SFX_1f_4a_Ch1: ; 7c55d (1f:455d)
+SFX_Healing_Machine_1_Ch1: ; 8580 (2:4580)
duty 2
unknownsfx0x10 44
unknownsfx0x20 4, 242, 0, 5
@@ -7,4 +7,3 @@ SFX_1f_4a_Ch1: ; 7c55d (1f:455d)
unknownsfx0x10 8
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x7c572
diff --git a/audio/sfx/sfx_02_4a.asm b/audio/sfx/healing_machine_3.asm
index f4f37ab8..c72f7905 100755..100644
--- a/audio/sfx/sfx_02_4a.asm
+++ b/audio/sfx/healing_machine_3.asm
@@ -1,4 +1,4 @@
-SFX_02_4a_Ch1: ; 8580 (2:4580)
+SFX_Healing_Machine_3_Ch1: ; 7c55d (1f:455d)
duty 2
unknownsfx0x10 44
unknownsfx0x20 4, 242, 0, 5
@@ -7,4 +7,3 @@ SFX_02_4a_Ch1: ; 8580 (2:4580)
unknownsfx0x10 8
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x8595
diff --git a/audio/sfx/sfx_08_5f.asm b/audio/sfx/horn_drill.asm
index cd5da5a0..e68e5834 100755..100644
--- a/audio/sfx/sfx_08_5f.asm
+++ b/audio/sfx/horn_drill.asm
@@ -1,7 +1,6 @@
-SFX_08_5f_Ch1: ; 205b1 (8:45b1)
+SFX_Horn_Drill_Ch1: ; 205b1 (8:45b1)
unknownnoise0x20 3, 146, 49
unknownnoise0x20 3, 178, 50
unknownnoise0x20 3, 194, 51
unknownnoise0x20 8, 241, 84
endchannel
-; 0x205be
diff --git a/audio/sfx/sfx_1f_62.asm b/audio/sfx/intro_crash.asm
index 44a2c2c0..65e475f8 100755..100644
--- a/audio/sfx/sfx_1f_62.asm
+++ b/audio/sfx/intro_crash.asm
@@ -1,5 +1,4 @@
-SFX_1f_62_Ch1: ; 7c6de (1f:46de)
+SFX_Intro_Crash_Ch1: ; 7c6de (1f:46de)
unknownnoise0x20 2, 210, 50
unknownnoise0x20 15, 242, 67
endchannel
-; 0x7c6e5
diff --git a/audio/sfx/sfx_1f_5f.asm b/audio/sfx/intro_hip.asm
index 5a18de25..70d0f8b1 100755..100644
--- a/audio/sfx/sfx_1f_5f.asm
+++ b/audio/sfx/intro_hip.asm
@@ -1,7 +1,6 @@
-SFX_1f_5f_Ch1: ; 7c6be (1f:46be)
+SFX_Intro_Hip_Ch1: ; 7c6be (1f:46be)
duty 2
unknownsfx0x10 38
unknownsfx0x20 12, 194, 64, 7
unknownsfx0x10 8
endchannel
-; 0x7c6c9
diff --git a/audio/sfx/sfx_1f_60.asm b/audio/sfx/intro_hop.asm
index 424a2d28..223c7f25 100755..100644
--- a/audio/sfx/sfx_1f_60.asm
+++ b/audio/sfx/intro_hop.asm
@@ -1,7 +1,6 @@
-SFX_1f_60_Ch1: ; 7c6c9 (1f:46c9)
+SFX_Intro_Hop_Ch1: ; 7c6c9 (1f:46c9)
duty 2
unknownsfx0x10 38
unknownsfx0x20 12, 194, 128, 6
unknownsfx0x10 8
endchannel
-; 0x7c6d4
diff --git a/audio/sfx/sfx_1f_5e.asm b/audio/sfx/intro_lunge.asm
index 30de5a1a..ad00f56f 100755..100644
--- a/audio/sfx/sfx_1f_5e.asm
+++ b/audio/sfx/intro_lunge.asm
@@ -1,4 +1,4 @@
-SFX_1f_5e_Ch1: ; 7c6a5 (1f:46a5)
+SFX_Intro_Lunge_Ch1: ; 7c6a5 (1f:46a5)
unknownnoise0x20 6, 32, 16
unknownnoise0x20 6, 47, 64
unknownnoise0x20 6, 79, 65
@@ -8,4 +8,3 @@ SFX_1f_5e_Ch1: ; 7c6a5 (1f:46a5)
unknownnoise0x20 15, 231, 67
unknownnoise0x20 15, 242, 67
endchannel
-; 0x7c6be
diff --git a/audio/sfx/sfx_1f_61.asm b/audio/sfx/intro_raise.asm
index afc7dae3..d6ee1430 100755..100644
--- a/audio/sfx/sfx_1f_61.asm
+++ b/audio/sfx/intro_raise.asm
@@ -1,6 +1,5 @@
-SFX_1f_61_Ch1: ; 7c6d4 (1f:46d4)
+SFX_Intro_Raise_Ch1: ; 7c6d4 (1f:46d4)
unknownnoise0x20 2, 111, 33
unknownnoise0x20 2, 175, 49
unknownnoise0x20 15, 242, 65
endchannel
-; 0x7c6de
diff --git a/audio/sfx/sfx_1f_63.asm b/audio/sfx/intro_whoosh.asm
index f47ed1c1..903b7252 100755..100644
--- a/audio/sfx/sfx_1f_63.asm
+++ b/audio/sfx/intro_whoosh.asm
@@ -1,8 +1,7 @@
-SFX_1f_63_Ch1: ; 7c6e5 (1f:46e5)
+SFX_Intro_Whoosh_Ch1: ; 7c6e5 (1f:46e5)
unknownnoise0x20 4, 44, 32
unknownnoise0x20 3, 160, 32
unknownnoise0x20 3, 176, 33
unknownnoise0x20 3, 192, 34
unknownnoise0x20 15, 210, 36
endchannel
-; 0x7c6f5
diff --git a/audio/sfx/sfx_02_4e.asm b/audio/sfx/ledge_1.asm
index 9f204e21..dfd7c819 100755..100644
--- a/audio/sfx/sfx_02_4e.asm
+++ b/audio/sfx/ledge_1.asm
@@ -1,7 +1,6 @@
-SFX_02_4e_Ch1: ; 85d6 (2:45d6)
+SFX_Ledge_1_Ch1: ; 85d6 (2:45d6)
duty 2
unknownsfx0x10 149
unknownsfx0x20 15, 242, 0, 4
unknownsfx0x10 8
endchannel
-; 0x85e1
diff --git a/audio/sfx/sfx_1f_4e.asm b/audio/sfx/ledge_3.asm
index e3f4b6e5..2bf172e7 100755..100644
--- a/audio/sfx/sfx_1f_4e.asm
+++ b/audio/sfx/ledge_3.asm
@@ -1,7 +1,6 @@
-SFX_1f_4e_Ch1: ; 7c5b3 (1f:45b3)
+SFX_Ledge_3_Ch1: ; 7c5b3 (1f:45b3)
duty 2
unknownsfx0x10 149
unknownsfx0x20 15, 242, 0, 4
unknownsfx0x10 8
endchannel
-; 0x7c5be
diff --git a/audio/sfx/sfx_08_3a.asm b/audio/sfx/level_up.asm
index cc992756..03e077ec 100755..100644
--- a/audio/sfx/sfx_08_3a.asm
+++ b/audio/sfx/level_up.asm
@@ -1,4 +1,4 @@
-SFX_08_3a_Ch1: ; 2397d (8:797d)
+SFX_Level_Up_Ch1: ; 2397d (8:797d)
executemusic
tempo 256
volume 7, 7
@@ -20,7 +20,7 @@ SFX_08_3a_Ch1: ; 2397d (8:797d)
endchannel
-SFX_08_3a_Ch2: ; 23998 (8:7998)
+SFX_Level_Up_Ch2: ; 23998 (8:7998)
executemusic
vibrato 4, 2, 2
duty 2
@@ -40,7 +40,7 @@ SFX_08_3a_Ch2: ; 23998 (8:7998)
endchannel
-SFX_08_3a_Ch3: ; 239b0 (8:79b0)
+SFX_Level_Up_Ch3: ; 239b0 (8:79b0)
executemusic
notetype 6, 1, 0
octave 5
@@ -61,4 +61,3 @@ SFX_08_3a_Ch3: ; 239b0 (8:79b0)
rest 1
A_ 8
endchannel
-; 0x239c7
diff --git a/audio/sfx/sfx_02_0f.asm b/audio/sfx/muted_snare1_1.asm
index 906e27d0..5d10ecc1 100755..100644
--- a/audio/sfx/sfx_02_0f.asm
+++ b/audio/sfx/muted_snare1_1.asm
@@ -1,5 +1,4 @@
-SFX_02_0f_Ch1: ; 8347 (2:4347)
+SFX_Muted_Snare1_1_Ch1: ; 8347 (2:4347)
unknownnoise0x20 0, 161, 24
unknownnoise0x20 0, 49, 51
endchannel
-; 0x834e
diff --git a/audio/sfx/sfx_08_0f.asm b/audio/sfx/muted_snare1_2.asm
index b7bbfb7f..ea3cfc8c 100755..100644
--- a/audio/sfx/sfx_08_0f.asm
+++ b/audio/sfx/muted_snare1_2.asm
@@ -1,5 +1,4 @@
-SFX_08_0f_Ch1: ; 20347 (8:4347)
+SFX_Muted_Snare1_2_Ch1: ; 20347 (8:4347)
unknownnoise0x20 0, 161, 24
unknownnoise0x20 0, 49, 51
endchannel
-; 0x2034e
diff --git a/audio/sfx/sfx_1f_0f.asm b/audio/sfx/muted_snare1_3.asm
index c9cdaac4..27caa37b 100755..100644
--- a/audio/sfx/sfx_1f_0f.asm
+++ b/audio/sfx/muted_snare1_3.asm
@@ -1,5 +1,4 @@
-SFX_1f_0f_Ch1: ; 7c347 (1f:4347)
+SFX_Muted_Snare1_3_Ch1: ; 7c347 (1f:4347)
unknownnoise0x20 0, 161, 24
unknownnoise0x20 0, 49, 51
endchannel
-; 0x7c34e
diff --git a/audio/sfx/sfx_02_11.asm b/audio/sfx/muted_snare2_1.asm
index 34edf69a..7ab6252b 100755..100644
--- a/audio/sfx/sfx_02_11.asm
+++ b/audio/sfx/muted_snare2_1.asm
@@ -1,4 +1,3 @@
-SFX_02_11_Ch1: ; 8355 (2:4355)
+SFX_Muted_Snare2_1_Ch1: ; 8355 (2:4355)
unknownnoise0x20 0, 145, 34
endchannel
-; 0x8359
diff --git a/audio/sfx/muted_snare2_2.asm b/audio/sfx/muted_snare2_2.asm
new file mode 100644
index 00000000..a9359226
--- /dev/null
+++ b/audio/sfx/muted_snare2_2.asm
@@ -0,0 +1,3 @@
+SFX_Muted_Snare2_2_Ch1: ; 20355 (8:4355)
+ unknownnoise0x20 0, 145, 34
+ endchannel
diff --git a/audio/sfx/muted_snare2_3.asm b/audio/sfx/muted_snare2_3.asm
new file mode 100644
index 00000000..7ac9705d
--- /dev/null
+++ b/audio/sfx/muted_snare2_3.asm
@@ -0,0 +1,3 @@
+SFX_Muted_Snare2_3_Ch1: ; 7c355 (1f:4355)
+ unknownnoise0x20 0, 145, 34
+ endchannel
diff --git a/audio/sfx/sfx_02_12.asm b/audio/sfx/muted_snare3_1.asm
index 95ea4278..1cd27319 100755..100644
--- a/audio/sfx/sfx_02_12.asm
+++ b/audio/sfx/muted_snare3_1.asm
@@ -1,4 +1,3 @@
-SFX_02_12_Ch1: ; 8359 (2:4359)
+SFX_Muted_Snare3_1_Ch1: ; 8359 (2:4359)
unknownnoise0x20 0, 113, 34
endchannel
-; 0x835d
diff --git a/audio/sfx/muted_snare3_2.asm b/audio/sfx/muted_snare3_2.asm
new file mode 100644
index 00000000..1606b6d5
--- /dev/null
+++ b/audio/sfx/muted_snare3_2.asm
@@ -0,0 +1,3 @@
+SFX_Muted_Snare3_2_Ch1: ; 20359 (8:4359)
+ unknownnoise0x20 0, 113, 34
+ endchannel
diff --git a/audio/sfx/muted_snare3_3.asm b/audio/sfx/muted_snare3_3.asm
new file mode 100644
index 00000000..c0fe7efb
--- /dev/null
+++ b/audio/sfx/muted_snare3_3.asm
@@ -0,0 +1,3 @@
+SFX_Muted_Snare3_3_Ch1: ; 7c359 (1f:4359)
+ unknownnoise0x20 0, 113, 34
+ endchannel
diff --git a/audio/sfx/sfx_02_13.asm b/audio/sfx/muted_snare4_1.asm
index fcf6613a..bcac6440 100755..100644
--- a/audio/sfx/sfx_02_13.asm
+++ b/audio/sfx/muted_snare4_1.asm
@@ -1,4 +1,3 @@
-SFX_02_13_Ch1: ; 835d (2:435d)
+SFX_Muted_Snare4_1_Ch1: ; 835d (2:435d)
unknownnoise0x20 0, 97, 34
endchannel
-; 0x8361
diff --git a/audio/sfx/muted_snare4_2.asm b/audio/sfx/muted_snare4_2.asm
new file mode 100644
index 00000000..6910c20d
--- /dev/null
+++ b/audio/sfx/muted_snare4_2.asm
@@ -0,0 +1,3 @@
+SFX_Muted_Snare4_2_Ch1: ; 2035d (8:435d)
+ unknownnoise0x20 0, 97, 34
+ endchannel
diff --git a/audio/sfx/muted_snare4_3.asm b/audio/sfx/muted_snare4_3.asm
new file mode 100644
index 00000000..52f14f21
--- /dev/null
+++ b/audio/sfx/muted_snare4_3.asm
@@ -0,0 +1,3 @@
+SFX_Muted_Snare4_3_Ch1: ; 7c35d (1f:435d)
+ unknownnoise0x20 0, 97, 34
+ endchannel
diff --git a/audio/sfx/sfx_08_51.asm b/audio/sfx/not_very_effective.asm
index d34a0d2b..959f33e3 100755..100644
--- a/audio/sfx/sfx_08_51.asm
+++ b/audio/sfx/not_very_effective.asm
@@ -1,7 +1,6 @@
-SFX_08_51_Ch1: ; 204fe (8:44fe)
+SFX_Not_Very_Effective_Ch1: ; 204fe (8:44fe)
unknownnoise0x20 4, 143, 85
unknownnoise0x20 2, 244, 68
unknownnoise0x20 8, 244, 34
unknownnoise0x20 15, 242, 33
endchannel
-; 0x2050b
diff --git a/audio/sfx/peck.asm b/audio/sfx/peck.asm
new file mode 100644
index 00000000..e4632281
--- /dev/null
+++ b/audio/sfx/peck.asm
@@ -0,0 +1,3 @@
+SFX_Peck_Ch1: ; 204aa (8:44aa)
+ unknownnoise0x20 2, 161, 18
+ endchannel
diff --git a/audio/sfx/sfx_02_43.asm b/audio/sfx/poisoned_1.asm
index 3d588100..4760696d 100755..100644
--- a/audio/sfx/sfx_02_43.asm
+++ b/audio/sfx/poisoned_1.asm
@@ -1,9 +1,8 @@
-SFX_02_43_Ch1: ; 84c6 (2:44c6)
+SFX_Poisoned_1_Ch1: ; 84c6 (2:44c6)
duty 0
unknownsfx0x10 20
unknownsfx0x20 4, 242, 0, 6
- loopchannel 4, SFX_02_43_Ch1
+ loopchannel 4, SFX_Poisoned_1_Ch1
unknownsfx0x20 15, 243, 0, 6
unknownsfx0x10 8
endchannel
-; 0x84d9
diff --git a/audio/sfx/sfx_1f_43.asm b/audio/sfx/poisoned_3.asm
index 94d8fb9c..b6d69dc6 100755..100644
--- a/audio/sfx/sfx_1f_43.asm
+++ b/audio/sfx/poisoned_3.asm
@@ -1,9 +1,8 @@
-SFX_1f_43_Ch1: ; 7c49f (1f:449f)
+SFX_Poisoned_3_Ch1: ; 7c49f (1f:449f)
duty 0
unknownsfx0x10 20
unknownsfx0x20 4, 242, 0, 6
- loopchannel 4, SFX_1f_43_Ch1
+ loopchannel 4, SFX_Poisoned_3_Ch1
unknownsfx0x20 15, 243, 0, 6
unknownsfx0x10 8
endchannel
-; 0x7c4b2
diff --git a/audio/sfx/sfx_1f_41.asm b/audio/sfx/pokedex_rating_1.asm
index f255ba76..21503d16 100755..100644
--- a/audio/sfx/sfx_1f_41.asm
+++ b/audio/sfx/pokedex_rating_1.asm
@@ -1,4 +1,4 @@
-SFX_1f_41_Ch1: ; 7edda (1f:6dda)
+SFX_Pokedex_Rating_1_Ch1: ; b2c8 (2:72c8)
executemusic
tempo 256
volume 7, 7
@@ -21,7 +21,7 @@ SFX_1f_41_Ch1: ; 7edda (1f:6dda)
endchannel
-SFX_1f_41_Ch2: ; 7edf3 (1f:6df3)
+SFX_Pokedex_Rating_1_Ch2: ; b2e1 (2:72e1)
executemusic
duty 2
notetype 5, 12, 2
@@ -44,7 +44,7 @@ SFX_1f_41_Ch2: ; 7edf3 (1f:6df3)
endchannel
-SFX_1f_41_Ch3: ; 7ee09 (1f:6e09)
+SFX_Pokedex_Rating_1_Ch3: ; b2f7 (2:72f7)
executemusic
notetype 5, 1, 0
octave 5
@@ -75,4 +75,3 @@ SFX_1f_41_Ch3: ; 7ee09 (1f:6e09)
F_ 2
rest 2
endchannel
-; 0x7ee28
diff --git a/audio/sfx/sfx_02_41.asm b/audio/sfx/pokedex_rating_3.asm
index e40c1fe5..a9ea1c75 100755..100644
--- a/audio/sfx/sfx_02_41.asm
+++ b/audio/sfx/pokedex_rating_3.asm
@@ -1,4 +1,4 @@
-SFX_02_41_Ch1: ; b2c8 (2:72c8)
+SFX_Pokedex_Rating_3_Ch1: ; 7edda (1f:6dda)
executemusic
tempo 256
volume 7, 7
@@ -21,7 +21,7 @@ SFX_02_41_Ch1: ; b2c8 (2:72c8)
endchannel
-SFX_02_41_Ch2: ; b2e1 (2:72e1)
+SFX_Pokedex_Rating_3_Ch2: ; 7edf3 (1f:6df3)
executemusic
duty 2
notetype 5, 12, 2
@@ -44,7 +44,7 @@ SFX_02_41_Ch2: ; b2e1 (2:72e1)
endchannel
-SFX_02_41_Ch3: ; b2f7 (2:72f7)
+SFX_Pokedex_Rating_3_Ch3: ; 7ee09 (1f:6e09)
executemusic
notetype 5, 1, 0
octave 5
@@ -75,4 +75,3 @@ SFX_02_41_Ch3: ; b2f7 (2:72f7)
F_ 2
rest 2
endchannel
-; 0xb316
diff --git a/audio/sfx/sfx_02_5e.asm b/audio/sfx/pokeflute.asm
index cd04822d..4abf1713 100755..100644
--- a/audio/sfx/sfx_02_5e.asm
+++ b/audio/sfx/pokeflute.asm
@@ -1,4 +1,4 @@
-SFX_02_5e_Ch1: ; 83ca (2:43ca)
+SFX_Pokeflute_Ch1: ; 83ca (2:43ca)
vibrato 16, 1, 4
notetype 12, 1, 0
octave 5
@@ -19,4 +19,3 @@ SFX_02_5e_Ch1: ; 83ca (2:43ca)
G_ 8
rest 12
endchannel
-; 0x83e1
diff --git a/audio/sfx/sfx_08_pokeflute.asm b/audio/sfx/pokeflute_ch1_ch2.asm
index 4c015e73..4ccf89d8 100755..100644
--- a/audio/sfx/sfx_08_pokeflute.asm
+++ b/audio/sfx/pokeflute_ch1_ch2.asm
@@ -12,4 +12,3 @@ SFX_08_PokeFlute_Ch2: ; 22325 (8:6325)
rest 5
rest 5
endchannel
-; 0x2232f
diff --git a/audio/sfx/sfx_08_pokeflute_ch3.asm b/audio/sfx/pokeflute_ch3.asm
index e0060d7f..0652e673 100755..100644
--- a/audio/sfx/sfx_08_pokeflute_ch3.asm
+++ b/audio/sfx/pokeflute_ch3.asm
@@ -11,4 +11,3 @@ SFX_08_PokeFlute_Ch3: ; 2049b (8:449b)
octave 6
C_ 13
endchannel
-; 0x204aa
diff --git a/audio/sfx/pound.asm b/audio/sfx/pound.asm
new file mode 100644
index 00000000..102d7d6d
--- /dev/null
+++ b/audio/sfx/pound.asm
@@ -0,0 +1,3 @@
+SFX_Pound_Ch1: ; 204c4 (8:44c4)
+ unknownnoise0x20 2, 161, 34
+ endchannel
diff --git a/audio/sfx/sfx_02_40.asm b/audio/sfx/press_ab_1.asm
index 7b4edd6e..5925b788 100755..100644
--- a/audio/sfx/sfx_02_40.asm
+++ b/audio/sfx/press_ab_1.asm
@@ -1,8 +1,7 @@
-SFX_02_40_Ch1: ; 8462 (2:4462)
+SFX_Press_AB_1_Ch1: ; 8462 (2:4462)
duty 2
unknownsfx0x20 0, 145, 192, 7
unknownsfx0x20 0, 129, 208, 7
unknownsfx0x20 0, 145, 192, 7
unknownsfx0x20 12, 161, 208, 7
endchannel
-; 0x8475
diff --git a/audio/sfx/sfx_08_40.asm b/audio/sfx/press_ab_2.asm
index f62eb148..e15dadc4 100755..100644
--- a/audio/sfx/sfx_08_40.asm
+++ b/audio/sfx/press_ab_2.asm
@@ -1,8 +1,7 @@
-SFX_08_40_Ch1: ; 203c3 (8:43c3)
+SFX_Press_AB_2_Ch1: ; 203c3 (8:43c3)
duty 2
unknownsfx0x20 0, 145, 192, 7
unknownsfx0x20 0, 129, 208, 7
unknownsfx0x20 0, 145, 192, 7
unknownsfx0x20 12, 161, 208, 7
endchannel
-; 0x203d6
diff --git a/audio/sfx/sfx_1f_40.asm b/audio/sfx/press_ab_3.asm
index 05d2e17d..8af4a335 100755..100644
--- a/audio/sfx/sfx_1f_40.asm
+++ b/audio/sfx/press_ab_3.asm
@@ -1,8 +1,7 @@
-SFX_1f_40_Ch1: ; 7c44b (1f:444b)
+SFX_Press_AB_3_Ch1: ; 7c44b (1f:444b)
duty 2
unknownsfx0x20 0, 145, 192, 7
unknownsfx0x20 0, 129, 208, 7
unknownsfx0x20 0, 145, 192, 7
unknownsfx0x20 12, 161, 208, 7
endchannel
-; 0x7c45e
diff --git a/audio/sfx/sfx_08_6d.asm b/audio/sfx/psybeam.asm
index 7693df84..65fcc229 100755..100644
--- a/audio/sfx/sfx_08_6d.asm
+++ b/audio/sfx/psybeam.asm
@@ -1,26 +1,25 @@
-SFX_08_6d_Ch1: ; 20759 (8:4759)
+SFX_Psybeam_Ch1: ; 20759 (8:4759)
dutycycle 161
unknownsfx0x20 10, 241, 64, 6
unknownsfx0x20 10, 243, 128, 6
unknownsfx0x20 10, 242, 32, 6
- loopchannel 4, SFX_08_6d_Ch1
+ loopchannel 4, SFX_Psybeam_Ch1
unknownsfx0x20 10, 241, 64, 6
endchannel
-SFX_08_6d_Ch2: ; 20770 (8:4770)
+SFX_Psybeam_Ch2: ; 20770 (8:4770)
dutycycle 179
unknownsfx0x20 10, 243, 113, 5
unknownsfx0x20 7, 227, 49, 5
unknownsfx0x20 10, 241, 81, 5
- loopchannel 4, SFX_08_6d_Ch2
+ loopchannel 4, SFX_Psybeam_Ch2
unknownsfx0x20 10, 241, 113, 5
endchannel
-SFX_08_6d_Ch3: ; 20787 (8:4787)
+SFX_Psybeam_Ch3: ; 20787 (8:4787)
unknownnoise0x20 2, 209, 74
unknownnoise0x20 2, 210, 42
- loopchannel 21, SFX_08_6d_Ch3
+ loopchannel 21, SFX_Psybeam_Ch3
endchannel
-; 0x20792
diff --git a/audio/sfx/sfx_08_70.asm b/audio/sfx/psychic_m.asm
index 9ac504ff..e734b7ac 100755..100644
--- a/audio/sfx/sfx_08_70.asm
+++ b/audio/sfx/psychic_m.asm
@@ -1,4 +1,4 @@
-SFX_08_70_Ch1: ; 207fa (8:47fa)
+SFX_Psychic_M_Ch1: ; 207fa (8:47fa)
duty 2
unknownsfx0x10 247
unknownsfx0x20 8, 196, 189, 7
@@ -11,7 +11,7 @@ SFX_08_70_Ch1: ; 207fa (8:47fa)
endchannel
-SFX_08_70_Ch2: ; 20819 (8:4819)
+SFX_Psychic_M_Ch2: ; 20819 (8:4819)
duty 2
unknownsfx0x20 8, 196, 112, 7
unknownsfx0x20 8, 196, 97, 7
@@ -22,7 +22,7 @@ SFX_08_70_Ch2: ; 20819 (8:4819)
endchannel
-SFX_08_70_Ch3: ; 20834 (8:4834)
+SFX_Psychic_M_Ch3: ; 20834 (8:4834)
unknownnoise0x20 15, 63, 20
unknownnoise0x20 15, 207, 19
unknownnoise0x20 15, 207, 18
@@ -30,4 +30,3 @@ SFX_08_70_Ch3: ; 20834 (8:4834)
unknownnoise0x20 15, 207, 16
unknownnoise0x20 15, 194, 16
endchannel
-; 0x20847
diff --git a/audio/sfx/sfx_02_5a.asm b/audio/sfx/purchase_1.asm
index 9ad8098e..fc0cecb5 100755..100644
--- a/audio/sfx/sfx_02_5a.asm
+++ b/audio/sfx/purchase_1.asm
@@ -1,14 +1,13 @@
-SFX_02_5a_Ch1: ; 842d (2:442d)
+SFX_Purchase_1_Ch1: ; 842d (2:442d)
duty 2
unknownsfx0x20 4, 225, 0, 7
unknownsfx0x20 8, 242, 224, 7
endchannel
-SFX_02_5a_Ch2: ; 8438 (2:4438)
+SFX_Purchase_1_Ch2: ; 8438 (2:4438)
duty 2
unknownsfx0x20 1, 8, 0, 0
unknownsfx0x20 4, 145, 193, 6
unknownsfx0x20 8, 162, 161, 7
endchannel
-; 0x8447
diff --git a/audio/sfx/sfx_1f_5a.asm b/audio/sfx/purchase_3.asm
index 567b331b..5d649958 100755..100644
--- a/audio/sfx/sfx_1f_5a.asm
+++ b/audio/sfx/purchase_3.asm
@@ -1,14 +1,13 @@
-SFX_1f_5a_Ch1: ; 7c416 (1f:4416)
+SFX_Purchase_3_Ch1: ; 7c416 (1f:4416)
duty 2
unknownsfx0x20 4, 225, 0, 7
unknownsfx0x20 8, 242, 224, 7
endchannel
-SFX_1f_5a_Ch2: ; 7c421 (1f:4421)
+SFX_Purchase_3_Ch2: ; 7c421 (1f:4421)
duty 2
unknownsfx0x20 1, 8, 0, 0
unknownsfx0x20 4, 145, 193, 6
unknownsfx0x20 8, 162, 161, 7
endchannel
-; 0x7c430
diff --git a/audio/sfx/sfx_02_53.asm b/audio/sfx/push_boulder_1.asm
index dc2f6d92..31096861 100755..100644
--- a/audio/sfx/sfx_02_53.asm
+++ b/audio/sfx/push_boulder_1.asm
@@ -1,4 +1,4 @@
-SFX_02_53_Ch1: ; 8654 (2:4654)
+SFX_Push_Boulder_1_Ch1: ; 8654 (2:4654)
unknownnoise0x20 4, 162, 35
unknownnoise0x20 8, 241, 52
unknownnoise0x20 15, 0, 0
@@ -8,4 +8,3 @@ SFX_02_53_Ch1: ; 8654 (2:4654)
unknownnoise0x20 8, 244, 85
unknownnoise0x20 8, 241, 68
endchannel
-; 0x866d
diff --git a/audio/sfx/sfx_1f_53.asm b/audio/sfx/push_boulder_3.asm
index 47d5d3dd..ca7d2cd1 100755..100644
--- a/audio/sfx/sfx_1f_53.asm
+++ b/audio/sfx/push_boulder_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_53_Ch1: ; 7c631 (1f:4631)
+SFX_Push_Boulder_3_Ch1: ; 7c631 (1f:4631)
unknownnoise0x20 4, 162, 35
unknownnoise0x20 8, 241, 52
unknownnoise0x20 15, 0, 0
@@ -8,4 +8,3 @@ SFX_1f_53_Ch1: ; 7c631 (1f:4631)
unknownnoise0x20 8, 244, 85
unknownnoise0x20 8, 241, 68
endchannel
-; 0x7c64a
diff --git a/audio/sfx/sfx_08_44.asm b/audio/sfx/run.asm
index 57f8901a..653b0f6b 100755..100644
--- a/audio/sfx/sfx_08_44.asm
+++ b/audio/sfx/run.asm
@@ -1,4 +1,4 @@
-SFX_08_44_Ch1: ; 2045d (8:445d)
+SFX_Run_Ch1: ; 2045d (8:445d)
unknownnoise0x20 2, 97, 35
unknownnoise0x20 2, 161, 51
unknownnoise0x20 2, 193, 51
@@ -11,4 +11,3 @@ SFX_08_44_Ch1: ; 2045d (8:445d)
unknownnoise0x20 2, 49, 17
unknownnoise0x20 8, 65, 51
endchannel
-; 0x2047f
diff --git a/audio/sfx/sfx_02_5f.asm b/audio/sfx/safari_zone_pa.asm
index 0a60c2b3..fb8c4d1f 100755..100644
--- a/audio/sfx/sfx_02_5f.asm
+++ b/audio/sfx/safari_zone_pa.asm
@@ -1,4 +1,4 @@
-SFX_02_5f_Ch1: ; 86c8 (2:46c8)
+SFX_Safari_Zone_PA_Ch1: ; 86c8 (2:46c8)
duty 2
unknownsfx0x20 15, 243, 48, 7
unknownsfx0x20 8, 101, 48, 7
@@ -7,4 +7,3 @@ SFX_02_5f_Ch1: ; 86c8 (2:46c8)
unknownsfx0x20 15, 68, 0, 7
unknownsfx0x20 15, 36, 0, 7
endchannel
-; 0x86e3
diff --git a/audio/sfx/sfx_02_5d.asm b/audio/sfx/save_1.asm
index b764b5e8..2e6c1f2b 100755..100644
--- a/audio/sfx/sfx_02_5d.asm
+++ b/audio/sfx/save_1.asm
@@ -1,4 +1,4 @@
-SFX_02_5d_Ch1: ; 8475 (2:4475)
+SFX_Save_1_Ch1: ; 8475 (2:4475)
duty 2
unknownsfx0x20 4, 244, 0, 7
unknownsfx0x20 2, 228, 0, 6
@@ -10,7 +10,7 @@ SFX_02_5d_Ch1: ; 8475 (2:4475)
endchannel
-SFX_02_5d_Ch2: ; 8494 (2:4494)
+SFX_Save_1_Ch2: ; 8494 (2:4494)
duty 2
unknownsfx0x20 4, 8, 0, 0
unknownsfx0x20 2, 212, 1, 7
@@ -21,4 +21,3 @@ SFX_02_5d_Ch2: ; 8494 (2:4494)
unknownsfx0x20 2, 196, 161, 7
unknownsfx0x20 15, 210, 225, 7
endchannel
-; 0x84b7
diff --git a/audio/sfx/sfx_1f_5d.asm b/audio/sfx/save_3.asm
index b26e5e09..70b6a81c 100755..100644
--- a/audio/sfx/sfx_1f_5d.asm
+++ b/audio/sfx/save_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_5d_Ch1: ; 7c45e (1f:445e)
+SFX_Save_3_Ch1: ; 7c45e (1f:445e)
duty 2
unknownsfx0x20 4, 244, 0, 7
unknownsfx0x20 3, 228, 128, 6
@@ -8,7 +8,7 @@ SFX_1f_5d_Ch1: ; 7c45e (1f:445e)
endchannel
-SFX_1f_5d_Ch2: ; 7c475 (1f:4475)
+SFX_Save_3_Ch2: ; 7c475 (1f:4475)
duty 2
unknownsfx0x20 4, 8, 0, 0
unknownsfx0x20 3, 212, 1, 7
@@ -17,4 +17,3 @@ SFX_1f_5d_Ch2: ; 7c475 (1f:4475)
unknownsfx0x20 3, 196, 1, 7
unknownsfx0x20 2, 196, 161, 7
endchannel
-; 0x7c490
diff --git a/audio/sfx/sfx_08_01.asm b/audio/sfx/sfx_08_01.asm
deleted file mode 100755
index ddfb484c..00000000
--- a/audio/sfx/sfx_08_01.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_01_Ch1: ; 202fd (8:42fd)
- unknownnoise0x20 0, 193, 51
- endchannel
-; 0x20301
diff --git a/audio/sfx/sfx_08_02.asm b/audio/sfx/sfx_08_02.asm
deleted file mode 100755
index 38464468..00000000
--- a/audio/sfx/sfx_08_02.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_02_Ch1: ; 20301 (8:4301)
- unknownnoise0x20 0, 177, 51
- endchannel
-; 0x20305
diff --git a/audio/sfx/sfx_08_03.asm b/audio/sfx/sfx_08_03.asm
deleted file mode 100755
index 1e20c0ce..00000000
--- a/audio/sfx/sfx_08_03.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_03_Ch1: ; 20305 (8:4305)
- unknownnoise0x20 0, 161, 51
- endchannel
-; 0x20309
diff --git a/audio/sfx/sfx_08_04.asm b/audio/sfx/sfx_08_04.asm
deleted file mode 100755
index 01a30723..00000000
--- a/audio/sfx/sfx_08_04.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_04_Ch1: ; 20309 (8:4309)
- unknownnoise0x20 0, 129, 51
- endchannel
-; 0x2030d
diff --git a/audio/sfx/sfx_08_06.asm b/audio/sfx/sfx_08_06.asm
deleted file mode 100755
index 6d2d8366..00000000
--- a/audio/sfx/sfx_08_06.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_06_Ch1: ; 20320 (8:4320)
- unknownnoise0x20 0, 81, 42
- endchannel
-; 0x20324
diff --git a/audio/sfx/sfx_08_08.asm b/audio/sfx/sfx_08_08.asm
deleted file mode 100755
index d4ab06c1..00000000
--- a/audio/sfx/sfx_08_08.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_08_Ch1: ; 2032b (8:432b)
- unknownnoise0x20 0, 129, 16
- endchannel
-; 0x2032f
diff --git a/audio/sfx/sfx_08_09.asm b/audio/sfx/sfx_08_09.asm
deleted file mode 100755
index 9e801da7..00000000
--- a/audio/sfx/sfx_08_09.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_09_Ch1: ; 2032f (8:432f)
- unknownnoise0x20 0, 130, 35
- endchannel
-; 0x20333
diff --git a/audio/sfx/sfx_08_0a.asm b/audio/sfx/sfx_08_0a.asm
deleted file mode 100755
index 6da585ac..00000000
--- a/audio/sfx/sfx_08_0a.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_0a_Ch1: ; 20333 (8:4333)
- unknownnoise0x20 0, 130, 37
- endchannel
-; 0x20337
diff --git a/audio/sfx/sfx_08_0b.asm b/audio/sfx/sfx_08_0b.asm
deleted file mode 100755
index c2d0c079..00000000
--- a/audio/sfx/sfx_08_0b.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_0b_Ch1: ; 20337 (8:4337)
- unknownnoise0x20 0, 130, 38
- endchannel
-; 0x2033b
diff --git a/audio/sfx/sfx_08_0c.asm b/audio/sfx/sfx_08_0c.asm
deleted file mode 100755
index 9f872678..00000000
--- a/audio/sfx/sfx_08_0c.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_0c_Ch1: ; 2033b (8:433b)
- unknownnoise0x20 0, 161, 16
- endchannel
-; 0x2033f
diff --git a/audio/sfx/sfx_08_0d.asm b/audio/sfx/sfx_08_0d.asm
deleted file mode 100755
index 245add5b..00000000
--- a/audio/sfx/sfx_08_0d.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_0d_Ch1: ; 2033f (8:433f)
- unknownnoise0x20 0, 162, 17
- endchannel
-; 0x20343
diff --git a/audio/sfx/sfx_08_0e.asm b/audio/sfx/sfx_08_0e.asm
deleted file mode 100755
index 096e0a33..00000000
--- a/audio/sfx/sfx_08_0e.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_0e_Ch1: ; 20343 (8:4343)
- unknownnoise0x20 0, 162, 80
- endchannel
-; 0x20347
diff --git a/audio/sfx/sfx_08_11.asm b/audio/sfx/sfx_08_11.asm
deleted file mode 100755
index ae617471..00000000
--- a/audio/sfx/sfx_08_11.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_11_Ch1: ; 20355 (8:4355)
- unknownnoise0x20 0, 145, 34
- endchannel
-; 0x20359
diff --git a/audio/sfx/sfx_08_12.asm b/audio/sfx/sfx_08_12.asm
deleted file mode 100755
index e391b0a9..00000000
--- a/audio/sfx/sfx_08_12.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_12_Ch1: ; 20359 (8:4359)
- unknownnoise0x20 0, 113, 34
- endchannel
-; 0x2035d
diff --git a/audio/sfx/sfx_08_13.asm b/audio/sfx/sfx_08_13.asm
deleted file mode 100755
index 4c478514..00000000
--- a/audio/sfx/sfx_08_13.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_13_Ch1: ; 2035d (8:435d)
- unknownnoise0x20 0, 97, 34
- endchannel
-; 0x20361
diff --git a/audio/sfx/sfx_08_47.asm b/audio/sfx/sfx_08_47.asm
deleted file mode 100755
index 47f8b645..00000000
--- a/audio/sfx/sfx_08_47.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_47_Ch1: ; 204aa (8:44aa)
- unknownnoise0x20 2, 161, 18
- endchannel
-; 0x204ae
diff --git a/audio/sfx/sfx_08_4a.asm b/audio/sfx/sfx_08_4a.asm
deleted file mode 100755
index f566332b..00000000
--- a/audio/sfx/sfx_08_4a.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_4a_Ch1: ; 204c4 (8:44c4)
- unknownnoise0x20 2, 161, 34
- endchannel
-; 0x204c8
diff --git a/audio/sfx/sfx_08_4b.asm b/audio/sfx/sfx_08_4b.asm
deleted file mode 100755
index 24e6bfc3..00000000
--- a/audio/sfx/sfx_08_4b.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_08_4b_Ch1: ; 204c8 (8:44c8)
- unknownnoise0x20 8, 241, 84
- endchannel
-; 0x204cc
diff --git a/audio/sfx/sfx_1f_01.asm b/audio/sfx/sfx_1f_01.asm
deleted file mode 100755
index dec8baa6..00000000
--- a/audio/sfx/sfx_1f_01.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_01_Ch1: ; 7c2fd (1f:42fd)
- unknownnoise0x20 0, 193, 51
- endchannel
-; 0x7c301
diff --git a/audio/sfx/sfx_1f_02.asm b/audio/sfx/sfx_1f_02.asm
deleted file mode 100755
index d383abed..00000000
--- a/audio/sfx/sfx_1f_02.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_02_Ch1: ; 7c301 (1f:4301)
- unknownnoise0x20 0, 177, 51
- endchannel
-; 0x7c305
diff --git a/audio/sfx/sfx_1f_03.asm b/audio/sfx/sfx_1f_03.asm
deleted file mode 100755
index 57e18697..00000000
--- a/audio/sfx/sfx_1f_03.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_03_Ch1: ; 7c305 (1f:4305)
- unknownnoise0x20 0, 161, 51
- endchannel
-; 0x7c309
diff --git a/audio/sfx/sfx_1f_04.asm b/audio/sfx/sfx_1f_04.asm
deleted file mode 100755
index 587d9f22..00000000
--- a/audio/sfx/sfx_1f_04.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_04_Ch1: ; 7c309 (1f:4309)
- unknownnoise0x20 0, 129, 51
- endchannel
-; 0x7c30d
diff --git a/audio/sfx/sfx_1f_06.asm b/audio/sfx/sfx_1f_06.asm
deleted file mode 100755
index 0470795c..00000000
--- a/audio/sfx/sfx_1f_06.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_06_Ch1: ; 7c320 (1f:4320)
- unknownnoise0x20 0, 81, 42
- endchannel
-; 0x7c324
diff --git a/audio/sfx/sfx_1f_08.asm b/audio/sfx/sfx_1f_08.asm
deleted file mode 100755
index 94c0e10d..00000000
--- a/audio/sfx/sfx_1f_08.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_08_Ch1: ; 7c32b (1f:432b)
- unknownnoise0x20 0, 129, 16
- endchannel
-; 0x7c32f
diff --git a/audio/sfx/sfx_1f_09.asm b/audio/sfx/sfx_1f_09.asm
deleted file mode 100755
index 4a9216e9..00000000
--- a/audio/sfx/sfx_1f_09.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_09_Ch1: ; 7c32f (1f:432f)
- unknownnoise0x20 0, 130, 35
- endchannel
-; 0x7c333
diff --git a/audio/sfx/sfx_1f_0a.asm b/audio/sfx/sfx_1f_0a.asm
deleted file mode 100755
index b3c618ca..00000000
--- a/audio/sfx/sfx_1f_0a.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_0a_Ch1: ; 7c333 (1f:4333)
- unknownnoise0x20 0, 130, 37
- endchannel
-; 0x7c337
diff --git a/audio/sfx/sfx_1f_0b.asm b/audio/sfx/sfx_1f_0b.asm
deleted file mode 100755
index 5d21ffb8..00000000
--- a/audio/sfx/sfx_1f_0b.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_0b_Ch1: ; 7c337 (1f:4337)
- unknownnoise0x20 0, 130, 38
- endchannel
-; 0x7c33b
diff --git a/audio/sfx/sfx_1f_0c.asm b/audio/sfx/sfx_1f_0c.asm
deleted file mode 100755
index 82cba9c0..00000000
--- a/audio/sfx/sfx_1f_0c.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_0c_Ch1: ; 7c33b (1f:433b)
- unknownnoise0x20 0, 161, 16
- endchannel
-; 0x7c33f
diff --git a/audio/sfx/sfx_1f_0d.asm b/audio/sfx/sfx_1f_0d.asm
deleted file mode 100755
index b7d6ca2f..00000000
--- a/audio/sfx/sfx_1f_0d.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_0d_Ch1: ; 7c33f (1f:433f)
- unknownnoise0x20 0, 162, 17
- endchannel
-; 0x7c343
diff --git a/audio/sfx/sfx_1f_0e.asm b/audio/sfx/sfx_1f_0e.asm
deleted file mode 100755
index 397d78b1..00000000
--- a/audio/sfx/sfx_1f_0e.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_0e_Ch1: ; 7c343 (1f:4343)
- unknownnoise0x20 0, 162, 80
- endchannel
-; 0x7c347
diff --git a/audio/sfx/sfx_1f_11.asm b/audio/sfx/sfx_1f_11.asm
deleted file mode 100755
index b0fe8073..00000000
--- a/audio/sfx/sfx_1f_11.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_11_Ch1: ; 7c355 (1f:4355)
- unknownnoise0x20 0, 145, 34
- endchannel
-; 0x7c359
diff --git a/audio/sfx/sfx_1f_12.asm b/audio/sfx/sfx_1f_12.asm
deleted file mode 100755
index 8fc78082..00000000
--- a/audio/sfx/sfx_1f_12.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_12_Ch1: ; 7c359 (1f:4359)
- unknownnoise0x20 0, 113, 34
- endchannel
-; 0x7c35d
diff --git a/audio/sfx/sfx_1f_13.asm b/audio/sfx/sfx_1f_13.asm
deleted file mode 100755
index 831d50c4..00000000
--- a/audio/sfx/sfx_1f_13.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-SFX_1f_13_Ch1: ; 7c35d (1f:435d)
- unknownnoise0x20 0, 97, 34
- endchannel
-; 0x7c361
diff --git a/audio/sfx/sfx_1f_67.asm b/audio/sfx/shooting_star.asm
index 0ba27bad..2cb831c8 100755..100644
--- a/audio/sfx/sfx_1f_67.asm
+++ b/audio/sfx/shooting_star.asm
@@ -1,4 +1,4 @@
-SFX_1f_67_Ch1: ; 7c72d (1f:472d)
+SFX_Shooting_Star_Ch1: ; 7c72d (1f:472d)
dutycycle 228
unknownsfx0x10 47
unknownsfx0x20 4, 64, 224, 7
@@ -12,4 +12,3 @@ SFX_1f_67_Ch1: ; 7c72d (1f:472d)
unknownsfx0x20 15, 18, 224, 7
unknownsfx0x10 8
endchannel
-; 0x7c758
diff --git a/audio/sfx/sfx_02_48.asm b/audio/sfx/shrink_1.asm
index 58dc2934..61ca1933 100755..100644
--- a/audio/sfx/sfx_02_48.asm
+++ b/audio/sfx/shrink_1.asm
@@ -1,4 +1,4 @@
-SFX_02_48_Ch1: ; 854e (2:454e)
+SFX_Shrink_1_Ch1: ; 854e (2:454e)
duty 1
unknownsfx0x10 23
unknownsfx0x20 15, 215, 0, 6
@@ -8,4 +8,3 @@ SFX_02_48_Ch1: ; 854e (2:454e)
unknownsfx0x20 15, 23, 0, 4
unknownsfx0x10 8
endchannel
-; 0x8569
diff --git a/audio/sfx/sfx_1f_48.asm b/audio/sfx/shrink_3.asm
index c0854070..59fe1556 100755..100644
--- a/audio/sfx/sfx_1f_48.asm
+++ b/audio/sfx/shrink_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_48_Ch1: ; 7c52b (1f:452b)
+SFX_Shrink_3_Ch1: ; 7c52b (1f:452b)
duty 1
unknownsfx0x10 23
unknownsfx0x20 15, 215, 0, 6
@@ -8,4 +8,3 @@ SFX_1f_48_Ch1: ; 7c52b (1f:452b)
unknownsfx0x20 15, 23, 0, 4
unknownsfx0x10 8
endchannel
-; 0x7c546
diff --git a/audio/sfx/sfx_08_77.asm b/audio/sfx/silph_scope.asm
index 54a0aa3b..66e4fe95 100755..100644
--- a/audio/sfx/sfx_08_77.asm
+++ b/audio/sfx/silph_scope.asm
@@ -1,4 +1,4 @@
-SFX_08_77_Ch1: ; 20412 (8:4412)
+SFX_Silph_Scope_Ch1: ; 20412 (8:4412)
duty 0
unknownsfx0x20 0, 210, 0, 7
unknownsfx0x20 0, 210, 64, 7
@@ -7,4 +7,3 @@ SFX_08_77_Ch1: ; 20412 (8:4412)
unknownsfx0x20 10, 225, 224, 7
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x2042d
diff --git a/audio/sfx/sfx_1f_66.asm b/audio/sfx/slots_new_spin.asm
index 7ffa9bd2..d122517d 100755..100644
--- a/audio/sfx/sfx_1f_66.asm
+++ b/audio/sfx/slots_new_spin.asm
@@ -1,4 +1,4 @@
-SFX_1f_66_Ch1: ; 7c70f (1f:470f)
+SFX_Slots_New_Spin_Ch1: ; 7c70f (1f:470f)
duty 3
unknownsfx0x20 5, 225, 0, 7
unknownsfx0x20 2, 225, 128, 7
@@ -6,10 +6,9 @@ SFX_1f_66_Ch1: ; 7c70f (1f:470f)
endchannel
-SFX_1f_66_Ch2: ; 7c71e (1f:471e)
+SFX_Slots_New_Spin_Ch2: ; 7c71e (1f:471e)
duty 2
unknownsfx0x20 4, 193, 193, 6
unknownsfx0x20 2, 193, 65, 7
unknownsfx0x20 15, 209, 129, 7
endchannel
-; 0x7c72d
diff --git a/audio/sfx/sfx_1f_65.asm b/audio/sfx/slots_reward.asm
index 1f262365..2400c0df 100755..100644
--- a/audio/sfx/sfx_1f_65.asm
+++ b/audio/sfx/slots_reward.asm
@@ -1,6 +1,5 @@
-SFX_1f_65_Ch1: ; 7c704 (1f:4704)
+SFX_Slots_Reward_Ch1: ; 7c704 (1f:4704)
duty 2
unknownsfx0x20 2, 241, 0, 7
unknownsfx0x20 8, 129, 224, 7
endchannel
-; 0x7c70f
diff --git a/audio/sfx/sfx_1f_64.asm b/audio/sfx/slots_stop_wheel.asm
index 3e6ec789..e67af4c4 100755..100644
--- a/audio/sfx/sfx_1f_64.asm
+++ b/audio/sfx/slots_stop_wheel.asm
@@ -1,7 +1,6 @@
-SFX_1f_64_Ch1: ; 7c6f5 (1f:46f5)
+SFX_Slots_Stop_Wheel_Ch1: ; 7c6f5 (1f:46f5)
duty 2
unknownsfx0x20 1, 242, 160, 6
unknownsfx0x20 1, 242, 224, 6
unknownsfx0x20 8, 241, 0, 7
endchannel
-; 0x7c704
diff --git a/audio/sfx/sfx_02_01.asm b/audio/sfx/snare1_1.asm
index dfae6786..3aa0f74e 100755..100644
--- a/audio/sfx/sfx_02_01.asm
+++ b/audio/sfx/snare1_1.asm
@@ -1,4 +1,3 @@
-SFX_02_01_Ch1: ; 82fd (2:42fd)
+SFX_Snare1_1_Ch1: ; 82fd (2:42fd)
unknownnoise0x20 0, 193, 51
endchannel
-; 0x8301
diff --git a/audio/sfx/snare1_2.asm b/audio/sfx/snare1_2.asm
new file mode 100644
index 00000000..7d0c3413
--- /dev/null
+++ b/audio/sfx/snare1_2.asm
@@ -0,0 +1,3 @@
+SFX_Snare1_2_Ch1: ; 202fd (8:42fd)
+ unknownnoise0x20 0, 193, 51
+ endchannel
diff --git a/audio/sfx/snare1_3.asm b/audio/sfx/snare1_3.asm
new file mode 100644
index 00000000..8d92bff6
--- /dev/null
+++ b/audio/sfx/snare1_3.asm
@@ -0,0 +1,3 @@
+SFX_Snare1_3_Ch1: ; 7c2fd (1f:42fd)
+ unknownnoise0x20 0, 193, 51
+ endchannel
diff --git a/audio/sfx/sfx_02_02.asm b/audio/sfx/snare2_1.asm
index 8d0f3a34..7636a4f3 100755..100644
--- a/audio/sfx/sfx_02_02.asm
+++ b/audio/sfx/snare2_1.asm
@@ -1,4 +1,3 @@
-SFX_02_02_Ch1: ; 8301 (2:4301)
+SFX_Snare2_1_Ch1: ; 8301 (2:4301)
unknownnoise0x20 0, 177, 51
endchannel
-; 0x8305
diff --git a/audio/sfx/snare2_2.asm b/audio/sfx/snare2_2.asm
new file mode 100644
index 00000000..4c34e91a
--- /dev/null
+++ b/audio/sfx/snare2_2.asm
@@ -0,0 +1,3 @@
+SFX_Snare2_2_Ch1: ; 20301 (8:4301)
+ unknownnoise0x20 0, 177, 51
+ endchannel
diff --git a/audio/sfx/snare2_3.asm b/audio/sfx/snare2_3.asm
new file mode 100644
index 00000000..eb816f54
--- /dev/null
+++ b/audio/sfx/snare2_3.asm
@@ -0,0 +1,3 @@
+SFX_Snare2_3_Ch1: ; 7c301 (1f:4301)
+ unknownnoise0x20 0, 177, 51
+ endchannel
diff --git a/audio/sfx/sfx_02_03.asm b/audio/sfx/snare3_1.asm
index 9b8745e7..b7e319b2 100755..100644
--- a/audio/sfx/sfx_02_03.asm
+++ b/audio/sfx/snare3_1.asm
@@ -1,4 +1,3 @@
-SFX_02_03_Ch1: ; 8305 (2:4305)
+SFX_Snare3_1_Ch1: ; 8305 (2:4305)
unknownnoise0x20 0, 161, 51
endchannel
-; 0x8309
diff --git a/audio/sfx/snare3_2.asm b/audio/sfx/snare3_2.asm
new file mode 100644
index 00000000..ce889e55
--- /dev/null
+++ b/audio/sfx/snare3_2.asm
@@ -0,0 +1,3 @@
+SFX_Snare3_2_Ch1: ; 20305 (8:4305)
+ unknownnoise0x20 0, 161, 51
+ endchannel
diff --git a/audio/sfx/snare3_3.asm b/audio/sfx/snare3_3.asm
new file mode 100644
index 00000000..c94f436f
--- /dev/null
+++ b/audio/sfx/snare3_3.asm
@@ -0,0 +1,3 @@
+SFX_Snare3_3_Ch1: ; 7c305 (1f:4305)
+ unknownnoise0x20 0, 161, 51
+ endchannel
diff --git a/audio/sfx/sfx_02_04.asm b/audio/sfx/snare4_1.asm
index a0fe41e3..20c62731 100755..100644
--- a/audio/sfx/sfx_02_04.asm
+++ b/audio/sfx/snare4_1.asm
@@ -1,4 +1,3 @@
-SFX_02_04_Ch1: ; 8309 (2:4309)
+SFX_Snare4_1_Ch1: ; 8309 (2:4309)
unknownnoise0x20 0, 129, 51
endchannel
-; 0x830d
diff --git a/audio/sfx/snare4_2.asm b/audio/sfx/snare4_2.asm
new file mode 100644
index 00000000..da38dd62
--- /dev/null
+++ b/audio/sfx/snare4_2.asm
@@ -0,0 +1,3 @@
+SFX_Snare4_2_Ch1: ; 20309 (8:4309)
+ unknownnoise0x20 0, 129, 51
+ endchannel
diff --git a/audio/sfx/snare4_3.asm b/audio/sfx/snare4_3.asm
new file mode 100644
index 00000000..4496260b
--- /dev/null
+++ b/audio/sfx/snare4_3.asm
@@ -0,0 +1,3 @@
+SFX_Snare4_3_Ch1: ; 7c309 (1f:4309)
+ unknownnoise0x20 0, 129, 51
+ endchannel
diff --git a/audio/sfx/sfx_02_05.asm b/audio/sfx/snare5_1.asm
index f5df11e2..e0ae8b4c 100755..100644
--- a/audio/sfx/sfx_02_05.asm
+++ b/audio/sfx/snare5_1.asm
@@ -1,4 +1,4 @@
-SFX_02_05_Ch1: ; 830d (2:430d)
+SFX_Snare5_1_Ch1: ; 830d (2:430d)
unknownnoise0x20 7, 132, 55
unknownnoise0x20 6, 132, 54
unknownnoise0x20 5, 131, 53
@@ -6,4 +6,3 @@ SFX_02_05_Ch1: ; 830d (2:430d)
unknownnoise0x20 3, 130, 51
unknownnoise0x20 2, 129, 50
endchannel
-; 0x8320
diff --git a/audio/sfx/sfx_08_05.asm b/audio/sfx/snare5_2.asm
index 1568969c..649463cc 100755..100644
--- a/audio/sfx/sfx_08_05.asm
+++ b/audio/sfx/snare5_2.asm
@@ -1,4 +1,4 @@
-SFX_08_05_Ch1: ; 2030d (8:430d)
+SFX_Snare5_2_Ch1: ; 2030d (8:430d)
unknownnoise0x20 7, 132, 55
unknownnoise0x20 6, 132, 54
unknownnoise0x20 5, 131, 53
@@ -6,4 +6,3 @@ SFX_08_05_Ch1: ; 2030d (8:430d)
unknownnoise0x20 3, 130, 51
unknownnoise0x20 2, 129, 50
endchannel
-; 0x20320
diff --git a/audio/sfx/sfx_1f_05.asm b/audio/sfx/snare5_3.asm
index 1edcdf20..33a169b9 100755..100644
--- a/audio/sfx/sfx_1f_05.asm
+++ b/audio/sfx/snare5_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_05_Ch1: ; 7c30d (1f:430d)
+SFX_Snare5_3_Ch1: ; 7c30d (1f:430d)
unknownnoise0x20 7, 132, 55
unknownnoise0x20 6, 132, 54
unknownnoise0x20 5, 131, 53
@@ -6,4 +6,3 @@ SFX_1f_05_Ch1: ; 7c30d (1f:430d)
unknownnoise0x20 3, 130, 51
unknownnoise0x20 2, 129, 50
endchannel
-; 0x7c320
diff --git a/audio/sfx/sfx_02_08.asm b/audio/sfx/snare6_1.asm
index 606587a0..4779226f 100755..100644
--- a/audio/sfx/sfx_02_08.asm
+++ b/audio/sfx/snare6_1.asm
@@ -1,4 +1,3 @@
-SFX_02_08_Ch1: ; 832b (2:432b)
+SFX_Snare6_1_Ch1: ; 832b (2:432b)
unknownnoise0x20 0, 129, 16
endchannel
-; 0x832f
diff --git a/audio/sfx/snare6_2.asm b/audio/sfx/snare6_2.asm
new file mode 100644
index 00000000..36359d02
--- /dev/null
+++ b/audio/sfx/snare6_2.asm
@@ -0,0 +1,3 @@
+SFX_Snare6_2_Ch1: ; 2032b (8:432b)
+ unknownnoise0x20 0, 129, 16
+ endchannel
diff --git a/audio/sfx/snare6_3.asm b/audio/sfx/snare6_3.asm
new file mode 100644
index 00000000..d4807ff6
--- /dev/null
+++ b/audio/sfx/snare6_3.asm
@@ -0,0 +1,3 @@
+SFX_Snare6_3_Ch1: ; 7c32b (1f:432b)
+ unknownnoise0x20 0, 129, 16
+ endchannel
diff --git a/audio/sfx/sfx_02_09.asm b/audio/sfx/snare7_1.asm
index 6b35f5aa..c53642ed 100755..100644
--- a/audio/sfx/sfx_02_09.asm
+++ b/audio/sfx/snare7_1.asm
@@ -1,4 +1,3 @@
-SFX_02_09_Ch1: ; 832f (2:432f)
+SFX_Snare7_1_Ch1: ; 832f (2:432f)
unknownnoise0x20 0, 130, 35
endchannel
-; 0x8333
diff --git a/audio/sfx/snare7_2.asm b/audio/sfx/snare7_2.asm
new file mode 100644
index 00000000..066aaa53
--- /dev/null
+++ b/audio/sfx/snare7_2.asm
@@ -0,0 +1,3 @@
+SFX_Snare7_2_Ch1: ; 2032f (8:432f)
+ unknownnoise0x20 0, 130, 35
+ endchannel
diff --git a/audio/sfx/snare7_3.asm b/audio/sfx/snare7_3.asm
new file mode 100644
index 00000000..1b058a9b
--- /dev/null
+++ b/audio/sfx/snare7_3.asm
@@ -0,0 +1,3 @@
+SFX_Snare7_3_Ch1: ; 7c32f (1f:432f)
+ unknownnoise0x20 0, 130, 35
+ endchannel
diff --git a/audio/sfx/sfx_02_0a.asm b/audio/sfx/snare8_1.asm
index cf9539b6..6269c7dc 100755..100644
--- a/audio/sfx/sfx_02_0a.asm
+++ b/audio/sfx/snare8_1.asm
@@ -1,4 +1,3 @@
-SFX_02_0a_Ch1: ; 8333 (2:4333)
+SFX_Snare8_1_Ch1: ; 8333 (2:4333)
unknownnoise0x20 0, 130, 37
endchannel
-; 0x8337
diff --git a/audio/sfx/snare8_2.asm b/audio/sfx/snare8_2.asm
new file mode 100644
index 00000000..4c5bb18e
--- /dev/null
+++ b/audio/sfx/snare8_2.asm
@@ -0,0 +1,3 @@
+SFX_Snare8_2_Ch1: ; 20333 (8:4333)
+ unknownnoise0x20 0, 130, 37
+ endchannel
diff --git a/audio/sfx/snare8_3.asm b/audio/sfx/snare8_3.asm
new file mode 100644
index 00000000..d1f0edc0
--- /dev/null
+++ b/audio/sfx/snare8_3.asm
@@ -0,0 +1,3 @@
+SFX_Snare8_3_Ch1: ; 7c333 (1f:4333)
+ unknownnoise0x20 0, 130, 37
+ endchannel
diff --git a/audio/sfx/sfx_02_0b.asm b/audio/sfx/snare9_1.asm
index f6142168..44b2e8c7 100755..100644
--- a/audio/sfx/sfx_02_0b.asm
+++ b/audio/sfx/snare9_1.asm
@@ -1,4 +1,3 @@
-SFX_02_0b_Ch1: ; 8337 (2:4337)
+SFX_Snare9_1_Ch1: ; 8337 (2:4337)
unknownnoise0x20 0, 130, 38
endchannel
-; 0x833b
diff --git a/audio/sfx/snare9_2.asm b/audio/sfx/snare9_2.asm
new file mode 100644
index 00000000..1d20de2d
--- /dev/null
+++ b/audio/sfx/snare9_2.asm
@@ -0,0 +1,3 @@
+SFX_Snare9_2_Ch1: ; 20337 (8:4337)
+ unknownnoise0x20 0, 130, 38
+ endchannel
diff --git a/audio/sfx/snare9_3.asm b/audio/sfx/snare9_3.asm
new file mode 100644
index 00000000..849f4404
--- /dev/null
+++ b/audio/sfx/snare9_3.asm
@@ -0,0 +1,3 @@
+SFX_Snare9_3_Ch1: ; 7c337 (1f:4337)
+ unknownnoise0x20 0, 130, 38
+ endchannel
diff --git a/audio/sfx/sfx_02_54.asm b/audio/sfx/ss_anne_horn_1.asm
index b15a29cc..3989c148 100755..100644
--- a/audio/sfx/sfx_02_54.asm
+++ b/audio/sfx/ss_anne_horn_1.asm
@@ -1,4 +1,4 @@
-SFX_02_54_Ch1: ; 866d (2:466d)
+SFX_SS_Anne_Horn_1_Ch1: ; 866d (2:466d)
duty 2
unknownsfx0x20 15, 240, 0, 5
unknownsfx0x20 4, 0, 0, 0
@@ -10,7 +10,7 @@ SFX_02_54_Ch1: ; 866d (2:466d)
endchannel
-SFX_02_54_Ch2: ; 868c (2:468c)
+SFX_SS_Anne_Horn_1_Ch2: ; 868c (2:468c)
duty 3
unknownsfx0x20 15, 240, 130, 4
unknownsfx0x20 4, 0, 0, 0
@@ -20,4 +20,3 @@ SFX_02_54_Ch2: ; 868c (2:468c)
unknownsfx0x20 15, 240, 130, 4
unknownsfx0x20 15, 242, 130, 4
endchannel
-; 0x86ab
diff --git a/audio/sfx/sfx_1f_54.asm b/audio/sfx/ss_anne_horn_3.asm
index 1a6a1031..c671b6cb 100755..100644
--- a/audio/sfx/sfx_1f_54.asm
+++ b/audio/sfx/ss_anne_horn_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_54_Ch1: ; 7c64a (1f:464a)
+SFX_SS_Anne_Horn_3_Ch1: ; 7c64a (1f:464a)
duty 2
unknownsfx0x20 15, 240, 0, 5
unknownsfx0x20 4, 0, 0, 0
@@ -10,7 +10,7 @@ SFX_1f_54_Ch1: ; 7c64a (1f:464a)
endchannel
-SFX_1f_54_Ch2: ; 7c669 (1f:4669)
+SFX_SS_Anne_Horn_3_Ch2: ; 7c669 (1f:4669)
duty 3
unknownsfx0x20 15, 240, 130, 4
unknownsfx0x20 4, 0, 0, 0
@@ -20,4 +20,3 @@ SFX_1f_54_Ch2: ; 7c669 (1f:4669)
unknownsfx0x20 15, 240, 130, 4
unknownsfx0x20 15, 242, 130, 4
endchannel
-; 0x7c688
diff --git a/audio/sfx/sfx_02_3f.asm b/audio/sfx/start_menu_1.asm
index 57d5feca..350b08ce 100755..100644
--- a/audio/sfx/sfx_02_3f.asm
+++ b/audio/sfx/start_menu_1.asm
@@ -1,5 +1,4 @@
-SFX_02_3f_Ch1: ; 83c3 (2:43c3)
+SFX_Start_Menu_1_Ch1: ; 83c3 (2:43c3)
unknownnoise0x20 1, 226, 51
unknownnoise0x20 8, 225, 34
endchannel
-; 0x83ca
diff --git a/audio/sfx/sfx_08_3f.asm b/audio/sfx/start_menu_2.asm
index 6351f53c..aabd41ce 100755..100644
--- a/audio/sfx/sfx_08_3f.asm
+++ b/audio/sfx/start_menu_2.asm
@@ -1,5 +1,4 @@
-SFX_08_3f_Ch1: ; 203d6 (8:43d6)
+SFX_Start_Menu_2_Ch1: ; 203d6 (8:43d6)
unknownnoise0x20 1, 226, 51
unknownnoise0x20 8, 225, 34
endchannel
-; 0x203dd
diff --git a/audio/sfx/sfx_1f_3f.asm b/audio/sfx/start_menu_3.asm
index 017daf8a..566f11f4 100755..100644
--- a/audio/sfx/sfx_1f_3f.asm
+++ b/audio/sfx/start_menu_3.asm
@@ -1,5 +1,4 @@
-SFX_1f_3f_Ch1: ; 7c3c3 (1f:43c3)
+SFX_Start_Menu_3_Ch1: ; 7c3c3 (1f:43c3)
unknownnoise0x20 1, 226, 51
unknownnoise0x20 8, 225, 34
endchannel
-; 0x7c3ca
diff --git a/audio/sfx/sfx_08_5a.asm b/audio/sfx/super_effective.asm
index 788ac25e..6759ef6a 100755..100644
--- a/audio/sfx/sfx_08_5a.asm
+++ b/audio/sfx/super_effective.asm
@@ -1,5 +1,4 @@
-SFX_08_5a_Ch1: ; 20574 (8:4574)
+SFX_Super_Effective_Ch1: ; 20574 (8:4574)
unknownnoise0x20 4, 241, 52
unknownnoise0x20 15, 242, 100
endchannel
-; 0x2057b
diff --git a/audio/sfx/sfx_02_58.asm b/audio/sfx/swap_1.asm
index bf45fc6c..c96d8522 100755..100644
--- a/audio/sfx/sfx_02_58.asm
+++ b/audio/sfx/swap_1.asm
@@ -1,12 +1,11 @@
-SFX_02_58_Ch1: ; 83f8 (2:43f8)
+SFX_Swap_1_Ch1: ; 83f8 (2:43f8)
duty 2
unknownsfx0x20 8, 225, 64, 7
endchannel
-SFX_02_58_Ch2: ; 83ff (2:43ff)
+SFX_Swap_1_Ch2: ; 83ff (2:43ff)
duty 2
unknownsfx0x20 2, 8, 0, 0
unknownsfx0x20 8, 177, 65, 7
endchannel
-; 0x840a
diff --git a/audio/sfx/sfx_1f_58.asm b/audio/sfx/swap_3.asm
index 6a27c732..95aa3f19 100755..100644
--- a/audio/sfx/sfx_1f_58.asm
+++ b/audio/sfx/swap_3.asm
@@ -1,12 +1,11 @@
-SFX_1f_58_Ch1: ; 7c3e1 (1f:43e1)
+SFX_Swap_3_Ch1: ; 7c3e1 (1f:43e1)
duty 2
unknownsfx0x20 8, 225, 64, 7
endchannel
-SFX_1f_58_Ch2: ; 7c3e8 (1f:43e8)
+SFX_Swap_3_Ch2: ; 7c3e8 (1f:43e8)
duty 2
unknownsfx0x20 2, 8, 0, 0
unknownsfx0x20 8, 177, 65, 7
endchannel
-; 0x7c3f3
diff --git a/audio/sfx/sfx_02_49.asm b/audio/sfx/switch_1.asm
index d2a9922b..040e95aa 100755..100644
--- a/audio/sfx/sfx_02_49.asm
+++ b/audio/sfx/switch_1.asm
@@ -1,4 +1,4 @@
-SFX_02_49_Ch1: ; 8569 (2:4569)
+SFX_Switch_1_Ch1: ; 8569 (2:4569)
duty 2
unknownsfx0x20 4, 0, 0, 0
unknownsfx0x20 2, 241, 128, 6
@@ -6,4 +6,3 @@ SFX_02_49_Ch1: ; 8569 (2:4569)
unknownsfx0x20 4, 241, 128, 7
unknownsfx0x20 4, 0, 0, 0
endchannel
-; 0x8580
diff --git a/audio/sfx/sfx_1f_49.asm b/audio/sfx/switch_3.asm
index f1ae8229..cbe6c8b2 100755..100644
--- a/audio/sfx/sfx_1f_49.asm
+++ b/audio/sfx/switch_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_49_Ch1: ; 7c546 (1f:4546)
+SFX_Switch_3_Ch1: ; 7c546 (1f:4546)
duty 2
unknownsfx0x20 4, 0, 0, 0
unknownsfx0x20 2, 241, 128, 6
@@ -6,4 +6,3 @@ SFX_1f_49_Ch1: ; 7c546 (1f:4546)
unknownsfx0x20 4, 241, 128, 7
unknownsfx0x20 4, 0, 0, 0
endchannel
-; 0x7c55d
diff --git a/audio/sfx/sfx_02_4c.asm b/audio/sfx/teleport_enter1_1.asm
index 4bd47818..f9fc5ee2 100755..100644
--- a/audio/sfx/sfx_02_4c.asm
+++ b/audio/sfx/teleport_enter1_1.asm
@@ -1,4 +1,4 @@
-SFX_02_4c_Ch1: ; 85b0 (2:45b0)
+SFX_Teleport_Enter1_1_Ch1: ; 85b0 (2:45b0)
duty 1
unknownsfx0x10 23
unknownsfx0x20 15, 215, 0, 7
@@ -8,4 +8,3 @@ SFX_02_4c_Ch1: ; 85b0 (2:45b0)
unknownsfx0x20 15, 23, 0, 5
unknownsfx0x10 8
endchannel
-; 0x85cb
diff --git a/audio/sfx/sfx_1f_4c.asm b/audio/sfx/teleport_enter1_3.asm
index 1f55c9c2..24220173 100755..100644
--- a/audio/sfx/sfx_1f_4c.asm
+++ b/audio/sfx/teleport_enter1_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_4c_Ch1: ; 7c58d (1f:458d)
+SFX_Teleport_Enter1_3_Ch1: ; 7c58d (1f:458d)
duty 1
unknownsfx0x10 23
unknownsfx0x20 15, 215, 0, 7
@@ -8,4 +8,3 @@ SFX_1f_4c_Ch1: ; 7c58d (1f:458d)
unknownsfx0x20 15, 23, 0, 5
unknownsfx0x10 8
endchannel
-; 0x7c5a8
diff --git a/audio/sfx/sfx_02_4f.asm b/audio/sfx/teleport_enter2_1.asm
index 268586bb..c3c593b2 100755..100644
--- a/audio/sfx/sfx_02_4f.asm
+++ b/audio/sfx/teleport_enter2_1.asm
@@ -1,7 +1,6 @@
-SFX_02_4f_Ch1: ; 85e1 (2:45e1)
+SFX_Teleport_Enter2_1_Ch1: ; 85e1 (2:45e1)
unknownnoise0x20 2, 241, 50
unknownnoise0x20 2, 0, 0
unknownnoise0x20 2, 241, 34
unknownnoise0x20 1, 0, 0
endchannel
-; 0x85ee
diff --git a/audio/sfx/sfx_1f_4f.asm b/audio/sfx/teleport_enter2_3.asm
index 5b73d196..628bb9fa 100755..100644
--- a/audio/sfx/sfx_1f_4f.asm
+++ b/audio/sfx/teleport_enter2_3.asm
@@ -1,7 +1,6 @@
-SFX_1f_4f_Ch1: ; 7c5be (1f:45be)
+SFX_Teleport_Enter2_3_Ch1: ; 7c5be (1f:45be)
unknownnoise0x20 2, 241, 50
unknownnoise0x20 2, 0, 0
unknownnoise0x20 2, 241, 34
unknownnoise0x20 1, 0, 0
endchannel
-; 0x7c5cb
diff --git a/audio/sfx/sfx_02_4b.asm b/audio/sfx/teleport_exit1_1.asm
index 5826cf25..46ba29cf 100755..100644
--- a/audio/sfx/sfx_02_4b.asm
+++ b/audio/sfx/teleport_exit1_1.asm
@@ -1,4 +1,4 @@
-SFX_02_4b_Ch1: ; 8595 (2:4595)
+SFX_Teleport_Exit1_1_Ch1: ; 8595 (2:4595)
duty 1
unknownsfx0x10 23
unknownsfx0x20 15, 215, 0, 5
@@ -8,4 +8,3 @@ SFX_02_4b_Ch1: ; 8595 (2:4595)
unknownsfx0x20 15, 23, 0, 7
unknownsfx0x10 8
endchannel
-; 0x85b0
diff --git a/audio/sfx/sfx_1f_4b.asm b/audio/sfx/teleport_exit1_3.asm
index 2dc74200..8d203212 100755..100644
--- a/audio/sfx/sfx_1f_4b.asm
+++ b/audio/sfx/teleport_exit1_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_4b_Ch1: ; 7c572 (1f:4572)
+SFX_Teleport_Exit1_3_Ch1: ; 7c572 (1f:4572)
duty 1
unknownsfx0x10 23
unknownsfx0x20 15, 215, 0, 5
@@ -8,4 +8,3 @@ SFX_1f_4b_Ch1: ; 7c572 (1f:4572)
unknownsfx0x20 15, 23, 0, 7
unknownsfx0x10 8
endchannel
-; 0x7c58d
diff --git a/audio/sfx/sfx_02_4d.asm b/audio/sfx/teleport_exit2_1.asm
index b3028e82..37159083 100755..100644
--- a/audio/sfx/sfx_02_4d.asm
+++ b/audio/sfx/teleport_exit2_1.asm
@@ -1,7 +1,6 @@
-SFX_02_4d_Ch1: ; 85cb (2:45cb)
+SFX_Teleport_Exit2_1_Ch1: ; 85cb (2:45cb)
duty 1
unknownsfx0x10 22
unknownsfx0x20 15, 210, 0, 5
unknownsfx0x10 8
endchannel
-; 0x85d6
diff --git a/audio/sfx/sfx_1f_4d.asm b/audio/sfx/teleport_exit2_3.asm
index 9c5686ec..c7ad054b 100755..100644
--- a/audio/sfx/sfx_1f_4d.asm
+++ b/audio/sfx/teleport_exit2_3.asm
@@ -1,7 +1,6 @@
-SFX_1f_4d_Ch1: ; 7c5a8 (1f:45a8)
+SFX_Teleport_Exit2_3_Ch1: ; 7c5a8 (1f:45a8)
duty 1
unknownsfx0x10 22
unknownsfx0x20 15, 210, 0, 5
unknownsfx0x10 8
endchannel
-; 0x7c5b3
diff --git a/audio/sfx/sfx_02_3c.asm b/audio/sfx/tink_1.asm
index 24858e3e..a8099ae1 100755..100644
--- a/audio/sfx/sfx_02_3c.asm
+++ b/audio/sfx/tink_1.asm
@@ -1,4 +1,4 @@
-SFX_02_3c_Ch1: ; 840a (2:440a)
+SFX_Tink_1_Ch1: ; 840a (2:440a)
duty 2
unknownsfx0x10 58
unknownsfx0x20 4, 242, 0, 2
@@ -6,4 +6,3 @@ SFX_02_3c_Ch1: ; 840a (2:440a)
unknownsfx0x20 8, 226, 0, 2
unknownsfx0x10 8
endchannel
-; 0x841b
diff --git a/audio/sfx/sfx_08_3c.asm b/audio/sfx/tink_2.asm
index 2bbc9caf..cca37381 100755..100644
--- a/audio/sfx/sfx_08_3c.asm
+++ b/audio/sfx/tink_2.asm
@@ -1,4 +1,4 @@
-SFX_08_3c_Ch1: ; 203dd (8:43dd)
+SFX_Tink_2_Ch1: ; 203dd (8:43dd)
duty 2
unknownsfx0x10 58
unknownsfx0x20 4, 242, 0, 2
@@ -6,4 +6,3 @@ SFX_08_3c_Ch1: ; 203dd (8:43dd)
unknownsfx0x20 8, 226, 0, 2
unknownsfx0x10 8
endchannel
-; 0x203ee
diff --git a/audio/sfx/sfx_1f_3c.asm b/audio/sfx/tink_3.asm
index 051a4376..7299b7ae 100755..100644
--- a/audio/sfx/sfx_1f_3c.asm
+++ b/audio/sfx/tink_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_3c_Ch1: ; 7c3f3 (1f:43f3)
+SFX_Tink_3_Ch1: ; 7c3f3 (1f:43f3)
duty 2
unknownsfx0x10 58
unknownsfx0x20 4, 242, 0, 2
@@ -6,4 +6,3 @@ SFX_1f_3c_Ch1: ; 7c3f3 (1f:43f3)
unknownsfx0x20 8, 226, 0, 2
unknownsfx0x10 8
endchannel
-; 0x7c404
diff --git a/audio/sfx/sfx_02_44.asm b/audio/sfx/trade_machine_1.asm
index 594b4b17..ce2bbc0a 100755..100644
--- a/audio/sfx/sfx_02_44.asm
+++ b/audio/sfx/trade_machine_1.asm
@@ -1,8 +1,7 @@
-SFX_02_44_Ch1: ; 84ee (2:44ee)
+SFX_Trade_Machine_1_Ch1: ; 84ee (2:44ee)
duty 2
unknownsfx0x10 21
unknownsfx0x20 15, 240, 240, 4
unknownsfx0x20 15, 242, 80, 6
unknownsfx0x10 8
endchannel
-; 0x84fd
diff --git a/audio/sfx/sfx_1f_44.asm b/audio/sfx/trade_machine_3.asm
index 4efbe345..f7515ffb 100755..100644
--- a/audio/sfx/sfx_1f_44.asm
+++ b/audio/sfx/trade_machine_3.asm
@@ -1,8 +1,7 @@
-SFX_1f_44_Ch1: ; 7c4c7 (1f:44c7)
+SFX_Trade_Machine_3_Ch1: ; 7c4c7 (1f:44c7)
duty 2
unknownsfx0x10 21
unknownsfx0x20 15, 240, 240, 4
unknownsfx0x20 15, 242, 80, 6
unknownsfx0x10 8
endchannel
-; 0x7c4d6
diff --git a/audio/sfx/sfx_02_06.asm b/audio/sfx/triangle1_1.asm
index cccff91b..fded5b94 100755..100644
--- a/audio/sfx/sfx_02_06.asm
+++ b/audio/sfx/triangle1_1.asm
@@ -1,4 +1,3 @@
-SFX_02_06_Ch1: ; 8320 (2:4320)
+SFX_Triangle1_1_Ch1: ; 8320 (2:4320)
unknownnoise0x20 0, 81, 42
endchannel
-; 0x8324
diff --git a/audio/sfx/triangle1_2.asm b/audio/sfx/triangle1_2.asm
new file mode 100644
index 00000000..4f4474ee
--- /dev/null
+++ b/audio/sfx/triangle1_2.asm
@@ -0,0 +1,3 @@
+SFX_Triangle1_2_Ch1: ; 20320 (8:4320)
+ unknownnoise0x20 0, 81, 42
+ endchannel
diff --git a/audio/sfx/triangle1_3.asm b/audio/sfx/triangle1_3.asm
new file mode 100644
index 00000000..d1ad9390
--- /dev/null
+++ b/audio/sfx/triangle1_3.asm
@@ -0,0 +1,3 @@
+SFX_Triangle1_3_Ch1: ; 7c320 (1f:4320)
+ unknownnoise0x20 0, 81, 42
+ endchannel
diff --git a/audio/sfx/sfx_02_07.asm b/audio/sfx/triangle2_1.asm
index d960c62e..f9c4bc6a 100755..100644
--- a/audio/sfx/sfx_02_07.asm
+++ b/audio/sfx/triangle2_1.asm
@@ -1,5 +1,4 @@
-SFX_02_07_Ch1: ; 8324 (2:4324)
+SFX_Triangle2_1_Ch1: ; 8324 (2:4324)
unknownnoise0x20 1, 65, 43
unknownnoise0x20 0, 97, 42
endchannel
-; 0x832b
diff --git a/audio/sfx/sfx_08_07.asm b/audio/sfx/triangle2_2.asm
index 7392a1d8..feddf1af 100755..100644
--- a/audio/sfx/sfx_08_07.asm
+++ b/audio/sfx/triangle2_2.asm
@@ -1,5 +1,4 @@
-SFX_08_07_Ch1: ; 20324 (8:4324)
+SFX_Triangle2_2_Ch1: ; 20324 (8:4324)
unknownnoise0x20 1, 65, 43
unknownnoise0x20 0, 97, 42
endchannel
-; 0x2032b
diff --git a/audio/sfx/sfx_1f_07.asm b/audio/sfx/triangle2_3.asm
index 0471d63a..a4acff1b 100755..100644
--- a/audio/sfx/sfx_1f_07.asm
+++ b/audio/sfx/triangle2_3.asm
@@ -1,5 +1,4 @@
-SFX_1f_07_Ch1: ; 7c324 (1f:4324)
+SFX_Triangle2_3_Ch1: ; 7c324 (1f:4324)
unknownnoise0x20 1, 65, 43
unknownnoise0x20 0, 97, 42
endchannel
-; 0x7c32b
diff --git a/audio/sfx/sfx_02_10.asm b/audio/sfx/triangle3_1.asm
index 04d67fba..e4c3c919 100755..100644
--- a/audio/sfx/sfx_02_10.asm
+++ b/audio/sfx/triangle3_1.asm
@@ -1,5 +1,4 @@
-SFX_02_10_Ch1: ; 834e (2:434e)
+SFX_Triangle3_1_Ch1: ; 834e (2:434e)
unknownnoise0x20 2, 145, 40
unknownnoise0x20 0, 113, 24
endchannel
-; 0x8355
diff --git a/audio/sfx/sfx_08_10.asm b/audio/sfx/triangle3_2.asm
index 6399a966..7a642878 100755..100644
--- a/audio/sfx/sfx_08_10.asm
+++ b/audio/sfx/triangle3_2.asm
@@ -1,5 +1,4 @@
-SFX_08_10_Ch1: ; 2034e (8:434e)
+SFX_Triangle3_2_Ch1: ; 2034e (8:434e)
unknownnoise0x20 2, 145, 40
unknownnoise0x20 0, 113, 24
endchannel
-; 0x20355
diff --git a/audio/sfx/sfx_1f_10.asm b/audio/sfx/triangle3_3.asm
index 34bd5cd2..73ad42ce 100755..100644
--- a/audio/sfx/sfx_1f_10.asm
+++ b/audio/sfx/triangle3_3.asm
@@ -1,5 +1,4 @@
-SFX_1f_10_Ch1: ; 7c34e (1f:434e)
+SFX_Triangle3_3_Ch1: ; 7c34e (1f:434e)
unknownnoise0x20 2, 145, 40
unknownnoise0x20 0, 113, 24
endchannel
-; 0x7c355
diff --git a/audio/sfx/sfx_02_46.asm b/audio/sfx/turn_off_pc_1.asm
index acd5299c..7b4e999d 100755..100644
--- a/audio/sfx/sfx_02_46.asm
+++ b/audio/sfx/turn_off_pc_1.asm
@@ -1,8 +1,7 @@
-SFX_02_46_Ch1: ; 8528 (2:4528)
+SFX_Turn_Off_PC_1_Ch1: ; 8528 (2:4528)
duty 2
unknownsfx0x20 4, 240, 0, 6
unknownsfx0x20 4, 240, 0, 4
unknownsfx0x20 4, 240, 0, 2
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x853b
diff --git a/audio/sfx/sfx_1f_46.asm b/audio/sfx/turn_off_pc_3.asm
index 3989bd00..057ab9a4 100755..100644
--- a/audio/sfx/sfx_1f_46.asm
+++ b/audio/sfx/turn_off_pc_3.asm
@@ -1,8 +1,7 @@
-SFX_1f_46_Ch1: ; 7c505 (1f:4505)
+SFX_Turn_Off_PC_3_Ch1: ; 7c505 (1f:4505)
duty 2
unknownsfx0x20 4, 240, 0, 6
unknownsfx0x20 4, 240, 0, 4
unknownsfx0x20 4, 240, 0, 2
unknownsfx0x20 1, 0, 0, 0
endchannel
-; 0x7c518
diff --git a/audio/sfx/sfx_02_45.asm b/audio/sfx/turn_on_pc_1.asm
index 38243a99..b537791c 100755..100644
--- a/audio/sfx/sfx_02_45.asm
+++ b/audio/sfx/turn_on_pc_1.asm
@@ -1,4 +1,4 @@
-SFX_02_45_Ch1: ; 84fd (2:44fd)
+SFX_Turn_On_PC_1_Ch1: ; 84fd (2:44fd)
duty 2
unknownsfx0x20 15, 242, 192, 7
unknownsfx0x20 15, 0, 0, 0
@@ -11,4 +11,3 @@ SFX_02_45_Ch1: ; 84fd (2:44fd)
unknownsfx0x20 3, 161, 192, 7
unknownsfx0x20 8, 161, 0, 7
endchannel
-; 0x8528
diff --git a/audio/sfx/sfx_1f_45.asm b/audio/sfx/turn_on_pc_3.asm
index e64cb337..df654cfa 100755..100644
--- a/audio/sfx/sfx_1f_45.asm
+++ b/audio/sfx/turn_on_pc_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_45_Ch1: ; 7c4d6 (1f:44d6)
+SFX_Turn_On_PC_3_Ch1: ; 7c4d6 (1f:44d6)
duty 2
unknownsfx0x20 15, 242, 192, 7
unknownsfx0x20 15, 0, 0, 0
@@ -12,4 +12,3 @@ SFX_1f_45_Ch1: ; 7c4d6 (1f:44d6)
unknownsfx0x20 3, 129, 192, 7
unknownsfx0x20 3, 129, 0, 7
endchannel
-; 0x7c505
diff --git a/audio/sfx/sfx_08_unused2.asm b/audio/sfx/unused2_2.asm
index e69ec72d..1eca4432 100755..100644
--- a/audio/sfx/sfx_08_unused2.asm
+++ b/audio/sfx/unused2_2.asm
@@ -54,4 +54,3 @@ SFX_08_unused2_Ch3: ; 22359 (8:6359)
B_ 4
rest 4
endchannel
-; 0x22370
diff --git a/audio/sfx/sfx_02_unused.asm b/audio/sfx/unused_1.asm
index 919d7319..bd9bdfb3 100755..100644
--- a/audio/sfx/sfx_02_unused.asm
+++ b/audio/sfx/unused_1.asm
@@ -29,4 +29,3 @@ SFX_02_unused_Ch3: ; 8719 (2:4719)
unknownnoise0x20 12, 125, 76
unknownnoise0x20 15, 211, 76
endchannel
-; 0x872f
diff --git a/audio/sfx/sfx_08_unused.asm b/audio/sfx/unused_2.asm
index 857502d3..25e4840c 100755..100644
--- a/audio/sfx/sfx_08_unused.asm
+++ b/audio/sfx/unused_2.asm
@@ -29,4 +29,3 @@ SFX_08_unused_Ch3: ; 209c1 (8:49c1)
unknownnoise0x20 12, 125, 76
unknownnoise0x20 15, 211, 76
endchannel
-; 0x209d7
diff --git a/audio/sfx/sfx_1f_unused.asm b/audio/sfx/unused_3.asm
index c4109f17..dfb16ee1 100755..100644
--- a/audio/sfx/sfx_1f_unused.asm
+++ b/audio/sfx/unused_3.asm
@@ -29,4 +29,3 @@ SFX_1f_unused_Ch3: ; 7c78e (1f:478e)
unknownnoise0x20 12, 125, 76
unknownnoise0x20 15, 211, 76
endchannel
-; 0x7c7a4
diff --git a/audio/sfx/sfx_08_55.asm b/audio/sfx/vine_whip.asm
index 50b73f0d..c1e610b6 100755..100644
--- a/audio/sfx/sfx_08_55.asm
+++ b/audio/sfx/vine_whip.asm
@@ -1,4 +1,4 @@
-SFX_08_55_Ch1: ; 20533 (8:4533)
+SFX_Vine_Whip_Ch1: ; 20533 (8:4533)
unknownnoise0x20 1, 194, 51
unknownnoise0x20 2, 242, 33
unknownnoise0x20 1, 226, 51
@@ -8,4 +8,3 @@ SFX_08_55_Ch1: ; 20533 (8:4533)
unknownnoise0x20 12, 145, 16
unknownnoise0x20 8, 242, 65
endchannel
-; 0x2054c
diff --git a/audio/sfx/sfx_02_55.asm b/audio/sfx/withdraw_deposit_1.asm
index e4d46f3a..bb7a8d6e 100755..100644
--- a/audio/sfx/sfx_02_55.asm
+++ b/audio/sfx/withdraw_deposit_1.asm
@@ -1,4 +1,4 @@
-SFX_02_55_Ch1: ; 86ab (2:46ab)
+SFX_Withdraw_Deposit_1_Ch1: ; 86ab (2:46ab)
duty 1
unknownsfx0x10 58
unknownsfx0x20 4, 242, 0, 5
@@ -10,4 +10,3 @@ SFX_02_55_Ch1: ; 86ab (2:46ab)
unknownsfx0x20 15, 226, 0, 7
unknownsfx0x10 8
endchannel
-; 0x86c8
diff --git a/audio/sfx/sfx_1f_55.asm b/audio/sfx/withdraw_deposit_3.asm
index 3622e334..99e47fee 100755..100644
--- a/audio/sfx/sfx_1f_55.asm
+++ b/audio/sfx/withdraw_deposit_3.asm
@@ -1,4 +1,4 @@
-SFX_1f_55_Ch1: ; 7c688 (1f:4688)
+SFX_Withdraw_Deposit_3_Ch1: ; 7c688 (1f:4688)
duty 1
unknownsfx0x10 58
unknownsfx0x20 4, 242, 0, 5
@@ -10,4 +10,3 @@ SFX_1f_55_Ch1: ; 7c688 (1f:4688)
unknownsfx0x20 15, 226, 0, 7
unknownsfx0x10 8
endchannel
-; 0x7c6a5
diff --git a/constants.asm b/constants.asm
index f15510c9..761d5886 100644
--- a/constants.asm
+++ b/constants.asm
@@ -30,5 +30,4 @@ INCLUDE "constants/credits_constants.asm"
INCLUDE "constants/music_constants.asm"
INCLUDE "constants/tilesets.asm"
INCLUDE "constants/starter_mons.asm"
-
-INCLUDE "constants/predef_constants.asm" \ No newline at end of file
+INCLUDE "constants/predef_constants.asm"
diff --git a/constants/connection_constants.asm b/constants/connection_constants.asm
index 916d6c4f..154c4163 100755
--- a/constants/connection_constants.asm
+++ b/constants/connection_constants.asm
@@ -1,3 +1,7 @@
+; width of east/west connections
+; height of north/south connections
+MAP_BORDER EQU 3
+
; connection directions
EAST EQU 1
WEST EQU 2
diff --git a/constants/credits_constants.asm b/constants/credits_constants.asm
index 1291dc13..f5715072 100644
--- a/constants/credits_constants.asm
+++ b/constants/credits_constants.asm
@@ -1,65 +1,67 @@
-CRED_VERSION EQU $00
-CRED_TAJIRI EQU $01
-CRED_TA_OOTA EQU $02
-CRED_MORIMOTO EQU $03
-CRED_WATANABE EQU $04
-CRED_MASUDE EQU $05
-CRED_NISINO EQU $06
-CRED_SUGIMORI EQU $07
-CRED_NISHIDA EQU $08
-CRED_MIYAMOTO EQU $09
-CRED_KAWAGUCHI EQU $0A
-CRED_ISHIHARA EQU $0B
-CRED_YAMAUCHI EQU $0C
-CRED_ZINNAI EQU $0D
-CRED_HISHIDA EQU $0E
-CRED_SAKAI EQU $0F
-CRED_YAMAGUCHI EQU $10
-CRED_YAMAMOTO EQU $11
-CRED_TANIGUCHI EQU $12
-CRED_NONOMURA EQU $13
-CRED_FUZIWARA EQU $14
-CRED_MATSUSIMA EQU $15
-CRED_TOMISAWA EQU $16
-CRED_KAWAMOTO EQU $17
-CRED_KAKEI EQU $18
-CRED_TSUCHIYA EQU $19
-CRED_TA_NAKAMURA EQU $1A
-CRED_YUDA EQU $1B
-CRED_MON EQU $1C ; Pokemon
-CRED_DIRECTOR EQU $1D
-CRED_PROGRAMMERS EQU $1E
-CRED_CHAR_DESIGN EQU $1F
-CRED_MUSIC EQU $20
-CRED_SOUND_EFFECTS EQU $21
-CRED_GAME_DESIGN EQU $22
-CRED_MONSTER_DESIGN EQU $23
-CRED_GAME_SCENE EQU $24
-CRED_PARAM EQU $25
-CRED_MAP EQU $26
-CRED_TEST EQU $27
-CRED_SPECIAL EQU $28
-CRED_PRODUCERS EQU $29
-CRED_PRODUCER EQU $2A
-CRED_EXECUTIVE EQU $2B
-CRED_TAMADA EQU $2C
-CRED_SA_OOTA EQU $2D
-CRED_YOSHIKAWA EQU $2E
-CRED_TO_OOTA EQU $2F
-CRED_US_STAFF EQU $30
-CRED_US_COORD EQU $31
-CRED_TILDEN EQU $32
-CRED_KAWAKAMI EQU $33
-CRED_HI_NAKAMURA EQU $34
-CRED_GIESE EQU $35
-CRED_OSBORNE EQU $36
-CRED_TRANS EQU $37
-CRED_OGASAWARA EQU $38
-CRED_IWATA EQU $39
-CRED_IZUSHI EQU $3A
-CRED_HARADA EQU $3B
-CRED_MURAKAWA EQU $3C
-CRED_FUKUI EQU $3D
-CRED_CLUB EQU $3E
-CRED_PAAD EQU $3F
+const_value = 0
+
+ const CRED_VERSION ; $00
+ const CRED_TAJIRI ; $01
+ const CRED_TA_OOTA ; $02
+ const CRED_MORIMOTO ; $03
+ const CRED_WATANABE ; $04
+ const CRED_MASUDE ; $05
+ const CRED_NISINO ; $06
+ const CRED_SUGIMORI ; $07
+ const CRED_NISHIDA ; $08
+ const CRED_MIYAMOTO ; $09
+ const CRED_KAWAGUCHI ; $0A
+ const CRED_ISHIHARA ; $0B
+ const CRED_YAMAUCHI ; $0C
+ const CRED_ZINNAI ; $0D
+ const CRED_HISHIDA ; $0E
+ const CRED_SAKAI ; $0F
+ const CRED_YAMAGUCHI ; $10
+ const CRED_YAMAMOTO ; $11
+ const CRED_TANIGUCHI ; $12
+ const CRED_NONOMURA ; $13
+ const CRED_FUZIWARA ; $14
+ const CRED_MATSUSIMA ; $15
+ const CRED_TOMISAWA ; $16
+ const CRED_KAWAMOTO ; $17
+ const CRED_KAKEI ; $18
+ const CRED_TSUCHIYA ; $19
+ const CRED_TA_NAKAMURA ; $1A
+ const CRED_YUDA ; $1B
+ const CRED_MON ; $1C
+ const CRED_DIRECTOR ; $1D
+ const CRED_PROGRAMMERS ; $1E
+ const CRED_CHAR_DESIGN ; $1F
+ const CRED_MUSIC ; $20
+ const CRED_SOUND_EFFECTS ; $21
+ const CRED_GAME_DESIGN ; $22
+ const CRED_MONSTER_DESIGN ; $23
+ const CRED_GAME_SCENE ; $24
+ const CRED_PARAM ; $25
+ const CRED_MAP ; $26
+ const CRED_TEST ; $27
+ const CRED_SPECIAL ; $28
+ const CRED_PRODUCERS ; $29
+ const CRED_PRODUCER ; $2A
+ const CRED_EXECUTIVE ; $2B
+ const CRED_TAMADA ; $2C
+ const CRED_SA_OOTA ; $2D
+ const CRED_YOSHIKAWA ; $2E
+ const CRED_TO_OOTA ; $2F
+ const CRED_US_STAFF ; $30
+ const CRED_US_COORD ; $31
+ const CRED_TILDEN ; $32
+ const CRED_KAWAKAMI ; $33
+ const CRED_HI_NAKAMURA ; $34
+ const CRED_GIESE ; $35
+ const CRED_OSBORNE ; $36
+ const CRED_TRANS ; $37
+ const CRED_OGASAWARA ; $38
+ const CRED_IWATA ; $39
+ const CRED_IZUSHI ; $3A
+ const CRED_HARADA ; $3B
+ const CRED_MURAKAWA ; $3C
+ const CRED_FUKUI ; $3D
+ const CRED_CLUB ; $3E
+ const CRED_PAAD ; $3F
diff --git a/constants/event_constants.asm b/constants/event_constants.asm
new file mode 100644
index 00000000..f284c967
--- /dev/null
+++ b/constants/event_constants.asm
@@ -0,0 +1,2562 @@
+const_value = 0
+
+ const EVENT_FOLLOWED_OAK_INTO_LAB ; 000, (D747, bit 0)
+ const EVENT_001 ; 001, (D747, bit 1)
+ const EVENT_002 ; 002, (D747, bit 2)
+ const EVENT_HALL_OF_FAME_DEX_RATING ; 003, (D747, bit 3)
+ const EVENT_004 ; 004, (D747, bit 4)
+ const EVENT_005 ; 005, (D747, bit 5)
+ const EVENT_PALLET_AFTER_GETTING_POKEBALLS ; 006, (D747, bit 6)
+ const EVENT_007 ; 007, (D747, bit 7)
+ const EVENT_008 ; 008, (D748, bit 0)
+ const EVENT_009 ; 009, (D748, bit 1)
+ const EVENT_00A ; 00A, (D748, bit 2)
+ const EVENT_00B ; 00B, (D748, bit 3)
+ const EVENT_00C ; 00C, (D748, bit 4)
+ const EVENT_00D ; 00D, (D748, bit 5)
+ const EVENT_00E ; 00E, (D748, bit 6)
+ const EVENT_00F ; 00F, (D748, bit 7)
+ const EVENT_010 ; 010, (D749, bit 0)
+ const EVENT_011 ; 011, (D749, bit 1)
+ const EVENT_012 ; 012, (D749, bit 2)
+ const EVENT_013 ; 013, (D749, bit 3)
+ const EVENT_014 ; 014, (D749, bit 4)
+ const EVENT_015 ; 015, (D749, bit 5)
+ const EVENT_016 ; 016, (D749, bit 6)
+ const EVENT_017 ; 017, (D749, bit 7)
+ const EVENT_GOT_TOWN_MAP ; 018, (D74A, bit 0)
+ const EVENT_ENTERED_BLUES_HOUSE ; 019, (D74A, bit 1)
+ const EVENT_DAISY_WALKING ; 01A, (D74A, bit 2)
+ const EVENT_01B ; 01B, (D74A, bit 3)
+ const EVENT_01C ; 01C, (D74A, bit 4)
+ const EVENT_01D ; 01D, (D74A, bit 5)
+ const EVENT_01E ; 01E, (D74A, bit 6)
+ const EVENT_01F ; 01F, (D74A, bit 7)
+ const EVENT_FOLLOWED_OAK_INTO_LAB_2 ; 020, (D74B, bit 0)
+ const EVENT_OAK_ASKED_TO_CHOOSE_MON ; 021, (D74B, bit 1)
+ const EVENT_GOT_STARTER ; 022, (D74B, bit 2)
+ const EVENT_BATTLED_RIVAL_IN_OAKS_LAB ; 023, (D74B, bit 3)
+ const EVENT_GOT_POKEBALLS_FROM_OAK ; 024, (D74B, bit 4)
+ const EVENT_GOT_POKEDEX ; 025, (D74B, bit 5)
+ const EVENT_PALLET_AFTER_GETTING_POKEBALLS_2 ; 026, (D74B, bit 6)
+ const EVENT_OAK_APPEARED_IN_PALLET ; 027, (D74B, bit 7)
+ const EVENT_VIRIDIAN_GYM_OPEN ; 028, (D74C, bit 0)
+ const EVENT_GOT_TM42 ; 029, (D74C, bit 1)
+ const EVENT_02A ; 02A, (D74C, bit 2)
+ const EVENT_02B ; 02B, (D74C, bit 3)
+ const EVENT_02C ; 02C, (D74C, bit 4)
+ const EVENT_02D ; 02D, (D74C, bit 5)
+ const EVENT_02E ; 02E, (D74C, bit 6)
+ const EVENT_02F ; 02F, (D74C, bit 7)
+ const EVENT_030 ; 030, (D74D, bit 0)
+ const EVENT_031 ; 031, (D74D, bit 1)
+ const EVENT_032 ; 032, (D74D, bit 2)
+ const EVENT_033 ; 033, (D74D, bit 3)
+ const EVENT_034 ; 034, (D74D, bit 4)
+ const EVENT_035 ; 035, (D74D, bit 5)
+ const EVENT_036 ; 036, (D74D, bit 6)
+ const EVENT_037 ; 037, (D74D, bit 7)
+ const EVENT_OAK_GOT_PARCEL ; 038, (D74E, bit 0)
+ const EVENT_GOT_OAKS_PARCEL ; 039, (D74E, bit 1)
+ const EVENT_03A ; 03A, (D74E, bit 2)
+ const EVENT_03B ; 03B, (D74E, bit 3)
+ const EVENT_03C ; 03C, (D74E, bit 4)
+ const EVENT_03D ; 03D, (D74E, bit 5)
+ const EVENT_03E ; 03E, (D74E, bit 6)
+ const EVENT_03F ; 03F, (D74E, bit 7)
+ const EVENT_040 ; 040, (D74F, bit 0)
+ const EVENT_041 ; 041, (D74F, bit 1)
+ const EVENT_042 ; 042, (D74F, bit 2)
+ const EVENT_043 ; 043, (D74F, bit 3)
+ const EVENT_044 ; 044, (D74F, bit 4)
+ const EVENT_045 ; 045, (D74F, bit 5)
+ const EVENT_046 ; 046, (D74F, bit 6)
+ const EVENT_047 ; 047, (D74F, bit 7)
+ const EVENT_048 ; 048, (D750, bit 0)
+ const EVENT_049 ; 049, (D750, bit 1)
+ const EVENT_04A ; 04A, (D750, bit 2)
+ const EVENT_04B ; 04B, (D750, bit 3)
+ const EVENT_04C ; 04C, (D750, bit 4)
+ const EVENT_04D ; 04D, (D750, bit 5)
+ const EVENT_04E ; 04E, (D750, bit 6)
+ const EVENT_04F ; 04F, (D750, bit 7)
+ const EVENT_GOT_TM27 ; 050, (D751, bit 0)
+ const EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI ; 051, (D751, bit 1)
+ const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0 ; 052, (D751, bit 2)
+ const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1 ; 053, (D751, bit 3)
+ const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2 ; 054, (D751, bit 4)
+ const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3 ; 055, (D751, bit 5)
+ const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4 ; 056, (D751, bit 6)
+ const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5 ; 057, (D751, bit 7)
+ const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6 ; 058, (D752, bit 0)
+ const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7 ; 059, (D752, bit 1)
+ const EVENT_05A ; 05A, (D752, bit 2)
+ const EVENT_05B ; 05B, (D752, bit 3)
+ const EVENT_05C ; 05C, (D752, bit 4)
+ const EVENT_05D ; 05D, (D752, bit 5)
+ const EVENT_05E ; 05E, (D752, bit 6)
+ const EVENT_05F ; 05F, (D752, bit 7)
+ const EVENT_060 ; 060, (D753, bit 0)
+ const EVENT_061 ; 061, (D753, bit 1)
+ const EVENT_062 ; 062, (D753, bit 2)
+ const EVENT_063 ; 063, (D753, bit 3)
+ const EVENT_064 ; 064, (D753, bit 4)
+ const EVENT_065 ; 065, (D753, bit 5)
+ const EVENT_066 ; 066, (D753, bit 6)
+ const EVENT_067 ; 067, (D753, bit 7)
+ const EVENT_BOUGHT_MUSEUM_TICKET ; 068, (D754, bit 0)
+ const EVENT_GOT_OLD_AMBER ; 069, (D754, bit 1)
+ const EVENT_06A ; 06A, (D754, bit 2)
+ const EVENT_06B ; 06B, (D754, bit 3)
+ const EVENT_06C ; 06C, (D754, bit 4)
+ const EVENT_06D ; 06D, (D754, bit 5)
+ const EVENT_06E ; 06E, (D754, bit 6)
+ const EVENT_06F ; 06F, (D754, bit 7)
+ const EVENT_070 ; 070, (D755, bit 0)
+ const EVENT_071 ; 071, (D755, bit 1)
+ const EVENT_BEAT_PEWTER_GYM_TRAINER_0 ; 072, (D755, bit 2)
+ const EVENT_073 ; 073, (D755, bit 3)
+ const EVENT_074 ; 074, (D755, bit 4)
+ const EVENT_075 ; 075, (D755, bit 5)
+ const EVENT_GOT_TM34 ; 076, (D755, bit 6)
+ const EVENT_BEAT_BROCK ; 077, (D755, bit 7)
+ const EVENT_078 ; 078, (D756, bit 0)
+ const EVENT_079 ; 079, (D756, bit 1)
+ const EVENT_07A ; 07A, (D756, bit 2)
+ const EVENT_07B ; 07B, (D756, bit 3)
+ const EVENT_07C ; 07C, (D756, bit 4)
+ const EVENT_07D ; 07D, (D756, bit 5)
+ const EVENT_07E ; 07E, (D756, bit 6)
+ const EVENT_07F ; 07F, (D756, bit 7)
+ const EVENT_080 ; 080, (D757, bit 0)
+ const EVENT_081 ; 081, (D757, bit 1)
+ const EVENT_082 ; 082, (D757, bit 2)
+ const EVENT_083 ; 083, (D757, bit 3)
+ const EVENT_084 ; 084, (D757, bit 4)
+ const EVENT_085 ; 085, (D757, bit 5)
+ const EVENT_086 ; 086, (D757, bit 6)
+ const EVENT_087 ; 087, (D757, bit 7)
+ const EVENT_088 ; 088, (D758, bit 0)
+ const EVENT_089 ; 089, (D758, bit 1)
+ const EVENT_08A ; 08A, (D758, bit 2)
+ const EVENT_08B ; 08B, (D758, bit 3)
+ const EVENT_08C ; 08C, (D758, bit 4)
+ const EVENT_08D ; 08D, (D758, bit 5)
+ const EVENT_08E ; 08E, (D758, bit 6)
+ const EVENT_08F ; 08F, (D758, bit 7)
+ const EVENT_090 ; 090, (D759, bit 0)
+ const EVENT_091 ; 091, (D759, bit 1)
+ const EVENT_092 ; 092, (D759, bit 2)
+ const EVENT_093 ; 093, (D759, bit 3)
+ const EVENT_094 ; 094, (D759, bit 4)
+ const EVENT_095 ; 095, (D759, bit 5)
+ const EVENT_096 ; 096, (D759, bit 6)
+ const EVENT_097 ; 097, (D759, bit 7)
+ const EVENT_BEAT_CERULEAN_RIVAL ; 098, (D75A, bit 0)
+ const EVENT_099 ; 099, (D75A, bit 1)
+ const EVENT_09A ; 09A, (D75A, bit 2)
+ const EVENT_09B ; 09B, (D75A, bit 3)
+ const EVENT_09C ; 09C, (D75A, bit 4)
+ const EVENT_09D ; 09D, (D75A, bit 5)
+ const EVENT_09E ; 09E, (D75A, bit 6)
+ const EVENT_09F ; 09F, (D75A, bit 7)
+ const EVENT_0A0 ; 0A0, (D75B, bit 0)
+ const EVENT_0A1 ; 0A1, (D75B, bit 1)
+ const EVENT_0A2 ; 0A2, (D75B, bit 2)
+ const EVENT_0A3 ; 0A3, (D75B, bit 3)
+ const EVENT_0A4 ; 0A4, (D75B, bit 4)
+ const EVENT_0A5 ; 0A5, (D75B, bit 5)
+ const EVENT_0A6 ; 0A6, (D75B, bit 6)
+ const EVENT_BEAT_CERULEAN_ROCKET_THIEF ; 0A7, (D75B, bit 7)
+ const EVENT_0A8 ; 0A8, (D75C, bit 0)
+ const EVENT_0A9 ; 0A9, (D75C, bit 1)
+ const EVENT_0AA ; 0AA, (D75C, bit 2)
+ const EVENT_0AB ; 0AB, (D75C, bit 3)
+ const EVENT_0AC ; 0AC, (D75C, bit 4)
+ const EVENT_0AD ; 0AD, (D75C, bit 5)
+ const EVENT_0AE ; 0AE, (D75C, bit 6)
+ const EVENT_0AF ; 0AF, (D75C, bit 7)
+ const EVENT_0B0 ; 0B0, (D75D, bit 0)
+ const EVENT_0B1 ; 0B1, (D75D, bit 1)
+ const EVENT_0B2 ; 0B2, (D75D, bit 2)
+ const EVENT_0B3 ; 0B3, (D75D, bit 3)
+ const EVENT_0B4 ; 0B4, (D75D, bit 4)
+ const EVENT_0B5 ; 0B5, (D75D, bit 5)
+ const EVENT_0B6 ; 0B6, (D75D, bit 6)
+ const EVENT_0B7 ; 0B7, (D75D, bit 7)
+ const EVENT_0B8 ; 0B8, (D75E, bit 0)
+ const EVENT_0B9 ; 0B9, (D75E, bit 1)
+ const EVENT_BEAT_CERULEAN_GYM_TRAINER_0 ; 0BA, (D75E, bit 2)
+ const EVENT_BEAT_CERULEAN_GYM_TRAINER_1 ; 0BB, (D75E, bit 3)
+ const EVENT_0BC ; 0BC, (D75E, bit 4)
+ const EVENT_0BD ; 0BD, (D75E, bit 5)
+ const EVENT_GOT_TM11 ; 0BE, (D75E, bit 6)
+ const EVENT_BEAT_MISTY ; 0BF, (D75E, bit 7)
+ const EVENT_GOT_BICYCLE ; 0C0, (D75F, bit 0)
+ const EVENT_0C1 ; 0C1, (D75F, bit 1)
+ const EVENT_0C2 ; 0C2, (D75F, bit 2)
+ const EVENT_0C3 ; 0C3, (D75F, bit 3)
+ const EVENT_0C4 ; 0C4, (D75F, bit 4)
+ const EVENT_0C5 ; 0C5, (D75F, bit 5)
+ const EVENT_0C6 ; 0C6, (D75F, bit 6)
+ const EVENT_0C7 ; 0C7, (D75F, bit 7)
+ const EVENT_0C8 ; 0C8, (D760, bit 0)
+ const EVENT_0C9 ; 0C9, (D760, bit 1)
+ const EVENT_0CA ; 0CA, (D760, bit 2)
+ const EVENT_0CB ; 0CB, (D760, bit 3)
+ const EVENT_0CC ; 0CC, (D760, bit 4)
+ const EVENT_0CD ; 0CD, (D760, bit 5)
+ const EVENT_0CE ; 0CE, (D760, bit 6)
+ const EVENT_0CF ; 0CF, (D760, bit 7)
+ const EVENT_0D0 ; 0D0, (D761, bit 0)
+ const EVENT_0D1 ; 0D1, (D761, bit 1)
+ const EVENT_0D2 ; 0D2, (D761, bit 2)
+ const EVENT_0D3 ; 0D3, (D761, bit 3)
+ const EVENT_0D4 ; 0D4, (D761, bit 4)
+ const EVENT_0D5 ; 0D5, (D761, bit 5)
+ const EVENT_0D6 ; 0D6, (D761, bit 6)
+ const EVENT_0D7 ; 0D7, (D761, bit 7)
+ const EVENT_0D8 ; 0D8, (D762, bit 0)
+ const EVENT_0D9 ; 0D9, (D762, bit 1)
+ const EVENT_0DA ; 0DA, (D762, bit 2)
+ const EVENT_0DB ; 0DB, (D762, bit 3)
+ const EVENT_0DC ; 0DC, (D762, bit 4)
+ const EVENT_0DD ; 0DD, (D762, bit 5)
+ const EVENT_0DE ; 0DE, (D762, bit 6)
+ const EVENT_0DF ; 0DF, (D762, bit 7)
+ const EVENT_0E0 ; 0E0, (D763, bit 0)
+ const EVENT_0E1 ; 0E1, (D763, bit 1)
+ const EVENT_0E2 ; 0E2, (D763, bit 2)
+ const EVENT_0E3 ; 0E3, (D763, bit 3)
+ const EVENT_0E4 ; 0E4, (D763, bit 4)
+ const EVENT_0E5 ; 0E5, (D763, bit 5)
+ const EVENT_0E6 ; 0E6, (D763, bit 6)
+ const EVENT_0E7 ; 0E7, (D763, bit 7)
+ const EVENT_0E8 ; 0E8, (D764, bit 0)
+ const EVENT_0E9 ; 0E9, (D764, bit 1)
+ const EVENT_0EA ; 0EA, (D764, bit 2)
+ const EVENT_0EB ; 0EB, (D764, bit 3)
+ const EVENT_0EC ; 0EC, (D764, bit 4)
+ const EVENT_0ED ; 0ED, (D764, bit 5)
+ const EVENT_POKEMON_TOWER_RIVAL_ON_LEFT ; 0EE, (D764, bit 6)
+ const EVENT_BEAT_POKEMON_TOWER_RIVAL ; 0EF, (D764, bit 7)
+ const EVENT_0F0 ; 0F0, (D765, bit 0)
+ const EVENT_BEAT_POKEMONTOWER_3_TRAINER_0 ; 0F1, (D765, bit 1)
+ const EVENT_BEAT_POKEMONTOWER_3_TRAINER_1 ; 0F2, (D765, bit 2)
+ const EVENT_BEAT_POKEMONTOWER_3_TRAINER_2 ; 0F3, (D765, bit 3)
+ const EVENT_0F4 ; 0F4, (D765, bit 4)
+ const EVENT_0F5 ; 0F5, (D765, bit 5)
+ const EVENT_0F6 ; 0F6, (D765, bit 6)
+ const EVENT_0F7 ; 0F7, (D765, bit 7)
+ const EVENT_0F8 ; 0F8, (D766, bit 0)
+ const EVENT_BEAT_POKEMONTOWER_4_TRAINER_0 ; 0F9, (D766, bit 1)
+ const EVENT_BEAT_POKEMONTOWER_4_TRAINER_1 ; 0FA, (D766, bit 2)
+ const EVENT_BEAT_POKEMONTOWER_4_TRAINER_2 ; 0FB, (D766, bit 3)
+ const EVENT_0FC ; 0FC, (D766, bit 4)
+ const EVENT_0FD ; 0FD, (D766, bit 5)
+ const EVENT_0FE ; 0FE, (D766, bit 6)
+ const EVENT_0FF ; 0FF, (D766, bit 7)
+ const EVENT_100 ; 100, (D767, bit 0)
+ const EVENT_101 ; 101, (D767, bit 1)
+ const EVENT_BEAT_POKEMONTOWER_5_TRAINER_0 ; 102, (D767, bit 2)
+ const EVENT_BEAT_POKEMONTOWER_5_TRAINER_1 ; 103, (D767, bit 3)
+ const EVENT_BEAT_POKEMONTOWER_5_TRAINER_2 ; 104, (D767, bit 4)
+ const EVENT_BEAT_POKEMONTOWER_5_TRAINER_3 ; 105, (D767, bit 5)
+ const EVENT_106 ; 106, (D767, bit 6)
+ const EVENT_IN_PURIFIED_ZONE ; 107, (D767, bit 7)
+ const EVENT_108 ; 108, (D768, bit 0)
+ const EVENT_BEAT_POKEMONTOWER_6_TRAINER_0 ; 109, (D768, bit 1)
+ const EVENT_BEAT_POKEMONTOWER_6_TRAINER_1 ; 10A, (D768, bit 2)
+ const EVENT_BEAT_POKEMONTOWER_6_TRAINER_2 ; 10B, (D768, bit 3)
+ const EVENT_10C ; 10C, (D768, bit 4)
+ const EVENT_10D ; 10D, (D768, bit 5)
+ const EVENT_10E ; 10E, (D768, bit 6)
+ const EVENT_BEAT_GHOST_MAROWAK ; 10F, (D768, bit 7)
+ const EVENT_110 ; 110, (D769, bit 0)
+ const EVENT_BEAT_POKEMONTOWER_7_TRAINER_0 ; 111, (D769, bit 1)
+ const EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 ; 112, (D769, bit 2)
+ const EVENT_BEAT_POKEMONTOWER_7_TRAINER_2 ; 113, (D769, bit 3)
+ const EVENT_114 ; 114, (D769, bit 4)
+ const EVENT_115 ; 115, (D769, bit 5)
+ const EVENT_116 ; 116, (D769, bit 6)
+ const EVENT_RESCUED_MR_FUJI_2 ; 117, (D769, bit 7)
+ const EVENT_118 ; 118, (D76A, bit 0)
+ const EVENT_119 ; 119, (D76A, bit 1)
+ const EVENT_11A ; 11A, (D76A, bit 2)
+ const EVENT_11B ; 11B, (D76A, bit 3)
+ const EVENT_11C ; 11C, (D76A, bit 4)
+ const EVENT_11D ; 11D, (D76A, bit 5)
+ const EVENT_11E ; 11E, (D76A, bit 6)
+ const EVENT_11F ; 11F, (D76A, bit 7)
+ const EVENT_120 ; 120, (D76B, bit 0)
+ const EVENT_121 ; 121, (D76B, bit 1)
+ const EVENT_122 ; 122, (D76B, bit 2)
+ const EVENT_123 ; 123, (D76B, bit 3)
+ const EVENT_124 ; 124, (D76B, bit 4)
+ const EVENT_125 ; 125, (D76B, bit 5)
+ const EVENT_126 ; 126, (D76B, bit 6)
+ const EVENT_127 ; 127, (D76B, bit 7)
+ const EVENT_GOT_POKE_FLUTE ; 128, (D76C, bit 0)
+ const EVENT_129 ; 129, (D76C, bit 1)
+ const EVENT_12A ; 12A, (D76C, bit 2)
+ const EVENT_12B ; 12B, (D76C, bit 3)
+ const EVENT_12C ; 12C, (D76C, bit 4)
+ const EVENT_12D ; 12D, (D76C, bit 5)
+ const EVENT_12E ; 12E, (D76C, bit 6)
+ const EVENT_12F ; 12F, (D76C, bit 7)
+ const EVENT_130 ; 130, (D76D, bit 0)
+ const EVENT_131 ; 131, (D76D, bit 1)
+ const EVENT_132 ; 132, (D76D, bit 2)
+ const EVENT_133 ; 133, (D76D, bit 3)
+ const EVENT_134 ; 134, (D76D, bit 4)
+ const EVENT_135 ; 135, (D76D, bit 5)
+ const EVENT_136 ; 136, (D76D, bit 6)
+ const EVENT_137 ; 137, (D76D, bit 7)
+ const EVENT_138 ; 138, (D76E, bit 0)
+ const EVENT_139 ; 139, (D76E, bit 1)
+ const EVENT_13A ; 13A, (D76E, bit 2)
+ const EVENT_13B ; 13B, (D76E, bit 3)
+ const EVENT_13C ; 13C, (D76E, bit 4)
+ const EVENT_13D ; 13D, (D76E, bit 5)
+ const EVENT_13E ; 13E, (D76E, bit 6)
+ const EVENT_13F ; 13F, (D76E, bit 7)
+ const EVENT_140 ; 140, (D76F, bit 0)
+ const EVENT_141 ; 141, (D76F, bit 1)
+ const EVENT_142 ; 142, (D76F, bit 2)
+ const EVENT_143 ; 143, (D76F, bit 3)
+ const EVENT_144 ; 144, (D76F, bit 4)
+ const EVENT_145 ; 145, (D76F, bit 5)
+ const EVENT_146 ; 146, (D76F, bit 6)
+ const EVENT_147 ; 147, (D76F, bit 7)
+ const EVENT_148 ; 148, (D770, bit 0)
+ const EVENT_149 ; 149, (D770, bit 1)
+ const EVENT_14A ; 14A, (D770, bit 2)
+ const EVENT_14B ; 14B, (D770, bit 3)
+ const EVENT_14C ; 14C, (D770, bit 4)
+ const EVENT_14D ; 14D, (D770, bit 5)
+ const EVENT_14E ; 14E, (D770, bit 6)
+ const EVENT_14F ; 14F, (D770, bit 7)
+ const EVENT_150 ; 150, (D771, bit 0)
+ const EVENT_GOT_BIKE_VOUCHER ; 151, (D771, bit 1)
+ const EVENT_152 ; 152, (D771, bit 2)
+ const EVENT_153 ; 153, (D771, bit 3)
+ const EVENT_154 ; 154, (D771, bit 4)
+ const EVENT_155 ; 155, (D771, bit 5)
+ const EVENT_SEEL_FAN_BOAST ; 156, (D771, bit 6)
+ const EVENT_PIKACHU_FAN_BOAST ; 157, (D771, bit 7)
+ const EVENT_158 ; 158, (D772, bit 0)
+ const EVENT_159 ; 159, (D772, bit 1)
+ const EVENT_15A ; 15A, (D772, bit 2)
+ const EVENT_15B ; 15B, (D772, bit 3)
+ const EVENT_15C ; 15C, (D772, bit 4)
+ const EVENT_15D ; 15D, (D772, bit 5)
+ const EVENT_15E ; 15E, (D772, bit 6)
+ const EVENT_15F ; 15F, (D772, bit 7)
+ const EVENT_2ND_LOCK_OPENED ; 160, (D773, bit 0)
+ const EVENT_1ST_LOCK_OPENED ; 161, (D773, bit 1)
+ const EVENT_BEAT_VERMILION_GYM_TRAINER_0 ; 162, (D773, bit 2)
+ const EVENT_BEAT_VERMILION_GYM_TRAINER_1 ; 163, (D773, bit 3)
+ const EVENT_BEAT_VERMILION_GYM_TRAINER_2 ; 164, (D773, bit 4)
+ const EVENT_165 ; 165, (D773, bit 5)
+ const EVENT_GOT_TM24 ; 166, (D773, bit 6)
+ const EVENT_BEAT_LT_SURGE ; 167, (D773, bit 7)
+ const EVENT_168 ; 168, (D774, bit 0)
+ const EVENT_169 ; 169, (D774, bit 1)
+ const EVENT_16A ; 16A, (D774, bit 2)
+ const EVENT_16B ; 16B, (D774, bit 3)
+ const EVENT_16C ; 16C, (D774, bit 4)
+ const EVENT_16D ; 16D, (D774, bit 5)
+ const EVENT_16E ; 16E, (D774, bit 6)
+ const EVENT_16F ; 16F, (D774, bit 7)
+ const EVENT_170 ; 170, (D775, bit 0)
+ const EVENT_171 ; 171, (D775, bit 1)
+ const EVENT_172 ; 172, (D775, bit 2)
+ const EVENT_173 ; 173, (D775, bit 3)
+ const EVENT_174 ; 174, (D775, bit 4)
+ const EVENT_175 ; 175, (D775, bit 5)
+ const EVENT_176 ; 176, (D775, bit 6)
+ const EVENT_177 ; 177, (D775, bit 7)
+ const EVENT_178 ; 178, (D776, bit 0)
+ const EVENT_179 ; 179, (D776, bit 1)
+ const EVENT_17A ; 17A, (D776, bit 2)
+ const EVENT_17B ; 17B, (D776, bit 3)
+ const EVENT_17C ; 17C, (D776, bit 4)
+ const EVENT_17D ; 17D, (D776, bit 5)
+ const EVENT_17E ; 17E, (D776, bit 6)
+ const EVENT_17F ; 17F, (D776, bit 7)
+ const EVENT_GOT_TM41 ; 180, (D777, bit 0)
+ const EVENT_181 ; 181, (D777, bit 1)
+ const EVENT_182 ; 182, (D777, bit 2)
+ const EVENT_183 ; 183, (D777, bit 3)
+ const EVENT_184 ; 184, (D777, bit 4)
+ const EVENT_185 ; 185, (D777, bit 5)
+ const EVENT_186 ; 186, (D777, bit 6)
+ const EVENT_187 ; 187, (D777, bit 7)
+ const EVENT_188 ; 188, (D778, bit 0)
+ const EVENT_189 ; 189, (D778, bit 1)
+ const EVENT_18A ; 18A, (D778, bit 2)
+ const EVENT_18B ; 18B, (D778, bit 3)
+ const EVENT_GOT_TM13 ; 18C, (D778, bit 4)
+ const EVENT_GOT_TM48 ; 18D, (D778, bit 5)
+ const EVENT_GOT_TM49 ; 18E, (D778, bit 6)
+ const EVENT_GOT_TM18 ; 18F, (D778, bit 7)
+ const EVENT_190 ; 190, (D779, bit 0)
+ const EVENT_191 ; 191, (D779, bit 1)
+ const EVENT_192 ; 192, (D779, bit 2)
+ const EVENT_193 ; 193, (D779, bit 3)
+ const EVENT_194 ; 194, (D779, bit 4)
+ const EVENT_195 ; 195, (D779, bit 5)
+ const EVENT_196 ; 196, (D779, bit 6)
+ const EVENT_197 ; 197, (D779, bit 7)
+ const EVENT_198 ; 198, (D77A, bit 0)
+ const EVENT_199 ; 199, (D77A, bit 1)
+ const EVENT_19A ; 19A, (D77A, bit 2)
+ const EVENT_19B ; 19B, (D77A, bit 3)
+ const EVENT_19C ; 19C, (D77A, bit 4)
+ const EVENT_19D ; 19D, (D77A, bit 5)
+ const EVENT_19E ; 19E, (D77A, bit 6)
+ const EVENT_19F ; 19F, (D77A, bit 7)
+ const EVENT_1A0 ; 1A0, (D77B, bit 0)
+ const EVENT_1A1 ; 1A1, (D77B, bit 1)
+ const EVENT_1A2 ; 1A2, (D77B, bit 2)
+ const EVENT_1A3 ; 1A3, (D77B, bit 3)
+ const EVENT_1A4 ; 1A4, (D77B, bit 4)
+ const EVENT_1A5 ; 1A5, (D77B, bit 5)
+ const EVENT_1A6 ; 1A6, (D77B, bit 6)
+ const EVENT_1A7 ; 1A7, (D77B, bit 7)
+ const EVENT_GOT_TM21 ; 1A8, (D77C, bit 0)
+ const EVENT_BEAT_ERIKA ; 1A9, (D77C, bit 1)
+ const EVENT_BEAT_CELADON_GYM_TRAINER_0 ; 1AA, (D77C, bit 2)
+ const EVENT_BEAT_CELADON_GYM_TRAINER_2 ; 1AB, (D77C, bit 3)
+ const EVENT_BEAT_CELADON_GYM_TRAINER_3 ; 1AC, (D77C, bit 4)
+ const EVENT_BEAT_CELADON_GYM_TRAINER_4 ; 1AD, (D77C, bit 5)
+ const EVENT_BEAT_CELADON_GYM_TRAINER_5 ; 1AE, (D77C, bit 6)
+ const EVENT_BEAT_CELADON_GYM_TRAINER_6 ; 1AF, (D77C, bit 7)
+ const EVENT_BEAT_CELADON_GYM_TRAINER_7 ; 1B0, (D77D, bit 0)
+ const EVENT_1B1 ; 1B1, (D77D, bit 1)
+ const EVENT_1B2 ; 1B2, (D77D, bit 2)
+ const EVENT_1B3 ; 1B3, (D77D, bit 3)
+ const EVENT_1B4 ; 1B4, (D77D, bit 4)
+ const EVENT_1B5 ; 1B5, (D77D, bit 5)
+ const EVENT_1B6 ; 1B6, (D77D, bit 6)
+ const EVENT_1B7 ; 1B7, (D77D, bit 7)
+ const EVENT_1B8 ; 1B8, (D77E, bit 0)
+ const EVENT_FOUND_ROCKET_HIDEOUT ; 1B9, (D77E, bit 1)
+ const EVENT_GOT_10_COINS ; 1BA, (D77E, bit 2)
+ const EVENT_GOT_20_COINS ; 1BB, (D77E, bit 3)
+ const EVENT_GOT_20_COINS_2 ; 1BC, (D77E, bit 4)
+ const EVENT_1BD ; 1BD, (D77E, bit 5)
+ const EVENT_1BE ; 1BE, (D77E, bit 6)
+ const EVENT_1BF ; 1BF, (D77E, bit 7)
+ const EVENT_1C0 ; 1C0, (D77F, bit 0)
+ const EVENT_1C1 ; 1C1, (D77F, bit 1)
+ const EVENT_1C2 ; 1C2, (D77F, bit 2)
+ const EVENT_1C3 ; 1C3, (D77F, bit 3)
+ const EVENT_1C4 ; 1C4, (D77F, bit 4)
+ const EVENT_1C5 ; 1C5, (D77F, bit 5)
+ const EVENT_1C6 ; 1C6, (D77F, bit 6)
+ const EVENT_1C7 ; 1C7, (D77F, bit 7)
+ const EVENT_1C8 ; 1C8, (D780, bit 0)
+ const EVENT_1C9 ; 1C9, (D780, bit 1)
+ const EVENT_1CA ; 1CA, (D780, bit 2)
+ const EVENT_1CB ; 1CB, (D780, bit 3)
+ const EVENT_1CC ; 1CC, (D780, bit 4)
+ const EVENT_1CD ; 1CD, (D780, bit 5)
+ const EVENT_1CE ; 1CE, (D780, bit 6)
+ const EVENT_1CF ; 1CF, (D780, bit 7)
+ const EVENT_1D0 ; 1D0, (D781, bit 0)
+ const EVENT_1D1 ; 1D1, (D781, bit 1)
+ const EVENT_1D2 ; 1D2, (D781, bit 2)
+ const EVENT_1D3 ; 1D3, (D781, bit 3)
+ const EVENT_1D4 ; 1D4, (D781, bit 4)
+ const EVENT_1D5 ; 1D5, (D781, bit 5)
+ const EVENT_1D6 ; 1D6, (D781, bit 6)
+ const EVENT_1D7 ; 1D7, (D781, bit 7)
+ const EVENT_1D8 ; 1D8, (D782, bit 0)
+ const EVENT_1D9 ; 1D9, (D782, bit 1)
+ const EVENT_1DA ; 1DA, (D782, bit 2)
+ const EVENT_1DB ; 1DB, (D782, bit 3)
+ const EVENT_1DC ; 1DC, (D782, bit 4)
+ const EVENT_1DD ; 1DD, (D782, bit 5)
+ const EVENT_1DE ; 1DE, (D782, bit 6)
+ const EVENT_1DF ; 1DF, (D782, bit 7)
+ const EVENT_GOT_COIN_CASE ; 1E0, (D783, bit 0)
+ const EVENT_1E1 ; 1E1, (D783, bit 1)
+ const EVENT_1E2 ; 1E2, (D783, bit 2)
+ const EVENT_1E3 ; 1E3, (D783, bit 3)
+ const EVENT_1E4 ; 1E4, (D783, bit 4)
+ const EVENT_1E5 ; 1E5, (D783, bit 5)
+ const EVENT_1E6 ; 1E6, (D783, bit 6)
+ const EVENT_1E7 ; 1E7, (D783, bit 7)
+ const EVENT_1E8 ; 1E8, (D784, bit 0)
+ const EVENT_1E9 ; 1E9, (D784, bit 1)
+ const EVENT_1EA ; 1EA, (D784, bit 2)
+ const EVENT_1EB ; 1EB, (D784, bit 3)
+ const EVENT_1EC ; 1EC, (D784, bit 4)
+ const EVENT_1ED ; 1ED, (D784, bit 5)
+ const EVENT_1EE ; 1EE, (D784, bit 6)
+ const EVENT_1EF ; 1EF, (D784, bit 7)
+ const EVENT_1F0 ; 1F0, (D785, bit 0)
+ const EVENT_1F1 ; 1F1, (D785, bit 1)
+ const EVENT_1F2 ; 1F2, (D785, bit 2)
+ const EVENT_1F3 ; 1F3, (D785, bit 3)
+ const EVENT_1F4 ; 1F4, (D785, bit 4)
+ const EVENT_1F5 ; 1F5, (D785, bit 5)
+ const EVENT_1F6 ; 1F6, (D785, bit 6)
+ const EVENT_1F7 ; 1F7, (D785, bit 7)
+ const EVENT_1F8 ; 1F8, (D786, bit 0)
+ const EVENT_1F9 ; 1F9, (D786, bit 1)
+ const EVENT_1FA ; 1FA, (D786, bit 2)
+ const EVENT_1FB ; 1FB, (D786, bit 3)
+ const EVENT_1FC ; 1FC, (D786, bit 4)
+ const EVENT_1FD ; 1FD, (D786, bit 5)
+ const EVENT_1FE ; 1FE, (D786, bit 6)
+ const EVENT_1FF ; 1FF, (D786, bit 7)
+ const EVENT_200 ; 200, (D787, bit 0)
+ const EVENT_201 ; 201, (D787, bit 1)
+ const EVENT_202 ; 202, (D787, bit 2)
+ const EVENT_203 ; 203, (D787, bit 3)
+ const EVENT_204 ; 204, (D787, bit 4)
+ const EVENT_205 ; 205, (D787, bit 5)
+ const EVENT_206 ; 206, (D787, bit 6)
+ const EVENT_207 ; 207, (D787, bit 7)
+ const EVENT_208 ; 208, (D788, bit 0)
+ const EVENT_209 ; 209, (D788, bit 1)
+ const EVENT_20A ; 20A, (D788, bit 2)
+ const EVENT_20B ; 20B, (D788, bit 3)
+ const EVENT_20C ; 20C, (D788, bit 4)
+ const EVENT_20D ; 20D, (D788, bit 5)
+ const EVENT_20E ; 20E, (D788, bit 6)
+ const EVENT_20F ; 20F, (D788, bit 7)
+ const EVENT_210 ; 210, (D789, bit 0)
+ const EVENT_211 ; 211, (D789, bit 1)
+ const EVENT_212 ; 212, (D789, bit 2)
+ const EVENT_213 ; 213, (D789, bit 3)
+ const EVENT_214 ; 214, (D789, bit 4)
+ const EVENT_215 ; 215, (D789, bit 5)
+ const EVENT_216 ; 216, (D789, bit 6)
+ const EVENT_217 ; 217, (D789, bit 7)
+ const EVENT_218 ; 218, (D78A, bit 0)
+ const EVENT_219 ; 219, (D78A, bit 1)
+ const EVENT_21A ; 21A, (D78A, bit 2)
+ const EVENT_21B ; 21B, (D78A, bit 3)
+ const EVENT_21C ; 21C, (D78A, bit 4)
+ const EVENT_21D ; 21D, (D78A, bit 5)
+ const EVENT_21E ; 21E, (D78A, bit 6)
+ const EVENT_21F ; 21F, (D78A, bit 7)
+ const EVENT_220 ; 220, (D78B, bit 0)
+ const EVENT_221 ; 221, (D78B, bit 1)
+ const EVENT_222 ; 222, (D78B, bit 2)
+ const EVENT_223 ; 223, (D78B, bit 3)
+ const EVENT_224 ; 224, (D78B, bit 4)
+ const EVENT_225 ; 225, (D78B, bit 5)
+ const EVENT_226 ; 226, (D78B, bit 6)
+ const EVENT_227 ; 227, (D78B, bit 7)
+ const EVENT_228 ; 228, (D78C, bit 0)
+ const EVENT_229 ; 229, (D78C, bit 1)
+ const EVENT_22A ; 22A, (D78C, bit 2)
+ const EVENT_22B ; 22B, (D78C, bit 3)
+ const EVENT_22C ; 22C, (D78C, bit 4)
+ const EVENT_22D ; 22D, (D78C, bit 5)
+ const EVENT_22E ; 22E, (D78C, bit 6)
+ const EVENT_22F ; 22F, (D78C, bit 7)
+ const EVENT_230 ; 230, (D78D, bit 0)
+ const EVENT_231 ; 231, (D78D, bit 1)
+ const EVENT_232 ; 232, (D78D, bit 2)
+ const EVENT_233 ; 233, (D78D, bit 3)
+ const EVENT_234 ; 234, (D78D, bit 4)
+ const EVENT_235 ; 235, (D78D, bit 5)
+ const EVENT_236 ; 236, (D78D, bit 6)
+ const EVENT_237 ; 237, (D78D, bit 7)
+ const EVENT_GOT_HM04 ; 238, (D78E, bit 0)
+ const EVENT_GAVE_GOLD_TEETH ; 239, (D78E, bit 1)
+ const EVENT_23A ; 23A, (D78E, bit 2)
+ const EVENT_23B ; 23B, (D78E, bit 3)
+ const EVENT_23C ; 23C, (D78E, bit 4)
+ const EVENT_23D ; 23D, (D78E, bit 5)
+ const EVENT_23E ; 23E, (D78E, bit 6)
+ const EVENT_23F ; 23F, (D78E, bit 7)
+ const EVENT_240 ; 240, (D78F, bit 0)
+ const EVENT_241 ; 241, (D78F, bit 1)
+ const EVENT_242 ; 242, (D78F, bit 2)
+ const EVENT_243 ; 243, (D78F, bit 3)
+ const EVENT_244 ; 244, (D78F, bit 4)
+ const EVENT_245 ; 245, (D78F, bit 5)
+ const EVENT_246 ; 246, (D78F, bit 6)
+ const EVENT_247 ; 247, (D78F, bit 7)
+ const EVENT_248 ; 248, (D790, bit 0)
+ const EVENT_249 ; 249, (D790, bit 1)
+ const EVENT_24A ; 24A, (D790, bit 2)
+ const EVENT_24B ; 24B, (D790, bit 3)
+ const EVENT_24C ; 24C, (D790, bit 4)
+ const EVENT_24D ; 24D, (D790, bit 5)
+ const EVENT_SAFARI_GAME_OVER ; 24E, (D790, bit 6)
+ const EVENT_IN_SAFARI_ZONE ; 24F, (D790, bit 7)
+ const EVENT_250 ; 250, (D791, bit 0)
+ const EVENT_251 ; 251, (D791, bit 1)
+ const EVENT_252 ; 252, (D791, bit 2)
+ const EVENT_253 ; 253, (D791, bit 3)
+ const EVENT_254 ; 254, (D791, bit 4)
+ const EVENT_255 ; 255, (D791, bit 5)
+ const EVENT_256 ; 256, (D791, bit 6)
+ const EVENT_257 ; 257, (D791, bit 7)
+ const EVENT_GOT_TM06 ; 258, (D792, bit 0)
+ const EVENT_BEAT_KOGA ; 259, (D792, bit 1)
+ const EVENT_BEAT_FUCHSIA_GYM_TRAINER_0 ; 25A, (D792, bit 2)
+ const EVENT_BEAT_FUCHSIA_GYM_TRAINER_2 ; 25B, (D792, bit 3)
+ const EVENT_BEAT_FUCHSIA_GYM_TRAINER_3 ; 25C, (D792, bit 4)
+ const EVENT_BEAT_FUCHSIA_GYM_TRAINER_4 ; 25D, (D792, bit 5)
+ const EVENT_BEAT_FUCHSIA_GYM_TRAINER_5 ; 25E, (D792, bit 6)
+ const EVENT_BEAT_FUCHSIA_GYM_TRAINER_6 ; 25F, (D792, bit 7)
+ const EVENT_260 ; 260, (D793, bit 0)
+ const EVENT_261 ; 261, (D793, bit 1)
+ const EVENT_262 ; 262, (D793, bit 2)
+ const EVENT_263 ; 263, (D793, bit 3)
+ const EVENT_264 ; 264, (D793, bit 4)
+ const EVENT_265 ; 265, (D793, bit 5)
+ const EVENT_266 ; 266, (D793, bit 6)
+ const EVENT_267 ; 267, (D793, bit 7)
+ const EVENT_268 ; 268, (D794, bit 0)
+ const EVENT_269 ; 269, (D794, bit 1)
+ const EVENT_26A ; 26A, (D794, bit 2)
+ const EVENT_26B ; 26B, (D794, bit 3)
+ const EVENT_26C ; 26C, (D794, bit 4)
+ const EVENT_26D ; 26D, (D794, bit 5)
+ const EVENT_26E ; 26E, (D794, bit 6)
+ const EVENT_26F ; 26F, (D794, bit 7)
+ const EVENT_270 ; 270, (D795, bit 0)
+ const EVENT_271 ; 271, (D795, bit 1)
+ const EVENT_272 ; 272, (D795, bit 2)
+ const EVENT_273 ; 273, (D795, bit 3)
+ const EVENT_274 ; 274, (D795, bit 4)
+ const EVENT_275 ; 275, (D795, bit 5)
+ const EVENT_276 ; 276, (D795, bit 6)
+ const EVENT_277 ; 277, (D795, bit 7)
+ const EVENT_MANSION_SWITCH_ON ; 278, (D796, bit 0)
+ const EVENT_279 ; 279, (D796, bit 1)
+ const EVENT_27A ; 27A, (D796, bit 2)
+ const EVENT_27B ; 27B, (D796, bit 3)
+ const EVENT_27C ; 27C, (D796, bit 4)
+ const EVENT_27D ; 27D, (D796, bit 5)
+ const EVENT_27E ; 27E, (D796, bit 6)
+ const EVENT_27F ; 27F, (D796, bit 7)
+ const EVENT_280 ; 280, (D797, bit 0)
+ const EVENT_281 ; 281, (D797, bit 1)
+ const EVENT_282 ; 282, (D797, bit 2)
+ const EVENT_283 ; 283, (D797, bit 3)
+ const EVENT_284 ; 284, (D797, bit 4)
+ const EVENT_285 ; 285, (D797, bit 5)
+ const EVENT_286 ; 286, (D797, bit 6)
+ const EVENT_287 ; 287, (D797, bit 7)
+ const EVENT_288 ; 288, (D798, bit 0)
+ const EVENT_BEAT_MANSION_1_TRAINER_0 ; 289, (D798, bit 1)
+ const EVENT_28A ; 28A, (D798, bit 2)
+ const EVENT_28B ; 28B, (D798, bit 3)
+ const EVENT_28C ; 28C, (D798, bit 4)
+ const EVENT_28D ; 28D, (D798, bit 5)
+ const EVENT_28E ; 28E, (D798, bit 6)
+ const EVENT_28F ; 28F, (D798, bit 7)
+ const EVENT_290 ; 290, (D799, bit 0)
+ const EVENT_291 ; 291, (D799, bit 1)
+ const EVENT_292 ; 292, (D799, bit 2)
+ const EVENT_293 ; 293, (D799, bit 3)
+ const EVENT_294 ; 294, (D799, bit 4)
+ const EVENT_295 ; 295, (D799, bit 5)
+ const EVENT_296 ; 296, (D799, bit 6)
+ const EVENT_297 ; 297, (D799, bit 7)
+ const EVENT_GOT_TM38 ; 298, (D79A, bit 0)
+ const EVENT_BEAT_BLAINE ; 299, (D79A, bit 1)
+ const EVENT_BEAT_CINNABAR_GYM_TRAINER_0 ; 29A, (D79A, bit 2)
+ const EVENT_BEAT_CINNABAR_GYM_TRAINER_1 ; 29B, (D79A, bit 3)
+ const EVENT_BEAT_CINNABAR_GYM_TRAINER_2 ; 29C, (D79A, bit 4)
+ const EVENT_BEAT_CINNABAR_GYM_TRAINER_3 ; 29D, (D79A, bit 5)
+ const EVENT_BEAT_CINNABAR_GYM_TRAINER_4 ; 29E, (D79A, bit 6)
+ const EVENT_BEAT_CINNABAR_GYM_TRAINER_5 ; 29F, (D79A, bit 7)
+ const EVENT_BEAT_CINNABAR_GYM_TRAINER_6 ; 2A0, (D79B, bit 0)
+ const EVENT_2A1 ; 2A1, (D79B, bit 1)
+ const EVENT_2A2 ; 2A2, (D79B, bit 2)
+ const EVENT_2A3 ; 2A3, (D79B, bit 3)
+ const EVENT_2A4 ; 2A4, (D79B, bit 4)
+ const EVENT_2A5 ; 2A5, (D79B, bit 5)
+ const EVENT_2A6 ; 2A6, (D79B, bit 6)
+ const EVENT_2A7 ; 2A7, (D79B, bit 7)
+ const EVENT_CINNABAR_GYM_GATE0_UNLOCKED ; 2A8, (D79C, bit 0) doesn't exist, but the bit is set
+ const EVENT_CINNABAR_GYM_GATE1_UNLOCKED ; 2A9, (D79C, bit 1)
+ const EVENT_CINNABAR_GYM_GATE2_UNLOCKED ; 2AA, (D79C, bit 2)
+ const EVENT_CINNABAR_GYM_GATE3_UNLOCKED ; 2AB, (D79C, bit 3)
+ const EVENT_CINNABAR_GYM_GATE4_UNLOCKED ; 2AC, (D79C, bit 4)
+ const EVENT_CINNABAR_GYM_GATE5_UNLOCKED ; 2AD, (D79C, bit 5)
+ const EVENT_CINNABAR_GYM_GATE6_UNLOCKED ; 2AE, (D79C, bit 6)
+ const EVENT_2AF ; 2AF, (D79C, bit 7)
+ const EVENT_2B0 ; 2B0, (D79D, bit 0)
+ const EVENT_2B1 ; 2B1, (D79D, bit 1)
+ const EVENT_2B2 ; 2B2, (D79D, bit 2)
+ const EVENT_2B3 ; 2B3, (D79D, bit 3)
+ const EVENT_2B4 ; 2B4, (D79D, bit 4)
+ const EVENT_2B5 ; 2B5, (D79D, bit 5)
+ const EVENT_2B6 ; 2B6, (D79D, bit 6)
+ const EVENT_2B7 ; 2B7, (D79D, bit 7)
+ const EVENT_2B8 ; 2B8, (D79E, bit 0)
+ const EVENT_2B9 ; 2B9, (D79E, bit 1)
+ const EVENT_2BA ; 2BA, (D79E, bit 2)
+ const EVENT_2BB ; 2BB, (D79E, bit 3)
+ const EVENT_2BC ; 2BC, (D79E, bit 4)
+ const EVENT_2BD ; 2BD, (D79E, bit 5)
+ const EVENT_2BE ; 2BE, (D79E, bit 6)
+ const EVENT_2BF ; 2BF, (D79E, bit 7)
+ const EVENT_2C0 ; 2C0, (D79F, bit 0)
+ const EVENT_2C1 ; 2C1, (D79F, bit 1)
+ const EVENT_2C2 ; 2C2, (D79F, bit 2)
+ const EVENT_2C3 ; 2C3, (D79F, bit 3)
+ const EVENT_2C4 ; 2C4, (D79F, bit 4)
+ const EVENT_2C5 ; 2C5, (D79F, bit 5)
+ const EVENT_2C6 ; 2C6, (D79F, bit 6)
+ const EVENT_2C7 ; 2C7, (D79F, bit 7)
+ const EVENT_2C8 ; 2C8, (D7A0, bit 0)
+ const EVENT_2C9 ; 2C9, (D7A0, bit 1)
+ const EVENT_2CA ; 2CA, (D7A0, bit 2)
+ const EVENT_2CB ; 2CB, (D7A0, bit 3)
+ const EVENT_2CC ; 2CC, (D7A0, bit 4)
+ const EVENT_2CD ; 2CD, (D7A0, bit 5)
+ const EVENT_2CE ; 2CE, (D7A0, bit 6)
+ const EVENT_2CF ; 2CF, (D7A0, bit 7)
+ const EVENT_2D0 ; 2D0, (D7A1, bit 0)
+ const EVENT_2D1 ; 2D1, (D7A1, bit 1)
+ const EVENT_2D2 ; 2D2, (D7A1, bit 2)
+ const EVENT_2D3 ; 2D3, (D7A1, bit 3)
+ const EVENT_2D4 ; 2D4, (D7A1, bit 4)
+ const EVENT_2D5 ; 2D5, (D7A1, bit 5)
+ const EVENT_2D6 ; 2D6, (D7A1, bit 6)
+ const EVENT_GOT_TM35 ; 2D7, (D7A1, bit 7)
+ const EVENT_2D8 ; 2D8, (D7A2, bit 0)
+ const EVENT_2D9 ; 2D9, (D7A2, bit 1)
+ const EVENT_2DA ; 2DA, (D7A2, bit 2)
+ const EVENT_2DB ; 2DB, (D7A2, bit 3)
+ const EVENT_2DC ; 2DC, (D7A2, bit 4)
+ const EVENT_2DD ; 2DD, (D7A2, bit 5)
+ const EVENT_2DE ; 2DE, (D7A2, bit 6)
+ const EVENT_2DF ; 2DF, (D7A2, bit 7)
+ const EVENT_GAVE_FOSSIL_TO_LAB ; 2E0, (D7A3, bit 0)
+ const EVENT_LAB_STILL_REVIVING_FOSSIL ; 2E1, (D7A3, bit 1)
+ const EVENT_LAB_HANDING_OVER_FOSSIL_MON ; 2E2, (D7A3, bit 2)
+ const EVENT_2E3 ; 2E3, (D7A3, bit 3)
+ const EVENT_2E4 ; 2E4, (D7A3, bit 4)
+ const EVENT_2E5 ; 2E5, (D7A3, bit 5)
+ const EVENT_2E6 ; 2E6, (D7A3, bit 6)
+ const EVENT_2E7 ; 2E7, (D7A3, bit 7)
+ const EVENT_2E8 ; 2E8, (D7A4, bit 0)
+ const EVENT_2E9 ; 2E9, (D7A4, bit 1)
+ const EVENT_2EA ; 2EA, (D7A4, bit 2)
+ const EVENT_2EB ; 2EB, (D7A4, bit 3)
+ const EVENT_2EC ; 2EC, (D7A4, bit 4)
+ const EVENT_2ED ; 2ED, (D7A4, bit 5)
+ const EVENT_2EE ; 2EE, (D7A4, bit 6)
+ const EVENT_2EF ; 2EF, (D7A4, bit 7)
+ const EVENT_2F0 ; 2F0, (D7A5, bit 0)
+ const EVENT_2F1 ; 2F1, (D7A5, bit 1)
+ const EVENT_2F2 ; 2F2, (D7A5, bit 2)
+ const EVENT_2F3 ; 2F3, (D7A5, bit 3)
+ const EVENT_2F4 ; 2F4, (D7A5, bit 4)
+ const EVENT_2F5 ; 2F5, (D7A5, bit 5)
+ const EVENT_2F6 ; 2F6, (D7A5, bit 6)
+ const EVENT_2F7 ; 2F7, (D7A5, bit 7)
+ const EVENT_2F8 ; 2F8, (D7A6, bit 0)
+ const EVENT_2F9 ; 2F9, (D7A6, bit 1)
+ const EVENT_2FA ; 2FA, (D7A6, bit 2)
+ const EVENT_2FB ; 2FB, (D7A6, bit 3)
+ const EVENT_2FC ; 2FC, (D7A6, bit 4)
+ const EVENT_2FD ; 2FD, (D7A6, bit 5)
+ const EVENT_2FE ; 2FE, (D7A6, bit 6)
+ const EVENT_2FF ; 2FF, (D7A6, bit 7)
+ const EVENT_300 ; 300, (D7A7, bit 0)
+ const EVENT_301 ; 301, (D7A7, bit 1)
+ const EVENT_302 ; 302, (D7A7, bit 2)
+ const EVENT_303 ; 303, (D7A7, bit 3)
+ const EVENT_304 ; 304, (D7A7, bit 4)
+ const EVENT_305 ; 305, (D7A7, bit 5)
+ const EVENT_306 ; 306, (D7A7, bit 6)
+ const EVENT_307 ; 307, (D7A7, bit 7)
+ const EVENT_308 ; 308, (D7A8, bit 0)
+ const EVENT_309 ; 309, (D7A8, bit 1)
+ const EVENT_30A ; 30A, (D7A8, bit 2)
+ const EVENT_30B ; 30B, (D7A8, bit 3)
+ const EVENT_30C ; 30C, (D7A8, bit 4)
+ const EVENT_30D ; 30D, (D7A8, bit 5)
+ const EVENT_30E ; 30E, (D7A8, bit 6)
+ const EVENT_30F ; 30F, (D7A8, bit 7)
+ const EVENT_310 ; 310, (D7A9, bit 0)
+ const EVENT_311 ; 311, (D7A9, bit 1)
+ const EVENT_312 ; 312, (D7A9, bit 2)
+ const EVENT_313 ; 313, (D7A9, bit 3)
+ const EVENT_314 ; 314, (D7A9, bit 4)
+ const EVENT_315 ; 315, (D7A9, bit 5)
+ const EVENT_316 ; 316, (D7A9, bit 6)
+ const EVENT_317 ; 317, (D7A9, bit 7)
+ const EVENT_318 ; 318, (D7AA, bit 0)
+ const EVENT_319 ; 319, (D7AA, bit 1)
+ const EVENT_31A ; 31A, (D7AA, bit 2)
+ const EVENT_31B ; 31B, (D7AA, bit 3)
+ const EVENT_31C ; 31C, (D7AA, bit 4)
+ const EVENT_31D ; 31D, (D7AA, bit 5)
+ const EVENT_31E ; 31E, (D7AA, bit 6)
+ const EVENT_31F ; 31F, (D7AA, bit 7)
+ const EVENT_320 ; 320, (D7AB, bit 0)
+ const EVENT_321 ; 321, (D7AB, bit 1)
+ const EVENT_322 ; 322, (D7AB, bit 2)
+ const EVENT_323 ; 323, (D7AB, bit 3)
+ const EVENT_324 ; 324, (D7AB, bit 4)
+ const EVENT_325 ; 325, (D7AB, bit 5)
+ const EVENT_326 ; 326, (D7AB, bit 6)
+ const EVENT_327 ; 327, (D7AB, bit 7)
+ const EVENT_328 ; 328, (D7AC, bit 0)
+ const EVENT_329 ; 329, (D7AC, bit 1)
+ const EVENT_32A ; 32A, (D7AC, bit 2)
+ const EVENT_32B ; 32B, (D7AC, bit 3)
+ const EVENT_32C ; 32C, (D7AC, bit 4)
+ const EVENT_32D ; 32D, (D7AC, bit 5)
+ const EVENT_32E ; 32E, (D7AC, bit 6)
+ const EVENT_32F ; 32F, (D7AC, bit 7)
+ const EVENT_330 ; 330, (D7AD, bit 0)
+ const EVENT_331 ; 331, (D7AD, bit 1)
+ const EVENT_332 ; 332, (D7AD, bit 2)
+ const EVENT_333 ; 333, (D7AD, bit 3)
+ const EVENT_334 ; 334, (D7AD, bit 4)
+ const EVENT_335 ; 335, (D7AD, bit 5)
+ const EVENT_336 ; 336, (D7AD, bit 6)
+ const EVENT_337 ; 337, (D7AD, bit 7)
+ const EVENT_338 ; 338, (D7AE, bit 0)
+ const EVENT_339 ; 339, (D7AE, bit 1)
+ const EVENT_33A ; 33A, (D7AE, bit 2)
+ const EVENT_33B ; 33B, (D7AE, bit 3)
+ const EVENT_33C ; 33C, (D7AE, bit 4)
+ const EVENT_33D ; 33D, (D7AE, bit 5)
+ const EVENT_33E ; 33E, (D7AE, bit 6)
+ const EVENT_33F ; 33F, (D7AE, bit 7)
+ const EVENT_GOT_TM31 ; 340, (D7AF, bit 0)
+ const EVENT_341 ; 341, (D7AF, bit 1)
+ const EVENT_342 ; 342, (D7AF, bit 2)
+ const EVENT_343 ; 343, (D7AF, bit 3)
+ const EVENT_344 ; 344, (D7AF, bit 4)
+ const EVENT_345 ; 345, (D7AF, bit 5)
+ const EVENT_346 ; 346, (D7AF, bit 6)
+ const EVENT_347 ; 347, (D7AF, bit 7)
+ const EVENT_348 ; 348, (D7B0, bit 0)
+ const EVENT_349 ; 349, (D7B0, bit 1)
+ const EVENT_34A ; 34A, (D7B0, bit 2)
+ const EVENT_34B ; 34B, (D7B0, bit 3)
+ const EVENT_34C ; 34C, (D7B0, bit 4)
+ const EVENT_34D ; 34D, (D7B0, bit 5)
+ const EVENT_34E ; 34E, (D7B0, bit 6)
+ const EVENT_34F ; 34F, (D7B0, bit 7)
+ const EVENT_DEFEATED_FIGHTING_DOJO ; 350, (D7B1, bit 0)
+ const EVENT_BEAT_KARATE_MASTER ; 351, (D7B1, bit 1)
+ const EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 ; 352, (D7B1, bit 2)
+ const EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 ; 353, (D7B1, bit 3)
+ const EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 ; 354, (D7B1, bit 4)
+ const EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 ; 355, (D7B1, bit 5)
+ const EVENT_GOT_HITMONLEE ; 356, (D7B1, bit 6)
+ const EVENT_GOT_HITMONCHAN ; 357, (D7B1, bit 7)
+ const EVENT_358 ; 358, (D7B2, bit 0)
+ const EVENT_359 ; 359, (D7B2, bit 1)
+ const EVENT_35A ; 35A, (D7B2, bit 2)
+ const EVENT_35B ; 35B, (D7B2, bit 3)
+ const EVENT_35C ; 35C, (D7B2, bit 4)
+ const EVENT_35D ; 35D, (D7B2, bit 5)
+ const EVENT_35E ; 35E, (D7B2, bit 6)
+ const EVENT_35F ; 35F, (D7B2, bit 7)
+ const EVENT_GOT_TM46 ; 360, (D7B3, bit 0)
+ const EVENT_BEAT_SABRINA ; 361, (D7B3, bit 1)
+ const EVENT_BEAT_SAFFRON_GYM_TRAINER_0 ; 362, (D7B3, bit 2)
+ const EVENT_BEAT_SAFFRON_GYM_TRAINER_1 ; 363, (D7B3, bit 3)
+ const EVENT_BEAT_SAFFRON_GYM_TRAINER_2 ; 364, (D7B3, bit 4)
+ const EVENT_BEAT_SAFFRON_GYM_TRAINER_3 ; 365, (D7B3, bit 5)
+ const EVENT_BEAT_SAFFRON_GYM_TRAINER_4 ; 366, (D7B3, bit 6)
+ const EVENT_BEAT_SAFFRON_GYM_TRAINER_5 ; 367, (D7B3, bit 7)
+ const EVENT_BEAT_SAFFRON_GYM_TRAINER_6 ; 368, (D7B4, bit 0)
+ const EVENT_369 ; 369, (D7B4, bit 1)
+ const EVENT_36A ; 36A, (D7B4, bit 2)
+ const EVENT_36B ; 36B, (D7B4, bit 3)
+ const EVENT_36C ; 36C, (D7B4, bit 4)
+ const EVENT_36D ; 36D, (D7B4, bit 5)
+ const EVENT_36E ; 36E, (D7B4, bit 6)
+ const EVENT_36F ; 36F, (D7B4, bit 7)
+ const EVENT_370 ; 370, (D7B5, bit 0)
+ const EVENT_371 ; 371, (D7B5, bit 1)
+ const EVENT_372 ; 372, (D7B5, bit 2)
+ const EVENT_373 ; 373, (D7B5, bit 3)
+ const EVENT_374 ; 374, (D7B5, bit 4)
+ const EVENT_375 ; 375, (D7B5, bit 5)
+ const EVENT_376 ; 376, (D7B5, bit 6)
+ const EVENT_377 ; 377, (D7B5, bit 7)
+ const EVENT_378 ; 378, (D7B6, bit 0)
+ const EVENT_379 ; 379, (D7B6, bit 1)
+ const EVENT_37A ; 37A, (D7B6, bit 2)
+ const EVENT_37B ; 37B, (D7B6, bit 3)
+ const EVENT_37C ; 37C, (D7B6, bit 4)
+ const EVENT_37D ; 37D, (D7B6, bit 5)
+ const EVENT_37E ; 37E, (D7B6, bit 6)
+ const EVENT_37F ; 37F, (D7B6, bit 7)
+ const EVENT_380 ; 380, (D7B7, bit 0)
+ const EVENT_381 ; 381, (D7B7, bit 1)
+ const EVENT_382 ; 382, (D7B7, bit 2)
+ const EVENT_383 ; 383, (D7B7, bit 3)
+ const EVENT_384 ; 384, (D7B7, bit 4)
+ const EVENT_385 ; 385, (D7B7, bit 5)
+ const EVENT_386 ; 386, (D7B7, bit 6)
+ const EVENT_387 ; 387, (D7B7, bit 7)
+ const EVENT_388 ; 388, (D7B8, bit 0)
+ const EVENT_389 ; 389, (D7B8, bit 1)
+ const EVENT_38A ; 38A, (D7B8, bit 2)
+ const EVENT_38B ; 38B, (D7B8, bit 3)
+ const EVENT_38C ; 38C, (D7B8, bit 4)
+ const EVENT_38D ; 38D, (D7B8, bit 5)
+ const EVENT_38E ; 38E, (D7B8, bit 6)
+ const EVENT_38F ; 38F, (D7B8, bit 7)
+ const EVENT_390 ; 390, (D7B9, bit 0)
+ const EVENT_391 ; 391, (D7B9, bit 1)
+ const EVENT_392 ; 392, (D7B9, bit 2)
+ const EVENT_393 ; 393, (D7B9, bit 3)
+ const EVENT_394 ; 394, (D7B9, bit 4)
+ const EVENT_395 ; 395, (D7B9, bit 5)
+ const EVENT_396 ; 396, (D7B9, bit 6)
+ const EVENT_SILPH_CO_RECEPTIONIST_AT_DESK ; 397, (D7B9, bit 7)
+ const EVENT_398 ; 398, (D7BA, bit 0)
+ const EVENT_399 ; 399, (D7BA, bit 1)
+ const EVENT_39A ; 39A, (D7BA, bit 2)
+ const EVENT_39B ; 39B, (D7BA, bit 3)
+ const EVENT_39C ; 39C, (D7BA, bit 4)
+ const EVENT_39D ; 39D, (D7BA, bit 5)
+ const EVENT_39E ; 39E, (D7BA, bit 6)
+ const EVENT_39F ; 39F, (D7BA, bit 7)
+ const EVENT_3A0 ; 3A0, (D7BB, bit 0)
+ const EVENT_3A1 ; 3A1, (D7BB, bit 1)
+ const EVENT_3A2 ; 3A2, (D7BB, bit 2)
+ const EVENT_3A3 ; 3A3, (D7BB, bit 3)
+ const EVENT_3A4 ; 3A4, (D7BB, bit 4)
+ const EVENT_3A5 ; 3A5, (D7BB, bit 5)
+ const EVENT_3A6 ; 3A6, (D7BB, bit 6)
+ const EVENT_3A7 ; 3A7, (D7BB, bit 7)
+ const EVENT_3A8 ; 3A8, (D7BC, bit 0)
+ const EVENT_3A9 ; 3A9, (D7BC, bit 1)
+ const EVENT_3AA ; 3AA, (D7BC, bit 2)
+ const EVENT_3AB ; 3AB, (D7BC, bit 3)
+ const EVENT_3AC ; 3AC, (D7BC, bit 4)
+ const EVENT_3AD ; 3AD, (D7BC, bit 5)
+ const EVENT_3AE ; 3AE, (D7BC, bit 6)
+ const EVENT_3AF ; 3AF, (D7BC, bit 7)
+ const EVENT_GOT_TM29 ; 3B0, (D7BD, bit 0)
+ const EVENT_3B1 ; 3B1, (D7BD, bit 1)
+ const EVENT_3B2 ; 3B2, (D7BD, bit 2)
+ const EVENT_3B3 ; 3B3, (D7BD, bit 3)
+ const EVENT_3B4 ; 3B4, (D7BD, bit 4)
+ const EVENT_3B5 ; 3B5, (D7BD, bit 5)
+ const EVENT_3B6 ; 3B6, (D7BD, bit 6)
+ const EVENT_3B7 ; 3B7, (D7BD, bit 7)
+ const EVENT_3B8 ; 3B8, (D7BE, bit 0)
+ const EVENT_3B9 ; 3B9, (D7BE, bit 1)
+ const EVENT_3BA ; 3BA, (D7BE, bit 2)
+ const EVENT_3BB ; 3BB, (D7BE, bit 3)
+ const EVENT_3BC ; 3BC, (D7BE, bit 4)
+ const EVENT_3BD ; 3BD, (D7BE, bit 5)
+ const EVENT_3BE ; 3BE, (D7BE, bit 6)
+ const EVENT_3BF ; 3BF, (D7BE, bit 7)
+ const EVENT_GOT_POTION_SAMPLE ; 3C0, (D7BF, bit 0)
+ const EVENT_3C1 ; 3C1, (D7BF, bit 1)
+ const EVENT_3C2 ; 3C2, (D7BF, bit 2)
+ const EVENT_3C3 ; 3C3, (D7BF, bit 3)
+ const EVENT_3C4 ; 3C4, (D7BF, bit 4)
+ const EVENT_3C5 ; 3C5, (D7BF, bit 5)
+ const EVENT_3C6 ; 3C6, (D7BF, bit 6)
+ const EVENT_3C7 ; 3C7, (D7BF, bit 7)
+ const EVENT_3C8 ; 3C8, (D7C0, bit 0)
+ const EVENT_3C9 ; 3C9, (D7C0, bit 1)
+ const EVENT_3CA ; 3CA, (D7C0, bit 2)
+ const EVENT_3CB ; 3CB, (D7C0, bit 3)
+ const EVENT_3CC ; 3CC, (D7C0, bit 4)
+ const EVENT_3CD ; 3CD, (D7C0, bit 5)
+ const EVENT_3CE ; 3CE, (D7C0, bit 6)
+ const EVENT_3CF ; 3CF, (D7C0, bit 7)
+ const EVENT_3D0 ; 3D0, (D7C1, bit 0)
+ const EVENT_3D1 ; 3D1, (D7C1, bit 1)
+ const EVENT_3D2 ; 3D2, (D7C1, bit 2)
+ const EVENT_3D3 ; 3D3, (D7C1, bit 3)
+ const EVENT_3D4 ; 3D4, (D7C1, bit 4)
+ const EVENT_3D5 ; 3D5, (D7C1, bit 5)
+ const EVENT_3D6 ; 3D6, (D7C1, bit 6)
+ const EVENT_3D7 ; 3D7, (D7C1, bit 7)
+ const EVENT_GOT_HM05 ; 3D8, (D7C2, bit 0)
+ const EVENT_3D9 ; 3D9, (D7C2, bit 1)
+ const EVENT_3DA ; 3DA, (D7C2, bit 2)
+ const EVENT_3DB ; 3DB, (D7C2, bit 3)
+ const EVENT_3DC ; 3DC, (D7C2, bit 4)
+ const EVENT_3DD ; 3DD, (D7C2, bit 5)
+ const EVENT_3DE ; 3DE, (D7C2, bit 6)
+ const EVENT_3DF ; 3DF, (D7C2, bit 7)
+ const EVENT_3E0 ; 3E0, (D7C3, bit 0)
+ const EVENT_3E1 ; 3E1, (D7C3, bit 1)
+ const EVENT_BEAT_ROUTE_3_TRAINER_0 ; 3E2, (D7C3, bit 2)
+ const EVENT_BEAT_ROUTE_3_TRAINER_2 ; 3E3, (D7C3, bit 3)
+ const EVENT_BEAT_ROUTE_3_TRAINER_3 ; 3E4, (D7C3, bit 4)
+ const EVENT_BEAT_ROUTE_3_TRAINER_4 ; 3E5, (D7C3, bit 5)
+ const EVENT_BEAT_ROUTE_3_TRAINER_5 ; 3E6, (D7C3, bit 6)
+ const EVENT_BEAT_ROUTE_3_TRAINER_6 ; 3E7, (D7C3, bit 7)
+ const EVENT_BEAT_ROUTE_3_TRAINER_7 ; 3E8, (D7C4, bit 0)
+ const EVENT_BEAT_ROUTE_3_TRAINER_8 ; 3E9, (D7C4, bit 1)
+ const EVENT_3EA ; 3EA, (D7C4, bit 2)
+ const EVENT_3EB ; 3EB, (D7C4, bit 3)
+ const EVENT_3EC ; 3EC, (D7C4, bit 4)
+ const EVENT_3ED ; 3ED, (D7C4, bit 5)
+ const EVENT_3EE ; 3EE, (D7C4, bit 6)
+ const EVENT_3EF ; 3EF, (D7C4, bit 7)
+ const EVENT_3F0 ; 3F0, (D7C5, bit 0)
+ const EVENT_3F1 ; 3F1, (D7C5, bit 1)
+ const EVENT_BEAT_ROUTE_4_TRAINER_0 ; 3F2, (D7C5, bit 2)
+ const EVENT_3F3 ; 3F3, (D7C5, bit 3)
+ const EVENT_3F4 ; 3F4, (D7C5, bit 4)
+ const EVENT_3F5 ; 3F5, (D7C5, bit 5)
+ const EVENT_3F6 ; 3F6, (D7C5, bit 6)
+ const EVENT_3F7 ; 3F7, (D7C5, bit 7)
+ const EVENT_3F8 ; 3F8, (D7C6, bit 0)
+ const EVENT_3F9 ; 3F9, (D7C6, bit 1)
+ const EVENT_3FA ; 3FA, (D7C6, bit 2)
+ const EVENT_3FB ; 3FB, (D7C6, bit 3)
+ const EVENT_3FC ; 3FC, (D7C6, bit 4)
+ const EVENT_3FD ; 3FD, (D7C6, bit 5)
+ const EVENT_3FE ; 3FE, (D7C6, bit 6)
+ const EVENT_BOUGHT_MAGIKARP ; 3FF, (D7C6, bit 7)
+ const EVENT_400 ; 400, (D7C7, bit 0)
+ const EVENT_401 ; 401, (D7C7, bit 1)
+ const EVENT_402 ; 402, (D7C7, bit 2)
+ const EVENT_403 ; 403, (D7C7, bit 3)
+ const EVENT_404 ; 404, (D7C7, bit 4)
+ const EVENT_405 ; 405, (D7C7, bit 5)
+ const EVENT_406 ; 406, (D7C7, bit 6)
+ const EVENT_407 ; 407, (D7C7, bit 7)
+ const EVENT_408 ; 408, (D7C8, bit 0)
+ const EVENT_409 ; 409, (D7C8, bit 1)
+ const EVENT_40A ; 40A, (D7C8, bit 2)
+ const EVENT_40B ; 40B, (D7C8, bit 3)
+ const EVENT_40C ; 40C, (D7C8, bit 4)
+ const EVENT_40D ; 40D, (D7C8, bit 5)
+ const EVENT_40E ; 40E, (D7C8, bit 6)
+ const EVENT_40F ; 40F, (D7C8, bit 7)
+ const EVENT_410 ; 410, (D7C9, bit 0)
+ const EVENT_BEAT_ROUTE_6_TRAINER_0 ; 411, (D7C9, bit 1)
+ const EVENT_BEAT_ROUTE_6_TRAINER_1 ; 412, (D7C9, bit 2)
+ const EVENT_BEAT_ROUTE_6_TRAINER_2 ; 413, (D7C9, bit 3)
+ const EVENT_BEAT_ROUTE_6_TRAINER_3 ; 414, (D7C9, bit 4)
+ const EVENT_BEAT_ROUTE_6_TRAINER_4 ; 415, (D7C9, bit 5)
+ const EVENT_BEAT_ROUTE_6_TRAINER_5 ; 416, (D7C9, bit 6)
+ const EVENT_417 ; 417, (D7C9, bit 7)
+ const EVENT_418 ; 418, (D7CA, bit 0)
+ const EVENT_419 ; 419, (D7CA, bit 1)
+ const EVENT_41A ; 41A, (D7CA, bit 2)
+ const EVENT_41B ; 41B, (D7CA, bit 3)
+ const EVENT_41C ; 41C, (D7CA, bit 4)
+ const EVENT_41D ; 41D, (D7CA, bit 5)
+ const EVENT_41E ; 41E, (D7CA, bit 6)
+ const EVENT_41F ; 41F, (D7CA, bit 7)
+ const EVENT_420 ; 420, (D7CB, bit 0)
+ const EVENT_421 ; 421, (D7CB, bit 1)
+ const EVENT_422 ; 422, (D7CB, bit 2)
+ const EVENT_423 ; 423, (D7CB, bit 3)
+ const EVENT_424 ; 424, (D7CB, bit 4)
+ const EVENT_425 ; 425, (D7CB, bit 5)
+ const EVENT_426 ; 426, (D7CB, bit 6)
+ const EVENT_427 ; 427, (D7CB, bit 7)
+ const EVENT_428 ; 428, (D7CC, bit 0)
+ const EVENT_429 ; 429, (D7CC, bit 1)
+ const EVENT_42A ; 42A, (D7CC, bit 2)
+ const EVENT_42B ; 42B, (D7CC, bit 3)
+ const EVENT_42C ; 42C, (D7CC, bit 4)
+ const EVENT_42D ; 42D, (D7CC, bit 5)
+ const EVENT_42E ; 42E, (D7CC, bit 6)
+ const EVENT_42F ; 42F, (D7CC, bit 7)
+ const EVENT_430 ; 430, (D7CD, bit 0)
+ const EVENT_BEAT_ROUTE_8_TRAINER_0 ; 431, (D7CD, bit 1)
+ const EVENT_BEAT_ROUTE_8_TRAINER_1 ; 432, (D7CD, bit 2)
+ const EVENT_BEAT_ROUTE_8_TRAINER_2 ; 433, (D7CD, bit 3)
+ const EVENT_BEAT_ROUTE_8_TRAINER_3 ; 434, (D7CD, bit 4)
+ const EVENT_BEAT_ROUTE_8_TRAINER_4 ; 435, (D7CD, bit 5)
+ const EVENT_BEAT_ROUTE_8_TRAINER_5 ; 436, (D7CD, bit 6)
+ const EVENT_BEAT_ROUTE_8_TRAINER_6 ; 437, (D7CD, bit 7)
+ const EVENT_BEAT_ROUTE_8_TRAINER_7 ; 438, (D7CE, bit 0)
+ const EVENT_BEAT_ROUTE_8_TRAINER_8 ; 439, (D7CE, bit 1)
+ const EVENT_43A ; 43A, (D7CE, bit 2)
+ const EVENT_43B ; 43B, (D7CE, bit 3)
+ const EVENT_43C ; 43C, (D7CE, bit 4)
+ const EVENT_43D ; 43D, (D7CE, bit 5)
+ const EVENT_43E ; 43E, (D7CE, bit 6)
+ const EVENT_43F ; 43F, (D7CE, bit 7)
+ const EVENT_440 ; 440, (D7CF, bit 0)
+ const EVENT_BEAT_ROUTE_9_TRAINER_0 ; 441, (D7CF, bit 1)
+ const EVENT_BEAT_ROUTE_9_TRAINER_2 ; 442, (D7CF, bit 2)
+ const EVENT_BEAT_ROUTE_9_TRAINER_3 ; 443, (D7CF, bit 3)
+ const EVENT_BEAT_ROUTE_9_TRAINER_4 ; 444, (D7CF, bit 4)
+ const EVENT_BEAT_ROUTE_9_TRAINER_5 ; 445, (D7CF, bit 5)
+ const EVENT_BEAT_ROUTE_9_TRAINER_6 ; 446, (D7CF, bit 6)
+ const EVENT_BEAT_ROUTE_9_TRAINER_7 ; 447, (D7CF, bit 7)
+ const EVENT_BEAT_ROUTE_9_TRAINER_8 ; 448, (D7D0, bit 0)
+ const EVENT_BEAT_ROUTE_9_TRAINER_9 ; 449, (D7D0, bit 1)
+ const EVENT_44A ; 44A, (D7D0, bit 2)
+ const EVENT_44B ; 44B, (D7D0, bit 3)
+ const EVENT_44C ; 44C, (D7D0, bit 4)
+ const EVENT_44D ; 44D, (D7D0, bit 5)
+ const EVENT_44E ; 44E, (D7D0, bit 6)
+ const EVENT_44F ; 44F, (D7D0, bit 7)
+ const EVENT_450 ; 450, (D7D1, bit 0)
+ const EVENT_BEAT_ROUTE_10_TRAINER_0 ; 451, (D7D1, bit 1)
+ const EVENT_BEAT_ROUTE_10_TRAINER_1 ; 452, (D7D1, bit 2)
+ const EVENT_BEAT_ROUTE_10_TRAINER_2 ; 453, (D7D1, bit 3)
+ const EVENT_BEAT_ROUTE_10_TRAINER_3 ; 454, (D7D1, bit 4)
+ const EVENT_BEAT_ROUTE_10_TRAINER_4 ; 455, (D7D1, bit 5)
+ const EVENT_BEAT_ROUTE_10_TRAINER_5 ; 456, (D7D1, bit 6)
+ const EVENT_457 ; 457, (D7D1, bit 7)
+ const EVENT_458 ; 458, (D7D2, bit 0)
+ const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1 ; 459, (D7D2, bit 1)
+ const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2 ; 45A, (D7D2, bit 2)
+ const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_3 ; 45B, (D7D2, bit 3)
+ const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4 ; 45C, (D7D2, bit 4)
+ const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5 ; 45D, (D7D2, bit 5)
+ const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6 ; 45E, (D7D2, bit 6)
+ const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_7 ; 45F, (D7D2, bit 7)
+ const EVENT_460 ; 460, (D7D3, bit 0)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_0 ; 461, (D7D3, bit 1)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_1 ; 462, (D7D3, bit 2)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_2 ; 463, (D7D3, bit 3)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_3 ; 464, (D7D3, bit 4)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_4 ; 465, (D7D3, bit 5)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_5 ; 466, (D7D3, bit 6)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_6 ; 467, (D7D3, bit 7)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_7 ; 468, (D7D4, bit 0)
+ const EVENT_BEAT_POWER_PLANT_TRAINER_8 ; 469, (D7D4, bit 1)
+ const EVENT_46A ; 46A, (D7D4, bit 2)
+ const EVENT_46B ; 46B, (D7D4, bit 3)
+ const EVENT_46C ; 46C, (D7D4, bit 4)
+ const EVENT_46D ; 46D, (D7D4, bit 5)
+ const EVENT_46E ; 46E, (D7D4, bit 6)
+ const EVENT_46F ; 46F, (D7D4, bit 7)
+ const EVENT_470 ; 470, (D7D5, bit 0)
+ const EVENT_BEAT_ROUTE_11_TRAINER_0 ; 471, (D7D5, bit 1)
+ const EVENT_BEAT_ROUTE_11_TRAINER_1 ; 472, (D7D5, bit 2)
+ const EVENT_BEAT_ROUTE_11_TRAINER_2 ; 473, (D7D5, bit 3)
+ const EVENT_BEAT_ROUTE_11_TRAINER_3 ; 474, (D7D5, bit 4)
+ const EVENT_BEAT_ROUTE_11_TRAINER_4 ; 475, (D7D5, bit 5)
+ const EVENT_BEAT_ROUTE_11_TRAINER_5 ; 476, (D7D5, bit 6)
+ const EVENT_BEAT_ROUTE_11_TRAINER_6 ; 477, (D7D5, bit 7)
+ const EVENT_BEAT_ROUTE_11_TRAINER_7 ; 478, (D7D6, bit 0)
+ const EVENT_BEAT_ROUTE_11_TRAINER_8 ; 479, (D7D6, bit 1)
+ const EVENT_BEAT_ROUTE_11_TRAINER_9 ; 47A, (D7D6, bit 2)
+ const EVENT_47B ; 47B, (D7D6, bit 3)
+ const EVENT_47C ; 47C, (D7D6, bit 4)
+ const EVENT_47D ; 47D, (D7D6, bit 5)
+ const EVENT_47E ; 47E, (D7D6, bit 6)
+ const EVENT_GOT_ITEMFINDER ; 47F, (D7D6, bit 7)
+ const EVENT_GOT_TM39 ; 480, (D7D7, bit 0)
+ const EVENT_481 ; 481, (D7D7, bit 1)
+ const EVENT_BEAT_ROUTE_12_TRAINER_0 ; 482, (D7D7, bit 2)
+ const EVENT_BEAT_ROUTE_12_TRAINER_1 ; 483, (D7D7, bit 3)
+ const EVENT_BEAT_ROUTE_12_TRAINER_2 ; 484, (D7D7, bit 4)
+ const EVENT_BEAT_ROUTE_12_TRAINER_3 ; 485, (D7D7, bit 5)
+ const EVENT_BEAT_ROUTE_12_TRAINER_4 ; 486, (D7D7, bit 6)
+ const EVENT_BEAT_ROUTE_12_TRAINER_5 ; 487, (D7D7, bit 7)
+ const EVENT_BEAT_ROUTE_12_TRAINER_6 ; 488, (D7D8, bit 0)
+ const EVENT_489 ; 489, (D7D8, bit 1)
+ const EVENT_48A ; 48A, (D7D8, bit 2)
+ const EVENT_48B ; 48B, (D7D8, bit 3)
+ const EVENT_48C ; 48C, (D7D8, bit 4)
+ const EVENT_48D ; 48D, (D7D8, bit 5)
+ const EVENT_FIGHT_ROUTE12_SNORLAX ; 48E, (D7D8, bit 6)
+ const EVENT_BEAT_ROUTE12_SNORLAX ; 48F, (D7D8, bit 7)
+ const EVENT_490 ; 490, (D7D9, bit 0)
+ const EVENT_BEAT_ROUTE_13_TRAINER_0 ; 491, (D7D9, bit 1)
+ const EVENT_BEAT_ROUTE_13_TRAINER_2 ; 492, (D7D9, bit 2)
+ const EVENT_BEAT_ROUTE_13_TRAINER_3 ; 493, (D7D9, bit 3)
+ const EVENT_BEAT_ROUTE_13_TRAINER_4 ; 494, (D7D9, bit 4)
+ const EVENT_BEAT_ROUTE_13_TRAINER_5 ; 495, (D7D9, bit 5)
+ const EVENT_BEAT_ROUTE_13_TRAINER_6 ; 496, (D7D9, bit 6)
+ const EVENT_BEAT_ROUTE_13_TRAINER_7 ; 497, (D7D9, bit 7)
+ const EVENT_BEAT_ROUTE_13_TRAINER_8 ; 498, (D7DA, bit 0)
+ const EVENT_BEAT_ROUTE_13_TRAINER_9 ; 499, (D7DA, bit 1)
+ const EVENT_BEAT_ROUTE_13_TRAINER_10 ; 49A, (D7DA, bit 2)
+ const EVENT_49B ; 49B, (D7DA, bit 3)
+ const EVENT_49C ; 49C, (D7DA, bit 4)
+ const EVENT_49D ; 49D, (D7DA, bit 5)
+ const EVENT_49E ; 49E, (D7DA, bit 6)
+ const EVENT_49F ; 49F, (D7DA, bit 7)
+ const EVENT_4A0 ; 4A0, (D7DB, bit 0)
+ const EVENT_BEAT_ROUTE_14_TRAINER_0 ; 4A1, (D7DB, bit 1)
+ const EVENT_BEAT_ROUTE_14_TRAINER_1 ; 4A2, (D7DB, bit 2)
+ const EVENT_BEAT_ROUTE_14_TRAINER_2 ; 4A3, (D7DB, bit 3)
+ const EVENT_BEAT_ROUTE_14_TRAINER_3 ; 4A4, (D7DB, bit 4)
+ const EVENT_BEAT_ROUTE_14_TRAINER_4 ; 4A5, (D7DB, bit 5)
+ const EVENT_BEAT_ROUTE_14_TRAINER_5 ; 4A6, (D7DB, bit 6)
+ const EVENT_BEAT_ROUTE_14_TRAINER_6 ; 4A7, (D7DB, bit 7)
+ const EVENT_BEAT_ROUTE_14_TRAINER_7 ; 4A8, (D7DC, bit 0)
+ const EVENT_BEAT_ROUTE_14_TRAINER_8 ; 4A9, (D7DC, bit 1)
+ const EVENT_BEAT_ROUTE_14_TRAINER_9 ; 4AA, (D7DC, bit 2)
+ const EVENT_4AB ; 4AB, (D7DC, bit 3)
+ const EVENT_4AC ; 4AC, (D7DC, bit 4)
+ const EVENT_4AD ; 4AD, (D7DC, bit 5)
+ const EVENT_4AE ; 4AE, (D7DC, bit 6)
+ const EVENT_4AF ; 4AF, (D7DC, bit 7)
+ const EVENT_GOT_EXP_ALL ; 4B0, (D7DD, bit 0)
+ const EVENT_BEAT_ROUTE_15_TRAINER_0 ; 4B1, (D7DD, bit 1)
+ const EVENT_BEAT_ROUTE_15_TRAINER_1 ; 4B2, (D7DD, bit 2)
+ const EVENT_BEAT_ROUTE_15_TRAINER_2 ; 4B3, (D7DD, bit 3)
+ const EVENT_BEAT_ROUTE_15_TRAINER_3 ; 4B4, (D7DD, bit 4)
+ const EVENT_BEAT_ROUTE_15_TRAINER_4 ; 4B5, (D7DD, bit 5)
+ const EVENT_BEAT_ROUTE_15_TRAINER_5 ; 4B6, (D7DD, bit 6)
+ const EVENT_BEAT_ROUTE_15_TRAINER_6 ; 4B7, (D7DD, bit 7)
+ const EVENT_BEAT_ROUTE_15_TRAINER_7 ; 4B8, (D7DE, bit 0)
+ const EVENT_BEAT_ROUTE_15_TRAINER_8 ; 4B9, (D7DE, bit 1)
+ const EVENT_BEAT_ROUTE_15_TRAINER_9 ; 4BA, (D7DE, bit 2)
+ const EVENT_4BB ; 4BB, (D7DE, bit 3)
+ const EVENT_4BC ; 4BC, (D7DE, bit 4)
+ const EVENT_4BD ; 4BD, (D7DE, bit 5)
+ const EVENT_4BE ; 4BE, (D7DE, bit 6)
+ const EVENT_4BF ; 4BF, (D7DE, bit 7)
+ const EVENT_4C0 ; 4C0, (D7DF, bit 0)
+ const EVENT_BEAT_ROUTE_16_TRAINER_0 ; 4C1, (D7DF, bit 1)
+ const EVENT_BEAT_ROUTE_16_TRAINER_1 ; 4C2, (D7DF, bit 2)
+ const EVENT_BEAT_ROUTE_16_TRAINER_2 ; 4C3, (D7DF, bit 3)
+ const EVENT_BEAT_ROUTE_16_TRAINER_3 ; 4C4, (D7DF, bit 4)
+ const EVENT_BEAT_ROUTE_16_TRAINER_4 ; 4C5, (D7DF, bit 5)
+ const EVENT_BEAT_ROUTE_16_TRAINER_5 ; 4C6, (D7DF, bit 6)
+ const EVENT_4C7 ; 4C7, (D7DF, bit 7)
+ const EVENT_FIGHT_ROUTE16_SNORLAX ; 4C8, (D7E0, bit 0)
+ const EVENT_BEAT_ROUTE16_SNORLAX ; 4C9, (D7E0, bit 1)
+ const EVENT_4CA ; 4CA, (D7E0, bit 2)
+ const EVENT_4CB ; 4CB, (D7E0, bit 3)
+ const EVENT_4CC ; 4CC, (D7E0, bit 4)
+ const EVENT_4CD ; 4CD, (D7E0, bit 5)
+ const EVENT_GOT_HM02 ; 4CE, (D7E0, bit 6)
+ const EVENT_RESCUED_MR_FUJI ; 4CF, (D7E0, bit 7)
+ const EVENT_4D0 ; 4D0, (D7E1, bit 0)
+ const EVENT_BEAT_ROUTE_17_TRAINER_0 ; 4D1, (D7E1, bit 1)
+ const EVENT_BEAT_ROUTE_17_TRAINER_1 ; 4D2, (D7E1, bit 2)
+ const EVENT_BEAT_ROUTE_17_TRAINER_2 ; 4D3, (D7E1, bit 3)
+ const EVENT_BEAT_ROUTE_17_TRAINER_3 ; 4D4, (D7E1, bit 4)
+ const EVENT_BEAT_ROUTE_17_TRAINER_4 ; 4D5, (D7E1, bit 5)
+ const EVENT_BEAT_ROUTE_17_TRAINER_5 ; 4D6, (D7E1, bit 6)
+ const EVENT_BEAT_ROUTE_17_TRAINER_6 ; 4D7, (D7E1, bit 7)
+ const EVENT_BEAT_ROUTE_17_TRAINER_7 ; 4D8, (D7E2, bit 0)
+ const EVENT_BEAT_ROUTE_17_TRAINER_8 ; 4D9, (D7E2, bit 1)
+ const EVENT_BEAT_ROUTE_17_TRAINER_9 ; 4DA, (D7E2, bit 2)
+ const EVENT_4DB ; 4DB, (D7E2, bit 3)
+ const EVENT_4DC ; 4DC, (D7E2, bit 4)
+ const EVENT_4DD ; 4DD, (D7E2, bit 5)
+ const EVENT_4DE ; 4DE, (D7E2, bit 6)
+ const EVENT_4DF ; 4DF, (D7E2, bit 7)
+ const EVENT_4E0 ; 4E0, (D7E3, bit 0)
+ const EVENT_BEAT_ROUTE_18_TRAINER_0 ; 4E1, (D7E3, bit 1)
+ const EVENT_BEAT_ROUTE_18_TRAINER_1 ; 4E2, (D7E3, bit 2)
+ const EVENT_BEAT_ROUTE_18_TRAINER_2 ; 4E3, (D7E3, bit 3)
+ const EVENT_4E4 ; 4E4, (D7E3, bit 4)
+ const EVENT_4E5 ; 4E5, (D7E3, bit 5)
+ const EVENT_4E6 ; 4E6, (D7E3, bit 6)
+ const EVENT_4E7 ; 4E7, (D7E3, bit 7)
+ const EVENT_4E8 ; 4E8, (D7E4, bit 0)
+ const EVENT_4E9 ; 4E9, (D7E4, bit 1)
+ const EVENT_4EA ; 4EA, (D7E4, bit 2)
+ const EVENT_4EB ; 4EB, (D7E4, bit 3)
+ const EVENT_4EC ; 4EC, (D7E4, bit 4)
+ const EVENT_4ED ; 4ED, (D7E4, bit 5)
+ const EVENT_4EE ; 4EE, (D7E4, bit 6)
+ const EVENT_4EF ; 4EF, (D7E4, bit 7)
+ const EVENT_4F0 ; 4F0, (D7E5, bit 0)
+ const EVENT_BEAT_ROUTE_19_TRAINER_0 ; 4F1, (D7E5, bit 1)
+ const EVENT_BEAT_ROUTE_19_TRAINER_1 ; 4F2, (D7E5, bit 2)
+ const EVENT_BEAT_ROUTE_19_TRAINER_2 ; 4F3, (D7E5, bit 3)
+ const EVENT_BEAT_ROUTE_19_TRAINER_3 ; 4F4, (D7E5, bit 4)
+ const EVENT_BEAT_ROUTE_19_TRAINER_4 ; 4F5, (D7E5, bit 5)
+ const EVENT_BEAT_ROUTE_19_TRAINER_5 ; 4F6, (D7E5, bit 6)
+ const EVENT_BEAT_ROUTE_19_TRAINER_6 ; 4F7, (D7E5, bit 7)
+ const EVENT_BEAT_ROUTE_19_TRAINER_7 ; 4F8, (D7E6, bit 0)
+ const EVENT_BEAT_ROUTE_19_TRAINER_8 ; 4F9, (D7E6, bit 1)
+ const EVENT_BEAT_ROUTE_19_TRAINER_9 ; 4FA, (D7E6, bit 2)
+ const EVENT_4FB ; 4FB, (D7E6, bit 3)
+ const EVENT_4FC ; 4FC, (D7E6, bit 4)
+ const EVENT_4FD ; 4FD, (D7E6, bit 5)
+ const EVENT_4FE ; 4FE, (D7E6, bit 6)
+ const EVENT_4FF ; 4FF, (D7E6, bit 7)
+ const EVENT_IN_SEAFOAM_ISLANDS ; 500, (D7E7, bit 0)
+ const EVENT_BEAT_ROUTE_20_TRAINER_0 ; 501, (D7E7, bit 1)
+ const EVENT_BEAT_ROUTE_20_TRAINER_2 ; 502, (D7E7, bit 2)
+ const EVENT_BEAT_ROUTE_20_TRAINER_3 ; 503, (D7E7, bit 3)
+ const EVENT_BEAT_ROUTE_20_TRAINER_4 ; 504, (D7E7, bit 4)
+ const EVENT_BEAT_ROUTE_20_TRAINER_5 ; 505, (D7E7, bit 5)
+ const EVENT_BEAT_ROUTE_20_TRAINER_6 ; 506, (D7E7, bit 6)
+ const EVENT_BEAT_ROUTE_20_TRAINER_7 ; 507, (D7E7, bit 7)
+ const EVENT_BEAT_ROUTE_20_TRAINER_8 ; 508, (D7E8, bit 0)
+ const EVENT_BEAT_ROUTE_20_TRAINER_9 ; 509, (D7E8, bit 1)
+ const EVENT_BEAT_ROUTE_20_TRAINER_10 ; 50A, (D7E8, bit 2)
+ const EVENT_50B ; 50B, (D7E8, bit 3)
+ const EVENT_50C ; 50C, (D7E8, bit 4)
+ const EVENT_50D ; 50D, (D7E8, bit 5)
+ const EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE ; 50E, (D7E8, bit 6)
+ const EVENT_SEAFOAM1_BOULDER2_DOWN_HOLE ; 50F, (D7E8, bit 7)
+ const EVENT_510 ; 510, (D7E9, bit 0)
+ const EVENT_BEAT_ROUTE_21_TRAINER_0 ; 511, (D7E9, bit 1)
+ const EVENT_BEAT_ROUTE_21_TRAINER_1 ; 512, (D7E9, bit 2)
+ const EVENT_BEAT_ROUTE_21_TRAINER_2 ; 513, (D7E9, bit 3)
+ const EVENT_BEAT_ROUTE_21_TRAINER_3 ; 514, (D7E9, bit 4)
+ const EVENT_BEAT_ROUTE_21_TRAINER_4 ; 515, (D7E9, bit 5)
+ const EVENT_BEAT_ROUTE_21_TRAINER_5 ; 516, (D7E9, bit 6)
+ const EVENT_BEAT_ROUTE_21_TRAINER_6 ; 517, (D7E9, bit 7)
+ const EVENT_BEAT_ROUTE_21_TRAINER_7 ; 518, (D7EA, bit 0)
+ const EVENT_BEAT_ROUTE_21_TRAINER_8 ; 519, (D7EA, bit 1)
+ const EVENT_51A ; 51A, (D7EA, bit 2)
+ const EVENT_51B ; 51B, (D7EA, bit 3)
+ const EVENT_51C ; 51C, (D7EA, bit 4)
+ const EVENT_51D ; 51D, (D7EA, bit 5)
+ const EVENT_51E ; 51E, (D7EA, bit 6)
+ const EVENT_51F ; 51F, (D7EA, bit 7)
+ const EVENT_1ST_ROUTE22_RIVAL_BATTLE ; 520, (D7EB, bit 0)
+ const EVENT_2ND_ROUTE22_RIVAL_BATTLE ; 521, (D7EB, bit 1)
+ const EVENT_522 ; 522, (D7EB, bit 2)
+ const EVENT_523 ; 523, (D7EB, bit 3)
+ const EVENT_524 ; 524, (D7EB, bit 4)
+ const EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE ; 525, (D7EB, bit 5)
+ const EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE ; 526, (D7EB, bit 6)
+ const EVENT_ROUTE22_RIVAL_WANTS_BATTLE ; 527, (D7EB, bit 7)
+ const EVENT_528 ; 528, (D7EC, bit 0)
+ const EVENT_529 ; 529, (D7EC, bit 1)
+ const EVENT_52A ; 52A, (D7EC, bit 2)
+ const EVENT_52B ; 52B, (D7EC, bit 3)
+ const EVENT_52C ; 52C, (D7EC, bit 4)
+ const EVENT_52D ; 52D, (D7EC, bit 5)
+ const EVENT_52E ; 52E, (D7EC, bit 6)
+ const EVENT_52F ; 52F, (D7EC, bit 7)
+ const EVENT_PASSED_CASCADEBADGE_CHECK ; 530, (D7ED, bit 0)
+ const EVENT_PASSED_THUNDERBADGE_CHECK ; 531, (D7ED, bit 1)
+ const EVENT_PASSED_RAINBOWBADGE_CHECK ; 532, (D7ED, bit 2)
+ const EVENT_PASSED_SOULBADGE_CHECK ; 533, (D7ED, bit 3)
+ const EVENT_PASSED_MARSHBADGE_CHECK ; 534, (D7ED, bit 4)
+ const EVENT_PASSED_VOLCANOBADGE_CHECK ; 535, (D7ED, bit 5)
+ const EVENT_PASSED_EARTHBADGE_CHECK ; 536, (D7ED, bit 6)
+ const EVENT_537 ; 537, (D7ED, bit 7)
+ const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1 ; 538, (D7EE, bit 0)
+ const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0 ; 539, (D7EE, bit 1)
+ const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_2 ; 53A, (D7EE, bit 2)
+ const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_3 ; 53B, (D7EE, bit 3)
+ const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4 ; 53C, (D7EE, bit 4)
+ const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_5 ; 53D, (D7EE, bit 5)
+ const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_6 ; 53E, (D7EE, bit 6)
+ const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2 ; 53F, (D7EE, bit 7)
+ const EVENT_GOT_NUGGET ; 540, (D7EF, bit 0)
+ const EVENT_BEAT_ROUTE24_ROCKET ; 541, (D7EF, bit 1)
+ const EVENT_BEAT_ROUTE_24_TRAINER_0 ; 542, (D7EF, bit 2)
+ const EVENT_BEAT_ROUTE_24_TRAINER_2 ; 543, (D7EF, bit 3)
+ const EVENT_BEAT_ROUTE_24_TRAINER_3 ; 544, (D7EF, bit 4)
+ const EVENT_BEAT_ROUTE_24_TRAINER_4 ; 545, (D7EF, bit 5)
+ const EVENT_BEAT_ROUTE_24_TRAINER_5 ; 546, (D7EF, bit 6)
+ const EVENT_BEAT_ROUTE_24_TRAINER_6 ; 547, (D7EF, bit 7)
+ const EVENT_548 ; 548, (D7F0, bit 0)
+ const EVENT_NUGGET_REWARD_AVAILABLE ; 549, (D7F0, bit 1)
+ const EVENT_54A ; 54A, (D7F0, bit 2)
+ const EVENT_54B ; 54B, (D7F0, bit 3)
+ const EVENT_54C ; 54C, (D7F0, bit 4)
+ const EVENT_54D ; 54D, (D7F0, bit 5)
+ const EVENT_54E ; 54E, (D7F0, bit 6)
+ const EVENT_54F ; 54F, (D7F0, bit 7)
+ const EVENT_MET_BILL ; 550, (D7F1, bit 0)
+ const EVENT_BEAT_ROUTE_25_TRAINER_0 ; 551, (D7F1, bit 1)
+ const EVENT_BEAT_ROUTE_25_TRAINER_2 ; 552, (D7F1, bit 2)
+ const EVENT_BEAT_ROUTE_25_TRAINER_3 ; 553, (D7F1, bit 3)
+ const EVENT_BEAT_ROUTE_25_TRAINER_4 ; 554, (D7F1, bit 4)
+ const EVENT_BEAT_ROUTE_25_TRAINER_5 ; 555, (D7F1, bit 5)
+ const EVENT_BEAT_ROUTE_25_TRAINER_6 ; 556, (D7F1, bit 6)
+ const EVENT_BEAT_ROUTE_25_TRAINER_7 ; 557, (D7F1, bit 7)
+ const EVENT_BEAT_ROUTE_25_TRAINER_8 ; 558, (D7F2, bit 0)
+ const EVENT_BEAT_ROUTE_25_TRAINER_9 ; 559, (D7F2, bit 1)
+ const EVENT_55A ; 55A, (D7F2, bit 2)
+ const EVENT_USED_CELL_SEPARATOR_ON_BILL ; 55B, (D7F2, bit 3)
+ const EVENT_GOT_SS_TICKET ; 55C, (D7F2, bit 4)
+ const EVENT_MET_BILL_2 ; 55D, (D7F2, bit 5)
+ const EVENT_BILL_SAID_USE_CELL_SEPARATOR ; 55E, (D7F2, bit 6)
+ const EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING ; 55F, (D7F2, bit 7)
+ const EVENT_560 ; 560, (D7F3, bit 0)
+ const EVENT_561 ; 561, (D7F3, bit 1)
+ const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0 ; 562, (D7F3, bit 2)
+ const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1 ; 563, (D7F3, bit 3)
+ const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2 ; 564, (D7F3, bit 4)
+ const EVENT_565 ; 565, (D7F3, bit 5)
+ const EVENT_566 ; 566, (D7F3, bit 6)
+ const EVENT_567 ; 567, (D7F3, bit 7)
+ const EVENT_568 ; 568, (D7F4, bit 0)
+ const EVENT_569 ; 569, (D7F4, bit 1)
+ const EVENT_56A ; 56A, (D7F4, bit 2)
+ const EVENT_56B ; 56B, (D7F4, bit 3)
+ const EVENT_56C ; 56C, (D7F4, bit 4)
+ const EVENT_56D ; 56D, (D7F4, bit 5)
+ const EVENT_56E ; 56E, (D7F4, bit 6)
+ const EVENT_56F ; 56F, (D7F4, bit 7)
+ const EVENT_570 ; 570, (D7F5, bit 0)
+ const EVENT_BEAT_MT_MOON_1_TRAINER_0 ; 571, (D7F5, bit 1)
+ const EVENT_BEAT_MT_MOON_1_TRAINER_2 ; 572, (D7F5, bit 2)
+ const EVENT_BEAT_MT_MOON_1_TRAINER_3 ; 573, (D7F5, bit 3)
+ const EVENT_BEAT_MT_MOON_1_TRAINER_4 ; 574, (D7F5, bit 4)
+ const EVENT_BEAT_MT_MOON_1_TRAINER_5 ; 575, (D7F5, bit 5)
+ const EVENT_BEAT_MT_MOON_1_TRAINER_6 ; 576, (D7F5, bit 6)
+ const EVENT_BEAT_MT_MOON_1_TRAINER_7 ; 577, (D7F5, bit 7)
+ const EVENT_578 ; 578, (D7F6, bit 0)
+ const EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD ; 579, (D7F6, bit 1)
+ const EVENT_BEAT_MT_MOON_3_TRAINER_0 ; 57A, (D7F6, bit 2)
+ const EVENT_BEAT_MT_MOON_3_TRAINER_2 ; 57B, (D7F6, bit 3)
+ const EVENT_BEAT_MT_MOON_3_TRAINER_3 ; 57C, (D7F6, bit 4)
+ const EVENT_BEAT_MT_MOON_3_TRAINER_4 ; 57D, (D7F6, bit 5)
+ const EVENT_GOT_DOME_FOSSIL ; 57E, (D7F6, bit 6)
+ const EVENT_GOT_HELIX_FOSSIL ; 57F, (D7F6, bit 7)
+ const EVENT_580 ; 580, (D7F7, bit 0)
+ const EVENT_581 ; 581, (D7F7, bit 1)
+ const EVENT_582 ; 582, (D7F7, bit 2)
+ const EVENT_583 ; 583, (D7F7, bit 3)
+ const EVENT_584 ; 584, (D7F7, bit 4)
+ const EVENT_585 ; 585, (D7F7, bit 5)
+ const EVENT_586 ; 586, (D7F7, bit 6)
+ const EVENT_587 ; 587, (D7F7, bit 7)
+ const EVENT_588 ; 588, (D7F8, bit 0)
+ const EVENT_589 ; 589, (D7F8, bit 1)
+ const EVENT_58A ; 58A, (D7F8, bit 2)
+ const EVENT_58B ; 58B, (D7F8, bit 3)
+ const EVENT_58C ; 58C, (D7F8, bit 4)
+ const EVENT_58D ; 58D, (D7F8, bit 5)
+ const EVENT_58E ; 58E, (D7F8, bit 6)
+ const EVENT_58F ; 58F, (D7F8, bit 7)
+ const EVENT_590 ; 590, (D7F9, bit 0)
+ const EVENT_591 ; 591, (D7F9, bit 1)
+ const EVENT_592 ; 592, (D7F9, bit 2)
+ const EVENT_593 ; 593, (D7F9, bit 3)
+ const EVENT_594 ; 594, (D7F9, bit 4)
+ const EVENT_595 ; 595, (D7F9, bit 5)
+ const EVENT_596 ; 596, (D7F9, bit 6)
+ const EVENT_597 ; 597, (D7F9, bit 7)
+ const EVENT_598 ; 598, (D7FA, bit 0)
+ const EVENT_599 ; 599, (D7FA, bit 1)
+ const EVENT_59A ; 59A, (D7FA, bit 2)
+ const EVENT_59B ; 59B, (D7FA, bit 3)
+ const EVENT_59C ; 59C, (D7FA, bit 4)
+ const EVENT_59D ; 59D, (D7FA, bit 5)
+ const EVENT_59E ; 59E, (D7FA, bit 6)
+ const EVENT_59F ; 59F, (D7FA, bit 7)
+ const EVENT_5A0 ; 5A0, (D7FB, bit 0)
+ const EVENT_5A1 ; 5A1, (D7FB, bit 1)
+ const EVENT_5A2 ; 5A2, (D7FB, bit 2)
+ const EVENT_5A3 ; 5A3, (D7FB, bit 3)
+ const EVENT_5A4 ; 5A4, (D7FB, bit 4)
+ const EVENT_5A5 ; 5A5, (D7FB, bit 5)
+ const EVENT_5A6 ; 5A6, (D7FB, bit 6)
+ const EVENT_5A7 ; 5A7, (D7FB, bit 7)
+ const EVENT_5A8 ; 5A8, (D7FC, bit 0)
+ const EVENT_5A9 ; 5A9, (D7FC, bit 1)
+ const EVENT_5AA ; 5AA, (D7FC, bit 2)
+ const EVENT_5AB ; 5AB, (D7FC, bit 3)
+ const EVENT_5AC ; 5AC, (D7FC, bit 4)
+ const EVENT_5AD ; 5AD, (D7FC, bit 5)
+ const EVENT_5AE ; 5AE, (D7FC, bit 6)
+ const EVENT_5AF ; 5AF, (D7FC, bit 7)
+ const EVENT_5B0 ; 5B0, (D7FD, bit 0)
+ const EVENT_5B1 ; 5B1, (D7FD, bit 1)
+ const EVENT_5B2 ; 5B2, (D7FD, bit 2)
+ const EVENT_5B3 ; 5B3, (D7FD, bit 3)
+ const EVENT_5B4 ; 5B4, (D7FD, bit 4)
+ const EVENT_5B5 ; 5B5, (D7FD, bit 5)
+ const EVENT_5B6 ; 5B6, (D7FD, bit 6)
+ const EVENT_5B7 ; 5B7, (D7FD, bit 7)
+ const EVENT_5B8 ; 5B8, (D7FE, bit 0)
+ const EVENT_5B9 ; 5B9, (D7FE, bit 1)
+ const EVENT_5BA ; 5BA, (D7FE, bit 2)
+ const EVENT_5BB ; 5BB, (D7FE, bit 3)
+ const EVENT_5BC ; 5BC, (D7FE, bit 4)
+ const EVENT_5BD ; 5BD, (D7FE, bit 5)
+ const EVENT_5BE ; 5BE, (D7FE, bit 6)
+ const EVENT_5BF ; 5BF, (D7FE, bit 7)
+ const EVENT_5C0 ; 5C0, (D7FF, bit 0)
+ const EVENT_5C1 ; 5C1, (D7FF, bit 1)
+ const EVENT_5C2 ; 5C2, (D7FF, bit 2)
+ const EVENT_5C3 ; 5C3, (D7FF, bit 3)
+ const EVENT_BEAT_SS_ANNE_5_TRAINER_0 ; 5C4, (D7FF, bit 4)
+ const EVENT_BEAT_SS_ANNE_5_TRAINER_1 ; 5C5, (D7FF, bit 5)
+ const EVENT_5C6 ; 5C6, (D7FF, bit 6)
+ const EVENT_5C7 ; 5C7, (D7FF, bit 7)
+ const EVENT_5C8 ; 5C8, (D800, bit 0)
+ const EVENT_5C9 ; 5C9, (D800, bit 1)
+ const EVENT_5CA ; 5CA, (D800, bit 2)
+ const EVENT_5CB ; 5CB, (D800, bit 3)
+ const EVENT_5CC ; 5CC, (D800, bit 4)
+ const EVENT_5CD ; 5CD, (D800, bit 5)
+ const EVENT_5CE ; 5CE, (D800, bit 6)
+ const EVENT_5CF ; 5CF, (D800, bit 7)
+ const EVENT_5D0 ; 5D0, (D801, bit 0)
+ const EVENT_5D1 ; 5D1, (D801, bit 1)
+ const EVENT_5D2 ; 5D2, (D801, bit 2)
+ const EVENT_5D3 ; 5D3, (D801, bit 3)
+ const EVENT_5D4 ; 5D4, (D801, bit 4)
+ const EVENT_5D5 ; 5D5, (D801, bit 5)
+ const EVENT_5D6 ; 5D6, (D801, bit 6)
+ const EVENT_5D7 ; 5D7, (D801, bit 7)
+ const EVENT_5D8 ; 5D8, (D802, bit 0)
+ const EVENT_5D9 ; 5D9, (D802, bit 1)
+ const EVENT_5DA ; 5DA, (D802, bit 2)
+ const EVENT_5DB ; 5DB, (D802, bit 3)
+ const EVENT_5DC ; 5DC, (D802, bit 4)
+ const EVENT_5DD ; 5DD, (D802, bit 5)
+ const EVENT_5DE ; 5DE, (D802, bit 6)
+ const EVENT_5DF ; 5DF, (D802, bit 7)
+ const EVENT_GOT_HM01 ; 5E0, (D803, bit 0)
+ const EVENT_RUBBED_CAPTAINS_BACK ; 5E1, (D803, bit 1)
+ const EVENT_SS_ANNE_LEFT ; 5E2, (D803, bit 2)
+ const EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT ; 5E3, (D803, bit 3)
+ const EVENT_STARTED_WALKING_OUT_OF_DOCK ; 5E4, (D803, bit 4)
+ const EVENT_WALKED_OUT_OF_DOCK ; 5E5, (D803, bit 5)
+ const EVENT_5E6 ; 5E6, (D803, bit 6)
+ const EVENT_5E7 ; 5E7, (D803, bit 7)
+ const EVENT_5E8 ; 5E8, (D804, bit 0)
+ const EVENT_5E9 ; 5E9, (D804, bit 1)
+ const EVENT_5EA ; 5EA, (D804, bit 2)
+ const EVENT_5EB ; 5EB, (D804, bit 3)
+ const EVENT_5EC ; 5EC, (D804, bit 4)
+ const EVENT_5ED ; 5ED, (D804, bit 5)
+ const EVENT_5EE ; 5EE, (D804, bit 6)
+ const EVENT_5EF ; 5EF, (D804, bit 7)
+ const EVENT_5F0 ; 5F0, (D805, bit 0)
+ const EVENT_BEAT_SS_ANNE_8_TRAINER_0 ; 5F1, (D805, bit 1)
+ const EVENT_BEAT_SS_ANNE_8_TRAINER_1 ; 5F2, (D805, bit 2)
+ const EVENT_BEAT_SS_ANNE_8_TRAINER_2 ; 5F3, (D805, bit 3)
+ const EVENT_BEAT_SS_ANNE_8_TRAINER_3 ; 5F4, (D805, bit 4)
+ const EVENT_5F5 ; 5F5, (D805, bit 5)
+ const EVENT_5F6 ; 5F6, (D805, bit 6)
+ const EVENT_5F7 ; 5F7, (D805, bit 7)
+ const EVENT_5F8 ; 5F8, (D806, bit 0)
+ const EVENT_5F9 ; 5F9, (D806, bit 1)
+ const EVENT_5FA ; 5FA, (D806, bit 2)
+ const EVENT_5FB ; 5FB, (D806, bit 3)
+ const EVENT_5FC ; 5FC, (D806, bit 4)
+ const EVENT_5FD ; 5FD, (D806, bit 5)
+ const EVENT_5FE ; 5FE, (D806, bit 6)
+ const EVENT_5FF ; 5FF, (D806, bit 7)
+ const EVENT_600 ; 600, (D807, bit 0)
+ const EVENT_BEAT_SS_ANNE_9_TRAINER_0 ; 601, (D807, bit 1)
+ const EVENT_BEAT_SS_ANNE_9_TRAINER_1 ; 602, (D807, bit 2)
+ const EVENT_BEAT_SS_ANNE_9_TRAINER_2 ; 603, (D807, bit 3)
+ const EVENT_BEAT_SS_ANNE_9_TRAINER_3 ; 604, (D807, bit 4)
+ const EVENT_605 ; 605, (D807, bit 5)
+ const EVENT_606 ; 606, (D807, bit 6)
+ const EVENT_607 ; 607, (D807, bit 7)
+ const EVENT_608 ; 608, (D808, bit 0)
+ const EVENT_609 ; 609, (D808, bit 1)
+ const EVENT_60A ; 60A, (D808, bit 2)
+ const EVENT_60B ; 60B, (D808, bit 3)
+ const EVENT_60C ; 60C, (D808, bit 4)
+ const EVENT_60D ; 60D, (D808, bit 5)
+ const EVENT_60E ; 60E, (D808, bit 6)
+ const EVENT_60F ; 60F, (D808, bit 7)
+ const EVENT_610 ; 610, (D809, bit 0)
+ const EVENT_BEAT_SS_ANNE_10_TRAINER_0 ; 611, (D809, bit 1)
+ const EVENT_BEAT_SS_ANNE_10_TRAINER_1 ; 612, (D809, bit 2)
+ const EVENT_BEAT_SS_ANNE_10_TRAINER_2 ; 613, (D809, bit 3)
+ const EVENT_BEAT_SS_ANNE_10_TRAINER_3 ; 614, (D809, bit 4)
+ const EVENT_BEAT_SS_ANNE_10_TRAINER_4 ; 615, (D809, bit 5)
+ const EVENT_BEAT_SS_ANNE_10_TRAINER_5 ; 616, (D809, bit 6)
+ const EVENT_617 ; 617, (D809, bit 7)
+ const EVENT_618 ; 618, (D80A, bit 0)
+ const EVENT_619 ; 619, (D80A, bit 1)
+ const EVENT_61A ; 61A, (D80A, bit 2)
+ const EVENT_61B ; 61B, (D80A, bit 3)
+ const EVENT_61C ; 61C, (D80A, bit 4)
+ const EVENT_61D ; 61D, (D80A, bit 5)
+ const EVENT_61E ; 61E, (D80A, bit 6)
+ const EVENT_61F ; 61F, (D80A, bit 7)
+ const EVENT_620 ; 620, (D80B, bit 0)
+ const EVENT_621 ; 621, (D80B, bit 1)
+ const EVENT_622 ; 622, (D80B, bit 2)
+ const EVENT_623 ; 623, (D80B, bit 3)
+ const EVENT_624 ; 624, (D80B, bit 4)
+ const EVENT_625 ; 625, (D80B, bit 5)
+ const EVENT_626 ; 626, (D80B, bit 6)
+ const EVENT_627 ; 627, (D80B, bit 7)
+ const EVENT_628 ; 628, (D80C, bit 0)
+ const EVENT_629 ; 629, (D80C, bit 1)
+ const EVENT_62A ; 62A, (D80C, bit 2)
+ const EVENT_62B ; 62B, (D80C, bit 3)
+ const EVENT_62C ; 62C, (D80C, bit 4)
+ const EVENT_62D ; 62D, (D80C, bit 5)
+ const EVENT_62E ; 62E, (D80C, bit 6)
+ const EVENT_62F ; 62F, (D80C, bit 7)
+ const EVENT_630 ; 630, (D80D, bit 0)
+ const EVENT_631 ; 631, (D80D, bit 1)
+ const EVENT_632 ; 632, (D80D, bit 2)
+ const EVENT_633 ; 633, (D80D, bit 3)
+ const EVENT_634 ; 634, (D80D, bit 4)
+ const EVENT_635 ; 635, (D80D, bit 5)
+ const EVENT_636 ; 636, (D80D, bit 6)
+ const EVENT_637 ; 637, (D80D, bit 7)
+ const EVENT_638 ; 638, (D80E, bit 0)
+ const EVENT_639 ; 639, (D80E, bit 1)
+ const EVENT_63A ; 63A, (D80E, bit 2)
+ const EVENT_63B ; 63B, (D80E, bit 3)
+ const EVENT_63C ; 63C, (D80E, bit 4)
+ const EVENT_63D ; 63D, (D80E, bit 5)
+ const EVENT_63E ; 63E, (D80E, bit 6)
+ const EVENT_63F ; 63F, (D80E, bit 7)
+ const EVENT_640 ; 640, (D80F, bit 0)
+ const EVENT_641 ; 641, (D80F, bit 1)
+ const EVENT_642 ; 642, (D80F, bit 2)
+ const EVENT_643 ; 643, (D80F, bit 3)
+ const EVENT_644 ; 644, (D80F, bit 4)
+ const EVENT_645 ; 645, (D80F, bit 5)
+ const EVENT_646 ; 646, (D80F, bit 6)
+ const EVENT_647 ; 647, (D80F, bit 7)
+ const EVENT_648 ; 648, (D810, bit 0)
+ const EVENT_649 ; 649, (D810, bit 1)
+ const EVENT_64A ; 64A, (D810, bit 2)
+ const EVENT_64B ; 64B, (D810, bit 3)
+ const EVENT_64C ; 64C, (D810, bit 4)
+ const EVENT_64D ; 64D, (D810, bit 5)
+ const EVENT_64E ; 64E, (D810, bit 6)
+ const EVENT_64F ; 64F, (D810, bit 7)
+ const EVENT_650 ; 650, (D811, bit 0)
+ const EVENT_651 ; 651, (D811, bit 1)
+ const EVENT_652 ; 652, (D811, bit 2)
+ const EVENT_653 ; 653, (D811, bit 3)
+ const EVENT_654 ; 654, (D811, bit 4)
+ const EVENT_655 ; 655, (D811, bit 5)
+ const EVENT_656 ; 656, (D811, bit 6)
+ const EVENT_657 ; 657, (D811, bit 7)
+ const EVENT_658 ; 658, (D812, bit 0)
+ const EVENT_659 ; 659, (D812, bit 1)
+ const EVENT_65A ; 65A, (D812, bit 2)
+ const EVENT_65B ; 65B, (D812, bit 3)
+ const EVENT_65C ; 65C, (D812, bit 4)
+ const EVENT_65D ; 65D, (D812, bit 5)
+ const EVENT_65E ; 65E, (D812, bit 6)
+ const EVENT_65F ; 65F, (D812, bit 7)
+ const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1 ; 660, (D813, bit 0)
+ const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0 ; 661, (D813, bit 1)
+ const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2 ; 662, (D813, bit 2)
+ const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3 ; 663, (D813, bit 3)
+ const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_4 ; 664, (D813, bit 4)
+ const EVENT_665 ; 665, (D813, bit 5)
+ const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2 ; 666, (D813, bit 6)
+ const EVENT_667 ; 667, (D813, bit 7)
+ const EVENT_668 ; 668, (D814, bit 0)
+ const EVENT_669 ; 669, (D814, bit 1)
+ const EVENT_66A ; 66A, (D814, bit 2)
+ const EVENT_66B ; 66B, (D814, bit 3)
+ const EVENT_66C ; 66C, (D814, bit 4)
+ const EVENT_66D ; 66D, (D814, bit 5)
+ const EVENT_66E ; 66E, (D814, bit 6)
+ const EVENT_66F ; 66F, (D814, bit 7)
+ const EVENT_670 ; 670, (D815, bit 0)
+ const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0 ; 671, (D815, bit 1)
+ const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2 ; 672, (D815, bit 2)
+ const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3 ; 673, (D815, bit 3)
+ const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4 ; 674, (D815, bit 4)
+ const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_5 ; 675, (D815, bit 5)
+ const EVENT_676 ; 676, (D815, bit 6)
+ const EVENT_677 ; 677, (D815, bit 7)
+ const EVENT_678 ; 678, (D816, bit 0)
+ const EVENT_679 ; 679, (D816, bit 1)
+ const EVENT_67A ; 67A, (D816, bit 2)
+ const EVENT_67B ; 67B, (D816, bit 3)
+ const EVENT_67C ; 67C, (D816, bit 4)
+ const EVENT_67D ; 67D, (D816, bit 5)
+ const EVENT_67E ; 67E, (D816, bit 6)
+ const EVENT_67F ; 67F, (D816, bit 7)
+ const EVENT_680 ; 680, (D817, bit 0)
+ const EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0 ; 681, (D817, bit 1)
+ const EVENT_682 ; 682, (D817, bit 2)
+ const EVENT_683 ; 683, (D817, bit 3)
+ const EVENT_684 ; 684, (D817, bit 4)
+ const EVENT_685 ; 685, (D817, bit 5)
+ const EVENT_686 ; 686, (D817, bit 6)
+ const EVENT_687 ; 687, (D817, bit 7)
+ const EVENT_688 ; 688, (D818, bit 0)
+ const EVENT_689 ; 689, (D818, bit 1)
+ const EVENT_68A ; 68A, (D818, bit 2)
+ const EVENT_68B ; 68B, (D818, bit 3)
+ const EVENT_68C ; 68C, (D818, bit 4)
+ const EVENT_68D ; 68D, (D818, bit 5)
+ const EVENT_68E ; 68E, (D818, bit 6)
+ const EVENT_68F ; 68F, (D818, bit 7)
+ const EVENT_690 ; 690, (D819, bit 0)
+ const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0 ; 691, (D819, bit 1)
+ const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_2 ; 692, (D819, bit 2)
+ const EVENT_693 ; 693, (D819, bit 3)
+ const EVENT_694 ; 694, (D819, bit 4)
+ const EVENT_695 ; 695, (D819, bit 5)
+ const EVENT_696 ; 696, (D819, bit 6)
+ const EVENT_697 ; 697, (D819, bit 7)
+ const EVENT_698 ; 698, (D81A, bit 0)
+ const EVENT_699 ; 699, (D81A, bit 1)
+ const EVENT_69A ; 69A, (D81A, bit 2)
+ const EVENT_69B ; 69B, (D81A, bit 3)
+ const EVENT_69C ; 69C, (D81A, bit 4)
+ const EVENT_69D ; 69D, (D81A, bit 5)
+ const EVENT_69E ; 69E, (D81A, bit 6)
+ const EVENT_69F ; 69F, (D81A, bit 7)
+ const EVENT_6A0 ; 6A0, (D81B, bit 0)
+ const EVENT_6A1 ; 6A1, (D81B, bit 1)
+ const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0 ; 6A2, (D81B, bit 2)
+ const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 ; 6A3, (D81B, bit 3)
+ const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3 ; 6A4, (D81B, bit 4)
+ const EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED ; 6A5, (D81B, bit 5)
+ const EVENT_ROCKET_DROPPED_LIFT_KEY ; 6A6, (D81B, bit 6)
+ const EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI ; 6A7, (D81B, bit 7)
+ const EVENT_6A8 ; 6A8, (D81C, bit 0)
+ const EVENT_6A9 ; 6A9, (D81C, bit 1)
+ const EVENT_6AA ; 6AA, (D81C, bit 2)
+ const EVENT_6AB ; 6AB, (D81C, bit 3)
+ const EVENT_6AC ; 6AC, (D81C, bit 4)
+ const EVENT_6AD ; 6AD, (D81C, bit 5)
+ const EVENT_6AE ; 6AE, (D81C, bit 6)
+ const EVENT_6AF ; 6AF, (D81C, bit 7)
+ const EVENT_6B0 ; 6B0, (D81D, bit 0)
+ const EVENT_6B1 ; 6B1, (D81D, bit 1)
+ const EVENT_6B2 ; 6B2, (D81D, bit 2)
+ const EVENT_6B3 ; 6B3, (D81D, bit 3)
+ const EVENT_6B4 ; 6B4, (D81D, bit 4)
+ const EVENT_6B5 ; 6B5, (D81D, bit 5)
+ const EVENT_6B6 ; 6B6, (D81D, bit 6)
+ const EVENT_6B7 ; 6B7, (D81D, bit 7)
+ const EVENT_6B8 ; 6B8, (D81E, bit 0)
+ const EVENT_6B9 ; 6B9, (D81E, bit 1)
+ const EVENT_6BA ; 6BA, (D81E, bit 2)
+ const EVENT_6BB ; 6BB, (D81E, bit 3)
+ const EVENT_6BC ; 6BC, (D81E, bit 4)
+ const EVENT_6BD ; 6BD, (D81E, bit 5)
+ const EVENT_6BE ; 6BE, (D81E, bit 6)
+ const EVENT_6BF ; 6BF, (D81E, bit 7)
+ const EVENT_6C0 ; 6C0, (D81F, bit 0)
+ const EVENT_6C1 ; 6C1, (D81F, bit 1)
+ const EVENT_6C2 ; 6C2, (D81F, bit 2)
+ const EVENT_6C3 ; 6C3, (D81F, bit 3)
+ const EVENT_6C4 ; 6C4, (D81F, bit 4)
+ const EVENT_6C5 ; 6C5, (D81F, bit 5)
+ const EVENT_6C6 ; 6C6, (D81F, bit 6)
+ const EVENT_6C7 ; 6C7, (D81F, bit 7)
+ const EVENT_6C8 ; 6C8, (D820, bit 0)
+ const EVENT_6C9 ; 6C9, (D820, bit 1)
+ const EVENT_6CA ; 6CA, (D820, bit 2)
+ const EVENT_6CB ; 6CB, (D820, bit 3)
+ const EVENT_6CC ; 6CC, (D820, bit 4)
+ const EVENT_6CD ; 6CD, (D820, bit 5)
+ const EVENT_6CE ; 6CE, (D820, bit 6)
+ const EVENT_6CF ; 6CF, (D820, bit 7)
+ const EVENT_6D0 ; 6D0, (D821, bit 0)
+ const EVENT_6D1 ; 6D1, (D821, bit 1)
+ const EVENT_6D2 ; 6D2, (D821, bit 2)
+ const EVENT_6D3 ; 6D3, (D821, bit 3)
+ const EVENT_6D4 ; 6D4, (D821, bit 4)
+ const EVENT_6D5 ; 6D5, (D821, bit 5)
+ const EVENT_6D6 ; 6D6, (D821, bit 6)
+ const EVENT_6D7 ; 6D7, (D821, bit 7)
+ const EVENT_6D8 ; 6D8, (D822, bit 0)
+ const EVENT_6D9 ; 6D9, (D822, bit 1)
+ const EVENT_6DA ; 6DA, (D822, bit 2)
+ const EVENT_6DB ; 6DB, (D822, bit 3)
+ const EVENT_6DC ; 6DC, (D822, bit 4)
+ const EVENT_6DD ; 6DD, (D822, bit 5)
+ const EVENT_6DE ; 6DE, (D822, bit 6)
+ const EVENT_6DF ; 6DF, (D822, bit 7)
+ const EVENT_6E0 ; 6E0, (D823, bit 0)
+ const EVENT_6E1 ; 6E1, (D823, bit 1)
+ const EVENT_6E2 ; 6E2, (D823, bit 2)
+ const EVENT_6E3 ; 6E3, (D823, bit 3)
+ const EVENT_6E4 ; 6E4, (D823, bit 4)
+ const EVENT_6E5 ; 6E5, (D823, bit 5)
+ const EVENT_6E6 ; 6E6, (D823, bit 6)
+ const EVENT_6E7 ; 6E7, (D823, bit 7)
+ const EVENT_6E8 ; 6E8, (D824, bit 0)
+ const EVENT_6E9 ; 6E9, (D824, bit 1)
+ const EVENT_6EA ; 6EA, (D824, bit 2)
+ const EVENT_6EB ; 6EB, (D824, bit 3)
+ const EVENT_6EC ; 6EC, (D824, bit 4)
+ const EVENT_6ED ; 6ED, (D824, bit 5)
+ const EVENT_6EE ; 6EE, (D824, bit 6)
+ const EVENT_6EF ; 6EF, (D824, bit 7)
+ const EVENT_6F0 ; 6F0, (D825, bit 0)
+ const EVENT_6F1 ; 6F1, (D825, bit 1)
+ const EVENT_BEAT_SILPH_CO_2F_TRAINER_0 ; 6F2, (D825, bit 2)
+ const EVENT_BEAT_SILPH_CO_2F_TRAINER_1 ; 6F3, (D825, bit 3)
+ const EVENT_BEAT_SILPH_CO_2F_TRAINER_2 ; 6F4, (D825, bit 4)
+ const EVENT_BEAT_SILPH_CO_2F_TRAINER_3 ; 6F5, (D825, bit 5)
+ const EVENT_6F6 ; 6F6, (D825, bit 6)
+ const EVENT_6F7 ; 6F7, (D825, bit 7)
+ const EVENT_6F8 ; 6F8, (D826, bit 0)
+ const EVENT_6F9 ; 6F9, (D826, bit 1)
+ const EVENT_6FA ; 6FA, (D826, bit 2)
+ const EVENT_6FB ; 6FB, (D826, bit 3)
+ const EVENT_6FC ; 6FC, (D826, bit 4)
+ const EVENT_SILPH_CO_2_UNLOCKED_DOOR1 ; 6FD, (D826, bit 5)
+ const EVENT_SILPH_CO_2_UNLOCKED_DOOR2 ; 6FE, (D826, bit 6)
+ const EVENT_GOT_TM36 ; 6FF, (D826, bit 7)
+ const EVENT_700 ; 700, (D827, bit 0)
+ const EVENT_701 ; 701, (D827, bit 1)
+ const EVENT_BEAT_SILPH_CO_3F_TRAINER_0 ; 702, (D827, bit 2)
+ const EVENT_BEAT_SILPH_CO_3F_TRAINER_1 ; 703, (D827, bit 3)
+ const EVENT_704 ; 704, (D827, bit 4)
+ const EVENT_705 ; 705, (D827, bit 5)
+ const EVENT_706 ; 706, (D827, bit 6)
+ const EVENT_707 ; 707, (D827, bit 7)
+ const EVENT_SILPH_CO_3_UNLOCKED_DOOR1 ; 708, (D828, bit 0)
+ const EVENT_SILPH_CO_3_UNLOCKED_DOOR2 ; 709, (D828, bit 1)
+ const EVENT_70A ; 70A, (D828, bit 2)
+ const EVENT_70B ; 70B, (D828, bit 3)
+ const EVENT_70C ; 70C, (D828, bit 4)
+ const EVENT_70D ; 70D, (D828, bit 5)
+ const EVENT_70E ; 70E, (D828, bit 6)
+ const EVENT_70F ; 70F, (D828, bit 7)
+ const EVENT_710 ; 710, (D829, bit 0)
+ const EVENT_711 ; 711, (D829, bit 1)
+ const EVENT_BEAT_SILPH_CO_4F_TRAINER_0 ; 712, (D829, bit 2)
+ const EVENT_BEAT_SILPH_CO_4F_TRAINER_2 ; 713, (D829, bit 3)
+ const EVENT_BEAT_SILPH_CO_4F_TRAINER_3 ; 714, (D829, bit 4)
+ const EVENT_715 ; 715, (D829, bit 5)
+ const EVENT_716 ; 716, (D829, bit 6)
+ const EVENT_717 ; 717, (D829, bit 7)
+ const EVENT_SILPH_CO_4_UNLOCKED_DOOR1 ; 718, (D82A, bit 0)
+ const EVENT_SILPH_CO_4_UNLOCKED_DOOR2 ; 719, (D82A, bit 1)
+ const EVENT_71A ; 71A, (D82A, bit 2)
+ const EVENT_71B ; 71B, (D82A, bit 3)
+ const EVENT_71C ; 71C, (D82A, bit 4)
+ const EVENT_71D ; 71D, (D82A, bit 5)
+ const EVENT_71E ; 71E, (D82A, bit 6)
+ const EVENT_71F ; 71F, (D82A, bit 7)
+ const EVENT_720 ; 720, (D82B, bit 0)
+ const EVENT_721 ; 721, (D82B, bit 1)
+ const EVENT_BEAT_SILPH_CO_5F_TRAINER_0 ; 722, (D82B, bit 2)
+ const EVENT_BEAT_SILPH_CO_5F_TRAINER_2 ; 723, (D82B, bit 3)
+ const EVENT_BEAT_SILPH_CO_5F_TRAINER_3 ; 724, (D82B, bit 4)
+ const EVENT_BEAT_SILPH_CO_5F_TRAINER_4 ; 725, (D82B, bit 5)
+ const EVENT_726 ; 726, (D82B, bit 6)
+ const EVENT_727 ; 727, (D82B, bit 7)
+ const EVENT_SILPH_CO_5_UNLOCKED_DOOR1 ; 728, (D82C, bit 0)
+ const EVENT_SILPH_CO_5_UNLOCKED_DOOR2 ; 729, (D82C, bit 1)
+ const EVENT_SILPH_CO_5_UNLOCKED_DOOR3 ; 72A, (D82C, bit 2)
+ const EVENT_72B ; 72B, (D82C, bit 3)
+ const EVENT_72C ; 72C, (D82C, bit 4)
+ const EVENT_72D ; 72D, (D82C, bit 5)
+ const EVENT_72E ; 72E, (D82C, bit 6)
+ const EVENT_72F ; 72F, (D82C, bit 7)
+ const EVENT_730 ; 730, (D82D, bit 0)
+ const EVENT_731 ; 731, (D82D, bit 1)
+ const EVENT_732 ; 732, (D82D, bit 2)
+ const EVENT_733 ; 733, (D82D, bit 3)
+ const EVENT_734 ; 734, (D82D, bit 4)
+ const EVENT_735 ; 735, (D82D, bit 5)
+ const EVENT_BEAT_SILPH_CO_6F_TRAINER_0 ; 736, (D82D, bit 6)
+ const EVENT_BEAT_SILPH_CO_6F_TRAINER_2 ; 737, (D82D, bit 7)
+ const EVENT_BEAT_SILPH_CO_6F_TRAINER_3 ; 738, (D82E, bit 0)
+ const EVENT_739 ; 739, (D82E, bit 1)
+ const EVENT_73A ; 73A, (D82E, bit 2)
+ const EVENT_73B ; 73B, (D82E, bit 3)
+ const EVENT_73C ; 73C, (D82E, bit 4)
+ const EVENT_73D ; 73D, (D82E, bit 5)
+ const EVENT_73E ; 73E, (D82E, bit 6)
+ const EVENT_SILPH_CO_6_UNLOCKED_DOOR ; 73F, (D82E, bit 7)
+ const EVENT_BEAT_SILPH_CO_RIVAL ; 740, (D82F, bit 0)
+ const EVENT_741 ; 741, (D82F, bit 1)
+ const EVENT_742 ; 742, (D82F, bit 2)
+ const EVENT_743 ; 743, (D82F, bit 3)
+ const EVENT_744 ; 744, (D82F, bit 4)
+ const EVENT_BEAT_SILPH_CO_7F_TRAINER_0 ; 745, (D82F, bit 5)
+ const EVENT_BEAT_SILPH_CO_7F_TRAINER_2 ; 746, (D82F, bit 6)
+ const EVENT_BEAT_SILPH_CO_7F_TRAINER_3 ; 747, (D82F, bit 7)
+ const EVENT_BEAT_SILPH_CO_7F_TRAINER_4 ; 748, (D830, bit 0)
+ const EVENT_749 ; 749, (D830, bit 1)
+ const EVENT_74A ; 74A, (D830, bit 2)
+ const EVENT_74B ; 74B, (D830, bit 3)
+ const EVENT_SILPH_CO_7_UNLOCKED_DOOR1 ; 74C, (D830, bit 4)
+ const EVENT_SILPH_CO_7_UNLOCKED_DOOR2 ; 74D, (D830, bit 5)
+ const EVENT_SILPH_CO_7_UNLOCKED_DOOR3 ; 74E, (D830, bit 6)
+ const EVENT_74F ; 74F, (D830, bit 7)
+ const EVENT_750 ; 750, (D831, bit 0)
+ const EVENT_751 ; 751, (D831, bit 1)
+ const EVENT_BEAT_SILPH_CO_8F_TRAINER_0 ; 752, (D831, bit 2)
+ const EVENT_BEAT_SILPH_CO_8F_TRAINER_1 ; 753, (D831, bit 3)
+ const EVENT_BEAT_SILPH_CO_8F_TRAINER_2 ; 754, (D831, bit 4)
+ const EVENT_755 ; 755, (D831, bit 5)
+ const EVENT_756 ; 756, (D831, bit 6)
+ const EVENT_757 ; 757, (D831, bit 7)
+ const EVENT_SILPH_CO_8_UNLOCKED_DOOR ; 758, (D832, bit 0)
+ const EVENT_759 ; 759, (D832, bit 1)
+ const EVENT_75A ; 75A, (D832, bit 2)
+ const EVENT_75B ; 75B, (D832, bit 3)
+ const EVENT_75C ; 75C, (D832, bit 4)
+ const EVENT_75D ; 75D, (D832, bit 5)
+ const EVENT_75E ; 75E, (D832, bit 6)
+ const EVENT_75F ; 75F, (D832, bit 7)
+ const EVENT_760 ; 760, (D833, bit 0)
+ const EVENT_761 ; 761, (D833, bit 1)
+ const EVENT_BEAT_SILPH_CO_9F_TRAINER_0 ; 762, (D833, bit 2)
+ const EVENT_BEAT_SILPH_CO_9F_TRAINER_1 ; 763, (D833, bit 3)
+ const EVENT_BEAT_SILPH_CO_9F_TRAINER_2 ; 764, (D833, bit 4)
+ const EVENT_765 ; 765, (D833, bit 5)
+ const EVENT_766 ; 766, (D833, bit 6)
+ const EVENT_767 ; 767, (D833, bit 7)
+ const EVENT_SILPH_CO_9_UNLOCKED_DOOR1 ; 768, (D834, bit 0)
+ const EVENT_SILPH_CO_9_UNLOCKED_DOOR2 ; 769, (D834, bit 1)
+ const EVENT_SILPH_CO_9_UNLOCKED_DOOR3 ; 76A, (D834, bit 2)
+ const EVENT_SILPH_CO_9_UNLOCKED_DOOR4 ; 76B, (D834, bit 3)
+ const EVENT_76C ; 76C, (D834, bit 4)
+ const EVENT_76D ; 76D, (D834, bit 5)
+ const EVENT_76E ; 76E, (D834, bit 6)
+ const EVENT_76F ; 76F, (D834, bit 7)
+ const EVENT_770 ; 770, (D835, bit 0)
+ const EVENT_BEAT_SILPH_CO_10F_TRAINER_0 ; 771, (D835, bit 1)
+ const EVENT_BEAT_SILPH_CO_10F_TRAINER_1 ; 772, (D835, bit 2)
+ const EVENT_773 ; 773, (D835, bit 3)
+ const EVENT_774 ; 774, (D835, bit 4)
+ const EVENT_775 ; 775, (D835, bit 5)
+ const EVENT_776 ; 776, (D835, bit 6)
+ const EVENT_777 ; 777, (D835, bit 7)
+ const EVENT_SILPH_CO_10_UNLOCKED_DOOR ; 778, (D836, bit 0)
+ const EVENT_779 ; 779, (D836, bit 1)
+ const EVENT_77A ; 77A, (D836, bit 2)
+ const EVENT_77B ; 77B, (D836, bit 3)
+ const EVENT_77C ; 77C, (D836, bit 4)
+ const EVENT_77D ; 77D, (D836, bit 5)
+ const EVENT_77E ; 77E, (D836, bit 6)
+ const EVENT_77F ; 77F, (D836, bit 7)
+ const EVENT_780 ; 780, (D837, bit 0)
+ const EVENT_781 ; 781, (D837, bit 1)
+ const EVENT_782 ; 782, (D837, bit 2)
+ const EVENT_783 ; 783, (D837, bit 3)
+ const EVENT_BEAT_SILPH_CO_11F_TRAINER_0 ; 784, (D837, bit 4)
+ const EVENT_BEAT_SILPH_CO_11F_TRAINER_1 ; 785, (D837, bit 5)
+ const EVENT_786 ; 786, (D837, bit 6)
+ const EVENT_787 ; 787, (D837, bit 7)
+ const EVENT_SILPH_CO_11_UNLOCKED_DOOR ; 788, (D838, bit 0)
+ const EVENT_789 ; 789, (D838, bit 1)
+ const EVENT_78A ; 78A, (D838, bit 2)
+ const EVENT_78B ; 78B, (D838, bit 3)
+ const EVENT_78C ; 78C, (D838, bit 4)
+ const EVENT_GOT_MASTER_BALL ; 78D, (D838, bit 5)
+ const EVENT_78E ; 78E, (D838, bit 6)
+ const EVENT_BEAT_SILPH_CO_GIOVANNI ; 78F, (D838, bit 7)
+ const EVENT_790 ; 790, (D839, bit 0)
+ const EVENT_791 ; 791, (D839, bit 1)
+ const EVENT_792 ; 792, (D839, bit 2)
+ const EVENT_793 ; 793, (D839, bit 3)
+ const EVENT_794 ; 794, (D839, bit 4)
+ const EVENT_795 ; 795, (D839, bit 5)
+ const EVENT_796 ; 796, (D839, bit 6)
+ const EVENT_797 ; 797, (D839, bit 7)
+ const EVENT_798 ; 798, (D83A, bit 0)
+ const EVENT_799 ; 799, (D83A, bit 1)
+ const EVENT_79A ; 79A, (D83A, bit 2)
+ const EVENT_79B ; 79B, (D83A, bit 3)
+ const EVENT_79C ; 79C, (D83A, bit 4)
+ const EVENT_79D ; 79D, (D83A, bit 5)
+ const EVENT_79E ; 79E, (D83A, bit 6)
+ const EVENT_79F ; 79F, (D83A, bit 7)
+ const EVENT_7A0 ; 7A0, (D83B, bit 0)
+ const EVENT_7A1 ; 7A1, (D83B, bit 1)
+ const EVENT_7A2 ; 7A2, (D83B, bit 2)
+ const EVENT_7A3 ; 7A3, (D83B, bit 3)
+ const EVENT_7A4 ; 7A4, (D83B, bit 4)
+ const EVENT_7A5 ; 7A5, (D83B, bit 5)
+ const EVENT_7A6 ; 7A6, (D83B, bit 6)
+ const EVENT_7A7 ; 7A7, (D83B, bit 7)
+ const EVENT_7A8 ; 7A8, (D83C, bit 0)
+ const EVENT_7A9 ; 7A9, (D83C, bit 1)
+ const EVENT_7AA ; 7AA, (D83C, bit 2)
+ const EVENT_7AB ; 7AB, (D83C, bit 3)
+ const EVENT_7AC ; 7AC, (D83C, bit 4)
+ const EVENT_7AD ; 7AD, (D83C, bit 5)
+ const EVENT_7AE ; 7AE, (D83C, bit 6)
+ const EVENT_7AF ; 7AF, (D83C, bit 7)
+ const EVENT_7B0 ; 7B0, (D83D, bit 0)
+ const EVENT_7B1 ; 7B1, (D83D, bit 1)
+ const EVENT_7B2 ; 7B2, (D83D, bit 2)
+ const EVENT_7B3 ; 7B3, (D83D, bit 3)
+ const EVENT_7B4 ; 7B4, (D83D, bit 4)
+ const EVENT_7B5 ; 7B5, (D83D, bit 5)
+ const EVENT_7B6 ; 7B6, (D83D, bit 6)
+ const EVENT_7B7 ; 7B7, (D83D, bit 7)
+ const EVENT_7B8 ; 7B8, (D83E, bit 0)
+ const EVENT_7B9 ; 7B9, (D83E, bit 1)
+ const EVENT_7BA ; 7BA, (D83E, bit 2)
+ const EVENT_7BB ; 7BB, (D83E, bit 3)
+ const EVENT_7BC ; 7BC, (D83E, bit 4)
+ const EVENT_7BD ; 7BD, (D83E, bit 5)
+ const EVENT_7BE ; 7BE, (D83E, bit 6)
+ const EVENT_7BF ; 7BF, (D83E, bit 7)
+ const EVENT_7C0 ; 7C0, (D83F, bit 0)
+ const EVENT_7C1 ; 7C1, (D83F, bit 1)
+ const EVENT_7C2 ; 7C2, (D83F, bit 2)
+ const EVENT_7C3 ; 7C3, (D83F, bit 3)
+ const EVENT_7C4 ; 7C4, (D83F, bit 4)
+ const EVENT_7C5 ; 7C5, (D83F, bit 5)
+ const EVENT_7C6 ; 7C6, (D83F, bit 6)
+ const EVENT_7C7 ; 7C7, (D83F, bit 7)
+ const EVENT_7C8 ; 7C8, (D840, bit 0)
+ const EVENT_7C9 ; 7C9, (D840, bit 1)
+ const EVENT_7CA ; 7CA, (D840, bit 2)
+ const EVENT_7CB ; 7CB, (D840, bit 3)
+ const EVENT_7CC ; 7CC, (D840, bit 4)
+ const EVENT_7CD ; 7CD, (D840, bit 5)
+ const EVENT_7CE ; 7CE, (D840, bit 6)
+ const EVENT_7CF ; 7CF, (D840, bit 7)
+ const EVENT_7D0 ; 7D0, (D841, bit 0)
+ const EVENT_7D1 ; 7D1, (D841, bit 1)
+ const EVENT_7D2 ; 7D2, (D841, bit 2)
+ const EVENT_7D3 ; 7D3, (D841, bit 3)
+ const EVENT_7D4 ; 7D4, (D841, bit 4)
+ const EVENT_7D5 ; 7D5, (D841, bit 5)
+ const EVENT_7D6 ; 7D6, (D841, bit 6)
+ const EVENT_7D7 ; 7D7, (D841, bit 7)
+ const EVENT_7D8 ; 7D8, (D842, bit 0)
+ const EVENT_7D9 ; 7D9, (D842, bit 1)
+ const EVENT_7DA ; 7DA, (D842, bit 2)
+ const EVENT_7DB ; 7DB, (D842, bit 3)
+ const EVENT_7DC ; 7DC, (D842, bit 4)
+ const EVENT_7DD ; 7DD, (D842, bit 5)
+ const EVENT_7DE ; 7DE, (D842, bit 6)
+ const EVENT_7DF ; 7DF, (D842, bit 7)
+ const EVENT_7E0 ; 7E0, (D843, bit 0)
+ const EVENT_7E1 ; 7E1, (D843, bit 1)
+ const EVENT_7E2 ; 7E2, (D843, bit 2)
+ const EVENT_7E3 ; 7E3, (D843, bit 3)
+ const EVENT_7E4 ; 7E4, (D843, bit 4)
+ const EVENT_7E5 ; 7E5, (D843, bit 5)
+ const EVENT_7E6 ; 7E6, (D843, bit 6)
+ const EVENT_7E7 ; 7E7, (D843, bit 7)
+ const EVENT_7E8 ; 7E8, (D844, bit 0)
+ const EVENT_7E9 ; 7E9, (D844, bit 1)
+ const EVENT_7EA ; 7EA, (D844, bit 2)
+ const EVENT_7EB ; 7EB, (D844, bit 3)
+ const EVENT_7EC ; 7EC, (D844, bit 4)
+ const EVENT_7ED ; 7ED, (D844, bit 5)
+ const EVENT_7EE ; 7EE, (D844, bit 6)
+ const EVENT_7EF ; 7EF, (D844, bit 7)
+ const EVENT_7F0 ; 7F0, (D845, bit 0)
+ const EVENT_7F1 ; 7F1, (D845, bit 1)
+ const EVENT_7F2 ; 7F2, (D845, bit 2)
+ const EVENT_7F3 ; 7F3, (D845, bit 3)
+ const EVENT_7F4 ; 7F4, (D845, bit 4)
+ const EVENT_7F5 ; 7F5, (D845, bit 5)
+ const EVENT_7F6 ; 7F6, (D845, bit 6)
+ const EVENT_7F7 ; 7F7, (D845, bit 7)
+ const EVENT_7F8 ; 7F8, (D846, bit 0)
+ const EVENT_7F9 ; 7F9, (D846, bit 1)
+ const EVENT_7FA ; 7FA, (D846, bit 2)
+ const EVENT_7FB ; 7FB, (D846, bit 3)
+ const EVENT_7FC ; 7FC, (D846, bit 4)
+ const EVENT_7FD ; 7FD, (D846, bit 5)
+ const EVENT_7FE ; 7FE, (D846, bit 6)
+ const EVENT_7FF ; 7FF, (D846, bit 7)
+ const EVENT_800 ; 800, (D847, bit 0)
+ const EVENT_BEAT_MANSION_2_TRAINER_0 ; 801, (D847, bit 1)
+ const EVENT_802 ; 802, (D847, bit 2)
+ const EVENT_803 ; 803, (D847, bit 3)
+ const EVENT_804 ; 804, (D847, bit 4)
+ const EVENT_805 ; 805, (D847, bit 5)
+ const EVENT_806 ; 806, (D847, bit 6)
+ const EVENT_807 ; 807, (D847, bit 7)
+ const EVENT_808 ; 808, (D848, bit 0)
+ const EVENT_809 ; 809, (D848, bit 1)
+ const EVENT_80A ; 80A, (D848, bit 2)
+ const EVENT_80B ; 80B, (D848, bit 3)
+ const EVENT_80C ; 80C, (D848, bit 4)
+ const EVENT_80D ; 80D, (D848, bit 5)
+ const EVENT_80E ; 80E, (D848, bit 6)
+ const EVENT_80F ; 80F, (D848, bit 7)
+ const EVENT_810 ; 810, (D849, bit 0)
+ const EVENT_BEAT_MANSION_3_TRAINER_0 ; 811, (D849, bit 1)
+ const EVENT_BEAT_MANSION_3_TRAINER_2 ; 812, (D849, bit 2)
+ const EVENT_813 ; 813, (D849, bit 3)
+ const EVENT_814 ; 814, (D849, bit 4)
+ const EVENT_815 ; 815, (D849, bit 5)
+ const EVENT_816 ; 816, (D849, bit 6)
+ const EVENT_817 ; 817, (D849, bit 7)
+ const EVENT_818 ; 818, (D84A, bit 0)
+ const EVENT_819 ; 819, (D84A, bit 1)
+ const EVENT_81A ; 81A, (D84A, bit 2)
+ const EVENT_81B ; 81B, (D84A, bit 3)
+ const EVENT_81C ; 81C, (D84A, bit 4)
+ const EVENT_81D ; 81D, (D84A, bit 5)
+ const EVENT_81E ; 81E, (D84A, bit 6)
+ const EVENT_81F ; 81F, (D84A, bit 7)
+ const EVENT_820 ; 820, (D84B, bit 0)
+ const EVENT_BEAT_MANSION_4_TRAINER_0 ; 821, (D84B, bit 1)
+ const EVENT_BEAT_MANSION_4_TRAINER_2 ; 822, (D84B, bit 2)
+ const EVENT_823 ; 823, (D84B, bit 3)
+ const EVENT_824 ; 824, (D84B, bit 4)
+ const EVENT_825 ; 825, (D84B, bit 5)
+ const EVENT_826 ; 826, (D84B, bit 6)
+ const EVENT_827 ; 827, (D84B, bit 7)
+ const EVENT_828 ; 828, (D84C, bit 0)
+ const EVENT_829 ; 829, (D84C, bit 1)
+ const EVENT_82A ; 82A, (D84C, bit 2)
+ const EVENT_82B ; 82B, (D84C, bit 3)
+ const EVENT_82C ; 82C, (D84C, bit 4)
+ const EVENT_82D ; 82D, (D84C, bit 5)
+ const EVENT_82E ; 82E, (D84C, bit 6)
+ const EVENT_82F ; 82F, (D84C, bit 7)
+ const EVENT_830 ; 830, (D84D, bit 0)
+ const EVENT_831 ; 831, (D84D, bit 1)
+ const EVENT_832 ; 832, (D84D, bit 2)
+ const EVENT_833 ; 833, (D84D, bit 3)
+ const EVENT_834 ; 834, (D84D, bit 4)
+ const EVENT_835 ; 835, (D84D, bit 5)
+ const EVENT_836 ; 836, (D84D, bit 6)
+ const EVENT_837 ; 837, (D84D, bit 7)
+ const EVENT_838 ; 838, (D84E, bit 0)
+ const EVENT_839 ; 839, (D84E, bit 1)
+ const EVENT_83A ; 83A, (D84E, bit 2)
+ const EVENT_83B ; 83B, (D84E, bit 3)
+ const EVENT_83C ; 83C, (D84E, bit 4)
+ const EVENT_83D ; 83D, (D84E, bit 5)
+ const EVENT_83E ; 83E, (D84E, bit 6)
+ const EVENT_83F ; 83F, (D84E, bit 7)
+ const EVENT_840 ; 840, (D84F, bit 0)
+ const EVENT_841 ; 841, (D84F, bit 1)
+ const EVENT_842 ; 842, (D84F, bit 2)
+ const EVENT_843 ; 843, (D84F, bit 3)
+ const EVENT_844 ; 844, (D84F, bit 4)
+ const EVENT_845 ; 845, (D84F, bit 5)
+ const EVENT_846 ; 846, (D84F, bit 6)
+ const EVENT_847 ; 847, (D84F, bit 7)
+ const EVENT_848 ; 848, (D850, bit 0)
+ const EVENT_849 ; 849, (D850, bit 1)
+ const EVENT_84A ; 84A, (D850, bit 2)
+ const EVENT_84B ; 84B, (D850, bit 3)
+ const EVENT_84C ; 84C, (D850, bit 4)
+ const EVENT_84D ; 84D, (D850, bit 5)
+ const EVENT_84E ; 84E, (D850, bit 6)
+ const EVENT_84F ; 84F, (D850, bit 7)
+ const EVENT_850 ; 850, (D851, bit 0)
+ const EVENT_851 ; 851, (D851, bit 1)
+ const EVENT_852 ; 852, (D851, bit 2)
+ const EVENT_853 ; 853, (D851, bit 3)
+ const EVENT_854 ; 854, (D851, bit 4)
+ const EVENT_855 ; 855, (D851, bit 5)
+ const EVENT_856 ; 856, (D851, bit 6)
+ const EVENT_857 ; 857, (D851, bit 7)
+ const EVENT_858 ; 858, (D852, bit 0)
+ const EVENT_859 ; 859, (D852, bit 1)
+ const EVENT_85A ; 85A, (D852, bit 2)
+ const EVENT_85B ; 85B, (D852, bit 3)
+ const EVENT_85C ; 85C, (D852, bit 4)
+ const EVENT_85D ; 85D, (D852, bit 5)
+ const EVENT_85E ; 85E, (D852, bit 6)
+ const EVENT_85F ; 85F, (D852, bit 7)
+ const EVENT_860 ; 860, (D853, bit 0)
+ const EVENT_861 ; 861, (D853, bit 1)
+ const EVENT_862 ; 862, (D853, bit 2)
+ const EVENT_863 ; 863, (D853, bit 3)
+ const EVENT_864 ; 864, (D853, bit 4)
+ const EVENT_865 ; 865, (D853, bit 5)
+ const EVENT_866 ; 866, (D853, bit 6)
+ const EVENT_867 ; 867, (D853, bit 7)
+ const EVENT_868 ; 868, (D854, bit 0)
+ const EVENT_869 ; 869, (D854, bit 1)
+ const EVENT_86A ; 86A, (D854, bit 2)
+ const EVENT_86B ; 86B, (D854, bit 3)
+ const EVENT_86C ; 86C, (D854, bit 4)
+ const EVENT_86D ; 86D, (D854, bit 5)
+ const EVENT_86E ; 86E, (D854, bit 6)
+ const EVENT_86F ; 86F, (D854, bit 7)
+ const EVENT_870 ; 870, (D855, bit 0)
+ const EVENT_871 ; 871, (D855, bit 1)
+ const EVENT_872 ; 872, (D855, bit 2)
+ const EVENT_873 ; 873, (D855, bit 3)
+ const EVENT_874 ; 874, (D855, bit 4)
+ const EVENT_875 ; 875, (D855, bit 5)
+ const EVENT_876 ; 876, (D855, bit 6)
+ const EVENT_877 ; 877, (D855, bit 7)
+ const EVENT_878 ; 878, (D856, bit 0)
+ const EVENT_879 ; 879, (D856, bit 1)
+ const EVENT_87A ; 87A, (D856, bit 2)
+ const EVENT_87B ; 87B, (D856, bit 3)
+ const EVENT_87C ; 87C, (D856, bit 4)
+ const EVENT_87D ; 87D, (D856, bit 5)
+ const EVENT_87E ; 87E, (D856, bit 6)
+ const EVENT_87F ; 87F, (D856, bit 7)
+ const EVENT_GOT_HM03 ; 880, (D857, bit 0)
+ const EVENT_881 ; 881, (D857, bit 1)
+ const EVENT_882 ; 882, (D857, bit 2)
+ const EVENT_883 ; 883, (D857, bit 3)
+ const EVENT_884 ; 884, (D857, bit 4)
+ const EVENT_885 ; 885, (D857, bit 5)
+ const EVENT_886 ; 886, (D857, bit 6)
+ const EVENT_887 ; 887, (D857, bit 7)
+ const EVENT_888 ; 888, (D858, bit 0)
+ const EVENT_889 ; 889, (D858, bit 1)
+ const EVENT_88A ; 88A, (D858, bit 2)
+ const EVENT_88B ; 88B, (D858, bit 3)
+ const EVENT_88C ; 88C, (D858, bit 4)
+ const EVENT_88D ; 88D, (D858, bit 5)
+ const EVENT_88E ; 88E, (D858, bit 6)
+ const EVENT_88F ; 88F, (D858, bit 7)
+ const EVENT_890 ; 890, (D859, bit 0)
+ const EVENT_891 ; 891, (D859, bit 1)
+ const EVENT_892 ; 892, (D859, bit 2)
+ const EVENT_893 ; 893, (D859, bit 3)
+ const EVENT_894 ; 894, (D859, bit 4)
+ const EVENT_895 ; 895, (D859, bit 5)
+ const EVENT_896 ; 896, (D859, bit 6)
+ const EVENT_897 ; 897, (D859, bit 7)
+ const EVENT_898 ; 898, (D85A, bit 0)
+ const EVENT_899 ; 899, (D85A, bit 1)
+ const EVENT_89A ; 89A, (D85A, bit 2)
+ const EVENT_89B ; 89B, (D85A, bit 3)
+ const EVENT_89C ; 89C, (D85A, bit 4)
+ const EVENT_89D ; 89D, (D85A, bit 5)
+ const EVENT_89E ; 89E, (D85A, bit 6)
+ const EVENT_89F ; 89F, (D85A, bit 7)
+ const EVENT_8A0 ; 8A0, (D85B, bit 0)
+ const EVENT_8A1 ; 8A1, (D85B, bit 1)
+ const EVENT_8A2 ; 8A2, (D85B, bit 2)
+ const EVENT_8A3 ; 8A3, (D85B, bit 3)
+ const EVENT_8A4 ; 8A4, (D85B, bit 4)
+ const EVENT_8A5 ; 8A5, (D85B, bit 5)
+ const EVENT_8A6 ; 8A6, (D85B, bit 6)
+ const EVENT_8A7 ; 8A7, (D85B, bit 7)
+ const EVENT_8A8 ; 8A8, (D85C, bit 0)
+ const EVENT_8A9 ; 8A9, (D85C, bit 1)
+ const EVENT_8AA ; 8AA, (D85C, bit 2)
+ const EVENT_8AB ; 8AB, (D85C, bit 3)
+ const EVENT_8AC ; 8AC, (D85C, bit 4)
+ const EVENT_8AD ; 8AD, (D85C, bit 5)
+ const EVENT_8AE ; 8AE, (D85C, bit 6)
+ const EVENT_8AF ; 8AF, (D85C, bit 7)
+ const EVENT_8B0 ; 8B0, (D85D, bit 0)
+ const EVENT_8B1 ; 8B1, (D85D, bit 1)
+ const EVENT_8B2 ; 8B2, (D85D, bit 2)
+ const EVENT_8B3 ; 8B3, (D85D, bit 3)
+ const EVENT_8B4 ; 8B4, (D85D, bit 4)
+ const EVENT_8B5 ; 8B5, (D85D, bit 5)
+ const EVENT_8B6 ; 8B6, (D85D, bit 6)
+ const EVENT_8B7 ; 8B7, (D85D, bit 7)
+ const EVENT_8B8 ; 8B8, (D85E, bit 0)
+ const EVENT_8B9 ; 8B9, (D85E, bit 1)
+ const EVENT_8BA ; 8BA, (D85E, bit 2)
+ const EVENT_8BB ; 8BB, (D85E, bit 3)
+ const EVENT_8BC ; 8BC, (D85E, bit 4)
+ const EVENT_8BD ; 8BD, (D85E, bit 5)
+ const EVENT_8BE ; 8BE, (D85E, bit 6)
+ const EVENT_8BF ; 8BF, (D85E, bit 7)
+ const EVENT_8C0 ; 8C0, (D85F, bit 0)
+ const EVENT_BEAT_UNKNOWN_DUNGEON_3_TRAINER_0 ; 8C1, (D85F, bit 1)
+ const EVENT_8C2 ; 8C2, (D85F, bit 2)
+ const EVENT_8C3 ; 8C3, (D85F, bit 3)
+ const EVENT_8C4 ; 8C4, (D85F, bit 4)
+ const EVENT_8C5 ; 8C5, (D85F, bit 5)
+ const EVENT_8C6 ; 8C6, (D85F, bit 6)
+ const EVENT_8C7 ; 8C7, (D85F, bit 7)
+ const EVENT_8C8 ; 8C8, (D860, bit 0)
+ const EVENT_8C9 ; 8C9, (D860, bit 1)
+ const EVENT_8CA ; 8CA, (D860, bit 2)
+ const EVENT_8CB ; 8CB, (D860, bit 3)
+ const EVENT_8CC ; 8CC, (D860, bit 4)
+ const EVENT_8CD ; 8CD, (D860, bit 5)
+ const EVENT_8CE ; 8CE, (D860, bit 6)
+ const EVENT_8CF ; 8CF, (D860, bit 7)
+ const EVENT_8D0 ; 8D0, (D861, bit 0)
+ const EVENT_8D1 ; 8D1, (D861, bit 1)
+ const EVENT_8D2 ; 8D2, (D861, bit 2)
+ const EVENT_8D3 ; 8D3, (D861, bit 3)
+ const EVENT_8D4 ; 8D4, (D861, bit 4)
+ const EVENT_8D5 ; 8D5, (D861, bit 5)
+ const EVENT_8D6 ; 8D6, (D861, bit 6)
+ const EVENT_8D7 ; 8D7, (D861, bit 7)
+ const EVENT_8D8 ; 8D8, (D862, bit 0)
+ const EVENT_8D9 ; 8D9, (D862, bit 1)
+ const EVENT_8DA ; 8DA, (D862, bit 2)
+ const EVENT_8DB ; 8DB, (D862, bit 3)
+ const EVENT_8DC ; 8DC, (D862, bit 4)
+ const EVENT_8DD ; 8DD, (D862, bit 5)
+ const EVENT_8DE ; 8DE, (D862, bit 6)
+ const EVENT_8DF ; 8DF, (D862, bit 7)
+ const ELITE4_EVENTS_START ; 8E0, (D863, bit 0)
+ const EVENT_BEAT_LORELEIS_ROOM_TRAINER_0 ; 8E1, (D863, bit 1)
+ const EVENT_8E2 ; 8E2, (D863, bit 2)
+ const EVENT_8E3 ; 8E3, (D863, bit 3)
+ const EVENT_8E4 ; 8E4, (D863, bit 4)
+ const EVENT_8E5 ; 8E5, (D863, bit 5)
+ const EVENT_AUTOWALKED_INTO_LORELEIS_ROOM ; 8E6, (D863, bit 6)
+ const EVENT_8E7 ; 8E7, (D863, bit 7)
+ const EVENT_8E8 ; 8E8, (D864, bit 0)
+ const EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 ; 8E9, (D864, bit 1)
+ const EVENT_8EA ; 8EA, (D864, bit 2)
+ const EVENT_8EB ; 8EB, (D864, bit 3)
+ const EVENT_8EC ; 8EC, (D864, bit 4)
+ const EVENT_8ED ; 8ED, (D864, bit 5)
+ const EVENT_AUTOWALKED_INTO_BRUNOS_ROOM ; 8EE, (D864, bit 6)
+ const EVENT_8EF ; 8EF, (D864, bit 7)
+ const EVENT_8F0 ; 8F0, (D865, bit 0)
+ const EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 ; 8F1, (D865, bit 1)
+ const EVENT_8F2 ; 8F2, (D865, bit 2)
+ const EVENT_8F3 ; 8F3, (D865, bit 3)
+ const EVENT_8F4 ; 8F4, (D865, bit 4)
+ const EVENT_8F5 ; 8F5, (D865, bit 5)
+ const EVENT_AUTOWALKED_INTO_AGATHAS_ROOM ; 8F6, (D865, bit 6)
+ const EVENT_8F7 ; 8F7, (D865, bit 7)
+ const EVENT_8F8 ; 8F8, (D866, bit 0)
+ const EVENT_BEAT_LANCES_ROOM_TRAINER_0 ; 8F9, (D866, bit 1)
+ const EVENT_8FA ; 8FA, (D866, bit 2)
+ const EVENT_8FB ; 8FB, (D866, bit 3)
+ const EVENT_8FC ; 8FC, (D866, bit 4)
+ const EVENT_8FD ; 8FD, (D866, bit 5)
+ const EVENT_BEAT_LANCE ; 8FE, (D866, bit 6)
+ const EVENT_LANCES_ROOM_LOCK_DOOR ; 8FF, (D866, bit 7)
+ const EVENT_900 ; 900, (D867, bit 0)
+ const EVENT_BEAT_CHAMPION_RIVAL ; 901, (D867, bit 1)
+ const EVENT_902 ; 902, (D867, bit 2)
+ const EVENT_903 ; 903, (D867, bit 3)
+ const EVENT_904 ; 904, (D867, bit 4)
+ const EVENT_905 ; 905, (D867, bit 5)
+ const EVENT_906 ; 906, (D867, bit 6)
+ const ELITE4_CHAMPION_EVENTS_END ; 907, (D867, bit 7)
+ const EVENT_908 ; 908, (D868, bit 0)
+ const EVENT_909 ; 909, (D868, bit 1)
+ const EVENT_90A ; 90A, (D868, bit 2)
+ const EVENT_90B ; 90B, (D868, bit 3)
+ const EVENT_90C ; 90C, (D868, bit 4)
+ const EVENT_90D ; 90D, (D868, bit 5)
+ const EVENT_90E ; 90E, (D868, bit 6)
+ const EVENT_90F ; 90F, (D868, bit 7)
+ const EVENT_910 ; 910, (D869, bit 0)
+ const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0 ; 911, (D869, bit 1)
+ const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1 ; 912, (D869, bit 2)
+ const EVENT_913 ; 913, (D869, bit 3)
+ const EVENT_914 ; 914, (D869, bit 4)
+ const EVENT_915 ; 915, (D869, bit 5)
+ const EVENT_916 ; 916, (D869, bit 6)
+ const EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH ; 917, (D869, bit 7)
+ const EVENT_918 ; 918, (D86A, bit 0)
+ const EVENT_919 ; 919, (D86A, bit 1)
+ const EVENT_91A ; 91A, (D86A, bit 2)
+ const EVENT_91B ; 91B, (D86A, bit 3)
+ const EVENT_91C ; 91C, (D86A, bit 4)
+ const EVENT_91D ; 91D, (D86A, bit 5)
+ const EVENT_91E ; 91E, (D86A, bit 6)
+ const EVENT_91F ; 91F, (D86A, bit 7)
+ const EVENT_920 ; 920, (D86B, bit 0)
+ const EVENT_921 ; 921, (D86B, bit 1)
+ const EVENT_922 ; 922, (D86B, bit 2)
+ const EVENT_923 ; 923, (D86B, bit 3)
+ const EVENT_924 ; 924, (D86B, bit 4)
+ const EVENT_925 ; 925, (D86B, bit 5)
+ const EVENT_926 ; 926, (D86B, bit 6)
+ const EVENT_927 ; 927, (D86B, bit 7)
+ const EVENT_928 ; 928, (D86C, bit 0)
+ const EVENT_929 ; 929, (D86C, bit 1)
+ const EVENT_92A ; 92A, (D86C, bit 2)
+ const EVENT_92B ; 92B, (D86C, bit 3)
+ const EVENT_92C ; 92C, (D86C, bit 4)
+ const EVENT_92D ; 92D, (D86C, bit 5)
+ const EVENT_92E ; 92E, (D86C, bit 6)
+ const EVENT_92F ; 92F, (D86C, bit 7)
+ const EVENT_930 ; 930, (D86D, bit 0)
+ const EVENT_931 ; 931, (D86D, bit 1)
+ const EVENT_932 ; 932, (D86D, bit 2)
+ const EVENT_933 ; 933, (D86D, bit 3)
+ const EVENT_934 ; 934, (D86D, bit 4)
+ const EVENT_935 ; 935, (D86D, bit 5)
+ const EVENT_936 ; 936, (D86D, bit 6)
+ const EVENT_937 ; 937, (D86D, bit 7)
+ const EVENT_938 ; 938, (D86E, bit 0)
+ const EVENT_939 ; 939, (D86E, bit 1)
+ const EVENT_93A ; 93A, (D86E, bit 2)
+ const EVENT_93B ; 93B, (D86E, bit 3)
+ const EVENT_93C ; 93C, (D86E, bit 4)
+ const EVENT_93D ; 93D, (D86E, bit 5)
+ const EVENT_93E ; 93E, (D86E, bit 6)
+ const EVENT_93F ; 93F, (D86E, bit 7)
+ const EVENT_940 ; 940, (D86F, bit 0)
+ const EVENT_941 ; 941, (D86F, bit 1)
+ const EVENT_942 ; 942, (D86F, bit 2)
+ const EVENT_943 ; 943, (D86F, bit 3)
+ const EVENT_944 ; 944, (D86F, bit 4)
+ const EVENT_945 ; 945, (D86F, bit 5)
+ const EVENT_946 ; 946, (D86F, bit 6)
+ const EVENT_947 ; 947, (D86F, bit 7)
+ const EVENT_948 ; 948, (D870, bit 0)
+ const EVENT_949 ; 949, (D870, bit 1)
+ const EVENT_94A ; 94A, (D870, bit 2)
+ const EVENT_94B ; 94B, (D870, bit 3)
+ const EVENT_94C ; 94C, (D870, bit 4)
+ const EVENT_94D ; 94D, (D870, bit 5)
+ const EVENT_94E ; 94E, (D870, bit 6)
+ const EVENT_94F ; 94F, (D870, bit 7)
+ const EVENT_950 ; 950, (D871, bit 0)
+ const EVENT_951 ; 951, (D871, bit 1)
+ const EVENT_952 ; 952, (D871, bit 2)
+ const EVENT_953 ; 953, (D871, bit 3)
+ const EVENT_954 ; 954, (D871, bit 4)
+ const EVENT_955 ; 955, (D871, bit 5)
+ const EVENT_956 ; 956, (D871, bit 6)
+ const EVENT_957 ; 957, (D871, bit 7)
+ const EVENT_958 ; 958, (D872, bit 0)
+ const EVENT_959 ; 959, (D872, bit 1)
+ const EVENT_95A ; 95A, (D872, bit 2)
+ const EVENT_95B ; 95B, (D872, bit 3)
+ const EVENT_95C ; 95C, (D872, bit 4)
+ const EVENT_95D ; 95D, (D872, bit 5)
+ const EVENT_95E ; 95E, (D872, bit 6)
+ const EVENT_95F ; 95F, (D872, bit 7)
+ const EVENT_960 ; 960, (D873, bit 0)
+ const EVENT_961 ; 961, (D873, bit 1)
+ const EVENT_962 ; 962, (D873, bit 2)
+ const EVENT_963 ; 963, (D873, bit 3)
+ const EVENT_964 ; 964, (D873, bit 4)
+ const EVENT_965 ; 965, (D873, bit 5)
+ const EVENT_966 ; 966, (D873, bit 6)
+ const EVENT_967 ; 967, (D873, bit 7)
+ const EVENT_968 ; 968, (D874, bit 0)
+ const EVENT_969 ; 969, (D874, bit 1)
+ const EVENT_96A ; 96A, (D874, bit 2)
+ const EVENT_96B ; 96B, (D874, bit 3)
+ const EVENT_96C ; 96C, (D874, bit 4)
+ const EVENT_96D ; 96D, (D874, bit 5)
+ const EVENT_96E ; 96E, (D874, bit 6)
+ const EVENT_96F ; 96F, (D874, bit 7)
+ const EVENT_970 ; 970, (D875, bit 0)
+ const EVENT_971 ; 971, (D875, bit 1)
+ const EVENT_972 ; 972, (D875, bit 2)
+ const EVENT_973 ; 973, (D875, bit 3)
+ const EVENT_974 ; 974, (D875, bit 4)
+ const EVENT_975 ; 975, (D875, bit 5)
+ const EVENT_976 ; 976, (D875, bit 6)
+ const EVENT_977 ; 977, (D875, bit 7)
+ const EVENT_978 ; 978, (D876, bit 0)
+ const EVENT_979 ; 979, (D876, bit 1)
+ const EVENT_97A ; 97A, (D876, bit 2)
+ const EVENT_97B ; 97B, (D876, bit 3)
+ const EVENT_97C ; 97C, (D876, bit 4)
+ const EVENT_97D ; 97D, (D876, bit 5)
+ const EVENT_97E ; 97E, (D876, bit 6)
+ const EVENT_97F ; 97F, (D876, bit 7)
+ const EVENT_980 ; 980, (D877, bit 0)
+ const EVENT_981 ; 981, (D877, bit 1)
+ const EVENT_982 ; 982, (D877, bit 2)
+ const EVENT_983 ; 983, (D877, bit 3)
+ const EVENT_984 ; 984, (D877, bit 4)
+ const EVENT_985 ; 985, (D877, bit 5)
+ const EVENT_986 ; 986, (D877, bit 6)
+ const EVENT_987 ; 987, (D877, bit 7)
+ const EVENT_988 ; 988, (D878, bit 0)
+ const EVENT_989 ; 989, (D878, bit 1)
+ const EVENT_98A ; 98A, (D878, bit 2)
+ const EVENT_98B ; 98B, (D878, bit 3)
+ const EVENT_98C ; 98C, (D878, bit 4)
+ const EVENT_98D ; 98D, (D878, bit 5)
+ const EVENT_98E ; 98E, (D878, bit 6)
+ const EVENT_98F ; 98F, (D878, bit 7)
+ const EVENT_990 ; 990, (D879, bit 0)
+ const EVENT_991 ; 991, (D879, bit 1)
+ const EVENT_992 ; 992, (D879, bit 2)
+ const EVENT_993 ; 993, (D879, bit 3)
+ const EVENT_994 ; 994, (D879, bit 4)
+ const EVENT_995 ; 995, (D879, bit 5)
+ const EVENT_996 ; 996, (D879, bit 6)
+ const EVENT_997 ; 997, (D879, bit 7)
+ const EVENT_998 ; 998, (D87A, bit 0)
+ const EVENT_999 ; 999, (D87A, bit 1)
+ const EVENT_99A ; 99A, (D87A, bit 2)
+ const EVENT_99B ; 99B, (D87A, bit 3)
+ const EVENT_99C ; 99C, (D87A, bit 4)
+ const EVENT_99D ; 99D, (D87A, bit 5)
+ const EVENT_99E ; 99E, (D87A, bit 6)
+ const EVENT_99F ; 99F, (D87A, bit 7)
+ const EVENT_9A0 ; 9A0, (D87B, bit 0)
+ const EVENT_9A1 ; 9A1, (D87B, bit 1)
+ const EVENT_9A2 ; 9A2, (D87B, bit 2)
+ const EVENT_9A3 ; 9A3, (D87B, bit 3)
+ const EVENT_9A4 ; 9A4, (D87B, bit 4)
+ const EVENT_9A5 ; 9A5, (D87B, bit 5)
+ const EVENT_9A6 ; 9A6, (D87B, bit 6)
+ const EVENT_9A7 ; 9A7, (D87B, bit 7)
+ const EVENT_9A8 ; 9A8, (D87C, bit 0)
+ const EVENT_9A9 ; 9A9, (D87C, bit 1)
+ const EVENT_9AA ; 9AA, (D87C, bit 2)
+ const EVENT_9AB ; 9AB, (D87C, bit 3)
+ const EVENT_9AC ; 9AC, (D87C, bit 4)
+ const EVENT_9AD ; 9AD, (D87C, bit 5)
+ const EVENT_9AE ; 9AE, (D87C, bit 6)
+ const EVENT_9AF ; 9AF, (D87C, bit 7)
+ const EVENT_9B0 ; 9B0, (D87D, bit 0)
+ const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0 ; 9B1, (D87D, bit 1)
+ const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2 ; 9B2, (D87D, bit 2)
+ const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_3 ; 9B3, (D87D, bit 3)
+ const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_4 ; 9B4, (D87D, bit 4)
+ const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5 ; 9B5, (D87D, bit 5)
+ const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6 ; 9B6, (D87D, bit 6)
+ const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7 ; 9B7, (D87D, bit 7)
+ const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_8 ; 9B8, (D87E, bit 0)
+ const EVENT_9B9 ; 9B9, (D87E, bit 1)
+ const EVENT_9BA ; 9BA, (D87E, bit 2)
+ const EVENT_9BB ; 9BB, (D87E, bit 3)
+ const EVENT_9BC ; 9BC, (D87E, bit 4)
+ const EVENT_9BD ; 9BD, (D87E, bit 5)
+ const EVENT_9BE ; 9BE, (D87E, bit 6)
+ const EVENT_9BF ; 9BF, (D87E, bit 7)
+ const EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE ; 9C0, (D87F, bit 0)
+ const EVENT_SEAFOAM2_BOULDER2_DOWN_HOLE ; 9C1, (D87F, bit 1)
+ const EVENT_9C2 ; 9C2, (D87F, bit 2)
+ const EVENT_9C3 ; 9C3, (D87F, bit 3)
+ const EVENT_9C4 ; 9C4, (D87F, bit 4)
+ const EVENT_9C5 ; 9C5, (D87F, bit 5)
+ const EVENT_9C6 ; 9C6, (D87F, bit 6)
+ const EVENT_9C7 ; 9C7, (D87F, bit 7)
+ const EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE ; 9C8, (D880, bit 0)
+ const EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE ; 9C9, (D880, bit 1)
+ const EVENT_9CA ; 9CA, (D880, bit 2)
+ const EVENT_9CB ; 9CB, (D880, bit 3)
+ const EVENT_9CC ; 9CC, (D880, bit 4)
+ const EVENT_9CD ; 9CD, (D880, bit 5)
+ const EVENT_9CE ; 9CE, (D880, bit 6)
+ const EVENT_9CF ; 9CF, (D880, bit 7)
+ const EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE ; 9D0, (D881, bit 0)
+ const EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE ; 9D1, (D881, bit 1)
+ const EVENT_9D2 ; 9D2, (D881, bit 2)
+ const EVENT_9D3 ; 9D3, (D881, bit 3)
+ const EVENT_9D4 ; 9D4, (D881, bit 4)
+ const EVENT_9D5 ; 9D5, (D881, bit 5)
+ const EVENT_9D6 ; 9D6, (D881, bit 6)
+ const EVENT_9D7 ; 9D7, (D881, bit 7)
+ const EVENT_9D8 ; 9D8, (D882, bit 0)
+ const EVENT_9D9 ; 9D9, (D882, bit 1)
+ const EVENT_BEAT_SEAFOAM_ISLANDS_5_TRAINER_0 ; 9DA, (D882, bit 2)
+ const EVENT_9DB ; 9DB, (D882, bit 3)
+ const EVENT_9DC ; 9DC, (D882, bit 4)
+ const EVENT_9DD ; 9DD, (D882, bit 5)
+ const EVENT_9DE ; 9DE, (D882, bit 6)
+ const EVENT_9DF ; 9DF, (D882, bit 7)
+ const EVENT_9E0 ; 9E0, (D883, bit 0)
+ const EVENT_9E1 ; 9E1, (D883, bit 1)
+ const EVENT_9E2 ; 9E2, (D883, bit 2)
+ const EVENT_9E3 ; 9E3, (D883, bit 3)
+ const EVENT_9E4 ; 9E4, (D883, bit 4)
+ const EVENT_9E5 ; 9E5, (D883, bit 5)
+ const EVENT_9E6 ; 9E6, (D883, bit 6)
+ const EVENT_9E7 ; 9E7, (D883, bit 7)
+ const EVENT_9E8 ; 9E8, (D884, bit 0)
+ const EVENT_9E9 ; 9E9, (D884, bit 1)
+ const EVENT_9EA ; 9EA, (D884, bit 2)
+ const EVENT_9EB ; 9EB, (D884, bit 3)
+ const EVENT_9EC ; 9EC, (D884, bit 4)
+ const EVENT_9ED ; 9ED, (D884, bit 5)
+ const EVENT_9EE ; 9EE, (D884, bit 6)
+ const EVENT_9EF ; 9EF, (D884, bit 7)
+ const EVENT_9F0 ; 9F0, (D885, bit 0)
+ const EVENT_9F1 ; 9F1, (D885, bit 1)
+ const EVENT_9F2 ; 9F2, (D885, bit 2)
+ const EVENT_9F3 ; 9F3, (D885, bit 3)
+ const EVENT_9F4 ; 9F4, (D885, bit 4)
+ const EVENT_9F5 ; 9F5, (D885, bit 5)
+ const EVENT_9F6 ; 9F6, (D885, bit 6)
+ const EVENT_9F7 ; 9F7, (D885, bit 7)
+ const EVENT_9F8 ; 9F8, (D886, bit 0)
+ const EVENT_9F9 ; 9F9, (D886, bit 1)
+ const EVENT_9FA ; 9FA, (D886, bit 2)
+ const EVENT_9FB ; 9FB, (D886, bit 3)
+ const EVENT_9FC ; 9FC, (D886, bit 4)
+ const EVENT_9FD ; 9FD, (D886, bit 5)
+ const EVENT_9FE ; 9FE, (D886, bit 6)
+ const EVENT_9FF ; 9FF, (D886, bit 7)
diff --git a/constants/event_macros.asm b/constants/event_macros.asm
index 0f4f57b5..08d06cc6 100644
--- a/constants/event_macros.asm
+++ b/constants/event_macros.asm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
;\1 = event index
;\2 = return result in carry instead of zero flag
CheckEvent: MACRO
@@ -441,3 +442,448 @@ AdjustEventBit: MACRO
add ((\1) % 8) - (\2)
ENDC
ENDM
+=======
+;\1 = event index
+;\2 = return result in carry instead of zero flag
+CheckEvent: MACRO
+event_byte = ((\1) / 8)
+ ld a, [wEventFlags + event_byte]
+
+ IF _NARG > 1
+ IF ((\1) % 8) == 7
+ add a
+ ELSE
+ REPT ((\1) % 8) + 1
+ rrca
+ ENDR
+ ENDC
+ ELSE
+ bit (\1) % 8, a
+ ENDC
+ ENDM
+
+;\1 = event index
+CheckEventReuseA: MACRO
+ IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld a, [wEventFlags + event_byte]
+ ENDC
+
+ bit (\1) % 8, a
+ ENDM
+
+;\1 = event index
+;\2 = event index of the last event used before the branch
+CheckEventAfterBranchReuseA: MACRO
+event_byte = ((\2) / 8)
+ IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld a, [wEventFlags + event_byte]
+ ENDC
+
+ bit (\1) % 8, a
+ ENDM
+
+;\1 = reg
+;\2 = event index
+;\3 = event index this event is relative to (optional, this is needed when there is a fixed flag address)
+EventFlagBit: MACRO
+ IF _NARG > 2
+ ld \1, ((\3) % 8) + ((\2) - (\3))
+ ELSE
+ ld \1, (\2) % 8
+ ENDC
+ ENDM
+
+;\1 = reg
+;\2 = event index
+EventFlagAddress: MACRO
+event_byte = ((\2) / 8)
+ ld \1, wEventFlags + event_byte
+ ENDM
+
+;\1 = event index
+CheckEventHL: MACRO
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ bit (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+CheckEventReuseHL: MACRO
+IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ ENDC
+
+ bit (\1) % 8, [hl]
+ ENDM
+
+; dangerous, only use when HL is guaranteed to be the desired value
+;\1 = event index
+CheckEventForceReuseHL: MACRO
+event_byte = ((\1) / 8)
+ bit (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+;\2 = event index of the last event used before the branch
+CheckEventAfterBranchReuseHL: MACRO
+event_byte = ((\2) / 8)
+IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ ENDC
+
+ bit (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+CheckAndSetEvent: MACRO
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ bit (\1) % 8, [hl]
+ set (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+CheckAndResetEvent: MACRO
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ bit (\1) % 8, [hl]
+ res (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+CheckAndSetEventA: MACRO
+ ld a, [wEventFlags + ((\1) / 8)]
+ bit (\1) % 8, a
+ set (\1) % 8, a
+ ld [wEventFlags + ((\1) / 8)], a
+ ENDM
+
+;\1 = event index
+CheckAndResetEventA: MACRO
+ ld a, [wEventFlags + ((\1) / 8)]
+ bit (\1) % 8, a
+ res (\1) % 8, a
+ ld [wEventFlags + ((\1) / 8)], a
+ ENDM
+
+;\1 = event index
+SetEvent: MACRO
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ set (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+SetEventReuseHL: MACRO
+ IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ ENDC
+
+ set (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+;\2 = event index of the last event used before the branch
+SetEventAfterBranchReuseHL: MACRO
+event_byte = ((\2) / 8)
+IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ ENDC
+
+ set (\1) % 8, [hl]
+ ENDM
+
+; dangerous, only use when HL is guaranteed to be the desired value
+;\1 = event index
+SetEventForceReuseHL: MACRO
+event_byte = ((\1) / 8)
+ set (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+;\2 = event index
+;\3 = event index (optional)
+SetEvents: MACRO
+ SetEvent \1
+ SetEventReuseHL \2
+
+ IF _NARG > 2
+ SetEventReuseHL \3
+ ENDC
+ ENDM
+
+;\1 = event index
+ResetEvent: MACRO
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ res (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+ResetEventReuseHL: MACRO
+ IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ ENDC
+
+ res (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+;\2 = event index of the last event used before the branch
+ResetEventAfterBranchReuseHL: MACRO
+event_byte = ((\2) / 8)
+IF event_byte != ((\1) / 8)
+event_byte = ((\1) / 8)
+ ld hl, wEventFlags + event_byte
+ ENDC
+
+ res (\1) % 8, [hl]
+ ENDM
+
+; dangerous, only use when HL is guaranteed to be the desired value
+;\1 = event index
+ResetEventForceReuseHL: MACRO
+event_byte = ((\1) / 8)
+ res (\1) % 8, [hl]
+ ENDM
+
+;\1 = event index
+;\2 = event index
+;\3 = event index (optional)
+ResetEvents: MACRO
+ ResetEvent \1
+ ResetEventReuseHL \2
+
+ IF _NARG > 2
+ ResetEventReuseHL \3
+ ENDC
+ ENDM
+
+;\1 = event index
+;\2 = number of bytes away from the base address (optional, for matching the ROM)
+dbEventFlagBit: MACRO
+ IF _NARG > 1
+ db ((\1) % 8) + ((\2) * 8)
+ ELSE
+ db ((\1) % 8)
+ ENDC
+ ENDM
+
+;\1 = event index
+;\2 = number of bytes away from the base address (optional, for matching the ROM)
+dwEventFlagAddress: MACRO
+ IF _NARG > 1
+ dw wEventFlags + ((\1) / 8) - (\2)
+ ELSE
+ dw wEventFlags + ((\1) / 8)
+ ENDC
+ ENDM
+
+;\1 = start
+;\2 = end
+SetEventRange: MACRO
+event_start_byte = ((\1) / 8)
+event_end_byte = ((\2) / 8)
+
+ IF event_end_byte < event_start_byte
+ FAIL "Incorrect argument order in SetEventRange."
+ ENDC
+
+ IF event_start_byte == event_end_byte
+ ld a, [wEventFlags + event_start_byte]
+ or (1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8))
+ ld [wEventFlags + event_start_byte], a
+ ELSE
+event_fill_start = event_start_byte + 1
+event_fill_count = event_end_byte - event_start_byte - 1
+
+ IF ((\1) % 8) == 0
+event_fill_start = event_fill_start + -1
+event_fill_count = event_fill_count + 1
+ ELSE
+ ld a, [wEventFlags + event_start_byte]
+ or $ff - ((1 << ((\1) % 8)) - 1)
+ ld [wEventFlags + event_start_byte], a
+ ENDC
+
+ IF ((\2) % 8) == 7
+event_fill_count = event_fill_count + 1
+ ENDC
+
+ IF event_fill_count == 1
+ ld hl, wEventFlags + event_fill_start
+ ld [hl], $ff
+ ENDC
+
+ IF event_fill_count > 1
+ ld a, $ff
+ ld hl, wEventFlags + event_fill_start
+
+ REPT event_fill_count + -1
+ ld [hli], a
+ ENDR
+
+ ld [hl], a
+ ENDC
+
+ IF ((\2) % 8) == 0
+ ld hl, wEventFlags + event_end_byte
+ set 0, [hl]
+ ELSE
+ IF ((\2) % 8) != 7
+ ld a, [wEventFlags + event_end_byte]
+ or (1 << (((\2) % 8) + 1)) - 1
+ ld [wEventFlags + event_end_byte], a
+ ENDC
+ ENDC
+ ENDC
+ ENDM
+
+;\1 = start
+;\2 = end
+;\3 = assume a is 0 if present
+ResetEventRange: MACRO
+event_start_byte = ((\1) / 8)
+event_end_byte = ((\2) / 8)
+
+ IF event_end_byte < event_start_byte
+ FAIL "Incorrect argument order in ResetEventRange."
+ ENDC
+
+ IF event_start_byte == event_end_byte
+ ld a, [wEventFlags + event_start_byte]
+ and ~((1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8))) & $ff
+ ld [wEventFlags + event_start_byte], a
+ ELSE
+event_fill_start = event_start_byte + 1
+event_fill_count = event_end_byte - event_start_byte - 1
+
+ IF ((\1) % 8) == 0
+event_fill_start = event_fill_start + -1
+event_fill_count = event_fill_count + 1
+ ELSE
+ ld a, [wEventFlags + event_start_byte]
+ and ~($ff - ((1 << ((\1) % 8)) - 1)) & $ff
+ ld [wEventFlags + event_start_byte], a
+ ENDC
+
+ IF ((\2) % 8) == 7
+event_fill_count = event_fill_count + 1
+ ENDC
+
+ IF event_fill_count == 1
+ ld hl, wEventFlags + event_fill_start
+ ld [hl], 0
+ ENDC
+
+ IF event_fill_count > 1
+ ld hl, wEventFlags + event_fill_start
+
+ ; force xor a if we just to wrote to it above
+ IF (_NARG < 3) || (((\1) % 8) != 0)
+ xor a
+ ENDC
+
+ REPT event_fill_count + -1
+ ld [hli], a
+ ENDR
+
+ ld [hl], a
+ ENDC
+
+ IF ((\2) % 8) == 0
+ ld hl, wEventFlags + event_end_byte
+ res 0, [hl]
+ ELSE
+ IF ((\2) % 8) != 7
+ ld a, [wEventFlags + event_end_byte]
+ and ~((1 << (((\2) % 8) + 1)) - 1) & $ff
+ ld [wEventFlags + event_end_byte], a
+ ENDC
+ ENDC
+ ENDC
+ ENDM
+
+; returns whether both events are set in Z flag
+; This is counter-intuitive because the other event checks set the Z flag when
+; the event is not set, but this sets the Z flag when the event is set.
+;\1 = event index 1
+;\2 = event index 2
+;\3 = try to reuse a (optional)
+CheckBothEventsSet: MACRO
+ IF ((\1) / 8) == ((\2) / 8)
+ IF (_NARG < 3) || (((\1) / 8) != event_byte)
+event_byte = ((\1) / 8)
+ ld a, [wEventFlags + ((\1) / 8)]
+ ENDC
+ and (1 << ((\1) % 8)) | (1 << ((\2) % 8))
+ cp (1 << ((\1) % 8)) | (1 << ((\2) % 8))
+ ELSE
+ ; This case doesn't happen in the original ROM.
+ IF ((\1) % 8) == ((\2) % 8)
+ push hl
+ ld a, [wEventFlags + ((\1) / 8)]
+ ld hl, wEventFlags + ((\2) / 8)
+ and [hl]
+ cpl
+ bit ((\1) % 8), a
+ pop hl
+ ELSE
+ push bc
+ ld a, [wEventFlags + ((\1) / 8)]
+ and (1 << ((\1) % 8))
+ ld b, a
+ ld a, [wEventFlags + ((\2) / 8)]
+ and (1 << ((\2) % 8))
+ or b
+ cp (1 << ((\1) % 8)) | (1 << ((\2) % 8))
+ pop bc
+ ENDC
+ ENDC
+ ENDM
+
+; returns the complement of whether either event is set in Z flag
+;\1 = event index 1
+;\2 = event index 2
+CheckEitherEventSet: MACRO
+ IF ((\1) / 8) == ((\2) / 8)
+ ld a, [wEventFlags + ((\1) / 8)]
+ and (1 << ((\1) % 8)) | (1 << ((\2) % 8))
+ ELSE
+ ; This case doesn't happen in the original ROM.
+ IF ((\1) % 8) == ((\2) % 8)
+ push hl
+ ld a, [wEventFlags + ((\1) / 8)]
+ ld hl, wEventFlags + ((\2) / 8)
+ or [hl]
+ bit ((\1) % 8), a
+ pop hl
+ ELSE
+ push bc
+ ld a, [wEventFlags + ((\1) / 8)]
+ and (1 << ((\1) % 8))
+ ld b, a
+ ld a, [wEventFlags + ((\2) / 8)]
+ and (1 << ((\2) % 8))
+ or b
+ pop bc
+ ENDC
+ ENDC
+ ENDM
+
+; for handling fixed event bits when events are inserted/removed
+;\1 = event index
+;\2 = fixed flag bit
+AdjustEventBit: MACRO
+ IF ((\1) % 8) != (\2)
+ add ((\1) % 8) - (\2)
+ ENDC
+ ENDM
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
index f9e3fe19..21a3ad93 100644
--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -107,4 +107,3 @@ rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
rIE EQU $ffff ; Interrupt Enable (R/W)
-
diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm
index 1c5beb77..5a517afc 100755
--- a/constants/hide_show_constants.asm
+++ b/constants/hide_show_constants.asm
@@ -82,7 +82,7 @@ const_value = 0
const HS_MANSION_1_ITEM_2 ; 49 X
const HS_FIGHTING_DOJO_GIFT_1 ; 4A
const HS_FIGHTING_DOJO_GIFT_2 ; 4B
- const HS_SILPH_CO_1F_1 ; 4C
+ const HS_SILPH_CO_1F_RECEPTIONIST ; 4C
const HS_VOLTORB_1 ; 4D X
const HS_VOLTORB_2 ; 4E X
const HS_VOLTORB_3 ; 4F X
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index be251e62..d0ad12e6 100755
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -1,141 +1,159 @@
-MASTER_BALL EQU $01
-ULTRA_BALL EQU $02
-GREAT_BALL EQU $03
-POKE_BALL EQU $04
-TOWN_MAP EQU $05
-BICYCLE EQU $06
-SURFBOARD EQU $07 ; buggy?
-SAFARI_BALL EQU $08
-POKEDEX EQU $09
-MOON_STONE EQU $0A
-ANTIDOTE EQU $0B
-BURN_HEAL EQU $0C
-ICE_HEAL EQU $0D
-AWAKENING EQU $0E
-PARLYZ_HEAL EQU $0F
-FULL_RESTORE EQU $10
-MAX_POTION EQU $11
-HYPER_POTION EQU $12
-SUPER_POTION EQU $13
-POTION EQU $14
-BOULDERBADGE EQU $15
-CASCADEBADGE EQU $16
-SAFARI_BAIT EQU $15 ; overload
-SAFARI_ROCK EQU $16 ; overload
-THUNDERBADGE EQU $17
-RAINBOWBADGE EQU $18
-SOULBADGE EQU $19
-MARSHBADGE EQU $1A
-VOLCANOBADGE EQU $1B
-EARTHBADGE EQU $1C
-ESCAPE_ROPE EQU $1D
-REPEL EQU $1E
-OLD_AMBER EQU $1F
-FIRE_STONE EQU $20
-THUNDER_STONE EQU $21
-WATER_STONE EQU $22
-HP_UP EQU $23
-PROTEIN EQU $24
-IRON EQU $25
-CARBOS EQU $26
-CALCIUM EQU $27
-RARE_CANDY EQU $28
-DOME_FOSSIL EQU $29
-HELIX_FOSSIL EQU $2A
-SECRET_KEY EQU $2B
-; XXX ????? EQU $2C
-BIKE_VOUCHER EQU $2D
-X_ACCURACY EQU $2E
-LEAF_STONE EQU $2F
-CARD_KEY EQU $30
-NUGGET EQU $31
-;PP_UP EQU $32
-POKE_DOLL EQU $33
-FULL_HEAL EQU $34
-REVIVE EQU $35
-MAX_REVIVE EQU $36
-GUARD_SPEC_ EQU $37
-SUPER_REPEL EQU $38
-MAX_REPEL EQU $39
-DIRE_HIT EQU $3A
-COIN EQU $3B
-FRESH_WATER EQU $3C
-SODA_POP EQU $3D
-LEMONADE EQU $3E
-S_S__TICKET EQU $3F
-GOLD_TEETH EQU $40
-X_ATTACK EQU $41
-X_DEFEND EQU $42
-X_SPEED EQU $43
-X_SPECIAL EQU $44
-COIN_CASE EQU $45
-OAKS_PARCEL EQU $46
-ITEMFINDER EQU $47
-SILPH_SCOPE EQU $48
-POKE_FLUTE EQU $49
-LIFT_KEY EQU $4A
-EXP__ALL EQU $4B
-OLD_ROD EQU $4C
-GOOD_ROD EQU $4D
-SUPER_ROD EQU $4E
-; XXX todo: compare this to $32
-PP_UP EQU $4F
-ETHER EQU $50
-MAX_ETHER EQU $51
-ELIXER EQU $52
-MAX_ELIXER EQU $53
-HM_01 EQU $C4
-HM_02 EQU $C5
-HM_03 EQU $C6
-HM_04 EQU $C7
-HM_05 EQU $C8
-TM_01 EQU $C9
-TM_02 EQU $CA
-TM_03 EQU $CB
-TM_04 EQU $CC
-TM_05 EQU $CD
-TM_06 EQU $CE
-TM_07 EQU $CF
-TM_08 EQU $D0
-TM_09 EQU $D1
-TM_10 EQU $D2
-TM_11 EQU $D3
-TM_12 EQU $D4
-TM_13 EQU $D5
-TM_14 EQU $D6
-TM_15 EQU $D7
-TM_16 EQU $D8
-TM_17 EQU $D9
-TM_18 EQU $DA
-TM_19 EQU $DB
-TM_20 EQU $DC
-TM_21 EQU $DD
-TM_22 EQU $DE
-TM_23 EQU $DF
-TM_24 EQU $E0
-TM_25 EQU $E1
-TM_26 EQU $E2
-TM_27 EQU $E3
-TM_28 EQU $E4
-TM_29 EQU $E5
-TM_30 EQU $E6
-TM_31 EQU $E7
-TM_32 EQU $E8
-TM_33 EQU $E9
-TM_34 EQU $EA
-TM_35 EQU $EB
-TM_36 EQU $EC
-TM_37 EQU $ED
-TM_38 EQU $EE
-TM_39 EQU $EF
-TM_40 EQU $F0
-TM_41 EQU $F1
-TM_42 EQU $F2
-TM_43 EQU $F3
-TM_44 EQU $F4
-TM_45 EQU $F5
-TM_46 EQU $F6
-TM_47 EQU $F7
-TM_48 EQU $F8
-TM_49 EQU $F9
-TM_50 EQU $FA
+const_value = 1
+
+ const MASTER_BALL ; $01
+ const ULTRA_BALL ; $02
+ const GREAT_BALL ; $03
+ const POKE_BALL ; $04
+ const TOWN_MAP ; $05
+ const BICYCLE ; $06
+ const SURFBOARD ; $07 buggy?
+ const SAFARI_BALL ; $08
+ const POKEDEX ; $09
+ const MOON_STONE ; $0A
+ const ANTIDOTE ; $0B
+ const BURN_HEAL ; $0C
+ const ICE_HEAL ; $0D
+ const AWAKENING ; $0E
+ const PARLYZ_HEAL ; $0F
+ const FULL_RESTORE ; $10
+ const MAX_POTION ; $11
+ const HYPER_POTION ; $12
+ const SUPER_POTION ; $13
+ const POTION ; $14
+ const BOULDERBADGE ; $15
+ const CASCADEBADGE ; $16
+SAFARI_BAIT EQU $15 ; overload
+SAFARI_ROCK EQU $16 ; overload
+ const THUNDERBADGE ; $17
+ const RAINBOWBADGE ; $18
+ const SOULBADGE ; $19
+ const MARSHBADGE ; $1A
+ const VOLCANOBADGE ; $1B
+ const EARTHBADGE ; $1C
+ const ESCAPE_ROPE ; $1D
+ const REPEL ; $1E
+ const OLD_AMBER ; $1F
+ const FIRE_STONE ; $20
+ const THUNDER_STONE ; $21
+ const WATER_STONE ; $22
+ const HP_UP ; $23
+ const PROTEIN ; $24
+ const IRON ; $25
+ const CARBOS ; $26
+ const CALCIUM ; $27
+ const RARE_CANDY ; $28
+ const DOME_FOSSIL ; $29
+ const HELIX_FOSSIL ; $2A
+ const SECRET_KEY ; $2B
+ const UNUSED_ITEM ; $2C "?????"
+ const BIKE_VOUCHER ; $2D
+ const X_ACCURACY ; $2E
+ const LEAF_STONE ; $2F
+ const CARD_KEY ; $30
+ const NUGGET ; $31
+ const PP_UP_2 ; $32
+ const POKE_DOLL ; $33
+ const FULL_HEAL ; $34
+ const REVIVE ; $35
+ const MAX_REVIVE ; $36
+ const GUARD_SPEC_ ; $37
+ const SUPER_REPEL ; $38
+ const MAX_REPEL ; $39
+ const DIRE_HIT ; $3A
+ const COIN ; $3B
+ const FRESH_WATER ; $3C
+ const SODA_POP ; $3D
+ const LEMONADE ; $3E
+ const S_S__TICKET ; $3F
+ const GOLD_TEETH ; $40
+ const X_ATTACK ; $41
+ const X_DEFEND ; $42
+ const X_SPEED ; $43
+ const X_SPECIAL ; $44
+ const COIN_CASE ; $45
+ const OAKS_PARCEL ; $46
+ const ITEMFINDER ; $47
+ const SILPH_SCOPE ; $48
+ const POKE_FLUTE ; $49
+ const LIFT_KEY ; $4A
+ const EXP__ALL ; $4B
+ const OLD_ROD ; $4C
+ const GOOD_ROD ; $4D
+ const SUPER_ROD ; $4E
+ const PP_UP ; $4F
+ const ETHER ; $50
+ const MAX_ETHER ; $51
+ const ELIXER ; $52
+ const MAX_ELIXER ; $53
+ const FLOOR_B2F ; $54
+ const FLOOR_B1F ; $55
+ const FLOOR_1F ; $56
+ const FLOOR_2F ; $57
+ const FLOOR_3F ; $58
+ const FLOOR_4F ; $59
+ const FLOOR_5F ; $5A
+ const FLOOR_6F ; $5B
+ const FLOOR_7F ; $5C
+ const FLOOR_8F ; $5D
+ const FLOOR_9F ; $5E
+ const FLOOR_10F ; $5F
+ const FLOOR_11F ; $60
+ const FLOOR_B4F ; $61
+
+const_value = $C4
+
+ const HM_01 ; $C4
+ const HM_02 ; $C5
+ const HM_03 ; $C6
+ const HM_04 ; $C7
+ const HM_05 ; $C8
+ const TM_01 ; $C9
+ const TM_02 ; $CA
+ const TM_03 ; $CB
+ const TM_04 ; $CC
+ const TM_05 ; $CD
+ const TM_06 ; $CE
+ const TM_07 ; $CF
+ const TM_08 ; $D0
+ const TM_09 ; $D1
+ const TM_10 ; $D2
+ const TM_11 ; $D3
+ const TM_12 ; $D4
+ const TM_13 ; $D5
+ const TM_14 ; $D6
+ const TM_15 ; $D7
+ const TM_16 ; $D8
+ const TM_17 ; $D9
+ const TM_18 ; $DA
+ const TM_19 ; $DB
+ const TM_20 ; $DC
+ const TM_21 ; $DD
+ const TM_22 ; $DE
+ const TM_23 ; $DF
+ const TM_24 ; $E0
+ const TM_25 ; $E1
+ const TM_26 ; $E2
+ const TM_27 ; $E3
+ const TM_28 ; $E4
+ const TM_29 ; $E5
+ const TM_30 ; $E6
+ const TM_31 ; $E7
+ const TM_32 ; $E8
+ const TM_33 ; $E9
+ const TM_34 ; $EA
+ const TM_35 ; $EB
+ const TM_36 ; $EC
+ const TM_37 ; $ED
+ const TM_38 ; $EE
+ const TM_39 ; $EF
+ const TM_40 ; $F0
+ const TM_41 ; $F1
+ const TM_42 ; $F2
+ const TM_43 ; $F3
+ const TM_44 ; $F4
+ const TM_45 ; $F5
+ const TM_46 ; $F6
+ const TM_47 ; $F7
+ const TM_48 ; $F8
+ const TM_49 ; $F9
+ const TM_50 ; $FA
diff --git a/constants/list_constants.asm b/constants/list_constants.asm
index aab542ec..7e26a6b6 100755
--- a/constants/list_constants.asm
+++ b/constants/list_constants.asm
@@ -12,3 +12,9 @@ ITEM_NAME EQU 4
PLAYEROT_NAME EQU 5
ENEMYOT_NAME EQU 6
TRAINER_NAME EQU 7
+
+INIT_ENEMYOT_LIST EQU 1
+INIT_BAG_ITEM_LIST EQU 2
+INIT_OTHER_ITEM_LIST EQU 3
+INIT_PLAYEROT_LIST EQU 4
+INIT_MON_LIST EQU 5
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index 4e764433..9ff23355 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -1,249 +1,251 @@
-PALLET_TOWN EQU $00
-VIRIDIAN_CITY EQU $01
-PEWTER_CITY EQU $02
-CERULEAN_CITY EQU $03
-LAVENDER_TOWN EQU $04
-VERMILION_CITY EQU $05
-CELADON_CITY EQU $06
-FUCHSIA_CITY EQU $07
-CINNABAR_ISLAND EQU $08
-INDIGO_PLATEAU EQU $09
-SAFFRON_CITY EQU $0A
-; unused EQU $0B
-ROUTE_1 EQU $0C
-ROUTE_2 EQU $0D
-ROUTE_3 EQU $0E
-ROUTE_4 EQU $0F
-ROUTE_5 EQU $10
-ROUTE_6 EQU $11
-ROUTE_7 EQU $12
-ROUTE_8 EQU $13
-ROUTE_9 EQU $14
-ROUTE_10 EQU $15
-ROUTE_11 EQU $16
-ROUTE_12 EQU $17
-ROUTE_13 EQU $18
-ROUTE_14 EQU $19
-ROUTE_15 EQU $1A
-ROUTE_16 EQU $1B
-ROUTE_17 EQU $1C
-ROUTE_18 EQU $1D
-ROUTE_19 EQU $1E
-ROUTE_20 EQU $1F
-ROUTE_21 EQU $20
-ROUTE_22 EQU $21
-ROUTE_23 EQU $22
-ROUTE_24 EQU $23
-ROUTE_25 EQU $24
-REDS_HOUSE_1F EQU $25
-REDS_HOUSE_2F EQU $26
-BLUES_HOUSE EQU $27
-OAKS_LAB EQU $28
-VIRIDIAN_POKECENTER EQU $29
-VIRIDIAN_MART EQU $2A
-VIRIDIAN_SCHOOL EQU $2B
-VIRIDIAN_HOUSE EQU $2C
-VIRIDIAN_GYM EQU $2D
-DIGLETTS_CAVE_EXIT EQU $2E
-VIRIDIAN_FOREST_EXIT EQU $2F
-ROUTE_2_HOUSE EQU $30
-ROUTE_2_GATE EQU $31
-VIRIDIAN_FOREST_ENTRANCE EQU $32
-VIRIDIAN_FOREST EQU $33
-MUSEUM_1F EQU $34
-MUSEUM_2F EQU $35
-PEWTER_GYM EQU $36
-PEWTER_HOUSE_1 EQU $37
-PEWTER_MART EQU $38
-PEWTER_HOUSE_2 EQU $39
-PEWTER_POKECENTER EQU $3A
-MT_MOON_1 EQU $3B
-MT_MOON_2 EQU $3C
-MT_MOON_3 EQU $3D
-TRASHED_HOUSE EQU $3E
-CERULEAN_HOUSE EQU $3F
-CERULEAN_POKECENTER EQU $40
-CERULEAN_GYM EQU $41
-BIKE_SHOP EQU $42
-CERULEAN_MART EQU $43
-MT_MOON_POKECENTER EQU $44
-;copy of TRASHED_HOUSE EQU $45
-ROUTE_5_GATE EQU $46
-PATH_ENTRANCE_ROUTE_5 EQU $47
-DAYCAREM EQU $48
-ROUTE_6_GATE EQU $49
-PATH_ENTRANCE_ROUTE_6 EQU $4A
-;copy of PATH_ENTRANCE_ROUTE_6 EQU $4B
-ROUTE_7_GATE EQU $4C
-PATH_ENTRANCE_ROUTE_7 EQU $4D
-;copy of PATH_ENTRANCE_ROUTE_7 EQU $4E
-ROUTE_8_GATE EQU $4F
-PATH_ENTRANCE_ROUTE_8 EQU $50
-ROCK_TUNNEL_POKECENTER EQU $51
-ROCK_TUNNEL_1 EQU $52
-POWER_PLANT EQU $53
-ROUTE_11_GATE_1F EQU $54
-DIGLETTS_CAVE_ENTRANCE EQU $55
-ROUTE_11_GATE_2F EQU $56
-ROUTE_12_GATE_1F EQU $57
-BILLS_HOUSE EQU $58
-VERMILION_POKECENTER EQU $59
-POKEMON_FAN_CLUB EQU $5A
-VERMILION_MART EQU $5B
-VERMILION_GYM EQU $5C
-VERMILION_HOUSE_1 EQU $5D
-VERMILION_DOCK EQU $5E
-SS_ANNE_1 EQU $5F
-SS_ANNE_2 EQU $60
-SS_ANNE_3 EQU $61
-SS_ANNE_4 EQU $62
-SS_ANNE_5 EQU $63
-SS_ANNE_6 EQU $64
-SS_ANNE_7 EQU $65
-SS_ANNE_8 EQU $66
-SS_ANNE_9 EQU $67
-SS_ANNE_10 EQU $68
-;EQU $69
-;EQU $6A
-;EQU $6B
-VICTORY_ROAD_1 EQU $6C
-;EQU $6D
-;EQU $6E
-;EQU $6F
-;EQU $70
-LANCES_ROOM EQU $71
-;EQU $72
-;EQU $73
-;EQU $74
-;EQU $75
-HALL_OF_FAME EQU $76
-UNDERGROUND_PATH_NS EQU $77
-CHAMPIONS_ROOM EQU $78
-UNDERGROUND_PATH_WE EQU $79
-CELADON_MART_1 EQU $7A
-CELADON_MART_2 EQU $7B
-CELADON_MART_3 EQU $7C
-CELADON_MART_4 EQU $7D
-CELADON_MART_ROOF EQU $7E
-CELADON_MART_ELEVATOR EQU $7F
-CELADON_MANSION_1 EQU $80
-CELADON_MANSION_2 EQU $81
-CELADON_MANSION_3 EQU $82
-CELADON_MANSION_4 EQU $83
-CELADON_MANSION_5 EQU $84
-CELADON_POKECENTER EQU $85
-CELADON_GYM EQU $86
-GAME_CORNER EQU $87
-CELADON_MART_5 EQU $88
-CELADON_PRIZE_ROOM EQU $89
-CELADON_DINER EQU $8A
-CELADON_HOUSE EQU $8B
-CELADON_HOTEL EQU $8C
-LAVENDER_POKECENTER EQU $8D
-POKEMONTOWER_1 EQU $8E
-POKEMONTOWER_2 EQU $8F
-POKEMONTOWER_3 EQU $90
-POKEMONTOWER_4 EQU $91
-POKEMONTOWER_5 EQU $92
-POKEMONTOWER_6 EQU $93
-POKEMONTOWER_7 EQU $94
-LAVENDER_HOUSE_1 EQU $95
-LAVENDER_MART EQU $96
-LAVENDER_HOUSE_2 EQU $97
-FUCHSIA_MART EQU $98
-FUCHSIA_HOUSE_1 EQU $99
-FUCHSIA_POKECENTER EQU $9A
-FUCHSIA_HOUSE_2 EQU $9B
-SAFARI_ZONE_ENTRANCE EQU $9C
-FUCHSIA_GYM EQU $9D
-FUCHSIA_MEETING_ROOM EQU $9E
-SEAFOAM_ISLANDS_2 EQU $9F
-SEAFOAM_ISLANDS_3 EQU $A0
-SEAFOAM_ISLANDS_4 EQU $A1
-SEAFOAM_ISLANDS_5 EQU $A2
-VERMILION_HOUSE_2 EQU $A3
-FUCHSIA_HOUSE_3 EQU $A4
-MANSION_1 EQU $A5
-CINNABAR_GYM EQU $A6
-CINNABAR_LAB_1 EQU $A7
-CINNABAR_LAB_2 EQU $A8
-CINNABAR_LAB_3 EQU $A9
-CINNABAR_LAB_4 EQU $AA
-CINNABAR_POKECENTER EQU $AB
-CINNABAR_MART EQU $AC
-;copy of CINNABAR_MART EQU $AD
-INDIGO_PLATEAU_LOBBY EQU $AE
-COPYCATS_HOUSE_1F EQU $AF
-COPYCATS_HOUSE_2F EQU $B0
-FIGHTING_DOJO EQU $B1
-SAFFRON_GYM EQU $B2
-SAFFRON_HOUSE_1 EQU $B3
-SAFFRON_MART EQU $B4
-SILPH_CO_1F EQU $B5
-SAFFRON_POKECENTER EQU $B6
-SAFFRON_HOUSE_2 EQU $B7
-ROUTE_15_GATE_1F EQU $B8
-ROUTE_15_GATE_2F EQU $B9
-ROUTE_16_GATE_1F EQU $BA
-ROUTE_16_GATE_2F EQU $BB
-ROUTE_16_HOUSE EQU $BC
-ROUTE_12_HOUSE EQU $BD
-ROUTE_18_GATE_1F EQU $BE
-ROUTE_18_GATE_2F EQU $BF
-SEAFOAM_ISLANDS_1 EQU $C0
-ROUTE_22_GATE EQU $C1
-VICTORY_ROAD_2 EQU $C2
-ROUTE_12_GATE_2F EQU $C3
-VERMILION_HOUSE_3 EQU $C4
-DIGLETTS_CAVE EQU $C5
-VICTORY_ROAD_3 EQU $C6
-ROCKET_HIDEOUT_1 EQU $C7
-ROCKET_HIDEOUT_2 EQU $C8
-ROCKET_HIDEOUT_3 EQU $C9
-ROCKET_HIDEOUT_4 EQU $CA
-ROCKET_HIDEOUT_ELEVATOR EQU $CB
-;EQU $CC
-;EQU $CD
-;EQU $CE
-SILPH_CO_2F EQU $CF
-SILPH_CO_3F EQU $D0
-SILPH_CO_4F EQU $D1
-SILPH_CO_5F EQU $D2
-SILPH_CO_6F EQU $D3
-SILPH_CO_7F EQU $D4
-SILPH_CO_8F EQU $D5
-MANSION_2 EQU $D6
-MANSION_3 EQU $D7
-MANSION_4 EQU $D8
-SAFARI_ZONE_EAST EQU $D9
-SAFARI_ZONE_NORTH EQU $DA
-SAFARI_ZONE_WEST EQU $DB
-SAFARI_ZONE_CENTER EQU $DC
-SAFARI_ZONE_REST_HOUSE_1 EQU $DD
-SAFARI_ZONE_SECRET_HOUSE EQU $DE
-SAFARI_ZONE_REST_HOUSE_2 EQU $DF
-SAFARI_ZONE_REST_HOUSE_3 EQU $E0
-SAFARI_ZONE_REST_HOUSE_4 EQU $E1
-UNKNOWN_DUNGEON_2 EQU $E2
-UNKNOWN_DUNGEON_3 EQU $E3
-UNKNOWN_DUNGEON_1 EQU $E4
-NAME_RATERS_HOUSE EQU $E5
-CERULEAN_HOUSE_3 EQU $E6
-;EQU $E7
-ROCK_TUNNEL_2 EQU $E8
-SILPH_CO_9F EQU $E9
-SILPH_CO_10F EQU $EA
-SILPH_CO_11F EQU $EB
-SILPH_CO_ELEVATOR EQU $EC
-;EQU $ED
-;EQU $EE
-BATTLE_CENTER EQU $EF
-TRADE_CENTER EQU $F0
-;EQU $F1
-;EQU $F2
-;EQU $F3
-;EQU $F4
-LORELEIS_ROOM EQU $F5
-BRUNOS_ROOM EQU $F6
-AGATHAS_ROOM EQU $F7
-BEACH_HOUSE EQU $F8
+const_value = 0
+
+ const PALLET_TOWN ; $00
+ const VIRIDIAN_CITY ; $01
+ const PEWTER_CITY ; $02
+ const CERULEAN_CITY ; $03
+ const LAVENDER_TOWN ; $04
+ const VERMILION_CITY ; $05
+ const CELADON_CITY ; $06
+ const FUCHSIA_CITY ; $07
+ const CINNABAR_ISLAND ; $08
+ const INDIGO_PLATEAU ; $09
+ const SAFFRON_CITY ; $0A
+ const UNUSED_MAP_0B ; $0B
+ const ROUTE_1 ; $0C
+ const ROUTE_2 ; $0D
+ const ROUTE_3 ; $0E
+ const ROUTE_4 ; $0F
+ const ROUTE_5 ; $10
+ const ROUTE_6 ; $11
+ const ROUTE_7 ; $12
+ const ROUTE_8 ; $13
+ const ROUTE_9 ; $14
+ const ROUTE_10 ; $15
+ const ROUTE_11 ; $16
+ const ROUTE_12 ; $17
+ const ROUTE_13 ; $18
+ const ROUTE_14 ; $19
+ const ROUTE_15 ; $1A
+ const ROUTE_16 ; $1B
+ const ROUTE_17 ; $1C
+ const ROUTE_18 ; $1D
+ const ROUTE_19 ; $1E
+ const ROUTE_20 ; $1F
+ const ROUTE_21 ; $20
+ const ROUTE_22 ; $21
+ const ROUTE_23 ; $22
+ const ROUTE_24 ; $23
+ const ROUTE_25 ; $24
+ const REDS_HOUSE_1F ; $25
+ const REDS_HOUSE_2F ; $26
+ const BLUES_HOUSE ; $27
+ const OAKS_LAB ; $28
+ const VIRIDIAN_POKECENTER ; $29
+ const VIRIDIAN_MART ; $2A
+ const VIRIDIAN_SCHOOL ; $2B
+ const VIRIDIAN_HOUSE ; $2C
+ const VIRIDIAN_GYM ; $2D
+ const DIGLETTS_CAVE_EXIT ; $2E
+ const VIRIDIAN_FOREST_EXIT ; $2F
+ const ROUTE_2_HOUSE ; $30
+ const ROUTE_2_GATE ; $31
+ const VIRIDIAN_FOREST_ENTRANCE ; $32
+ const VIRIDIAN_FOREST ; $33
+ const MUSEUM_1F ; $34
+ const MUSEUM_2F ; $35
+ const PEWTER_GYM ; $36
+ const PEWTER_HOUSE_1 ; $37
+ const PEWTER_MART ; $38
+ const PEWTER_HOUSE_2 ; $39
+ const PEWTER_POKECENTER ; $3A
+ const MT_MOON_1 ; $3B
+ const MT_MOON_2 ; $3C
+ const MT_MOON_3 ; $3D
+ const TRASHED_HOUSE ; $3E
+ const CERULEAN_HOUSE ; $3F
+ const CERULEAN_POKECENTER ; $40
+ const CERULEAN_GYM ; $41
+ const BIKE_SHOP ; $42
+ const CERULEAN_MART ; $43
+ const MT_MOON_POKECENTER ; $44
+ const TRASHED_HOUSE_COPY ; $45
+ const ROUTE_5_GATE ; $46
+ const PATH_ENTRANCE_ROUTE_5 ; $47
+ const DAYCAREM ; $48
+ const ROUTE_6_GATE ; $49
+ const PATH_ENTRANCE_ROUTE_6 ; $4A
+ const PATH_ENTRANCE_ROUTE_6_COPY ; $4B
+ const ROUTE_7_GATE ; $4C
+ const PATH_ENTRANCE_ROUTE_7 ; $4D
+ const PATH_ENTRANCE_ROUTE_7_COPY ; $4E
+ const ROUTE_8_GATE ; $4F
+ const PATH_ENTRANCE_ROUTE_8 ; $50
+ const ROCK_TUNNEL_POKECENTER ; $51
+ const ROCK_TUNNEL_1 ; $52
+ const POWER_PLANT ; $53
+ const ROUTE_11_GATE_1F ; $54
+ const DIGLETTS_CAVE_ENTRANCE ; $55
+ const ROUTE_11_GATE_2F ; $56
+ const ROUTE_12_GATE_1F ; $57
+ const BILLS_HOUSE ; $58
+ const VERMILION_POKECENTER ; $59
+ const POKEMON_FAN_CLUB ; $5A
+ const VERMILION_MART ; $5B
+ const VERMILION_GYM ; $5C
+ const VERMILION_HOUSE_1 ; $5D
+ const VERMILION_DOCK ; $5E
+ const SS_ANNE_1 ; $5F
+ const SS_ANNE_2 ; $60
+ const SS_ANNE_3 ; $61
+ const SS_ANNE_4 ; $62
+ const SS_ANNE_5 ; $63
+ const SS_ANNE_6 ; $64
+ const SS_ANNE_7 ; $65
+ const SS_ANNE_8 ; $66
+ const SS_ANNE_9 ; $67
+ const SS_ANNE_10 ; $68
+ const UNUSED_MAP_69 ; $69
+ const UNUSED_MAP_6A ; $6A
+ const UNUSED_MAP_6B ; $6B
+ const VICTORY_ROAD_1 ; $6C
+ const UNUSED_MAP_6D ; $6D
+ const UNUSED_MAP_6E ; $6E
+ const UNUSED_MAP_6F ; $6F
+ const UNUSED_MAP_70 ; $70
+ const LANCES_ROOM ; $71
+ const UNUSED_MAP_72 ; $72
+ const UNUSED_MAP_73 ; $73
+ const UNUSED_MAP_74 ; $74
+ const UNUSED_MAP_75 ; $75
+ const HALL_OF_FAME ; $76
+ const UNDERGROUND_PATH_NS ; $77
+ const CHAMPIONS_ROOM ; $78
+ const UNDERGROUND_PATH_WE ; $79
+ const CELADON_MART_1 ; $7A
+ const CELADON_MART_2 ; $7B
+ const CELADON_MART_3 ; $7C
+ const CELADON_MART_4 ; $7D
+ const CELADON_MART_ROOF ; $7E
+ const CELADON_MART_ELEVATOR ; $7F
+ const CELADON_MANSION_1 ; $80
+ const CELADON_MANSION_2 ; $81
+ const CELADON_MANSION_3 ; $82
+ const CELADON_MANSION_4 ; $83
+ const CELADON_MANSION_5 ; $84
+ const CELADON_POKECENTER ; $85
+ const CELADON_GYM ; $86
+ const GAME_CORNER ; $87
+ const CELADON_MART_5 ; $88
+ const CELADON_PRIZE_ROOM ; $89
+ const CELADON_DINER ; $8A
+ const CELADON_HOUSE ; $8B
+ const CELADON_HOTEL ; $8C
+ const LAVENDER_POKECENTER ; $8D
+ const POKEMONTOWER_1 ; $8E
+ const POKEMONTOWER_2 ; $8F
+ const POKEMONTOWER_3 ; $90
+ const POKEMONTOWER_4 ; $91
+ const POKEMONTOWER_5 ; $92
+ const POKEMONTOWER_6 ; $93
+ const POKEMONTOWER_7 ; $94
+ const LAVENDER_HOUSE_1 ; $95
+ const LAVENDER_MART ; $96
+ const LAVENDER_HOUSE_2 ; $97
+ const FUCHSIA_MART ; $98
+ const FUCHSIA_HOUSE_1 ; $99
+ const FUCHSIA_POKECENTER ; $9A
+ const FUCHSIA_HOUSE_2 ; $9B
+ const SAFARI_ZONE_ENTRANCE ; $9C
+ const FUCHSIA_GYM ; $9D
+ const FUCHSIA_MEETING_ROOM ; $9E
+ const SEAFOAM_ISLANDS_2 ; $9F
+ const SEAFOAM_ISLANDS_3 ; $A0
+ const SEAFOAM_ISLANDS_4 ; $A1
+ const SEAFOAM_ISLANDS_5 ; $A2
+ const VERMILION_HOUSE_2 ; $A3
+ const FUCHSIA_HOUSE_3 ; $A4
+ const MANSION_1 ; $A5
+ const CINNABAR_GYM ; $A6
+ const CINNABAR_LAB_1 ; $A7
+ const CINNABAR_LAB_2 ; $A8
+ const CINNABAR_LAB_3 ; $A9
+ const CINNABAR_LAB_4 ; $AA
+ const CINNABAR_POKECENTER ; $AB
+ const CINNABAR_MART ; $AC
+ const CINNABAR_MART_COPY ; $AD
+ const INDIGO_PLATEAU_LOBBY ; $AE
+ const COPYCATS_HOUSE_1F ; $AF
+ const COPYCATS_HOUSE_2F ; $B0
+ const FIGHTING_DOJO ; $B1
+ const SAFFRON_GYM ; $B2
+ const SAFFRON_HOUSE_1 ; $B3
+ const SAFFRON_MART ; $B4
+ const SILPH_CO_1F ; $B5
+ const SAFFRON_POKECENTER ; $B6
+ const SAFFRON_HOUSE_2 ; $B7
+ const ROUTE_15_GATE_1F ; $B8
+ const ROUTE_15_GATE_2F ; $B9
+ const ROUTE_16_GATE_1F ; $BA
+ const ROUTE_16_GATE_2F ; $BB
+ const ROUTE_16_HOUSE ; $BC
+ const ROUTE_12_HOUSE ; $BD
+ const ROUTE_18_GATE_1F ; $BE
+ const ROUTE_18_GATE_2F ; $BF
+ const SEAFOAM_ISLANDS_1 ; $C0
+ const ROUTE_22_GATE ; $C1
+ const VICTORY_ROAD_2 ; $C2
+ const ROUTE_12_GATE_2F ; $C3
+ const VERMILION_HOUSE_3 ; $C4
+ const DIGLETTS_CAVE ; $C5
+ const VICTORY_ROAD_3 ; $C6
+ const ROCKET_HIDEOUT_1 ; $C7
+ const ROCKET_HIDEOUT_2 ; $C8
+ const ROCKET_HIDEOUT_3 ; $C9
+ const ROCKET_HIDEOUT_4 ; $CA
+ const ROCKET_HIDEOUT_ELEVATOR ; $CB
+ const UNUSED_MAP_CC ; $CC
+ const UNUSED_MAP_CD ; $CD
+ const UNUSED_MAP_CE ; $CE
+ const SILPH_CO_2F ; $CF
+ const SILPH_CO_3F ; $D0
+ const SILPH_CO_4F ; $D1
+ const SILPH_CO_5F ; $D2
+ const SILPH_CO_6F ; $D3
+ const SILPH_CO_7F ; $D4
+ const SILPH_CO_8F ; $D5
+ const MANSION_2 ; $D6
+ const MANSION_3 ; $D7
+ const MANSION_4 ; $D8
+ const SAFARI_ZONE_EAST ; $D9
+ const SAFARI_ZONE_NORTH ; $DA
+ const SAFARI_ZONE_WEST ; $DB
+ const SAFARI_ZONE_CENTER ; $DC
+ const SAFARI_ZONE_REST_HOUSE_1 ; $DD
+ const SAFARI_ZONE_SECRET_HOUSE ; $DE
+ const SAFARI_ZONE_REST_HOUSE_2 ; $DF
+ const SAFARI_ZONE_REST_HOUSE_3 ; $E0
+ const SAFARI_ZONE_REST_HOUSE_4 ; $E1
+ const UNKNOWN_DUNGEON_2 ; $E2
+ const UNKNOWN_DUNGEON_3 ; $E3
+ const UNKNOWN_DUNGEON_1 ; $E4
+ const NAME_RATERS_HOUSE ; $E5
+ const CERULEAN_HOUSE_3 ; $E6
+ const UNUSED_MAP_E7 ; $E7
+ const ROCK_TUNNEL_2 ; $E8
+ const SILPH_CO_9F ; $E9
+ const SILPH_CO_10F ; $EA
+ const SILPH_CO_11F ; $EB
+ const SILPH_CO_ELEVATOR ; $EC
+ const UNUSED_MAP_ED ; $ED
+ const UNUSED_MAP_EE ; $EE
+ const TRADE_CENTER ; $EF
+ const COLOSSEUM ; $F0
+ const UNUSED_MAP_F1 ; $F1
+ const UNUSED_MAP_F2 ; $F2
+ const UNUSED_MAP_F3 ; $F3
+ const UNUSED_MAP_F4 ; $F4
+ const LORELEIS_ROOM ; $F5
+ const BRUNOS_ROOM ; $F6
+ const AGATHAS_ROOM ; $F7
+ const BEACH_HOUSE ; $F8
diff --git a/constants/map_dimensions.asm b/constants/map_dimensions.asm
index cd7980ef..22fa3c6e 100755
--- a/constants/map_dimensions.asm
+++ b/constants/map_dimensions.asm
@@ -872,14 +872,14 @@ SILPH_CO_11F_WIDTH EQU $09
SILPH_CO_ELEVATOR_HEIGHT EQU $02
SILPH_CO_ELEVATOR_WIDTH EQU $02
-; BattleCenterM_h map_id=239
-BATTLE_CENTER_HEIGHT EQU $04
-BATTLE_CENTER_WIDTH EQU $05
-
-; TradeCenterM_h map_id=240
+; TradeCenter_h map_id=239
TRADE_CENTER_HEIGHT EQU $04
TRADE_CENTER_WIDTH EQU $05
+; Colosseum_h map_id=240
+COLOSSEUM_HEIGHT EQU $04
+COLOSSEUM_WIDTH EQU $05
+
; Lorelei_h map_id=245
LORELEIS_ROOM_HEIGHT EQU $06
LORELEIS_ROOM_WIDTH EQU $05
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index 3452a393..b42745cc 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -1,15 +1,21 @@
MAX_LEVEL EQU 100
-NUM_MOVES EQU 4
+
+NUM_MOVES EQU 4
+NUM_STATS EQU 5
+NUM_STAT_MODS EQU 8
+NUM_DVS EQU 2
PARTY_LENGTH EQU 6
MONS_PER_BOX EQU 20
NUM_BOXES EQU 12
-HOF_MON EQU $10
-HOF_TEAM EQU PARTY_LENGTH * HOF_MON
-NUM_HOF_TEAMS EQU 50
+HOF_MON EQU $10
+HOF_TEAM EQU PARTY_LENGTH * HOF_MON
+HOF_TEAM_CAPACITY EQU 50
+NAME_LENGTH EQU 11
+ITEM_NAME_LENGTH EQU 13
A_BUTTON EQU %00000001
B_BUTTON EQU %00000010
@@ -23,6 +29,12 @@ D_DOWN EQU %10000000
SCREEN_WIDTH EQU 20
SCREEN_HEIGHT EQU 18
+SCREEN_WIDTH_PIXELS EQU SCREEN_WIDTH * 8
+SCREEN_HEIGHT_PIXELS EQU SCREEN_HEIGHT * 8
+
+BG_MAP_WIDTH EQU 32
+BG_MAP_HEIGHT EQU 32
+
NPC_MOVEMENT_DOWN EQU $00
NPC_MOVEMENT_UP EQU $40
NPC_MOVEMENT_LEFT EQU $80
@@ -58,6 +70,105 @@ TRADE_CANCEL_MENU EQU 5
HEAL_CANCEL_MENU EQU 6
NO_YES_MENU EQU 7
+; menu exit method constants for list menus and the buy/sell/quit menu
+CHOSE_MENU_ITEM EQU 1 ; pressed A
+CANCELLED_MENU EQU 2 ; pressed B
+
+; menu exit method constants for two-option menus
+CHOSE_FIRST_ITEM EQU 1
+CHOSE_SECOND_ITEM EQU 2
+
+; move mon constants
+BOX_TO_PARTY EQU 0
+PARTY_TO_BOX EQU 1
+DAYCARE_TO_PARTY EQU 2
+PARTY_TO_DAYCARE EQU 3
+
+; emotion bubbles
+EXCLAMATION_BUBBLE EQU 0
+QUESTION_BUBBLE EQU 1
+SMILE_BUBBLE EQU 2
+
+; slot symbols
+SLOTS7 EQU $0200
+SLOTSBAR EQU $0604
+SLOTSCHERRY EQU $0A08
+SLOTSFISH EQU $0E0C
+SLOTSBIRD EQU $1210
+SLOTSMOUSE EQU $1614
+
+; party menu types
+NORMAL_PARTY_MENU EQU 0
+USE_ITEM_PARTY_MENU EQU 1
+BATTLE_PARTY_MENU EQU 2
+TMHM_PARTY_MENU EQU 3
+SWAP_MONS_PARTY_MENU EQU 4
+EVO_STONE_PARTY_MENU EQU 5
+
+; party memu message IDs
+ANTIDOTE_MSG EQU $F0
+BURN_HEAL_MSG EQU $F1
+ICE_HEAL_MSG EQU $F2
+AWAKENING_MSG EQU $F3
+PARALYZ_HEAL_MSG EQU $F4
+POTION_MSG EQU $F5
+FULL_HEAL_MSG EQU $F6
+REVIVE_MSG EQU $F7
+RARE_CANDY_MSG EQU $F8
+
+; naming screen types
+NAME_PLAYER_SCREEN EQU 0
+NAME_RIVAL_SCREEN EQU 1
+NAME_MON_SCREEN EQU 2
+
+; mon data locations
+; Note that some values are not supported by all functions that use these values.
+PLAYER_PARTY_DATA EQU 0
+ENEMY_PARTY_DATA EQU 1
+BOX_DATA EQU 2
+DAYCARE_DATA EQU 3
+BATTLE_MON_DATA EQU 4
+
+; player direction constants
+
+PLAYER_DIR_BIT_RIGHT EQU 0
+PLAYER_DIR_BIT_LEFT EQU 1
+PLAYER_DIR_BIT_DOWN EQU 2
+PLAYER_DIR_BIT_UP EQU 3
+
+PLAYER_DIR_RIGHT EQU (1 << PLAYER_DIR_BIT_RIGHT)
+PLAYER_DIR_LEFT EQU (1 << PLAYER_DIR_BIT_LEFT)
+PLAYER_DIR_DOWN EQU (1 << PLAYER_DIR_BIT_DOWN)
+PLAYER_DIR_UP EQU (1 << PLAYER_DIR_BIT_UP)
+
+; flag operations
+
+FLAG_RESET EQU 0
+FLAG_SET EQU 1
+FLAG_TEST EQU 2
+
+; special text IDs
+TEXT_MON_FAINTED EQU $d0
+TEXT_BLACKED_OUT EQU $d1
+TEXT_REPEL_WORE_OFF EQU $d2
+TEXT_SAFARI_GAME_OVER EQU $d3
+
+; PrintNumber
+
+BIT_LEFT_ALIGN EQU 6
+BIT_LEADING_ZEROES EQU 7
+
+LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN)
+LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES)
+
+; HP bar
+HP_BAR_GREEN EQU 0
+HP_BAR_YELLOW EQU 1
+HP_BAR_RED EQU 2
+
+; D733 flags
+BIT_TEST_BATTLE EQU 0
+
; serial
ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01
diff --git a/constants/move_animation_constants.asm b/constants/move_animation_constants.asm
index 018c094b..27658c83 100644
--- a/constants/move_animation_constants.asm
+++ b/constants/move_animation_constants.asm
@@ -1,43 +1,44 @@
; subanimations
+const_value = $D8
; special effects, prefaced with "SE" for "Special Effect"
-SE_WAVY_SCREEN EQU $D8 ; used in Psywave/Night Shade/Psychic etc.
-SE_SUBSTITUTE_MON EQU $D9 ; used in Substitute (turns the pokemon into a mini sprite)
-SE_SHAKE_BACK_AND_FORTH EQU $DA ; used in Double Team
-SE_SLIDE_ENEMY_MON_OUT EQU $DB ; used in Whirlwind
-SE_SHOW_ENEMY_MON_PIC EQU $DC ; used in Seismic Toss
-SE_SHOW_MON_PIC EQU $DD ; used in Low Kick/Quick Attack/Seismic Toss etc.
-SE_BLINK_ENEMY_MON EQU $DE ; used in Seismic Toss
-SE_HIDE_ENEMY_MON_PIC EQU $DF ; used in Seismic Toss
-SE_FLASH_ENEMY_MON_PIC EQU $E0 ; unused
-SE_DELAY_ANIMATION_10 EQU $E1 ; used in lots of animations
-SE_SPIRAL_BALLS_INWARD EQU $E2 ; used in Growth/Focus Energy/Hyper Beam etc.
-SE_SHAKE_ENEMY_HUD_2 EQU $E3 ; unused
-SE_SHAKE_ENEMY_HUD EQU $E4 ;
-SE_SLIDE_MON_HALF_LEFT EQU $E5 ; used in Softboiled
-SE_PETALS_FALLING EQU $E6 ; used in Petal Dance
-SE_LEAVES_FALLING EQU $E7 ; used in Razor Leaf
-SE_TRANSFORM_MON EQU $E8 ; used in Transform
-SE_SLIDE_MON_DOWN_AND_HIDE EQU $E9 ; used in Acid Armor
-SE_MINIMIZE_MON EQU $EA ; used in Minimize
-SE_BOUNCE_UP_AND_DOWN EQU $EB ; used in Splash
-SE_SHOOT_MANY_BALLS_UPWARD EQU $EC ; used in an unused animation
-SE_SHOOT_BALLS_UPWARD EQU $ED ; used in Teleport/Sky Attack
-SE_SQUISH_MON_PIC EQU $EE ; used in Teleport/Sky Attack
-SE_HIDE_MON_PIC EQU $EF
-SE_LIGHT_SCREEN_PALETTE EQU $F0 ; used in Mist/Double Edge/Absorb/etc.
-SE_RESET_MON_POSITION EQU $F1 ; used in Tackle/Body Slam/etc.
-SE_MOVE_MON_HORIZONTALLY EQU $F2 ; used in Tackle/Body Slam/etc.
-SE_BLINK_MON EQU $F3 ; used in Recover
-SE_SLIDE_MON_OUT EQU $F4 ; used in Seismic Toss/Low Kick/etc.
-SE_FLASH_MON_PIC EQU $F5
-SE_SLIDE_MON_DOWN EQU $F6 ; used in Withdraw/Waterfall/fainting
-SE_SLIDE_MON_UP EQU $F7 ; used in Dig/Waterfall/etc.
-SE_FLASH_SCREEN_LONG EQU $F8 ; used in Confusion/Psychic/etc.
-SE_DARKEN_MON_PALETTE EQU $F9 ; used in Smokescreen/Smog/etc.
-SE_WATER_DROPLETS_EVERYWHERE EQU $FA ; used in Mist/Surf/Toxic/etc.
-SE_SHAKE_SCREEN EQU $FB ; used in Earthquake/Fissure/etc.
-SE_RESET_SCREEN_PALETTE EQU $FC ; used in Leer/Thunderpunch/etc.
-SE_DARK_SCREEN_PALETTE EQU $FD ; used in Hyper Beam/Thunderpunch/etc.
-SE_DARK_SCREEN_FLASH EQU $FE ; used in Cut/Take Down/etc.
+ const SE_WAVY_SCREEN ; $D8 used in Psywave/Night Shade/Psychic etc.
+ const SE_SUBSTITUTE_MON ; $D9 used in Substitute (turns the pokemon into a mini sprite)
+ const SE_SHAKE_BACK_AND_FORTH ; $DA used in Double Team
+ const SE_SLIDE_ENEMY_MON_OFF ; $DB used in Whirlwind
+ const SE_SHOW_ENEMY_MON_PIC ; $DC used in Seismic Toss
+ const SE_SHOW_MON_PIC ; $DD used in Low Kick/Quick Attack/Seismic Toss etc.
+ const SE_BLINK_ENEMY_MON ; $DE used in Seismic Toss
+ const SE_HIDE_ENEMY_MON_PIC ; $DF used in Seismic Toss
+ const SE_FLASH_ENEMY_MON_PIC ; $E0 unused
+ const SE_DELAY_ANIMATION_10 ; $E1 used in lots of animations
+ const SE_SPIRAL_BALLS_INWARD ; $E2 used in Growth/Focus Energy/Hyper Beam etc.
+ const SE_SHAKE_ENEMY_HUD_2 ; $E3 unused
+ const SE_SHAKE_ENEMY_HUD ; $E4
+ const SE_SLIDE_MON_HALF_OFF ; $E5 used in Softboiled
+ const SE_PETALS_FALLING ; $E6 used in Petal Dance
+ const SE_LEAVES_FALLING ; $E7 used in Razor Leaf
+ const SE_TRANSFORM_MON ; $E8 used in Transform
+ const SE_SLIDE_MON_DOWN_AND_HIDE ; $E9 used in Acid Armor
+ const SE_MINIMIZE_MON ; $EA used in Minimize
+ const SE_BOUNCE_UP_AND_DOWN ; $EB used in Splash
+ const SE_SHOOT_MANY_BALLS_UPWARD ; $EC used in an unused animation
+ const SE_SHOOT_BALLS_UPWARD ; $ED used in Teleport/Sky Attack
+ const SE_SQUISH_MON_PIC ; $EE used in Teleport/Sky Attack
+ const SE_HIDE_MON_PIC ; $EF
+ const SE_LIGHT_SCREEN_PALETTE ; $F0 used in Mist/Double Edge/Absorb/etc.
+ const SE_RESET_MON_POSITION ; $F1 used in Tackle/Body Slam/etc.
+ const SE_MOVE_MON_HORIZONTALLY ; $F2 used in Tackle/Body Slam/etc.
+ const SE_BLINK_MON ; $F3 used in Recover
+ const SE_SLIDE_MON_OFF ; $F4 used in Seismic Toss/Low Kick/etc.
+ const SE_FLASH_MON_PIC ; $F5
+ const SE_SLIDE_MON_DOWN ; $F6 used in Withdraw/Waterfall/fainting
+ const SE_SLIDE_MON_UP ; $F7 used in Dig/Waterfall/etc.
+ const SE_FLASH_SCREEN_LONG ; $F8 used in Confusion/Psychic/etc.
+ const SE_DARKEN_MON_PALETTE ; $F9 used in Smokescreen/Smog/etc.
+ const SE_WATER_DROPLETS_EVERYWHERE ; $FA used in Mist/Surf/Toxic/etc.
+ const SE_SHAKE_SCREEN ; $FB used in Earthquake/Fissure/etc.
+ const SE_RESET_SCREEN_PALETTE ; $FC used in Leer/Thunderpunch/etc.
+ const SE_DARK_SCREEN_PALETTE ; $FD used in Hyper Beam/Thunderpunch/etc.
+ const SE_DARK_SCREEN_FLASH ; $FE used in Cut/Take Down/etc.
diff --git a/constants/move_effect_constants.asm b/constants/move_effect_constants.asm
index ff7ddc12..b66772d1 100644
--- a/constants/move_effect_constants.asm
+++ b/constants/move_effect_constants.asm
@@ -2,92 +2,95 @@
; {stat}_(UP|DOWN)(1|2) means that the move raises the user's (or lowers the target's) corresponding stat modifier by 1 (or 2) stages
; {status condition}_side_effect means that the move has a side chance of causing that condition
; {status condition}_effect means that the move causes the status condition every time it hits the target
-NO_ADDITIONAL_EFFECT EQU $00
-POISON_SIDE_EFFECT1 EQU $02
-DRAIN_HP_EFFECT EQU $03
-BURN_SIDE_EFFECT1 EQU $04
-FREEZE_SIDE_EFFECT EQU $05
-PARALYZE_SIDE_EFFECT1 EQU $06
-EXPLODE_EFFECT EQU $07 ; Explosion, Self Destruct
-DREAM_EATER_EFFECT EQU $08
-MIRROR_MOVE_EFFECT EQU $09
-ATTACK_UP1_EFFECT EQU $0A
-DEFENSE_UP1_EFFECT EQU $0B
-SPEED_UP1_EFFECT EQU $0C
-SPECIAL_UP1_EFFECT EQU $0D
-ACCURACY_UP1_EFFECT EQU $0E
-EVASION_UP1_EFFECT EQU $0F
-PAY_DAY_EFFECT EQU $10
-SWIFT_EFFECT EQU $11
-ATTACK_DOWN1_EFFECT EQU $12
-DEFENSE_DOWN1_EFFECT EQU $13
-SPEED_DOWN1_EFFECT EQU $14
-SPECIAL_DOWN1_EFFECT EQU $15
-ACCURACY_DOWN1_EFFECT EQU $16
-EVASION_DOWN1_EFFECT EQU $17
-CONVERSION_EFFECT EQU $18
-HAZE_EFFECT EQU $19
-BIDE_EFFECT EQU $1A
-THRASH_PETAL_DANCE_EFFECT EQU $1B
-SWITCH_AND_TELEPORT_EFFECT EQU $1C
-TWO_TO_FIVE_ATTACKS_EFFECT EQU $1D
-; unused effect EQU $1E
-FLINCH_SIDE_EFFECT1 EQU $1F
-SLEEP_EFFECT EQU $20
-POISON_SIDE_EFFECT2 EQU $21
-BURN_SIDE_EFFECT2 EQU $22
-; unused effect EQU $23
-PARALYZE_SIDE_EFFECT2 EQU $24
-FLINCH_SIDE_EFFECT2 EQU $25
-OHKO_EFFECT EQU $26 ; moves like Horn Drill
-CHARGE_EFFECT EQU $27 ; moves like Solar Beam
-SUPER_FANG_EFFECT EQU $28
-SPECIAL_DAMAGE_EFFECT EQU $29 ; Seismic Toss, Night Shade, Sonic Boom, Dragon Rage, Psywave
-TRAPPING_EFFECT EQU $2A ; moves like Wrap
-FLY_EFFECT EQU $2B
-ATTACK_TWICE_EFFECT EQU $2C
-JUMP_KICK_EFFECT EQU $2D ; Jump Kick and Hi Jump Kick effect
-MIST_EFFECT EQU $2E
-FOCUS_ENERGY_EFFECT EQU $2F
-RECOIL_EFFECT EQU $30 ; moves like Double Edge
-CONFUSION_EFFECT EQU $31 ; Confuse Ray, Supersonic (not the move Confusion)
-ATTACK_UP2_EFFECT EQU $32
-DEFENSE_UP2_EFFECT EQU $33
-SPEED_UP2_EFFECT EQU $34
-SPECIAL_UP2_EFFECT EQU $35
-ACCURACY_UP2_EFFECT EQU $36
-EVASION_UP2_EFFECT EQU $37
-HEAL_EFFECT EQU $38 ; Recover, Softboiled, Rest
-TRANSFORM_EFFECT EQU $39
-ATTACK_DOWN2_EFFECT EQU $3A
-DEFENSE_DOWN2_EFFECT EQU $3B
-SPEED_DOWN2_EFFECT EQU $3C
-SPECIAL_DOWN2_EFFECT EQU $3D
-ACCURACY_DOWN2_EFFECT EQU $3E
-EVASION_DOWN2_EFFECT EQU $3F
-LIGHT_SCREEN_EFFECT EQU $40
-REFLECT_EFFECT EQU $41
-POISON_EFFECT EQU $42
-PARALYZE_EFFECT EQU $43
-ATTACK_DOWN_SIDE_EFFECT EQU $44
-DEFENSE_DOWN_SIDE_EFFECT EQU $45
-SPEED_DOWN_SIDE_EFFECT EQU $46
-SPECIAL_DOWN_SIDE_EFFECT EQU $47
-; unused effect EQU $48
-; unused effect EQU $49
-; unused effect EQU $4A
-; unused effect EQU $4B
-CONFUSION_SIDE_EFFECT EQU $4C
-TWINEEDLE_EFFECT EQU $4D
-; unused effect EQU $4E
-SUBSTITUTE_EFFECT EQU $4F
-HYPER_BEAM_EFFECT EQU $50
-RAGE_EFFECT EQU $51
-MIMIC_EFFECT EQU $52
-METRONOME_EFFECT EQU $53
-LEECH_SEED_EFFECT EQU $54
-SPLASH_EFFECT EQU $55
-DISABLE_EFFECT EQU $56
+const_value = 0
+
+ const NO_ADDITIONAL_EFFECT ; $00
+ const UNUSED_EFFECT_01 ; $01
+ const POISON_SIDE_EFFECT1 ; $02
+ const DRAIN_HP_EFFECT ; $03
+ const BURN_SIDE_EFFECT1 ; $04
+ const FREEZE_SIDE_EFFECT ; $05
+ const PARALYZE_SIDE_EFFECT1 ; $06
+ const EXPLODE_EFFECT ; $07 Explosion, Self Destruct
+ const DREAM_EATER_EFFECT ; $08
+ const MIRROR_MOVE_EFFECT ; $09
+ const ATTACK_UP1_EFFECT ; $0A
+ const DEFENSE_UP1_EFFECT ; $0B
+ const SPEED_UP1_EFFECT ; $0C
+ const SPECIAL_UP1_EFFECT ; $0D
+ const ACCURACY_UP1_EFFECT ; $0E
+ const EVASION_UP1_EFFECT ; $0F
+ const PAY_DAY_EFFECT ; $10
+ const SWIFT_EFFECT ; $11
+ const ATTACK_DOWN1_EFFECT ; $12
+ const DEFENSE_DOWN1_EFFECT ; $13
+ const SPEED_DOWN1_EFFECT ; $14
+ const SPECIAL_DOWN1_EFFECT ; $15
+ const ACCURACY_DOWN1_EFFECT ; $16
+ const EVASION_DOWN1_EFFECT ; $17
+ const CONVERSION_EFFECT ; $18
+ const HAZE_EFFECT ; $19
+ const BIDE_EFFECT ; $1A
+ const THRASH_PETAL_DANCE_EFFECT ; $1B
+ const SWITCH_AND_TELEPORT_EFFECT ; $1C
+ const TWO_TO_FIVE_ATTACKS_EFFECT ; $1D
+ const UNUSED_EFFECT_1E ; $1E
+ const FLINCH_SIDE_EFFECT1 ; $1F
+ const SLEEP_EFFECT ; $20
+ const POISON_SIDE_EFFECT2 ; $21
+ const BURN_SIDE_EFFECT2 ; $22
+ const UNUSED_EFFECT_23 ; $23
+ const PARALYZE_SIDE_EFFECT2 ; $24
+ const FLINCH_SIDE_EFFECT2 ; $25
+ const OHKO_EFFECT ; $26 moves like Horn Drill
+ const CHARGE_EFFECT ; $27 moves like Solar Beam
+ const SUPER_FANG_EFFECT ; $28
+ const SPECIAL_DAMAGE_EFFECT ; $29 Seismic Toss, Night Shade, Sonic Boom, Dragon Rage, Psywave
+ const TRAPPING_EFFECT ; $2A moves like Wrap
+ const FLY_EFFECT ; $2B
+ const ATTACK_TWICE_EFFECT ; $2C
+ const JUMP_KICK_EFFECT ; $2D Jump Kick and Hi Jump Kick effect
+ const MIST_EFFECT ; $2E
+ const FOCUS_ENERGY_EFFECT ; $2F
+ const RECOIL_EFFECT ; $30 moves like Double Edge
+ const CONFUSION_EFFECT ; $31 Confuse Ray, Supersonic (not the move Confusion)
+ const ATTACK_UP2_EFFECT ; $32
+ const DEFENSE_UP2_EFFECT ; $33
+ const SPEED_UP2_EFFECT ; $34
+ const SPECIAL_UP2_EFFECT ; $35
+ const ACCURACY_UP2_EFFECT ; $36
+ const EVASION_UP2_EFFECT ; $37
+ const HEAL_EFFECT ; $38 Recover, Softboiled, Rest
+ const TRANSFORM_EFFECT ; $39
+ const ATTACK_DOWN2_EFFECT ; $3A
+ const DEFENSE_DOWN2_EFFECT ; $3B
+ const SPEED_DOWN2_EFFECT ; $3C
+ const SPECIAL_DOWN2_EFFECT ; $3D
+ const ACCURACY_DOWN2_EFFECT ; $3E
+ const EVASION_DOWN2_EFFECT ; $3F
+ const LIGHT_SCREEN_EFFECT ; $40
+ const REFLECT_EFFECT ; $41
+ const POISON_EFFECT ; $42
+ const PARALYZE_EFFECT ; $43
+ const ATTACK_DOWN_SIDE_EFFECT ; $44
+ const DEFENSE_DOWN_SIDE_EFFECT ; $45
+ const SPEED_DOWN_SIDE_EFFECT ; $46
+ const SPECIAL_DOWN_SIDE_EFFECT ; $47
+ const UNUSED_EFFECT_48 ; $48
+ const UNUSED_EFFECT_49 ; $49
+ const UNUSED_EFFECT_4A ; $4A
+ const UNUSED_EFFECT_4B ; $4B
+ const CONFUSION_SIDE_EFFECT ; $4C
+ const TWINEEDLE_EFFECT ; $4D
+ const UNUSED_EFFECT_4E ; $4E
+ const SUBSTITUTE_EFFECT ; $4F
+ const HYPER_BEAM_EFFECT ; $50
+ const RAGE_EFFECT ; $51
+ const MIMIC_EFFECT ; $52
+ const METRONOME_EFFECT ; $53
+ const LEECH_SEED_EFFECT ; $54
+ const SPLASH_EFFECT ; $55
+ const DISABLE_EFFECT ; $56
; fixed damage constants
SONICBOOM_DAMAGE EQU 20
diff --git a/constants/music_constants.asm b/constants/music_constants.asm
index 30d11543..57ad230d 100644
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -1,9 +1,49 @@
+; HW sound channel register base addresses
+HW_CH1_BASE EQU (rNR10 % $100)
+HW_CH2_BASE EQU ((rNR21 % $100) - 1)
+HW_CH3_BASE EQU (rNR30 % $100)
+HW_CH4_BASE EQU ((rNR41 % $100) - 1)
+
+; HW sound channel enable bit masks
+HW_CH1_ENABLE_MASK EQU %00010001
+HW_CH2_ENABLE_MASK EQU %00100010
+HW_CH3_ENABLE_MASK EQU %01000100
+HW_CH4_ENABLE_MASK EQU %10001000
+
+; HW sound channel disable bit masks
+HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff)
+HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff)
+HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff)
+HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
+
+REG_DUTY_SOUND_LEN EQU 1
+REG_VOLUME_ENVELOPE EQU 2
+REG_FREQUENCY_LO EQU 3
+
+MAX_SFX_ID EQU $B9
+
+CRY_SFX_START EQU $14
+CRY_SFX_END EQU $86
+
+; wChannelFlags1 constants
+BIT_PERFECT_PITCH EQU 0 ; controlled by toggleperfectpitch command
+BIT_CHANNEL_CALL EQU 1 ; if in channel call
+BIT_NOISE_OR_SFX EQU 2 ; if channel is the music noise channel or an SFX channel
+BIT_VIBRATO_DIRECTION EQU 3 ; if the pitch is above or below normal (cycles)
+BIT_PITCH_BEND_ON EQU 4 ; if pitch bend is active
+BIT_PITCH_BEND_DECREASING EQU 5 ; if the pitch bend frequency is decreasing (instead of increasing)
+BIT_ROTATE_DUTY EQU 6 ; if rotating duty
+
+; wChannelFlags2 constant (only has one flag)
+BIT_EXECUTE_MUSIC EQU 0 ; if in execute music
+
; Song ids are calculated by address to save space.
music_const: MACRO
-\1 EQUS "((\2 - SFX_Headers_02) / 3)"
+\1 EQUS "((\2 - SFX_Headers_1) / 3)"
ENDM
+ ; AUDIO_1
music_const MUSIC_PALLET_TOWN, Music_PalletTown
music_const MUSIC_POKECENTER, Music_Pokecenter
music_const MUSIC_GYM, Music_Gym
@@ -25,6 +65,7 @@ ENDM
music_const MUSIC_ROUTES4, Music_Routes4
music_const MUSIC_INDIGO_PLATEAU, Music_IndigoPlateau
+ ; AUDIO_2
music_const MUSIC_GYM_LEADER_BATTLE, Music_GymLeaderBattle
music_const MUSIC_TRAINER_BATTLE, Music_TrainerBattle
music_const MUSIC_WILD_BATTLE, Music_WildBattle
@@ -33,6 +74,7 @@ ENDM
music_const MUSIC_DEFEATED_WILD_MON, Music_DefeatedWildMon
music_const MUSIC_DEFEATED_GYM_LEADER, Music_DefeatedGymLeader
+ ; AUDIO_3
music_const MUSIC_TITLE_SCREEN, Music_TitleScreen
music_const MUSIC_CREDITS, Music_Credits
music_const MUSIC_HALL_OF_FAME, Music_HallOfFame
@@ -52,3 +94,176 @@ ENDM
music_const MUSIC_MEET_FEMALE_TRAINER, Music_MeetFemaleTrainer
music_const MUSIC_MEET_MALE_TRAINER, Music_MeetMaleTrainer
+ ; AUDIO_1 AUDIO_2 AUDIO_3
+ music_const SFX_SNARE_1, SFX_Snare1_1
+ music_const SFX_SNARE_2, SFX_Snare2_1
+ music_const SFX_SNARE_3, SFX_Snare3_1
+ music_const SFX_SNARE_4, SFX_Snare4_1
+ music_const SFX_SNARE_5, SFX_Snare5_1
+ music_const SFX_TRIANGLE_1, SFX_Triangle1_1
+ music_const SFX_TRIANGLE_2, SFX_Triangle2_1
+ music_const SFX_SNARE_6, SFX_Snare6_1
+ music_const SFX_SNARE_7, SFX_Snare7_1
+ music_const SFX_SNARE_8, SFX_Snare8_1
+ music_const SFX_SNARE_9, SFX_Snare9_1
+ music_const SFX_CYMBAL_1, SFX_Cymbal1_1
+ music_const SFX_CYMBAL_2, SFX_Cymbal2_1
+ music_const SFX_CYMBAL_3, SFX_Cymbal3_1
+ music_const SFX_MUTED_SNARE_1, SFX_Muted_Snare1_1
+ music_const SFX_TRIANGLE_3, SFX_Triangle3_1
+ music_const SFX_MUTED_SNARE_2, SFX_Muted_Snare2_1
+ music_const SFX_MUTED_SNARE_3, SFX_Muted_Snare3_1
+ music_const SFX_MUTED_SNARE_4, SFX_Muted_Snare4_1
+ music_const SFX_CRY_00, SFX_Cry00_1
+ music_const SFX_CRY_01, SFX_Cry01_1
+ music_const SFX_CRY_02, SFX_Cry02_1
+ music_const SFX_CRY_03, SFX_Cry03_1
+ music_const SFX_CRY_04, SFX_Cry04_1
+ music_const SFX_CRY_05, SFX_Cry05_1
+ music_const SFX_CRY_06, SFX_Cry06_1
+ music_const SFX_CRY_07, SFX_Cry07_1
+ music_const SFX_CRY_08, SFX_Cry08_1
+ music_const SFX_CRY_09, SFX_Cry09_1
+ music_const SFX_CRY_0A, SFX_Cry0A_1
+ music_const SFX_CRY_0B, SFX_Cry0B_1
+ music_const SFX_CRY_0C, SFX_Cry0C_1
+ music_const SFX_CRY_0D, SFX_Cry0D_1
+ music_const SFX_CRY_0E, SFX_Cry0E_1
+ music_const SFX_CRY_0F, SFX_Cry0F_1
+ music_const SFX_CRY_10, SFX_Cry10_1
+ music_const SFX_CRY_11, SFX_Cry11_1
+ music_const SFX_CRY_12, SFX_Cry12_1
+ music_const SFX_CRY_13, SFX_Cry13_1
+ music_const SFX_CRY_14, SFX_Cry14_1
+ music_const SFX_CRY_15, SFX_Cry15_1
+ music_const SFX_CRY_16, SFX_Cry16_1
+ music_const SFX_CRY_17, SFX_Cry17_1
+ music_const SFX_CRY_18, SFX_Cry18_1
+ music_const SFX_CRY_19, SFX_Cry19_1
+ music_const SFX_CRY_1A, SFX_Cry1A_1
+ music_const SFX_CRY_1B, SFX_Cry1B_1
+ music_const SFX_CRY_1C, SFX_Cry1C_1
+ music_const SFX_CRY_1D, SFX_Cry1D_1
+ music_const SFX_CRY_1E, SFX_Cry1E_1
+ music_const SFX_CRY_1F, SFX_Cry1F_1
+ music_const SFX_CRY_20, SFX_Cry20_1
+ music_const SFX_CRY_21, SFX_Cry21_1
+ music_const SFX_CRY_22, SFX_Cry22_1
+ music_const SFX_CRY_23, SFX_Cry23_1
+ music_const SFX_CRY_24, SFX_Cry24_1
+ music_const SFX_CRY_25, SFX_Cry25_1
+
+ music_const SFX_GET_ITEM_2, SFX_Get_Item2_1
+ music_const SFX_TINK, SFX_Tink_1
+ music_const SFX_HEAL_HP, SFX_Heal_HP_1
+ music_const SFX_HEAL_AILMENT, SFX_Heal_Ailment_1
+ music_const SFX_START_MENU, SFX_Start_Menu_1
+ music_const SFX_PRESS_AB, SFX_Press_AB_1
+
+ ; AUDIO_1 AUDIO_3
+ music_const SFX_GET_ITEM_1, SFX_Get_Item1_1
+
+ music_const SFX_POKEDEX_RATING, SFX_Pokedex_Rating_1
+ music_const SFX_GET_KEY_ITEM, SFX_Get_Key_Item_1
+ music_const SFX_POISONED, SFX_Poisoned_1
+ music_const SFX_TRADE_MACHINE, SFX_Trade_Machine_1
+ music_const SFX_TURN_ON_PC, SFX_Turn_On_PC_1
+ music_const SFX_TURN_OFF_PC, SFX_Turn_Off_PC_1
+ music_const SFX_ENTER_PC, SFX_Enter_PC_1
+ music_const SFX_SHRINK, SFX_Shrink_1
+ music_const SFX_SWITCH, SFX_Switch_1
+ music_const SFX_HEALING_MACHINE, SFX_Healing_Machine_1
+ music_const SFX_TELEPORT_EXIT_1, SFX_Teleport_Exit1_1
+ music_const SFX_TELEPORT_ENTER_1, SFX_Teleport_Enter1_1
+ music_const SFX_TELEPORT_EXIT_2, SFX_Teleport_Exit2_1
+ music_const SFX_LEDGE, SFX_Ledge_1
+ music_const SFX_TELEPORT_ENTER_2, SFX_Teleport_Enter2_1
+ music_const SFX_FLY, SFX_Fly_1
+ music_const SFX_DENIED, SFX_Denied_1
+ music_const SFX_ARROW_TILES, SFX_Arrow_Tiles_1
+ music_const SFX_PUSH_BOULDER, SFX_Push_Boulder_1
+ music_const SFX_SS_ANNE_HORN, SFX_SS_Anne_Horn_1
+ music_const SFX_WITHDRAW_DEPOSIT, SFX_Withdraw_Deposit_1
+ music_const SFX_CUT, SFX_Cut_1
+ music_const SFX_GO_INSIDE, SFX_Go_Inside_1
+ music_const SFX_SWAP, SFX_Swap_1
+ music_const SFX_59, SFX_59_1 ; unused, sounds similar to SFX_SLOTS_STOP_WHEEL
+ music_const SFX_PURCHASE, SFX_Purchase_1
+ music_const SFX_COLLISION, SFX_Collision_1
+ music_const SFX_GO_OUTSIDE, SFX_Go_Outside_1
+ music_const SFX_SAVE, SFX_Save_1
+
+ ; AUDIO_1
+ music_const SFX_POKEFLUE, SFX_Pokeflute
+ music_const SFX_SAFARI_ZONE_PA, SFX_Safari_Zone_PA
+
+ ; AUDIO_2
+ music_const SFX_LEVEL_UP, SFX_Level_Up
+
+ music_const SFX_BALL_TOSS, SFX_Ball_Toss
+ music_const SFX_BALL_POOF, SFX_Ball_Poof
+ music_const SFX_FAINT_THUD, SFX_Faint_Thud
+ music_const SFX_RUN, SFX_Run
+ music_const SFX_DEX_PAGE_ADDED, SFX_Dex_Page_Added
+ music_const SFX_CAUGHT_MON, SFX_Caught_Mon
+ music_const SFX_PECK, SFX_Peck
+ music_const SFX_FAINT_FALL, SFX_Faint_Fall
+ music_const SFX_BATTLE_09, SFX_Battle_09
+ music_const SFX_POUND, SFX_Pound
+ music_const SFX_BATTLE_0B, SFX_Battle_0B
+ music_const SFX_BATTLE_0C, SFX_Battle_0C
+ music_const SFX_BATTLE_0D, SFX_Battle_0D
+ music_const SFX_BATTLE_0E, SFX_Battle_0E
+ music_const SFX_BATTLE_0F, SFX_Battle_0F
+ music_const SFX_DAMAGE, SFX_Damage
+ music_const SFX_NOT_VERY_EFFECTIVE, SFX_Not_Very_Effective
+ music_const SFX_BATTLE_12, SFX_Battle_12
+ music_const SFX_BATTLE_13, SFX_Battle_13
+ music_const SFX_BATTLE_14, SFX_Battle_14
+ music_const SFX_VINE_WHIP, SFX_Vine_Whip
+ music_const SFX_BATTLE_16, SFX_Battle_16 ; unused?
+ music_const SFX_BATTLE_17, SFX_Battle_17
+ music_const SFX_BATTLE_18, SFX_Battle_18
+ music_const SFX_BATTLE_19, SFX_Battle_19
+ music_const SFX_SUPER_EFFECTIVE, SFX_Super_Effective
+ music_const SFX_BATTLE_1B, SFX_Battle_1B
+ music_const SFX_BATTLE_1C, SFX_Battle_1C
+ music_const SFX_DOUBLESLAP, SFX_Doubleslap
+ music_const SFX_BATTLE_1E, SFX_Battle_1E
+ music_const SFX_HORN_DRILL, SFX_Horn_Drill
+ music_const SFX_BATTLE_20, SFX_Battle_20
+ music_const SFX_BATTLE_21, SFX_Battle_21
+ music_const SFX_BATTLE_22, SFX_Battle_22
+ music_const SFX_BATTLE_23, SFX_Battle_23
+ music_const SFX_BATTLE_24, SFX_Battle_24
+ music_const SFX_BATTLE_25, SFX_Battle_25
+ music_const SFX_BATTLE_26, SFX_Battle_26
+ music_const SFX_BATTLE_27, SFX_Battle_27
+ music_const SFX_BATTLE_28, SFX_Battle_28
+ music_const SFX_BATTLE_29, SFX_Battle_29
+ music_const SFX_BATTLE_2A, SFX_Battle_2A
+ music_const SFX_BATTLE_2B, SFX_Battle_2B
+ music_const SFX_BATTLE_2C, SFX_Battle_2C
+ music_const SFX_PSYBEAM, SFX_Psybeam
+ music_const SFX_BATTLE_2E, SFX_Battle_2E
+ music_const SFX_BATTLE_2F, SFX_Battle_2F
+ music_const SFX_PSYCHIC_M, SFX_Psychic_M
+ music_const SFX_BATTLE_31, SFX_Battle_31
+ music_const SFX_BATTLE_32, SFX_Battle_32
+ music_const SFX_BATTLE_33, SFX_Battle_33
+ music_const SFX_BATTLE_34, SFX_Battle_34
+ music_const SFX_BATTLE_35, SFX_Battle_35
+ music_const SFX_BATTLE_36, SFX_Battle_36
+ music_const SFX_SILPH_SCOPE, SFX_Silph_Scope
+
+ ; AUDIO_3
+ music_const SFX_INTRO_LUNGE, SFX_Intro_Lunge
+ music_const SFX_INTRO_HIP, SFX_Intro_Hip
+ music_const SFX_INTRO_HOP, SFX_Intro_Hop
+ music_const SFX_INTRO_RAISE, SFX_Intro_Raise
+ music_const SFX_INTRO_CRASH, SFX_Intro_Crash
+ music_const SFX_INTRO_WHOOSH, SFX_Intro_Whoosh
+ music_const SFX_SLOTS_STOP_WHEEL, SFX_Slots_Stop_Wheel
+ music_const SFX_SLOTS_REWARD, SFX_Slots_Reward
+ music_const SFX_SLOTS_NEW_SPIN, SFX_Slots_New_Spin
+ music_const SFX_SHOOTING_STAR, SFX_Shooting_Star
diff --git a/constants/palette_constants.asm b/constants/palette_constants.asm
index 981f621d..ca2e103a 100755
--- a/constants/palette_constants.asm
+++ b/constants/palette_constants.asm
@@ -1,38 +1,56 @@
+SET_PAL_BATTLE_BLACK EQU $00
+SET_PAL_BATTLE EQU $01
+SET_PAL_TOWN_MAP EQU $02
+SET_PAL_STATUS_SCREEN EQU $03
+SET_PAL_POKEDEX EQU $04
+SET_PAL_SLOTS EQU $05
+SET_PAL_TITLE_SCREEN EQU $06
+SET_PAL_NIDORINO_INTRO EQU $07
+SET_PAL_GENERIC EQU $08
+SET_PAL_OVERWORLD EQU $09
+SET_PAL_PARTY_MENU EQU $0A
+SET_PAL_POKEMON_WHOLE_SCREEN EQU $0B
+SET_PAL_GAME_FREAK_INTRO EQU $0C
+SET_PAL_TRAINER_CARD EQU $0D
+UPDATE_PARTY_MENU_BLK_PACKET EQU $FC
+
; super game boy palettes
-PAL_ROUTE EQU $00
-PAL_PALLET EQU $01
-PAL_VIRIDIAN EQU $02
-PAL_PEWTER EQU $03
-PAL_CERULEAN EQU $04
-PAL_LAVENDER EQU $05
-PAL_VERMILION EQU $06
-PAL_CELADON EQU $07
-PAL_FUCHSIA EQU $08
-PAL_CINNABAR EQU $09
-PAL_INDIGO EQU $0A
-PAL_SAFFRON EQU $0B
-PAL_TOWNMAP EQU $0C
-PAL_LOGO1 EQU $0D
-PAL_LOGO2 EQU $0E
-;PAL_0F EQU $0F
-PAL_MEWMON EQU $10
-PAL_BLUEMON EQU $11
-PAL_REDMON EQU $12
-PAL_CYANMON EQU $13
-PAL_PURPLEMON EQU $14
-PAL_BROWNMON EQU $15
-PAL_GREENMON EQU $16
-PAL_PINKMON EQU $17
-PAL_YELLOWMON EQU $18
-PAL_GREYMON EQU $19
-PAL_SLOTS1 EQU $1A
-PAL_SLOTS2 EQU $1B
-PAL_SLOTS3 EQU $1C
-PAL_SLOTS4 EQU $1D
-PAL_BLACK EQU $1E
-PAL_GREENBAR EQU $1F
-PAL_YELLOWBAR EQU $20
-PAL_REDBAR EQU $21
-PAL_BADGE EQU $22
-PAL_CAVE EQU $23
-PAL_GAMEFREAK EQU $24
+const_value = 0
+
+ const PAL_ROUTE ; $00
+ const PAL_PALLET ; $01
+ const PAL_VIRIDIAN ; $02
+ const PAL_PEWTER ; $03
+ const PAL_CERULEAN ; $04
+ const PAL_LAVENDER ; $05
+ const PAL_VERMILION ; $06
+ const PAL_CELADON ; $07
+ const PAL_FUCHSIA ; $08
+ const PAL_CINNABAR ; $09
+ const PAL_INDIGO ; $0A
+ const PAL_SAFFRON ; $0B
+ const PAL_TOWNMAP ; $0C
+ const PAL_LOGO1 ; $0D
+ const PAL_LOGO2 ; $0E
+ const PAL_0F ; $0F
+ const PAL_MEWMON ; $10
+ const PAL_BLUEMON ; $11
+ const PAL_REDMON ; $12
+ const PAL_CYANMON ; $13
+ const PAL_PURPLEMON ; $14
+ const PAL_BROWNMON ; $15
+ const PAL_GREENMON ; $16
+ const PAL_PINKMON ; $17
+ const PAL_YELLOWMON ; $18
+ const PAL_GREYMON ; $19
+ const PAL_SLOTS1 ; $1A
+ const PAL_SLOTS2 ; $1B
+ const PAL_SLOTS3 ; $1C
+ const PAL_SLOTS4 ; $1D
+ const PAL_BLACK ; $1E
+ const PAL_GREENBAR ; $1F
+ const PAL_YELLOWBAR ; $20
+ const PAL_REDBAR ; $21
+ const PAL_BADGE ; $22
+ const PAL_CAVE ; $23
+ const PAL_GAMEFREAK ; $24
diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm
index c8fa56e3..036426ed 100644
--- a/constants/pokedex_constants.asm
+++ b/constants/pokedex_constants.asm
@@ -1,153 +1,155 @@
-DEX_BULBASAUR EQU 1
-DEX_IVYSAUR EQU 2
-DEX_VENUSAUR EQU 3
-DEX_CHARMANDER EQU 4
-DEX_CHARMELEON EQU 5
-DEX_CHARIZARD EQU 6
-DEX_SQUIRTLE EQU 7
-DEX_WARTORTLE EQU 8
-DEX_BLASTOISE EQU 9
-DEX_CATERPIE EQU 10
-DEX_METAPOD EQU 11
-DEX_BUTTERFREE EQU 12
-DEX_WEEDLE EQU 13
-DEX_KAKUNA EQU 14
-DEX_BEEDRILL EQU 15
-DEX_PIDGEY EQU 16
-DEX_PIDGEOTTO EQU 17
-DEX_PIDGEOT EQU 18
-DEX_RATTATA EQU 19
-DEX_RATICATE EQU 20
-DEX_SPEAROW EQU 21
-DEX_FEAROW EQU 22
-DEX_EKANS EQU 23
-DEX_ARBOK EQU 24
-DEX_PIKACHU EQU 25
-DEX_RAICHU EQU 26
-DEX_SANDSHREW EQU 27
-DEX_SANDSLASH EQU 28
-DEX_NIDORAN_F EQU 29
-DEX_NIDORINA EQU 30
-DEX_NIDOQUEEN EQU 31
-DEX_NIDORAN_M EQU 32
-DEX_NIDORINO EQU 33
-DEX_NIDOKING EQU 34
-DEX_CLEFAIRY EQU 35
-DEX_CLEFABLE EQU 36
-DEX_VULPIX EQU 37
-DEX_NINETALES EQU 38
-DEX_JIGGLYPUFF EQU 39
-DEX_WIGGLYTUFF EQU 40
-DEX_ZUBAT EQU 41
-DEX_GOLBAT EQU 42
-DEX_ODDISH EQU 43
-DEX_GLOOM EQU 44
-DEX_VILEPLUME EQU 45
-DEX_PARAS EQU 46
-DEX_PARASECT EQU 47
-DEX_VENONAT EQU 48
-DEX_VENOMOTH EQU 49
-DEX_DIGLETT EQU 50
-DEX_DUGTRIO EQU 51
-DEX_MEOWTH EQU 52
-DEX_PERSIAN EQU 53
-DEX_PSYDUCK EQU 54
-DEX_GOLDUCK EQU 55
-DEX_MANKEY EQU 56
-DEX_PRIMEAPE EQU 57
-DEX_GROWLITHE EQU 58
-DEX_ARCANINE EQU 59
-DEX_POLIWAG EQU 60
-DEX_POLIWHIRL EQU 61
-DEX_POLIWRATH EQU 62
-DEX_ABRA EQU 63
-DEX_KADABRA EQU 64
-DEX_ALAKAZAM EQU 65
-DEX_MACHOP EQU 66
-DEX_MACHOKE EQU 67
-DEX_MACHAMP EQU 68
-DEX_BELLSPROUT EQU 69
-DEX_WEEPINBELL EQU 70
-DEX_VICTREEBEL EQU 71
-DEX_TENTACOOL EQU 72
-DEX_TENTACRUEL EQU 73
-DEX_GEODUDE EQU 74
-DEX_GRAVELER EQU 75
-DEX_GOLEM EQU 76
-DEX_PONYTA EQU 77
-DEX_RAPIDASH EQU 78
-DEX_SLOWPOKE EQU 79
-DEX_SLOWBRO EQU 80
-DEX_MAGNEMITE EQU 81
-DEX_MAGNETON EQU 82
-DEX_FARFETCH_D EQU 83
-DEX_DODUO EQU 84
-DEX_DODRIO EQU 85
-DEX_SEEL EQU 86
-DEX_DEWGONG EQU 87
-DEX_GRIMER EQU 88
-DEX_MUK EQU 89
-DEX_SHELLDER EQU 90
-DEX_CLOYSTER EQU 91
-DEX_GASTLY EQU 92
-DEX_HAUNTER EQU 93
-DEX_GENGAR EQU 94
-DEX_ONIX EQU 95
-DEX_DROWZEE EQU 96
-DEX_HYPNO EQU 97
-DEX_KRABBY EQU 98
-DEX_KINGLER EQU 99
-DEX_VOLTORB EQU 100
-DEX_ELECTRODE EQU 101
-DEX_EXEGGCUTE EQU 102
-DEX_EXEGGUTOR EQU 103
-DEX_CUBONE EQU 104
-DEX_MAROWAK EQU 105
-DEX_HITMONLEE EQU 106
-DEX_HITMONCHAN EQU 107
-DEX_LICKITUNG EQU 108
-DEX_KOFFING EQU 109
-DEX_WEEZING EQU 110
-DEX_RHYHORN EQU 111
-DEX_RHYDON EQU 112
-DEX_CHANSEY EQU 113
-DEX_TANGELA EQU 114
-DEX_KANGASKHAN EQU 115
-DEX_HORSEA EQU 116
-DEX_SEADRA EQU 117
-DEX_GOLDEEN EQU 118
-DEX_SEAKING EQU 119
-DEX_STARYU EQU 120
-DEX_STARMIE EQU 121
-DEX_MR_MIME EQU 122
-DEX_SCYTHER EQU 123
-DEX_JYNX EQU 124
-DEX_ELECTABUZZ EQU 125
-DEX_MAGMAR EQU 126
-DEX_PINSIR EQU 127
-DEX_TAUROS EQU 128
-DEX_MAGIKARP EQU 129
-DEX_GYARADOS EQU 130
-DEX_LAPRAS EQU 131
-DEX_DITTO EQU 132
-DEX_EEVEE EQU 133
-DEX_VAPOREON EQU 134
-DEX_JOLTEON EQU 135
-DEX_FLAREON EQU 136
-DEX_PORYGON EQU 137
-DEX_OMANYTE EQU 138
-DEX_OMASTAR EQU 139
-DEX_KABUTO EQU 140
-DEX_KABUTOPS EQU 141
-DEX_AERODACTYL EQU 142
-DEX_SNORLAX EQU 143
-DEX_ARTICUNO EQU 144
-DEX_ZAPDOS EQU 145
-DEX_MOLTRES EQU 146
-DEX_DRATINI EQU 147
-DEX_DRAGONAIR EQU 148
-DEX_DRAGONITE EQU 149
-DEX_MEWTWO EQU 150
-DEX_MEW EQU 151
+const_value = 1
+
+ const DEX_BULBASAUR ; 1
+ const DEX_IVYSAUR ; 2
+ const DEX_VENUSAUR ; 3
+ const DEX_CHARMANDER ; 4
+ const DEX_CHARMELEON ; 5
+ const DEX_CHARIZARD ; 6
+ const DEX_SQUIRTLE ; 7
+ const DEX_WARTORTLE ; 8
+ const DEX_BLASTOISE ; 9
+ const DEX_CATERPIE ; 10
+ const DEX_METAPOD ; 11
+ const DEX_BUTTERFREE ; 12
+ const DEX_WEEDLE ; 13
+ const DEX_KAKUNA ; 14
+ const DEX_BEEDRILL ; 15
+ const DEX_PIDGEY ; 16
+ const DEX_PIDGEOTTO ; 17
+ const DEX_PIDGEOT ; 18
+ const DEX_RATTATA ; 19
+ const DEX_RATICATE ; 20
+ const DEX_SPEAROW ; 21
+ const DEX_FEAROW ; 22
+ const DEX_EKANS ; 23
+ const DEX_ARBOK ; 24
+ const DEX_PIKACHU ; 25
+ const DEX_RAICHU ; 26
+ const DEX_SANDSHREW ; 27
+ const DEX_SANDSLASH ; 28
+ const DEX_NIDORAN_F ; 29
+ const DEX_NIDORINA ; 30
+ const DEX_NIDOQUEEN ; 31
+ const DEX_NIDORAN_M ; 32
+ const DEX_NIDORINO ; 33
+ const DEX_NIDOKING ; 34
+ const DEX_CLEFAIRY ; 35
+ const DEX_CLEFABLE ; 36
+ const DEX_VULPIX ; 37
+ const DEX_NINETALES ; 38
+ const DEX_JIGGLYPUFF ; 39
+ const DEX_WIGGLYTUFF ; 40
+ const DEX_ZUBAT ; 41
+ const DEX_GOLBAT ; 42
+ const DEX_ODDISH ; 43
+ const DEX_GLOOM ; 44
+ const DEX_VILEPLUME ; 45
+ const DEX_PARAS ; 46
+ const DEX_PARASECT ; 47
+ const DEX_VENONAT ; 48
+ const DEX_VENOMOTH ; 49
+ const DEX_DIGLETT ; 50
+ const DEX_DUGTRIO ; 51
+ const DEX_MEOWTH ; 52
+ const DEX_PERSIAN ; 53
+ const DEX_PSYDUCK ; 54
+ const DEX_GOLDUCK ; 55
+ const DEX_MANKEY ; 56
+ const DEX_PRIMEAPE ; 57
+ const DEX_GROWLITHE ; 58
+ const DEX_ARCANINE ; 59
+ const DEX_POLIWAG ; 60
+ const DEX_POLIWHIRL ; 61
+ const DEX_POLIWRATH ; 62
+ const DEX_ABRA ; 63
+ const DEX_KADABRA ; 64
+ const DEX_ALAKAZAM ; 65
+ const DEX_MACHOP ; 66
+ const DEX_MACHOKE ; 67
+ const DEX_MACHAMP ; 68
+ const DEX_BELLSPROUT ; 69
+ const DEX_WEEPINBELL ; 70
+ const DEX_VICTREEBEL ; 71
+ const DEX_TENTACOOL ; 72
+ const DEX_TENTACRUEL ; 73
+ const DEX_GEODUDE ; 74
+ const DEX_GRAVELER ; 75
+ const DEX_GOLEM ; 76
+ const DEX_PONYTA ; 77
+ const DEX_RAPIDASH ; 78
+ const DEX_SLOWPOKE ; 79
+ const DEX_SLOWBRO ; 80
+ const DEX_MAGNEMITE ; 81
+ const DEX_MAGNETON ; 82
+ const DEX_FARFETCH_D ; 83
+ const DEX_DODUO ; 84
+ const DEX_DODRIO ; 85
+ const DEX_SEEL ; 86
+ const DEX_DEWGONG ; 87
+ const DEX_GRIMER ; 88
+ const DEX_MUK ; 89
+ const DEX_SHELLDER ; 90
+ const DEX_CLOYSTER ; 91
+ const DEX_GASTLY ; 92
+ const DEX_HAUNTER ; 93
+ const DEX_GENGAR ; 94
+ const DEX_ONIX ; 95
+ const DEX_DROWZEE ; 96
+ const DEX_HYPNO ; 97
+ const DEX_KRABBY ; 98
+ const DEX_KINGLER ; 99
+ const DEX_VOLTORB ; 100
+ const DEX_ELECTRODE ; 101
+ const DEX_EXEGGCUTE ; 102
+ const DEX_EXEGGUTOR ; 103
+ const DEX_CUBONE ; 104
+ const DEX_MAROWAK ; 105
+ const DEX_HITMONLEE ; 106
+ const DEX_HITMONCHAN ; 107
+ const DEX_LICKITUNG ; 108
+ const DEX_KOFFING ; 109
+ const DEX_WEEZING ; 110
+ const DEX_RHYHORN ; 111
+ const DEX_RHYDON ; 112
+ const DEX_CHANSEY ; 113
+ const DEX_TANGELA ; 114
+ const DEX_KANGASKHAN ; 115
+ const DEX_HORSEA ; 116
+ const DEX_SEADRA ; 117
+ const DEX_GOLDEEN ; 118
+ const DEX_SEAKING ; 119
+ const DEX_STARYU ; 120
+ const DEX_STARMIE ; 121
+ const DEX_MR_MIME ; 122
+ const DEX_SCYTHER ; 123
+ const DEX_JYNX ; 124
+ const DEX_ELECTABUZZ ; 125
+ const DEX_MAGMAR ; 126
+ const DEX_PINSIR ; 127
+ const DEX_TAUROS ; 128
+ const DEX_MAGIKARP ; 129
+ const DEX_GYARADOS ; 130
+ const DEX_LAPRAS ; 131
+ const DEX_DITTO ; 132
+ const DEX_EEVEE ; 133
+ const DEX_VAPOREON ; 134
+ const DEX_JOLTEON ; 135
+ const DEX_FLAREON ; 136
+ const DEX_PORYGON ; 137
+ const DEX_OMANYTE ; 138
+ const DEX_OMASTAR ; 139
+ const DEX_KABUTO ; 140
+ const DEX_KABUTOPS ; 141
+ const DEX_AERODACTYL ; 142
+ const DEX_SNORLAX ; 143
+ const DEX_ARTICUNO ; 144
+ const DEX_ZAPDOS ; 145
+ const DEX_MOLTRES ; 146
+ const DEX_DRATINI ; 147
+ const DEX_DRAGONAIR ; 148
+ const DEX_DRAGONITE ; 149
+ const DEX_MEWTWO ; 150
+ const DEX_MEW ; 151
NUM_POKEMON EQU 151
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
index 2ed03338..255d601a 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,190 +1,192 @@
-RHYDON EQU $01
-KANGASKHAN EQU $02
-NIDORAN_M EQU $03
-CLEFAIRY EQU $04
-SPEAROW EQU $05
-VOLTORB EQU $06
-NIDOKING EQU $07
-SLOWBRO EQU $08
-IVYSAUR EQU $09
-EXEGGUTOR EQU $0A
-LICKITUNG EQU $0B
-EXEGGCUTE EQU $0C
-GRIMER EQU $0D
-GENGAR EQU $0E
-NIDORAN_F EQU $0F
-NIDOQUEEN EQU $10
-CUBONE EQU $11
-RHYHORN EQU $12
-LAPRAS EQU $13
-ARCANINE EQU $14
-MEW EQU $15
-GYARADOS EQU $16
-SHELLDER EQU $17
-TENTACOOL EQU $18
-GASTLY EQU $19
-SCYTHER EQU $1A
-STARYU EQU $1B
-BLASTOISE EQU $1C
-PINSIR EQU $1D
-TANGELA EQU $1E
-
-
-GROWLITHE EQU $21
-ONIX EQU $22
-FEAROW EQU $23
-PIDGEY EQU $24
-SLOWPOKE EQU $25
-KADABRA EQU $26
-GRAVELER EQU $27
-CHANSEY EQU $28
-MACHOKE EQU $29
-MR_MIME EQU $2A
-HITMONLEE EQU $2B
-HITMONCHAN EQU $2C
-ARBOK EQU $2D
-PARASECT EQU $2E
-PSYDUCK EQU $2F
-DROWZEE EQU $30
-GOLEM EQU $31
-
-MAGMAR EQU $33
-
-ELECTABUZZ EQU $35
-MAGNETON EQU $36
-KOFFING EQU $37
-
-MANKEY EQU $39
-SEEL EQU $3A
-DIGLETT EQU $3B
-TAUROS EQU $3C
-
-
-
-FARFETCH_D EQU $40
-VENONAT EQU $41
-DRAGONITE EQU $42
-
-
-
-DODUO EQU $46
-POLIWAG EQU $47
-JYNX EQU $48
-MOLTRES EQU $49
-ARTICUNO EQU $4A
-ZAPDOS EQU $4B
-DITTO EQU $4C
-MEOWTH EQU $4D
-KRABBY EQU $4E
-
-
-
-VULPIX EQU $52
-NINETALES EQU $53
-PIKACHU EQU $54
-RAICHU EQU $55
-
-
-DRATINI EQU $58
-DRAGONAIR EQU $59
-KABUTO EQU $5A
-KABUTOPS EQU $5B
-HORSEA EQU $5C
-SEADRA EQU $5D
-
-
-SANDSHREW EQU $60
-SANDSLASH EQU $61
-OMANYTE EQU $62
-OMASTAR EQU $63
-JIGGLYPUFF EQU $64
-WIGGLYTUFF EQU $65
-EEVEE EQU $66
-FLAREON EQU $67
-JOLTEON EQU $68
-VAPOREON EQU $69
-MACHOP EQU $6A
-ZUBAT EQU $6B
-EKANS EQU $6C
-PARAS EQU $6D
-POLIWHIRL EQU $6E
-POLIWRATH EQU $6F
-WEEDLE EQU $70
-KAKUNA EQU $71
-BEEDRILL EQU $72
-
-DODRIO EQU $74
-PRIMEAPE EQU $75
-DUGTRIO EQU $76
-VENOMOTH EQU $77
-DEWGONG EQU $78
-
-
-CATERPIE EQU $7B
-METAPOD EQU $7C
-BUTTERFREE EQU $7D
-MACHAMP EQU $7E
-
-GOLDUCK EQU $80
-HYPNO EQU $81
-GOLBAT EQU $82
-MEWTWO EQU $83
-SNORLAX EQU $84
-MAGIKARP EQU $85
-
-
-MUK EQU $88
-
-KINGLER EQU $8A
-CLOYSTER EQU $8B
-
-ELECTRODE EQU $8D
-CLEFABLE EQU $8E
-WEEZING EQU $8F
-PERSIAN EQU $90
-MAROWAK EQU $91
-
-HAUNTER EQU $93
-ABRA EQU $94
-ALAKAZAM EQU $95
-PIDGEOTTO EQU $96
-PIDGEOT EQU $97
-STARMIE EQU $98
-BULBASAUR EQU $99
-VENUSAUR EQU $9A
-TENTACRUEL EQU $9B
-
-GOLDEEN EQU $9D
-SEAKING EQU $9E
-
-
-
-
-PONYTA EQU $A3
-RAPIDASH EQU $A4
-RATTATA EQU $A5
-RATICATE EQU $A6
-NIDORINO EQU $A7
-NIDORINA EQU $A8
-GEODUDE EQU $A9
-PORYGON EQU $AA
-AERODACTYL EQU $AB
-
-MAGNEMITE EQU $AD
-
-
-CHARMANDER EQU $B0
-SQUIRTLE EQU $B1
-CHARMELEON EQU $B2
-WARTORTLE EQU $B3
-CHARIZARD EQU $B4
-
-FOSSIL_KABUTOPS EQU $B6
-FOSSIL_AERODACTYL EQU $B7
-MON_GHOST EQU $B8
-ODDISH EQU $B9
-GLOOM EQU $BA
-VILEPLUME EQU $BB
-BELLSPROUT EQU $BC
-WEEPINBELL EQU $BD
-VICTREEBEL EQU $BE
+const_value = 1
+
+ const RHYDON ; $01
+ const KANGASKHAN ; $02
+ const NIDORAN_M ; $03
+ const CLEFAIRY ; $04
+ const SPEAROW ; $05
+ const VOLTORB ; $06
+ const NIDOKING ; $07
+ const SLOWBRO ; $08
+ const IVYSAUR ; $09
+ const EXEGGUTOR ; $0A
+ const LICKITUNG ; $0B
+ const EXEGGCUTE ; $0C
+ const GRIMER ; $0D
+ const GENGAR ; $0E
+ const NIDORAN_F ; $0F
+ const NIDOQUEEN ; $10
+ const CUBONE ; $11
+ const RHYHORN ; $12
+ const LAPRAS ; $13
+ const ARCANINE ; $14
+ const MEW ; $15
+ const GYARADOS ; $16
+ const SHELLDER ; $17
+ const TENTACOOL ; $18
+ const GASTLY ; $19
+ const SCYTHER ; $1A
+ const STARYU ; $1B
+ const BLASTOISE ; $1C
+ const PINSIR ; $1D
+ const TANGELA ; $1E
+ const MISSINGNO_1F ; $1F
+ const MISSINGNO_20 ; $20
+ const GROWLITHE ; $21
+ const ONIX ; $22
+ const FEAROW ; $23
+ const PIDGEY ; $24
+ const SLOWPOKE ; $25
+ const KADABRA ; $26
+ const GRAVELER ; $27
+ const CHANSEY ; $28
+ const MACHOKE ; $29
+ const MR_MIME ; $2A
+ const HITMONLEE ; $2B
+ const HITMONCHAN ; $2C
+ const ARBOK ; $2D
+ const PARASECT ; $2E
+ const PSYDUCK ; $2F
+ const DROWZEE ; $30
+ const GOLEM ; $31
+ const MISSINGNO_32 ; $32
+ const MAGMAR ; $33
+ const MISSINGNO_34 ; $34
+ const ELECTABUZZ ; $35
+ const MAGNETON ; $36
+ const KOFFING ; $37
+ const MISSINGNO_38 ; $38
+ const MANKEY ; $39
+ const SEEL ; $3A
+ const DIGLETT ; $3B
+ const TAUROS ; $3C
+ const MISSINGNO_3D ; $3D
+ const MISSINGNO_3E ; $3E
+ const MISSINGNO_3F ; $3F
+ const FARFETCH_D ; $40
+ const VENONAT ; $41
+ const DRAGONITE ; $42
+ const MISSINGNO_43 ; $43
+ const MISSINGNO_44 ; $44
+ const MISSINGNO_45 ; $45
+ const DODUO ; $46
+ const POLIWAG ; $47
+ const JYNX ; $48
+ const MOLTRES ; $49
+ const ARTICUNO ; $4A
+ const ZAPDOS ; $4B
+ const DITTO ; $4C
+ const MEOWTH ; $4D
+ const KRABBY ; $4E
+ const MISSINGNO_4F ; $4F
+ const MISSINGNO_50 ; $50
+ const MISSINGNO_51 ; $51
+ const VULPIX ; $52
+ const NINETALES ; $53
+ const PIKACHU ; $54
+ const RAICHU ; $55
+ const MISSINGNO_56 ; $56
+ const MISSINGNO_57 ; $57
+ const DRATINI ; $58
+ const DRAGONAIR ; $59
+ const KABUTO ; $5A
+ const KABUTOPS ; $5B
+ const HORSEA ; $5C
+ const SEADRA ; $5D
+ const MISSINGNO_5E ; $5E
+ const MISSINGNO_5F ; $5F
+ const SANDSHREW ; $60
+ const SANDSLASH ; $61
+ const OMANYTE ; $62
+ const OMASTAR ; $63
+ const JIGGLYPUFF ; $64
+ const WIGGLYTUFF ; $65
+ const EEVEE ; $66
+ const FLAREON ; $67
+ const JOLTEON ; $68
+ const VAPOREON ; $69
+ const MACHOP ; $6A
+ const ZUBAT ; $6B
+ const EKANS ; $6C
+ const PARAS ; $6D
+ const POLIWHIRL ; $6E
+ const POLIWRATH ; $6F
+ const WEEDLE ; $70
+ const KAKUNA ; $71
+ const BEEDRILL ; $72
+ const MISSINGNO_73 ; $73
+ const DODRIO ; $74
+ const PRIMEAPE ; $75
+ const DUGTRIO ; $76
+ const VENOMOTH ; $77
+ const DEWGONG ; $78
+ const MISSINGNO_79 ; $79
+ const MISSINGNO_7A ; $7A
+ const CATERPIE ; $7B
+ const METAPOD ; $7C
+ const BUTTERFREE ; $7D
+ const MACHAMP ; $7E
+ const MISSINGNO_7F ; $7F
+ const GOLDUCK ; $80
+ const HYPNO ; $81
+ const GOLBAT ; $82
+ const MEWTWO ; $83
+ const SNORLAX ; $84
+ const MAGIKARP ; $85
+ const MISSINGNO_86 ; $86
+ const MISSINGNO_87 ; $87
+ const MUK ; $88
+ const MISSINGNO_8A ; $8A
+ const KINGLER ; $8A
+ const CLOYSTER ; $8B
+ const MISSINGNO_8C ; $8C
+ const ELECTRODE ; $8D
+ const CLEFABLE ; $8E
+ const WEEZING ; $8F
+ const PERSIAN ; $90
+ const MAROWAK ; $91
+ const MISSINGNO_92 ; $92
+ const HAUNTER ; $93
+ const ABRA ; $94
+ const ALAKAZAM ; $95
+ const PIDGEOTTO ; $96
+ const PIDGEOT ; $97
+ const STARMIE ; $98
+ const BULBASAUR ; $99
+ const VENUSAUR ; $9A
+ const TENTACRUEL ; $9B
+ const MISSINGNO_9C ; $9C
+ const GOLDEEN ; $9D
+ const SEAKING ; $9E
+ const MISSINGNO_9F ; $9F
+ const MISSINGNO_A0 ; $A0
+ const MISSINGNO_A1 ; $A1
+ const MISSINGNO_A2 ; $A2
+ const PONYTA ; $A3
+ const RAPIDASH ; $A4
+ const RATTATA ; $A5
+ const RATICATE ; $A6
+ const NIDORINO ; $A7
+ const NIDORINA ; $A8
+ const GEODUDE ; $A9
+ const PORYGON ; $AA
+ const AERODACTYL ; $AB
+ const MISSINGNO_AC ; $AC
+ const MAGNEMITE ; $AD
+ const MISSINGNO_AE ; $AE
+ const MISSINGNO_AF ; $AF
+ const CHARMANDER ; $B0
+ const SQUIRTLE ; $B1
+ const CHARMELEON ; $B2
+ const WARTORTLE ; $B3
+ const CHARIZARD ; $B4
+ const MISSINGNO_B5 ; $B5
+ const FOSSIL_KABUTOPS ; $B6
+ const FOSSIL_AERODACTYL ; $B7
+ const MON_GHOST ; $B8
+ const ODDISH ; $B9
+ const GLOOM ; $BA
+ const VILEPLUME ; $BB
+ const BELLSPROUT ; $BC
+ const WEEPINBELL ; $BD
+ const VICTREEBEL ; $BE
diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm
index b5290d29..77224bc1 100755
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -1,88 +1,92 @@
; pokemon's overworld sprites
-SPRITE_MON EQU $0
-SPRITE_BALL_M EQU $1
-SPRITE_HELIX EQU $2
-SPRITE_FAIRY EQU $3
-SPRITE_BIRD_M EQU $4
-SPRITE_WATER EQU $5
-SPRITE_BUG EQU $6
-SPRITE_GRASS EQU $7
-SPRITE_SNAKE EQU $8
-SPRITE_QUADRUPED EQU $9
+const_value = 0
+
+ const SPRITE_MON ; $0
+ const SPRITE_BALL_M ; $1
+ const SPRITE_HELIX ; $2
+ const SPRITE_FAIRY ; $3
+ const SPRITE_BIRD_M ; $4
+ const SPRITE_WATER ; $5
+ const SPRITE_BUG ; $6
+ const SPRITE_GRASS ; $7
+ const SPRITE_SNAKE ; $8
+ const SPRITE_QUADRUPED ; $9
; overworld sprites
-SPRITE_RED EQU $01
-SPRITE_BLUE EQU $02
-SPRITE_OAK EQU $03
-SPRITE_BUG_CATCHER EQU $04
-SPRITE_SLOWBRO EQU $05
-SPRITE_LASS EQU $06
-SPRITE_BLACK_HAIR_BOY_1 EQU $07
-SPRITE_LITTLE_GIRL EQU $08
-SPRITE_BIRD EQU $09
-SPRITE_FAT_BALD_GUY EQU $0a
-SPRITE_GAMBLER EQU $0b
-SPRITE_BLACK_HAIR_BOY_2 EQU $0c
-SPRITE_GIRL EQU $0d
-SPRITE_HIKER EQU $0e
-SPRITE_FOULARD_WOMAN EQU $0f
-SPRITE_GENTLEMAN EQU $10
-SPRITE_DAISY EQU $11
-SPRITE_BIKER EQU $12
-SPRITE_SAILOR EQU $13
-SPRITE_COOK EQU $14
-SPRITE_BIKE_SHOP_GUY EQU $15
-SPRITE_MR_FUJI EQU $16
-SPRITE_GIOVANNI EQU $17
-SPRITE_ROCKET EQU $18
-SPRITE_MEDIUM EQU $19
-SPRITE_WAITER EQU $1a
-SPRITE_ERIKA EQU $1b
-SPRITE_MOM_GEISHA EQU $1c
-SPRITE_BRUNETTE_GIRL EQU $1d
-SPRITE_LANCE EQU $1e
-SPRITE_OAK_SCIENTIST_AIDE EQU $1f
-SPRITE_OAK_AIDE EQU $20
-SPRITE_ROCKER EQU $21
-SPRITE_SWIMMER EQU $22
-SPRITE_WHITE_PLAYER EQU $23
-SPRITE_GYM_HELPER EQU $24
-SPRITE_OLD_PERSON EQU $25
-SPRITE_MART_GUY EQU $26
-SPRITE_FISHER EQU $27
-SPRITE_OLD_MEDIUM_WOMAN EQU $28
-SPRITE_NURSE EQU $29
-SPRITE_CABLE_CLUB_WOMAN EQU $2a
-SPRITE_MR_MASTERBALL EQU $2b
-SPRITE_LAPRAS_GIVER EQU $2c
-SPRITE_WARDEN EQU $2d
-SPRITE_SS_CAPTAIN EQU $2e
-SPRITE_FISHER2 EQU $2f
-SPRITE_BLACKBELT EQU $30
-SPRITE_GUARD EQU $31
-;SPRITE_COP_GUARD EQU $32
-SPRITE_MOM EQU $33
-SPRITE_BALDING_GUY EQU $34
-SPRITE_YOUNG_BOY EQU $35
-SPRITE_GAMEBOY_KID EQU $36
-SPRITE_GAMEBOY_KID_COPY EQU $37
-SPRITE_CLEFAIRY EQU $38
-SPRITE_AGATHA EQU $39
-SPRITE_BRUNO EQU $3a
-SPRITE_LORELEI EQU $3b
-SPRITE_SEEL EQU $3c
-SPRITE_BALL EQU $3d
-SPRITE_OMANYTE EQU $3e
-SPRITE_BOULDER EQU $3f
-SPRITE_PAPER_SHEET EQU $40
-SPRITE_BOOK_MAP_DEX EQU $41
-SPRITE_CLIPBOARD EQU $42
-SPRITE_SNORLAX EQU $43
-SPRITE_OLD_AMBER_COPY EQU $44
-SPRITE_OLD_AMBER EQU $45
-SPRITE_LYING_OLD_MAN_UNUSED_1 EQU $46
-SPRITE_LYING_OLD_MAN_UNUSED_2 EQU $47
-SPRITE_LYING_OLD_MAN EQU $48
+const_value = 1
+
+ const SPRITE_RED ; $01
+ const SPRITE_BLUE ; $02
+ const SPRITE_OAK ; $03
+ const SPRITE_BUG_CATCHER ; $04
+ const SPRITE_SLOWBRO ; $05
+ const SPRITE_LASS ; $06
+ const SPRITE_BLACK_HAIR_BOY_1 ; $07
+ const SPRITE_LITTLE_GIRL ; $08
+ const SPRITE_BIRD ; $09
+ const SPRITE_FAT_BALD_GUY ; $0a
+ const SPRITE_GAMBLER ; $0b
+ const SPRITE_BLACK_HAIR_BOY_2 ; $0c
+ const SPRITE_GIRL ; $0d
+ const SPRITE_HIKER ; $0e
+ const SPRITE_FOULARD_WOMAN ; $0f
+ const SPRITE_GENTLEMAN ; $10
+ const SPRITE_DAISY ; $11
+ const SPRITE_BIKER ; $12
+ const SPRITE_SAILOR ; $13
+ const SPRITE_COOK ; $14
+ const SPRITE_BIKE_SHOP_GUY ; $15
+ const SPRITE_MR_FUJI ; $16
+ const SPRITE_GIOVANNI ; $17
+ const SPRITE_ROCKET ; $18
+ const SPRITE_MEDIUM ; $19
+ const SPRITE_WAITER ; $1a
+ const SPRITE_ERIKA ; $1b
+ const SPRITE_MOM_GEISHA ; $1c
+ const SPRITE_BRUNETTE_GIRL ; $1d
+ const SPRITE_LANCE ; $1e
+ const SPRITE_OAK_SCIENTIST_AIDE ; $1f
+ const SPRITE_OAK_AIDE ; $20
+ const SPRITE_ROCKER ; $21
+ const SPRITE_SWIMMER ; $22
+ const SPRITE_WHITE_PLAYER ; $23
+ const SPRITE_GYM_HELPER ; $24
+ const SPRITE_OLD_PERSON ; $25
+ const SPRITE_MART_GUY ; $26
+ const SPRITE_FISHER ; $27
+ const SPRITE_OLD_MEDIUM_WOMAN ; $28
+ const SPRITE_NURSE ; $29
+ const SPRITE_CABLE_CLUB_WOMAN ; $2a
+ const SPRITE_MR_MASTERBALL ; $2b
+ const SPRITE_LAPRAS_GIVER ; $2c
+ const SPRITE_WARDEN ; $2d
+ const SPRITE_SS_CAPTAIN ; $2e
+ const SPRITE_FISHER2 ; $2f
+ const SPRITE_BLACKBELT ; $30
+ const SPRITE_GUARD ; $31
+ const SPRITE_COP_GUARD ; $32
+ const SPRITE_MOM ; $33
+ const SPRITE_BALDING_GUY ; $34
+ const SPRITE_YOUNG_BOY ; $35
+ const SPRITE_GAMEBOY_KID ; $36
+ const SPRITE_GAMEBOY_KID_COPY ; $37
+ const SPRITE_CLEFAIRY ; $38
+ const SPRITE_AGATHA ; $39
+ const SPRITE_BRUNO ; $3a
+ const SPRITE_LORELEI ; $3b
+ const SPRITE_SEEL ; $3c
+ const SPRITE_BALL ; $3d
+ const SPRITE_OMANYTE ; $3e
+ const SPRITE_BOULDER ; $3f
+ const SPRITE_PAPER_SHEET ; $40
+ const SPRITE_BOOK_MAP_DEX ; $41
+ const SPRITE_CLIPBOARD ; $42
+ const SPRITE_SNORLAX ; $43
+ const SPRITE_OLD_AMBER_COPY ; $44
+ const SPRITE_OLD_AMBER ; $45
+ const SPRITE_LYING_OLD_MAN_UNUSED_1 ; $46
+ const SPRITE_LYING_OLD_MAN_UNUSED_2 ; $47
+ const SPRITE_LYING_OLD_MAN ; $48
SPRITE_JESSIE EQU $45
SPRITE_JAMES EQU $46
diff --git a/constants/status_constants.asm b/constants/status_constants.asm
index e19973a0..d9be6250 100755
--- a/constants/status_constants.asm
+++ b/constants/status_constants.asm
@@ -1,4 +1,4 @@
-; non-volatile statuses
+; non-volatile statuses
SLP EQU %111 ; sleep counter
PSN EQU 3
BRN EQU 4
@@ -13,7 +13,7 @@ Flinched EQU 3
ChargingUp EQU 4 ; e.g. Solar Beam, Fly
UsingTrappingMove EQU 5 ; e.g. Wrap
Invulnerable EQU 6 ; charging up Fly/Dig
-Confused EQU 7
+Confused EQU 7
; volatile statuses 2
UsingXAccuracy EQU 0
@@ -26,7 +26,7 @@ UsingRage EQU 6
Seeded EQU 7
; volatile statuses 3
-BadlyPoisoned EQU 0
+BadlyPoisoned EQU 0
HasLightScreenUp EQU 1
HasReflectUp EQU 2
Transformed EQU 3
diff --git a/constants/tilesets.asm b/constants/tilesets.asm
index 5d6698f5..12531145 100644
--- a/constants/tilesets.asm
+++ b/constants/tilesets.asm
@@ -1,25 +1,25 @@
-OVERWORLD EQU 0
-REDS_HOUSE_1 EQU 1
-MART EQU 2
-FOREST EQU 3
-REDS_HOUSE_2 EQU 4
-DOJO EQU 5
-POKECENTER EQU 6
-GYM EQU 7
-HOUSE EQU 8
-FOREST_GATE EQU 9
-MUSEUM EQU 10
-UNDERGROUND EQU 11
-GATE EQU 12
-SHIP EQU 13
-SHIP_PORT EQU 14
-CEMETERY EQU 15
-INTERIOR EQU 16
-CAVERN EQU 17
-LOBBY EQU 18
-MANSION EQU 19
-LAB EQU 20
-CLUB EQU 21
-FACILITY EQU 22
-PLATEAU EQU 23
-BEACH_HOUSE_TILESET EQU 24
+ const OVERWORLD ; 0
+ const REDS_HOUSE_1 ; 1
+ const MART ; 2
+ const FOREST ; 3
+ const REDS_HOUSE_2 ; 4
+ const DOJO ; 5
+ const POKECENTER ; 6
+ const GYM ; 7
+ const HOUSE ; 8
+ const FOREST_GATE ; 9
+ const MUSEUM ; 10
+ const UNDERGROUND ; 11
+ const GATE ; 12
+ const SHIP ; 13
+ const SHIP_PORT ; 14
+ const CEMETERY ; 15
+ const INTERIOR ; 16
+ const CAVERN ; 17
+ const LOBBY ; 18
+ const MANSION ; 19
+ const LAB ; 20
+ const CLUB ; 21
+ const FACILITY ; 22
+ const PLATEAU ; 23
+ const BEACH_HOUSE_TILESET ; 24
diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm
index f98352f9..0f6be1e8 100755
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -1,48 +1,55 @@
-; sometimes it's necessary to add $C8 to these values
-YOUNGSTER EQU $01
-BUG_CATCHER EQU $02
-LASS EQU $03
-SAILOR EQU $04
-JR__TRAINER_M EQU $05
-JR__TRAINER_F EQU $06
-POKEMANIAC EQU $07
-SUPER_NERD EQU $08
-HIKER EQU $09
-BIKER EQU $0A
-BURGLAR EQU $0B
-ENGINEER EQU $0C
-JUGGLER_X EQU $0D
-FISHER EQU $0E
-SWIMMER EQU $0F
-CUE_BALL EQU $10
-GAMBLER EQU $11
-BEAUTY EQU $12
-PSYCHIC_TR EQU $13
-ROCKER EQU $14
-JUGGLER EQU $15
-TAMER EQU $16
-BIRD_KEEPER EQU $17
-BLACKBELT EQU $18
-SONY1 EQU $19
-PROF_OAK EQU $1A
-CHIEF EQU $1B
-SCIENTIST EQU $1C
-GIOVANNI EQU $1D
-ROCKET EQU $1E
-COOLTRAINER_M EQU $1F
-COOLTRAINER_F EQU $20
-BRUNO EQU $21
-BROCK EQU $22
-MISTY EQU $23
-LT__SURGE EQU $24
-ERIKA EQU $25
-KOGA EQU $26
-BLAINE EQU $27
-SABRINA EQU $28
-GENTLEMAN EQU $29
-SONY2 EQU $2A
-SONY3 EQU $2B
-LORELEI EQU $2C
-CHANNELER EQU $2D
-AGATHA EQU $2E
-LANCE EQU $2F
+trainer_const: MACRO
+\1 EQU const_value
+OPP_\1 EQU const_value + 200
+const_value = const_value + 1
+ENDM
+
+const_value = 1
+
+ trainer_const YOUNGSTER ; $01
+ trainer_const BUG_CATCHER ; $02
+ trainer_const LASS ; $03
+ trainer_const SAILOR ; $04
+ trainer_const JR__TRAINER_M ; $05
+ trainer_const JR__TRAINER_F ; $06
+ trainer_const POKEMANIAC ; $07
+ trainer_const SUPER_NERD ; $08
+ trainer_const HIKER ; $09
+ trainer_const BIKER ; $0A
+ trainer_const BURGLAR ; $0B
+ trainer_const ENGINEER ; $0C
+ trainer_const JUGGLER_X ; $0D
+ trainer_const FISHER ; $0E
+ trainer_const SWIMMER ; $0F
+ trainer_const CUE_BALL ; $10
+ trainer_const GAMBLER ; $11
+ trainer_const BEAUTY ; $12
+ trainer_const PSYCHIC_TR ; $13
+ trainer_const ROCKER ; $14
+ trainer_const JUGGLER ; $15
+ trainer_const TAMER ; $16
+ trainer_const BIRD_KEEPER ; $17
+ trainer_const BLACKBELT ; $18
+ trainer_const SONY1 ; $19
+ trainer_const PROF_OAK ; $1A
+ trainer_const CHIEF ; $1B
+ trainer_const SCIENTIST ; $1C
+ trainer_const GIOVANNI ; $1D
+ trainer_const ROCKET ; $1E
+ trainer_const COOLTRAINER_M ; $1F
+ trainer_const COOLTRAINER_F ; $20
+ trainer_const BRUNO ; $21
+ trainer_const BROCK ; $22
+ trainer_const MISTY ; $23
+ trainer_const LT__SURGE ; $24
+ trainer_const ERIKA ; $25
+ trainer_const KOGA ; $26
+ trainer_const BLAINE ; $27
+ trainer_const SABRINA ; $28
+ trainer_const GENTLEMAN ; $29
+ trainer_const SONY2 ; $2A
+ trainer_const SONY3 ; $2B
+ trainer_const LORELEI ; $2C
+ trainer_const CHANNELER ; $2D
+ trainer_const AGATHA ; $2E
+ trainer_const LANCE ; $2F
diff --git a/data/animations.asm b/data/animations.asm
index a9d22e54..cf6dc150 100755
--- a/data/animations.asm
+++ b/data/animations.asm
@@ -296,7 +296,7 @@ WingAttackAnim: ; 7a277 (1e:6277)
WhirlwindAnim: ; 7a27b (1e:627b)
db $46,$11,$10
- db SE_SLIDE_ENEMY_MON_OUT, $FF
+ db SE_SLIDE_ENEMY_MON_OFF, $FF
db $FF
FlyAnim: ; 7a281 (1e:6281)
@@ -550,19 +550,19 @@ DrillPeckAnim: ; 7a3c8 (1e:63c8)
db $FF
SubmissionAnim: ; 7a3cc (1e:63cc)
- db SE_SLIDE_MON_OUT, $41
+ db SE_SLIDE_MON_OFF, $41
db $06,$FF,$01
db SE_SHOW_MON_PIC, $FF
db $FF
LowKickAnim: ; 7a3d4 (1e:63d4)
- db SE_SLIDE_MON_OUT, $42
+ db SE_SLIDE_MON_OFF, $42
db $46,$FF,$04
db SE_SHOW_MON_PIC, $FF
db $FF
CounterAnim: ; 7a3dc (1e:63dc)
- db SE_SLIDE_MON_OUT, $43
+ db SE_SLIDE_MON_OFF, $43
db $46,$FF,$04
db SE_SHOW_MON_PIC, $FF
db $FF
@@ -571,7 +571,7 @@ SeismicTossAnim: ; 7a3e4 (1e:63e4)
db SE_BLINK_ENEMY_MON, $FF
db $41,$8B,$4E
db SE_HIDE_ENEMY_MON_PIC, $FF
- db SE_SLIDE_MON_OUT, $FF
+ db SE_SLIDE_MON_OFF, $FF
db $42,$44,$4F
db SE_DELAY_ANIMATION_10, $FF
db SE_DELAY_ANIMATION_10, $FF
@@ -736,7 +736,7 @@ AgilityAnim: ; 7a4c3 (1e:64c3)
db $FF
QuickAttackAnim: ; 7a4c8 (1e:64c8)
- db SE_SLIDE_MON_OUT, $61
+ db SE_SLIDE_MON_OFF, $61
db $46,$FF,$04
db SE_SHOW_MON_PIC, $FF
db $FF
@@ -960,7 +960,7 @@ KinesisAnim: ; 7a5fa (1e:65fa)
db $FF
SoftboiledAnim: ; 7a5fe (1e:65fe)
- db SE_SLIDE_MON_HALF_LEFT, $48
+ db SE_SLIDE_MON_HALF_OFF, $48
db $08,$86,$4C
db SE_LIGHT_SCREEN_PALETTE, $FF
db SE_SPIRAL_BALLS_INWARD, $FF
@@ -1119,7 +1119,7 @@ SlashAnim: ; 7a6cd (1e:66cd)
db $FF
SubstituteAnim: ; 7a6d1 (1e:66d1)
- db SE_SLIDE_MON_OUT, $A3
+ db SE_SLIDE_MON_OFF, $A3
db $08,$FF,$47
db SE_SUBSTITUTE_MON, $FF
db $FF
diff --git a/data/baseStats/abra.asm b/data/baseStats/abra.asm
index 80ee9e06..bb5b15e5 100755
--- a/data/baseStats/abra.asm
+++ b/data/baseStats/abra.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11110000
-db %10000111
-db %00111000
-db %01000011
+ tmlearn 1,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 29,30,31,32
+ tmlearn 33,34,35,40
+ tmlearn 44,45,46
+ tmlearn 49,50,55
db 0 ; padding
diff --git a/data/baseStats/aerodactyl.asm b/data/baseStats/aerodactyl.asm
index 75067ad3..949d39dc 100755
--- a/data/baseStats/aerodactyl.asm
+++ b/data/baseStats/aerodactyl.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00101010
-db %01000011
-db %01001000
-db %11000000
-db %01100011
-db %00001100
-db %00001010
+ tmlearn 2,4,6
+ tmlearn 9,10,15
+ tmlearn 20,23
+ tmlearn 31,32
+ tmlearn 33,34,38,39
+ tmlearn 43,44
+ tmlearn 50,52
db 0 ; padding
diff --git a/data/baseStats/alakazam.asm b/data/baseStats/alakazam.asm
index d9a1abf3..69e39afc 100755
--- a/data/baseStats/alakazam.asm
+++ b/data/baseStats/alakazam.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11111000
-db %10000111
-db %00111000
-db %01000011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20
+ tmlearn 28,29,30,31,32
+ tmlearn 33,34,35,40
+ tmlearn 44,45,46
+ tmlearn 49,50,55
db 0 ; padding
diff --git a/data/baseStats/arbok.asm b/data/baseStats/arbok.asm
index bddcab5b..34a73933 100755
--- a/data/baseStats/arbok.asm
+++ b/data/baseStats/arbok.asm
@@ -19,11 +19,11 @@ db POISON_STING
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %01000011
-db %00011000
-db %11001110
-db %10000010
-db %10001000
-db %00100010
+ tmlearn 6,8
+ tmlearn 9,10,15
+ tmlearn 20,21
+ tmlearn 26,27,28,31,32
+ tmlearn 34,40
+ tmlearn 44,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/arcanine.asm b/data/baseStats/arcanine.asm
index 065edb6d..4d4e8f77 100755
--- a/data/baseStats/arcanine.asm
+++ b/data/baseStats/arcanine.asm
@@ -19,11 +19,11 @@ db LEER
db TAKE_DOWN
db 5 ; growth rate
; learnset
-db %10100000
-db %01000011
-db %01001000
-db %11101000
-db %11100011
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10,15
+ tmlearn 20,23
+ tmlearn 28,30,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/articuno.asm b/data/baseStats/articuno.asm
index 811bb884..31c328ed 100755
--- a/data/baseStats/articuno.asm
+++ b/data/baseStats/articuno.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00101010
-db %01111111
-db %00001000
-db %11000000
-db %01000011
-db %00001100
-db %00001010
+ tmlearn 2,4,6
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,39
+ tmlearn 43,44
+ tmlearn 50,52
db 0 ; padding
diff --git a/data/baseStats/beedrill.asm b/data/baseStats/beedrill.asm
index 9381a63a..b3c85f3d 100755
--- a/data/baseStats/beedrill.asm
+++ b/data/baseStats/beedrill.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00100100
-db %01000011
-db %00011000
-db %11000000
-db %11000011
-db %00001000
-db %00000110
+ tmlearn 3,6
+ tmlearn 9,10,15
+ tmlearn 20,21
+ tmlearn 31,32
+ tmlearn 33,34,39,40
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/bellsprout.asm b/data/baseStats/bellsprout.asm
index e8b7d97a..d6297826 100755
--- a/data/baseStats/bellsprout.asm
+++ b/data/baseStats/bellsprout.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %00100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6
+ tmlearn 9,10
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/blastoise.asm b/data/baseStats/blastoise.asm
index 1ab81327..e5ccd2db 100755
--- a/data/baseStats/blastoise.asm
+++ b/data/baseStats/blastoise.asm
@@ -19,11 +19,11 @@ db BUBBLE
db WATER_GUN
db 3 ; growth rate
; learnset
-db %10110001
-db %01111111
-db %00001111
-db %11001110
-db %10000011
-db %00001000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/bulbasaur.asm b/data/baseStats/bulbasaur.asm
index 5bf8a184..261b28ee 100755
--- a/data/baseStats/bulbasaur.asm
+++ b/data/baseStats/bulbasaur.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6,8
+ tmlearn 9,10
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/butterfree.asm b/data/baseStats/butterfree.asm
index ef1fbc11..f17e21fb 100755
--- a/data/baseStats/butterfree.asm
+++ b/data/baseStats/butterfree.asm
@@ -19,11 +19,12 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00101010
-db %01000011
-db %00111000
-db %11110000
-db %01000011
-db %00101000
-db %01000010
+ tmlearn 2,4,6
+ tmlearn 9,10,15
+ tmlearn 20,21,22
+ tmlearn 29,30,31,32
+ tmlearn 33,34,39
+ tmlearn 44,46
+ tmlearn 50,55
+ENDC
db 0 ; padding
diff --git a/data/baseStats/caterpie.asm b/data/baseStats/caterpie.asm
index 0dab990b..975f31a1 100755
--- a/data/baseStats/caterpie.asm
+++ b/data/baseStats/caterpie.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
db 0 ; padding
diff --git a/data/baseStats/chansey.asm b/data/baseStats/chansey.asm
index 248e3d6b..1dd96a9a 100755
--- a/data/baseStats/chansey.asm
+++ b/data/baseStats/chansey.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 4 ; growth rate
; learnset
-db %10110001
-db %01111111
-db %10101111
-db %11110001
-db %10110111
-db %00111001
-db %01100011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20,22,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,35,37,38,40
+ tmlearn 41,44,45,46
+ tmlearn 49,50,54,55
db 0 ; padding
diff --git a/data/baseStats/charizard.asm b/data/baseStats/charizard.asm
index 412c11e7..b4b908c8 100755
--- a/data/baseStats/charizard.asm
+++ b/data/baseStats/charizard.asm
@@ -19,11 +19,11 @@ db EMBER
db LEER
db 3 ; growth rate
; learnset
-db %10110101
-db %01000011
-db %01001111
-db %11001110
-db %11100011
-db %00001000
-db %00101110
+ tmlearn 1,3,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20,23
+ tmlearn 26,27,28,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50,51,52,54
db 0 ; padding
diff --git a/data/baseStats/charmander.asm b/data/baseStats/charmander.asm
index c9deed08..936befa4 100755
--- a/data/baseStats/charmander.asm
+++ b/data/baseStats/charmander.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10110101
-db %00000011
-db %01001111
-db %11001000
-db %11100011
-db %00001000
-db %00100110
+ tmlearn 1,3,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20,23
+ tmlearn 28,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50,51,54
db 0 ; padding
diff --git a/data/baseStats/charmeleon.asm b/data/baseStats/charmeleon.asm
index 6b2b9ba9..8e2675f0 100755
--- a/data/baseStats/charmeleon.asm
+++ b/data/baseStats/charmeleon.asm
@@ -19,11 +19,11 @@ db EMBER
db 0
db 3 ; growth rate
; learnset
-db %10110101
-db %00000011
-db %01001111
-db %11001000
-db %11100011
-db %00001000
-db %00100110
+ tmlearn 1,3,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20,23
+ tmlearn 28,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50,51,54
db 0 ; padding
diff --git a/data/baseStats/clefable.asm b/data/baseStats/clefable.asm
index 8fee3ec6..e26f1445 100755
--- a/data/baseStats/clefable.asm
+++ b/data/baseStats/clefable.asm
@@ -19,11 +19,11 @@ db MINIMIZE
db METRONOME
db 4 ; growth rate
; learnset
-db %10110001
-db %01111111
-db %10101111
-db %11110001
-db %10100111
-db %00111000
-db %01100011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20,22,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,35,38,40
+ tmlearn 44,45,46
+ tmlearn 49,50,54,55
db 0 ; padding
diff --git a/data/baseStats/clefairy.asm b/data/baseStats/clefairy.asm
index bea2ffec..cc47df10 100755
--- a/data/baseStats/clefairy.asm
+++ b/data/baseStats/clefairy.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 4 ; growth rate
; learnset
-db %10110001
-db %00111111
-db %10101111
-db %11110001
-db %10100111
-db %00111000
-db %01100011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 17,18,19,20,22,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,35,38,40
+ tmlearn 44,45,46
+ tmlearn 49,50,54,55
db 0 ; padding
diff --git a/data/baseStats/cloyster.asm b/data/baseStats/cloyster.asm
index d57b651a..aa09d48a 100755
--- a/data/baseStats/cloyster.asm
+++ b/data/baseStats/cloyster.asm
@@ -19,11 +19,11 @@ db CLAMP
db AURORA_BEAM
db 5 ; growth rate
; learnset
-db %00100000
-db %01111111
-db %00001000
-db %11100000
-db %01001011
-db %01001000
-db %00010011
+ tmlearn 6
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20
+ tmlearn 30,31,32
+ tmlearn 33,34,36,39
+ tmlearn 44,47
+ tmlearn 49,50,53
db 0 ; padding
diff --git a/data/baseStats/cubone.asm b/data/baseStats/cubone.asm
index 42bb717c..74584844 100755
--- a/data/baseStats/cubone.asm
+++ b/data/baseStats/cubone.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %00111111
-db %00001111
-db %11001110
-db %10100010
-db %00001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,38,40
+ tmlearn 44
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/dewgong.asm b/data/baseStats/dewgong.asm
index 5246189e..e7efc42b 100755
--- a/data/baseStats/dewgong.asm
+++ b/data/baseStats/dewgong.asm
@@ -19,11 +19,11 @@ db AURORA_BEAM
db 0
db 0 ; growth rate
; learnset
-db %11100000
-db %11111111
-db %00001000
-db %11000000
-db %10000010
-db %00001000
-db %00110010
+ tmlearn 6,7,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,40
+ tmlearn 44
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/diglett.asm b/data/baseStats/diglett.asm
index 7412f253..a66f9e34 100755
--- a/data/baseStats/diglett.asm
+++ b/data/baseStats/diglett.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00000011
-db %00001000
-db %11001110
-db %00000010
-db %10001000
-db %00000110
+ tmlearn 6,8
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 26,27,28,31,32
+ tmlearn 34
+ tmlearn 44,48
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/ditto.asm b/data/baseStats/ditto.asm
index 0a35bf55..88def477 100755
--- a/data/baseStats/ditto.asm
+++ b/data/baseStats/ditto.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
db 0 ; padding
diff --git a/data/baseStats/dodrio.asm b/data/baseStats/dodrio.asm
index b872ba47..025204fb 100755
--- a/data/baseStats/dodrio.asm
+++ b/data/baseStats/dodrio.asm
@@ -19,11 +19,11 @@ db FURY_ATTACK
db 0
db 0 ; growth rate
; learnset
-db %10101000
-db %01000011
-db %00001000
-db %11000000
-db %10000011
-db %00001100
-db %00001011
+ tmlearn 4,6,8
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,40
+ tmlearn 43,44
+ tmlearn 49,50,52
db 0 ; padding
diff --git a/data/baseStats/doduo.asm b/data/baseStats/doduo.asm
index 8070ba33..091152dd 100755
--- a/data/baseStats/doduo.asm
+++ b/data/baseStats/doduo.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10101000
-db %00000011
-db %00001000
-db %11000000
-db %10000011
-db %00001100
-db %00001011
+ tmlearn 4,6,8
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,40
+ tmlearn 43,44
+ tmlearn 49,50,52
db 0 ; padding
diff --git a/data/baseStats/dragonair.asm b/data/baseStats/dragonair.asm
index 89ff2eef..b8f0a606 100755
--- a/data/baseStats/dragonair.asm
+++ b/data/baseStats/dragonair.asm
@@ -19,11 +19,11 @@ db THUNDER_WAVE
db 0
db 5 ; growth rate
; learnset
-db %11100000
-db %00111111
-db %11001000
-db %11000001
-db %11100011
-db %00011000
-db %00010010
+ tmlearn 6,7,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20,23,24
+ tmlearn 25,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44,45
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/dragonite.asm b/data/baseStats/dragonite.asm
index 3699955b..1000e384 100755
--- a/data/baseStats/dragonite.asm
+++ b/data/baseStats/dragonite.asm
@@ -19,11 +19,11 @@ db THUNDER_WAVE
db AGILITY
db 5 ; growth rate
; learnset
-db %11100010
-db %01111111
-db %11001000
-db %11000001
-db %11100011
-db %00011000
-db %00110010
+ tmlearn 2,6,7,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20,23,24
+ tmlearn 25,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44,45
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/dratini.asm b/data/baseStats/dratini.asm
index 4837e4a5..37ed8f09 100755
--- a/data/baseStats/dratini.asm
+++ b/data/baseStats/dratini.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %10100000
-db %00111111
-db %11001000
-db %11000001
-db %11100011
-db %00011000
-db %00010010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20,23,24
+ tmlearn 25,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44,45
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/drowzee.asm b/data/baseStats/drowzee.asm
index dfa591bd..6397eeaf 100755
--- a/data/baseStats/drowzee.asm
+++ b/data/baseStats/drowzee.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11110000
-db %10000111
-db %00111010
-db %01000011
+ tmlearn 1,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 29,30,31,32
+ tmlearn 33,34,35,40
+ tmlearn 42,44,45,46
+ tmlearn 49,50,55
db 0 ; padding
diff --git a/data/baseStats/dugtrio.asm b/data/baseStats/dugtrio.asm
index c55e8bea..5892b020 100755
--- a/data/baseStats/dugtrio.asm
+++ b/data/baseStats/dugtrio.asm
@@ -19,11 +19,11 @@ db DIG
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %01000011
-db %00001000
-db %11001110
-db %00000010
-db %10001000
-db %00000110
+ tmlearn 6,8
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 26,27,28,31,32
+ tmlearn 34
+ tmlearn 44,48
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/eevee.asm b/data/baseStats/eevee.asm
index efeb785a..87c21acd 100755
--- a/data/baseStats/eevee.asm
+++ b/data/baseStats/eevee.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00000011
-db %00001000
-db %11000000
-db %11000011
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/ekans.asm b/data/baseStats/ekans.asm
index 79dbcbf5..26e75eeb 100755
--- a/data/baseStats/ekans.asm
+++ b/data/baseStats/ekans.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00000011
-db %00011000
-db %11001110
-db %10000010
-db %10001000
-db %00100010
+ tmlearn 6,8
+ tmlearn 9,10
+ tmlearn 20,21
+ tmlearn 26,27,28,31,32
+ tmlearn 34,40
+ tmlearn 44,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/electabuzz.asm b/data/baseStats/electabuzz.asm
index ac692436..5dc76c37 100755
--- a/data/baseStats/electabuzz.asm
+++ b/data/baseStats/electabuzz.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %01000011
-db %10001111
-db %11110001
-db %11000111
-db %00111000
-db %01100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,35,39,40
+ tmlearn 44,45,46
+ tmlearn 50,54,55
db 0 ; padding
diff --git a/data/baseStats/electrode.asm b/data/baseStats/electrode.asm
index 7ce93e8d..dc9da8d3 100755
--- a/data/baseStats/electrode.asm
+++ b/data/baseStats/electrode.asm
@@ -19,11 +19,11 @@ db SONICBOOM
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %01000001
-db %10001000
-db %11100001
-db %11001011
-db %01011000
-db %01000010
+ tmlearn 6
+ tmlearn 9,15
+ tmlearn 20,24
+ tmlearn 25,30,31,32
+ tmlearn 33,34,36,39,40
+ tmlearn 44,45,47
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/exeggcute.asm b/data/baseStats/exeggcute.asm
index ded05789..4c77db2a 100755
--- a/data/baseStats/exeggcute.asm
+++ b/data/baseStats/exeggcute.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00100000
-db %00000011
-db %00001000
-db %11110000
-db %00011011
-db %01101000
-db %00000010
+ tmlearn 6
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 29,30,31,32
+ tmlearn 33,34,36,37
+ tmlearn 44,46,47
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/exeggutor.asm b/data/baseStats/exeggutor.asm
index e28fb8c8..f67857e2 100755
--- a/data/baseStats/exeggutor.asm
+++ b/data/baseStats/exeggutor.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00100000
-db %01000011
-db %00111000
-db %11110000
-db %00011011
-db %01101000
-db %00100010
+ tmlearn 6
+ tmlearn 9,10,15
+ tmlearn 20,21,22
+ tmlearn 29,30,31,32
+ tmlearn 33,34,36,37
+ tmlearn 44,46,47
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/farfetchd.asm b/data/baseStats/farfetchd.asm
index 51648c46..015e9ff8 100755
--- a/data/baseStats/farfetchd.asm
+++ b/data/baseStats/farfetchd.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10101110
-db %00000011
-db %00001000
-db %11000000
-db %11000011
-db %00001000
-db %00001110
+ tmlearn 2,3,4,6,8
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,39,40
+ tmlearn 44
+ tmlearn 50,51,52
db 0 ; padding
diff --git a/data/baseStats/fearow.asm b/data/baseStats/fearow.asm
index 0a5d0c48..8d3059db 100755
--- a/data/baseStats/fearow.asm
+++ b/data/baseStats/fearow.asm
@@ -19,11 +19,11 @@ db LEER
db 0
db 0 ; growth rate
; learnset
-db %00101010
-db %01000011
-db %00001000
-db %11000000
-db %01000010
-db %00001100
-db %00001010
+ tmlearn 2,4,6
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,39
+ tmlearn 43,44
+ tmlearn 50,52
db 0 ; padding
diff --git a/data/baseStats/flareon.asm b/data/baseStats/flareon.asm
index 3910bdb1..a785cf27 100755
--- a/data/baseStats/flareon.asm
+++ b/data/baseStats/flareon.asm
@@ -19,11 +19,11 @@ db QUICK_ATTACK
db EMBER
db 0 ; growth rate
; learnset
-db %10100000
-db %01000011
-db %00001000
-db %11000000
-db %11100011
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/gastly.asm b/data/baseStats/gastly.asm
index ca6c2285..c6e69bd2 100755
--- a/data/baseStats/gastly.asm
+++ b/data/baseStats/gastly.asm
@@ -19,11 +19,11 @@ db NIGHT_SHADE
db 0
db 3 ; growth rate
; learnset
-db %00100000
-db %00000000
-db %10011000
-db %11010001
-db %00001010
-db %01101010
-db %00000010
+ tmlearn 6
+ tmlearn 0
+ tmlearn 20,21,24
+ tmlearn 25,29,31,32
+ tmlearn 34,36
+ tmlearn 42,44,46,47
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/gengar.asm b/data/baseStats/gengar.asm
index a5881476..910903d0 100755
--- a/data/baseStats/gengar.asm
+++ b/data/baseStats/gengar.asm
@@ -19,11 +19,11 @@ db NIGHT_SHADE
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %01000011
-db %10011111
-db %11010001
-db %10001110
-db %01101010
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20,21,24
+ tmlearn 25,29,31,32
+ tmlearn 34,35,36,40
+ tmlearn 42,44,46,47
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/geodude.asm b/data/baseStats/geodude.asm
index 52d3553d..e185e3c0 100755
--- a/data/baseStats/geodude.asm
+++ b/data/baseStats/geodude.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10100001
-db %00000011
-db %00001111
-db %11001110
-db %00101110
-db %11001000
-db %00100010
+ tmlearn 1,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,35,36,38
+ tmlearn 44,47,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/gloom.asm b/data/baseStats/gloom.asm
index e2c854d4..efee0dae 100755
--- a/data/baseStats/gloom.asm
+++ b/data/baseStats/gloom.asm
@@ -19,11 +19,11 @@ db STUN_SPORE
db 0
db 3 ; growth rate
; learnset
-db %00100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6
+ tmlearn 9,10
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/golbat.asm b/data/baseStats/golbat.asm
index d89dcb1e..e6a22f70 100755
--- a/data/baseStats/golbat.asm
+++ b/data/baseStats/golbat.asm
@@ -19,11 +19,11 @@ db BITE
db 0
db 0 ; growth rate
; learnset
-db %00101010
-db %01000011
-db %00011000
-db %11000000
-db %01000010
-db %00001000
-db %00000010
+ tmlearn 2,4,6
+ tmlearn 9,10,15
+ tmlearn 20,21
+ tmlearn 31,32
+ tmlearn 34,39
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/goldeen.asm b/data/baseStats/goldeen.asm
index 17afd3c2..36cf0d96 100755
--- a/data/baseStats/goldeen.asm
+++ b/data/baseStats/goldeen.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %01100000
-db %00111111
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00010010
+ tmlearn 6,7
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/golduck.asm b/data/baseStats/golduck.asm
index f3797f73..e063ae47 100755
--- a/data/baseStats/golduck.asm
+++ b/data/baseStats/golduck.asm
@@ -19,11 +19,11 @@ db DISABLE
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %11111111
-db %00001111
-db %11001000
-db %11000010
-db %00001000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 17,18,19,20
+ tmlearn 28,31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/golem.asm b/data/baseStats/golem.asm
index deebb1d1..1308bc78 100755
--- a/data/baseStats/golem.asm
+++ b/data/baseStats/golem.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11001110
-db %00101110
-db %11001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,35,36,38
+ tmlearn 44,47,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/graveler.asm b/data/baseStats/graveler.asm
index 586afc2c..8cc740dd 100755
--- a/data/baseStats/graveler.asm
+++ b/data/baseStats/graveler.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10100001
-db %00000011
-db %00001111
-db %11001110
-db %00101110
-db %11001000
-db %00100010
+ tmlearn 1,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,35,36,38
+ tmlearn 44,47,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/grimer.asm b/data/baseStats/grimer.asm
index dd17fb05..55aedc95 100755
--- a/data/baseStats/grimer.asm
+++ b/data/baseStats/grimer.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00000000
-db %10011000
-db %11000001
-db %00101010
-db %01001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 0
+ tmlearn 20,21,24
+ tmlearn 25,31,32
+ tmlearn 34,36,38
+ tmlearn 44,47
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/growlithe.asm b/data/baseStats/growlithe.asm
index ec48b605..cc4d1ff7 100755
--- a/data/baseStats/growlithe.asm
+++ b/data/baseStats/growlithe.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %10100000
-db %00000011
-db %01001000
-db %11001000
-db %11100011
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10
+ tmlearn 20,23
+ tmlearn 28,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/gyarados.asm b/data/baseStats/gyarados.asm
index 38856446..fde735ee 100755
--- a/data/baseStats/gyarados.asm
+++ b/data/baseStats/gyarados.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %10100000
-db %01111111
-db %11001000
-db %11000001
-db %10100011
-db %00001000
-db %00110010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20,23,24
+ tmlearn 25,31,32
+ tmlearn 33,34,38,40
+ tmlearn 44
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/haunter.asm b/data/baseStats/haunter.asm
index 6ac7db99..a530108a 100755
--- a/data/baseStats/haunter.asm
+++ b/data/baseStats/haunter.asm
@@ -19,11 +19,11 @@ db NIGHT_SHADE
db 0
db 3 ; growth rate
; learnset
-db %00100000
-db %00000000
-db %10011000
-db %11010001
-db %00001010
-db %01101010
-db %00000010
+ tmlearn 6
+ tmlearn 0
+ tmlearn 20,21,24
+ tmlearn 25,29,31,32
+ tmlearn 34,36
+ tmlearn 42,44,46,47
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/hitmonchan.asm b/data/baseStats/hitmonchan.asm
index 9cb0d566..4a717248 100755
--- a/data/baseStats/hitmonchan.asm
+++ b/data/baseStats/hitmonchan.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11000000
-db %11000110
-db %00001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 31,32
+ tmlearn 34,35,39,40
+ tmlearn 44
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/hitmonlee.asm b/data/baseStats/hitmonlee.asm
index 126f528b..e25bb725 100755
--- a/data/baseStats/hitmonlee.asm
+++ b/data/baseStats/hitmonlee.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11000000
-db %11000110
-db %00001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 31,32
+ tmlearn 34,35,39,40
+ tmlearn 44
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/horsea.asm b/data/baseStats/horsea.asm
index f59bee0c..b754f425 100755
--- a/data/baseStats/horsea.asm
+++ b/data/baseStats/horsea.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %00111111
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00010010
+ tmlearn 6
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/hypno.asm b/data/baseStats/hypno.asm
index 022e3134..3ba1ad30 100755
--- a/data/baseStats/hypno.asm
+++ b/data/baseStats/hypno.asm
@@ -19,11 +19,11 @@ db DISABLE
db CONFUSION
db 0 ; growth rate
; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11110000
-db %10000111
-db %00111010
-db %01000011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20
+ tmlearn 29,30,31,32
+ tmlearn 33,34,35,40
+ tmlearn 42,44,45,46
+ tmlearn 49,50,55
db 0 ; padding
diff --git a/data/baseStats/ivysaur.asm b/data/baseStats/ivysaur.asm
index 78aec210..9672935e 100755
--- a/data/baseStats/ivysaur.asm
+++ b/data/baseStats/ivysaur.asm
@@ -19,11 +19,11 @@ db LEECH_SEED
db 0
db 3 ; growth rate
; learnset
-db %10100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6,8
+ tmlearn 9,10
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/jigglypuff.asm b/data/baseStats/jigglypuff.asm
index 0252880f..5111e9c8 100755
--- a/data/baseStats/jigglypuff.asm
+++ b/data/baseStats/jigglypuff.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 4 ; growth rate
; learnset
-db %10110001
-db %00111111
-db %10101111
-db %11110001
-db %10100011
-db %00111000
-db %01100011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 17,18,19,20,22,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,38,40
+ tmlearn 44,45,46
+ tmlearn 49,50,54,55
db 0 ; padding
diff --git a/data/baseStats/jolteon.asm b/data/baseStats/jolteon.asm
index 3a64bf09..e753bf97 100755
--- a/data/baseStats/jolteon.asm
+++ b/data/baseStats/jolteon.asm
@@ -19,11 +19,11 @@ db QUICK_ATTACK
db THUNDERSHOCK
db 0 ; growth rate
; learnset
-db %10100000
-db %01000011
-db %10001000
-db %11000001
-db %11000011
-db %00011000
-db %01000010
+ tmlearn 6,8
+ tmlearn 9,10,15
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 33,34,39,40
+ tmlearn 44,45
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/jynx.asm b/data/baseStats/jynx.asm
index 6299f545..82778775 100755
--- a/data/baseStats/jynx.asm
+++ b/data/baseStats/jynx.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %01111111
-db %00001111
-db %11110000
-db %10000111
-db %00101000
-db %00000010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20
+ tmlearn 29,30,31,32
+ tmlearn 33,34,35,40
+ tmlearn 44,46
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/kabuto.asm b/data/baseStats/kabuto.asm
index 8a9899c7..1fde7156 100755
--- a/data/baseStats/kabuto.asm
+++ b/data/baseStats/kabuto.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00111111
-db %00001000
-db %11000000
-db %00000011
-db %00001000
-db %00010010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/kabutops.asm b/data/baseStats/kabutops.asm
index 7c80a8c0..170fee9b 100755
--- a/data/baseStats/kabutops.asm
+++ b/data/baseStats/kabutops.asm
@@ -19,11 +19,11 @@ db ABSORB
db 0
db 0 ; growth rate
; learnset
-db %10110110
-db %01111111
-db %00001101
-db %11000000
-db %10000011
-db %00001000
-db %00010010
+ tmlearn 2,3,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,19,20
+ tmlearn 31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/kadabra.asm b/data/baseStats/kadabra.asm
index 8d3c855c..12387f7f 100755
--- a/data/baseStats/kadabra.asm
+++ b/data/baseStats/kadabra.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11111000
-db %10000111
-db %00111000
-db %01000011
+ tmlearn 1,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 28,29,30,31,32
+ tmlearn 33,34,35,40
+ tmlearn 44,45,46
+ tmlearn 49,50,55
db 0 ; padding
diff --git a/data/baseStats/kakuna.asm b/data/baseStats/kakuna.asm
index 62e9c225..4ee90925 100755
--- a/data/baseStats/kakuna.asm
+++ b/data/baseStats/kakuna.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
db 0 ; padding
diff --git a/data/baseStats/kangaskhan.asm b/data/baseStats/kangaskhan.asm
index 3d30b78a..a17cb653 100755
--- a/data/baseStats/kangaskhan.asm
+++ b/data/baseStats/kangaskhan.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %01111111
-db %10001111
-db %11000111
-db %10100010
-db %10001000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20,24
+ tmlearn 25,26,27,31,32
+ tmlearn 34,38,40
+ tmlearn 44,48
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/kingler.asm b/data/baseStats/kingler.asm
index 8a5b0f98..7604bf80 100755
--- a/data/baseStats/kingler.asm
+++ b/data/baseStats/kingler.asm
@@ -19,11 +19,11 @@ db VICEGRIP
db 0
db 0 ; growth rate
; learnset
-db %10100100
-db %01111111
-db %00001000
-db %11000000
-db %00000010
-db %00001000
-db %00110110
+ tmlearn 3,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34
+ tmlearn 44
+ tmlearn 50,51,53,54
db 0 ; padding
diff --git a/data/baseStats/koffing.asm b/data/baseStats/koffing.asm
index d50e5bcf..24f47d17 100755
--- a/data/baseStats/koffing.asm
+++ b/data/baseStats/koffing.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %00000000
-db %10001000
-db %11000001
-db %00101010
-db %01001000
-db %00000010
+ tmlearn 6
+ tmlearn 0
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 34,36,38
+ tmlearn 44,47
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/krabby.asm b/data/baseStats/krabby.asm
index 37bbaa0b..3d901041 100755
--- a/data/baseStats/krabby.asm
+++ b/data/baseStats/krabby.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100100
-db %00111111
-db %00001000
-db %11000000
-db %00000010
-db %00001000
-db %00110110
+ tmlearn 3,6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34
+ tmlearn 44
+ tmlearn 50,51,53,54
db 0 ; padding
diff --git a/data/baseStats/lapras.asm b/data/baseStats/lapras.asm
index cd4ea5b1..71555c5e 100755
--- a/data/baseStats/lapras.asm
+++ b/data/baseStats/lapras.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %11100000
-db %01111111
-db %11101000
-db %11010001
-db %10000011
-db %00101000
-db %00110010
+ tmlearn 6,7,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20,22,23,24
+ tmlearn 25,29,31,32
+ tmlearn 33,34,40
+ tmlearn 44,46
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/lickitung.asm b/data/baseStats/lickitung.asm
index 8ada934e..eec9d2f3 100755
--- a/data/baseStats/lickitung.asm
+++ b/data/baseStats/lickitung.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110101
-db %01111111
-db %10001111
-db %11000111
-db %10100010
-db %00001000
-db %00110110
+ tmlearn 1,3,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20,24
+ tmlearn 25,26,27,31,32
+ tmlearn 34,38,40
+ tmlearn 44
+ tmlearn 50,51,53,54
db 0 ; padding
diff --git a/data/baseStats/machamp.asm b/data/baseStats/machamp.asm
index 1c10c96e..c9ca26dd 100755
--- a/data/baseStats/machamp.asm
+++ b/data/baseStats/machamp.asm
@@ -19,11 +19,11 @@ db LEER
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11001110
-db %10100110
-db %10001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,35,38,40
+ tmlearn 44,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/machoke.asm b/data/baseStats/machoke.asm
index 7b491641..6e2a977e 100755
--- a/data/baseStats/machoke.asm
+++ b/data/baseStats/machoke.asm
@@ -19,11 +19,11 @@ db LEER
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11001110
-db %10100110
-db %10001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,35,38,40
+ tmlearn 44,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/machop.asm b/data/baseStats/machop.asm
index c951163f..6e9f5ca0 100755
--- a/data/baseStats/machop.asm
+++ b/data/baseStats/machop.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %00000011
-db %00001111
-db %11001110
-db %10100110
-db %10001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,35,38,40
+ tmlearn 44,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/magikarp.asm b/data/baseStats/magikarp.asm
index 606bf755..95f72547 100755
--- a/data/baseStats/magikarp.asm
+++ b/data/baseStats/magikarp.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
db 0 ; padding
diff --git a/data/baseStats/magmar.asm b/data/baseStats/magmar.asm
index a360fe9d..781c9edc 100755
--- a/data/baseStats/magmar.asm
+++ b/data/baseStats/magmar.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %01000011
-db %00001111
-db %11110000
-db %10100110
-db %00101000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20
+ tmlearn 29,30,31,32
+ tmlearn 34,35,38,40
+ tmlearn 44,46
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/magnemite.asm b/data/baseStats/magnemite.asm
index 166e2fb0..79f84923 100755
--- a/data/baseStats/magnemite.asm
+++ b/data/baseStats/magnemite.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %00000011
-db %10001000
-db %11100001
-db %01000011
-db %00011000
-db %01000010
+ tmlearn 6
+ tmlearn 9,10
+ tmlearn 20,24
+ tmlearn 25,30,31,32
+ tmlearn 33,34,39
+ tmlearn 44,45
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/magneton.asm b/data/baseStats/magneton.asm
index 92ae9760..c8606619 100755
--- a/data/baseStats/magneton.asm
+++ b/data/baseStats/magneton.asm
@@ -19,11 +19,11 @@ db THUNDERSHOCK
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %01000011
-db %10001000
-db %11100001
-db %01000011
-db %00011000
-db %01000010
+ tmlearn 6
+ tmlearn 9,10,15
+ tmlearn 20,24
+ tmlearn 25,30,31,32
+ tmlearn 33,34,39
+ tmlearn 44,45
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/mankey.asm b/data/baseStats/mankey.asm
index 13e77c5c..759fe599 100755
--- a/data/baseStats/mankey.asm
+++ b/data/baseStats/mankey.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %10000011
-db %10001111
-db %11001001
-db %11000110
-db %10001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,16
+ tmlearn 17,18,19,20,24
+ tmlearn 25,28,31,32
+ tmlearn 34,35,39,40
+ tmlearn 44,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/marowak.asm b/data/baseStats/marowak.asm
index 35e3f542..5ee80e94 100755
--- a/data/baseStats/marowak.asm
+++ b/data/baseStats/marowak.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %01111111
-db %00001111
-db %11001110
-db %10100010
-db %00001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,38,40
+ tmlearn 44
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/meowth.asm b/data/baseStats/meowth.asm
index dc404d20..14f82ca4 100755
--- a/data/baseStats/meowth.asm
+++ b/data/baseStats/meowth.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %10001111
-db %10001000
-db %11000001
-db %11000010
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,16
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/metapod.asm b/data/baseStats/metapod.asm
index 71a2be28..981bbbfb 100755
--- a/data/baseStats/metapod.asm
+++ b/data/baseStats/metapod.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
db 0 ; padding
diff --git a/data/baseStats/mew.asm b/data/baseStats/mew.asm
index 16634430..1af20fa4 100755
--- a/data/baseStats/mew.asm
+++ b/data/baseStats/mew.asm
@@ -18,12 +18,12 @@ db 0
db 0
db 0
db 3 ; growth rate
-; include learnset directly
-db %11111111
-db %11111111
-db %11111111
-db %11111111
-db %11111111
-db %11111111
-db %11111111
+; learnset
+ tmlearn 1,2,3,4,5,6,7,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 17,18,19,20,21,22,23,24
+ tmlearn 25,26,27,28,29,30,31,32
+ tmlearn 33,34,35,36,37,38,39,40
+ tmlearn 41,42,43,44,45,46,47,48
+ tmlearn 49,50,51,52,53,54,55,56
db %11111111 ; usually spacing
diff --git a/data/baseStats/mewtwo.asm b/data/baseStats/mewtwo.asm
index 29b0b61b..95127645 100755
--- a/data/baseStats/mewtwo.asm
+++ b/data/baseStats/mewtwo.asm
@@ -19,11 +19,11 @@ db SWIFT
db PSYCHIC_M
db 5 ; growth rate
; learnset
-db %10110001
-db %11111111
-db %10101111
-db %11110001
-db %10101111
-db %00111000
-db %01100011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 17,18,19,20,22,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,35,36,38,40
+ tmlearn 44,45,46
+ tmlearn 49,50,54,55
db 0 ; padding
diff --git a/data/baseStats/moltres.asm b/data/baseStats/moltres.asm
index eeeb5367..646d9a49 100755
--- a/data/baseStats/moltres.asm
+++ b/data/baseStats/moltres.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00101010
-db %01000011
-db %00001000
-db %11000000
-db %01100011
-db %00001100
-db %00001010
+ tmlearn 2,4,6
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,38,39
+ tmlearn 43,44
+ tmlearn 50,52
db 0 ; padding
diff --git a/data/baseStats/mrmime.asm b/data/baseStats/mrmime.asm
index 93a6fcf7..3182eca0 100755
--- a/data/baseStats/mrmime.asm
+++ b/data/baseStats/mrmime.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %01000011
-db %10101111
-db %11110001
-db %10000111
-db %00111000
-db %01000010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15
+ tmlearn 17,18,19,20,22,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,35,40
+ tmlearn 44,45,46
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/muk.asm b/data/baseStats/muk.asm
index 465c6012..7ef711c3 100755
--- a/data/baseStats/muk.asm
+++ b/data/baseStats/muk.asm
@@ -19,11 +19,11 @@ db POISON_GAS
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %01000000
-db %10011000
-db %11000001
-db %00101010
-db %01001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 15
+ tmlearn 20,21,24
+ tmlearn 25,31,32
+ tmlearn 34,36,38
+ tmlearn 44,47
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/nidoking.asm b/data/baseStats/nidoking.asm
index c283821b..8802f52a 100755
--- a/data/baseStats/nidoking.asm
+++ b/data/baseStats/nidoking.asm
@@ -19,11 +19,11 @@ db POISON_STING
db THRASH
db 3 ; growth rate
; learnset
-db %11110001
-db %11111111
-db %10001111
-db %11000111
-db %10100011
-db %10001000
-db %00110010
+ tmlearn 1,5,6,7,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 17,18,19,20,24
+ tmlearn 25,26,27,31,32
+ tmlearn 33,34,38,40
+ tmlearn 44,48
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/nidoqueen.asm b/data/baseStats/nidoqueen.asm
index 5f3f91a3..5e6ab97b 100755
--- a/data/baseStats/nidoqueen.asm
+++ b/data/baseStats/nidoqueen.asm
@@ -19,11 +19,11 @@ db TAIL_WHIP
db BODY_SLAM
db 3 ; growth rate
; learnset
-db %11110001
-db %11111111
-db %10001111
-db %11000111
-db %10100011
-db %10001000
-db %00110010
+ tmlearn 1,5,6,7,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 17,18,19,20,24
+ tmlearn 25,26,27,31,32
+ tmlearn 33,34,38,40
+ tmlearn 44,48
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/nidoranf.asm b/data/baseStats/nidoranf.asm
index 24caa7ab..c3f9a6e3 100755
--- a/data/baseStats/nidoranf.asm
+++ b/data/baseStats/nidoranf.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10100000
-db %00100011
-db %10001000
-db %11000001
-db %10000011
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10,14
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/nidoranm.asm b/data/baseStats/nidoranm.asm
index 1b33b61c..14e9bc9f 100755
--- a/data/baseStats/nidoranm.asm
+++ b/data/baseStats/nidoranm.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %11100000
-db %00100011
-db %10001000
-db %11000001
-db %10000011
-db %00001000
-db %00000010
+ tmlearn 6,7,8
+ tmlearn 9,10,14
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/nidorina.asm b/data/baseStats/nidorina.asm
index b2ab3ce8..902286c5 100755
--- a/data/baseStats/nidorina.asm
+++ b/data/baseStats/nidorina.asm
@@ -19,11 +19,11 @@ db SCRATCH
db 0
db 3 ; growth rate
; learnset
-db %11100000
-db %00111111
-db %10001000
-db %11000001
-db %10000011
-db %00001000
-db %00000010
+ tmlearn 6,7,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/nidorino.asm b/data/baseStats/nidorino.asm
index 06957afd..db5844a9 100755
--- a/data/baseStats/nidorino.asm
+++ b/data/baseStats/nidorino.asm
@@ -19,11 +19,11 @@ db HORN_ATTACK
db 0
db 3 ; growth rate
; learnset
-db %11100000
-db %00111111
-db %10001000
-db %11000001
-db %10000011
-db %00001000
-db %00000010
+ tmlearn 6,7,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/ninetails.asm b/data/baseStats/ninetails.asm
index 8141b627..f5339b35 100755
--- a/data/baseStats/ninetails.asm
+++ b/data/baseStats/ninetails.asm
@@ -19,11 +19,11 @@ db QUICK_ATTACK
db ROAR
db 0 ; growth rate
; learnset
-db %10100000
-db %01000011
-db %00001000
-db %11001000
-db %11100011
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 28,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/oddish.asm b/data/baseStats/oddish.asm
index 31e376a6..895ccbe1 100755
--- a/data/baseStats/oddish.asm
+++ b/data/baseStats/oddish.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %00100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6
+ tmlearn 9,10
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/omanyte.asm b/data/baseStats/omanyte.asm
index d4b5f534..9246a325 100755
--- a/data/baseStats/omanyte.asm
+++ b/data/baseStats/omanyte.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00111111
-db %00001000
-db %11000000
-db %00000011
-db %00001000
-db %00010010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/omastar.asm b/data/baseStats/omastar.asm
index f39c8f2d..17b45efe 100755
--- a/data/baseStats/omastar.asm
+++ b/data/baseStats/omastar.asm
@@ -19,11 +19,11 @@ db HORN_ATTACK
db 0
db 0 ; growth rate
; learnset
-db %11100000
-db %01111111
-db %00001101
-db %11000000
-db %10000011
-db %00001000
-db %00010010
+ tmlearn 6,7,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,19,20
+ tmlearn 31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/onix.asm b/data/baseStats/onix.asm
index ce4375f7..4f2f8e6b 100755
--- a/data/baseStats/onix.asm
+++ b/data/baseStats/onix.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00000011
-db %00001000
-db %11001110
-db %10001010
-db %11001000
-db %00100010
+ tmlearn 6,8
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,36,40
+ tmlearn 44,47,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/paras.asm b/data/baseStats/paras.asm
index c1f9dbdd..daf1aaa9 100755
--- a/data/baseStats/paras.asm
+++ b/data/baseStats/paras.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100100
-db %00000011
-db %00111000
-db %11001000
-db %10000011
-db %00001000
-db %00000110
+ tmlearn 3,6,8
+ tmlearn 9,10
+ tmlearn 20,21,22
+ tmlearn 28,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/parasect.asm b/data/baseStats/parasect.asm
index e53fec0e..cacf8e4b 100755
--- a/data/baseStats/parasect.asm
+++ b/data/baseStats/parasect.asm
@@ -19,11 +19,11 @@ db LEECH_LIFE
db 0
db 0 ; growth rate
; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11001000
-db %10000011
-db %00001000
-db %00000110
+ tmlearn 3,6,8
+ tmlearn 9,10,15
+ tmlearn 20,21,22
+ tmlearn 28,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/persian.asm b/data/baseStats/persian.asm
index c72ac802..69429830 100755
--- a/data/baseStats/persian.asm
+++ b/data/baseStats/persian.asm
@@ -19,11 +19,11 @@ db BITE
db SCREECH
db 0 ; growth rate
; learnset
-db %10100000
-db %11001111
-db %10001000
-db %11000001
-db %11000010
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,15,16
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/pidgeot.asm b/data/baseStats/pidgeot.asm
index 47fafc3e..19c9f2b4 100755
--- a/data/baseStats/pidgeot.asm
+++ b/data/baseStats/pidgeot.asm
@@ -19,11 +19,11 @@ db QUICK_ATTACK
db 0
db 3 ; growth rate
; learnset
-db %00101010
-db %01000011
-db %00001000
-db %11000000
-db %01000011
-db %00001100
-db %00001010
+ tmlearn 2,4,6
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,39
+ tmlearn 43,44
+ tmlearn 50,52
db 0 ; padding
diff --git a/data/baseStats/pidgeotto.asm b/data/baseStats/pidgeotto.asm
index c996b671..96a58cc3 100755
--- a/data/baseStats/pidgeotto.asm
+++ b/data/baseStats/pidgeotto.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %00101010
-db %00000011
-db %00001000
-db %11000000
-db %01000011
-db %00001100
-db %00001010
+ tmlearn 2,4,6
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,39
+ tmlearn 43,44
+ tmlearn 50,52
db 0 ; padding
diff --git a/data/baseStats/pidgey.asm b/data/baseStats/pidgey.asm
index 21259582..6d5e238d 100755
--- a/data/baseStats/pidgey.asm
+++ b/data/baseStats/pidgey.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %00101010
-db %00000011
-db %00001000
-db %11000000
-db %01000011
-db %00001100
-db %00001010
+ tmlearn 2,4,6
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,39
+ tmlearn 43,44
+ tmlearn 50,52
db 0 ; padding
diff --git a/data/baseStats/pikachu.asm b/data/baseStats/pikachu.asm
index f3b224c8..1cd96200 100755
--- a/data/baseStats/pikachu.asm
+++ b/data/baseStats/pikachu.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %10000011
-db %10001101
-db %11000001
-db %11000011
-db %00011000
-db %01000010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,16
+ tmlearn 17,19,20,24
+ tmlearn 25,31,32
+ tmlearn 33,34,39,40
+ tmlearn 44,45
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/pinsir.asm b/data/baseStats/pinsir.asm
index d9c73ea0..8f36d87d 100755
--- a/data/baseStats/pinsir.asm
+++ b/data/baseStats/pinsir.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %10100100
-db %01000011
-db %00001101
-db %11000000
-db %00000010
-db %00001000
-db %00100110
+ tmlearn 3,6,8
+ tmlearn 9,10,15
+ tmlearn 17,19,20
+ tmlearn 31,32
+ tmlearn 34
+ tmlearn 44
+ tmlearn 50,51,54
db 0 ; padding
diff --git a/data/baseStats/poliwag.asm b/data/baseStats/poliwag.asm
index 6be8587d..7df20056 100755
--- a/data/baseStats/poliwag.asm
+++ b/data/baseStats/poliwag.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10100000
-db %00111111
-db %00001000
-db %11010000
-db %10000010
-db %00101000
-db %00010010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20
+ tmlearn 29,31,32
+ tmlearn 34,40
+ tmlearn 44,46
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/poliwhirl.asm b/data/baseStats/poliwhirl.asm
index b59d6415..a93d2674 100755
--- a/data/baseStats/poliwhirl.asm
+++ b/data/baseStats/poliwhirl.asm
@@ -19,11 +19,11 @@ db WATER_GUN
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %00111111
-db %00001111
-db %11010110
-db %10000110
-db %00101000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 17,18,19,20
+ tmlearn 26,27,29,31,32
+ tmlearn 34,35,40
+ tmlearn 44,46
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/poliwrath.asm b/data/baseStats/poliwrath.asm
index d326a909..4d35c2cc 100755
--- a/data/baseStats/poliwrath.asm
+++ b/data/baseStats/poliwrath.asm
@@ -19,11 +19,11 @@ db DOUBLESLAP
db BODY_SLAM
db 3 ; growth rate
; learnset
-db %10110001
-db %01111111
-db %00001111
-db %11010110
-db %10000110
-db %00101000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20
+ tmlearn 26,27,29,31,32
+ tmlearn 34,35,40
+ tmlearn 44,46
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/ponyta.asm b/data/baseStats/ponyta.asm
index 3f22d6dd..9856ecbd 100755
--- a/data/baseStats/ponyta.asm
+++ b/data/baseStats/ponyta.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %11100000
-db %00000011
-db %00001000
-db %11000000
-db %11100011
-db %00001000
-db %00000010
+ tmlearn 6,7,8
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/porygon.asm b/data/baseStats/porygon.asm
index 0c8a6b33..7ccee3c8 100755
--- a/data/baseStats/porygon.asm
+++ b/data/baseStats/porygon.asm
@@ -19,11 +19,11 @@ db CONVERSION
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %01110011
-db %10001000
-db %11110001
-db %11000011
-db %00111000
-db %01000011
+ tmlearn 6
+ tmlearn 9,10,13,14,15
+ tmlearn 20,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,39,40
+ tmlearn 44,45,46
+ tmlearn 49,50,55
db 0 ; padding
diff --git a/data/baseStats/primeape.asm b/data/baseStats/primeape.asm
index 6d07c401..a3dfe576 100755
--- a/data/baseStats/primeape.asm
+++ b/data/baseStats/primeape.asm
@@ -19,11 +19,11 @@ db FURY_SWIPES
db LOW_KICK
db 0 ; growth rate
; learnset
-db %10110001
-db %11000011
-db %10001111
-db %11001001
-db %11000110
-db %10001000
-db %00100010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15,16
+ tmlearn 17,18,19,20,24
+ tmlearn 25,28,31,32
+ tmlearn 34,35,39,40
+ tmlearn 44,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/psyduck.asm b/data/baseStats/psyduck.asm
index bc435c57..469097fe 100755
--- a/data/baseStats/psyduck.asm
+++ b/data/baseStats/psyduck.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %10111111
-db %00001111
-db %11001000
-db %11000010
-db %00001000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,16
+ tmlearn 17,18,19,20
+ tmlearn 28,31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/raichu.asm b/data/baseStats/raichu.asm
index 6324d57d..c6757b0b 100755
--- a/data/baseStats/raichu.asm
+++ b/data/baseStats/raichu.asm
@@ -19,11 +19,11 @@ db THUNDER_WAVE
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %11000011
-db %10001101
-db %11000001
-db %11000011
-db %00011000
-db %01000010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,15,16
+ tmlearn 17,19,20,24
+ tmlearn 25,31,32
+ tmlearn 33,34,39,40
+ tmlearn 44,45
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/rapidash.asm b/data/baseStats/rapidash.asm
index f5088b6e..097b95bd 100755
--- a/data/baseStats/rapidash.asm
+++ b/data/baseStats/rapidash.asm
@@ -19,11 +19,11 @@ db STOMP
db GROWL
db 0 ; growth rate
; learnset
-db %11100000
-db %01000011
-db %00001000
-db %11000000
-db %11100011
-db %00001000
-db %00000010
+ tmlearn 6,7,8
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/raticate.asm b/data/baseStats/raticate.asm
index 1bc92090..5fac0f1b 100755
--- a/data/baseStats/raticate.asm
+++ b/data/baseStats/raticate.asm
@@ -19,11 +19,11 @@ db QUICK_ATTACK
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %01111111
-db %10001000
-db %11001001
-db %11000010
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20,24
+ tmlearn 25,28,31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/rattata.asm b/data/baseStats/rattata.asm
index 192f8f26..dada06bc 100755
--- a/data/baseStats/rattata.asm
+++ b/data/baseStats/rattata.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00101111
-db %10001000
-db %11001001
-db %11000010
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,14
+ tmlearn 20,24
+ tmlearn 25,28,31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/rhydon.asm b/data/baseStats/rhydon.asm
index 9f005b84..eb2396e1 100755
--- a/data/baseStats/rhydon.asm
+++ b/data/baseStats/rhydon.asm
@@ -1,3 +1,4 @@
+MonBaseStats:
RhydonBaseStats: ; 39002 (e:5002)
db DEX_RHYDON ; pokedex id
db 105 ; base hp
@@ -19,11 +20,12 @@ db TAIL_WHIP
db FURY_ATTACK
db 5 ; growth rate
; learnset
-db %11110001
-db %11111111
-db %10001111
-db %11001111
-db %10100010
-db %10001000
-db %00110010
+ tmlearn 1,5,6,7,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 17,18,19,20,24
+ tmlearn 25,26,27,28,31,32
+ tmlearn 34,38,40
+ tmlearn 44,48
+ tmlearn 50,53,54
db 0 ; padding
+MonBaseStatsEnd:
diff --git a/data/baseStats/rhyhorn.asm b/data/baseStats/rhyhorn.asm
index 5521f37a..4e292406 100755
--- a/data/baseStats/rhyhorn.asm
+++ b/data/baseStats/rhyhorn.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %11100000
-db %00000011
-db %10001000
-db %11001111
-db %10100010
-db %10001000
-db %00100010
+ tmlearn 6,7,8
+ tmlearn 9,10
+ tmlearn 20,24
+ tmlearn 25,26,27,28,31,32
+ tmlearn 34,38,40
+ tmlearn 44,48
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/sandshrew.asm b/data/baseStats/sandshrew.asm
index 28016ab9..ff12e24f 100755
--- a/data/baseStats/sandshrew.asm
+++ b/data/baseStats/sandshrew.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100100
-db %00000011
-db %00001101
-db %11001110
-db %11000010
-db %10001000
-db %00100110
+ tmlearn 3,6,8
+ tmlearn 9,10
+ tmlearn 17,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,39,40
+ tmlearn 44,48
+ tmlearn 50,51,54
db 0 ; padding
diff --git a/data/baseStats/sandslash.asm b/data/baseStats/sandslash.asm
index f613a517..2975b20f 100755
--- a/data/baseStats/sandslash.asm
+++ b/data/baseStats/sandslash.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100100
-db %01000011
-db %00001101
-db %11001110
-db %11000010
-db %10001000
-db %00100110
+ tmlearn 3,6,8
+ tmlearn 9,10,15
+ tmlearn 17,19,20
+ tmlearn 26,27,28,31,32
+ tmlearn 34,39,40
+ tmlearn 44,48
+ tmlearn 50,51,54
db 0 ; padding
diff --git a/data/baseStats/scyther.asm b/data/baseStats/scyther.asm
index 6e20cddc..f91327f4 100755
--- a/data/baseStats/scyther.asm
+++ b/data/baseStats/scyther.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00100100
-db %01000011
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00000110
+ tmlearn 3,6
+ tmlearn 9,10,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/seadra.asm b/data/baseStats/seadra.asm
index 67cc26e1..4d28e2a3 100755
--- a/data/baseStats/seadra.asm
+++ b/data/baseStats/seadra.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %01111111
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00010010
+ tmlearn 6
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/seaking.asm b/data/baseStats/seaking.asm
index c122d946..d1087618 100755
--- a/data/baseStats/seaking.asm
+++ b/data/baseStats/seaking.asm
@@ -19,11 +19,11 @@ db SUPERSONIC
db 0
db 0 ; growth rate
; learnset
-db %01100000
-db %01111111
-db %00001000
-db %11000000
-db %11000010
-db %00001000
-db %00010010
+ tmlearn 6,7
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,39,40
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/seel.asm b/data/baseStats/seel.asm
index 63a57b98..b6546b6f 100755
--- a/data/baseStats/seel.asm
+++ b/data/baseStats/seel.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %11100000
-db %10111111
-db %00001000
-db %11000000
-db %10000010
-db %00001000
-db %00110010
+ tmlearn 6,7,8
+ tmlearn 9,10,11,12,13,14,16
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,40
+ tmlearn 44
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/shellder.asm b/data/baseStats/shellder.asm
index 06525091..fcb87404 100755
--- a/data/baseStats/shellder.asm
+++ b/data/baseStats/shellder.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00100000
-db %00111111
-db %00001000
-db %11100000
-db %01001011
-db %01001000
-db %00010011
+ tmlearn 6
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20
+ tmlearn 30,31,32
+ tmlearn 33,34,36,39
+ tmlearn 44,47
+ tmlearn 49,50,53
db 0 ; padding
diff --git a/data/baseStats/slowbro.asm b/data/baseStats/slowbro.asm
index dd271485..2d1f8444 100755
--- a/data/baseStats/slowbro.asm
+++ b/data/baseStats/slowbro.asm
@@ -19,11 +19,11 @@ db HEADBUTT
db 0
db 0 ; growth rate
; learnset
-db %10110001
-db %11111111
-db %00001111
-db %11111110
-db %11100011
-db %00111000
-db %01110011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 17,18,19,20
+ tmlearn 26,27,28,29,30,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44,45,46
+ tmlearn 49,50,53,54,55
db 0 ; padding
diff --git a/data/baseStats/slowpoke.asm b/data/baseStats/slowpoke.asm
index 41e0a586..e5edcdb9 100755
--- a/data/baseStats/slowpoke.asm
+++ b/data/baseStats/slowpoke.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %10111111
-db %00001000
-db %11111110
-db %11100011
-db %00111000
-db %01110011
+ tmlearn 6,8
+ tmlearn 9,10,11,12,13,14,16
+ tmlearn 20
+ tmlearn 26,27,28,29,30,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44,45,46
+ tmlearn 49,50,53,54,55
db 0 ; padding
diff --git a/data/baseStats/snorlax.asm b/data/baseStats/snorlax.asm
index 0ada7fa3..0a91f37e 100755
--- a/data/baseStats/snorlax.asm
+++ b/data/baseStats/snorlax.asm
@@ -19,11 +19,11 @@ db REST
db 0
db 5 ; growth rate
; learnset
-db %10110001
-db %11111111
-db %10101111
-db %11010111
-db %10101111
-db %10101000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15,16
+ tmlearn 17,18,19,20,22,24
+ tmlearn 25,26,27,29,31,32
+ tmlearn 33,34,35,36,38,40
+ tmlearn 44,46,48
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/spearow.asm b/data/baseStats/spearow.asm
index 818ec039..4e90e749 100755
--- a/data/baseStats/spearow.asm
+++ b/data/baseStats/spearow.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00101010
-db %00000011
-db %00001000
-db %11000000
-db %01000010
-db %00001100
-db %00001010
+ tmlearn 2,4,6
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 34,39
+ tmlearn 43,44
+ tmlearn 50,52
db 0 ; padding
diff --git a/data/baseStats/squirtle.asm b/data/baseStats/squirtle.asm
index d79a79e3..1257a3f0 100755
--- a/data/baseStats/squirtle.asm
+++ b/data/baseStats/squirtle.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %00111111
-db %00001111
-db %11001000
-db %10000011
-db %00001000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 17,18,19,20
+ tmlearn 28,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/starmie.asm b/data/baseStats/starmie.asm
index 671666cc..94c8f2d9 100755
--- a/data/baseStats/starmie.asm
+++ b/data/baseStats/starmie.asm
@@ -19,11 +19,11 @@ db HARDEN
db 0
db 5 ; growth rate
; learnset
-db %00100000
-db %01111111
-db %10001000
-db %11110001
-db %11000011
-db %00111000
-db %01010011
+ tmlearn 6
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,39,40
+ tmlearn 44,45,46
+ tmlearn 49,50,53,55
db 0 ; padding
diff --git a/data/baseStats/staryu.asm b/data/baseStats/staryu.asm
index 031fe9f5..3afbb7a5 100755
--- a/data/baseStats/staryu.asm
+++ b/data/baseStats/staryu.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00100000
-db %00111111
-db %10001000
-db %11110001
-db %11000011
-db %00111000
-db %01010011
+ tmlearn 6
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,39,40
+ tmlearn 44,45,46
+ tmlearn 49,50,53,55
db 0 ; padding
diff --git a/data/baseStats/tangela.asm b/data/baseStats/tangela.asm
index 3e899c05..a9cab332 100755
--- a/data/baseStats/tangela.asm
+++ b/data/baseStats/tangela.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11000000
-db %10000010
-db %00001000
-db %00000110
+ tmlearn 3,6,8
+ tmlearn 9,10,15
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 34,40
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/tauros.asm b/data/baseStats/tauros.asm
index 16020b09..39844f76 100755
--- a/data/baseStats/tauros.asm
+++ b/data/baseStats/tauros.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %11100000
-db %01110011
-db %10001000
-db %11000111
-db %10100010
-db %00001000
-db %00100010
+ tmlearn 6,7,8
+ tmlearn 9,10,13,14,15
+ tmlearn 20,24
+ tmlearn 25,26,27,31,32
+ tmlearn 34,38,40
+ tmlearn 44
+ tmlearn 50,54
db 0 ; padding
diff --git a/data/baseStats/tentacool.asm b/data/baseStats/tentacool.asm
index f7569d65..12ff9e0d 100755
--- a/data/baseStats/tentacool.asm
+++ b/data/baseStats/tentacool.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00100100
-db %00111111
-db %00011000
-db %11000000
-db %10000011
-db %00001000
-db %00010110
+ tmlearn 3,6
+ tmlearn 9,10,11,12,13,14
+ tmlearn 20,21
+ tmlearn 31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,51,53
db 0 ; padding
diff --git a/data/baseStats/tentacruel.asm b/data/baseStats/tentacruel.asm
index d7115059..01a2f685 100755
--- a/data/baseStats/tentacruel.asm
+++ b/data/baseStats/tentacruel.asm
@@ -19,11 +19,11 @@ db WRAP
db 0
db 5 ; growth rate
; learnset
-db %00100100
-db %01111111
-db %00011000
-db %11000000
-db %10000011
-db %00001000
-db %00010110
+ tmlearn 3,6
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20,21
+ tmlearn 31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,51,53
db 0 ; padding
diff --git a/data/baseStats/vaporeon.asm b/data/baseStats/vaporeon.asm
index 7be669a2..1fd8bf52 100755
--- a/data/baseStats/vaporeon.asm
+++ b/data/baseStats/vaporeon.asm
@@ -19,11 +19,11 @@ db QUICK_ATTACK
db WATER_GUN
db 0 ; growth rate
; learnset
-db %10100000
-db %01111111
-db %00001000
-db %11000000
-db %11000011
-db %00001000
-db %00010010
+ tmlearn 6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 20
+ tmlearn 31,32
+ tmlearn 33,34,39,40
+ tmlearn 44
+ tmlearn 50,53
db 0 ; padding
diff --git a/data/baseStats/venomoth.asm b/data/baseStats/venomoth.asm
index bd1252ea..3ef7018b 100755
--- a/data/baseStats/venomoth.asm
+++ b/data/baseStats/venomoth.asm
@@ -19,11 +19,11 @@ db SUPERSONIC
db CONFUSION
db 0 ; growth rate
; learnset
-db %00101010
-db %01000011
-db %00111000
-db %11110000
-db %01000011
-db %00101000
-db %00000010
+ tmlearn 2,4,6
+ tmlearn 9,10,15
+ tmlearn 20,21,22
+ tmlearn 29,30,31,32
+ tmlearn 33,34,39
+ tmlearn 44,46
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/venonat.asm b/data/baseStats/venonat.asm
index 461ad522..2f71a9df 100755
--- a/data/baseStats/venonat.asm
+++ b/data/baseStats/venonat.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %00000011
-db %00111000
-db %11110000
-db %01000011
-db %00101000
-db %00100010
+ tmlearn 6
+ tmlearn 9,10
+ tmlearn 20,21,22
+ tmlearn 29,30,31,32
+ tmlearn 33,34,39
+ tmlearn 44,46
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/venusaur.asm b/data/baseStats/venusaur.asm
index 426d18ac..5052e9d0 100755
--- a/data/baseStats/venusaur.asm
+++ b/data/baseStats/venusaur.asm
@@ -19,11 +19,11 @@ db LEECH_SEED
db VINE_WHIP
db 3 ; growth rate
; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6,8
+ tmlearn 9,10,15
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/victreebel.asm b/data/baseStats/victreebel.asm
index 4f544b8d..0df7e22c 100755
--- a/data/baseStats/victreebel.asm
+++ b/data/baseStats/victreebel.asm
@@ -19,11 +19,11 @@ db ACID
db RAZOR_LEAF
db 3 ; growth rate
; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6,8
+ tmlearn 9,10,15
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/vileplume.asm b/data/baseStats/vileplume.asm
index df44be35..20d1b4e4 100755
--- a/data/baseStats/vileplume.asm
+++ b/data/baseStats/vileplume.asm
@@ -19,11 +19,11 @@ db ACID
db PETAL_DANCE
db 3 ; growth rate
; learnset
-db %10100100
-db %01000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6,8
+ tmlearn 9,10,15
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/voltorb.asm b/data/baseStats/voltorb.asm
index f85fc165..4267990f 100755
--- a/data/baseStats/voltorb.asm
+++ b/data/baseStats/voltorb.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %00000001
-db %10001000
-db %11100001
-db %01001011
-db %01011000
-db %01000010
+ tmlearn 6
+ tmlearn 9
+ tmlearn 20,24
+ tmlearn 25,30,31,32
+ tmlearn 33,34,36,39
+ tmlearn 44,45,47
+ tmlearn 50,55
db 0 ; padding
diff --git a/data/baseStats/vulpix.asm b/data/baseStats/vulpix.asm
index 5b9bc47c..80a25853 100755
--- a/data/baseStats/vulpix.asm
+++ b/data/baseStats/vulpix.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %10100000
-db %00000011
-db %00001000
-db %11001000
-db %11100011
-db %00001000
-db %00000010
+ tmlearn 6,8
+ tmlearn 9,10
+ tmlearn 20
+ tmlearn 28,31,32
+ tmlearn 33,34,38,39,40
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/wartortle.asm b/data/baseStats/wartortle.asm
index 4d77ea7b..b8d1f84f 100755
--- a/data/baseStats/wartortle.asm
+++ b/data/baseStats/wartortle.asm
@@ -19,11 +19,11 @@ db BUBBLE
db 0
db 3 ; growth rate
; learnset
-db %10110001
-db %00111111
-db %00001111
-db %11001000
-db %10000011
-db %00001000
-db %00110010
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14
+ tmlearn 17,18,19,20
+ tmlearn 28,31,32
+ tmlearn 33,34,40
+ tmlearn 44
+ tmlearn 50,53,54
db 0 ; padding
diff --git a/data/baseStats/weedle.asm b/data/baseStats/weedle.asm
index 8e501f0b..ecd788db 100755
--- a/data/baseStats/weedle.asm
+++ b/data/baseStats/weedle.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
-db %00000000
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
+ tmlearn 0
db 0 ; padding
diff --git a/data/baseStats/weepinbell.asm b/data/baseStats/weepinbell.asm
index 1a974e20..22c6a40b 100755
--- a/data/baseStats/weepinbell.asm
+++ b/data/baseStats/weepinbell.asm
@@ -19,11 +19,11 @@ db WRAP
db 0
db 3 ; growth rate
; learnset
-db %00100100
-db %00000011
-db %00111000
-db %11000000
-db %00000011
-db %00001000
-db %00000110
+ tmlearn 3,6
+ tmlearn 9,10
+ tmlearn 20,21,22
+ tmlearn 31,32
+ tmlearn 33,34
+ tmlearn 44
+ tmlearn 50,51
db 0 ; padding
diff --git a/data/baseStats/weezing.asm b/data/baseStats/weezing.asm
index bd526ecb..265ed3c8 100755
--- a/data/baseStats/weezing.asm
+++ b/data/baseStats/weezing.asm
@@ -19,11 +19,11 @@ db SLUDGE
db 0
db 0 ; growth rate
; learnset
-db %00100000
-db %01000000
-db %10001000
-db %11000001
-db %00101010
-db %01001000
-db %00000010
+ tmlearn 6
+ tmlearn 15
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 34,36,38
+ tmlearn 44,47
+ tmlearn 50
db 0 ; padding
diff --git a/data/baseStats/wigglytuff.asm b/data/baseStats/wigglytuff.asm
index 1a403c3e..13bf9b3a 100755
--- a/data/baseStats/wigglytuff.asm
+++ b/data/baseStats/wigglytuff.asm
@@ -19,11 +19,11 @@ db DEFENSE_CURL
db DOUBLESLAP
db 4 ; growth rate
; learnset
-db %10110001
-db %01111111
-db %10101111
-db %11110001
-db %10100011
-db %00111000
-db %01100011
+ tmlearn 1,5,6,8
+ tmlearn 9,10,11,12,13,14,15
+ tmlearn 17,18,19,20,22,24
+ tmlearn 25,29,30,31,32
+ tmlearn 33,34,38,40
+ tmlearn 44,45,46
+ tmlearn 49,50,54,55
db 0 ; padding
diff --git a/data/baseStats/zapdos.asm b/data/baseStats/zapdos.asm
index 257bb859..5ae1f25f 100755
--- a/data/baseStats/zapdos.asm
+++ b/data/baseStats/zapdos.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 5 ; growth rate
; learnset
-db %00101010
-db %01000011
-db %10001000
-db %11000001
-db %01000011
-db %00011100
-db %01001010
+ tmlearn 2,4,6
+ tmlearn 9,10,15
+ tmlearn 20,24
+ tmlearn 25,31,32
+ tmlearn 33,34,39
+ tmlearn 43,44,45
+ tmlearn 50,52,55
db 0 ; padding
diff --git a/data/baseStats/zubat.asm b/data/baseStats/zubat.asm
index b2197c13..bafac885 100755
--- a/data/baseStats/zubat.asm
+++ b/data/baseStats/zubat.asm
@@ -19,11 +19,11 @@ db 0
db 0
db 0 ; growth rate
; learnset
-db %00101010
-db %00000011
-db %00011000
-db %11000000
-db %01000010
-db %00001000
-db %00000010
+ tmlearn 2,4,6
+ tmlearn 9,10
+ tmlearn 20,21
+ tmlearn 31,32
+ tmlearn 34,39
+ tmlearn 44
+ tmlearn 50
db 0 ; padding
diff --git a/data/evos_moves.asm b/data/evos_moves.asm
index cdbec0d8..6bdf2524 100755
--- a/data/evos_moves.asm
+++ b/data/evos_moves.asm
@@ -202,6 +202,7 @@ Mon112_EvosMoves: ; 3b1d8 (e:71d8)
db 55,LEER
db 64,TAKE_DOWN
db 0
+
Mon115_EvosMoves: ; 3b1e6 (e:71e6)
;KANGASKHAN
;Evolutions
@@ -213,6 +214,7 @@ Mon115_EvosMoves: ; 3b1e6 (e:71e6)
db 41,LEER
db 46,DIZZY_PUNCH
db 0
+
Mon032_EvosMoves: ; 3b1f2 (e:71f2)
;NIDORAN_M
;Evolutions
@@ -226,6 +228,7 @@ Mon032_EvosMoves: ; 3b1f2 (e:71f2)
db 36,HORN_DRILL
db 43,DOUBLE_KICK
db 0
+
Mon035_EvosMoves: ; 3b203 (e:7203)
;CLEFAIRY
;Evolutions
@@ -239,6 +242,7 @@ Mon035_EvosMoves: ; 3b203 (e:7203)
db 39,DEFENSE_CURL
db 48,LIGHT_SCREEN
db 0
+
Mon021_EvosMoves: ; 3b215 (e:7215)
;SPEAROW
;Evolutions
@@ -251,6 +255,7 @@ Mon021_EvosMoves: ; 3b215 (e:7215)
db 29,DRILL_PECK
db 36,AGILITY
db 0
+
Mon100_EvosMoves: ; 3b224 (e:7224)
;VOLTORB
;Evolutions
@@ -263,6 +268,7 @@ Mon100_EvosMoves: ; 3b224 (e:7224)
db 36,SWIFT
db 43,EXPLOSION
db 0
+
Mon034_EvosMoves: ; 3b233 (e:7233)
;NIDOKING
;Evolutions
@@ -272,6 +278,7 @@ Mon034_EvosMoves: ; 3b233 (e:7233)
db 14,POISON_STING
db 23,THRASH
db 0
+
Mon080_EvosMoves: ; 3b23b (e:723b)
;SLOWBRO
;Evolutions
@@ -285,6 +292,7 @@ Mon080_EvosMoves: ; 3b23b (e:723b)
db 44,AMNESIA
db 55,PSYCHIC_M
db 0
+
Mon002_EvosMoves: ; 3b24b (e:724b)
;IVYSAUR
;Evolutions
@@ -299,6 +307,7 @@ Mon002_EvosMoves: ; 3b24b (e:724b)
db 46,SLEEP_POWDER
db 54,SOLARBEAM
db 0
+
Mon103_EvosMoves: ; 3b25e (e:725e)
;EXEGGUTOR
;Evolutions
@@ -306,6 +315,7 @@ Mon103_EvosMoves: ; 3b25e (e:725e)
;Learnset
db 28,STOMP
db 0
+
Mon108_EvosMoves: ; 3b262 (e:7262)
;LICKITUNG
;Evolutions
@@ -317,10 +327,11 @@ Mon108_EvosMoves: ; 3b262 (e:7262)
db 31,SLAM
db 39,SCREECH
db 0
+
Mon102_EvosMoves: ; 3b26e (e:726e)
;EXEGGCUTE
;Evolutions
- db EV_ITEM,LEAF_STONE ,1,EXEGGUTOR
+ db EV_ITEM,LEAF_STONE,1,EXEGGUTOR
db 0
;Learnset
db 25,REFLECT
@@ -330,6 +341,7 @@ Mon102_EvosMoves: ; 3b26e (e:726e)
db 42,SOLARBEAM
db 48,SLEEP_POWDER
db 0
+
Mon088_EvosMoves: ; 3b280 (e:7280)
;GRIMER
;Evolutions
@@ -343,6 +355,7 @@ Mon088_EvosMoves: ; 3b280 (e:7280)
db 48,SCREECH
db 55,ACID_ARMOR
db 0
+
Mon094_EvosMoves: ; 3b291 (e:7291)
;GENGAR
;Evolutions
@@ -351,6 +364,7 @@ Mon094_EvosMoves: ; 3b291 (e:7291)
db 29,HYPNOSIS
db 38,DREAM_EATER
db 0
+
Mon029_EvosMoves: ; 3b297 (e:7297)
;NIDORAN_F
;Evolutions
@@ -364,6 +378,7 @@ Mon029_EvosMoves: ; 3b297 (e:7297)
db 36,FURY_SWIPES
db 43,DOUBLE_KICK
db 0
+
Mon031_EvosMoves: ; 3b2a8 (e:72a8)
;NIDOQUEEN
;Evolutions
@@ -373,6 +388,7 @@ Mon031_EvosMoves: ; 3b2a8 (e:72a8)
db 14,POISON_STING
db 23,BODY_SLAM
db 0
+
Mon104_EvosMoves: ; 3b2b0 (e:72b0)
;CUBONE
;Evolutions
@@ -385,6 +401,7 @@ Mon104_EvosMoves: ; 3b2b0 (e:72b0)
db 43,BONEMERANG
db 46,RAGE
db 0
+
Mon111_EvosMoves: ; 3b2bf (e:72bf)
;RHYHORN
;Evolutions
@@ -398,6 +415,7 @@ Mon111_EvosMoves: ; 3b2bf (e:72bf)
db 50,LEER
db 55,TAKE_DOWN
db 0
+
Mon131_EvosMoves: ; 3b2d0 (e:72d0)
;LAPRAS
;Evolutions
@@ -410,12 +428,14 @@ Mon131_EvosMoves: ; 3b2d0 (e:72d0)
db 38,ICE_BEAM
db 46,HYDRO_PUMP
db 0
+
Mon059_EvosMoves: ; 3b2de (e:72de)
;ARCANINE
;Evolutions
db 0
;Learnset
db 0
+
Mon151_EvosMoves: ; 3b2e0 (e:72e0)
;MEW
;Evolutions
@@ -426,6 +446,7 @@ Mon151_EvosMoves: ; 3b2e0 (e:72e0)
db 30,METRONOME
db 40,PSYCHIC_M
db 0
+
Mon130_EvosMoves: ; 3b2ea (e:72ea)
;GYARADOS
;Evolutions
@@ -437,10 +458,11 @@ Mon130_EvosMoves: ; 3b2ea (e:72ea)
db 41,HYDRO_PUMP
db 52,HYPER_BEAM
db 0
+
Mon090_EvosMoves: ; 3b2f6 (e:72f6)
;SHELLDER
;Evolutions
- db EV_ITEM,WATER_STONE ,1,CLOYSTER
+ db EV_ITEM,WATER_STONE,1,CLOYSTER
db 0
;Learnset
db 18,SUPERSONIC
@@ -449,6 +471,7 @@ Mon090_EvosMoves: ; 3b2f6 (e:72f6)
db 39,LEER
db 50,ICE_BEAM
db 0
+
Mon072_EvosMoves: ; 3b306 (e:7306)
;TENTACOOL
;Evolutions
@@ -464,6 +487,7 @@ Mon072_EvosMoves: ; 3b306 (e:7306)
db 40,SCREECH
db 48,HYDRO_PUMP
db 0
+
Mon092_EvosMoves: ; 3b31b (e:731b)
;GASTLY
;Evolutions
@@ -473,6 +497,7 @@ Mon092_EvosMoves: ; 3b31b (e:731b)
db 27,HYPNOSIS
db 35,DREAM_EATER
db 0
+
Mon123_EvosMoves: ; 3b324 (e:7324)
;SCYTHER
;Evolutions
@@ -485,10 +510,11 @@ Mon123_EvosMoves: ; 3b324 (e:7324)
db 35,SWORDS_DANCE
db 42,AGILITY
db 0
+
Mon120_EvosMoves: ; 3b332 (e:7332)
;STARYU
;Evolutions
- db EV_ITEM,WATER_STONE ,1,STARMIE
+ db EV_ITEM,WATER_STONE,1,STARMIE
db 0
;Learnset
db 17,WATER_GUN
@@ -499,6 +525,7 @@ Mon120_EvosMoves: ; 3b332 (e:7332)
db 42,LIGHT_SCREEN
db 47,HYDRO_PUMP
db 0
+
Mon009_EvosMoves: ; 3b346 (e:7346)
;BLASTOISE
;Evolutions
@@ -511,6 +538,7 @@ Mon009_EvosMoves: ; 3b346 (e:7346)
db 42,SKULL_BASH
db 52,HYDRO_PUMP
db 0
+
Mon127_EvosMoves: ; 3b354 (e:7354)
;PINSIR
;Evolutions
@@ -523,6 +551,7 @@ Mon127_EvosMoves: ; 3b354 (e:7354)
db 49,SLASH
db 54,SWORDS_DANCE
db 0
+
Mon114_EvosMoves: ; 3b362 (e:7362)
;TANGELA
;Evolutions
@@ -549,6 +578,7 @@ Mon153_EvosMoves: ; 3b372 (e:7372)
db 0
;Learnset
db 0
+
Mon058_EvosMoves: ; 3b374 (e:7374)
;GROWLITHE
;Evolutions
@@ -561,6 +591,7 @@ Mon058_EvosMoves: ; 3b374 (e:7374)
db 39,AGILITY
db 50,FLAMETHROWER
db 0
+
Mon095_EvosMoves: ; 3b384 (e:7384)
;ONIX
;Evolutions
@@ -572,6 +603,7 @@ Mon095_EvosMoves: ; 3b384 (e:7384)
db 33,SLAM
db 43,HARDEN
db 0
+
Mon022_EvosMoves: ; 3b390 (e:7390)
;FEAROW
;Evolutions
@@ -583,6 +615,7 @@ Mon022_EvosMoves: ; 3b390 (e:7390)
db 34,DRILL_PECK
db 43,AGILITY
db 0
+
Mon016_EvosMoves: ; 3b39c (e:739c)
;PIDGEY
;Evolutions
@@ -596,6 +629,7 @@ Mon016_EvosMoves: ; 3b39c (e:739c)
db 36,AGILITY
db 44,MIRROR_MOVE
db 0
+
Mon079_EvosMoves: ; 3b3ad (e:73ad)
;SLOWPOKE
;Evolutions
@@ -609,6 +643,7 @@ Mon079_EvosMoves: ; 3b3ad (e:73ad)
db 40,AMNESIA
db 48,PSYCHIC_M
db 0
+
Mon064_EvosMoves: ; 3b3be (e:73be)
;KADABRA
;Evolutions
@@ -622,6 +657,7 @@ Mon064_EvosMoves: ; 3b3be (e:73be)
db 38,PSYCHIC_M
db 42,REFLECT
db 0
+
Mon075_EvosMoves: ; 3b3cf (e:73cf)
;GRAVELER
;Evolutions
@@ -635,6 +671,7 @@ Mon075_EvosMoves: ; 3b3cf (e:73cf)
db 36,EARTHQUAKE
db 43,EXPLOSION
db 0
+
Mon113_EvosMoves: ; 3b3e0 (e:73e0)
;CHANSEY
;Evolutions
@@ -647,6 +684,7 @@ Mon113_EvosMoves: ; 3b3e0 (e:73e0)
db 48,LIGHT_SCREEN
db 54,DOUBLE_EDGE
db 0
+
Mon067_EvosMoves: ; 3b3ee (e:73ee)
;MACHOKE
;Evolutions
@@ -659,6 +697,7 @@ Mon067_EvosMoves: ; 3b3ee (e:73ee)
db 44,SEISMIC_TOSS
db 52,SUBMISSION
db 0
+
Mon122_EvosMoves: ; 3b3fd (e:73fd)
;MR_MIME
;Evolutions
@@ -670,6 +709,7 @@ Mon122_EvosMoves: ; 3b3fd (e:73fd)
db 39,MEDITATE
db 47,SUBSTITUTE
db 0
+
Mon106_EvosMoves: ; 3b409 (e:7409)
;HITMONLEE
;Evolutions
@@ -681,6 +721,7 @@ Mon106_EvosMoves: ; 3b409 (e:7409)
db 48,HI_JUMP_KICK
db 53,MEGA_KICK
db 0
+
Mon107_EvosMoves: ; 3b415 (e:7415)
;HITMONCHAN
;Evolutions
@@ -692,6 +733,7 @@ Mon107_EvosMoves: ; 3b415 (e:7415)
db 48,MEGA_PUNCH
db 53,COUNTER
db 0
+
Mon024_EvosMoves: ; 3b421 (e:7421)
;ARBOK
;Evolutions
@@ -703,6 +745,7 @@ Mon024_EvosMoves: ; 3b421 (e:7421)
db 36,SCREECH
db 47,ACID
db 0
+
Mon047_EvosMoves: ; 3b42d (e:742d)
;PARASECT
;Evolutions
@@ -714,6 +757,7 @@ Mon047_EvosMoves: ; 3b42d (e:742d)
db 39,SLASH
db 48,GROWTH
db 0
+
Mon054_EvosMoves: ; 3b439 (e:7439)
;PSYDUCK
;Evolutions
@@ -726,6 +770,7 @@ Mon054_EvosMoves: ; 3b439 (e:7439)
db 43,FURY_SWIPES
db 52,HYDRO_PUMP
db 0
+
Mon096_EvosMoves: ; 3b448 (e:7448)
;DROWZEE
;Evolutions
@@ -739,6 +784,7 @@ Mon096_EvosMoves: ; 3b448 (e:7448)
db 32,PSYCHIC_M
db 37,MEDITATE
db 0
+
Mon076_EvosMoves: ; 3b459 (e:7459)
;GOLEM
;Evolutions
@@ -758,6 +804,7 @@ Mon154_EvosMoves: ; 3b467 (e:7467)
db 0
;Learnset
db 0
+
Mon126_EvosMoves: ; 3b469 (e:7469)
;MAGMAR
;Evolutions
@@ -777,6 +824,7 @@ Mon155_EvosMoves: ; 3b477 (e:7477)
db 0
;Learnset
db 0
+
Mon125_EvosMoves: ; 3b479 (e:7479)
;ELECTABUZZ
;Evolutions
@@ -788,6 +836,7 @@ Mon125_EvosMoves: ; 3b479 (e:7479)
db 49,LIGHT_SCREEN
db 54,THUNDER
db 0
+
Mon082_EvosMoves: ; 3b485 (e:7485)
;MAGNETON
;Evolutions
@@ -800,6 +849,7 @@ Mon082_EvosMoves: ; 3b485 (e:7485)
db 46,SWIFT
db 54,SCREECH
db 0
+
Mon109_EvosMoves: ; 3b493 (e:7493)
;KOFFING
;Evolutions
@@ -819,6 +869,7 @@ Mon156_EvosMoves: ; 3b4a2 (e:74a2)
db 0
;Learnset
db 0
+
Mon056_EvosMoves: ; 3b4a4 (e:74a4)
;MANKEY
;Evolutions
@@ -831,6 +882,7 @@ Mon056_EvosMoves: ; 3b4a4 (e:74a4)
db 33,SEISMIC_TOSS
db 39,THRASH
db 0
+
Mon086_EvosMoves: ; 3b4b3 (e:74b3)
;SEEL
;Evolutions
@@ -843,6 +895,7 @@ Mon086_EvosMoves: ; 3b4b3 (e:74b3)
db 45,TAKE_DOWN
db 50,ICE_BEAM
db 0
+
Mon050_EvosMoves: ; 3b4c2 (e:74c2)
;DIGLETT
;Evolutions
@@ -855,6 +908,7 @@ Mon050_EvosMoves: ; 3b4c2 (e:74c2)
db 31,SLASH
db 40,EARTHQUAKE
db 0
+
Mon128_EvosMoves: ; 3b4d1 (e:74d1)
;TAUROS
;Evolutions
@@ -887,6 +941,7 @@ Mon159_EvosMoves: ; 3b4e1 (e:74e1)
db 0
;Learnset
db 0
+
Mon083_EvosMoves: ; 3b4e3 (e:74e3)
;FARFETCH_D
;Evolutions
@@ -898,6 +953,7 @@ Mon083_EvosMoves: ; 3b4e3 (e:74e3)
db 31,AGILITY
db 39,SLASH
db 0
+
Mon048_EvosMoves: ; 3b4ef (e:74ef)
;VENONAT
;Evolutions
@@ -911,6 +967,7 @@ Mon048_EvosMoves: ; 3b4ef (e:74ef)
db 38,SLEEP_POWDER
db 43,PSYCHIC_M
db 0
+
Mon149_EvosMoves: ; 3b500 (e:7500)
;DRAGONITE
;Evolutions
@@ -943,6 +1000,7 @@ Mon162_EvosMoves: ; 3b510 (e:7510)
db 0
;Learnset
db 0
+
Mon084_EvosMoves: ; 3b512 (e:7512)
;DODUO
;Evolutions
@@ -956,6 +1014,7 @@ Mon084_EvosMoves: ; 3b512 (e:7512)
db 40,TRI_ATTACK
db 44,AGILITY
db 0
+
Mon060_EvosMoves: ; 3b523 (e:7523)
;POLIWAG
;Evolutions
@@ -969,6 +1028,7 @@ Mon060_EvosMoves: ; 3b523 (e:7523)
db 38,AMNESIA
db 45,HYDRO_PUMP
db 0
+
Mon124_EvosMoves: ; 3b534 (e:7534)
;JYNX
;Evolutions
@@ -981,6 +1041,7 @@ Mon124_EvosMoves: ; 3b534 (e:7534)
db 47,THRASH
db 58,BLIZZARD
db 0
+
Mon146_EvosMoves: ; 3b542 (e:7542)
;MOLTRES
;Evolutions
@@ -990,6 +1051,7 @@ Mon146_EvosMoves: ; 3b542 (e:7542)
db 55,AGILITY
db 60,SKY_ATTACK
db 0
+
Mon144_EvosMoves: ; 3b54a (e:754a)
;ARTICUNO
;Evolutions
@@ -999,6 +1061,7 @@ Mon144_EvosMoves: ; 3b54a (e:754a)
db 55,AGILITY
db 60,MIST
db 0
+
Mon145_EvosMoves: ; 3b552 (e:7552)
;ZAPDOS
;Evolutions
@@ -1008,12 +1071,14 @@ Mon145_EvosMoves: ; 3b552 (e:7552)
db 55,AGILITY
db 60,LIGHT_SCREEN
db 0
+
Mon132_EvosMoves: ; 3b55a (e:755a)
;DITTO
;Evolutions
db 0
;Learnset
db 0
+
Mon052_EvosMoves: ; 3b55c (e:755c)
;MEOWTH
;Evolutions
@@ -1026,6 +1091,7 @@ Mon052_EvosMoves: ; 3b55c (e:755c)
db 33,FURY_SWIPES
db 44,SLASH
db 0
+
Mon098_EvosMoves: ; 3b56b (e:756b)
;KRABBY
;Evolutions
@@ -1059,6 +1125,7 @@ Mon165_EvosMoves: ; 3b57e (e:757e)
db 0
;Learnset
db 0
+
Mon037_EvosMoves: ; 3b580 (e:7580)
;VULPIX
;Evolutions
@@ -1071,16 +1138,18 @@ Mon037_EvosMoves: ; 3b580 (e:7580)
db 35,FLAMETHROWER
db 42,FIRE_SPIN
db 0
+
Mon038_EvosMoves: ; 3b590 (e:7590)
;NINETALES
;Evolutions
db 0
;Learnset
db 0
+
Mon025_EvosMoves: ; 3b592 (e:7592)
;PIKACHU
;Evolutions
- db EV_ITEM,THUNDER_STONE ,1,RAICHU
+ db EV_ITEM,THUNDER_STONE,1,RAICHU
db 0
;Learnset
db 9,THUNDER_WAVE
@@ -1089,6 +1158,7 @@ Mon025_EvosMoves: ; 3b592 (e:7592)
db 33,AGILITY
db 43,THUNDER
db 0
+
Mon026_EvosMoves: ; 3b5a2 (e:75a2)
;RAICHU
;Evolutions
@@ -1109,6 +1179,7 @@ Mon167_EvosMoves: ; 3b5a6 (e:75a6)
db 0
;Learnset
db 0
+
Mon147_EvosMoves: ; 3b5a8 (e:75a8)
;DRATINI
;Evolutions
@@ -1121,6 +1192,7 @@ Mon147_EvosMoves: ; 3b5a8 (e:75a8)
db 40,DRAGON_RAGE
db 50,HYPER_BEAM
db 0
+
Mon148_EvosMoves: ; 3b5b7 (e:75b7)
;DRAGONAIR
;Evolutions
@@ -1133,6 +1205,7 @@ Mon148_EvosMoves: ; 3b5b7 (e:75b7)
db 45,DRAGON_RAGE
db 55,HYPER_BEAM
db 0
+
Mon140_EvosMoves: ; 3b5c6 (e:75c6)
;KABUTO
;Evolutions
@@ -1144,6 +1217,7 @@ Mon140_EvosMoves: ; 3b5c6 (e:75c6)
db 44,LEER
db 49,HYDRO_PUMP
db 0
+
Mon141_EvosMoves: ; 3b5d3 (e:75d3)
;KABUTOPS
;Evolutions
@@ -1154,6 +1228,7 @@ Mon141_EvosMoves: ; 3b5d3 (e:75d3)
db 46,LEER
db 53,HYDRO_PUMP
db 0
+
Mon116_EvosMoves: ; 3b5dd (e:75dd)
;HORSEA
;Evolutions
@@ -1166,6 +1241,7 @@ Mon116_EvosMoves: ; 3b5dd (e:75dd)
db 37,AGILITY
db 45,HYDRO_PUMP
db 0
+
Mon117_EvosMoves: ; 3b5ec (e:75ec)
;SEADRA
;Evolutions
@@ -1191,6 +1267,7 @@ Mon169_EvosMoves: ; 3b5fa (e:75fa)
db 0
;Learnset
db 0
+
Mon027_EvosMoves: ; 3b5fc (e:75fc)
;SANDSHREW
;Evolutions
@@ -1203,6 +1280,7 @@ Mon027_EvosMoves: ; 3b5fc (e:75fc)
db 31,SWIFT
db 38,FURY_SWIPES
db 0
+
Mon028_EvosMoves: ; 3b60b (e:760b)
;SANDSLASH
;Evolutions
@@ -1214,6 +1292,7 @@ Mon028_EvosMoves: ; 3b60b (e:760b)
db 36,SWIFT
db 47,FURY_SWIPES
db 0
+
Mon138_EvosMoves: ; 3b617 (e:7617)
;OMANYTE
;Evolutions
@@ -1225,6 +1304,7 @@ Mon138_EvosMoves: ; 3b617 (e:7617)
db 46,SPIKE_CANNON
db 53,HYDRO_PUMP
db 0
+
Mon139_EvosMoves: ; 3b624 (e:7624)
;OMASTAR
;Evolutions
@@ -1235,6 +1315,7 @@ Mon139_EvosMoves: ; 3b624 (e:7624)
db 44,SPIKE_CANNON
db 49,HYDRO_PUMP
db 0
+
Mon039_EvosMoves: ; 3b62e (e:762e)
;JIGGLYPUFF
;Evolutions
@@ -1249,25 +1330,29 @@ Mon039_EvosMoves: ; 3b62e (e:762e)
db 34,BODY_SLAM
db 39,DOUBLE_EDGE
db 0
+
Mon040_EvosMoves: ; 3b642 (e:7642)
;WIGGLYTUFF
;Evolutions
db 0
;Learnset
db 0
+
Mon133_EvosMoves: ; 3b644 (e:7644)
;EEVEE
;Evolutions
db EV_ITEM,FIRE_STONE,1,FLAREON
- db EV_ITEM,THUNDER_STONE ,1,JOLTEON
- db EV_ITEM,WATER_STONE ,1,VAPOREON
+ db EV_ITEM,THUNDER_STONE,1,JOLTEON
+ db EV_ITEM,WATER_STONE,1,VAPOREON
db 0
+Mon133_EvosEnd:
;Learnset
db 27,QUICK_ATTACK
db 31,TAIL_WHIP
db 37,BITE
db 45,TAKE_DOWN
db 0
+
Mon136_EvosMoves: ; 3b65a (e:765a)
;FLAREON
;Evolutions
@@ -1282,6 +1367,7 @@ Mon136_EvosMoves: ; 3b65a (e:765a)
db 48,RAGE
db 54,FLAMETHROWER
db 0
+
Mon135_EvosMoves: ; 3b66c (e:766c)
;JOLTEON
;Evolutions
@@ -1296,6 +1382,7 @@ Mon135_EvosMoves: ; 3b66c (e:766c)
db 48,PIN_MISSILE
db 54,THUNDER
db 0
+
Mon134_EvosMoves: ; 3b67e (e:767e)
;VAPOREON
;Evolutions
@@ -1310,6 +1397,7 @@ Mon134_EvosMoves: ; 3b67e (e:767e)
db 48,MIST
db 54,HYDRO_PUMP
db 0
+
Mon066_EvosMoves: ; 3b690 (e:7690)
;MACHOP
;Evolutions
@@ -1322,6 +1410,7 @@ Mon066_EvosMoves: ; 3b690 (e:7690)
db 39,SEISMIC_TOSS
db 46,SUBMISSION
db 0
+
Mon041_EvosMoves: ; 3b69f (e:769f)
;ZUBAT
;Evolutions
@@ -1334,6 +1423,7 @@ Mon041_EvosMoves: ; 3b69f (e:769f)
db 28,WING_ATTACK
db 36,HAZE
db 0
+
Mon023_EvosMoves: ; 3b6ae (e:76ae)
;EKANS
;Evolutions
@@ -1346,6 +1436,7 @@ Mon023_EvosMoves: ; 3b6ae (e:76ae)
db 31,SCREECH
db 38,ACID
db 0
+
Mon046_EvosMoves: ; 3b6bd (e:76bd)
;PARAS
;Evolutions
@@ -1358,10 +1449,11 @@ Mon046_EvosMoves: ; 3b6bd (e:76bd)
db 34,SLASH
db 41,GROWTH
db 0
+
Mon061_EvosMoves: ; 3b6cc (e:76cc)
;POLIWHIRL
;Evolutions
- db EV_ITEM,WATER_STONE ,1,POLIWRATH
+ db EV_ITEM,WATER_STONE,1,POLIWRATH
db 0
;Learnset
db 16,HYPNOSIS
@@ -1371,6 +1463,7 @@ Mon061_EvosMoves: ; 3b6cc (e:76cc)
db 41,AMNESIA
db 49,HYDRO_PUMP
db 0
+
Mon062_EvosMoves: ; 3b6de (e:76de)
;POLIWRATH
;Evolutions
@@ -1379,6 +1472,7 @@ Mon062_EvosMoves: ; 3b6de (e:76de)
db 16,HYPNOSIS
db 19,WATER_GUN
db 0
+
Mon013_EvosMoves: ; 3b6e4 (e:76e4)
;WEEDLE
;Evolutions
@@ -1386,6 +1480,7 @@ Mon013_EvosMoves: ; 3b6e4 (e:76e4)
db 0
;Learnset
db 0
+
Mon014_EvosMoves: ; 3b6e9 (e:76e9)
;KAKUNA
;Evolutions
@@ -1393,6 +1488,7 @@ Mon014_EvosMoves: ; 3b6e9 (e:76e9)
db 0
;Learnset
db 0
+
Mon015_EvosMoves: ; 3b6ee (e:76ee)
;BEEDRILL
;Evolutions
@@ -1412,6 +1508,7 @@ Mon170_EvosMoves: ; 3b6fc (e:76fc)
db 0
;Learnset
db 0
+
Mon085_EvosMoves: ; 3b6fe (e:76fe)
;DODRIO
;Evolutions
@@ -1424,6 +1521,7 @@ Mon085_EvosMoves: ; 3b6fe (e:76fe)
db 45,TRI_ATTACK
db 51,AGILITY
db 0
+
Mon057_EvosMoves: ; 3b70c (e:770c)
;PRIMEAPE
;Evolutions
@@ -1435,6 +1533,7 @@ Mon057_EvosMoves: ; 3b70c (e:770c)
db 37,SEISMIC_TOSS
db 46,THRASH
db 0
+
Mon051_EvosMoves: ; 3b718 (e:7718)
;DUGTRIO
;Evolutions
@@ -1446,6 +1545,7 @@ Mon051_EvosMoves: ; 3b718 (e:7718)
db 35,SLASH
db 47,EARTHQUAKE
db 0
+
Mon049_EvosMoves: ; 3b724 (e:7724)
;VENOMOTH
;Evolutions
@@ -1458,6 +1558,7 @@ Mon049_EvosMoves: ; 3b724 (e:7724)
db 43,SLEEP_POWDER
db 50,PSYCHIC_M
db 0
+
Mon087_EvosMoves: ; 3b732 (e:7732)
;DEWGONG
;Evolutions
@@ -1483,6 +1584,7 @@ Mon172_EvosMoves: ; 3b740 (e:7740)
db 0
;Learnset
db 0
+
Mon010_EvosMoves: ; 3b742 (e:7742)
;CATERPIE
;Evolutions
@@ -1490,6 +1592,7 @@ Mon010_EvosMoves: ; 3b742 (e:7742)
db 0
;Learnset
db 0
+
Mon011_EvosMoves: ; 3b747 (e:7747)
;METAPOD
;Evolutions
@@ -1497,6 +1600,7 @@ Mon011_EvosMoves: ; 3b747 (e:7747)
db 0
;Learnset
db 0
+
Mon012_EvosMoves: ; 3b74c (e:774c)
;BUTTERFREE
;Evolutions
@@ -1510,6 +1614,7 @@ Mon012_EvosMoves: ; 3b74c (e:774c)
db 26,WHIRLWIND
db 32,PSYBEAM
db 0
+
Mon068_EvosMoves: ; 3b75c (e:775c)
;MACHAMP
;Evolutions
@@ -1528,6 +1633,7 @@ Mon173_EvosMoves: ; 3b768 (e:7768)
db 0
;Learnset
db 0
+
Mon055_EvosMoves: ; 3b76a (e:776a)
;GOLDUCK
;Evolutions
@@ -1539,6 +1645,7 @@ Mon055_EvosMoves: ; 3b76a (e:776a)
db 48,FURY_SWIPES
db 59,HYDRO_PUMP
db 0
+
Mon097_EvosMoves: ; 3b776 (e:7776)
;HYPNO
;Evolutions
@@ -1551,6 +1658,7 @@ Mon097_EvosMoves: ; 3b776 (e:7776)
db 37,PSYCHIC_M
db 43,MEDITATE
db 0
+
Mon042_EvosMoves: ; 3b784 (e:7784)
;GOLBAT
;Evolutions
@@ -1562,6 +1670,7 @@ Mon042_EvosMoves: ; 3b784 (e:7784)
db 32,WING_ATTACK
db 43,HAZE
db 0
+
Mon150_EvosMoves: ; 3b790 (e:7790)
;MEWTWO
;Evolutions
@@ -1573,6 +1682,7 @@ Mon150_EvosMoves: ; 3b790 (e:7790)
db 75,MIST
db 81,AMNESIA
db 0
+
Mon143_EvosMoves: ; 3b79c (e:779c)
;SNORLAX
;Evolutions
@@ -1583,6 +1693,7 @@ Mon143_EvosMoves: ; 3b79c (e:779c)
db 48,DOUBLE_EDGE
db 56,HYPER_BEAM
db 0
+
Mon129_EvosMoves: ; 3b7a6 (e:77a6)
;MAGIKARP
;Evolutions
@@ -1605,6 +1716,7 @@ Mon175_EvosMoves: ; 3b7af (e:77af)
db 0
;Learnset
db 0
+
Mon089_EvosMoves: ; 3b7b1 (e:77b1)
;MUK
;Evolutions
@@ -1624,6 +1736,7 @@ Mon176_EvosMoves: ; 3b7bf (e:77bf)
db 0
;Learnset
db 0
+
Mon099_EvosMoves: ; 3b7c1 (e:77c1)
;KINGLER
;Evolutions
@@ -1635,6 +1748,7 @@ Mon099_EvosMoves: ; 3b7c1 (e:77c1)
db 42,CRABHAMMER
db 49,HARDEN
db 0
+
Mon091_EvosMoves: ; 3b7cd (e:77cd)
;CLOYSTER
;Evolutions
@@ -1649,6 +1763,7 @@ Mon177_EvosMoves: ; 3b7d1 (e:77d1)
db 0
;Learnset
db 0
+
Mon101_EvosMoves: ; 3b7d3 (e:77d3)
;ELECTRODE
;Evolutions
@@ -1660,12 +1775,14 @@ Mon101_EvosMoves: ; 3b7d3 (e:77d3)
db 40,SWIFT
db 50,EXPLOSION
db 0
+
Mon036_EvosMoves: ; 3b7df (e:77df)
;CLEFABLE
;Evolutions
db 0
;Learnset
db 0
+
Mon110_EvosMoves: ; 3b7e1 (e:77e1)
;WEEZING
;Evolutions
@@ -1677,6 +1794,7 @@ Mon110_EvosMoves: ; 3b7e1 (e:77e1)
db 49,HAZE
db 53,EXPLOSION
db 0
+
Mon053_EvosMoves: ; 3b7ed (e:77ed)
;PERSIAN
;Evolutions
@@ -1688,6 +1806,7 @@ Mon053_EvosMoves: ; 3b7ed (e:77ed)
db 37,FURY_SWIPES
db 51,SLASH
db 0
+
Mon105_EvosMoves: ; 3b7f9 (e:77f9)
;MAROWAK
;Evolutions
@@ -1706,6 +1825,7 @@ Mon178_EvosMoves: ; 3b805 (e:7805)
db 0
;Learnset
db 0
+
Mon093_EvosMoves: ; 3b807 (e:7807)
;HAUNTER
;Evolutions
@@ -1715,6 +1835,7 @@ Mon093_EvosMoves: ; 3b807 (e:7807)
db 29,HYPNOSIS
db 38,DREAM_EATER
db 0
+
Mon063_EvosMoves: ; 3b810 (e:7810)
;ABRA
;Evolutions
@@ -1722,6 +1843,7 @@ Mon063_EvosMoves: ; 3b810 (e:7810)
db 0
;Learnset
db 0
+
Mon065_EvosMoves: ; 3b815 (e:7815)
;ALAKAZAM
;Evolutions
@@ -1734,6 +1856,7 @@ Mon065_EvosMoves: ; 3b815 (e:7815)
db 38,PSYCHIC_M
db 42,REFLECT
db 0
+
Mon017_EvosMoves: ; 3b823 (e:7823)
;PIDGEOTTO
;Evolutions
@@ -1747,6 +1870,7 @@ Mon017_EvosMoves: ; 3b823 (e:7823)
db 40,AGILITY
db 49,MIRROR_MOVE
db 0
+
Mon018_EvosMoves: ; 3b834 (e:7834)
;PIDGEOT
;Evolutions
@@ -1759,12 +1883,14 @@ Mon018_EvosMoves: ; 3b834 (e:7834)
db 44,AGILITY
db 54,MIRROR_MOVE
db 0
+
Mon121_EvosMoves: ; 3b842 (e:7842)
;STARMIE
;Evolutions
db 0
;Learnset
db 0
+
Mon001_EvosMoves: ; 3b844 (e:7844)
;BULBASAUR
;Evolutions
@@ -1779,6 +1905,7 @@ Mon001_EvosMoves: ; 3b844 (e:7844)
db 41,SLEEP_POWDER
db 48,SOLARBEAM
db 0
+
Mon003_EvosMoves: ; 3b857 (e:7857)
;VENUSAUR
;Evolutions
@@ -1792,6 +1919,7 @@ Mon003_EvosMoves: ; 3b857 (e:7857)
db 55,SLEEP_POWDER
db 65,SOLARBEAM
db 0
+
Mon073_EvosMoves: ; 3b867 (e:7867)
;TENTACRUEL
;Evolutions
@@ -1813,6 +1941,7 @@ Mon179_EvosMoves: ; 3b879 (e:7879)
db 0
;Learnset
db 0
+
Mon118_EvosMoves: ; 3b87b (e:787b)
;GOLDEEN
;Evolutions
@@ -1826,6 +1955,7 @@ Mon118_EvosMoves: ; 3b87b (e:787b)
db 45,HORN_DRILL
db 54,AGILITY
db 0
+
Mon119_EvosMoves: ; 3b88c (e:788c)
;SEAKING
;Evolutions
@@ -1866,6 +1996,7 @@ Mon183_EvosMoves: ; 3b8a0 (e:78a0)
db 0
;Learnset
db 0
+
Mon077_EvosMoves: ; 3b8a2 (e:78a2)
;PONYTA
;Evolutions
@@ -1879,6 +2010,7 @@ Mon077_EvosMoves: ; 3b8a2 (e:78a2)
db 43,TAKE_DOWN
db 48,AGILITY
db 0
+
Mon078_EvosMoves: ; 3b8b3 (e:78b3)
;RAPIDASH
;Evolutions
@@ -1891,6 +2023,7 @@ Mon078_EvosMoves: ; 3b8b3 (e:78b3)
db 47,TAKE_DOWN
db 55,AGILITY
db 0
+
Mon019_EvosMoves: ; 3b8c1 (e:78c1)
;RATTATA
;Evolutions
@@ -1902,6 +2035,7 @@ Mon019_EvosMoves: ; 3b8c1 (e:78c1)
db 23,FOCUS_ENERGY
db 34,SUPER_FANG
db 0
+
Mon020_EvosMoves: ; 3b8ce (e:78ce)
;RATICATE
;Evolutions
@@ -1912,6 +2046,7 @@ Mon020_EvosMoves: ; 3b8ce (e:78ce)
db 27,FOCUS_ENERGY
db 41,SUPER_FANG
db 0
+
Mon033_EvosMoves: ; 3b8d8 (e:78d8)
;NIDORINO
;Evolutions
@@ -1925,6 +2060,7 @@ Mon033_EvosMoves: ; 3b8d8 (e:78d8)
db 41,HORN_DRILL
db 50,DOUBLE_KICK
db 0
+
Mon030_EvosMoves: ; 3b8ea (e:78ea)
;NIDORINA
;Evolutions
@@ -1938,6 +2074,7 @@ Mon030_EvosMoves: ; 3b8ea (e:78ea)
db 41,FURY_SWIPES
db 50,DOUBLE_KICK
db 0
+
Mon074_EvosMoves: ; 3b8fc (e:78fc)
;GEODUDE
;Evolutions
@@ -1951,6 +2088,7 @@ Mon074_EvosMoves: ; 3b8fc (e:78fc)
db 31,EARTHQUAKE
db 36,EXPLOSION
db 0
+
Mon137_EvosMoves: ; 3b90d (e:790d)
;PORYGON
;Evolutions
@@ -1961,6 +2099,7 @@ Mon137_EvosMoves: ; 3b90d (e:790d)
db 35,AGILITY
db 42,TRI_ATTACK
db 0
+
Mon142_EvosMoves: ; 3b917 (e:7917)
;AERODACTYL
;Evolutions
@@ -1978,6 +2117,7 @@ Mon184_EvosMoves: ; 3b921 (e:7921)
db 0
;Learnset
db 0
+
Mon081_EvosMoves: ; 3b923 (e:7923)
;MAGNEMITE
;Evolutions
@@ -2005,6 +2145,7 @@ Mon186_EvosMoves: ; 3b936 (e:7936)
db 0
;Learnset
db 0
+
Mon004_EvosMoves: ; 3b938 (e:7938)
;CHARMANDER
;Evolutions
@@ -2018,6 +2159,7 @@ Mon004_EvosMoves: ; 3b938 (e:7938)
db 38,FLAMETHROWER
db 46,FIRE_SPIN
db 0
+
Mon007_EvosMoves: ; 3b949 (e:7949)
;SQUIRTLE
;Evolutions
@@ -2031,6 +2173,7 @@ Mon007_EvosMoves: ; 3b949 (e:7949)
db 35,SKULL_BASH
db 42,HYDRO_PUMP
db 0
+
Mon005_EvosMoves: ; 3b95a (e:795a)
;CHARMELEON
;Evolutions
@@ -2044,6 +2187,7 @@ Mon005_EvosMoves: ; 3b95a (e:795a)
db 42,FLAMETHROWER
db 56,FIRE_SPIN
db 0
+
Mon008_EvosMoves: ; 3b96b (e:796b)
;WARTORTLE
;Evolutions
@@ -2057,6 +2201,7 @@ Mon008_EvosMoves: ; 3b96b (e:796b)
db 39,SKULL_BASH
db 47,HYDRO_PUMP
db 0
+
Mon006_EvosMoves: ; 3b97c (e:797c)
;CHARIZARD
;Evolutions
@@ -2097,6 +2242,7 @@ Mon190_EvosMoves: ; 3b990 (e:7990)
db 0
;Learnset
db 0
+
Mon043_EvosMoves: ; 3b992 (e:7992)
;ODDISH
;Evolutions
@@ -2110,10 +2256,11 @@ Mon043_EvosMoves: ; 3b992 (e:7992)
db 33,PETAL_DANCE
db 46,SOLARBEAM
db 0
+
Mon044_EvosMoves: ; 3b9a3 (e:79a3)
;GLOOM
;Evolutions
- db EV_ITEM,LEAF_STONE ,1,VILEPLUME
+ db EV_ITEM,LEAF_STONE,1,VILEPLUME
db 0
;Learnset
db 15,POISONPOWDER
@@ -2123,6 +2270,7 @@ Mon044_EvosMoves: ; 3b9a3 (e:79a3)
db 38,PETAL_DANCE
db 52,SOLARBEAM
db 0
+
Mon045_EvosMoves: ; 3b9b5 (e:79b5)
;VILEPLUME
;Evolutions
@@ -2132,6 +2280,7 @@ Mon045_EvosMoves: ; 3b9b5 (e:79b5)
db 17,STUN_SPORE
db 19,SLEEP_POWDER
db 0
+
Mon069_EvosMoves: ; 3b9bd (e:79bd)
;BELLSPROUT
;Evolutions
@@ -2146,10 +2295,11 @@ Mon069_EvosMoves: ; 3b9bd (e:79bd)
db 33,RAZOR_LEAF
db 42,SLAM
db 0
+
Mon070_EvosMoves: ; 3b9d0 (e:79d0)
;WEEPINBELL
;Evolutions
- db EV_ITEM,LEAF_STONE ,1,VICTREEBEL
+ db EV_ITEM,LEAF_STONE,1,VICTREEBEL
db 0
;Learnset
db 13,WRAP
@@ -2160,6 +2310,7 @@ Mon070_EvosMoves: ; 3b9d0 (e:79d0)
db 38,RAZOR_LEAF
db 49,SLAM
db 0
+
Mon071_EvosMoves: ; 3b9e4 (e:79e4)
;VICTREEBEL
;Evolutions
diff --git a/data/hidden_objects.asm b/data/hidden_objects.asm
index 74d053bb..8170cf5a 100755
--- a/data/hidden_objects.asm
+++ b/data/hidden_objects.asm
@@ -28,8 +28,8 @@ HiddenObjectMaps: ; 46a40 (11:6a40)
db SAFFRON_GYM
db MT_MOON_POKECENTER
db ROCK_TUNNEL_POKECENTER
- db BATTLE_CENTER
db TRADE_CENTER
+ db COLOSSEUM
db VIRIDIAN_FOREST
db MT_MOON_3
db INDIGO_PLATEAU
@@ -117,8 +117,8 @@ HiddenObjectPointers: ; 46a96 (11:6a96)
dw SaffronGymHiddenObjects
dw MtMoonPokecenterHiddenObjects
dw RockTunnelPokecenterHiddenObjects
- dw BattleCenterHiddenObjects
dw TradeCenterHiddenObjects
+ dw ColosseumHiddenObjects
dw ViridianForestHiddenObjects
dw MtMoon3HiddenObjects
dw IndigoPlateauHiddenObjects
@@ -175,7 +175,7 @@ HiddenObjectPointers: ; 46a96 (11:6a96)
dw Route4HiddenObjects
; format: y-coord, x-coord, text id/item id, object routine
-BattleCenterHiddenObjects: ; 46b40 (11:6b40)
+TradeCenterHiddenObjects: ; 46b40 (11:6b40)
db $04,$05,$d0
db BANK(CableClubRightGameboy)
dw CableClubRightGameboy
@@ -183,7 +183,7 @@ BattleCenterHiddenObjects: ; 46b40 (11:6b40)
db BANK(CableClubLeftGameboy)
dw CableClubLeftGameboy
db $FF
-TradeCenterHiddenObjects: ; 46b4d (11:6b4d)
+ColosseumHiddenObjects: ; 46b4d (11:6b4d)
db $04,$05,$d0
db BANK(CableClubRightGameboy)
dw CableClubRightGameboy
@@ -233,10 +233,10 @@ ViridianPokecenterHiddenObjects: ; 46b93 (11:6b93)
ViridianMartHiddenObjects: ; 46ba0 (11:6ba0)
db $FF
ViridianSchoolHiddenObjects: ; 46ba1 (11:6ba1)
- db $04,$03,$20 ; ViridianSchoolNotebook
+ db $04,$03,(ViridianSchoolNotebook_id - TextPredefs) / 2 + 1
db Bank(PrintNotebookText)
dw PrintNotebookText
- db $00,$03,$21 ; ViridianSchoolBlackboard
+ db $00,$03,(ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1
db BANK(PrintBlackboardLinkCableText)
dw PrintBlackboardLinkCableText
db $FF
@@ -743,13 +743,13 @@ LavenderHouse1HiddenObjects: ; 46fc2 (11:6fc2)
dw PrintMagazinesText
db $FF
CeladonMansion5HiddenObjects: ; 46fd5 (11:6fd5)
- db $00,$03,$34 ; LinkCableHelp
+ db $00,$03,(LinkCableHelp_id - TextPredefs) / 2 + 1
db BANK(PrintBlackboardLinkCableText)
dw PrintBlackboardLinkCableText
- db $00,$04,$34 ; LinkCableHelp
+ db $00,$04,(LinkCableHelp_id - TextPredefs) / 2 + 1
db BANK(PrintBlackboardLinkCableText)
dw PrintBlackboardLinkCableText
- db $04,$03,$35 ; TMNotebook
+ db $04,$03,(TMNotebook_id - TextPredefs) / 2 + 1
db Bank(PrintNotebookText)
dw PrintNotebookText
db $FF
diff --git a/data/item_prices.asm b/data/item_prices.asm
index f6882fd0..aa5cb21e 100755
--- a/data/item_prices.asm
+++ b/data/item_prices.asm
@@ -82,17 +82,17 @@ ItemPrices: ; 4608 (1:4608)
money 0 ; MAX_ETHER
money 0 ; ELIXER
money 0 ; MAX_ELIXER
- money 0 ; B2F
- money 0 ; B1F
- money 0 ; 1F
- money 0 ; 2F
- money 0 ; 3F
- money 0 ; 4F
- money 0 ; 5F
- money 0 ; 6F
- money 0 ; 7F
- money 0 ; 8F
- money 0 ; 9F
- money 0 ; 10F
- money 0 ; 11F
- money 0 ; B4F
+ money 0 ; FLOOR_B2F
+ money 0 ; FLOOR_B1F
+ money 0 ; FLOOR_1F
+ money 0 ; FLOOR_2F
+ money 0 ; FLOOR_3F
+ money 0 ; FLOOR_4F
+ money 0 ; FLOOR_5F
+ money 0 ; FLOOR_6F
+ money 0 ; FLOOR_7F
+ money 0 ; FLOOR_8F
+ money 0 ; FLOOR_9F
+ money 0 ; FLOOR_10F
+ money 0 ; FLOOR_11F
+ money 0 ; FLOOR_B4F
diff --git a/data/mapHeaders/battlecenterm.asm b/data/mapHeaders/battlecenterm.asm
deleted file mode 100755
index 984f7e38..00000000
--- a/data/mapHeaders/battlecenterm.asm
+++ /dev/null
@@ -1,6 +0,0 @@
-BattleCenterM_h: ; 0x4fd04 to 0x4fd10 (12 bytes) (id=239)
- db CLUB ; tileset
- db BATTLE_CENTER_HEIGHT, BATTLE_CENTER_WIDTH ; dimensions (y, x)
- dw BattleCenterMBlocks, BattleCenterMTextPointers, BattleCenterMScript ; blocks, texts, scripts
- db $00 ; connections
- dw BattleCenterMObject ; objects
diff --git a/data/mapHeaders/celadoncity.asm b/data/mapHeaders/celadoncity.asm
index 12a1731a..7e3a6c06 100755
--- a/data/mapHeaders/celadoncity.asm
+++ b/data/mapHeaders/celadoncity.asm
@@ -3,6 +3,6 @@ CeladonCity_h: ; 18000 (6:4000)
db CELADON_CITY_HEIGHT, CELADON_CITY_WIDTH ; dimensions (y, x)
dw CeladonCityBlocks, CeladonCityTextPointers, CeladonCityScript ; blocks, texts, scripts
db WEST | EAST ; connections
- WEST_MAP_CONNECTION ROUTE_16, ROUTE_16_WIDTH, 4, 0, ROUTE_16_HEIGHT, Route16Blocks, CELADON_CITY_WIDTH
- EAST_MAP_CONNECTION ROUTE_7, ROUTE_7_WIDTH, 4, 0, ROUTE_7_HEIGHT, Route7Blocks, CELADON_CITY_WIDTH
+ WEST_MAP_CONNECTION CELADON_CITY, ROUTE_16, 4, 0, Route16Blocks
+ EAST_MAP_CONNECTION CELADON_CITY, ROUTE_7, 4, 0, Route7Blocks, 1
dw CeladonCityObject ; objects
diff --git a/data/mapHeaders/ceruleancity.asm b/data/mapHeaders/ceruleancity.asm
index 61b04719..56cab9f7 100755
--- a/data/mapHeaders/ceruleancity.asm
+++ b/data/mapHeaders/ceruleancity.asm
@@ -3,8 +3,8 @@ CeruleanCity_h: ; 0x1874e to 0x18786 (56 bytes) (bank=6) (id=3)
db CERULEAN_CITY_HEIGHT, CERULEAN_CITY_WIDTH ; dimensions (y, x)
dw CeruleanCityBlocks, CeruleanCityTextPointers, CeruleanCityScript ; blocks, texts, scripts
db NORTH | SOUTH | WEST | EAST ; connections
- NORTH_MAP_CONNECTION ROUTE_24, ROUTE_24_WIDTH, ROUTE_24_HEIGHT, 5, 0, ROUTE_24_WIDTH, Route24Blocks
- SOUTH_MAP_CONNECTION ROUTE_5, ROUTE_5_WIDTH, 5, 0, ROUTE_5_WIDTH, Route5Blocks, CERULEAN_CITY_WIDTH, CERULEAN_CITY_HEIGHT
- WEST_MAP_CONNECTION ROUTE_4, ROUTE_4_WIDTH, 4, 0, ROUTE_4_HEIGHT, Route4Blocks, CERULEAN_CITY_WIDTH
- EAST_MAP_CONNECTION ROUTE_9, ROUTE_9_WIDTH, 4, 0, ROUTE_9_HEIGHT, Route9Blocks, CERULEAN_CITY_WIDTH
+ NORTH_MAP_CONNECTION CERULEAN_CITY, ROUTE_24, 5, 0, Route24Blocks
+ SOUTH_MAP_CONNECTION CERULEAN_CITY, ROUTE_5, 5, 0, Route5Blocks, 1
+ WEST_MAP_CONNECTION CERULEAN_CITY, ROUTE_4, 4, 0, Route4Blocks
+ EAST_MAP_CONNECTION CERULEAN_CITY, ROUTE_9, 4, 0, Route9Blocks
dw CeruleanCityObject ; objects
diff --git a/data/mapHeaders/cinnabarisland.asm b/data/mapHeaders/cinnabarisland.asm
index f0da170f..60ba7560 100755
--- a/data/mapHeaders/cinnabarisland.asm
+++ b/data/mapHeaders/cinnabarisland.asm
@@ -3,6 +3,6 @@ CinnabarIsland_h: ; 0x1c000 to 0x1c022 (34 bytes) (bank=7) (id=8)
db CINNABAR_ISLAND_HEIGHT, CINNABAR_ISLAND_WIDTH ; dimensions (y, x)
dw CinnabarIslandBlocks, CinnabarIslandTextPointers, CinnabarIslandScript ; blocks, texts, scripts
db NORTH | EAST ; connections
- NORTH_MAP_CONNECTION ROUTE_21, ROUTE_21_WIDTH, ROUTE_21_HEIGHT, 0, 0, ROUTE_21_WIDTH, Route21Blocks
- EAST_MAP_CONNECTION ROUTE_20, ROUTE_20_WIDTH, 0, 0, ROUTE_20_HEIGHT, Route20Blocks, CINNABAR_ISLAND_WIDTH
+ NORTH_MAP_CONNECTION CINNABAR_ISLAND, ROUTE_21, 0, 0, Route21Blocks
+ EAST_MAP_CONNECTION CINNABAR_ISLAND, ROUTE_20, 0, 0, Route20Blocks
dw CinnabarIslandObject ; objects
diff --git a/data/mapHeaders/colosseum.asm b/data/mapHeaders/colosseum.asm
new file mode 100644
index 00000000..94728b8d
--- /dev/null
+++ b/data/mapHeaders/colosseum.asm
@@ -0,0 +1,6 @@
+Colosseum_h: ; 0x4fd71 to 0x4fd7d (12 bytes) (id=240)
+ db CLUB ; tileset
+ db COLOSSEUM_HEIGHT, COLOSSEUM_WIDTH ; dimensions (y, x)
+ dw ColosseumBlocks, ColosseumTextPointers, ColosseumScript ; blocks, texts, scripts
+ db $00 ; connections
+ dw ColosseumObject ; objects
diff --git a/data/mapHeaders/fuchsiacity.asm b/data/mapHeaders/fuchsiacity.asm
index 7a3e4f66..998f7bb4 100755
--- a/data/mapHeaders/fuchsiacity.asm
+++ b/data/mapHeaders/fuchsiacity.asm
@@ -3,7 +3,7 @@ FuchsiaCity_h: ; 0x18ba7 to 0x18bd4 (45 bytes) (bank=6) (id=7)
db FUCHSIA_CITY_HEIGHT, FUCHSIA_CITY_WIDTH ; dimensions (y, x)
dw FuchsiaCityBlocks, FuchsiaCityTextPointers, FuchsiaCityScript ; blocks, texts, scripts
db SOUTH | WEST | EAST ; connections
- SOUTH_MAP_CONNECTION ROUTE_19, ROUTE_19_WIDTH, 5, 0, ROUTE_19_WIDTH, Route19Blocks, FUCHSIA_CITY_WIDTH, FUCHSIA_CITY_HEIGHT
- WEST_MAP_CONNECTION ROUTE_18, ROUTE_18_WIDTH, 4, 0, ROUTE_18_HEIGHT, Route18Blocks, FUCHSIA_CITY_WIDTH
- EAST_MAP_CONNECTION ROUTE_15, ROUTE_15_WIDTH, 4, 0, ROUTE_15_HEIGHT, Route15Blocks, FUCHSIA_CITY_WIDTH
+ SOUTH_MAP_CONNECTION FUCHSIA_CITY, ROUTE_19, 5, 0, Route19Blocks
+ WEST_MAP_CONNECTION FUCHSIA_CITY, ROUTE_18, 4, 0, Route18Blocks
+ EAST_MAP_CONNECTION FUCHSIA_CITY, ROUTE_15, 4, 0, Route15Blocks
dw FuchsiaCityObject ; objects
diff --git a/data/mapHeaders/indigoplateau.asm b/data/mapHeaders/indigoplateau.asm
index 9705e3ee..87c37501 100755
--- a/data/mapHeaders/indigoplateau.asm
+++ b/data/mapHeaders/indigoplateau.asm
@@ -3,5 +3,5 @@ IndigoPlateau_h: ; 0x5091e to 0x50935 (23 bytes) (id=9)
db INDIGO_PLATEAU_HEIGHT, INDIGO_PLATEAU_WIDTH ; dimensions (y, x)
dw IndigoPlateauBlocks, IndigoPlateauTextPointers, IndigoPlateauScript ; blocks, texts, scripts
db SOUTH ; connections
- SOUTH_MAP_CONNECTION ROUTE_23, ROUTE_23_WIDTH, 0, 0, ROUTE_23_WIDTH, Route23Blocks, INDIGO_PLATEAU_WIDTH, INDIGO_PLATEAU_HEIGHT
+ SOUTH_MAP_CONNECTION INDIGO_PLATEAU, ROUTE_23, 0, 0, Route23Blocks
dw IndigoPlateauObject ; objects
diff --git a/data/mapHeaders/lavendertown.asm b/data/mapHeaders/lavendertown.asm
index 2880dc60..72952d41 100755
--- a/data/mapHeaders/lavendertown.asm
+++ b/data/mapHeaders/lavendertown.asm
@@ -3,7 +3,7 @@ LavenderTown_h: ; 0x44000 to 0x4402d (45 bytes) (bank=11) (id=4)
db LAVENDER_TOWN_HEIGHT, LAVENDER_TOWN_WIDTH ; dimensions (y, x)
dw LavenderTownBlocks, LavenderTownTextPointers, LavenderTownScript ; blocks, texts, scripts
db NORTH | SOUTH | WEST ; connections
- NORTH_MAP_CONNECTION ROUTE_10, ROUTE_10_WIDTH, ROUTE_10_HEIGHT, 0, 0, ROUTE_10_WIDTH, Route10Blocks
- SOUTH_MAP_CONNECTION ROUTE_12, ROUTE_12_WIDTH, 0, 0, ROUTE_12_WIDTH, Route12Blocks, LAVENDER_TOWN_WIDTH, LAVENDER_TOWN_HEIGHT
- WEST_MAP_CONNECTION ROUTE_8, ROUTE_8_WIDTH, 0, 0, ROUTE_8_HEIGHT, Route8Blocks, LAVENDER_TOWN_WIDTH
+ NORTH_MAP_CONNECTION LAVENDER_TOWN, ROUTE_10, 0, 0, Route10Blocks
+ SOUTH_MAP_CONNECTION LAVENDER_TOWN, ROUTE_12, 0, 0, Route12Blocks, 1
+ WEST_MAP_CONNECTION LAVENDER_TOWN, ROUTE_8, 0, 0, Route8Blocks
dw LavenderTownObject ; objects
diff --git a/data/mapHeaders/pallettown.asm b/data/mapHeaders/pallettown.asm
index 248c49b4..5ad13aea 100755
--- a/data/mapHeaders/pallettown.asm
+++ b/data/mapHeaders/pallettown.asm
@@ -3,6 +3,6 @@ PalletTown_h: ; 182a1 (6:42a1)
db PALLET_TOWN_HEIGHT, PALLET_TOWN_WIDTH ; dimensions
dw PalletTownBlocks, PalletTownTextPointers, PalletTownScript
db NORTH | SOUTH ; connections
- NORTH_MAP_CONNECTION ROUTE_1, ROUTE_1_WIDTH, ROUTE_1_HEIGHT, 0, 0, ROUTE_1_WIDTH, Route1Blocks
- SOUTH_MAP_CONNECTION ROUTE_21, ROUTE_21_WIDTH, 0, 0, ROUTE_21_WIDTH, Route21Blocks, PALLET_TOWN_WIDTH, PALLET_TOWN_HEIGHT
+ NORTH_MAP_CONNECTION PALLET_TOWN, ROUTE_1, 0, 0, Route1Blocks
+ SOUTH_MAP_CONNECTION PALLET_TOWN, ROUTE_21, 0, 0, Route21Blocks, 1
dw PalletTownObject
diff --git a/data/mapHeaders/pewtercity.asm b/data/mapHeaders/pewtercity.asm
index b5e68adc..69c5d978 100755
--- a/data/mapHeaders/pewtercity.asm
+++ b/data/mapHeaders/pewtercity.asm
@@ -3,8 +3,8 @@ PewterCity_h: ; 0x18554 to 0x18576 (34 bytes) (bank=6) (id=2)
db PEWTER_CITY_HEIGHT, PEWTER_CITY_WIDTH ; dimensions (y, x)
dw PewterCityBlocks, PewterCityTextPointers, PewterCityScript ; blocks, texts, scripts
db SOUTH | EAST ; connections
- SOUTH_MAP_CONNECTION ROUTE_2, ROUTE_2_WIDTH, 5, 0, ROUTE_2_WIDTH, Route2Blocks, PEWTER_CITY_WIDTH, PEWTER_CITY_HEIGHT
- EAST_MAP_CONNECTION ROUTE_3, ROUTE_3_WIDTH, 4, 0, ROUTE_3_HEIGHT, Route3Blocks, PEWTER_CITY_WIDTH
+ SOUTH_MAP_CONNECTION PEWTER_CITY, ROUTE_2, 5, 0, Route2Blocks
+ EAST_MAP_CONNECTION PEWTER_CITY, ROUTE_3, 4, 0, Route3Blocks
dw PewterCityObject ; objects
db $0
diff --git a/data/mapHeaders/route1.asm b/data/mapHeaders/route1.asm
index cd849504..6a8db0c4 100755
--- a/data/mapHeaders/route1.asm
+++ b/data/mapHeaders/route1.asm
@@ -3,6 +3,6 @@ Route1_h: ; 0x1c0c3 to 0x1c0e5 (34 bytes) (bank=7) (id=12)
db ROUTE_1_HEIGHT, ROUTE_1_WIDTH ; dimensions (y, x)
dw Route1Blocks, Route1TextPointers, Route1Script ; blocks, texts, scripts
db NORTH | SOUTH ; connections
- NORTH_MAP_CONNECTION VIRIDIAN_CITY, VIRIDIAN_CITY_WIDTH, VIRIDIAN_CITY_HEIGHT, -3, 2, VIRIDIAN_CITY_WIDTH - 4, ViridianCityBlocks
- SOUTH_MAP_CONNECTION PALLET_TOWN, PALLET_TOWN_WIDTH, 0, 0, PALLET_TOWN_WIDTH, PalletTownBlocks, ROUTE_1_WIDTH, ROUTE_1_HEIGHT
+ NORTH_MAP_CONNECTION ROUTE_1, VIRIDIAN_CITY, -3, 2, ViridianCityBlocks
+ SOUTH_MAP_CONNECTION ROUTE_1, PALLET_TOWN, 0, 0, PalletTownBlocks, 1
dw Route1Object ; objects
diff --git a/data/mapHeaders/route10.asm b/data/mapHeaders/route10.asm
index 9d41ff76..fab0e4a5 100755
--- a/data/mapHeaders/route10.asm
+++ b/data/mapHeaders/route10.asm
@@ -3,6 +3,6 @@ Route10_h: ; 0x582d4 to 0x582f6 (34 bytes) (id=21)
db ROUTE_10_HEIGHT, ROUTE_10_WIDTH ; dimensions (y, x)
dw Route10Blocks, Route10TextPointers, Route10Script ; blocks, texts, scripts
db SOUTH | WEST ; connections
- SOUTH_MAP_CONNECTION LAVENDER_TOWN, LAVENDER_TOWN_WIDTH, 0, 0, LAVENDER_TOWN_WIDTH, LavenderTownBlocks, ROUTE_10_WIDTH, ROUTE_10_HEIGHT
- WEST_MAP_CONNECTION ROUTE_9, ROUTE_9_WIDTH, 0, 0, ROUTE_9_HEIGHT, Route9Blocks, ROUTE_10_WIDTH
+ SOUTH_MAP_CONNECTION ROUTE_10, LAVENDER_TOWN, 0, 0, LavenderTownBlocks
+ WEST_MAP_CONNECTION ROUTE_10, ROUTE_9, 0, 0, Route9Blocks
dw Route10Object ; objects
diff --git a/data/mapHeaders/route11.asm b/data/mapHeaders/route11.asm
index 7ab3a478..66c54bbe 100755
--- a/data/mapHeaders/route11.asm
+++ b/data/mapHeaders/route11.asm
@@ -3,6 +3,6 @@ Route11_h: ; 0x584be to 0x584e0 (34 bytes) (id=22)
db ROUTE_11_HEIGHT, ROUTE_11_WIDTH ; dimensions (y, x)
dw Route11Blocks, Route11TextPointers, Route11Script ; blocks, texts, scripts
db WEST | EAST ; connections
- WEST_MAP_CONNECTION VERMILION_CITY, VERMILION_CITY_WIDTH, -3, 1, VERMILION_CITY_HEIGHT - 3, VermilionCityBlocks, ROUTE_11_WIDTH
- EAST_MAP_CONNECTION ROUTE_12, ROUTE_12_WIDTH, -3, 24, ROUTE_12_HEIGHT - 39, Route12Blocks, ROUTE_11_WIDTH
+ WEST_MAP_CONNECTION ROUTE_11, VERMILION_CITY, -3, 1, VermilionCityBlocks
+ EAST_MAP_CONNECTION ROUTE_11, ROUTE_12, -3, 24, Route12Blocks, 1
dw Route11Object ; objects
diff --git a/data/mapHeaders/route12.asm b/data/mapHeaders/route12.asm
index 44e9e731..6132a244 100755
--- a/data/mapHeaders/route12.asm
+++ b/data/mapHeaders/route12.asm
@@ -3,7 +3,7 @@ Route12_h: ; 0x5866d to 0x5869a (45 bytes) (id=23)
db ROUTE_12_HEIGHT, ROUTE_12_WIDTH ; dimensions (y, x)
dw Route12Blocks, Route12TextPointers, Route12Script ; blocks, texts, scripts
db NORTH | SOUTH | WEST ; connections
- NORTH_MAP_CONNECTION LAVENDER_TOWN, LAVENDER_TOWN_WIDTH, LAVENDER_TOWN_HEIGHT, 0, 0, LAVENDER_TOWN_WIDTH, LavenderTownBlocks
- SOUTH_MAP_CONNECTION ROUTE_13, ROUTE_13_WIDTH, -3, 17, ROUTE_13_WIDTH - 17, Route13Blocks, ROUTE_12_WIDTH, ROUTE_12_HEIGHT
- WEST_MAP_CONNECTION ROUTE_11, ROUTE_11_WIDTH, 27, 0, ROUTE_11_HEIGHT, Route11Blocks, ROUTE_12_WIDTH
+ NORTH_MAP_CONNECTION ROUTE_12, LAVENDER_TOWN, 0, 0, LavenderTownBlocks
+ SOUTH_MAP_CONNECTION ROUTE_12, ROUTE_13, -3, 17, Route13Blocks
+ WEST_MAP_CONNECTION ROUTE_12, ROUTE_11, 27, 0, Route11Blocks
dw Route12Object ; objects
diff --git a/data/mapHeaders/route13.asm b/data/mapHeaders/route13.asm
index 7720e9b7..9a821208 100755
--- a/data/mapHeaders/route13.asm
+++ b/data/mapHeaders/route13.asm
@@ -3,6 +3,6 @@ Route13_h: ; 0x5480c to 0x5482e (34 bytes) (id=24)
db ROUTE_13_HEIGHT, ROUTE_13_WIDTH ; dimensions (y, x)
dw Route13Blocks, Route13TextPointers, Route13Script ; blocks, texts, scripts
db NORTH | WEST ; connections
- NORTH_MAP_CONNECTION ROUTE_12, ROUTE_12_WIDTH, ROUTE_12_HEIGHT, 20, 0, ROUTE_12_WIDTH, Route12Blocks
- WEST_MAP_CONNECTION ROUTE_14, ROUTE_14_WIDTH, 0, 0, ROUTE_14_HEIGHT - 15, Route14Blocks, ROUTE_13_WIDTH
+ NORTH_MAP_CONNECTION ROUTE_13, ROUTE_12, 20, 0, Route12Blocks
+ WEST_MAP_CONNECTION ROUTE_13, ROUTE_14, 0, 0, Route14Blocks
dw Route13Object ; objects
diff --git a/data/mapHeaders/route14.asm b/data/mapHeaders/route14.asm
index 1ae75932..e4163126 100755
--- a/data/mapHeaders/route14.asm
+++ b/data/mapHeaders/route14.asm
@@ -3,6 +3,6 @@ Route14_h: ; 0x54999 to 0x549bb (34 bytes) (id=25)
db ROUTE_14_HEIGHT, ROUTE_14_WIDTH ; dimensions (y, x)
dw Route14Blocks, Route14TextPointers, Route14Script ; blocks, texts, scripts
db WEST | EAST ; connections
- WEST_MAP_CONNECTION ROUTE_15, ROUTE_15_WIDTH, 18, 0, ROUTE_15_HEIGHT, Route15Blocks, ROUTE_14_WIDTH
- EAST_MAP_CONNECTION ROUTE_13, ROUTE_13_WIDTH, 0, 0, ROUTE_13_HEIGHT, Route13Blocks, ROUTE_14_WIDTH
+ WEST_MAP_CONNECTION ROUTE_14, ROUTE_15, 18, 0, Route15Blocks
+ EAST_MAP_CONNECTION ROUTE_14, ROUTE_13, 0, 0, Route13Blocks
dw Route14Object ; objects
diff --git a/data/mapHeaders/route15.asm b/data/mapHeaders/route15.asm
index 579dada0..6d2e8859 100755
--- a/data/mapHeaders/route15.asm
+++ b/data/mapHeaders/route15.asm
@@ -3,6 +3,6 @@ Route15_h: ; 0x5892c to 0x5894e (34 bytes) (id=26)
db ROUTE_15_HEIGHT, ROUTE_15_WIDTH ; dimensions (y, x)
dw Route15Blocks, Route15TextPointers, Route15Script ; blocks, texts, scripts
db WEST | EAST ; connections
- WEST_MAP_CONNECTION FUCHSIA_CITY, FUCHSIA_CITY_WIDTH, -3, 1, FUCHSIA_CITY_HEIGHT - 3, FuchsiaCityBlocks, ROUTE_15_WIDTH
- EAST_MAP_CONNECTION ROUTE_14, ROUTE_14_WIDTH, -3, 15, ROUTE_14_HEIGHT - 15, Route14Blocks, ROUTE_15_WIDTH
+ WEST_MAP_CONNECTION ROUTE_15, FUCHSIA_CITY, -3, 1, FuchsiaCityBlocks
+ EAST_MAP_CONNECTION ROUTE_15, ROUTE_14, -3, 15, Route14Blocks
dw Route15Object ; objects
diff --git a/data/mapHeaders/route16.asm b/data/mapHeaders/route16.asm
index 4f1d8325..42678ed3 100755
--- a/data/mapHeaders/route16.asm
+++ b/data/mapHeaders/route16.asm
@@ -3,6 +3,6 @@ Route16_h: ; 0x58ada to 0x58afc (34 bytes) (id=27)
db ROUTE_16_HEIGHT, ROUTE_16_WIDTH ; dimensions (y, x)
dw Route16Blocks, Route16TextPointers, Route16Script ; blocks, texts, scripts
db SOUTH | EAST ; connections
- SOUTH_MAP_CONNECTION ROUTE_17, ROUTE_17_WIDTH, 0, 0, ROUTE_17_WIDTH, Route17Blocks, ROUTE_16_WIDTH, ROUTE_16_HEIGHT
- EAST_MAP_CONNECTION CELADON_CITY, CELADON_CITY_WIDTH, -3, 1, CELADON_CITY_HEIGHT - 3, CeladonCityBlocks, ROUTE_16_WIDTH
+ SOUTH_MAP_CONNECTION ROUTE_16, ROUTE_17, 0, 0, Route17Blocks
+ EAST_MAP_CONNECTION ROUTE_16, CELADON_CITY, -3, 1, CeladonCityBlocks, 1
dw Route16Object ; objects
diff --git a/data/mapHeaders/route17.asm b/data/mapHeaders/route17.asm
index 4f7f2d33..577fe009 100755
--- a/data/mapHeaders/route17.asm
+++ b/data/mapHeaders/route17.asm
@@ -3,6 +3,6 @@ Route17_h: ; 0x54b20 to 0x54b42 (34 bytes) (id=28)
db ROUTE_17_HEIGHT, ROUTE_17_WIDTH ; dimensions (y, x)
dw Route17Blocks, Route17TextPointers, Route17Script ; blocks, texts, scripts
db NORTH | SOUTH ; connections
- NORTH_MAP_CONNECTION ROUTE_16, ROUTE_16_WIDTH, ROUTE_16_HEIGHT, 0, 0, ROUTE_16_WIDTH - 7, Route16Blocks
- SOUTH_MAP_CONNECTION ROUTE_18, ROUTE_18_WIDTH, 0, 0, ROUTE_18_WIDTH - 12, Route18Blocks, ROUTE_17_WIDTH, ROUTE_17_HEIGHT
+ NORTH_MAP_CONNECTION ROUTE_17, ROUTE_16, 0, 0, Route16Blocks
+ SOUTH_MAP_CONNECTION ROUTE_17, ROUTE_18, 0, 0, Route18Blocks, 1
dw Route17Object ; objects
diff --git a/data/mapHeaders/route18.asm b/data/mapHeaders/route18.asm
index d37ebcf9..8fb1b3bc 100755
--- a/data/mapHeaders/route18.asm
+++ b/data/mapHeaders/route18.asm
@@ -3,6 +3,6 @@ Route18_h: ; 0x58c38 to 0x58c5a (34 bytes) (id=29)
db ROUTE_18_HEIGHT, ROUTE_18_WIDTH ; dimensions (y, x)
dw Route18Blocks, Route18TextPointers, Route18Script ; blocks, texts, scripts
db NORTH | EAST ; connections
- NORTH_MAP_CONNECTION ROUTE_17, ROUTE_17_WIDTH, ROUTE_17_HEIGHT, 0, 0, ROUTE_17_WIDTH, Route17Blocks
- EAST_MAP_CONNECTION FUCHSIA_CITY, FUCHSIA_CITY_WIDTH, -3, 1, FUCHSIA_CITY_HEIGHT - 3, FuchsiaCityBlocks, ROUTE_18_WIDTH
+ NORTH_MAP_CONNECTION ROUTE_18, ROUTE_17, 0, 0, Route17Blocks
+ EAST_MAP_CONNECTION ROUTE_18, FUCHSIA_CITY, -3, 1, FuchsiaCityBlocks, 1
dw Route18Object ; objects
diff --git a/data/mapHeaders/route19.asm b/data/mapHeaders/route19.asm
index f1185425..2ca85cc1 100755
--- a/data/mapHeaders/route19.asm
+++ b/data/mapHeaders/route19.asm
@@ -3,6 +3,6 @@ Route19_h: ; 0x54e78 to 0x54e9a (34 bytes) (id=30)
db ROUTE_19_HEIGHT, ROUTE_19_WIDTH ; dimensions (y, x)
dw Route19Blocks, Route19TextPointers, Route19Script ; blocks, texts, scripts
db NORTH | WEST ; connections
- NORTH_MAP_CONNECTION FUCHSIA_CITY, FUCHSIA_CITY_WIDTH, FUCHSIA_CITY_HEIGHT, -3, 2, FUCHSIA_CITY_WIDTH - 4, FuchsiaCityBlocks
- WEST_MAP_CONNECTION ROUTE_20, ROUTE_20_WIDTH, 18, 0, ROUTE_20_HEIGHT, Route20Blocks, ROUTE_19_WIDTH
+ NORTH_MAP_CONNECTION ROUTE_19, FUCHSIA_CITY, -3, 2, FuchsiaCityBlocks
+ WEST_MAP_CONNECTION ROUTE_19, ROUTE_20, 18, 0, Route20Blocks
dw Route19Object ; objects
diff --git a/data/mapHeaders/route2.asm b/data/mapHeaders/route2.asm
index 28db1a1b..564f4a58 100755
--- a/data/mapHeaders/route2.asm
+++ b/data/mapHeaders/route2.asm
@@ -3,6 +3,6 @@ Route2_h: ; 54000 (15:4000)
db ROUTE_2_HEIGHT,ROUTE_2_WIDTH ;Height,Width blocks (1 block = 4x4 tiles)
dw Route2Blocks, Route2TextPointers, Route2Script
db NORTH | SOUTH ;Connection Byte
- NORTH_MAP_CONNECTION PEWTER_CITY, PEWTER_CITY_WIDTH, PEWTER_CITY_HEIGHT, -3, 2, PEWTER_CITY_WIDTH - 4, PewterCityBlocks
- SOUTH_MAP_CONNECTION VIRIDIAN_CITY, VIRIDIAN_CITY_WIDTH, -3, 2, VIRIDIAN_CITY_WIDTH - 4, ViridianCityBlocks, ROUTE_2_WIDTH, ROUTE_2_HEIGHT
+ NORTH_MAP_CONNECTION ROUTE_2, PEWTER_CITY, -3, 2, PewterCityBlocks
+ SOUTH_MAP_CONNECTION ROUTE_2, VIRIDIAN_CITY, -3, 2, ViridianCityBlocks, 1
dw Route2Object ;Object Data Pointer
diff --git a/data/mapHeaders/route20.asm b/data/mapHeaders/route20.asm
index 4f96906f..d4f645d8 100755
--- a/data/mapHeaders/route20.asm
+++ b/data/mapHeaders/route20.asm
@@ -3,6 +3,6 @@ Route20_h: ; 0x500f1 to 0x50113 (34 bytes) (id=31)
db ROUTE_20_HEIGHT, ROUTE_20_WIDTH ; dimensions (y, x)
dw Route20Blocks, Route20TextPointers, Route20Script ; blocks, texts, scripts
db WEST | EAST ; connections
- WEST_MAP_CONNECTION CINNABAR_ISLAND, CINNABAR_ISLAND_WIDTH, 0, 0, CINNABAR_ISLAND_HEIGHT, CinnabarIslandBlocks, ROUTE_20_WIDTH
- EAST_MAP_CONNECTION ROUTE_19, ROUTE_19_WIDTH, -3, 15, ROUTE_19_HEIGHT - 15, Route19Blocks, ROUTE_20_WIDTH
+ WEST_MAP_CONNECTION ROUTE_20, CINNABAR_ISLAND, 0, 0, CinnabarIslandBlocks
+ EAST_MAP_CONNECTION ROUTE_20, ROUTE_19, -3, 15, Route19Blocks
dw Route20Object ; objects
diff --git a/data/mapHeaders/route21.asm b/data/mapHeaders/route21.asm
index f3160814..7f3e0a2f 100755
--- a/data/mapHeaders/route21.asm
+++ b/data/mapHeaders/route21.asm
@@ -3,6 +3,6 @@ Route21_h: ; 0x54fff to 0x55021 (34 bytes) (id=32)
db ROUTE_21_HEIGHT, ROUTE_21_WIDTH ; dimensions (y, x)
dw Route21Blocks, Route21TextPointers, Route21Script ; blocks, texts, scripts
db NORTH | SOUTH ; connections
- NORTH_MAP_CONNECTION PALLET_TOWN, PALLET_TOWN_WIDTH, PALLET_TOWN_HEIGHT, 0, 0, PALLET_TOWN_WIDTH, PalletTownBlocks
- SOUTH_MAP_CONNECTION CINNABAR_ISLAND, CINNABAR_ISLAND_WIDTH, 0, 0, CINNABAR_ISLAND_WIDTH, CinnabarIslandBlocks, ROUTE_21_WIDTH, ROUTE_21_HEIGHT
+ NORTH_MAP_CONNECTION ROUTE_21, PALLET_TOWN, 0, 0, PalletTownBlocks
+ SOUTH_MAP_CONNECTION ROUTE_21, CINNABAR_ISLAND, 0, 0, CinnabarIslandBlocks, 1
dw Route21Object ; objects
diff --git a/data/mapHeaders/route22.asm b/data/mapHeaders/route22.asm
index 566a5cbe..598e9224 100755
--- a/data/mapHeaders/route22.asm
+++ b/data/mapHeaders/route22.asm
@@ -3,6 +3,6 @@ Route22_h: ; 0x50000 to 0x50022 (34 bytes) (id=33)
db ROUTE_22_HEIGHT, ROUTE_22_WIDTH ; dimensions (y, x)
dw Route22Blocks, Route22TextPointers, Route22Script ; blocks, texts, scripts
db NORTH | EAST ; connections
- NORTH_MAP_CONNECTION ROUTE_23, ROUTE_23_WIDTH, ROUTE_23_HEIGHT, 0, 0, ROUTE_23_WIDTH, Route23Blocks
- EAST_MAP_CONNECTION VIRIDIAN_CITY, VIRIDIAN_CITY_WIDTH, -3, 1, VIRIDIAN_CITY_HEIGHT - 3, ViridianCityBlocks, ROUTE_22_WIDTH
+ NORTH_MAP_CONNECTION ROUTE_22, ROUTE_23, 0, 0, Route23Blocks
+ EAST_MAP_CONNECTION ROUTE_22, VIRIDIAN_CITY, -3, 1, ViridianCityBlocks, 1
dw Route22Object ; objects
diff --git a/data/mapHeaders/route23.asm b/data/mapHeaders/route23.asm
index 2e469096..32dc36fd 100755
--- a/data/mapHeaders/route23.asm
+++ b/data/mapHeaders/route23.asm
@@ -3,6 +3,6 @@ Route23_h: ; 0x5033f to 0x50361 (34 bytes) (id=34)
db ROUTE_23_HEIGHT, ROUTE_23_WIDTH ; dimensions (y, x)
dw Route23Blocks, Route23TextPointers, Route23Script ; blocks, texts, scripts
db NORTH | SOUTH ; connections
- NORTH_MAP_CONNECTION INDIGO_PLATEAU, INDIGO_PLATEAU_WIDTH, INDIGO_PLATEAU_HEIGHT, 0, 0, INDIGO_PLATEAU_WIDTH, IndigoPlateauBlocks
- SOUTH_MAP_CONNECTION ROUTE_22, ROUTE_22_WIDTH, 0, 0, ROUTE_22_WIDTH - 7, Route22Blocks, ROUTE_23_WIDTH, ROUTE_23_HEIGHT
+ NORTH_MAP_CONNECTION ROUTE_23, INDIGO_PLATEAU, 0, 0, IndigoPlateauBlocks
+ SOUTH_MAP_CONNECTION ROUTE_23, ROUTE_22, 0, 0, Route22Blocks, 1
dw Route23Object ; objects
diff --git a/data/mapHeaders/route24.asm b/data/mapHeaders/route24.asm
index 3194be91..a445c144 100755
--- a/data/mapHeaders/route24.asm
+++ b/data/mapHeaders/route24.asm
@@ -3,6 +3,6 @@ Route24_h: ; 0x50682 to 0x506a4 (34 bytes) (id=35)
db ROUTE_24_HEIGHT, ROUTE_24_WIDTH ; dimensions (y, x)
dw Route24Blocks, Route24TextPointers, Route24Script ; blocks, texts, scripts
db SOUTH | EAST ; connections
- SOUTH_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, -3, 2, CERULEAN_CITY_WIDTH - 4, CeruleanCityBlocks, ROUTE_24_WIDTH, ROUTE_24_HEIGHT
- EAST_MAP_CONNECTION ROUTE_25, ROUTE_25_WIDTH, 0, 0, ROUTE_25_HEIGHT, Route25Blocks, ROUTE_24_WIDTH
+ SOUTH_MAP_CONNECTION ROUTE_24, CERULEAN_CITY, -3, 2, CeruleanCityBlocks, 1
+ EAST_MAP_CONNECTION ROUTE_24, ROUTE_25, 0, 0, Route25Blocks
dw Route24Object ; objects
diff --git a/data/mapHeaders/route25.asm b/data/mapHeaders/route25.asm
index 2e86f6d5..a6e62a00 100755
--- a/data/mapHeaders/route25.asm
+++ b/data/mapHeaders/route25.asm
@@ -3,5 +3,5 @@ Route25_h: ; 0x5079b to 0x507b2 (23 bytes) (id=36)
db ROUTE_25_HEIGHT, ROUTE_25_WIDTH ; dimensions (y, x)
dw Route25Blocks, Route25TextPointers, Route25Script ; blocks, texts, scripts
db WEST ; connections
- WEST_MAP_CONNECTION ROUTE_24, ROUTE_24_WIDTH, 0, 0, ROUTE_24_HEIGHT - 6, Route24Blocks, ROUTE_25_WIDTH
+ WEST_MAP_CONNECTION ROUTE_25, ROUTE_24, 0, 0, Route24Blocks
dw Route25Object ; objects
diff --git a/data/mapHeaders/route3.asm b/data/mapHeaders/route3.asm
index 942e9e54..0003b90a 100755
--- a/data/mapHeaders/route3.asm
+++ b/data/mapHeaders/route3.asm
@@ -3,6 +3,6 @@ Route3_h: ; 0x541e6 to 0x54208 (34 bytes) (id=14)
db ROUTE_3_HEIGHT, ROUTE_3_WIDTH ; dimensions (y, x)
dw Route3Blocks, Route3TextPointers, Route3Script ; blocks, texts, scripts
db NORTH | WEST ; connections
- NORTH_MAP_CONNECTION ROUTE_4, ROUTE_4_WIDTH, ROUTE_4_HEIGHT, 25, 0, ROUTE_4_WIDTH - 32, Route4Blocks
- WEST_MAP_CONNECTION PEWTER_CITY, PEWTER_CITY_WIDTH, -3, 1, PEWTER_CITY_HEIGHT - 3, PewterCityBlocks, ROUTE_3_WIDTH
+ NORTH_MAP_CONNECTION ROUTE_3, ROUTE_4, 25, 0, Route4Blocks
+ WEST_MAP_CONNECTION ROUTE_3, PEWTER_CITY, -3, 1, PewterCityBlocks
dw Route3Object ; objects
diff --git a/data/mapHeaders/route4.asm b/data/mapHeaders/route4.asm
index c2fe6379..6e8724c9 100755
--- a/data/mapHeaders/route4.asm
+++ b/data/mapHeaders/route4.asm
@@ -3,6 +3,6 @@ Route4_h: ; 0x54390 to 0x543b2 (34 bytes) (id=15)
db ROUTE_4_HEIGHT, ROUTE_4_WIDTH ; dimensions (y, x)
dw Route4Blocks, Route4TextPointers, Route4Script; blocks, texts, scripts
db SOUTH | EAST ; connections
- SOUTH_MAP_CONNECTION ROUTE_3, ROUTE_3_WIDTH, -3, 22, ROUTE_3_WIDTH - 22, Route3Blocks, ROUTE_4_WIDTH, ROUTE_4_HEIGHT
- EAST_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, -3, 1, CERULEAN_CITY_HEIGHT - 3, CeruleanCityBlocks, ROUTE_4_WIDTH
+ SOUTH_MAP_CONNECTION ROUTE_4, ROUTE_3, -3, 22, Route3Blocks
+ EAST_MAP_CONNECTION ROUTE_4, CERULEAN_CITY, -3, 1, CeruleanCityBlocks, 1
dw Route4Object ; objects
diff --git a/data/mapHeaders/route5.asm b/data/mapHeaders/route5.asm
index 148eeb8d..d35a8dab 100755
--- a/data/mapHeaders/route5.asm
+++ b/data/mapHeaders/route5.asm
@@ -3,6 +3,6 @@ Route5_h: ; 0x54581 to 0x545a3 (34 bytes) (id=16)
db ROUTE_5_HEIGHT, ROUTE_5_WIDTH ; dimensions (y, x)
dw Route5Blocks, Route5TextPointers, Route5Script ; blocks, texts, scripts
db NORTH | SOUTH ; connections
- NORTH_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, CERULEAN_CITY_HEIGHT, -3, 2, CERULEAN_CITY_WIDTH - 4, CeruleanCityBlocks
- SOUTH_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, -3, 2, SAFFRON_CITY_WIDTH - 4, SaffronCityBlocks, ROUTE_5_WIDTH, ROUTE_5_HEIGHT
+ NORTH_MAP_CONNECTION ROUTE_5, CERULEAN_CITY, -3, 2, CeruleanCityBlocks
+ SOUTH_MAP_CONNECTION ROUTE_5, SAFFRON_CITY, -3, 2, SaffronCityBlocks, 1
dw Route5Object ; objects
diff --git a/data/mapHeaders/route6.asm b/data/mapHeaders/route6.asm
index b6f5fe70..21dd0872 100755
--- a/data/mapHeaders/route6.asm
+++ b/data/mapHeaders/route6.asm
@@ -3,6 +3,6 @@ Route6_h: ; 0x58000 to 0x58022 (34 bytes) (id=17)
db ROUTE_6_HEIGHT, ROUTE_6_WIDTH ; dimensions (y, x)
dw Route6Blocks, Route6TextPointers, Route6Script ; blocks, texts, scripts
db NORTH | SOUTH ; connections
- NORTH_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, SAFFRON_CITY_HEIGHT, -3, 2, SAFFRON_CITY_WIDTH - 4, SaffronCityBlocks
- SOUTH_MAP_CONNECTION VERMILION_CITY, VERMILION_CITY_WIDTH, -3, 2, VERMILION_CITY_WIDTH - 4, VermilionCityBlocks, ROUTE_6_WIDTH, ROUTE_6_HEIGHT
+ NORTH_MAP_CONNECTION ROUTE_6, SAFFRON_CITY, -3, 2, SaffronCityBlocks
+ SOUTH_MAP_CONNECTION ROUTE_6, VERMILION_CITY, -3, 2, VermilionCityBlocks, 1
dw Route6Object ; objects
diff --git a/data/mapHeaders/route7.asm b/data/mapHeaders/route7.asm
index b90004e6..38fd1e15 100755
--- a/data/mapHeaders/route7.asm
+++ b/data/mapHeaders/route7.asm
@@ -3,6 +3,6 @@ Route7_h: ; 0x48000 to 0x48022 (34 bytes) (bank=12) (id=18)
db ROUTE_7_HEIGHT, ROUTE_7_WIDTH ; dimensions (y, x)
dw Route7Blocks, Route7TextPointers, Route7Script ; blocks, texts, scripts
db WEST | EAST ; connections
- WEST_MAP_CONNECTION CELADON_CITY, CELADON_CITY_WIDTH, -3, 1, CELADON_CITY_HEIGHT - 3, CeladonCityBlocks, ROUTE_7_WIDTH
- EAST_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, -3, 1, SAFFRON_CITY_HEIGHT - 3, SaffronCityBlocks, ROUTE_7_WIDTH
+ WEST_MAP_CONNECTION ROUTE_7, CELADON_CITY, -3, 1, CeladonCityBlocks
+ EAST_MAP_CONNECTION ROUTE_7, SAFFRON_CITY, -3, 1, SaffronCityBlocks, 1
dw Route7Object ; objects
diff --git a/data/mapHeaders/route8.asm b/data/mapHeaders/route8.asm
index dd9a717b..14c867ea 100755
--- a/data/mapHeaders/route8.asm
+++ b/data/mapHeaders/route8.asm
@@ -3,6 +3,6 @@ Route8_h: ; 0x5812d to 0x5814f (34 bytes) (id=19)
db ROUTE_8_HEIGHT, ROUTE_8_WIDTH ; dimensions (y, x)
dw Route8Blocks, Route8TextPointers, Route8Script ; blocks, texts, scripts
db WEST | EAST ; connections
- WEST_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, -3, 1, SAFFRON_CITY_HEIGHT - 3, SaffronCityBlocks, ROUTE_8_WIDTH
- EAST_MAP_CONNECTION LAVENDER_TOWN, LAVENDER_TOWN_WIDTH, 0, 0, LAVENDER_TOWN_HEIGHT, LavenderTownBlocks, ROUTE_8_WIDTH
+ WEST_MAP_CONNECTION ROUTE_8, SAFFRON_CITY, -3, 1, SaffronCityBlocks
+ EAST_MAP_CONNECTION ROUTE_8, LAVENDER_TOWN, 0, 0, LavenderTownBlocks
dw Route8Object ; objects
diff --git a/data/mapHeaders/route9.asm b/data/mapHeaders/route9.asm
index f6cbd9af..30982dd4 100755
--- a/data/mapHeaders/route9.asm
+++ b/data/mapHeaders/route9.asm
@@ -3,6 +3,6 @@ Route9_h: ; 0x54686 to 0x546a8 (34 bytes) (id=20)
db ROUTE_9_HEIGHT, ROUTE_9_WIDTH ; dimensions (y, x)
dw Route9Blocks, Route9TextPointers, Route9Script ; blocks, texts, scripts
db WEST | EAST ; connections
- WEST_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, -3, 1, CERULEAN_CITY_HEIGHT - 3, CeruleanCityBlocks, ROUTE_9_WIDTH
- EAST_MAP_CONNECTION ROUTE_10, ROUTE_10_WIDTH, 0, 0, ROUTE_10_HEIGHT - 24, Route10Blocks, ROUTE_9_WIDTH
+ WEST_MAP_CONNECTION ROUTE_9, CERULEAN_CITY, -3, 1, CeruleanCityBlocks
+ EAST_MAP_CONNECTION ROUTE_9, ROUTE_10, 0, 0, Route10Blocks, 1
dw Route9Object ; objects
diff --git a/data/mapHeaders/saffroncity.asm b/data/mapHeaders/saffroncity.asm
index 4c1d2d61..3a39b396 100755
--- a/data/mapHeaders/saffroncity.asm
+++ b/data/mapHeaders/saffroncity.asm
@@ -3,8 +3,8 @@ SaffronCity_h: ; 0x509a4 to 0x509dc (56 bytes) (id=10)
db SAFFRON_CITY_HEIGHT, SAFFRON_CITY_WIDTH ; dimensions (y, x)
dw SaffronCityBlocks, SaffronCityTextPointers, SaffronCityScript ; blocks, texts, scripts
db NORTH | SOUTH | WEST | EAST ; connections
- NORTH_MAP_CONNECTION ROUTE_5, ROUTE_5_WIDTH, ROUTE_5_HEIGHT, 5, 0, ROUTE_5_WIDTH, Route5Blocks
- SOUTH_MAP_CONNECTION ROUTE_6, ROUTE_6_WIDTH, 5, 0, ROUTE_6_WIDTH, Route6Blocks, SAFFRON_CITY_WIDTH, SAFFRON_CITY_HEIGHT
- WEST_MAP_CONNECTION ROUTE_7, ROUTE_7_WIDTH, 4, 0, ROUTE_7_HEIGHT, Route7Blocks, SAFFRON_CITY_WIDTH
- EAST_MAP_CONNECTION ROUTE_8, ROUTE_8_WIDTH, 4, 0, ROUTE_8_HEIGHT, Route8Blocks, SAFFRON_CITY_WIDTH
+ NORTH_MAP_CONNECTION SAFFRON_CITY, ROUTE_5, 5, 0, Route5Blocks
+ SOUTH_MAP_CONNECTION SAFFRON_CITY, ROUTE_6, 5, 0, Route6Blocks, 1
+ WEST_MAP_CONNECTION SAFFRON_CITY, ROUTE_7, 4, 0, Route7Blocks
+ EAST_MAP_CONNECTION SAFFRON_CITY, ROUTE_8, 4, 0, Route8Blocks
dw SaffronCityObject ; objects
diff --git a/data/mapHeaders/tradecenter.asm b/data/mapHeaders/tradecenter.asm
new file mode 100644
index 00000000..b9759bbb
--- /dev/null
+++ b/data/mapHeaders/tradecenter.asm
@@ -0,0 +1,6 @@
+TradeCenter_h: ; 0x4fd04 to 0x4fd10 (12 bytes) (id=239)
+ db CLUB ; tileset
+ db TRADE_CENTER_HEIGHT, TRADE_CENTER_WIDTH ; dimensions (y, x)
+ dw TradeCenterBlocks, TradeCenterTextPointers, TradeCenterScript ; blocks, texts, scripts
+ db $00 ; connections
+ dw TradeCenterObject ; objects
diff --git a/data/mapHeaders/tradecenterm.asm b/data/mapHeaders/tradecenterm.asm
deleted file mode 100755
index 59eb5095..00000000
--- a/data/mapHeaders/tradecenterm.asm
+++ /dev/null
@@ -1,6 +0,0 @@
-TradeCenterM_h: ; 0x4fd71 to 0x4fd7d (12 bytes) (id=240)
- db CLUB ; tileset
- db TRADE_CENTER_HEIGHT, TRADE_CENTER_WIDTH ; dimensions (y, x)
- dw TradeCenterMBlocks, TradeCenterMTextPointers, TradeCenterMScript ; blocks, texts, scripts
- db $00 ; connections
- dw TradeCenterMObject ; objects
diff --git a/data/mapHeaders/vermilioncity.asm b/data/mapHeaders/vermilioncity.asm
index b7a41967..a4118084 100755
--- a/data/mapHeaders/vermilioncity.asm
+++ b/data/mapHeaders/vermilioncity.asm
@@ -3,6 +3,6 @@ VermilionCity_h: ; 0x18998 to 0x189ba (34 bytes) (bank=6) (id=5)
db VERMILION_CITY_HEIGHT, VERMILION_CITY_WIDTH ; dimensions (y, x)
dw VermilionCityBlocks, VermilionCityTextPointers, VermilionCityScript ; blocks, texts, scripts
db NORTH | EAST ; connections
- NORTH_MAP_CONNECTION ROUTE_6, ROUTE_6_WIDTH, ROUTE_6_HEIGHT, 5, 0, ROUTE_6_WIDTH, Route6Blocks
- EAST_MAP_CONNECTION ROUTE_11, ROUTE_11_WIDTH, 4, 0, ROUTE_11_HEIGHT, Route11Blocks, VERMILION_CITY_WIDTH
+ NORTH_MAP_CONNECTION VERMILION_CITY, ROUTE_6, 5, 0, Route6Blocks
+ EAST_MAP_CONNECTION VERMILION_CITY, ROUTE_11, 4, 0, Route11Blocks
dw VermilionCityObject ; objects
diff --git a/data/mapHeaders/viridiancity.asm b/data/mapHeaders/viridiancity.asm
index 96aac7ca..f7faa568 100755
--- a/data/mapHeaders/viridiancity.asm
+++ b/data/mapHeaders/viridiancity.asm
@@ -3,7 +3,7 @@ ViridianCity_h: ; 0x18357 to 0x18384 (45 bytes) (bank=6) (id=1)
db VIRIDIAN_CITY_HEIGHT, VIRIDIAN_CITY_WIDTH ; dimensions (y, x)
dw ViridianCityBlocks, ViridianCityTextPointers, ViridianCityScript ; blocks, texts, scripts
db NORTH | SOUTH | WEST ; connections
- NORTH_MAP_CONNECTION ROUTE_2, ROUTE_2_WIDTH, ROUTE_2_HEIGHT, 5, 0, ROUTE_2_WIDTH, Route2Blocks
- SOUTH_MAP_CONNECTION ROUTE_1, ROUTE_1_WIDTH, 5, 0, ROUTE_1_WIDTH, Route1Blocks, VIRIDIAN_CITY_WIDTH, VIRIDIAN_CITY_HEIGHT
- WEST_MAP_CONNECTION ROUTE_22, ROUTE_22_WIDTH, 4, 0, ROUTE_22_HEIGHT, Route22Blocks, VIRIDIAN_CITY_WIDTH
+ NORTH_MAP_CONNECTION VIRIDIAN_CITY, ROUTE_2, 5, 0, Route2Blocks
+ SOUTH_MAP_CONNECTION VIRIDIAN_CITY, ROUTE_1, 5, 0, Route1Blocks, 1
+ WEST_MAP_CONNECTION VIRIDIAN_CITY, ROUTE_22, 4, 0, Route22Blocks
dw ViridianCityObject ; objects
diff --git a/data/mapObjects/agatha.asm b/data/mapObjects/agatha.asm
index 4b434885..e33172ae 100755
--- a/data/mapObjects/agatha.asm
+++ b/data/mapObjects/agatha.asm
@@ -9,8 +9,8 @@ AgathaObject: ; 0x76534 (size=44)
db $0 ; signs
- db $1 ; people
- db SPRITE_AGATHA, $2 + 4, $5 + 4, $ff, $d0, TRAINER | $1, AGATHA + $C8, $1
+ db $1 ; objects
+ object SPRITE_AGATHA, $5, $2, STAY, DOWN, $1, OPP_AGATHA, $1
; warp-to
EVENT_DISP AGATHAS_ROOM_WIDTH, $b, $4 ; BRUNOS_ROOM
diff --git a/data/mapObjects/battlecenterm.asm b/data/mapObjects/battlecenterm.asm
deleted file mode 100755
index 45d88590..00000000
--- a/data/mapObjects/battlecenterm.asm
+++ /dev/null
@@ -1,9 +0,0 @@
-BattleCenterMObject: ; 0x4fd53 (size=10)
- db $e ; border block
-
- db $0 ; warps
-
- db $0 ; signs
-
- db $1 ; people
- db SPRITE_RED, $2 + 4, $2 + 4, $ff, $0, $1 ; person
diff --git a/data/mapObjects/beach_house.asm b/data/mapObjects/beach_house.asm
index ad648931..847883d1 100644
--- a/data/mapObjects/beach_house.asm
+++ b/data/mapObjects/beach_house.asm
@@ -11,9 +11,9 @@ BeachHouseObjects: ; 0xf23a4
db 0,$b,5
db 1,$d,6
- db 2 ; people
- db SPRITE_FISHER, 3+4, 2+4, $ff, $d0, 1 ; surfin' dude
- db $3d, 3+4, 5+4, $fe, $01, 2 ; pikachu
+ db 2 ; objects
+ object SPRITE_FISHER, 2, 3, STAY, DOWN, 1 ; surfin' dude
+ object $3d, 5, 3, WALK, $01, 2 ; pikachu
; warp-to
EVENT_DISP BEACH_HOUSE_WIDTH,7,2
diff --git a/data/mapObjects/bikeshop.asm b/data/mapObjects/bikeshop.asm
index 5803e3fb..ab763bc3 100755
--- a/data/mapObjects/bikeshop.asm
+++ b/data/mapObjects/bikeshop.asm
@@ -7,10 +7,10 @@ BikeShopObject: ; 0x1d866 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_BIKE_SHOP_GUY, $2 + 4, $6 + 4, $ff, $ff, $1 ; person
- db SPRITE_MOM_GEISHA, $6 + 4, $5 + 4, $fe, $1, $2 ; person
- db SPRITE_BUG_CATCHER, $3 + 4, $1 + 4, $ff, $d1, $3 ; person
+ db $3 ; objects
+ object SPRITE_BIKE_SHOP_GUY, $6, $2, STAY, NONE, $1 ; person
+ object SPRITE_MOM_GEISHA, $5, $6, WALK, $1, $2 ; person
+ object SPRITE_BUG_CATCHER, $1, $3, STAY, UP, $3 ; person
; warp-to
EVENT_DISP BIKE_SHOP_WIDTH, $7, $2
diff --git a/data/mapObjects/billshouse.asm b/data/mapObjects/billshouse.asm
index 2c032bf2..9da1efd1 100755
--- a/data/mapObjects/billshouse.asm
+++ b/data/mapObjects/billshouse.asm
@@ -7,10 +7,10 @@ BillsHouseObject: ; 0x1e8df (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_SLOWBRO, $5 + 4, $6 + 4, $ff, $ff, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $4 + 4, $ff, $ff, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $6 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_SLOWBRO, $6, $5, STAY, NONE, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $4, $4, STAY, NONE, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $6, $5, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP BILLS_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/blueshouse.asm b/data/mapObjects/blueshouse.asm
index 582733c0..43ba02e4 100755
--- a/data/mapObjects/blueshouse.asm
+++ b/data/mapObjects/blueshouse.asm
@@ -7,10 +7,10 @@ BluesHouseObject: ; 19bce (6:5bce)
db $0 ; signs
- db $3 ; people
- db SPRITE_DAISY, $3 + 4, $2 + 4, $FF, $D3, $1 ; Daisy, sitting by map
- db SPRITE_DAISY, $4 + 4, $6 + 4, $FE, $1, ITEM | $2, $0 ; Daisy, walking around
- db SPRITE_BOOK_MAP_DEX, $3 + 4, $3 + 4, $FF, $FF, ITEM | $3, $0 ; map on table
+ db $3 ; objects
+ object SPRITE_DAISY, $2, $3, STAY, RIGHT, $1 ; Daisy, sitting by map
+ object SPRITE_DAISY, $6, $4, WALK, $1, $2, $0 ; Daisy, walking around
+ object SPRITE_BOOK_MAP_DEX, $3, $3, STAY, NONE, $3, $0 ; map on table
; warp-to
EVENT_DISP BLUES_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/bruno.asm b/data/mapObjects/bruno.asm
index 8cbd9411..8d55461f 100755
--- a/data/mapObjects/bruno.asm
+++ b/data/mapObjects/bruno.asm
@@ -9,8 +9,8 @@ BrunoObject: ; 0x763d7 (size=44)
db $0 ; signs
- db $1 ; people
- db SPRITE_BRUNO, $2 + 4, $5 + 4, $ff, $d0, TRAINER | $1, BRUNO + $C8, $1
+ db $1 ; objects
+ object SPRITE_BRUNO, $5, $2, STAY, DOWN, $1, OPP_BRUNO, $1
; warp-to
EVENT_DISP BRUNOS_ROOM_WIDTH, $b, $4 ; LORELEIS_ROOM
diff --git a/data/mapObjects/celadoncity.asm b/data/mapObjects/celadoncity.asm
index b19e2f87..0e420221 100755
--- a/data/mapObjects/celadoncity.asm
+++ b/data/mapObjects/celadoncity.asm
@@ -27,16 +27,16 @@ CeladonCityObject: ; 0x18022 (size=189)
db $15, $21, $11 ; CeladonCityText17
db $15, $1b, $12 ; CeladonCityText18
- db $9 ; people
- db SPRITE_LITTLE_GIRL, $11 + 4, $8 + 4, $fe, $0, $1 ; person
- db SPRITE_OLD_PERSON, $1c + 4, $b + 4, $ff, $d1, $2 ; person
- db SPRITE_GIRL, $13 + 4, $e + 4, $fe, $1, $3 ; person
- db SPRITE_OLD_PERSON, $16 + 4, $19 + 4, $ff, $d0, $4 ; person
- db SPRITE_OLD_PERSON, $10 + 4, $16 + 4, $ff, $d0, $5 ; person
- db SPRITE_FISHER2, $c + 4, $20 + 4, $ff, $d2, $6 ; person
- db SPRITE_SLOWBRO, $c + 4, $1e + 4, $ff, $d3, $7 ; person
- db SPRITE_ROCKET, $1d + 4, $20 + 4, $fe, $2, $8 ; person
- db SPRITE_ROCKET, $e + 4, $2a + 4, $fe, $2, $9 ; person
+ db $9 ; objects
+ object SPRITE_LITTLE_GIRL, $8, $11, WALK, $0, $1 ; person
+ object SPRITE_OLD_PERSON, $b, $1c, STAY, UP, $2 ; person
+ object SPRITE_GIRL, $e, $13, WALK, $1, $3 ; person
+ object SPRITE_OLD_PERSON, $19, $16, STAY, DOWN, $4 ; person
+ object SPRITE_OLD_PERSON, $16, $10, STAY, DOWN, $5 ; person
+ object SPRITE_FISHER2, $20, $c, STAY, LEFT, $6 ; person
+ object SPRITE_SLOWBRO, $1e, $c, STAY, RIGHT, $7 ; person
+ object SPRITE_ROCKET, $20, $1d, WALK, $2, $8 ; person
+ object SPRITE_ROCKET, $2a, $e, WALK, $2, $9 ; person
; warp-to
EVENT_DISP CELADON_CITY_WIDTH, $d, $8 ; CELADON_MART_1
diff --git a/data/mapObjects/celadondiner.asm b/data/mapObjects/celadondiner.asm
index ffb47d50..74141df9 100755
--- a/data/mapObjects/celadondiner.asm
+++ b/data/mapObjects/celadondiner.asm
@@ -7,12 +7,12 @@ CeladonDinerObject: ; 0x491bc (size=50)
db $0 ; signs
- db $5 ; people
- db SPRITE_COOK, $5 + 4, $8 + 4, $fe, $2, $1 ; person
- db SPRITE_MOM_GEISHA, $2 + 4, $7 + 4, $ff, $ff, $2 ; person
- db SPRITE_FAT_BALD_GUY, $4 + 4, $1 + 4, $ff, $d0, $3 ; person
- db SPRITE_FISHER2, $3 + 4, $5 + 4, $ff, $d3, $4 ; person
- db SPRITE_GYM_HELPER, $1 + 4, $0 + 4, $ff, $d0, $5 ; person
+ db $5 ; objects
+ object SPRITE_COOK, $8, $5, WALK, $2, $1 ; person
+ object SPRITE_MOM_GEISHA, $7, $2, STAY, NONE, $2 ; person
+ object SPRITE_FAT_BALD_GUY, $1, $4, STAY, DOWN, $3 ; person
+ object SPRITE_FISHER2, $5, $3, STAY, RIGHT, $4 ; person
+ object SPRITE_GYM_HELPER, $0, $1, STAY, DOWN, $5 ; person
; warp-to
EVENT_DISP CELADON_DINER_WIDTH, $7, $3
diff --git a/data/mapObjects/celadongamecorner.asm b/data/mapObjects/celadongamecorner.asm
index 50f85ed0..1169e1da 100755
--- a/data/mapObjects/celadongamecorner.asm
+++ b/data/mapObjects/celadongamecorner.asm
@@ -9,18 +9,18 @@ CeladonGameCornerObject: ; 0x48fa0 (size=99)
db $1 ; signs
db $4, $9, $c ; CeladonGameCornerText12
- db $b ; people
- db SPRITE_FOULARD_WOMAN, $6 + 4, $2 + 4, $ff, $d0, $1 ; person
- db SPRITE_MART_GUY, $6 + 4, $5 + 4, $ff, $d0, $2 ; person
- db SPRITE_FAT_BALD_GUY, $a + 4, $2 + 4, $ff, $d2, $3 ; person
- db SPRITE_FOULARD_WOMAN, $d + 4, $2 + 4, $ff, $d2, $4 ; person
- db SPRITE_FISHER, $b + 4, $5 + 4, $ff, $d3, $5 ; person
- db SPRITE_MOM_GEISHA, $b + 4, $8 + 4, $ff, $d2, $6 ; person
- db SPRITE_GYM_HELPER, $e + 4, $8 + 4, $ff, $d2, $7 ; person
- db SPRITE_GAMBLER, $f + 4, $b + 4, $ff, $d3, $8 ; person
- db SPRITE_MART_GUY, $b + 4, $e + 4, $ff, $d2, $9 ; person
- db SPRITE_GENTLEMAN, $d + 4, $11 + 4, $ff, $d3, $a ; person
- db SPRITE_ROCKET, $5 + 4, $9 + 4, $ff, $d1, TRAINER | $b, ROCKET + $C8, $7
+ db $b ; objects
+ object SPRITE_FOULARD_WOMAN, $2, $6, STAY, DOWN, $1 ; person
+ object SPRITE_MART_GUY, $5, $6, STAY, DOWN, $2 ; person
+ object SPRITE_FAT_BALD_GUY, $2, $a, STAY, LEFT, $3 ; person
+ object SPRITE_FOULARD_WOMAN, $2, $d, STAY, LEFT, $4 ; person
+ object SPRITE_FISHER, $5, $b, STAY, RIGHT, $5 ; person
+ object SPRITE_MOM_GEISHA, $8, $b, STAY, LEFT, $6 ; person
+ object SPRITE_GYM_HELPER, $8, $e, STAY, LEFT, $7 ; person
+ object SPRITE_GAMBLER, $b, $f, STAY, RIGHT, $8 ; person
+ object SPRITE_MART_GUY, $e, $b, STAY, LEFT, $9 ; person
+ object SPRITE_GENTLEMAN, $11, $d, STAY, RIGHT, $a ; person
+ object SPRITE_ROCKET, $9, $5, STAY, UP, $b, OPP_ROCKET, $7
; warp-to
EVENT_DISP GAME_CORNER_WIDTH, $11, $f
diff --git a/data/mapObjects/celadongym.asm b/data/mapObjects/celadongym.asm
index 7b90d159..f9c20c90 100755
--- a/data/mapObjects/celadongym.asm
+++ b/data/mapObjects/celadongym.asm
@@ -7,15 +7,15 @@ CeladonGymObject: ; 0x48b30 (size=84)
db $0 ; signs
- db $8 ; people
- db SPRITE_ERIKA, $3 + 4, $4 + 4, $ff, $d0, TRAINER | $1, ERIKA + $C8, $1
- db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d3, TRAINER | $2, LASS + $C8, $11
- db SPRITE_FOULARD_WOMAN, $a + 4, $7 + 4, $ff, $d2, TRAINER | $3, BEAUTY + $C8, $1
- db SPRITE_LASS, $5 + 4, $9 + 4, $ff, $d0, TRAINER | $4, JR__TRAINER_F + $C8, $b
- db SPRITE_FOULARD_WOMAN, $5 + 4, $1 + 4, $ff, $d0, TRAINER | $5, BEAUTY + $C8, $2
- db SPRITE_LASS, $3 + 4, $6 + 4, $ff, $d0, TRAINER | $6, LASS + $C8, $12
- db SPRITE_FOULARD_WOMAN, $3 + 4, $3 + 4, $ff, $d0, TRAINER | $7, BEAUTY + $C8, $3
- db SPRITE_LASS, $3 + 4, $5 + 4, $ff, $d0, TRAINER | $8, COOLTRAINER_F + $C8, $1
+ db $8 ; objects
+ object SPRITE_ERIKA, $4, $3, STAY, DOWN, $1, OPP_ERIKA, $1
+ object SPRITE_LASS, $2, $b, STAY, RIGHT, $2, OPP_LASS, $11
+ object SPRITE_FOULARD_WOMAN, $7, $a, STAY, LEFT, $3, OPP_BEAUTY, $1
+ object SPRITE_LASS, $9, $5, STAY, DOWN, $4, OPP_JR__TRAINER_F, $b
+ object SPRITE_FOULARD_WOMAN, $1, $5, STAY, DOWN, $5, OPP_BEAUTY, $2
+ object SPRITE_LASS, $6, $3, STAY, DOWN, $6, OPP_LASS, $12
+ object SPRITE_FOULARD_WOMAN, $3, $3, STAY, DOWN, $7, OPP_BEAUTY, $3
+ object SPRITE_LASS, $5, $3, STAY, DOWN, $8, OPP_COOLTRAINER_F, $1
; warp-to
EVENT_DISP CELADON_GYM_WIDTH, $11, $4
diff --git a/data/mapObjects/celadonhotel.asm b/data/mapObjects/celadonhotel.asm
index b1052def..33c442c2 100755
--- a/data/mapObjects/celadonhotel.asm
+++ b/data/mapObjects/celadonhotel.asm
@@ -7,10 +7,10 @@ CeladonHotelObject: ; 0x49281 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_OLD_MEDIUM_WOMAN, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_FOULARD_WOMAN, $4 + 4, $2 + 4, $ff, $ff, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $8 + 4, $fe, $2, $3 ; person
+ db $3 ; objects
+ object SPRITE_OLD_MEDIUM_WOMAN, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_FOULARD_WOMAN, $2, $4, STAY, NONE, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $8, $4, WALK, $2, $3 ; person
; warp-to
EVENT_DISP CELADON_HOTEL_WIDTH, $7, $3
diff --git a/data/mapObjects/celadonhouse.asm b/data/mapObjects/celadonhouse.asm
index 19be473b..0fcb08f5 100755
--- a/data/mapObjects/celadonhouse.asm
+++ b/data/mapObjects/celadonhouse.asm
@@ -7,10 +7,10 @@ CeladonHouseObject: ; 0x49227 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_OLD_PERSON, $2 + 4, $4 + 4, $ff, $d0, $1 ; person
- db SPRITE_ROCKET, $4 + 4, $1 + 4, $fe, $0, $2 ; person
- db SPRITE_SAILOR, $6 + 4, $5 + 4, $ff, $d2, $3 ; person
+ db $3 ; objects
+ object SPRITE_OLD_PERSON, $4, $2, STAY, DOWN, $1 ; person
+ object SPRITE_ROCKET, $1, $4, WALK, $0, $2 ; person
+ object SPRITE_SAILOR, $5, $6, STAY, LEFT, $3 ; person
; warp-to
EVENT_DISP CELADON_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/celadonmansion1.asm b/data/mapObjects/celadonmansion1.asm
index decb14e7..a308e8bc 100755
--- a/data/mapObjects/celadonmansion1.asm
+++ b/data/mapObjects/celadonmansion1.asm
@@ -11,11 +11,11 @@ CeladonMansion1Object: ; 0x486cf (size=71)
db $1 ; signs
db $9, $4, $5 ; CeladonMansion1Text5
- db $4 ; people
- db SPRITE_SLOWBRO, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_OLD_MEDIUM_WOMAN, $5 + 4, $1 + 4, $ff, $d0, $2 ; person
- db SPRITE_CLEFAIRY, $8 + 4, $1 + 4, $fe, $2, $3 ; person
- db SPRITE_SLOWBRO, $4 + 4, $4 + 4, $fe, $1, $4 ; person
+ db $4 ; objects
+ object SPRITE_SLOWBRO, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_OLD_MEDIUM_WOMAN, $1, $5, STAY, DOWN, $2 ; person
+ object SPRITE_CLEFAIRY, $1, $8, WALK, $2, $3 ; person
+ object SPRITE_SLOWBRO, $4, $4, WALK, $1, $4 ; person
; warp-to
EVENT_DISP CELADON_MANSION_1_WIDTH, $b, $4
diff --git a/data/mapObjects/celadonmansion2.asm b/data/mapObjects/celadonmansion2.asm
index 3ed15a66..9271c22d 100755
--- a/data/mapObjects/celadonmansion2.asm
+++ b/data/mapObjects/celadonmansion2.asm
@@ -10,7 +10,7 @@ CeladonMansion2Object: ; 0x48745 (size=39)
db $1 ; signs
db $9, $4, $1 ; CeladonMansion2Text1
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP CELADON_MANSION_2_WIDTH, $1, $6 ; CELADON_MANSION_3
diff --git a/data/mapObjects/celadonmansion3.asm b/data/mapObjects/celadonmansion3.asm
index e64bac61..36bf36d5 100755
--- a/data/mapObjects/celadonmansion3.asm
+++ b/data/mapObjects/celadonmansion3.asm
@@ -13,11 +13,11 @@ CeladonMansion3Object: ; 0x487ff (size=72)
db $6, $1, $7 ; CeladonMansion3Text7
db $9, $4, $8 ; CeladonMansion3Text8
- db $4 ; people
- db SPRITE_BIKE_SHOP_GUY, $4 + 4, $0 + 4, $ff, $d1, $1 ; person
- db SPRITE_MART_GUY, $4 + 4, $3 + 4, $ff, $d1, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $7 + 4, $0 + 4, $ff, $d1, $3 ; person
- db SPRITE_LAPRAS_GIVER, $3 + 4, $2 + 4, $ff, $ff, $4 ; person
+ db $4 ; objects
+ object SPRITE_BIKE_SHOP_GUY, $0, $4, STAY, UP, $1 ; person
+ object SPRITE_MART_GUY, $3, $4, STAY, UP, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $0, $7, STAY, UP, $3 ; person
+ object SPRITE_LAPRAS_GIVER, $2, $3, STAY, NONE, $4 ; person
; warp-to
EVENT_DISP CELADON_MANSION_3_WIDTH, $1, $6 ; CELADON_MANSION_2
diff --git a/data/mapObjects/celadonmansion4.asm b/data/mapObjects/celadonmansion4.asm
index 4181bd17..0241725d 100755
--- a/data/mapObjects/celadonmansion4.asm
+++ b/data/mapObjects/celadonmansion4.asm
@@ -9,7 +9,7 @@ CeladonMansion4Object: ; 0x48875 (size=31)
db $1 ; signs
db $7, $3, $1 ; CeladonMansion4Text1
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP CELADON_MANSION_4_WIDTH, $1, $6 ; CELADON_MANSION_3
diff --git a/data/mapObjects/celadonmansion5.asm b/data/mapObjects/celadonmansion5.asm
index efc74275..2f20323d 100755
--- a/data/mapObjects/celadonmansion5.asm
+++ b/data/mapObjects/celadonmansion5.asm
@@ -7,9 +7,9 @@ CeladonMansion5Object: ; 0x1dd5c (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_HIKER, $2 + 4, $2 + 4, $ff, $d0, $1 ; person
- db SPRITE_BALL, $3 + 4, $4 + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_HIKER, $2, $2, STAY, DOWN, $1 ; person
+ object SPRITE_BALL, $4, $3, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP CELADON_MANSION_5_WIDTH, $7, $2 ; CELADON_MANSION_4
diff --git a/data/mapObjects/celadonmart1.asm b/data/mapObjects/celadonmart1.asm
index 10593f46..dbbc0a36 100755
--- a/data/mapObjects/celadonmart1.asm
+++ b/data/mapObjects/celadonmart1.asm
@@ -13,8 +13,8 @@ CeladonMart1Object: ; 0x60f9e (size=64)
db $4, $b, $2 ; CeladonMart1Text2
db $1, $e, $3 ; CeladonMart1Text3
- db $1 ; people
- db SPRITE_CABLE_CLUB_WOMAN, $3 + 4, $8 + 4, $ff, $d0, $1 ; person
+ db $1 ; objects
+ object SPRITE_CABLE_CLUB_WOMAN, $8, $3, STAY, DOWN, $1 ; person
; warp-to
EVENT_DISP CELADON_MART_1_WIDTH, $7, $2
diff --git a/data/mapObjects/celadonmart2.asm b/data/mapObjects/celadonmart2.asm
index 6b40ed11..061ac6e0 100755
--- a/data/mapObjects/celadonmart2.asm
+++ b/data/mapObjects/celadonmart2.asm
@@ -9,11 +9,11 @@ CeladonMart2Object: ; 0x56111 (size=55)
db $1 ; signs
db $1, $e, $5 ; CeladonMart2Text5
- db $4 ; people
- db SPRITE_MART_GUY, $3 + 4, $5 + 4, $ff, $d0, $1 ; person
- db SPRITE_MART_GUY, $3 + 4, $6 + 4, $ff, $d0, $2 ; person
- db SPRITE_FAT_BALD_GUY, $5 + 4, $13 + 4, $ff, $ff, $3 ; person
- db SPRITE_GIRL, $4 + 4, $e + 4, $fe, $1, $4 ; person
+ db $4 ; objects
+ object SPRITE_MART_GUY, $5, $3, STAY, DOWN, $1 ; person
+ object SPRITE_MART_GUY, $6, $3, STAY, DOWN, $2 ; person
+ object SPRITE_FAT_BALD_GUY, $13, $5, STAY, NONE, $3 ; person
+ object SPRITE_GIRL, $e, $4, WALK, $1, $4 ; person
; warp-to
EVENT_DISP CELADON_MART_2_WIDTH, $1, $c ; CELADON_MART_1
diff --git a/data/mapObjects/celadonmart3.asm b/data/mapObjects/celadonmart3.asm
index 8ffbf823..5e11a62c 100755
--- a/data/mapObjects/celadonmart3.asm
+++ b/data/mapObjects/celadonmart3.asm
@@ -20,12 +20,12 @@ CeladonMart3Object: ; 0x482c4 (size=94)
db $1, $6, $10 ; CeladonMart3Text16
db $1, $a, $11 ; CeladonMart3Text17
- db $5 ; people
- db SPRITE_MART_GUY, $5 + 4, $10 + 4, $ff, $ff, $1 ; person
- db SPRITE_GAMEBOY_KID_COPY, $6 + 4, $b + 4, $ff, $d3, $2 ; person
- db SPRITE_GAMEBOY_KID_COPY, $2 + 4, $7 + 4, $ff, $d0, $3 ; person
- db SPRITE_GAMEBOY_KID_COPY, $2 + 4, $8 + 4, $ff, $d0, $4 ; person
- db SPRITE_YOUNG_BOY, $5 + 4, $2 + 4, $ff, $d1, $5 ; person
+ db $5 ; objects
+ object SPRITE_MART_GUY, $10, $5, STAY, NONE, $1 ; person
+ object SPRITE_GAMEBOY_KID_COPY, $b, $6, STAY, RIGHT, $2 ; person
+ object SPRITE_GAMEBOY_KID_COPY, $7, $2, STAY, DOWN, $3 ; person
+ object SPRITE_GAMEBOY_KID_COPY, $8, $2, STAY, DOWN, $4 ; person
+ object SPRITE_YOUNG_BOY, $2, $5, STAY, UP, $5 ; person
; warp-to
EVENT_DISP CELADON_MART_3_WIDTH, $1, $c ; CELADON_MART_4
diff --git a/data/mapObjects/celadonmart4.asm b/data/mapObjects/celadonmart4.asm
index 5bdbbf4a..7dce43dc 100755
--- a/data/mapObjects/celadonmart4.asm
+++ b/data/mapObjects/celadonmart4.asm
@@ -9,10 +9,10 @@ CeladonMart4Object: ; 0x48370 (size=49)
db $1 ; signs
db $1, $e, $4 ; CeladonMart4Text4
- db $3 ; people
- db SPRITE_MART_GUY, $7 + 4, $5 + 4, $ff, $ff, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $f + 4, $fe, $2, $2 ; person
- db SPRITE_BUG_CATCHER, $2 + 4, $5 + 4, $fe, $2, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $5, $7, STAY, NONE, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $f, $5, WALK, $2, $2 ; person
+ object SPRITE_BUG_CATCHER, $5, $2, WALK, $2, $3 ; person
; warp-to
EVENT_DISP CELADON_MART_4_WIDTH, $1, $c ; CELADON_MART_3
diff --git a/data/mapObjects/celadonmart5.asm b/data/mapObjects/celadonmart5.asm
index 9914d51b..23b7cf4f 100755
--- a/data/mapObjects/celadonmart5.asm
+++ b/data/mapObjects/celadonmart5.asm
@@ -9,11 +9,11 @@ CeladonMart5Object: ; 0x49085 (size=55)
db $1 ; signs
db $1, $e, $5 ; CeladonMart5Text5
- db $4 ; people
- db SPRITE_GENTLEMAN, $5 + 4, $e + 4, $fe, $1, $1 ; person
- db SPRITE_SAILOR, $6 + 4, $2 + 4, $ff, $ff, $2 ; person
- db SPRITE_MART_GUY, $3 + 4, $5 + 4, $ff, $d0, $3 ; person
- db SPRITE_MART_GUY, $3 + 4, $6 + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_GENTLEMAN, $e, $5, WALK, $1, $1 ; person
+ object SPRITE_SAILOR, $2, $6, STAY, NONE, $2 ; person
+ object SPRITE_MART_GUY, $5, $3, STAY, DOWN, $3 ; person
+ object SPRITE_MART_GUY, $6, $3, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP CELADON_MART_5_WIDTH, $1, $c ; CELADON_MART_ROOF
diff --git a/data/mapObjects/celadonmartelevator.asm b/data/mapObjects/celadonmartelevator.asm
index ca9a8f08..6b778043 100755
--- a/data/mapObjects/celadonmartelevator.asm
+++ b/data/mapObjects/celadonmartelevator.asm
@@ -8,7 +8,7 @@ CeladonMartElevatorObject: ; 0x4866d (size=23)
db $1 ; signs
db $0, $3, $1 ; CeladonMartElevatorText1
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP CELADON_MART_ELEVATOR_WIDTH, $3, $1 ; CELADON_MART_1
diff --git a/data/mapObjects/celadonmartroof.asm b/data/mapObjects/celadonmartroof.asm
index 119eb4f8..82830cf2 100755
--- a/data/mapObjects/celadonmartroof.asm
+++ b/data/mapObjects/celadonmartroof.asm
@@ -10,9 +10,9 @@ CeladonMartRoofObject: ; 0x485a8 (size=36)
db $2, $c, $5 ; CeladonMartRoofText5
db $2, $d, $6 ; CeladonMartRoofText6
- db $2 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $a + 4, $ff, $d2, $1 ; person
- db SPRITE_LITTLE_GIRL, $5 + 4, $5 + 4, $fe, $0, $2 ; person
+ db $2 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $a, $4, STAY, LEFT, $1 ; person
+ object SPRITE_LITTLE_GIRL, $5, $5, WALK, $0, $2 ; person
; warp-to
EVENT_DISP CELADON_MART_ROOF_WIDTH, $2, $f ; CELADON_MART_5
diff --git a/data/mapObjects/celadonpokecenter.asm b/data/mapObjects/celadonpokecenter.asm
index dcfeceb7..ccc30ce7 100755
--- a/data/mapObjects/celadonpokecenter.asm
+++ b/data/mapObjects/celadonpokecenter.asm
@@ -7,11 +7,11 @@ CeladonPokecenterObject: ; 0x488d2 (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $fe, $2, $2 ; person
- db SPRITE_FOULARD_WOMAN, $5 + 4, $a + 4, $fe, $0, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_GENTLEMAN, $7, $3, WALK, $2, $2 ; person
+ object SPRITE_FOULARD_WOMAN, $a, $5, WALK, $0, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP CELADON_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/celadonprizeroom.asm b/data/mapObjects/celadonprizeroom.asm
index f280b050..73ca7598 100755
--- a/data/mapObjects/celadonprizeroom.asm
+++ b/data/mapObjects/celadonprizeroom.asm
@@ -10,9 +10,9 @@ CeladonPrizeRoomObject: ; 0x49108 (size=41)
db $2, $4, $4 ; CeladonPrizeRoomText4
db $2, $6, $5 ; CeladonPrizeRoomText5
- db $2 ; people
- db SPRITE_BALDING_GUY, $4 + 4, $1 + 4, $ff, $ff, $1 ; person
- db SPRITE_GAMBLER, $3 + 4, $7 + 4, $fe, $2, $2 ; person
+ db $2 ; objects
+ object SPRITE_BALDING_GUY, $1, $4, STAY, NONE, $1 ; person
+ object SPRITE_GAMBLER, $7, $3, WALK, $2, $2 ; person
; warp-to
EVENT_DISP CELADON_PRIZE_ROOM_WIDTH, $7, $4
diff --git a/data/mapObjects/ceruleancity.asm b/data/mapObjects/ceruleancity.asm
index 3f57457b..8c429695 100755
--- a/data/mapObjects/ceruleancity.asm
+++ b/data/mapObjects/ceruleancity.asm
@@ -21,18 +21,18 @@ CeruleanCityObject: ; 0x18786 (size=170)
db $19, $b, $10 ; CeruleanCityText16
db $15, $1b, $11 ; CeruleanCityText17
- db $b ; people
- db SPRITE_BLUE, $2 + 4, $14 + 4, $ff, $d0, $1 ; person
- db SPRITE_ROCKET, $8 + 4, $1e + 4, $ff, $ff, TRAINER | $2, ROCKET + $C8, $5
- db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $1f + 4, $ff, $d0, $3 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $12 + 4, $f + 4, $fe, $1, $4 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $9 + 4, $fe, $2, $5 ; person
- db SPRITE_GUARD, $c + 4, $1c + 4, $ff, $d0, $6 ; person
- db SPRITE_LASS, $1a + 4, $1d + 4, $ff, $d2, $7 ; person
- db SPRITE_SLOWBRO, $1a + 4, $1c + 4, $ff, $d0, $8 ; person
- db SPRITE_LASS, $1b + 4, $9 + 4, $fe, $2, $9 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $c + 4, $4 + 4, $ff, $d0, $a ; person
- db SPRITE_GUARD, $c + 4, $1b + 4, $ff, $d0, $b ; person
+ db $b ; objects
+ object SPRITE_BLUE, $14, $2, STAY, DOWN, $1 ; person
+ object SPRITE_ROCKET, $1e, $8, STAY, NONE, $2, OPP_ROCKET, $5
+ object SPRITE_BLACK_HAIR_BOY_1, $1f, $14, STAY, DOWN, $3 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $f, $12, WALK, $1, $4 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $9, $15, WALK, $2, $5 ; person
+ object SPRITE_GUARD, $1c, $c, STAY, DOWN, $6 ; person
+ object SPRITE_LASS, $1d, $1a, STAY, LEFT, $7 ; person
+ object SPRITE_SLOWBRO, $1c, $1a, STAY, DOWN, $8 ; person
+ object SPRITE_LASS, $9, $1b, WALK, $2, $9 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $4, $c, STAY, DOWN, $a ; person
+ object SPRITE_GUARD, $1b, $c, STAY, DOWN, $b ; person
; warp-to
EVENT_DISP CERULEAN_CITY_WIDTH, $b, $1b ; TRASHED_HOUSE
diff --git a/data/mapObjects/ceruleangym.asm b/data/mapObjects/ceruleangym.asm
index 87128c5b..d87c9c20 100755
--- a/data/mapObjects/ceruleangym.asm
+++ b/data/mapObjects/ceruleangym.asm
@@ -7,11 +7,11 @@ CeruleanGymObject: ; 0x5c834 (size=50)
db $0 ; signs
- db $4 ; people
- db SPRITE_BRUNETTE_GIRL, $2 + 4, $4 + 4, $ff, $d0, TRAINER | $1, MISTY + $C8, $1
- db SPRITE_LASS, $3 + 4, $2 + 4, $ff, $d3, TRAINER | $2, JR__TRAINER_F + $C8, $1
- db SPRITE_SWIMMER, $7 + 4, $8 + 4, $ff, $d2, TRAINER | $3, SWIMMER + $C8, $1
- db SPRITE_GYM_HELPER, $a + 4, $7 + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_BRUNETTE_GIRL, $4, $2, STAY, DOWN, $1, OPP_MISTY, $1
+ object SPRITE_LASS, $2, $3, STAY, RIGHT, $2, OPP_JR__TRAINER_F, $1
+ object SPRITE_SWIMMER, $8, $7, STAY, LEFT, $3, OPP_SWIMMER, $1
+ object SPRITE_GYM_HELPER, $7, $a, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP CERULEAN_GYM_WIDTH, $d, $4
diff --git a/data/mapObjects/ceruleanhouse1.asm b/data/mapObjects/ceruleanhouse1.asm
index a5d10033..db0be014 100755
--- a/data/mapObjects/ceruleanhouse1.asm
+++ b/data/mapObjects/ceruleanhouse1.asm
@@ -7,9 +7,9 @@ CeruleanHouse1Object: ; 0x1d710 (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_OLD_MEDIUM_WOMAN, $4 + 4, $5 + 4, $ff, $d2, $1 ; person
- db SPRITE_GAMBLER, $2 + 4, $1 + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_OLD_MEDIUM_WOMAN, $5, $4, STAY, LEFT, $1 ; person
+ object SPRITE_GAMBLER, $1, $2, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $2
diff --git a/data/mapObjects/ceruleanhouse2.asm b/data/mapObjects/ceruleanhouse2.asm
index c8c4ee51..24fe3a5e 100755
--- a/data/mapObjects/ceruleanhouse2.asm
+++ b/data/mapObjects/ceruleanhouse2.asm
@@ -8,8 +8,8 @@ CeruleanHouse2Object: ; 0x74ebe (size=34)
db $0 ; signs
- db $1 ; people
- db SPRITE_FAT_BALD_GUY, $3 + 4, $5 + 4, $ff, $d3, $1 ; person
+ db $1 ; objects
+ object SPRITE_FAT_BALD_GUY, $5, $3, STAY, RIGHT, $1 ; person
; warp-to
EVENT_DISP CERULEAN_HOUSE_2_WIDTH, $0, $2
diff --git a/data/mapObjects/ceruleanhousetrashed.asm b/data/mapObjects/ceruleanhousetrashed.asm
index ce5e0e69..0c896120 100755
--- a/data/mapObjects/ceruleanhousetrashed.asm
+++ b/data/mapObjects/ceruleanhousetrashed.asm
@@ -9,9 +9,9 @@ CeruleanHouseTrashedObject: ; 0x1d6bf (size=43)
db $1 ; signs
db $0, $3, $3 ; CeruleanHouseTrashedText3
- db $2 ; people
- db SPRITE_FISHER, $1 + 4, $2 + 4, $ff, $d0, $1 ; person
- db SPRITE_GIRL, $6 + 4, $5 + 4, $fe, $2, $2 ; person
+ db $2 ; objects
+ object SPRITE_FISHER, $2, $1, STAY, DOWN, $1 ; person
+ object SPRITE_GIRL, $5, $6, WALK, $2, $2 ; person
; warp-to
EVENT_DISP TRASHED_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/ceruleanmart.asm b/data/mapObjects/ceruleanmart.asm
index bc8c4818..fc400e73 100755
--- a/data/mapObjects/ceruleanmart.asm
+++ b/data/mapObjects/ceruleanmart.asm
@@ -7,10 +7,10 @@ CeruleanMartObject: ; 0x5c8a8 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $3 + 4, $fe, $1, $2 ; person
- db SPRITE_LASS, $2 + 4, $6 + 4, $fe, $2, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $3, $4, WALK, $1, $2 ; person
+ object SPRITE_LASS, $6, $2, WALK, $2, $3 ; person
; warp-to
EVENT_DISP CERULEAN_MART_WIDTH, $7, $3
diff --git a/data/mapObjects/ceruleanpokecenter.asm b/data/mapObjects/ceruleanpokecenter.asm
index c7e8cb8b..930995dd 100755
--- a/data/mapObjects/ceruleanpokecenter.asm
+++ b/data/mapObjects/ceruleanpokecenter.asm
@@ -7,11 +7,11 @@ CeruleanPokecenterObject: ; 0x5c65f (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $a + 4, $fe, $0, $2 ; person
- db SPRITE_GENTLEMAN, $3 + 4, $4 + 4, $ff, $d0, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $a, $5, WALK, $0, $2 ; person
+ object SPRITE_GENTLEMAN, $4, $3, STAY, DOWN, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP CERULEAN_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/cinnabargym.asm b/data/mapObjects/cinnabargym.asm
index ba18fdc6..d9b69192 100755
--- a/data/mapObjects/cinnabargym.asm
+++ b/data/mapObjects/cinnabargym.asm
@@ -7,16 +7,16 @@ CinnabarGymObject: ; 0x75acc (size=90)
db $0 ; signs
- db $9 ; people
- db SPRITE_FAT_BALD_GUY, $3 + 4, $3 + 4, $ff, $d0, TRAINER | $1, BLAINE + $C8, $1
- db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $11 + 4, $ff, $d0, TRAINER | $2, SUPER_NERD + $C8, $9
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $11 + 4, $ff, $d0, TRAINER | $3, BURGLAR + $C8, $4
- db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $b + 4, $ff, $d0, TRAINER | $4, SUPER_NERD + $C8, $a
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $b + 4, $ff, $d0, TRAINER | $5, BURGLAR + $C8, $5
- db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $b + 4, $ff, $d0, TRAINER | $6, SUPER_NERD + $C8, $b
- db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $3 + 4, $ff, $d0, TRAINER | $7, BURGLAR + $C8, $6
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d0, TRAINER | $8, SUPER_NERD + $C8, $c
- db SPRITE_GYM_HELPER, $d + 4, $10 + 4, $ff, $d0, $9 ; person
+ db $9 ; objects
+ object SPRITE_FAT_BALD_GUY, $3, $3, STAY, DOWN, $1, OPP_BLAINE, $1
+ object SPRITE_BLACK_HAIR_BOY_2, $11, $2, STAY, DOWN, $2, OPP_SUPER_NERD, $9
+ object SPRITE_BLACK_HAIR_BOY_2, $11, $8, STAY, DOWN, $3, OPP_BURGLAR, $4
+ object SPRITE_BLACK_HAIR_BOY_2, $b, $4, STAY, DOWN, $4, OPP_SUPER_NERD, $a
+ object SPRITE_BLACK_HAIR_BOY_2, $b, $8, STAY, DOWN, $5, OPP_BURGLAR, $5
+ object SPRITE_BLACK_HAIR_BOY_2, $b, $e, STAY, DOWN, $6, OPP_SUPER_NERD, $b
+ object SPRITE_BLACK_HAIR_BOY_2, $3, $e, STAY, DOWN, $7, OPP_BURGLAR, $6
+ object SPRITE_BLACK_HAIR_BOY_2, $3, $8, STAY, DOWN, $8, OPP_SUPER_NERD, $c
+ object SPRITE_GYM_HELPER, $10, $d, STAY, DOWN, $9 ; person
; warp-to
EVENT_DISP CINNABAR_GYM_WIDTH, $11, $10
diff --git a/data/mapObjects/cinnabarisland.asm b/data/mapObjects/cinnabarisland.asm
index f2a53d7c..7c8e80fb 100755
--- a/data/mapObjects/cinnabarisland.asm
+++ b/data/mapObjects/cinnabarisland.asm
@@ -15,9 +15,9 @@ CinnabarIslandObject: ; 0x1c022 (size=71)
db $b, $9, $6 ; CinnabarIslandText6
db $3, $d, $7 ; CinnabarIslandText7
- db $2 ; people
- db SPRITE_GIRL, $5 + 4, $c + 4, $fe, $2, $1 ; person
- db SPRITE_GAMBLER, $6 + 4, $e + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_GIRL, $c, $5, WALK, $2, $1 ; person
+ object SPRITE_GAMBLER, $e, $6, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP CINNABAR_ISLAND_WIDTH, $3, $6 ; MANSION_1
diff --git a/data/mapObjects/cinnabarmart.asm b/data/mapObjects/cinnabarmart.asm
index b976d0be..057ce048 100755
--- a/data/mapObjects/cinnabarmart.asm
+++ b/data/mapObjects/cinnabarmart.asm
@@ -7,10 +7,10 @@ CinnabarMartObject: ; 0x75e91 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_ERIKA, $2 + 4, $6 + 4, $ff, $ff, $2 ; person
- db SPRITE_OAK_AIDE, $4 + 4, $3 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_ERIKA, $6, $2, STAY, NONE, $2 ; person
+ object SPRITE_OAK_AIDE, $3, $4, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP CINNABAR_MART_WIDTH, $7, $3
diff --git a/data/mapObjects/cinnabarpokecenter.asm b/data/mapObjects/cinnabarpokecenter.asm
index 35a344e2..f144db96 100755
--- a/data/mapObjects/cinnabarpokecenter.asm
+++ b/data/mapObjects/cinnabarpokecenter.asm
@@ -7,11 +7,11 @@ CinnabarPokecenterObject: ; 0x75e46 (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_LASS, $4 + 4, $9 + 4, $fe, $0, $2 ; person
- db SPRITE_GENTLEMAN, $6 + 4, $2 + 4, $ff, $ff, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_LASS, $9, $4, WALK, $0, $2 ; person
+ object SPRITE_GENTLEMAN, $2, $6, STAY, NONE, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP CINNABAR_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/colosseum.asm b/data/mapObjects/colosseum.asm
new file mode 100644
index 00000000..5be02b44
--- /dev/null
+++ b/data/mapObjects/colosseum.asm
@@ -0,0 +1,9 @@
+ColosseumObject: ; 0x4fd87 (size=10)
+ db $e ; border block
+
+ db $0 ; warps
+
+ db $0 ; signs
+
+ db $1 ; objects
+ object SPRITE_RED, $2, $2, STAY, $0, $1 ; person
diff --git a/data/mapObjects/copycatshouse1f.asm b/data/mapObjects/copycatshouse1f.asm
index ccd839f8..96787714 100755
--- a/data/mapObjects/copycatshouse1f.asm
+++ b/data/mapObjects/copycatshouse1f.asm
@@ -8,10 +8,10 @@ CopycatsHouse1FObject: ; 0x75ee3 (size=46)
db $0 ; signs
- db $3 ; people
- db SPRITE_MOM_GEISHA, $2 + 4, $2 + 4, $ff, $d0, $1 ; person
- db SPRITE_FAT_BALD_GUY, $4 + 4, $5 + 4, $ff, $d2, $2 ; person
- db SPRITE_CLEFAIRY, $4 + 4, $1 + 4, $fe, $1, $3 ; person
+ db $3 ; objects
+ object SPRITE_MOM_GEISHA, $2, $2, STAY, DOWN, $1 ; person
+ object SPRITE_FAT_BALD_GUY, $5, $4, STAY, LEFT, $2 ; person
+ object SPRITE_CLEFAIRY, $1, $4, WALK, $1, $3 ; person
; warp-to
EVENT_DISP COPYCATS_HOUSE_1F_WIDTH, $7, $2
diff --git a/data/mapObjects/copycatshouse2f.asm b/data/mapObjects/copycatshouse2f.asm
index 3d0432c6..204c429f 100755
--- a/data/mapObjects/copycatshouse2f.asm
+++ b/data/mapObjects/copycatshouse2f.asm
@@ -8,12 +8,12 @@ CopycatsHouse2FObject: ; 0x5cd21 (size=48)
db $5, $3, $6 ; CopycatsHouse2FText6
db $1, $0, $7 ; CopycatsHouse2FText7
- db $5 ; people
- db SPRITE_BRUNETTE_GIRL, $3 + 4, $4 + 4, $fe, $0, $1 ; person
- db SPRITE_BIRD, $6 + 4, $4 + 4, $fe, $2, $2 ; person
- db SPRITE_SLOWBRO, $1 + 4, $5 + 4, $ff, $d0, $3 ; person
- db SPRITE_BIRD, $0 + 4, $2 + 4, $ff, $d0, $4 ; person
- db SPRITE_CLEFAIRY, $6 + 4, $1 + 4, $ff, $d3, $5 ; person
+ db $5 ; objects
+ object SPRITE_BRUNETTE_GIRL, $4, $3, WALK, $0, $1 ; person
+ object SPRITE_BIRD, $4, $6, WALK, $2, $2 ; person
+ object SPRITE_SLOWBRO, $5, $1, STAY, DOWN, $3 ; person
+ object SPRITE_BIRD, $2, $0, STAY, DOWN, $4 ; person
+ object SPRITE_CLEFAIRY, $1, $6, STAY, RIGHT, $5 ; person
; warp-to
EVENT_DISP COPYCATS_HOUSE_2F_WIDTH, $1, $7 ; COPYCATS_HOUSE_1F
diff --git a/data/mapObjects/daycarem.asm b/data/mapObjects/daycarem.asm
index 8311853a..7fbbf13b 100755
--- a/data/mapObjects/daycarem.asm
+++ b/data/mapObjects/daycarem.asm
@@ -7,8 +7,8 @@ DayCareMObject: ; 0x56459 (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_GENTLEMAN, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
+ db $1 ; objects
+ object SPRITE_GENTLEMAN, $2, $3, STAY, RIGHT, $1 ; person
; warp-to
EVENT_DISP DAYCAREM_WIDTH, $7, $2
diff --git a/data/mapObjects/diglettscave.asm b/data/mapObjects/diglettscave.asm
index 858005ce..74bbf775 100755
--- a/data/mapObjects/diglettscave.asm
+++ b/data/mapObjects/diglettscave.asm
@@ -7,7 +7,7 @@ DiglettsCaveObject: ; 0x61f72 (size=20)
db $0 ; signs
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP DIGLETTS_CAVE_WIDTH, $5, $5 ; DIGLETTS_CAVE_EXIT
diff --git a/data/mapObjects/diglettscaveroute11.asm b/data/mapObjects/diglettscaveroute11.asm
index e232b1cc..d77e649d 100755
--- a/data/mapObjects/diglettscaveroute11.asm
+++ b/data/mapObjects/diglettscaveroute11.asm
@@ -8,8 +8,8 @@ DiglettsCaveEntranceRoute11Object: ; 0x1e5ca (size=34)
db $0 ; signs
- db $1 ; people
- db SPRITE_GAMBLER, $3 + 4, $2 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_GAMBLER, $2, $3, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP DIGLETTS_CAVE_ENTRANCE_WIDTH, $7, $2
diff --git a/data/mapObjects/diglettscaveroute2.asm b/data/mapObjects/diglettscaveroute2.asm
index 2e86600f..a905305b 100755
--- a/data/mapObjects/diglettscaveroute2.asm
+++ b/data/mapObjects/diglettscaveroute2.asm
@@ -8,8 +8,8 @@ DiglettsCaveRoute2Object: ; 0x1debf (size=34)
db $0 ; signs
- db $1 ; people
- db SPRITE_FISHER, $3 + 4, $3 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_FISHER, $3, $3, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP DIGLETTS_CAVE_EXIT_WIDTH, $7, $2
diff --git a/data/mapObjects/fanclub.asm b/data/mapObjects/fanclub.asm
index 15b9a89f..6f65b287 100755
--- a/data/mapObjects/fanclub.asm
+++ b/data/mapObjects/fanclub.asm
@@ -9,13 +9,13 @@ FanClubObject: ; 0x59c97 (size=62)
db $0, $1, $7 ; FanClubText7
db $0, $6, $8 ; FanClubText8
- db $6 ; people
- db SPRITE_FISHER2, $3 + 4, $6 + 4, $ff, $d2, $1 ; person
- db SPRITE_GIRL, $3 + 4, $1 + 4, $ff, $d3, $2 ; person
- db SPRITE_CLEFAIRY, $4 + 4, $6 + 4, $ff, $d2, $3 ; person
- db SPRITE_SEEL, $4 + 4, $1 + 4, $ff, $d3, $4 ; person
- db SPRITE_GENTLEMAN, $1 + 4, $3 + 4, $ff, $d0, $5 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $1 + 4, $5 + 4, $ff, $d0, $6 ; person
+ db $6 ; objects
+ object SPRITE_FISHER2, $6, $3, STAY, LEFT, $1 ; person
+ object SPRITE_GIRL, $1, $3, STAY, RIGHT, $2 ; person
+ object SPRITE_CLEFAIRY, $6, $4, STAY, LEFT, $3 ; person
+ object SPRITE_SEEL, $1, $4, STAY, RIGHT, $4 ; person
+ object SPRITE_GENTLEMAN, $3, $1, STAY, DOWN, $5 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $5, $1, STAY, DOWN, $6 ; person
; warp-to
EVENT_DISP POKEMON_FAN_CLUB_WIDTH, $7, $2
diff --git a/data/mapObjects/fightingdojo.asm b/data/mapObjects/fightingdojo.asm
index f84f3ee7..aa9c0bd7 100755
--- a/data/mapObjects/fightingdojo.asm
+++ b/data/mapObjects/fightingdojo.asm
@@ -7,14 +7,14 @@ FightingDojoObject: ; 0x5cf9b (size=72)
db $0 ; signs
- db $7 ; people
- db SPRITE_HIKER, $3 + 4, $5 + 4, $ff, $d0, TRAINER | $1, BLACKBELT + $C8, $1
- db SPRITE_HIKER, $4 + 4, $3 + 4, $ff, $d3, TRAINER | $2, BLACKBELT + $C8, $2
- db SPRITE_HIKER, $6 + 4, $3 + 4, $ff, $d3, TRAINER | $3, BLACKBELT + $C8, $3
- db SPRITE_HIKER, $5 + 4, $5 + 4, $ff, $d2, TRAINER | $4, BLACKBELT + $C8, $4
- db SPRITE_HIKER, $7 + 4, $5 + 4, $ff, $d2, TRAINER | $5, BLACKBELT + $C8, $5
- db SPRITE_BALL, $1 + 4, $4 + 4, $ff, $ff, $6 ; person
- db SPRITE_BALL, $1 + 4, $5 + 4, $ff, $ff, $7 ; person
+ db $7 ; objects
+ object SPRITE_HIKER, $5, $3, STAY, DOWN, $1, OPP_BLACKBELT, $1
+ object SPRITE_HIKER, $3, $4, STAY, RIGHT, $2, OPP_BLACKBELT, $2
+ object SPRITE_HIKER, $3, $6, STAY, RIGHT, $3, OPP_BLACKBELT, $3
+ object SPRITE_HIKER, $5, $5, STAY, LEFT, $4, OPP_BLACKBELT, $4
+ object SPRITE_HIKER, $5, $7, STAY, LEFT, $5, OPP_BLACKBELT, $5
+ object SPRITE_BALL, $4, $1, STAY, NONE, $6 ; person
+ object SPRITE_BALL, $5, $1, STAY, NONE, $7 ; person
; warp-to
EVENT_DISP FIGHTING_DOJO_WIDTH, $b, $4
diff --git a/data/mapObjects/fuchsiacity.asm b/data/mapObjects/fuchsiacity.asm
index f6ce2ec3..85f801d9 100755
--- a/data/mapObjects/fuchsiacity.asm
+++ b/data/mapObjects/fuchsiacity.asm
@@ -28,17 +28,17 @@ FuchsiaCityObject: ; 0x18bd4 (size=178)
db $f, $d, $17 ; FuchsiaCityText23
db $7, $7, $18 ; FuchsiaCityText24
- db $a ; people
- db SPRITE_BUG_CATCHER, $c + 4, $a + 4, $fe, $2, $1 ; person
- db SPRITE_GAMBLER, $11 + 4, $1c + 4, $fe, $2, $2 ; person
- db SPRITE_FISHER2, $e + 4, $1e + 4, $ff, $d0, $3 ; person
- db SPRITE_BUG_CATCHER, $8 + 4, $18 + 4, $ff, $d1, $4 ; person
- db SPRITE_CLEFAIRY, $5 + 4, $1f + 4, $fe, $0, $5 ; person
- db SPRITE_BALL, $6 + 4, $19 + 4, $ff, $ff, $6 ; person
- db SPRITE_SLOWBRO, $6 + 4, $c + 4, $fe, $2, $7 ; person
- db SPRITE_SLOWBRO, $c + 4, $1e + 4, $fe, $2, $8 ; person
- db SPRITE_SEEL, $11 + 4, $8 + 4, $fe, $0, $9 ; person
- db SPRITE_OMANYTE, $5 + 4, $6 + 4, $ff, $ff, $a ; person
+ db $a ; objects
+ object SPRITE_BUG_CATCHER, $a, $c, WALK, $2, $1 ; person
+ object SPRITE_GAMBLER, $1c, $11, WALK, $2, $2 ; person
+ object SPRITE_FISHER2, $1e, $e, STAY, DOWN, $3 ; person
+ object SPRITE_BUG_CATCHER, $18, $8, STAY, UP, $4 ; person
+ object SPRITE_CLEFAIRY, $1f, $5, WALK, $0, $5 ; person
+ object SPRITE_BALL, $19, $6, STAY, NONE, $6 ; person
+ object SPRITE_SLOWBRO, $c, $6, WALK, $2, $7 ; person
+ object SPRITE_SLOWBRO, $1e, $c, WALK, $2, $8 ; person
+ object SPRITE_SEEL, $8, $11, WALK, $0, $9 ; person
+ object SPRITE_OMANYTE, $6, $5, STAY, NONE, $a ; person
; warp-to
EVENT_DISP FUCHSIA_CITY_WIDTH, $d, $5 ; FUCHSIA_MART
diff --git a/data/mapObjects/fuchsiagym.asm b/data/mapObjects/fuchsiagym.asm
index e48c597c..ded17031 100755
--- a/data/mapObjects/fuchsiagym.asm
+++ b/data/mapObjects/fuchsiagym.asm
@@ -7,15 +7,15 @@ FuchsiaGymObject: ; 0x75658 (size=82)
db $0 ; signs
- db $8 ; people
- db SPRITE_BLACKBELT, $a + 4, $4 + 4, $ff, $d0, TRAINER | $1, KOGA + $C8, $1
- db SPRITE_ROCKER, $d + 4, $8 + 4, $ff, $d0, TRAINER | $2, JUGGLER + $C8, $7
- db SPRITE_ROCKER, $8 + 4, $7 + 4, $ff, $d3, TRAINER | $3, JUGGLER + $C8, $3
- db SPRITE_ROCKER, $c + 4, $1 + 4, $ff, $d0, TRAINER | $4, JUGGLER + $C8, $8
- db SPRITE_ROCKER, $5 + 4, $3 + 4, $ff, $d1, TRAINER | $5, TAMER + $C8, $1
- db SPRITE_ROCKER, $2 + 4, $8 + 4, $ff, $d0, TRAINER | $6, TAMER + $C8, $2
- db SPRITE_ROCKER, $7 + 4, $2 + 4, $ff, $d2, TRAINER | $7, JUGGLER + $C8, $4
- db SPRITE_GYM_HELPER, $f + 4, $7 + 4, $ff, $d0, $8 ; person
+ db $8 ; objects
+ object SPRITE_BLACKBELT, $4, $a, STAY, DOWN, $1, OPP_KOGA, $1
+ object SPRITE_ROCKER, $8, $d, STAY, DOWN, $2, OPP_JUGGLER, $7
+ object SPRITE_ROCKER, $7, $8, STAY, RIGHT, $3, OPP_JUGGLER, $3
+ object SPRITE_ROCKER, $1, $c, STAY, DOWN, $4, OPP_JUGGLER, $8
+ object SPRITE_ROCKER, $3, $5, STAY, UP, $5, OPP_TAMER, $1
+ object SPRITE_ROCKER, $8, $2, STAY, DOWN, $6, OPP_TAMER, $2
+ object SPRITE_ROCKER, $2, $7, STAY, LEFT, $7, OPP_JUGGLER, $4
+ object SPRITE_GYM_HELPER, $7, $f, STAY, DOWN, $8 ; person
; warp-to
EVENT_DISP FUCHSIA_GYM_WIDTH, $11, $4
diff --git a/data/mapObjects/fuchsiahouse1.asm b/data/mapObjects/fuchsiahouse1.asm
index 4e3ec676..0789ea2c 100755
--- a/data/mapObjects/fuchsiahouse1.asm
+++ b/data/mapObjects/fuchsiahouse1.asm
@@ -7,10 +7,10 @@ FuchsiaHouse1Object: ; 0x75031 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MOM_GEISHA, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
- db SPRITE_GAMBLER, $2 + 4, $7 + 4, $ff, $d1, $2 ; person
- db SPRITE_BUG_CATCHER, $5 + 4, $5 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_MOM_GEISHA, $2, $3, STAY, RIGHT, $1 ; person
+ object SPRITE_GAMBLER, $7, $2, STAY, UP, $2 ; person
+ object SPRITE_BUG_CATCHER, $5, $5, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP FUCHSIA_HOUSE_1_WIDTH, $7, $2
diff --git a/data/mapObjects/fuchsiahouse2.asm b/data/mapObjects/fuchsiahouse2.asm
index f2958f02..f3aa5e7c 100755
--- a/data/mapObjects/fuchsiahouse2.asm
+++ b/data/mapObjects/fuchsiahouse2.asm
@@ -9,10 +9,10 @@ FuchsiaHouse2Object: ; 0x75180 (size=45)
db $3, $4, $4 ; FuchsiaHouse2Text4
db $3, $5, $5 ; FuchsiaHouse2Text5
- db $3 ; people
- db SPRITE_WARDEN, $3 + 4, $2 + 4, $ff, $ff, $1 ; person
- db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, ITEM | $2, RARE_CANDY
- db SPRITE_BOULDER, $4 + 4, $8 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $3 ; person
+ db $3 ; objects
+ object SPRITE_WARDEN, $2, $3, STAY, NONE, $1 ; person
+ object SPRITE_BALL, $8, $3, STAY, NONE, $2, RARE_CANDY
+ object SPRITE_BOULDER, $8, $4, STAY, BOULDER_MOVEMENT_BYTE_2, $3 ; person
; warp-to
EVENT_DISP FUCHSIA_HOUSE_2_WIDTH, $7, $4
diff --git a/data/mapObjects/fuchsiahouse3.asm b/data/mapObjects/fuchsiahouse3.asm
index 141f895f..3fd056e9 100755
--- a/data/mapObjects/fuchsiahouse3.asm
+++ b/data/mapObjects/fuchsiahouse3.asm
@@ -8,8 +8,8 @@ FuchsiaHouse3Object: ; 0x56221 (size=34)
db $0 ; signs
- db $1 ; people
- db SPRITE_FISHER, $3 + 4, $5 + 4, $ff, $d3, $1 ; person
+ db $1 ; objects
+ object SPRITE_FISHER, $5, $3, STAY, RIGHT, $1 ; person
; warp-to
EVENT_DISP FUCHSIA_HOUSE_3_WIDTH, $0, $2
diff --git a/data/mapObjects/fuchsiamart.asm b/data/mapObjects/fuchsiamart.asm
index cb859734..eb85d110 100755
--- a/data/mapObjects/fuchsiamart.asm
+++ b/data/mapObjects/fuchsiamart.asm
@@ -7,10 +7,10 @@ FuchsiaMartObject: ; 0x1dd9b (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_FAT_BALD_GUY, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
- db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $1, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_FAT_BALD_GUY, $4, $2, STAY, NONE, $2 ; person
+ object SPRITE_LASS, $6, $5, WALK, $1, $3 ; person
; warp-to
EVENT_DISP FUCHSIA_MART_WIDTH, $7, $3
diff --git a/data/mapObjects/fuchsiameetingroom.asm b/data/mapObjects/fuchsiameetingroom.asm
index fb243f4b..36afcfd8 100755
--- a/data/mapObjects/fuchsiameetingroom.asm
+++ b/data/mapObjects/fuchsiameetingroom.asm
@@ -7,10 +7,10 @@ FuchsiaMeetingRoomObject: ; 0x756fc (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_WHITE_PLAYER, $1 + 4, $4 + 4, $ff, $d0, $1 ; person
- db SPRITE_WHITE_PLAYER, $2 + 4, $0 + 4, $ff, $d1, $2 ; person
- db SPRITE_WHITE_PLAYER, $1 + 4, $a + 4, $ff, $d0, $3 ; person
+ db $3 ; objects
+ object SPRITE_WHITE_PLAYER, $4, $1, STAY, DOWN, $1 ; person
+ object SPRITE_WHITE_PLAYER, $0, $2, STAY, UP, $2 ; person
+ object SPRITE_WHITE_PLAYER, $a, $1, STAY, DOWN, $3 ; person
; warp-to
EVENT_DISP FUCHSIA_MEETING_ROOM_WIDTH, $7, $4
diff --git a/data/mapObjects/fuchsiapokecenter.asm b/data/mapObjects/fuchsiapokecenter.asm
index 1efcd255..19b2c950 100755
--- a/data/mapObjects/fuchsiapokecenter.asm
+++ b/data/mapObjects/fuchsiapokecenter.asm
@@ -7,11 +7,11 @@ FuchsiaPokecenterObject: ; 0x7507d (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_ROCKER, $3 + 4, $2 + 4, $ff, $ff, $2 ; person
- db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $2, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_ROCKER, $2, $3, STAY, NONE, $2 ; person
+ object SPRITE_LASS, $6, $5, WALK, $2, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP FUCHSIA_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/gary.asm b/data/mapObjects/gary.asm
index e94ad9b3..c14efcf0 100755
--- a/data/mapObjects/gary.asm
+++ b/data/mapObjects/gary.asm
@@ -9,9 +9,9 @@ GaryObject: ; 0x7612f (size=48)
db $0 ; signs
- db $2 ; people
- db SPRITE_BLUE, $2 + 4, $4 + 4, $ff, $d0, $1 ; person
- db SPRITE_OAK, $7 + 4, $3 + 4, $ff, $d1, $2 ; person
+ db $2 ; objects
+ object SPRITE_BLUE, $4, $2, STAY, DOWN, $1 ; person
+ object SPRITE_OAK, $3, $7, STAY, UP, $2 ; person
; warp-to
EVENT_DISP CHAMPIONS_ROOM_WIDTH, $7, $3 ; LANCES_ROOM
diff --git a/data/mapObjects/halloffameroom.asm b/data/mapObjects/halloffameroom.asm
index 6d528135..b21b1f4e 100755
--- a/data/mapObjects/halloffameroom.asm
+++ b/data/mapObjects/halloffameroom.asm
@@ -7,8 +7,8 @@ HallofFameRoomObject: ; 0x5a571 (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_OAK, $2 + 4, $5 + 4, $ff, $d0, $1 ; person
+ db $1 ; objects
+ object SPRITE_OAK, $5, $2, STAY, DOWN, $1 ; person
; warp-to
EVENT_DISP HALL_OF_FAME_WIDTH, $7, $4 ; CHAMPIONS_ROOM
diff --git a/data/mapObjects/indigoplateau.asm b/data/mapObjects/indigoplateau.asm
index 6970963f..a30cfbfe 100755
--- a/data/mapObjects/indigoplateau.asm
+++ b/data/mapObjects/indigoplateau.asm
@@ -7,7 +7,7 @@ IndigoPlateauObject: ; 0x50936 (size=20)
db $0 ; signs
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP INDIGO_PLATEAU_WIDTH, $5, $9 ; INDIGO_PLATEAU_LOBBY
diff --git a/data/mapObjects/indigoplateaulobby.asm b/data/mapObjects/indigoplateaulobby.asm
index 6b9c1e99..dfcd97b7 100755
--- a/data/mapObjects/indigoplateaulobby.asm
+++ b/data/mapObjects/indigoplateaulobby.asm
@@ -8,12 +8,12 @@ IndigoPlateauLobbyObject: ; 0x19c95 (size=58)
db $0 ; signs
- db $5 ; people
- db SPRITE_NURSE, $5 + 4, $7 + 4, $ff, $d0, $1 ; person
- db SPRITE_GYM_HELPER, $9 + 4, $4 + 4, $ff, $d3, $2 ; person
- db SPRITE_LASS, $1 + 4, $5 + 4, $ff, $d0, $3 ; person
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $4 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $6 + 4, $d + 4, $ff, $d0, $5 ; person
+ db $5 ; objects
+ object SPRITE_NURSE, $7, $5, STAY, DOWN, $1 ; person
+ object SPRITE_GYM_HELPER, $4, $9, STAY, RIGHT, $2 ; person
+ object SPRITE_LASS, $5, $1, STAY, DOWN, $3 ; person
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $4 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $d, $6, STAY, DOWN, $5 ; person
; warp-to
EVENT_DISP INDIGO_PLATEAU_LOBBY_WIDTH, $b, $7
diff --git a/data/mapObjects/lab1.asm b/data/mapObjects/lab1.asm
index 52db2e24..a2e05e14 100755
--- a/data/mapObjects/lab1.asm
+++ b/data/mapObjects/lab1.asm
@@ -14,8 +14,8 @@ Lab1Object: ; 0x75bb3 (size=62)
db $4, $d, $4 ; Lab1Text4
db $4, $11, $5 ; Lab1Text5
- db $1 ; people
- db SPRITE_FISHER, $3 + 4, $1 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_FISHER, $1, $3, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP CINNABAR_LAB_1_WIDTH, $7, $2
diff --git a/data/mapObjects/lab2.asm b/data/mapObjects/lab2.asm
index 52556c69..89ed5f2c 100755
--- a/data/mapObjects/lab2.asm
+++ b/data/mapObjects/lab2.asm
@@ -7,10 +7,10 @@ Lab2Object: ; 0x75c45 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_OLD_PERSON, $4 + 4, $1 + 4, $ff, $ff, $2 ; person
- db SPRITE_FOULARD_WOMAN, $5 + 4, $5 + 4, $ff, $d1, $3 ; person
+ db $3 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $3, $2, STAY, DOWN, $1 ; person
+ object SPRITE_OLD_PERSON, $1, $4, STAY, NONE, $2 ; person
+ object SPRITE_FOULARD_WOMAN, $5, $5, STAY, UP, $3 ; person
; warp-to
EVENT_DISP CINNABAR_LAB_2_WIDTH, $7, $2 ; CINNABAR_LAB_1
diff --git a/data/mapObjects/lab3.asm b/data/mapObjects/lab3.asm
index 8b4396cc..8aca194b 100755
--- a/data/mapObjects/lab3.asm
+++ b/data/mapObjects/lab3.asm
@@ -10,9 +10,9 @@ Lab3Object: ; 0x75cec (size=41)
db $4, $1, $4 ; Lab3Text4
db $1, $2, $5 ; Lab3Text5
- db $2 ; people
- db SPRITE_OAK_AIDE, $2 + 4, $7 + 4, $ff, $d0, $1 ; person
- db SPRITE_OAK_AIDE, $3 + 4, $2 + 4, $fe, $2, $2 ; person
+ db $2 ; objects
+ object SPRITE_OAK_AIDE, $7, $2, STAY, DOWN, $1 ; person
+ object SPRITE_OAK_AIDE, $2, $3, WALK, $2, $2 ; person
; warp-to
EVENT_DISP CINNABAR_LAB_3_WIDTH, $7, $2 ; CINNABAR_LAB_1
diff --git a/data/mapObjects/lab4.asm b/data/mapObjects/lab4.asm
index 66b73ebd..47f301c9 100755
--- a/data/mapObjects/lab4.asm
+++ b/data/mapObjects/lab4.asm
@@ -7,9 +7,9 @@ Lab4Object: ; 0x75df0 (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_OAK_AIDE, $2 + 4, $5 + 4, $fe, $2, $1 ; person
- db SPRITE_OAK_AIDE, $6 + 4, $7 + 4, $ff, $d1, $2 ; person
+ db $2 ; objects
+ object SPRITE_OAK_AIDE, $5, $2, WALK, $2, $1 ; person
+ object SPRITE_OAK_AIDE, $7, $6, STAY, UP, $2 ; person
; warp-to
EVENT_DISP CINNABAR_LAB_4_WIDTH, $7, $2 ; CINNABAR_LAB_1
diff --git a/data/mapObjects/lance.asm b/data/mapObjects/lance.asm
index e4ae6dfb..cdfbc7a6 100755
--- a/data/mapObjects/lance.asm
+++ b/data/mapObjects/lance.asm
@@ -8,8 +8,8 @@ LanceObject: ; 0x5a3c5 (size=36)
db $0 ; signs
- db $1 ; people
- db SPRITE_LANCE, $1 + 4, $6 + 4, $ff, $d0, TRAINER | $1, LANCE + $C8, $1
+ db $1 ; objects
+ object SPRITE_LANCE, $6, $1, STAY, DOWN, $1, OPP_LANCE, $1
; warp-to
EVENT_DISP LANCES_ROOM_WIDTH, $10, $18 ; AGATHAS_ROOM
diff --git a/data/mapObjects/lavenderhouse1.asm b/data/mapObjects/lavenderhouse1.asm
index 4472c7ed..45707121 100755
--- a/data/mapObjects/lavenderhouse1.asm
+++ b/data/mapObjects/lavenderhouse1.asm
@@ -7,13 +7,13 @@ LavenderHouse1Object: ; 0x1d96a (size=56)
db $0 ; signs
- db $6 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $3 + 4, $ff, $ff, $1 ; person
- db SPRITE_LITTLE_GIRL, $3 + 4, $6 + 4, $ff, $d0, $2 ; person
- db SPRITE_SLOWBRO, $4 + 4, $6 + 4, $ff, $d1, $3 ; person
- db SPRITE_SLOWBRO, $3 + 4, $1 + 4, $ff, $ff, $4 ; person
- db SPRITE_MR_FUJI, $1 + 4, $3 + 4, $ff, $ff, $5 ; person
- db SPRITE_BOOK_MAP_DEX, $3 + 4, $3 + 4, $ff, $ff, $6 ; person
+ db $6 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $3, $5, STAY, NONE, $1 ; person
+ object SPRITE_LITTLE_GIRL, $6, $3, STAY, DOWN, $2 ; person
+ object SPRITE_SLOWBRO, $6, $4, STAY, UP, $3 ; person
+ object SPRITE_SLOWBRO, $1, $3, STAY, NONE, $4 ; person
+ object SPRITE_MR_FUJI, $3, $1, STAY, NONE, $5 ; person
+ object SPRITE_BOOK_MAP_DEX, $3, $3, STAY, NONE, $6 ; person
; warp-to
EVENT_DISP LAVENDER_HOUSE_1_WIDTH, $7, $2
diff --git a/data/mapObjects/lavenderhouse2.asm b/data/mapObjects/lavenderhouse2.asm
index cbb7dda7..a8641204 100755
--- a/data/mapObjects/lavenderhouse2.asm
+++ b/data/mapObjects/lavenderhouse2.asm
@@ -7,9 +7,9 @@ LavenderHouse2Object: ; 0x1d9e6 (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_SLOWBRO, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
- db SPRITE_BRUNETTE_GIRL, $4 + 4, $2 + 4, $ff, $d3, $2 ; person
+ db $2 ; objects
+ object SPRITE_SLOWBRO, $3, $5, STAY, UP, $1 ; person
+ object SPRITE_BRUNETTE_GIRL, $2, $4, STAY, RIGHT, $2 ; person
; warp-to
EVENT_DISP LAVENDER_HOUSE_2_WIDTH, $7, $2
diff --git a/data/mapObjects/lavendermart.asm b/data/mapObjects/lavendermart.asm
index 79d80c35..d23f21ae 100755
--- a/data/mapObjects/lavendermart.asm
+++ b/data/mapObjects/lavendermart.asm
@@ -7,10 +7,10 @@ LavenderMartObject: ; 0x5c95d (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_BALDING_GUY, $4 + 4, $3 + 4, $ff, $ff, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $7 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_BALDING_GUY, $3, $4, STAY, NONE, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $7, $2, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP LAVENDER_MART_WIDTH, $7, $3
diff --git a/data/mapObjects/lavenderpokecenter.asm b/data/mapObjects/lavenderpokecenter.asm
index a35bf4dc..b421c3a4 100755
--- a/data/mapObjects/lavenderpokecenter.asm
+++ b/data/mapObjects/lavenderpokecenter.asm
@@ -7,11 +7,11 @@ LavenderPokecenterObject: ; 0x5c8f4 (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_GENTLEMAN, $3 + 4, $5 + 4, $ff, $ff, $2 ; person
- db SPRITE_LITTLE_GIRL, $6 + 4, $2 + 4, $fe, $1, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_GENTLEMAN, $5, $3, STAY, NONE, $2 ; person
+ object SPRITE_LITTLE_GIRL, $2, $6, WALK, $1, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP LAVENDER_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/lavendertown.asm b/data/mapObjects/lavendertown.asm
index 7dc75512..fb78f139 100755
--- a/data/mapObjects/lavendertown.asm
+++ b/data/mapObjects/lavendertown.asm
@@ -17,10 +17,10 @@ LavenderTownObject: ; 0x4402d (size=88)
db $9, $5, $8 ; LavenderTownText8
db $7, $11, $9 ; LavenderTownText9
- db $3 ; people
- db SPRITE_LITTLE_GIRL, $9 + 4, $f + 4, $fe, $0, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $a + 4, $9 + 4, $ff, $ff, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $7 + 4, $8 + 4, $fe, $2, $3 ; person
+ db $3 ; objects
+ object SPRITE_LITTLE_GIRL, $f, $9, WALK, $0, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $9, $a, STAY, NONE, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $8, $7, WALK, $2, $3 ; person
; warp-to
EVENT_DISP LAVENDER_TOWN_WIDTH, $5, $3 ; LAVENDER_POKECENTER
diff --git a/data/mapObjects/lorelei.asm b/data/mapObjects/lorelei.asm
index 074063bf..4ce080f7 100755
--- a/data/mapObjects/lorelei.asm
+++ b/data/mapObjects/lorelei.asm
@@ -9,8 +9,8 @@ LoreleiObject: ; 0x76280 (size=44)
db $0 ; signs
- db $1 ; people
- db SPRITE_LORELEI, $2 + 4, $5 + 4, $ff, $d0, TRAINER | $1, LORELEI + $C8, $1
+ db $1 ; objects
+ object SPRITE_LORELEI, $5, $2, STAY, DOWN, $1, OPP_LORELEI, $1
; warp-to
EVENT_DISP LORELEIS_ROOM_WIDTH, $b, $4 ; INDIGO_PLATEAU_LOBBY
diff --git a/data/mapObjects/mansion1.asm b/data/mapObjects/mansion1.asm
index 89d636b8..0bb168bb 100755
--- a/data/mapObjects/mansion1.asm
+++ b/data/mapObjects/mansion1.asm
@@ -13,10 +13,10 @@ Mansion1Object: ; 0x443a4 (size=90)
db $0 ; signs
- db $3 ; people
- db SPRITE_OAK_AIDE, $11 + 4, $11 + 4, $ff, $d2, TRAINER | $1, SCIENTIST + $C8, $4
- db SPRITE_BALL, $3 + 4, $e + 4, $ff, $ff, ITEM | $2, ESCAPE_ROPE
- db SPRITE_BALL, $15 + 4, $12 + 4, $ff, $ff, ITEM | $3, CARBOS
+ db $3 ; objects
+ object SPRITE_OAK_AIDE, $11, $11, STAY, LEFT, $1, OPP_SCIENTIST, $4
+ object SPRITE_BALL, $e, $3, STAY, NONE, $2, ESCAPE_ROPE
+ object SPRITE_BALL, $12, $15, STAY, NONE, $3, CARBOS
; warp-to
EVENT_DISP MANSION_1_WIDTH, $1b, $4
diff --git a/data/mapObjects/mansion2.asm b/data/mapObjects/mansion2.asm
index 6b2be31e..2cb45879 100755
--- a/data/mapObjects/mansion2.asm
+++ b/data/mapObjects/mansion2.asm
@@ -9,11 +9,11 @@ Mansion2Object: ; 0x520d1 (size=63)
db $0 ; signs
- db $4 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $11 + 4, $3 + 4, $fe, $2, TRAINER | $1, BURGLAR + $C8, $7
- db SPRITE_BALL, $7 + 4, $1c + 4, $ff, $ff, ITEM | $2, CALCIUM
- db SPRITE_BOOK_MAP_DEX, $2 + 4, $12 + 4, $ff, $ff, $3 ; person
- db SPRITE_BOOK_MAP_DEX, $16 + 4, $3 + 4, $ff, $ff, $4 ; person
+ db $4 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $3, $11, WALK, $2, $1, OPP_BURGLAR, $7
+ object SPRITE_BALL, $1c, $7, STAY, NONE, $2, CALCIUM
+ object SPRITE_BOOK_MAP_DEX, $12, $2, STAY, NONE, $3 ; person
+ object SPRITE_BOOK_MAP_DEX, $3, $16, STAY, NONE, $4 ; person
; warp-to
EVENT_DISP MANSION_2_WIDTH, $a, $5 ; MANSION_1
diff --git a/data/mapObjects/mansion3.asm b/data/mapObjects/mansion3.asm
index ff42bee3..288b4753 100755
--- a/data/mapObjects/mansion3.asm
+++ b/data/mapObjects/mansion3.asm
@@ -8,12 +8,12 @@ Mansion3Object: ; 0x522e6 (size=64)
db $0 ; signs
- db $5 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $5 + 4, $fe, $2, TRAINER | $1, BURGLAR + $C8, $8
- db SPRITE_OAK_AIDE, $b + 4, $14 + 4, $ff, $d2, TRAINER | $2, SCIENTIST + $C8, $c
- db SPRITE_BALL, $10 + 4, $1 + 4, $ff, $ff, ITEM | $3, MAX_POTION
- db SPRITE_BALL, $5 + 4, $19 + 4, $ff, $ff, ITEM | $4, IRON
- db SPRITE_BOOK_MAP_DEX, $c + 4, $6 + 4, $ff, $ff, $5 ; person
+ db $5 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $5, $b, WALK, $2, $1, OPP_BURGLAR, $8
+ object SPRITE_OAK_AIDE, $14, $b, STAY, LEFT, $2, OPP_SCIENTIST, $c
+ object SPRITE_BALL, $1, $10, STAY, NONE, $3, MAX_POTION
+ object SPRITE_BALL, $19, $5, STAY, NONE, $4, IRON
+ object SPRITE_BOOK_MAP_DEX, $6, $c, STAY, NONE, $5 ; person
; warp-to
EVENT_DISP MANSION_3_WIDTH, $a, $7 ; MANSION_2
diff --git a/data/mapObjects/mansion4.asm b/data/mapObjects/mansion4.asm
index 5432f676..eddbda8e 100755
--- a/data/mapObjects/mansion4.asm
+++ b/data/mapObjects/mansion4.asm
@@ -6,15 +6,15 @@ Mansion4Object: ; 0x52498 (size=69)
db $0 ; signs
- db $8 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $17 + 4, $10 + 4, $ff, $ff, TRAINER | $1, BURGLAR + $C8, $9
- db SPRITE_OAK_AIDE, $b + 4, $1b + 4, $ff, $d0, TRAINER | $2, SCIENTIST + $C8, $d
- db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, ITEM | $3, RARE_CANDY
- db SPRITE_BALL, $16 + 4, $1 + 4, $ff, $ff, ITEM | $4, FULL_RESTORE
- db SPRITE_BALL, $19 + 4, $13 + 4, $ff, $ff, ITEM | $5, TM_14
- db SPRITE_BALL, $4 + 4, $5 + 4, $ff, $ff, ITEM | $6, TM_22
- db SPRITE_BOOK_MAP_DEX, $14 + 4, $10 + 4, $ff, $ff, $7 ; person
- db SPRITE_BALL, $d + 4, $5 + 4, $ff, $ff, ITEM | $8, SECRET_KEY
+ db $8 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $10, $17, STAY, NONE, $1, OPP_BURGLAR, $9
+ object SPRITE_OAK_AIDE, $1b, $b, STAY, DOWN, $2, OPP_SCIENTIST, $d
+ object SPRITE_BALL, $a, $2, STAY, NONE, $3, RARE_CANDY
+ object SPRITE_BALL, $1, $16, STAY, NONE, $4, FULL_RESTORE
+ object SPRITE_BALL, $13, $19, STAY, NONE, $5, TM_14
+ object SPRITE_BALL, $5, $4, STAY, NONE, $6, TM_22
+ object SPRITE_BOOK_MAP_DEX, $10, $14, STAY, NONE, $7 ; person
+ object SPRITE_BALL, $5, $d, STAY, NONE, $8, SECRET_KEY
; warp-to
EVENT_DISP MANSION_4_WIDTH, $16, $17 ; MANSION_1
diff --git a/data/mapObjects/mtmoon1.asm b/data/mapObjects/mtmoon1.asm
index 6f0c05e9..a59f2a20 100755
--- a/data/mapObjects/mtmoon1.asm
+++ b/data/mapObjects/mtmoon1.asm
@@ -11,20 +11,20 @@ MtMoon1Object: ; 0x49b06 (size=145)
db $1 ; signs
db $17, $f, $e ; MtMoon1Text14
- db $d ; people
- db SPRITE_HIKER, $6 + 4, $5 + 4, $ff, $d0, TRAINER | $1, HIKER + $C8, $1
- db SPRITE_BUG_CATCHER, $10 + 4, $c + 4, $ff, $d3, TRAINER | $2, YOUNGSTER + $C8, $3
- db SPRITE_LASS, $4 + 4, $1e + 4, $ff, $d0, TRAINER | $3, LASS + $C8, $5
- db SPRITE_BLACK_HAIR_BOY_2, $1f + 4, $18 + 4, $ff, $d1, TRAINER | $4, SUPER_NERD + $C8, $1
- db SPRITE_LASS, $17 + 4, $10 + 4, $ff, $d0, TRAINER | $5, LASS + $C8, $6
- db SPRITE_BUG_CATCHER, $16 + 4, $7 + 4, $ff, $d0, TRAINER | $6, BUG_CATCHER + $C8, $7
- db SPRITE_BUG_CATCHER, $1b + 4, $1e + 4, $ff, $d3, TRAINER | $7, BUG_CATCHER + $C8, $8
- db SPRITE_BALL, $14 + 4, $2 + 4, $ff, $ff, ITEM | $8, POTION
- db SPRITE_BALL, $2 + 4, $2 + 4, $ff, $ff, ITEM | $9, MOON_STONE
- db SPRITE_BALL, $1f + 4, $23 + 4, $ff, $ff, ITEM | $a, RARE_CANDY
- db SPRITE_BALL, $17 + 4, $24 + 4, $ff, $ff, ITEM | $b, ESCAPE_ROPE
- db SPRITE_BALL, $21 + 4, $14 + 4, $ff, $ff, ITEM | $c, POTION
- db SPRITE_BALL, $20 + 4, $5 + 4, $ff, $ff, ITEM | $d, TM_12
+ db $d ; objects
+ object SPRITE_HIKER, $5, $6, STAY, DOWN, $1, OPP_HIKER, $1
+ object SPRITE_BUG_CATCHER, $c, $10, STAY, RIGHT, $2, OPP_YOUNGSTER, $3
+ object SPRITE_LASS, $1e, $4, STAY, DOWN, $3, OPP_LASS, $5
+ object SPRITE_BLACK_HAIR_BOY_2, $18, $1f, STAY, UP, $4, OPP_SUPER_NERD, $1
+ object SPRITE_LASS, $10, $17, STAY, DOWN, $5, OPP_LASS, $6
+ object SPRITE_BUG_CATCHER, $7, $16, STAY, DOWN, $6, OPP_BUG_CATCHER, $7
+ object SPRITE_BUG_CATCHER, $1e, $1b, STAY, RIGHT, $7, OPP_BUG_CATCHER, $8
+ object SPRITE_BALL, $2, $14, STAY, NONE, $8, POTION
+ object SPRITE_BALL, $2, $2, STAY, NONE, $9, MOON_STONE
+ object SPRITE_BALL, $23, $1f, STAY, NONE, $a, RARE_CANDY
+ object SPRITE_BALL, $24, $17, STAY, NONE, $b, ESCAPE_ROPE
+ object SPRITE_BALL, $14, $21, STAY, NONE, $c, POTION
+ object SPRITE_BALL, $5, $20, STAY, NONE, $d, TM_12
; warp-to
EVENT_DISP MT_MOON_1_WIDTH, $23, $e
diff --git a/data/mapObjects/mtmoon2.asm b/data/mapObjects/mtmoon2.asm
index 33313f17..2cf6be6b 100755
--- a/data/mapObjects/mtmoon2.asm
+++ b/data/mapObjects/mtmoon2.asm
@@ -13,7 +13,7 @@ MtMoon2Object: ; 0x51a4d (size=68)
db $0 ; signs
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP MT_MOON_2_WIDTH, $5, $5 ; MT_MOON_1
diff --git a/data/mapObjects/mtmoon3.asm b/data/mapObjects/mtmoon3.asm
index e17a6a8b..4f8f911c 100755
--- a/data/mapObjects/mtmoon3.asm
+++ b/data/mapObjects/mtmoon3.asm
@@ -9,16 +9,16 @@ MtMoon3Object: ; 0x49fdb (size=102)
db $0 ; signs
- db $9 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $c + 4, $ff, $d3, TRAINER | $1, SUPER_NERD + $C8, $2
- db SPRITE_ROCKET, $10 + 4, $b + 4, $ff, $d0, TRAINER | $2, ROCKET + $C8, $1
- db SPRITE_ROCKET, $16 + 4, $f + 4, $ff, $d0, TRAINER | $3, ROCKET + $C8, $2
- db SPRITE_ROCKET, $b + 4, $1d + 4, $ff, $d1, TRAINER | $4, ROCKET + $C8, $3
- db SPRITE_ROCKET, $11 + 4, $1d + 4, $ff, $d2, TRAINER | $5, ROCKET + $C8, $4
- db SPRITE_OMANYTE, $6 + 4, $c + 4, $ff, $ff, $6 ; person
- db SPRITE_OMANYTE, $6 + 4, $d + 4, $ff, $ff, $7 ; person
- db SPRITE_BALL, $15 + 4, $19 + 4, $ff, $ff, ITEM | $8, HP_UP
- db SPRITE_BALL, $5 + 4, $1d + 4, $ff, $ff, ITEM | $9, TM_01
+ db $9 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $c, $8, STAY, RIGHT, $1, OPP_SUPER_NERD, $2
+ object SPRITE_ROCKET, $b, $10, STAY, DOWN, $2, OPP_ROCKET, $1
+ object SPRITE_ROCKET, $f, $16, STAY, DOWN, $3, OPP_ROCKET, $2
+ object SPRITE_ROCKET, $1d, $b, STAY, UP, $4, OPP_ROCKET, $3
+ object SPRITE_ROCKET, $1d, $11, STAY, LEFT, $5, OPP_ROCKET, $4
+ object SPRITE_OMANYTE, $c, $6, STAY, NONE, $6 ; person
+ object SPRITE_OMANYTE, $d, $6, STAY, NONE, $7 ; person
+ object SPRITE_BALL, $19, $15, STAY, NONE, $8, HP_UP
+ object SPRITE_BALL, $1d, $5, STAY, NONE, $9, TM_01
; warp-to
EVENT_DISP MT_MOON_3_WIDTH, $9, $19 ; MT_MOON_2
diff --git a/data/mapObjects/mtmoonpokecenter.asm b/data/mapObjects/mtmoonpokecenter.asm
index f5f52f65..d6cd35ba 100755
--- a/data/mapObjects/mtmoonpokecenter.asm
+++ b/data/mapObjects/mtmoonpokecenter.asm
@@ -7,13 +7,13 @@ MtMoonPokecenterObject: ; 0x49376 (size=56)
db $0 ; signs
- db $6 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_BUG_CATCHER, $3 + 4, $4 + 4, $ff, $d1, $2 ; person
- db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $ff, $d1, $3 ; person
- db SPRITE_FAT_BALD_GUY, $6 + 4, $a + 4, $fe, $2, $4 ; person
- db SPRITE_CLIPBOARD, $2 + 4, $7 + 4, $ff, $ff, $5 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $6 ; person
+ db $6 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_BUG_CATCHER, $4, $3, STAY, UP, $2 ; person
+ object SPRITE_GENTLEMAN, $7, $3, STAY, UP, $3 ; person
+ object SPRITE_FAT_BALD_GUY, $a, $6, WALK, $2, $4 ; person
+ object SPRITE_CLIPBOARD, $7, $2, STAY, NONE, $5 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $6 ; person
; warp-to
EVENT_DISP MT_MOON_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/museum1f.asm b/data/mapObjects/museum1f.asm
index c6fb4b5a..208a19c8 100755
--- a/data/mapObjects/museum1f.asm
+++ b/data/mapObjects/museum1f.asm
@@ -10,12 +10,12 @@ Museum1FObject: ; 0x5c2c1 (size=74)
db $0 ; signs
- db $5 ; people
- db SPRITE_OAK_AIDE, $4 + 4, $c + 4, $ff, $d2, $1 ; person
- db SPRITE_GAMBLER, $4 + 4, $1 + 4, $ff, $ff, $2 ; person
- db SPRITE_OAK_AIDE, $2 + 4, $f + 4, $ff, $d0, $3 ; person
- db SPRITE_OAK_AIDE, $4 + 4, $11 + 4, $ff, $ff, $4 ; person
- db SPRITE_OLD_AMBER, $2 + 4, $10 + 4, $ff, $ff, $5 ; person
+ db $5 ; objects
+ object SPRITE_OAK_AIDE, $c, $4, STAY, LEFT, $1 ; person
+ object SPRITE_GAMBLER, $1, $4, STAY, NONE, $2 ; person
+ object SPRITE_OAK_AIDE, $f, $2, STAY, DOWN, $3 ; person
+ object SPRITE_OAK_AIDE, $11, $4, STAY, NONE, $4 ; person
+ object SPRITE_OLD_AMBER, $10, $2, STAY, NONE, $5 ; person
; warp-to
EVENT_DISP MUSEUM_1F_WIDTH, $7, $a
diff --git a/data/mapObjects/museum2f.asm b/data/mapObjects/museum2f.asm
index 88ee827c..77ea061b 100755
--- a/data/mapObjects/museum2f.asm
+++ b/data/mapObjects/museum2f.asm
@@ -8,12 +8,12 @@ Museum2FObject: ; 0x5c34b (size=48)
db $2, $b, $6 ; Museum2FText6
db $5, $2, $7 ; Museum2FText7
- db $5 ; people
- db SPRITE_BUG_CATCHER, $7 + 4, $1 + 4, $fe, $2, $1 ; person
- db SPRITE_OLD_PERSON, $5 + 4, $0 + 4, $ff, $d0, $2 ; person
- db SPRITE_OAK_AIDE, $5 + 4, $7 + 4, $ff, $d0, $3 ; person
- db SPRITE_BRUNETTE_GIRL, $5 + 4, $b + 4, $ff, $ff, $4 ; person
- db SPRITE_HIKER, $5 + 4, $c + 4, $ff, $d0, $5 ; person
+ db $5 ; objects
+ object SPRITE_BUG_CATCHER, $1, $7, WALK, $2, $1 ; person
+ object SPRITE_OLD_PERSON, $0, $5, STAY, DOWN, $2 ; person
+ object SPRITE_OAK_AIDE, $7, $5, STAY, DOWN, $3 ; person
+ object SPRITE_BRUNETTE_GIRL, $b, $5, STAY, NONE, $4 ; person
+ object SPRITE_HIKER, $c, $5, STAY, DOWN, $5 ; person
; warp-to
EVENT_DISP MUSEUM_2F_WIDTH, $7, $7 ; MUSEUM_1F
diff --git a/data/mapObjects/namerater.asm b/data/mapObjects/namerater.asm
index b0999d61..28dcf48f 100755
--- a/data/mapObjects/namerater.asm
+++ b/data/mapObjects/namerater.asm
@@ -7,8 +7,8 @@ NameRaterObject: ; 0x1dad6 (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_MR_MASTERBALL, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
+ db $1 ; objects
+ object SPRITE_MR_MASTERBALL, $5, $3, STAY, LEFT, $1 ; person
; warp-to
EVENT_DISP NAME_RATERS_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/oakslab.asm b/data/mapObjects/oakslab.asm
index 0b2717a7..53d6b85b 100755
--- a/data/mapObjects/oakslab.asm
+++ b/data/mapObjects/oakslab.asm
@@ -7,18 +7,18 @@ OaksLabObject: ; 0x1d40a (size=88)
db $0 ; signs
- db $b ; people
- db SPRITE_BLUE, $3 + 4, $4 + 4, $ff, $ff, TRAINER | $1, SONY1 + $C8, $1
- db SPRITE_BALL, $3 + 4, $6 + 4, $ff, $ff, $2 ; person
- db SPRITE_BALL, $3 + 4, $7 + 4, $ff, $ff, $3 ; person
- db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, $4 ; person
- db SPRITE_OAK, $2 + 4, $5 + 4, $ff, $d0, $5 ; person
- db SPRITE_BOOK_MAP_DEX, $1 + 4, $2 + 4, $ff, $ff, $6 ; person
- db SPRITE_BOOK_MAP_DEX, $1 + 4, $3 + 4, $ff, $ff, $7 ; person
- db SPRITE_OAK, $a + 4, $5 + 4, $ff, $d1, $8 ; person
- db SPRITE_GIRL, $9 + 4, $1 + 4, $fe, $1, $9 ; person
- db SPRITE_OAK_AIDE, $a + 4, $2 + 4, $ff, $ff, $a ; person
- db SPRITE_OAK_AIDE, $a + 4, $8 + 4, $ff, $ff, $b ; person
+ db $b ; objects
+ object SPRITE_BLUE, $4, $3, STAY, NONE, $1, OPP_SONY1, $1
+ object SPRITE_BALL, $6, $3, STAY, NONE, $2 ; person
+ object SPRITE_BALL, $7, $3, STAY, NONE, $3 ; person
+ object SPRITE_BALL, $8, $3, STAY, NONE, $4 ; person
+ object SPRITE_OAK, $5, $2, STAY, DOWN, $5 ; person
+ object SPRITE_BOOK_MAP_DEX, $2, $1, STAY, NONE, $6 ; person
+ object SPRITE_BOOK_MAP_DEX, $3, $1, STAY, NONE, $7 ; person
+ object SPRITE_OAK, $5, $a, STAY, UP, $8 ; person
+ object SPRITE_GIRL, $1, $9, WALK, $1, $9 ; person
+ object SPRITE_OAK_AIDE, $2, $a, STAY, NONE, $a ; person
+ object SPRITE_OAK_AIDE, $8, $a, STAY, NONE, $b ; person
; warp-to
EVENT_DISP OAKS_LAB_WIDTH, $b, $4
diff --git a/data/mapObjects/pallettown.asm b/data/mapObjects/pallettown.asm
index cef66431..4832246f 100755
--- a/data/mapObjects/pallettown.asm
+++ b/data/mapObjects/pallettown.asm
@@ -12,10 +12,10 @@ PalletTownObject: ; 0x182c3 (size=58)
db $5, $3, $6 ; PalletTownText6
db $5, $b, $7 ; PalletTownText7
- db $3 ; people
- db SPRITE_OAK, $5 + 4, $8 + 4, $ff, $ff, $1 ; person
- db SPRITE_GIRL, $8 + 4, $3 + 4, $fe, $0, $2 ; person
- db SPRITE_FISHER2, $e + 4, $b + 4, $fe, $0, $3 ; person
+ db $3 ; objects
+ object SPRITE_OAK, $8, $5, STAY, NONE, $1 ; person
+ object SPRITE_GIRL, $3, $8, WALK, $0, $2 ; person
+ object SPRITE_FISHER2, $b, $e, WALK, $0, $3 ; person
; warp-to
EVENT_DISP PALLET_TOWN_WIDTH, $5, $5 ; REDS_HOUSE_1F
diff --git a/data/mapObjects/pewtercity.asm b/data/mapObjects/pewtercity.asm
index e971ad50..27a559fc 100755
--- a/data/mapObjects/pewtercity.asm
+++ b/data/mapObjects/pewtercity.asm
@@ -19,12 +19,12 @@ PewterCityObject: ; 0x18577 (size=111)
db $11, $b, $b ; PewterCityText11
db $17, $19, $c ; PewterCityText12
- db $5 ; people
- db SPRITE_LASS, $f + 4, $8 + 4, $ff, $ff, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $19 + 4, $11 + 4, $ff, $ff, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $11 + 4, $1b + 4, $ff, $ff, $3 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $19 + 4, $1a + 4, $fe, $2, $4 ; person
- db SPRITE_BUG_CATCHER, $10 + 4, $23 + 4, $ff, $d0, $5 ; person
+ db $5 ; objects
+ object SPRITE_LASS, $8, $f, STAY, NONE, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $11, $19, STAY, NONE, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $1b, $11, STAY, NONE, $3 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $1a, $19, WALK, $2, $4 ; person
+ object SPRITE_BUG_CATCHER, $23, $10, STAY, DOWN, $5 ; person
; warp-to
EVENT_DISP PEWTER_CITY_WIDTH, $7, $e ; MUSEUM_1F
diff --git a/data/mapObjects/pewtergym.asm b/data/mapObjects/pewtergym.asm
index f5fa120e..69196193 100755
--- a/data/mapObjects/pewtergym.asm
+++ b/data/mapObjects/pewtergym.asm
@@ -7,10 +7,10 @@ PewterGymObject: ; 0x5c52e (size=42)
db $0 ; signs
- db $3 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $1 + 4, $4 + 4, $ff, $d0, TRAINER | $1, BROCK + $C8, $1
- db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $3 + 4, $ff, $d3, TRAINER | $2, JR__TRAINER_M + $C8, $1
- db SPRITE_GYM_HELPER, $a + 4, $7 + 4, $ff, $d0, $3 ; person
+ db $3 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $4, $1, STAY, DOWN, $1, OPP_BROCK, $1
+ object SPRITE_BLACK_HAIR_BOY_1, $3, $6, STAY, RIGHT, $2, OPP_JR__TRAINER_M, $1
+ object SPRITE_GYM_HELPER, $7, $a, STAY, DOWN, $3 ; person
; warp-to
EVENT_DISP PEWTER_GYM_WIDTH, $d, $4
diff --git a/data/mapObjects/pewterhouse1.asm b/data/mapObjects/pewterhouse1.asm
index 9af4d71b..8dcac05c 100755
--- a/data/mapObjects/pewterhouse1.asm
+++ b/data/mapObjects/pewterhouse1.asm
@@ -7,10 +7,10 @@ PewterHouse1Object: ; 0x1d616 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_SLOWBRO, $5 + 4, $4 + 4, $ff, $d2, $1 ; person
- db SPRITE_YOUNG_BOY, $5 + 4, $3 + 4, $ff, $d3, $2 ; person
- db SPRITE_FAT_BALD_GUY, $2 + 4, $1 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_SLOWBRO, $4, $5, STAY, LEFT, $1 ; person
+ object SPRITE_YOUNG_BOY, $3, $5, STAY, RIGHT, $2 ; person
+ object SPRITE_FAT_BALD_GUY, $1, $2, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP PEWTER_HOUSE_1_WIDTH, $7, $2
diff --git a/data/mapObjects/pewterhouse2.asm b/data/mapObjects/pewterhouse2.asm
index aa48c5bc..b4b8f2e7 100755
--- a/data/mapObjects/pewterhouse2.asm
+++ b/data/mapObjects/pewterhouse2.asm
@@ -7,9 +7,9 @@ PewterHouse2Object: ; 0x1d659 (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_GAMBLER, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
- db SPRITE_BUG_CATCHER, $5 + 4, $4 + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_GAMBLER, $2, $3, STAY, RIGHT, $1 ; person
+ object SPRITE_BUG_CATCHER, $4, $5, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP PEWTER_HOUSE_2_WIDTH, $7, $2
diff --git a/data/mapObjects/pewtermart.asm b/data/mapObjects/pewtermart.asm
index 343f70c1..2ef08e29 100755
--- a/data/mapObjects/pewtermart.asm
+++ b/data/mapObjects/pewtermart.asm
@@ -7,10 +7,10 @@ PewterMartObject: ; 0x74cda (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_BUG_CATCHER, $3 + 4, $3 + 4, $fe, $1, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $5 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_BUG_CATCHER, $3, $3, WALK, $1, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $5, $5, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP PEWTER_MART_WIDTH, $7, $3
diff --git a/data/mapObjects/pewterpokecenter.asm b/data/mapObjects/pewterpokecenter.asm
index a9a03272..86757244 100755
--- a/data/mapObjects/pewterpokecenter.asm
+++ b/data/mapObjects/pewterpokecenter.asm
@@ -7,11 +7,11 @@ PewterPokecenterObject: ; 0x5c60d (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_GENTLEMAN, $7 + 4, $b + 4, $ff, $d2, $2 ; person
- db SPRITE_CLEFAIRY, $3 + 4, $1 + 4, $ff, $d0, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_GENTLEMAN, $b, $7, STAY, LEFT, $2 ; person
+ object SPRITE_CLEFAIRY, $1, $3, STAY, DOWN, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP PEWTER_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/pokemontower1.asm b/data/mapObjects/pokemontower1.asm
index 30fb9cbc..eb71be9e 100755
--- a/data/mapObjects/pokemontower1.asm
+++ b/data/mapObjects/pokemontower1.asm
@@ -8,12 +8,12 @@ PokemonTower1Object: ; 0x60452 (size=58)
db $0 ; signs
- db $5 ; people
- db SPRITE_CABLE_CLUB_WOMAN, $d + 4, $f + 4, $ff, $d1, $1 ; person
- db SPRITE_MOM_GEISHA, $8 + 4, $6 + 4, $ff, $ff, $2 ; person
- db SPRITE_BALDING_GUY, $c + 4, $8 + 4, $ff, $ff, $3 ; person
- db SPRITE_GIRL, $7 + 4, $d + 4, $ff, $ff, $4 ; person
- db SPRITE_MEDIUM, $7 + 4, $11 + 4, $ff, $d2, $5 ; person
+ db $5 ; objects
+ object SPRITE_CABLE_CLUB_WOMAN, $f, $d, STAY, UP, $1 ; person
+ object SPRITE_MOM_GEISHA, $6, $8, STAY, NONE, $2 ; person
+ object SPRITE_BALDING_GUY, $8, $c, STAY, NONE, $3 ; person
+ object SPRITE_GIRL, $d, $7, STAY, NONE, $4 ; person
+ object SPRITE_MEDIUM, $11, $7, STAY, LEFT, $5 ; person
; warp-to
EVENT_DISP POKEMONTOWER_1_WIDTH, $11, $a
diff --git a/data/mapObjects/pokemontower2.asm b/data/mapObjects/pokemontower2.asm
index a255065f..57ba7363 100755
--- a/data/mapObjects/pokemontower2.asm
+++ b/data/mapObjects/pokemontower2.asm
@@ -7,9 +7,9 @@ PokemonTower2Object: ; 0x60646 (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_BLUE, $5 + 4, $e + 4, $ff, $ff, $1 ; person
- db SPRITE_MEDIUM, $7 + 4, $3 + 4, $ff, $d3, $2 ; person
+ db $2 ; objects
+ object SPRITE_BLUE, $e, $5, STAY, NONE, $1 ; person
+ object SPRITE_MEDIUM, $3, $7, STAY, RIGHT, $2 ; person
; warp-to
EVENT_DISP POKEMONTOWER_2_WIDTH, $9, $3 ; POKEMONTOWER_3
diff --git a/data/mapObjects/pokemontower3.asm b/data/mapObjects/pokemontower3.asm
index 3a16070a..4591cbe3 100755
--- a/data/mapObjects/pokemontower3.asm
+++ b/data/mapObjects/pokemontower3.asm
@@ -7,11 +7,11 @@ PokemonTower3Object: ; 0x6075d (size=51)
db $0 ; signs
- db $4 ; people
- db SPRITE_MEDIUM, $3 + 4, $c + 4, $ff, $d2, TRAINER | $1, CHANNELER + $C8, $5
- db SPRITE_MEDIUM, $8 + 4, $9 + 4, $ff, $d0, TRAINER | $2, CHANNELER + $C8, $6
- db SPRITE_MEDIUM, $d + 4, $a + 4, $ff, $d0, TRAINER | $3, CHANNELER + $C8, $8
- db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, ITEM | $4, ESCAPE_ROPE
+ db $4 ; objects
+ object SPRITE_MEDIUM, $c, $3, STAY, LEFT, $1, OPP_CHANNELER, $5
+ object SPRITE_MEDIUM, $9, $8, STAY, DOWN, $2, OPP_CHANNELER, $6
+ object SPRITE_MEDIUM, $a, $d, STAY, DOWN, $3, OPP_CHANNELER, $8
+ object SPRITE_BALL, $c, $1, STAY, NONE, $4, ESCAPE_ROPE
; warp-to
EVENT_DISP POKEMONTOWER_3_WIDTH, $9, $3 ; POKEMONTOWER_2
diff --git a/data/mapObjects/pokemontower4.asm b/data/mapObjects/pokemontower4.asm
index 8647f937..722f6e08 100755
--- a/data/mapObjects/pokemontower4.asm
+++ b/data/mapObjects/pokemontower4.asm
@@ -7,13 +7,13 @@ PokemonTower4Object: ; 0x6088b (size=65)
db $0 ; signs
- db $6 ; people
- db SPRITE_MEDIUM, $a + 4, $5 + 4, $ff, $d3, TRAINER | $1, CHANNELER + $C8, $9
- db SPRITE_MEDIUM, $7 + 4, $f + 4, $ff, $d0, TRAINER | $2, CHANNELER + $C8, $a
- db SPRITE_MEDIUM, $c + 4, $e + 4, $ff, $d2, TRAINER | $3, CHANNELER + $C8, $c
- db SPRITE_BALL, $a + 4, $c + 4, $ff, $ff, ITEM | $4, ELIXER
- db SPRITE_BALL, $a + 4, $9 + 4, $ff, $ff, ITEM | $5, AWAKENING
- db SPRITE_BALL, $10 + 4, $c + 4, $ff, $ff, ITEM | $6, HP_UP
+ db $6 ; objects
+ object SPRITE_MEDIUM, $5, $a, STAY, RIGHT, $1, OPP_CHANNELER, $9
+ object SPRITE_MEDIUM, $f, $7, STAY, DOWN, $2, OPP_CHANNELER, $a
+ object SPRITE_MEDIUM, $e, $c, STAY, LEFT, $3, OPP_CHANNELER, $c
+ object SPRITE_BALL, $c, $a, STAY, NONE, $4, ELIXER
+ object SPRITE_BALL, $9, $a, STAY, NONE, $5, AWAKENING
+ object SPRITE_BALL, $c, $10, STAY, NONE, $6, HP_UP
; warp-to
EVENT_DISP POKEMONTOWER_4_WIDTH, $9, $3 ; POKEMONTOWER_5
diff --git a/data/mapObjects/pokemontower5.asm b/data/mapObjects/pokemontower5.asm
index e31a0c61..1d23abbf 100755
--- a/data/mapObjects/pokemontower5.asm
+++ b/data/mapObjects/pokemontower5.asm
@@ -7,13 +7,13 @@ PokemonTower5Object: ; 0x60a48 (size=65)
db $0 ; signs
- db $6 ; people
- db SPRITE_MEDIUM, $8 + 4, $c + 4, $ff, $ff, $1 ; person
- db SPRITE_MEDIUM, $7 + 4, $11 + 4, $ff, $d2, TRAINER | $2, CHANNELER + $C8, $e
- db SPRITE_MEDIUM, $3 + 4, $e + 4, $ff, $d2, TRAINER | $3, CHANNELER + $C8, $10
- db SPRITE_MEDIUM, $a + 4, $6 + 4, $ff, $d3, TRAINER | $4, CHANNELER + $C8, $11
- db SPRITE_MEDIUM, $10 + 4, $9 + 4, $ff, $d3, TRAINER | $5, CHANNELER + $C8, $12
- db SPRITE_BALL, $e + 4, $6 + 4, $ff, $ff, ITEM | $6, NUGGET
+ db $6 ; objects
+ object SPRITE_MEDIUM, $c, $8, STAY, NONE, $1 ; person
+ object SPRITE_MEDIUM, $11, $7, STAY, LEFT, $2, OPP_CHANNELER, $e
+ object SPRITE_MEDIUM, $e, $3, STAY, LEFT, $3, OPP_CHANNELER, $10
+ object SPRITE_MEDIUM, $6, $a, STAY, RIGHT, $4, OPP_CHANNELER, $11
+ object SPRITE_MEDIUM, $9, $10, STAY, RIGHT, $5, OPP_CHANNELER, $12
+ object SPRITE_BALL, $6, $e, STAY, NONE, $6, NUGGET
; warp-to
EVENT_DISP POKEMONTOWER_5_WIDTH, $9, $3 ; POKEMONTOWER_4
diff --git a/data/mapObjects/pokemontower6.asm b/data/mapObjects/pokemontower6.asm
index d923c3d2..cd7453d8 100755
--- a/data/mapObjects/pokemontower6.asm
+++ b/data/mapObjects/pokemontower6.asm
@@ -7,12 +7,12 @@ PokemonTower6Object: ; 0x60c5b (size=58)
db $0 ; signs
- db $5 ; people
- db SPRITE_MEDIUM, $a + 4, $c + 4, $ff, $d3, TRAINER | $1, CHANNELER + $C8, $13
- db SPRITE_MEDIUM, $5 + 4, $9 + 4, $ff, $d0, TRAINER | $2, CHANNELER + $C8, $14
- db SPRITE_MEDIUM, $5 + 4, $10 + 4, $ff, $d2, TRAINER | $3, CHANNELER + $C8, $15
- db SPRITE_BALL, $8 + 4, $6 + 4, $ff, $ff, ITEM | $4, RARE_CANDY
- db SPRITE_BALL, $e + 4, $e + 4, $ff, $ff, ITEM | $5, X_ACCURACY
+ db $5 ; objects
+ object SPRITE_MEDIUM, $c, $a, STAY, RIGHT, $1, OPP_CHANNELER, $13
+ object SPRITE_MEDIUM, $9, $5, STAY, DOWN, $2, OPP_CHANNELER, $14
+ object SPRITE_MEDIUM, $10, $5, STAY, LEFT, $3, OPP_CHANNELER, $15
+ object SPRITE_BALL, $6, $8, STAY, NONE, $4, RARE_CANDY
+ object SPRITE_BALL, $e, $e, STAY, NONE, $5, X_ACCURACY
; warp-to
EVENT_DISP POKEMONTOWER_6_WIDTH, $9, $12 ; POKEMONTOWER_5
diff --git a/data/mapObjects/pokemontower7.asm b/data/mapObjects/pokemontower7.asm
index a3e72093..a77d1d1e 100755
--- a/data/mapObjects/pokemontower7.asm
+++ b/data/mapObjects/pokemontower7.asm
@@ -6,10 +6,10 @@ PokemonTower7Object: ; 0x60ef6 (size=42)
db $0 ; signs
- db 3 ; people
- db SPRITE_JESSIE, 8 + 4, $a + 4, $ff, $d0, 1
- db SPRITE_JAMES, 8 + 4, $b + 4, $ff, $d0, 2
- db SPRITE_MR_FUJI, 3 + 4, $a + 4, $ff, $d0, 3
+ db 3 ; objects
+ object SPRITE_JESSIE, $a 8, 8, STAY, DOWN, 1
+ object SPRITE_JAMES, $b, 8, STAY, DOWN, 2
+ object SPRITE_MR_FUJI, $a, 3, STAY, DOWN, 3
; warp-to
EVENT_DISP POKEMONTOWER_7_WIDTH, $10, $9 ; POKEMONTOWER_6
diff --git a/data/mapObjects/powerplant.asm b/data/mapObjects/powerplant.asm
index 98e80ff9..a4c5d8ea 100755
--- a/data/mapObjects/powerplant.asm
+++ b/data/mapObjects/powerplant.asm
@@ -8,21 +8,21 @@ PowerPlantObject: ; 0x1e3bf (size=135)
db $0 ; signs
- db $e ; people
- db SPRITE_BALL, $14 + 4, $9 + 4, $ff, $ff, TRAINER | $1, VOLTORB, 40
- db SPRITE_BALL, $12 + 4, $20 + 4, $ff, $ff, TRAINER | $2, VOLTORB, 40
- db SPRITE_BALL, $19 + 4, $15 + 4, $ff, $ff, TRAINER | $3, VOLTORB, 40
- db SPRITE_BALL, $12 + 4, $19 + 4, $ff, $ff, TRAINER | $4, ELECTRODE, 43
- db SPRITE_BALL, $22 + 4, $17 + 4, $ff, $ff, TRAINER | $5, VOLTORB, 40
- db SPRITE_BALL, $1c + 4, $1a + 4, $ff, $ff, TRAINER | $6, VOLTORB, 40
- db SPRITE_BALL, $e + 4, $15 + 4, $ff, $ff, TRAINER | $7, ELECTRODE, 43
- db SPRITE_BALL, $20 + 4, $25 + 4, $ff, $ff, TRAINER | $8, VOLTORB, 40
- db SPRITE_BIRD, $9 + 4, $4 + 4, $ff, $d1, TRAINER | $9, ZAPDOS, 50
- db SPRITE_BALL, $19 + 4, $7 + 4, $ff, $ff, ITEM | $a, CARBOS
- db SPRITE_BALL, $3 + 4, $1c + 4, $ff, $ff, ITEM | $b, HP_UP
- db SPRITE_BALL, $3 + 4, $22 + 4, $ff, $ff, ITEM | $c, RARE_CANDY
- db SPRITE_BALL, $20 + 4, $1a + 4, $ff, $ff, ITEM | $d, TM_25
- db SPRITE_BALL, $20 + 4, $14 + 4, $ff, $ff, ITEM | $e, TM_33
+ db $e ; objects
+ object SPRITE_BALL, $9, $14, STAY, NONE, $1, VOLTORB, 40
+ object SPRITE_BALL, $20, $12, STAY, NONE, $2, VOLTORB, 40
+ object SPRITE_BALL, $15, $19, STAY, NONE, $3, VOLTORB, 40
+ object SPRITE_BALL, $19, $12, STAY, NONE, $4, ELECTRODE, 43
+ object SPRITE_BALL, $17, $22, STAY, NONE, $5, VOLTORB, 40
+ object SPRITE_BALL, $1a, $1c, STAY, NONE, $6, VOLTORB, 40
+ object SPRITE_BALL, $15, $e, STAY, NONE, $7, ELECTRODE, 43
+ object SPRITE_BALL, $25, $20, STAY, NONE, $8, VOLTORB, 40
+ object SPRITE_BIRD, $4, $9, STAY, UP, $9, ZAPDOS, 50
+ object SPRITE_BALL, $7, $19, STAY, NONE, $a, CARBOS
+ object SPRITE_BALL, $1c, $3, STAY, NONE, $b, HP_UP
+ object SPRITE_BALL, $22, $3, STAY, NONE, $c, RARE_CANDY
+ object SPRITE_BALL, $1a, $20, STAY, NONE, $d, TM_25
+ object SPRITE_BALL, $14, $20, STAY, NONE, $e, TM_33
; warp-to
EVENT_DISP POWER_PLANT_WIDTH, $23, $4
diff --git a/data/mapObjects/redshouse1f.asm b/data/mapObjects/redshouse1f.asm
index 5584320e..4f977b2c 100755
--- a/data/mapObjects/redshouse1f.asm
+++ b/data/mapObjects/redshouse1f.asm
@@ -9,8 +9,8 @@ RedsHouse1FObject: ; 481e4 (12:41e4)
db $1 ; signs
db $1, $3, $2 ; TV
- db $1 ; people
- db $33, $4 + 4, $5 + 4, $FF, $D2, $1 ; Mom
+ db $1 ; objects
+ object SPRITE_MOM, $5, $4, STAY, LEFT, $1 ; Mom
; warp-to
EVENT_DISP REDS_HOUSE_1F_WIDTH, $7, $2
diff --git a/data/mapObjects/redshouse2f.asm b/data/mapObjects/redshouse2f.asm
index f8680121..d668d441 100755
--- a/data/mapObjects/redshouse2f.asm
+++ b/data/mapObjects/redshouse2f.asm
@@ -1,4 +1,4 @@
-RedsHouse2FObject: ; 0x5c0d0 ?
+RedsHouse2FObject: ; 0x5c0d0
db $0A ; border block
db $1 ; warps
@@ -6,7 +6,7 @@ RedsHouse2FObject: ; 0x5c0d0 ?
db $0 ; signs
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP REDS_HOUSE_2F_WIDTH, $1, $7
diff --git a/data/mapObjects/rockethideout1.asm b/data/mapObjects/rockethideout1.asm
index ab9b1041..55c0c101 100755
--- a/data/mapObjects/rockethideout1.asm
+++ b/data/mapObjects/rockethideout1.asm
@@ -10,14 +10,14 @@ RocketHideout1Object: ; 0x44ce7 (size=98)
db $0 ; signs
- db $7 ; people
- db SPRITE_ROCKET, $8 + 4, $1a + 4, $ff, $d2, TRAINER | $1, ROCKET + $C8, $8
- db SPRITE_ROCKET, $6 + 4, $c + 4, $ff, $d3, TRAINER | $2, ROCKET + $C8, $9
- db SPRITE_ROCKET, $11 + 4, $12 + 4, $ff, $d0, TRAINER | $3, ROCKET + $C8, $a
- db SPRITE_ROCKET, $19 + 4, $f + 4, $ff, $d3, TRAINER | $4, ROCKET + $C8, $b
- db SPRITE_ROCKET, $12 + 4, $1c + 4, $ff, $d2, TRAINER | $5, ROCKET + $C8, $c
- db SPRITE_BALL, $e + 4, $b + 4, $ff, $ff, ITEM | $6, ESCAPE_ROPE
- db SPRITE_BALL, $11 + 4, $9 + 4, $ff, $ff, ITEM | $7, HYPER_POTION
+ db $7 ; objects
+ object SPRITE_ROCKET, $1a, $8, STAY, LEFT, $1, OPP_ROCKET, $8
+ object SPRITE_ROCKET, $c, $6, STAY, RIGHT, $2, OPP_ROCKET, $9
+ object SPRITE_ROCKET, $12, $11, STAY, DOWN, $3, OPP_ROCKET, $a
+ object SPRITE_ROCKET, $f, $19, STAY, RIGHT, $4, OPP_ROCKET, $b
+ object SPRITE_ROCKET, $1c, $12, STAY, LEFT, $5, OPP_ROCKET, $c
+ object SPRITE_BALL, $b, $e, STAY, NONE, $6, ESCAPE_ROPE
+ object SPRITE_BALL, $9, $11, STAY, NONE, $7, HYPER_POTION
; warp-to
EVENT_DISP ROCKET_HIDEOUT_1_WIDTH, $2, $17 ; ROCKET_HIDEOUT_2
diff --git a/data/mapObjects/rockethideout2.asm b/data/mapObjects/rockethideout2.asm
index 5842e5bc..b14dc0e6 100755
--- a/data/mapObjects/rockethideout2.asm
+++ b/data/mapObjects/rockethideout2.asm
@@ -10,12 +10,12 @@ RocketHideout2Object: ; 0x450f7 (size=80)
db $0 ; signs
- db $5 ; people
- db SPRITE_ROCKET, $c + 4, $14 + 4, $ff, $d0, TRAINER | $1, ROCKET + $C8, $d
- db SPRITE_BALL, $b + 4, $1 + 4, $ff, $ff, ITEM | $2, MOON_STONE
- db SPRITE_BALL, $8 + 4, $10 + 4, $ff, $ff, ITEM | $3, NUGGET
- db SPRITE_BALL, $c + 4, $6 + 4, $ff, $ff, ITEM | $4, TM_07
- db SPRITE_BALL, $15 + 4, $3 + 4, $ff, $ff, ITEM | $5, SUPER_POTION
+ db $5 ; objects
+ object SPRITE_ROCKET, $14, $c, STAY, DOWN, $1, OPP_ROCKET, $d
+ object SPRITE_BALL, $1, $b, STAY, NONE, $2, MOON_STONE
+ object SPRITE_BALL, $10, $8, STAY, NONE, $3, NUGGET
+ object SPRITE_BALL, $6, $c, STAY, NONE, $4, TM_07
+ object SPRITE_BALL, $3, $15, STAY, NONE, $5, SUPER_POTION
; warp-to
EVENT_DISP ROCKET_HIDEOUT_2_WIDTH, $8, $1b ; ROCKET_HIDEOUT_1
diff --git a/data/mapObjects/rockethideout3.asm b/data/mapObjects/rockethideout3.asm
index 0464c969..d7933ddf 100755
--- a/data/mapObjects/rockethideout3.asm
+++ b/data/mapObjects/rockethideout3.asm
@@ -7,11 +7,11 @@ RocketHideout3Object: ; 0x4534d (size=50)
db $0 ; signs
- db $4 ; people
- db SPRITE_ROCKET, $16 + 4, $a + 4, $ff, $d3, TRAINER | $1, ROCKET + $C8, $e
- db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d1, TRAINER | $2, ROCKET + $C8, $f
- db SPRITE_BALL, $11 + 4, $1a + 4, $ff, $ff, ITEM | $3, TM_10
- db SPRITE_BALL, $e + 4, $14 + 4, $ff, $ff, ITEM | $4, RARE_CANDY
+ db $4 ; objects
+ object SPRITE_ROCKET, $a, $16, STAY, RIGHT, $1, OPP_ROCKET, $e
+ object SPRITE_ROCKET, $1a, $c, STAY, UP, $2, OPP_ROCKET, $f
+ object SPRITE_BALL, $1a, $11, STAY, NONE, $3, TM_10
+ object SPRITE_BALL, $14, $e, STAY, NONE, $4, RARE_CANDY
; warp-to
EVENT_DISP ROCKET_HIDEOUT_3_WIDTH, $6, $19 ; ROCKET_HIDEOUT_2
diff --git a/data/mapObjects/rockethideout4.asm b/data/mapObjects/rockethideout4.asm
index c73273bb..5441f9cd 100755
--- a/data/mapObjects/rockethideout4.asm
+++ b/data/mapObjects/rockethideout4.asm
@@ -8,16 +8,16 @@ RocketHideout4Object: ; 0x455f1 (size=95)
db $0 ; signs
- db $9 ; people
- db SPRITE_GIOVANNI, $3 + 4, $19 + 4, $ff, $d0, TRAINER | $1, GIOVANNI + $C8, $1
- db SPRITE_ROCKET, $c + 4, $17 + 4, $ff, $d0, TRAINER | $2, ROCKET + $C8, $10
- db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d0, TRAINER | $3, ROCKET + $C8, $11
- db SPRITE_ROCKET, $2 + 4, $b + 4, $ff, $d0, TRAINER | $4, ROCKET + $C8, $12
- db SPRITE_BALL, $c + 4, $a + 4, $ff, $ff, ITEM | $5, HP_UP
- db SPRITE_BALL, $4 + 4, $9 + 4, $ff, $ff, ITEM | $6, TM_02
- db SPRITE_BALL, $14 + 4, $c + 4, $ff, $ff, ITEM | $7, IRON
- db SPRITE_BALL, $2 + 4, $19 + 4, $ff, $ff, ITEM | $8, SILPH_SCOPE
- db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, ITEM | $9, LIFT_KEY
+ db $9 ; objects
+ object SPRITE_GIOVANNI, $19, $3, STAY, DOWN, $1, OPP_GIOVANNI, $1
+ object SPRITE_ROCKET, $17, $c, STAY, DOWN, $2, OPP_ROCKET, $10
+ object SPRITE_ROCKET, $1a, $c, STAY, DOWN, $3, OPP_ROCKET, $11
+ object SPRITE_ROCKET, $b, $2, STAY, DOWN, $4, OPP_ROCKET, $12
+ object SPRITE_BALL, $a, $c, STAY, NONE, $5, HP_UP
+ object SPRITE_BALL, $9, $4, STAY, NONE, $6, TM_02
+ object SPRITE_BALL, $c, $14, STAY, NONE, $7, IRON
+ object SPRITE_BALL, $19, $2, STAY, NONE, $8, SILPH_SCOPE
+ object SPRITE_BALL, $a, $2, STAY, NONE, $9, LIFT_KEY
; warp-to
EVENT_DISP ROCKET_HIDEOUT_4_WIDTH, $a, $13 ; ROCKET_HIDEOUT_3
diff --git a/data/mapObjects/rockethideoutelevator.asm b/data/mapObjects/rockethideoutelevator.asm
index e4653a4c..477e62c9 100755
--- a/data/mapObjects/rockethideoutelevator.asm
+++ b/data/mapObjects/rockethideoutelevator.asm
@@ -8,7 +8,7 @@ RocketHideoutElevatorObject: ; 0x45791 (size=23)
db $1 ; signs
db $1, $1, $1 ; RocketHideoutElevatorText1
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP ROCKET_HIDEOUT_ELEVATOR_WIDTH, $1, $2 ; ROCKET_HIDEOUT_1
diff --git a/data/mapObjects/rocktunnel1.asm b/data/mapObjects/rocktunnel1.asm
index b8c8ff62..b4001df9 100755
--- a/data/mapObjects/rocktunnel1.asm
+++ b/data/mapObjects/rocktunnel1.asm
@@ -14,14 +14,14 @@ RockTunnel1Object: ; 0x445f6 (size=127)
db $1 ; signs
db $1d, $b, $8 ; RockTunnel1Text8
- db $7 ; people
- db SPRITE_HIKER, $5 + 4, $7 + 4, $ff, $d0, TRAINER | $1, HIKER + $C8, $c
- db SPRITE_HIKER, $10 + 4, $5 + 4, $ff, $d0, TRAINER | $2, HIKER + $C8, $d
- db SPRITE_HIKER, $f + 4, $11 + 4, $ff, $d2, TRAINER | $3, HIKER + $C8, $e
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $17 + 4, $ff, $d2, TRAINER | $4, POKEMANIAC + $C8, $7
- db SPRITE_LASS, $15 + 4, $25 + 4, $ff, $d2, TRAINER | $5, JR__TRAINER_F + $C8, $11
- db SPRITE_LASS, $18 + 4, $16 + 4, $ff, $d0, TRAINER | $6, JR__TRAINER_F + $C8, $12
- db SPRITE_LASS, $18 + 4, $20 + 4, $ff, $d3, TRAINER | $7, JR__TRAINER_F + $C8, $13
+ db $7 ; objects
+ object SPRITE_HIKER, $7, $5, STAY, DOWN, $1, OPP_HIKER, $c
+ object SPRITE_HIKER, $5, $10, STAY, DOWN, $2, OPP_HIKER, $d
+ object SPRITE_HIKER, $11, $f, STAY, LEFT, $3, OPP_HIKER, $e
+ object SPRITE_BLACK_HAIR_BOY_2, $17, $8, STAY, LEFT, $4, OPP_POKEMANIAC, $7
+ object SPRITE_LASS, $25, $15, STAY, LEFT, $5, OPP_JR__TRAINER_F, $11
+ object SPRITE_LASS, $16, $18, STAY, DOWN, $6, OPP_JR__TRAINER_F, $12
+ object SPRITE_LASS, $20, $18, STAY, RIGHT, $7, OPP_JR__TRAINER_F, $13
; warp-to
EVENT_DISP ROCK_TUNNEL_1_WIDTH, $3, $f
diff --git a/data/mapObjects/rocktunnel2.asm b/data/mapObjects/rocktunnel2.asm
index f75add5d..dfc36cac 100755
--- a/data/mapObjects/rocktunnel2.asm
+++ b/data/mapObjects/rocktunnel2.asm
@@ -9,15 +9,15 @@ RockTunnel2Object: ; 0x4613d (size=100)
db $0 ; signs
- db $8 ; people
- db SPRITE_LASS, $d + 4, $b + 4, $ff, $d0, TRAINER | $1, JR__TRAINER_F + $C8, $9
- db SPRITE_HIKER, $a + 4, $6 + 4, $ff, $d0, TRAINER | $2, HIKER + $C8, $9
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $3 + 4, $ff, $d0, TRAINER | $3, POKEMANIAC + $C8, $3
- db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $14 + 4, $ff, $d3, TRAINER | $4, POKEMANIAC + $C8, $4
- db SPRITE_HIKER, $a + 4, $1e + 4, $ff, $d0, TRAINER | $5, HIKER + $C8, $a
- db SPRITE_LASS, $1c + 4, $e + 4, $ff, $d3, TRAINER | $6, JR__TRAINER_F + $C8, $a
- db SPRITE_HIKER, $5 + 4, $21 + 4, $ff, $d3, TRAINER | $7, HIKER + $C8, $b
- db SPRITE_BLACK_HAIR_BOY_2, $1e + 4, $1a + 4, $ff, $d0, TRAINER | $8, POKEMANIAC + $C8, $5
+ db $8 ; objects
+ object SPRITE_LASS, $b, $d, STAY, DOWN, $1, OPP_JR__TRAINER_F, $9
+ object SPRITE_HIKER, $6, $a, STAY, DOWN, $2, OPP_HIKER, $9
+ object SPRITE_BLACK_HAIR_BOY_2, $3, $5, STAY, DOWN, $3, OPP_POKEMANIAC, $3
+ object SPRITE_BLACK_HAIR_BOY_2, $14, $15, STAY, RIGHT, $4, OPP_POKEMANIAC, $4
+ object SPRITE_HIKER, $1e, $a, STAY, DOWN, $5, OPP_HIKER, $a
+ object SPRITE_LASS, $e, $1c, STAY, RIGHT, $6, OPP_JR__TRAINER_F, $a
+ object SPRITE_HIKER, $21, $5, STAY, RIGHT, $7, OPP_HIKER, $b
+ object SPRITE_BLACK_HAIR_BOY_2, $1a, $1e, STAY, DOWN, $8, OPP_POKEMANIAC, $5
; warp-to
EVENT_DISP ROCK_TUNNEL_2_WIDTH, $19, $21 ; ROCK_TUNNEL_1
diff --git a/data/mapObjects/rocktunnelpokecenter.asm b/data/mapObjects/rocktunnelpokecenter.asm
index 2dd7b71d..d2645165 100755
--- a/data/mapObjects/rocktunnelpokecenter.asm
+++ b/data/mapObjects/rocktunnelpokecenter.asm
@@ -7,11 +7,11 @@ RockTunnelPokecenterObject: ; 0x493d4 (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $fe, $2, $2 ; person
- db SPRITE_FISHER2, $5 + 4, $2 + 4, $ff, $ff, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_GENTLEMAN, $7, $3, WALK, $2, $2 ; person
+ object SPRITE_FISHER2, $2, $5, STAY, NONE, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP ROCK_TUNNEL_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/route1.asm b/data/mapObjects/route1.asm
index c16738f3..d2abf51f 100755
--- a/data/mapObjects/route1.asm
+++ b/data/mapObjects/route1.asm
@@ -6,9 +6,9 @@ Route1Object: ; 0x1c0e5 (size=19)
db $1 ; signs
db $1b, $9, $3 ; Route1Text3
- db $2 ; people
- db SPRITE_BUG_CATCHER, $18 + 4, $5 + 4, $fe, $1, $1 ; person
- db SPRITE_BUG_CATCHER, $d + 4, $f + 4, $fe, $2, $2 ; person
+ db $2 ; objects
+ object SPRITE_BUG_CATCHER, $5, $18, WALK, $1, $1 ; person
+ object SPRITE_BUG_CATCHER, $f, $d, WALK, $2, $2 ; person
; warp-to (unused)
EVENT_DISP $4, $7, $2
diff --git a/data/mapObjects/route10.asm b/data/mapObjects/route10.asm
index aa3f8a8e..e324a348 100755
--- a/data/mapObjects/route10.asm
+++ b/data/mapObjects/route10.asm
@@ -13,13 +13,13 @@ Route10Object: ; 0x582f6 (size=96)
db $37, $9, $9 ; Route10Text9
db $29, $5, $a ; Route10Text10
- db $6 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $2c + 4, $a + 4, $ff, $d2, TRAINER | $1, POKEMANIAC + $C8, $1
- db SPRITE_HIKER, $39 + 4, $3 + 4, $ff, $d1, TRAINER | $2, HIKER + $C8, $7
- db SPRITE_BLACK_HAIR_BOY_2, $40 + 4, $e + 4, $ff, $d2, TRAINER | $3, POKEMANIAC + $C8, $2
- db SPRITE_LASS, $19 + 4, $7 + 4, $ff, $d2, TRAINER | $4, JR__TRAINER_F + $C8, $7
- db SPRITE_HIKER, $3d + 4, $3 + 4, $ff, $d0, TRAINER | $5, HIKER + $C8, $8
- db SPRITE_LASS, $36 + 4, $7 + 4, $ff, $d0, TRAINER | $6, JR__TRAINER_F + $C8, $8
+ db $6 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $a, $2c, STAY, LEFT, $1, OPP_POKEMANIAC, $1
+ object SPRITE_HIKER, $3, $39, STAY, UP, $2, OPP_HIKER, $7
+ object SPRITE_BLACK_HAIR_BOY_2, $e, $40, STAY, LEFT, $3, OPP_POKEMANIAC, $2
+ object SPRITE_LASS, $7, $19, STAY, LEFT, $4, OPP_JR__TRAINER_F, $7
+ object SPRITE_HIKER, $3, $3d, STAY, DOWN, $5, OPP_HIKER, $8
+ object SPRITE_LASS, $7, $36, STAY, DOWN, $6, OPP_JR__TRAINER_F, $8
; warp-to
EVENT_DISP ROUTE_10_WIDTH, $13, $b ; ROCK_TUNNEL_POKECENTER
diff --git a/data/mapObjects/route11.asm b/data/mapObjects/route11.asm
index 167af2f8..4e196b20 100755
--- a/data/mapObjects/route11.asm
+++ b/data/mapObjects/route11.asm
@@ -11,17 +11,17 @@ Route11Object: ; 0x584e0 (size=127)
db $1 ; signs
db $5, $1, $b ; Route11Text11
- db $a ; people
- db SPRITE_GAMBLER, $e + 4, $a + 4, $ff, $d0, TRAINER | $1, GAMBLER + $C8, $1
- db SPRITE_GAMBLER, $9 + 4, $1a + 4, $ff, $d0, TRAINER | $2, GAMBLER + $C8, $2
- db SPRITE_BUG_CATCHER, $5 + 4, $d + 4, $ff, $d2, TRAINER | $3, YOUNGSTER + $C8, $9
- db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $24 + 4, $ff, $d0, TRAINER | $4, ENGINEER + $C8, $2
- db SPRITE_BUG_CATCHER, $4 + 4, $16 + 4, $ff, $d1, TRAINER | $5, YOUNGSTER + $C8, $a
- db SPRITE_GAMBLER, $7 + 4, $2d + 4, $ff, $d0, TRAINER | $6, GAMBLER + $C8, $3
- db SPRITE_GAMBLER, $3 + 4, $21 + 4, $ff, $d1, TRAINER | $7, GAMBLER + $C8, $4
- db SPRITE_BUG_CATCHER, $5 + 4, $2b + 4, $ff, $d3, TRAINER | $8, YOUNGSTER + $C8, $b
- db SPRITE_BLACK_HAIR_BOY_2, $10 + 4, $2d + 4, $ff, $d2, TRAINER | $9, ENGINEER + $C8, $3
- db SPRITE_BUG_CATCHER, $c + 4, $16 + 4, $ff, $d1, TRAINER | $a, YOUNGSTER + $C8, $c
+ db $a ; objects
+ object SPRITE_GAMBLER, $a, $e, STAY, DOWN, $1, OPP_GAMBLER, $1
+ object SPRITE_GAMBLER, $1a, $9, STAY, DOWN, $2, OPP_GAMBLER, $2
+ object SPRITE_BUG_CATCHER, $d, $5, STAY, LEFT, $3, OPP_YOUNGSTER, $9
+ object SPRITE_BLACK_HAIR_BOY_2, $24, $b, STAY, DOWN, $4, OPP_ENGINEER, $2
+ object SPRITE_BUG_CATCHER, $16, $4, STAY, UP, $5, OPP_YOUNGSTER, $a
+ object SPRITE_GAMBLER, $2d, $7, STAY, DOWN, $6, OPP_GAMBLER, $3
+ object SPRITE_GAMBLER, $21, $3, STAY, UP, $7, OPP_GAMBLER, $4
+ object SPRITE_BUG_CATCHER, $2b, $5, STAY, RIGHT, $8, OPP_YOUNGSTER, $b
+ object SPRITE_BLACK_HAIR_BOY_2, $2d, $10, STAY, LEFT, $9, OPP_ENGINEER, $3
+ object SPRITE_BUG_CATCHER, $16, $c, STAY, UP, $a, OPP_YOUNGSTER, $c
; warp-to
EVENT_DISP ROUTE_11_WIDTH, $8, $31 ; ROUTE_11_GATE_1F
diff --git a/data/mapObjects/route11gate.asm b/data/mapObjects/route11gate.asm
index 5ebfb13d..351b922c 100755
--- a/data/mapObjects/route11gate.asm
+++ b/data/mapObjects/route11gate.asm
@@ -10,8 +10,8 @@ Route11GateObject: ; 0x49416 (size=50)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $4, $1, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP ROUTE_11_GATE_1F_WIDTH, $4, $0
diff --git a/data/mapObjects/route11gateupstairs.asm b/data/mapObjects/route11gateupstairs.asm
index 8ee0f8fa..421de945 100755
--- a/data/mapObjects/route11gateupstairs.asm
+++ b/data/mapObjects/route11gateupstairs.asm
@@ -8,9 +8,9 @@ Route11GateUpstairsObject: ; 0x494da (size=30)
db $2, $1, $3 ; Route11GateUpstairsText3
db $2, $6, $4 ; Route11GateUpstairsText4
- db $2 ; people
- db SPRITE_BUG_CATCHER, $2 + 4, $4 + 4, $fe, $2, $1 ; person
- db SPRITE_OAK_AIDE, $6 + 4, $2 + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_BUG_CATCHER, $4, $2, WALK, $2, $1 ; person
+ object SPRITE_OAK_AIDE, $2, $6, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP ROUTE_11_GATE_2F_WIDTH, $7, $7 ; ROUTE_11_GATE_1F
diff --git a/data/mapObjects/route12.asm b/data/mapObjects/route12.asm
index d0aaa847..0d0ef1c0 100755
--- a/data/mapObjects/route12.asm
+++ b/data/mapObjects/route12.asm
@@ -11,17 +11,17 @@ Route12Object: ; 0x5869a (size=118)
db $d, $d, $b ; Route12Text11
db $3f, $b, $c ; Route12Text12
- db $a ; people
- db SPRITE_SNORLAX, $3e + 4, $a + 4, $ff, $d0, $1 ; person
- db SPRITE_FISHER2, $1f + 4, $e + 4, $ff, $d2, TRAINER | $2, FISHER + $C8, $3
- db SPRITE_FISHER2, $27 + 4, $5 + 4, $ff, $d1, TRAINER | $3, FISHER + $C8, $4
- db SPRITE_BLACK_HAIR_BOY_1, $5c + 4, $b + 4, $ff, $d2, TRAINER | $4, JR__TRAINER_M + $C8, $9
- db SPRITE_BLACK_HAIR_BOY_2, $4c + 4, $e + 4, $ff, $d1, TRAINER | $5, ROCKER + $C8, $2
- db SPRITE_FISHER2, $28 + 4, $c + 4, $ff, $d2, TRAINER | $6, FISHER + $C8, $5
- db SPRITE_FISHER2, $34 + 4, $9 + 4, $ff, $d3, TRAINER | $7, FISHER + $C8, $6
- db SPRITE_FISHER2, $57 + 4, $6 + 4, $ff, $d0, TRAINER | $8, FISHER + $C8, $b
- db SPRITE_BALL, $23 + 4, $e + 4, $ff, $ff, ITEM | $9, TM_16
- db SPRITE_BALL, $59 + 4, $5 + 4, $ff, $ff, ITEM | $a, IRON
+ db $a ; objects
+ object SPRITE_SNORLAX, $a, $3e, STAY, DOWN, $1 ; person
+ object SPRITE_FISHER2, $e, $1f, STAY, LEFT, $2, OPP_FISHER, $3
+ object SPRITE_FISHER2, $5, $27, STAY, UP, $3, OPP_FISHER, $4
+ object SPRITE_BLACK_HAIR_BOY_1, $b, $5c, STAY, LEFT, $4, OPP_JR__TRAINER_M, $9
+ object SPRITE_BLACK_HAIR_BOY_2, $e, $4c, STAY, UP, $5, OPP_ROCKER, $2
+ object SPRITE_FISHER2, $c, $28, STAY, LEFT, $6, OPP_FISHER, $5
+ object SPRITE_FISHER2, $9, $34, STAY, RIGHT, $7, OPP_FISHER, $6
+ object SPRITE_FISHER2, $6, $57, STAY, DOWN, $8, OPP_FISHER, $b
+ object SPRITE_BALL, $e, $23, STAY, NONE, $9, TM_16
+ object SPRITE_BALL, $5, $59, STAY, NONE, $a, IRON
; warp-to
EVENT_DISP ROUTE_12_WIDTH, $f, $a ; ROUTE_12_GATE_1F
diff --git a/data/mapObjects/route12gate.asm b/data/mapObjects/route12gate.asm
index fc70b763..1e2fe3f9 100755
--- a/data/mapObjects/route12gate.asm
+++ b/data/mapObjects/route12gate.asm
@@ -10,8 +10,8 @@ Route12GateObject: ; 0x4950e (size=50)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $3 + 4, $1 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $1, $3, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP ROUTE_12_GATE_1F_WIDTH, $0, $4
diff --git a/data/mapObjects/route12gateupstairs.asm b/data/mapObjects/route12gateupstairs.asm
index 012dedda..9a8e4d4a 100755
--- a/data/mapObjects/route12gateupstairs.asm
+++ b/data/mapObjects/route12gateupstairs.asm
@@ -8,8 +8,8 @@ Route12GateUpstairsObject: ; 0x495de (size=24)
db $2, $1, $2 ; Route12GateUpstairsText2
db $2, $6, $3 ; Route12GateUpstairsText3
- db $1 ; people
- db SPRITE_BRUNETTE_GIRL, $4 + 4, $3 + 4, $fe, $1, $1 ; person
+ db $1 ; objects
+ object SPRITE_BRUNETTE_GIRL, $3, $4, WALK, $1, $1 ; person
; warp-to
EVENT_DISP ROUTE_12_GATE_2F_WIDTH, $7, $7 ; ROUTE_12_GATE_1F
diff --git a/data/mapObjects/route12house.asm b/data/mapObjects/route12house.asm
index 74ae5bc7..fad89578 100755
--- a/data/mapObjects/route12house.asm
+++ b/data/mapObjects/route12house.asm
@@ -7,8 +7,8 @@ Route12HouseObject: ; 0x564de (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_FISHER, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
+ db $1 ; objects
+ object SPRITE_FISHER, $2, $4, STAY, RIGHT, $1 ; person
; warp-to
EVENT_DISP ROUTE_12_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/route13.asm b/data/mapObjects/route13.asm
index 5cf6d0c2..1512ce3a 100755
--- a/data/mapObjects/route13.asm
+++ b/data/mapObjects/route13.asm
@@ -8,14 +8,14 @@ Route13Object: ; 0x5482e (size=93)
db $5, $21, $c ; Route13Text12
db $b, $1f, $d ; Route13Text13
- db $a ; people
- db SPRITE_BLACK_HAIR_BOY_1, $a + 4, $31 + 4, $ff, $d3, TRAINER | $1, BIRD_KEEPER + $C8, $1
- db SPRITE_LASS, $a + 4, $30 + 4, $ff, $d0, TRAINER | $2, JR__TRAINER_F + $C8, $c
- db SPRITE_LASS, $9 + 4, $1b + 4, $ff, $d0, TRAINER | $3, JR__TRAINER_F + $C8, $d
- db SPRITE_LASS, $a + 4, $17 + 4, $ff, $d2, TRAINER | $4, JR__TRAINER_F + $C8, $e
- db SPRITE_LASS, $5 + 4, $32 + 4, $ff, $d0, TRAINER | $5, JR__TRAINER_F + $C8, $f
- db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $c + 4, $ff, $d3, TRAINER | $6, BIRD_KEEPER + $C8, $2
- db SPRITE_FOULARD_WOMAN, $6 + 4, $21 + 4, $ff, $d0, TRAINER | $7, BEAUTY + $C8, $4
- db SPRITE_FOULARD_WOMAN, $6 + 4, $20 + 4, $ff, $d0, TRAINER | $8, BEAUTY + $C8, $5
- db SPRITE_BIKER, $7 + 4, $a + 4, $ff, $d1, TRAINER | $9, BIKER + $C8, $1
- db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $7 + 4, $ff, $d1, TRAINER | $a, BIRD_KEEPER + $C8, $3
+ db $a ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, $31, $a, STAY, RIGHT, $1, OPP_BIRD_KEEPER, $1
+ object SPRITE_LASS, $30, $a, STAY, DOWN, $2, OPP_JR__TRAINER_F, $c
+ object SPRITE_LASS, $1b, $9, STAY, DOWN, $3, OPP_JR__TRAINER_F, $d
+ object SPRITE_LASS, $17, $a, STAY, LEFT, $4, OPP_JR__TRAINER_F, $e
+ object SPRITE_LASS, $32, $5, STAY, DOWN, $5, OPP_JR__TRAINER_F, $f
+ object SPRITE_BLACK_HAIR_BOY_1, $c, $4, STAY, RIGHT, $6, OPP_BIRD_KEEPER, $2
+ object SPRITE_FOULARD_WOMAN, $21, $6, STAY, DOWN, $7, OPP_BEAUTY, $4
+ object SPRITE_FOULARD_WOMAN, $20, $6, STAY, DOWN, $8, OPP_BEAUTY, $5
+ object SPRITE_BIKER, $a, $7, STAY, UP, $9, OPP_BIKER, $1
+ object SPRITE_BLACK_HAIR_BOY_1, $7, $d, STAY, UP, $a, OPP_BIRD_KEEPER, $3
diff --git a/data/mapObjects/route14.asm b/data/mapObjects/route14.asm
index a16f83e2..ce6d52b0 100755
--- a/data/mapObjects/route14.asm
+++ b/data/mapObjects/route14.asm
@@ -6,14 +6,14 @@ Route14Object: ; 0x549bb (size=87)
db $1 ; signs
db $d, $11, $b ; Route14Text11
- db $a ; people
- db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $4 + 4, $ff, $d0, TRAINER | $1, BIRD_KEEPER + $C8, $e
- db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $f + 4, $ff, $d0, TRAINER | $2, BIRD_KEEPER + $C8, $f
- db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $c + 4, $ff, $d0, TRAINER | $3, BIRD_KEEPER + $C8, $10
- db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $e + 4, $ff, $d1, TRAINER | $4, BIRD_KEEPER + $C8, $11
- db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $f + 4, $ff, $d2, TRAINER | $5, BIRD_KEEPER + $C8, $4
- db SPRITE_BLACK_HAIR_BOY_1, $31 + 4, $6 + 4, $ff, $d1, TRAINER | $6, BIRD_KEEPER + $C8, $5
- db SPRITE_BIKER, $27 + 4, $5 + 4, $ff, $d0, TRAINER | $7, BIKER + $C8, $d
- db SPRITE_BIKER, $1e + 4, $4 + 4, $ff, $d3, TRAINER | $8, BIKER + $C8, $e
- db SPRITE_BIKER, $1e + 4, $f + 4, $ff, $d2, TRAINER | $9, BIKER + $C8, $f
- db SPRITE_BIKER, $1f + 4, $4 + 4, $ff, $d3, TRAINER | $a, BIKER + $C8, $2
+ db $a ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, $4, $4, STAY, DOWN, $1, OPP_BIRD_KEEPER, $e
+ object SPRITE_BLACK_HAIR_BOY_1, $f, $6, STAY, DOWN, $2, OPP_BIRD_KEEPER, $f
+ object SPRITE_BLACK_HAIR_BOY_1, $c, $b, STAY, DOWN, $3, OPP_BIRD_KEEPER, $10
+ object SPRITE_BLACK_HAIR_BOY_1, $e, $f, STAY, UP, $4, OPP_BIRD_KEEPER, $11
+ object SPRITE_BLACK_HAIR_BOY_1, $f, $1f, STAY, LEFT, $5, OPP_BIRD_KEEPER, $4
+ object SPRITE_BLACK_HAIR_BOY_1, $6, $31, STAY, UP, $6, OPP_BIRD_KEEPER, $5
+ object SPRITE_BIKER, $5, $27, STAY, DOWN, $7, OPP_BIKER, $d
+ object SPRITE_BIKER, $4, $1e, STAY, RIGHT, $8, OPP_BIKER, $e
+ object SPRITE_BIKER, $f, $1e, STAY, LEFT, $9, OPP_BIKER, $f
+ object SPRITE_BIKER, $4, $1f, STAY, RIGHT, $a, OPP_BIKER, $2
diff --git a/data/mapObjects/route15.asm b/data/mapObjects/route15.asm
index a7165c6c..95016038 100755
--- a/data/mapObjects/route15.asm
+++ b/data/mapObjects/route15.asm
@@ -10,18 +10,18 @@ Route15Object: ; 0x5894e (size=126)
db $1 ; signs
db $9, $27, $c ; Route15Text12
- db $b ; people
- db SPRITE_LASS, $b + 4, $29 + 4, $ff, $d0, TRAINER | $1, JR__TRAINER_F + $C8, $14
- db SPRITE_LASS, $a + 4, $35 + 4, $ff, $d2, TRAINER | $2, JR__TRAINER_F + $C8, $15
- db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $1f + 4, $ff, $d1, TRAINER | $3, BIRD_KEEPER + $C8, $6
- db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $23 + 4, $ff, $d1, TRAINER | $4, BIRD_KEEPER + $C8, $7
- db SPRITE_FOULARD_WOMAN, $b + 4, $35 + 4, $ff, $d0, TRAINER | $5, BEAUTY + $C8, $9
- db SPRITE_FOULARD_WOMAN, $a + 4, $29 + 4, $ff, $d3, TRAINER | $6, BEAUTY + $C8, $a
- db SPRITE_BIKER, $a + 4, $30 + 4, $ff, $d0, TRAINER | $7, BIKER + $C8, $3
- db SPRITE_BIKER, $a + 4, $2e + 4, $ff, $d0, TRAINER | $8, BIKER + $C8, $4
- db SPRITE_LASS, $5 + 4, $25 + 4, $ff, $d3, TRAINER | $9, JR__TRAINER_F + $C8, $16
- db SPRITE_LASS, $d + 4, $12 + 4, $ff, $d1, TRAINER | $a, JR__TRAINER_F + $C8, $17
- db SPRITE_BALL, $5 + 4, $12 + 4, $ff, $ff, ITEM | $b, TM_20
+ db $b ; objects
+ object SPRITE_LASS, $29, $b, STAY, DOWN, $1, OPP_JR__TRAINER_F, $14
+ object SPRITE_LASS, $35, $a, STAY, LEFT, $2, OPP_JR__TRAINER_F, $15
+ object SPRITE_BLACK_HAIR_BOY_1, $1f, $d, STAY, UP, $3, OPP_BIRD_KEEPER, $6
+ object SPRITE_BLACK_HAIR_BOY_1, $23, $d, STAY, UP, $4, OPP_BIRD_KEEPER, $7
+ object SPRITE_FOULARD_WOMAN, $35, $b, STAY, DOWN, $5, OPP_BEAUTY, $9
+ object SPRITE_FOULARD_WOMAN, $29, $a, STAY, RIGHT, $6, OPP_BEAUTY, $a
+ object SPRITE_BIKER, $30, $a, STAY, DOWN, $7, OPP_BIKER, $3
+ object SPRITE_BIKER, $2e, $a, STAY, DOWN, $8, OPP_BIKER, $4
+ object SPRITE_LASS, $25, $5, STAY, RIGHT, $9, OPP_JR__TRAINER_F, $16
+ object SPRITE_LASS, $12, $d, STAY, UP, $a, OPP_JR__TRAINER_F, $17
+ object SPRITE_BALL, $12, $5, STAY, NONE, $b, TM_20
; warp-to
EVENT_DISP ROUTE_15_WIDTH, $8, $7 ; ROUTE_15_GATE_1F
diff --git a/data/mapObjects/route15gate.asm b/data/mapObjects/route15gate.asm
index e0278fbe..f571ee03 100755
--- a/data/mapObjects/route15gate.asm
+++ b/data/mapObjects/route15gate.asm
@@ -10,8 +10,8 @@ Route15GateObject: ; 0x4960c (size=50)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $4, $1, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP ROUTE_15_GATE_1F_WIDTH, $4, $0
diff --git a/data/mapObjects/route15gateupstairs.asm b/data/mapObjects/route15gateupstairs.asm
index dd7a0b2c..4362ade0 100755
--- a/data/mapObjects/route15gateupstairs.asm
+++ b/data/mapObjects/route15gateupstairs.asm
@@ -7,8 +7,8 @@ Route15GateUpstairsObject: ; 4969d (12:569d)
db $1 ; signs
db $2, $6, $2 ; Route15GateUpstairsText2
- db $1 ; people
- db SPRITE_OAK_AIDE, $2 + 4, $4 + 4, $ff, $d0, $1
+ db $1 ; objects
+ object SPRITE_OAK_AIDE, $4, $2, STAY, DOWN, $1
; warp-to
EVENT_DISP ROUTE_15_GATE_2F_WIDTH, $7, $7 ; ROUTE_15_GATE_1F
diff --git a/data/mapObjects/route16.asm b/data/mapObjects/route16.asm
index 3023124e..600dbbf1 100755
--- a/data/mapObjects/route16.asm
+++ b/data/mapObjects/route16.asm
@@ -16,14 +16,14 @@ Route16Object: ; 0x58afc (size=136)
db $b, $1b, $8 ; Route16Text8
db $11, $5, $9 ; Route16Text9
- db $7 ; people
- db SPRITE_BIKER, $c + 4, $11 + 4, $ff, $d2, TRAINER | $1, BIKER + $C8, $5
- db SPRITE_BIKER, $d + 4, $e + 4, $ff, $d3, TRAINER | $2, CUE_BALL + $C8, $1
- db SPRITE_BIKER, $c + 4, $b + 4, $ff, $d1, TRAINER | $3, CUE_BALL + $C8, $2
- db SPRITE_BIKER, $b + 4, $9 + 4, $ff, $d2, TRAINER | $4, BIKER + $C8, $6
- db SPRITE_BIKER, $a + 4, $6 + 4, $ff, $d3, TRAINER | $5, CUE_BALL + $C8, $3
- db SPRITE_BIKER, $c + 4, $3 + 4, $ff, $d3, TRAINER | $6, BIKER + $C8, $7
- db SPRITE_SNORLAX, $a + 4, $1a + 4, $ff, $d0, $7 ; person
+ db $7 ; objects
+ object SPRITE_BIKER, $11, $c, STAY, LEFT, $1, OPP_BIKER, $5
+ object SPRITE_BIKER, $e, $d, STAY, RIGHT, $2, OPP_CUE_BALL, $1
+ object SPRITE_BIKER, $b, $c, STAY, UP, $3, OPP_CUE_BALL, $2
+ object SPRITE_BIKER, $9, $b, STAY, LEFT, $4, OPP_BIKER, $6
+ object SPRITE_BIKER, $6, $a, STAY, RIGHT, $5, OPP_CUE_BALL, $3
+ object SPRITE_BIKER, $3, $c, STAY, RIGHT, $6, OPP_BIKER, $7
+ object SPRITE_SNORLAX, $1a, $a, STAY, DOWN, $7 ; person
; warp-to
EVENT_DISP ROUTE_16_WIDTH, $a, $11 ; ROUTE_16_GATE_1F
diff --git a/data/mapObjects/route16gate.asm b/data/mapObjects/route16gate.asm
index 3b493cca..e1da990d 100755
--- a/data/mapObjects/route16gate.asm
+++ b/data/mapObjects/route16gate.asm
@@ -14,9 +14,9 @@ Route16GateObject: ; 0x4978b (size=88)
db $0 ; signs
- db $2 ; people
- db SPRITE_GUARD, $5 + 4, $4 + 4, $ff, $d0, $1 ; person
- db SPRITE_GAMBLER, $3 + 4, $4 + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_GUARD, $4, $5, STAY, DOWN, $1 ; person
+ object SPRITE_GAMBLER, $4, $3, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $8, $0
diff --git a/data/mapObjects/route16gateupstairs.asm b/data/mapObjects/route16gateupstairs.asm
index ee9df620..d8c2db12 100755
--- a/data/mapObjects/route16gateupstairs.asm
+++ b/data/mapObjects/route16gateupstairs.asm
@@ -8,9 +8,9 @@ Route16GateUpstairsObject: ; 0x4984c (size=30)
db $2, $1, $3 ; Route16GateUpstairsText3
db $2, $6, $4 ; Route16GateUpstairsText4
- db $2 ; people
- db SPRITE_YOUNG_BOY, $2 + 4, $4 + 4, $ff, $ff, $1 ; person
- db SPRITE_LITTLE_GIRL, $5 + 4, $2 + 4, $fe, $2, $2 ; person
+ db $2 ; objects
+ object SPRITE_YOUNG_BOY, $4, $2, STAY, NONE, $1 ; person
+ object SPRITE_LITTLE_GIRL, $2, $5, WALK, $2, $2 ; person
; warp-to
EVENT_DISP ROUTE_16_GATE_2F_WIDTH, $7, $7 ; ROUTE_16_GATE_1F
diff --git a/data/mapObjects/route16house.asm b/data/mapObjects/route16house.asm
index 816c0e69..12a846c6 100755
--- a/data/mapObjects/route16house.asm
+++ b/data/mapObjects/route16house.asm
@@ -7,9 +7,9 @@ Route16HouseObject: ; 0x1e657 (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_BRUNETTE_GIRL, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
- db SPRITE_BIRD, $4 + 4, $6 + 4, $fe, $0, $2 ; person
+ db $2 ; objects
+ object SPRITE_BRUNETTE_GIRL, $2, $3, STAY, RIGHT, $1 ; person
+ object SPRITE_BIRD, $6, $4, WALK, $0, $2 ; person
; warp-to
EVENT_DISP ROUTE_16_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/route17.asm b/data/mapObjects/route17.asm
index 06123998..c496373e 100755
--- a/data/mapObjects/route17.asm
+++ b/data/mapObjects/route17.asm
@@ -11,14 +11,14 @@ Route17Object: ; 0x54b42 (size=102)
db $6f, $9, $f ; Route17Text15
db $8d, $9, $10 ; Route17Text16
- db $a ; people
- db SPRITE_BIKER, $13 + 4, $c + 4, $ff, $d2, TRAINER | $1, CUE_BALL + $C8, $4
- db SPRITE_BIKER, $10 + 4, $b + 4, $ff, $d3, TRAINER | $2, CUE_BALL + $C8, $5
- db SPRITE_BIKER, $12 + 4, $4 + 4, $ff, $d1, TRAINER | $3, BIKER + $C8, $8
- db SPRITE_BIKER, $20 + 4, $7 + 4, $ff, $d2, TRAINER | $4, BIKER + $C8, $9
- db SPRITE_BIKER, $22 + 4, $e + 4, $ff, $d3, TRAINER | $5, BIKER + $C8, $a
- db SPRITE_BIKER, $3a + 4, $11 + 4, $ff, $d2, TRAINER | $6, CUE_BALL + $C8, $6
- db SPRITE_BIKER, $44 + 4, $2 + 4, $ff, $d3, TRAINER | $7, CUE_BALL + $C8, $7
- db SPRITE_BIKER, $62 + 4, $e + 4, $ff, $d3, TRAINER | $8, CUE_BALL + $C8, $8
- db SPRITE_BIKER, $62 + 4, $5 + 4, $ff, $d2, TRAINER | $9, BIKER + $C8, $b
- db SPRITE_BIKER, $76 + 4, $a + 4, $ff, $d0, TRAINER | $a, BIKER + $C8, $c
+ db $a ; objects
+ object SPRITE_BIKER, $c, $13, STAY, LEFT, $1, OPP_CUE_BALL, $4
+ object SPRITE_BIKER, $b, $10, STAY, RIGHT, $2, OPP_CUE_BALL, $5
+ object SPRITE_BIKER, $4, $12, STAY, UP, $3, OPP_BIKER, $8
+ object SPRITE_BIKER, $7, $20, STAY, LEFT, $4, OPP_BIKER, $9
+ object SPRITE_BIKER, $e, $22, STAY, RIGHT, $5, OPP_BIKER, $a
+ object SPRITE_BIKER, $11, $3a, STAY, LEFT, $6, OPP_CUE_BALL, $6
+ object SPRITE_BIKER, $2, $44, STAY, RIGHT, $7, OPP_CUE_BALL, $7
+ object SPRITE_BIKER, $e, $62, STAY, RIGHT, $8, OPP_CUE_BALL, $8
+ object SPRITE_BIKER, $5, $62, STAY, LEFT, $9, OPP_BIKER, $b
+ object SPRITE_BIKER, $a, $76, STAY, DOWN, $a, OPP_BIKER, $c
diff --git a/data/mapObjects/route18.asm b/data/mapObjects/route18.asm
index f4dd26f3..88547941 100755
--- a/data/mapObjects/route18.asm
+++ b/data/mapObjects/route18.asm
@@ -11,10 +11,10 @@ Route18Object: ; 0x58c5a (size=66)
db $7, $2b, $4 ; Route18Text4
db $5, $21, $5 ; Route18Text5
- db $3 ; people
- db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $24 + 4, $ff, $d3, TRAINER | $1, BIRD_KEEPER + $C8, $8
- db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $28 + 4, $ff, $d2, TRAINER | $2, BIRD_KEEPER + $C8, $9
- db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $2a + 4, $ff, $d2, TRAINER | $3, BIRD_KEEPER + $C8, $a
+ db $3 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, $24, $b, STAY, RIGHT, $1, OPP_BIRD_KEEPER, $8
+ object SPRITE_BLACK_HAIR_BOY_1, $28, $f, STAY, LEFT, $2, OPP_BIRD_KEEPER, $9
+ object SPRITE_BLACK_HAIR_BOY_1, $2a, $d, STAY, LEFT, $3, OPP_BIRD_KEEPER, $a
; warp-to
EVENT_DISP ROUTE_18_WIDTH, $8, $21 ; ROUTE_18_GATE_1F
diff --git a/data/mapObjects/route18gate.asm b/data/mapObjects/route18gate.asm
index 62816061..d42026da 100755
--- a/data/mapObjects/route18gate.asm
+++ b/data/mapObjects/route18gate.asm
@@ -10,8 +10,8 @@ Route18GateObject: ; 0x49937 (size=50)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $d0, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $4, $1, STAY, DOWN, $1 ; person
; warp-to
EVENT_DISP ROUTE_18_GATE_1F_WIDTH, $4, $0
diff --git a/data/mapObjects/route18gateupstairs.asm b/data/mapObjects/route18gateupstairs.asm
index d2b55e7f..c611e0c3 100755
--- a/data/mapObjects/route18gateupstairs.asm
+++ b/data/mapObjects/route18gateupstairs.asm
@@ -8,8 +8,8 @@ Route18GateUpstairsObject: ; 0x499a4 (size=24)
db $2, $1, $2 ; Route18GateUpstairsText2
db $2, $6, $3 ; Route18GateUpstairsText3
- db $1 ; people
- db SPRITE_BUG_CATCHER, $2 + 4, $4 + 4, $fe, $2, $1 ; person
+ db $1 ; objects
+ object SPRITE_BUG_CATCHER, $4, $2, WALK, $2, $1 ; person
; warp-to
EVENT_DISP ROUTE_18_GATE_2F_WIDTH, $7, $7 ; ROUTE_18_GATE_1F
diff --git a/data/mapObjects/route19.asm b/data/mapObjects/route19.asm
index 41f0f260..7377e1e6 100755
--- a/data/mapObjects/route19.asm
+++ b/data/mapObjects/route19.asm
@@ -7,17 +7,15 @@ Route19Object: ; 0x54e9a (size=87)
db $1 ; signs
db $b,$b,$b
- db $a ; people
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $9 + 4, $ff, $d3, TRAINER | 1, SWIMMER + $C8, 2
- db SPRITE_BLACK_HAIR_BOY_1, $9 + 4, $c + 4, $ff, $d2, TRAINER | 2, SWIMMER + $C8, 3
- db SPRITE_SWIMMER, $19 + 4, $d + 4, $ff, $d2, TRAINER | $3, SWIMMER + $C8, $4
- db SPRITE_SWIMMER, $1b + 4, $4 + 4, $ff, $d3, TRAINER | $4, SWIMMER + $C8, $5
- db SPRITE_SWIMMER, $1f + 4, $10 + 4, $ff, $d1, TRAINER | $5, SWIMMER + $C8, $6
- db SPRITE_SWIMMER, $d + 4, $9 + 4, $ff, $d0, TRAINER | $6, SWIMMER + $C8, $7
- db SPRITE_SWIMMER, $2b + 4, $8 + 4, $ff, $d2, TRAINER | $7, BEAUTY + $C8, $c
- db SPRITE_SWIMMER, $2b + 4, $b + 4, $ff, $d3, TRAINER | $8, BEAUTY + $C8, $d
- db SPRITE_SWIMMER, $2a + 4, $9 + 4, $ff, $d1, TRAINER | $9, SWIMMER + $C8, $8
- db SPRITE_SWIMMER, $2c + 4, $a + 4, $ff, $d0, TRAINER | $a, BEAUTY + $C8, $e
+ db $a ; objects
+
+ object SPRITE_BLACK_HAIR_BOY_1, $9, $7, STAY, RIGHT, 1, OPP_SWIMMER, 2
+ object SPRITE_BLACK_HAIR_BOY_1, $c, $9, STAY, LEFT, 2, OPP_SWIMMER, 3
+ object SPRITE_SWIMMER, $9, $d, STAY, DOWN, $6, OPP_SWIMMER, $7
+ object SPRITE_SWIMMER, $8, $2b, STAY, LEFT, $7, OPP_BEAUTY, $c
+ object SPRITE_SWIMMER, $b, $2b, STAY, RIGHT, $8, OPP_BEAUTY, $d
+ object SPRITE_SWIMMER, $9, $2a, STAY, UP, $9, OPP_SWIMMER, $8
+ object SPRITE_SWIMMER, $a, $2c, STAY, DOWN, $a, OPP_BEAUTY, $e
; warp-to
EVENT_DISP ROUTE_19_WIDTH, $9, $5 ; BEACH_HOUSE
diff --git a/data/mapObjects/route2.asm b/data/mapObjects/route2.asm
index 5587309c..0e6784b2 100755
--- a/data/mapObjects/route2.asm
+++ b/data/mapObjects/route2.asm
@@ -13,9 +13,9 @@ Route2Object: ; 0x54022 (size=72)
db $41, $5, $3 ; Route2Text3
db $b, $b, $4 ; Route2Text4
- db $2 ; people
- db SPRITE_BALL, $36 + 4, $d + 4, $ff, $ff, ITEM | $1, MOON_STONE
- db SPRITE_BALL, $2d + 4, $d + 4, $ff, $ff, ITEM | $2, HP_UP
+ db $2 ; objects
+ object SPRITE_BALL, $d, $36, STAY, NONE, $1, MOON_STONE
+ object SPRITE_BALL, $d, $2d, STAY, NONE, $2, HP_UP
; warp-to
EVENT_DISP ROUTE_2_WIDTH, $9, $c ; DIGLETTS_CAVE_EXIT
diff --git a/data/mapObjects/route20.asm b/data/mapObjects/route20.asm
index 78256699..8e6b5a78 100755
--- a/data/mapObjects/route20.asm
+++ b/data/mapObjects/route20.asm
@@ -9,17 +9,17 @@ Route20Object: ; 0x50113 (size=106)
db $7, $33, $b ; Route20Text11
db $b, $39, $c ; Route20Text12
- db $a ; people
- db SPRITE_SWIMMER, $8 + 4, $57 + 4, $ff, $d1, TRAINER | $1, SWIMMER + $C8, $9
- db SPRITE_SWIMMER, $b + 4, $44 + 4, $ff, $d1, TRAINER | $2, BEAUTY + $C8, $f
- db SPRITE_SWIMMER, $a + 4, $2d + 4, $ff, $d0, TRAINER | $3, BEAUTY + $C8, $6
- db SPRITE_SWIMMER, $e + 4, $37 + 4, $ff, $d3, TRAINER | $4, JR__TRAINER_F + $C8, $18
- db SPRITE_SWIMMER, $d + 4, $26 + 4, $ff, $d0, TRAINER | $5, SWIMMER + $C8, $a
- db SPRITE_SWIMMER, $d + 4, $57 + 4, $ff, $d1, TRAINER | $6, SWIMMER + $C8, $b
- db SPRITE_BLACK_HAIR_BOY_1, $9 + 4, $22 + 4, $ff, $d1, TRAINER | $7, BIRD_KEEPER + $C8, $b
- db SPRITE_SWIMMER, $7 + 4, $19 + 4, $ff, $d1, TRAINER | $8, BEAUTY + $C8, $7
- db SPRITE_SWIMMER, $c + 4, $18 + 4, $ff, $d0, TRAINER | $9, JR__TRAINER_F + $C8, $10
- db SPRITE_SWIMMER, $8 + 4, $f + 4, $ff, $d1, TRAINER | $a, BEAUTY + $C8, $8
+ db $a ; objects
+ object SPRITE_SWIMMER, $57, $8, STAY, UP, $1, OPP_SWIMMER, $9
+ object SPRITE_SWIMMER, $44, $b, STAY, UP, $2, OPP_BEAUTY, $f
+ object SPRITE_SWIMMER, $2d, $a, STAY, DOWN, $3, OPP_BEAUTY, $6
+ object SPRITE_SWIMMER, $37, $e, STAY, RIGHT, $4, OPP_JR__TRAINER_F, $18
+ object SPRITE_SWIMMER, $26, $d, STAY, DOWN, $5, OPP_SWIMMER, $a
+ object SPRITE_SWIMMER, $57, $d, STAY, UP, $6, OPP_SWIMMER, $b
+ object SPRITE_BLACK_HAIR_BOY_1, $22, $9, STAY, UP, $7, OPP_BIRD_KEEPER, $b
+ object SPRITE_SWIMMER, $19, $7, STAY, UP, $8, OPP_BEAUTY, $7
+ object SPRITE_SWIMMER, $18, $c, STAY, DOWN, $9, OPP_JR__TRAINER_F, $10
+ object SPRITE_SWIMMER, $f, $8, STAY, UP, $a, OPP_BEAUTY, $8
; warp-to
EVENT_DISP ROUTE_20_WIDTH, $5, $30 ; SEAFOAM_ISLANDS_1
diff --git a/data/mapObjects/route21.asm b/data/mapObjects/route21.asm
index 6e9a044e..e98c8425 100755
--- a/data/mapObjects/route21.asm
+++ b/data/mapObjects/route21.asm
@@ -5,13 +5,13 @@ Route21Object: ; 0x55021 (size=76)
db $0 ; signs
- db $9 ; people
- db SPRITE_FISHER2, $18 + 4, $4 + 4, $ff, $d2, TRAINER | $1, FISHER + $C8, $7
- db SPRITE_FISHER2, $19 + 4, $6 + 4, $ff, $d0, TRAINER | $2, FISHER + $C8, $9
- db SPRITE_SWIMMER, $1f + 4, $a + 4, $ff, $d1, TRAINER | $3, SWIMMER + $C8, $c
- db SPRITE_SWIMMER, $1e + 4, $c + 4, $ff, $d3, TRAINER | $4, CUE_BALL + $C8, $9
- db SPRITE_SWIMMER, $3f + 4, $10 + 4, $ff, $d0, TRAINER | $5, SWIMMER + $C8, $d
- db SPRITE_SWIMMER, $47 + 4, $5 + 4, $ff, $d3, TRAINER | $6, SWIMMER + $C8, $e
- db SPRITE_SWIMMER, $47 + 4, $f + 4, $ff, $d2, TRAINER | $7, SWIMMER + $C8, $f
- db SPRITE_FISHER2, $38 + 4, $e + 4, $ff, $d2, TRAINER | $8, FISHER + $C8, $8
- db SPRITE_FISHER2, $39 + 4, $11 + 4, $ff, $d3, TRAINER | $9, FISHER + $C8, $a
+ db $9 ; objects
+ object SPRITE_FISHER2, $4, $18, STAY, LEFT, $1, OPP_FISHER, $7
+ object SPRITE_FISHER2, $6, $19, STAY, DOWN, $2, OPP_FISHER, $9
+ object SPRITE_SWIMMER, $a, $1f, STAY, UP, $3, OPP_SWIMMER, $c
+ object SPRITE_SWIMMER, $c, $1e, STAY, RIGHT, $4, OPP_CUE_BALL, $9
+ object SPRITE_SWIMMER, $10, $3f, STAY, DOWN, $5, OPP_SWIMMER, $d
+ object SPRITE_SWIMMER, $5, $47, STAY, RIGHT, $6, OPP_SWIMMER, $e
+ object SPRITE_SWIMMER, $f, $47, STAY, LEFT, $7, OPP_SWIMMER, $f
+ object SPRITE_FISHER2, $e, $38, STAY, LEFT, $8, OPP_FISHER, $8
+ object SPRITE_FISHER2, $11, $39, STAY, RIGHT, $9, OPP_FISHER, $a
diff --git a/data/mapObjects/route22.asm b/data/mapObjects/route22.asm
index ac67ed9f..999b9d8a 100755
--- a/data/mapObjects/route22.asm
+++ b/data/mapObjects/route22.asm
@@ -7,9 +7,9 @@ Route22Object: ; 0x50022 (size=27)
db $1 ; signs
db $b, $7, $3 ; Route22FrontGateText
- db $2 ; people
- db SPRITE_BLUE, $5 + 4, $19 + 4, $ff, $ff, $1 ; person
- db SPRITE_BLUE, $5 + 4, $19 + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_BLUE, $19, $5, STAY, NONE, $1 ; person
+ object SPRITE_BLUE, $19, $5, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP ROUTE_22_WIDTH, $5, $8 ; ROUTE_22_GATE
diff --git a/data/mapObjects/route22gate.asm b/data/mapObjects/route22gate.asm
index cafc47ce..604a8730 100755
--- a/data/mapObjects/route22gate.asm
+++ b/data/mapObjects/route22gate.asm
@@ -9,8 +9,8 @@ Route22GateObject: ; 0x1e720 (size=42)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $2 + 4, $6 + 4, $ff, $d2, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $6, $2, STAY, LEFT, $1 ; person
; warp-to
EVENT_DISP ROUTE_22_GATE_WIDTH, $7, $4
diff --git a/data/mapObjects/route23.asm b/data/mapObjects/route23.asm
index 15591ae1..af8c8dab 100755
--- a/data/mapObjects/route23.asm
+++ b/data/mapObjects/route23.asm
@@ -10,14 +10,14 @@ Route23Object: ; 0x50361 (size=81)
db $1 ; signs
db $21, $3, $8 ; Route23Text8
- db $7 ; people
- db SPRITE_GUARD, $23 + 4, $4 + 4, $ff, $d0, $1 ; person
- db SPRITE_GUARD, $38 + 4, $a + 4, $ff, $d0, $2 ; person
- db SPRITE_SWIMMER, $55 + 4, $8 + 4, $ff, $d0, $3 ; person
- db SPRITE_SWIMMER, $60 + 4, $b + 4, $ff, $d0, $4 ; person
- db SPRITE_GUARD, $69 + 4, $c + 4, $ff, $d0, $5 ; person
- db SPRITE_GUARD, $77 + 4, $8 + 4, $ff, $d0, $6 ; person
- db SPRITE_GUARD, $88 + 4, $8 + 4, $ff, $d0, $7 ; person
+ db $7 ; objects
+ object SPRITE_GUARD, $4, $23, STAY, DOWN, $1 ; person
+ object SPRITE_GUARD, $a, $38, STAY, DOWN, $2 ; person
+ object SPRITE_SWIMMER, $8, $55, STAY, DOWN, $3 ; person
+ object SPRITE_SWIMMER, $b, $60, STAY, DOWN, $4 ; person
+ object SPRITE_GUARD, $c, $69, STAY, DOWN, $5 ; person
+ object SPRITE_GUARD, $8, $77, STAY, DOWN, $6 ; person
+ object SPRITE_GUARD, $8, $88, STAY, DOWN, $7 ; person
; warp-to
EVENT_DISP ROUTE_23_WIDTH, $8b, $7 ; ROUTE_22_GATE
diff --git a/data/mapObjects/route24.asm b/data/mapObjects/route24.asm
index e17709ff..b61ff713 100755
--- a/data/mapObjects/route24.asm
+++ b/data/mapObjects/route24.asm
@@ -5,12 +5,12 @@ Route24Object: ; 0x506a4 (size=67)
db $0 ; signs
- db $8 ; people
- db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $b + 4, $ff, $d2, TRAINER | $1, ROCKET + $C8, $6
- db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $5 + 4, $ff, $d1, TRAINER | $2, JR__TRAINER_M + $C8, $2
- db SPRITE_BLACK_HAIR_BOY_1, $13 + 4, $b + 4, $ff, $d2, TRAINER | $3, JR__TRAINER_M + $C8, $3
- db SPRITE_LASS, $16 + 4, $a + 4, $ff, $d3, TRAINER | $4, LASS + $C8, $7
- db SPRITE_BUG_CATCHER, $19 + 4, $b + 4, $ff, $d2, TRAINER | $5, YOUNGSTER + $C8, $4
- db SPRITE_LASS, $1c + 4, $a + 4, $ff, $d3, TRAINER | $6, LASS + $C8, $8
- db SPRITE_BUG_CATCHER, $1f + 4, $b + 4, $ff, $d2, TRAINER | $7, BUG_CATCHER + $C8, $9
- db SPRITE_BALL, $5 + 4, $a + 4, $ff, $ff, ITEM | $8, TM_45
+ db $8 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, $b, $f, STAY, LEFT, $1, OPP_ROCKET, $6
+ object SPRITE_BLACK_HAIR_BOY_1, $5, $14, STAY, UP, $2, OPP_JR__TRAINER_M, $2
+ object SPRITE_BLACK_HAIR_BOY_1, $b, $13, STAY, LEFT, $3, OPP_JR__TRAINER_M, $3
+ object SPRITE_LASS, $a, $16, STAY, RIGHT, $4, OPP_LASS, $7
+ object SPRITE_BUG_CATCHER, $b, $19, STAY, LEFT, $5, OPP_YOUNGSTER, $4
+ object SPRITE_LASS, $a, $1c, STAY, RIGHT, $6, OPP_LASS, $8
+ object SPRITE_BUG_CATCHER, $b, $1f, STAY, LEFT, $7, OPP_BUG_CATCHER, $9
+ object SPRITE_BALL, $a, $5, STAY, NONE, $8, TM_45
diff --git a/data/mapObjects/route25.asm b/data/mapObjects/route25.asm
index 6b3ef029..62fa8e77 100755
--- a/data/mapObjects/route25.asm
+++ b/data/mapObjects/route25.asm
@@ -7,17 +7,17 @@ Route25Object: ; 0x507b2 (size=94)
db $1 ; signs
db $3, $2b, $b ; Route25Text11
- db $a ; people
- db SPRITE_BUG_CATCHER, $2 + 4, $e + 4, $ff, $d0, TRAINER | $1, YOUNGSTER + $C8, $5
- db SPRITE_BUG_CATCHER, $5 + 4, $12 + 4, $ff, $d1, TRAINER | $2, YOUNGSTER + $C8, $6
- db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $18 + 4, $ff, $d0, TRAINER | $3, JR__TRAINER_M + $C8, $2
- db SPRITE_LASS, $8 + 4, $12 + 4, $ff, $d3, TRAINER | $4, LASS + $C8, $9
- db SPRITE_BUG_CATCHER, $3 + 4, $20 + 4, $ff, $d2, TRAINER | $5, YOUNGSTER + $C8, $7
- db SPRITE_LASS, $4 + 4, $25 + 4, $ff, $d0, TRAINER | $6, LASS + $C8, $a
- db SPRITE_HIKER, $4 + 4, $8 + 4, $ff, $d3, TRAINER | $7, HIKER + $C8, $2
- db SPRITE_HIKER, $9 + 4, $17 + 4, $ff, $d1, TRAINER | $8, HIKER + $C8, $3
- db SPRITE_HIKER, $7 + 4, $d + 4, $ff, $d3, TRAINER | $9, HIKER + $C8, $4
- db SPRITE_BALL, $2 + 4, $16 + 4, $ff, $ff, ITEM | $a, TM_19
+ db $a ; objects
+ object SPRITE_BUG_CATCHER, $e, $2, STAY, DOWN, $1, OPP_YOUNGSTER, $5
+ object SPRITE_BUG_CATCHER, $12, $5, STAY, UP, $2, OPP_YOUNGSTER, $6
+ object SPRITE_BLACK_HAIR_BOY_1, $18, $4, STAY, DOWN, $3, OPP_JR__TRAINER_M, $2
+ object SPRITE_LASS, $12, $8, STAY, RIGHT, $4, OPP_LASS, $9
+ object SPRITE_BUG_CATCHER, $20, $3, STAY, LEFT, $5, OPP_YOUNGSTER, $7
+ object SPRITE_LASS, $25, $4, STAY, DOWN, $6, OPP_LASS, $a
+ object SPRITE_HIKER, $8, $4, STAY, RIGHT, $7, OPP_HIKER, $2
+ object SPRITE_HIKER, $17, $9, STAY, UP, $8, OPP_HIKER, $3
+ object SPRITE_HIKER, $d, $7, STAY, RIGHT, $9, OPP_HIKER, $4
+ object SPRITE_BALL, $16, $2, STAY, NONE, $a, TM_19
; warp-to
EVENT_DISP ROUTE_25_WIDTH, $3, $2d ; BILLS_HOUSE
diff --git a/data/mapObjects/route2gate.asm b/data/mapObjects/route2gate.asm
index a1bcc687..9a0b79e0 100755
--- a/data/mapObjects/route2gate.asm
+++ b/data/mapObjects/route2gate.asm
@@ -9,9 +9,9 @@ Route2GateObject: ; 0x5d620 (size=48)
db $0 ; signs
- db $2 ; people
- db SPRITE_OAK_AIDE, $4 + 4, $1 + 4, $ff, $d2, $1 ; person
- db SPRITE_BUG_CATCHER, $4 + 4, $5 + 4, $fe, $2, $2 ; person
+ db $2 ; objects
+ object SPRITE_OAK_AIDE, $1, $4, STAY, LEFT, $1 ; person
+ object SPRITE_BUG_CATCHER, $5, $4, WALK, $2, $2 ; person
; warp-to
EVENT_DISP ROUTE_2_GATE_WIDTH, $0, $4
diff --git a/data/mapObjects/route2house.asm b/data/mapObjects/route2house.asm
index 26adfcf4..b8d6d20f 100755
--- a/data/mapObjects/route2house.asm
+++ b/data/mapObjects/route2house.asm
@@ -7,9 +7,9 @@ Route2HouseObject: ; 0x1df07 (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_OAK_AIDE, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
- db SPRITE_GAMEBOY_KID_COPY, $1 + 4, $4 + 4, $ff, $d0, $2 ; person
+ db $2 ; objects
+ object SPRITE_OAK_AIDE, $2, $4, STAY, RIGHT, $1 ; person
+ object SPRITE_GAMEBOY_KID_COPY, $4, $1, STAY, DOWN, $2 ; person
; warp-to
EVENT_DISP ROUTE_2_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/route3.asm b/data/mapObjects/route3.asm
index 99de3d73..a2df6925 100755
--- a/data/mapObjects/route3.asm
+++ b/data/mapObjects/route3.asm
@@ -6,13 +6,13 @@ Route3Object: ; 0x54208 (size=77)
db $1 ; signs
db $9, $3b, $a ; Route3Text10
- db $9 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $39 + 4, $ff, $ff, $1 ; person
- db SPRITE_BUG_CATCHER, $6 + 4, $a + 4, $ff, $d3, TRAINER | $2, BUG_CATCHER + $C8, $4
- db SPRITE_BUG_CATCHER, $4 + 4, $e + 4, $ff, $d0, TRAINER | $3, YOUNGSTER + $C8, $1
- db SPRITE_LASS, $9 + 4, $10 + 4, $ff, $d2, TRAINER | $4, LASS + $C8, $1
- db SPRITE_BUG_CATCHER, $5 + 4, $13 + 4, $ff, $d0, TRAINER | $5, BUG_CATCHER + $C8, $5
- db SPRITE_LASS, $4 + 4, $17 + 4, $ff, $d2, TRAINER | $6, LASS + $C8, $2
- db SPRITE_BUG_CATCHER, $9 + 4, $16 + 4, $ff, $d2, TRAINER | $7, YOUNGSTER + $C8, $2
- db SPRITE_BUG_CATCHER, $6 + 4, $18 + 4, $ff, $d3, TRAINER | $8, BUG_CATCHER + $C8, $6
- db SPRITE_LASS, $a + 4, $21 + 4, $ff, $d1, TRAINER | $9, LASS + $C8, $3
+ db $9 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $39, $b, STAY, NONE, $1 ; person
+ object SPRITE_BUG_CATCHER, $a, $6, STAY, RIGHT, $2, OPP_BUG_CATCHER, $4
+ object SPRITE_BUG_CATCHER, $e, $4, STAY, DOWN, $3, OPP_YOUNGSTER, $1
+ object SPRITE_LASS, $10, $9, STAY, LEFT, $4, OPP_LASS, $1
+ object SPRITE_BUG_CATCHER, $13, $5, STAY, DOWN, $5, OPP_BUG_CATCHER, $5
+ object SPRITE_LASS, $17, $4, STAY, LEFT, $6, OPP_LASS, $2
+ object SPRITE_BUG_CATCHER, $16, $9, STAY, LEFT, $7, OPP_YOUNGSTER, $2
+ object SPRITE_BUG_CATCHER, $18, $6, STAY, RIGHT, $8, OPP_BUG_CATCHER, $6
+ object SPRITE_LASS, $21, $a, STAY, UP, $9, OPP_LASS, $3
diff --git a/data/mapObjects/route4.asm b/data/mapObjects/route4.asm
index 57b81ee2..14e59684 100755
--- a/data/mapObjects/route4.asm
+++ b/data/mapObjects/route4.asm
@@ -11,10 +11,10 @@ Route4Object: ; 0x543b2 (size=58)
db $7, $11, $5 ; Route4Text5
db $7, $1b, $6 ; Route4Text6
- db $3 ; people
- db SPRITE_LASS, $8 + 4, $9 + 4, $fe, $0, $1 ; person
- db SPRITE_LASS, $3 + 4, $3f + 4, $ff, $d3, TRAINER | $2, LASS + $C8, $4
- db SPRITE_BALL, $3 + 4, $39 + 4, $ff, $ff, ITEM | $3, TM_04
+ db $3 ; objects
+ object SPRITE_LASS, $9, $8, WALK, $0, $1 ; person
+ object SPRITE_LASS, $3f, $3, STAY, RIGHT, $2, OPP_LASS, $4
+ object SPRITE_BALL, $39, $3, STAY, NONE, $3, TM_04
; warp-to
EVENT_DISP ROUTE_4_WIDTH, $5, $b ; MT_MOON_POKECENTER
diff --git a/data/mapObjects/route5.asm b/data/mapObjects/route5.asm
index c7481faa..d11f8417 100755
--- a/data/mapObjects/route5.asm
+++ b/data/mapObjects/route5.asm
@@ -11,7 +11,7 @@ Route5Object: ; 0x545a3 (size=47)
db $1 ; signs
db $1d, $11, $1 ; Route5Text1
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP ROUTE_5_WIDTH, $1d, $a ; ROUTE_5_GATE
diff --git a/data/mapObjects/route5gate.asm b/data/mapObjects/route5gate.asm
index f71e3e64..db2f4564 100755
--- a/data/mapObjects/route5gate.asm
+++ b/data/mapObjects/route5gate.asm
@@ -9,8 +9,8 @@ Route5GateObject: ; 0x1dffb (size=42)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $3 + 4, $1 + 4, $ff, $d3, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $1, $3, STAY, RIGHT, $1 ; person
; warp-to
EVENT_DISP ROUTE_5_GATE_WIDTH, $5, $3
diff --git a/data/mapObjects/route6.asm b/data/mapObjects/route6.asm
index b804f0d5..d901e865 100755
--- a/data/mapObjects/route6.asm
+++ b/data/mapObjects/route6.asm
@@ -10,13 +10,13 @@ Route6Object: ; 0x58022 (size=87)
db $1 ; signs
db $f, $13, $7 ; Route6Text7
- db $6 ; people
- db SPRITE_BLACK_HAIR_BOY_1, $15 + 4, $a + 4, $ff, $d3, TRAINER | $1, JR__TRAINER_M + $C8, $4
- db SPRITE_LASS, $15 + 4, $b + 4, $ff, $d2, TRAINER | $2, JR__TRAINER_F + $C8, $2
- db SPRITE_BUG_CATCHER, $f + 4, $0 + 4, $ff, $d3, TRAINER | $3, BUG_CATCHER + $C8, $a
- db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $b + 4, $ff, $d2, TRAINER | $4, JR__TRAINER_M + $C8, $5
- db SPRITE_LASS, $1e + 4, $b + 4, $ff, $d2, TRAINER | $5, JR__TRAINER_F + $C8, $3
- db SPRITE_BUG_CATCHER, $1a + 4, $13 + 4, $ff, $d2, TRAINER | $6, BUG_CATCHER + $C8, $b
+ db $6 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, $a, $15, STAY, RIGHT, $1, OPP_JR__TRAINER_M, $4
+ object SPRITE_LASS, $b, $15, STAY, LEFT, $2, OPP_JR__TRAINER_F, $2
+ object SPRITE_BUG_CATCHER, $0, $f, STAY, RIGHT, $3, OPP_BUG_CATCHER, $a
+ object SPRITE_BLACK_HAIR_BOY_1, $b, $1f, STAY, LEFT, $4, OPP_JR__TRAINER_M, $5
+ object SPRITE_LASS, $b, $1e, STAY, LEFT, $5, OPP_JR__TRAINER_F, $3
+ object SPRITE_BUG_CATCHER, $13, $1a, STAY, LEFT, $6, OPP_BUG_CATCHER, $b
; warp-to
EVENT_DISP ROUTE_6_WIDTH, $1, $9 ; ROUTE_6_GATE
diff --git a/data/mapObjects/route6gate.asm b/data/mapObjects/route6gate.asm
index 068b1cc3..59d08e57 100755
--- a/data/mapObjects/route6gate.asm
+++ b/data/mapObjects/route6gate.asm
@@ -9,8 +9,8 @@ Route6GateObject: ; 0x1e0be (size=42)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $2 + 4, $6 + 4, $ff, $d2, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $6, $2, STAY, LEFT, $1 ; person
; warp-to
EVENT_DISP ROUTE_6_GATE_WIDTH, $5, $3
diff --git a/data/mapObjects/route7.asm b/data/mapObjects/route7.asm
index 43425a11..485a8694 100755
--- a/data/mapObjects/route7.asm
+++ b/data/mapObjects/route7.asm
@@ -11,7 +11,7 @@ Route7Object: ; 0x48022 (size=47)
db $1 ; signs
db $d, $3, $1 ; Route7Text1
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP ROUTE_7_WIDTH, $9, $12 ; ROUTE_7_GATE
diff --git a/data/mapObjects/route7gate.asm b/data/mapObjects/route7gate.asm
index 752b53f9..8c618fc1 100755
--- a/data/mapObjects/route7gate.asm
+++ b/data/mapObjects/route7gate.asm
@@ -9,8 +9,8 @@ Route7GateObject: ; 0x1e185 (size=42)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $3, $1, STAY, DOWN, $1 ; person
; warp-to
EVENT_DISP ROUTE_7_GATE_WIDTH, $3, $0
diff --git a/data/mapObjects/route8.asm b/data/mapObjects/route8.asm
index 2662adcd..5863129b 100755
--- a/data/mapObjects/route8.asm
+++ b/data/mapObjects/route8.asm
@@ -11,16 +11,16 @@ Route8Object: ; 0x5814f (size=119)
db $1 ; signs
db $3, $11, $a ; Route8Text10
- db $9 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $8 + 4, $ff, $d3, TRAINER | $1, SUPER_NERD + $C8, $3
- db SPRITE_GAMBLER, $9 + 4, $d + 4, $ff, $d1, TRAINER | $2, GAMBLER + $C8, $5
- db SPRITE_BLACK_HAIR_BOY_2, $6 + 4, $2a + 4, $ff, $d1, TRAINER | $3, SUPER_NERD + $C8, $4
- db SPRITE_LASS, $3 + 4, $1a + 4, $ff, $d2, TRAINER | $4, LASS + $C8, $d
- db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $1a + 4, $ff, $d3, TRAINER | $5, SUPER_NERD + $C8, $5
- db SPRITE_LASS, $5 + 4, $1a + 4, $ff, $d2, TRAINER | $6, LASS + $C8, $e
- db SPRITE_LASS, $6 + 4, $1a + 4, $ff, $d3, TRAINER | $7, LASS + $C8, $f
- db SPRITE_GAMBLER, $d + 4, $2e + 4, $ff, $d0, TRAINER | $8, GAMBLER + $C8, $7
- db SPRITE_LASS, $c + 4, $33 + 4, $ff, $d2, TRAINER | $9, LASS + $C8, $10
+ db $9 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $8, $5, STAY, RIGHT, $1, OPP_SUPER_NERD, $3
+ object SPRITE_GAMBLER, $d, $9, STAY, UP, $2, OPP_GAMBLER, $5
+ object SPRITE_BLACK_HAIR_BOY_2, $2a, $6, STAY, UP, $3, OPP_SUPER_NERD, $4
+ object SPRITE_LASS, $1a, $3, STAY, LEFT, $4, OPP_LASS, $d
+ object SPRITE_BLACK_HAIR_BOY_2, $1a, $4, STAY, RIGHT, $5, OPP_SUPER_NERD, $5
+ object SPRITE_LASS, $1a, $5, STAY, LEFT, $6, OPP_LASS, $e
+ object SPRITE_LASS, $1a, $6, STAY, RIGHT, $7, OPP_LASS, $f
+ object SPRITE_GAMBLER, $2e, $d, STAY, DOWN, $8, OPP_GAMBLER, $7
+ object SPRITE_LASS, $33, $c, STAY, LEFT, $9, OPP_LASS, $10
; warp-to
EVENT_DISP ROUTE_8_WIDTH, $9, $1 ; ROUTE_8_GATE
diff --git a/data/mapObjects/route8gate.asm b/data/mapObjects/route8gate.asm
index c38eed26..8c3fb54f 100755
--- a/data/mapObjects/route8gate.asm
+++ b/data/mapObjects/route8gate.asm
@@ -9,8 +9,8 @@ Route8GateObject: ; 0x1e247 (size=42)
db $0 ; signs
- db $1 ; people
- db SPRITE_GUARD, $1 + 4, $2 + 4, $ff, $d0, $1 ; person
+ db $1 ; objects
+ object SPRITE_GUARD, $2, $1, STAY, DOWN, $1 ; person
; warp-to
EVENT_DISP ROUTE_8_GATE_WIDTH, $3, $0
diff --git a/data/mapObjects/route9.asm b/data/mapObjects/route9.asm
index 32b89db4..a70b208f 100755
--- a/data/mapObjects/route9.asm
+++ b/data/mapObjects/route9.asm
@@ -6,14 +6,14 @@ Route9Object: ; 0x546a8 (size=86)
db $1 ; signs
db $7, $19, $b ; Route9Text11
- db $a ; people
- db SPRITE_LASS, $a + 4, $d + 4, $ff, $d2, TRAINER | $1, JR__TRAINER_F + $C8, $5
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $18 + 4, $ff, $d2, TRAINER | $2, JR__TRAINER_M + $C8, $7
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $1f + 4, $ff, $d3, TRAINER | $3, JR__TRAINER_M + $C8, $8
- db SPRITE_LASS, $8 + 4, $30 + 4, $ff, $d3, TRAINER | $4, JR__TRAINER_F + $C8, $6
- db SPRITE_HIKER, $f + 4, $10 + 4, $ff, $d2, TRAINER | $5, HIKER + $C8, $b
- db SPRITE_HIKER, $3 + 4, $2b + 4, $ff, $d2, TRAINER | $6, HIKER + $C8, $6
- db SPRITE_BUG_CATCHER, $2 + 4, $16 + 4, $ff, $d0, TRAINER | $7, BUG_CATCHER + $C8, $d
- db SPRITE_HIKER, $f + 4, $2d + 4, $ff, $d3, TRAINER | $8, HIKER + $C8, $5
- db SPRITE_BUG_CATCHER, $8 + 4, $28 + 4, $ff, $d3, TRAINER | $9, BUG_CATCHER + $C8, $e
- db SPRITE_BALL, $f + 4, $a + 4, $ff, $ff, ITEM | $a, TM_30
+ db $a ; objects
+ object SPRITE_LASS, $d, $a, STAY, LEFT, $1, OPP_JR__TRAINER_F, $5
+ object SPRITE_BLACK_HAIR_BOY_1, $18, $7, STAY, LEFT, $2, OPP_JR__TRAINER_M, $7
+ object SPRITE_BLACK_HAIR_BOY_1, $1f, $7, STAY, RIGHT, $3, OPP_JR__TRAINER_M, $8
+ object SPRITE_LASS, $30, $8, STAY, RIGHT, $4, OPP_JR__TRAINER_F, $6
+ object SPRITE_HIKER, $10, $f, STAY, LEFT, $5, OPP_HIKER, $b
+ object SPRITE_HIKER, $2b, $3, STAY, LEFT, $6, OPP_HIKER, $6
+ object SPRITE_BUG_CATCHER, $16, $2, STAY, DOWN, $7, OPP_BUG_CATCHER, $d
+ object SPRITE_HIKER, $2d, $f, STAY, RIGHT, $8, OPP_HIKER, $5
+ object SPRITE_BUG_CATCHER, $28, $8, STAY, RIGHT, $9, OPP_BUG_CATCHER, $e
+ object SPRITE_BALL, $a, $f, STAY, NONE, $a, TM_30
diff --git a/data/mapObjects/safarizonecenter.asm b/data/mapObjects/safarizonecenter.asm
index 8cb07350..41886e9f 100755
--- a/data/mapObjects/safarizonecenter.asm
+++ b/data/mapObjects/safarizonecenter.asm
@@ -16,8 +16,8 @@ SafariZoneCenterObject: ; 0x45bc5 (size=89)
db $14, $12, $2 ; SafariZoneCenterText2
db $16, $e, $3 ; SafariZoneCenterText3
- db $1 ; people
- db SPRITE_BALL, $a + 4, $e + 4, $ff, $ff, ITEM | $1, NUGGET
+ db $1 ; objects
+ object SPRITE_BALL, $e, $a, STAY, NONE, $1, NUGGET
; warp-to
EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $19, $e ; SAFARI_ZONE_ENTRANCE
diff --git a/data/mapObjects/safarizoneeast.asm b/data/mapObjects/safarizoneeast.asm
index 26aa1cc1..4cb1e0ae 100755
--- a/data/mapObjects/safarizoneeast.asm
+++ b/data/mapObjects/safarizoneeast.asm
@@ -13,11 +13,11 @@ SafariZoneEastObject: ; 0x4588b (size=81)
db $4, $6, $6 ; SafariZoneEastText6
db $17, $5, $7 ; SafariZoneEastText7
- db $4 ; people
- db SPRITE_BALL, $a + 4, $15 + 4, $ff, $ff, ITEM | $1, FULL_RESTORE
- db SPRITE_BALL, $7 + 4, $3 + 4, $ff, $ff, ITEM | $2, MAX_POTION
- db SPRITE_BALL, $d + 4, $14 + 4, $ff, $ff, ITEM | $3, CARBOS
- db SPRITE_BALL, $c + 4, $f + 4, $ff, $ff, ITEM | $4, TM_37
+ db $4 ; objects
+ object SPRITE_BALL, $15, $a, STAY, NONE, $1, FULL_RESTORE
+ object SPRITE_BALL, $3, $7, STAY, NONE, $2, MAX_POTION
+ object SPRITE_BALL, $14, $d, STAY, NONE, $3, CARBOS
+ object SPRITE_BALL, $f, $c, STAY, NONE, $4, TM_37
; warp-to
EVENT_DISP SAFARI_ZONE_EAST_WIDTH, $4, $0 ; SAFARI_ZONE_NORTH
diff --git a/data/mapObjects/safarizoneentrance.asm b/data/mapObjects/safarizoneentrance.asm
index c252109c..543cf7dc 100755
--- a/data/mapObjects/safarizoneentrance.asm
+++ b/data/mapObjects/safarizoneentrance.asm
@@ -9,9 +9,9 @@ SafariZoneEntranceObject: ; 0x753f5 (size=48)
db $0 ; signs
- db $2 ; people
- db SPRITE_WHITE_PLAYER, $2 + 4, $6 + 4, $ff, $d2, $1 ; person
- db SPRITE_WHITE_PLAYER, $4 + 4, $1 + 4, $ff, $d3, $2 ; person
+ db $2 ; objects
+ object SPRITE_WHITE_PLAYER, $6, $2, STAY, LEFT, $1 ; person
+ object SPRITE_WHITE_PLAYER, $1, $4, STAY, RIGHT, $2 ; person
; warp-to
EVENT_DISP SAFARI_ZONE_ENTRANCE_WIDTH, $5, $3
diff --git a/data/mapObjects/safarizonenorth.asm b/data/mapObjects/safarizonenorth.asm
index 8c7a94f5..e3c4cddb 100755
--- a/data/mapObjects/safarizonenorth.asm
+++ b/data/mapObjects/safarizonenorth.asm
@@ -19,9 +19,9 @@ SafariZoneNorthObject: ; 0x459d5 (size=105)
db $21, $13, $6 ; SafariZoneNorthText6
db $1c, $1a, $7 ; SafariZoneNorthText7
- db $2 ; people
- db SPRITE_BALL, $1 + 4, $19 + 4, $ff, $ff, ITEM | $1, PROTEIN
- db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, ITEM | $2, TM_40
+ db $2 ; objects
+ object SPRITE_BALL, $19, $1, STAY, NONE, $1, PROTEIN
+ object SPRITE_BALL, $13, $7, STAY, NONE, $2, TM_40
; warp-to
EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $23, $2 ; SAFARI_ZONE_WEST
diff --git a/data/mapObjects/safarizoneresthouse1.asm b/data/mapObjects/safarizoneresthouse1.asm
index 492f8f38..d27a967f 100755
--- a/data/mapObjects/safarizoneresthouse1.asm
+++ b/data/mapObjects/safarizoneresthouse1.asm
@@ -7,9 +7,9 @@ SafariZoneRestHouse1Object: ; 0x45cfe (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_GIRL, $2 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_OAK_AIDE, $4 + 4, $1 + 4, $fe, $1, $2 ; person
+ db $2 ; objects
+ object SPRITE_GIRL, $3, $2, STAY, DOWN, $1 ; person
+ object SPRITE_OAK_AIDE, $1, $4, WALK, $1, $2 ; person
; warp-to
EVENT_DISP SAFARI_ZONE_REST_HOUSE_1_WIDTH, $7, $2 ; SAFARI_ZONE_CENTER
diff --git a/data/mapObjects/safarizoneresthouse2.asm b/data/mapObjects/safarizoneresthouse2.asm
index f6918eed..eb6c7a25 100755
--- a/data/mapObjects/safarizoneresthouse2.asm
+++ b/data/mapObjects/safarizoneresthouse2.asm
@@ -7,10 +7,10 @@ SafariZoneRestHouse2Object: ; 0x45d43 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_OAK_AIDE, $4 + 4, $4 + 4, $fe, $0, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $0 + 4, $ff, $d3, $2 ; person
- db SPRITE_ERIKA, $2 + 4, $6 + 4, $ff, $d0, $3 ; person
+ db $3 ; objects
+ object SPRITE_OAK_AIDE, $4, $4, WALK, $0, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $0, $2, STAY, RIGHT, $2 ; person
+ object SPRITE_ERIKA, $6, $2, STAY, DOWN, $3 ; person
; warp-to
EVENT_DISP SAFARI_ZONE_REST_HOUSE_2_WIDTH, $7, $2 ; SAFARI_ZONE_WEST
diff --git a/data/mapObjects/safarizoneresthouse3.asm b/data/mapObjects/safarizoneresthouse3.asm
index 70365365..4d698782 100755
--- a/data/mapObjects/safarizoneresthouse3.asm
+++ b/data/mapObjects/safarizoneresthouse3.asm
@@ -7,10 +7,10 @@ SafariZoneRestHouse3Object: ; 0x45d8e (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_OAK_AIDE, $3 + 4, $1 + 4, $fe, $1, $1 ; person
- db SPRITE_ROCKER, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
- db SPRITE_LAPRAS_GIVER, $2 + 4, $5 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_OAK_AIDE, $1, $3, WALK, $1, $1 ; person
+ object SPRITE_ROCKER, $4, $2, STAY, NONE, $2 ; person
+ object SPRITE_LAPRAS_GIVER, $5, $2, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP SAFARI_ZONE_REST_HOUSE_3_WIDTH, $7, $2 ; SAFARI_ZONE_EAST
diff --git a/data/mapObjects/safarizoneresthouse4.asm b/data/mapObjects/safarizoneresthouse4.asm
index 53beef42..1d928420 100755
--- a/data/mapObjects/safarizoneresthouse4.asm
+++ b/data/mapObjects/safarizoneresthouse4.asm
@@ -7,10 +7,10 @@ SafariZoneRestHouse4Object: ; 0x45dd9 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_OAK_AIDE, $3 + 4, $6 + 4, $fe, $2, $1 ; person
- db SPRITE_WHITE_PLAYER, $4 + 4, $3 + 4, $ff, $ff, $2 ; person
- db SPRITE_GENTLEMAN, $5 + 4, $1 + 4, $fe, $1, $3 ; person
+ db $3 ; objects
+ object SPRITE_OAK_AIDE, $6, $3, WALK, $2, $1 ; person
+ object SPRITE_WHITE_PLAYER, $3, $4, STAY, NONE, $2 ; person
+ object SPRITE_GENTLEMAN, $1, $5, WALK, $1, $3 ; person
; warp-to
EVENT_DISP SAFARI_ZONE_REST_HOUSE_4_WIDTH, $7, $2 ; SAFARI_ZONE_NORTH
diff --git a/data/mapObjects/safarizonesecrethouse.asm b/data/mapObjects/safarizonesecrethouse.asm
index 79032c70..471ec40b 100755
--- a/data/mapObjects/safarizonesecrethouse.asm
+++ b/data/mapObjects/safarizonesecrethouse.asm
@@ -7,8 +7,8 @@ SafariZoneSecretHouseObject: ; 0x4a365 (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_FISHER, $3 + 4, $3 + 4, $ff, $d0, $1 ; person
+ db $1 ; objects
+ object SPRITE_FISHER, $3, $3, STAY, DOWN, $1 ; person
; warp-to
EVENT_DISP SAFARI_ZONE_SECRET_HOUSE_WIDTH, $7, $2 ; SAFARI_ZONE_WEST
diff --git a/data/mapObjects/safarizonewest.asm b/data/mapObjects/safarizonewest.asm
index 4bfc7a4d..724476ae 100755
--- a/data/mapObjects/safarizonewest.asm
+++ b/data/mapObjects/safarizonewest.asm
@@ -17,11 +17,11 @@ SafariZoneWestObject: ; 0x4a1dc (size=108)
db $4, $1a, $7 ; SafariZoneWestText7
db $16, $18, $8 ; SafariZoneWestText8
- db $4 ; people
- db SPRITE_BALL, $14 + 4, $8 + 4, $ff, $ff, ITEM | $1, MAX_POTION
- db SPRITE_BALL, $7 + 4, $9 + 4, $ff, $ff, ITEM | $2, TM_32
- db SPRITE_BALL, $12 + 4, $12 + 4, $ff, $ff, ITEM | $3, MAX_REVIVE
- db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, ITEM | $4, GOLD_TEETH
+ db $4 ; objects
+ object SPRITE_BALL, $8, $14, STAY, NONE, $1, MAX_POTION
+ object SPRITE_BALL, $9, $7, STAY, NONE, $2, TM_32
+ object SPRITE_BALL, $12, $12, STAY, NONE, $3, MAX_REVIVE
+ object SPRITE_BALL, $13, $7, STAY, NONE, $4, GOLD_TEETH
; warp-to
EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $0, $14 ; SAFARI_ZONE_NORTH
diff --git a/data/mapObjects/saffroncity.asm b/data/mapObjects/saffroncity.asm
index 5ec54aff..69e76ee7 100755
--- a/data/mapObjects/saffroncity.asm
+++ b/data/mapObjects/saffroncity.asm
@@ -23,22 +23,22 @@ SaffronCityObject: ; 0x509dc (size=188)
db $1d, $1b, $18 ; SaffronCityText24
db $13, $1, $19 ; SaffronCityText25
- db $f ; people
- db SPRITE_ROCKET, $6 + 4, $7 + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $8 + 4, $14 + 4, $fe, $2, $2 ; person
- db SPRITE_ROCKET, $4 + 4, $22 + 4, $ff, $ff, $3 ; person
- db SPRITE_ROCKET, $c + 4, $d + 4, $ff, $ff, $4 ; person
- db SPRITE_ROCKET, $19 + 4, $b + 4, $fe, $2, $5 ; person
- db SPRITE_ROCKET, $d + 4, $20 + 4, $fe, $2, $6 ; person
- db SPRITE_ROCKET, $1e + 4, $12 + 4, $fe, $2, $7 ; person
- db SPRITE_OAK_AIDE, $e + 4, $8 + 4, $fe, $0, $8 ; person
- db SPRITE_LAPRAS_GIVER, $17 + 4, $17 + 4, $ff, $ff, $9 ; person
- db SPRITE_ERIKA, $1e + 4, $11 + 4, $fe, $2, $a ; person
- db SPRITE_GENTLEMAN, $c + 4, $1e + 4, $ff, $d0, $b ; person
- db SPRITE_BIRD, $c + 4, $1f + 4, $ff, $d0, $c ; person
- db SPRITE_ROCKER, $8 + 4, $12 + 4, $ff, $d1, $d ; person
- db SPRITE_ROCKET, $16 + 4, $12 + 4, $ff, $d0, $e ; person
- db SPRITE_ROCKET, $16 + 4, $13 + 4, $ff, $d0, $f ; person
+ db $f ; objects
+ object SPRITE_ROCKET, $7, $6, STAY, NONE, $1 ; person
+ object SPRITE_ROCKET, $14, $8, WALK, $2, $2 ; person
+ object SPRITE_ROCKET, $22, $4, STAY, NONE, $3 ; person
+ object SPRITE_ROCKET, $d, $c, STAY, NONE, $4 ; person
+ object SPRITE_ROCKET, $b, $19, WALK, $2, $5 ; person
+ object SPRITE_ROCKET, $20, $d, WALK, $2, $6 ; person
+ object SPRITE_ROCKET, $12, $1e, WALK, $2, $7 ; person
+ object SPRITE_OAK_AIDE, $8, $e, WALK, $0, $8 ; person
+ object SPRITE_LAPRAS_GIVER, $17, $17, STAY, NONE, $9 ; person
+ object SPRITE_ERIKA, $11, $1e, WALK, $2, $a ; person
+ object SPRITE_GENTLEMAN, $1e, $c, STAY, DOWN, $b ; person
+ object SPRITE_BIRD, $1f, $c, STAY, DOWN, $c ; person
+ object SPRITE_ROCKER, $12, $8, STAY, UP, $d ; person
+ object SPRITE_ROCKET, $12, $16, STAY, DOWN, $e ; person
+ object SPRITE_ROCKET, $13, $16, STAY, DOWN, $f ; person
; warp-to
EVENT_DISP SAFFRON_CITY_WIDTH, $5, $7 ; COPYCATS_HOUSE_1F
diff --git a/data/mapObjects/saffrongym.asm b/data/mapObjects/saffrongym.asm
index eb85a89f..63676905 100755
--- a/data/mapObjects/saffrongym.asm
+++ b/data/mapObjects/saffrongym.asm
@@ -37,16 +37,16 @@ SaffronGymObject: ; 0x5d259 (size=330)
db $0 ; signs
- db $9 ; people
- db SPRITE_GIRL, $8 + 4, $9 + 4, $ff, $d0, TRAINER | $1, SABRINA + $C8, $1
- db SPRITE_MEDIUM, $1 + 4, $a + 4, $ff, $d0, TRAINER | $2, CHANNELER + $C8, $16
- db SPRITE_BUG_CATCHER, $1 + 4, $11 + 4, $ff, $d0, TRAINER | $3, PSYCHIC_TR + $C8, $1
- db SPRITE_MEDIUM, $7 + 4, $3 + 4, $ff, $d0, TRAINER | $4, CHANNELER + $C8, $17
- db SPRITE_BUG_CATCHER, $7 + 4, $11 + 4, $ff, $d0, TRAINER | $5, PSYCHIC_TR + $C8, $2
- db SPRITE_MEDIUM, $d + 4, $3 + 4, $ff, $d0, TRAINER | $6, CHANNELER + $C8, $18
- db SPRITE_BUG_CATCHER, $d + 4, $11 + 4, $ff, $d0, TRAINER | $7, PSYCHIC_TR + $C8, $3
- db SPRITE_BUG_CATCHER, $1 + 4, $3 + 4, $ff, $d0, TRAINER | $8, PSYCHIC_TR + $C8, $4
- db SPRITE_GYM_HELPER, $f + 4, $a + 4, $ff, $d0, $9 ; person
+ db $9 ; objects
+ object SPRITE_GIRL, $9, $8, STAY, DOWN, $1, OPP_SABRINA, $1
+ object SPRITE_MEDIUM, $a, $1, STAY, DOWN, $2, OPP_CHANNELER, $16
+ object SPRITE_BUG_CATCHER, $11, $1, STAY, DOWN, $3, OPP_PSYCHIC_TR, $1
+ object SPRITE_MEDIUM, $3, $7, STAY, DOWN, $4, OPP_CHANNELER, $17
+ object SPRITE_BUG_CATCHER, $11, $7, STAY, DOWN, $5, OPP_PSYCHIC_TR, $2
+ object SPRITE_MEDIUM, $3, $d, STAY, DOWN, $6, OPP_CHANNELER, $18
+ object SPRITE_BUG_CATCHER, $11, $d, STAY, DOWN, $7, OPP_PSYCHIC_TR, $3
+ object SPRITE_BUG_CATCHER, $3, $1, STAY, DOWN, $8, OPP_PSYCHIC_TR, $4
+ object SPRITE_GYM_HELPER, $a, $f, STAY, DOWN, $9 ; person
; warp-to
EVENT_DISP SAFFRON_GYM_WIDTH, $11, $8
diff --git a/data/mapObjects/saffronhouse1.asm b/data/mapObjects/saffronhouse1.asm
index 991caa7d..0480cbd9 100755
--- a/data/mapObjects/saffronhouse1.asm
+++ b/data/mapObjects/saffronhouse1.asm
@@ -7,11 +7,11 @@ SaffronHouse1Object: ; 0x1de04 (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_BRUNETTE_GIRL, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
- db SPRITE_BIRD, $4 + 4, $0 + 4, $fe, $1, $2 ; person
- db SPRITE_BUG_CATCHER, $1 + 4, $4 + 4, $ff, $d0, $3 ; person
- db SPRITE_PAPER_SHEET, $3 + 4, $3 + 4, $ff, $ff, $4 ; person
+ db $4 ; objects
+ object SPRITE_BRUNETTE_GIRL, $2, $3, STAY, RIGHT, $1 ; person
+ object SPRITE_BIRD, $0, $4, WALK, $1, $2 ; person
+ object SPRITE_BUG_CATCHER, $4, $1, STAY, DOWN, $3 ; person
+ object SPRITE_PAPER_SHEET, $3, $3, STAY, NONE, $4 ; person
; warp-to
EVENT_DISP SAFFRON_HOUSE_1_WIDTH, $7, $2
diff --git a/data/mapObjects/saffronhouse2.asm b/data/mapObjects/saffronhouse2.asm
index e9b68e7c..ffcbd64d 100755
--- a/data/mapObjects/saffronhouse2.asm
+++ b/data/mapObjects/saffronhouse2.asm
@@ -7,8 +7,8 @@ SaffronHouse2Object: ; 0x1de8a (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_FISHER, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
+ db $1 ; objects
+ object SPRITE_FISHER, $5, $3, STAY, LEFT, $1 ; person
; warp-to
EVENT_DISP SAFFRON_HOUSE_2_WIDTH, $7, $2
diff --git a/data/mapObjects/saffronmart.asm b/data/mapObjects/saffronmart.asm
index 30951c12..be3803af 100755
--- a/data/mapObjects/saffronmart.asm
+++ b/data/mapObjects/saffronmart.asm
@@ -7,10 +7,10 @@ SaffronMartObject: ; 0x5d41c (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
- db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $0, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, $4, $2, STAY, NONE, $2 ; person
+ object SPRITE_LASS, $6, $5, WALK, $0, $3 ; person
; warp-to
EVENT_DISP SAFFRON_MART_WIDTH, $7, $3
diff --git a/data/mapObjects/saffronpokecenter.asm b/data/mapObjects/saffronpokecenter.asm
index 251aeea5..8487bb01 100755
--- a/data/mapObjects/saffronpokecenter.asm
+++ b/data/mapObjects/saffronpokecenter.asm
@@ -7,11 +7,11 @@ SaffronPokecenterObject: ; 0x5d54f (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_FOULARD_WOMAN, $5 + 4, $5 + 4, $ff, $ff, $2 ; person
- db SPRITE_GENTLEMAN, $3 + 4, $8 + 4, $ff, $d0, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_FOULARD_WOMAN, $5, $5, STAY, NONE, $2 ; person
+ object SPRITE_GENTLEMAN, $8, $3, STAY, DOWN, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP SAFFRON_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/school.asm b/data/mapObjects/school.asm
index c26844a4..b60be6c0 100755
--- a/data/mapObjects/school.asm
+++ b/data/mapObjects/school.asm
@@ -7,9 +7,9 @@ SchoolObject: ; 0x1d55d (size=32)
db $0 ; signs
- db $2 ; people
- db SPRITE_BRUNETTE_GIRL, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
- db SPRITE_LASS, $1 + 4, $4 + 4, $ff, $d0, $2 ; person
+ db $2 ; objects
+ object SPRITE_BRUNETTE_GIRL, $3, $5, STAY, UP, $1 ; person
+ object SPRITE_LASS, $4, $1, STAY, DOWN, $2 ; person
; warp-to
EVENT_DISP VIRIDIAN_SCHOOL_WIDTH, $7, $2
diff --git a/data/mapObjects/seafoamislands1.asm b/data/mapObjects/seafoamislands1.asm
index 62fc8320..287f67ce 100755
--- a/data/mapObjects/seafoamislands1.asm
+++ b/data/mapObjects/seafoamislands1.asm
@@ -12,9 +12,9 @@ SeafoamIslands1Object: ; 0x4484f (size=72)
db $0 ; signs
- db $2 ; people
- db SPRITE_BOULDER, $a + 4, $12 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $1 ; person
- db SPRITE_BOULDER, $7 + 4, $1a + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $2 ; person
+ db $2 ; objects
+ object SPRITE_BOULDER, $12, $a, STAY, BOULDER_MOVEMENT_BYTE_2, $1 ; person
+ object SPRITE_BOULDER, $1a, $7, STAY, BOULDER_MOVEMENT_BYTE_2, $2 ; person
; warp-to
EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $11, $4
diff --git a/data/mapObjects/seafoamislands2.asm b/data/mapObjects/seafoamislands2.asm
index 821a38cd..29cdfa59 100755
--- a/data/mapObjects/seafoamislands2.asm
+++ b/data/mapObjects/seafoamislands2.asm
@@ -12,9 +12,9 @@ SeafoamIslands2Object: ; 0x46376 (size=72)
db $0 ; signs
- db $2 ; people
- db SPRITE_BOULDER, $6 + 4, $11 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $1 ; person
- db SPRITE_BOULDER, $6 + 4, $16 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $2 ; person
+ db $2 ; objects
+ object SPRITE_BOULDER, $11, $6, STAY, BOULDER_MOVEMENT_BYTE_2, $1 ; person
+ object SPRITE_BOULDER, $16, $6, STAY, BOULDER_MOVEMENT_BYTE_2, $2 ; person
; warp-to
EVENT_DISP SEAFOAM_ISLANDS_2_WIDTH, $2, $4 ; SEAFOAM_ISLANDS_3
diff --git a/data/mapObjects/seafoamislands3.asm b/data/mapObjects/seafoamislands3.asm
index 0370805d..28a5e67b 100755
--- a/data/mapObjects/seafoamislands3.asm
+++ b/data/mapObjects/seafoamislands3.asm
@@ -12,9 +12,9 @@ SeafoamIslands3Object: ; 0x464b2 (size=72)
db $0 ; signs
- db $2 ; people
- db SPRITE_BOULDER, $6 + 4, $12 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $1 ; person
- db SPRITE_BOULDER, $6 + 4, $17 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $2 ; person
+ db $2 ; objects
+ object SPRITE_BOULDER, $12, $6, STAY, BOULDER_MOVEMENT_BYTE_2, $1 ; person
+ object SPRITE_BOULDER, $17, $6, STAY, BOULDER_MOVEMENT_BYTE_2, $2 ; person
; warp-to
EVENT_DISP SEAFOAM_ISLANDS_3_WIDTH, $3, $5 ; SEAFOAM_ISLANDS_2
diff --git a/data/mapObjects/seafoamislands4.asm b/data/mapObjects/seafoamislands4.asm
index 3f1baa1d..e90b3865 100755
--- a/data/mapObjects/seafoamislands4.asm
+++ b/data/mapObjects/seafoamislands4.asm
@@ -12,13 +12,13 @@ SeafoamIslands4Object: ; 0x466a6 (size=96)
db $0 ; signs
- db $6 ; people
- db SPRITE_BOULDER, $e + 4, $5 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $1 ; person
- db SPRITE_BOULDER, $f + 4, $3 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $2 ; person
- db SPRITE_BOULDER, $e + 4, $8 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $3 ; person
- db SPRITE_BOULDER, $e + 4, $9 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $4 ; person
- db SPRITE_BOULDER, $6 + 4, $12 + 4, $ff, $ff, $5 ; person
- db SPRITE_BOULDER, $6 + 4, $13 + 4, $ff, $ff, $6 ; person
+ db $6 ; objects
+ object SPRITE_BOULDER, $5, $e, STAY, BOULDER_MOVEMENT_BYTE_2, $1 ; person
+ object SPRITE_BOULDER, $3, $f, STAY, BOULDER_MOVEMENT_BYTE_2, $2 ; person
+ object SPRITE_BOULDER, $8, $e, STAY, BOULDER_MOVEMENT_BYTE_2, $3 ; person
+ object SPRITE_BOULDER, $9, $e, STAY, BOULDER_MOVEMENT_BYTE_2, $4 ; person
+ object SPRITE_BOULDER, $12, $6, STAY, NONE, $5 ; person
+ object SPRITE_BOULDER, $13, $6, STAY, NONE, $6 ; person
; warp-to
EVENT_DISP SEAFOAM_ISLANDS_4_WIDTH, $c, $5 ; SEAFOAM_ISLANDS_3
diff --git a/data/mapObjects/seafoamislands5.asm b/data/mapObjects/seafoamislands5.asm
index 6c207975..e5fbaecd 100755
--- a/data/mapObjects/seafoamislands5.asm
+++ b/data/mapObjects/seafoamislands5.asm
@@ -11,10 +11,10 @@ SeafoamIslands5Object: ; 0x468bc (size=62)
db $f, $9, $4 ; SeafoamIslands5Text4
db $1, $17, $5 ; SeafoamIslands5Text5
- db $3 ; people
- db SPRITE_BOULDER, $f + 4, $4 + 4, $ff, $ff, $1 ; person
- db SPRITE_BOULDER, $f + 4, $5 + 4, $ff, $ff, $2 ; person
- db SPRITE_BIRD, $1 + 4, $6 + 4, $ff, $d0, TRAINER | $3, ARTICUNO, 50
+ db $3 ; objects
+ object SPRITE_BOULDER, $4, $f, STAY, NONE, $1 ; person
+ object SPRITE_BOULDER, $5, $f, STAY, NONE, $2 ; person
+ object SPRITE_BIRD, $6, $1, STAY, DOWN, $3, ARTICUNO, 50
; warp-to
EVENT_DISP SEAFOAM_ISLANDS_5_WIDTH, $11, $14 ; SEAFOAM_ISLANDS_4
diff --git a/data/mapObjects/silphco1.asm b/data/mapObjects/silphco1.asm
index 0d599ca6..a953f376 100755
--- a/data/mapObjects/silphco1.asm
+++ b/data/mapObjects/silphco1.asm
@@ -10,8 +10,8 @@ SilphCo1Object: ; 0x5d470 (size=50)
db $0 ; signs
- db $1 ; people
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $4 + 4, $ff, $d0, $1 ; person
+ db $1 ; objects
+ object SPRITE_CABLE_CLUB_WOMAN, $4, $2, STAY, DOWN, $1 ; person
; warp-to
EVENT_DISP SILPH_CO_1F_WIDTH, $11, $a
diff --git a/data/mapObjects/silphco10.asm b/data/mapObjects/silphco10.asm
index 5d253d98..cc608e64 100755
--- a/data/mapObjects/silphco10.asm
+++ b/data/mapObjects/silphco10.asm
@@ -11,13 +11,13 @@ SilphCo10Object: ; 0x5a1fb (size=95)
db $0 ; signs
- db $6 ; people
- db SPRITE_ROCKET, $9 + 4, $1 + 4, $ff, $d3, TRAINER | $1, ROCKET + $C8, $27
- db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d2, TRAINER | $2, SCIENTIST + $C8, $b
- db SPRITE_ERIKA, $f + 4, $9 + 4, $fe, $0, $3 ; person
- db SPRITE_BALL, $c + 4, $2 + 4, $ff, $ff, ITEM | $4, TM_26
- db SPRITE_BALL, $e + 4, $4 + 4, $ff, $ff, ITEM | $5, RARE_CANDY
- db SPRITE_BALL, $b + 4, $5 + 4, $ff, $ff, ITEM | $6, CARBOS
+ db $6 ; objects
+ object SPRITE_ROCKET, $1, $9, STAY, RIGHT, $1, OPP_ROCKET, $27
+ object SPRITE_OAK_AIDE, $a, $2, STAY, LEFT, $2, OPP_SCIENTIST, $b
+ object SPRITE_ERIKA, $9, $f, WALK, $0, $3 ; person
+ object SPRITE_BALL, $2, $c, STAY, NONE, $4, TM_26
+ object SPRITE_BALL, $4, $e, STAY, NONE, $5, RARE_CANDY
+ object SPRITE_BALL, $5, $b, STAY, NONE, $6, CARBOS
; warp-to
EVENT_DISP SILPH_CO_10F_WIDTH, $0, $8 ; SILPH_CO_9F
diff --git a/data/mapObjects/silphco11.asm b/data/mapObjects/silphco11.asm
index 93b9e339..8cba618e 100755
--- a/data/mapObjects/silphco11.asm
+++ b/data/mapObjects/silphco11.asm
@@ -9,12 +9,12 @@ SilphCo11Object: ; 0x62380 (size=72)
db $0 ; signs
- db $5 ; people
- db SPRITE_MR_MASTERBALL, $5 + 4, $7 + 4, $ff, $d0, $1 ; person
- db SPRITE_FOULARD_WOMAN, $5 + 4, $a + 4, $ff, $d0, $2 ; person
- db SPRITE_GIOVANNI, $9 + 4, $6 + 4, $ff, $d0, TRAINER | $3, GIOVANNI + $C8, $2
- db SPRITE_ROCKET, $10 + 4, $3 + 4, $ff, $d1, TRAINER | $4, ROCKET + $C8, $29
- db SPRITE_ROCKET, $9 + 4, $f + 4, $ff, $d1, TRAINER | $5, ROCKET + $C8, $28
+ db $5 ; objects
+ object SPRITE_MR_MASTERBALL, $7, $5, STAY, DOWN, $1 ; person
+ object SPRITE_FOULARD_WOMAN, $a, $5, STAY, DOWN, $2 ; person
+ object SPRITE_GIOVANNI, $6, $9, STAY, DOWN, $3, OPP_GIOVANNI, $2
+ object SPRITE_ROCKET, $3, $10, STAY, UP, $4, OPP_ROCKET, $29
+ object SPRITE_ROCKET, $f, $9, STAY, UP, $5, OPP_ROCKET, $28
; warp-to
EVENT_DISP SILPH_CO_11F_WIDTH, $0, $9 ; SILPH_CO_10F
diff --git a/data/mapObjects/silphco2.asm b/data/mapObjects/silphco2.asm
index 5da4ccc5..44271d70 100755
--- a/data/mapObjects/silphco2.asm
+++ b/data/mapObjects/silphco2.asm
@@ -12,12 +12,12 @@ SilphCo2Object: ; 0x59e66 (size=98)
db $0 ; signs
- db $5 ; people
- db SPRITE_ERIKA, $1 + 4, $a + 4, $ff, $d1, $1 ; person
- db SPRITE_OAK_AIDE, $c + 4, $5 + 4, $ff, $d0, TRAINER | $2, SCIENTIST + $C8, $2
- db SPRITE_OAK_AIDE, $d + 4, $18 + 4, $ff, $d2, TRAINER | $3, SCIENTIST + $C8, $3
- db SPRITE_ROCKET, $b + 4, $10 + 4, $ff, $d1, TRAINER | $4, ROCKET + $C8, $17
- db SPRITE_ROCKET, $7 + 4, $18 + 4, $ff, $d1, TRAINER | $5, ROCKET + $C8, $18
+ db $5 ; objects
+ object SPRITE_ERIKA, $a, $1, STAY, UP, $1 ; person
+ object SPRITE_OAK_AIDE, $5, $c, STAY, DOWN, $2, OPP_SCIENTIST, $2
+ object SPRITE_OAK_AIDE, $18, $d, STAY, LEFT, $3, OPP_SCIENTIST, $3
+ object SPRITE_ROCKET, $10, $b, STAY, UP, $4, OPP_ROCKET, $17
+ object SPRITE_ROCKET, $18, $7, STAY, UP, $5, OPP_ROCKET, $18
; warp-to
EVENT_DISP SILPH_CO_2F_WIDTH, $0, $18 ; SILPH_CO_1F
diff --git a/data/mapObjects/silphco3.asm b/data/mapObjects/silphco3.asm
index e50bf7cb..48bb8c1a 100755
--- a/data/mapObjects/silphco3.asm
+++ b/data/mapObjects/silphco3.asm
@@ -15,11 +15,11 @@ SilphCo3Object: ; 0x5a035 (size=113)
db $0 ; signs
- db $4 ; people
- db SPRITE_LAPRAS_GIVER, $8 + 4, $18 + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $7 + 4, $14 + 4, $ff, $d2, TRAINER | $2, ROCKET + $C8, $19
- db SPRITE_OAK_AIDE, $9 + 4, $7 + 4, $ff, $d0, TRAINER | $3, SCIENTIST + $C8, $4
- db SPRITE_BALL, $5 + 4, $8 + 4, $ff, $ff, ITEM | $4, HYPER_POTION
+ db $4 ; objects
+ object SPRITE_LAPRAS_GIVER, $18, $8, STAY, NONE, $1 ; person
+ object SPRITE_ROCKET, $14, $7, STAY, LEFT, $2, OPP_ROCKET, $19
+ object SPRITE_OAK_AIDE, $7, $9, STAY, DOWN, $3, OPP_SCIENTIST, $4
+ object SPRITE_BALL, $8, $5, STAY, NONE, $4, HYPER_POTION
; warp-to
EVENT_DISP SILPH_CO_3F_WIDTH, $0, $1a ; SILPH_CO_2F
diff --git a/data/mapObjects/silphco4.asm b/data/mapObjects/silphco4.asm
index bbd26292..762ca7f8 100755
--- a/data/mapObjects/silphco4.asm
+++ b/data/mapObjects/silphco4.asm
@@ -12,14 +12,14 @@ SilphCo4Object: ; 0x19e35 (size=111)
db $0 ; signs
- db $7 ; people
- db SPRITE_LAPRAS_GIVER, $2 + 4, $6 + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $e + 4, $9 + 4, $ff, $d3, TRAINER | $2, ROCKET + $C8, $1a
- db SPRITE_OAK_AIDE, $6 + 4, $e + 4, $ff, $d2, TRAINER | $3, SCIENTIST + $C8, $5
- db SPRITE_ROCKET, $a + 4, $1a + 4, $ff, $d1, TRAINER | $4, ROCKET + $C8, $1b
- db SPRITE_BALL, $9 + 4, $3 + 4, $ff, $ff, ITEM | $5, FULL_HEAL
- db SPRITE_BALL, $7 + 4, $4 + 4, $ff, $ff, ITEM | $6, MAX_REVIVE
- db SPRITE_BALL, $8 + 4, $5 + 4, $ff, $ff, ITEM | $7, ESCAPE_ROPE
+ db $7 ; objects
+ object SPRITE_LAPRAS_GIVER, $6, $2, STAY, NONE, $1 ; person
+ object SPRITE_ROCKET, $9, $e, STAY, RIGHT, $2, OPP_ROCKET, $1a
+ object SPRITE_OAK_AIDE, $e, $6, STAY, LEFT, $3, OPP_SCIENTIST, $5
+ object SPRITE_ROCKET, $1a, $a, STAY, UP, $4, OPP_ROCKET, $1b
+ object SPRITE_BALL, $3, $9, STAY, NONE, $5, FULL_HEAL
+ object SPRITE_BALL, $4, $7, STAY, NONE, $6, MAX_REVIVE
+ object SPRITE_BALL, $5, $8, STAY, NONE, $7, ESCAPE_ROPE
; warp-to
EVENT_DISP SILPH_CO_4F_WIDTH, $0, $18 ; SILPH_CO_3F
diff --git a/data/mapObjects/silphco5.asm b/data/mapObjects/silphco5.asm
index 2a1cf258..0c956cd3 100755
--- a/data/mapObjects/silphco5.asm
+++ b/data/mapObjects/silphco5.asm
@@ -12,18 +12,18 @@ SilphCo5Object: ; 0x1a08d (size=137)
db $0 ; signs
- db $b ; people
- db SPRITE_LAPRAS_GIVER, $9 + 4, $d + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $10 + 4, $8 + 4, $ff, $d3, TRAINER | $2, ROCKET + $C8, $1c
- db SPRITE_OAK_AIDE, $3 + 4, $8 + 4, $ff, $d3, TRAINER | $3, SCIENTIST + $C8, $6
- db SPRITE_ROCKER, $a + 4, $12 + 4, $ff, $d1, TRAINER | $4, JUGGLER + $C8, $1
- db SPRITE_ROCKET, $4 + 4, $1c + 4, $ff, $d1, TRAINER | $5, ROCKET + $C8, $1d
- db SPRITE_BALL, $d + 4, $2 + 4, $ff, $ff, ITEM | $6, TM_09
- db SPRITE_BALL, $6 + 4, $4 + 4, $ff, $ff, ITEM | $7, PROTEIN
- db SPRITE_BALL, $10 + 4, $15 + 4, $ff, $ff, ITEM | $8, CARD_KEY
- db SPRITE_CLIPBOARD, $c + 4, $16 + 4, $ff, $ff, $9 ; person
- db SPRITE_CLIPBOARD, $a + 4, $19 + 4, $ff, $ff, $a ; person
- db SPRITE_CLIPBOARD, $6 + 4, $18 + 4, $ff, $ff, $b ; person
+ db $b ; objects
+ object SPRITE_LAPRAS_GIVER, $d, $9, STAY, NONE, $1 ; person
+ object SPRITE_ROCKET, $8, $10, STAY, RIGHT, $2, OPP_ROCKET, $1c
+ object SPRITE_OAK_AIDE, $8, $3, STAY, RIGHT, $3, OPP_SCIENTIST, $6
+ object SPRITE_ROCKER, $12, $a, STAY, UP, $4, OPP_JUGGLER, $1
+ object SPRITE_ROCKET, $1c, $4, STAY, UP, $5, OPP_ROCKET, $1d
+ object SPRITE_BALL, $2, $d, STAY, NONE, $6, TM_09
+ object SPRITE_BALL, $4, $6, STAY, NONE, $7, PROTEIN
+ object SPRITE_BALL, $15, $10, STAY, NONE, $8, CARD_KEY
+ object SPRITE_CLIPBOARD, $16, $c, STAY, NONE, $9 ; person
+ object SPRITE_CLIPBOARD, $19, $a, STAY, NONE, $a ; person
+ object SPRITE_CLIPBOARD, $18, $6, STAY, NONE, $b ; person
; warp-to
EVENT_DISP SILPH_CO_5F_WIDTH, $0, $18 ; SILPH_CO_6F
diff --git a/data/mapObjects/silphco6.asm b/data/mapObjects/silphco6.asm
index b3e15af1..66372f57 100755
--- a/data/mapObjects/silphco6.asm
+++ b/data/mapObjects/silphco6.asm
@@ -10,17 +10,17 @@ SilphCo6Object: ; 0x1a2fb (size=112)
db $0 ; signs
- db $a ; people
- db SPRITE_LAPRAS_GIVER, $6 + 4, $a + 4, $ff, $ff, $1 ; person
- db SPRITE_LAPRAS_GIVER, $6 + 4, $14 + 4, $ff, $ff, $2 ; person
- db SPRITE_ERIKA, $6 + 4, $15 + 4, $ff, $d0, $3 ; person
- db SPRITE_ERIKA, $a + 4, $b + 4, $ff, $d3, $4 ; person
- db SPRITE_LAPRAS_GIVER, $d + 4, $12 + 4, $ff, $d1, $5 ; person
- db SPRITE_ROCKET, $3 + 4, $11 + 4, $ff, $d3, TRAINER | $6, ROCKET + $C8, $1e
- db SPRITE_OAK_AIDE, $8 + 4, $7 + 4, $ff, $d0, TRAINER | $7, SCIENTIST + $C8, $7
- db SPRITE_ROCKET, $f + 4, $e + 4, $ff, $d2, TRAINER | $8, ROCKET + $C8, $1f
- db SPRITE_BALL, $c + 4, $3 + 4, $ff, $ff, ITEM | $9, HP_UP
- db SPRITE_BALL, $f + 4, $2 + 4, $ff, $ff, ITEM | $a, X_ACCURACY
+ db $a ; objects
+ object SPRITE_LAPRAS_GIVER, $a, $6, STAY, NONE, $1 ; person
+ object SPRITE_LAPRAS_GIVER, $14, $6, STAY, NONE, $2 ; person
+ object SPRITE_ERIKA, $15, $6, STAY, DOWN, $3 ; person
+ object SPRITE_ERIKA, $b, $a, STAY, RIGHT, $4 ; person
+ object SPRITE_LAPRAS_GIVER, $12, $d, STAY, UP, $5 ; person
+ object SPRITE_ROCKET, $11, $3, STAY, RIGHT, $6, OPP_ROCKET, $1e
+ object SPRITE_OAK_AIDE, $7, $8, STAY, DOWN, $7, OPP_SCIENTIST, $7
+ object SPRITE_ROCKET, $e, $f, STAY, LEFT, $8, OPP_ROCKET, $1f
+ object SPRITE_BALL, $3, $c, STAY, NONE, $9, HP_UP
+ object SPRITE_BALL, $2, $f, STAY, NONE, $a, X_ACCURACY
; warp-to
EVENT_DISP SILPH_CO_6F_WIDTH, $0, $10 ; SILPH_CO_7F
diff --git a/data/mapObjects/silphco7.asm b/data/mapObjects/silphco7.asm
index fe435bb0..ef665ac0 100755
--- a/data/mapObjects/silphco7.asm
+++ b/data/mapObjects/silphco7.asm
@@ -11,18 +11,18 @@ SilphCo7Object: ; 0x51ed7 (size=128)
db $0 ; signs
- db $b ; people
- db SPRITE_LAPRAS_GIVER, $5 + 4, $1 + 4, $ff, $ff, $1 ; person
- db SPRITE_LAPRAS_GIVER, $d + 4, $d + 4, $ff, $d1, $2 ; person
- db SPRITE_LAPRAS_GIVER, $a + 4, $7 + 4, $ff, $ff, $3 ; person
- db SPRITE_ERIKA, $8 + 4, $a + 4, $ff, $ff, $4 ; person
- db SPRITE_ROCKET, $1 + 4, $d + 4, $ff, $d0, TRAINER | $5, ROCKET + $C8, $20
- db SPRITE_OAK_AIDE, $d + 4, $2 + 4, $ff, $d0, TRAINER | $6, SCIENTIST + $C8, $8
- db SPRITE_ROCKET, $2 + 4, $14 + 4, $ff, $d2, TRAINER | $7, ROCKET + $C8, $21
- db SPRITE_ROCKET, $e + 4, $13 + 4, $ff, $d3, TRAINER | $8, ROCKET + $C8, $22
- db SPRITE_BLUE, $7 + 4, $3 + 4, $ff, $d1, $9 ; person
- db SPRITE_BALL, $9 + 4, $1 + 4, $ff, $ff, ITEM | $a, CALCIUM
- db SPRITE_BALL, $b + 4, $18 + 4, $ff, $ff, ITEM | $b, TM_03
+ db $b ; objects
+ object SPRITE_LAPRAS_GIVER, $1, $5, STAY, NONE, $1 ; person
+ object SPRITE_LAPRAS_GIVER, $d, $d, STAY, UP, $2 ; person
+ object SPRITE_LAPRAS_GIVER, $7, $a, STAY, NONE, $3 ; person
+ object SPRITE_ERIKA, $a, $8, STAY, NONE, $4 ; person
+ object SPRITE_ROCKET, $d, $1, STAY, DOWN, $5, OPP_ROCKET, $20
+ object SPRITE_OAK_AIDE, $2, $d, STAY, DOWN, $6, OPP_SCIENTIST, $8
+ object SPRITE_ROCKET, $14, $2, STAY, LEFT, $7, OPP_ROCKET, $21
+ object SPRITE_ROCKET, $13, $e, STAY, RIGHT, $8, OPP_ROCKET, $22
+ object SPRITE_BLUE, $3, $7, STAY, UP, $9 ; person
+ object SPRITE_BALL, $1, $9, STAY, NONE, $a, CALCIUM
+ object SPRITE_BALL, $18, $b, STAY, NONE, $b, TM_03
; warp-to
EVENT_DISP SILPH_CO_7F_WIDTH, $0, $10 ; SILPH_CO_8F
diff --git a/data/mapObjects/silphco8.asm b/data/mapObjects/silphco8.asm
index be802791..a4b97a91 100755
--- a/data/mapObjects/silphco8.asm
+++ b/data/mapObjects/silphco8.asm
@@ -12,11 +12,11 @@ SilphCo8Object: ; 0x56613 (size=90)
db $0 ; signs
- db $4 ; people
- db SPRITE_LAPRAS_GIVER, $2 + 4, $4 + 4, $ff, $ff, $1 ; person
- db SPRITE_ROCKET, $2 + 4, $13 + 4, $ff, $d2, TRAINER | $2, ROCKET + $C8, $23
- db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d0, TRAINER | $3, SCIENTIST + $C8, $9
- db SPRITE_ROCKET, $f + 4, $c + 4, $ff, $d3, TRAINER | $4, ROCKET + $C8, $24
+ db $4 ; objects
+ object SPRITE_LAPRAS_GIVER, $4, $2, STAY, NONE, $1 ; person
+ object SPRITE_ROCKET, $13, $2, STAY, LEFT, $2, OPP_ROCKET, $23
+ object SPRITE_OAK_AIDE, $a, $2, STAY, DOWN, $3, OPP_SCIENTIST, $9
+ object SPRITE_ROCKET, $c, $f, STAY, RIGHT, $4, OPP_ROCKET, $24
; warp-to
EVENT_DISP SILPH_CO_8F_WIDTH, $0, $10 ; SILPH_CO_9F
diff --git a/data/mapObjects/silphco9.asm b/data/mapObjects/silphco9.asm
index 2ebaa8df..204f0d1d 100755
--- a/data/mapObjects/silphco9.asm
+++ b/data/mapObjects/silphco9.asm
@@ -10,11 +10,11 @@ SilphCo9Object: ; 0x5d93f (size=74)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $e + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_ROCKET, $4 + 4, $2 + 4, $ff, $d1, TRAINER | $2, ROCKET + $C8, $25
- db SPRITE_OAK_AIDE, $d + 4, $15 + 4, $ff, $d0, TRAINER | $3, SCIENTIST + $C8, $a
- db SPRITE_ROCKET, $10 + 4, $d + 4, $ff, $d1, TRAINER | $4, ROCKET + $C8, $26
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $e, STAY, DOWN, $1 ; person
+ object SPRITE_ROCKET, $2, $4, STAY, UP, $2, OPP_ROCKET, $25
+ object SPRITE_OAK_AIDE, $15, $d, STAY, DOWN, $3, OPP_SCIENTIST, $a
+ object SPRITE_ROCKET, $d, $10, STAY, UP, $4, OPP_ROCKET, $26
; warp-to
EVENT_DISP SILPH_CO_9F_WIDTH, $0, $e ; SILPH_CO_10F
diff --git a/data/mapObjects/silphcoelevator.asm b/data/mapObjects/silphcoelevator.asm
index ced554eb..0e0f03c6 100755
--- a/data/mapObjects/silphcoelevator.asm
+++ b/data/mapObjects/silphcoelevator.asm
@@ -8,7 +8,7 @@ SilphCoElevatorObject: ; 0x45844 (size=23)
db $1 ; signs
db $0, $3, $1 ; SilphCoElevatorText1
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP SILPH_CO_ELEVATOR_WIDTH, $3, $1
diff --git a/data/mapObjects/ssanne1.asm b/data/mapObjects/ssanne1.asm
index a1688f5c..c631074c 100755
--- a/data/mapObjects/ssanne1.asm
+++ b/data/mapObjects/ssanne1.asm
@@ -16,9 +16,9 @@ SSAnne1Object: ; 0x61277 (size=104)
db $0 ; signs
- db $2 ; people
- db SPRITE_WAITER, $6 + 4, $c + 4, $fe, $2, $1 ; person
- db SPRITE_SAILOR, $5 + 4, $1b + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_WAITER, $c, $6, WALK, $2, $1 ; person
+ object SPRITE_SAILOR, $1b, $5, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP SS_ANNE_1_WIDTH, $0, $1a ; VERMILION_DOCK
diff --git a/data/mapObjects/ssanne10.asm b/data/mapObjects/ssanne10.asm
index b98f734f..c57925f1 100755
--- a/data/mapObjects/ssanne10.asm
+++ b/data/mapObjects/ssanne10.asm
@@ -15,18 +15,18 @@ SSAnne10Object: ; 0x61e75 (size=165)
db $0 ; signs
- db $b ; people
- db SPRITE_SAILOR, $d + 4, $0 + 4, $ff, $d0, TRAINER | $1, SAILOR + $C8, $3
- db SPRITE_SAILOR, $b + 4, $2 + 4, $ff, $d0, TRAINER | $2, SAILOR + $C8, $4
- db SPRITE_SAILOR, $3 + 4, $c + 4, $ff, $d2, TRAINER | $3, SAILOR + $C8, $5
- db SPRITE_SAILOR, $2 + 4, $16 + 4, $ff, $d0, TRAINER | $4, SAILOR + $C8, $6
- db SPRITE_SAILOR, $2 + 4, $0 + 4, $ff, $d3, TRAINER | $5, SAILOR + $C8, $7
- db SPRITE_FISHER2, $4 + 4, $0 + 4, $ff, $d3, TRAINER | $6, FISHER + $C8, $2
- db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $a + 4, $ff, $d3, $7 ; person
- db SPRITE_SLOWBRO, $c + 4, $b + 4, $ff, $ff, $8 ; person
- db SPRITE_BALL, $2 + 4, $14 + 4, $ff, $ff, ITEM | $9, ETHER
- db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, ITEM | $a, TM_44
- db SPRITE_BALL, $b + 4, $c + 4, $ff, $ff, ITEM | $b, MAX_POTION
+ db $b ; objects
+ object SPRITE_SAILOR, $0, $d, STAY, DOWN, $1, OPP_SAILOR, $3
+ object SPRITE_SAILOR, $2, $b, STAY, DOWN, $2, OPP_SAILOR, $4
+ object SPRITE_SAILOR, $c, $3, STAY, LEFT, $3, OPP_SAILOR, $5
+ object SPRITE_SAILOR, $16, $2, STAY, DOWN, $4, OPP_SAILOR, $6
+ object SPRITE_SAILOR, $0, $2, STAY, RIGHT, $5, OPP_SAILOR, $7
+ object SPRITE_FISHER2, $0, $4, STAY, RIGHT, $6, OPP_FISHER, $2
+ object SPRITE_BLACK_HAIR_BOY_2, $a, $d, STAY, RIGHT, $7 ; person
+ object SPRITE_SLOWBRO, $b, $c, STAY, NONE, $8 ; person
+ object SPRITE_BALL, $14, $2, STAY, NONE, $9, ETHER
+ object SPRITE_BALL, $a, $2, STAY, NONE, $a, TM_44
+ object SPRITE_BALL, $c, $b, STAY, NONE, $b, MAX_POTION
; warp-to
EVENT_DISP SS_ANNE_10_WIDTH, $5, $2 ; SS_ANNE_4
diff --git a/data/mapObjects/ssanne2.asm b/data/mapObjects/ssanne2.asm
index 3f756c31..9f3691cf 100755
--- a/data/mapObjects/ssanne2.asm
+++ b/data/mapObjects/ssanne2.asm
@@ -14,9 +14,9 @@ SSAnne2Object: ; 0x61514 (size=90)
db $0 ; signs
- db $2 ; people
- db SPRITE_WAITER, $7 + 4, $3 + 4, $fe, $1, $1 ; person
- db SPRITE_BLUE, $4 + 4, $24 + 4, $ff, $d0, TRAINER | $2, SONY1 + $C8, $1
+ db $2 ; objects
+ object SPRITE_WAITER, $3, $7, WALK, $1, $1 ; person
+ object SPRITE_BLUE, $24, $4, STAY, DOWN, $2, OPP_SONY1, $1
; warp-to
EVENT_DISP SS_ANNE_2_WIDTH, $b, $9 ; SS_ANNE_9
diff --git a/data/mapObjects/ssanne3.asm b/data/mapObjects/ssanne3.asm
index 2068304d..1037d118 100755
--- a/data/mapObjects/ssanne3.asm
+++ b/data/mapObjects/ssanne3.asm
@@ -7,8 +7,8 @@ SSAnne3Object: ; 0x4493c (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_SAILOR, $3 + 4, $9 + 4, $fe, $2, $1 ; person
+ db $1 ; objects
+ object SPRITE_SAILOR, $9, $3, WALK, $2, $1 ; person
; warp-to
EVENT_DISP SS_ANNE_3_WIDTH, $3, $0 ; SS_ANNE_5
diff --git a/data/mapObjects/ssanne4.asm b/data/mapObjects/ssanne4.asm
index a2abc2cf..9d752480 100755
--- a/data/mapObjects/ssanne4.asm
+++ b/data/mapObjects/ssanne4.asm
@@ -11,7 +11,7 @@ SSAnne4Object: ; 0x61632 (size=52)
db $0 ; signs
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP SS_ANNE_4_WIDTH, $3, $17 ; SS_ANNE_10
diff --git a/data/mapObjects/ssanne5.asm b/data/mapObjects/ssanne5.asm
index 88b2b5b7..e18f1074 100755
--- a/data/mapObjects/ssanne5.asm
+++ b/data/mapObjects/ssanne5.asm
@@ -7,12 +7,12 @@ SSAnne5Object: ; 0x6172b (size=54)
db $0 ; signs
- db $5 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $5 + 4, $ff, $d1, $1 ; person
- db SPRITE_SAILOR, $9 + 4, $4 + 4, $ff, $ff, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $7 + 4, $ff, $ff, $3 ; person
- db SPRITE_SAILOR, $4 + 4, $4 + 4, $ff, $d0, TRAINER | $4, SAILOR + $C8, $1
- db SPRITE_SAILOR, $8 + 4, $a + 4, $ff, $d1, TRAINER | $5, SAILOR + $C8, $2
+ db $5 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $5, $2, STAY, UP, $1 ; person
+ object SPRITE_SAILOR, $4, $9, STAY, NONE, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $7, $b, STAY, NONE, $3 ; person
+ object SPRITE_SAILOR, $4, $4, STAY, DOWN, $4, OPP_SAILOR, $1
+ object SPRITE_SAILOR, $a, $8, STAY, UP, $5, OPP_SAILOR, $2
; warp-to
EVENT_DISP SS_ANNE_5_WIDTH, $6, $d ; SS_ANNE_3
diff --git a/data/mapObjects/ssanne6.asm b/data/mapObjects/ssanne6.asm
index 7724ab5c..159a3ed2 100755
--- a/data/mapObjects/ssanne6.asm
+++ b/data/mapObjects/ssanne6.asm
@@ -6,14 +6,14 @@ SSAnne6Object: ; 0x6181b (size=54)
db $0 ; signs
- db $7 ; people
- db SPRITE_COOK, $8 + 4, $1 + 4, $fe, $1, $1 ; person
- db SPRITE_COOK, $8 + 4, $5 + 4, $fe, $1, $2 ; person
- db SPRITE_COOK, $7 + 4, $9 + 4, $fe, $1, $3 ; person
- db SPRITE_COOK, $6 + 4, $d + 4, $ff, $ff, $4 ; person
- db SPRITE_COOK, $8 + 4, $d + 4, $ff, $ff, $5 ; person
- db SPRITE_COOK, $a + 4, $d + 4, $ff, $ff, $6 ; person
- db SPRITE_COOK, $d + 4, $b + 4, $ff, $d1, $7 ; person
+ db $7 ; objects
+ object SPRITE_COOK, $1, $8, WALK, $1, $1 ; person
+ object SPRITE_COOK, $5, $8, WALK, $1, $2 ; person
+ object SPRITE_COOK, $9, $7, WALK, $1, $3 ; person
+ object SPRITE_COOK, $d, $6, STAY, NONE, $4 ; person
+ object SPRITE_COOK, $d, $8, STAY, NONE, $5 ; person
+ object SPRITE_COOK, $d, $a, STAY, NONE, $6 ; person
+ object SPRITE_COOK, $b, $d, STAY, UP, $7 ; person
; warp-to
EVENT_DISP SS_ANNE_6_WIDTH, $0, $6 ; SS_ANNE_1
diff --git a/data/mapObjects/ssanne7.asm b/data/mapObjects/ssanne7.asm
index c40bcfec..6179a28e 100755
--- a/data/mapObjects/ssanne7.asm
+++ b/data/mapObjects/ssanne7.asm
@@ -8,8 +8,8 @@ SSAnne7Object: ; 0x61946 (size=24)
db $1, $4, $2 ; SSAnne7Text2
db $2, $1, $3 ; SSAnne7Text3
- db $1 ; people
- db SPRITE_SS_CAPTAIN, $2 + 4, $4 + 4, $ff, $d1, $1 ; person
+ db $1 ; objects
+ object SPRITE_SS_CAPTAIN, $4, $2, STAY, UP, $1 ; person
; warp-to
EVENT_DISP SS_ANNE_7_WIDTH, $7, $0 ; SS_ANNE_2
diff --git a/data/mapObjects/ssanne8.asm b/data/mapObjects/ssanne8.asm
index e2df8fa9..992230d8 100755
--- a/data/mapObjects/ssanne8.asm
+++ b/data/mapObjects/ssanne8.asm
@@ -11,18 +11,18 @@ SSAnne8Object: ; 0x61a60 (size=127)
db $0 ; signs
- db $b ; people
- db SPRITE_GENTLEMAN, $3 + 4, $2 + 4, $ff, $d2, TRAINER | $1, GENTLEMAN + $C8, $1
- db SPRITE_GENTLEMAN, $4 + 4, $b + 4, $ff, $d1, TRAINER | $2, GENTLEMAN + $C8, $2
- db SPRITE_BUG_CATCHER, $e + 4, $b + 4, $ff, $d1, TRAINER | $3, YOUNGSTER + $C8, $8
- db SPRITE_LASS, $b + 4, $d + 4, $ff, $d2, TRAINER | $4, LASS + $C8, $b
- db SPRITE_GIRL, $3 + 4, $16 + 4, $fe, $1, $5 ; person
- db SPRITE_FAT_BALD_GUY, $e + 4, $0 + 4, $ff, $ff, $6 ; person
- db SPRITE_LITTLE_GIRL, $b + 4, $2 + 4, $ff, $d0, $7 ; person
- db SPRITE_CLEFAIRY, $b + 4, $3 + 4, $ff, $d0, $8 ; person
- db SPRITE_GIRL, $d + 4, $a + 4, $ff, $d3, $9 ; person
- db SPRITE_BALL, $f + 4, $c + 4, $ff, $ff, ITEM | $a, TM_08
- db SPRITE_GENTLEMAN, $d + 4, $15 + 4, $fe, $2, $b ; person
+ db $b ; objects
+ object SPRITE_GENTLEMAN, $2, $3, STAY, LEFT, $1, OPP_GENTLEMAN, $1
+ object SPRITE_GENTLEMAN, $b, $4, STAY, UP, $2, OPP_GENTLEMAN, $2
+ object SPRITE_BUG_CATCHER, $b, $e, STAY, UP, $3, OPP_YOUNGSTER, $8
+ object SPRITE_LASS, $d, $b, STAY, LEFT, $4, OPP_LASS, $b
+ object SPRITE_GIRL, $16, $3, WALK, $1, $5 ; person
+ object SPRITE_FAT_BALD_GUY, $0, $e, STAY, NONE, $6 ; person
+ object SPRITE_LITTLE_GIRL, $2, $b, STAY, DOWN, $7 ; person
+ object SPRITE_CLEFAIRY, $3, $b, STAY, DOWN, $8 ; person
+ object SPRITE_GIRL, $a, $d, STAY, RIGHT, $9 ; person
+ object SPRITE_BALL, $c, $f, STAY, NONE, $a, TM_08
+ object SPRITE_GENTLEMAN, $15, $d, WALK, $2, $b ; person
; warp-to
EVENT_DISP SS_ANNE_8_WIDTH, $0, $0 ; SS_ANNE_1
diff --git a/data/mapObjects/ssanne9.asm b/data/mapObjects/ssanne9.asm
index a621ad9f..7fddc058 100755
--- a/data/mapObjects/ssanne9.asm
+++ b/data/mapObjects/ssanne9.asm
@@ -17,20 +17,20 @@ SSAnne9Object: ; 0x61c8d (size=188)
db $0 ; signs
- db $d ; people
- db SPRITE_GENTLEMAN, $2 + 4, $a + 4, $ff, $d3, TRAINER | $1, GENTLEMAN + $C8, $3
- db SPRITE_FISHER2, $4 + 4, $d + 4, $ff, $d2, TRAINER | $2, FISHER + $C8, $1
- db SPRITE_GENTLEMAN, $e + 4, $0 + 4, $ff, $d3, TRAINER | $3, GENTLEMAN + $C8, $5
- db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d0, TRAINER | $4, LASS + $C8, $c
- db SPRITE_GENTLEMAN, $2 + 4, $1 + 4, $ff, $d0, $5 ; person
- db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, ITEM | $6, MAX_ETHER
- db SPRITE_GENTLEMAN, $2 + 4, $15 + 4, $ff, $d0, $7 ; person
- db SPRITE_OLD_PERSON, $1 + 4, $16 + 4, $ff, $d0, $8 ; person
- db SPRITE_BALL, $c + 4, $0 + 4, $ff, $ff, ITEM | $9, RARE_CANDY
- db SPRITE_GENTLEMAN, $c + 4, $c + 4, $ff, $d0, $a ; person
- db SPRITE_YOUNG_BOY, $e + 4, $b + 4, $ff, $ff, $b ; person
- db SPRITE_BRUNETTE_GIRL, $c + 4, $16 + 4, $ff, $d2, $c ; person
- db SPRITE_FOULARD_WOMAN, $c + 4, $14 + 4, $ff, $d3, $d ; person
+ db $d ; objects
+ object SPRITE_GENTLEMAN, $a, $2, STAY, RIGHT, $1, OPP_GENTLEMAN, $3
+ object SPRITE_FISHER2, $d, $4, STAY, LEFT, $2, OPP_FISHER, $1
+ object SPRITE_GENTLEMAN, $0, $e, STAY, RIGHT, $3, OPP_GENTLEMAN, $5
+ object SPRITE_LASS, $2, $b, STAY, DOWN, $4, OPP_LASS, $c
+ object SPRITE_GENTLEMAN, $1, $2, STAY, DOWN, $5 ; person
+ object SPRITE_BALL, $c, $1, STAY, NONE, $6, MAX_ETHER
+ object SPRITE_GENTLEMAN, $15, $2, STAY, DOWN, $7 ; person
+ object SPRITE_OLD_PERSON, $16, $1, STAY, DOWN, $8 ; person
+ object SPRITE_BALL, $0, $c, STAY, NONE, $9, RARE_CANDY
+ object SPRITE_GENTLEMAN, $c, $c, STAY, DOWN, $a ; person
+ object SPRITE_YOUNG_BOY, $b, $e, STAY, NONE, $b ; person
+ object SPRITE_BRUNETTE_GIRL, $16, $c, STAY, LEFT, $c ; person
+ object SPRITE_FOULARD_WOMAN, $14, $c, STAY, RIGHT, $d ; person
; warp-to
EVENT_DISP SS_ANNE_9_WIDTH, $5, $2 ; SS_ANNE_2
diff --git a/data/mapObjects/tradecenter.asm b/data/mapObjects/tradecenter.asm
new file mode 100644
index 00000000..57a3eee5
--- /dev/null
+++ b/data/mapObjects/tradecenter.asm
@@ -0,0 +1,9 @@
+TradeCenterObject: ; 0x4fd53 (size=10)
+ db $e ; border block
+
+ db $0 ; warps
+
+ db $0 ; signs
+
+ db $1 ; objects
+ object SPRITE_RED, $2, $2, STAY, $0, $1 ; person
diff --git a/data/mapObjects/tradecenterm.asm b/data/mapObjects/tradecenterm.asm
deleted file mode 100755
index 104b9c0b..00000000
--- a/data/mapObjects/tradecenterm.asm
+++ /dev/null
@@ -1,9 +0,0 @@
-TradeCenterMObject: ; 0x4fd87 (size=10)
- db $e ; border block
-
- db $0 ; warps
-
- db $0 ; signs
-
- db $1 ; people
- db SPRITE_RED, $2 + 4, $2 + 4, $ff, $0, $1 ; person
diff --git a/data/mapObjects/undergroundpathentranceroute5.asm b/data/mapObjects/undergroundpathentranceroute5.asm
index f782636c..a2f18179 100755
--- a/data/mapObjects/undergroundpathentranceroute5.asm
+++ b/data/mapObjects/undergroundpathentranceroute5.asm
@@ -8,8 +8,8 @@ UndergroundPathEntranceRoute5Object: ; 0x5d6c1 (size=34)
db $0 ; signs
- db $1 ; people
- db SPRITE_LITTLE_GIRL, $3 + 4, $2 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_LITTLE_GIRL, $2, $3, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP PATH_ENTRANCE_ROUTE_5_WIDTH, $7, $3
diff --git a/data/mapObjects/undergroundpathentranceroute6.asm b/data/mapObjects/undergroundpathentranceroute6.asm
index 624381a9..834263b5 100755
--- a/data/mapObjects/undergroundpathentranceroute6.asm
+++ b/data/mapObjects/undergroundpathentranceroute6.asm
@@ -8,8 +8,8 @@ UndergroundPathEntranceRoute6Object: ; 0x5d6fe (size=34)
db $0 ; signs
- db $1 ; people
- db SPRITE_GIRL, $3 + 4, $2 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_GIRL, $2, $3, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP PATH_ENTRANCE_ROUTE_6_WIDTH, $7, $3
diff --git a/data/mapObjects/undergroundpathentranceroute7.asm b/data/mapObjects/undergroundpathentranceroute7.asm
index d0e51c8a..909ff4a0 100755
--- a/data/mapObjects/undergroundpathentranceroute7.asm
+++ b/data/mapObjects/undergroundpathentranceroute7.asm
@@ -8,8 +8,8 @@ UndergroundPathEntranceRoute7Object: ; 0x5d73b (size=34)
db $0 ; signs
- db $1 ; people
- db SPRITE_FAT_BALD_GUY, $4 + 4, $2 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_FAT_BALD_GUY, $2, $4, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP PATH_ENTRANCE_ROUTE_7_WIDTH, $7, $3
diff --git a/data/mapObjects/undergroundpathentranceroute7copy.asm b/data/mapObjects/undergroundpathentranceroute7copy.asm
index 53972ce9..707a0e0e 100755
--- a/data/mapObjects/undergroundpathentranceroute7copy.asm
+++ b/data/mapObjects/undergroundpathentranceroute7copy.asm
@@ -8,9 +8,9 @@ UndergroundPathEntranceRoute7CopyObject: ; 5d787 (17:5787)
db $0 ; signs
- db $2 ; people
- db SPRITE_GIRL, $2 + 4, $3 + 4, $ff, $ff, $1 ; person
- db SPRITE_FAT_BALD_GUY, $4 + 4, $2 + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_GIRL, $3, $2, STAY, NONE, $1 ; person
+ object SPRITE_FAT_BALD_GUY, $2, $4, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP PATH_ENTRANCE_ROUTE_7_COPY_WIDTH, $7, $3
diff --git a/data/mapObjects/undergroundpathentranceroute8.asm b/data/mapObjects/undergroundpathentranceroute8.asm
index a59e017b..9a1d9d37 100755
--- a/data/mapObjects/undergroundpathentranceroute8.asm
+++ b/data/mapObjects/undergroundpathentranceroute8.asm
@@ -8,8 +8,8 @@ UndergroundPathEntranceRoute8Object: ; 0x1e298 (size=34)
db $0 ; signs
- db $1 ; people
- db SPRITE_GIRL, $4 + 4, $3 + 4, $ff, $ff, $1 ; person
+ db $1 ; objects
+ object SPRITE_GIRL, $3, $4, STAY, NONE, $1 ; person
; warp-to
EVENT_DISP PATH_ENTRANCE_ROUTE_8_WIDTH, $7, $3
diff --git a/data/mapObjects/undergroundpathns.asm b/data/mapObjects/undergroundpathns.asm
index 7dac9b95..d9ae7499 100755
--- a/data/mapObjects/undergroundpathns.asm
+++ b/data/mapObjects/undergroundpathns.asm
@@ -7,7 +7,7 @@ UndergroundPathNSObject: ; 0x61f2a (size=20)
db $0 ; signs
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP UNDERGROUND_PATH_NS_WIDTH, $4, $5 ; PATH_ENTRANCE_ROUTE_5
diff --git a/data/mapObjects/undergroundpathwe.asm b/data/mapObjects/undergroundpathwe.asm
index ad3c51f7..303f60b9 100755
--- a/data/mapObjects/undergroundpathwe.asm
+++ b/data/mapObjects/undergroundpathwe.asm
@@ -7,7 +7,7 @@ UndergroundPathWEObject: ; 0x61f4e (size=20)
db $0 ; signs
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP UNDERGROUND_PATH_WE_WIDTH, $5, $2 ; PATH_ENTRANCE_ROUTE_7
diff --git a/data/mapObjects/unknowndungeon1.asm b/data/mapObjects/unknowndungeon1.asm
index e5dbe1c3..c55711b4 100755
--- a/data/mapObjects/unknowndungeon1.asm
+++ b/data/mapObjects/unknowndungeon1.asm
@@ -14,10 +14,10 @@ UnknownDungeon1Object: ; 0x74d15 (size=97)
db $0 ; signs
- db $3 ; people
- db SPRITE_BALL, $d + 4, $7 + 4, $ff, $ff, ITEM | $1, FULL_RESTORE
- db SPRITE_BALL, $3 + 4, $13 + 4, $ff, $ff, ITEM | $2, MAX_ELIXER
- db SPRITE_BALL, $0 + 4, $5 + 4, $ff, $ff, ITEM | $3, NUGGET
+ db $3 ; objects
+ object SPRITE_BALL, $7, $d, STAY, NONE, $1, FULL_RESTORE
+ object SPRITE_BALL, $13, $3, STAY, NONE, $2, MAX_ELIXER
+ object SPRITE_BALL, $5, $0, STAY, NONE, $3, NUGGET
; warp-to
EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $11, $18
diff --git a/data/mapObjects/unknowndungeon2.asm b/data/mapObjects/unknowndungeon2.asm
index 997198b5..e5ebca56 100755
--- a/data/mapObjects/unknowndungeon2.asm
+++ b/data/mapObjects/unknowndungeon2.asm
@@ -11,10 +11,10 @@ UnknownDungeon2Object: ; 0x45e14 (size=73)
db $0 ; signs
- db $3 ; people
- db SPRITE_BALL, $9 + 4, $1d + 4, $ff, $ff, ITEM | $1, PP_UP
- db SPRITE_BALL, $f + 4, $4 + 4, $ff, $ff, ITEM | $2, ULTRA_BALL
- db SPRITE_BALL, $6 + 4, $d + 4, $ff, $ff, ITEM | $3, FULL_RESTORE
+ db $3 ; objects
+ object SPRITE_BALL, $1d, $9, STAY, NONE, $1, PP_UP
+ object SPRITE_BALL, $4, $f, STAY, NONE, $2, ULTRA_BALL
+ object SPRITE_BALL, $d, $6, STAY, NONE, $3, FULL_RESTORE
; warp-to
EVENT_DISP UNKNOWN_DUNGEON_2_WIDTH, $1, $1d ; UNKNOWN_DUNGEON_1
diff --git a/data/mapObjects/unknowndungeon3.asm b/data/mapObjects/unknowndungeon3.asm
index a3fba264..8b733e6b 100755
--- a/data/mapObjects/unknowndungeon3.asm
+++ b/data/mapObjects/unknowndungeon3.asm
@@ -6,10 +6,10 @@ UnknownDungeon3Object: ; 0x45f36 (size=34)
db $0 ; signs
- db $3 ; people
- db SPRITE_SLOWBRO, $d + 4, $1b + 4, $ff, $d0, TRAINER | $1, MEWTWO, 70
- db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, ITEM | $2, ULTRA_BALL
- db SPRITE_BALL, $1 + 4, $12 + 4, $ff, $ff, ITEM | $3, MAX_REVIVE
+ db $3 ; objects
+ object SPRITE_SLOWBRO, $1b, $d, STAY, DOWN, $1, MEWTWO, 70
+ object SPRITE_BALL, $10, $9, STAY, NONE, $2, ULTRA_BALL
+ object SPRITE_BALL, $12, $1, STAY, NONE, $3, MAX_REVIVE
; warp-to
EVENT_DISP UNKNOWN_DUNGEON_3_WIDTH, $6, $3 ; UNKNOWN_DUNGEON_1
diff --git a/data/mapObjects/vermilioncity.asm b/data/mapObjects/vermilioncity.asm
index a7a6a6b4..c5602be1 100755
--- a/data/mapObjects/vermilioncity.asm
+++ b/data/mapObjects/vermilioncity.asm
@@ -21,13 +21,13 @@ VermilionCityObject: ; 0x189ba (size=133)
db $13, $7, $c ; VermilionCityText12
db $f, $1d, $d ; VermilionCityText13
- db $6 ; people
- db SPRITE_FOULARD_WOMAN, $7 + 4, $13 + 4, $fe, $2, $1 ; person
- db SPRITE_GAMBLER, $6 + 4, $e + 4, $ff, $ff, $2 ; person
- db SPRITE_SAILOR, $1e + 4, $13 + 4, $ff, $d1, $3 ; person
- db SPRITE_GAMBLER, $7 + 4, $1e + 4, $ff, $ff, $4 ; person
- db SPRITE_SLOWBRO, $9 + 4, $1d + 4, $fe, $1, $5 ; person
- db SPRITE_SAILOR, $1b + 4, $19 + 4, $fe, $2, $6 ; person
+ db $6 ; objects
+ object SPRITE_FOULARD_WOMAN, $13, $7, WALK, $2, $1 ; person
+ object SPRITE_GAMBLER, $e, $6, STAY, NONE, $2 ; person
+ object SPRITE_SAILOR, $13, $1e, STAY, UP, $3 ; person
+ object SPRITE_GAMBLER, $1e, $7, STAY, NONE, $4 ; person
+ object SPRITE_SLOWBRO, $1d, $9, WALK, $1, $5 ; person
+ object SPRITE_SAILOR, $19, $1b, WALK, $2, $6 ; person
; warp-to
EVENT_DISP VERMILION_CITY_WIDTH, $3, $b ; VERMILION_POKECENTER
diff --git a/data/mapObjects/vermiliondock.asm b/data/mapObjects/vermiliondock.asm
index 4c49e966..b8aa659d 100755
--- a/data/mapObjects/vermiliondock.asm
+++ b/data/mapObjects/vermiliondock.asm
@@ -7,7 +7,7 @@ VermilionDockObject: ; 0x1dcc6 (size=20)
db $0 ; signs
- db $0 ; people
+ db $0 ; objects
; warp-to
EVENT_DISP VERMILION_DOCK_WIDTH, $0, $e
diff --git a/data/mapObjects/vermiliongym.asm b/data/mapObjects/vermiliongym.asm
index 30787405..830af62c 100755
--- a/data/mapObjects/vermiliongym.asm
+++ b/data/mapObjects/vermiliongym.asm
@@ -7,12 +7,12 @@ VermilionGymObject: ; 0x5cbfe (size=58)
db $0 ; signs
- db $5 ; people
- db SPRITE_ROCKER, $1 + 4, $5 + 4, $ff, $d0, TRAINER | $1, LT__SURGE + $C8, $1
- db SPRITE_GENTLEMAN, $6 + 4, $9 + 4, $ff, $d2, TRAINER | $2, GENTLEMAN + $C8, $3
- db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d2, TRAINER | $3, ROCKER + $C8, $1
- db SPRITE_SAILOR, $a + 4, $0 + 4, $ff, $d3, TRAINER | $4, SAILOR + $C8, $8
- db SPRITE_GYM_HELPER, $e + 4, $4 + 4, $ff, $d0, $5 ; person
+ db $5 ; objects
+ object SPRITE_ROCKER, $5, $1, STAY, DOWN, $1, OPP_LT__SURGE, $1
+ object SPRITE_GENTLEMAN, $9, $6, STAY, LEFT, $2, OPP_GENTLEMAN, $3
+ object SPRITE_BLACK_HAIR_BOY_2, $3, $8, STAY, LEFT, $3, OPP_ROCKER, $1
+ object SPRITE_SAILOR, $0, $a, STAY, RIGHT, $4, OPP_SAILOR, $8
+ object SPRITE_GYM_HELPER, $4, $e, STAY, DOWN, $5 ; person
; warp-to
EVENT_DISP VERMILION_GYM_WIDTH, $11, $4
diff --git a/data/mapObjects/vermilionhouse1.asm b/data/mapObjects/vermilionhouse1.asm
index e6104944..952661cc 100755
--- a/data/mapObjects/vermilionhouse1.asm
+++ b/data/mapObjects/vermilionhouse1.asm
@@ -7,10 +7,10 @@ VermilionHouse1Object: ; 0x1db20 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_BUG_CATCHER, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
- db SPRITE_BIRD, $5 + 4, $3 + 4, $fe, $2, $2 ; person
- db SPRITE_PAPER_SHEET, $3 + 4, $4 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_BUG_CATCHER, $5, $3, STAY, LEFT, $1 ; person
+ object SPRITE_BIRD, $3, $5, WALK, $2, $2 ; person
+ object SPRITE_PAPER_SHEET, $4, $3, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP VERMILION_HOUSE_1_WIDTH, $7, $2
diff --git a/data/mapObjects/vermilionhouse2.asm b/data/mapObjects/vermilionhouse2.asm
index aab505cb..03c3c1a2 100755
--- a/data/mapObjects/vermilionhouse2.asm
+++ b/data/mapObjects/vermilionhouse2.asm
@@ -7,8 +7,8 @@ VermilionHouse2Object: ; 0x560cf (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_FISHER, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
+ db $1 ; objects
+ object SPRITE_FISHER, $2, $4, STAY, RIGHT, $1 ; person
; warp-to
EVENT_DISP VERMILION_HOUSE_2_WIDTH, $7, $2
diff --git a/data/mapObjects/vermilionhouse3.asm b/data/mapObjects/vermilionhouse3.asm
index b23a741b..ab955a20 100755
--- a/data/mapObjects/vermilionhouse3.asm
+++ b/data/mapObjects/vermilionhouse3.asm
@@ -7,8 +7,8 @@ VermilionHouse3Object: ; 0x19c25 (size=26)
db $0 ; signs
- db $1 ; people
- db SPRITE_LITTLE_GIRL, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
+ db $1 ; objects
+ object SPRITE_LITTLE_GIRL, $3, $5, STAY, UP, $1 ; person
; warp-to
EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $2
diff --git a/data/mapObjects/vermilionmart.asm b/data/mapObjects/vermilionmart.asm
index f57adde8..56c52944 100755
--- a/data/mapObjects/vermilionmart.asm
+++ b/data/mapObjects/vermilionmart.asm
@@ -7,10 +7,10 @@ VermilionMartObject: ; 0x5c9f4 (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $5 + 4, $ff, $ff, $2 ; person
- db SPRITE_LASS, $3 + 4, $3 + 4, $fe, $2, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $5, $6, STAY, NONE, $2 ; person
+ object SPRITE_LASS, $3, $3, WALK, $2, $3 ; person
; warp-to
EVENT_DISP VERMILION_MART_WIDTH, $7, $3
diff --git a/data/mapObjects/vermilionpokecenter.asm b/data/mapObjects/vermilionpokecenter.asm
index 97b86520..e5d1d147 100755
--- a/data/mapObjects/vermilionpokecenter.asm
+++ b/data/mapObjects/vermilionpokecenter.asm
@@ -7,11 +7,11 @@ VermilionPokecenterObject: ; 0x5c9a9 (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_FISHER, $5 + 4, $a + 4, $ff, $ff, $2 ; person
- db SPRITE_SAILOR, $4 + 4, $5 + 4, $ff, $ff, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_FISHER, $a, $5, STAY, NONE, $2 ; person
+ object SPRITE_SAILOR, $5, $4, STAY, NONE, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP VERMILION_POKECENTER_WIDTH, $7, $3
diff --git a/data/mapObjects/victoryroad1.asm b/data/mapObjects/victoryroad1.asm
index 96cb23bb..9e66e95b 100755
--- a/data/mapObjects/victoryroad1.asm
+++ b/data/mapObjects/victoryroad1.asm
@@ -8,14 +8,14 @@ VictoryRoad1Object: ; 0x5dab8 (size=76)
db $0 ; signs
- db $7 ; people
- db SPRITE_LASS, $5 + 4, $7 + 4, $ff, $d3, TRAINER | $1, COOLTRAINER_F + $C8, $5
- db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $3 + 4, $ff, $d0, TRAINER | $2, COOLTRAINER_M + $C8, $5
- db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, ITEM | $3, TM_43
- db SPRITE_BALL, $2 + 4, $9 + 4, $ff, $ff, ITEM | $4, RARE_CANDY
- db SPRITE_BOULDER, $f + 4, $5 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $5 ; person
- db SPRITE_BOULDER, $2 + 4, $e + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $6 ; person
- db SPRITE_BOULDER, $a + 4, $2 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $7 ; person
+ db $7 ; objects
+ object SPRITE_LASS, $7, $5, STAY, RIGHT, $1, OPP_COOLTRAINER_F, $5
+ object SPRITE_BLACK_HAIR_BOY_1, $3, $2, STAY, DOWN, $2, OPP_COOLTRAINER_M, $5
+ object SPRITE_BALL, $b, $0, STAY, NONE, $3, TM_43
+ object SPRITE_BALL, $9, $2, STAY, NONE, $4, RARE_CANDY
+ object SPRITE_BOULDER, $5, $f, STAY, BOULDER_MOVEMENT_BYTE_2, $5 ; person
+ object SPRITE_BOULDER, $e, $2, STAY, BOULDER_MOVEMENT_BYTE_2, $6 ; person
+ object SPRITE_BOULDER, $2, $a, STAY, BOULDER_MOVEMENT_BYTE_2, $7 ; person
; warp-to
EVENT_DISP VICTORY_ROAD_1_WIDTH, $11, $8
diff --git a/data/mapObjects/victoryroad2.asm b/data/mapObjects/victoryroad2.asm
index 39ec23c5..29c0f303 100755
--- a/data/mapObjects/victoryroad2.asm
+++ b/data/mapObjects/victoryroad2.asm
@@ -12,20 +12,20 @@ VictoryRoad2Object: ; 0x51915 (size=154)
db $0 ; signs
- db $d ; people
- db SPRITE_HIKER, $9 + 4, $c + 4, $ff, $d2, TRAINER | $1, BLACKBELT + $C8, $9
- db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $15 + 4, $ff, $d2, TRAINER | $2, JUGGLER + $C8, $2
- db SPRITE_BLACK_HAIR_BOY_1, $8 + 4, $13 + 4, $ff, $d0, TRAINER | $3, TAMER + $C8, $5
- db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $4 + 4, $ff, $d0, TRAINER | $4, POKEMANIAC + $C8, $6
- db SPRITE_BLACK_HAIR_BOY_2, $3 + 4, $1a + 4, $ff, $d2, TRAINER | $5, JUGGLER + $C8, $5
- db SPRITE_BIRD, $5 + 4, $b + 4, $ff, $d1, TRAINER | $6, MOLTRES, 50
- db SPRITE_BALL, $5 + 4, $1b + 4, $ff, $ff, ITEM | $7, TM_17
- db SPRITE_BALL, $9 + 4, $12 + 4, $ff, $ff, ITEM | $8, FULL_HEAL
- db SPRITE_BALL, $b + 4, $9 + 4, $ff, $ff, ITEM | $9, TM_05
- db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, ITEM | $a, GUARD_SPEC_
- db SPRITE_BOULDER, $e + 4, $4 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $b ; person
- db SPRITE_BOULDER, $5 + 4, $5 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $c ; person
- db SPRITE_BOULDER, $10 + 4, $17 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $d ; person
+ db $d ; objects
+ object SPRITE_HIKER, $c, $9, STAY, LEFT, $1, OPP_BLACKBELT, $9
+ object SPRITE_BLACK_HAIR_BOY_2, $15, $d, STAY, LEFT, $2, OPP_JUGGLER, $2
+ object SPRITE_BLACK_HAIR_BOY_1, $13, $8, STAY, DOWN, $3, OPP_TAMER, $5
+ object SPRITE_BLACK_HAIR_BOY_2, $4, $2, STAY, DOWN, $4, OPP_POKEMANIAC, $6
+ object SPRITE_BLACK_HAIR_BOY_2, $1a, $3, STAY, LEFT, $5, OPP_JUGGLER, $5
+ object SPRITE_BIRD, $b, $5, STAY, UP, $6, MOLTRES, 50
+ object SPRITE_BALL, $1b, $5, STAY, NONE, $7, TM_17
+ object SPRITE_BALL, $12, $9, STAY, NONE, $8, FULL_HEAL
+ object SPRITE_BALL, $9, $b, STAY, NONE, $9, TM_05
+ object SPRITE_BALL, $b, $0, STAY, NONE, $a, GUARD_SPEC_
+ object SPRITE_BOULDER, $4, $e, STAY, BOULDER_MOVEMENT_BYTE_2, $b ; person
+ object SPRITE_BOULDER, $5, $5, STAY, BOULDER_MOVEMENT_BYTE_2, $c ; person
+ object SPRITE_BOULDER, $17, $10, STAY, BOULDER_MOVEMENT_BYTE_2, $d ; person
; warp-to
EVENT_DISP VICTORY_ROAD_2_WIDTH, $8, $0 ; VICTORY_ROAD_1
diff --git a/data/mapObjects/victoryroad3.asm b/data/mapObjects/victoryroad3.asm
index 998a189d..19a06c65 100755
--- a/data/mapObjects/victoryroad3.asm
+++ b/data/mapObjects/victoryroad3.asm
@@ -9,17 +9,17 @@ VictoryRoad3Object: ; 0x44acd (size=106)
db $0 ; signs
- db $a ; people
- db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $1c + 4, $ff, $d2, TRAINER | $1, COOLTRAINER_M + $C8, $2
- db SPRITE_LASS, $d + 4, $7 + 4, $ff, $d3, TRAINER | $2, COOLTRAINER_F + $C8, $2
- db SPRITE_BLACK_HAIR_BOY_1, $e + 4, $6 + 4, $ff, $d2, TRAINER | $3, COOLTRAINER_M + $C8, $3
- db SPRITE_LASS, $3 + 4, $d + 4, $ff, $d3, TRAINER | $4, COOLTRAINER_F + $C8, $3
- db SPRITE_BALL, $5 + 4, $1a + 4, $ff, $ff, ITEM | $5, MAX_REVIVE
- db SPRITE_BALL, $7 + 4, $7 + 4, $ff, $ff, ITEM | $6, TM_47
- db SPRITE_BOULDER, $3 + 4, $16 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $7 ; person
- db SPRITE_BOULDER, $c + 4, $d + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $8 ; person
- db SPRITE_BOULDER, $a + 4, $18 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $9 ; person
- db SPRITE_BOULDER, $f + 4, $16 + 4, $ff, BOULDER_MOVEMENT_BYTE_2, $a ; person
+ db $a ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, $1c, $5, STAY, LEFT, $1, OPP_COOLTRAINER_M, $2
+ object SPRITE_LASS, $7, $d, STAY, RIGHT, $2, OPP_COOLTRAINER_F, $2
+ object SPRITE_BLACK_HAIR_BOY_1, $6, $e, STAY, LEFT, $3, OPP_COOLTRAINER_M, $3
+ object SPRITE_LASS, $d, $3, STAY, RIGHT, $4, OPP_COOLTRAINER_F, $3
+ object SPRITE_BALL, $1a, $5, STAY, NONE, $5, MAX_REVIVE
+ object SPRITE_BALL, $7, $7, STAY, NONE, $6, TM_47
+ object SPRITE_BOULDER, $16, $3, STAY, BOULDER_MOVEMENT_BYTE_2, $7 ; person
+ object SPRITE_BOULDER, $d, $c, STAY, BOULDER_MOVEMENT_BYTE_2, $8 ; person
+ object SPRITE_BOULDER, $18, $a, STAY, BOULDER_MOVEMENT_BYTE_2, $9 ; person
+ object SPRITE_BOULDER, $16, $f, STAY, BOULDER_MOVEMENT_BYTE_2, $a ; person
; warp-to
EVENT_DISP VICTORY_ROAD_3_WIDTH, $7, $17 ; VICTORY_ROAD_2
diff --git a/data/mapObjects/viridiancity.asm b/data/mapObjects/viridiancity.asm
index 37cb42e2..a2d2815f 100755
--- a/data/mapObjects/viridiancity.asm
+++ b/data/mapObjects/viridiancity.asm
@@ -16,14 +16,14 @@ ViridianCityObject: ; 0x18384 (size=104)
db $19, $18, $c ; PokeCenterSignText
db $7, $1b, $d ; ViridianCityText13
- db $7 ; people
- db SPRITE_BUG_CATCHER, $14 + 4, $d + 4, $fe, $0, $1 ; person
- db SPRITE_GAMBLER, $8 + 4, $1e + 4, $ff, $ff, $2 ; person
- db SPRITE_BUG_CATCHER, $19 + 4, $1e + 4, $fe, $0, $3 ; person
- db SPRITE_GIRL, $9 + 4, $11 + 4, $ff, $d3, $4 ; person
- db SPRITE_LYING_OLD_MAN, $9 + 4, $12 + 4, $ff, $ff, $5 ; person
- db SPRITE_FISHER2, $17 + 4, $6 + 4, $ff, $d0, $6 ; person
- db SPRITE_GAMBLER, $5 + 4, $11 + 4, $fe, $2, $7 ; person
+ db $7 ; objects
+ object SPRITE_BUG_CATCHER, $d, $14, WALK, $0, $1 ; person
+ object SPRITE_GAMBLER, $1e, $8, STAY, NONE, $2 ; person
+ object SPRITE_BUG_CATCHER, $1e, $19, WALK, $0, $3 ; person
+ object SPRITE_GIRL, $11, $9, STAY, RIGHT, $4 ; person
+ object SPRITE_LYING_OLD_MAN, $12, $9, STAY, NONE, $5 ; person
+ object SPRITE_FISHER2, $6, $17, STAY, DOWN, $6 ; person
+ object SPRITE_GAMBLER, $11, $5, WALK, $2, $7 ; person
; warp-to
EVENT_DISP VIRIDIAN_CITY_WIDTH, $19, $17 ; VIRIDIAN_POKECENTER
diff --git a/data/mapObjects/viridianforest.asm b/data/mapObjects/viridianforest.asm
index 74f64dd5..a1d52cfe 100755
--- a/data/mapObjects/viridianforest.asm
+++ b/data/mapObjects/viridianforest.asm
@@ -17,15 +17,15 @@ ViridianForestObject: ; 0x611da (size=127)
db $2d, $12, $d ; ViridianForestText13
db $1, $2, $e ; ViridianForestText14
- db $8 ; people
- db SPRITE_BUG_CATCHER, $2b + 4, $10 + 4, $ff, $ff, $1 ; person
- db SPRITE_BUG_CATCHER, $21 + 4, $1e + 4, $ff, $d2, TRAINER | $2, BUG_CATCHER + $C8, $1
- db SPRITE_BUG_CATCHER, $13 + 4, $1e + 4, $ff, $d2, TRAINER | $3, BUG_CATCHER + $C8, $2
- db SPRITE_BUG_CATCHER, $12 + 4, $2 + 4, $ff, $d2, TRAINER | $4, BUG_CATCHER + $C8, $3
- db SPRITE_BALL, $b + 4, $19 + 4, $ff, $ff, ITEM | $5, ANTIDOTE
- db SPRITE_BALL, $1d + 4, $c + 4, $ff, $ff, ITEM | $6, POTION
- db SPRITE_BALL, $1f + 4, $1 + 4, $ff, $ff, ITEM | $7, POKE_BALL
- db SPRITE_BUG_CATCHER, $28 + 4, $1b + 4, $ff, $ff, $8 ; person
+ db $8 ; objects
+ object SPRITE_BUG_CATCHER, $10, $2b, STAY, NONE, $1 ; person
+ object SPRITE_BUG_CATCHER, $1e, $21, STAY, LEFT, $2, OPP_BUG_CATCHER, $1
+ object SPRITE_BUG_CATCHER, $1e, $13, STAY, LEFT, $3, OPP_BUG_CATCHER, $2
+ object SPRITE_BUG_CATCHER, $2, $12, STAY, LEFT, $4, OPP_BUG_CATCHER, $3
+ object SPRITE_BALL, $19, $b, STAY, NONE, $5, ANTIDOTE
+ object SPRITE_BALL, $c, $1d, STAY, NONE, $6, POTION
+ object SPRITE_BALL, $1, $1f, STAY, NONE, $7, POKE_BALL
+ object SPRITE_BUG_CATCHER, $1b, $28, STAY, NONE, $8 ; person
; warp-to
EVENT_DISP VIRIDIAN_FOREST_WIDTH, $0, $1 ; VIRIDIAN_FOREST_EXIT
diff --git a/data/mapObjects/viridianforestentrance.asm b/data/mapObjects/viridianforestentrance.asm
index ce0aaae5..fc676a6d 100755
--- a/data/mapObjects/viridianforestentrance.asm
+++ b/data/mapObjects/viridianforestentrance.asm
@@ -9,9 +9,9 @@ ViridianForestEntranceObject: ; 0x5d66d (size=48)
db $0 ; signs
- db $2 ; people
- db SPRITE_GIRL, $4 + 4, $8 + 4, $ff, $d2, $1 ; person
- db SPRITE_LITTLE_GIRL, $4 + 4, $2 + 4, $fe, $1, $2 ; person
+ db $2 ; objects
+ object SPRITE_GIRL, $8, $4, STAY, LEFT, $1 ; person
+ object SPRITE_LITTLE_GIRL, $2, $4, WALK, $1, $2 ; person
; warp-to
EVENT_DISP VIRIDIAN_FOREST_ENTRANCE_WIDTH, $0, $4 ; VIRIDIAN_FOREST
diff --git a/data/mapObjects/viridianforestexit.asm b/data/mapObjects/viridianforestexit.asm
index a96d5270..be8b65ea 100755
--- a/data/mapObjects/viridianforestexit.asm
+++ b/data/mapObjects/viridianforestexit.asm
@@ -9,9 +9,9 @@ ViridianForestExitObject: ; 0x5d598 (size=48)
db $0 ; signs
- db $2 ; people
- db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $3 + 4, $ff, $ff, $1 ; person
- db SPRITE_OLD_PERSON, $5 + 4, $2 + 4, $ff, $ff, $2 ; person
+ db $2 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, $3, $2, STAY, NONE, $1 ; person
+ object SPRITE_OLD_PERSON, $2, $5, STAY, NONE, $2 ; person
; warp-to
EVENT_DISP VIRIDIAN_FOREST_EXIT_WIDTH, $0, $4
diff --git a/data/mapObjects/viridiangym.asm b/data/mapObjects/viridiangym.asm
index 5cc1c086..468b9022 100755
--- a/data/mapObjects/viridiangym.asm
+++ b/data/mapObjects/viridiangym.asm
@@ -7,18 +7,18 @@ ViridianGymObject: ; 0x74bde (size=105)
db $0 ; signs
- db $b ; people
- db SPRITE_GIOVANNI, $1 + 4, $2 + 4, $ff, $d0, TRAINER | $1, GIOVANNI + $C8, $3
- db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $c + 4, $ff, $d0, TRAINER | $2, COOLTRAINER_M + $C8, $9
- db SPRITE_HIKER, $b + 4, $b + 4, $ff, $d1, TRAINER | $3, BLACKBELT + $C8, $6
- db SPRITE_ROCKER, $7 + 4, $a + 4, $ff, $d0, TRAINER | $4, TAMER + $C8, $3
- db SPRITE_HIKER, $7 + 4, $3 + 4, $ff, $d2, TRAINER | $5, BLACKBELT + $C8, $7
- db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $d + 4, $ff, $d3, TRAINER | $6, COOLTRAINER_M + $C8, $a
- db SPRITE_HIKER, $1 + 4, $a + 4, $ff, $d0, TRAINER | $7, BLACKBELT + $C8, $8
- db SPRITE_ROCKER, $10 + 4, $2 + 4, $ff, $d3, TRAINER | $8, TAMER + $C8, $4
- db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $6 + 4, $ff, $d0, TRAINER | $9, COOLTRAINER_M + $C8, $1
- db SPRITE_GYM_HELPER, $f + 4, $10 + 4, $ff, $d0, $a ; person
- db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, ITEM | $b, REVIVE
+ db $b ; objects
+ object SPRITE_GIOVANNI, $2, $1, STAY, DOWN, $1, OPP_GIOVANNI, $3
+ object SPRITE_BLACK_HAIR_BOY_1, $c, $7, STAY, DOWN, $2, OPP_COOLTRAINER_M, $9
+ object SPRITE_HIKER, $b, $b, STAY, UP, $3, OPP_BLACKBELT, $6
+ object SPRITE_ROCKER, $a, $7, STAY, DOWN, $4, OPP_TAMER, $3
+ object SPRITE_HIKER, $3, $7, STAY, LEFT, $5, OPP_BLACKBELT, $7
+ object SPRITE_BLACK_HAIR_BOY_1, $d, $5, STAY, RIGHT, $6, OPP_COOLTRAINER_M, $a
+ object SPRITE_HIKER, $a, $1, STAY, DOWN, $7, OPP_BLACKBELT, $8
+ object SPRITE_ROCKER, $2, $10, STAY, RIGHT, $8, OPP_TAMER, $4
+ object SPRITE_BLACK_HAIR_BOY_1, $6, $5, STAY, DOWN, $9, OPP_COOLTRAINER_M, $1
+ object SPRITE_GYM_HELPER, $10, $f, STAY, DOWN, $a ; person
+ object SPRITE_BALL, $10, $9, STAY, NONE, $b, REVIVE
; warp-to
EVENT_DISP VIRIDIAN_GYM_WIDTH, $11, $10
diff --git a/data/mapObjects/viridianhouse.asm b/data/mapObjects/viridianhouse.asm
index dd2d6069..ba45adac 100755
--- a/data/mapObjects/viridianhouse.asm
+++ b/data/mapObjects/viridianhouse.asm
@@ -7,11 +7,11 @@ ViridianHouseObject: ; 0x1d5bb (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_BALDING_GUY, $3 + 4, $5 + 4, $ff, $ff, $1 ; person
- db SPRITE_LITTLE_GIRL, $4 + 4, $1 + 4, $fe, $1, $2 ; person
- db SPRITE_BIRD, $5 + 4, $5 + 4, $fe, $2, $3 ; person
- db SPRITE_CLIPBOARD, $0 + 4, $4 + 4, $ff, $ff, $4 ; person
+ db $4 ; objects
+ object SPRITE_BALDING_GUY, $5, $3, STAY, NONE, $1 ; person
+ object SPRITE_LITTLE_GIRL, $1, $4, WALK, $1, $2 ; person
+ object SPRITE_BIRD, $5, $5, WALK, $2, $3 ; person
+ object SPRITE_CLIPBOARD, $4, $0, STAY, NONE, $4 ; person
; warp-to
EVENT_DISP VIRIDIAN_HOUSE_WIDTH, $7, $2
diff --git a/data/mapObjects/viridianmart.asm b/data/mapObjects/viridianmart.asm
index b1b367c7..ed2642f9 100755
--- a/data/mapObjects/viridianmart.asm
+++ b/data/mapObjects/viridianmart.asm
@@ -7,10 +7,10 @@ ViridianMartObject: ; 0x1d50a (size=38)
db $0 ; signs
- db $3 ; people
- db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
- db SPRITE_BUG_CATCHER, $5 + 4, $5 + 4, $fe, $1, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $3 + 4, $3 + 4, $ff, $ff, $3 ; person
+ db $3 ; objects
+ object SPRITE_MART_GUY, $0, $5, STAY, RIGHT, $1 ; person
+ object SPRITE_BUG_CATCHER, $5, $5, WALK, $1, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $3, $3, STAY, NONE, $3 ; person
; warp-to
EVENT_DISP VIRIDIAN_MART_WIDTH, $7, $3
diff --git a/data/mapObjects/viridianpokecenter.asm b/data/mapObjects/viridianpokecenter.asm
index 6631a814..652efb97 100755
--- a/data/mapObjects/viridianpokecenter.asm
+++ b/data/mapObjects/viridianpokecenter.asm
@@ -7,11 +7,11 @@ ViridianPokecenterObject: ; 0x44277 (size=44)
db $0 ; signs
- db $4 ; people
- db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
- db SPRITE_GENTLEMAN, $5 + 4, $a + 4, $fe, $1, $2 ; person
- db SPRITE_BLACK_HAIR_BOY_1, $3 + 4, $4 + 4, $ff, $ff, $3 ; person
- db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+ db $4 ; objects
+ object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_GENTLEMAN, $a, $5, WALK, $1, $2 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, $4, $3, STAY, NONE, $3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
; warp-to
EVENT_DISP VIRIDIAN_POKECENTER_WIDTH, $7, $3
diff --git a/data/mon_party_sprites.asm b/data/mon_party_sprites.asm
index 92297b6d..7e434dce 100755
--- a/data/mon_party_sprites.asm
+++ b/data/mon_party_sprites.asm
@@ -13,8 +13,8 @@ MonPartyData: ; 7190d (1c:590d)
dn SPRITE_SNAKE, SPRITE_SNAKE ;Ekans/Arbok
dn SPRITE_FAIRY, SPRITE_FAIRY ;Pikachu/Raichu
dn SPRITE_MON, SPRITE_MON ;Sandshrew/Sandslash
- dn SPRITE_MON, SPRITE_MON ;Nidoran?/Nidorina
- dn SPRITE_MON, SPRITE_MON ;Nidoqueen/Nidoran?
+ dn SPRITE_MON, SPRITE_MON ;NidoranF/Nidorina
+ dn SPRITE_MON, SPRITE_MON ;Nidoqueen/NidoranM
dn SPRITE_MON, SPRITE_MON ;Nidorino/Nidoking
dn SPRITE_FAIRY, SPRITE_FAIRY ;Clefairy/Clefable
dn SPRITE_QUADRUPED, SPRITE_QUADRUPED ;Vulpix/Ninetales
diff --git a/data/moves.asm b/data/moves.asm
index 22165b7d..44859681 100755
--- a/data/moves.asm
+++ b/data/moves.asm
@@ -11,6 +11,7 @@ move: macro
endm
move POUND, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
+MoveEnd:
move KARATE_CHOP, NO_ADDITIONAL_EFFECT, 50, NORMAL, 100, 25
move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 10
move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 85, 15
diff --git a/data/sgb_packets.asm b/data/sgb_packets.asm
index 37a39f1d..a0af4a44 100755
--- a/data/sgb_packets.asm
+++ b/data/sgb_packets.asm
@@ -50,6 +50,7 @@ DATA_SND: MACRO
db \2 ; bank
db \3 ; length (1-11)
ENDM
+
BlkPacket_WholeScreen: ; 72611 (1c:6611)
db $21
db $1,$3,$0,$0,$0,$13,$11,$0
@@ -170,7 +171,6 @@ MaskEnFreezePacket: ; 72881 (1c:6881)
MaskEnCancelPacket: ; 72891 (1c:6891)
MASK_EN 0
-
; These are DATA_SND packets containing SNES code.
; This set of packets is found in several Japanese SGB-compatible titles.
; It appears to be part of NCL's SGB devkit.
diff --git a/data/special_warps.asm b/data/special_warps.asm
index 480bac89..b8baccfb 100755
--- a/data/special_warps.asm
+++ b/data/special_warps.asm
@@ -39,26 +39,26 @@ FirstMapSpec: ; 6420 (1:6420)
FLYWARP_DATA REDS_HOUSE_2F_WIDTH,6,3
db REDS_HOUSE_2
-BattleCenterSpec1: ; 6428 (1:6428)
- db BATTLE_CENTER
- FLYWARP_DATA BATTLE_CENTER_WIDTH,4,3
- db CLUB
-
-BattleCenterSpec2: ; 6430 (1:6430)
- db BATTLE_CENTER
- FLYWARP_DATA BATTLE_CENTER_WIDTH,4,6
- db CLUB
-
-TradeCenterSpec1: ; 6438 (1:6438)
+TradeCenterSpec1: ; 6428 (1:6428)
db TRADE_CENTER
FLYWARP_DATA TRADE_CENTER_WIDTH,4,3
db CLUB
-TradeCenterSpec2: ; 6440 (1:6440)
+TradeCenterSpec2: ; 6430 (1:6430)
db TRADE_CENTER
FLYWARP_DATA TRADE_CENTER_WIDTH,4,6
db CLUB
+ColosseumSpec1: ; 6438 (1:6438)
+ db COLOSSEUM
+ FLYWARP_DATA COLOSSEUM_WIDTH,4,3
+ db CLUB
+
+ColosseumSpec2: ; 6440 (1:6440)
+ db COLOSSEUM
+ FLYWARP_DATA COLOSSEUM_WIDTH,4,6
+ db CLUB
+
FlyWarpDataPtr: ; 6448 (1:6448)
db PALLET_TOWN, 0
dw PalletTownFlyWarp
diff --git a/data/town_map_entries.asm b/data/town_map_entries.asm
index 0362564f..bb0f31ff 100755
--- a/data/town_map_entries.asm
+++ b/data/town_map_entries.asm
@@ -38,64 +38,64 @@ ExternalMapEntries: ; 7139c (1c:539c)
EMAP $B,$0,Route25Name
InternalMapEntries: ; 7140b (1c:540b)
- IMAP $29,$2,$B,PalletTownName
- IMAP $2E,$2,$8,ViridianCityName
- IMAP $33,$2,$6,Route2Name
- IMAP $34,$2,$4,ViridianForestName
- IMAP $3B,$2,$3,PewterCityName
- IMAP $3E,$6,$2,MountMoonName
- IMAP $44,$A,$2,CeruleanCityName
- IMAP $45,$5,$2,Route4Name
- IMAP $46,$A,$2,CeruleanCityName
- IMAP $49,$A,$4,Route5Name
- IMAP $4C,$A,$6,Route6Name
- IMAP $4F,$9,$5,Route7Name
- IMAP $51,$B,$5,Route8Name
- IMAP $53,$E,$3,RockTunnelName
- IMAP $54,$F,$4,PowerPlantName
- IMAP $57,$D,$9,Route11Name
- IMAP $58,$E,$7,Route12Name
- IMAP $59,$C,$0,SeaCottageName
- IMAP $5F,$A,$9,VermilionCityName
- IMAP $69,$9,$A,SSAnneName
- IMAP $6D,$0,$4,VictoryRoadName
- IMAP $77,$0,$2,PokemonLeagueName
- IMAP $78,$A,$5,UndergroundPathName
- IMAP $79,$0,$2,PokemonLeagueName
- IMAP $7A,$A,$5,UndergroundPathName
- IMAP $8D,$7,$5,CeladonCityName
- IMAP $8E,$E,$5,LavenderTownName
- IMAP $95,$F,$5,PokemonTowerName
- IMAP $98,$E,$5,LavenderTownName
- IMAP $9C,$8,$D,FuchsiaCityName
- IMAP $9D,$8,$C,SafariZoneName
- IMAP $9F,$8,$D,FuchsiaCityName
- IMAP $A3,$5,$F,SeafoamIslandsName
- IMAP $A4,$A,$9,VermilionCityName
- IMAP $A5,$8,$D,FuchsiaCityName
- IMAP $A6,$2,$F,PokemonMansionName
- IMAP $AE,$2,$F,CinnabarIslandName
- IMAP $AF,$0,$2,IndigoPlateauName
- IMAP $B8,$A,$5,SaffronCityName
- IMAP $BA,$9,$D,Route15Name
- IMAP $BD,$4,$5,Route16Name
- IMAP $BE,$E,$A,Route12Name
- IMAP $C0,$7,$D,Route18Name
- IMAP $C1,$5,$F,SeafoamIslandsName
- IMAP $C2,$0,$7,Route22Name
- IMAP $C3,$0,$4,VictoryRoadName
- IMAP $C4,$E,$7,Route12Name
- IMAP $C5,$A,$9,VermilionCityName
- IMAP $C6,$3,$4,DiglettsCaveName
- IMAP $C7,$0,$4,VictoryRoadName
- IMAP $CF,$7,$5,RocketHQName
- IMAP $D6,$A,$5,SilphCoName
- IMAP $D9,$2,$F,PokemonMansionName
- IMAP $E2,$8,$C,SafariZoneName
- IMAP $E5,$9,$1,CeruleanCaveName
- IMAP $E6,$E,$5,LavenderTownName
- IMAP $E7,$A,$2,CeruleanCityName
- IMAP $E9,$E,$3,RockTunnelName
- IMAP $ED,$A,$5,SilphCoName
- IMAP $F8,$0,$2,PokemonLeagueName
+ IMAP OAKS_LAB, $2,$B,PalletTownName
+ IMAP VIRIDIAN_GYM, $2,$8,ViridianCityName
+ IMAP VIRIDIAN_FOREST_ENTRANCE, $2,$6,Route2Name
+ IMAP VIRIDIAN_FOREST, $2,$4,ViridianForestName
+ IMAP PEWTER_POKECENTER, $2,$3,PewterCityName
+ IMAP MT_MOON_3, $6,$2,MountMoonName
+ IMAP CERULEAN_MART, $A,$2,CeruleanCityName
+ IMAP MT_MOON_POKECENTER, $5,$2,Route4Name
+ IMAP TRASHED_HOUSE_COPY, $A,$2,CeruleanCityName
+ IMAP DAYCAREM, $A,$4,Route5Name
+ IMAP PATH_ENTRANCE_ROUTE_6_COPY,$A,$6,Route6Name
+ IMAP PATH_ENTRANCE_ROUTE_7_COPY,$9,$5,Route7Name
+ IMAP PATH_ENTRANCE_ROUTE_8, $B,$5,Route8Name
+ IMAP ROCK_TUNNEL_1, $E,$3,RockTunnelName
+ IMAP POWER_PLANT, $F,$4,PowerPlantName
+ IMAP ROUTE_11_GATE_2F, $D,$9,Route11Name
+ IMAP ROUTE_12_GATE_1F, $E,$7,Route12Name
+ IMAP BILLS_HOUSE, $C,$0,SeaCottageName
+ IMAP VERMILION_DOCK, $A,$9,VermilionCityName
+ IMAP SS_ANNE_10, $9,$A,SSAnneName
+ IMAP VICTORY_ROAD_1, $0,$4,VictoryRoadName
+ IMAP HALL_OF_FAME, $0,$2,PokemonLeagueName
+ IMAP UNDERGROUND_PATH_NS, $A,$5,UndergroundPathName
+ IMAP CHAMPIONS_ROOM, $0,$2,PokemonLeagueName
+ IMAP UNDERGROUND_PATH_WE, $A,$5,UndergroundPathName
+ IMAP CELADON_HOTEL, $7,$5,CeladonCityName
+ IMAP LAVENDER_POKECENTER, $E,$5,LavenderTownName
+ IMAP POKEMONTOWER_7, $F,$5,PokemonTowerName
+ IMAP LAVENDER_HOUSE_2, $E,$5,LavenderTownName
+ IMAP FUCHSIA_HOUSE_2, $8,$D,FuchsiaCityName
+ IMAP SAFARI_ZONE_ENTRANCE, $8,$C,SafariZoneName
+ IMAP FUCHSIA_MEETING_ROOM, $8,$D,FuchsiaCityName
+ IMAP SEAFOAM_ISLANDS_5, $5,$F,SeafoamIslandsName
+ IMAP VERMILION_HOUSE_2, $A,$9,VermilionCityName
+ IMAP FUCHSIA_HOUSE_3, $8,$D,FuchsiaCityName
+ IMAP MANSION_1, $2,$F,PokemonMansionName
+ IMAP CINNABAR_MART_COPY, $2,$F,CinnabarIslandName
+ IMAP INDIGO_PLATEAU_LOBBY, $0,$2,IndigoPlateauName
+ IMAP SAFFRON_HOUSE_2, $A,$5,SaffronCityName
+ IMAP ROUTE_15_GATE_2F, $9,$D,Route15Name
+ IMAP ROUTE_16_HOUSE, $4,$5,Route16Name
+ IMAP ROUTE_12_HOUSE, $E,$A,Route12Name
+ IMAP ROUTE_18_GATE_2F, $7,$D,Route18Name
+ IMAP SEAFOAM_ISLANDS_1, $5,$F,SeafoamIslandsName
+ IMAP ROUTE_22_GATE, $0,$7,Route22Name
+ IMAP VICTORY_ROAD_2, $0,$4,VictoryRoadName
+ IMAP ROUTE_12_GATE_2F, $E,$7,Route12Name
+ IMAP VERMILION_HOUSE_3, $A,$9,VermilionCityName
+ IMAP DIGLETTS_CAVE, $3,$4,DiglettsCaveName
+ IMAP VICTORY_ROAD_3, $0,$4,VictoryRoadName
+ IMAP UNUSED_MAP_CE, $7,$5,RocketHQName
+ IMAP SILPH_CO_8F, $A,$5,SilphCoName
+ IMAP MANSION_4, $2,$F,PokemonMansionName
+ IMAP SAFARI_ZONE_REST_HOUSE_4, $8,$C,SafariZoneName
+ IMAP UNKNOWN_DUNGEON_1, $9,$1,CeruleanCaveName
+ IMAP NAME_RATERS_HOUSE, $E,$5,LavenderTownName
+ IMAP CERULEAN_HOUSE_3, $A,$2,CeruleanCityName
+ IMAP ROCK_TUNNEL_2, $E,$3,RockTunnelName
+ IMAP SILPH_CO_ELEVATOR, $A,$5,SilphCoName
+ IMAP AGATHAS_ROOM, $0,$2,PokemonLeagueName
db $FF
diff --git a/data/town_map_order.asm b/data/town_map_order.asm
index 2713787c..b43ed010 100755
--- a/data/town_map_order.asm
+++ b/data/town_map_order.asm
@@ -46,3 +46,4 @@ TownMapOrder: ; 70f95 (1c:4f95)
db VICTORY_ROAD_3
db INDIGO_PLATEAU
db POWER_PLANT
+TownMapOrderEnd:
diff --git a/data/trainer_types.asm b/data/trainer_types.asm
index eff6c212..52c7bd0b 100755
--- a/data/trainer_types.asm
+++ b/data/trainer_types.asm
@@ -1,17 +1,18 @@
FemaleTrainerList:: ; 33c3 (0:33c3)
- db $c8+LASS
- db $c8+JR__TRAINER_F
- db $c8+BEAUTY
- db $c8+COOLTRAINER_F
+ db OPP_LASS
+ db OPP_JR__TRAINER_F
+ db OPP_BEAUTY
+ db OPP_COOLTRAINER_F
db $FF
EvilTrainerList:: ; 33c8 (0:33c8)
- db $c8+JUGGLER_X
- db $c8+GAMBLER
- db $c8+ROCKER
- db $c8+JUGGLER
- db $c8+CHIEF
- db $c8+SCIENTIST
- db $c8+GIOVANNI
- db $c8+ROCKET
- db $FF
+ db OPP_JUGGLER_X
+ db OPP_GAMBLER
+ db OPP_ROCKER
+ db OPP_JUGGLER
+ db OPP_CHIEF
+ db OPP_SCIENTIST
+ db OPP_GIOVANNI
+ db OPP_ROCKET
+
+ db $ff
diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm
index ae4ecb0d..e00fc57d 100755
--- a/engine/HoF_room_pc.asm
+++ b/engine/HoF_room_pc.asm
@@ -1,45 +1,45 @@
HallOfFamePC: ; 7405c (1d:405c)
callba AnimateHallOfFame
call ClearScreen
- ld c, $64
+ ld c, 100
call DelayFrames
call DisableLCD
ld hl, vFont
ld bc, $800 / 2
- call Func_74171
+ call ZeroMemory
ld hl, vChars2 + $600
ld bc, $200 / 2
- call Func_74171
+ call ZeroMemory
ld hl, vChars2 + $7e0
ld bc, $10
ld a, $ff
call FillMemory
- ld hl, wTileMap
- call Func_7417b
- hlCoord 0, 14
- call Func_7417b
+ coord hl, 0, 0
+ call FillFourRowsWithBlack
+ coord hl, 0, 14
+ call FillFourRowsWithBlack
ld a, $c0
- ld [rBGP], a ; $ff47
+ ld [rBGP], a
call EnableLCD
ld a, $ff
call PlaySoundWaitForCurrent
ld c, BANK(Music_Credits)
ld a, MUSIC_CREDITS
call PlayMusic
- ld c, $80
+ ld c, 128
call DelayFrames
xor a
- ld [wWhichTrade], a ; wWhichTrade
- ld [wTrainerEngageDistance], a
+ ld [wUnusedCD3D], a ; not read
+ ld [wNumCreditsMonsDisplayed], a
jp Credits
-Func_740ba: ; 740ba (1d:40ba)
- ld hl, DataTable_74160 ; $4160
- ld b, $4
+FadeInCreditsText: ; 740ba (1d:40ba)
+ ld hl, HoFGBPalettes
+ ld b, 4
.asm_740bf
ld a, [hli]
- ld [rBGP], a ; $ff47
- ld c, $5
+ ld [rBGP], a
+ ld c, 5
call DelayFrames
dec b
jr nz, .asm_740bf
@@ -52,7 +52,7 @@ DisplayCreditsMon: ; 740cb (1d:40cb)
call FillMiddleOfScreenWithWhite
; display the next monster from CreditsMons
- ld hl,wTrainerEngageDistance
+ ld hl,wNumCreditsMonsDisplayed
ld c,[hl] ; how many monsters have we displayed so far?
inc [hl]
ld b,0
@@ -61,132 +61,143 @@ DisplayCreditsMon: ; 740cb (1d:40cb)
ld a,[hl]
ld [wcf91],a
ld [wd0b5],a
- hlCoord 8, 6
+ coord hl, 8, 6
call GetMonHeader
call LoadFrontSpriteByMonIndex
ld hl,vBGMap0 + $c
- call Func_74164
+ call CreditsCopyTileMapToVRAM
xor a
ld [H_AUTOBGTRANSFERENABLED],a
call LoadScreenTilesFromBuffer1
ld hl,vBGMap0
- call Func_74164
+ call CreditsCopyTileMapToVRAM
ld a,$A7
- ld [$FF4B],a
+ ld [rWX],a
ld hl,vBGMap1
- call Func_74164
+ call CreditsCopyTileMapToVRAM
call FillMiddleOfScreenWithWhite
- ld a,$FC
- ld [$FF47],a
+ ld a,%11111100 ; make the mon a black silhouette
+ ld [rBGP],a
+
+; scroll the mon left by one tile 7 times
ld bc,7
-.next
- call Func_74140
+.scrollLoop1
+ call ScrollCreditsMonLeft
dec c
- jr nz,.next
- ld c,$14
-.next2
- call Func_74140
- ld a,[$FF4B]
+ jr nz,.scrollLoop1
+
+; scroll the mon left by one tile 20 times
+; This time, we have to move the window left too in order to hide the text that
+; is wrapping around to the right side of the screen.
+ ld c,20
+.scrollLoop2
+ call ScrollCreditsMonLeft
+ ld a,[rWX]
sub 8
- ld [$FF4B],a
+ ld [rWX],a
dec c
- jr nz,.next2
+ jr nz,.scrollLoop2
+
xor a
ld [hWY],a
- ld a,$C0
- ld [$FF47],a
+ ld a,%11000000
+ ld [rBGP],a
ret
INCLUDE "data/credit_mons.asm"
-Func_74140: ; 74140 (1d:4140)
+ScrollCreditsMonLeft: ; 74140 (1d:4140)
ld h, b
ld l, $20
- call Func_74152
+ call ScrollCreditsMonLeft_SetSCX
ld h, $0
ld l, $70
- call Func_74152
+ call ScrollCreditsMonLeft_SetSCX
ld a, b
add $8
ld b, a
ret
-Func_74152: ; 74152 (1d:4152)
- ld a, [$ff44]
+ScrollCreditsMonLeft_SetSCX: ; 74152 (1d:4152)
+ ld a, [rLY]
cp l
- jr nz, Func_74152
+ jr nz, ScrollCreditsMonLeft_SetSCX
ld a, h
- ld [rSCX], a ; $ff43
-.asm_7415a
- ld a, [$ff44]
+ ld [rSCX], a
+.loop
+ ld a, [rLY]
cp h
- jr z, .asm_7415a
+ jr z, .loop
ret
-DataTable_74160: ; 74160 (1d:4160)
- db $C0,$D0,$E0,$F0
+HoFGBPalettes: ; 74160 (1d:4160)
+ db %11000000
+ db %11010000
+ db %11100000
+ db %11110000
-Func_74164: ; 74164 (1d:4164)
+CreditsCopyTileMapToVRAM: ; 74164 (1d:4164)
ld a, l
- ld [H_AUTOBGTRANSFERDEST], a ; $ffbc
+ ld [H_AUTOBGTRANSFERDEST], a
ld a, h
- ld [$ffbd], a
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERDEST + 1], a
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
jp Delay3
-Func_74171: ; 74171 (1d:4171)
- ld [hl], $0
+ZeroMemory: ; 74171 (1d:4171)
+; zero bc bytes at hl
+ ld [hl], 0
inc hl
inc hl
dec bc
ld a, b
or c
- jr nz, Func_74171
+ jr nz, ZeroMemory
ret
-Func_7417b: ; 7417b (1d:417b)
- ld bc, $50
+FillFourRowsWithBlack: ; 7417b (1d:417b)
+ ld bc, SCREEN_WIDTH * 4
ld a, $7e
jp FillMemory
FillMiddleOfScreenWithWhite: ; 74183 (1d:4183)
- hlCoord 0, 4
- ld bc, $c8 ; 10 rows of 20 tiles each
- ld a, $7f ; blank white tile
+ coord hl, 0, 4
+ ld bc, SCREEN_WIDTH * 10
+ ld a, " "
jp FillMemory
Credits: ; 7418e (1d:418e)
- ld de, CreditsOrder ; $4243
+ ld de, CreditsOrder
push de
-.asm_74192
+.nextCreditsScreen
pop de
- hlCoord 9, 6
+ coord hl, 9, 6
push hl
call FillMiddleOfScreenWithWhite
pop hl
-.asm_7419b
+.nextCreditsCommand
ld a, [de]
inc de
push de
cp $ff
- jr z, .asm_741d5
+ jr z, .fadeInTextAndShowMon
cp $fe
- jr z, .asm_741dc
+ jr z, .showTextAndShowMon
cp $fd
- jr z, .asm_741e6
+ jr z, .fadeInText
cp $fc
- jr z, .asm_741ed
+ jr z, .showText
cp $fb
- jr z, .asm_741f4
+ jr z, .showCopyrightText
cp $fa
jr z, .showTheEnd
push hl
push hl
- ld hl, CreditsTextPointers ; $42c3
+ ld hl, CreditsTextPointers
add a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld e, [hl]
inc hl
@@ -199,51 +210,51 @@ Credits: ; 7418e (1d:418e)
add hl, bc
call PlaceString
pop hl
- ld bc, $28
+ ld bc, SCREEN_WIDTH * 2
add hl, bc
pop de
- jr .asm_7419b
-.asm_741d5
- call Func_740ba
- ld c, $5a
- jr .asm_741de
-.asm_741dc
- ld c, $6e
-.asm_741de
+ jr .nextCreditsCommand
+.fadeInTextAndShowMon
+ call FadeInCreditsText
+ ld c, 90
+ jr .next1
+.showTextAndShowMon
+ ld c, 110
+.next1
call DelayFrames
call DisplayCreditsMon
- jr .asm_74192
-.asm_741e6
- call Func_740ba
- ld c, $78
- jr .asm_741ef
-.asm_741ed
- ld c, $8c
-.asm_741ef
+ jr .nextCreditsScreen
+.fadeInText
+ call FadeInCreditsText
+ ld c, 120
+ jr .next2
+.showText
+ ld c, 140
+.next2
call DelayFrames
- jr .asm_74192
-.asm_741f4
+ jr .nextCreditsScreen
+.showCopyrightText
push de
callba LoadCopyrightTiles
pop de
pop de
- jr .asm_7419b
+ jr .nextCreditsCommand
.showTheEnd
- ld c, $10
+ ld c, 16
call DelayFrames
call FillMiddleOfScreenWithWhite
pop de
ld de, TheEndGfx
ld hl, vChars2 + $600
- ld bc, (BANK(TheEndGfx) << 8) + $0a
+ lb bc, BANK(TheEndGfx), (TheEndGfxEnd - TheEndGfx) / $10
call CopyVideoData
- hlCoord 4, 8
+ coord hl, 4, 8
ld de, TheEndTextString
call PlaceString
- hlCoord 4, 9
+ coord hl, 4, 9
inc de
call PlaceString
- jp Func_740ba
+ jp FadeInCreditsText
TheEndTextString: ; 74229 (1d:4229)
; "T H E E N D"
@@ -254,5 +265,6 @@ INCLUDE "data/credits_order.asm"
INCLUDE "text/credits_text.asm"
-TheEndGfx: ; 7473e (1d:473e) ; 473E (473F on blue)
+TheEndGfx: ; 7473e (1d:473e) (7473f on blue)
INCBIN "gfx/theend.interleave.2bpp"
+TheEndGfxEnd:
diff --git a/engine/bank3d/bank3d_battle.asm b/engine/bank3d/bank3d_battle.asm
index 9ce82f5e..ac4cd849 100644
--- a/engine/bank3d/bank3d_battle.asm
+++ b/engine/bank3d/bank3d_battle.asm
@@ -226,15 +226,15 @@ Func_f61a6: ; f61a6 (3d:f61a6)
add hl, bc
ld a, [H_DOWNARROWBLINKCNT1]
add $31
- jr asm_f6203
+ jr CopyUncompressedPicToHL
-Func_f61f9: ; 3f0c6 (f:70c6)
+Func_f61f9: ; f61f9 (3d:61f9)
ld a, [wPredefRegisters]
ld h, a
ld a, [wPredefRegisters + 1]
ld l, a
ld a, [$ffe1]
-asm_f6203: ; f6203 (3d:6203)
+CopyUncompressedPicToHL: ; f6203 (3d:6203)
ld bc, $707
ld de, $14
push af
diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm
index 8791d538..626eea9e 100755
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -163,14 +163,14 @@ DrawFrameBlock: ; 78000 (1e:4000)
PlayAnimation: ; 780f1 (1e:40f1)
xor a
- ld [$FF8B],a
+ ld [$FF8B],a ; it looks like nothing reads this
ld [W_SUBANIMTRANSFORM],a
ld a,[W_ANIMATIONID] ; get animation number
dec a
ld l,a
ld h,0
add hl,hl
- ld de,AttackAnimationPointers ; $607d ; animation command stream pointers
+ ld de,AttackAnimationPointers ; animation command stream pointers
add hl,de
ld a,[hli]
ld h,[hl]
@@ -199,7 +199,7 @@ PlayAnimation: ; 780f1 (1e:40f1)
ld [wAnimSoundID],a ; store sound
push hl
push de
- call Func_7986f
+ call GetMoveSound
call PlaySound
pop de
pop hl
@@ -223,7 +223,7 @@ PlayAnimation: ; 780f1 (1e:40f1)
rla
sla c
rla
- ld [wd09f],a ; tile select
+ ld [wWhichBattleAnimTileset],a
ld a,[hli] ; sound
ld [wAnimSoundID],a ; store sound
ld a,[hli] ; subanimation ID
@@ -243,7 +243,7 @@ PlayAnimation: ; 780f1 (1e:40f1)
push hl
ld a,[rOBP0]
push af
- ld a,[wcc79]
+ ld a,[wAnimPalette]
ld [rOBP0],a
call LoadAnimationTileset
call LoadSubanimation
@@ -328,7 +328,7 @@ GetSubanimationTransform2: ; 781ca (1e:41ca)
; loads tile patterns for battle animations
LoadAnimationTileset: ; 781d2 (1e:41d2)
- ld a,[wd09f] ; tileset select
+ ld a,[wWhichBattleAnimTileset]
add a
add a
ld hl,AnimationTilesetPointers
@@ -336,14 +336,14 @@ LoadAnimationTileset: ; 781d2 (1e:41d2)
ld d,0
add hl,de
ld a,[hli]
- ld [wd07d],a ; number of tiles
+ ld [wTempTilesetNumTiles],a ; number of tiles
ld a,[hli]
ld e,a
ld a,[hl]
ld d,a ; de = address of tileset
ld hl,vSprites + $310
ld b, BANK(AnimationTileset1) ; ROM bank
- ld a,[wd07d]
+ ld a,[wTempTilesetNumTiles]
ld c,a ; number of tiles
jp CopyVideoData ; load tileset
@@ -375,7 +375,7 @@ MoveAnimation: ; 78d5e (1e:4d5e)
push bc
push af
call WaitForSoundToFinish
- call Func_78e23
+ call SetAnimationPalette
ld a,[W_ANIMATIONID]
and a
jr z,.AnimationFinished
@@ -404,7 +404,7 @@ MoveAnimation: ; 78d5e (1e:4d5e)
call WaitForSoundToFinish
xor a
ld [W_SUBANIMSUBENTRYADDR],a
- ld [wd09b],a
+ ld [wUnusedD09B],a
ld [W_SUBANIMTRANSFORM],a
dec a
ld [wAnimSoundID],a
@@ -464,16 +464,16 @@ AnimationTypePointerTable: ; 78dcf (1e:4dcf)
ShakeScreenVertically: ; 78ddb (1e:4ddb)
call PlayApplyingAttackSound
- ld b, $8
+ ld b, 8
jp AnimationShakeScreenVertically
ShakeScreenHorizontallyHeavy: ; 78de3 (1e:4de3)
call PlayApplyingAttackSound
- ld b, $8
+ ld b, 8
jp AnimationShakeScreenHorizontallyFast
ShakeScreenHorizontallySlow: ; 78deb (1e:4deb)
- ld bc, $602
+ lb bc, 6, 2
jr AnimationShakeScreenHorizontallySlow
BlinkEnemyMonSprite: ; 78df0 (1e:4df0)
@@ -482,71 +482,71 @@ BlinkEnemyMonSprite: ; 78df0 (1e:4df0)
ShakeScreenHorizontallyLight: ; 78df6 (1e:4df6)
call PlayApplyingAttackSound
- ld b, $2
+ ld b, 2
jp AnimationShakeScreenHorizontallyFast
ShakeScreenHorizontallySlow2: ; 78dfe (1e:4dfe)
- ld bc, $302
+ lb bc, 3, 2
AnimationShakeScreenHorizontallySlow: ; 78e01 (1e:4e01)
push bc
push bc
-.asm_78e03
- ld a, [rWX] ; $ff4b
+.loop1
+ ld a, [rWX]
inc a
- ld [rWX], a ; $ff4b
- ld c, $2
+ ld [rWX], a
+ ld c, 2
call DelayFrames
dec b
- jr nz, .asm_78e03
+ jr nz, .loop1
pop bc
-.asm_78e11
- ld a, [rWX] ; $ff4b
+.loop2
+ ld a, [rWX]
dec a
- ld [rWX], a ; $ff4b
- ld c, $2
+ ld [rWX], a
+ ld c, 2
call DelayFrames
dec b
- jr nz, .asm_78e11
+ jr nz, .loop2
pop bc
dec c
jr nz, AnimationShakeScreenHorizontallySlow
ret
-Func_78e23: ; 78e23 (1e:4e23)
+SetAnimationPalette: ; 78e23 (1e:4e23)
ld a, [wOnSGB]
and a
ld a, $e4
- jr z, .asm_78e47
+ jr z, .notSGB
ld a, $f0
- ld [wcc79], a
+ ld [wAnimPalette], a
ld b, $e4
- ld a, [W_ANIMATIONID] ; W_ANIMATIONID
+ ld a, [W_ANIMATIONID]
cp TRADE_BALL_DROP_ANIM
- jr c, .asm_78e3f
+ jr c, .next
cp TRADE_BALL_POOF_ANIM + 1
- jr nc, .asm_78e3f
+ jr nc, .next
ld b, $f0
-.asm_78e3f
+.next
ld a, b
- ld [rOBP0], a ; $ff48
+ ld [rOBP0], a
ld a, $6c
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
ret
-.asm_78e47
+.notSGB
ld a, $e4
- ld [wcc79], a
- ld [rOBP0], a ; $ff48
+ ld [wAnimPalette], a
+ ld [rOBP0], a
ld a, $6c
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
ret
PlaySubanimation: ; 78e53 (1e:4e53)
ld a,[wAnimSoundID]
cp a,$FF
jr z,.skipPlayingSound
- call Func_7986f
- call PlaySound ; play sound effect
+ call GetMoveSound
+ call PlaySound
.skipPlayingSound
ld hl,wOAMBuffer ; base address of OAM buffer
ld a,l
@@ -573,7 +573,7 @@ PlaySubanimation: ; 78e53 (1e:4e53)
push hl
ld e,[hl] ; base coordinate ID
ld d,0
- ld hl,FrameBlockBaseCoords ; $7c85 ; base coordinate table
+ ld hl,FrameBlockBaseCoords ; base coordinate table
add hl,de
add hl,de
ld a,[hli]
@@ -659,7 +659,7 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5)
dw AnimationFlashScreen
db TAIL_WHIP
- dw Func_790d0
+ dw TailWhipAnimationUnused
db GROWL
dw DoGrowlSpecialEffects
@@ -695,13 +695,13 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5)
dw DoRockSlideSpecialEffects
db TRADE_BALL_DROP_ANIM
- dw Func_79041
+ dw TradeHidePokemon
db TRADE_BALL_SHAKE_ANIM
- dw Func_7904c
+ dw TradeShakePokeball
db TRADE_BALL_TILT_ANIM
- dw Func_7907c
+ dw TradeJumpPokeball
db TOSS_ANIM
dw DoBallTossSpecialEffects
@@ -733,8 +733,8 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e)
cp a,11 ; is it the beginning of the subanimation?
jr nz,.skipPlayingSound
; if it is the beginning of the subanimation, play a sound
- ld a,(SFX_08_41 - SFX_Headers_08) / 3
- call PlaySound ; play sound
+ ld a,SFX_BALL_TOSS
+ call PlaySound
.skipPlayingSound
ld a,[W_ISINBATTLE]
cp a,02 ; is it a trainer battle?
@@ -751,20 +751,20 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e)
cp a,1
ret nz
.moveGhostMarowakLeft
- hlCoord 17, 0
+ coord hl, 17, 0
ld de,20
- ld bc,$0707 ; 7 rows and 7 columns
+ lb bc, 7, 7
.loop
push hl
push bc
- call Func_79862 ; move row of tiles left
+ call AnimCopyRowRight ; move row of tiles left
pop bc
pop hl
add hl,de
dec b
jr nz,.loop
ld a,%00001000
- ld [$ff10],a ; Channel 1 sweep register
+ ld [rNR10],a ; Channel 1 sweep register
ret
.isTrainerBattle ; if it's a trainer battle, shorten the animation by one frame
ld a,[W_SUBANIMCOUNTER]
@@ -779,8 +779,8 @@ DoBallShakeSpecialEffects: ; 78f96 (1e:4f96)
cp a,4 ; is it the beginning of a shake?
jr nz,.skipPlayingSound
; if it is the beginning of a shake, play a sound and wait 2/3 of a second
- ld a,(SFX_08_3c - SFX_Headers_08) / 3
- call PlaySound ; play sound
+ ld a,SFX_TINK
+ call PlaySound
ld c,40
call DelayFrames
.skipPlayingSound
@@ -788,9 +788,9 @@ DoBallShakeSpecialEffects: ; 78f96 (1e:4f96)
dec a
ret nz
; if it's the end of the ball shaking subanimation, check if more shakes are left and restart the subanimation
- ld a,[wWhichTrade] ; number of shakes
+ ld a,[wNumShakes] ; number of shakes
dec a ; decrement number of shakes
- ld [wWhichTrade],a
+ ld [wNumShakes],a
ret z
; if there are shakes left, restart the subanimation
ld a,[W_SUBANIMSUBENTRYADDR]
@@ -812,7 +812,7 @@ DoPoofSpecialEffects: ; 78fce (1e:4fce)
ld a,[W_SUBANIMCOUNTER]
cp a,5
ret nz
- ld a,(SFX_08_42 - SFX_Headers_08) / 3
+ ld a,SFX_BALL_POOF
jp PlaySound
DoRockSlideSpecialEffects: ; 78fd9 (1e:4fd9)
@@ -827,9 +827,9 @@ DoRockSlideSpecialEffects: ; 78fd9 (1e:4fd9)
; if the subaninmation counter is between 8 and 11, shake the screen horizontally and vertically
.shakeScreen
ld b,1
- predef Func_48125 ; shake horizontally
+ predef PredefShakeScreenHorizontally ; shake horizontally
ld b,1
- predef_jump Func_480ff ; shake vertically
+ predef_jump PredefShakeScreenVertically ; shake vertically
FlashScreenEveryEightFrameBlocks: ; 78ff7 (1e:4ff7)
ld a,[W_SUBANIMCOUNTER]
@@ -850,7 +850,7 @@ DoExplodeSpecialEffects: ; 79009 (1e:5009)
cp a,1 ; is it the end of the subanimation?
jr nz,FlashScreenEveryFourFrameBlocks
; if it's the end of the subanimation, make the attacking pokemon disappear
- hlCoord 1, 5
+ coord hl, 1, 5
jp AnimationHideMonPic ; make pokemon disappear
; flashes the screen when subanimation counter is 1 modulo 4
@@ -867,8 +867,8 @@ DoBlizzardSpecialEffects: ; 79016 (1e:5016)
ret
; flashes the screen at 3 points in the subanimation
-; XXX is this unused?
-Func_7902e: ; 7902e (1e:502e)
+; unused
+FlashScreenUnused: ; 7902e (1e:502e)
ld a,[W_SUBANIMCOUNTER]
cp a,14
jp z,AnimationFlashScreen
@@ -879,17 +879,15 @@ Func_7902e: ; 7902e (1e:502e)
ret
; function to make the pokemon disappear at the beginning of the animation
-; XXX probably a trade-related animation
-Func_79041: ; 79041 (1e:5041)
+TradeHidePokemon: ; 79041 (1e:5041)
ld a,[W_SUBANIMCOUNTER]
cp a,6
ret nz
- ld a,$2F
- jp Func_7980c ; make pokemon disappear
+ ld a,2 * SCREEN_WIDTH + 7
+ jp ClearMonPicFromTileMap ; make pokemon disappear
; function to make a shaking pokeball jump up at the end of the animation
-; XXX probably a trade-related animation
-Func_7904c: ; 7904c (1e:504c)
+TradeShakePokeball: ; 7904c (1e:504c)
ld a,[W_SUBANIMCOUNTER]
cp a,1
ret nz
@@ -915,16 +913,15 @@ Func_7904c: ; 7904c (1e:504c)
jr .loop
.done
call AnimationCleanOAM
- ld a,(SFX_02_44 - SFX_Headers_02) / 3
- jp PlaySound ; play sound
+ ld a,SFX_TRADE_MACHINE
+ jp PlaySound
BallMoveDistances1: ; 79078 (1e:5078)
db -12,-12,-8
db $ff ; terminator
; function to make the pokeball jump up
-; XXX probably a trade-related animation
-Func_7907c ; 507C
+TradeJumpPokeball: ; 507C
ld de,BallMoveDistances2
.loop
ld hl,wOAMBuffer ; OAM buffer
@@ -947,7 +944,7 @@ Func_7907c ; 507C
cp a,$ff
jr nz,.skipPlayingSound
.playSound ; play sound if next move distance is 12 or this is the last one
- ld a,(SFX_08_58 - SFX_Headers_08) / 3
+ ld a,SFX_BATTLE_18
call PlaySound
.skipPlayingSound
push bc
@@ -977,7 +974,7 @@ DoGrowlSpecialEffects: ; 790bc (1e:50bc)
ret
; this is associated with Tail Whip, but Tail Whip doesn't use any subanimations
-Func_790d0: ; 790d0 (1e:50d0)
+TailWhipAnimationUnused: ; 790d0 (1e:50d0)
ld a,1
ld [W_SUBANIMCOUNTER],a
ld c,20
@@ -1005,8 +1002,8 @@ SpecialEffectPointers: ; 790da (1e:50da)
dw AnimationSlideMonDown
db SE_FLASH_MON_PIC ; $F5
dw AnimationFlashMonPic
- db SE_SLIDE_MON_OUT ; $F4
- dw AnimationSlideMonOut
+ db SE_SLIDE_MON_OFF ; $F4
+ dw AnimationSlideMonOff
db SE_BLINK_MON ; $F3
dw AnimationBlinkMon
db SE_MOVE_MON_HORIZONTALLY ; $F2
@@ -1035,8 +1032,8 @@ SpecialEffectPointers: ; 790da (1e:50da)
dw AnimationLeavesFalling
db SE_PETALS_FALLING ; $E6
dw AnimationPetalsFalling
- db SE_SLIDE_MON_HALF_LEFT ; $E5
- dw AnimationSlideMonHalfLeft
+ db SE_SLIDE_MON_HALF_OFF ; $E5
+ dw AnimationSlideMonHalfOff
db SE_SHAKE_ENEMY_HUD ; $E4
dw AnimationShakeEnemyHUD
db SE_SHAKE_ENEMY_HUD_2 ; unused--same pointer as SE_SHAKE_ENEMY_HUD ($E4)
@@ -1055,8 +1052,8 @@ SpecialEffectPointers: ; 790da (1e:50da)
dw AnimationShowMonPic
db SE_SHOW_ENEMY_MON_PIC ; $DC
dw AnimationShowEnemyMonPic
- db SE_SLIDE_ENEMY_MON_OUT ; $DB
- dw AnimationSlideEnemyMonOut
+ db SE_SLIDE_ENEMY_MON_OFF ; $DB
+ dw AnimationSlideEnemyMonOff
db SE_SHAKE_BACK_AND_FORTH ; $DA
dw AnimationShakeBackAndForth
db SE_SUBSTITUTE_MON ; $D9
@@ -1087,7 +1084,7 @@ CallWithTurnFlipped: ; 79155 (1e:5155)
; flashes the screen for an extended period (48 frames)
AnimationFlashScreenLong: ; 79165 (1e:5165)
ld a,3 ; cycle through the palettes 3 times
- ld [wd08a],a
+ ld [wFlashScreenLongCounter],a
ld a,[wOnSGB] ; running on SGB?
and a
ld hl,FlashScreenLongMonochrome
@@ -1103,9 +1100,9 @@ AnimationFlashScreenLong: ; 79165 (1e:5165)
call FlashScreenLongDelay
jr .innerLoop
.endOfPalettes
- ld a,[wd08a]
+ ld a,[wFlashScreenLongCounter]
dec a
- ld [wd08a],a
+ ld [wFlashScreenLongCounter],a
pop hl
jr nz,.loop
ret
@@ -1145,8 +1142,8 @@ FlashScreenLongSGB: ; 7919b (1e:519b)
; causes a delay of 2 frames for the first cycle
; causes a delay of 1 frame for the second and third cycles
FlashScreenLongDelay: ; 791a8 (1e:51a8)
- ld a,[wd08a]
- cp a,4 ; never true since [wd08a] starts at 3
+ ld a,[wFlashScreenLongCounter]
+ cp a,4 ; never true since [wFlashScreenLongCounter] starts at 3
ld c,4
jr z,.delayFrames
cp a,3
@@ -1174,233 +1171,248 @@ AnimationFlashScreen: ; 791be (1e:51be)
AnimationDarkScreenPalette: ; 791d6 (1e:51d6)
; Changes the screen's palette to a dark palette.
- ld bc, $6f6f
- jr Func_791fc
+ lb bc, $6f, $6f
+ jr SetAnimationBGPalette
AnimationDarkenMonPalette: ; 791db (1e:51db)
; Darkens the mon sprite's palette.
- ld bc, $f9f4
- jr Func_791fc
+ lb bc, $f9, $f4
+ jr SetAnimationBGPalette
-Func_791e0: ; 791e0 (1e:51e0)
- ld bc, $fef8
- jr Func_791fc
+AnimationUnusedPalette1: ; 791e0 (1e:51e0)
+ lb bc, $fe, $f8
+ jr SetAnimationBGPalette
-Func_791e5: ; 791e5 (1e:51e5)
- ld bc, $ffff
- jr Func_791fc
+AnimationUnusedPalette2: ; 791e5 (1e:51e5)
+ lb bc, $ff, $ff
+ jr SetAnimationBGPalette
AnimationResetScreenPalette: ; 791ea (1e:51ea)
; Restores the screen's palette to the normal palette.
- ld bc, $e4e4
- jr Func_791fc
+ lb bc, $e4, $e4
+ jr SetAnimationBGPalette
-Func_791ef: ; 791ef (1e:51ef)
- ld bc, $0000
- jr Func_791fc
+AnimationUnusedPalette3: ; 791ef (1e:51ef)
+ lb bc, $00, $00
+ jr SetAnimationBGPalette
AnimationLightScreenPalette: ; 791f4 (1e:51f4)
; Changes the screen to use a palette with light colors.
- ld bc, $9090
- jr Func_791fc
+ lb bc, $90, $90
+ jr SetAnimationBGPalette
-Func_791f9: ; 791f9 (1e:51f9)
- ld bc, $4040
+AnimationUnusedPalette4: ; 791f9 (1e:51f9)
+ lb bc, $40, $40
-Func_791fc: ; 791fc (1e:51fc)
+SetAnimationBGPalette: ; 791fc (1e:51fc)
ld a, [wOnSGB]
and a
ld a, b
- jr z, .asm_79204
+ jr z, .next
ld a, c
-.asm_79204
- ld [rBGP], a ; $ff47
+.next
+ ld [rBGP], a
ret
ld b, $5
AnimationShakeScreenVertically: ; 79209 (1e:5209)
- predef_jump Func_480ff
+ predef_jump PredefShakeScreenVertically
AnimationShakeScreen: ; 7920e (1e:520e)
; Shakes the screen for a while. Used in Earthquake/Fissure/etc. animations.
ld b, $8
AnimationShakeScreenHorizontallyFast: ; 79210 (1e:5210)
- predef_jump Func_48125
+ predef_jump PredefShakeScreenHorizontally
AnimationWaterDropletsEverywhere: ; 79215 (1e:5215)
; Draws water droplets all over the screen and makes them
; scroll. It's hard to describe, but it's the main animation
; in Surf/Mist/Toxic.
xor a
- ld [wd09f], a
+ ld [wWhichBattleAnimTileset], a
call LoadAnimationTileset
- ld d, $20
- ld a, $f0
- ld [W_BASECOORDX], a ; wd081
+ ld d, 32
+ ld a, -16
+ ld [W_BASECOORDX], a
ld a, $71
- ld [wd09f], a
-.asm_79228
- ld a, $10
- ld [W_BASECOORDY], a ; wd082
- ld a, $0
- ld [wd08a], a
- call Func_79246
- ld a, $18
- ld [W_BASECOORDY], a ; wd082
- ld a, $20
- ld [wd08a], a
- call Func_79246
+ ld [wDropletTile], a
+.loop
+ ld a, 16
+ ld [W_BASECOORDY], a
+ ld a, 0
+ ld [wUnusedD08A], a
+ call _AnimationWaterDroplets
+ ld a, 24
+ ld [W_BASECOORDY], a
+ ld a, 32
+ ld [wUnusedD08A], a
+ call _AnimationWaterDroplets
dec d
- jr nz, .asm_79228
+ jr nz, .loop
ret
-Func_79246: ; 79246 (1e:5246)
+_AnimationWaterDroplets: ; 79246 (1e:5246)
ld hl, wOAMBuffer
-.asm_79249
- ld a, [W_BASECOORDY] ; wd082
- ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
- add $1b
- ld [W_BASECOORDX], a ; wd081
- ld [hli], a
- ld a, [wd09f]
- ld [hli], a
+.loop
+ ld a, [W_BASECOORDY]
+ ld [hli], a ; Y
+ ld a, [W_BASECOORDX]
+ add 27
+ ld [W_BASECOORDX], a
+ ld [hli], a ; X
+ ld a, [wDropletTile]
+ ld [hli], a ; tile
xor a
- ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
- cp $90
- jr c, .asm_79249
- sub $a8
- ld [W_BASECOORDX], a ; wd081
- ld a, [W_BASECOORDY] ; wd082
- add $10
- ld [W_BASECOORDY], a ; wd082
- cp $70
- jr c, .asm_79249
+ ld [hli], a ; attribute
+ ld a, [W_BASECOORDX]
+ cp 144
+ jr c, .loop
+ sub 168
+ ld [W_BASECOORDX], a
+ ld a, [W_BASECOORDY]
+ add 16
+ ld [W_BASECOORDY], a
+ cp 112
+ jr c, .loop
call AnimationCleanOAM
jp DelayFrame
AnimationSlideMonUp: ; 7927a (1e:527a)
; Slides the mon's sprite upwards.
- ld c, $7
+ ld c, 7
ld a, [H_WHOSETURN]
and a
- ld hl, wTileMap + $79
- ld de, wTileMap + $65
+ coord hl, 1, 6
+ coord de, 1, 5
ld a, $30
- jr z, .asm_79291
- ld hl, wTileMap + $20
- ld de, wTileMap + $c
+ jr z, .next
+ coord hl, 12, 1
+ coord de, 12, 0
ld a, $ff
-.asm_79291
- ld [wd09f], a
- jp Func_792bf
+.next
+ ld [wSlideMonUpBottomRowLeftTile], a
+ jp _AnimationSlideMonUp
AnimationSlideMonDown: ; 79297 (1e:5297)
; Slides the mon's sprite down out of the screen.
xor a
call GetTileIDList
-.asm_7929b
+.loop
call GetMonSpriteTileMapPointerFromRowCount
push bc
push de
- call Func_79aae
+ call CopyPicTiles
call Delay3
call AnimationHideMonPic
pop de
pop bc
dec b
- jr nz, .asm_7929b
+ jr nz, .loop
ret
-AnimationSlideMonOut: ; 792af (1e:52af)
-; Slides the mon's sprite out of the screen horizontally.
- ld e, $8
- ld a, $3
- ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
- jp Func_795f8
+AnimationSlideMonOff: ; 792af (1e:52af)
+; Slides the mon's sprite off the screen horizontally.
+ ld e, 8
+ ld a, 3
+ ld [wSlideMonDelay], a
+ jp _AnimationSlideMonOff
-AnimationSlideEnemyMonOut: ; 792b9 (1e:52b9)
-; Slides the enemy mon out of the screen horizontally.
- ld hl, AnimationSlideMonOut ; $52af
+AnimationSlideEnemyMonOff: ; 792b9 (1e:52b9)
+; Slides the enemy mon off the screen horizontally.
+ ld hl, AnimationSlideMonOff
jp CallWithTurnFlipped
-Func_792bf: ; 792bf (1e:52bf)
+_AnimationSlideMonUp: ; 792bf (1e:52bf)
push de
push hl
push bc
- ld b, $6
-.asm_792c4
+
+; In each iteration, slide up all rows but the top one (which is overwritten).
+ ld b, 6
+.slideLoop
push bc
push de
push hl
- ld bc, $0007
+ ld bc, 7
call CopyData
+; Note that de and hl are popped in the same order they are pushed, swapping
+; their values. When CopyData is called, hl points to a tile 1 row below
+; the one de points to. To maintain this relationship, after swapping, we add 2
+; rows to hl so that it is 1 row below again.
pop de
pop hl
- ld bc, $0028
+ ld bc, SCREEN_WIDTH * 2
add hl, bc
pop bc
dec b
- jr nz, .asm_792c4
+ jr nz, .slideLoop
+
+; Fill in the bottom row of the mon pic with the next row's tile IDs.
ld a, [H_WHOSETURN]
and a
- ld hl, wTileMap + $dd
- jr z, .asm_792e2
- ld hl, wTileMap + $84
-.asm_792e2
- ld a, [wd09f]
+ coord hl, 1, 11
+ jr z, .next
+ coord hl, 12, 6
+.next
+ ld a, [wSlideMonUpBottomRowLeftTile]
inc a
- ld [wd09f], a
- ld c, $7
-.asm_792eb
+ ld [wSlideMonUpBottomRowLeftTile], a
+ ld c, 7
+.fillBottomRowLoop
ld [hli], a
- add $7
+ add 7
dec c
- jr nz, .asm_792eb
- ld c, $2
+ jr nz, .fillBottomRowLoop
+
+ ld c, 2
call DelayFrames
pop bc
pop hl
pop de
dec c
- jr nz, Func_792bf
+ jr nz, _AnimationSlideMonUp
ret
-Func_792fd: ; 792fd (1e:52fd)
+ShakeEnemyHUD_WritePlayerMonPicOAM: ; 792fd (1e:52fd)
+; Writes the OAM entries for a copy of the player mon's pic in OAM.
+; The top 5 rows are reproduced in OAM, although only 2 are actually needed.
ld a, $10
ld [W_BASECOORDX], a
ld a, $30
ld [W_BASECOORDY], a
ld hl, wOAMBuffer
- ld d, $0
- ld c, $7
-.asm_7930e
+ ld d, 0
+ ld c, 7
+.loop
ld a, [W_BASECOORDY]
ld e, a
- ld b, $5
-.asm_79314
- call Func_79329
+ ld b, 5
+.innerLoop
+ call BattleAnimWriteOAMEntry
inc d
dec b
- jr nz, .asm_79314
+ jr nz, .innerLoop
dec c
ret z
inc d
inc d
ld a, [W_BASECOORDX]
- add $8
+ add 8
ld [W_BASECOORDX], a
- jr .asm_7930e
+ jr .loop
-Func_79329: ; 79329 (1e:5329)
+BattleAnimWriteOAMEntry: ; 79329 (1e:5329)
+; Y coordinate = e (increased by 8 each call, before the write to OAM)
+; X coordinate = [W_BASECOORDX]
+; tile = d
+; attributes = 0
ld a, e
- add $8
+ add 8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
+ ld a, [W_BASECOORDX]
ld [hli], a
ld a, d
ld [hli], a
@@ -1413,16 +1425,17 @@ AdjustOAMBlockXPos: ; 79337 (1e:5337)
ld h, d
AdjustOAMBlockXPos2: ; 79339 (1e:5339)
- ld de, $4
+ ld de, 4
.loop
- ld a, [wd08a]
+ ld a, [wCoordAdjustmentAmount]
ld b, a
ld a, [hl]
add b
- cp $a8
+ cp 168
jr c, .skipPuttingEntryOffScreen
+; put off-screen if X >= 168
dec hl
- ld a, $a0
+ ld a, 160
ld [hli], a
.skipPuttingEntryOffScreen
ld [hl], a
@@ -1436,16 +1449,16 @@ AdjustOAMBlockYPos: ; 79350 (1e:5350)
ld h, d
AdjustOAMBlockYPos2: ; 79352 (1e:5352)
- ld de, $4
+ ld de, 4
.loop
- ld a, [wd08a]
+ ld a, [wCoordAdjustmentAmount]
ld b, a
ld a, [hl]
add b
- cp $70
+ cp 112
jr c, .skipSettingPreviousEntrysAttribute
dec hl
- ld a, $a0 ; bug, sets previous OAM entry's attribute
+ ld a, 160 ; bug, sets previous OAM entry's attribute
ld [hli], a
.skipSettingPreviousEntrysAttribute
ld [hl], a
@@ -1456,34 +1469,34 @@ AdjustOAMBlockYPos2: ; 79352 (1e:5352)
AnimationBlinkEnemyMon: ; 79369 (1e:5369)
; Make the enemy mon's sprite blink on and off for a second or two
- ld hl, AnimationBlinkMon ; $536f
+ ld hl, AnimationBlinkMon
jp CallWithTurnFlipped
AnimationBlinkMon: ; 7936f (1e:536f)
; Make the mon's sprite blink on and off for a second or two.
push af
- ld c, $6
-.asm_79372
+ ld c, 6
+.loop
push bc
call AnimationHideMonPic
- ld c, $5
+ ld c, 5
call DelayFrames
call AnimationShowMonPic
- ld c, $5
+ ld c, 5
call DelayFrames
pop bc
dec c
- jr nz, .asm_79372
+ jr nz, .loop
pop af
ret
AnimationFlashMonPic: ; 79389 (1e:5389)
; Flashes the mon's sprite on and off
ld a, [wBattleMonSpecies]
- ld [wHPBarMaxHP + 1], a
+ ld [wChangeMonPicPlayerTurnSpecies], a
ld a, [wEnemyMonSpecies]
- ld [wHPBarMaxHP], a
- jp Func_79793
+ ld [wChangeMonPicEnemyTurnSpecies], a
+ jp ChangeMonPic
AnimationFlashEnemyMonPic: ; 79398 (1e:5398)
; Flashes the enemy mon's sprite on and off
@@ -1494,7 +1507,7 @@ AnimationShowMonPic: ; 7939e (1e:539e)
xor a
call GetTileIDList
call GetMonSpriteTileMapPointerFromRowCount
- call Func_79aae
+ call CopyPicTiles
jp Delay3
AnimationShowEnemyMonPic: ; 793ab (1e:53ab)
@@ -1508,16 +1521,16 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1)
; The mon's sprite disappears after this animation.
ld a, [H_WHOSETURN]
and a
- ld hl, wTileMap + $64
- ld de, wTileMap + $66
- jr z, .asm_793c2
- ld hl, wTileMap + $b
- ld de, wTileMap + $d
+ coord hl, 0, 5
+ coord de, 2, 5
+ jr z, .next
+ coord hl, 11, 0
+ coord de, 13, 0
-.asm_793c2
+.next
xor a
ld c, $10
-.asm_793c5
+.loop
push af
push bc
push de
@@ -1529,113 +1542,113 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1)
push hl
call GetTileIDList
pop hl
- call Func_79aae
+ call CopyPicTiles
call Delay3
pop hl
- ld bc, $0709
+ lb bc, 7, 9
call ClearScreenArea
pop af
call GetTileIDList
pop hl
- call Func_79aae
+ call CopyPicTiles
call Delay3
pop hl
- ld bc, $0709
+ lb bc, 7, 9
call ClearScreenArea
pop hl
pop de
pop bc
pop af
dec c
- jr nz, .asm_793c5
+ jr nz, .loop
ret
AnimationMoveMonHorizontally: ; 793f9 (1e:53f9)
; Shifts the mon's sprite horizontally to a fixed location. Used by lots of
; animations like Tackle/Body Slam.
call AnimationHideMonPic
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
- hlCoord 2, 5
- jr z, .asm_79407
- hlCoord 11, 0
-.asm_79407
+ coord hl, 2, 5
+ jr z, .next
+ coord hl, 11, 0
+.next
xor a
push hl
call GetTileIDList
pop hl
- call Func_79aae
- ld c, $3
+ call CopyPicTiles
+ ld c, 3
jp DelayFrames
AnimationResetMonPosition: ; 79415 (1e:5415)
; Resets the mon's sprites to be located at the normal coordinates.
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
- ld a, $66
- jr z, .asm_7941e
- ld a, $b
-.asm_7941e
- call Func_7980c
+ ld a, 5 * SCREEN_WIDTH + 2
+ jr z, .next
+ ld a, 11
+.next
+ call ClearMonPicFromTileMap
jp AnimationShowMonPic
AnimationSpiralBallsInward: ; 79424 (1e:5424)
-; Creates an effect that looks like energy balls sprialing into the
+; Creates an effect that looks like energy balls spiralling into the
; player mon's sprite. Used in Focus Energy, for example.
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_79435
- ld a, $d8
- ld [wd08a], a
- ld a, $50
- ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
- jr .asm_7943c
-.asm_79435
+ jr z, .playerTurn
+ ld a, -40
+ ld [wSpiralBallsBaseY], a
+ ld a, 80
+ ld [wSpiralBallsBaseX], a
+ jr .next
+.playerTurn
xor a
- ld [wd08a], a
- ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
-.asm_7943c
- ld d, $7a
- ld c, $3
+ ld [wSpiralBallsBaseY], a
+ ld [wSpiralBallsBaseX], a
+.next
+ ld d, $7a ; ball tile
+ ld c, 3 ; number of balls
xor a
- call Func_797e8
- ld hl, SpiralBallAnimationCoordinates ; $5476
-.asm_79447
+ call InitMultipleObjectsOAM
+ ld hl, SpiralBallAnimationCoordinates
+.loop
push hl
- ld c, $3
+ ld c, 3
ld de, wOAMBuffer
-.asm_7944d
+.innerLoop
ld a, [hl]
cp $ff
- jr z, .asm_7946f
- ld a, [wd08a]
+ jr z, .done
+ ld a, [wSpiralBallsBaseY]
add [hl]
- ld [de], a
+ ld [de], a ; Y
inc de
inc hl
- ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
+ ld a, [wSpiralBallsBaseX]
add [hl]
- ld [de], a
+ ld [de], a ; X
inc hl
inc de
inc de
inc de
dec c
- jr nz, .asm_7944d
- ld c, $5
+ jr nz, .innerLoop
+ ld c, 5
call DelayFrames
pop hl
inc hl
inc hl
- jr .asm_79447
-.asm_7946f
+ jr .loop
+.done
pop hl
call AnimationCleanOAM
jp AnimationFlashScreen
SpiralBallAnimationCoordinates: ; 79476 (1e:5476)
; y, x pairs
-; This is the sequence of screen coordinates that the spiraling
+; This is the sequence of screen coordinates that the spiralling
; balls are positioned at.
db $38, $28
db $40, $18
@@ -1663,125 +1676,126 @@ SpiralBallAnimationCoordinates: ; 79476 (1e:5476)
AnimationSquishMonPic: ; 794a1 (1e:54a1)
; Squishes the mon's sprite horizontally making it
; disappear. Used by Teleport/Sky Attack animations.
- ld c, $4
-.asm_794a3
+ ld c, 4
+.loop
push bc
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_794b1
- hlCoord 16, 0
- deCoord 14, 0
- jr .asm_794b7
-.asm_794b1
- hlCoord 5, 5
- deCoord 3, 5
-.asm_794b7
+ jr z, .playerTurn
+ coord hl, 16, 0
+ coord de, 14, 0
+ jr .next
+.playerTurn
+ coord hl, 5, 5
+ coord de, 3, 5
+.next
push de
- xor a
- ld [wd09f], a
- call Func_794d4
+ xor a ; left
+ ld [wSquishMonCurrentDirection], a
+ call _AnimationSquishMonPic
pop hl
- ld a, $1
- ld [wd09f], a
- call Func_794d4
+ ld a, 1 ; right
+ ld [wSquishMonCurrentDirection], a
+ call _AnimationSquishMonPic
pop bc
dec c
- jr nz, .asm_794a3
+ jr nz, .loop
call AnimationHideMonPic
- ld c, $2
+ ld c, 2
jp DelayFrame
-Func_794d4: ; 794d4 (1e:54d4)
- ld c, $7
-.asm_794d6
+_AnimationSquishMonPic: ; 794d4 (1e:54d4)
+ ld c, 7
+.loop
push bc
push hl
- ld c, $3
- ld a, [wd09f]
- cp $0
- jr nz, .asm_794e7
- call Func_7985b
+ ld c, 3
+ ld a, [wSquishMonCurrentDirection]
+ cp 0
+ jr nz, .right
+ call AnimCopyRowLeft
dec hl
- jr .asm_794eb
-.asm_794e7
- call Func_79862
+ jr .next
+.right
+ call AnimCopyRowRight
inc hl
-.asm_794eb
- ld [hl], $7f
+.next
+ ld [hl], " "
pop hl
- ld de, $14
+ ld de, SCREEN_WIDTH
add hl, de
pop bc
dec c
- jr nz, .asm_794d6
+ jr nz, .loop
jp Delay3
AnimationShootBallsUpward: ; 794f9 (1e:54f9)
; Shoots one pillar of "energy" balls upwards. Used in Teleport/Sky Attack
; animations.
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_79503
- ld bc, $80
- jr .asm_79506
-.asm_79503
- ld bc, $3028
-.asm_79506
+ jr z, .playerTurn
+ lb bc, 0, 16 * 8
+ jr .next
+.playerTurn
+ lb bc, 6 * 8, 5 * 8
+.next
ld a, b
- ld [W_BASECOORDY], a ; wd082
+ ld [W_BASECOORDY], a
ld a, c
- ld [W_BASECOORDX], a ; wd081
- ld bc, $501
- call Func_79517
+ ld [W_BASECOORDX], a
+ lb bc, 5, 1
+ call _AnimationShootBallsUpward
jp AnimationCleanOAM
-Func_79517: ; 79517 (1e:5517)
+_AnimationShootBallsUpward: ; 79517 (1e:5517)
push bc
xor a
- ld [wd09f], a
+ ld [wWhichBattleAnimTileset], a
call LoadAnimationTileset
pop bc
- ld d, $7a
+ ld d, $7a ; ball tile
ld hl, wOAMBuffer
push bc
- ld a, [W_BASECOORDY] ; wd082
+ ld a, [W_BASECOORDY]
ld e, a
-.asm_7952a
- call Func_79329
+.initOAMLoop
+ call BattleAnimWriteOAMEntry
dec b
- jr nz, .asm_7952a
+ jr nz, .initOAMLoop
call DelayFrame
pop bc
ld a, b
- ld [wd08a], a
-.asm_79538
+ ld [wNumShootingBalls], a
+.loop
push bc
ld hl, wOAMBuffer
-.asm_7953c
- ld a, [W_BASECOORDY] ; wd082
- add $8
+.innerLoop
+ ld a, [W_BASECOORDY]
+ add 8
ld e, a
ld a, [hl]
- cp e
- jr z, .asm_7954b
- add $fc
+ cp e ; has the ball reached the top?
+ jr z, .reachedTop
+ add -4 ; ball hasn't reached the top. move it up 4 pixels
ld [hl], a
- jr .asm_79554
-.asm_7954b
- ld [hl], $0
- ld a, [wd08a]
+ jr .next
+.reachedTop
+; remove the ball once it has reached the top
+ ld [hl], 0 ; put it off-screen
+ ld a, [wNumShootingBalls]
dec a
- ld [wd08a], a
-.asm_79554
- ld de, $4
- add hl, de
+ ld [wNumShootingBalls], a
+.next
+ ld de, 4
+ add hl, de ; next OAM entry
dec b
- jr nz, .asm_7953c
+ jr nz, .innerLoop
call DelayFrames
pop bc
- ld a, [wd08a]
+ ld a, [wNumShootingBalls]
and a
- jr nz, .asm_79538
+ jr nz, .loop
ret
AnimationShootManyBallsUpward: ; 79566 (1e:5566)
@@ -1794,17 +1808,17 @@ AnimationShootManyBallsUpward: ; 79566 (1e:5566)
ld hl, UpwardBallsAnimXCoordinatesEnemyTurn
ld a, $28 ; y coordinate for "energy" ball pillar
.player
- ld [wTrainerSpriteOffset], a
+ ld [wSavedY], a
.loop
- ld a, [wTrainerSpriteOffset]
+ ld a, [wSavedY]
ld [W_BASECOORDY], a
ld a, [hli]
cp $ff
jp z, AnimationCleanOAM
ld [W_BASECOORDX], a
- ld bc, $0401
+ lb bc, 4, 1
push hl
- call Func_79517
+ call _AnimationShootBallsUpward
pop hl
jr .loop
@@ -1831,16 +1845,16 @@ AnimationMinimizeMon: ; 7959f (1e:559f)
pop hl
ld de, $194
add hl, de
- ld de, MinimizedMonSprite ; $55c4
+ ld de, MinimizedMonSprite
ld c, $5
-.asm_795b4
+.loop
ld a, [de]
ld [hli], a
ld [hli], a
inc de
dec c
- jr nz, .asm_795b4
- call Func_79652
+ jr nz, .loop
+ call CopyTempPicToMonPic
call Delay3
jp AnimationShowMonPic
@@ -1851,7 +1865,7 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9)
; Slides the mon's sprite down and disappears. Used in Acid Armor.
ld a, $1
ld c, $2
-.asm_795cd
+.loop
push bc
push af
call AnimationHideMonPic
@@ -1859,94 +1873,108 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9)
push af
call GetTileIDList
call GetMonSpriteTileMapPointerFromRowCount
- call Func_79aae
- ld c, $8
+ call CopyPicTiles
+ ld c, 8
call DelayFrames
pop af
inc a
pop bc
dec c
- jr nz, .asm_795cd
+ jr nz, .loop
call AnimationHideMonPic
ld hl, wTempPic
ld bc, $0310
xor a
call FillMemory
- jp Func_79652
+ jp CopyTempPicToMonPic
-Func_795f8: ; 795f8 (1e:55f8)
- ld a, [H_WHOSETURN] ; $fff3
+_AnimationSlideMonOff: ; 795f8 (1e:55f8)
+; Slides the mon's sprite off the screen horizontally by e tiles and waits
+; [wSlideMonDelay] V-blanks each time the pic is slid by one tile.
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_79602
- hlCoord 12, 0
- jr .asm_79605
-.asm_79602
- hlCoord 0, 5
-.asm_79605
- ld d, $8
-.asm_79607
+ jr z, .playerTurn
+ coord hl, 12, 0
+ jr .next
+.playerTurn
+ coord hl, 0, 5
+.next
+ ld d, 8 ; d's value is unused
+.slideLoop ; iterates once for each time the pic slides by one tile
push hl
- ld b, $7
-.asm_7960a
- ld c, $8
-.asm_7960c
- ld a, [H_WHOSETURN] ; $fff3
+ ld b, 7
+.rowLoop ; iterates once for each row
+ ld c, 8
+.tileLoop ; iterates once for each tile in the row
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_79616
- call Func_7963c
- jr .asm_79619
-.asm_79616
- call Func_79633
-.asm_79619
+ jr z, .playerTurn2
+ call .EnemyNextTile
+ jr .next2
+.playerTurn2
+ call .PlayerNextTile
+.next2
ld [hli], a
dec c
- jr nz, .asm_7960c
+ jr nz, .tileLoop
push de
- ld de, $c
+ ld de, SCREEN_WIDTH - 8
add hl, de
pop de
dec b
- jr nz, .asm_7960a
- ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM
+ jr nz, .rowLoop
+ ld a, [wSlideMonDelay]
ld c, a
call DelayFrames
pop hl
dec d
dec e
- jr nz, .asm_79607
+ jr nz, .slideLoop
ret
-Func_79633: ; 79633 (1e:5633)
+; Since mon pic tile numbers go from top to bottom, left to right in order,
+; adding the height of the mon pic in tiles to a tile number gives the tile
+; number of the tile one column to the right (and thus subtracting the height
+; gives the reverse). If the next tile would be past the edge of the pic, the 2
+; functions below catch it by checking if the tile number is within the valid
+; range and if not, replacing it with a blank tile.
+
+.PlayerNextTile ; 79633 (1e:5633)
ld a, [hl]
- add $7
+ add 7
+; This is a bug. The lower right corner tile of the mon back pic is blanked
+; while the mon is sliding off the screen. It should compare with the max tile
+; plus one instead.
cp $61
ret c
- ld a, $7f
+ ld a, " "
ret
-Func_7963c: ; 7963c (1e:563c)
+.EnemyNextTile ; 7963c (1e:563c)
ld a, [hl]
- sub $7
+ sub 7
+; This has the same problem as above, but it has no visible effect because
+; the lower right tile is in the first column to slide off the screen.
cp $30
ret c
- ld a, $7f
+ ld a, " "
ret
-AnimationSlideMonHalfLeft: ; 79645 (1e:5645)
-; Slides the mon's sprite halfway out of the screen. It's used in Softboiled.
- ld e, $4
- ld a, $4
- ld [W_SUBANIMTRANSFORM], a
- call Func_795f8
+AnimationSlideMonHalfOff: ; 79645 (1e:5645)
+; Slides the mon's sprite halfway off the screen. It's used in Softboiled.
+ ld e, 4
+ ld a, 4
+ ld [wSlideMonDelay], a
+ call _AnimationSlideMonOff
jp Delay3
-Func_79652: ; 79652 (1e:5652)
- ld a, [H_WHOSETURN] ; $fff3
+CopyTempPicToMonPic: ; 79652 (1e:5652)
+ ld a, [H_WHOSETURN]
and a
- ld hl, vBackPic
- jr z, .asm_7965d
- ld hl, vFrontPic
-.asm_7965d
+ ld hl, vBackPic ; player turn
+ jr z, .next
+ ld hl, vFrontPic ; enemy turn
+.next
ld de, wTempPic
ld bc, 7 * 7
jp CopyVideoData
@@ -1954,55 +1982,55 @@ Func_79652: ; 79652 (1e:5652)
AnimationWavyScreen: ; 79666 (1e:5666)
; used in Psywave/Psychic etc.
ld hl, vBGMap0
- call Func_79e0d
+ call BattleAnimCopyTileMapToVRAM
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- ld a, $90
+ ld a, SCREEN_HEIGHT_PIXELS
ld [hWY], a
- ld d, $80
- ld e, $8f
+ ld d, $80 ; terminator
+ ld e, SCREEN_HEIGHT_PIXELS - 1
ld c, $ff
ld hl, WavyScreenLineOffsets
-.asm_7967f
+.loop
push hl
-.asm_79680
- call Func_796ae
- ld a, [$ff44]
- cp e
- jr nz, .asm_79680
+.innerLoop
+ call WavyScreen_SetSCX
+ ld a, [rLY]
+ cp e ; is it the last visible line in the frame?
+ jr nz, .innerLoop ; keep going if not
pop hl
inc hl
ld a, [hl]
- cp d
- jr nz, .asm_79691
- ld hl, WavyScreenLineOffsets
-.asm_79691
+ cp d ; have we reached the end?
+ jr nz, .next
+ ld hl, WavyScreenLineOffsets ; go back to the beginning if so
+.next
dec c
- jr nz, .asm_7967f
+ jr nz, .loop
xor a
ld [hWY], a
call SaveScreenTilesToBuffer2
call ClearScreen
- ld a, $1
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
call LoadScreenTilesFromBuffer2
ld hl, vBGMap1
- call Func_79e0d
+ call BattleAnimCopyTileMapToVRAM
ret
-Func_796ae: ; 796ae (1e:56ae)
- ld a, [$ff41]
- and $3
- jr nz, Func_796ae
+WavyScreen_SetSCX: ; 796ae (1e:56ae)
+ ld a, [rSTAT]
+ and $3 ; is it H-blank?
+ jr nz, WavyScreen_SetSCX ; wait until it's H-blank
ld a, [hl]
- ld [$ff43], a
+ ld [rSCX], a
inc hl
ld a, [hl]
- cp d
+ cp d ; have we reached the end?
ret nz
- ld hl, WavyScreenLineOffsets
+ ld hl, WavyScreenLineOffsets ; go back to the beginning if so
ret
WavyScreenLineOffsets: ; 796bf (1e:56bf)
@@ -2018,9 +2046,9 @@ AnimationSubstitute: ; 796e0 (1e:56e0)
xor a
ld bc, $0310
call FillMemory
- ld a, [$fff3]
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_79715 ; 0x796ed $26
+ jr z, .playerTurn
ld hl, SlowbroSprite ; facing down sprite
ld de, wTempPic + $120
call CopySlowbroSpriteData
@@ -2033,8 +2061,8 @@ AnimationSubstitute: ; 796e0 (1e:56e0)
ld hl, SlowbroSprite + $30
ld de, wTempPic + $120 + $10 + $70
call CopySlowbroSpriteData
- jr .asm_79739
-.asm_79715
+ jr .next
+.playerTurn
ld hl, SlowbroSprite + $40 ; facing up sprite
ld de, wTempPic + $120 + $70
call CopySlowbroSpriteData
@@ -2047,8 +2075,8 @@ AnimationSubstitute: ; 796e0 (1e:56e0)
ld hl, SlowbroSprite + $70
ld de, wTempPic + $120 + $f0
call CopySlowbroSpriteData
-.asm_79739
- call Func_79652
+.next
+ call CopyTempPicToMonPic
jp AnimationShowMonPic
CopySlowbroSpriteData: ; 7973f (1e:573f)
@@ -2056,23 +2084,24 @@ CopySlowbroSpriteData: ; 7973f (1e:573f)
ld a, BANK(SlowbroSprite)
jp FarCopyData2
-Func_79747: ; 79747 (1e:5747)
- ld a, [H_WHOSETURN] ; $fff3
+HideSubstituteShowMonAnim: ; 79747 (1e:5747)
+ ld a, [H_WHOSETURN]
and a
- ld hl, wccf7
- ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2
- jr z, .asm_79758
- ld hl, wccf3
- ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2
-.asm_79758
+ ld hl, wPlayerMonMinimized
+ ld a, [W_PLAYERBATTSTATUS2]
+ jr z, .next1
+ ld hl, wEnemyMonMinimized
+ ld a, [W_ENEMYBATTSTATUS2]
+.next1
push hl
- bit 4, a
- jr nz, .asm_79762
+; if the substitute broke, slide it down, else slide it offscreen horizontally
+ bit HasSubstituteUp, a
+ jr nz, .substituteStillUp
call AnimationSlideMonDown
- jr .asm_79765
-.asm_79762
- call AnimationSlideMonOut
-.asm_79765
+ jr .next2
+.substituteStillUp
+ call AnimationSlideMonOff
+.next2
pop hl
ld a, [hl]
and a
@@ -2080,48 +2109,48 @@ Func_79747: ; 79747 (1e:5747)
call AnimationFlashMonPic
jp AnimationShowMonPic
-Func_79771: ; 79771 (1e:5771)
- call AnimationSlideMonOut
+ReshowSubstituteAnim: ; 79771 (1e:5771)
+ call AnimationSlideMonOff
call AnimationSubstitute
jp AnimationShowMonPic
AnimationBoundUpAndDown: ; 7977a (1e:577a)
; Bounces the mon's sprite up and down several times. It is used
; by Splash's animation.
- ld c, $5
-.asm_7977c
+ ld c, 5
+.loop
push bc
call AnimationSlideMonDown
pop bc
dec c
- jr nz, .asm_7977c ; 0x79782 $f8
+ jr nz, .loop
jp AnimationShowMonPic
AnimationTransformMon: ; 79787 (1e:5787)
; Redraws this mon's sprite as the back/front sprite of the opposing mon.
; Used in Transform.
ld a, [wEnemyMonSpecies]
- ld [wHPBarMaxHP + 1], a
+ ld [wChangeMonPicPlayerTurnSpecies], a
ld a, [wBattleMonSpecies]
- ld [wHPBarMaxHP], a
+ ld [wChangeMonPicEnemyTurnSpecies], a
-Func_79793: ; 79793 (1e:5793)
- ld a, [H_WHOSETURN] ; $fff3
+ChangeMonPic: ; 79793 (1e:5793)
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_797b0
- ld a, [wHPBarMaxHP]
+ jr z, .playerTurn
+ ld a, [wChangeMonPicEnemyTurnSpecies]
ld [wcf91], a
ld [wd0b5], a
xor a
ld [W_SPRITEFLIPPED], a
call GetMonHeader
- hlCoord 12, 0
+ coord hl, 12, 0
call LoadFrontSpriteByMonIndex
- jr .asm_797d3
-.asm_797b0
+ jr .done
+.playerTurn
ld a, [wBattleMonSpecies2]
push af
- ld a, [wHPBarMaxHP + 1]
+ ld a, [wChangeMonPicPlayerTurnSpecies]
ld [wBattleMonSpecies2], a
ld [wd0b5], a
call GetMonHeader
@@ -2129,59 +2158,63 @@ Func_79793: ; 79793 (1e:5793)
xor a
call GetTileIDList
call GetMonSpriteTileMapPointerFromRowCount
- call Func_79aae
+ call CopyPicTiles
pop af
ld [wBattleMonSpecies2], a
-.asm_797d3
- ld b, $1
- jp GoPAL_SET
+.done
+ ld b, SET_PAL_BATTLE
+ jp RunPaletteCommand
AnimationHideEnemyMonPic: ; 797d8 (1e:57d8)
; Hides the enemy mon's sprite
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, AnimationHideMonPic ; $5801
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld hl, AnimationHideMonPic
call CallWithTurnFlipped
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
jp Delay3
-Func_797e8: ; 797e8 (1e:57e8)
+InitMultipleObjectsOAM: ; 797e8 (1e:57e8)
+; Writes c OAM entries with tile d.
+; Sets their Y coordinates to sequential multiples of 8, starting from 0.
+; Sets their X coordinates to 0.
+; Loads animation tileset a.
push bc
push de
- ld [wd09f], a
+ ld [wWhichBattleAnimTileset], a
call LoadAnimationTileset
pop de
pop bc
xor a
ld e, a
- ld [W_BASECOORDX], a ; wd081
+ ld [W_BASECOORDX], a
ld hl, wOAMBuffer
-.asm_797fa
- call Func_79329
+.loop
+ call BattleAnimWriteOAMEntry
dec c
- jr nz, .asm_797fa
+ jr nz, .loop
ret
AnimationHideMonPic: ; 79801 (1e:5801)
; Hides the mon's sprite.
- ld a, [H_WHOSETURN] ; $fff3
+ ld a, [H_WHOSETURN]
and a
- jr z, .asm_7980a
- ld a, $c
- jr Func_7980c
-.asm_7980a
- ld a, $65
+ jr z, .playerTurn
+ ld a, 12
+ jr ClearMonPicFromTileMap
+.playerTurn
+ ld a, 5 * SCREEN_WIDTH + 1
-Func_7980c: ; 7980c (1e:580c)
+ClearMonPicFromTileMap: ; 7980c (1e:580c)
push hl
push de
push bc
ld e, a
- ld d, $0
- ld hl, wTileMap
+ ld d, 0
+ coord hl, 0, 0
add hl, de
- ld bc, $707
+ lb bc, 7, 7
call ClearScreenArea
pop bc
pop de
@@ -2201,7 +2234,7 @@ GetMonSpriteTileMapPointerFromRowCount: ; 79820 (1e:5820)
.enemyTurn
ld a, 12
.next
- ld hl, wTileMap
+ coord hl, 0, 0
ld e, a
ld d, 0
add hl, de
@@ -2245,29 +2278,33 @@ GetTileIDList: ; 79842 (1e:5842)
ld b, a
ret
-Func_7985b: ; 7985b (1e:585b)
+AnimCopyRowLeft: ; 7985b (1e:585b)
+; copy a row of c tiles 1 tile left
ld a, [hld]
ld [hli], a
inc hl
dec c
- jr nz, Func_7985b
+ jr nz, AnimCopyRowLeft
ret
-Func_79862: ; 79862 (1e:5862)
+AnimCopyRowRight: ; 79862 (1e:5862)
+; copy a row of c tiles 1 tile right
ld a, [hli]
ld [hld], a
dec hl
dec c
- jr nz, Func_79862
+ jr nz, AnimCopyRowRight
ret
-Func_79869: ; 79869 (1e:5869)
+; get the sound of the move id in b
+GetMoveSoundB: ; 79869 (1e:5869)
ld a, b
- call Func_7986f
+ call GetMoveSound
ld b, a
ret
-Func_7986f: ; 7986f (1e:586f)
+; get the sound of the (move id - 1) in a
+GetMoveSound: ; 7986f (1e:586f)
ld hl,MoveSoundTable
ld e,a
ld d,0
@@ -2290,19 +2327,19 @@ Func_7986f: ; 7986f (1e:586f)
call GetCryData
ld b,a
pop hl
- ld a,[wc0f1]
+ ld a,[wFrequencyModifier]
add [hl]
- ld [wc0f1],a
+ ld [wFrequencyModifier],a
inc hl
- ld a,[wc0f2]
+ ld a,[wTempoModifier]
add [hl]
- ld [wc0f2],a
+ ld [wTempoModifier],a
jr .done
.NotCryMove
ld a,[hli]
- ld [wc0f1],a
+ ld [wFrequencyModifier],a
ld a,[hli]
- ld [wc0f2],a
+ ld [wTempoModifier],a
.done
ld a,b
ret
@@ -2321,196 +2358,200 @@ IsCryMove: ; 798ad (1e:58ad)
ret
MoveSoundTable: ; 798bc (1e:58bc)
- db (SFX_08_4a - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_4c - SFX_Headers_08) / 3,$10,$80
- db (SFX_08_5d - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_4b - SFX_Headers_08) / 3,$01,$80
- db (SFX_08_4d - SFX_Headers_08) / 3,$00,$40
- db (SFX_08_77 - SFX_Headers_08) / 3,$00,$ff
- db (SFX_08_4d - SFX_Headers_08) / 3,$10,$60
- db (SFX_08_4d - SFX_Headers_08) / 3,$20,$80
- db (SFX_08_4d - SFX_Headers_08) / 3,$00,$a0
- db (SFX_08_50 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_4f - SFX_Headers_08) / 3,$20,$40
- db (SFX_08_4f - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_4e - SFX_Headers_08) / 3,$00,$a0
- db (SFX_08_51 - SFX_Headers_08) / 3,$10,$c0
- db (SFX_08_51 - SFX_Headers_08) / 3,$00,$a0
- db (SFX_08_52 - SFX_Headers_08) / 3,$00,$c0
- db (SFX_08_52 - SFX_Headers_08) / 3,$10,$a0
- db (SFX_08_53 - SFX_Headers_08) / 3,$00,$e0
- db (SFX_08_51 - SFX_Headers_08) / 3,$20,$c0
- db (SFX_08_54 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_62 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_55 - SFX_Headers_08) / 3,$01,$80
- db (SFX_08_60 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_57 - SFX_Headers_08) / 3,$f0,$40
- db (SFX_08_5a - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_57 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_61 - SFX_Headers_08) / 3,$10,$80
- db (SFX_08_5b - SFX_Headers_08) / 3,$01,$a0
- db (SFX_08_58 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_5e - SFX_Headers_08) / 3,$00,$60
- db (SFX_08_5e - SFX_Headers_08) / 3,$01,$40
- db (SFX_08_5f - SFX_Headers_08) / 3,$00,$a0
- db (SFX_08_5a - SFX_Headers_08) / 3,$10,$a0
- db (SFX_08_60 - SFX_Headers_08) / 3,$00,$c0
- db (SFX_08_54 - SFX_Headers_08) / 3,$10,$60
- db (SFX_08_5a - SFX_Headers_08) / 3,$00,$a0
- db (SFX_08_62 - SFX_Headers_08) / 3,$11,$c0
- db (SFX_08_5a - SFX_Headers_08) / 3,$20,$c0
- db (SFX_08_61 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_5b - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_5b - SFX_Headers_08) / 3,$20,$c0
- db (SFX_08_59 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_71 - SFX_Headers_08) / 3,$ff,$40
- db (SFX_08_5e - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_4b - SFX_Headers_08) / 3,$00,$c0
- db (SFX_08_4b - SFX_Headers_08) / 3,$00,$40
- db (SFX_08_75 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_67 - SFX_Headers_08) / 3,$40,$60
- db (SFX_08_67 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_67 - SFX_Headers_08) / 3,$ff,$40
- db (SFX_08_6a - SFX_Headers_08) / 3,$80,$c0
- db (SFX_08_59 - SFX_Headers_08) / 3,$10,$a0
- db (SFX_08_59 - SFX_Headers_08) / 3,$21,$e0
- db (SFX_08_69 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_64 - SFX_Headers_08) / 3,$20,$60
- db (SFX_08_6a - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_6c - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_68 - SFX_Headers_08) / 3,$40,$80
- db (SFX_08_69 - SFX_Headers_08) / 3,$f0,$e0
- db (SFX_08_6d - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_6a - SFX_Headers_08) / 3,$f0,$60
- db (SFX_08_68 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_76 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_47 - SFX_Headers_08) / 3,$01,$a0
- db (SFX_08_53 - SFX_Headers_08) / 3,$f0,$20
- db (SFX_08_63 - SFX_Headers_08) / 3,$01,$c0
- db (SFX_08_63 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_5a - SFX_Headers_08) / 3,$00,$e0
- db (SFX_08_66 - SFX_Headers_08) / 3,$01,$60
- db (SFX_08_66 - SFX_Headers_08) / 3,$20,$40
- db (SFX_08_64 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_64 - SFX_Headers_08) / 3,$40,$c0
- db (SFX_08_5b - SFX_Headers_08) / 3,$03,$60
- db (SFX_08_65 - SFX_Headers_08) / 3,$11,$e0
- db (SFX_08_52 - SFX_Headers_08) / 3,$20,$e0
- db (SFX_08_6e - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_5c - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_5c - SFX_Headers_08) / 3,$11,$a0
- db (SFX_08_5c - SFX_Headers_08) / 3,$01,$c0
- db (SFX_08_53 - SFX_Headers_08) / 3,$14,$c0
- db (SFX_08_5b - SFX_Headers_08) / 3,$02,$a0
- db (SFX_08_69 - SFX_Headers_08) / 3,$f0,$80
- db (SFX_08_69 - SFX_Headers_08) / 3,$20,$c0
- db (SFX_08_6f - SFX_Headers_08) / 3,$00,$20
- db (SFX_08_6f - SFX_Headers_08) / 3,$20,$80
- db (SFX_08_6e - SFX_Headers_08) / 3,$12,$60
- db (SFX_08_66 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_54 - SFX_Headers_08) / 3,$01,$e0
- db (SFX_08_69 - SFX_Headers_08) / 3,$0f,$e0
- db (SFX_08_69 - SFX_Headers_08) / 3,$11,$20
- db (SFX_08_50 - SFX_Headers_08) / 3,$10,$40
- db (SFX_08_4f - SFX_Headers_08) / 3,$10,$c0
- db (SFX_08_54 - SFX_Headers_08) / 3,$00,$20
- db (SFX_08_70 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_75 - SFX_Headers_08) / 3,$11,$18
- db (SFX_08_49 - SFX_Headers_08) / 3,$20,$c0
- db (SFX_08_48 - SFX_Headers_08) / 3,$20,$c0
- db (SFX_08_65 - SFX_Headers_08) / 3,$00,$10
- db (SFX_08_66 - SFX_Headers_08) / 3,$f0,$20
- db (SFX_08_73 - SFX_Headers_08) / 3,$f0,$c0
- db (SFX_08_51 - SFX_Headers_08) / 3,$f0,$e0
- db (SFX_08_49 - SFX_Headers_08) / 3,$f0,$40
- db (SFX_08_71 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_73 - SFX_Headers_08) / 3,$80,$40
- db (SFX_08_73 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_54 - SFX_Headers_08) / 3,$11,$20
- db (SFX_08_54 - SFX_Headers_08) / 3,$22,$10
- db (SFX_08_5b - SFX_Headers_08) / 3,$f1,$ff
- db (SFX_08_53 - SFX_Headers_08) / 3,$f1,$ff
- db (SFX_08_54 - SFX_Headers_08) / 3,$33,$30
- db (SFX_08_72 - SFX_Headers_08) / 3,$40,$c0
- db (SFX_08_4e - SFX_Headers_08) / 3,$20,$20
- db (SFX_08_4e - SFX_Headers_08) / 3,$f0,$10
- db (SFX_08_4f - SFX_Headers_08) / 3,$f8,$10
- db (SFX_08_51 - SFX_Headers_08) / 3,$f0,$10
- db (SFX_08_65 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_58 - SFX_Headers_08) / 3,$00,$c0
- db (SFX_08_72 - SFX_Headers_08) / 3,$c0,$ff
- db (SFX_08_49 - SFX_Headers_08) / 3,$f2,$20
- db (SFX_08_74 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_74 - SFX_Headers_08) / 3,$00,$40
- db (SFX_08_49 - SFX_Headers_08) / 3,$00,$40
- db (SFX_08_51 - SFX_Headers_08) / 3,$10,$ff
- db (SFX_08_6a - SFX_Headers_08) / 3,$20,$20
- db (SFX_08_72 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_69 - SFX_Headers_08) / 3,$1f,$20
- db (SFX_08_65 - SFX_Headers_08) / 3,$2f,$80
- db (SFX_08_4f - SFX_Headers_08) / 3,$1f,$ff
- db (SFX_08_6b - SFX_Headers_08) / 3,$1f,$60
- db (SFX_08_66 - SFX_Headers_08) / 3,$1e,$20
- db (SFX_08_66 - SFX_Headers_08) / 3,$1f,$18
- db (SFX_08_54 - SFX_Headers_08) / 3,$0f,$80
- db (SFX_08_49 - SFX_Headers_08) / 3,$f8,$10
- db (SFX_08_48 - SFX_Headers_08) / 3,$18,$20
- db (SFX_08_72 - SFX_Headers_08) / 3,$08,$40
- db (SFX_08_57 - SFX_Headers_08) / 3,$01,$e0
- db (SFX_08_51 - SFX_Headers_08) / 3,$09,$ff
- db (SFX_08_75 - SFX_Headers_08) / 3,$42,$01
- db (SFX_08_5c - SFX_Headers_08) / 3,$00,$ff
- db (SFX_08_72 - SFX_Headers_08) / 3,$08,$e0
- db (SFX_08_64 - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_49 - SFX_Headers_08) / 3,$88,$10
- db (SFX_08_65 - SFX_Headers_08) / 3,$48,$ff
- db (SFX_08_48 - SFX_Headers_08) / 3,$ff,$ff
- db (SFX_08_64 - SFX_Headers_08) / 3,$ff,$10
- db (SFX_08_48 - SFX_Headers_08) / 3,$ff,$04
- db (SFX_08_5c - SFX_Headers_08) / 3,$01,$ff
- db (SFX_08_53 - SFX_Headers_08) / 3,$f8,$ff
- db (SFX_08_4c - SFX_Headers_08) / 3,$f0,$f0
- db (SFX_08_4f - SFX_Headers_08) / 3,$08,$10
- db (SFX_08_4d - SFX_Headers_08) / 3,$f0,$ff
- db (SFX_08_5a - SFX_Headers_08) / 3,$f0,$ff
- db (SFX_08_74 - SFX_Headers_08) / 3,$10,$ff
- db (SFX_08_4e - SFX_Headers_08) / 3,$f0,$20
- db (SFX_08_6b - SFX_Headers_08) / 3,$f0,$60
- db (SFX_08_61 - SFX_Headers_08) / 3,$12,$10
- db (SFX_08_76 - SFX_Headers_08) / 3,$f0,$20
- db (SFX_08_5e - SFX_Headers_08) / 3,$12,$ff
- db (SFX_08_71 - SFX_Headers_08) / 3,$80,$04
- db (SFX_08_73 - SFX_Headers_08) / 3,$f0,$10
- db (SFX_08_69 - SFX_Headers_08) / 3,$f8,$ff
- db (SFX_08_66 - SFX_Headers_08) / 3,$f0,$ff
- db (SFX_08_51 - SFX_Headers_08) / 3,$01,$ff
- db (SFX_08_6c - SFX_Headers_08) / 3,$d8,$04
- db (SFX_08_4b - SFX_Headers_08) / 3,$00,$80
- db (SFX_08_4b - SFX_Headers_08) / 3,$00,$80
-
-Func_79aae: ; 79aae (1e:5aae)
+ db SFX_POUND, $00,$80 ; POUND
+ db SFX_BATTLE_0C, $10,$80 ; KARATE_CHOP
+ db SFX_DOUBLESLAP, $00,$80 ; DOUBLESLAP
+ db SFX_BATTLE_0B, $01,$80 ; COMET_PUNCH
+ db SFX_BATTLE_0D, $00,$40 ; MEGA_PUNCH
+ db SFX_SILPH_SCOPE, $00,$ff ; PAY_DAY
+ db SFX_BATTLE_0D, $10,$60 ; FIRE_PUNCH
+ db SFX_BATTLE_0D, $20,$80 ; ICE_PUNCH
+ db SFX_BATTLE_0D, $00,$a0 ; THUNDERPUNCH
+ db SFX_DAMAGE, $00,$80 ; SCRATCH
+ db SFX_BATTLE_0F, $20,$40 ; VICEGRIP
+ db SFX_BATTLE_0F, $00,$80 ; GUILLOTINE
+ db SFX_BATTLE_0E, $00,$a0 ; RAZOR_WIND
+ db SFX_NOT_VERY_EFFECTIVE,$10,$c0 ; SWORDS_DANCE
+ db SFX_NOT_VERY_EFFECTIVE,$00,$a0 ; CUT
+ db SFX_BATTLE_12, $00,$c0 ; GUST
+ db SFX_BATTLE_12, $10,$a0 ; WING_ATTACK
+ db SFX_BATTLE_13, $00,$e0 ; WHIRLWIND
+ db SFX_NOT_VERY_EFFECTIVE,$20,$c0 ; FLY
+ db SFX_BATTLE_14, $00,$80 ; BIND
+ db SFX_BATTLE_22, $00,$80 ; SLAM
+ db SFX_VINE_WHIP, $01,$80 ; VINE_WHIP
+ db SFX_BATTLE_20, $00,$80 ; STOMP
+ db SFX_BATTLE_17, $f0,$40 ; DOUBLE_KICK
+ db SFX_SUPER_EFFECTIVE, $00,$80 ; MEGA_KICK
+ db SFX_BATTLE_17, $00,$80 ; JUMP_KICK
+ db SFX_BATTLE_21, $10,$80 ; ROLLING_KICK
+ db SFX_BATTLE_1B, $01,$a0 ; SAND_ATTACK
+ db SFX_BATTLE_18, $00,$80 ; HEADBUTT
+ db SFX_BATTLE_1E, $00,$60 ; HORN_ATTACK
+ db SFX_BATTLE_1E, $01,$40 ; FURY_ATTACK
+ db SFX_HORN_DRILL, $00,$a0 ; HORN_DRILL
+ db SFX_SUPER_EFFECTIVE, $10,$a0 ; TACKLE
+ db SFX_BATTLE_20, $00,$c0 ; BODY_SLAM
+ db SFX_BATTLE_14, $10,$60 ; WRAP
+ db SFX_SUPER_EFFECTIVE, $00,$a0 ; TAKE_DOWN
+ db SFX_BATTLE_22, $11,$c0 ; THRASH
+ db SFX_SUPER_EFFECTIVE, $20,$c0 ; DOUBLE_EDGE
+ db SFX_BATTLE_21, $00,$80 ; TAIL_WHIP
+ db SFX_BATTLE_1B, $00,$80 ; POISON_STING
+ db SFX_BATTLE_1B, $20,$c0 ; TWINEEDLE
+ db SFX_BATTLE_19, $00,$80 ; PIN_MISSILE
+ db SFX_BATTLE_31, $ff,$40 ; LEER
+ db SFX_BATTLE_1E, $00,$80 ; BITE
+ db SFX_BATTLE_0B, $00,$c0 ; GROWL
+ db SFX_BATTLE_0B, $00,$40 ; ROAR
+ db SFX_BATTLE_35, $00,$80 ; SING
+ db SFX_BATTLE_27, $40,$60 ; SUPERSONIC
+ db SFX_BATTLE_27, $00,$80 ; SONICBOOM
+ db SFX_BATTLE_27, $ff,$40 ; DISABLE
+ db SFX_BATTLE_2A, $80,$c0 ; ACID
+ db SFX_BATTLE_19, $10,$a0 ; EMBER
+ db SFX_BATTLE_19, $21,$e0 ; FLAMETHROWER
+ db SFX_BATTLE_29, $00,$80 ; MIST
+ db SFX_BATTLE_24, $20,$60 ; WATER_GUN
+ db SFX_BATTLE_2A, $00,$80 ; HYDRO_PUMP
+ db SFX_BATTLE_2C, $00,$80 ; SURF
+ db SFX_BATTLE_28, $40,$80 ; ICE_BEAM
+ db SFX_BATTLE_29, $f0,$e0 ; BLIZZARD
+ db SFX_PSYBEAM, $00,$80 ; PSYBEAM
+ db SFX_BATTLE_2A, $f0,$60 ; BUBBLEBEAM
+ db SFX_BATTLE_28, $00,$80 ; AURORA_BEAM
+ db SFX_BATTLE_36, $00,$80 ; HYPER_BEAM
+ db SFX_PECK,$01, $a0 ; PECK
+ db SFX_BATTLE_13, $f0,$20 ; DRILL_PECK
+ db SFX_BATTLE_23, $01,$c0 ; SUBMISSION
+ db SFX_BATTLE_23, $00,$80 ; LOW_KICK
+ db SFX_SUPER_EFFECTIVE, $00,$e0 ; COUNTER
+ db SFX_BATTLE_26, $01,$60 ; SEISMIC_TOSS
+ db SFX_BATTLE_26, $20,$40 ; STRENGTH
+ db SFX_BATTLE_24, $00,$80 ; ABSORB
+ db SFX_BATTLE_24, $40,$c0 ; MEGA_DRAIN
+ db SFX_BATTLE_1B, $03,$60 ; LEECH_SEED
+ db SFX_BATTLE_25, $11,$e0 ; GROWTH
+ db SFX_BATTLE_12, $20,$e0 ; RAZOR_LEAF
+ db SFX_BATTLE_2E, $00,$80 ; SOLARBEAM
+ db SFX_BATTLE_1C, $00,$80 ; POISONPOWDER
+ db SFX_BATTLE_1C, $11,$a0 ; STUN_SPORE
+ db SFX_BATTLE_1C, $01,$c0 ; SLEEP_POWDER
+ db SFX_BATTLE_13, $14,$c0 ; PETAL_DANCE
+ db SFX_BATTLE_1B, $02,$a0 ; STRING_SHOT
+ db SFX_BATTLE_29, $f0,$80 ; DRAGON_RAGE
+ db SFX_BATTLE_29, $20,$c0 ; FIRE_SPIN
+ db SFX_BATTLE_2F, $00,$20 ; THUNDERSHOCK
+ db SFX_BATTLE_2F, $20,$80 ; THUNDERBOLT
+ db SFX_BATTLE_2E, $12,$60 ; THUNDER_WAVE
+ db SFX_BATTLE_26, $00,$80 ; THUNDER
+ db SFX_BATTLE_14, $01,$e0 ; ROCK_THROW
+ db SFX_BATTLE_29, $0f,$e0 ; EARTHQUAKE
+ db SFX_BATTLE_29, $11,$20 ; FISSURE
+ db SFX_DAMAGE, $10,$40 ; DIG
+ db SFX_BATTLE_0F, $10,$c0 ; TOXIC
+ db SFX_BATTLE_14, $00,$20 ; CONFUSION
+ db SFX_PSYCHIC_M, $00,$80 ; PSYCHIC_M
+ db SFX_BATTLE_35, $11,$18 ; HYPNOSIS
+ db SFX_BATTLE_09, $20,$c0 ; MEDITATE
+ db SFX_FAINT_FALL, $20,$c0 ; AGILITY
+ db SFX_BATTLE_25, $00,$10 ; QUICK_ATTACK
+ db SFX_BATTLE_26, $f0,$20 ; RAGE
+ db SFX_BATTLE_33, $f0,$c0 ; TELEPORT
+ db SFX_NOT_VERY_EFFECTIVE,$f0,$e0 ; NIGHT_SHADE
+ db SFX_BATTLE_09, $f0,$40 ; MIMIC
+ db SFX_BATTLE_31, $00,$80 ; SCREECH
+ db SFX_BATTLE_33, $80,$40 ; DOUBLE_TEAM
+ db SFX_BATTLE_33, $00,$80 ; RECOVER
+ db SFX_BATTLE_14, $11,$20 ; HARDEN
+ db SFX_BATTLE_14, $22,$10 ; MINIMIZE
+ db SFX_BATTLE_1B, $f1,$ff ; SMOKESCREEN
+ db SFX_BATTLE_13, $f1,$ff ; CONFUSE_RAY
+ db SFX_BATTLE_14, $33,$30 ; WITHDRAW
+ db SFX_BATTLE_32, $40,$c0 ; DEFENSE_CURL
+ db SFX_BATTLE_0E, $20,$20 ; BARRIER
+ db SFX_BATTLE_0E, $f0,$10 ; LIGHT_SCREEN
+ db SFX_BATTLE_0F, $f8,$10 ; HAZE
+ db SFX_NOT_VERY_EFFECTIVE,$f0,$10 ; REFLECT
+ db SFX_BATTLE_25, $00,$80 ; FOCUS_ENERGY
+ db SFX_BATTLE_18, $00,$c0 ; BIDE
+ db SFX_BATTLE_32, $c0,$ff ; METRONOME
+ db SFX_BATTLE_09, $f2,$20 ; MIRROR_MOVE
+ db SFX_BATTLE_34, $00,$80 ; SELFDESTRUCT
+ db SFX_BATTLE_34, $00,$40 ; EGG_BOMB
+ db SFX_BATTLE_09, $00,$40 ; LICK
+ db SFX_NOT_VERY_EFFECTIVE,$10,$ff ; SMOG
+ db SFX_BATTLE_2A, $20,$20 ; SLUDGE
+ db SFX_BATTLE_32, $00,$80 ; BONE_CLUB
+ db SFX_BATTLE_29, $1f,$20 ; FIRE_BLAST
+ db SFX_BATTLE_25, $2f,$80 ; WATERFALL
+ db SFX_BATTLE_0F, $1f,$ff ; CLAMP
+ db SFX_BATTLE_2B, $1f,$60 ; SWIFT
+ db SFX_BATTLE_26, $1e,$20 ; SKULL_BASH
+ db SFX_BATTLE_26, $1f,$18 ; SPIKE_CANNON
+ db SFX_BATTLE_14, $0f,$80 ; CONSTRICT
+ db SFX_BATTLE_09, $f8,$10 ; AMNESIA
+ db SFX_FAINT_FALL, $18,$20 ; KINESIS
+ db SFX_BATTLE_32, $08,$40 ; SOFTBOILED
+ db SFX_BATTLE_17, $01,$e0 ; HI_JUMP_KICK
+ db SFX_NOT_VERY_EFFECTIVE,$09,$ff ; GLARE
+ db SFX_BATTLE_35, $42,$01 ; DREAM_EATER
+ db SFX_BATTLE_1C, $00,$ff ; POISON_GAS
+ db SFX_BATTLE_32, $08,$e0 ; BARRAGE
+ db SFX_BATTLE_24, $00,$80 ; LEECH_LIFE
+ db SFX_BATTLE_09, $88,$10 ; LOVELY_KISS
+ db SFX_BATTLE_25, $48,$ff ; SKY_ATTACK
+ db SFX_FAINT_FALL, $ff,$ff ; TRANSFORM
+ db SFX_BATTLE_24, $ff,$10 ; BUBBLE
+ db SFX_FAINT_FALL, $ff,$04 ; DIZZY_PUNCH
+ db SFX_BATTLE_1C, $01,$ff ; SPORE
+ db SFX_BATTLE_13, $f8,$ff ; FLASH
+ db SFX_BATTLE_0C, $f0,$f0 ; PSYWAVE
+ db SFX_BATTLE_0F, $08,$10 ; SPLASH
+ db SFX_BATTLE_0D, $f0,$ff ; ACID_ARMOR
+ db SFX_SUPER_EFFECTIVE, $f0,$ff ; CRABHAMMER
+ db SFX_BATTLE_34, $10,$ff ; EXPLOSION
+ db SFX_BATTLE_0E, $f0,$20 ; FURY_SWIPES
+ db SFX_BATTLE_2B, $f0,$60 ; BONEMERANG
+ db SFX_BATTLE_21, $12,$10 ; REST
+ db SFX_BATTLE_36, $f0,$20 ; ROCK_SLIDE
+ db SFX_BATTLE_1E, $12,$ff ; HYPER_FANG
+ db SFX_BATTLE_31, $80,$04 ; SHARPEN
+ db SFX_BATTLE_33, $f0,$10 ; CONVERSION
+ db SFX_BATTLE_29, $f8,$ff ; TRI_ATTACK
+ db SFX_BATTLE_26, $f0,$ff ; SUPER_FANG
+ db SFX_NOT_VERY_EFFECTIVE,$01,$ff ; SLASH
+ db SFX_BATTLE_2C, $d8,$04 ; SUBSTITUTE
+ db SFX_BATTLE_0B, $00,$80 ; STRUGGLE
+ db SFX_BATTLE_0B, $00,$80
+
+CopyPicTiles: ; 79aae (1e:5aae)
ld a, [H_WHOSETURN]
and a
ld a, $31 ; base tile ID of player mon sprite
- jr z, .asm_79ab6
+ jr z, .next
; enemy turn
xor a ; base tile ID of enemy mon sprite
-.asm_79ab6
+.next
ld [hBaseTileID], a
- jr asm_79acb
+ jr CopyTileIDs_NoBGTransfer
-Func_79aba: ; 79aba (1e:5aba)
+; copy the tiles used when a mon is being sent out of or into a pokeball
+CopyDownscaledMonTiles: ; 79aba (1e:5aba)
call GetPredefRegisters
- ld a, [wcd6c]
+ ld a, [wDownscaledMonSize]
and a
- jr nz, .asm_79ac8
- ld de, Unknown_79b02 ; $5b02
- jr asm_79acb
-.asm_79ac8
- ld de, Unknown_79b1b ; $5b1b
-asm_79acb: ; 79acb (1e:5acb)
+ jr nz, .smallerSize
+ ld de, DownscaledMonTiles_5x5
+ jr CopyTileIDs_NoBGTransfer
+.smallerSize
+ ld de, DownscaledMonTiles_3x3
+; fall through
+
+CopyTileIDs_NoBGTransfer: ; 79acb (1e:5acb)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
+; fall through
; b = number of rows
; c = number of columns
@@ -2557,14 +2598,14 @@ TileIDListPointerTable: ; 79aea (1e:5aea)
dw Unknown_79c50
db $3C
-Unknown_79b02: ; 79b02 (1e:5b02)
+DownscaledMonTiles_5x5: ; 79b02 (1e:5b02)
db $31,$38,$46,$54,$5B
db $32,$39,$47,$55,$5C
db $34,$3B,$49,$57,$5E
db $36,$3D,$4B,$59,$60
db $37,$3E,$4C,$5A,$61
-Unknown_79b1b: ; 79b1b (1e:5b1b)
+DownscaledMonTiles_3x3: ; 79b1b (1e:5b1b)
db $31,$46,$5B
db $34,$49,$5E
db $37,$4C,$61
@@ -2635,130 +2676,135 @@ Unknown_79c50: ; 79c50 (1e:5c50)
AnimationLeavesFalling: ; 79c74 (1e:5c74)
; Makes leaves float down from the top of the screen. This is used
; in Razor Leaf's animation.
- ld a, [$ff48]
+ ld a, [rOBP0]
push af
- ld a, [wcc79]
- ld [$ff48], a
- ld d, $37
- ld a, $3
- ld [W_SUBANIMTRANSFORM], a
- call Func_79c97
+ ld a, [wAnimPalette]
+ ld [rOBP0], a
+ ld d, $37 ; leaf tile
+ ld a, 3 ; number of leaves
+ ld [wNumFallingObjects], a
+ call AnimationFallingObjects
pop af
- ld [$ff48], a
+ ld [rOBP0], a
ret
AnimationPetalsFalling: ; 79c8a (1e:5c8a)
; Makes lots of petals fall down from the top of the screen. It's used in
; the animation for Petal Dance.
- ld d, $71
- ld a, $14
- ld [W_SUBANIMTRANSFORM], a
- call Func_79c97
+ ld d, $71 ; petal tile
+ ld a, 20 ; number of petals
+ ld [wNumFallingObjects], a
+ call AnimationFallingObjects
jp ClearSprites
-Func_79c97: ; 79c97 (1e:5c97)
+AnimationFallingObjects: ; 79c97 (1e:5c97)
ld c, a
- ld a, $1
- call Func_797e8
- call Func_79d2a
- call Func_79d52
+ ld a, 1
+ call InitMultipleObjectsOAM
+ call FallingObjects_InitXCoords
+ call FallingObjects_InitMovementData
ld hl, wOAMBuffer
- ld [hl], $0
-.asm_79ca8
- ld hl, wTrainerSpriteOffset
- ld de, $0000
- ld a, [W_SUBANIMTRANSFORM]
+ ld [hl], 0
+.loop
+ ld hl, wFallingObjectsMovementData
+ ld de, 0
+ ld a, [wNumFallingObjects]
ld c, a
-.asm_79cb2
+.innerLoop
push bc
push hl
push de
ld a, [hl]
- ld [wd08a], a
- call Func_79d16
- call Func_79cdb
+ ld [wFallingObjectMovementByte], a
+ call FallingObjects_UpdateMovementByte
+ call FallingObjects_UpdateOAMEntry
pop de
- ld hl, $0004
+ ld hl, 4
add hl, de
ld e, l
ld d, h
pop hl
- ld a, [wd08a]
+ ld a, [wFallingObjectMovementByte]
ld [hli], a
pop bc
dec c
- jr nz, .asm_79cb2
+ jr nz, .innerLoop
call Delay3
ld hl, wOAMBuffer
- ld a, [hl]
- cp $68
- jr nz, .asm_79ca8
+ ld a, [hl] ; Y
+ cp 104 ; has the top falling object reached 104 yet?
+ jr nz, .loop ; keep moving the falling objects down until it does
ret
-Func_79cdb: ; 79cdb (1e:5cdb)
+FallingObjects_UpdateOAMEntry: ; 79cdb (1e:5cdb)
+; Increases Y by 2 pixels and adjusts X and X flip based on the falling object's
+; movement byte.
ld hl, wOAMBuffer
add hl, de
ld a, [hl]
inc a
inc a
- cp $70
- jr c, .asm_79ce8
- ld a, $a0
-.asm_79ce8
- ld [hli], a
- ld a, [wd08a]
+ cp 112
+ jr c, .next
+ ld a, 160 ; if Y >= 112, put it off-screen
+.next
+ ld [hli], a ; Y
+ ld a, [wFallingObjectMovementByte]
ld b, a
- ld de, Unknown_79d0d
+ ld de, FallingObjects_DeltaXs
and $7f
add e
- jr nc, .asm_79cf6
+ jr nc, .noCarry
inc d
-.asm_79cf6
+.noCarry
ld e, a
ld a, b
and $80
- jr nz, .asm_79d03
+ jr nz, .movingLeft
+; moving right
ld a, [de]
add [hl]
- ld [hli], a
+ ld [hli], a ; X
inc hl
- xor a
- jr .asm_79d0b
-.asm_79d03
+ xor a ; no horizontal flip
+ jr .next2
+.movingLeft
ld a, [de]
ld b, a
ld a, [hl]
sub b
- ld [hli], a
+ ld [hli], a ; X
inc hl
- ld a, $20
-.asm_79d0b
- ld [hl], a
+ ld a, (1 << OAM_X_FLIP)
+.next2
+ ld [hl], a ; attribute
ret
-Unknown_79d0d: ; 79d0d (1e:5d0d)
- db $00,$01,$03,$05,$07,$09,$0B,$0D,$0F
+FallingObjects_DeltaXs: ; 79d0d (1e:5d0d)
+ db 0, 1, 3, 5, 7, 9, 11, 13, 15
-Func_79d16: ; 79d16 (1e:5d16)
- ld a, [wd08a]
+FallingObjects_UpdateMovementByte: ; 79d16 (1e:5d16)
+ ld a, [wFallingObjectMovementByte]
inc a
ld b, a
and $7f
- cp $9
+ cp 9 ; have we reached the end of the delta-Xs?
ld a, b
- jr nz, .asm_79d26
+ jr nz, .next
+; We've reached the end of the delta-Xs, so wrap to the start and change
+; direction from right to left or vice versa.
and $80
xor $80
-.asm_79d26
- ld [wd08a], a
+.next
+ ld [wFallingObjectMovementByte], a
ret
-Func_79d2a: ; 79d2a (1e:5d2a)
+FallingObjects_InitXCoords: ; 79d2a (1e:5d2a)
ld hl, wOAMBuffer + $01
- ld de, Unknown_79d3e
- ld a, [W_SUBANIMTRANSFORM]
+ ld de, FallingObjects_InitialXCoords
+ ld a, [wNumFallingObjects]
ld c, a
-.asm_79d34
+.loop
ld a, [de]
ld [hli], a
inc hl
@@ -2766,66 +2812,98 @@ Func_79d2a: ; 79d2a (1e:5d2a)
inc hl
inc de
dec c
- jr nz, .asm_79d34
+ jr nz, .loop
ret
-Unknown_79d3e: ; 79d3e (1e:5d3e)
+FallingObjects_InitialXCoords: ; 79d3e (1e:5d3e)
db $38,$40,$50,$60,$70,$88,$90,$56,$67,$4A,$77,$84,$98,$32,$22,$5C,$6C,$7D,$8E,$99
-Func_79d52: ; 79d52 (1e:5d52)
- ld hl, wTrainerSpriteOffset
- ld de, Unknown_79d63
- ld a, [W_SUBANIMTRANSFORM]
+FallingObjects_InitMovementData: ; 79d52 (1e:5d52)
+ ld hl, wFallingObjectsMovementData
+ ld de, FallingObjects_InitialMovementData
+ ld a, [wNumFallingObjects]
ld c, a
-.asm_79d5c
+.loop
ld a, [de]
ld [hli], a
inc de
dec c
- jr nz, .asm_79d5c
+ jr nz, .loop
ret
-Unknown_79d63: ; 79d63 (1e:5d63)
+FallingObjects_InitialMovementData: ; 79d63 (1e:5d63)
db $00,$84,$06,$81,$02,$88,$01,$83,$05,$89,$09,$80,$07,$87,$03,$82,$04,$85,$08,$86
AnimationShakeEnemyHUD: ; 79d77 (1e:5d77)
+; Shakes the enemy HUD.
+
+; Make a copy of the back pic's tile patterns in sprite tile pattern VRAM.
ld de, vBackPic
ld hl, vSprites
ld bc, 7 * 7
call CopyVideoData
+
xor a
ld [hSCX], a
+
+; Copy wTileMap to BG map 0. The regular BG (not the window) is set to use
+; map 0 and can be scrolled with SCX, which allows a shaking effect.
ld hl, vBGMap0
- call Func_79e0d
- ld a, $90
+ call BattleAnimCopyTileMapToVRAM
+
+; Now that the regular BG is showing the same thing the window was, move the
+; window off the screen so that we can modify its contents below.
+ ld a, SCREEN_HEIGHT_PIXELS
ld [hWY], a
- ld hl, vBGMap0 + $320
- call Func_79e0d
- ld a, $38
+
+; Copy wTileMap to VRAM such that the row below the enemy HUD (in wTileMap) is
+; lined up with row 0 of the window.
+ ld hl, vBGMap1 - $20 * 7
+ call BattleAnimCopyTileMapToVRAM
+
+; Move the window so that the row below the enemy HUD (in BG map 0) lines up
+; with the top row of the window on the screen. This makes it so that the window
+; covers everything below the enemy HD with a copy that looks just like what
+; was there before.
+ ld a, 7 * 8
ld [hWY], a
- call Func_792fd
+
+; Write OAM entries so that the copy of the back pic from the top of this
+; function shows up on screen. We need this because the back pic's Y coordinates
+; range overlaps with that of the enemy HUD and we don't want to shake the top
+; of the back pic when we shake the enemy HUD. The OAM copy won't be affected
+; by SCX.
+ call ShakeEnemyHUD_WritePlayerMonPicOAM
+
ld hl, vBGMap0
- call Func_79e0d
+ call BattleAnimCopyTileMapToVRAM
+
+; Remove the back pic from the BG map.
call AnimationHideMonPic
call Delay3
- ld de, $0208
- call Func_79de9
+
+; Use SCX to shake the regular BG. The window and the back pic OAM copy are
+; not affected.
+ lb de, 2, 8
+ call ShakeEnemyHUD_ShakeBG
+
+; Restore the original graphics.
call AnimationShowMonPic
call ClearSprites
- ld a, $90
+ ld a, SCREEN_HEIGHT_PIXELS
ld [hWY], a
ld hl, vBGMap1
- call Func_79e0d
+ call BattleAnimCopyTileMapToVRAM
xor a
ld [hWY], a
call SaveScreenTilesToBuffer1
ld hl, vBGMap0
- call Func_79e0d
+ call BattleAnimCopyTileMapToVRAM
call ClearScreen
call Delay3
call LoadScreenTilesFromBuffer1
ld hl, vBGMap1
- jp Func_79e0d
+ jp BattleAnimCopyTileMapToVRAM
; b = tile ID list index
; c = base tile ID
@@ -2839,29 +2917,29 @@ CopyTileIDsFromList: ; 79dda (1e:5dda)
pop hl
jp CopyTileIDs
-Func_79de9: ; 79de9 (1e:5de9)
+ShakeEnemyHUD_ShakeBG: ; 79de9 (1e:5de9)
ld a, [hSCX]
- ld [wTrainerSpriteOffset], a
-.asm_79dee
- ld a, [wTrainerSpriteOffset]
+ ld [wTempSCX], a
+.loop
+ ld a, [wTempSCX]
add d
ld [hSCX], a
- ld c, $2
+ ld c, 2
call DelayFrames
- ld a, [wTrainerSpriteOffset]
+ ld a, [wTempSCX]
sub d
ld [hSCX], a
- ld c, $2
+ ld c, 2
call DelayFrames
dec e
- jr nz, .asm_79dee
- ld a, [wTrainerSpriteOffset]
+ jr nz, .loop
+ ld a, [wTempSCX]
ld [hSCX], a
ret
-Func_79e0d: ; 79e0d (1e:5e0d)
+BattleAnimCopyTileMapToVRAM: ; 79e0d (1e:5e0d)
ld a, h
- ld [$ffbd], a
+ ld [H_AUTOBGTRANSFERDEST + 1], a
ld a, l
ld [H_AUTOBGTRANSFERDEST], a
jp Delay3
@@ -2870,7 +2948,7 @@ TossBallAnimation: ; 79e16 (1e:5e16)
ld a,[W_ISINBATTLE]
cp a,2
jr z,.BlockBall ; if in trainer battle, play different animation
- ld a,[wd11e]
+ ld a,[wPokeBallAnimData]
ld b,a
; upper nybble: how many animations (from PokeBallAnimations) to play
@@ -2883,7 +2961,7 @@ TossBallAnimation: ; 79e16 (1e:5e16)
; store these for later
ld a,b
and a,$F
- ld [wWhichTrade],a
+ ld [wNumShakes],a
ld hl,.PokeBallAnimations
; choose which toss animation to use
@@ -2917,8 +2995,8 @@ TossBallAnimation: ; 79e16 (1e:5e16)
ld a,TOSS_ANIM
ld [W_ANIMATIONID],a
call PlayAnimation
- ld a,(SFX_08_43 - SFX_Headers_08) / 3
- call PlaySound ; play sound effect
+ ld a,SFX_FAINT_THUD
+ call PlaySound
ld a,BLOCKBALL_ANIM
ld [W_ANIMATIONID],a
jp PlayAnimation
@@ -2930,21 +3008,21 @@ PlayApplyingAttackSound: ; 79e6a (1e:5e6a)
ld a, [wDamageMultipliers]
and $7f
ret z
- cp $a
+ cp 10
ld a, $20
ld b, $30
- ld c, (SFX_08_50 - SFX_Headers_08) / 3
- jr z, .asm_79e8b
+ ld c, SFX_DAMAGE
+ jr z, .playSound
ld a, $e0
ld b, $ff
- ld c, (SFX_08_5a - SFX_Headers_08) / 3
- jr nc, .asm_79e8b
+ ld c, SFX_SUPER_EFFECTIVE
+ jr nc, .playSound
ld a, $50
ld b, $1
- ld c, (SFX_08_51 - SFX_Headers_08) / 3
-.asm_79e8b
- ld [wc0f1], a
+ ld c, SFX_NOT_VERY_EFFECTIVE
+.playSound
+ ld [wFrequencyModifier], a
ld a, b
- ld [wc0f2], a
+ ld [wTempoModifier], a
ld a, c
jp PlaySound
diff --git a/engine/battle/bank_e_misc.asm b/engine/battle/bank_e_misc.asm
index 6ef4065f..dc766f23 100755
--- a/engine/battle/bank_e_misc.asm
+++ b/engine/battle/bank_e_misc.asm
@@ -24,7 +24,7 @@ FormatMovesString: ; 39b87 (e:5b87)
jr .copyNameLoop
.doneCopyingName
ld a, b
- ld [wcd6c], a
+ ld [wNumMovesMinusOne], a
inc b
ld a, $4e ; line break
ld [de], a
@@ -52,49 +52,49 @@ FormatMovesString: ; 39b87 (e:5b87)
ret
; XXX this is called in a few places, but it doesn't appear to do anything useful
-Func_39bd5: ; 39bd5 (e:5bd5)
- ld a, [wd11b]
- cp $1
- jr nz, .asm_39be6
+InitList: ; 39bd5 (e:5bd5)
+ ld a, [wInitListType]
+ cp INIT_ENEMYOT_LIST
+ jr nz, .notEnemy
ld hl, wEnemyPartyCount
ld de, wEnemyMonOT
ld a, ENEMYOT_NAME
- jr .asm_39c18
-.asm_39be6
- cp $4
- jr nz, .calcAttackStat4
+ jr .done
+.notEnemy
+ cp INIT_PLAYEROT_LIST
+ jr nz, .notPlayer
ld hl, wPartyCount
ld de, wPartyMonOT
ld a, PLAYEROT_NAME
- jr .asm_39c18
-.calcAttackStat4
- cp $5
- jr nz, .asm_39c02
- ld hl, wStringBuffer2 + 11
+ jr .done
+.notPlayer
+ cp INIT_MON_LIST
+ jr nz, .notMonster
+ ld hl, wItemList
ld de, MonsterNames
ld a, MONSTER_NAME
- jr .asm_39c18
-.asm_39c02
- cp $2
- jr nz, .asm_39c10
+ jr .done
+.notMonster
+ cp INIT_BAG_ITEM_LIST
+ jr nz, .notBag
ld hl, wNumBagItems
ld de, ItemNames
ld a, ITEM_NAME
- jr .asm_39c18
-.asm_39c10
- ld hl, wStringBuffer2 + 11
+ jr .done
+.notBag
+ ld hl, wItemList
ld de, ItemNames
ld a, ITEM_NAME
-.asm_39c18
+.done
ld [wNameListType], a
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
ld a, e
- ld [wcf8d], a
+ ld [wUnusedCF8D], a
ld a, d
- ld [wcf8e], a
+ ld [wUnusedCF8D + 1], a
ld bc, ItemPrices
ld a, c
ld [wItemPrices], a
@@ -102,10 +102,10 @@ Func_39bd5: ; 39bd5 (e:5bd5)
ld [wItemPrices + 1], a
ret
-; get species of mon e in list [wcc49] for LoadMonData
+; get species of mon e in list [wMonDataLocation] for LoadMonData
GetMonSpecies: ; 39c37 (e:5c37)
ld hl, wPartySpecies
- ld a, [wcc49]
+ ld a, [wMonDataLocation]
and a
jr z, .getSpecies
dec a
diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm
index 4a9ea782..642d457b 100644
--- a/engine/battle/battle_transitions.asm
+++ b/engine/battle/battle_transitions.asm
@@ -7,10 +7,13 @@ BattleTransition: ; 709d7 (1c:49d7)
dec a
ld [wUpdateSpritesEnabled], a
call DelayFrame
+
+; Determine which OAM block is being used by the enemy trainer sprite (if there
+; is one).
ld hl, wSpriteStateData1 + 2
- ld a, [H_DOWNARROWBLINKCNT2]
+ ld a, [hSpriteIndexOrTextID] ; enemy trainer sprite index (0 if wild battle)
ld c, a
- ld b, $0
+ ld b, 0
ld de, $10
.loop1
ld a, [hl]
@@ -21,13 +24,15 @@ BattleTransition: ; 709d7 (1c:49d7)
add hl, de
dec c
jr nz, .loop1
+
+; Clear OAM except for the blocks used by the player and enemy trainer sprites.
ld hl, wOAMBuffer + $10
- ld c, $9
+ ld c, 9
.loop2
ld a, b
swap a
cp l
- jr z, .skip2
+ jr z, .skip2 ; skip clearing the block if the enemy trainer is using it
push hl
push bc
ld bc, $10
@@ -40,9 +45,10 @@ BattleTransition: ; 709d7 (1c:49d7)
add hl, de
dec c
jr nz, .loop2
+
call Delay3
call LoadBattleTransitionTile
- ld bc, $0
+ ld bc, 0
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jr z, .linkBattle
@@ -76,7 +82,7 @@ BattleTransitions: ; 70a3c (1c:4a3c)
GetBattleTransitionID_WildOrTrainer: ; 70a4c (1c:4a4c)
ld a, [W_CUROPPONENT]
- cp $c8
+ cp 200
jr nc, .trainer
res 0, c
ret
@@ -103,13 +109,13 @@ GetBattleTransitionID_CompareLevels: ; 70a59 (1c:4a59)
sub e
jr nc, .highLevelEnemy
res 1, c
- ld a, $1
- ld [wcd47], a
+ ld a, 1
+ ld [wBattleTransitionSpiralDirection], a
ret
.highLevelEnemy
set 1, c
xor a
- ld [wcd47], a
+ ld [wBattleTransitionSpiralDirection], a
ret
; fails to recognize VICTORY_ROAD_2, VICTORY_ROAD_3, all ROCKET_HIDEOUT maps,
@@ -178,11 +184,12 @@ DungeonMaps2: ; 70aac (1c:4aac)
LoadBattleTransitionTile: ; 70ab7 (1c:4ab7)
ld hl, vChars1 + $7f0
ld de, BattleTransitionTile
- ld bc, (BANK(BattleTransitionTile) << 8) + $01
+ lb bc, BANK(BattleTransitionTile), (BattleTransitionTileEnd - BattleTransitionTile) / $10
jp CopyVideoData
BattleTransitionTile: ; 70ac3 (1c:4ac3)
INCBIN "gfx/battle_transition.2bpp"
+BattleTransitionTileEnd:
BattleTransition_BlackScreen: ; 70ad3 (1c:4ad3)
ld a, $ff
@@ -198,58 +205,76 @@ BattleTransition_BlackScreen: ; 70ad3 (1c:4ad3)
; called regardless of mon levels, but does an
; outward spiral if enemy is at least 3 levels
; higher than player and does an inward spiral otherwise
+<<<<<<< HEAD
BattleTransition_Spiral: ; 70ae5 (1c:4ae5)
ld a, [wcd47]
+=======
+BattleTransition_Spiral: ; 70a72 (1c:4a72)
+ ld a, [wBattleTransitionSpiralDirection]
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
and a
jr z, .outwardSpiral
call BattleTransition_InwardSpiral
jr .done
.outwardSpiral
- hlCoord 10, 10
+ coord hl, 10, 10
ld a, $3
- ld [wd09f], a
+ ld [wOutwardSpiralCurrentDirection], a
ld a, l
- ld [wd09b], a
+ ld [wOutwardSpiralTileMapPointer + 1], a
ld a, h
- ld [wd09a], a
- ld b, $78
-.loop1
- ld c, $3
-.loop2
+ ld [wOutwardSpiralTileMapPointer], a
+ ld b, 120
+.loop
+ ld c, 3
+.innerLoop
push bc
call BattleTransition_OutwardSpiral_
pop bc
dec c
- jr nz, .loop2
+ jr nz, .innerLoop
call DelayFrame
dec b
- jr nz, .loop1
+ jr nz, .loop
.done
call BattleTransition_BlackScreen
xor a
- ld [wd09b], a
- ld [wd09a], a
+ ld [wOutwardSpiralTileMapPointer + 1], a
+ ld [wOutwardSpiralTileMapPointer], a
ret
+<<<<<<< HEAD
BattleTransition_InwardSpiral: ; 70b1d (1c:4b1d)
ld a, $7
ld [wWhichTrade], a
ld hl, wTileMap
ld c, $11
ld de, $14
+=======
+BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa)
+ ld a, 7
+ ld [wInwardSpiralUpdateScreenCounter], a
+ coord hl, 0, 0
+ ld c, SCREEN_HEIGHT - 1
+ ld de, SCREEN_WIDTH
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
call BattleTransition_InwardSpiral_
inc c
jr .skip
.loop
- ld de, $14
+ ld de, SCREEN_WIDTH
call BattleTransition_InwardSpiral_
.skip
inc c
- ld de, $1
+ ld de, 1
call BattleTransition_InwardSpiral_
dec c
dec c
+<<<<<<< HEAD
ld de, -$14
+=======
+ ld de, -SCREEN_WIDTH
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
call BattleTransition_InwardSpiral_
inc c
ld de, -1
@@ -267,85 +292,92 @@ BattleTransition_InwardSpiral_: ; 70b53 (1c:4b53)
ld [hl], $ff
add hl, de
push bc
- ld a, [wWhichTrade]
+ ld a, [wInwardSpiralUpdateScreenCounter]
dec a
jr nz, .skip
call BattleTransition_TransferDelay3
- ld a, $7
+ ld a, 7
.skip
- ld [wWhichTrade], a
+ ld [wInwardSpiralUpdateScreenCounter], a
pop bc
dec c
jr nz, .loop
pop bc
ret
+<<<<<<< HEAD
BattleTransition_OutwardSpiral_: ; 70b6c (1c:4b6c)
ld bc, -$14
ld de, $14
ld a, [wd09b]
+=======
+BattleTransition_OutwardSpiral_: ; 70af9 (1c:4af9)
+ ld bc, -SCREEN_WIDTH
+ ld de, SCREEN_WIDTH
+ ld a, [wOutwardSpiralTileMapPointer + 1]
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
ld l, a
- ld a, [wd09a]
+ ld a, [wOutwardSpiralTileMapPointer]
ld h, a
- ld a, [wd09f]
+ ld a, [wOutwardSpiralCurrentDirection]
cp $0
- jr z, .zero
+ jr z, .up
cp $1
- jr z, .one
+ jr z, .left
cp $2
- jr z, .two
+ jr z, .down
cp $3
- jr z, .three
-.done1
+ jr z, .right
+.keepSameDirection
ld [hl], $ff
-.done2_
+.done
ld a, l
- ld [wd09b], a
+ ld [wOutwardSpiralTileMapPointer + 1], a
ld a, h
- ld [wd09a], a
+ ld [wOutwardSpiralTileMapPointer], a
ret
-.zero
+.up
dec hl
ld a, [hl]
cp $ff
- jr nz, .done2
+ jr nz, .changeDirection
inc hl
add hl, bc
- jr .done1
-.one
+ jr .keepSameDirection
+.left
add hl, de
ld a, [hl]
cp $ff
- jr nz, .done2
+ jr nz, .changeDirection
add hl, bc
dec hl
- jr .done1
-.two
+ jr .keepSameDirection
+.down
inc hl
ld a, [hl]
cp $ff
- jr nz, .done2
+ jr nz, .changeDirection
dec hl
add hl, de
- jr .done1
-.three
+ jr .keepSameDirection
+.right
add hl, bc
ld a, [hl]
cp $ff
- jr nz, .done2
+ jr nz, .changeDirection
add hl, de
inc hl
- jr .done1
-.done2
+ jr .keepSameDirection
+.changeDirection
ld [hl], $ff
- ld a, [wd09f]
+ ld a, [wOutwardSpiralCurrentDirection]
inc a
cp $4
jr nz, .skip
xor a
.skip
- ld [wd09f], a
- jr .done2_
+ ld [wOutwardSpiralCurrentDirection], a
+ jr .done
FlashScreen:
BattleTransition_FlashScreen_: ; 70be8 (1c:4be8s)
@@ -355,8 +387,12 @@ BattleTransition_FlashScreen_: ; 70be8 (1c:4be8s)
cp $1
jr z, .done
ld [rBGP], a
+<<<<<<< HEAD
call Func_3021
ld c, $2
+=======
+ ld c, 2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
call DelayFrames
jr .loop
.done
@@ -369,61 +405,95 @@ BattleTransition_FlashScreenPalettes: ; 70be8 (1c:4be8)
db $01 ; terminator
; used for low level trainer dungeon battles
+<<<<<<< HEAD
BattleTransition_Shrink: ; 70bf4 (1c:4bf4)
ld c, $9
+=======
+BattleTransition_Shrink: ; 70b7f (1c:4b7f)
+ ld c, SCREEN_HEIGHT / 2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
.loop
push bc
xor a
ld [H_AUTOBGTRANSFERENABLED], a
+<<<<<<< HEAD
hlCoord 0, 7
deCoord 0, 8
ld bc, -$28
+=======
+ coord hl, 0, 7
+ coord de, 0, 8
+ ld bc, -SCREEN_WIDTH * 2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
call BattleTransition_CopyTiles1
- hlCoord 0, 10
- deCoord 0, 9
- ld bc, $28
+ coord hl, 0, 10
+ coord de, 0, 9
+ ld bc, SCREEN_WIDTH * 2
call BattleTransition_CopyTiles1
+<<<<<<< HEAD
hlCoord 8, 0
deCoord 9, 0
ld bc, -$2
+=======
+ coord hl, 8, 0
+ coord de, 9, 0
+ ld bc, -2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
call BattleTransition_CopyTiles2
- hlCoord 11, 0
- deCoord 10, 0
- ld bc, $2
+ coord hl, 11, 0
+ coord de, 10, 0
+ ld bc, 2
call BattleTransition_CopyTiles2
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
- ld c, $6
+ ld c, 6
call DelayFrames
pop bc
dec c
jr nz, .loop
call BattleTransition_BlackScreen
- ld c, $a
+ ld c, 10
jp DelayFrames
; used for high level trainer dungeon battles
+<<<<<<< HEAD
BattleTransition_Split: ; 70c40 (1c:4c40)
ld c, $9
+=======
+BattleTransition_Split: ; 70bca (1c:4bca)
+ ld c, SCREEN_HEIGHT / 2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
xor a
ld [H_AUTOBGTRANSFERENABLED], a
.loop
push bc
+<<<<<<< HEAD
hlCoord 0, 16
deCoord 0, 17
ld bc, -$28
+=======
+ coord hl, 0, 16
+ coord de, 0, 17
+ ld bc, -SCREEN_WIDTH * 2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
call BattleTransition_CopyTiles1
- hlCoord 0, 1
- ld de, wTileMap
- ld bc, $28
+ coord hl, 0, 1
+ coord de, 0, 0
+ ld bc, SCREEN_WIDTH * 2
call BattleTransition_CopyTiles1
+<<<<<<< HEAD
hlCoord 18, 0
deCoord 19, 0
ld bc, -$2
+=======
+ coord hl, 18, 0
+ coord de, 19, 0
+ ld bc, -2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
call BattleTransition_CopyTiles2
- hlCoord 1, 0
- ld de, wTileMap
- ld bc, $2
+ coord hl, 1, 0
+ coord de, 0, 0
+ ld bc, 2
call BattleTransition_CopyTiles2
call BattleTransition_TransferDelay3
call Delay3
@@ -431,26 +501,26 @@ BattleTransition_Split: ; 70c40 (1c:4c40)
dec c
jr nz, .loop
call BattleTransition_BlackScreen
- ld c, $a
+ ld c, 10
jp DelayFrames
BattleTransition_CopyTiles1: ; 70c88 (1c:4c88)
ld a, c
- ld [wWhichTrade], a
+ ld [wBattleTransitionCopyTilesOffset], a
ld a, b
- ld [wTrainerEngageDistance], a
- ld c, $8
+ ld [wBattleTransitionCopyTilesOffset + 1], a
+ ld c, 8
.loop1
push bc
push hl
push de
- ld bc, $14
+ ld bc, SCREEN_WIDTH
call CopyData
pop hl
pop de
- ld a, [wWhichTrade]
+ ld a, [wBattleTransitionCopyTilesOffset]
ld c, a
- ld a, [wTrainerEngageDistance]
+ ld a, [wBattleTransitionCopyTilesOffset + 1]
ld b, a
add hl, bc
pop bc
@@ -459,7 +529,7 @@ BattleTransition_CopyTiles1: ; 70c88 (1c:4c88)
ld l, e
ld h, d
ld a, $ff
- ld c, $14
+ ld c, SCREEN_WIDTH
.loop2
ld [hli], a
dec c
@@ -468,26 +538,26 @@ BattleTransition_CopyTiles1: ; 70c88 (1c:4c88)
BattleTransition_CopyTiles2: ; 70cb5 (1c:4c3f)
ld a, c
- ld [wWhichTrade], a
+ ld [wBattleTransitionCopyTilesOffset], a
ld a, b
- ld [wTrainerEngageDistance], a
- ld c, $9
+ ld [wBattleTransitionCopyTilesOffset + 1], a
+ ld c, SCREEN_HEIGHT / 2
.loop1
push bc
push hl
push de
- ld c, $12
+ ld c, SCREEN_HEIGHT
.loop2
ld a, [hl]
ld [de], a
ld a, e
- add $14
+ add SCREEN_WIDTH
jr nc, .noCarry1
inc d
.noCarry1
ld e, a
ld a, l
- add $14
+ add SCREEN_WIDTH
jr nc, .noCarry2
inc h
.noCarry2
@@ -496,9 +566,9 @@ BattleTransition_CopyTiles2: ; 70cb5 (1c:4c3f)
jr nz, .loop2
pop hl
pop de
- ld a, [wWhichTrade]
+ ld a, [wBattleTransitionCopyTilesOffset]
ld c, a
- ld a, [wTrainerEngageDistance]
+ ld a, [wBattleTransitionCopyTilesOffset + 1]
ld b, a
add hl, bc
pop bc
@@ -506,8 +576,8 @@ BattleTransition_CopyTiles2: ; 70cb5 (1c:4c3f)
jr nz, .loop1
ld l, e
ld h, d
- ld de, $14
- ld c, $12
+ ld de, SCREEN_WIDTH
+ ld c, SCREEN_HEIGHT
.loop3
ld [hl], $ff
add hl, de
@@ -516,10 +586,17 @@ BattleTransition_CopyTiles2: ; 70cb5 (1c:4c3f)
ret
; used for high level wild dungeon battles
+<<<<<<< HEAD
BattleTransition_VerticalStripes: ; 70cf4 (1c:4cf4)
ld c, $12
ld hl, wTileMap
deCoord 1, 17
+=======
+BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e)
+ ld c, SCREEN_HEIGHT
+ coord hl, 0, 0
+ coord de, 1, 17
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
xor a
ld [H_AUTOBGTRANSFERENABLED], a
.loop
@@ -532,20 +609,25 @@ BattleTransition_VerticalStripes: ; 70cf4 (1c:4cf4)
call BattleTransition_VerticalStripes_
call BattleTransition_TransferDelay3
pop hl
- ld bc, $ffec
+ ld bc, -SCREEN_WIDTH
add hl, bc
ld e, l
ld d, h
pop hl
- ld bc, $14
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec c
jr nz, .loop
jp BattleTransition_BlackScreen
+<<<<<<< HEAD
BattleTransition_VerticalStripes_: ; 70d20 (1c:4d20)
ld c, $a
+=======
+BattleTransition_VerticalStripes_: ; 70caa (1c:4caa)
+ ld c, SCREEN_WIDTH / 2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
.loop
ld [hl], $ff
inc hl
@@ -555,10 +637,17 @@ BattleTransition_VerticalStripes_: ; 70d20 (1c:4d20)
ret
; used for low level wild dungeon battles
+<<<<<<< HEAD
BattleTransition_HorizontalStripes: ; 70d2a (1c:4d2a)
ld c, $14
ld hl, wTileMap
deCoord 19, 1
+=======
+BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4)
+ ld c, SCREEN_WIDTH
+ coord hl, 0, 0
+ coord de, 19, 1
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
xor a
ld [H_AUTOBGTRANSFERENABLED], a
.loop
@@ -579,9 +668,15 @@ BattleTransition_HorizontalStripes: ; 70d2a (1c:4d2a)
jr nz, .loop
jp BattleTransition_BlackScreen
+<<<<<<< HEAD
BattleTransition_HorizontalStripes_: ; 70d4e (1c:4d4e)
ld c, $9
ld de, $28
+=======
+BattleTransition_HorizontalStripes_: ; 70cd8 (1c:4cd8)
+ ld c, SCREEN_HEIGHT / 2
+ ld de, SCREEN_WIDTH * 2
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
.loop
ld [hl], $ff
add hl, de
@@ -594,11 +689,11 @@ BattleTransition_HorizontalStripes_: ; 70d4e (1c:4d4e)
; by animating each half circle one at a time
BattleTransition_Circle: ; 70d5a (1c:4d5a)
call BattleTransition_FlashScreen
- ld bc, $000a
+ lb bc, 0, SCREEN_WIDTH / 2
ld hl, BattleTransition_HalfCircle1
call BattleTransition_Circle_Sub1
- ld c, $a
- ld b, $1
+ ld c, SCREEN_WIDTH / 2
+ ld b, 1
ld hl, BattleTransition_HalfCircle2
call BattleTransition_Circle_Sub1
jp BattleTransition_BlackScreen
@@ -616,7 +711,7 @@ BattleTransition_Circle_Sub1: ; 70d7c (1c:4d7c)
ld a, b
call BattleTransition_Circle_Sub2
pop hl
- ld bc, $0005
+ ld bc, 5
add hl, bc
call BattleTransition_TransferDelay3
pop bc
@@ -624,8 +719,13 @@ BattleTransition_Circle_Sub1: ; 70d7c (1c:4d7c)
jr nz, BattleTransition_Circle_Sub1
ret
+<<<<<<< HEAD
BattleTransition_TransferDelay3: ; 70d8f (1c:4d8f)
ld a, $1
+=======
+BattleTransition_TransferDelay3: ; 70d19 (1c:4d19)
+ ld a, 1
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
@@ -637,7 +737,7 @@ BattleTransition_TransferDelay3: ; 70d8f (1c:4d8f)
; by animating both half circles at the same time
BattleTransition_DoubleCircle: ; 70d9a (1c:4d9a)
call BattleTransition_FlashScreen
- ld c, $a
+ ld c, SCREEN_WIDTH / 2
ld hl, BattleTransition_HalfCircle1
ld de, BattleTransition_HalfCircle2
.loop
@@ -651,7 +751,7 @@ BattleTransition_DoubleCircle: ; 70d9a (1c:4d9a)
ld a, $1
call BattleTransition_Circle_Sub2
pop hl
- ld bc, $5
+ ld bc, 5
add hl, bc
ld e, l
ld d, h
@@ -664,9 +764,9 @@ BattleTransition_DoubleCircle: ; 70d9a (1c:4d9a)
jp BattleTransition_BlackScreen
BattleTransition_Circle_Sub2: ; 70dc6 (1c:4dc6)
- ld [wWhichTrade], a
+ ld [wBattleTransitionCircleScreenQuadrantY], a
ld a, [hli]
- ld [wTrainerEngageDistance], a
+ ld [wBattleTransitionCircleScreenQuadrantX], a
ld a, [hli]
ld e, a
ld a, [hli]
@@ -765,7 +865,7 @@ BattleTransition_Circle_Sub3: ; 70e3b (1c:4e3b)
inc de
.loop1
ld [hl], $ff
- ld a, [wTrainerEngageDistance]
+ ld a, [wBattleTransitionCircleScreenQuadrantX]
and a
jr z, .skip1
inc hl
@@ -776,11 +876,11 @@ BattleTransition_Circle_Sub3: ; 70e3b (1c:4e3b)
dec c
jr nz, .loop1
pop hl
- ld a, [wWhichTrade]
+ ld a, [wBattleTransitionCircleScreenQuadrantY]
and a
- ld bc, $14
+ ld bc, SCREEN_WIDTH
jr z, .skip3
- ld bc, $ffec
+ ld bc, -SCREEN_WIDTH
.skip3
add hl, bc
ld a, [de]
@@ -791,7 +891,7 @@ BattleTransition_Circle_Sub3: ; 70e3b (1c:4e3b)
jr z, BattleTransition_Circle_Sub3
ld c, a
.loop2
- ld a, [wTrainerEngageDistance]
+ ld a, [wBattleTransitionCircleScreenQuadrantX]
and a
jr z, .skip4
dec hl
diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm
index 5d427e97..e3c7e1fa 100644
--- a/engine/battle/common_text.asm
+++ b/engine/battle/common_text.asm
@@ -2,7 +2,7 @@ PrintBeginningBattleText: ; f4000 (3d:4000)
ld a, [W_ISINBATTLE] ; W_ISINBATTLE
dec a
jr nz, .trainerBattle
- ld a, [W_CURMAP] ; W_CURMAP
+ ld a, [W_CURMAP]
cp POKEMONTOWER_3
jr c, .notPokemonTower
cp LAVENDER_HOUSE_1
@@ -23,7 +23,7 @@ PrintBeginningBattleText: ; f4000 (3d:4000)
call PlayCry
.continue
ld hl, WildMonAppearedText
- ld a, [W_MOVEMISSED] ; W_MOVEMISSED
+ ld a, [W_MOVEMISSED]
and a
jr z, .notFishing
ld hl, HookedMonAttackedText
@@ -31,7 +31,7 @@ PrintBeginningBattleText: ; f4000 (3d:4000)
jr .wildBattle
.trainerBattle
call .playSFX
- ld c, $14
+ ld c, 20
call DelayFrames
ld hl, TrainerWantsToFightText
.wildBattle
@@ -77,7 +77,7 @@ PrintBeginningBattleText: ; f4000 (3d:4000)
.playSFX
xor a
- ld [wc0f1], a
+ ld [wFrequencyModifier], a
ld a, $80
ld [wc0f2], a
ld a, $e9 ; (SFX_08_77 - SFX_Headers_08) / 3
@@ -120,10 +120,10 @@ PrintSendOutMonMessage: ; f40e0 (3d:40e5)
ld [H_MULTIPLICAND], a
ld hl, wEnemyMonHP
ld a, [hli]
- ld [wcce3], a
+ ld [wLastSwitchInEnemyMonHP], a
ld [H_MULTIPLICAND + 1], a
ld a, [hl]
- ld [wcce4], a
+ ld [wLastSwitchInEnemyMonHP + 1], a
ld [H_MULTIPLICAND + 2], a
ld a, 25
ld [H_MULTIPLIER], a
@@ -136,7 +136,7 @@ PrintSendOutMonMessage: ; f40e0 (3d:40e5)
srl a
rr b
ld a, b
- ld b, $4
+ ld b, 4
ld [H_DIVISOR], a ; enemy mon max HP divided by 4
call Divide
ld a, [H_QUOTIENT + 3] ; a = (enemy mon current HP * 25) / (enemy max HP / 4); this approximates the current percentage of max HP
@@ -155,22 +155,22 @@ PrintSendOutMonMessage: ; f40e0 (3d:40e5)
GoText: ; f413a (3d:413a)
TX_FAR _GoText
- db $08 ; asm
+ TX_ASM
jr PrintPlayerMon1Text
DoItText: ; f4141 (3d:4141)
TX_FAR _DoItText
- db $08 ; asm
+ TX_ASM
jr PrintPlayerMon1Text
GetmText: ; f4148 (3d:4148)
TX_FAR _GetmText
- db $08 ; asm
+ TX_ASM
jr PrintPlayerMon1Text
EnemysWeakText: ; f414f (3d:414f)
TX_FAR _EnemysWeakText
- db $08 ; asm
+ TX_ASM
PrintPlayerMon1Text: ; f4154 (3d:4154)
ld hl, PlayerMon1Text
@@ -186,23 +186,23 @@ RetreatMon: ; f415d (3d:415d)
PlayerMon2Text: ; f4163 (3d:4163)
TX_FAR _PlayerMon2Text
- db $08 ; asm
+ TX_ASM
push de
push bc
ld hl, wEnemyMonHP + 1
- ld de, wcce4
+ ld de, wLastSwitchInEnemyMonHP + 1
ld b, [hl]
dec hl
ld a, [de]
sub b
- ld [$ff98], a
+ ld [H_MULTIPLICAND + 2], a
dec de
ld b, [hl]
ld a, [de]
sbc b
- ld [$ff97], a
- ld a, $19
- ld [H_POWEROFTEN], a
+ ld [H_MULTIPLICAND + 1], a
+ ld a, 25
+ ld [H_MULTIPLIER], a
call Multiply
ld hl, wEnemyMonMaxHP
ld a, [hli]
@@ -212,37 +212,42 @@ PlayerMon2Text: ; f4163 (3d:4163)
srl a
rr b
ld a, b
- ld b, $4
- ld [H_POWEROFTEN], a
+ ld b, 4
+ ld [H_DIVISOR], a
call Divide
pop bc
pop de
- ld a, [$ff98]
- ld hl, EnoughText
+ ld a, [H_QUOTIENT + 3] ; a = ((LastSwitchInEnemyMonHP - CurrentEnemyMonHP) / 25) / (EnemyMonMaxHP / 4)
+; Assuming that the enemy mon hasn't gained HP since the last switch in,
+; a approximates the percentage that the enemy mon's total HP has decreased
+; since the last switch in.
+; If the enemy mon has gained HP, then a is garbage due to wrap-around and
+; can fall in any of the ranges below.
+ ld hl, EnoughText ; HP stayed the same
and a
ret z
- ld hl, ComeBackText
- cp $1e
+ ld hl, ComeBackText ; HP went down 1% - 29%
+ cp 30
ret c
- ld hl, OKExclamationText
- cp $46
+ ld hl, OKExclamationText ; HP went down 30% - 69%
+ cp 70
ret c
- ld hl, GoodText
+ ld hl, GoodText ; HP went down 70% or more
ret
EnoughText: ; f41b1 (3d:41b1)
TX_FAR _EnoughText
- db $08 ; asm
+ TX_ASM
jr PrintComeBackText
OKExclamationText: ; f41b8 (3d:41b8)
TX_FAR _OKExclamationText
- db $08 ; asm
+ TX_ASM
jr PrintComeBackText
GoodText: ; f41bf (3d:41bf)
TX_FAR _GoodText
- db $08 ; asm
+ TX_ASM
jr PrintComeBackText
PrintComeBackText: ; f41c6 (3d:41c6)
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 1b8203b1..8a46c705 100755
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -101,8 +101,8 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c)
ld a, MESSAGE_BOX ; the usual text box at the bottom of the screen
ld [wTextBoxID], a
call DisplayTextBoxID
- hlCoord 1, 5
- ld bc, $307
+ coord hl, 1, 5
+ lb bc, 3, 7
call ClearScreenArea
call DisableLCD
call LoadFontTilePatterns
@@ -110,14 +110,14 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c)
ld hl, vBGMap0
ld bc, $400
.clearBackgroundLoop
- ld a, $7f
+ ld a, " "
ld [hli], a
dec bc
ld a, b
or c
jr nz, .clearBackgroundLoop
; copy the work RAM tile map to VRAM
- ld hl, wTileMap
+ coord hl, 0, 0
ld de, vBGMap0
ld b, 18 ; number of rows
.copyRowLoop
@@ -175,21 +175,19 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c)
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ld a, $31
- ld [$ffe1], a
- hlCoord 1, 5
- predef Func_3f0c6
+ ld [hStartTileID], a
+ coord hl, 1, 5
+ predef CopyUncompressedPicToTilemap
xor a
ld [hWY], a
ld [rWY], a
inc a
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
- ld b, $1
- call GoPAL_SET
+ ld b, SET_PAL_BATTLE
+ call RunPaletteCommand
call HideSprites
- ld hl, PrintBeginningBattleText
- ld b, BANK(PrintBeginningBattleText)
- jp Bankswitch
+ jpab PrintBeginningBattleText
; when a battle is starting, silhouettes of the player's pic and the enemy's pic are slid onto the screen
; the lower of the player's pic (his body) is part of the background, but his head is a sprite
@@ -225,9 +223,9 @@ StartBattle: ; 3c11e (f:411e)
xor a
ld [wPartyGainExpFlags], a
ld [wPartyFoughtCurrentEnemyFlags], a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
inc a
- ld [wd11d], a
+ ld [wFirstMonsNotOutYet], a
ld hl, wEnemyMon1HP
ld bc, wEnemyMon2 - wEnemyMon1 - 1
ld d, $3
@@ -260,7 +258,7 @@ StartBattle: ; 3c11e (f:411e)
.displaySafariZoneBattleMenu
call DisplayBattleMenu
ret c ; return if the player ran from battle
- ld a, [wcd6a]
+ ld a, [wActionResultOrTookBattleTurn]
and a ; was the item used successfully?
jr z, .displaySafariZoneBattleMenu ; if not, display the menu again; XXX does this ever jump?
ld a, [W_NUMSAFARIBALLS]
@@ -324,13 +322,13 @@ StartBattle: ; 3c11e (f:411e)
ld [wcf91], a
ld [wBattleMonSpecies2], a
call LoadScreenTilesFromBuffer1
- hlCoord 1, 5
+ coord hl, 1, 5
ld a, $9
call SlideTrainerPicOffScreen
call SaveScreenTilesToBuffer1
ld a, [wWhichPokemon]
ld c, a
- ld b, $1
+ ld b, FLAG_SET
push bc
ld hl, wPartyGainExpFlags
predef FlagActionPredef
@@ -355,13 +353,11 @@ EnemyRan: ; 3c202 (f:4202)
ld hl, EnemyRanText
.printText
call PrintText
- ld a, (SFX_08_44 - SFX_Headers_08) / 3
+ ld a, SFX_RUN
call PlaySoundWaitForCurrent
xor a
ld [H_WHOSETURN], a
- ld hl, AnimationSlideEnemyMonOut
- ld b, BANK(AnimationSlideEnemyMonOut)
- jp Bankswitch
+ jpab AnimationSlideEnemyMonOff
WildRanText: ; 3c229 (f:4229)
TX_FAR _WildRanText
@@ -383,7 +379,7 @@ MainInBattleLoop: ; 3c233 (f:4233)
jp z, HandleEnemyMonFainted ; if enemy mon HP is 0, jump
call SaveScreenTilesToBuffer1
xor a
- ld [wd11d], a
+ ld [wFirstMonsNotOutYet], a
ld a, [W_PLAYERBATTSTATUS2]
and (1 << NeedsToRecharge) | (1 << UsingRage) ; check if the player is using Rage or needs to recharge
jr nz, .selectEnemyMove
@@ -415,8 +411,8 @@ MainInBattleLoop: ; 3c233 (f:4233)
ld [wPlayerSelectedMove], a
jr .selectEnemyMove
.selectPlayerMove
- ld a, [wcd6a]
- and a
+ ld a, [wActionResultOrTookBattleTurn]
+ and a ; has the player already used the turn (e.g. by using an item, trying to run or switching pokemon)
jr nz, .selectEnemyMove
ld [wMoveMenuType], a
inc a
@@ -620,7 +616,7 @@ HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd)
or [hl]
ret nz ; test if fainted
call DrawHUDsAndHPBars
- ld c, $14
+ ld c, 20
call DelayFrames
xor a
ret
@@ -721,8 +717,8 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3)
ld [wHPBarMaxHP+1], a
ld a, [hl]
ld [wHPBarMaxHP], a
- ld de, $fff2
- add hl, de ; skip back fomr max hp to current hp
+ ld de, wBattleMonHP - wBattleMonMaxHP
+ add hl, de ; skip back from max hp to current hp
ld a, [hl]
ld [wHPBarOldHP], a ; add bc to current HP
add c
@@ -760,12 +756,12 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3)
ret
UpdateCurMonHPBar: ; 3c4f6 (f:44f6)
- hlCoord 10, 9 ; tile pointer to player HP bar
+ coord hl, 10, 9 ; tile pointer to player HP bar
ld a, [H_WHOSETURN]
and a
ld a, $1
jr z, .playersTurn
- hlCoord 2, 2 ; tile pointer to enemy HP bar
+ coord hl, 2, 2 ; tile pointer to enemy HP bar
xor a
.playersTurn
push bc
@@ -792,7 +788,7 @@ CheckNumAttacksLeft: ; 3c50f (f:450f)
HandleEnemyMonFainted: ; 3c525 (f:4525)
xor a
- ld [wccf0], a
+ ld [wInHandlePlayerMonFainted], a
call FaintEnemyPokemon
call AnyPartyAlive
ld a, d
@@ -816,14 +812,14 @@ HandleEnemyMonFainted: ; 3c525 (f:4525)
call ChooseNextMon
.skipReplacingBattleMon
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call ReplaceFaintedEnemyMon
jp z, EnemyRan
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
jp MainInBattleLoop
-FaintEnemyPokemon ; 0x3c567
+FaintEnemyPokemon: ; 0x3c567
call ReadPlayerMonCurHPAndStatus
ld a, [W_ISINBATTLE]
dec a
@@ -838,8 +834,17 @@ FaintEnemyPokemon ; 0x3c567
.wild
ld hl, W_PLAYERBATTSTATUS1
res AttackingMultipleTimes, [hl]
- xor a
- ld [wPlayerNumHits], a
+; Bug. This only zeroes the high byte of the player's accumulated damage,
+; setting the accumulated damage to itself mod 256 instead of 0 as was probably
+; intended. That alone is problematic, but this mistake has another more severe
+; effect. This function's counterpart for when the player mon faints,
+; RemoveFaintedPlayerMon, zeroes both the high byte and the low byte. In a link
+; battle, the other player's Game Boy will call that function in response to
+; the enemy mon (the player mon from the other side's perspective) fainting,
+; and the states of the two Game Boys will go out of sync unless the damage
+; was congruent to 0 modulo 256.
+ xor a
+ ld [wPlayerBideAccumulatedDamage], a
ld hl, wEnemyStatsToDouble ; clear enemy statuses
ld [hli], a
ld [hli], a
@@ -848,29 +853,29 @@ FaintEnemyPokemon ; 0x3c567
ld [hl], a
ld [W_ENEMYDISABLEDMOVE], a
ld [wEnemyDisabledMoveNumber], a
- ld [wccf3], a
+ ld [wEnemyMonMinimized], a
ld hl, wPlayerUsedMove
ld [hli], a
ld [hl], a
- hlCoord 12, 5
- deCoord 12, 6
+ coord hl, 12, 5
+ coord de, 12, 6
call SlideDownFaintedMonPic
- ld hl, wTileMap
- ld bc, $40b
+ coord hl, 0, 0
+ lb bc, 4, 11
call ClearScreenArea
ld a, [W_ISINBATTLE]
dec a
jr z, .wild_win
xor a
- ld [wc0f1], a
- ld [wc0f2], a
- ld a, (SFX_08_48 - SFX_Headers_08) / 3 ; SFX_FALL?
+ ld [wFrequencyModifier], a
+ ld [wTempoModifier], a
+ ld a, SFX_FAINT_FALL
call PlaySoundWaitForCurrent
.sfxwait
- ld a, [wc02a]
- cp (SFX_08_48 - SFX_Headers_08) / 3
+ ld a, [wChannelSoundIDs + CH4]
+ cp SFX_FAINT_FALL
jr z, .sfxwait
- ld a, (SFX_08_43 - SFX_Headers_08) / 3 ; SFX_DROP
+ ld a, SFX_FAINT_THUD
call PlaySound
call WaitForSoundToFinish
jr .sfxplayed
@@ -883,9 +888,9 @@ FaintEnemyPokemon ; 0x3c567
ld a, [hli]
or [hl]
jr nz, .playermonnotfaint
- ld a, [wccf0]
- and a
- jr nz, .playermonnotfaint
+ ld a, [wInHandlePlayerMonFainted]
+ and a ; was this called by HandlePlayerMonFainted?
+ jr nz, .playermonnotfaint ; if so, don't call RemoveFaintedPlayerMon twice
call RemoveFaintedPlayerMon
.playermonnotfaint
call AnyPartyAlive
@@ -938,20 +943,20 @@ FaintEnemyPokemon ; 0x3c567
jr nz, .gainExpFlagsLoop
ld a, b
ld [wPartyGainExpFlags], a
- ld hl, GainExperience
- ld b, BANK(GainExperience)
- jp Bankswitch
+ jpab GainExperience
EnemyMonFaintedText: ; 0x3c63e
TX_FAR _EnemyMonFaintedText
db "@"
EndLowHealthAlarm: ; 3c643 (f:4643)
+; This function is called when the player has the won the battle. It turns off
+; the low health alarm and prevents it from reactivating until the next battle.
xor a
- ld [wLowHealthAlarm], a ;disable low health alarm
- ld [wc02a], a
+ ld [wLowHealthAlarm], a ; turn off low health alarm
+ ld [wChannelSoundIDs + CH4], a
inc a
- ld [wccf6], a
+ ld [wLowHealthAlarmDisabled], a ; prevent it from reactivating
ret
AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f)
@@ -973,7 +978,7 @@ AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f)
; stores whether enemy ran in Z flag
ReplaceFaintedEnemyMon: ; 3c664 (f:4664)
- ld hl, wcf1e
+ ld hl, wEnemyHPBarColor
ld e, $30
call GetBattleHealthBarColor
callab DrawEnemyPokeballs
@@ -990,7 +995,7 @@ ReplaceFaintedEnemyMon: ; 3c664 (f:4664)
call EnemySendOut
xor a
ld [W_ENEMYMOVENUM], a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
ld [wAILayer2Encouragement], a
inc a ; reset Z flag
ret
@@ -1020,10 +1025,10 @@ TrainerBattleVictory: ; 3c696 (f:4696)
cp LINK_STATE_BATTLING
ret z
call ScrollTrainerPicAfterBattle
- ld c, $28
+ ld c, 40
call DelayFrames
call PrintEndBattleText
-; win money
+; win money
ld hl, MoneyForWinningText
call PrintText
ld de, wPlayerMoney + 2
@@ -1042,7 +1047,7 @@ TrainerDefeatedText: ; 3c6e9 (f:46e9)
PlayBattleVictoryMusic: ; 3c6ee (f:46ee)
push af
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySoundWaitForCurrent
ld c, BANK(Music_DefeatedTrainer)
pop af
@@ -1050,8 +1055,8 @@ PlayBattleVictoryMusic: ; 3c6ee (f:46ee)
jp Delay3
HandlePlayerMonFainted: ; 3c700 (f:4700)
- ld a, $1
- ld [wccf0], a
+ ld a, 1
+ ld [wInHandlePlayerMonFainted], a
call RemoveFaintedPlayerMon
call AnyPartyAlive ; test if any more mons are alive
ld a, d
@@ -1075,11 +1080,11 @@ HandlePlayerMonFainted: ; 3c700 (f:4700)
jp nz, MainInBattleLoop ; if the enemy mon has more than 0 HP, go back to battle loop
; the enemy mon has 0 HP
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call ReplaceFaintedEnemyMon
jp z, EnemyRan ; if enemy ran from battle rather than sending out another mon, jump
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
jp MainInBattleLoop
; resets flags, slides mon's pic down, plays cry, and prints fainted message
@@ -1087,7 +1092,7 @@ RemoveFaintedPlayerMon: ; 3c741 (f:4741)
ld a, [wPlayerMonNumber]
ld c, a
ld hl, wPartyGainExpFlags
- ld b, $0
+ ld b, FLAG_RESET
predef FlagActionPredef ; clear gain exp flag for fainted mon
ld hl, W_ENEMYBATTSTATUS1
res 2, [hl] ; reset "attacking multiple times" flag
@@ -1098,24 +1103,29 @@ RemoveFaintedPlayerMon: ; 3c741 (f:4741)
ld [wLowHealthAlarm], a ;disable low health alarm
call WaitForSoundToFinish
.skipWaitForSound
-; bug? if the player mon faints while the enemy mon is using bide,
-; the accumulated damage is overwritten. xxx what values can [wLowHealthAlarm] have here?
+; a is 0, so this zeroes the enemy's accumulated damage.
ld hl, wEnemyBideAccumulatedDamage
ld [hli], a
ld [hl], a
ld [wBattleMonStatus], a
call ReadPlayerMonCurHPAndStatus
- hlCoord 9, 7
- ld bc, $50b
+ coord hl, 9, 7
+ lb bc, 5, 11
call ClearScreenArea
- hlCoord 1, 10
- deCoord 1, 11
+ coord hl, 1, 10
+ coord de, 1, 11
call SlideDownFaintedMonPic
ld a, $1
ld [wBattleResult], a
- ld a, [wccf0]
- and a
- ret z
+
+; When the player mon and enemy mon faint at the same time and the fact that the
+; enemy mon has fainted is detected first (e.g. when the player mon knocks out
+; the enemy mon using a move with recoil and faints due to the recoil), don't
+; play the player mon's cry or show the "[player mon] fainted!" message.
+ ld a, [wInHandlePlayerMonFainted]
+ and a ; was this called by HandleEnemyMonFainted?
+ ret z ; if so, return
+
ld a, [wBattleMonSpecies]
call PlayCry
ld hl, PlayerMonFaintedText
@@ -1137,13 +1147,13 @@ DoUseNextMonDialogue: ; 3c79b (f:479b)
ld hl, UseNextMonText
call PrintText
.displayYesNoBox
- hlCoord 13, 9
- ld bc, $a0e
+ coord hl, 13, 9
+ lb bc, 10, 14
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID
- ld a, [wd12e]
- cp $2 ; did the player choose NO?
+ ld a, [wMenuExitMethod]
+ cp CHOSE_SECOND_ITEM ; did the player choose NO?
jr z, .tryRunning ; if the player chose NO, try running
and a ; reset carry
ret
@@ -1162,8 +1172,8 @@ UseNextMonText: ; 3c7d3 (f:47d3)
; choose next player mon to send out
; stores whether enemy mon has no HP left in Z flag
ChooseNextMon: ; 3c7d8 (f:47d8)
- ld a, $2
- ld [wd07d], a
+ ld a, BATTLE_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID], a
call DisplayPartyMenu
.checkIfMonChosen
jr nc, .monChosen
@@ -1177,17 +1187,17 @@ ChooseNextMon: ; 3c7d8 (f:47d8)
cp LINK_STATE_BATTLING
jr nz, .notLinkBattle
inc a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call LinkBattleExchangeData
.notLinkBattle
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call ClearSprites
ld a, [wWhichPokemon]
ld [wPlayerMonNumber], a
ld c, a
ld hl, wPartyGainExpFlags
- ld b, $1
+ ld b, FLAG_SET
push bc
predef FlagActionPredef
pop bc
@@ -1197,7 +1207,7 @@ ChooseNextMon: ; 3c7d8 (f:47d8)
call GBPalWhiteOut
call LoadHudTilePatterns
call LoadScreenTilesFromBuffer1
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call GBPalNormal
call SendOutMon
ld hl, wEnemyMonHP
@@ -1212,13 +1222,13 @@ HandlePlayerBlackOut: ; 3c837 (f:4837)
cp LINK_STATE_BATTLING
jr z, .notSony1Battle
ld a, [W_CUROPPONENT]
- cp $c8 + SONY1
+ cp OPP_SONY1
jr nz, .notSony1Battle
- ld hl, wTileMap ; sony 1 battle
- ld bc, $815
+ coord hl, 0, 0 ; sony 1 battle
+ lb bc, 8, 21
call ClearScreenArea
call ScrollTrainerPicAfterBattle
- ld c, $28
+ ld c, 40
call DelayFrames
ld hl, Sony1WinText
call PrintText
@@ -1226,8 +1236,8 @@ HandlePlayerBlackOut: ; 3c837 (f:4837)
cp OAKS_LAB
ret z ; starter battle in oak's lab: don't black out
.notSony1Battle
- ld b, $0
- call GoPAL_SET
+ ld b, SET_PAL_BATTLE_BLACK
+ call RunPaletteCommand
ld hl, PlayerBlackedOutText2
ld a, [wLinkState]
cp LINK_STATE_BATTLING
@@ -1310,7 +1320,7 @@ SevenSpacesText: ; 3c8d7 (f:48d7)
; if a is 8, the slide is to the right, else it is to the left
; bug: when this is called, [H_AUTOBGTRANSFERENABLED] is non-zero, so there is screen tearing
SlideTrainerPicOffScreen: ; 3c8df (f:48df)
- ld [$FF8B], a
+ ld [hSlideAmount], a
ld c, a
.slideStepLoop ; each iteration, the trainer pic is slid one tile left/right
push bc
@@ -1318,10 +1328,10 @@ SlideTrainerPicOffScreen: ; 3c8df (f:48df)
ld b, 7 ; number of rows
.rowLoop
push hl
- ld a, [$FF8B]
+ ld a, [hSlideAmount]
ld c, a
.columnLoop
- ld a, [$FF8B]
+ ld a, [hSlideAmount]
cp 8
jr z, .slideRight
.slideLeft ; slide player sprite off screen
@@ -1356,7 +1366,7 @@ EnemySendOut: ; 3c90e (f:490e)
ld [hl],a
ld a,[wPlayerMonNumber]
ld c,a
- ld b,1
+ ld b,FLAG_SET
push bc
predef FlagActionPredef
ld hl,wPartyFoughtCurrentEnemyFlags
@@ -1376,7 +1386,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)
ld [hl],a
ld [W_ENEMYDISABLEDMOVE],a
ld [wEnemyDisabledMoveNumber],a
- ld [wccf3],a
+ ld [wEnemyMonMinimized],a
ld hl,wPlayerUsedMove
ld [hli],a
ld [hl],a
@@ -1384,7 +1394,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)
ld [wAICount],a
ld hl,W_PLAYERBATTSTATUS1
res 5,[hl]
- hlCoord 18, 0
+ coord hl, 18, 0
ld a,8
call SlideTrainerPicOffScreen
call PrintEmptyString
@@ -1435,12 +1445,12 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)
call LoadEnemyMonData
ld hl,wEnemyMonHP
ld a,[hli]
- ld [wcce3],a
+ ld [wLastSwitchInEnemyMonHP],a
ld a,[hl]
- ld [wcce4],a
+ ld [wLastSwitchInEnemyMonHP + 1],a
ld a,1
ld [wCurrentMenuItem],a
- ld a,[wd11d]
+ ld a,[wFirstMonsNotOutYet]
dec a
jr z,.next4
ld a,[wPartyCount]
@@ -1454,16 +1464,16 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)
jr nz,.next4
ld hl, TrainerAboutToUseText
call PrintText
- hlCoord 0, 7
- ld bc,$0801
+ coord hl, 0, 7
+ lb bc, 8, 1
ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID
ld a,[wCurrentMenuItem]
and a
jr nz,.next4
- ld a,2
- ld [wd07d],a
+ ld a,BATTLE_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID],a
call DisplayPartyMenu
.next9
ld a,1
@@ -1489,11 +1499,11 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)
call LoadScreenTilesFromBuffer1
.next4
call ClearSprites
- ld hl,wTileMap
- ld bc,$040B
+ coord hl, 0, 0
+ lb bc, 4, 11
call ClearScreenArea
- ld b,1
- call GoPAL_SET
+ ld b, SET_PAL_BATTLE
+ call RunPaletteCommand
call GBPalNormal
ld hl,TrainerSentOutText
call PrintText
@@ -1503,10 +1513,10 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)
call GetMonHeader
ld de,vFrontPic
call LoadMonFrontSprite
- ld a,$CF
- ld [$FFE1],a
- hlCoord 15, 6
- predef Func_3f073
+ ld a,-$31
+ ld [hStartTileID],a
+ coord hl, 15, 6
+ predef AnimateSendingOutMon
ld a,[wEnemyMonSpecies2]
call PlayCry
call DrawEnemyHUDAndHPBar
@@ -1555,7 +1565,7 @@ HasMonFainted: ; 3ca97 (f:4a97)
ld a, [hli]
or [hl]
ret nz
- ld a, [wd11d]
+ ld a, [wFirstMonsNotOutYet]
and a
jr nz, .done
ld hl, NoWillText
@@ -1590,14 +1600,14 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9)
ld a, [hl]
ld [H_MULTIPLICAND + 2], a
ld a, [de]
- ld [$ff8d], a
+ ld [hEnemySpeed], a
inc de
ld a, [de]
- ld [$ff8e], a
+ ld [hEnemySpeed + 1], a
call LoadScreenTilesFromBuffer1
ld de, H_MULTIPLICAND + 1
- ld hl, $ff8d
- ld c, $2
+ ld hl, hEnemySpeed
+ ld c, 2
call StringCmp
jr nc, .canEscape ; jump if player speed greater than enemy speed
xor a
@@ -1609,9 +1619,9 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9)
ld [H_DIVIDEND], a
ld a, [H_PRODUCT + 3]
ld [H_DIVIDEND + 1], a
- ld a, [$ff8d]
+ ld a, [hEnemySpeed]
ld b, a
- ld a, [$ff8e]
+ ld a, [hEnemySpeed + 1]
; divide enemy speed by 4
srl b
rr a
@@ -1642,19 +1652,19 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9)
ld b, a
ld a, [H_QUOTIENT + 3]
cp b
- jr nc, .canEscape ; if the random value was less than or equal to the quotient
+ jr nc, .canEscape ; if the random value was less than or equal to the quotient
; plus 30 times the number of attempts, the player can escape
; can't escape
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a ; you lose your turn when you can't escape
ld hl, CantEscapeText
jr .printCantEscapeOrNoRunningText
.trainerBattle
ld hl, NoRunningText
.printCantEscapeOrNoRunningText
call PrintText
- ld a, $1
- ld [wd11f], a
+ ld a, 1
+ ld [wForcePlayerToChooseMon], a
call SaveScreenTilesToBuffer1
and a ; reset carry
ret
@@ -1666,7 +1676,7 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9)
; link battle
call SaveScreenTilesToBuffer1
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
ld a, $f
ld [wPlayerMoveListIndex], a
call LinkBattleExchangeData
@@ -1678,7 +1688,7 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9)
dec a
.playSound
ld [wBattleResult], a
- ld a, (SFX_08_44 - SFX_Headers_08) / 3
+ ld a, SFX_RUN
call PlaySoundWaitForCurrent
ld hl, GotAwayText
call PrintText
@@ -1702,19 +1712,19 @@ GotAwayText: ; 3cba1 (f:4ba1)
; copies from party data to battle mon data when sending out a new player mon
LoadBattleMonFromParty: ; 3cba6 (f:4ba6)
ld a, [wWhichPokemon]
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
ld hl, wPartyMon1Species
call AddNTimes
ld de, wBattleMonSpecies
- ld bc, $c
+ ld bc, wBattleMonDVs - wBattleMonSpecies
call CopyData
- ld bc, $f
+ ld bc, wPartyMon1DVs - wPartyMon1OTID
add hl, bc
ld de, wBattleMonDVs
- ld bc, $2
+ ld bc, NUM_DVS
call CopyData
ld de, wBattleMonPP
- ld bc, $4
+ ld bc, NUM_MOVES
call CopyData
ld de, wBattleMonLevel
ld bc, $b
@@ -1726,16 +1736,16 @@ LoadBattleMonFromParty: ; 3cba6 (f:4ba6)
ld a, [wPlayerMonNumber]
call SkipFixedLengthTextEntries
ld de, wBattleMonNick
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
ld hl, wBattleMonLevel
ld de, wPlayerMonUnmodifiedLevel ; block of memory used for unmodified stats
- ld bc, $b
+ ld bc, 1 + NUM_STATS * 2
call CopyData
call ApplyBurnAndParalysisPenaltiesToPlayer
call ApplyBadgeStatBoosts
ld a, $7 ; default stat modifier
- ld b, $8
+ ld b, NUM_STAT_MODS
ld hl, wPlayerMonAttackMod
.statModLoop
ld [hli], a
@@ -1746,19 +1756,19 @@ LoadBattleMonFromParty: ; 3cba6 (f:4ba6)
; copies from enemy party data to current enemy mon data when sending out a new enemy mon
LoadEnemyMonFromParty: ; 3cc13 (f:4c13)
ld a, [wWhichPokemon]
- ld bc, $2c
+ ld bc, wEnemyMon2 - wEnemyMon1
ld hl, wEnemyMons
call AddNTimes
ld de, wEnemyMonSpecies
- ld bc, $c
+ ld bc, wEnemyMonDVs - wEnemyMonSpecies
call CopyData
- ld bc, $f
+ ld bc, wEnemyMon1DVs - wEnemyMon1OTID
add hl, bc
ld de, wEnemyMonDVs
- ld bc, $2
+ ld bc, NUM_DVS
call CopyData
ld de, wEnemyMonPP
- ld bc, $4
+ ld bc, NUM_MOVES
call CopyData
ld de, wEnemyMonLevel
ld bc, $b
@@ -1770,16 +1780,16 @@ LoadEnemyMonFromParty: ; 3cc13 (f:4c13)
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
ld de, wEnemyMonNick
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
ld hl, wEnemyMonLevel
ld de, wEnemyMonUnmodifiedLevel ; block of memory used for unmodified stats
- ld bc, $b
+ ld bc, 1 + NUM_STATS * 2
call CopyData
call ApplyBurnAndParalysisPenaltiesToEnemy
ld hl, W_MONHBASESTATS
ld de, wEnemyMonBaseStats
- ld b, $5
+ ld b, NUM_STATS
.copyBaseStatsLoop
ld a, [hli]
ld [de], a
@@ -1787,7 +1797,7 @@ LoadEnemyMonFromParty: ; 3cc13 (f:4c13)
dec b
jr nz, .copyBaseStatsLoop
ld a, $7 ; default stat modifier
- ld b, $8
+ ld b, NUM_STAT_MODS
ld hl, wEnemyMonStatMods
.statModLoop
ld [hli], a
@@ -1808,8 +1818,8 @@ SendOutMon: ; 3cc91 (f:4c91)
call DrawPlayerHUDAndHPBar
predef LoadMonBackPic
xor a
- ld [$ffe1], a
- ld hl, wcc2d
+ ld [hStartTileID], a
+ ld hl, wBattleAndStartSavedMenuItem
ld [hli], a
ld [hl], a
ld [wBoostExpByExpAll], a
@@ -1826,50 +1836,50 @@ SendOutMon: ; 3cc91 (f:4c91)
ld [hl], a
ld [W_PLAYERDISABLEDMOVE], a
ld [wPlayerDisabledMoveNumber], a
- ld [wccf7], a
- ld b, $1
- call GoPAL_SET
+ ld [wPlayerMonMinimized], a
+ ld b, SET_PAL_BATTLE
+ call RunPaletteCommand
ld hl, W_ENEMYBATTSTATUS1
res UsingTrappingMove, [hl]
ld a, $1
ld [H_WHOSETURN], a
ld a, POOF_ANIM
call PlayMoveAnimation
- hlCoord 4, 11
- predef Func_3f073
+ coord hl, 4, 11
+ predef AnimateSendingOutMon
ld a, [wcf91]
call PlayCry
call PrintEmptyString
jp SaveScreenTilesToBuffer1
-; show 2 stages of the player getting smaller before disappearing
+; show 2 stages of the player mon getting smaller before disappearing
AnimateRetreatingPlayerMon: ; 3ccfa (f:4cfa)
- hlCoord 1, 5
- ld bc, $707
+ coord hl, 1, 5
+ lb bc, 7, 7
call ClearScreenArea
- hlCoord 3, 7
- ld bc, $505
+ coord hl, 3, 7
+ lb bc, 5, 5
xor a
- ld [wcd6c], a
- ld [H_DOWNARROWBLINKCNT1], a
- predef Func_79aba
- ld c, $4
+ ld [wDownscaledMonSize], a
+ ld [hBaseTileID], a
+ predef CopyDownscaledMonTiles
+ ld c, 4
call DelayFrames
call .clearScreenArea
- hlCoord 4, 9
- ld bc, $303
- ld a, $1
- ld [wcd6c], a
+ coord hl, 4, 9
+ lb bc, 3, 3
+ ld a, 1
+ ld [wDownscaledMonSize], a
xor a
- ld [H_DOWNARROWBLINKCNT1], a
- predef Func_79aba
+ ld [hBaseTileID], a
+ predef CopyDownscaledMonTiles
call Delay3
call .clearScreenArea
ld a, $4c
Coorda 5, 11
.clearScreenArea
- hlCoord 1, 5
- ld bc, $707
+ coord hl, 1, 5
+ lb bc, 7, 7
jp ClearScreenArea
; reads player's current mon's HP into wBattleMonHP
@@ -1891,14 +1901,14 @@ DrawHUDsAndHPBars: ; 3cd5a (f:4d5a)
DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- hlCoord 9, 7
- ld bc, $50b
+ coord hl, 9, 7
+ lb bc, 5, 11
call ClearScreenArea
callab PlacePlayerHUDTiles
- hlCoord 18, 9
+ coord hl, 18, 9
ld [hl], $73
ld de, wBattleMonNick
- hlCoord 10, 7
+ coord hl, 10, 7
call CenterMonName
call PlaceString
ld hl, wBattleMonSpecies
@@ -1909,7 +1919,7 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60)
ld de, wLoadedMonLevel
ld bc, $b
call CopyData
- hlCoord 14, 8
+ coord hl, 14, 8
push hl
inc hl
ld de, wLoadedMonStatus
@@ -1920,21 +1930,21 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60)
.asm_3cdae
ld a, [wLoadedMonSpecies]
ld [wcf91], a
- hlCoord 10, 9
+ coord hl, 10, 9
predef DrawHP
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
- ld hl, wcf1d
+ ld hl, wPlayerHPBarColor
call GetBattleHealthBarColor
ld hl, wBattleMonHP
ld a, [hli]
or [hl]
jr z, .asm_3cdd9
- ld a, [wccf6]
- and a
- ret nz
- ld a, [wcf1d]
- cp $2
+ ld a, [wLowHealthAlarmDisabled]
+ and a ; has the alarm been disabled because the player has already won?
+ ret nz ; if so, return
+ ld a, [wPlayerHPBarColor]
+ cp HP_BAR_RED
jr z, .asm_3cde6
.asm_3cdd9
ld hl, wLowHealthAlarm
@@ -1942,7 +1952,7 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60)
ld [hl], $0
ret z
xor a
- ld [wc02a], a
+ ld [wChannelSoundIDs + CH4], a
ret
.asm_3cde6
ld hl, wLowHealthAlarm
@@ -1952,15 +1962,15 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60)
DrawEnemyHUDAndHPBar: ; 3cdec (f:4dec)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- ld hl, wTileMap
- ld bc, $40c
+ coord hl, 0, 0
+ lb bc, 4, 12
call ClearScreenArea
callab PlaceEnemyHUDTiles
ld de, wEnemyMonNick
- hlCoord 1, 0
+ coord hl, 1, 0
call CenterMonName
call PlaceString
- hlCoord 4, 1
+ coord hl, 4, 1
push hl
inc hl
ld de, wEnemyMonStatus
@@ -2033,11 +2043,11 @@ DrawEnemyHUDAndHPBar: ; 3cdec (f:4dec)
.drawHPBar
xor a
ld [wHPBarType], a
- hlCoord 2, 2
+ coord hl, 2, 2
call DrawHPBar
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
- ld hl, wcf1e
+ ld hl, wEnemyHPBarColor
GetBattleHealthBarColor: ; 3ce90 (f:4e90)
ld b, [hl]
@@ -2045,8 +2055,8 @@ GetBattleHealthBarColor: ; 3ce90 (f:4e90)
ld a, [hl]
cp b
ret z
- ld b, $1
- jp GoPAL_SET
+ ld b, SET_PAL_BATTLE
+ jp RunPaletteCommand
; center's mon's name on the battle screen
; if the name is 1 or 2 letters long, it is printed 2 spaces more to the right than usual
@@ -2061,11 +2071,11 @@ CenterMonName: ; 3ce9c (f:4e9c)
.loop
inc de
ld a, [de]
- cp $50
+ cp "@"
jr z, .done
inc de
ld a, [de]
- cp $50
+ cp "@"
jr z, .done
dec hl
dec b
@@ -2097,7 +2107,7 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)
; the following happens for the old man tutorial
ld hl, wPlayerName
ld de, W_GRASSRATE
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData ; temporarily save the player name in unused space,
; which is supposed to get overwritten when entering a
; map with wild Pokémon. Due to an oversight, the data
@@ -2105,17 +2115,17 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)
; Missingno. glitch can show up.
ld hl, .oldManName
ld de, wPlayerName
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
; the following simulates the keystrokes by drawing menus on screen
- hlCoord 9, 14
+ coord hl, 9, 14
ld [hl], "▶"
- ld c, $50
+ ld c, 80
call DelayFrames
- ld [hl], $7f
- hlCoord 9, 16
+ ld [hl], " "
+ coord hl, 9, 16
ld [hl], "▶"
- ld c, $32
+ ld c, 50
call DelayFrames
ld [hl], $ec
ld a, $2 ; select the "ITEM" menu
@@ -2123,7 +2133,7 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)
.oldManName
db "OLD MAN@"
.handleBattleMenuInput
- ld a, [wcc2d]
+ ld a, [wBattleAndStartSavedMenuItem]
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
sub 2 ; check if the cursor is in the left column
@@ -2145,9 +2155,9 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)
.safariLeftColumn
Coorda 13, 14
Coorda 13, 16
- hlCoord 7, 14
+ coord hl, 7, 14
ld de, W_NUMSAFARIBALLS
- ld bc, $102
+ lb bc, 1, 2
call PrintNumber
ld b, $1 ; top menu item X
.leftColumn_WaitForInput
@@ -2178,9 +2188,9 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)
.safariRightColumn
Coorda 1, 14 ; clear upper cursor position in left column
Coorda 1, 16 ; clear lower cursor position in left column
- hlCoord 7, 14
+ coord hl, 7, 14
ld de, W_NUMSAFARIBALLS
- ld bc, $102
+ lb bc, 1, 2
call PrintNumber
ld b, $d ; top menu item X
.rightColumn_WaitForInput
@@ -2206,7 +2216,7 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)
ld a, [W_BATTLETYPE]
cp $2 ; is it a Safari battle?
ld a, [wCurrentMenuItem]
- ld [wcc2d], a
+ ld [wBattleAndStartSavedMenuItem], a
jr z, .handleMenuSelection
; not Safari battle
; swap the IDs of the item menu and party menu (this is probably because they swapped the positions
@@ -2276,9 +2286,9 @@ BagWasSelected:
jr nz, DisplayPlayerBag ; no, it is a normal battle
ld hl, OldManItemList
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
jr DisplayBagMenu
OldManItemList:
@@ -2290,22 +2300,22 @@ DisplayPlayerBag:
; get the pointer to player's bag when in a normal battle
ld hl, wNumBagItems
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
DisplayBagMenu:
xor a
- ld [wcf93], a
+ ld [wPrintItemPrices], a
ld a, ITEMLISTMENU
ld [wListMenuID], a
- ld a, [wcc2c]
+ ld a, [wBagSavedMenuItem]
ld [wCurrentMenuItem], a
call DisplayListMenuID
ld a, [wCurrentMenuItem]
- ld [wcc2c], a
+ ld [wBagSavedMenuItem], a
ld a, $0
- ld [wcc37], a
+ ld [wMenuWatchMovingOutOfBounds], a
ld [wMenuItemToSwap], a
jp c, DisplayBattleMenu ; go back to battle menu if an item was not selected
@@ -2316,7 +2326,7 @@ UseBagItem:
call GetItemName
call CopyStringToCF4B ; copy name
xor a
- ld [wd152], a
+ ld [wPseudoItemID], a
call UseItem
call LoadHudTilePatterns
call ClearSprites
@@ -2326,7 +2336,7 @@ UseBagItem:
cp $2 ; is it a safari battle?
jr z, .checkIfMonCaptured
- ld a, [wcd6a]
+ ld a, [wActionResultOrTookBattleTurn]
and a ; was the item used successfully?
jp z, BagWasSelected ; if not, go back to the bag menu
@@ -2340,7 +2350,7 @@ UseBagItem:
res UsingTrappingMove, [hl] ; not using multi-turn move any more
.checkIfMonCaptured
- ld a, [wd11c]
+ ld a, [wCapturedMonSpecies]
and a ; was the enemy mon captured with a ball?
jr nz, .returnAfterCapturingMon
@@ -2360,7 +2370,7 @@ UseBagItem:
.returnAfterCapturingMon
call GBPalNormal
xor a
- ld [wd11c], a
+ ld [wCapturedMonSpecies], a
ld a, $2
ld [wBattleResult], a
scf ; set carry
@@ -2384,8 +2394,8 @@ PartyMenuOrRockOrRun:
jp UseBagItem
.partyMenuWasSelected
call LoadScreenTilesFromBuffer1
- xor a
- ld [wd07d], a
+ xor a ; NORMAL_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID], a
ld [wMenuItemToSwap], a
call DisplayPartyMenu
.checkIfPartyMonWasSelected
@@ -2395,16 +2405,16 @@ PartyMenuOrRockOrRun:
call GBPalWhiteOut
call LoadHudTilePatterns
call LoadScreenTilesFromBuffer2
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call GBPalNormal
jp DisplayBattleMenu
.partyMonDeselected
- hlCoord 11, 11
- ld bc, $81
- ld a, $7f
+ coord hl, 11, 11
+ ld bc, 6 * SCREEN_WIDTH + 9
+ ld a, " "
call FillMemory
- xor a
- ld [wd07d], a
+ xor a ; NORMAL_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID], a
call GoBackToPartyMenu
jr .checkIfPartyMonWasSelected
.partyMonWasSelected
@@ -2435,8 +2445,8 @@ PartyMenuOrRockOrRun:
and a ; was Switch selected?
jr z, .switchMon ; if so, jump
; Stats was selected
- xor a
- ld [wcc49], a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
ld hl, wPartyMon1
call ClearSprites
; display the two status screens
@@ -2448,7 +2458,7 @@ PartyMenuOrRockOrRun:
ld hl, AnimationSubstitute
jr nz, .doEnemyMonAnimation
; enemy mon doesn't have substitute
- ld a, [wccf3]
+ ld a, [wEnemyMonMinimized]
and a ; has the enemy mon used Minimise?
ld hl, AnimationMinimizeMon
jr nz, .doEnemyMonAnimation
@@ -2479,24 +2489,24 @@ PartyMenuOrRockOrRun:
call HasMonFainted
jp z, .partyMonDeselected ; can't switch to fainted mon
ld a, $1
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
call GBPalWhiteOut
call ClearSprites
call LoadHudTilePatterns
call LoadScreenTilesFromBuffer1
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call GBPalNormal
; fall through to SwitchPlayerMon
SwitchPlayerMon: ; 3d1ba (f:51ba)
callab RetreatMon
- ld c, $32
+ ld c, 50
call DelayFrames
call AnimateRetreatingPlayerMon
ld a, [wWhichPokemon]
ld [wPlayerMonNumber], a
ld c, a
- ld b, $1
+ ld b, FLAG_SET
push bc
ld hl, wPartyGainExpFlags
predef FlagActionPredef
@@ -2522,12 +2532,12 @@ BattleMenu_RunWasSelected: ; 3d1fa (f:51fa)
ld hl, wBattleMonSpeed
ld de, wEnemyMonSpeed
call TryRunningFromBattle
- ld a, $0
- ld [wd11f], a
+ ld a, 0
+ ld [wForcePlayerToChooseMon], a
ret c
- ld a, [wcd6a]
+ ld a, [wActionResultOrTookBattleTurn]
and a
- ret nz
+ ret nz ; return if the player couldn't escape
jp DisplayBattleMenu
MoveSelectionMenu: ; 3d219 (f:5219)
@@ -2561,17 +2571,17 @@ MoveSelectionMenu: ; 3d219 (f:5219)
ret z
ld hl, wBattleMonMoves
call .loadmoves
- hlCoord 4, 12
+ coord hl, 4, 12
ld b, $4
ld c, $e
di
call TextBoxBorder
- hlCoord 4, 12
+ coord hl, 4, 12
ld [hl], $7a
- hlCoord 10, 12
+ coord hl, 10, 12
ld [hl], $7e
ei
- hlCoord 6, 13
+ coord hl, 6, 13
call .writemoves
ld b, $5
ld a, $c
@@ -2579,11 +2589,11 @@ MoveSelectionMenu: ; 3d219 (f:5219)
.mimicmenu
ld hl, wEnemyMonMoves
call .loadmoves
- hlCoord 0, 7
+ coord hl, 0, 7
ld b, $4
ld c, $e
call TextBoxBorder
- hlCoord 2, 8
+ coord hl, 2, 8
call .writemoves
ld b, $1
ld a, $7
@@ -2591,22 +2601,22 @@ MoveSelectionMenu: ; 3d219 (f:5219)
.relearnmenu
ld a, [wWhichPokemon]
ld hl, wPartyMon1Moves
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
call .loadmoves
- hlCoord 4, 7
+ coord hl, 4, 7
ld b, $4
ld c, $e
call TextBoxBorder
- hlCoord 6, 8
+ coord hl, 6, 8
call .writemoves
ld b, $5
ld a, $7
.menuset
ld hl, wTopMenuItemY
- ld [hli], a
+ ld [hli], a ; wTopMenuItemY
ld a, b
- ld [hli], a
+ ld [hli], a ; wTopMenuItemX
ld a, [wMoveMenuType]
cp $1
jr z, .selectedmoveknown
@@ -2615,30 +2625,30 @@ MoveSelectionMenu: ; 3d219 (f:5219)
ld a, [wPlayerMoveListIndex]
inc a
.selectedmoveknown
- ld [hli], a
+ ld [hli], a ; wCurrentMenuItem
inc hl ; wTileBehindCursor untouched
- ld a, [wcd6c]
+ ld a, [wNumMovesMinusOne]
inc a
inc a
- ld [hli], a
+ ld [hli], a ; wMaxMenuItem
ld a, [wMoveMenuType]
dec a
- ld b, $c1 ; can't use B
+ ld b, D_UP | D_DOWN | A_BUTTON
jr z, .matchedkeyspicked
dec a
- ld b, $c3
+ ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON
jr z, .matchedkeyspicked
ld a, [wLinkState]
cp LINK_STATE_BATTLING
jr z, .matchedkeyspicked
ld a, [W_FLAGS_D733]
- bit 0, a
- ld b, $c7
+ bit BIT_TEST_BATTLE, a
+ ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON | SELECT
jr z, .matchedkeyspicked
ld b, $ff
.matchedkeyspicked
ld a, b
- ld [hli], a
+ ld [hli], a ; wMenuWatchedKeys
ld a, [wMoveMenuType]
cp $1
jr z, .movelistindex1
@@ -2654,21 +2664,21 @@ SelectMenuItem: ; 3d2fe (f:52fe)
jr z, .battleselect
dec a
jr nz, .select
- hlCoord 1, 14
+ coord hl, 1, 14
ld de, WhichTechniqueString
call PlaceString
jr .select
.battleselect
ld a, [W_FLAGS_D733]
- bit 0, a
+ bit BIT_TEST_BATTLE, a
jr nz, .select
call PrintMenuItem
ld a, [wMenuItemToSwap]
and a
jr z, .select
- hlCoord 5, 13
+ coord hl, 5, 13
dec a
- ld bc, $14
+ ld bc, SCREEN_WIDTH
call AddNTimes
ld [hl], $ec
.select
@@ -2759,7 +2769,7 @@ CursorUp: ; 3d3c9 (f:53c9)
and a
jp nz, SelectMenuItem
call EraseMenuCursor
- ld a, [wcd6c]
+ ld a, [wNumMovesMinusOne]
inc a
ld [wCurrentMenuItem], a
jp SelectMenuItem
@@ -2767,7 +2777,7 @@ CursorUp: ; 3d3c9 (f:53c9)
CursorDown: ; 3d3dd (f:53dd)
ld a, [wCurrentMenuItem]
ld b, a
- ld a, [wcd6c]
+ ld a, [wNumMovesMinusOne]
inc a
inc a
cp b
@@ -2815,7 +2825,7 @@ AnyMoveToSelect: ; 3d3f5 (f:53f5)
.asm_3d423
ld hl, NoMovesLeftText
call PrintText
- ld c, $3c
+ ld c, 60
call DelayFrames
xor a
ret
@@ -2868,7 +2878,7 @@ SwapMovesInMenu: ; 3d435 (f:5435)
push hl
call .swapBytes ; swap moves
pop hl
- ld bc, $15
+ ld bc, wPartyMon1PP - wPartyMon1Moves
add hl, bc
call .swapBytes ; swap move PP
xor a
@@ -2903,7 +2913,7 @@ SwapMovesInMenu: ; 3d435 (f:5435)
PrintMenuItem: ; 3d4b6 (f:54b6)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- hlCoord 0, 8
+ coord hl, 0, 8
ld b, $3
ld c, $9
call TextBoxBorder
@@ -2916,7 +2926,7 @@ PrintMenuItem: ; 3d4b6 (f:54b6)
ld a, [wCurrentMenuItem]
cp b
jr nz, .notDisabled
- hlCoord 1, 10
+ coord hl, 1, 10
ld de, DisabledText
call PlaceString
jr .moveDisabled
@@ -2930,13 +2940,13 @@ PrintMenuItem: ; 3d4b6 (f:54b6)
ld c, a
ld b, $0 ; which item in the menu is the cursor pointing to? (0-3)
add hl, bc ; point to the item (move) in memory
- ld a, [hl]
- ld [wPlayerSelectedMove], a ; update wPlayerSelectedMove even if the move
+ ld a, [hl]
+ ld [wPlayerSelectedMove], a ; update wPlayerSelectedMove even if the move
; isn't actually selected (just pointed to by the cursor)
ld a, [wPlayerMonNumber]
ld [wWhichPokemon], a
- ld a, $4
- ld [wcc49], a
+ ld a, BATTLE_MON_DATA
+ ld [wMonDataLocation], a
callab GetMaxPP
ld hl, wCurrentMenuItem
ld c, [hl]
@@ -2947,24 +2957,24 @@ PrintMenuItem: ; 3d4b6 (f:54b6)
ld a, [hl]
and $3f
ld [wcd6d], a
-; print TYPE/<type> and <curPP>/<maxPP>
- hlCoord 1, 9
+; print TYPE/<type> and <curPP>/<maxPP>
+ coord hl, 1, 9
ld de, TypeText
call PlaceString
- hlCoord 7, 11
+ coord hl, 7, 11
ld [hl], "/"
- hlCoord 5, 9
+ coord hl, 5, 9
ld [hl], "/"
- hlCoord 5, 11
+ coord hl, 5, 11
ld de, wcd6d
- ld bc, $102
+ lb bc, 1, 2
call PrintNumber
- hlCoord 8, 11
- ld de, wd11e
- ld bc, $102
+ coord hl, 8, 11
+ ld de, wMaxPP
+ lb bc, 1, 2
call PrintNumber
- call GetCurrentMove
- hlCoord 2, 10
+ call GetCurrentMove
+ coord hl, 2, 10
predef PrintMoveType
.moveDisabled
ld a, $1
@@ -2979,7 +2989,7 @@ TypeText: ; 3d55f (f:555f)
SelectEnemyMove: ; 3d564 (f:5564)
ld a, [wLinkState]
- sub $4
+ sub LINK_STATE_BATTLING
jr nz, .noLinkBattle
; link battle
call SaveScreenTilesToBuffer1
@@ -3037,18 +3047,18 @@ SelectEnemyMove: ; 3d564 (f:5564)
push hl
call BattleRandom
ld b, $1
- cp $3f ; select move 1 in [0,3e] (63/256 chance)
+ cp $3f ; select move 1, [0,3e] (63/256 chance)
jr c, .moveChosen
inc hl
inc b
- cp $7f ; select move 1 in [3f,7e] (64/256 chance)
+ cp $7f ; select move 2, [3f,7e] (64/256 chance)
jr c, .moveChosen
inc hl
inc b
- cp $be ; select move 1 in [7f,bd] (63/256 chance)
+ cp $be ; select move 3, [7f,bd] (63/256 chance)
jr c, .moveChosen
inc hl
- inc b ; select move 4 in [be,ff] (66/256 chance)
+ inc b ; select move 4, [be,ff] (66/256 chance)
.moveChosen
ld a, b
dec a
@@ -3075,46 +3085,47 @@ LinkBattleExchangeData: ; 3d605 (f:5605)
ld [wSerialExchangeNybbleReceiveData], a
ld a, [wPlayerMoveListIndex]
cp $f ; is the player running from battle?
- jr z, .asm_3d630
- ld a, [wcd6a]
- and a
- jr nz, .asm_3d629
+ jr z, .doExchange
+ ld a, [wActionResultOrTookBattleTurn]
+ and a ; is the player switching in another mon?
+ jr nz, .switching
+; the player used a move
ld a, [wPlayerSelectedMove]
cp STRUGGLE
ld b, $e
- jr z, .asm_3d62f
+ jr z, .next
dec b
inc a
- jr z, .asm_3d62f
+ jr z, .next
ld a, [wPlayerMoveListIndex]
- jr .asm_3d630
-.asm_3d629
+ jr .doExchange
+.switching
ld a, [wWhichPokemon]
- add $4
+ add 4
ld b, a
-.asm_3d62f
+.next
ld a, b
-.asm_3d630
+.doExchange
ld [wSerialExchangeNybbleSendData], a
callab PrintWaitingText
-.asm_3d63b
+.syncLoop1
call Serial_ExchangeNybble
call DelayFrame
ld a, [wSerialExchangeNybbleReceiveData]
inc a
- jr z, .asm_3d63b
- ld b, $a
-.asm_3d649
+ jr z, .syncLoop1
+ ld b, 10
+.syncLoop2
call DelayFrame
call Serial_ExchangeNybble
dec b
- jr nz, .asm_3d649
- ld b, $a
-.asm_3d654
+ jr nz, .syncLoop2
+ ld b, 10
+.syncLoop3
call DelayFrame
call Serial_SendZeroByte
dec b
- jr nz, .asm_3d654
+ jr nz, .syncLoop3
ret
ExecutePlayerMove: ; 3d65e (f:565e)
@@ -3129,8 +3140,8 @@ ExecutePlayerMove: ; 3d65e (f:565e)
ld [wMoveDidntMiss], a
ld a, $a
ld [wDamageMultipliers], a
- ld a, [wcd6a]
- and a
+ ld a, [wActionResultOrTookBattleTurn]
+ and a ; has the player already used the turn (e.g. by using an item, trying to run or switching pokemon)
jp nz, ExecutePlayerMoveDone
call PrintGhostText
jp z, ExecutePlayerMoveDone
@@ -3170,13 +3181,13 @@ PlayerCanExecuteMove: ; 3d6b0 (f:56b0)
ld hl,ResidualEffects1
ld de,1
call IsInArray
- jp c,JumpMoveEffect ; ResidualEffects1 moves skip damage calculation and accuracy tests
- ; unless executed as part of their exclusive effect functions
+ jp c,JumpMoveEffect ; ResidualEffects1 moves skip damage calculation and accuracy tests
+ ; unless executed as part of their exclusive effect functions
ld a,[W_PLAYERMOVEEFFECT]
ld hl,SpecialEffectsCont
ld de,1
call IsInArray
- call c,JumpMoveEffect ; execute the effects of SpecialEffectsCont moves (e.g. Wrap, Thrash) but don't skip anything
+ call c,JumpMoveEffect ; execute the effects of SpecialEffectsCont moves (e.g. Wrap, Thrash) but don't skip anything
PlayerCalcMoveDamage: ; 3d6dc (f:56dc)
ld a,[W_PLAYERMOVEEFFECT]
ld hl,SetDamageEffects
@@ -3199,7 +3210,7 @@ handleIfPlayerMoveMissed
and a
jr z,getPlayerAnimationType
ld a,[W_PLAYERMOVEEFFECT]
- sub a,EXPLODE_EFFECT
+ sub a,EXPLODE_EFFECT
jr z,playPlayerMoveAnimation ; don't play any animation if the move missed, unless it was EXPLODE_EFFECT
jr playerCheckIfFlyOrChargeEffect
getPlayerAnimationType
@@ -3211,9 +3222,9 @@ getPlayerAnimationType
playPlayerMoveAnimation
push af
ld a,[W_PLAYERBATTSTATUS2]
- bit 4,a
- ld hl,Func_79747
- ld b,BANK(Func_79747)
+ bit HasSubstituteUp,a
+ ld hl,HideSubstituteShowMonAnim
+ ld b,BANK(HideSubstituteShowMonAnim)
call nz,Bankswitch
pop af
ld [wAnimationType],a
@@ -3222,13 +3233,13 @@ playPlayerMoveAnimation
call HandleExplodingAnimation
call DrawPlayerHUDAndHPBar
ld a,[W_PLAYERBATTSTATUS2]
- bit 4,a
- ld hl,Func_79771
- ld b,BANK(Func_79771)
+ bit HasSubstituteUp,a
+ ld hl,ReshowSubstituteAnim
+ ld b,BANK(ReshowSubstituteAnim)
call nz,Bankswitch
jr MirrorMoveCheck
playerCheckIfFlyOrChargeEffect
- ld c,$1E
+ ld c,30
call DelayFrames
ld a,[W_PLAYERMOVEEFFECT]
cp a,FLY_EFFECT
@@ -3294,7 +3305,7 @@ MirrorMoveCheck
ld a,[wPlayerNumAttacksLeft]
dec a
ld [wPlayerNumAttacksLeft],a
- jp nz,getPlayerAnimationType ; for multi-hit moves, apply attack until PlayerNumAttacksLeft hits 0 or the enemy faints.
+ jp nz,getPlayerAnimationType ; for multi-hit moves, apply attack until PlayerNumAttacksLeft hits 0 or the enemy faints.
; damage calculation and accuracy tests only happen for the first hit
res AttackingMultipleTimes,[hl] ; clear attacking multiple times status when all attacks are over
ld hl,MultiHitText
@@ -3320,7 +3331,7 @@ MultiHitText: ; 3d805 (f:5805)
ExecutePlayerMoveDone: ; 3d80a (f:580a)
xor a
- ld [wcd6a],a
+ ld [wActionResultOrTookBattleTurn],a
ld b,1
ret
@@ -3505,8 +3516,8 @@ CheckPlayerStatusConditions: ; 3d854 (f:5854)
.MonHurtItselfOrFullyParalysed
ld hl,W_PLAYERBATTSTATUS1
ld a,[hl]
- ; clear bide, thrashing, charging up, and trapping moves such as warp (already cleared for confusion damage)
- and $ff ^ ((1 << StoringEnergy) | (1 << ThrashingAbout) | (1 << ChargingUp) | (1 << UsingTrappingMove))
+ ; clear bide, thrashing, charging up, and trapping moves such as warp (already cleared for confusion damage)
+ and $ff ^ ((1 << StoringEnergy) | (1 << ThrashingAbout) | (1 << ChargingUp) | (1 << UsingTrappingMove))
ld [hl],a
ld a,[W_PLAYERMOVEEFFECT]
cp a,FLY_EFFECT
@@ -3584,7 +3595,7 @@ CheckPlayerStatusConditions: ; 3d854 (f:5854)
ld hl,wPlayerNumAttacksLeft
dec [hl] ; did Thrashing About counter hit 0?
ld hl,PlayerCalcMoveDamage ; skip DecrementPP
- jp nz,.returnToHL
+ jp nz,.returnToHL
push hl
ld hl,W_PLAYERBATTSTATUS1
res ThrashingAbout,[hl] ; no longer thrashing about
@@ -3605,7 +3616,7 @@ CheckPlayerStatusConditions: ; 3d854 (f:5854)
ld a,[wPlayerNumAttacksLeft]
dec a ; did multi-turn move end?
ld [wPlayerNumAttacksLeft],a
- ld hl,getPlayerAnimationType ; if it didn't, skip damage calculation (deal damage equal to last hit),
+ ld hl,getPlayerAnimationType ; if it didn't, skip damage calculation (deal damage equal to last hit),
; DecrementPP and MoveHitTest
jp nz,.returnToHL
jp .returnToHL
@@ -3702,7 +3713,7 @@ PrintMoveIsDisabledText: ; 3da88 (f:5a88)
ld de, W_ENEMYBATTSTATUS1
.removeChargingUp
ld a, [de]
- res ChargingUp, a ; end the pokemon's
+ res ChargingUp, a ; end the pokemon's
ld [de], a
ld a, [hl]
ld [wd11e], a
@@ -3762,9 +3773,14 @@ PrintMonName1Text: ; 3daf5 (f:5af5)
ld hl, MonName1Text
jp PrintText
+; this function wastes time calling DetermineExclamationPointTextNum
+; and choosing between Used1Text and Used2Text, even though
+; those text strings are identical and both continue at PrintInsteadText
+; this likely had to do with Japanese grammar that got translated,
+; but the functionality didn't get removed
MonName1Text: ; 3dafb (f:5afb)
TX_FAR _MonName1Text
- db $08 ; asm
+ TX_ASM
ld a, [H_WHOSETURN]
and a
ld a, [W_PLAYERMOVENUM]
@@ -3775,7 +3791,7 @@ MonName1Text: ; 3dafb (f:5afb)
.asm_3db11
ld [hl], a
ld [wd11e], a
- call Func_3db85
+ call DetermineExclamationPointTextNum
ld a, [wMonIsDisobedient]
and a
ld hl, Used2Text
@@ -3789,33 +3805,35 @@ MonName1Text: ; 3dafb (f:5afb)
Used1Text: ; 3db2d (f:5b2d)
TX_FAR _Used1Text
- db $08 ; asm
+ TX_ASM
jr PrintInsteadText
Used2Text: ; 3db34 (f:5b34)
TX_FAR _Used2Text
- db $08 ; asm
+ TX_ASM
+ ; fall through
PrintInsteadText: ; 3db39 (f:5b39)
ld a, [wMonIsDisobedient]
and a
- jr z, PrintCF4BText
+ jr z, PrintMoveName
ld hl, InsteadText
ret
InsteadText: ; 3db43 (f:5b43)
TX_FAR _InsteadText
- db $08 ; asm
+ TX_ASM
+ ; fall through
-PrintCF4BText: ; 3db48 (f:5b48)
- ld hl, CF4BText
+PrintMoveName: ; 3db48 (f:5b48)
+ ld hl, _PrintMoveName
ret
-CF4BText: ; 3db4c (f:5b4c)
+_PrintMoveName: ; 3db4c (f:5b4c)
TX_FAR _CF4BText
- db $08 ; asm
+ TX_ASM
ld hl, ExclamationPointPointerTable
- ld a, [wd11e]
+ ld a, [wd11e] ; exclamation point num
add a
push bc
ld b, $0
@@ -3854,29 +3872,36 @@ ExclamationPoint5Text: ; 3db80 (f:5b80)
TX_FAR _ExclamationPoint5Text
db "@"
-Func_3db85: ; 3db85 (f:5b85)
+; this function does nothing useful
+; if the move being used is in set [1-4] from ExclamationPointMoveSets,
+; use ExclamationPoint[1-4]Text
+; otherwise, use ExclamationPoint5Text
+; but all five text strings are identical
+; this likely had to do with Japanese grammar that got translated,
+; but the functionality didn't get removed
+DetermineExclamationPointTextNum: ; 3db85 (f:5b85)
push bc
- ld a, [wd11e] ; move number
+ ld a, [wd11e] ; move ID
ld c, a
ld b, $0
- ld hl, UnknownMovesList_3dba3
-.asm_3db8f
+ ld hl, ExclamationPointMoveSets
+.loop
ld a, [hli]
cp $ff
- jr z, .asm_3db9d
+ jr z, .done
cp c
- jr z, .asm_3db9d
+ jr z, .done
and a
- jr nz, .asm_3db8f
+ jr nz, .loop
inc b
- jr .asm_3db8f
-.asm_3db9d
+ jr .loop
+.done
ld a, b
- ld [wd11e], a
+ ld [wd11e], a ; exclamation point num
pop bc
ret
-UnknownMovesList_3dba3: ; 3dba3 (f:5ba3)
+ExclamationPointMoveSets: ; 3dba3 (f:5ba3)
db SWORDS_DANCE, GROWTH
db $00
db RECOVER, BIDE, SELFDESTRUCT, AMNESIA
@@ -3919,7 +3944,7 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2)
; if you get here, the mon used jump kick or hi jump kick and missed
ld hl, W_DAMAGE ; since the move missed, W_DAMAGE will always contain 0 at this point.
- ; Thus, recoil damage will always be equal to 1
+ ; Thus, recoil damage will always be equal to 1
; even if it was intended to be potential damage/8.
ld a, [hli]
ld b, [hl]
@@ -3940,7 +3965,7 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2)
ld hl, KeptGoingAndCrashedText
call PrintText
ld b, $4
- predef Func_48125
+ predef PredefShakeScreenHorizontally
ld a, [H_WHOSETURN]
and a
jr nz, .enemyTurn
@@ -3986,7 +4011,7 @@ PrintCriticalOHKOText: ; 3dc5c (f:5c5c)
xor a
ld [wCriticalHitOrOHKO], a
.done
- ld c, $14
+ ld c, 20
jp DelayFrames
CriticalOHKOTextPointers: ; 3dc7a (f:5c7a)
@@ -4673,7 +4698,7 @@ CriticalHitTest: ; 3e023 (f:6023)
jr z, .calcCriticalHitProbability
ld hl, W_ENEMYMOVEPOWER
ld de, W_ENEMYBATTSTATUS2
-.calcCriticalHitProbability ; 0x3e04f
+.calcCriticalHitProbability
ld a, [hld] ; read base power from RAM
and a
ret z ; do nothing if zero
@@ -4772,7 +4797,7 @@ HandleCounterMove: ; 3e093 (f:6093)
ld a,[hli]
or [hl]
ret z ; If we made it here, Counter still misses if the last move used in battle did no damage to its target.
- ; W_DAMAGE is shared by both players, so Counter may strike back damage dealt by the Counter user itself
+ ; W_DAMAGE is shared by both players, so Counter may strike back damage dealt by the Counter user itself
; if the conditions meet, even though 99% of the times damage will come from the target.
; if it did damage, double it
ld a,[hl]
@@ -4905,7 +4930,7 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142)
ld [wHPBarNewHP+1],a
ld a,[hl]
ld [wHPBarNewHP],a
- hlCoord 2, 2
+ coord hl, 2, 2
xor a
ld [wHPBarType],a
predef UpdateHPBar2 ; animate the HP bar shortening
@@ -5023,7 +5048,7 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200)
ld [wHPBarMaxHP+1],a
ld a,[hl]
ld [wHPBarMaxHP],a
- hlCoord 10, 9
+ coord hl, 10, 9
ld a,$01
ld [wHPBarType],a
predef UpdateHPBar2 ; animate the HP bar shortening
@@ -5033,9 +5058,9 @@ ApplyAttackToPlayerPokemonDone
AttackSubstitute: ; 3e25e (f:625e)
; Unlike the two ApplyAttackToPokemon functions, Attack Substitute is shared by player and enemy.
; Self-confusion damage as well as Hi-Jump Kick and Jump Kick recoil cause a momentary turn swap before being applied.
-; If the user has a Substitute up and would take damage because of that,
+; If the user has a Substitute up and would take damage because of that,
; damage will be applied to the other player's Substitute.
-; Normal recoil such as from Double-Edge isn't affected by this glitch,
+; Normal recoil such as from Double-Edge isn't affected by this glitch,
; because this function is never called in that case.
ld hl,SubstituteTookDamageText
@@ -5060,7 +5085,7 @@ AttackSubstitute: ; 3e25e (f:625e)
ld [de],a
ret nc
.substituteBroke
-; If the target's Substitute breaks, W_DAMAGE isn't updated with the amount of HP
+; If the target's Substitute breaks, W_DAMAGE isn't updated with the amount of HP
; the Substitute had before being attacked.
ld h,b
ld l,c
@@ -5071,7 +5096,7 @@ AttackSubstitute: ; 3e25e (f:625e)
ld a,[H_WHOSETURN]
xor a,$01
ld [H_WHOSETURN],a
- callab Func_79747 ; animate the substitute breaking
+ callab HideSubstituteShowMonAnim ; animate the substitute breaking
; flip the turn back to the way it was
ld a,[H_WHOSETURN]
xor a,$01
@@ -5181,7 +5206,7 @@ ReloadMoveData: ; 3e329 (f:6329)
ld [wd11e],a
dec a
ld hl,Moves
- ld bc,$0006
+ ld bc,MoveEnd - Moves
call AddNTimes
ld a,BANK(Moves)
call FarCopyData ; copy the move's stats
@@ -5266,7 +5291,7 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
ld d,a ; d = type 1 of defender
ld e,[hl] ; e = type 2 of defender
ld a,[W_PLAYERMOVETYPE]
- ld [wd11e],a
+ ld [wMoveType],a
ld a,[H_WHOSETURN]
and a
jr z,.next
@@ -5280,9 +5305,9 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
ld d,a ; d = type 1 of defender
ld e,[hl] ; e = type 2 of defender
ld a,[W_ENEMYMOVETYPE]
- ld [wd11e],a
+ ld [wMoveType],a
.next
- ld a,[wd11e] ; move type
+ ld a,[wMoveType]
cp b ; does the move type match type 1 of the attacker?
jr z,.sameTypeAttackBonus
cp c ; does the move type match type 2 of the attacker?
@@ -5307,8 +5332,8 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
ld hl,wDamageMultipliers
set 7,[hl]
.skipSameTypeAttackBonus
- ld a,[wd11e]
- ld b,a ; b = move type
+ ld a,[wMoveType]
+ ld b,a
ld hl,TypeEffects
.loop
ld a,[hli] ; a = "attacking type" of the current type pair
@@ -5371,29 +5396,29 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)
; function to tell how effective the type of an enemy attack is on the player's current pokemon
; this doesn't take into account the effects that dual types can have
; (e.g. 4x weakness / resistance, weaknesses and resistances canceling)
-; the result is stored in [wd11e]
+; the result is stored in [wTypeEffectiveness]
; ($05 is not very effective, $10 is neutral, $14 is super effective)
; as far is can tell, this is only used once in some AI code to help decide which move to use
AIGetTypeEffectiveness: ; 3e449 (f:6449)
ld a,[W_ENEMYMOVETYPE]
- ld d,a ; d = type of enemy move
+ ld d,a ; d = type of enemy move
ld hl,wBattleMonType
- ld b,[hl] ; b = type 1 of player's pokemon
+ ld b,[hl] ; b = type 1 of player's pokemon
inc hl
- ld c,[hl] ; c = type 2 of player's pokemon
+ ld c,[hl] ; c = type 2 of player's pokemon
ld a,$10
- ld [wd11e],a ; initialize [wd11e] to neutral effectiveness
+ ld [wTypeEffectiveness],a ; initialize to neutral effectiveness
ld hl,TypeEffects
.loop
ld a,[hli]
cp a,$ff
ret z
- cp d ; match the type of the move
+ cp d ; match the type of the move
jr nz,.nextTypePair1
ld a,[hli]
- cp b ; match with type 1 of pokemon
+ cp b ; match with type 1 of pokemon
jr z,.done
- cp c ; or match with type 2 of pokemon
+ cp c ; or match with type 2 of pokemon
jr z,.done
jr .nextTypePair2
.nextTypePair1
@@ -5403,7 +5428,7 @@ AIGetTypeEffectiveness: ; 3e449 (f:6449)
jr .loop
.done
ld a,[hl]
- ld [wd11e],a ; store damage multiplier
+ ld [wTypeEffectiveness],a ; store damage multiplier
ret
INCLUDE "data/type_effects.asm"
@@ -5561,7 +5586,7 @@ CalcHitChance: ; 3e624 (f:6624)
; the second iteration multiplies by the evasion ratio
.loop
push bc
- ld hl, StatModifierRatios ; $76cb ; stat modifier ratios
+ ld hl, StatModifierRatios ; stat modifier ratios
dec b
sla b
ld c,b
@@ -5749,8 +5774,8 @@ playEnemyMoveAnimation: ; 3e7a4 (f:67a4)
push af
ld a, [W_ENEMYBATTSTATUS2]
bit HasSubstituteUp, a ; does mon have a substitute?
- ld hl, Func_79747
- ld b, BANK(Func_79747)
+ ld hl, HideSubstituteShowMonAnim
+ ld b, BANK(HideSubstituteShowMonAnim)
call nz, Bankswitch
pop af
ld [wAnimationType], a
@@ -5760,14 +5785,14 @@ playEnemyMoveAnimation: ; 3e7a4 (f:67a4)
call DrawEnemyHUDAndHPBar
ld a, [W_ENEMYBATTSTATUS2]
bit HasSubstituteUp, a ; does mon have a substitute?
- ld hl, Func_79771
- ld b, BANK(Func_79771)
+ ld hl, ReshowSubstituteAnim
+ ld b, BANK(ReshowSubstituteAnim)
call nz, Bankswitch ; slide the substitute's sprite out
jr EnemyCheckIfMirrorMoveEffect
EnemyCheckIfFlyOrChargeEffect: ; 3e7d1 (f:67d1)
call SwapPlayerAndEnemyLevels
- ld c, $1e
+ ld c, 30
call DelayFrames
ld a, [W_ENEMYMOVEEFFECT]
cp FLY_EFFECT
@@ -6019,7 +6044,7 @@ CheckEnemyStatusConditions: ; 3e88f (f:688f)
.monHurtItselfOrFullyParalysed
ld hl, W_ENEMYBATTSTATUS1
ld a, [hl]
- ; clear bide, thrashing about, charging up, and multi-turn moves such as warp
+ ; clear bide, thrashing about, charging up, and multi-turn moves such as warp
and $ff ^ ((1 << StoringEnergy) | (1 << ThrashingAbout) | (1 << ChargingUp) | (1 << UsingTrappingMove))
ld [hl], a
ld a, [W_ENEMYMOVEEFFECT]
@@ -6115,7 +6140,7 @@ CheckEnemyStatusConditions: ; 3e88f (f:688f)
call PrintText
ld hl, wEnemyNumAttacksLeft
dec [hl] ; did multi-turn move end?
- ld hl, GetEnemyAnimationType ; if it didn't, skip damage calculation (deal damage equal to last hit),
+ ld hl, GetEnemyAnimationType ; if it didn't, skip damage calculation (deal damage equal to last hit),
; DecrementPP and MoveHitTest
jp nz, .enemyReturnToHL
jp .enemyReturnToHL
@@ -6149,15 +6174,15 @@ GetCurrentMove: ; 3eabe (f:6abe)
.player
ld de, W_PLAYERMOVENUM
ld a, [W_FLAGS_D733]
- bit 0, a
- ld a, [wccd9]
+ bit BIT_TEST_BATTLE, a
+ ld a, [wTestBattlePlayerSelectedMove]
jr nz, .selected
ld a, [wPlayerSelectedMove]
.selected
ld [wd0b5], a
dec a
ld hl, Moves
- ld bc, $6
+ ld bc, MoveEnd - Moves
call AddNTimes
ld a, BANK(Moves)
call FarCopyData
@@ -6180,7 +6205,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)
call GetMonHeader
ld a, [W_ENEMYBATTSTATUS3]
bit Transformed, a ; is enemy mon transformed?
- ld hl, wcceb ; copied DVs from when it used Transform
+ ld hl, wTransformedEnemyMonOriginalDVs ; original DVs before transforming
ld a, [hli]
ld b, [hl]
jr nz, .storeDVs
@@ -6279,15 +6304,15 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)
dec de
dec de
xor a
- ld [wHPBarMaxHP], a
+ ld [wLearningMovesFromDayCare], a
predef WriteMonMoves ; get moves based on current level
.loadMovePPs
ld hl, wEnemyMonMoves
- ld de, wEnemyMonSpecial + 1
+ ld de, wEnemyMonPP - 1
predef LoadMovePPs
ld hl, W_MONHBASESTATS
ld de, wEnemyMonBaseStats
- ld b, $5
+ ld b, NUM_STATS
.copyBaseStatsLoop
ld a, [hli]
ld [de], a
@@ -6305,7 +6330,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)
call GetMonName
ld hl, wcd6d
ld de, wEnemyMonNick
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
ld a, [wEnemyMonSpecies2]
ld [wd11e], a
@@ -6313,15 +6338,15 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)
ld a, [wd11e]
dec a
ld c, a
- ld b, $1
+ ld b, FLAG_SET
ld hl, wPokedexSeen
predef FlagActionPredef ; mark this mon as seen in the pokedex
ld hl, wEnemyMonLevel
ld de, wEnemyMonUnmodifiedLevel
- ld bc, $b
+ ld bc, 1 + NUM_STATS * 2
call CopyData
ld a, $7 ; default stat mod
- ld b, $8 ; number of stat mods
+ ld b, NUM_STAT_MODS ; number of stat mods
ld hl, wEnemyMonStatMods
.statModLoop
ld [hli], a
@@ -6392,7 +6417,7 @@ LoadPlayerBackPic: ; 3ec92 (f:6c92)
predef ScaleSpriteByTwo
ld hl, wOAMBuffer
xor a
- ld [$FF8B], a ; initial tile number
+ ld [hOAMTile], a ; initial tile number
ld b, $7 ; 7 columns
ld e, $a0 ; X for the left-most column
.loop ; each loop iteration writes 3 OAM entries in a vertical column
@@ -6406,16 +6431,16 @@ LoadPlayerBackPic: ; 3ec92 (f:6c92)
add d ; increase Y by height of tile
ld d, a
inc hl
- ld a, [$FF8B]
+ ld a, [hOAMTile]
ld [hli], a ; OAM tile number
inc a ; increment tile number
- ld [$FF8B], a
+ ld [hOAMTile], a
inc hl
dec c
jr nz, .innerLoop
- ld a, [$FF8B]
+ ld a, [hOAMTile]
add $4 ; increase tile number by 4
- ld [$FF8B], a
+ ld [hOAMTile], a
ld a, $8 ; width of tile
add e ; increase X by width of tile
ld e, a
@@ -6436,21 +6461,17 @@ LoadPlayerBackPic: ; 3ec92 (f:6c92)
xor a
ld [$0], a
ld a, $31
- ld [$ffe1], a
- hlCoord 1, 5
- predef_jump Func_3f0c6
+ ld [hStartTileID], a
+ coord hl, 1, 5
+ predef_jump CopyUncompressedPicToTilemap
; does nothing since no stats are ever selected (barring glitches)
DoubleOrHalveSelectedStats: ; 3ed02 (f:6d02)
callab DoubleSelectedStats
- ld hl, HalveSelectedStats
- ld b, BANK(HalveSelectedStats)
- jp Bankswitch
+ jpab HalveSelectedStats
ScrollTrainerPicAfterBattle: ; 3ed12 (f:6d12)
- ld hl, _ScrollTrainerPicAfterBattle
- ld b, BANK(_ScrollTrainerPicAfterBattle)
- jp Bankswitch
+ jpab _ScrollTrainerPicAfterBattle
ApplyBurnAndParalysisPenaltiesToPlayer: ; 3ed1a (f:6d1a)
ld a, $1
@@ -6552,7 +6573,7 @@ CalculateModifiedStats: ; 3ed99 (f:6d99)
call CalculateModifiedStat
inc c
ld a, c
- cp 4
+ cp NUM_STATS - 1
jr nz, .loop
ret
@@ -6560,12 +6581,12 @@ CalculateModifiedStats: ; 3ed99 (f:6d99)
CalculateModifiedStat: ; 3eda5 (f:6da5)
push bc
push bc
- ld a, [wd11e]
+ ld a, [wCalculateWhoseStats]
and a
ld a, c
ld hl, wBattleMonAttack
ld de, wPlayerMonUnmodifiedAttack
- ld bc, wPlayerMonAttackMod
+ ld bc, wPlayerMonStatMods
jr z, .next
ld hl, wEnemyMonAttack
ld de, wEnemyMonUnmodifiedAttack
@@ -6698,22 +6719,22 @@ LoadHudTilePatterns: ; 3ee5b (f:6e5b)
.lcdDisabled
ld hl, BattleHudTiles1
ld de, vChars2 + $6d0
- ld bc, $18
+ ld bc, BattleHudTiles1End - BattleHudTiles1
ld a, BANK(BattleHudTiles1)
call FarCopyDataDouble
ld hl, BattleHudTiles2
ld de, vChars2 + $730
- ld bc, $30
+ ld bc, BattleHudTiles3End - BattleHudTiles2
ld a, BANK(BattleHudTiles2)
jp FarCopyDataDouble
.lcdEnabled
ld de, BattleHudTiles1
ld hl, vChars2 + $6d0
- ld bc, (BANK(BattleHudTiles1) << 8) + $03
+ lb bc, BANK(BattleHudTiles1), (BattleHudTiles1End - BattleHudTiles1) / $8
call CopyVideoDataDouble
ld de, BattleHudTiles2
ld hl, vChars2 + $730
- ld bc, (BANK(BattleHudTiles2) << 8) + $06
+ lb bc, BANK(BattleHudTiles2), (BattleHudTiles3End - BattleHudTiles2) / $8
jp CopyVideoDataDouble
PrintEmptyString: ; 3ee94 (f:6e94)
@@ -6749,8 +6770,8 @@ BattleRandom:
push hl
push bc
push af
-
-; point to seed 0 so we pick the first number the next time
+
+; point to seed 0 so we pick the first number the next time
xor a
ld [wLinkBattleRandomNumberListIndex], a
@@ -6759,11 +6780,11 @@ BattleRandom:
.loop
ld a, [hl]
ld c, a
-; multiply by 5
+; multiply by 5
add a
add a
add c
-; add 1
+; add 1
inc a
ld [hli], a
dec b
@@ -6778,11 +6799,11 @@ BattleRandom:
HandleExplodingAnimation: ; 3eed3 (f:6ed3)
ld a, [H_WHOSETURN]
and a
- ld hl, wEnemyMonType1 ; wcfea
+ ld hl, wEnemyMonType1
ld de, W_ENEMYBATTSTATUS1
ld a, [W_PLAYERMOVENUM]
jr z, .asm_3eeea
- ld hl, wBattleMonType1 ; wd019
+ ld hl, wBattleMonType1
ld de, W_ENEMYBATTSTATUS1
ld a, [W_ENEMYMOVENUM]
.asm_3eeea
@@ -6812,10 +6833,10 @@ PlayMoveAnimation: ; 3ef07 (f:6f07)
predef_jump MoveAnimation
; unreferenced
-Func_3f069: ; 3f069 (f:7069)
+ResetCryModifiers: ; 3f069 (f:7069)
xor a
- ld [wc0f1], a
- ld [wc0f2], a
+ ld [wFrequencyModifier], a
+ ld [wTempoModifier], a
jp PlaySound
JumpMoveEffect: ; 3f132 (f:7132)
@@ -7063,7 +7084,7 @@ PoisonEffect: ; 3f24f (f:724f)
cp POISON_EFFECT
ret nz
.didntAffect
- ld c, $32
+ ld c, 50
call DelayFrames
jp PrintDidntAffectText
@@ -7076,9 +7097,7 @@ BadlyPoisonedText: ; 3f2e4 (f:72e4)
db "@"
DrainHPEffect: ; 3f2e9 (f:72e9)
- ld hl, DrainHPEffect_
- ld b, BANK(DrainHPEffect_)
- jp Bankswitch
+ jpab DrainHPEffect_
ExplodeEffect: ; 3f2f1 (f:72f1)
ld hl, wBattleMonHP
@@ -7325,17 +7344,17 @@ StatModifierUpEffect: ; 3f428 (f:7428)
add hl, bc
pop bc
xor a
- ld [H_MULTIPLICAND], a
+ ld [H_MULTIPLICAND], a
ld a, [de]
ld [H_MULTIPLICAND + 1], a
inc de
ld a, [de]
ld [H_MULTIPLICAND + 2], a
ld a, [hli]
- ld [H_MULTIPLIER], a
+ ld [H_MULTIPLIER], a
call Multiply
ld a, [hl]
- ld [H_DIVISOR], a
+ ld [H_DIVISOR], a
ld b, $4
call Divide
pop hl
@@ -7359,27 +7378,29 @@ UpdateStat: ; 3f4c3 (f:74c3)
UpdateStatDone: ; 3f4ca (f:74ca)
ld b, c
inc b
- call Func_3f688
+ call PrintStatText
ld hl, W_PLAYERBATTSTATUS2
ld de, W_PLAYERMOVENUM
- ld bc, wccf7
+ ld bc, wPlayerMonMinimized
ld a, [H_WHOSETURN]
and a
jr z, .asm_3f4e6
ld hl, W_ENEMYBATTSTATUS2
ld de, W_ENEMYMOVENUM
- ld bc, wccf3
+ ld bc, wEnemyMonMinimized
.asm_3f4e6
ld a, [de]
cp MINIMIZE
jr nz, .asm_3f4f9
- bit HasSubstituteUp, [hl] ; substitute
+ ; if a substitute is up, slide off the substitute and show the mon pic before
+ ; playing the minimize animation
+ bit HasSubstituteUp, [hl]
push af
push bc
- ld hl, Func_79747
- ld b, BANK(Func_79747)
+ ld hl, HideSubstituteShowMonAnim
+ ld b, BANK(HideSubstituteShowMonAnim)
push de
- call nz, Bankswitch ; play Minimize animation unless there's Substitute involved
+ call nz, Bankswitch
pop de
.asm_3f4f9
call PlayCurrentMoveAnimation
@@ -7389,8 +7410,8 @@ UpdateStatDone: ; 3f4ca (f:74ca)
pop bc
ld a, $1
ld [bc], a
- ld hl, Func_79771
- ld b, BANK(Func_79771)
+ ld hl, ReshowSubstituteAnim
+ ld b, BANK(ReshowSubstituteAnim)
pop af
call nz, Bankswitch
.applyBadgeBoostsAndStatusPenalties
@@ -7415,7 +7436,7 @@ PrintNothingHappenedText: ; 3f522 (f:7522)
MonsStatsRoseText: ; 3f528 (f:7528)
TX_FAR _MonsStatsRoseText
- db $08 ; asm
+ TX_ASM
ld hl, GreatlyRoseText
ld a, [H_WHOSETURN]
and a
@@ -7529,7 +7550,7 @@ StatModifierDownEffect: ; 3f54c (f:754c)
jr nz, .recalculateStat
ld a, [hl]
and a
- jp z, Func_3f64d
+ jp z, CantLowerAnymore_Pop
.recalculateStat
; recalculate affected stat
; paralysis and burn penalties, as well as badge boosts are ignored
@@ -7543,17 +7564,17 @@ StatModifierDownEffect: ; 3f54c (f:754c)
add hl, bc
pop bc
xor a
- ld [H_MULTIPLICAND], a
+ ld [H_MULTIPLICAND], a
ld a, [de]
ld [H_MULTIPLICAND + 1], a
inc de
ld a, [de]
ld [H_MULTIPLICAND + 2], a
ld a, [hli]
- ld [H_MULTIPLIER], a
+ ld [H_MULTIPLIER], a
call Multiply
ld a, [hl]
- ld [H_DIVISOR], a
+ ld [H_DIVISOR], a
ld b, $4
call Divide
pop hl
@@ -7577,7 +7598,7 @@ UpdateLoweredStatDone: ; 3f62c (f:762c)
ld b, c
inc b
push de
- call Func_3f688
+ call PrintStatText
pop de
ld a, [de]
cp $44
@@ -7597,7 +7618,7 @@ UpdateLoweredStatDone: ; 3f62c (f:762c)
call QuarterSpeedDueToParalysis
jp HalveAttackDueToBurn
-Func_3f64d: ; 3f64d (f:764d)
+CantLowerAnymore_Pop: ; 3f64d (f:764d)
pop de
pop hl
inc [hl]
@@ -7617,7 +7638,7 @@ MoveMissed: ; 3f65a (f:765a)
MonsStatsFellText: ; 3f661 (f:7661)
TX_FAR _MonsStatsFellText
- db $08 ; asm
+ TX_ASM
ld hl, FellText
ld a, [H_WHOSETURN]
and a
@@ -7640,9 +7661,9 @@ FellText: ; 3f683 (f:7683)
TX_FAR _FellText
db "@"
-Func_3f688: ; 3f688 (f:7688)
+PrintStatText: ; 3f688 (f:7688)
ld hl, StatsTextStrings
- ld c, $50
+ ld c, "@"
.asm_3f68d
dec b
jr z, .asm_3f696
@@ -7749,7 +7770,7 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)
srl b
cp b
jr nc, .asm_3f76e
- ld c, $32
+ ld c, 50
call DelayFrames
ld a, [W_PLAYERMOVENUM]
cp TELEPORT
@@ -7764,7 +7785,7 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)
ld a, [W_PLAYERMOVENUM]
jr .asm_3f7e4
.asm_3f77e
- ld c, $32
+ ld c, 50
call DelayFrames
ld hl, IsUnaffectedText
ld a, [W_PLAYERMOVENUM]
@@ -7791,7 +7812,7 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)
srl b
cp b
jr nc, .asm_3f7c1
- ld c, $32
+ ld c, 50
call DelayFrames
ld a, [W_ENEMYMOVENUM]
cp TELEPORT
@@ -7806,7 +7827,7 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)
ld a, [W_ENEMYMOVENUM]
jr .asm_3f7e4
.asm_3f7d1
- ld c, $32
+ ld c, 50
call DelayFrames
ld hl, IsUnaffectedText
ld a, [W_ENEMYMOVENUM]
@@ -7816,7 +7837,7 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)
.asm_3f7e4
push af
call PlayBattleAnimation
- ld c, $14
+ ld c, 20
call DelayFrames
pop af
ld hl, RanFromBattleText
@@ -7911,9 +7932,7 @@ FlinchSideEffect: ; 3f85b (f:785b)
ret
OneHitKOEffect: ; 3f884 (f:7884)
- ld hl, OneHitKOEffect_
- ld b, BANK(OneHitKOEffect_)
- jp Bankswitch
+ jpab OneHitKOEffect_
ChargeEffect: ; 3f88c (f:788c)
ld hl, W_PLAYERBATTSTATUS1
@@ -7945,14 +7964,14 @@ ChargeEffect: ; 3f88c (f:788c)
ld a, b
call PlayBattleAnimation
ld a, [de]
- ld [wWhichTrade], a
+ ld [wChargeMoveNum], a
ld hl, ChargeMoveEffectText
jp PrintText
ChargeMoveEffectText: ; 3f8c8 (f:78c8)
TX_FAR _ChargeMoveEffectText
- db $08 ; asm
- ld a, [wWhichTrade]
+ TX_ASM
+ ld a, [wChargeMoveNum]
cp RAZOR_WIND
ld hl, MadeWhirlwindText
jr z, .asm_3f8f8
@@ -8008,8 +8027,8 @@ TrappingEffect: ; 3f917 (f:7917)
.trappingEffect
bit UsingTrappingMove, [hl]
ret nz
- call ClearHyperBeam ; since this effect is called before testing whether the move will hit,
- ; the target won't need to recharge even if the trapping move missed
+ call ClearHyperBeam ; since this effect is called before testing whether the move will hit,
+ ; the target won't need to recharge even if the trapping move missed
set UsingTrappingMove, [hl] ; mon is now using a trapping move
call BattleRandom ; 3/8 chance for 2 and 3 attacks, and 1/8 chance for 4 and 5 attacks
and $3
@@ -8023,19 +8042,13 @@ TrappingEffect: ; 3f917 (f:7917)
ret
MistEffect: ; 3f941 (f:7941)
- ld hl, MistEffect_
- ld b, BANK(MistEffect_)
- jp Bankswitch
+ jpab MistEffect_
FocusEnergyEffect: ; 3f949 (f:7949)
- ld hl, FocusEnergyEffect_
- ld b, BANK(FocusEnergyEffect_)
- jp Bankswitch
+ jpab FocusEnergyEffect_
RecoilEffect: ; 3f951 (f:7951)
- ld hl, RecoilEffect_
- ld b, BANK(RecoilEffect_)
- jp Bankswitch
+ jpab RecoilEffect_
ConfusionSideEffect: ; 3f959 (f:7959)
call BattleRandom
@@ -8067,7 +8080,7 @@ ConfusionSideEffectSuccess: ; 3f96f (f:796f)
set Confused, [hl] ; mon is now confused
push af
call BattleRandom
- and $3
+ and $3
inc a
inc a
ld [bc], a ; confusion status will last 2-5 turns
@@ -8084,19 +8097,15 @@ BecameConfusedText: ; 3f9a1 (f:79a1)
ConfusionEffectFailed: ; 3f9a6 (f:79a6)
cp CONFUSION_SIDE_EFFECT
ret z
- ld c, $32
+ ld c, 50
call DelayFrames
jp ConditionalPrintButItFailed
ParalyzeEffect: ; 3f9b1 (f:79b1)
- ld hl, ParalyzeEffect_
- ld b, BANK(ParalyzeEffect_)
- jp Bankswitch
+ jpab ParalyzeEffect_
SubstituteEffect: ; 3f9b9 (f:79b9)
- ld hl, SubstituteEffect_
- ld b, BANK(SubstituteEffect_)
- jp Bankswitch
+ jpab SubstituteEffect_
HyperBeamEffect: ; 3f9c1 (f:79c1)
ld hl, W_PLAYERBATTSTATUS2
@@ -8131,7 +8140,7 @@ RageEffect: ; 3f9df (f:79df)
ret
MimicEffect: ; 3f9ed (f:79ed)
- ld c, $32
+ ld c, 50
call DelayFrames
call MoveHitTest
ld a, [W_MOVEMISSED]
@@ -8207,9 +8216,7 @@ MimicLearnedMoveText: ; 3fa77 (f:7a77)
db "@"
LeechSeedEffect: ; 3fa7c (f:7a7c)
- ld hl, LeechSeedEffect_
- ld b, BANK(LeechSeedEffect_)
- jp Bankswitch
+ jpab LeechSeedEffect_
SplashEffect: ; 3fa84 (f:7a84)
call PlayCurrentMoveAnimation
@@ -8248,12 +8255,12 @@ DisableEffect: ; 3fa8a (f:7a8a)
ld a, [H_WHOSETURN]
and a
ld hl, wBattleMonPP
- jr nz, .enemyTurn
+ jr nz, .enemyTurn
ld a, [wLinkState]
cp LINK_STATE_BATTLING
pop hl ; wEnemyMonMoves
jr nz, .playerTurnNotLinkBattle
-; .playerTurnLinkBattle
+; .playerTurnLinkBattle
push hl
ld hl, wEnemyMonPP
.enemyTurn
@@ -8278,7 +8285,7 @@ DisableEffect: ; 3fa8a (f:7a8a)
and $7
inc a ; 1-8 turns disabled
inc c ; move 1-4 will be disabled
- swap c
+ swap c
add c ; map disabled move to high nibble of W_ENEMYDISABLEDMOVE / W_PLAYERDISABLEDMOVE
ld [de], a
call PlayCurrentMoveAnimation2
@@ -8289,7 +8296,7 @@ DisableEffect: ; 3fa8a (f:7a8a)
inc hl ; wEnemyDisabledMoveNumber
.printDisableText
ld a, [wd11e] ; move number
- ld [hl], a
+ ld [hl], a
call GetMoveName
ld hl, MoveWasDisabledText
jp PrintText
@@ -8303,34 +8310,22 @@ MoveWasDisabledText: ; 3fb09 (f:7b09)
db "@"
PayDayEffect: ; 3fb0e (f:7b0e)
- ld hl, PayDayEffect_
- ld b, BANK(PayDayEffect_)
- jp Bankswitch
+ jpab PayDayEffect_
ConversionEffect: ; 3fb16 (f:7b16)
- ld hl, ConversionEffect_
- ld b, BANK(ConversionEffect_)
- jp Bankswitch
+ jpab ConversionEffect_
HazeEffect: ; 3fb1e (f:7b1e)
- ld hl, HazeEffect_
- ld b, BANK(HazeEffect_)
- jp Bankswitch
+ jpab HazeEffect_
HealEffect: ; 3fb26 (f:7b26)
- ld hl, HealEffect_
- ld b, BANK(HealEffect_)
- jp Bankswitch
+ jpab HealEffect_
TransformEffect: ; 3fb2e (f:7b2e)
- ld hl, TransformEffect_
- ld b, BANK(TransformEffect_)
- jp Bankswitch
+ jpab TransformEffect_
ReflectLightScreenEffect: ; 3fb36 (f:7b36)
- ld hl, ReflectLightScreenEffect_
- ld b, BANK(ReflectLightScreenEffect_)
- jp Bankswitch
+ jpab ReflectLightScreenEffect_
NothingHappenedText: ; 3fb3e (f:7b3e)
TX_FAR _NothingHappenedText
@@ -8380,12 +8375,12 @@ ParalyzedMayNotAttackText: ; 3fb74 (f:7b74)
CheckTargetSubstitute: ; 3fb79 (f:7b79)
push hl
ld hl, W_ENEMYBATTSTATUS2
- ld a, [H_WHOSETURN]
+ ld a, [H_WHOSETURN]
and a
jr z, .next1
ld hl, W_PLAYERBATTSTATUS2
.next1
- bit HasSubstituteUp, [hl]
+ bit HasSubstituteUp, [hl]
pop hl
ret
diff --git a/engine/battle/decrement_pp.asm b/engine/battle/decrement_pp.asm
index 7774070c..c6a9f2b5 100644
--- a/engine/battle/decrement_pp.asm
+++ b/engine/battle/decrement_pp.asm
@@ -9,15 +9,15 @@ DecrementPP: ; f42db (3d:42db)
; W_PLAYERBATTSTATUS2 status flags later
and a, (1 << StoringEnergy) | (1 << ThrashingAbout) | (1 << AttackingMultipleTimes)
ret nz ; if any of these statuses are true, don't decrement PP
- bit UsingRage, [hl]
+ bit UsingRage, [hl]
ret nz ; don't decrement PP either if Pokemon is using Rage
ld hl, wBattleMonPP ; PP of first move (in battle)
-
-; decrement PP in the battle struct
- call .DecrementPP
-
-; decrement PP in the party struct
- ld a, [W_PLAYERBATTSTATUS3]
+
+; decrement PP in the battle struct
+ call .DecrementPP
+
+; decrement PP in the party struct
+ ld a, [W_PLAYERBATTSTATUS3]
bit Transformed, a
ret nz ; Return if transformed. Pokemon Red stores the "current pokemon's" PP
; separately from the "Pokemon in your party's" PP. This is
@@ -31,7 +31,7 @@ DecrementPP: ; f42db (3d:42db)
ld hl, wPartyMon1PP ; PP of first move (in party)
ld a, [wPlayerMonNumber] ; which mon in party is active
- ld bc, wPartyMon2 - wPartyMon1
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes ; calculate address of the mon to modify
.DecrementPP ; f4301 (3d:4301)
ld a, [wPlayerMoveListIndex] ; which move (0, 1, 2, 3) did we use?
diff --git a/engine/battle/draw_hud_pokeball_gfx.asm b/engine/battle/draw_hud_pokeball_gfx.asm
index fce3701c..c1387b7b 100644
--- a/engine/battle/draw_hud_pokeball_gfx.asm
+++ b/engine/battle/draw_hud_pokeball_gfx.asm
@@ -1,46 +1,46 @@
DrawAllPokeballs: ; 3a849 (e:6849)
call LoadPartyPokeballGfx
call SetupOwnPartyPokeballs
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
dec a
ret z ; return if wild pokémon
jp SetupEnemyPartyPokeballs
-DrawEnemyPokeballs: ; 0x3a857
+DrawEnemyPokeballs: ; 3a857 (e:6857)
call LoadPartyPokeballGfx
jp SetupEnemyPartyPokeballs
LoadPartyPokeballGfx: ; 3a85d (e:685d)
- ld de, PokeballTileGraphics ; $697e
+ ld de, PokeballTileGraphics
ld hl, vSprites + $310
- ld bc, (BANK(PokeballTileGraphics) << 8) + $04
+ lb bc, BANK(PokeballTileGraphics), (PokeballTileGraphicsEnd - PokeballTileGraphics) / $10
jp CopyVideoData
SetupOwnPartyPokeballs: ; 3a869 (e:6869)
call PlacePlayerHUDTiles
ld hl, wPartyMon1
- ld de, wPartyCount ; wPartyCount
+ ld de, wPartyCount
call SetupPokeballs
ld a, $60
- ld hl, W_BASECOORDX ; wd081
+ ld hl, W_BASECOORDX
ld [hli], a
ld [hl], a
- ld a, $8
- ld [wTrainerEngageDistance], a
+ ld a, 8
+ ld [wHUDPokeballGfxOffsetX], a
ld hl, wOAMBuffer
jp WritePokeballOAMData
SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
call PlaceEnemyHUDTiles
ld hl, wEnemyMons
- ld de, wEnemyPartyCount ; wEnemyPartyCount
+ ld de, wEnemyPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; wd081
+ ld hl, W_BASECOORDX
ld a, $48
ld [hli], a
ld [hl], $20
- ld a, $f8
- ld [wTrainerEngageDistance], a
+ ld a, -8
+ ld [wHUDPokeballGfxOffsetX], a
ld hl, wOAMBuffer + PARTY_LENGTH * 4
jp WritePokeballOAMData
@@ -90,39 +90,39 @@ PickPokeball: ; 3a8c2 (e:68c2)
.done
ld a, b
ld [de], a
- ld bc, $0028 ; rest of mon struct
- add hl, bc
+ ld bc, wPartyMon2 - wPartyMon1Status
+ add hl, bc ; next mon struct
ret
WritePokeballOAMData: ; 3a8e1 (e:68e1)
ld de, wBuffer
ld c, PARTY_LENGTH
.loop
- ld a, [W_BASECOORDY] ; wd082
+ ld a, [W_BASECOORDY]
ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
+ ld a, [W_BASECOORDX]
ld [hli], a
ld a, [de]
ld [hli], a
xor a
ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
+ ld a, [W_BASECOORDX]
ld b, a
- ld a, [wTrainerEngageDistance]
+ ld a, [wHUDPokeballGfxOffsetX]
add b
- ld [W_BASECOORDX], a ; wd081
+ ld [W_BASECOORDX], a
inc de
dec c
jr nz, .loop
ret
PlacePlayerHUDTiles: ; 3a902 (e:6902)
- ld hl, PlayerBattleHUDGraphicsTiles ; $6916
- ld de, wTrainerFacingDirection
+ ld hl, PlayerBattleHUDGraphicsTiles
+ ld de, wHUDGraphicsTiles
ld bc, $3
call CopyData
- hlCoord 18, 10
- ld de, rIE ; $ffff
+ coord hl, 18, 10
+ ld de, -1
jr PlaceHUDTiles
PlayerBattleHUDGraphicsTiles: ; 3a916 (e:6916)
@@ -132,11 +132,11 @@ PlayerBattleHUDGraphicsTiles: ; 3a916 (e:6916)
db $6F ; lower-left triangle tile of the HUD
PlaceEnemyHUDTiles: ; 3a919 (e:6919)
- ld hl, EnemyBattleHUDGraphicsTiles ; $692d
- ld de, wTrainerFacingDirection
+ ld hl, EnemyBattleHUDGraphicsTiles
+ ld de, wHUDGraphicsTiles
ld bc, $3
call CopyData
- hlCoord 1, 2
+ coord hl, 1, 2
ld de, $1
jr PlaceHUDTiles
@@ -148,38 +148,38 @@ EnemyBattleHUDGraphicsTiles: ; 3a92d (e:692d)
PlaceHUDTiles: ; 3a930 (e:6930)
ld [hl], $73
- ld bc, $14
+ ld bc, SCREEN_WIDTH
add hl, bc
- ld a, [wTrainerScreenY]
+ ld a, [wHUDGraphicsTiles + 1] ; leftmost tile
ld [hl], a
- ld a, $8
-.asm_3a93c
+ ld a, 8
+.loop
add hl, de
ld [hl], $76
dec a
- jr nz, .asm_3a93c
+ jr nz, .loop
add hl, de
- ld a, [wTrainerScreenX]
+ ld a, [wHUDGraphicsTiles + 2] ; rightmost tile
ld [hl], a
ret
SetupPlayerAndEnemyPokeballs: ; 3a948 (e:6948)
call LoadPartyPokeballGfx
- ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1)
- ld de, wPartyCount ; wPartyCount
+ ld hl, wPartyMons
+ ld de, wPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; wd081
+ ld hl, W_BASECOORDX
ld a, $50
ld [hli], a
ld [hl], $40
- ld a, $8
- ld [wTrainerEngageDistance], a
+ ld a, 8
+ ld [wHUDPokeballGfxOffsetX], a
ld hl, wOAMBuffer
call WritePokeballOAMData
- ld hl, wEnemyMons ; wEnemyMon1Species
- ld de, wEnemyPartyCount ; wEnemyPartyCount
+ ld hl, wEnemyMons
+ ld de, wEnemyPartyCount
call SetupPokeballs
- ld hl, W_BASECOORDX ; wd081
+ ld hl, W_BASECOORDX
ld a, $50
ld [hli], a
ld [hl], $68
@@ -189,3 +189,4 @@ SetupPlayerAndEnemyPokeballs: ; 3a948 (e:6948)
; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (faited) and pokeball slot (no mon)
PokeballTileGraphics:: ; 3a97e (e:697e)
INCBIN "gfx/pokeball.2bpp"
+PokeballTileGraphicsEnd:
diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm
index 5d78af5b..f1de313c 100755
--- a/engine/battle/end_of_battle.asm
+++ b/engine/battle/end_of_battle.asm
@@ -19,9 +19,9 @@ EndOfBattle: ; 137aa (4:77aa)
jr z, .placeWinOrLoseString
ld de, DrawText
.placeWinOrLoseString
- hlCoord 6, 8
+ coord hl, 6, 8
call PlaceString
- ld c, $c8
+ ld c, 200
call DelayFrames
jr .evolution
.notLinkBattle
@@ -41,20 +41,20 @@ EndOfBattle: ; 137aa (4:77aa)
call PrintText
.evolution
xor a
- ld [wccd4], a
+ ld [wForceEvolution], a
predef EvolutionAfterBattle
.resetVariables
xor a
ld [wLowHealthAlarm], a ;disable low health alarm
- ld [wc02a], a
+ ld [wChannelSoundIDs + CH4], a
ld [W_ISINBATTLE], a
ld [W_BATTLETYPE], a
ld [W_MOVEMISSED], a
ld [W_CUROPPONENT], a
- ld [wd11f], a
+ ld [wForcePlayerToChooseMon], a
ld [wNumRunAttempts], a
ld [wEscapedFromBattle], a
- ld hl, wcc2b
+ ld hl, wPartyAndBillsPCSavedMenuItem
ld [hli], a
ld [hli], a
ld [hli], a
diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm
index 9bd67654..ab3e3c19 100644
--- a/engine/battle/experience.asm
+++ b/engine/battle/experience.asm
@@ -15,7 +15,7 @@ GainExperience: ; 5524f (15:524f)
ld hl, wPartyGainExpFlags
ld a, [wWhichPokemon]
ld c, a
- ld b, $2
+ ld b, FLAG_TEST
predef FlagActionPredef
ld a, c
and a ; is mon's gain exp flag set?
@@ -26,7 +26,7 @@ GainExperience: ; 5524f (15:524f)
ld d, h
ld e, l
ld hl, wEnemyMonBaseStats
- ld c, $5
+ ld c, NUM_STATS
.gainStatExpLoop
ld a, [hli]
ld b, a ; enemy mon base stat
@@ -66,7 +66,7 @@ GainExperience: ; 5524f (15:524f)
ld [H_DIVISOR], a
ld b, 4
call Divide
- ld hl, -((wPartyMon1HPExp + 1) - wPartyMon1OTID + 4 * 2)
+ ld hl, wPartyMon1OTID - (wPartyMon1DVs - 1)
add hl, de
ld b, [hl] ; party mon OTID
inc hl
@@ -76,11 +76,11 @@ GainExperience: ; 5524f (15:524f)
ld b, [hl]
ld a, [wPlayerID + 1]
cp b
- ld a, $0
+ ld a, 0
jr z, .next
.tradedMon
call BoostExp ; traded mon exp boost
- ld a, $1
+ ld a, 1
.next
ld [wGainBoostedExp], a
ld a, [W_ISINBATTLE]
@@ -92,12 +92,12 @@ GainExperience: ; 5524f (15:524f)
; add the gained exp to the party mon's exp
ld b, [hl]
ld a, [H_QUOTIENT + 3]
- ld [wcf4c], a
+ ld [wExpAmountGained + 1], a
add b
ld [hld], a
ld b, [hl]
ld a, [H_QUOTIENT + 2]
- ld [wcf4b], a
+ ld [wExpAmountGained], a
adc b
ld [hl], a
jr nc, .noCarry
@@ -148,8 +148,8 @@ GainExperience: ; 5524f (15:524f)
call GetPartyMonName
ld hl, GainedText
call PrintText
- xor a ; party mon data
- ld [wcc49], a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
call LoadMonData
pop hl
ld bc, wPartyMon1Level - wPartyMon1Exp
@@ -220,7 +220,7 @@ GainExperience: ; 5524f (15:524f)
add hl, bc
push hl
ld de, wBattleMonLevel
- ld bc, $b ; size of stats
+ ld bc, 1 + NUM_STATS * 2 ; size of stats
call CopyData
pop hl
ld a, [W_PLAYERBATTSTATUS3]
@@ -228,11 +228,11 @@ GainExperience: ; 5524f (15:524f)
jr nz, .recalcStatChanges
; the mon is not transformed, so update the unmodified stats
ld de, wPlayerMonUnmodifiedLevel
- ld bc, $b
+ ld bc, 1 + NUM_STATS * 2
call CopyData
.recalcStatChanges
- xor a
- ld [wd11e], a
+ xor a ; battle mon
+ ld [wCalculateWhoseStats], a
callab CalculateModifiedStats
callab ApplyBurnAndParalysisPenaltiesToPlayer
callab ApplyBadgeStatBoosts
@@ -242,22 +242,22 @@ GainExperience: ; 5524f (15:524f)
.printGrewLevelText
ld hl, GrewLevelText
call PrintText
- xor a ; party mon data
- ld [wcc49], a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
call LoadMonData
ld d, $1
callab PrintStatsBox
call WaitForTextScrollButtonPress
call LoadScreenTilesFromBuffer1
- xor a
- ld [wcc49], a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
ld a, [wd0b5]
ld [wd11e], a
predef LearnMoveFromLevelUp
- ld hl, wccd3
+ ld hl, wCanEvolveFlags
ld a, [wWhichPokemon]
ld c, a
- ld b, $1
+ ld b, FLAG_SET
predef FlagActionPredef
pop hl
pop af
@@ -281,7 +281,7 @@ GainExperience: ; 5524f (15:524f)
ld [hl], a ; clear gain exp flags
ld a, [wPlayerMonNumber]
ld c, a
- ld b, $1
+ ld b, FLAG_SET
push bc
predef FlagActionPredef ; set the gain exp flag for the mon that is currently out
ld hl, wPartyFoughtCurrentEnemyFlags
@@ -308,7 +308,7 @@ DivideExpDataByNumMonsGainingExp: ; 5546c (15:546c)
ret c ; return if only one mon is gaining exp
ld [wd11e], a ; store number of mons gaining exp
ld hl, wEnemyMonBaseStats
- ld c, $7
+ ld c, wEnemyMonBaseExp + 1 - wEnemyMonBaseStats
.divideLoop
xor a
ld [H_DIVIDEND], a
@@ -341,7 +341,7 @@ BoostExp: ; 5549f (15:549f)
GainedText: ; 554b2 (15:54b2)
TX_FAR _GainedText
- db $08 ; asm
+ TX_ASM
ld a, [wBoostExpByExpAll]
ld hl, WithExpAllText
and a
@@ -355,7 +355,7 @@ GainedText: ; 554b2 (15:54b2)
WithExpAllText: ; 554cb (15:54cb)
TX_FAR _WithExpAllText
- db $08 ; asm
+ TX_ASM
ld hl, ExpPointsText
ret
diff --git a/engine/battle/ghost_marowak_anim.asm b/engine/battle/ghost_marowak_anim.asm
index 5c9e6f1a..719fcf0a 100644
--- a/engine/battle/ghost_marowak_anim.asm
+++ b/engine/battle/ghost_marowak_anim.asm
@@ -5,18 +5,18 @@ MarowakAnim: ; 7092b (1c:492b)
call Func_3061
call CopyMonPicFromBGToSpriteVRAM ; cover the BG ghost pic with a sprite ghost pic that looks the same
; now that the ghost pic is being displayed using sprites, clear the ghost pic from the BG tilemap
- hlCoord 12, 0
- ld bc, $707
+ coord hl, 12, 0
+ lb bc, 7, 7
call ClearScreenArea
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon
; replace ghost pic with Marowak in BG
ld a, MAROWAK
- ld [wHPBarMaxHP], a
+ ld [wChangeMonPicEnemyTurnSpecies], a
ld a, $1
ld [H_WHOSETURN], a
- callab Func_798d4
+ callab ChangeMonPic
; alternate between black and light grey 8 times.
; this makes the ghost's body appear to flash
ld d, $80
@@ -62,7 +62,7 @@ CopyMonPicFromBGToSpriteVRAM: ; 70994 (1c:4994)
ld a, $70
ld [W_BASECOORDX], a
ld hl, wOAMBuffer
- ld bc, $606
+ lb bc, 6, 6
ld d, $8
.oamLoop
push bc
diff --git a/engine/battle/init_battle_variables.asm b/engine/battle/init_battle_variables.asm
index 94d964e8..78f4ad22 100644
--- a/engine/battle/init_battle_variables.asm
+++ b/engine/battle/init_battle_variables.asm
@@ -1,10 +1,10 @@
InitBattleVariables: ; f6236 (3d:6236)
ld a, [hTilesetType]
- ld [wd0d4], a
+ ld [wSavedTilesetType], a
xor a
- ld [wcd6a], a
+ ld [wActionResultOrTookBattleTurn], a
ld [wBattleResult], a
- ld hl, wcc2b
+ ld hl, wPartyAndBillsPCSavedMenuItem
ld [hli], a
ld [hli], a
ld [hli], a
@@ -13,21 +13,21 @@ InitBattleVariables: ; f6236 (3d:6236)
ld [wCriticalHitOrOHKO], a
ld [wBattleMonSpecies], a
ld [wPartyGainExpFlags], a
- ld [wPlayerMonNumber], a
+ ld [wPlayerMonNumber], a
ld [wEscapedFromBattle], a
ld [wMapPalOffset], a
- ld hl, wcf1d
- ld [hli], a
- ld [hl], a
- ld hl, wccd3
+ ld hl, wPlayerHPBarColor
+ ld [hli], a ; wPlayerHPBarColor
+ ld [hl], a ; wEnemyHPBarColor
+ ld hl, wCanEvolveFlags
ld b, $3c
.loop
ld [hli], a
dec b
jr nz, .loop
- inc a
- ld [wccd9], a
- ld a, [W_CURMAP]
+ inc a ; POUND
+ ld [wTestBattlePlayerSelectedMove], a
+ ld a, [W_CURMAP]
cp SAFARI_ZONE_EAST
jr c, .notSafariBattle
cp SAFARI_ZONE_REST_HOUSE_1
@@ -35,6 +35,4 @@ InitBattleVariables: ; f6236 (3d:6236)
ld a, $2 ; safari battle
ld [W_BATTLETYPE], a
.notSafariBattle
- ld hl, PlayBattleMusic
- ld b, BANK(PlayBattleMusic)
- jp Bankswitch
+ jpab PlayBattleMusic
diff --git a/engine/battle/link_battle_versus_text.asm b/engine/battle/link_battle_versus_text.asm
index c29e1c85..9849cc9a 100644
--- a/engine/battle/link_battle_versus_text.asm
+++ b/engine/battle/link_battle_versus_text.asm
@@ -1,17 +1,17 @@
; display "[player] VS [enemy]" text box with pokeballs representing their parties next to the names
DisplayLinkBattleVersusTextBox: ; f41cf (3d:41cf)
call LoadTextBoxTilePatterns
- hlCoord 3, 4
+ coord hl, 3, 4
ld bc, $70c
call TextBoxBorder
- hlCoord 4, 5
+ coord hl, 4, 5
ld de, wPlayerName
call PlaceString
- hlCoord 4, 10
+ coord hl, 4, 10
ld de, wLinkEnemyTrainerName
call PlaceString
; place bold "VS" tiles between the names
- hlCoord 9, 8
+ coord hl, 9, 8
ld a, $69
ld [hli], a
ld [hl], $6a
diff --git a/engine/battle/moveEffects/conversion_effect.asm b/engine/battle/moveEffects/conversion_effect.asm
index 2f05afb3..e4c5b4bd 100644
--- a/engine/battle/moveEffects/conversion_effect.asm
+++ b/engine/battle/moveEffects/conversion_effect.asm
@@ -13,7 +13,7 @@ ConversionEffect_: ; 139a3 (4:79a3)
.conversionEffect
bit Invulnerable, a ; is mon immune to typical attacks (dig/fly)
jr nz, PrintButItFailedText
-; copy target's types to user
+; copy target's types to user
ld a, [hli]
ld [de], a
inc de
diff --git a/engine/battle/moveEffects/drain_hp_effect.asm b/engine/battle/moveEffects/drain_hp_effect.asm
index 517d53d1..1096794f 100644
--- a/engine/battle/moveEffects/drain_hp_effect.asm
+++ b/engine/battle/moveEffects/drain_hp_effect.asm
@@ -1,5 +1,5 @@
DrainHPEffect_: ; 783f (1:783f)
- ld hl, W_DAMAGE
+ ld hl, W_DAMAGE
ld a, [hl]
srl a ; divide damage by 2
ld [hli], a
@@ -17,8 +17,8 @@ DrainHPEffect_: ; 783f (1:783f)
ld a, [H_WHOSETURN]
and a
jp z, .addDamageToAttackerHP
- ld hl, wEnemyMonHP
- ld de, wEnemyMonMaxHP
+ ld hl, wEnemyMonHP
+ ld de, wEnemyMonMaxHP
.addDamageToAttackerHP
ld bc, wHPBarOldHP+1
; copy current HP to wHPBarOldHP
@@ -41,7 +41,7 @@ DrainHPEffect_: ; 783f (1:783f)
add b
ld [hld], a
ld [wHPBarNewHP], a
- ld a, [W_DAMAGE]
+ ld a, [W_DAMAGE]
ld b, [hl]
adc b
ld [hli], a
@@ -71,10 +71,10 @@ DrainHPEffect_: ; 783f (1:783f)
.next
ld a, [H_WHOSETURN]
and a
- hlCoord 10, 9
+ coord hl, 10, 9
ld a, $1
jr z, .next2
- hlCoord 2, 2
+ coord hl, 2, 2
xor a
.next2
ld [wHPBarType], a
@@ -87,7 +87,7 @@ DrainHPEffect_: ; 783f (1:783f)
and a
ld a, [W_PLAYERMOVEEFFECT]
jr z, .next3
- ld a, [W_ENEMYMOVEEFFECT]
+ ld a, [W_ENEMYMOVEEFFECT]
.next3
cp DREAM_EATER_EFFECT
jr nz, .printText
diff --git a/engine/battle/moveEffects/focus_energy_effect.asm b/engine/battle/moveEffects/focus_energy_effect.asm
index 0089c8b1..e88d065a 100644
--- a/engine/battle/moveEffects/focus_energy_effect.asm
+++ b/engine/battle/moveEffects/focus_energy_effect.asm
@@ -12,11 +12,9 @@ FocusEnergyEffect_: ; f628b (3d:628b)
ld hl, GettingPumpedText
jp PrintText
.alreadyUsing
- ld c, $32
+ ld c, 50
call DelayFrames
- ld hl, PrintButItFailedText_
- ld b, BANK(PrintButItFailedText_)
- jp Bankswitch
+ jpab PrintButItFailedText_
GettingPumpedText: ; f62b5 (3d:62b5)
db $0a
diff --git a/engine/battle/moveEffects/haze_effect.asm b/engine/battle/moveEffects/haze_effect.asm
index 14b5f5dd..5c5443c0 100644
--- a/engine/battle/moveEffects/haze_effect.asm
+++ b/engine/battle/moveEffects/haze_effect.asm
@@ -1,11 +1,11 @@
HazeEffect_: ; 139da (4:79da)
ld a, $7
-; store 7 on every stat mod
+; store 7 on every stat mod
ld hl, wPlayerMonAttackMod
call ResetStatMods
ld hl, wEnemyMonAttackMod
call ResetStatMods
-; copy unmodified stats to battle stats
+; copy unmodified stats to battle stats
ld hl, wPlayerMonUnmodifiedAttack
ld de, wBattleMonAttack
call ResetStats
@@ -25,7 +25,7 @@ HazeEffect_: ; 139da (4:79da)
ld [hl], $0
and SLP | (1 << FRZ)
jr z, .cureVolatileStatuses
-; prevent the Pokemon from executing a move if it was asleep or frozen
+; prevent the Pokemon from executing a move if it was asleep or frozen
ld a, $ff
ld [de], a
@@ -51,7 +51,7 @@ CureVolatileStatuses: ; 13a37 (4:7a37)
inc hl ; BATTSTATUS2
ld a, [hl]
; clear UsingXAccuracy, ProtectedByMist, GettingPumped, and Seeded statuses
- and $ff ^((1 << UsingXAccuracy) | (1 << ProtectedByMist) | (1 << GettingPumped) | (1 << Seeded))
+ and $ff ^((1 << UsingXAccuracy) | (1 << ProtectedByMist) | (1 << GettingPumped) | (1 << Seeded))
ld [hli], a ; BATTSTATUS3
ld a, [hl]
and %11110000 | (1 << Transformed) ; clear Bad Poison, Reflect and Light Screen statuses
@@ -61,7 +61,7 @@ CureVolatileStatuses: ; 13a37 (4:7a37)
ResetStatMods: ; 13a43 (4:7a43)
ld b, $8
.loop
- ld [hli], a
+ ld [hli], a
dec b
jr nz, .loop
ret
diff --git a/engine/battle/moveEffects/heal_effect.asm b/engine/battle/moveEffects/heal_effect.asm
index d6d4e183..dbce6ebb 100644
--- a/engine/battle/moveEffects/heal_effect.asm
+++ b/engine/battle/moveEffects/heal_effect.asm
@@ -76,7 +76,7 @@ HealEffect_: ; f62ba (3d:62ba)
ld a, [de]
sbc [hl]
jr c, .playAnim
-; copy max HP to current HP if an overflow ocurred
+; copy max HP to current HP if an overflow ocurred
ld a, [hli]
ld [de], a
ld [wHPBarNewHP+1], a
@@ -89,10 +89,10 @@ HealEffect_: ; f62ba (3d:62ba)
call Bankswitch3DtoF
ld a, [H_WHOSETURN]
and a
- hlCoord 10, 9
+ coord hl, 10, 9
ld a, $1
jr z, .updateHPBar
- hlCoord 2, 2
+ coord hl, 2, 2
xor a
.updateHPBar
ld [wHPBarType], a
diff --git a/engine/battle/moveEffects/leech_seed_effect.asm b/engine/battle/moveEffects/leech_seed_effect.asm
index e29fd7c2..1b0afe4b 100644
--- a/engine/battle/moveEffects/leech_seed_effect.asm
+++ b/engine/battle/moveEffects/leech_seed_effect.asm
@@ -1,20 +1,20 @@
LeechSeedEffect_: ; 2bea9 (a:7ea9)
callab MoveHitTest
- ld a, [W_MOVEMISSED]
+ ld a, [W_MOVEMISSED]
and a
jr nz, .moveMissed
- ld hl, W_ENEMYBATTSTATUS2
- ld de, wEnemyMonType1
- ld a, [H_WHOSETURN]
+ ld hl, W_ENEMYBATTSTATUS2
+ ld de, wEnemyMonType1
+ ld a, [H_WHOSETURN]
and a
jr z, .leechSeedEffect
- ld hl, W_PLAYERBATTSTATUS2
- ld de, wBattleMonType1
+ ld hl, W_PLAYERBATTSTATUS2
+ ld de, wBattleMonType1
.leechSeedEffect
; miss if the target is grass-type or already seeded
ld a, [de]
cp GRASS
- jr z, .moveMissed
+ jr z, .moveMissed
inc de
ld a, [de]
cp GRASS
@@ -23,12 +23,12 @@ LeechSeedEffect_: ; 2bea9 (a:7ea9)
jr nz, .moveMissed
set Seeded, [hl]
callab PlayCurrentMoveAnimation
- ld hl, WasSeededText ; $7ef2
+ ld hl, WasSeededText
jp PrintText
.moveMissed
- ld c, $32
+ ld c, 50
call DelayFrames
- ld hl, EvadedAttackText ; $7ef7
+ ld hl, EvadedAttackText
jp PrintText
WasSeededText: ; 2bef2 (a:7ef2)
diff --git a/engine/battle/moveEffects/mist_effect.asm b/engine/battle/moveEffects/mist_effect.asm
index ed06d16c..5d7669f8 100644
--- a/engine/battle/moveEffects/mist_effect.asm
+++ b/engine/battle/moveEffects/mist_effect.asm
@@ -12,9 +12,7 @@ MistEffect_: ; f64ac (3d:64ac)
ld hl, ShroudedInMistText
jp PrintText
.mistAlreadyInUse
- ld hl, PrintButItFailedText_
- ld b, BANK(PrintButItFailedText_)
- jp Bankswitch
+ jpab PrintButItFailedText_
ShroudedInMistText: ; f64d3 (3d:64d3)
TX_FAR _ShroudedInMistText
diff --git a/engine/battle/moveEffects/one_hit_ko_effect.asm b/engine/battle/moveEffects/one_hit_ko_effect.asm
index f859f9c4..c1dde6ff 100644
--- a/engine/battle/moveEffects/one_hit_ko_effect.asm
+++ b/engine/battle/moveEffects/one_hit_ko_effect.asm
@@ -7,7 +7,7 @@ OneHitKOEffect_: ; f64db (3d:64db)
ld [wCriticalHitOrOHKO], a
ld hl, wBattleMonSpeed + 1
ld de, wEnemyMonSpeed + 1
- ld a, [H_WHOSETURN]
+ ld a, [H_WHOSETURN]
and a
jr z, .compareSpeed
ld hl, wEnemyMonSpeed + 1
@@ -24,7 +24,7 @@ OneHitKOEffect_: ; f64db (3d:64db)
ld a, [hl]
sbc b
jr c, .userIsSlower
- ld hl, W_DAMAGE
+ ld hl, W_DAMAGE
ld a, $ff
ld [hli], a
ld [hl], a
@@ -34,5 +34,5 @@ OneHitKOEffect_: ; f64db (3d:64db)
.userIsSlower
; keep damage at 0 and set move missed flag if target's current speed is higher instead
ld a, $1
- ld [W_MOVEMISSED], a
+ ld [W_MOVEMISSED], a
ret
diff --git a/engine/battle/moveEffects/paralyze_effect.asm b/engine/battle/moveEffects/paralyze_effect.asm
index 74a7319d..3e0cf062 100644
--- a/engine/battle/moveEffects/paralyze_effect.asm
+++ b/engine/battle/moveEffects/paralyze_effect.asm
@@ -4,7 +4,7 @@ ParalyzeEffect_: ; f6562 (3d:6562)
ld a, [H_WHOSETURN]
and a
jp z, .next
- ld hl, wBattleMonStatus
+ ld hl, wBattleMonStatus
ld de, W_ENEMYMOVETYPE
.next
ld a, [hl]
@@ -28,7 +28,7 @@ ParalyzeEffect_: ; f6562 (3d:6562)
push hl
callab MoveHitTest
pop hl
- ld a, [W_MOVEMISSED]
+ ld a, [W_MOVEMISSED]
and a
jr nz, .didntAffect
set PAR, [hl]
@@ -36,18 +36,12 @@ ParalyzeEffect_: ; f6562 (3d:6562)
ld c, 30
call DelayFrames
callab PlayCurrentMoveAnimation
- ld hl, PrintMayNotAttackText
- ld b, BANK(PrintMayNotAttackText)
- jp Bankswitch
+ jpab PrintMayNotAttackText
.didntAffect
ld c, 50
call DelayFrames
- ld hl, PrintDidntAffectText
- ld b, BANK(PrintDidntAffectText)
- jp Bankswitch
+ jpab PrintDidntAffectText
.doesntAffect
ld c, 50
call DelayFrames
- ld hl, PrintDoesntAffectText
- ld b, BANK(PrintDoesntAffectText)
- jp Bankswitch
+ jpab PrintDoesntAffectText
diff --git a/engine/battle/moveEffects/pay_day_effect.asm b/engine/battle/moveEffects/pay_day_effect.asm
index 1fab9771..2fa6b53f 100644
--- a/engine/battle/moveEffects/pay_day_effect.asm
+++ b/engine/battle/moveEffects/pay_day_effect.asm
@@ -9,19 +9,19 @@ PayDayEffect_ ; f6511 (3d:6511)
ld a, [wEnemyMonLevel]
.payDayEffect
; level * 2
- add a
+ add a
ld [H_DIVIDEND + 3], a
xor a
ld [H_DIVIDEND], a
ld [H_DIVIDEND + 1], a
ld [H_DIVIDEND + 2], a
-; convert to BCD
+; convert to BCD
ld a, 100
ld [H_DIVISOR], a
ld b, $4
call Divide
ld a, [H_QUOTIENT + 3]
- ld [hli], a
+ ld [hli], a
ld a, [H_REMAINDER]
ld [H_DIVIDEND + 3], a
ld a, 10
diff --git a/engine/battle/moveEffects/recoil_effect.asm b/engine/battle/moveEffects/recoil_effect.asm
index fe516c03..51232af6 100644
--- a/engine/battle/moveEffects/recoil_effect.asm
+++ b/engine/battle/moveEffects/recoil_effect.asm
@@ -46,19 +46,19 @@ RecoilEffect_: ; 1392c (4:792c)
ld [wHPBarNewHP+1], a
jr nc, .getHPBarCoords
; if recoil damage is higher than the Pokemon's HP, set its HP to 0
- xor a
+ xor a
ld [hli], a
ld [hl], a
ld hl, wHPBarNewHP
ld [hli], a
ld [hl], a
.getHPBarCoords
- hlCoord 10, 9
+ coord hl, 10, 9
ld a, [H_WHOSETURN]
and a
ld a, $1
jr z, .updateHPBar
- hlCoord 2, 2
+ coord hl, 2, 2
xor a
.updateHPBar
ld [wHPBarType], a
diff --git a/engine/battle/moveEffects/reflect_light_screen_effect.asm b/engine/battle/moveEffects/reflect_light_screen_effect.asm
index 83a97486..ee053670 100644
--- a/engine/battle/moveEffects/reflect_light_screen_effect.asm
+++ b/engine/battle/moveEffects/reflect_light_screen_effect.asm
@@ -27,7 +27,7 @@ ReflectLightScreenEffect_: ; f645d (3d:645d)
pop hl
jp PrintText
.moveFailed
- ld c, $32
+ ld c, 50
call DelayFrames
ld hl, PrintButItFailedText_
jp Bankswitch3DtoF
diff --git a/engine/battle/moveEffects/substitute_effect.asm b/engine/battle/moveEffects/substitute_effect.asm
index 8412e281..c72fffbe 100644
--- a/engine/battle/moveEffects/substitute_effect.asm
+++ b/engine/battle/moveEffects/substitute_effect.asm
@@ -11,15 +11,15 @@ SubstituteEffect_: ; 17dad (5:7dad)
ld de, wEnemySubstituteHP
ld bc, W_ENEMYBATTSTATUS2
.notEnemy
- ld a, [bc]
+ ld a, [bc]
bit HasSubstituteUp, a ; user already has substitute?
- jr nz, .alreadyHasSubstitute
+ jr nz, .alreadyHasSubstitute
; quarter health to remove from user
-; assumes max HP is 1023 or lower
+; assumes max HP is 1023 or lower
push bc
ld a, [hli]
ld b, [hl]
- srl a
+ srl a
rr b
srl a
rr b ; max hp / 4
@@ -27,37 +27,35 @@ SubstituteEffect_: ; 17dad (5:7dad)
ld de, wBattleMonHP - wBattleMonMaxHP
add hl, de ; point hl to current HP low byte
pop de
- ld a, b
+ ld a, b
ld [de], a ; save copy of HP to subtract in ccd7/ccd8 [how much HP substitute has]
ld a, [hld]
-; subtract [max hp / 4] to current HP
- sub b
+; subtract [max hp / 4] to current HP
+ sub b
ld d, a
ld a, [hl]
- sbc 0
+ sbc 0
pop bc
jr c, .notEnoughHP ; underflow means user would be left with negative health
; bug: since it only brances on carry, it will possibly leave user with 0 HP
.userHasZeroOrMoreHP
ldi [hl], a ; save resulting HP after substraction into current HP
- ld [hl], d
+ ld [hl], d
ld h, b
ld l, c
- set HasSubstituteUp, [hl]
- ld a, [W_OPTIONS]
+ set HasSubstituteUp, [hl]
+ ld a, [W_OPTIONS]
bit 7, a ; battle animation is enabled?
- ld hl, PlayCurrentMoveAnimation
+ ld hl, PlayCurrentMoveAnimation
ld b, BANK(PlayCurrentMoveAnimation)
jr z, .animationEnabled
- ld hl, AnimationSubstitute
+ ld hl, AnimationSubstitute
ld b, BANK(AnimationSubstitute)
.animationEnabled
call Bankswitch ; jump to routine depending on animation setting
ld hl, SubstituteText
call PrintText
- ld hl, DrawHUDsAndHPBars
- ld b, BANK(DrawHUDsAndHPBars)
- jp Bankswitch
+ jpab DrawHUDsAndHPBars
.alreadyHasSubstitute
ld hl, HasSubstituteText
jr .printText
diff --git a/engine/battle/moveEffects/transform_effect.asm b/engine/battle/moveEffects/transform_effect.asm
index 74b70431..fef6f7aa 100644
--- a/engine/battle/moveEffects/transform_effect.asm
+++ b/engine/battle/moveEffects/transform_effect.asm
@@ -24,10 +24,10 @@ TransformEffect_: ; f637f (3d:637f)
ld hl, W_ENEMYBATTSTATUS2
.transformEffect
; animation(s) played are different if target has Substitute up
- bit HasSubstituteUp, [hl]
+ bit HasSubstituteUp, [hl]
push af
- ld hl, Func_79816
- ld b, BANK(Func_79816)
+ ld hl, HideSubstituteShowMonAnim
+ ld b, BANK(HideSubstituteShowMonAnim)
call nz, Bankswitch
ld a, [W_OPTIONS]
add a
@@ -38,8 +38,8 @@ TransformEffect_: ; f637f (3d:637f)
ld b, BANK(AnimationTransformMon)
.gotAnimToPlay
call Bankswitch
- ld hl, Func_798b2
- ld b, BANK(Func_798b2)
+ ld hl, ReshowSubstituteAnim
+ ld b, BANK(ReshowSubstituteAnim)
pop af
call nz, Bankswitch
pop bc
@@ -49,13 +49,13 @@ TransformEffect_: ; f637f (3d:637f)
pop de
pop hl
push hl
-; transform user into opposing Pokemon
+; transform user into opposing Pokemon
; species
- ld a, [hl]
+ ld a, [hl]
ld [de], a
-; type 1, type 2, catch rate, and moves
+; type 1, type 2, catch rate, and moves
ld bc, $5
- add hl, bc
+ add hl, bc
inc de
inc de
inc de
@@ -67,12 +67,12 @@ TransformEffect_: ; f637f (3d:637f)
ld a, [H_WHOSETURN]
and a
jr z, .next
-; save enemy mon DVs in wcceb/wccec (enemy turn only)
+; save enemy mon DVs at wTransformedEnemyMonOriginalDVs
ld a, [de]
- ld [wcceb], a
+ ld [wTransformedEnemyMonOriginalDVs], a
inc de
ld a, [de]
- ld [wccec], a
+ ld [wTransformedEnemyMonOriginalDVs + 1], a
dec de
.next
; DVs
@@ -82,7 +82,7 @@ TransformEffect_: ; f637f (3d:637f)
ld a, [hli]
ld [de], a
inc de
-; Attack, Defense, Speed, and Special stats
+; Attack, Defense, Speed, and Special stats
inc hl
inc hl
inc hl
@@ -91,7 +91,7 @@ TransformEffect_: ; f637f (3d:637f)
inc de
ld bc, $8
call CopyData
- ld bc, wBattleMonMoves - wBattleMonPP
+ ld bc, wBattleMonMoves - wBattleMonPP
add hl, bc ; ld hl, wBattleMonMoves
ld b, NUM_MOVES
.copyPPLoop
diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm
index d8da714e..37a45476 100755
--- a/engine/battle/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
@@ -55,8 +55,8 @@ ReadTrainer: ; 39c53 (e:5c53)
and a ; have we reached the end of the trainer data?
jr z,.FinishUp
ld [wcf91],a ; write species somewhere (XXX why?)
- ld a,1
- ld [wcc49],a
+ ld a,ENEMY_PARTY_DATA
+ ld [wMonDataLocation],a
push hl
call AddPartyMon
pop hl
@@ -72,8 +72,8 @@ ReadTrainer: ; 39c53 (e:5c53)
ld [W_CURENEMYLVL],a
ld a,[hli]
ld [wcf91],a
- ld a,1
- ld [wcc49],a
+ ld a,ENEMY_PARTY_DATA
+ ld [wMonDataLocation],a
push hl
call AddPartyMon
pop hl
@@ -101,7 +101,7 @@ ReadTrainer: ; 39c53 (e:5c53)
; get trainer class number
ld a,[W_CUROPPONENT]
- sub $C8
+ sub 200
ld b,a
ld hl,TeamMoves
@@ -143,7 +143,7 @@ ReadTrainer: ; 39c53 (e:5c53)
ld [wEnemyMon6Moves + 2],a
.FinishUp
; clear wAmountMoneyWon addresses
- xor a
+ xor a
ld de,wAmountMoneyWon
ld [de],a
inc de
@@ -154,7 +154,7 @@ ReadTrainer: ; 39c53 (e:5c53)
ld b,a
.LastLoop
; update wAmountMoneyWon addresses (money to win) based on enemy's level
- ld hl,wd047
+ ld hl,wTrainerBaseMoney + 1
ld c,2 ; wAmountMoneyWon is a 3-byte number
push bc
predef AddBCDPredef
diff --git a/engine/battle/scale_sprites.asm b/engine/battle/scale_sprites.asm
index dae4ad42..ed227984 100644
--- a/engine/battle/scale_sprites.asm
+++ b/engine/battle/scale_sprites.asm
@@ -41,16 +41,16 @@ ScaleFirstThreeSpriteColumnsByTwo: ; 2fe55 (b:7e55)
ScaleLastSpriteColumnByTwo: ; 2fe7d (b:7e7d)
ld a, 4*8 - 4 ; $1c, 4 tiles minus 4 unused rows
- ld [H_SPRITEINTERLACECOUNTER], a ; $ff8b
- ld bc, -1 ; $ffff
+ ld [H_SPRITEINTERLACECOUNTER], a
+ ld bc, -1
.columnInnerLoop
ld a, [de]
dec de
swap a ; only high nybble contains information
call ScalePixelsByTwo
- ld a, [H_SPRITEINTERLACECOUNTER] ; $ff8b
+ ld a, [H_SPRITEINTERLACECOUNTER]
dec a
- ld [H_SPRITEINTERLACECOUNTER], a ; $ff8b
+ ld [H_SPRITEINTERLACECOUNTER], a
jr nz, .columnInnerLoop
dec de ; skip last 4 rows of new column
dec de
diff --git a/engine/battle/scroll_draw_trainer_pic.asm b/engine/battle/scroll_draw_trainer_pic.asm
index c6b69362..e5e66b38 100644
--- a/engine/battle/scroll_draw_trainer_pic.asm
+++ b/engine/battle/scroll_draw_trainer_pic.asm
@@ -3,10 +3,10 @@ _ScrollTrainerPicAfterBattle: ; f4259 (e:f4259)
; the screen from the right.
xor a
ld [wEnemyMonSpecies2], a
- ld b, $1
- call GoPAL_SET
+ ld b, SET_PAL_BATTLE
+ call RunPaletteCommand
callab _LoadTrainerPic
- hlCoord 19, 0
+ coord hl, 19, 0
ld c, $0
.scrollLoop
inc c
diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm
index 19a184f2..afb04216 100644
--- a/engine/battle/trainer_ai.asm
+++ b/engine/battle/trainer_ai.asm
@@ -2,7 +2,7 @@
; unused slots are filled with 0, all used slots may be chosen with equal probability
AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
ld a, $a
- ld hl, wHPBarMaxHP ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
+ ld hl, wBuffer ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end
ld [hli], a ; move 1
ld [hli], a ; move 2
ld [hli], a ; move 3
@@ -11,14 +11,14 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
swap a
and $f
jr z, .noMoveDisabled
- ld hl, wHPBarMaxHP
+ ld hl, wBuffer
dec a
ld c, a
ld b, $0
add hl, bc ; advance pointer to forbidden move
ld [hl], $50 ; forbid (highly discourage) disabled move
.noMoveDisabled
- ld hl, TrainerClassMoveChoiceModifications ; 589B
+ ld hl, TrainerClassMoveChoiceModifications
ld a, [W_TRAINERCLASS]
ld b, a
.loopTrainerClasses
@@ -40,11 +40,11 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
and a
jr z, .loopFindMinimumEntries
push hl
- ld hl, AIMoveChoiceModificationFunctionPointers ; $57a3
+ ld hl, AIMoveChoiceModificationFunctionPointers
dec a
add a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc ; skip to pointer
ld a, [hli] ; read pointer into hl
ld h, [hl]
@@ -53,9 +53,9 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
push de
jp [hl] ; execute modification function
.loopFindMinimumEntries ; all entries will be decremented sequentially until one of them is zero
- ld hl, wHPBarMaxHP ; temp move selection array
+ ld hl, wBuffer ; temp move selection array
ld de, wEnemyMonMoves ; enemy moves
- ld c, $4
+ ld c, NUM_MOVES
.loopDecrementEntries
ld a, [de]
inc de
@@ -73,15 +73,15 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
inc [hl]
dec hl
inc a
- cp $5
+ cp NUM_MOVES + 1
jr nz, .loopUndoPartialIteration
- ld hl, wHPBarMaxHP ; temp move selection array
+ ld hl, wBuffer ; temp move selection array
ld de, wEnemyMonMoves ; enemy moves
- ld c, $4
+ ld c, NUM_MOVES
.filterMinimalEntries ; all minimal entries now have value 1. All other slots will be disabled (move set to 0)
ld a, [de]
and a
- jr nz, .moveExisting ; 0x3978a $1
+ jr nz, .moveExisting
ld [hl], a
.moveExisting
ld a, [hl]
@@ -97,7 +97,7 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
inc de
dec c
jr nz, .filterMinimalEntries
- ld hl, wHPBarMaxHP ; use created temporary array as move set
+ ld hl, wBuffer ; use created temporary array as move set
ret
.useOriginalMoveSet
ld hl, wEnemyMonMoves ; use original move set
@@ -145,7 +145,7 @@ AIMoveChoiceModification1: ; 397ab (e:57ab)
ld [hl], a
jr .nextMove
-StatusAilmentMoveEffects ; 57e2
+StatusAilmentMoveEffects: ; 57e2
db $01 ; unused sleep effect
db SLEEP_EFFECT
db POISON_EFFECT
@@ -157,7 +157,7 @@ StatusAilmentMoveEffects ; 57e2
; that fall in-bewteen
AIMoveChoiceModification2: ; 397e7 (e:57e7)
ld a, [wAILayer2Encouragement]
- cp $1
+ cp $1
ret nz
ld hl, wBuffer - 1 ; temp move selection array (-1 byte offset)
ld de, wEnemyMonMoves ; enemy moves
@@ -191,7 +191,7 @@ AIMoveChoiceModification2: ; 397e7 (e:57e7)
AIMoveChoiceModification3: ; 39817 (e:5817)
ld hl, wBuffer - 1 ; temp move selection array (-1 byte offset)
ld de, wEnemyMonMoves ; enemy moves
- ld b, $5
+ ld b, NUM_MOVES + 1
.nextMove
dec b
ret z ; processed all 4 moves
@@ -208,7 +208,7 @@ AIMoveChoiceModification3: ; 39817 (e:5817)
pop de
pop bc
pop hl
- ld a, [wd11e]
+ ld a, [wTypeEffectiveness]
cp $10
jr z, .nextMove
jr c, .notEffectiveMove
@@ -264,7 +264,7 @@ ReadMove: ; 39884 (e:5884)
push bc
dec a
ld hl,Moves
- ld bc,6
+ ld bc,MoveEnd - Moves
call AddNTimes
ld de,W_ENEMYMOVENUM
call CopyData
@@ -325,8 +325,8 @@ TrainerClassMoveChoiceModifications: ; 3989b (e:589b)
db 1,3,0 ; LANCE
INCLUDE "engine/battle/trainer_pic_money_pointers.asm"
-
-INCLUDE "text/trainer_names.asm"
+
+INCLUDE "text/trainer_names.asm"
INCLUDE "engine/battle/bank_e_misc.asm"
@@ -337,7 +337,6 @@ INCLUDE "data/trainer_moves.asm"
INCLUDE "data/trainer_parties.asm"
TrainerAI: ; 3a52e (e:652e)
-;XXX called at 34964, 3c342, 3c398
and a
ld a,[W_ISINBATTLE]
dec a
@@ -553,14 +552,14 @@ DecrementAICount: ; 3a695 (e:6695)
scf
ret
-Func_3a69b: ; 3a69b (e:669b)
- ld a,(SFX_08_3e - SFX_Headers_08) / 3
+AIPlayRestoringSFX: ; 3a69b (e:669b)
+ ld a,SFX_HEAL_AILMENT
jp PlaySoundWaitForCurrent
AIUseFullRestore: ; 3a6a0 (e:66a0)
call AICureStatus
ld a,FULL_RESTORE
- ld [wcf05],a
+ ld [wAIItem],a
ld de,wHPBarOldHP
ld hl,wEnemyMonHP + 1
ld a,[hld]
@@ -601,7 +600,7 @@ AIUseHyperPotion: ; 3a6d6 (e:66d6)
AIRecoverHP: ; 3a6da (e:66da)
; heal b HP and print "trainer used $(a) on pokemon!"
- ld [wcf05],a
+ ld [wAIItem],a
ld hl,wEnemyMonHP + 1
ld a,[hl]
ld [wHPBarOldHP],a
@@ -642,7 +641,7 @@ AIRecoverHP: ; 3a6da (e:66da)
AIPrintItemUseAndUpdateHPBar: ; 3a718 (e:6718)
call AIPrintItemUse_
- hlCoord 2, 2
+ coord hl, 2, 2
xor a
ld [wHPBarType],a
predef UpdateHPBar2
@@ -666,7 +665,7 @@ AISwitchIfEnoughMons: ; 3a72a (e:672a)
inc d
.Fainted
push bc
- ld bc,$2C
+ ld bc, wEnemyMon2 - wEnemyMon1
add hl,bc
pop bc
dec c
@@ -695,11 +694,13 @@ SwitchEnemyMon: ; 3a74b (e:674b)
ld hl, AIBattleWithdrawText
call PrintText
+ ; This wFirstMonsNotOutYet variable is abused to prevent the player from
+ ; switching in a new mon in response to this switch.
ld a,1
- ld [wd11d],a
+ ld [wFirstMonsNotOutYet],a
callab EnemySendOut
xor a
- ld [wd11d],a
+ ld [wFirstMonsNotOutYet],a
ld a,[wLinkState]
cp LINK_STATE_BATTLING
@@ -712,7 +713,7 @@ AIBattleWithdrawText: ; 3a781 (e:6781)
db "@"
AIUseFullHeal: ; 3a786 (e:6786)
- call Func_3a69b
+ call AIPlayRestoringSFX
call AICureStatus
ld a,FULL_HEAL
jp AIPrintItemUse
@@ -731,21 +732,21 @@ AICureStatus: ; 3a791 (e:6791)
ret
AIUseXAccuracy: ; 0x3a7a8 unused
- call Func_3a69b
+ call AIPlayRestoringSFX
ld hl,W_ENEMYBATTSTATUS2
set 0,[hl]
ld a,X_ACCURACY
jp AIPrintItemUse
AIUseGuardSpec: ; 3a7b5 (e:67b5)
- call Func_3a69b
+ call AIPlayRestoringSFX
ld hl,W_ENEMYBATTSTATUS2
set 1,[hl]
ld a,GUARD_SPEC_
jp AIPrintItemUse
AIUseDireHit: ; 0x3a7c2 unused
- call Func_3a69b
+ call AIPlayRestoringSFX
ld hl,W_ENEMYBATTSTATUS2
set 2,[hl]
ld a,DIRE_HIT
@@ -798,7 +799,7 @@ AIUseXSpecial: ; 3a804 (e:6804)
; fallthrough
AIIncreaseStat: ; 3a808 (e:6808)
- ld [wcf05],a
+ ld [wAIItem],a
push bc
call AIPrintItemUse_
pop bc
@@ -820,13 +821,13 @@ AIIncreaseStat: ; 3a808 (e:6808)
jp DecrementAICount
AIPrintItemUse: ; 3a82c (e:682c)
- ld [wcf05],a
+ ld [wAIItem],a
call AIPrintItemUse_
jp DecrementAICount
AIPrintItemUse_: ; 3a835 (e:6835)
-; print "x used [wcf05] on z!"
- ld a,[wcf05]
+; print "x used [wAIItem] on z!"
+ ld a,[wAIItem]
ld [wd11e],a
call GetItemName
ld hl, AIBattleUseItemText
diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm
index 61b318b9..144234bb 100644
--- a/engine/battle/wild_encounters.asm
+++ b/engine/battle/wild_encounters.asm
@@ -18,14 +18,14 @@ TryDoWildEncounter: ; 13870 (4:7870)
jr z, .CantEncounter
ld a, [wRepelRemainingSteps]
and a
- jr z, .asm_1389e
+ jr z, .next
dec a
jr z, .lastRepelStep
ld [wRepelRemainingSteps], a
-.asm_1389e
-; determine if wild pokemon can appear in the half-block we're standing in
+.next
+; determine if wild pokemon can appear in the half-block we're standing in
; is the bottom right tile (9,9) of the half-block we're standing in a grass/water tile?
- hlCoord 9, 9
+ coord hl, 9, 9
ld c, [hl]
ld a, [W_GRASSTILE]
cp c
@@ -64,14 +64,14 @@ TryDoWildEncounter: ; 13870 (4:7870)
; determine which wild pokemon (grass or water) can appear in the half-block we're standing in
ld c, [hl]
ld hl, W_GRASSMONS
- aCoord 8, 9
- cp $14 ; is the bottom left tile (8,9) of the half-block we're standing in a water tile?
+ aCoord 8, 9
+ cp $14 ; is the bottom left tile (8,9) of the half-block we're standing in a water tile?
jr nz, .gotWildEncounterType ; else, it's treated as a grass tile by default
ld hl, W_WATERMONS
; since the bottom right tile of a "left shore" half-block is $14 but the bottom left tile is not,
-; "left shore" half-blocks (such as the one in the east coast of Cinnabar) load grass encounters.
+; "left shore" half-blocks (such as the one in the east coast of Cinnabar) load grass encounters.
.gotWildEncounterType
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hli]
ld [W_CURENEMYLVL], a
@@ -89,8 +89,8 @@ TryDoWildEncounter: ; 13870 (4:7870)
jr .willEncounter
.lastRepelStep
ld [wRepelRemainingSteps], a
- ld a, $d2
- ld [H_DOWNARROWBLINKCNT2], a
+ ld a, TEXT_REPEL_WORE_OFF
+ ld [hSpriteIndexOrTextID], a
call EnableAutoTextBoxDrawing
call DisplayTextID
.CantEncounter2
diff --git a/engine/cable_club.asm b/engine/cable_club.asm
index 2cfb1734..465561ca 100755
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -1,19 +1,19 @@
-; performs the appropriate action when the player uses the gameboy on the table in the Colosseum or Trade Centre
-; In the Colosseum, it starts a battle. In the Trade Centre, it displays the trade selection screen.
+; performs the appropriate action when the player uses the gameboy on the table in the Colosseum or Trade Center
+; In the Colosseum, it starts a battle. In the Trade Center, it displays the trade selection screen.
; Before doing either action, it swaps random numbers, trainer names and party data with the other gameboy.
CableClub_DoBattleOrTrade: ; 5317 (1:5317)
- ld c, $50
+ ld c, 80
call DelayFrames
call ClearScreen
call UpdateSprites
call LoadFontTilePatterns
call LoadHpBarAndStatusTilePatterns
call LoadTrainerInfoTextBoxTiles
- hlCoord 3, 8
+ coord hl, 3, 8
ld b, 2
ld c, 12
call CableClub_TextBoxBorder
- hlCoord 4, 10
+ coord hl, 4, 10
ld de, PleaseWaitString
call PlaceString
ld hl, wPlayerNumHits
@@ -96,7 +96,7 @@ CableClub_DoBattleOrTradeAgain: ; 5345
ld a, SERIAL_PATCH_LIST_PART_TERMINATOR
ld [de], a ; end of part 1
inc de
- ld bc, $100
+ lb bc, 1, 0
jr .patchPartyMonsLoop
.finishedPatchingPlayerData
ld a, SERIAL_PATCH_LIST_PART_TERMINATOR
@@ -176,7 +176,7 @@ CableClub_DoBattleOrTradeAgain: ; 5345
jr z, .findStartOfEnemyNameLoop
dec hl
ld de, wLinkEnemyTrainerName
- ld c, 11
+ ld c, NAME_LENGTH
.copyEnemyNameLoop
ld a, [hli]
cp SERIAL_NO_DATA_BYTE
@@ -256,9 +256,9 @@ CableClub_DoBattleOrTradeAgain: ; 5345
dec c
jr nz, .unpatchEnemyMonsLoop
ld a, wEnemyMonOT % $100
- ld [wcf8d], a
+ ld [wUnusedCF8D], a
ld a, wEnemyMonOT / $100
- ld [wcf8e], a
+ ld [wUnusedCF8D + 1], a
xor a
ld [wTradeCenterPointerTableIndex], a
ld a, $ff
@@ -274,7 +274,7 @@ CableClub_DoBattleOrTradeAgain: ; 5345
jr nz, .asm_5506
ld a, LINK_STATE_BATTLING
ld [wLinkState], a
- ld a, SONY1 + $c8
+ ld a, OPP_SONY1
ld [W_CUROPPONENT], a
call ClearScreen
call Delay3
@@ -297,7 +297,7 @@ CallCurrentTradeCenterFunction:
ld b, 0
ld a, [wTradeCenterPointerTableIndex]
cp $ff
- jp z, LoadTitlescreenGraphics
+ jp z, DisplayTitleScreen
add a
ld c, a
add hl, bc
@@ -317,7 +317,7 @@ TradeCenter_SelectMon:
ld [hli], a
ld [hli], a
ld [hl], a
- ld [wcc37], a
+ ld [wMenuWatchMovingOutOfBounds], a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
ld [wMenuJoypadPollCount], a
@@ -326,7 +326,7 @@ TradeCenter_SelectMon:
jp .playerMonMenu
.enemyMonMenu
xor a
- ld [wcc37], a
+ ld [wMenuWatchMovingOutOfBounds], a
inc a
ld [wWhichTradeMonSelectionMenu], a
ld a, D_DOWN | D_LEFT | A_BUTTON
@@ -357,9 +357,9 @@ TradeCenter_SelectMon:
dec a
ld [wCurrentMenuItem], a
.displayEnemyMonStats
- ld a, $1
- ld [wd11b], a
- callab Func_39bd5
+ ld a, INIT_ENEMYOT_LIST
+ ld [wInitListType], a
+ callab InitList ; the list isn't used
ld hl, wEnemyMons
call TradeCenter_DisplayStats
jp .getNewInput
@@ -390,7 +390,7 @@ TradeCenter_SelectMon:
.playerMonMenu
xor a ; player mon menu
ld [wWhichTradeMonSelectionMenu], a
- ld [wcc37], a
+ ld [wMenuWatchMovingOutOfBounds], a
ld a, D_DOWN | D_RIGHT | A_BUTTON
ld [wMenuWatchedKeys], a
ld a, [wPartyCount]
@@ -399,8 +399,8 @@ TradeCenter_SelectMon:
ld [wTopMenuItemY], a
ld a, 1
ld [wTopMenuItemX], a
- hlCoord 1, 1
- ld bc, $0601
+ coord hl, 1, 1
+ lb bc, 6, 1
call ClearScreenArea
.playerMonMenu_HandleInput
ld hl, hFlags_0xFFF6
@@ -416,9 +416,9 @@ TradeCenter_SelectMon:
jr z, .playerMonMenu_ANotPressed
jp .chosePlayerMon ; jump if A button pressed
; unreachable code
- ld a, $4
- ld [wd11b], a
- callab Func_39bd5
+ ld a, INIT_PLAYEROT_LIST
+ ld [wInitListType], a
+ callab InitList ; the list isn't used
call TradeCenter_DisplayStats
jp .getNewInput
.playerMonMenu_ANotPressed
@@ -464,11 +464,11 @@ TradeCenter_SelectMon:
dec a
.displayStatsTradeMenu
push af
- hlCoord 0, 14
+ coord hl, 0, 14
ld b, 2
ld c, 18
call CableClub_TextBoxBorder
- hlCoord 2, 16
+ coord hl, 2, 16
ld de, .statsTrade
call PlaceString
xor a
@@ -511,9 +511,9 @@ TradeCenter_SelectMon:
.displayPlayerMonStats
pop af
ld [wCurrentMenuItem], a
- ld a, $4
- ld [wd11b], a
- callab Func_39bd5
+ ld a, INIT_PLAYEROT_LIST
+ ld [wInitListType], a
+ callab InitList ; the list isn't used
call TradeCenter_DisplayStats
call LoadScreenTilesFromBuffer1
jp .playerMonMenu
@@ -596,15 +596,15 @@ ReturnToCableClubRoom: ; 577d (1:577d)
ret
TradeCenter_DrawCancelBox:
- hlCoord 11, 15
+ coord hl, 11, 15
ld a, $7e
- ld bc, 2 * 20 + 9
+ ld bc, 2 * SCREEN_WIDTH + 9
call FillMemory
- hlCoord 0, 15
+ coord hl, 0, 15
ld b, 1
ld c, 9
call CableClub_TextBoxBorder
- hlCoord 2, 16
+ coord hl, 2, 16
ld de, CancelTextString
jp PlaceString
@@ -613,8 +613,8 @@ CancelTextString:
TradeCenter_PlaceSelectedEnemyMonMenuCursor:
ld a, [wSerialSyncAndExchangeNybbleReceiveData]
- hlCoord 1, 9
- ld bc, 20
+ coord hl, 1, 9
+ ld bc, SCREEN_WIDTH
call AddNTimes
ld [hl], $ec ; cursor
ret
@@ -630,24 +630,24 @@ TradeCenter_DisplayStats:
jp TradeCenter_DrawCancelBox
TradeCenter_DrawPartyLists:
- hlCoord 0, 0
+ coord hl, 0, 0
ld b, 6
ld c, 18
call CableClub_TextBoxBorder
- hlCoord 0, 8
+ coord hl, 0, 8
ld b, 6
ld c, 18
call CableClub_TextBoxBorder
- hlCoord 5, 0
+ coord hl, 5, 0
ld de, wPlayerName
call PlaceString
- hlCoord 5, 8
+ coord hl, 5, 8
ld de, wLinkEnemyTrainerName
call PlaceString
- hlCoord 2, 1
+ coord hl, 2, 1
ld de, wPartySpecies
call TradeCenter_PrintPartyListNames
- hlCoord 2, 9
+ coord hl, 2, 9
ld de, wEnemyPartyMons
; fall through
@@ -682,9 +682,9 @@ TradeCenter_Trade:
xor a
ld [wSerialExchangeNybbleSendData + 1], a ; unnecessary
ld [wSerialExchangeNybbleReceiveData], a
- ld [wcc37], a
+ ld [wMenuWatchMovingOutOfBounds], a
ld [wMenuJoypadPollCount], a
- hlCoord 0, 12
+ coord hl, 0, 12
ld b, 4
ld c, 18
call CableClub_TextBoxBorder
@@ -698,7 +698,7 @@ TradeCenter_Trade:
call GetMonName
ld hl, wcd6d
ld de, wNameOfPlayerMonToBeTraded
- ld bc, 11
+ ld bc, NAME_LENGTH
call CopyData
ld a, [wTradingWhichEnemyMon]
ld hl, wEnemyPartyMons
@@ -709,11 +709,11 @@ TradeCenter_Trade:
ld [wd11e], a
call GetMonName
ld hl, WillBeTradedText
- bcCoord 1, 14
+ coord bc, 1, 14
call TextCommandProcessor
call SaveScreenTilesToBuffer1
- hlCoord 10, 7
- ld bc, $080b
+ coord hl, 10, 7
+ lb bc, 8, 11
ld a, TRADE_CANCEL_MENU
ld [wTwoOptionMenuID], a
ld a, TWO_OPTION_MENU
@@ -726,11 +726,11 @@ TradeCenter_Trade:
; if trade cancelled
ld a, $1
ld [wSerialExchangeNybbleSendData], a
- hlCoord 0, 12
+ coord hl, 0, 12
ld b, 4
ld c, 18
call CableClub_TextBoxBorder
- hlCoord 1, 14
+ coord hl, 1, 14
ld de, TradeCanceled
call PlaceString
call Serial_PrintWaitingTextAndSyncAndExchangeNybble
@@ -743,11 +743,11 @@ TradeCenter_Trade:
dec a ; did the other person cancel?
jr nz, .doTrade
; if the other person cancelled
- hlCoord 0, 12
+ coord hl, 0, 12
ld b, 4
ld c, 18
call CableClub_TextBoxBorder
- hlCoord 1, 14
+ coord hl, 1, 14
ld de, TradeCanceled
call PlaceString
jp .tradeCancelled
@@ -756,7 +756,7 @@ TradeCenter_Trade:
ld hl, wPartyMonOT
call SkipFixedLengthTextEntries
ld de, wTradedPlayerMonOT
- ld bc, 11
+ ld bc, NAME_LENGTH
call CopyData
ld hl, wPartyMon1Species
ld a, [wTradingWhichPlayerMon]
@@ -772,7 +772,7 @@ TradeCenter_Trade:
ld hl, wEnemyMonOT
call SkipFixedLengthTextEntries
ld de, wTradedEnemyMonOT
- ld bc, 11
+ ld bc, NAME_LENGTH
call CopyData
ld hl, wEnemyMons
ld a, [wTradingWhichEnemyMon]
@@ -793,7 +793,7 @@ TradeCenter_Trade:
ld a, [hl]
ld [wTradedPlayerMonSpecies], a
xor a
- ld [wcf95], a
+ ld [wRemoveMonFromBox], a
call RemovePokemon
ld a, [wTradingWhichEnemyMon]
ld c, a
@@ -816,7 +816,7 @@ TradeCenter_Trade:
dec a
ld [wWhichPokemon], a
ld a, $1
- ld [wccd4], a
+ ld [wForceEvolution], a
ld a, [wTradingWhichEnemyMon]
ld hl, wEnemyPartyMons
ld b, 0
@@ -824,19 +824,19 @@ TradeCenter_Trade:
add hl, bc
ld a, [hl]
ld [wTradedEnemyMonSpecies], a
- ld a, $a
- ld [wMusicHeaderPointer], a
+ ld a, 10
+ ld [wAudioFadeOutControl], a
ld a, $2
- ld [wc0f0], a
+ ld [wAudioSavedROMBank], a
ld a, MUSIC_SAFARI_ZONE
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld c, 100
call DelayFrames
call ClearScreen
call LoadHpBarAndStatusTilePatterns
xor a
- ld [wcc5b], a
+ ld [wUnusedCC5B], a
ld a, [hSerialConnectionStatus]
cp USING_EXTERNAL_CLOCK
jr z, .usingExternalClock
@@ -851,11 +851,11 @@ TradeCenter_Trade:
call Serial_PrintWaitingTextAndSyncAndExchangeNybble
ld c, 40
call DelayFrames
- hlCoord 0, 12
+ coord hl, 0, 12
ld b, 4
ld c, 18
call CableClub_TextBoxBorder
- hlCoord 1, 14
+ coord hl, 1, 14
ld de, TradeCompleted
call PlaceString
predef SaveSAVtoSRAM2
@@ -915,12 +915,12 @@ CableClub_Run: ; 5a5f (1:5a5f)
inc a ; LINK_STATE_IN_CABLE_CLUB
ld [wLinkState], a
ld [$ffb5], a
- ld a, $a
- ld [wMusicHeaderPointer], a
+ ld a, 10
+ ld [wAudioFadeOutControl], a
ld a, BANK(Music_Celadon)
- ld [wc0f0], a
+ ld [wAudioSavedROMBank], a
ld a, MUSIC_CELADON
- ld [wc0ee], a
+ ld [wNewSoundID], a
jp PlaySound
EmptyFunc3: ; 5aaf (1:5aaf)
diff --git a/engine/clear_save.asm b/engine/clear_save.asm
index 66d7e920..adbef1a4 100755
--- a/engine/clear_save.asm
+++ b/engine/clear_save.asm
@@ -1,12 +1,12 @@
DoClearSaveDialogue: ; 1c98a (7:498a)
call ClearScreen
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call LoadFontTilePatterns
call LoadTextBoxTilePatterns
ld hl, ClearSaveDataText
call PrintText
- hlCoord 14, 7
- ld bc, $80f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a, NO_YES_MENU
ld [wTwoOptionMenuID], a
ld a, TWO_OPTION_MENU
diff --git a/engine/evolution.asm b/engine/evolution.asm
index 7ae88fdf..c65cc293 100755
--- a/engine/evolution.asm
+++ b/engine/evolution.asm
@@ -1,4 +1,4 @@
-Func_7bde9: ; 7bde9 (1e:7de9)
+EvolveMon: ; 7bde9 (1e:7de9)
push hl
push de
push bc
@@ -8,72 +8,72 @@ Func_7bde9: ; 7bde9 (1e:7de9)
push af
xor a
ld [wLowHealthAlarm], a
- ld [wc02a], a
+ ld [wChannelSoundIDs + CH4], a
dec a
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, (SFX_08_3c - SFX_Headers_08) / 3
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, SFX_TINK
call PlaySound
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ld [hTilesetType], a
- ld a, [wHPBarMaxHP]
- ld [wcf1d], a
- ld c, $0
- call Func_7beb4
- ld a, [wHPBarMaxHP + 1]
+ ld a, [wEvoOldSpecies]
+ ld [wWholeScreenPaletteMonSpecies], a
+ ld c, 0
+ call EvolutionSetWholeScreenPalette
+ ld a, [wEvoNewSpecies]
ld [wcf91], a
ld [wd0b5], a
- call Func_7beb9
+ call Evolution_LoadPic
ld de, vFrontPic
ld hl, vBackPic
ld bc, 7 * 7
call CopyVideoData
- ld a, [wHPBarMaxHP]
+ ld a, [wEvoOldSpecies]
ld [wcf91], a
ld [wd0b5], a
- call Func_7beb9
+ call Evolution_LoadPic
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [wHPBarMaxHP]
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, [wEvoOldSpecies]
call PlayCry
call WaitForSoundToFinish
ld c, BANK(Music_SafariZone)
ld a, MUSIC_SAFARI_ZONE
call PlayMusic
- ld c, $50
+ ld c, 80
call DelayFrames
- ld c, $1
- call Func_7beb4
- ld bc, $110
-.asm_7be63
+ ld c, 1 ; set PAL_BLACK instead of mon palette
+ call EvolutionSetWholeScreenPalette
+ lb bc, $1, $10
+.animLoop
push bc
- call asm_7befa
- jr c, .asm_7bea9
- call asm_7bec2
+ call Evolution_CheckForCancel
+ jr c, .evolutionCancelled
+ call Evolution_BackAndForthAnim
pop bc
inc b
dec c
dec c
- jr nz, .asm_7be63
+ jr nz, .animLoop
xor a
- ld [wHPBarOldHP + 1], a
+ ld [wEvoCancelled], a
ld a, $31
- ld [wHPBarOldHP], a
- call Func_7bed6
- ld a, [wHPBarMaxHP + 1]
-.asm_7be81
- ld [wcf1d], a
+ ld [wEvoMonTileOffset], a
+ call Evolution_ChangeMonPic ; show the new species pic
+ ld a, [wEvoNewSpecies]
+.done
+ ld [wWholeScreenPaletteMonSpecies], a
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
- ld a, [wcf1d]
+ ld a, [wWholeScreenPaletteMonSpecies]
call PlayCry
- ld c, $0
- call Func_7beb4
+ ld c, 0
+ call EvolutionSetWholeScreenPalette
pop af
ld [wd0b5], a
pop af
@@ -81,77 +81,80 @@ Func_7bde9: ; 7bde9 (1e:7de9)
pop bc
pop de
pop hl
- ld a, [wHPBarOldHP + 1]
+ ld a, [wEvoCancelled]
and a
ret z
scf
ret
-.asm_7bea9
+.evolutionCancelled
pop bc
- ld a, $1
- ld [wHPBarOldHP + 1], a
- ld a, [wHPBarMaxHP]
- jr .asm_7be81
+ ld a, 1
+ ld [wEvoCancelled], a
+ ld a, [wEvoOldSpecies]
+ jr .done
-Func_7beb4: ; 7beb4 (1e:7eb4)
- ld b, $b
- jp GoPAL_SET
+EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4)
+ ld b, SET_PAL_POKEMON_WHOLE_SCREEN
+ jp RunPaletteCommand
-Func_7beb9: ; 7beb9 (1e:7eb9)
+Evolution_LoadPic: ; 7beb9 (1e:7eb9)
call GetMonHeader
- hlCoord 7, 2
+ coord hl, 7, 2
jp LoadFlippedFrontSpriteByMonIndex
-asm_7bec2: ; 7bec2 (1e:7ec2)
+
+Evolution_BackAndForthAnim: ; 7bec2 (1e:7ec2)
+; show the mon change back and forth between the new and old species b times
ld a, $31
- ld [wHPBarOldHP], a
- call Func_7bed6
- ld a, $cf
- ld [wHPBarOldHP], a
- call Func_7bed6
+ ld [wEvoMonTileOffset], a
+ call Evolution_ChangeMonPic
+ ld a, -$31
+ ld [wEvoMonTileOffset], a
+ call Evolution_ChangeMonPic
dec b
- jr nz, asm_7bec2
+ jr nz, Evolution_BackAndForthAnim
ret
-Func_7bed6: ; 7bed6 (1e:7ed6)
+Evolution_ChangeMonPic: ; 7bed6 (1e:7ed6)
push bc
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- hlCoord 7, 2
- ld bc, $707
- ld de, $d
-.asm_7bee3
+ ld [H_AUTOBGTRANSFERENABLED], a
+ coord hl, 7, 2
+ lb bc, 7, 7
+ ld de, SCREEN_WIDTH - 7
+.loop
push bc
-.asm_7bee4
- ld a, [wHPBarOldHP]
+.innerLoop
+ ld a, [wEvoMonTileOffset]
add [hl]
ld [hli], a
dec c
- jr nz, .asm_7bee4
+ jr nz, .innerLoop
pop bc
add hl, de
dec b
- jr nz, .asm_7bee3
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ jr nz, .loop
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
pop bc
ret
-asm_7befa: ; 7befa (1e:7efa)
+
+Evolution_CheckForCancel: ; 7befa (1e:7efa)
call DelayFrame
push bc
call JoypadLowSensitivity
ld a, [hJoy5]
pop bc
- and $2
- jr nz, .asm_7bf0d
-.asm_7bf08
+ and B_BUTTON
+ jr nz, .pressedB
+.notAllowedToCancel
dec c
- jr nz, asm_7befa
+ jr nz, Evolution_CheckForCancel
and a
ret
-.asm_7bf0d
- ld a, [wccd4]
+.pressedB
+ ld a, [wForceEvolution]
and a
- jr nz, .asm_7bf08
+ jr nz, .notAllowedToCancel
scf
ret
diff --git a/engine/evolve_trade.asm b/engine/evolve_trade.asm
index ec230677..81e41166 100755
--- a/engine/evolve_trade.asm
+++ b/engine/evolve_trade.asm
@@ -31,11 +31,11 @@ EvolveTradeMon: ; 17d7d (5:7d7d)
ret nz
.ok
- ld a, [wPartyCount] ; wPartyCount
+ ld a, [wPartyCount]
dec a
- ld [wWhichPokemon], a ; wWhichPokemon
+ ld [wWhichPokemon], a
ld a, $1
- ld [wccd4], a
+ ld [wForceEvolution], a
ld a, LINK_STATE_TRADING
ld [wLinkState], a
callab TryEvolvingMon
diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm
index e7750c22..056c125e 100755
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -1,11 +1,11 @@
; try to evolve the mon in [wWhichPokemon]
TryEvolvingMon: ; 3ad0e (e:6d0e)
- ld hl, wccd3
+ ld hl, wCanEvolveFlags
xor a
ld [hl], a
ld a, [wWhichPokemon]
ld c, a
- ld b, $1
+ ld b, FLAG_SET
call Evolution_FlagAction
; this is only called after battle
@@ -14,7 +14,7 @@ EvolutionAfterBattle: ; 3ad1c (e:6d1c)
ld a, [hTilesetType]
push af
xor a
- ld [wd121], a
+ ld [wEvolutionOccurred], a
dec a
ld [wWhichPokemon], a
push hl
@@ -31,17 +31,17 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [hl]
cp $ff ; have we reached the end of the party?
jp z, .done
- ld [wHPBarMaxHP], a
+ ld [wEvoOldSpecies], a
push hl
ld a, [wWhichPokemon]
ld c, a
- ld hl, wccd3
- ld b, $2
+ ld hl, wCanEvolveFlags
+ ld b, FLAG_TEST
call Evolution_FlagAction
ld a, c
and a ; is the mon's bit set?
jp z, Evolution_PartyMonLoop ; if not, go to the next mon
- ld a, [wHPBarMaxHP]
+ ld a, [wEvoOldSpecies]
dec a
ld b, 0
ld hl, EvosMovesPointerTable
@@ -55,8 +55,8 @@ Evolution_PartyMonLoop: ; loop over party mons
push hl
ld a, [wcf91]
push af
- xor a
- ld [wcc49], a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
call LoadMonData
pop af
ld [wcf91], a
@@ -76,7 +76,7 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, b
cp EV_ITEM
jr z, .checkItemEvo
- ld a, [wccd4]
+ ld a, [wForceEvolution]
and a
jr nz, Evolution_PartyMonLoop
ld a, b
@@ -91,7 +91,7 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [wLoadedMonLevel]
cp b ; is the mon's level greater than the evolution requirement?
jp c, Evolution_PartyMonLoop ; if so, go the next mon
- jr .asm_3adb6
+ jr .doEvolution
.checkItemEvo
ld a, [hli]
ld b, a ; evolution item
@@ -104,32 +104,32 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [wLoadedMonLevel]
cp b ; is the mon's level greater than the evolution requirement?
jp c, .nextEvoEntry2 ; if so, go the next evolution entry
-.asm_3adb6
+.doEvolution
ld [W_CURENEMYLVL], a
- ld a, $1
- ld [wd121], a
+ ld a, 1
+ ld [wEvolutionOccurred], a
push hl
ld a, [hl]
- ld [wHPBarMaxHP + 1], a
+ ld [wEvoNewSpecies], a
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
call GetPartyMonName
call CopyStringToCF4B
ld hl, IsEvolvingText
call PrintText
- ld c, $32
+ ld c, 50
call DelayFrames
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- ld hl, wTileMap
- ld bc, $c14
+ coord hl, 0, 0
+ lb bc, 12, 20
call ClearScreenArea
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ld a, $ff
ld [wUpdateSpritesEnabled], a
call ClearSprites
- callab Func_7bde9
+ callab EvolveMon
jp c, CancelledEvolution
ld hl, EvolvedText
call PrintText
@@ -137,7 +137,7 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [hl]
ld [wd0b5], a
ld [wLoadedMonSpecies], a
- ld [wHPBarMaxHP + 1], a
+ ld [wEvoNewSpecies], a
ld a, MONSTER_NAME
ld [wNameListType], a
ld a, BANK(TrainerNames) ; bank is not used for monster names
@@ -145,11 +145,11 @@ Evolution_PartyMonLoop: ; loop over party mons
call GetName
push hl
ld hl, IntoText
- call Func_3c46
- ld a, (SFX_02_3b - SFX_Headers_02) / 3
+ call PrintText_NoCreatingTextBox
+ ld a, SFX_GET_ITEM_2
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
- ld c, $28
+ ld c, 40
call DelayFrames
call ClearScreen
call RenameEvolvedMon
@@ -161,12 +161,12 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [wd11e]
dec a
ld hl, BaseStats
- ld bc, $1c
+ ld bc, MonBaseStatsEnd - MonBaseStats
call AddNTimes
ld de, W_MONHEADER
call CopyData
ld a, [wd0b5]
- ld [W_MONHDEXNUM], a
+ ld [W_MONHINDEX], a
pop af
ld [wd11e], a
ld hl, wLoadedMonHPExp - 1
@@ -206,7 +206,7 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [wd0b5]
ld [wd11e], a
xor a
- ld [wcc49], a
+ ld [wMonDataLocation], a
call LearnMoveFromLevelUp
pop hl
predef SetPartyMonTypes
@@ -217,7 +217,7 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [wd11e]
dec a
ld c, a
- ld b, $1
+ ld b, FLAG_SET
ld hl, wPokedexOwned
push bc
call Evolution_FlagAction
@@ -252,17 +252,17 @@ Evolution_PartyMonLoop: ; loop over party mons
ld a, [W_ISINBATTLE]
and a
ret nz
- ld a, [wd121]
+ ld a, [wEvolutionOccurred]
and a
call nz, PlayDefaultMusic
ret
-; checks if the evolved mon's name is different from the standard name (i.e. it has a nickname)
-; if so, rename it to is evolved form's standard name
RenameEvolvedMon: ; 3aef7 (e:6ef7)
+; Renames the mon to its new, evolved form's standard name unless it had a
+; nickname, in which case the nickname is kept.
ld a, [wd0b5]
push af
- ld a, [W_MONHDEXNUM]
+ ld a, [W_MONHINDEX]
ld [wd0b5], a
call GetName
pop af
@@ -275,10 +275,10 @@ RenameEvolvedMon: ; 3aef7 (e:6ef7)
cp [hl]
inc hl
ret nz
- cp $50
+ cp "@"
jr nz, .compareNamesLoop
ld a, [wWhichPokemon]
- ld bc, $b
+ ld bc, NAME_LENGTH
ld hl, wPartyMonNicks
call AddNTimes
push hl
@@ -345,18 +345,19 @@ LearnMoveFromLevelUp: ; 3af5b (e:6f5b)
ld a, [hli] ; move ID
jr nz, .learnSetLoop
ld d, a ; ID of move to learn
- ld a, [wcc49]
+ ld a, [wMonDataLocation]
and a
jr nz, .next
-; if [wcc49] is 0, get the address of the mon's current moves
-; there is no reason to make this conditional because the code wouldn't work properly without doing this
-; every call to this function sets [wcc49] to 0
+; If [wMonDataLocation] is 0 (PLAYER_PARTY_DATA), get the address of the mon's
+; current moves in party data. Every call to this function sets
+; [wMonDataLocation] to 0 because other data locations are not supported.
+; If it is not 0, this function will not work properly.
ld hl, wPartyMon1Moves
ld a, [wWhichPokemon]
ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
.next
- ld b, $4
+ ld b, NUM_MOVES
.checkCurrentMovesLoop ; check if the move to learn is already known
ld a, [hli]
cp d
@@ -376,14 +377,13 @@ LearnMoveFromLevelUp: ; 3af5b (e:6f5b)
; writes the moves a mon has at level [W_CURENEMYLVL] to [de]
; move slots are being filled up sequentially and shifted if all slots are full
-; [wHPBarMaxHP]: (?)
WriteMonMoves: ; 3afb8 (e:6fb8)
call GetPredefRegisters
push hl
push de
push bc
ld hl, EvosMovesPointerTable
- ld b, $0
+ ld b, 0
ld a, [wcf91] ; cur mon ID
dec a
add a
@@ -407,28 +407,33 @@ WriteMonMoves: ; 3afb8 (e:6fb8)
and a
jp z, .done ; end of list
ld b, a
- ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
+ ld a, [W_CURENEMYLVL]
cp b
jp c, .done ; mon level < move level (assumption: learnset is sorted by level)
- ld a, [wHPBarMaxHP]
+ ld a, [wLearningMovesFromDayCare]
and a
jr z, .skipMinLevelCheck
- ld a, [wWhichTrade] ; wWhichTrade (min move level)
+ ld a, [wDayCareStartLevel]
cp b
jr nc, .nextMove2 ; min level >= move level
+
.skipMinLevelCheck
+
+; check if the move is already known
push de
- ld c, $4
-.moveAlreadyLearnedCheckLoop
+ ld c, NUM_MOVES
+.alreadyKnowsCheckLoop
ld a, [de]
inc de
cp [hl]
jr z, .nextMove
dec c
- jr nz, .moveAlreadyLearnedCheckLoop
+ jr nz, .alreadyKnowsCheckLoop
+
+; try to find an empty move slot
pop de
push de
- ld c, $4
+ ld c, NUM_MOVES
.findEmptySlotLoop
ld a, [de]
and a
@@ -436,47 +441,55 @@ WriteMonMoves: ; 3afb8 (e:6fb8)
inc de
dec c
jr nz, .findEmptySlotLoop
- pop de ; no empty move slots found
+
+; no empty move slots found
+ pop de
push de
push hl
ld h, d
ld l, e
call WriteMonMoves_ShiftMoveData ; shift all moves one up (deleting move 1)
- ld a, [wHPBarMaxHP]
+ ld a, [wLearningMovesFromDayCare]
and a
jr z, .writeMoveToSlot
+
+; shift PP as well if learning moves from day care
push de
- ld bc, $12
+ ld bc, wPartyMon1PP - (wPartyMon1Moves + 3)
add hl, bc
ld d, h
ld e, l
call WriteMonMoves_ShiftMoveData ; shift all move PP data one up
pop de
+
.writeMoveToSlot
pop hl
.writeMoveToSlot2
ld a, [hl]
ld [de], a
- ld a, [wHPBarMaxHP]
+ ld a, [wLearningMovesFromDayCare]
and a
jr z, .nextMove
- push hl ; write move PP value
+
+; write move PP value if learning moves from day care
+ push hl
ld a, [hl]
- ld hl, $15
+ ld hl, wPartyMon1PP - wPartyMon1Moves
add hl, de
push hl
dec a
ld hl, Moves
- ld bc, $6
+ ld bc, MoveEnd - Moves
call AddNTimes
- ld de, wHPBarMaxHP
+ ld de, wBuffer
ld a, BANK(Moves)
call FarCopyData
- ld a, [wHPBarNewHP + 1]
+ ld a, [wBuffer + 5]
pop hl
ld [hl], a
pop hl
jr .nextMove
+
.done
pop bc
pop de
@@ -485,13 +498,13 @@ WriteMonMoves: ; 3afb8 (e:6fb8)
; shifts all move data one up (freeing 4th move slot)
WriteMonMoves_ShiftMoveData: ; 3b04e (e:704e)
- ld c, $3
-.asm_3b050
+ ld c, NUM_MOVES - 1
+.loop
inc de
ld a, [de]
ld [hli], a
dec c
- jr nz, .asm_3b050
+ jr nz, .loop
ret
Evolution_FlagAction: ; 3b057 (e:7057)
diff --git a/engine/experience.asm b/engine/experience.asm
index 68d22843..b43fbcf9 100755
--- a/engine/experience.asm
+++ b/engine/experience.asm
@@ -10,15 +10,15 @@ CalcLevelFromExperience: ; 58f43 (16:4f43)
push hl
ld hl, wLoadedMonExp + 2 ; current exp
; compare exp needed for level d with current exp
- ld a, [H_MULTIPLICAND + 2]
+ ld a, [hExperience + 2]
ld c, a
ld a, [hld]
sub c
- ld a, [H_MULTIPLICAND + 1]
+ ld a, [hExperience + 1]
ld c, a
ld a, [hld]
sbc c
- ld a, [H_MULTIPLICAND]
+ ld a, [hExperience]
ld c, a
ld a, [hl]
sbc c
@@ -33,113 +33,117 @@ CalcExperience: ; 58f6a (16:4f6a)
add a
add a
ld c, a
- ld b, $0
+ ld b, 0
ld hl, GrowthRateTable
add hl, bc
call CalcDSquared
ld a, d
- ld [H_MULTIPLIER], a ; $ff99
+ ld [H_MULTIPLIER], a
call Multiply
ld a, [hl]
and $f0
swap a
- ld [H_MULTIPLIER], a ; $ff99
+ ld [H_MULTIPLIER], a
call Multiply
ld a, [hli]
and $f
- ld [H_DIVISOR], a ; $ff99
+ ld [H_DIVISOR], a
ld b, $4
call Divide
- ld a, [H_MULTIPLICAND] ; $ff96 (aliases: H_NUMTOPRINT)
+ ld a, [H_QUOTIENT + 1]
push af
- ld a, [H_MULTIPLICAND+1]
+ ld a, [H_QUOTIENT + 2]
push af
- ld a, [H_MULTIPLICAND+2]
+ ld a, [H_QUOTIENT + 3]
push af
call CalcDSquared
ld a, [hl]
and $7f
- ld [H_MULTIPLIER], a ; $ff99
+ ld [H_MULTIPLIER], a
call Multiply
- ld a, [H_MULTIPLICAND] ; $ff96 (aliases: H_NUMTOPRINT)
+ ld a, [H_PRODUCT + 1]
push af
- ld a, [H_MULTIPLICAND+1]
+ ld a, [H_PRODUCT + 2]
push af
- ld a, [H_MULTIPLICAND+2]
+ ld a, [H_PRODUCT + 3]
push af
ld a, [hli]
push af
xor a
- ld [H_MULTIPLICAND], a ; $ff96
- ld [H_MULTIPLICAND+1], a
+ ld [H_MULTIPLICAND], a
+ ld [H_MULTIPLICAND + 1], a
ld a, d
- ld [H_MULTIPLICAND+2], a
+ ld [H_MULTIPLICAND + 2], a
ld a, [hli]
ld [H_MULTIPLIER], a
call Multiply
ld b, [hl]
- ld a, [H_MULTIPLICAND+2]
+ ld a, [H_PRODUCT + 3]
sub b
- ld [H_MULTIPLICAND+2], a
+ ld [H_PRODUCT + 3], a
ld b, $0
- ld a, [H_MULTIPLICAND+1]
+ ld a, [H_PRODUCT + 2]
sbc b
- ld [H_MULTIPLICAND+1], a
- ld a, [H_MULTIPLICAND] ; $ff96
+ ld [H_PRODUCT + 2], a
+ ld a, [H_PRODUCT + 1]
sbc b
- ld [H_MULTIPLICAND], a ; $ff96
+ ld [H_PRODUCT + 1], a
+; The difference of the linear term and the constant term consists of 3 bytes
+; starting at H_PRODUCT + 1. Below, hExperience (an alias of that address) will
+; be used instead for the further work of adding or subtracting the squared
+; term and adding the cubed term.
pop af
and $80
jr nz, .subtractSquaredTerm ; check sign
pop bc
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hExperience + 2]
add b
- ld [H_MULTIPLICAND+2], a
+ ld [hExperience + 2], a
pop bc
- ld a, [H_MULTIPLICAND+1]
+ ld a, [hExperience + 1]
adc b
- ld [H_MULTIPLICAND+1], a
+ ld [hExperience + 1], a
pop bc
- ld a, [H_MULTIPLICAND]
+ ld a, [hExperience]
adc b
- ld [H_MULTIPLICAND], a
+ ld [hExperience], a
jr .addCubedTerm
.subtractSquaredTerm
pop bc
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hExperience + 2]
sub b
- ld [H_MULTIPLICAND+2], a
+ ld [hExperience + 2], a
pop bc
- ld a, [H_MULTIPLICAND+1]
+ ld a, [hExperience + 1]
sbc b
- ld [H_MULTIPLICAND+1], a
+ ld [hExperience + 1], a
pop bc
- ld a, [H_MULTIPLICAND]
+ ld a, [hExperience]
sbc b
- ld [H_MULTIPLICAND], a
+ ld [hExperience], a
.addCubedTerm
pop bc
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hExperience + 2]
add b
- ld [H_MULTIPLICAND+2], a
+ ld [hExperience + 2], a
pop bc
- ld a, [H_MULTIPLICAND+1]
+ ld a, [hExperience + 1]
adc b
- ld [H_MULTIPLICAND+1], a
+ ld [hExperience + 1], a
pop bc
- ld a, [H_MULTIPLICAND]
+ ld a, [hExperience]
adc b
- ld [H_MULTIPLICAND], a
+ ld [hExperience], a
ret
; calculates d*d
CalcDSquared: ; 59010 (16:5010)
xor a
- ld [H_MULTIPLICAND], a ; $ff96 (aliases: H_NUMTOPRINT)
- ld [H_MULTIPLICAND+1], a
+ ld [H_MULTIPLICAND], a
+ ld [H_MULTIPLICAND + 1], a
ld a, d
- ld [H_MULTIPLICAND+2], a
- ld [H_MULTIPLIER], a ; $ff99 (aliases: H_DIVISOR, H_REMAINDER, H_POWEROFTEN)
+ ld [H_MULTIPLICAND + 2], a
+ ld [H_MULTIPLIER], a
jp Multiply
; each entry has the following scheme:
diff --git a/engine/game_corner_slots.asm b/engine/game_corner_slots.asm
index 52f61daf..ff17d4d3 100755
--- a/engine/game_corner_slots.asm
+++ b/engine/game_corner_slots.asm
@@ -1,5 +1,5 @@
StartSlotMachine: ; 37e2d (d:7e2d)
- ld a, [wTrainerSpriteOffset]
+ ld a, [wHiddenObjectFunctionArgument]
cp $fd
jr z, .printOutOfOrder
cp $fe
@@ -7,33 +7,33 @@ StartSlotMachine: ; 37e2d (d:7e2d)
cp $ff
jr z, .printSomeonesKeys
callba AbleToPlaySlotsCheck
- ld a, [wTrainerSpriteOffset]
+ ld a, [wCanPlaySlots]
and a
ret z
- ld a, [wUnknownSlotVar]
+ ld a, [wLuckySlotHiddenObjectIndex]
ld b, a
- ld a, [wTrainerFacingDirection]
+ ld a, [wHiddenObjectIndex]
inc a
cp b
- jr z, .asm_37e58
- ld a, $fd
- jr .asm_37e5a
-.asm_37e58
- ld a, $fa
-.asm_37e5a
- ld [wcc5b], a
+ jr z, .match
+ ld a, 253
+ jr .next
+.match
+ ld a, 250
+.next
+ ld [wSlotMachineSevenAndBarModeChance], a
ld a, [H_LOADEDROMBANK]
- ld [wcc5e], a
+ ld [wSlotMachineSavedROMBank], a
call PromptUserToPlaySlots
ret
.printOutOfOrder
- ld a, $28
+ tx_pre_id GameCornerOutOfOrderText
jr .printText
.printOutToLunch
- ld a, $29
+ tx_pre_id GameCornerOutToLunchText
jr .printText
.printSomeonesKeys
- ld a, $2a
+ tx_pre_id GameCornerSomeonesKeysText
.printText
push af
call EnableAutoTextBoxDrawing
diff --git a/engine/game_corner_slots2.asm b/engine/game_corner_slots2.asm
index 66e51237..58386ba1 100755
--- a/engine/game_corner_slots2.asm
+++ b/engine/game_corner_slots2.asm
@@ -1,25 +1,25 @@
-AbleToPlaySlotsCheck ; 2ff09 (b:7f09)
+AbleToPlaySlotsCheck: ; 2ff09 (b:7f09)
ld a, [wSpriteStateData1 + 2]
and $8
jr z, .done ; not able
ld b, COIN_CASE
- predef IsItemInBag_ ; IsItemInBag_
+ predef GetQuantityOfItemInBag
ld a, b
and a
- ld b, $33 ; GameCornerCoinCaseText
+ ld b, (GameCornerCoinCaseText_id - TextPredefs) / 2 + 1
jr z, .printCoinCaseRequired
ld hl, wPlayerCoins
ld a, [hli]
or [hl]
jr nz, .done ; able to play
- ld b, $32 ; GameCornerNoCoinsText
+ ld b, (GameCornerNoCoinsText_id - TextPredefs) / 2 + 1
.printCoinCaseRequired
call EnableAutoTextBoxDrawing
ld a, b
call PrintPredefTextID
xor a
.done
- ld [wWhichTrade], a
+ ld [wCanPlaySlots], a
ret
GameCornerCoinCaseText: ; 2ff32 (b:7f32)
diff --git a/engine/gamefreak.asm b/engine/gamefreak.asm
index 528d355e..c2011535 100755
--- a/engine/gamefreak.asm
+++ b/engine/gamefreak.asm
@@ -1,97 +1,107 @@
LoadShootingStarGraphics: ; 70000 (1c:4000)
ld a, $f9
- ld [rOBP0], a ; $ff48
+ ld [rOBP0], a
ld a, $a4
ld [rOBP1], a ; $ff49
call Func_3040
call Func_3061
ld de, AnimationTileset2 ; $4757 ; star tile (top left quadrant)
ld hl, vChars1 + $200
- ld bc, (BANK(AnimationTileset2) << 8) + $01
+ lb bc, BANK(AnimationTileset2), $01
call CopyVideoData
ld de, AnimationTileset2 + $100 ; $481e ; star tile (bottom left quadrant)
ld hl, vChars1 + $210
- ld bc, (BANK(AnimationTileset2) << 8) + $01
+ lb bc, BANK(AnimationTileset2), $01
call CopyVideoData
- ld de, FallingStar ; $4190
+ ld de, FallingStar
ld hl, vChars1 + $220
- ld bc, (BANK(FallingStar) << 8) + $01
+ lb bc, BANK(FallingStar), (FallingStarEnd - FallingStar) / $10
call CopyVideoData
- ld hl, GameFreakLogoOAMData ; $4140
+ ld hl, GameFreakLogoOAMData
ld de, wOAMBuffer + $60
- ld bc, $40
+ ld bc, GameFreakLogoOAMDataEnd - GameFreakLogoOAMData
call CopyData
- ld hl, GameFreakShootingStarOAMData ; $4180
+ ld hl, GameFreakShootingStarOAMData
ld de, wOAMBuffer
- ld bc, $10
+ ld bc, GameFreakShootingStarOAMDataEnd - GameFreakShootingStarOAMData
jp CopyData
AnimateShootingStar: ; 7004a (1c:404a)
call LoadShootingStarGraphics
ld a, $c2 ; (SFX_1f_67 - SFX_Headers_1f) / 3
call PlaySound
+
+; Move the big star down and left across the screen.
ld hl, wOAMBuffer
- ld bc, $a004
-.asm_70058
+ lb bc, $a0, $4
+.bigStarLoop
push hl
push bc
-.asm_7005a
- ld a, [hl]
- add $4
+.bigStarInnerLoop
+ ld a, [hl] ; Y
+ add 4y
ld [hli], a
- ld a, [hl]
- add $fc
+ ld a, [hl] ; X
+ add -4
ld [hli], a
inc hl
inc hl
dec c
- jr nz, .asm_7005a
- ld c, $1
+ jr nz, .bigStarInnerLoop
+ ld c, 1
call CheckForUserInterruption
pop bc
pop hl
ret c
ld a, [hl]
- cp $50
- jr nz, .asm_70076
- jr .asm_70058
-.asm_70076
+ cp 80
+ jr nz, .next
+ jr .bigStarLoop
+.next
cp b
- jr nz, .asm_70058
+ jr nz, .bigStarLoop
ld hl, wOAMBuffer
- ld c, $4
- ld de, $4
-.loop
- ld [hl], $a0
+ ld c, 4
+ ld de, 4
+
+; Clear big star OAM.
+.clearOAMLoop
+ ld [hl], 160
add hl, de
dec c
- jr nz, .loop
- ld b, $3
-.asm_70089
+ jr nz, .clearOAMLoop
+
+; Make Gamefreak logo flash.
+ ld b, 3
+.flashLogoLoop
ld hl, rOBP0 ; $ff48
rrc [hl]
rrc [hl]
call Func_3040
- ld c, $a
+ ld c, 10
call CheckForUserInterruption
ret c
dec b
- jr nz, .asm_70089
+ jr nz, .flashLogoLoop
+; Copy 24 instances of the small stars OAM data.
+; Note that their coordinates put them off-screen.
ld de, wOAMBuffer
- ld a, $18
-.asm_700a1
+ ld a, 24
+.initSmallStarsOAMLoop
push af
- ld hl, OAMData_70101 ; $40ee
- ld bc, $4
+ ld hl, SmallStarsOAM ; $40ee
+ ld bc, SmallStarsOAMEnd - SmallStarsOAM
call CopyData
pop af
dec a
- jr nz, .asm_700a1
+ jr nz, .initSmallStarsOAMLoop
+
+; Animate the small stars falling from the Gamefreak logo.
xor a
- ld [wWhichTrade], a ; wWhichTrade
- ld hl, PointerTable_70105 ; 1c:4105
- ld c, $6
-.asm_700b8
+ ld [wMoveDownSmallStarsOAMCount], a ; wWhichTrade
+ ld hl, SmallStarsWaveCoordsPointerTable ; 1c:4105
+ ld c, 6
+.smallStarsLoop
ld a, [hli]
ld e, a
ld a, [hli]
@@ -99,15 +109,15 @@ AnimateShootingStar: ; 7004a (1c:404a)
push bc
push hl
ld hl, wOAMBuffer + $50
- ld c, $4
-.asm_700c3
+ ld c, 4
+.smallStarsInnerLoop ; introduce new wave of 4 small stars OAM entries
ld a, [de]
cp $ff
- jr z, .asm_700e8
- ld [hli], a
+ jr z, .next2
+ ld [hli], a ; Y
inc de
ld a, [de]
- ld [hli], a
+ ld [hli], a ; X
inc de
inc hl
push bc
@@ -121,41 +131,47 @@ AnimateShootingStar: ; 7004a (1c:404a)
pop bc
inc hl
dec c
- jr nz, .asm_700c3
- ld a, [wWhichTrade] ; wWhichTrade
- cp $18
- jr z, .asm_700e8
- add $6
- ld [wWhichTrade], a ; wWhichTrade
-.asm_700e8
- call Func_70142
+ jr nz, .smallStarsInnerLoop
+ ld a, [wMoveDownSmallStarsOAMCount]
+ cp 24
+ jr z, .next2
+ add 6 ; should be 4, but the extra 2 aren't visible on screen
+ ld [wMoveDownSmallStarsOAMCount], a
+.next2
+ call MoveDownSmallStars
push af
+
+; shift the existing OAM entries down to make room for the next wave
ld hl, wOAMBuffer + $10
ld de, wOAMBuffer
ld bc, $50
call CopyData
+
pop af
pop hl
pop bc
ret c
dec c
- jr nz, .asm_700b8
+ jr nz, .smallStarsLoop
and a
ret
-OAMData_70101: ; 70101 (1c:4101)
+SmallStarsOAM: ; 70101 (1c:4101)
db $00,$00,$A2,$90
+SmallStarsOAMEnd:
-PointerTable_70105: ; 70105 (1c:4105)
- dw OAMData_70111
- dw OAMData_7011d
- dw OAMData_70129
- dw OAMData_70135
- dw OAMData_70141
- dw OAMData_70141
+SmallStarsWaveCoordsPointerTable: ; 70105 (1c:4105)
+ dw SmallStarsWave1Coords
+ dw SmallStarsWave2Coords
+ dw SmallStarsWave3Coords
+ dw SmallStarsWave4Coords
+ dw SmallStarsEmptyWave
+ dw SmallStarsEmptyWave
-; each entry is only half of an OAM tile
-OAMData_70111: ; 70111 (1c:4111)
+; The stars that fall from the Gamefreak logo come in 4 waves of 4 OAM entries.
+; These arrays contain the Y and X coordinates of each OAM entry.
+
+SmallStarsWave1Coords: ; 70111 (1c:4111)
db $68,$30
db $05,$68
db $40,$05
@@ -163,7 +179,7 @@ OAMData_70111: ; 70111 (1c:4111)
db $04,$68
db $78,$07
-OAMData_7011d: ; 7011d (1c:411d)
+SmallStarsWave2Coords: ; 7011d (1c:411d)
db $68,$38
db $05,$68
db $48,$06
@@ -171,7 +187,7 @@ OAMData_7011d: ; 7011d (1c:411d)
db $04,$68
db $70,$07
-OAMData_70129: ; 70129 (1c:4129)
+SmallStarsWave3Coords: ; 70129 (1c:4129)
db $68,$34
db $05,$68
db $4c,$06
@@ -179,7 +195,7 @@ OAMData_70129: ; 70129 (1c:4129)
db $06,$68
db $64,$07
-OAMData_70135: ; 70135 (1c:4135)
+SmallStarsWave4Coords: ; 70135 (1c:4135)
db $68,$3c
db $05,$68
db $5c,$04
@@ -187,30 +203,32 @@ OAMData_70135: ; 70135 (1c:4135)
db $07,$68
db $74,$07
-OAMData_70141: ; 70141 (1c:4141)
+SmallStarsEmptyWave: ; 70141 (1c:4141)
db $FF
-Func_70142: ; 70142 (1c:4142)
- ld b, $8
-.asm_70144
+MoveDownSmallStars: ; 70142 (1c:4142)
+ ld b, 8
+.loop
ld hl, wOAMBuffer + $5c
- ld a, [wWhichTrade] ; wWhichTrade
- ld de, $fffc
+ ld a, [wMoveDownSmallStarsOAMCount]
+ ld de, -4
ld c, a
-.asm_7014e
+.innerLoop
inc [hl]
add hl, de
dec c
- jr nz, .asm_7014e
+ jr nz, .innerLoop
+; Toggle the palette so that the lower star in the small stars tile blinks in
+; and out.
ld a, [rOBP1] ; $ff49
- xor $a0
+ xor $10100000
ld [rOBP1], a ; $ff49
call Func_3061
- ld c, $3
+ ld c, 3
call CheckForUserInterruption
ret c
dec b
- jr nz, .asm_70144
+ jr nz, .loop
ret
GameFreakLogoOAMData: ; 70166 (1c:4166)
@@ -230,12 +248,15 @@ GameFreakLogoOAMData: ; 70166 (1c:4166)
db $60,$68,$83,$00
db $60,$70,$81,$00
db $60,$78,$86,$00
+GameFreakLogoOAMDataEnd:
GameFreakShootingStarOAMData: ; 701a6 (1c:41a6)
db $00,$A0,$A0,$14
db $00,$A8,$A0,$34
db $08,$A0,$A1,$14
db $08,$A8,$A1,$34
+GameFreakShootingStarOAMDataEnd:
FallingStar: ; 701b6 (1c:41b6)
INCBIN "gfx/falling_star.2bpp"
+FallingStarEnd:
diff --git a/engine/give_pokemon.asm b/engine/give_pokemon.asm
index 93499cc8..410c9c33 100755
--- a/engine/give_pokemon.asm
+++ b/engine/give_pokemon.asm
@@ -1,33 +1,36 @@
_GivePokemon: ; f66fa (3d:66fa)
+; returns success in carry
+; and whether the mon was added to the party in [wAddedToParty]
call EnableAutoTextBoxDrawing
xor a
- ld [wccd3], a
- ld a, [wPartyCount] ; wPartyCount
+ ld [wAddedToParty], a
+ ld a, [wPartyCount]
cp PARTY_LENGTH
- jr c, .partyNotFull
- ld a, [W_NUMINBOX] ; wda80
+ jr c, .addToParty
+ ld a, [W_NUMINBOX]
cp MONS_PER_BOX
jr nc, .boxFull
+; add to box
xor a
- ld [W_ENEMYBATTSTATUS3], a ; W_ENEMYBATTSTATUS3
+ ld [W_ENEMYBATTSTATUS3], a
ld a, [wcf91]
ld [wEnemyMonSpecies2], a
callab LoadEnemyMonData
call SetPokedexOwnedFlag
callab SendNewMonToBox
ld hl, wcf4b
- ld a, [wd5a0]
+ ld a, [wCurrentBoxNum]
and $7f
cp 9
- jr c, .boxEightOrLesser ; do not adjust box number to a 2 digit number
+ jr c, .singleDigitBoxNum
sub 9
ld [hl], "1"
inc hl
add "0"
- jr .continue
-.boxEightOrLesser
+ jr .next
+.singleDigitBoxNum
add "1"
-.continue
+.next
ld [hli], a
ld [hl], "@"
ld hl, SetToBoxText
@@ -39,14 +42,14 @@ _GivePokemon: ; f66fa (3d:66fa)
call PrintText
and a
ret
-.partyNotFull
+.addToParty
call SetPokedexOwnedFlag
ld hl, UnknownTerminator_f6794
call PrintText
call AddPartyMon
- ld a, $1
+ ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld [wccd3], a
+ ld [wAddedToParty], a
scf
ret
@@ -58,8 +61,8 @@ SetPokedexOwnedFlag: ; f676c (3d:676c)
ld a, [wd11e]
dec a
ld c, a
- ld hl, wPokedexOwned ; wPokedexOwned
- ld b, $1
+ ld hl, wPokedexOwned
+ ld b, FLAG_SET
predef FlagActionPredef
pop af
ld [wd11e], a
diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm
index 0bd906c7..37b56e2d 100755
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -1,5 +1,5 @@
AnimateHallOfFame: ; 701c6 (1c:41c6)
- call Func_7047b
+ call HoFFadeOutScreenAndMusic
call ClearScreen
ld c, 100
call DelayFrames
@@ -8,10 +8,10 @@ AnimateHallOfFame: ; 701c6 (1c:41c6)
call DisableLCD
ld hl,vBGMap0
ld bc, $800
- ld a, $7f
+ ld a, " "
call FillMemory
call EnableLCD
- ld hl, rLCDC ; $ff40
+ ld hl, rLCDC
set 3, [hl]
xor a
ld hl, wHallOfFame
@@ -21,16 +21,16 @@ AnimateHallOfFame: ; 701c6 (1c:41c6)
ld [wUpdateSpritesEnabled], a
ld [hTilesetType], a
ld [W_SPRITEFLIPPED], a
- ld [wd358], a
- ld [wTrainerScreenY], a
+ ld [wLetterPrintingDelayFlags], a ; no delay
+ ld [wHoFMonOrPlayer], a ; mon
inc a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld hl, wd5a2
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld hl, wNumHoFTeams
ld a, [hl]
inc a
- jr z, .asm_70211
+ jr z, .skipInc ; don't wrap around to 0
inc [hl]
-.asm_70211
+.skipInc
ld a, $90
ld [hWY], a
ld c, $1f ; BANK(Music_HallOfFame)
@@ -38,29 +38,29 @@ AnimateHallOfFame: ; 701c6 (1c:41c6)
call PlayMusic
ld hl, wPartySpecies
ld c, $ff
-.asm_70221
+.partyMonLoop
ld a, [hli]
cp $ff
- jr z, .asm_70266
+ jr z, .doneShowingParty
inc c
push hl
push bc
- ld [wWhichTrade], a ; wWhichTrade
+ ld [wHoFMonSpecies], a
ld a, c
- ld [wTrainerEngageDistance], a
- ld hl, wPartyMon1Level ; wPartyMon1Level
+ ld [wHoFPartyMonIndex], a
+ ld hl, wPartyMon1Level
ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld a, [hl]
- ld [wTrainerFacingDirection], a
- call Func_702a2
- call Func_7030e
- ld c, $50
+ ld [wHoFMonLevel], a
+ call HoFShowMonOrPlayer
+ call HoFDisplayAndRecordMonInfo
+ ld c, 80
call DelayFrames
- hlCoord 2, 13
- ld bc, $30e
+ coord hl, 2, 13
+ lb bc, $3, $e
call TextBoxBorder
- hlCoord 4, 15
+ coord hl, 4, 15
ld de, HallOfFameText
call PlaceString
ld c, 180
@@ -68,8 +68,8 @@ AnimateHallOfFame: ; 701c6 (1c:41c6)
call GBFadeOutToWhite
pop bc
pop hl
- jr .asm_70221
-.asm_70266
+ jr .partyMonLoop
+.doneShowingParty
ld a, c
inc a
ld hl, wHallOfFame
@@ -78,137 +78,138 @@ AnimateHallOfFame: ; 701c6 (1c:41c6)
ld [hl], $ff
callab SaveHallOfFameTeams ; useless since in same bank
xor a
- ld [wWhichTrade], a ; wWhichTrade
+ ld [wHoFMonSpecies], a
inc a
- ld [wTrainerScreenY], a
- call Func_702a2
- call Func_703d1
- call Func_7047b
+ ld [wHoFMonOrPlayer], a ; player
+ call HoFShowMonOrPlayer
+ call HoFDisplayPlayerStats
+ call HoFFadeOutScreenAndMusic
xor a
ld [hWY], a
- ld hl, rLCDC ; $ff40
+ ld hl, rLCDC
res 3, [hl]
ret
HallOfFameText: ; 70295 (1c:4295)
db "HALL OF FAME@"
-Func_702a2: ; 702a2 (1c:42a2)
+HoFShowMonOrPlayer: ; 702a2 (1c:42a2)
call ClearScreen
ld a, $d0
ld [hSCY], a
ld a, $c0
ld [hSCX], a
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wHoFMonSpecies]
ld [wcf91], a
ld [wd0b5], a
ld [wBattleMonSpecies2], a
- ld [wcf1d], a
- ld a, [wTrainerScreenY]
+ ld [wWholeScreenPaletteMonSpecies], a
+ ld a, [wHoFMonOrPlayer]
and a
- jr z, .asm_702c7
- call Func_70390
- jr .asm_702d5
-.asm_702c7
- hlCoord 12, 5
+ jr z, .showMon
+; show player
+ call HoFLoadPlayerPics
+ jr .next1
+.showMon
+ coord hl, 12, 5
call GetMonHeader
call LoadFrontSpriteByMonIndex
predef LoadMonBackPic
-.asm_702d5
- ld b, $b
- ld c, $0
- call GoPAL_SET
- ld a, $e4
- ld [rBGP], a ; $ff47
+.next1
+ ld b, SET_PAL_POKEMON_WHOLE_SCREEN
+ ld c, 0
+ call RunPaletteCommand
+ ld a, %11100100
+ ld [rBGP], a
call Func_3021
- ld c, $31
- call Func_703c7
+ ld c, $31 ; back pic
+ call HoFLoadMonPlayerPicTileIDs
ld d, $a0
- ld e, $4
+ ld e, 4
ld a, [wOnSGB]
and a
- jr z, .asm_702f4
- sla e
-.asm_702f4
- call .asm_70302
+ jr z, .next2
+ sla e ; scroll more slowly on SGB
+.next2
+ call .ScrollPic ; scroll back pic left
xor a
ld [hSCY], a
- ld c, a
- call Func_703c7
- ld d, $0
- ld e, $fc
-.asm_70302
+ ld c, a ; front pic
+ call HoFLoadMonPlayerPicTileIDs
+ ld d, 0
+ ld e, -4
+; scroll front pic right
+
+.ScrollPic
call DelayFrame
ld a, [hSCX]
add e
ld [hSCX], a
cp d
- jr nz, .asm_70302
+ jr nz, .ScrollPic
ret
-Func_7030e: ; 7030e (1c:430e)
- ld a, [wTrainerEngageDistance]
+HoFDisplayAndRecordMonInfo: ; 7030e (1c:430e)
+ ld a, [wHoFPartyMonIndex]
ld hl, wPartyMonNicks ; wPartyMonNicks
call GetPartyMonName
- call Func_70348
- ld a, [wTrainerEngageDistance]
+ call HoFDisplayMonInfo
+ ld a, [wHoFPartyMonIndex]
ld [wWhichPokemon], a
callab Func_fce18 ; 3f:4e18
jr nc, .asm_70336
- ld e,$22
+ ld e, $22
callab Func_f0000
jr .asm_7033c
.asm_70336
- ld a,[wWhichTrade]
+ ld a,[wHoFMonSpecies]
call PlayCry
.asm_7033c
- jp Func_7045c
+ jp HoFRecordMonInfo
Func_7033f: ; 7033f (1c:433f)
- call Func_70348
- ld a,[wWhichTrade]
+ call HoFDisplayMonInfo
+ ld a,[wHoFMonSpecies]
jp PlayCry
-Func_70348: ; 70348 (1c:4348)
+HoFDisplayMonInfo: ; 70348 (1c:4348)
hlCoord 0, 2
- ld bc, $90a
+ lb bc, 9, 10
call TextBoxBorder
- hlCoord 2, 6
+ coord hl, 2, 6
ld de, HoFMonInfoText
call PlaceString
- hlCoord 1, 4
+ coord hl, 1, 4
ld de, wcd6d
call PlaceString
- ld a, [wTrainerFacingDirection]
- hlCoord 8, 7
+ ld a, [wHoFMonLevel]
+ coord hl, 8, 7
call PrintLevelCommon
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wHoFMonSpecies]
ld [wd0b5], a
- hlCoord 3, 9
+ coord hl, 3, 9
predef PrintMonType
ret
- ;ld a, [wWhichTrade] ; wWhichTrade
- ;jp PlayCry
HoFMonInfoText: ; 7037b (1c:437b)
db "LEVEL/"
next "TYPE1/"
next "TYPE2/@"
-Func_70390: ; 70390 (1c:433e)
+HoFLoadPlayerPics: ; 70390 (1c:433e)
ld de, RedPicFront ; $6ede
ld a, BANK(RedPicFront)
call UncompressSpriteFromDE
ld a,$0
call SwitchSRAMBankAndLatchClockData
ld hl, S_SPRITEBUFFER1
- ld de, $a000
+ ld de, S_SPRITEBUFFER0
ld bc, $310
call CopyData
call PrepareRTCDataAndDisableSRAM
ld de, vFrontPic
call InterlaceMergeSpriteBuffers
- ld de, RedPicBack ; $7e0a
+ ld de, RedPicBack
ld a, BANK(RedPicBack)
call UncompressSpriteFromDE
predef ScaleSpriteByTwo
@@ -216,52 +217,52 @@ Func_70390: ; 70390 (1c:433e)
call InterlaceMergeSpriteBuffers
ld c, $1
-Func_703c7: ; 703c7 (1c:43c7)
+HoFLoadMonPlayerPicTileIDs: ; 703c7 (1c:43c7)
ld b, $0
- hlCoord 12, 5
+ coord hl, 12, 5
predef_jump CopyTileIDsFromList
-Func_703d1: ; 703d1 (1c:43d1)
+HoFDisplayPlayerStats: ; 703d1 (1c:43d1)
ld hl, wd747
set 3, [hl]
predef DisplayDexRating
hlCoord 0, 4
- ld bc, $60a
+ lb bc, 6, 10
call TextBoxBorder
hlCoord 5, 0
- ld bc, $209
+ lb bc, 2, 9
call TextBoxBorder
- hlCoord 7, 2
- ld de, wPlayerName ; wd158
+ coord hl, 7, 2
+ ld de, wPlayerName
call PlaceString
- hlCoord 1, 6
+ coord hl, 1, 6
ld de, HoFPlayTimeText
call PlaceString
- hlCoord 5, 7
+ coord hl, 5, 7
ld de, W_PLAYTIMEHOURS + 1
- ld bc, $103
+ lb bc, 1, 3
call PrintNumber
ld [hl], $6d
inc hl
ld de, W_PLAYTIMEMINUTES + 1
- ld bc, $8102
+ lb bc, LEADING_ZEROES | 1, 2
call PrintNumber
- hlCoord 1, 9
+ coord hl, 1, 9
ld de, HoFMoneyText
call PlaceString
- hlCoord 4, 10
- ld de, wPlayerMoney ; wPlayerMoney
+ coord hl, 4, 10
+ ld de, wPlayerMoney
ld c, $a3
call PrintBCDNumber
ld hl, DexSeenOwnedText
- call Func_7043a
+ call HoFPrintTextAndDelay
ld hl, DexRatingText
- call Func_7043a
- ld hl, wcc5d
+ call HoFPrintTextAndDelay
+ ld hl, wDexRatingText
-Func_7043a: ; 7043a (1c:443a)
+HoFPrintTextAndDelay: ; 7043a (1c:443a)
call PrintText
- ld c, $78
+ ld c, 120
jp DelayFrames
HoFPlayTimeText: ; 70442 (1c:4442)
@@ -278,25 +279,25 @@ DexRatingText: ; 70457 (1c:4457)
TX_FAR _DexRatingText
db "@"
-Func_7045c: ; 7045c (1c:445c)
+HoFRecordMonInfo: ; 7045c (1c:445c)
ld hl, wHallOfFame
ld bc, HOF_MON
- ld a, [wTrainerEngageDistance]
+ ld a, [wHoFPartyMonIndex]
call AddNTimes
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wHoFMonSpecies]
ld [hli], a
- ld a, [wTrainerFacingDirection]
+ ld a, [wHoFMonLevel]
ld [hli], a
ld e, l
ld d, h
ld hl, wcd6d
- ld bc, $b
+ ld bc, NAME_LENGTH
jp CopyData
-Func_7047b: ; 7047b (1c:447b)
- ld a, $a
- ld [wcfc8], a
- ld [wcfc9], a
+HoFFadeOutScreenAndMusic: ; 7047b (1c:447b)
+ ld a, 10
+ ld [wAudioFadeOutCounterReloadValue], a
+ ld [wAudioFadeOutCounter], a
ld a, $ff
- ld [wMusicHeaderPointer], a
+ ld [wAudioFadeOutControl], a
jp GBFadeOutToWhite
diff --git a/engine/hidden_object_functions14.asm b/engine/hidden_object_functions14.asm
index a162c905..97187638 100755
--- a/engine/hidden_object_functions14.asm
+++ b/engine/hidden_object_functions14.asm
@@ -2,7 +2,7 @@ PrintNotebookText: ; 52996 (14:6996)
call EnableAutoTextBoxDrawing
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld a, [wTrainerSpriteOffset]
+ ld a, [wHiddenObjectFunctionArgument]
jp PrintPredefTextID
TMNotebook: ; 529a4 (14:69a4)
@@ -11,7 +11,7 @@ TMNotebook: ; 529a4 (14:69a4)
db "@"
ViridianSchoolNotebook: ; 529aa (14:69aa)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianSchoolNotebookText1
call PrintText
call TurnPageSchoolNotebook
@@ -66,8 +66,7 @@ ViridianSchoolNotebookText4: ; 52a03 (14:6a03)
PrintFightingDojoText2: ; 52a08 (14:6a08)
call EnableAutoTextBoxDrawing
- ld a, $37
- jp PrintPredefTextID
+ tx_pre_jump FightingDojoText_52a10
FightingDojoText_52a10: ; 52a10 (14:6a10)
TX_FAR _FightingDojoText_52a10
@@ -75,8 +74,7 @@ FightingDojoText_52a10: ; 52a10 (14:6a10)
PrintFightingDojoText3: ; 52a15 (14:6a15)
call EnableAutoTextBoxDrawing
- ld a, $38
- jp PrintPredefTextID
+ tx_pre_jump FightingDojoText_52a1d
FightingDojoText_52a1d: ; 52a1d (14:6a1d)
TX_FAR _FightingDojoText_52a1d
@@ -84,8 +82,7 @@ FightingDojoText_52a1d: ; 52a1d (14:6a1d)
PrintFightingDojoText: ; 52a22 (14:6a22)
call EnableAutoTextBoxDrawing
- ld a, $36
- jp PrintPredefTextID
+ tx_pre_jump FightingDojoText
FightingDojoText: ; 52a2a (14:6a2a)
TX_FAR _FightingDojoText
@@ -93,11 +90,10 @@ FightingDojoText: ; 52a2a (14:6a2a)
PrintIndigoPlateauHQText: ; 52a2f (14:6a2f)
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
call EnableAutoTextBoxDrawing
- ld a, $27
- jp PrintPredefTextID
+ tx_pre_jump IndigoPlateauHQText
IndigoPlateauHQText: ; 52a3d (14:6a3d)
TX_FAR _IndigoPlateauHQText
diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm
index 9dbcbf98..77f3eeb9 100755
--- a/engine/hidden_object_functions17.asm
+++ b/engine/hidden_object_functions17.asm
@@ -1,7 +1,6 @@
PrintRedsNESText: ; 5db79 (17:5b79)
call EnableAutoTextBoxDrawing
- ld a, $4 ; RedBedroomSNESText
- jp PrintPredefTextID
+ tx_pre_jump RedBedroomSNESText
RedBedroomSNESText: ; 5db81 (17:5b81)
TX_FAR _RedBedroomSNESText
@@ -9,19 +8,17 @@ RedBedroomSNESText: ; 5db81 (17:5b81)
OpenRedsPC: ; 5db86 (17:5b86)
call EnableAutoTextBoxDrawing
- ld a, $3
- jp PrintPredefTextID
+ tx_pre_jump RedBedroomPCText
-RedBedroomPC: ; 5db8e (17:5b8e)
+RedBedroomPCText: ; 5db8e (17:5b8e)
db $fc ; FuncTX_ItemStoragePC
Route15GateLeftBinoculars: ; 5db8f (17:5b8f)
ld a, [wSpriteStateData1 + 9]
- cp $4 ; i
+ cp SPRITE_FACING_UP
ret nz
call EnableAutoTextBoxDrawing
- ld a, $a ; text id Route15UpstairsBinocularsText
- call PrintPredefTextID
+ tx_pre Route15UpstairsBinocularsText
ld a, ARTICUNO
ld [wcf91], a
call PlayCry
@@ -36,8 +33,7 @@ AerodactylFossil: ; 5dbad (17:5bad)
ld [wcf91], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
- ld a, $9
- call PrintPredefTextID
+ tx_pre AerodactylFossilText
ret
AerodactylFossilText: ; 5dbbe (17:5bbe)
@@ -49,8 +45,7 @@ KabutopsFossil: ; 5bdc3 (17:5bc3)
ld [wcf91], a
call DisplayMonFrontSpriteInBox
call EnableAutoTextBoxDrawing
- ld a, $b
- call PrintPredefTextID
+ tx_pre KabutopsFossilText
ret
KabutopsFossilText: ; 5dbd4 (17:5bd4)
@@ -60,8 +55,8 @@ KabutopsFossilText: ; 5dbd4 (17:5bd4)
DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
; Displays a pokemon's front sprite in a pop-up window.
; [wcf91] = pokemon interal id number
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
ld [hWY], a
@@ -76,9 +71,9 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
ld de, vChars1 + $310
call LoadMonFrontSprite
ld a, $80
- ld [$ffe1], a
- hlCoord 10, 11
- predef Func_3f073
+ ld [hStartTileID], a
+ coord hl, 10, 11
+ predef AnimateSendingOutMon
call WaitForTextScrollButtonPress
call LoadScreenTilesFromBuffer1
call Delay3
@@ -90,12 +85,12 @@ PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a)
call EnableAutoTextBoxDrawing
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld a, [wWhichTrade]
+ ld a, [wHiddenObjectFunctionArgument]
call PrintPredefTextID
ret
LinkCableHelp: ; 5dc29 (17:5c29)
- db $08 ; asm
+ TX_ASM
call SaveScreenTilesToBuffer1
ld hl, LinkCableHelpText1
call PrintText
@@ -103,7 +98,7 @@ LinkCableHelp: ; 5dc29 (17:5c29)
ld [W_ANIMATIONID], a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, $3
+ ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
ld a, $3
ld [wMaxMenuItem], a
@@ -111,24 +106,24 @@ LinkCableHelp: ; 5dc29 (17:5c29)
ld [wTopMenuItemY], a
ld a, $1
ld [wTopMenuItemX], a
-.asm_5c51
+.linkHelpLoop
ld hl, wd730
set 6, [hl]
- ld hl, wTileMap
+ coord hl, 0, 0
ld b, $8
ld c, $d
call TextBoxBorder
- ld hl, wTileMap + $2a
+ coord hl, 2, 2
ld de, HowToLinkText
call PlaceString
ld hl, LinkCableHelpText2
call PrintText
call HandleMenuInput
- bit 1, a
- jr nz, .asm_5dc93 ; 0x5dc74 $1d
+ bit 1, a ; pressed b
+ jr nz, .exit
ld a, [wCurrentMenuItem]
- cp $3
- jr z, .asm_5dc93 ; 0x5dc7b $16
+ cp $3 ; pressed a on "STOP READING"
+ jr z, .exit
ld hl, wd730
res 6, [hl]
ld hl, LinkCableInfoTexts
@@ -140,8 +135,8 @@ LinkCableHelp: ; 5dc29 (17:5c29)
ld h, [hl]
ld l, a
call PrintText
- jp .asm_5c51
-.asm_5dc93
+ jp .linkHelpLoop
+.exit
ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer1
@@ -179,7 +174,7 @@ LinkCableInfoText3: ; 5dce8 (17:5ce8)
db "@"
ViridianSchoolBlackboard: ; 5dced (17:5ced)
- db $08 ; asm
+ TX_ASM
call SaveScreenTilesToBuffer1
ld hl, ViridianSchoolBlackboardText1
call PrintText
@@ -187,7 +182,7 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
ld [W_ANIMATIONID], a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, $33
+ ld a, D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
ld a, $2
ld [wMaxMenuItem], a
@@ -195,25 +190,26 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
ld [wTopMenuItemY], a
ld a, $1
ld [wTopMenuItemX], a
-.asm_5dd15
+.blackboardLoop
ld hl, wd730
set 6, [hl]
- ld hl, wTileMap
- ld bc, $060a
+ coord hl, 0, 0
+ lb bc, 6, 10
call TextBoxBorder
- ld hl, wTileMap + $29
+ coord hl, 1, 2
ld de, StatusAilmentText1
call PlaceString
- ld hl, wTileMap + $2e
+ coord hl, 6, 2
ld de, StatusAilmentText2
call PlaceString
ld hl, ViridianSchoolBlackboardText2
call PrintText
- call HandleMenuInput
- bit 1, a
+ call HandleMenuInput ; pressing up and down is handled in here
+ bit 1, a ; pressed b
jr nz, .exitBlackboard
- bit 4, a
- jr z, .asm_5dd5c
+ bit 4, a ; pressed right
+ jr z, .didNotPressRight
+ ; move cursor to right column
ld a, $2
ld [wMaxMenuItem], a
ld a, $2
@@ -222,10 +218,11 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
ld [wTopMenuItemX], a
ld a, $3
ld [W_ANIMATIONID], a
- jr .asm_5dd15
-.asm_5dd5c
- bit 5, a
- jr z, .asm_5dd75
+ jr .blackboardLoop
+.didNotPressRight
+ bit 5, a ; pressed left
+ jr z, .didNotPressLeftOrRight
+ ; move cursor to left column
ld a, $2
ld [wMaxMenuItem], a
ld a, $2
@@ -234,14 +231,16 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
ld [wTopMenuItemX], a
xor a
ld [W_ANIMATIONID], a
- jr .asm_5dd15
-.asm_5dd75
+ jr .blackboardLoop
+.didNotPressLeftOrRight
ld a, [wCurrentMenuItem]
ld b, a
ld a, [W_ANIMATIONID]
add b
- cp $5
+ cp $5 ; cursor is pointing to "QUIT"
jr z, .exitBlackboard
+ ; we must have pressed a on a status condition
+ ; so print the text
ld hl, wd730
res 6, [hl]
ld hl, ViridianBlackboardStatusPointers
@@ -253,7 +252,7 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced)
ld h, [hl]
ld l, a
call PrintText
- jp .asm_5dd15
+ jp .blackboardLoop
.exitBlackboard
ld hl, wd730
res 6, [hl]
@@ -307,8 +306,7 @@ ViridianBlackboardFrozenText: ; 5ddea (17:5dea)
PrintTrashText: ; 5ddef (17:5def)
call EnableAutoTextBoxDrawing
- ld a, $26
- jp PrintPredefTextID
+ tx_pre_jump VermilionGymTrashText
VermilionGymTrashText: ; 5ddf7 (17:5df7)
TX_FAR _VermilionGymTrashText
@@ -316,37 +314,34 @@ VermilionGymTrashText: ; 5ddf7 (17:5df7)
GymTrashScript: ; 5ddfc (17:5dfc)
call EnableAutoTextBoxDrawing
- ld a, [wWhichTrade] ; wWhichTrade
- ld [wcd5b], a
+ ld a, [wHiddenObjectFunctionArgument]
+ ld [wGymTrashCanIndex], a
; Don't do the trash can puzzle if it's already been done.
- ld a, [wd773]
- bit 0, a
+ CheckEvent EVENT_2ND_LOCK_OPENED
jr z, .ok
- ld a, $26 ; DisplayTextID $26 = VermilionGymTrashText (nothing in the trash)
- jp PrintPredefTextID
+ tx_pre_jump VermilionGymTrashText
.ok
- bit 1, a
+ CheckEventReuseA EVENT_1ST_LOCK_OPENED
jr nz, .trySecondLock
- ld a, [wd743]
+ ld a, [wFirstLockTrashCanIndex]
ld b, a
- ld a, [wcd5b]
+ ld a, [wGymTrashCanIndex]
cp b
jr z, .openFirstLock
- ld a, $26 ; DisplayTextID $26 = VermilionGymTrashText (nothing in the trash)
+ tx_pre_id VermilionGymTrashText
jr .done
.openFirstLock
; Next can is trying for the second switch.
- ld hl, wd773
- set 1, [hl]
+ SetEvent EVENT_1ST_LOCK_OPENED
- ld hl, GymTrashCans ; $5e7d
- ld a, [wcd5b]
+ ld hl, GymTrashCans
+ ld a, [wGymTrashCanIndex]
; * 5
ld b, a
add a
@@ -358,12 +353,21 @@ GymTrashScript: ; 5ddfc (17:5dfc)
add hl, de
ld a, [hli]
- ld [$ffdb], a
+; There is a bug in this code. It should calculate a value in the range [0, 3]
+; but if the mask and random number don't have any 1 bits in common, then
+; the result of the AND will be 0. When 1 is subtracted from that, the value
+; will become $ff. This will result in 255 being added to hl, which will cause
+; hl to point to one of the zero bytes that pad the end of the ROM bank.
+; Trash can 0 was intended to be able to have the second lock only when the
+; first lock was in trash can 1 or 3. However, due to this bug, trash can 0 can
+; have the second lock regardless of which trash can had the first lock.
+
+ ld [hGymTrashCanRandNumMask], a
push hl
call Random
swap a
ld b, a
- ld a, [$ffdb]
+ ld a, [hGymTrashCanRandNumMask]
and b
dec a
pop hl
@@ -373,42 +377,46 @@ GymTrashScript: ; 5ddfc (17:5dfc)
add hl, de
ld a, [hl]
and $f
- ld [wd744], a
+ ld [wSecondLockTrashCanIndex], a
- ld a, $3b ; DisplayTextID $3b = VermilionGymTrashSuccesText1 (first lock opened!)
+ tx_pre_id VermilionGymTrashSuccesText1
jr .done
.trySecondLock
- ld a, [wd744]
+ ld a, [wSecondLockTrashCanIndex]
ld b, a
- ld a, [wcd5b]
+ ld a, [wGymTrashCanIndex]
cp b
jr z, .openSecondLock
; Reset the cans.
- ld hl, wd773
- res 1, [hl]
+ ResetEvent EVENT_1ST_LOCK_OPENED
call Random
and $e
- ld [wd743], a
+ ld [wFirstLockTrashCanIndex], a
- ld a, $3e ; DisplayTextID $3e = VermilionGymTrashFailText (locks reset!)
+ tx_pre_id VermilionGymTrashFailText
jr .done
.openSecondLock
; Completed the trash can puzzle.
- ld hl, wd773
- set 0, [hl]
+ SetEvent EVENT_2ND_LOCK_OPENED
ld hl, wd126
set 6, [hl]
- ld a, $3d ; DisplayTextID $3d = VermilionGymTrashSuccesText3 (2nd lock opened!)
+ tx_pre_id VermilionGymTrashSuccesText3
.done
jp PrintPredefTextID
GymTrashCans: ; 5de7d (17:5e7d)
+; byte 0: mask for random number
+; bytes 1-4: indices of the trash cans that can have the second lock
+; (but see the comment above explaining a bug regarding this)
+; Note that the mask is simply the number of valid trash can indices that
+; follow. The remaining bytes are filled with 0 to pad the length of each entry
+; to 5 bytes.
db 2, 1, 3, 0, 0 ; 0
db 3, 0, 2, 4, 0 ; 1
db 2, 1, 5, 0, 0 ; 2
@@ -428,39 +436,41 @@ GymTrashCans: ; 5de7d (17:5e7d)
VermilionGymTrashSuccesText1: ; 5dec8 (17:5ec8)
TX_FAR _VermilionGymTrashSuccesText1
- db $08 ; asm
+ TX_ASM
call WaitForSoundToFinish
- ld a, (SFX_02_49 - SFX_Headers_02) / 3
+ ld a, SFX_SWITCH
call PlaySound
call WaitForSoundToFinish
jp TextScriptEnd
+; unused
VermilionGymTrashSuccesText2: ; 5dedb (17:5edb)
TX_FAR _VermilionGymTrashSuccesText2
db "@"
-UnnamedText_5dee0: ; 5dee0 (17:5ee0)
- db $08 ; asm
+; unused
+VermilionGymTrashSuccesPlaySfx: ; 5dee0 (17:5ee0)
+ TX_ASM
call WaitForSoundToFinish
- ld a, (SFX_02_49 - SFX_Headers_02) / 3
+ ld a, SFX_SWITCH
call PlaySound
call WaitForSoundToFinish
jp TextScriptEnd
VermilionGymTrashSuccesText3: ; 5deef (17:5eef)
TX_FAR _VermilionGymTrashSuccesText3
- db $08 ; asm
+ TX_ASM
call WaitForSoundToFinish
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
call WaitForSoundToFinish
jp TextScriptEnd
VermilionGymTrashFailText: ; 5df02 (17:5f02)
TX_FAR _VermilionGymTrashFailText
- db $08 ; asm
+ TX_ASM
call WaitForSoundToFinish
- ld a, (SFX_02_51 - SFX_Headers_02) / 3
+ ld a, SFX_DENIED
call PlaySound
call WaitForSoundToFinish
jp TextScriptEnd
diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm
index 7696626f..0a93fd44 100755
--- a/engine/hidden_object_functions18.asm
+++ b/engine/hidden_object_functions18.asm
@@ -1,31 +1,31 @@
GymStatues: ; 62419 (18:6419)
-; if in a gym and have the corresponding badge, a = $D and jp PrintPredefTextID
-; if in a gym and don’t have the corresponding badge, a = $C and jp PrintPredefTextID
+; if in a gym and have the corresponding badge, a = GymStatueText2_id and jp PrintPredefTextID
+; if in a gym and don’t have the corresponding badge, a = GymStatueText1_id and jp PrintPredefTextID
; else ret
call EnableAutoTextBoxDrawing
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
ld hl, .BadgeFlags
ld a, [W_CURMAP]
ld b, a
-.asm_62429
+.loop
ld a, [hli]
cp $ff
ret z
cp b
- jr z, .asm_62433 ; 0x6242e $3
+ jr z, .match
inc hl
- jr .asm_62429 ; 0x62431 $f6
-.asm_62433
+ jr .loop
+.match
ld b, [hl]
- ld a, [wd72a]
+ ld a, [wBeatGymFlags]
and b
cp b
- ld a, $d
- jr z, .asm_6243f ; 0x6243b $2
- ld a, $c
-.asm_6243f
+ tx_pre_id GymStatueText2
+ jr z, .haveBadge
+ tx_pre_id GymStatueText1
+.haveBadge
jp PrintPredefTextID
.BadgeFlags: ; 62442 (18:6442)
@@ -49,41 +49,53 @@ GymStatueText2: ; 62458 (18:6458)
PrintBenchGuyText: ; 6245d (18:645d)
call EnableAutoTextBoxDrawing
- ld hl, PokeCenterMapIDList
+ ld hl, BenchGuyTextPointers
ld a, [W_CURMAP]
ld b, a
-.asm_62467
+.loop
ld a, [hli]
cp $ff
ret z
cp b
- jr z, .asm_62472
+ jr z, .match
inc hl
inc hl
- jr .asm_62467
-.asm_62472
+ jr .loop
+.match
ld a, [hli]
ld b, a
ld a, [wSpriteStateData1 + 9]
cp b
- jr nz, .asm_62467
+ jr nz, .loop ; player isn't facing left at the bench guy
ld a, [hl]
jp PrintPredefTextID
-; format: db map id, 08, text id of PredefTextIDPointerTable
-PokeCenterMapIDList: ; 6247e (18:647e)
- db VIRIDIAN_POKECENTER,$08,$0F
- db PEWTER_POKECENTER,$08,$10
- db CERULEAN_POKECENTER,$08,$11
- db LAVENDER_POKECENTER,$08,$12
- db VERMILION_POKECENTER,$08,$13
- db CELADON_POKECENTER,$08,$14
- db CELADON_HOTEL,$08,$15
- db FUCHSIA_POKECENTER,$08,$16
- db CINNABAR_POKECENTER,$08,$17
- db SAFFRON_POKECENTER,$08,$18
- db MT_MOON_POKECENTER,$08,$19
- db ROCK_TUNNEL_POKECENTER,$08,$1A
+; format: db map id, player sprite facing direction, text id of PredefTextIDPointerTable
+BenchGuyTextPointers: ; 6247e (18:647e)
+ db VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT
+ db (ViridianCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db PEWTER_POKECENTER, SPRITE_FACING_LEFT
+ db (PewterCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db CERULEAN_POKECENTER, SPRITE_FACING_LEFT
+ db (CeruleanCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db LAVENDER_POKECENTER, SPRITE_FACING_LEFT
+ db (LavenderCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db VERMILION_POKECENTER, SPRITE_FACING_LEFT
+ db (VermilionCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db CELADON_POKECENTER, SPRITE_FACING_LEFT
+ db (CeladonCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db CELADON_HOTEL, SPRITE_FACING_LEFT
+ db (CeladonCityHotelText_id - TextPredefs) / 2 + 1
+ db FUCHSIA_POKECENTER, SPRITE_FACING_LEFT
+ db (FuchsiaCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db CINNABAR_POKECENTER, SPRITE_FACING_LEFT
+ db (CinnabarIslandPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db SAFFRON_POKECENTER, SPRITE_FACING_LEFT
+ db (SaffronCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db MT_MOON_POKECENTER, SPRITE_FACING_LEFT
+ db (MtMoonPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
+ db ROCK_TUNNEL_POKECENTER,SPRITE_FACING_LEFT
+ db (RockTunnelPokecenterBenchGuyText_id - TextPredefs) / 2 + 1
db $FF
ViridianCityPokecenterBenchGuyText: ; 624a3 (18:64a3)
@@ -139,11 +151,10 @@ CinnabarIslandPokecenterBenchGuyText: ; 624df (18:64df)
db "@"
SaffronCityPokecenterBenchGuyText: ; 624e4 (18:64e4)
- db $8 ; asm
- ld a, [wd838]
- bit 7, a
+ TX_ASM
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
ld hl, SaffronCityPokecenterBenchGuyText2
- jr nz, .asm_624f2 ; 0x624ed $3
+ jr nz, .asm_624f2
ld hl, SaffronCityPokecenterBenchGuyText1
.asm_624f2
call PrintText
@@ -163,13 +174,12 @@ CeladonCityHotelText: ; 62502 (18:6502)
ret
-TerminatorText_62508: ; 62508 (18:6508)
+UnusedPredefText: ; 62508 (18:6508)
db "@"
PrintBookcaseText: ; 6509 (18:6509)
call EnableAutoTextBoxDrawing
- ld a, $e ; BookcaseText
- jp PrintPredefTextID
+ tx_pre_jump BookcaseText
BookcaseText: ; 62511 (18:6511)
TX_FAR _BookcaseText
@@ -177,13 +187,12 @@ BookcaseText: ; 62511 (18:6511)
OpenPokemonCenterPC: ; 62516 (18:6516)
ld a, [wSpriteStateData1 + 9]
- cp $4 ; check to see if player is facing up
+ cp SPRITE_FACING_UP ; check to see if player is facing up
ret nz
call EnableAutoTextBoxDrawing
ld a, $1
ld [wAutoTextBoxDrawingControl], a
- ld a, $1f ; PredefText1f
- jp PrintPredefTextID
+ tx_pre_jump PokemonCenterPCText
-PredefText1f: ; 62529 (18:6529)
+PokemonCenterPCText: ; 62529 (18:6529)
db $F9 ; FuncTX_PokemonCenterPC
diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm
index c471c7bb..80251b94 100755
--- a/engine/hidden_object_functions3.asm
+++ b/engine/hidden_object_functions3.asm
@@ -34,33 +34,48 @@ PrintBookshelfText: ; fb50 (3:7b50)
.noMatch
ld a, $ff
ld [$ffdb], a
- ld b, BANK(PrintCardKeyText)
- ld hl, PrintCardKeyText
- jp Bankswitch
+ jpba PrintCardKeyText
; format: db tileset id, bookshelf tile id, text id
BookshelfTileIDs: ; fb8b (3:7b8b)
- db PLATEAU, $30, $3A
- db HOUSE, $3D, $3F
- db HOUSE, $1E, $40
- db MANSION, $32, $40
- db REDS_HOUSE_1, $32, $40
- db LAB, $28, $40
- db LOBBY, $16, $41
- db GYM, $1D, $40
- db DOJO, $1D, $40
- db GATE, $22, $40
- db MART, $54, $42
- db MART, $55, $42
- db POKECENTER, $54, $42
- db POKECENTER, $55, $42
- db LOBBY, $50, $42
- db LOBBY, $52, $42
- db SHIP, $36, $40
+ db PLATEAU, $30
+ db (IndigoPlateauStatues_id - TextPredefs) / 2 + 1
+ db HOUSE, $3D
+ db (TownMapText_id - TextPredefs) / 2 + 1
+ db HOUSE, $1E
+ db (BookOrSculptureText_id - TextPredefs) / 2 + 1
+ db MANSION, $32
+ db (BookOrSculptureText_id - TextPredefs) / 2 + 1
+ db REDS_HOUSE_1, $32
+ db (BookOrSculptureText_id - TextPredefs) / 2 + 1
+ db LAB, $28
+ db (BookOrSculptureText_id - TextPredefs) / 2 + 1
+ db LOBBY, $16
+ db (ElevatorText_id - TextPredefs) / 2 + 1
+ db GYM, $1D
+ db (BookOrSculptureText_id - TextPredefs) / 2 + 1
+ db DOJO, $1D
+ db (BookOrSculptureText_id - TextPredefs) / 2 + 1
+ db GATE, $22
+ db (BookOrSculptureText_id - TextPredefs) / 2 + 1
+ db MART, $54
+ db (PokemonStuffText_id - TextPredefs) / 2 + 1
+ db MART, $55
+ db (PokemonStuffText_id - TextPredefs) / 2 + 1
+ db POKECENTER, $54
+ db (PokemonStuffText_id - TextPredefs) / 2 + 1
+ db POKECENTER, $55
+ db (PokemonStuffText_id - TextPredefs) / 2 + 1
+ db LOBBY, $50
+ db (PokemonStuffText_id - TextPredefs) / 2 + 1
+ db LOBBY, $52
+ db (PokemonStuffText_id - TextPredefs) / 2 + 1
+ db SHIP, $36
+ db (BookOrSculptureText_id - TextPredefs) / 2 + 1
db $FF
IndigoPlateauStatues: ; fbbf (3:7bbf)
- db $08 ; asm
+ TX_ASM
ld hl, IndigoPlateauStatuesText1
call PrintText
ld a, [W_XCOORD]
@@ -85,12 +100,12 @@ IndigoPlateauStatuesText3: ; fbe3 (3:7be3)
db "@"
BookOrSculptureText: ; fbe8 (3:7be8)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonBooksText
ld a, [W_CURMAPTILESET]
cp MANSION ; Celadon Mansion tileset
jr nz, .asm_fbfd
- ld a, [wTileMap + $80]
+ aCoord 8, 6
cp $38
jr nz, .asm_fbfd
ld hl, DiglettSculptureText
@@ -113,7 +128,7 @@ ElevatorText: ; fc0d (3:7c0d)
TownMapText: ; fc12 (3:7c12)
TX_FAR _TownMapText
db $06
- db $08 ; asm
+ TX_ASM
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, wd730
diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm
index f97190de..02d3928a 100755
--- a/engine/hidden_object_functions7.asm
+++ b/engine/hidden_object_functions7.asm
@@ -1,7 +1,6 @@
PrintNewBikeText: ; 1e94b (7:694b)
call EnableAutoTextBoxDrawing
- ld a, $39
- jp PrintPredefTextID
+ tx_pre_jump NewBicycleText
NewBicycleText: ; 1e953 (7:6953)
TX_FAR _NewBicycleText
@@ -9,8 +8,7 @@ NewBicycleText: ; 1e953 (7:6953)
DisplayOakLabLeftPoster: ; 1e958 (7:6958)
call EnableAutoTextBoxDrawing
- ld a, $05 ; PushStartText
- jp PrintPredefTextID
+ tx_pre_jump PushStartText
PushStartText: ; 1e960 (7:6960)
TX_FAR _PushStartText
@@ -21,12 +19,12 @@ DisplayOakLabRightPoster: ; 1e965 (7:6965)
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [wd11e]
- cp $2
- ld a, $6 ; SaveOptionText
- jr c, .asm_1e97b
- ld a, $7 ; StrengthsAndWeaknessesText
-.asm_1e97b
+ ld a, [wNumSetBits]
+ cp 2
+ tx_pre_id SaveOptionText
+ jr c, .ownThreeOrMoreMon
+ tx_pre_id StrengthsAndWeaknessesText
+.ownThreeOrMoreMon
jp PrintPredefTextID
SaveOptionText: ; 1e97e (7:697e)
@@ -38,57 +36,56 @@ StrengthsAndWeaknessesText: ; 1e983 (7:6983)
db "@"
SafariZoneCheck: ; 1e988 (7:6988)
- ld hl, wd790
- bit 7, [hl]
- jr z, asm_1e9ab
- ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
+ CheckEventHL EVENT_IN_SAFARI_ZONE ; if we are not in the Safari Zone,
+ jr z, SafariZoneGameStillGoing ; don't bother printing game over text
+ ld a, [W_NUMSAFARIBALLS]
and a
- jr z, asm_1e9b0
- jr asm_1e9ab
+ jr z, SafariZoneGameOver
+ jr SafariZoneGameStillGoing
SafariZoneCheckSteps: ; 1e997 (7:6997)
- ld a, [wSafariSteps] ; wd70d
+ ld a, [wSafariSteps]
ld b, a
- ld a, [wSafariSteps + 1] ; wd70e
+ ld a, [wSafariSteps + 1]
ld c, a
or b
- jr z, asm_1e9b0
+ jr z, SafariZoneGameOver
dec bc
ld a, b
- ld [wSafariSteps], a ; wd70d
+ ld [wSafariSteps], a
ld a, c
- ld [wSafariSteps + 1], a ; wd70e
-asm_1e9ab: ; 1e9ab (7:69ab)
+ ld [wSafariSteps + 1], a
+SafariZoneGameStillGoing: ; 1e9ab (7:69ab)
xor a
ld [wSafariZoneGameOver], a
ret
-asm_1e9b0: ; 1e9b0 (7:69b0)
+
+SafariZoneGameOver: ; 1e9b0 (7:69b0)
call EnableAutoTextBoxDrawing
xor a
- ld [wMusicHeaderPointer], a
+ ld [wAudioFadeOutControl], a
dec a
call PlaySound
- ld c, BANK(SFX_02_5f)
- ld a, (SFX_02_5f - SFX_Headers_02) / 3
+ ld c, BANK(SFX_Safari_Zone_PA)
+ ld a, SFX_SAFARI_ZONE_PA
call PlayMusic
.asm_1e9c2
- ld a, [wc02a]
+ ld a, [wChannelSoundIDs + CH4]
cp $b9
jr nz, .asm_1e9c2
- ld a, $d3
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld a, TEXT_SAFARI_GAME_OVER
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
- ld [wd528], a
+ ld [wPlayerMovingDirection], a
ld a, SAFARI_ZONE_ENTRANCE
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+ ld [hWarpDestinationMap], a
ld a, $3
ld [wDestinationWarpID], a
ld a, $5
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
- ld hl, wd790
- set 6, [hl]
- ld a, $1
+ SetEvent EVENT_SAFARI_GAME_OVER
+ ld a, 1
ld [wSafariZoneGameOver], a
ret
@@ -99,8 +96,8 @@ PrintSafariGameOverText: ; 1e9ed (7:69ed)
jp PrintText
SafariGameOverText: ; 1e9f7 (7:69f7)
- db $08 ; asm
- ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
+ TX_ASM
+ ld a, [W_NUMSAFARIBALLS]
and a
jr z, .asm_1ea04
ld hl, TimesUpText
@@ -120,30 +117,29 @@ GameOverText: ; 1ea12 (7:6a12)
PrintCinnabarQuiz: ; 1ea17 (7:6a17)
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
call EnableAutoTextBoxDrawing
- ld a, $31
- jp PrintPredefTextID
+ tx_pre_jump CinnabarGymQuiz
CinnabarGymQuiz: ; 1ea25 (7:6a25)
- db $08 ; asm
+ TX_ASM
xor a
- ld [wda38], a
- ld a, [wWhichTrade] ; wWhichTrade
+ ld [wOpponentAfterWrongAnswer], a
+ ld a, [wHiddenObjectFunctionArgument]
push af
and $f
- ld [$ffdb], a
+ ld [hGymGateIndex], a
pop af
and $f0
swap a
ld [$ffdc], a
ld hl, CinnabarGymQuizIntroText
call PrintText
- ld a, [$ffdb]
+ ld a, [hGymGateIndex]
dec a
add a
- ld d, $0
+ ld d, 0
ld e, a
ld hl, CinnabarQuizQuestions
add hl, de
@@ -192,63 +188,67 @@ CinnabarQuizQuestionsText6: ; 1ea85 (7:6a85)
TX_FAR _CinnabarQuizQuestionsText6
db "@"
-CinnabarGymQuiz_1ea8a: ; 1ea8a (7:6a8a)
- ld hl, wd79c
+CinnabarGymGateFlagAction: ; 1ea8a (7:6a8a)
+ EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED
predef_jump FlagActionPredef
CinnabarGymQuiz_1ea92: ; 1ea92 (7:6a92)
call YesNoChoice
ld a, [$ffdc]
ld c, a
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
cp c
- jr nz, .asm_1eab8
+ jr nz, .wrongAnswer
ld hl, wd126
set 5, [hl]
- ld a, [$ffdb]
+ ld a, [hGymGateIndex]
ld [$ffe0], a
ld hl, CinnabarGymQuizCorrectText
call PrintText
ld a, [$ffe0]
+ AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0
ld c, a
- ld b, $1
- call CinnabarGymQuiz_1ea8a
- jp CinnabarGymQuiz_1eb0a
-.asm_1eab8
+ ld b, FLAG_SET
+ call CinnabarGymGateFlagAction
+ jp UpdateCinnabarGymGateTileBlocks_
+.wrongAnswer
call WaitForSoundToFinish
- ld a, (SFX_02_51 - SFX_Headers_02) / 3
+ ld a, SFX_DENIED
call PlaySound
call WaitForSoundToFinish
ld hl, CinnabarGymQuizIncorrectText
call PrintText
- ld a, [$ffdb]
+ ld a, [hGymGateIndex]
add $2
+ AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
ld c, a
- ld b, $2
- ld hl, wd79a
+ ld b, FLAG_TEST
+ EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0
predef FlagActionPredef
ld a, c
and a
ret nz
- ld a, [$ffdb]
+ ld a, [hGymGateIndex]
add $2
- ld [wda38], a
+ ld [wOpponentAfterWrongAnswer], a
ret
CinnabarGymQuizCorrectText: ; 1eae3 (7:6ae3)
db $0b
TX_FAR _CinnabarGymQuizCorrectText
- db $06,$08
+ db $06
+ TX_ASM
ld a, [$ffe0]
+ AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0
ld c, a
- ld b, $2
- call CinnabarGymQuiz_1ea8a
+ ld b, FLAG_TEST
+ call CinnabarGymGateFlagAction
ld a, c
and a
jp nz, TextScriptEnd
call WaitForSoundToFinish
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
call WaitForSoundToFinish
jp TextScriptEnd
@@ -257,44 +257,47 @@ CinnabarGymQuizIncorrectText: ; 1eb05 (7:6b05)
TX_FAR _CinnabarGymQuizIncorrectText
db "@"
-CinnabarGymQuiz_1eb0a: ; 1eb0a (7:6b0a)
- ld a, $6
- ld [$ffdb], a
-.asm_1eb0e
- ld a, [$ffdb]
+UpdateCinnabarGymGateTileBlocks_: ; 1eb0a (7:6b0a)
+; Update the overworld map with open floor blocks or locked gate blocks
+; depending on event flags.
+ ld a, 6
+ ld [hGymGateIndex], a
+.loop
+ ld a, [hGymGateIndex]
dec a
add a
add a
- ld d, $0
+ ld d, 0
ld e, a
- ld hl, CinnabarGymGateCoords ; $6b48
+ ld hl, CinnabarGymGateCoords
add hl, de
ld a, [hli]
ld b, [hl]
ld c, a
inc hl
ld a, [hl]
- ld [wd12f], a
+ ld [wGymGateTileBlock], a
push bc
- ld a, [$ffdb]
+ ld a, [hGymGateIndex]
ld [$ffe0], a
+ AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0
ld c, a
- ld b, $2
- call CinnabarGymQuiz_1ea8a
+ ld b, FLAG_TEST
+ call CinnabarGymGateFlagAction
ld a, c
and a
- jr nz, .asm_1eb36
- ld a, [wd12f]
- jr .asm_1eb38
-.asm_1eb36
+ jr nz, .unlocked
+ ld a, [wGymGateTileBlock]
+ jr .next
+.unlocked
ld a, $e
-.asm_1eb38
+.next
pop bc
- ld [wd09f], a
+ ld [wNewTileBlockID], a
predef ReplaceTileBlock
- ld hl, $ffdb
+ ld hl, hGymGateIndex
dec [hl]
- jr nz, .asm_1eb0e
+ jr nz, .loop
ret
CinnabarGymGateCoords: ; 1eb48 (7:6b48)
@@ -309,8 +312,7 @@ CinnabarGymGateCoords: ; 1eb48 (7:6b48)
PrintMagazinesText: ; 1eb60 (7:6b60)
call EnableAutoTextBoxDrawing
- ld a, $30
- call PrintPredefTextID
+ tx_pre MagazinesText
ret
MagazinesText: ; 1eb69 (7:6b69)
@@ -320,52 +322,47 @@ MagazinesText: ; 1eb69 (7:6b69)
BillsHousePC: ; 1eb6e (7:6b6e)
call EnableAutoTextBoxDrawing
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
- ld a, [wd7f2]
- bit 7, a
+ CheckEvent EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING
jr nz, .asm_1ebd2
- bit 3, a
+ CheckEventReuseA EVENT_USED_CELL_SEPARATOR_ON_BILL
jr nz, .asm_1eb86
- bit 6, a
+ CheckEventReuseA EVENT_BILL_SAID_USE_CELL_SEPARATOR
jr nz, .asm_1eb8b
.asm_1eb86
- ld a, $2d
- jp PrintPredefTextID
+ tx_pre_jump BillsHouseMonitorText
.asm_1eb8b
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld a, $2e
- call PrintPredefTextID
- ld c, $20
+ tx_pre BillsHouseInitiatedText
+ ld c, 32
call DelayFrames
- ld a, (SFX_02_3c - SFX_Headers_02) / 3
+ ld a, SFX_TINK
call PlaySound
call WaitForSoundToFinish
- ld c, $50
+ ld c, 80
call DelayFrames
- ld a, (SFX_02_48 - SFX_Headers_02) / 3
+ ld a, SFX_SHRINK
call PlaySound
call WaitForSoundToFinish
- ld c, $30
+ ld c, 48
call DelayFrames
- ld a, (SFX_02_3c - SFX_Headers_02) / 3
+ ld a, SFX_TINK
call PlaySound
call WaitForSoundToFinish
- ld c, $20
+ ld c, 32
call DelayFrames
- ld a, (SFX_02_3a - SFX_Headers_02) / 3
+ ld a, SFX_GET_ITEM_1
call PlaySound
call WaitForSoundToFinish
call PlayDefaultMusic
- ld hl, wd7f2
- set 3, [hl]
+ SetEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
ret
.asm_1ebd2
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld a, $2f
- call PrintPredefTextID
+ tx_pre BillsHousePokemonList
ret
BillsHouseMonitorText: ; 1ebdd (7:6bdd)
@@ -375,21 +372,21 @@ BillsHouseMonitorText: ; 1ebdd (7:6bdd)
BillsHouseInitiatedText: ; 1ebe2 (7:6be2)
TX_FAR _BillsHouseInitiatedText
db $06
- db $08 ; asm
+ TX_ASM
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
- ld c, $10
+ ld c, 16
call DelayFrames
- ld a, (SFX_02_49 - SFX_Headers_02) / 3
+ ld a, SFX_SWITCH
call PlaySound
call WaitForSoundToFinish
- ld c, $3c
+ ld c, 60
call DelayFrames
jp TextScriptEnd
BillsHousePokemonList: ; 1ec05 (7:6c05)
- db $08 ; asm
+ TX_ASM
call SaveScreenTilesToBuffer1
ld hl, BillsHousePokemonListText1
call PrintText
@@ -397,7 +394,7 @@ BillsHousePokemonList: ; 1ec05 (7:6c05)
ld [W_ANIMATIONID], a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, $3
+ ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
ld a, $4
ld [wMaxMenuItem], a
@@ -405,38 +402,38 @@ BillsHousePokemonList: ; 1ec05 (7:6c05)
ld [wTopMenuItemY], a
ld a, $1
ld [wTopMenuItemX], a
-.asm_1ec2d
+.billsPokemonLoop
ld hl, wd730
set 6, [hl]
- ld hl, wTileMap
+ coord hl, 0, 0
ld b, $a
ld c, $9
call TextBoxBorder
- ld hl, wTileMap + $2a
+ coord hl, 2, 2
ld de, BillsMonListText
call PlaceString
ld hl, BillsHousePokemonListText2
call PrintText
call SaveScreenTilesToBuffer2
call HandleMenuInput
- bit 1, a
- jr nz, .asm_1ec74
+ bit 1, a ; pressed b
+ jr nz, .cancel
ld a, [wCurrentMenuItem]
add EEVEE
cp EEVEE
- jr z, .asm_1ec6c
+ jr z, .displayPokedex
cp FLAREON
- jr z, .asm_1ec6c
+ jr z, .displayPokedex
cp JOLTEON
- jr z, .asm_1ec6c
+ jr z, .displayPokedex
cp VAPOREON
- jr z, .asm_1ec6c
- jr .asm_1ec74
-.asm_1ec6c
+ jr z, .displayPokedex
+ jr .cancel
+.displayPokedex
call DisplayPokedex
call LoadScreenTilesFromBuffer2
- jr .asm_1ec2d
-.asm_1ec74
+ jr .billsPokemonLoop
+.cancel
ld hl, wd730
res 6, [hl]
call LoadScreenTilesFromBuffer2
@@ -459,11 +456,10 @@ BillsHousePokemonListText2: ; 1ecaa (7:6caa)
DisplayOakLabEmailText: ; 1ecaf (7:6caf)
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
call EnableAutoTextBoxDrawing
- ld a, $8 ; OakLabEmailText
- jp PrintPredefTextID
+ tx_pre_jump OakLabEmailText
OakLabEmailText: ; 1ecbd (7:6cbd)
TX_FAR _OakLabEmailText
diff --git a/engine/hp_bar.asm b/engine/hp_bar.asm
index 333b0b90..792661ab 100755
--- a/engine/hp_bar.asm
+++ b/engine/hp_bar.asm
@@ -143,7 +143,7 @@ UpdateHPBar_AnimateHPBar: ; fab1 (3:7ab1)
push de
ld d, $6
call DrawHPBar
- ld c, $2
+ ld c, 2
call DelayFrames
pop de
ld a, [wHPBarDelta] ; +1 or -1
@@ -205,33 +205,34 @@ UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
push de
ld a, [wHPBarType]
and a
- jr z, .asm_fb2d
+ jr z, .done ; don't print number in enemy HUD
+; convert from little-endian to big-endian for PrintNumber
ld a, [wHPBarOldHP]
- ld [wcef1], a
- ld a, [wHPBarOldHP+1]
- ld [wcef0], a
+ ld [wHPBarTempHP + 1], a
+ ld a, [wHPBarOldHP + 1]
+ ld [wHPBarTempHP], a
push hl
ld a, [hFlags_0xFFF6]
bit 0, a
jr z, .asm_fb15
ld de, $9
- jr .asm_fb18
+ jr .next
.asm_fb15
ld de, $15
-.asm_fb18
+.next
add hl, de
push hl
- ld a, $7f
+ ld a, " "
ld [hli], a
ld [hli], a
ld [hli], a
pop hl
- ld de, wcef0
- ld bc, $203
+ ld de, wHPBarTempHP
+ lb bc, 2, 3
call PrintNumber
call DelayFrame
pop hl
-.asm_fb2d
+.done
pop de
pop af
ret
diff --git a/engine/in_game_trades.asm b/engine/in_game_trades.asm
index cb03a074..4229afd8 100755
--- a/engine/in_game_trades.asm
+++ b/engine/in_game_trades.asm
@@ -17,12 +17,12 @@ DoInGameTradeDialogue: ; 71ad9 (1c:5ad9)
ld a,[hli]
push af
ld de,wInGameTradeMonNick
- ld bc,$000b
+ ld bc, NAME_LENGTH
call CopyData
pop af
ld l,a
ld h,$0
- ld de,InGameTradeTextPointers ; $5d64
+ ld de,InGameTradeTextPointers
add hl,hl
add hl,de
ld a,[hli]
@@ -38,7 +38,7 @@ DoInGameTradeDialogue: ; 71ad9 (1c:5ad9)
ld hl,wCompletedInGameTradeFlags
ld a,[wWhichTrade]
ld c,a
- ld b,$2
+ ld b,FLAG_TEST
predef FlagActionPredef
ld a,c
and a
@@ -81,14 +81,14 @@ InGameTrade_GetMonName: ; 71b6a (1c:5b6a)
call GetMonName
ld hl,wcd6d
pop de
- ld bc,$b
+ ld bc, NAME_LENGTH
jp CopyData
INCLUDE "data/trades.asm"
InGameTrade_DoTrade: ; 71c07 (1c:5c07)
- xor a
- ld [wd07d],a
+ xor a ; NORMAL_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID],a
dec a
ld [wUpdateSpritesEnabled],a
call DisplayPartyMenu
@@ -105,14 +105,14 @@ InGameTrade_DoTrade: ; 71c07 (1c:5c07)
jr nz,.tradeFailed ; jump if the selected mon's species is not the required one
ld a,[wWhichPokemon]
ld hl,wPartyMon1Level
- ld bc,$002c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld a,[hl]
ld [W_CURENEMYLVL],a
ld hl,wCompletedInGameTradeFlags
ld a,[wWhichTrade]
ld c,a
- ld b,$1
+ ld b,FLAG_SET
predef FlagActionPredef
ld hl, ConnectCableText
call PrintText
@@ -130,11 +130,11 @@ InGameTrade_DoTrade: ; 71c07 (1c:5c07)
ld a,[wInGameTradeReceiveMonSpecies]
ld [wcf91],a
xor a
- ld [wcc49],a
- ld [wcf95],a
+ ld [wMonDataLocation],a ; not used
+ ld [wRemoveMonFromBox],a
call RemovePokemon
- ld a,$80
- ld [wcc49],a
+ ld a,$80 ; prevent the player from naming the mon
+ ld [wMonDataLocation],a
call AddPartyMon
call InGameTrade_CopyDataToReceivedMon
callab EvolveTradeMon
@@ -159,9 +159,7 @@ InGameTrade_RestoreScreen: ; 71ca2 (1c:5ca2)
call LoadGBPal
ld c, 10
call DelayFrames
- ld b, BANK(LoadWildData)
- ld hl, LoadWildData
- jp Bankswitch
+ jpba LoadWildData
InGameTrade_PrepareTradeData: ; 71cc1 (1c:5cc1)
ld hl, wTradedPlayerMonSpecies
@@ -170,16 +168,16 @@ InGameTrade_PrepareTradeData: ; 71cc1 (1c:5cc1)
ld a, [wInGameTradeReceiveMonSpecies]
ld [hl], a ; wTradedEnemyMonSpecies
ld hl, wPartyMonOT
- ld bc, $b
+ ld bc, NAME_LENGTH
ld a, [wWhichPokemon]
call AddNTimes
ld de, wTradedPlayerMonOT
- ld bc, $b
+ ld bc, NAME_LENGTH
call InGameTrade_CopyData
ld hl, InGameTrade_TrainerString
- ld de, wcd4e
+ ld de, wTradedEnemyMonOT
call InGameTrade_CopyData
- ld de, W_GRASSRATE
+ ld de, wLinkEnemyTrainerName
call InGameTrade_CopyData
ld hl, wPartyMon1OTID
ld bc, wPartyMon2 - wPartyMon1
@@ -203,16 +201,16 @@ InGameTrade_CopyData: ; 71d11 (1c:5d11)
InGameTrade_CopyDataToReceivedMon: ; 71d19 (1c:5d19)
ld hl, wPartyMonNicks
- ld bc, $b
+ ld bc, NAME_LENGTH
call InGameTrade_GetReceivedMonPointer
ld hl, wInGameTradeMonNick
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
ld hl, wPartyMonOT
- ld bc, $b
+ ld bc, NAME_LENGTH
call InGameTrade_GetReceivedMonPointer
ld hl, InGameTrade_TrainerString
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
ld hl, wPartyMon1OTID
ld bc, wPartyMon2 - wPartyMon1
diff --git a/engine/intro.asm b/engine/intro.asm
index 5b03f23a..6d2e350c 100755
--- a/engine/intro.asm
+++ b/engine/intro.asm
@@ -1,3 +1,7 @@
+MOVE_GENGAR_RIGHT EQU $00
+MOVE_GENGAR_LEFT EQU $01
+MOVE_NIDORINO_RIGHT EQU $ff
+
PlayIntro: ; 41682 (10:5682)
xor a
ld [hJoyHeld], a
@@ -14,35 +18,35 @@ PlayIntro: ; 41682 (10:5682)
ret
PlayIntroScene: ; 4169d (10:569d)
- ld b, $7
- call GoPAL_SET
+ ld b, SET_PAL_NIDORINO_INTRO
+ call RunPaletteCommand
ld a, %11100100
ld [rBGP], a
ld [rOBP0], a
ld [rOBP1], a
xor a
ld [hSCX], a
- ld b, $3
- call Func_4183f
+ ld b, $3 ; Gengar tiles
+ call IntroCopyTiles
ld a, 0
ld [W_BASECOORDX], a
ld a, 80
ld [W_BASECOORDY], a
- ld bc, $606
- call Func_417c7
- ld de, $28ff
- call Func_4180e
+ lb bc, 6, 6
+ call InitIntroNidorinoOAM
+ lb de, 80 / 2, MOVE_NIDORINO_RIGHT
+ call IntroMoveMon
ret c
; hip
- ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_HIP
call PlaySound
xor a
- ld [wd09f], a
+ ld [wIntroNidorinoBaseTile], a
ld de, IntroNidorinoAnimation1
call AnimateIntroNidorino
; hop
- ld a, (SFX_1f_60 - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_HOP
call PlaySound
ld de, IntroNidorinoAnimation2
call AnimateIntroNidorino
@@ -51,12 +55,12 @@ PlayIntroScene: ; 4169d (10:569d)
ret c
; hip
- ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_HIP
call PlaySound
ld de, IntroNidorinoAnimation1
call AnimateIntroNidorino
; hop
- ld a, (SFX_1f_60 - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_HOP
call PlaySound
ld de, IntroNidorinoAnimation2
call AnimateIntroNidorino
@@ -66,284 +70,291 @@ PlayIntroScene: ; 4169d (10:569d)
; raise
ld b, $4
- call Func_4183f
- ld a, (SFX_1f_61 - SFX_Headers_1f) / 3
+ call IntroCopyTiles
+ ld a, SFX_INTRO_RAISE
call PlaySound
- ld de, $401
- call Func_4180e
+ lb de, 8 / 2, MOVE_GENGAR_LEFT
+ call IntroMoveMon
ld c, $1e
call CheckForUserInterruption
ret c
; slash
ld b, $5
- call Func_4183f
- ld a, (SFX_1f_62 - SFX_Headers_1f) / 3
+ call IntroCopyTiles
+ ld a, SFX_INTRO_CRASH
call PlaySound
- ld de, $800
- call Func_4180e
+ lb de, 16 / 2, MOVE_GENGAR_RIGHT
+ call IntroMoveMon
; hip
- ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_HIP
call PlaySound
ld a, $24
- ld [wd09f], a
+ ld [wIntroNidorinoBaseTile], a
ld de, IntroNidorinoAnimation3
call AnimateIntroNidorino
ld c, $1e
call CheckForUserInterruption
ret c
- ld de, $401
- call Func_4180e
+ lb de, 8 / 2, MOVE_GENGAR_LEFT
+ call IntroMoveMon
ld b, $3
- call Func_4183f
+ call IntroCopyTiles
ld c, $3c
call CheckForUserInterruption
ret c
; hip
- ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_HIP
call PlaySound
xor a
- ld [wd09f], a
- ld de, IntroNidorinoAnimation4 ; $5931
+ ld [wIntroNidorinoBaseTile], a
+ ld de, IntroNidorinoAnimation4
call AnimateIntroNidorino
; hop
- ld a, (SFX_1f_60 - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_HOP
call PlaySound
- ld de, IntroNidorinoAnimation5 ; $593c
+ ld de, IntroNidorinoAnimation5
call AnimateIntroNidorino
ld c, $14
call CheckForUserInterruption
ret c
ld a, $24
- ld [wd09f], a
- ld de, IntroNidorinoAnimation6 ; $5947
+ ld [wIntroNidorinoBaseTile], a
+ ld de, IntroNidorinoAnimation6
call AnimateIntroNidorino
ld c, $1e
call CheckForUserInterruption
ret c
; lunge
- ld a, (SFX_1f_5e - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_LUNGE
call PlaySound
ld a, $48
- ld [wd09f], a
- ld de, IntroNidorinoAnimation7 ; $5950
+ ld [wIntroNidorinoBaseTile], a
+ ld de, IntroNidorinoAnimation7
jp AnimateIntroNidorino
AnimateIntroNidorino: ; 41793 (10:5793)
ld a, [de]
cp $50
ret z
- ld [W_BASECOORDY], a ; wd082
+ ld [W_BASECOORDY], a
inc de
ld a, [de]
- ld [W_BASECOORDX], a ; wd081
+ ld [W_BASECOORDX], a
push de
- ld c, $24
- call Func_417ae
+ ld c, 6 * 6
+ call UpdateIntroNidorinoOAM
ld c, 5
call DelayFrames
pop de
inc de
jr AnimateIntroNidorino
-Func_417ae: ; 417ae (10:57ae)
+UpdateIntroNidorinoOAM: ; 417ae (10:57ae)
ld hl, wOAMBuffer
- ld a, [wd09f]
+ ld a, [wIntroNidorinoBaseTile]
ld d, a
-.asm_417b5
- ld a, [W_BASECOORDY] ; wd082
+.loop
+ ld a, [W_BASECOORDY]
add [hl]
- ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
+ ld [hli], a ; Y
+ ld a, [W_BASECOORDX]
add [hl]
- ld [hli], a
+ ld [hli], a ; X
ld a, d
- ld [hli], a
+ ld [hli], a ; tile
inc hl
inc d
dec c
- jr nz, .asm_417b5
+ jr nz, .loop
ret
-Func_417c7: ; 417c7 (10:57c7)
+InitIntroNidorinoOAM: ; 417c7 (10:57c7)
ld hl, wOAMBuffer
- ld d, $0
-.asm_417cc
+ ld d, 0
+.loop
push bc
- ld a, [W_BASECOORDY] ; wd082
+ ld a, [W_BASECOORDY]
ld e, a
-.asm_417d1
+.innerLoop
ld a, e
- add $8
+ add 8
ld e, a
- ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
- ld [hli], a
+ ld [hli], a ; Y
+ ld a, [W_BASECOORDX]
+ ld [hli], a ; X
ld a, d
- ld [hli], a
+ ld [hli], a ; tile
ld a, $80
- ld [hli], a
+ ld [hli], a ; attributes
inc d
dec c
- jr nz, .asm_417d1
- ld a, [W_BASECOORDX] ; wd081
- add $8
- ld [W_BASECOORDX], a ; wd081
+ jr nz, .innerLoop
+ ld a, [W_BASECOORDX]
+ add 8
+ ld [W_BASECOORDX], a
pop bc
dec b
- jr nz, .asm_417cc
+ jr nz, .loop
ret
-Func_417f0: ; 417f0 (10:57f0)
+IntroClearScreen: ; 417f0 (10:57f0)
ld hl, vBGMap1
ld bc, $240
- jr asm_417fe
+ jr IntroClearCommon
+
+IntroClearMiddleOfScreen: ; 417f8 (10:57f8)
+; clear the area of the tile map between the black bars on the top and bottom
+ coord hl, 0, 4
+ ld bc, SCREEN_WIDTH * 10
-Func_417f8: ; 417f8 (10:57f8)
- hlCoord 0, 4
- ld bc, $c8
-asm_417fe: ; 417fe (10:57fe)
+IntroClearCommon: ; 417fe (10:57fe)
ld [hl], $0
inc hl
dec bc
ld a, b
or c
- jr nz, asm_417fe
+ jr nz, IntroClearCommon
ret
-Func_41807: ; 41807 (10:5807)
+IntroPlaceBlackTiles: ; 41807 (10:5807)
ld a, $1
-.asm_41809
+.loop
ld [hli], a
dec c
- jr nz, .asm_41809
+ jr nz, .loop
ret
-Func_4180e: ; 4180e (10:580e)
+IntroMoveMon: ; 4180e (10:580e)
+; d = number of times to move the mon (2 pixels each time)
+; e: $00 = move Gengar right, $01 = move Gengar left, $ff = move Nidorino right
ld a, e
cp $ff
- jr z, .asm_4181d
+ jr z, .moveNidorinoRight
cp $1
- jr z, .asm_4182d
+ jr z, .moveGengarLeft
+; move Gengar right
ld a, [hSCX]
dec a
dec a
- jr .asm_41831
-.asm_4181d
+ jr .next
+.moveNidorinoRight
push de
- ld a, $2
- ld [W_BASECOORDX], a ; wd081
+ ld a, 2
+ ld [W_BASECOORDX], a
xor a
- ld [W_BASECOORDY], a ; wd082
- ld c, $24
- call Func_417ae
+ ld [W_BASECOORDY], a
+ ld c, 6 * 6
+ call UpdateIntroNidorinoOAM
pop de
-.asm_4182d
+.moveGengarLeft
ld a, [hSCX]
inc a
inc a
-.asm_41831
+.next
ld [hSCX], a
push de
- ld c, $2
+ ld c, 2
call CheckForUserInterruption
pop de
ret c
dec d
- jr nz, Func_4180e
+ jr nz, IntroMoveMon
ret
-Func_4183f: ; 4183f (10:583f)
- hlCoord 13, 7
+IntroCopyTiles: ; 4183f (10:583f)
+ coord hl, 13, 7
CopyTileIDsFromList_ZeroBaseTileID: ; 41842 (10:5842)
- ld c, $0
+ ld c, 0
predef_jump CopyTileIDsFromList
-Func_41849: ; 41849 (10:5849)
- predef Func_79869
+PlayMoveSoundB: ; 41849 (10:5849)
+; unused
+ predef GetMoveSoundB
ld a, b
jp PlaySound
LoadIntroGraphics: ; 41852 (10:5852)
- ld hl, FightIntroBackMon ; $5a99
+ ld hl, FightIntroBackMon
ld de, vChars2
- ld bc, $600
+ ld bc, FightIntroBackMonEnd - FightIntroBackMon
ld a, BANK(FightIntroBackMon)
call FarCopyData2
- ld hl, GameFreakIntro ; $5959
+ ld hl, GameFreakIntro
ld de, vChars2 + $600
- ld bc, $140
+ ld bc, GameFreakIntroEnd - GameFreakIntro
ld a, BANK(GameFreakIntro)
call FarCopyData2
- ld hl, GameFreakIntro ; $5959
+ ld hl, GameFreakIntro
ld de, vChars1
- ld bc, $140
+ ld bc, GameFreakIntroEnd - GameFreakIntro
ld a, BANK(GameFreakIntro)
call FarCopyData2
- ld hl, FightIntroFrontMon ; $6099
+ ld hl, FightIntroFrontMon
ld de, vChars0
- ld bc, $6c0
+ ld bc, FightIntroFrontMonEnd - FightIntroFrontMon
ld a, BANK(FightIntroFrontMon)
jp FarCopyData2
PlayShootingStar: ; 4188a (10:588a)
- ld b, $c
- call GoPAL_SET
+ ld b, SET_PAL_GAME_FREAK_INTRO
+ call RunPaletteCommand
callba LoadCopyrightAndTextBoxTiles
ld a, $e4
- ld [rBGP], a ; $ff47
- ld c, $b4
+ ld [rBGP], a
+ ld c, 180
call DelayFrames
call ClearScreen
call DisableLCD
xor a
- ld [W_CUROPPONENT], a ; wd059
- call Func_418e9
+ ld [W_CUROPPONENT], a
+ call IntroDrawBlackBars
call LoadIntroGraphics
call EnableLCD
- ld hl, rLCDC ; $ff40
+ ld hl, rLCDC
res 5, [hl]
set 3, [hl]
- ld c, $40
+ ld c, 64
call DelayFrames
callba AnimateShootingStar
push af
pop af
- jr c, .asm_418d0
- ld c, $28
+ jr c, .next ; skip the delay if the user interrupted the animation
+ ld c, 40
call DelayFrames
-.asm_418d0
+.next
ld a, BANK(Music_IntroBattle)
- ld [wc0ef], a
- ld [wc0f0], a
+ ld [wAudioROMBank], a
+ ld [wAudioSavedROMBank], a
ld a, MUSIC_INTRO_BATTLE
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
- call Func_417f8
+ call IntroClearMiddleOfScreen
call ClearSprites
jp Delay3
-Func_418e9: ; 418e9 (10:58e9)
- call Func_417f0
- ld hl, wTileMap
- ld c, $50
- call Func_41807
- hlCoord 0, 14
- ld c, $50
- call Func_41807
+IntroDrawBlackBars: ; 418e9 (10:58e9)
+; clear the screen and draw black bars on the top and bottom
+ call IntroClearScreen
+ coord hl, 0, 0
+ ld c, SCREEN_WIDTH * 4
+ call IntroPlaceBlackTiles
+ coord hl, 0, 14
+ ld c, SCREEN_WIDTH * 4
+ call IntroPlaceBlackTiles
ld hl, vBGMap1
ld c, $80
- call Func_41807
+ call IntroPlaceBlackTiles
ld hl, vBGMap1 + $1c0
ld c, $80
- jp Func_41807
+ jp IntroPlaceBlackTiles
-Func_4190c: ; 4190c (10:590c)
+EmptyFunc4: ; 4190c (10:590c)
ret
IntroNidorinoAnimation0: ; 4190d (10:590d)
@@ -423,12 +434,16 @@ GameFreakIntro: ; 41959 (10:5959)
INCBIN "gfx/gamefreak_intro.2bpp"
INCBIN "gfx/gamefreak_logo.2bpp"
ds $10 ; blank tile
+GameFreakIntroEnd:
FightIntroBackMon: ; 41a99 (10:5a99)
INCBIN "gfx/intro_fight.2bpp"
+FightIntroBackMonEnd:
FightIntroFrontMon: ; 42099 (10:6099)
INCBIN "gfx/intro_nido_1.6x6.2bpp"
INCBIN "gfx/intro_nido_2.6x6.2bpp"
INCBIN "gfx/intro_nido_3.6x6.2bpp"
+FightIntroFrontMonEnd:
+
ds $10 ; blank tile
diff --git a/engine/items/itemfinder.asm b/engine/items/itemfinder.asm
index d7e5b3ce..5da72388 100755
--- a/engine/items/itemfinder.asm
+++ b/engine/items/itemfinder.asm
@@ -1,16 +1,16 @@
HiddenItemNear: ; 7481f (1d:481f)
ld hl, HiddenItemCoords
- ld b, $0
-.asm_74824
- ld de, $0003
+ ld b, 0
+.loop
+ ld de, 3
ld a, [W_CURMAP]
call IsInRestOfArray
ret nc ; return if current map has no hidden items
push bc
push hl
- ld hl, wd6f0
+ ld hl, wObtainedHiddenItemsFlags
ld c, b
- ld b, $2
+ ld b, FLAG_TEST
predef FlagActionPredef
ld a, c
pop hl
@@ -22,28 +22,30 @@ HiddenItemNear: ; 7481f (1d:481f)
inc hl
ld e, [hl]
inc hl
- jr nz, .asm_74824 ; 0x74845 $dd
+ jr nz, .loop ; if the item has already been obtained
+; check if the item is within 4-5 tiles (depending on the direction of item)
ld a, [W_YCOORD]
- call Func_7486b
+ call Sub5ClampTo0
cp d
- jr nc, .asm_74824 ; 0x7484e $d4
+ jr nc, .loop
ld a, [W_YCOORD]
- add $4
+ add 4
cp d
- jr c, .asm_74824 ; 0x74856 $cc
+ jr c, .loop
ld a, [W_XCOORD]
- call Func_7486b
+ call Sub5ClampTo0
cp e
- jr nc, .asm_74824 ; 0x7485f $c3
+ jr nc, .loop
ld a, [W_XCOORD]
- add $5
+ add 5
cp e
- jr c, .asm_74824 ; 0x74867 $bb
+ jr c, .loop
scf
ret
-Func_7486b: ; 7486b (1d:486b)
- sub $5
+Sub5ClampTo0: ; 7486b (1d:486b)
+; subtract 5 but clamp to 0
+ sub 5
cp $f0
ret c
xor a
diff --git a/engine/items/items.asm b/engine/items/items.asm
index 7d939ae6..29289fd9 100755
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -1,6 +1,6 @@
UseItem_: ; d5c7 (3:55c7)
ld a,1
- ld [wcd6a],a
+ ld [wActionResultOrTookBattleTurn],a ; initialise to success value
ld a,[wcf91] ;contains item_ID
cp a,HM_01
jp nc,ItemUseTMHM
@@ -91,9 +91,9 @@ ItemUsePtrTable: ; d5e1 (3:55e1)
dw ItemUsePokeflute ; POKE_FLUTE
dw UnusableItem ; LIFT_KEY
dw UnusableItem ; EXP__ALL
- dw OldRodCode ; OLD_ROD
- dw GoodRodCode ; GOOD_ROD
- dw SuperRodCode ; SUPER_ROD
+ dw ItemUseOldRod ; OLD_ROD
+ dw ItemUseGoodRod ; GOOD_ROD
+ dw ItemUseSuperRod ; SUPER_ROD
dw ItemUsePPUp ; PP_UP (real one)
dw ItemUsePPRestore ; ETHER
dw ItemUsePPRestore ; MAX_ETHER
@@ -115,10 +115,10 @@ ItemUseBall: ; d687 (3:5687)
ld a,[W_NUMINBOX] ;is Box full?
cp a,MONS_PER_BOX
jp z,BoxFullCannotThrowBall
-.UseBall ;$56a7
+.UseBall
;ok, you can use a ball
xor a
- ld [wd11c],a
+ ld [wCapturedMonSpecies],a
ld a,[W_BATTLETYPE]
cp a,2 ;SafariBattle
jr nz,.skipSafariZoneCode
@@ -126,8 +126,8 @@ ItemUseBall: ; d687 (3:5687)
; remove a Safari Ball from inventory
ld hl,W_NUMSAFARIBALLS
dec [hl]
-.skipSafariZoneCode ;$56b6
- call GoPAL_SET_CF1C
+.skipSafariZoneCode
+ call RunDefaultPaletteCommand
ld a,$43
ld [wd11e],a
call LoadScreenTilesFromBuffer1 ;restore screenBuffer from Backup
@@ -142,10 +142,10 @@ ItemUseBall: ; d687 (3:5687)
.oldManBattle
ld hl,W_GRASSRATE
ld de,wPlayerName
- ld bc,11
+ ld bc,NAME_LENGTH
call CopyData ; save the player's name in the Wild Monster data (part of the Cinnabar Island Missingno glitch)
- jp .BallSuccess ;$578b
-.notOldManBattle ;$56e9
+ jp .BallSuccess
+.notOldManBattle
ld a,[W_CURMAP]
cp a,POKEMONTOWER_6
jr nz,.loop
@@ -155,13 +155,13 @@ ItemUseBall: ; d687 (3:5687)
jp z,.next12
; if not fighting ghost Marowak, loop until a random number in the current
; pokeball's allowed range is found
-.loop ;$56fa
+.loop
call Random
ld b,a
ld hl,wcf91
ld a,[hl]
cp a,MASTER_BALL
- jp z,.BallSuccess ;$578b
+ jp z,.BallSuccess
cp a,POKE_BALL
jr z,.checkForAilments
ld a,200
@@ -173,7 +173,7 @@ ItemUseBall: ; d687 (3:5687)
ld a,150 ;get only numbers <= 150 for Ultra Ball
cp b
jr c,.loop
-.checkForAilments ;$571a
+.checkForAilments
; pokemon can be caught more easily with any (primary) status ailment
; Frozen/Asleep pokemon are relatively even easier to catch
; for Frozen/Asleep pokemon, any random number from 0-24 ensures a catch.
@@ -185,12 +185,12 @@ ItemUseBall: ; d687 (3:5687)
ld c,12
jr z,.notFrozenOrAsleep
ld c,25
-.notFrozenOrAsleep ;$5728
+.notFrozenOrAsleep
ld a,b
sub c
- jp c,.BallSuccess ;$578b
+ jp c,.BallSuccess
ld b,a
-.noAilments ;$572e
+.noAilments
push bc ;save RANDOM number
xor a
ld [H_MULTIPLICAND],a
@@ -207,7 +207,7 @@ ItemUseBall: ; d687 (3:5687)
ld a,12 ;any other BallFactor
jr nz,.next7
ld a,8
-.next7 ;$574d
+.next7
ld [H_DIVISOR],a
ld b,4 ; number of bytes in dividend
call Divide
@@ -226,7 +226,7 @@ ItemUseBall: ; d687 (3:5687)
and a
jr nz,.next8
inc a
-.next8 ;$5766
+.next8
ld [H_DIVISOR],a
ld b,4
call Divide ; ((MaxHP * 255) / BallFactor) / (CurHP / 4)
@@ -235,7 +235,7 @@ ItemUseBall: ; d687 (3:5687)
jr z,.next9
ld a,255
ld [H_QUOTIENT + 3],a
-.next9 ;$5776
+.next9
pop bc
ld a,[wEnemyMonCatchRate] ;enemy: Catch Rate
cp b
@@ -248,9 +248,9 @@ ItemUseBall: ; d687 (3:5687)
ld a,[H_QUOTIENT + 3]
cp b
jr c,.next10
-.BallSuccess ;$578b
+.BallSuccess
jr .BallSuccess2
-.next10 ;$578d
+.next10
ld a,[H_QUOTIENT + 3]
ld [wd11e],a
xor a
@@ -271,7 +271,7 @@ ItemUseBall: ; d687 (3:5687)
ld b,150
cp a,ULTRA_BALL
jr z,.next11
-.next11 ;$57b8
+.next11
ld a,b
ld [H_DIVISOR],a
ld b,4
@@ -294,11 +294,11 @@ ItemUseBall: ; d687 (3:5687)
ld b,5
jr z,.next14
ld b,10
-.next14 ;$57e6
+.next14
ld a,[H_QUOTIENT + 3]
add b
ld [H_QUOTIENT + 3],a
-.next13 ;$57eb
+.next13
ld a,[H_QUOTIENT + 3]
cp a,10
ld b,$20
@@ -310,16 +310,16 @@ ItemUseBall: ; d687 (3:5687)
ld b,$62
jr c,.next12
ld b,$63
-.next12 ;$5801
+.next12
ld a,b
- ld [wd11e],a
-.BallSuccess2 ;$5805
+ ld [wPokeBallAnimData],a
+.BallSuccess2
ld c,20
call DelayFrames
ld a,TOSS_ANIM
ld [W_ANIMATIONID],a
xor a
- ld [$fff3],a
+ ld [H_WHOSETURN],a
ld [wAnimationType],a
ld [wDamageMultipliers],a
ld a,[wWhichPokemon]
@@ -331,7 +331,7 @@ ItemUseBall: ; d687 (3:5687)
ld [wcf91],a
pop af
ld [wWhichPokemon],a
- ld a,[wd11e]
+ ld a,[wPokeBallAnimData]
cp a,$10
ld hl,ItemUseBallText00
jp z,.printText0
@@ -362,14 +362,14 @@ ItemUseBall: ; d687 (3:5687)
ld a,$4c
ld [wEnemyMonSpecies2],a
jr .next16
-.next15 ;$5871
+.next15
set Transformed,[hl]
- ld hl,wcceb
+ ld hl,wTransformedEnemyMonOriginalDVs
ld a,[wEnemyMonDVs]
ld [hli],a
ld a,[wEnemyMonDVs + 1]
ld [hl],a
-.next16 ;$587e
+.next16
ld a,[wcf91]
push af
ld a,[wEnemyMonSpecies2]
@@ -388,7 +388,7 @@ ItemUseBall: ; d687 (3:5687)
pop af
ld [hl],a
ld a,[wEnemyMonSpecies] ;enemy
- ld [wd11c],a
+ ld [wCapturedMonSpecies],a
ld [wcf91],a
ld [wd11e],a
ld a,[W_BATTLETYPE]
@@ -400,15 +400,15 @@ ItemUseBall: ; d687 (3:5687)
ld a,[wd11e]
dec a
ld c,a
- ld b,2
- ld hl,wPokedexOwned ;Dex_own_flags (pokemon)
+ ld b,FLAG_TEST
+ ld hl,wPokedexOwned
predef FlagActionPredef
ld a,c
push af
ld a,[wd11e]
dec a
ld c,a
- ld b,1
+ ld b,FLAG_SET
predef FlagActionPredef
pop af
and a
@@ -419,39 +419,38 @@ ItemUseBall: ; d687 (3:5687)
ld a,[wEnemyMonSpecies] ;caught mon_ID
ld [wd11e],a
predef ShowPokedexData
-.checkParty ;$58f4
+.checkParty
ld a,[wPartyCount]
cp a,PARTY_LENGTH ;is party full?
jr z,.sendToBox
- xor a
- ld [wcc49],a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation],a
call ClearSprites
call AddPartyMon ;add mon to Party
jr .End
-.sendToBox ;$5907
+.sendToBox
call ClearSprites
call SendNewMonToBox
ld hl,ItemUseBallText07
- ld a,[wd7f1]
- bit 0,a ;already met Bill?
+ CheckEvent EVENT_MET_BILL
jr nz,.sendToBox2
ld hl,ItemUseBallText08
-.sendToBox2 ;$591a
+.sendToBox2
call PrintText
jr .End
-.printText1 ;$591f
+.printText1
ld hl,ItemUseBallText05
-.printText0 ;$5922
+.printText0
call PrintText
call ClearSprites
-.End ;$5928
+.End
ld a,[W_BATTLETYPE]
and a
ret nz
ld hl,wNumBagItems
inc a
- ld [wcf96],a
- jp RemoveItemFromInventory ;remove ITEM (XXX)
+ ld [wItemQuantity],a
+ jp RemoveItemFromInventory
ItemUseBallText00: ; d937 (3:5937)
;"It dodged the thrown ball!"
;"This pokemon can't be caught"
@@ -499,9 +498,7 @@ ItemUseTownMap: ; d968 (3:5968)
ld a,[W_ISINBATTLE]
and a
jp nz,ItemUseNotTime
- ld b, BANK(DisplayTownMap)
- ld hl, DisplayTownMap
- jp Bankswitch ; display Town Map
+ jpba DisplayTownMap
ItemUseBicycle: ; d977 (3:5977)
ld a,[W_ISINBATTLE]
@@ -556,11 +553,11 @@ ItemUseSurfboard: ; d9b4 (3:59b4)
jp PrintText
.tryToStopSurfing
xor a
- ld [$ff8c],a
+ ld [hSpriteIndexOrTextID],a
ld d,16 ; talking range in pixels (normal range)
call IsSpriteInFrontOfPlayer2
res 7,[hl]
- ld a,[$ff8c]
+ ld a,[hSpriteIndexOrTextID]
and a ; is there a sprite in the way?
jr nz,.cannotStopSurfing
ld hl,TilePairCollisionsWater
@@ -593,14 +590,14 @@ ItemUseSurfboard: ; d9b4 (3:59b4)
jp LoadWalkingPlayerSpriteGraphics
; uses a simulated button press to make the player move forward
.makePlayerMoveForward
- ld a,[wd52a] ; direction the player is going
- bit 3,a
+ ld a,[wPlayerDirection] ; direction the player is going
+ bit PLAYER_DIR_BIT_UP,a
ld b,D_UP
jr nz,.storeSimulatedButtonPress
- bit 2,a
+ bit PLAYER_DIR_BIT_DOWN,a
ld b,D_DOWN
jr nz,.storeSimulatedButtonPress
- bit 1,a
+ bit PLAYER_DIR_BIT_LEFT,a
ld b,D_LEFT
jr nz,.storeSimulatedButtonPress
ld b,D_RIGHT
@@ -631,10 +628,10 @@ ItemUseEvoStone: ; da5b (3:5a5b)
ld a,[wWhichPokemon]
push af
ld a,[wcf91]
- ld [wd156],a
+ ld [wEvoStoneItemID],a
push af
- ld a,$05 ; evolution stone party menu
- ld [wd07d],a
+ ld a,EVO_STONE_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID],a
ld a,$ff
ld [wUpdateSpritesEnabled],a
call DisplayPartyMenu
@@ -643,25 +640,25 @@ ItemUseEvoStone: ; da5b (3:5a5b)
ld a,b
ld [wcf91],a
ld a,$01
- ld [wccd4],a
- ld a,(SFX_02_3e - SFX_Headers_02) / 3
- call PlaySoundWaitForCurrent ; play sound
- call WaitForSoundToFinish ; wait for sound to end
+ ld [wForceEvolution],a
+ ld a,SFX_HEAL_AILMENT
+ call PlaySoundWaitForCurrent
+ call WaitForSoundToFinish
callab TryEvolvingMon ; try to evolve pokemon
- ld a,[wd121]
+ ld a,[wEvolutionOccurred]
and a
jr z,.noEffect
pop af
ld [wWhichPokemon],a
ld hl,wNumBagItems
ld a,1 ; remove 1 stone
- ld [wcf96],a
+ ld [wItemQuantity],a
jp RemoveItemFromInventory
.noEffect
call ItemUseNoEffect
.canceledItemUse
xor a
- ld [wcd6a],a
+ ld [wActionResultOrTookBattleTurn],a ; item not used
pop af
ret
@@ -678,11 +675,11 @@ ItemUseMedicine: ; dabb (3:5abb)
push af
ld a,[wcf91]
push af
- ld a,$01
- ld [wd07d],a ; item use party menu
+ ld a,USE_ITEM_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID],a
ld a,$ff
ld [wUpdateSpritesEnabled],a
- ld a,[wd152]
+ ld a,[wPseudoItemID]
and a ; using Softboiled?
jr z,.notUsingSoftboiled
; if using softboiled
@@ -691,7 +688,7 @@ ItemUseMedicine: ; dabb (3:5abb)
.emptyParty
ld hl,.emptyPartyText
xor a
- ld [wcd6a],a ; item use failed
+ ld [wActionResultOrTookBattleTurn],a ; item use failed
jp PrintText
.emptyPartyText
text "You don't have"
@@ -706,7 +703,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld a,[wWhichPokemon]
call AddNTimes
ld a,[wWhichPokemon]
- ld [wcf06],a
+ ld [wUsedItemOnWhichPokemon],a
ld d,a
ld a,[wcf91]
ld e,a
@@ -715,7 +712,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [wcf91],a
pop af
ld [wWhichPokemon],a
- ld a,[wd152]
+ ld a,[wPseudoItemID]
and a ; using Softboiled?
jr z,.checkItemType
; if using softboiled
@@ -737,22 +734,22 @@ ItemUseMedicine: ; dabb (3:5abb)
ld bc,4
add hl,bc ; hl now points to status
ld a,[wcf91]
- ld bc,$f008
+ lb bc, ANTIDOTE_MSG, 1 << PSN
cp a,ANTIDOTE
jr z,.checkMonStatus
- ld bc,$f110
+ lb bc, BURN_HEAL_MSG, 1 << BRN
cp a,BURN_HEAL
jr z,.checkMonStatus
- ld bc,$f220
+ lb bc, ICE_HEAL_MSG, 1 << FRZ
cp a,ICE_HEAL
jr z,.checkMonStatus
- ld bc,$f307
+ lb bc, AWAKENING_MSG, SLP
cp a,AWAKENING
jr z,.checkMonStatus
- ld bc,$f440
+ lb bc, PARALYZ_HEAL_MSG, 1 << PAR
cp a,PARLYZ_HEAL
jr z,.checkMonStatus
- ld bc,$f6ff ; Full Heal
+ lb bc, FULL_HEAL_MSG, $ff ; Full Heal
.checkMonStatus
ld a,[hl] ; pokemon's status
and c ; does the pokemon have a status ailment the item can cure?
@@ -761,7 +758,7 @@ ItemUseMedicine: ; dabb (3:5abb)
xor a
ld [hl],a ; remove the status ailment in the party data
ld a,b
- ld [wd07d],a ; the message to display for the item used
+ ld [wPartyMenuTypeOrMessageID],a ; the message to display for the item used
ld a,[wPlayerMonNumber]
cp d ; is pokemon the item was used on active in battle?
jp nz,.doneHealing
@@ -803,18 +800,18 @@ ItemUseMedicine: ; dabb (3:5abb)
push hl
push de
push bc
- ld a,[wcf06]
+ ld a,[wUsedItemOnWhichPokemon]
ld c,a
ld hl,wPartyFoughtCurrentEnemyFlags
- ld b,$02
+ ld b,FLAG_TEST
predef FlagActionPredef
ld a,c
and a
jr z,.next
- ld a,[wcf06]
+ ld a,[wUsedItemOnWhichPokemon]
ld c,a
ld hl,wPartyGainExpFlags
- ld b,$01
+ ld b,FLAG_SET
predef FlagActionPredef
.next
pop bc
@@ -859,7 +856,7 @@ ItemUseMedicine: ; dabb (3:5abb)
.notFullHP ; if the pokemon's current HP doesn't equal its max HP
xor a
ld [wLowHealthAlarm],a ;disable low health alarm
- ld [wc02a],a
+ ld [wChannelSoundIDs + CH4],a
push hl
push de
ld bc,32
@@ -868,7 +865,7 @@ ItemUseMedicine: ; dabb (3:5abb)
ld [wHPBarMaxHP+1],a
ld a,[hl]
ld [wHPBarMaxHP],a ; max HP stored at wHPBarMaxHP (2 bytes, big-endian)
- ld a,[wd152]
+ ld a,[wPseudoItemID]
and a ; using Softboiled?
jp z,.notUsingSoftboiled2
; if using softboiled
@@ -913,12 +910,12 @@ ItemUseMedicine: ; dabb (3:5abb)
sbc b
ld [hl],a
ld [wHPBarNewHP+1],a
- hlCoord 4, 1
+ coord hl, 4, 1
ld a,[wWhichPokemon]
- ld bc,2 * 20
+ ld bc,2 * SCREEN_WIDTH
call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled
- ld a,(SFX_02_3d - SFX_Headers_02) / 3
- call PlaySoundWaitForCurrent ; play sound
+ ld a,SFX_HEAL_HP
+ call PlaySoundWaitForCurrent
ld a,[hFlags_0xFFF6]
set 0,a
ld [hFlags_0xFFF6],a
@@ -1055,7 +1052,7 @@ ItemUseMedicine: ; dabb (3:5abb)
call ItemUseNoEffect
jp .done
.doneHealing
- ld a,[wd152]
+ ld a,[wPseudoItemID]
and a ; using Softboiled?
jr nz,.skipRemovingItem ; no item to remove if using Softboiled
push hl
@@ -1067,8 +1064,8 @@ ItemUseMedicine: ; dabb (3:5abb)
jr c,.playStatusAilmentCuringSound
cp a,FULL_HEAL
jr z,.playStatusAilmentCuringSound
- ld a,(SFX_02_3d - SFX_Headers_02) / 3 ; HP healing sound
- call PlaySoundWaitForCurrent ; play sound
+ ld a,SFX_HEAL_HP
+ call PlaySoundWaitForCurrent
ld a,[hFlags_0xFFF6]
set 0,a
ld [hFlags_0xFFF6],a
@@ -1078,18 +1075,18 @@ ItemUseMedicine: ; dabb (3:5abb)
ld a,[hFlags_0xFFF6]
res 0,a
ld [hFlags_0xFFF6],a
- ld a,$f7 ; revived message
- ld [wd07d],a
+ ld a,REVIVE_MSG
+ ld [wPartyMenuTypeOrMessageID],a
ld a,[wcf91]
cp a,REVIVE
jr z,.showHealingItemMessage
cp a,MAX_REVIVE
jr z,.showHealingItemMessage
- ld a,$f5 ; standard HP healed message
- ld [wd07d],a
+ ld a,POTION_MSG
+ ld [wPartyMenuTypeOrMessageID],a
jr .showHealingItemMessage
.playStatusAilmentCuringSound
- ld a,(SFX_02_3e - SFX_Headers_02) / 3 ; status ailment curing sound
+ ld a,SFX_HEAL_AILMENT
call PlaySoundWaitForCurrent
.showHealingItemMessage
xor a
@@ -1106,15 +1103,15 @@ ItemUseMedicine: ; dabb (3:5abb)
jr .done
.canceledItemUse
xor a
- ld [wcd6a],a ; item use failed
+ ld [wActionResultOrTookBattleTurn],a ; item use failed
pop af
pop af
.done
- ld a,[wd152]
+ ld a,[wPseudoItemID]
and a ; using Softboiled?
ret nz ; if so, return
call GBPalWhiteOut
- call z,GoPAL_SET_CF1C
+ call z,RunDefaultPaletteCommand
ld a,[W_ISINBATTLE]
and a
ret nz
@@ -1178,8 +1175,8 @@ ItemUseMedicine: ; dabb (3:5abb)
ld de,wcf4b
ld bc,10
call CopyData ; copy the stat's name to wcf4b
- ld a,(SFX_02_3e - SFX_Headers_02) / 3
- call PlaySound ; play sound
+ ld a,SFX_HEAL_AILMENT
+ call PlaySound
ld hl,VitaminStatRoseText
call PrintText
jp RemoveUsedItem
@@ -1216,11 +1213,11 @@ ItemUseMedicine: ; dabb (3:5abb)
ld bc,-19
add hl,bc ; hl now points to experience
; update experience to minimum for new level
- ld a,[$ff96]
+ ld a,[hExperience]
ld [hli],a
- ld a,[$ff97]
+ ld a,[hExperience + 1]
ld [hli],a
- ld a,[$ff98]
+ ld a,[hExperience + 2]
ld [hl],a
pop hl
ld a,[wWhichPokemon]
@@ -1257,25 +1254,25 @@ ItemUseMedicine: ; dabb (3:5abb)
ld a,[hl]
adc b
ld [hl],a
- ld a,$f8 ; level up message
- ld [wd07d],a
+ ld a,RARE_CANDY_MSG
+ ld [wPartyMenuTypeOrMessageID],a
call RedrawPartyMenu
pop de
ld a,d
ld [wWhichPokemon],a
ld a,e
ld [wd11e],a
- xor a
- ld [wcc49],a ; load from player's party
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation],a
call LoadMonData
ld d,$01
callab PrintStatsBox ; display new stats text box
call WaitForTextScrollButtonPress ; wait for button press
- xor a
- ld [wcc49],a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation],a
predef LearnMoveFromLevelUp ; learn level up move, if any
xor a
- ld [wccd4],a
+ ld [wForceEvolution],a
callab TryEvolvingMon ; evolve pokemon, if appropriate
ld a,$01
ld [wUpdateSpritesEnabled],a
@@ -1327,7 +1324,7 @@ ItemUseRock: ; df67 (3:5f67)
BaitRockCommon: ; df7f (3:5f7f)
ld [W_ANIMATIONID],a
xor a
- ld [wcc5b],a
+ ld [wAnimationType],a
ld [H_WHOSETURN],a
ld [de],a ; zero escape factor (for bait), zero bait factor (for rock)
.randomLoop ; loop until a random number less than 5 is generated
@@ -1377,15 +1374,14 @@ ItemUseEscapeRope: ; dfaf (3:5faf)
set 6,[hl]
ld hl,wd72e
res 4,[hl]
- ld hl,wd790
- res 7,[hl] ; unset Safari Zone bit
+ ResetEvent EVENT_IN_SAFARI_ZONE
xor a
ld [W_NUMSAFARIBALLS],a
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
inc a
ld [wEscapedFromBattle],a
- ld [wcd6a],a ; item used
- ld a,[wd152]
+ ld [wActionResultOrTookBattleTurn],a ; item used
+ ld a,[wPseudoItemID]
and a ; using Dig?
ret nz ; if so, return
call ItemUseReloadOverworldData
@@ -1423,7 +1419,7 @@ ItemUseXAccuracy: ; e013 (3:6013)
; The Card Key is handled in a different way.
ItemUseCardKey: ; e022 (3:6022)
xor a
- ld [wd71f],a
+ ld [wUnusedD71F],a
call GetTileAndCoordsInFrontOfPlayer
ld a,[GetTileAndCoordsInFrontOfPlayer] ; $4586
cp a,$18
@@ -1455,7 +1451,7 @@ ItemUseCardKey: ; e022 (3:6022)
cp e
jr nz,.nextEntry3
ld a,[hl]
- ld [wd71f],a
+ ld [wUnusedD71F],a
jr .done
.nextEntry1
inc hl
@@ -1550,7 +1546,7 @@ ItemUseXStat: ; e104 (3:6104)
jr nz,.inBattle
call ItemUseNotTime
ld a,2
- ld [wcd6a],a ; item not used
+ ld [wActionResultOrTookBattleTurn],a ; item not used
ret
.inBattle
ld hl,W_PLAYERMOVENUM
@@ -1586,8 +1582,7 @@ ItemUsePokeflute: ; e140 (3:6140)
ld a,[W_CURMAP]
cp a,ROUTE_12
jr nz,.notRoute12
- ld a,[wd7d8]
- bit 7,a ; has the player beaten Route 12 Snorlax yet?
+ CheckEvent EVENT_BEAT_ROUTE12_SNORLAX
jr nz,.noSnorlaxToWakeUp
; if the player hasn't beaten Route 12 Snorlax
ld hl,Route12SnorlaxFluteCoords
@@ -1595,14 +1590,12 @@ ItemUsePokeflute: ; e140 (3:6140)
jr nc,.noSnorlaxToWakeUp
ld hl,PlayedFluteHadEffectText
call PrintText
- ld hl,wd7d8
- set 6,[hl] ; trigger Snorlax fight (handled by map script)
+ SetEvent EVENT_FIGHT_ROUTE12_SNORLAX
ret
.notRoute12
cp a,ROUTE_16
jr nz,.noSnorlaxToWakeUp
- ld a,[wd7e0]
- bit 1,a ; has the player beaten Route 16 Snorlax yet?
+ CheckEvent EVENT_BEAT_ROUTE16_SNORLAX
jr nz,.noSnorlaxToWakeUp
; if the player hasn't beaten Route 16 Snorlax
ld hl,Route16SnorlaxFluteCoords
@@ -1610,16 +1603,15 @@ ItemUsePokeflute: ; e140 (3:6140)
jr nc,.noSnorlaxToWakeUp
ld hl,PlayedFluteHadEffectText
call PrintText
- ld hl,wd7e0
- set 0,[hl] ; trigger Snorlax fight (handled by map script)
+ SetEvent EVENT_FIGHT_ROUTE16_SNORLAX
ret
.noSnorlaxToWakeUp
ld hl,PlayedFluteNoEffectText
jp PrintText
.inBattle
xor a
- ld [wWhichTrade],a ; initialize variable that indicates if any pokemon were woken up to zero
- ld b,~SLP & $FF
+ ld [wWereAnyMonsAsleep],a
+ ld b,~SLP & $ff
ld hl,wPartyMon1Status
call WakeUpEntireParty
ld a,[W_ISINBATTLE]
@@ -1638,7 +1630,7 @@ ItemUsePokeflute: ; e140 (3:6140)
and b ; remove Sleep status
ld [hl],a
call LoadScreenTilesFromBuffer2 ; restore saved screen
- ld a,[wWhichTrade]
+ ld a,[wWereAnyMonsAsleep]
and a ; were any pokemon asleep before playing the flute?
ld hl,PlayedFluteNoEffectText
jp z,PrintText ; if no pokemon were asleep
@@ -1651,7 +1643,7 @@ ItemUsePokeflute: ; e140 (3:6140)
call WaitForSoundToFinish ; wait for sound to end
callba Music_PokeFluteInBattle ; play in-battle pokeflute music
.musicWaitLoop ; wait for music to finish playing
- ld a,[wc02c]
+ ld a,[wChannelSoundIDs + CH6]
and a ; music off?
jr nz,.musicWaitLoop
.skipMusic
@@ -1662,9 +1654,9 @@ ItemUsePokeflute: ; e140 (3:6140)
; INPUT:
; hl must point to status of first pokemon in party (player's or enemy's)
; b must equal ~SLP
-; [wWhichTrade] should be initialized to 0
+; [wWereAnyMonsAsleep] should be initialized to 0
; OUTPUT:
-; [wWhichTrade]: set to 1 if any pokemon were asleep
+; [wWereAnyMonsAsleep]: set to 1 if any pokemon were asleep
WakeUpEntireParty: ; e1e5 (3:61e5)
ld de,44
ld c,6
@@ -1674,7 +1666,7 @@ WakeUpEntireParty: ; e1e5 (3:61e5)
and a,SLP ; is pokemon asleep?
jr z,.notAsleep
ld a,1
- ld [wWhichTrade],a ; indicate that a pokemon had to be woken up
+ ld [wWereAnyMonsAsleep],a ; indicate that a pokemon had to be woken up
.notAsleep
pop af
and b ; remove Sleep status
@@ -1713,19 +1705,19 @@ FluteWokeUpText: ; e210 (3:6210)
PlayedFluteHadEffectText: ; e215 (3:6215)
TX_FAR _PlayedFluteHadEffectText
db $06
- db $08
+ TX_ASM
ld a,[W_ISINBATTLE]
and a
jr nz,.done
; play out-of-battle pokeflute music
ld a,$ff
call PlaySound ; turn off music
- ld a, (SFX_02_5e - SFX_Headers_02) / 3
- ld c, BANK(SFX_02_5e)
- call PlayMusic ; play music
+ ld a, SFX_POKEFLUE
+ ld c, BANK(SFX_Pokeflute)
+ call PlayMusic
.musicWaitLoop ; wait for music to finish playing
- ld a,[wc028]
- cp a,$b8
+ ld a,[wChannelSoundIDs + CH2]
+ cp a, SFX_POKEFLUE
jr z,.musicWaitLoop
call PlayDefaultMusic ; start playing normal music again
.done
@@ -1742,14 +1734,14 @@ CoinCaseNumCoinsText: ; e247 (3:6247)
TX_FAR _CoinCaseNumCoinsText
db "@"
-OldRodCode: ; e24c (3:624c)
+ItemUseOldRod: ; e24c (3:624c)
call FishingInit
jp c, ItemUseNotTime
- ld bc, (5 << 8) | MAGIKARP
+ lb bc, 5, MAGIKARP
ld a, $1 ; set bite
- jr RodResponse ; 0xe257 $34
+ jr RodResponse
-GoodRodCode: ; e259 (3:6259)
+ItemUseGoodRod: ; e259 (3:6259)
call FishingInit
jp c,ItemUseNotTime
.RandomLoop
@@ -1777,13 +1769,13 @@ GoodRodCode: ; e259 (3:6259)
INCLUDE "data/good_rod.asm"
-SuperRodCode: ; e283 (3:6283)
+ItemUseSuperRod: ; e283 (3:6283)
call FishingInit
jp c, ItemUseNotTime
- call ReadSuperRodData ; 0xe8ea
+ call ReadSuperRodData
ld a, e
RodResponse: ; e28d (3:628d)
- ld [wWhichTrade], a
+ ld [wRodResponse], a
dec a ; is there a bite?
jr nz, .next
@@ -1801,7 +1793,7 @@ RodResponse: ; e28d (3:628d)
push af
push hl
ld [hl], 0
- callba Func_707b6
+ callba FishingAnim
pop hl
pop af
ld [hl], a
@@ -1824,8 +1816,8 @@ FishingInit: ; e2b4 (3:62b4)
call ItemUseReloadOverworldData
ld hl,ItemUseText00
call PrintText
- ld a,(SFX_02_3e - SFX_Headers_02) / 3
- call PlaySound ; play sound
+ ld a,SFX_HEAL_AILMENT
+ call PlaySound
ld c,80
call DelayFrames
and a
@@ -1847,10 +1839,10 @@ ItemUseItemfinder: ; e2e1 (3:62e1)
jr nc,.printText ; if no hidden items
ld c,4
.loop
- ld a,(SFX_02_4a - SFX_Headers_02) / 3
- call PlaySoundWaitForCurrent ; play sound
- ld a,(SFX_02_5a - SFX_Headers_02) / 3
- call PlaySoundWaitForCurrent ; play sound
+ ld a,SFX_HEALING_MACHINE
+ call PlaySoundWaitForCurrent
+ ld a,SFX_PURCHASE
+ call PlaySoundWaitForCurrent
dec c
jr nz,.loop
ld hl,ItemfinderFoundItemText
@@ -1874,23 +1866,23 @@ ItemUsePPRestore: ; e31e (3:631e)
ld a,[wWhichPokemon]
push af
ld a,[wcf91]
- ld [wWhichTrade],a
+ ld [wPPRestoreItem],a
.chooseMon
xor a
ld [wUpdateSpritesEnabled],a
- ld a,$01 ; item use party menu
- ld [wd07d],a
+ ld a,USE_ITEM_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID],a
call DisplayPartyMenu
jr nc,.chooseMove
jp .itemNotUsed
.chooseMove
- ld a,[wWhichTrade]
+ ld a,[wPPRestoreItem]
cp a,ELIXER
jp nc,.useElixir ; if Elixir or Max Elixir
ld a,$02
ld [wMoveMenuType],a
ld hl,RaisePPWhichTechniqueText
- ld a,[wWhichTrade]
+ ld a,[wPPRestoreItem]
cp a,ETHER ; is it a PP Up?
jr c,.printWhichTechniqueMessage ; if so, print the raise PP message
ld hl,RestorePPWhichTechniqueText ; otherwise, print the restore PP message
@@ -1903,7 +1895,7 @@ ItemUsePPRestore: ; e31e (3:631e)
ld [wPlayerMoveListIndex],a
jr nz,.chooseMon
ld hl,wPartyMon1Moves
- ld bc,44
+ ld bc, wPartyMon2 - wPartyMon1
call GetSelectedMoveOffset
push hl
ld a,[hl]
@@ -1911,7 +1903,7 @@ ItemUsePPRestore: ; e31e (3:631e)
call GetMoveName
call CopyStringToCF4B ; copy name to wcf4b
pop hl
- ld a,[wWhichTrade]
+ ld a,[wPPRestoreItem]
cp a,ETHER
jr nc,.useEther ; if Ether or Max Ether
.usePPUp
@@ -1936,7 +1928,7 @@ ItemUsePPRestore: ; e31e (3:631e)
pop af
ld [wWhichPokemon],a
call GBPalWhiteOut
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
jp RemoveUsedItem
.afterRestoringPP ; after using a (Max) Ether/Elixir
ld a,[wWhichPokemon]
@@ -1945,13 +1937,13 @@ ItemUsePPRestore: ; e31e (3:631e)
cp b ; is the pokemon whose PP was restored active in battle?
jr nz,.skipUpdatingInBattleData
ld hl,wPartyMon1PP
- ld bc,44
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld de,wBattleMonPP
ld bc,4
call CopyData ; copy party data to in-battle data
.skipUpdatingInBattleData
- ld a,(SFX_02_3e - SFX_Headers_02) / 3
+ ld a,SFX_HEAL_AILMENT
call PlaySound
ld hl,PPRestoredText
call PrintText
@@ -1963,17 +1955,17 @@ ItemUsePPRestore: ; e31e (3:631e)
; unsets zero flag if PP was restored, sets zero flag if not
; however, this is bugged for Max Ethers and Max Elixirs (see below)
.restorePP
- xor a
- ld [wcc49],a ; party pokemon
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation],a
call GetMaxPP
ld hl,wPartyMon1Moves
- ld bc,44
+ ld bc, wPartyMon2 - wPartyMon1
call GetSelectedMoveOffset
- ld bc,21
+ ld bc, wPartyMon1PP - wPartyMon1Moves
add hl,bc ; hl now points to move's PP
- ld a,[wd11e]
- ld b,a ; b = max PP
- ld a,[wWhichTrade]
+ ld a,[wMaxPP]
+ ld b,a
+ ld a,[wPPRestoreItem]
cp a,MAX_ETHER
jr z,.fullyRestorePP
ld a,[hl] ; move PP
@@ -2005,7 +1997,7 @@ ItemUsePPRestore: ; e31e (3:631e)
jr .storeNewAmount
.useElixir
; decrement the item ID so that ELIXER becomes ETHER and MAX_ELIXER becomes MAX_ETHER
- ld hl,wWhichTrade
+ ld hl,wPPRestoreItem
dec [hl]
dec [hl]
xor a
@@ -2017,7 +2009,7 @@ ItemUsePPRestore: ; e31e (3:631e)
.elixirLoop
push bc
ld hl,wPartyMon1Moves
- ld bc,44
+ ld bc, wPartyMon2 - wPartyMon1
call GetSelectedMoveOffset
ld a,[hl]
and a ; does the current slot have a move?
@@ -2040,10 +2032,10 @@ ItemUsePPRestore: ; e31e (3:631e)
call ItemUseNoEffect
.itemNotUsed
call GBPalWhiteOut
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
pop af
xor a
- ld [wcd6a],a ; item use failed
+ ld [wActionResultOrTookBattleTurn],a ; item use failed
ret
RaisePPWhichTechniqueText: ; e45d (3:645d)
@@ -2095,8 +2087,8 @@ ItemUseTMHM: ; e479 (3:6479)
call PrintText
ld hl,TeachMachineMoveText
call PrintText
- hlCoord 14, 7
- ld bc,$080f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
@@ -2104,7 +2096,7 @@ ItemUseTMHM: ; e479 (3:6479)
and a
jr z,.useMachine
ld a,2
- ld [wcd6a],a ; item not used
+ ld [wActionResultOrTookBattleTurn],a ; item not used
ret
.useMachine
ld a,[wWhichPokemon]
@@ -2113,16 +2105,16 @@ ItemUseTMHM: ; e479 (3:6479)
push af
.chooseMon
ld hl,wcf4b
- ld de,wd036
+ ld de,wTempMoveNameBuffer
ld bc,14
- call CopyData
+ call CopyData ; save the move name because DisplayPartyMenu will overwrite it
ld a,$ff
ld [wUpdateSpritesEnabled],a
- ld a,$03 ; teach TM/HM party menu
- ld [wd07d],a
+ ld a,TMHM_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID],a
call DisplayPartyMenu
push af
- ld hl,wd036
+ ld hl,wTempMoveNameBuffer
ld de,wcf4b
ld bc,14
call CopyData
@@ -2133,7 +2125,7 @@ ItemUseTMHM: ; e479 (3:6479)
pop af
call GBPalWhiteOutWithDelay3
call ClearSprites
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
jp LoadScreenTilesFromBuffer1 ; restore saved screen
.checkIfAbleToLearnMove
predef CanLearnTM ; check if the pokemon can learn the move
@@ -2146,8 +2138,8 @@ ItemUseTMHM: ; e479 (3:6479)
and a ; can the pokemon learn the move?
jr nz,.checkIfAlreadyLearnedMove
; if the pokemon can't learn the move
- ld a,(SFX_02_51 - SFX_Headers_02) / 3
- call PlaySoundWaitForCurrent ; play sound
+ ld a,SFX_DENIED
+ call PlaySoundWaitForCurrent
ld hl,MonCannotLearnMachineMoveText
call PrintText
jr .chooseMon
@@ -2186,14 +2178,14 @@ MonCannotLearnMachineMoveText: ; e55e (3:655e)
PrintItemUseTextAndRemoveItem: ; e563 (3:6563)
ld hl,ItemUseText00
call PrintText
- ld a,(SFX_02_3e - SFX_Headers_02) / 3
- call PlaySound ; play sound
+ ld a,SFX_HEAL_AILMENT
+ call PlaySound
call WaitForTextScrollButtonPress ; wait for button press
RemoveUsedItem: ; e571 (3:6571)
ld hl,wNumBagItems
ld a,1 ; one item
- ld [wcf96],a ; store quantity
+ ld [wItemQuantity],a
jp RemoveItemFromInventory
ItemUseNoEffect: ; e57c (3:657c)
@@ -2209,7 +2201,7 @@ ItemUseNotYoursToUse: ; e586 (3:6586)
jr ItemUseFailed
ThrowBallAtTrainerMon: ; e58b (3:658b)
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call LoadScreenTilesFromBuffer1 ; restore saved screen
call Delay3
ld a,TOSS_ANIM
@@ -2234,7 +2226,7 @@ SurfingAttemptFailed: ; e5b6 (3:65b6)
ItemUseFailed: ; e5b9 (3:65b9)
xor a
- ld [wcd6a],a ; item use failed
+ ld [wActionResultOrTookBattleTurn],a ; item use failed
jp PrintText
ItemUseNotTimeText: ; e5c0 (3:65c0)
@@ -2291,23 +2283,20 @@ GotOffBicycleText: ; e5fc (3:65fc)
; also, when a PP Up is used, it increases the current PP by one PP Up bonus
; INPUT:
; [wWhichPokemon] = index of pokemon in party
-; [wd11e] = mode
-; 0: Pokemon Center healing
-; 1: using a PP Up
; [wCurrentMenuItem] = index of move (when using a PP Up)
RestoreBonusPP: ; e606 (3:6606)
ld hl,wPartyMon1Moves
- ld bc,44
+ ld bc, wPartyMon2 - wPartyMon1
ld a,[wWhichPokemon]
call AddNTimes
push hl
- ld de,wcd78 - 1
- predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wcd78
+ ld de,wNormalMaxPPList - 1
+ predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wNormalMaxPPList
pop hl
- ld c,21
+ ld c, wPartyMon1PP - wPartyMon1Moves
ld b,0
add hl,bc ; hl now points to move 1 PP
- ld de,wcd78
+ ld de,wNormalMaxPPList
ld b,0 ; initialize move counter to zero
; loop through the pokemon's moves
.loop
@@ -2315,7 +2304,7 @@ RestoreBonusPP: ; e606 (3:6606)
ld a,b
cp a,5 ; reached the end of the pokemon's moves?
ret z ; if so, return
- ld a,[wd11e]
+ ld a,[wUsingPPUp]
dec a ; using a PP Up?
jr nz,.skipMenuItemIDCheck
; if using a PP Up, check if this is the move it's being used on
@@ -2337,8 +2326,6 @@ RestoreBonusPP: ; e606 (3:6606)
; INPUT:
; [de] = normal max PP
; [hl] = move PP
-; [wd11e] = max number of times to add bonus
-; set to 1 when using a PP Up, set to 255 otherwise
AddBonusPP: ; e642 (3:6642)
push bc
ld a,[de] ; normal max PP of move
@@ -2366,9 +2353,9 @@ AddBonusPP: ; e642 (3:6642)
.addAmount
add b
ld b,a
- ld a,[wd11e]
- dec a
- jr z,.done
+ ld a,[wUsingPPUp]
+ dec a ; is the player using a PP Up right now?
+ jr z,.done ; if so, only add the bonus once
dec c
jr nz,.loop
.done
@@ -2379,7 +2366,7 @@ AddBonusPP: ; e642 (3:6642)
; gets max PP of a pokemon's move (including PP from PP Ups)
; INPUT:
; [wWhichPokemon] = index of pokemon within party/box
-; [wcc49] = pokemon source
+; [wMonDataLocation] = pokemon source
; 00: player's party
; 01: enemy's party
; 02: current box
@@ -2387,9 +2374,9 @@ AddBonusPP: ; e642 (3:6642)
; 04: player's in-battle pokemon
; [wCurrentMenuItem] = move index
; OUTPUT:
-; [wd11e] = max PP
+; [wMaxPP] = max PP
GetMaxPP: ; e677 (3:6677)
- ld a,[wcc49]
+ ld a,[wMonDataLocation]
and a
ld hl,wPartyMon1Moves
ld bc,wPartyMon2 - wPartyMon1
@@ -2415,21 +2402,21 @@ GetMaxPP: ; e677 (3:6677)
dec a
push hl
ld hl,Moves
- ld bc,6
+ ld bc,MoveEnd - Moves
call AddNTimes
ld de,wcd6d
ld a,BANK(Moves)
call FarCopyData
- ld de,wcd72
+ ld de,wcd6d + 5 ; PP is byte 5 of move data
ld a,[de]
ld b,a ; b = normal max PP
pop hl
push bc
- ld bc,21 ; PP offset if not player's in-battle pokemon data
- ld a,[wcc49]
+ ld bc,wPartyMon1PP - wPartyMon1Moves ; PP offset if not player's in-battle pokemon data
+ ld a,[wMonDataLocation]
cp a,4 ; player's in-battle pokemon?
jr nz,.addPPOffset
- ld bc,17 ; PP offset if player's in-battle pokemon data
+ ld bc,wBattleMonPP - wBattleMonMoves ; PP offset if player's in-battle pokemon data
.addPPOffset
add hl,bc
ld a,[hl] ; a = current PP
@@ -2440,12 +2427,12 @@ GetMaxPP: ; e677 (3:6677)
ld l,e
inc hl ; hl = wcd73
ld [hl],a
- xor a
- ld [wd11e],a ; no limit on PP Up amount
+ xor a ; add the bonus for the existing PP Up count
+ ld [wUsingPPUp],a
call AddBonusPP ; add bonus PP from PP Ups
ld a,[hl]
and a,%00111111 ; mask out the PP Up count
- ld [wd11e],a ; store max PP
+ ld [wMaxPP],a ; store max PP
ret
GetSelectedMoveOffset: ; e6e3 (3:66e3)
@@ -2464,7 +2451,7 @@ GetSelectedMoveOffset2: ; e6e9 (3:66e9)
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [wcf91] = item ID
; [wWhichPokemon] = index of item within inventory
-; [wcf96] = quantity to toss
+; [wItemQuantity] = quantity to toss
; OUTPUT:
; clears carry flag if the item is tossed, sets carry flag if not
TossItem_: ; e6f1 (3:66f1)
@@ -2475,7 +2462,7 @@ TossItem_: ; e6f1 (3:66f1)
jr c,.tooImportantToToss
push hl
call IsKeyItem_
- ld a,[wd124]
+ ld a,[wIsKeyItem]
pop hl
and a
jr nz,.tooImportantToToss
@@ -2486,16 +2473,16 @@ TossItem_: ; e6f1 (3:66f1)
call CopyStringToCF4B ; copy name to wcf4b
ld hl,IsItOKToTossItemText
call PrintText
- hlCoord 14, 7
- ld bc,$080f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
- ld a,[wd12e]
- cp a,2
+ ld a,[wMenuExitMethod]
+ cp a,CHOSE_SECOND_ITEM
pop hl
scf
- ret z
+ ret z ; return if the player chose No
; if the player chose Yes
push hl
ld a,[wWhichPokemon]
@@ -2533,27 +2520,27 @@ TooImportantToTossText: ; e75f (3:675f)
; INPUT:
; [wcf91] = item ID
; OUTPUT:
-; [wd124] = result
+; [wIsKeyItem] = result
; 00: item is not key item
; 01: item is key item
IsKeyItem_: ; e764 (3:6764)
ld a,$01
- ld [wd124],a
+ ld [wIsKeyItem],a
ld a,[wcf91]
cp a,HM_01 ; is the item an HM or TM?
jr nc,.checkIfItemIsHM
; if the item is not an HM or TM
push af
ld hl,KeyItemBitfield
- ld de,wHPBarMaxHP
+ ld de,wBuffer
ld bc,15 ; only 11 bytes are actually used
call CopyData
pop af
dec a
ld c,a
- ld hl,wHPBarMaxHP
- ld b,$02 ; test bit
- predef FlagActionPredef ; bitfield operation function
+ ld hl,wBuffer
+ ld b,FLAG_TEST
+ predef FlagActionPredef
ld a,c
and a
ret nz
@@ -2562,13 +2549,13 @@ IsKeyItem_: ; e764 (3:6764)
call IsItemHM
ret c
xor a
- ld [wd124],a
+ ld [wIsKeyItem],a
ret
INCLUDE "data/key_items.asm"
SendNewMonToBox: ; e7a4 (3:67a4)
- ld de, W_NUMINBOX ; wda80
+ ld de, W_NUMINBOX
ld a, [de]
inc a
ld [de], a
@@ -2586,74 +2573,74 @@ SendNewMonToBox: ; e7a4 (3:67a4)
jr nz, .asm_e7b1
call GetMonHeader
ld hl, wBoxMonOT
- ld bc, $b
- ld a, [W_NUMINBOX] ; wda80
+ ld bc, NAME_LENGTH
+ ld a, [W_NUMINBOX]
dec a
jr z, .asm_e7ee
dec a
call AddNTimes
push hl
- ld bc, $b
+ ld bc, NAME_LENGTH
add hl, bc
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
dec a
ld b, a
.asm_e7db
push bc
push hl
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
pop hl
ld d, h
ld e, l
- ld bc, $fff5
+ ld bc, -NAME_LENGTH
add hl, bc
pop bc
dec b
jr nz, .asm_e7db
.asm_e7ee
- ld hl, wPlayerName ; wd158
+ ld hl, wPlayerName
ld de, wBoxMonOT
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
dec a
jr z, .asm_e82a
ld hl, wBoxMonNicks
- ld bc, $b
+ ld bc, NAME_LENGTH
dec a
call AddNTimes
push hl
- ld bc, $b
+ ld bc, NAME_LENGTH
add hl, bc
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
dec a
ld b, a
.asm_e817
push bc
push hl
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
pop hl
ld d, h
ld e, l
- ld bc, $fff5
+ ld bc, -NAME_LENGTH
add hl, bc
pop bc
dec b
jr nz, .asm_e817
.asm_e82a
ld hl, wBoxMonNicks
- ld a, $2
- ld [wd07d], a
+ ld a, NAME_MON_SCREEN
+ ld [wNamingScreenType], a
predef AskName
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
dec a
jr z, .asm_e867
ld hl, wBoxMons
@@ -2666,7 +2653,7 @@ SendNewMonToBox: ; e7a4 (3:67a4)
ld d, h
ld e, l
pop hl
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
dec a
ld b, a
.asm_e854
@@ -2677,19 +2664,19 @@ SendNewMonToBox: ; e7a4 (3:67a4)
pop hl
ld d, h
ld e, l
- ld bc, $ffdf
+ ld bc, wBoxMon1 - wBoxMon2
add hl, bc
pop bc
dec b
jr nz, .asm_e854
.asm_e867
- ld a, [wEnemyMonLevel] ; wEnemyMonLevel
+ ld a, [wEnemyMonLevel]
ld [wEnemyMonBoxLevel], a
ld hl, wEnemyMon
ld de, wBoxMon1
- ld bc, $c
+ ld bc, wEnemyMonDVs - wEnemyMon
call CopyData
- ld hl, wPlayerID ; wPlayerID
+ ld hl, wPlayerID
ld a, [hli]
ld [de], a
inc de
@@ -2697,21 +2684,21 @@ SendNewMonToBox: ; e7a4 (3:67a4)
ld [de], a
inc de
push de
- ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
+ ld a, [W_CURENEMYLVL]
ld d, a
callab CalcExperience
pop de
- ld a, [H_NUMTOPRINT] ; $ff96 (aliases: H_MULTIPLICAND)
+ ld a, [hExperience]
ld [de], a
inc de
- ld a, [$ff97]
+ ld a, [hExperience + 1]
ld [de], a
inc de
- ld a, [$ff98]
+ ld a, [hExperience + 2]
ld [de], a
inc de
xor a
- ld b, $a
+ ld b, NUM_STATS * 2
.asm_e89f
ld [de], a
inc de
@@ -2723,8 +2710,8 @@ SendNewMonToBox: ; e7a4 (3:67a4)
inc de
ld a, [hli]
ld [de], a
- ld hl, wEnemyMonPP ; wcffe
- ld b, $4
+ ld hl, wEnemyMonPP
+ ld b, NUM_MOVES
.asm_e8b1
ld a, [hli]
inc de
@@ -2781,7 +2768,7 @@ ReadSuperRodData: ; e8ea (3:68ea)
ld e, $2 ; $2 if no fishing groups found
ret
-.ReadFishingGroup ; 0xe8f6
+.ReadFishingGroup
; hl points to the fishing group entry in the index
inc hl ; skip map id
@@ -2794,7 +2781,7 @@ ReadSuperRodData: ; e8ea (3:68ea)
inc hl ; point to data
ld e, $0 ; no bite yet
-.RandomLoop ; 0xe90c
+.RandomLoop
call Random
srl a
ret c ; 50% chance of no battle
diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm
index ccc5fc5a..a3a8c608 100755
--- a/engine/items/tm_prices.asm
+++ b/engine/items/tm_prices.asm
@@ -1,12 +1,11 @@
GetMachinePrice: ; f65d4 (3d:65d4)
; Input: [wcf91] = Item Id of a TM
-; Output: Stores the 2-byte TM price in [H_DOWNARROWBLINKCNT1] and [H_DOWNARROWBLINKCNT2]
-; as a BCD
+; Output: Stores the TM price at hItemPrice
ld a, [wcf91] ; a contains TM item id
sub TM_01
ret c
ld d, a
- ld hl, TechnicalMachinePrices ; $7fa7
+ ld hl, TechnicalMachinePrices
srl a
ld c, a
ld b, 0
@@ -17,10 +16,10 @@ GetMachinePrice: ; f65d4 (3d:65d4)
swap a
.highNybbleIsPrice
and $f0
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hItemPrice + 1], a
xor a
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- ld [$ff8d], a
+ ld [hItemPrice], a
+ ld [hItemPrice + 2], a
ret
INCLUDE "data/tm_prices.asm"
diff --git a/engine/items/tms.asm b/engine/items/tms.asm
index 511aab5b..23912b34 100755
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -17,7 +17,7 @@ CanLearnTM: ; 1373e (4:773e)
jr .findTMloop
.TMfoundLoop
pop hl
- ld b, $2 ; read corresponding bit from TM compatibility array
+ ld b, FLAG_TEST
predef_jump FlagActionPredef
; converts TM/HM number in wd11e into move number
diff --git a/engine/learn_move.asm b/engine/learn_move.asm
index 75056edb..c0ced4a0 100755
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -4,25 +4,25 @@ LearnMove: ; 6e43 (1:6e43)
ld hl, wPartyMonNicks
call GetPartyMonName
ld hl, wcd6d
- ld de, wd036
- ld bc, $b
+ ld de, wLearnMoveMonName
+ ld bc, NAME_LENGTH
call CopyData
DontAbandonLearning: ; 6e5b (1:6e5b)
ld hl, wPartyMon1Moves
- ld bc, $2c
+ ld bc, wPartyMon2Moves - wPartyMon1Moves
ld a, [wWhichPokemon]
call AddNTimes
ld d, h
ld e, l
- ld b, $4
-.asm_6e6b
+ ld b, NUM_MOVES
+.findEmptyMoveSlotLoop
ld a, [hl]
and a
- jr z, .asm_6e8b
+ jr z, .next
inc hl
dec b
- jr nz, .asm_6e6b
+ jr nz, .findEmptyMoveSlotLoop
push de
call TryingToLearn
pop de
@@ -35,21 +35,21 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
call PrintText
pop de
pop hl
-.asm_6e8b
+.next
ld a, [wMoveNum]
ld [hl], a
- ld bc, $15
+ ld bc, wPartyMon1PP - wPartyMon1Moves
add hl, bc
push hl
push de
dec a
ld hl, Moves
- ld bc, $6
+ ld bc, MoveEnd - Moves
call AddNTimes
- ld de, wHPBarMaxHP
+ ld de, wBuffer
ld a, BANK(Moves)
call FarCopyData
- ld a, [wHPBarNewHP + 1]
+ ld a, [wBuffer + 5] ; a = move's max PP
pop de
pop hl
ld [hl], a
@@ -66,18 +66,18 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
ld de, wBattleMonMoves
ld bc, NUM_MOVES
call CopyData
- ld bc, $11
+ ld bc, wPartyMon1PP - wPartyMon1OTID
add hl, bc
ld de, wBattleMonPP
- ld bc, $4
+ ld bc, NUM_MOVES
call CopyData
jp PrintLearnedMove
AbandonLearning: ; 6eda (1:6eda)
ld hl, AbandonLearningText
call PrintText
- hlCoord 14, 7
- ld bc, $80f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID ; yes/no menu
@@ -86,21 +86,21 @@ AbandonLearning: ; 6eda (1:6eda)
jp nz, DontAbandonLearning
ld hl, DidNotLearnText
call PrintText
- ld b, $0
+ ld b, 0
ret
PrintLearnedMove: ; 6efe (1:6efe)
ld hl, LearnedMove1Text
call PrintText
- ld b, $1
+ ld b, 1
ret
TryingToLearn: ; 6f07 (1:6f07)
push hl
ld hl, TryingToLearnText
call PrintText
- hlCoord 14, 7
- ld bc, $80f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID ; yes/no menu
@@ -108,7 +108,7 @@ TryingToLearn: ; 6f07 (1:6f07)
ld a, [wCurrentMenuItem]
rra
ret c
- ld bc, $fffc
+ ld bc, -NUM_MOVES
add hl, bc
push hl
ld de, wMoves
@@ -116,15 +116,15 @@ TryingToLearn: ; 6f07 (1:6f07)
call CopyData
callab FormatMovesString
pop hl
-.asm_6f39
+.loop
push hl
ld hl, WhichMoveToForgetText
call PrintText
- hlCoord 4, 7
- ld b, $4
- ld c, $e
+ coord hl, 4, 7
+ ld b, 4
+ ld c, 14
call TextBoxBorder
- hlCoord 6, 8
+ coord hl, 6, 8
ld de, wMovesString
ld a, [hFlags_0xFFF6]
set 2, a
@@ -134,18 +134,18 @@ TryingToLearn: ; 6f07 (1:6f07)
res 2, a
ld [hFlags_0xFFF6], a
ld hl, wTopMenuItemY
- ld a, $8
- ld [hli], a
- ld a, $5
- ld [hli], a
+ ld a, 8
+ ld [hli], a ; wTopMenuItemY
+ ld a, 5
+ ld [hli], a ; wTopMenuItemX
xor a
- ld [hli], a
+ ld [hli], a ; wCurrentMenuItem
inc hl
- ld a, [wcd6c]
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld [hl], $0
+ ld a, [wNumMovesMinusOne]
+ ld [hli], a ; wMaxMenuItem
+ ld a, A_BUTTON | B_BUTTON
+ ld [hli], a ; wMenuWatchedKeys
+ ld [hl], 0 ; wLastMenuItem
ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
@@ -155,12 +155,12 @@ TryingToLearn: ; 6f07 (1:6f07)
call LoadScreenTilesFromBuffer1
pop af
pop hl
- bit 1, a
- jr nz, .asm_6fab
+ bit 1, a ; pressed b
+ jr nz, .cancel
push hl
ld a, [wCurrentMenuItem]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hl]
push af
@@ -169,17 +169,17 @@ TryingToLearn: ; 6f07 (1:6f07)
pop bc
pop de
ld a, d
- jr c, .asm_6fa2
+ jr c, .hm
pop hl
add hl, bc
and a
ret
-.asm_6fa2
+.hm
ld hl, HMCantDeleteText
call PrintText
pop hl
- jr .asm_6f39
-.asm_6fab
+ jr .loop
+.cancel
scf
ret
@@ -206,8 +206,8 @@ TryingToLearnText: ; 6fc3 (1:6fc3)
OneTwoAndText: ; 6fc8 (1:6fc8)
TX_FAR _OneTwoAndText
db $a
- db $8
- ld a, (SFX_02_58 - SFX_Headers_02) / 3
+ TX_ASM
+ ld a, SFX_SWAP
call PlaySoundWaitForCurrent
ld hl, PoofText
ret
diff --git a/engine/load_pokedex_tiles.asm b/engine/load_pokedex_tiles.asm
index e8205ef8..1189d2f0 100755
--- a/engine/load_pokedex_tiles.asm
+++ b/engine/load_pokedex_tiles.asm
@@ -1,11 +1,11 @@
; Loads tile patterns for tiles used in the pokedex.
LoadPokedexTilePatterns: ; 17840 (5:7840)
call LoadHpBarAndStatusTilePatterns
- ld de,PokedexTileGraphics ; $6488
+ ld de,PokedexTileGraphics
ld hl,vChars2 + $600
- ld bc,(BANK(PokedexTileGraphics) << 8) + $12
+ lb bc, BANK(PokedexTileGraphics), (PokedexTileGraphicsEnd - PokedexTileGraphics) / $10
call CopyVideoData
- ld de,PokeballTileGraphics ; $697e
+ ld de,PokeballTileGraphics
ld hl,vChars2 + $720
- ld bc,(BANK(PokeballTileGraphics) << 8) + $01
+ lb bc, BANK(PokeballTileGraphics), $01
jp CopyVideoData ; load pokeball tile for marking caught mons
diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm
index 70b5bc33..87595a09 100644
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -1,90 +1,87 @@
-Func_213c8:: ; 213c8 (8:53c8)
+DisplayPCMainMenu:: ; 213c8 (8:53c8)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
call SaveScreenTilesToBuffer2
- ld a, [wd5a2]
+ ld a, [wNumHoFTeams]
and a
- jr nz, .asm_213f3
- ld a, [wd74b]
- bit 5, a
- jr z, .asm_213ea
- ld a, [wd5a2]
+ jr nz, .leaguePCAvailable
+ CheckEvent EVENT_GOT_POKEDEX
+ jr z, .noOaksPC
+ ld a, [wNumHoFTeams]
and a
- jr nz, .asm_213f3
- ld hl, wTileMap
- ld b, $8
- ld c, $e
- jr .asm_213fa
-.asm_213ea
- ld hl, wTileMap
- ld b, $6
- ld c, $e
- jr .asm_213fa
-.asm_213f3
- ld hl, wTileMap
- ld b, $a
- ld c, $e
-.asm_213fa
+ jr nz, .leaguePCAvailable
+ coord hl, 0, 0
+ ld b, 8
+ ld c, 14
+ jr .next
+.noOaksPC
+ coord hl, 0, 0
+ ld b, 6
+ ld c, 14
+ jr .next
+.leaguePCAvailable
+ coord hl, 0, 0
+ ld b, 10
+ ld c, 14
+.next
call TextBoxBorder
call UpdateSprites
- ld a, $3
+ ld a, 3
ld [wMaxMenuItem], a
- ld a, [wd7f1]
- bit 0, a
- jr nz, .asm_21414
- hlCoord 2, 2
+ CheckEvent EVENT_MET_BILL
+ jr nz, .metBill
+ coord hl, 2, 2
ld de, SomeonesPCText
- jr .asm_2141a
-.asm_21414
- hlCoord 2, 2
+ jr .next2
+.metBill
+ coord hl, 2, 2
ld de, BillsPCText
-.asm_2141a
+.next2
call PlaceString
- hlCoord 2, 4
+ coord hl, 2, 4
ld de, wPlayerName
call PlaceString
ld l, c
ld h, b
ld de, PlayersPCText
call PlaceString
- ld a, [wd74b]
- bit 5, a
- jr z, .asm_21462
- hlCoord 2, 6
+ CheckEvent EVENT_GOT_POKEDEX
+ jr z, .noOaksPC2
+ coord hl, 2, 6
ld de, OaksPCText
call PlaceString
- ld a, [wd5a2]
+ ld a, [wNumHoFTeams]
and a
- jr z, .asm_2145a
- ld a, $4
+ jr z, .noLeaguePC
+ ld a, 4
ld [wMaxMenuItem], a
- hlCoord 2, 8
+ coord hl, 2, 8
ld de, PKMNLeaguePCText
call PlaceString
- hlCoord 2, 10
+ coord hl, 2, 10
ld de, LogOffPCText
- jr .asm_2146d
-.asm_2145a
- hlCoord 2, 8
+ jr .next3
+.noLeaguePC
+ coord hl, 2, 8
ld de, LogOffPCText
- jr .asm_2146d
-.asm_21462
+ jr .next3
+.noOaksPC2
ld a, $2
ld [wMaxMenuItem], a
- hlCoord 2, 6
+ coord hl, 2, 6
ld de, LogOffPCText
-.asm_2146d
+.next3
call PlaceString
- ld a, $3
+ ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
- ld a, $2
+ ld a, 2
ld [wTopMenuItemY], a
- ld a, $1
+ ld a, 1
ld [wTopMenuItemX], a
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, $1
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
ret
@@ -99,103 +96,105 @@ BillsPC_:: ; 0x214c2
ld hl, wd730
set 6, [hl]
xor a
- ld [wccd3], a
+ ld [wParentMenuItem], a
inc a ; MONSTER_NAME
ld [wNameListType], a
call LoadHpBarAndStatusTilePatterns
ld a, [wListScrollOffset]
push af
ld a, [wFlags_0xcd60]
- bit 3, a
+ bit 3, a ; accessing Bill's PC through another PC?
jr nz, BillsPCMenu
+; accessing it directly
ld a, $99
call PlaySound
ld hl, SwitchOnText
call PrintText
-Func_214e8: ; 214e8 (8:54e8)
-BillsPCMenu:
- ld a, [wccd3]
+BillsPCMenu: ; 214e8 (8:54e8)
+ ld a, [wParentMenuItem]
ld [wCurrentMenuItem], a
ld hl, vChars2 + $780
ld de, PokeballTileGraphics
- ld bc, (BANK(PokeballTileGraphics) << 8) + $01
+ lb bc, BANK(PokeballTileGraphics), $01
call CopyVideoData
call LoadScreenTilesFromBuffer2DisableBGTransfer
- ld hl, wTileMap
- ld b, $a
- ld c, $c
+ coord hl, 0, 0
+ ld b, 10
+ ld c, 12
call TextBoxBorder
- hlCoord 2, 2
+ coord hl, 2, 2
ld de, BillsPCMenuText
call PlaceString
ld hl, wTopMenuItemY
- ld a, $2
- ld [hli], a
+ ld a, 2
+ ld [hli], a ; wTopMenuItemY
dec a
- ld [hli], a
+ ld [hli], a ; wTopMenuItemX
inc hl
inc hl
- ld a, $4
- ld [hli], a
- ld a, $3
- ld [hli], a
+ ld a, 4
+ ld [hli], a ; wMaxMenuItem
+ ld a, A_BUTTON | B_BUTTON
+ ld [hli], a ; wMenuWatchedKeys
xor a
- ld [hli], a
- ld [hli], a
+ ld [hli], a ; wLastMenuItem
+ ld [hli], a ; wPartyAndBillsPCSavedMenuItem
ld hl, wListScrollOffset
- ld [hli], a
- ld [hl], a
+ ld [hli], a ; wListScrollOffset
+ ld [hl], a ; wMenuWatchMovingOutOfBounds
ld [wPlayerMonNumber], a
ld hl, WhatText
call PrintText
- hlCoord 9, 14
- ld b, $2
- ld c, $9
+ coord hl, 9, 14
+ ld b, 2
+ ld c, 9
call TextBoxBorder
- ld a, [wd5a0]
+ ld a, [wCurrentBoxNum]
and $7f
cp 9
- jr c, .asm_2154f
+ jr c, .singleDigitBoxNum
+; two digit box num
sub 9
- hlCoord 17, 16
+ coord hl, 17, 16
ld [hl], "1"
add "0"
- jr .asm_21551
-.asm_2154f
+ jr .next
+.singleDigitBoxNum
add "1"
-.asm_21551
+.next
Coorda 18, 16
- hlCoord 10, 16
+ coord hl, 10, 16
ld de, BoxNoPCText
call PlaceString
- ld a, $1
+ ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
call HandleMenuInput
bit 1, a
- jp nz, Func_21588 ; b button
+ jp nz, ExitBillsPC ; b button
call PlaceUnfilledArrowMenuCursor
ld a, [wCurrentMenuItem]
- ld [wccd3], a
+ ld [wParentMenuItem], a
and a
- jp z, Func_21618 ; withdraw
+ jp z, BillsPCWithdraw ; withdraw
cp $1
- jp z, Func_215ac ; deposit
+ jp z, BillsPCDeposit ; deposit
cp $2
- jp z, Func_21673 ; release
+ jp z, BillsPCRelease ; release
cp $3
- jp z, Func_216b3 ; change box
+ jp z, BillsPCChangeBox ; change box
-Func_21588: ; 21588 (8:5588)
+ExitBillsPC: ; 21588 (8:5588)
ld a, [wFlags_0xcd60]
- bit 3, a
- jr nz, .asm_2159a
+ bit 3, a ; accessing Bill's PC through another PC?
+ jr nz, .next
+; accessing it directly
call LoadTextBoxTilePatterns
ld a, $9a
call PlaySound
call WaitForSoundToFinish
-.asm_2159a
+.next
ld hl, wFlags_0xcd60
res 5, [hl]
call LoadScreenTilesFromBuffer2
@@ -205,139 +204,138 @@ Func_21588: ; 21588 (8:5588)
res 6, [hl]
ret
-Func_215ac: ; 215ac (8:55ac)
-BillsPCDeposit:
+BillsPCDeposit: ; 215ac (8:55ac)
ld a, [wPartyCount]
dec a
- jr nz, .asm_215bb
+ jr nz, .partyLargeEnough
ld hl, CantDepositLastMonText
call PrintText
jp BillsPCMenu
-.asm_215bb
+.partyLargeEnough
ld a, [W_NUMINBOX]
cp MONS_PER_BOX
- jr nz, .asm_215cb
+ jr nz, .boxNotFull
ld hl, BoxFullText
call PrintText
jp BillsPCMenu
-.asm_215cb
+.boxNotFull
ld hl, wPartyCount
- call Func_216be
+ call DisplayMonListMenu
jp c, BillsPCMenu
- call Func_2174b
+ call DisplayDepositWithdrawMenu
jp nc, BillsPCMenu
ld a, [wcf91]
call GetCryData
call PlaySoundWaitForCurrent
- ld a, $1
- ld [wcf95], a
- call Func_3a68
+ ld a, PARTY_TO_BOX
+ ld [wMoveMonType], a
+ call MoveMon
xor a
- ld [wcf95], a
+ ld [wRemoveMonFromBox], a
call RemovePokemon
call WaitForSoundToFinish
- ld hl, wWhichTrade
- ld a, [wd5a0]
+ ld hl, wBoxNumString
+ ld a, [wCurrentBoxNum]
and $7f
cp 9
- jr c, .asm_2160a
+ jr c, .singleDigitBoxNum
sub 9
ld [hl], "1"
inc hl
add "0"
- jr .asm_2160c
-.asm_2160a
+ jr .next
+.singleDigitBoxNum
add "1"
-.asm_2160c
+.next
ld [hli], a
ld [hl], $50
ld hl, MonWasStoredText
call PrintText
jp BillsPCMenu
-Func_21618: ; 21618 (8:5618)
+BillsPCWithdraw: ; 21618 (8:5618)
ld a, [W_NUMINBOX]
and a
- jr nz, .asm_21627
+ jr nz, .boxNotEmpty
ld hl, NoMonText
call PrintText
- jp Func_214e8
-.asm_21627
+ jp BillsPCMenu
+.boxNotEmpty
ld a, [wPartyCount]
cp PARTY_LENGTH
- jr nz, .asm_21637
+ jr nz, .partyNotFull
ld hl, CantTakeMonText
call PrintText
- jp Func_214e8
-.asm_21637
+ jp BillsPCMenu
+.partyNotFull
ld hl, W_NUMINBOX
- call Func_216be
- jp c, Func_214e8
- call Func_2174b
- jp nc, Func_214e8
+ call DisplayMonListMenu
+ jp c, BillsPCMenu
+ call DisplayDepositWithdrawMenu
+ jp nc, BillsPCMenu
ld a, [wWhichPokemon]
ld hl, wBoxMonNicks
call GetPartyMonName
ld a, [wcf91]
call GetCryData
call PlaySoundWaitForCurrent
- xor a
- ld [wcf95], a
- call Func_3a68
- ld a, $1
- ld [wcf95], a
+ xor a ; BOX_TO_PARTY
+ ld [wMoveMonType], a
+ call MoveMon
+ ld a, 1
+ ld [wRemoveMonFromBox], a
call RemovePokemon
call WaitForSoundToFinish
ld hl, MonIsTakenOutText
call PrintText
- jp Func_214e8
+ jp BillsPCMenu
-Func_21673: ; 21673 (8:5673)
+BillsPCRelease: ; 21673 (8:5673)
ld a, [W_NUMINBOX]
and a
- jr nz, .asm_21682
+ jr nz, .loop
ld hl, NoMonText
call PrintText
- jp Func_214e8
-.asm_21682
+ jp BillsPCMenu
+.loop
ld hl, W_NUMINBOX
- call Func_216be
- jp c, Func_214e8
+ call DisplayMonListMenu
+ jp c, BillsPCMenu
ld hl, OnceReleasedText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_21682
+ jr nz, .loop
inc a
- ld [wcf95], a
+ ld [wRemoveMonFromBox], a
call RemovePokemon
call WaitForSoundToFinish
ld a, [wcf91]
call PlayCry
ld hl, MonWasReleasedText
call PrintText
- jp Func_214e8
+ jp BillsPCMenu
-Func_216b3: ; 216b3 (8:56b3)
+BillsPCChangeBox: ; 216b3 (8:56b3)
callba ChangeBox
- jp Func_214e8
+ jp BillsPCMenu
-Func_216be: ; 216be (8:56be)
+DisplayMonListMenu: ; 216be (8:56be)
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
- ld [wcf93], a
+ ld [wPrintItemPrices], a
ld [wListMenuID], a
inc a ; MONSTER_NAME
ld [wNameListType], a
- ld a, [wcc2b]
+ ld a, [wPartyAndBillsPCSavedMenuItem]
ld [wCurrentMenuItem], a
call DisplayListMenuID
ld a, [wCurrentMenuItem]
- ld [wcc2b], a
+ ld [wPartyAndBillsPCSavedMenuItem], a
ret
BillsPCMenuText: ; 216e1 (8:56e1)
@@ -352,17 +350,19 @@ BillsPCMenuText: ; 216e1 (8:56e1)
BoxNoPCText: ; 21713 (8:5713)
db "BOX No.@"
-Func_2171b:: ; 2171b (8:571b)
+KnowsHMMove:: ; 2171b (8:571b)
+; returns whether mon with party index [wWhichPokemon] knows an HM move
ld hl, wPartyMon1Moves
ld bc, wPartyMon2 - wPartyMon1
- jr .asm_21729 ; 0x21721 $6
+ jr .next
+; unreachable
ld hl, wBoxMon1Moves
ld bc, wBoxMon2 - wBoxMon1
-.asm_21729
+.next
ld a, [wWhichPokemon]
call AddNTimes
ld b, NUM_MOVES
-.asm_21731
+.loop
ld a, [hli]
push hl
push bc
@@ -373,7 +373,7 @@ Func_2171b:: ; 2171b (8:571b)
pop hl
ret c
dec b
- jr nz, .asm_21731 ; 0x21741 $ee
+ jr nz, .loop
and a
ret
@@ -385,72 +385,72 @@ HMMoveArray: ; 21745 (8:5745)
db FLASH
db -1
-Func_2174b: ; 2174b (8:574b)
- hlCoord 9, 10
- ld b, $6
- ld c, $9
+DisplayDepositWithdrawMenu: ; 2174b (8:574b)
+ coord hl, 9, 10
+ ld b, 6
+ ld c, 9
call TextBoxBorder
- ld a, [wccd3]
- and a
+ ld a, [wParentMenuItem]
+ and a ; was the Deposit or Withdraw item selected in the parent menu?
ld de, DepositPCText
- jr nz, .asm_21761
+ jr nz, .next
ld de, WithdrawPCText
-.asm_21761
- hlCoord 11, 12
+.next
+ coord hl, 11, 12
call PlaceString
- hlCoord 11, 14
+ coord hl, 11, 14
ld de, StatsCancelPCText
call PlaceString
ld hl, wTopMenuItemY
- ld a, $c
- ld [hli], a
- ld a, $a
- ld [hli], a
+ ld a, 12
+ ld [hli], a ; wTopMenuItemY
+ ld a, 10
+ ld [hli], a ; wTopMenuItemX
xor a
- ld [hli], a
+ ld [hli], a ; wCurrentMenuItem
inc hl
- ld a, $2
- ld [hli], a
- ld a, $3
- ld [hli], a
+ ld a, 2
+ ld [hli], a ; wMaxMenuItem
+ ld a, A_BUTTON | B_BUTTON
+ ld [hli], a ; wMenuWatchedKeys
xor a
- ld [hl], a
+ ld [hl], a ; wLastMenuItem
ld hl, wListScrollOffset
- ld [hli], a
- ld [hl], a
+ ld [hli], a ; wListScrollOffset
+ ld [hl], a ; wMenuWatchMovingOutOfBounds
ld [wPlayerMonNumber], a
- ld [wcc2b], a
-.asm_2178f
+ ld [wPartyAndBillsPCSavedMenuItem], a
+.loop
call HandleMenuInput
- bit 1, a
- jr nz, .asm_2179f
+ bit 1, a ; pressed B?
+ jr nz, .exit
ld a, [wCurrentMenuItem]
and a
- jr z, .asm_217a1
+ jr z, .choseDepositWithdraw
dec a
- jr z, .asm_217a3
-.asm_2179f
+ jr z, .viewStats
+.exit
and a
ret
-.asm_217a1
+.choseDepositWithdraw
scf
ret
-.asm_217a3
+.viewStats
call SaveScreenTilesToBuffer1
- ld a, [wccd3]
+ ld a, [wParentMenuItem]
and a
- ld a, $0
- jr nz, .asm_217b0
- ld a, $2
-.asm_217b0
- ld [wcc49], a
+ ld a, PLAYER_PARTY_DATA
+ jr nz, .next2
+ ld a, BOX_DATA
+.next2
+ ld [wMonDataLocation], a
predef StatusScreen
predef StatusScreen2
call LoadScreenTilesFromBuffer1
call ReloadTilesetTilePatterns
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call LoadGBPal
- jr .asm_2178f
+ jr .loop
DepositPCText: db "DEPOSIT@"
WithdrawPCText: db "WITHDRAW@"
@@ -514,15 +514,14 @@ CableClubLeftGameboy:: ; 5824 (8:5825)
cp SPRITE_FACING_RIGHT
ret nz
ld a, [W_CURMAP]
- cp BATTLE_CENTER
+ cp TRADE_CENTER
ld a, LINK_STATE_START_TRADE
- jr z, .asm_2183a
+ jr z, .next
inc a ; LINK_STATE_START_BATTLE
-.asm_2183a
+.next
ld [wLinkState], a
call EnableAutoTextBoxDrawing
- ld a, $22 ; JustAMomentText
- jp PrintPredefTextID
+ tx_pre_jump JustAMomentText
CableClubRightGameboy:: ; 5845 (8:5845)
ld a, [hSerialConnectionStatus]
@@ -532,15 +531,14 @@ CableClubRightGameboy:: ; 5845 (8:5845)
cp SPRITE_FACING_LEFT
ret nz
ld a, [W_CURMAP]
- cp BATTLE_CENTER
+ cp TRADE_CENTER
ld a, LINK_STATE_START_TRADE
- jr z, .asm_2185a
+ jr z, .next
inc a ; LINK_STATE_START_BATTLE
-.asm_2185a
+.next
ld [wLinkState], a
call EnableAutoTextBoxDrawing
- ld a, $22 ; JustAMomentText
- jp PrintPredefTextID
+ tx_pre_jump JustAMomentText
JustAMomentText:: ; 21865 (8:5865)
TX_FAR _JustAMomentText
@@ -550,9 +548,8 @@ JustAMomentText:: ; 21865 (8:5865)
cp SPRITE_FACING_UP
ret nz
call EnableAutoTextBoxDrawing
- ld a, $23
- jp PrintPredefTextID
+ tx_pre_jump OpenBillsPCText
-PredefText23:: ; 21878 (8:5878)
+OpenBillsPCText:: ; 21878 (8:5878)
db $FD ; FuncTX_BillsPC
diff --git a/engine/menu/diploma.asm b/engine/menu/diploma.asm
index 1624ed70..630c6c23 100755
--- a/engine/menu/diploma.asm
+++ b/engine/menu/diploma.asm
@@ -7,15 +7,15 @@ DisplayDiploma: ; 566e2 (15:66e2)
ld hl, wd730
set 6, [hl]
call DisableLCD
- ld hl, CircleTile ; $7d88
+ ld hl, CircleTile
ld de, vChars2 + $700
ld bc, $0010
ld a, BANK(CircleTile)
call FarCopyData2
- ld hl, wTileMap
- ld bc, $1012
+ coord hl, 0, 0
+ lb bc, 16, 18
predef Diploma_TextBoxBorder
- ld hl, DiplomaTextPointersAndCoords ; $6784
+ ld hl, DiplomaTextPointersAndCoords
ld c, $5
.asm_56715
push bc
@@ -32,31 +32,35 @@ DisplayDiploma: ; 566e2 (15:66e2)
inc hl
pop bc
dec c
- jr nz, .asm_56715 ; 0x56725 $ee
- hlCoord 10, 4
+ jr nz, .asm_56715
+ coord hl, 10, 4
ld de, wPlayerName
call PlaceString
- callba Func_44dd
+ callba DrawPlayerCharacter
+
+; Move the player 33 pixels right and set the priority bit so he appears
+; behind the background layer.
ld hl, wOAMBuffer + $01
- ld bc, $8028
-.asm_5673e
- ld a, [hl]
- add $21
+ lb bc, $80, $28
+.adjustPlayerGfxLoop
+ ld a, [hl] ; X
+ add 33
ld [hli], a
inc hl
ld a, b
- ld [hli], a
+ ld [hli], a ; attributes
inc hl
dec c
- jr nz, .asm_5673e ; 0x56747 $f5
+ jr nz, .adjustPlayerGfxLoop
+
call EnableLCD
callba LoadTrainerInfoTextBoxTiles
- ld b, $8
- call GoPAL_SET
+ ld b, SET_PAL_GENERIC
+ call RunPaletteCommand
call Delay3
call GBPalNormal
ld a, $90
- ld [$ff48], a
+ ld [rOBP0], a
call WaitForTextScrollButtonPress
ld hl, wd730
res 6, [hl]
@@ -65,27 +69,29 @@ DisplayDiploma: ; 566e2 (15:66e2)
call Delay3
jp GBPalNormal
-Func_56777: ; 56777 (15:6777)
+UnusedPlayerNameLengthFunc: ; 56777 (15:6777)
+; Unused function that does a calculation involving the length of the player's
+; name.
ld hl, wPlayerName
ld bc, $ff00
-.asm_5677d
+.loop
ld a, [hli]
- cp $50
+ cp "@"
ret z
dec c
- jr .asm_5677d ; 0x56782 $f9
+ jr .loop
DiplomaTextPointersAndCoords: ; 56784 (15:6784)
dw DiplomaText
- dw wTileMap + $2d
+ dwCoord 5, 2
dw DiplomaPlayer
- dw wTileMap + $53
+ dwCoord 3, 4
dw DiplomaEmptyText
- dw wTileMap + $5f
+ dwCoord 15, 4
dw DiplomaCongrats
- dw wTileMap + $7a
+ dwCoord 2, 6
dw DiplomaGameFreak
- dw wTileMap + $149
+ dwCoord 9, 16
DiplomaText:
db $70,"Diploma",$70,"@"
diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm
index a6dd7021..5b8ae7f0 100755
--- a/engine/menu/league_pc.asm
+++ b/engine/menu/league_pc.asm
@@ -12,31 +12,33 @@ PKMNLeaguePC: ; 0x7657e
ld [hTilesetType], a
ld [W_SPRITEFLIPPED], a
ld [wUpdateSpritesEnabled], a
- ld [wTrainerScreenX], a
- ld [wcd42], a
- ld a, [wd5a2]
+ ld [wHoFTeamIndex2], a
+ ld [wHoFTeamNo], a
+ ld a, [wNumHoFTeams]
ld b, a
- cp NUM_HOF_TEAMS + 1
- jr c, .first
- ld b, NUM_HOF_TEAMS
+ cp HOF_TEAM_CAPACITY + 1
+ jr c, .loop
+; If the total number of hall of fame teams is greater than the storage
+; capacity, then calculate the number of the first team that is still recorded.
+ ld b, HOF_TEAM_CAPACITY
sub b
- ld [wcd42], a
-.first
- ld hl, wcd42
+ ld [wHoFTeamNo], a
+.loop
+ ld hl, wHoFTeamNo
inc [hl]
push bc
- ld a, [wTrainerScreenX]
- ld [wWhichTrade], a
+ ld a, [wHoFTeamIndex2]
+ ld [wHoFTeamIndex], a
callba LoadHallOfFameTeams
- call Func_765e5
+ call LeaguePCShowTeam
pop bc
- jr c, .second
- ld hl, wTrainerScreenX
+ jr c, .doneShowingTeams
+ ld hl, wHoFTeamIndex2
inc [hl]
ld a, [hl]
cp b
- jr nz, .first
-.second
+ jr nz, .loop
+.doneShowingTeams
pop af
ld [hTilesetType], a
pop af
@@ -45,14 +47,14 @@ PKMNLeaguePC: ; 0x7657e
res 6, [hl]
call GBPalWhiteOutWithDelay3
call ClearScreen
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
jp GBPalNormal
-Func_765e5: ; 765e5 (1d:65e5)
+LeaguePCShowTeam: ; 765e5 (1d:65e5)
ld c, PARTY_LENGTH
.loop
push bc
- call Func_76610
+ call LeaguePCShowMon
call WaitForTextScrollButtonPress
ld a, [hJoyHeld]
bit 1, a
@@ -75,42 +77,40 @@ Func_765e5: ; 765e5 (1d:65e5)
scf
ret
-Func_76610: ; 76610 (1d:6610)
+LeaguePCShowMon: ; 76610 (1d:6610)
call GBPalWhiteOutWithDelay3
call ClearScreen
ld hl, wHallOfFame
ld a, [hli]
- ld [wWhichTrade], a
+ ld [wHoFMonSpecies], a
ld [wcf91], a
ld [wd0b5], a
ld [wBattleMonSpecies2], a
- ld [wcf1d], a
+ ld [wWholeScreenPaletteMonSpecies], a
ld a, [hli]
- ld [wTrainerFacingDirection], a
+ ld [wHoFMonLevel], a
ld de, wcd6d
- ld bc, $000B
+ ld bc, NAME_LENGTH
call CopyData
- ld b, $0B
+ ld b, SET_PAL_POKEMON_WHOLE_SCREEN
ld c, 0
- call GoPAL_SET
- hlCoord 12, 5
+ call RunPaletteCommand
+ coord hl, 12, 5
call GetMonHeader
call LoadFrontSpriteByMonIndex
call GBPalNormal
- hlCoord 0, 13
+ coord hl, 0, 13
ld b, 2
ld c, $12
call TextBoxBorder
- hlCoord 1, 15
+ coord hl, 1, 15
ld de, HallOfFameNoText
call PlaceString
- hlCoord 16, 15
- ld de, wcd42
- ld bc, $0103
+ coord hl, 16, 15
+ ld de, wHoFTeamNo
+ lb bc, 1, 3
call PrintNumber
- ld b, BANK(Func_702f0)
- ld hl, Func_702f0
- jp Bankswitch
+ jpba HoFDisplayMonInfo
HallOfFameNoText: ; 76670 (1d:6670)
db "HALL OF FAME No @"
diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm
index 756c7755..6c109cec 100755
--- a/engine/menu/main_menu.asm
+++ b/engine/menu/main_menu.asm
@@ -1,22 +1,21 @@
MainMenu: ; 5af2 (1:5af2)
; Check save file
- call Func_5bff
+ call InitOptions
xor a
- ld [wd08a],a
+ ld [wOptionsInitialized],a
inc a
- ld [wd088],a
- call Func_609e
- jr nc,.next0
+ ld [wSaveFileStatus],a
+ call CheckForPlayerNameInSRAM
+ jr nc,.mainMenuLoop
- ; Predef 52 loads the save from SRAM to RAM
predef LoadSAV
-.next0
+.mainMenuLoop
ld c,20
call DelayFrames
xor a ; LINK_STATE_NONE
ld [wLinkState],a
- ld hl,wcc2b
+ ld hl,wPartyAndBillsPCSavedMenuItem
ld [hli],a
ld [hli],a
ld [hli],a
@@ -25,34 +24,35 @@ MainMenu: ; 5af2 (1:5af2)
ld hl,wd72e
res 6,[hl]
call ClearScreen
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call LoadTextBoxTilePatterns
call LoadFontTilePatterns
ld hl,wd730
set 6,[hl]
- ld a,[wd088]
+ ld a,[wSaveFileStatus]
cp a,1
- jr z,.next1
- hlCoord 0, 0
+ jr z,.noSaveFile
+; there's a save file
+ coord hl, 0, 0
ld b,6
ld c,13
call TextBoxBorder
- hlCoord 2, 2
+ coord hl, 2, 2
ld de,ContinueText
call PlaceString
jr .next2
-.next1
- hlCoord 0, 0
+.noSaveFile
+ coord hl, 0, 0
ld b,4
ld c,13
call TextBoxBorder
- hlCoord 2, 2
+ coord hl, 2, 2
ld de,NewGameText
call PlaceString
.next2
ld hl,wd730
res 6,[hl]
- call UpdateSprites ; OAM?
+ call UpdateSprites
xor a
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
@@ -61,36 +61,38 @@ MainMenu: ; 5af2 (1:5af2)
ld [wTopMenuItemX],a
inc a
ld [wTopMenuItemY],a
- ld a,$B
+ ld a,A_BUTTON | B_BUTTON | START
ld [wMenuWatchedKeys],a
- ld a,[wd088]
+ ld a,[wSaveFileStatus]
ld [wMaxMenuItem],a
call HandleMenuInput
- bit 1,a
- jp nz,LoadTitlescreenGraphics ; load title screen (gfx and arrangement)
+ bit 1,a ; pressed B?
+ jp nz,DisplayTitleScreen ; if so, go back to the title screen
ld c,20
call DelayFrames
ld a,[wCurrentMenuItem]
ld b,a
- ld a,[wd088]
+ ld a,[wSaveFileStatus]
cp a,2
- jp z,.next3
- inc b ; adjust MenuArrow_Counter
-.next3
+ jp z,.skipInc
+; If there's no save file, increment the current menu item so that the numbers
+; are the same whether or not there's a save file.
+ inc b
+.skipInc
ld a,b
and a
- jr z,.next4 ; if press_A on Continue
+ jr z,.choseContinue
cp a,1
- jp z,Func_5d52 ; if press_A on NewGame
- call DisplayOptionMenu ; if press_a on Options
+ jp z,StartNewGame
+ call DisplayOptionMenu
ld a,1
- ld [wd08a],a
- jp .next0
-.next4
- call ContinueGame
+ ld [wOptionsInitialized],a
+ jp .mainMenuLoop
+.choseContinue
+ call DisplayContinueGameInfo
ld hl,wd126
set 5,[hl]
-.next6
+.inputLoop
xor a
ld [hJoyPressed],a
ld [hJoyReleased],a
@@ -98,18 +100,18 @@ MainMenu: ; 5af2 (1:5af2)
call Joypad
ld a,[hJoyHeld]
bit 0,a
- jr nz,.next5
+ jr nz,.pressedA
bit 1,a
- jp nz,.next0
- jr .next6
-.next5
+ jp nz,.mainMenuLoop ; pressed B
+ jr .inputLoop
+.pressedA
call GBPalWhiteOutWithDelay3
call ClearScreen
- ld a,4
- ld [wd52a],a
+ ld a,PLAYER_DIR_DOWN
+ ld [wPlayerDirection],a
ld c,10
call DelayFrames
- ld a,[wd5a2]
+ ld a,[wNumHoFTeams]
and a
jp z,SpecialEnterMap
ld a,[W_CURMAP] ; map ID
@@ -121,16 +123,17 @@ MainMenu: ; 5af2 (1:5af2)
set 2,[hl] ; fly warp or dungeon warp
call SpecialWarpIn
jp SpecialEnterMap
-Func_5bff: ; 5bff (1:5bff)
- ld a,1
- ld [wd358],a
- ld a,3
+
+InitOptions: ; 5bff (1:5bff)
+ ld a,1 ; no delay
+ ld [wLetterPrintingDelayFlags],a
+ ld a,3 ; medium speed
ld [W_OPTIONS],a
ret
LinkMenu: ; 5c0a (1:5c0a)
xor a
- ld [wd358], a
+ ld [wLetterPrintingDelayFlags], a
ld hl, wd72e
set 6, [hl]
ld hl, TextTerminator_6b20
@@ -138,16 +141,16 @@ LinkMenu: ; 5c0a (1:5c0a)
call SaveScreenTilesToBuffer1
ld hl, WhereWouldYouLikeText
call PrintText
- hlCoord 5, 5
+ coord hl, 5, 5
ld b, $6
ld c, $d
call TextBoxBorder
call UpdateSprites
- hlCoord 7, 7
- ld de, TradeCenterText
+ coord hl, 7, 7
+ ld de, CableClubOptionsText
call PlaceString
xor a
- ld [wcd37], a
+ ld [wUnusedCD37], a
ld [wd72d], a
ld hl, wTopMenuItemY
ld a, $7
@@ -160,7 +163,8 @@ LinkMenu: ; 5c0a (1:5c0a)
ld a, $2
ld [hli], a
inc a
- ld [hli], a
+ ; ld a, A_BUTTON | B_BUTTON
+ ld [hli], a ; wMenuWatchedKeys
xor a
ld [hl], a
.waitForInputLoop
@@ -208,7 +212,7 @@ LinkMenu: ; 5c0a (1:5c0a)
ld a, b
ld [wLinkMenuSelectionSendBuffer], a
and $3
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
+ ld [wCurrentMenuItem], a
.doneChoosingMenuSelection
ld a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
@@ -254,28 +258,28 @@ LinkMenu: ; 5c0a (1:5c0a)
ld [wWalkBikeSurfState], a ; start walking
ld a, [wCurrentMenuItem]
and a
- ld a, TRADE_CENTER
+ ld a, COLOSSEUM
jr nz, .next
- ld a, BATTLE_CENTER
+ ld a, TRADE_CENTER
.next
ld [wd72d], a
ld hl, PleaseWaitText
call PrintText
- ld c, $32
+ ld c, 50
call DelayFrames
ld hl, wd732
res 1, [hl]
ld a, [W_ANIMATIONID]
ld [wDestinationMap], a
call SpecialWarpIn
- ld c, $14
+ ld c, 20
call DelayFrames
xor a
ld [wMenuJoypadPollCount], a
ld [wSerialExchangeNybbleSendData], a
inc a ; LINK_STATE_IN_CABLE_CLUB
ld [wLinkState], a
- ld [wcc47], a
+ ld [wEnteringCableClub], a
jr SpecialEnterMap
.choseCancel
xor a
@@ -300,11 +304,11 @@ LinkCanceledText: ; 5d4d (1:5d4d)
TX_FAR _LinkCanceledText
db "@"
-Func_5d52: ; 5d52 (1:5d52)
+StartNewGame: ; 5d52 (1:5d52)
ld hl, wd732
res 1, [hl]
call OakSpeech
- ld c, $14
+ ld c, 20
call DelayFrames
; enter map after using a special warp or loading the game from the main menu
@@ -319,7 +323,7 @@ SpecialEnterMap: ; 5d5f (1:5d5f)
call ResetPlayerSpriteData
ld c, 20
call DelayFrames
- ld a, [wcc47]
+ ld a, [wEnteringCableClub]
and a
ret nz
jp EnterMap
@@ -331,89 +335,89 @@ NewGameText: ; 5d87 (1:5d87)
db "NEW GAME", $4e
db "OPTION@"
-TradeCenterText: ; 5d97 (1:5d97)
+CableClubOptionsText: ; 5d97 (1:5d97)
db "TRADE CENTER", $4e
db "COLOSSEUM", $4e
db "CANCEL@"
-ContinueGame: ; 5db5 (1:5db5)
+DisplayContinueGameInfo: ; 5db5 (1:5db5)
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- hlCoord 4, 7
- ld b, $8
- ld c, $e
+ ld [H_AUTOBGTRANSFERENABLED], a
+ coord hl, 4, 7
+ ld b, 8
+ ld c, 14
call TextBoxBorder
- hlCoord 5, 9
+ coord hl, 5, 9
ld de, SaveScreenInfoText
call PlaceString
- hlCoord 12, 9
- ld de, wPlayerName ; wd158
+ coord hl, 12, 9
+ ld de, wPlayerName
call PlaceString
- hlCoord 17, 11
- call Func_5e2f
- hlCoord 16, 13
- call Func_5e42
- hlCoord 13, 15
- call Func_5e55
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld c, $1e
+ coord hl, 17, 11
+ call PrintNumBadges
+ coord hl, 16, 13
+ call PrintNumOwnedMons
+ coord hl, 13, 15
+ call PrintPlayTime
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld c, 30
jp DelayFrames
PrintSaveScreenText: ; 5def (1:5def)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- ld hl, wTileMap + $4
+ coord hl, 4, 0
ld b, $8
ld c, $e
call TextBoxBorder
call LoadTextBoxTilePatterns
call UpdateSprites
- ld hl, wTileMap + $2d
+ coord hl, 5, 2
ld de, SaveScreenInfoText
call PlaceString
- ld hl, wTileMap + $34
+ coord hl, 12, 2
ld de, wPlayerName
call PlaceString
- ld hl, wTileMap + $61
- call Func_5e2f
- ld hl, wTileMap + $88
- call Func_5e42
- ld hl, wTileMap + $ad
- call Func_5e55
+ coord hl, 17, 4
+ call PrintNumBadges
+ coord hl, 16, 6
+ call PrintNumOwnedMons
+ coord hl, 13, 8
+ call PrintPlayTime
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
- ld c, $1e
+ ld c, 30
jp DelayFrames
-Func_5e2f: ; 5e2f (1:5e2f)
+PrintNumBadges: ; 5e2f (1:5e2f)
push hl
ld hl, W_OBTAINEDBADGES
ld b, $1
call CountSetBits
pop hl
- ld de, wd11e
- ld bc, $102
+ ld de, wNumSetBits
+ lb bc, 1, 2
jp PrintNumber
-Func_5e42: ; 5e42 (1:5e42)
+PrintNumOwnedMons: ; 5e42 (1:5e42)
push hl
- ld hl, wPokedexOwned ; wPokedexOwned
+ ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
pop hl
- ld de, wd11e
- ld bc, $103
+ ld de, wNumSetBits
+ lb bc, 1, 3
jp PrintNumber
-Func_5e55: ; 5e55 (1:5e55)
+PrintPlayTime: ; 5e55 (1:5e55)
ld de, W_PLAYTIMEHOURS + 1
- ld bc, $103
+ lb bc, 1, 3
call PrintNumber
ld [hl], $6d
inc hl
ld de, W_PLAYTIMEMINUTES + 1
- ld bc, $8102
+ lb bc, LEADING_ZEROES | 1, 2
jp PrintNumber
SaveScreenInfoText: ; 5e6a (1:5e6a)
@@ -423,40 +427,40 @@ SaveScreenInfoText: ; 5e6a (1:5e6a)
next "TIME@"
DisplayOptionMenu: ; 5e8a (1:5e8a)
- hlCoord 0, 0
+ coord hl, 0, 0
ld b,3
ld c,18
call TextBoxBorder
- hlCoord 0, 5
+ coord hl, 0, 5
ld b,3
ld c,18
call TextBoxBorder
- hlCoord 0, 10
+ coord hl, 0, 10
ld b,3
ld c,18
call TextBoxBorder
- hlCoord 1, 1
+ coord hl, 1, 1
ld de,TextSpeedOptionText
call PlaceString
- hlCoord 1, 6
+ coord hl, 1, 6
ld de,BattleAnimationOptionText
call PlaceString
- hlCoord 1, 11
+ coord hl, 1, 11
ld de,BattleStyleOptionText
call PlaceString
- hlCoord 2, 16
+ coord hl, 2, 16
ld de,OptionMenuCancelText
call PlaceString
xor a
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
inc a
- ld [wd358],a
- ld [wTrainerScreenY],a
+ ld [wLetterPrintingDelayFlags],a
+ ld [wUnusedCD40],a
ld a,3 ; text speed cursor Y coordinate
ld [wTopMenuItemY],a
call SetCursorPositionsFromOptions
- ld a,[wWhichTrade] ; text speed cursor X coordinate
+ ld a,[wOptionsTextSpeedCursorX] ; text speed cursor X coordinate
ld [wTopMenuItemX],a
ld a,$01
ld [H_AUTOBGTRANSFERENABLED],a ; enable auto background transfer
@@ -468,7 +472,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
call JoypadLowSensitivity
ld a,[hJoy5]
ld b,a
- and a,%11111011 ; any key besides select pressed?
+ and a,A_BUTTON | B_BUTTON | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ; any key besides select pressed?
jr z,.getJoypadStateLoop
bit 1,b ; B button pressed?
jr nz,.exitMenu
@@ -480,8 +484,8 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
cp a,16 ; is the cursor on Cancel?
jr nz,.loop
.exitMenu
- ld a,(SFX_02_40 - SFX_Headers_02) / 3
- call PlaySound ; play sound
+ ld a,SFX_PRESS_AB
+ call PlaySound
ret
.eraseOldMenuCursor
ld [wTopMenuItemX],a
@@ -506,7 +510,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
.downPressed
cp a,16
ld b,-13
- ld hl,wWhichTrade
+ ld hl,wOptionsTextSpeedCursorX
jr z,.updateMenuVariables
ld b,5
cp a,3
@@ -521,7 +525,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
.upPressed
cp a,8
ld b,-5
- ld hl,wWhichTrade
+ ld hl,wOptionsTextSpeedCursorX
jr z,.updateMenuVariables
cp a,13
inc hl
@@ -540,17 +544,17 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
call PlaceUnfilledArrowMenuCursor
jp .loop
.cursorInBattleAnimation
- ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate
+ ld a,[wOptionsBattleAnimCursorX] ; battle animation cursor X coordinate
xor a,$0b ; toggle between 1 and 10
- ld [wTrainerEngageDistance],a
+ ld [wOptionsBattleAnimCursorX],a
jp .eraseOldMenuCursor
.cursorInBattleStyle
- ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate
+ ld a,[wOptionsBattleStyleCursorX] ; battle style cursor X coordinate
xor a,$0b ; toggle between 1 and 10
- ld [wTrainerFacingDirection],a
+ ld [wOptionsBattleStyleCursorX],a
jp .eraseOldMenuCursor
.pressedLeftInTextSpeed
- ld a,[wWhichTrade] ; text speed cursor X coordinate
+ ld a,[wOptionsTextSpeedCursorX] ; text speed cursor X coordinate
cp a,1
jr z,.updateTextSpeedXCoord
cp a,7
@@ -561,7 +565,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
sub a,7
jr .updateTextSpeedXCoord
.pressedRightInTextSpeed
- ld a,[wWhichTrade] ; text speed cursor X coordinate
+ ld a,[wOptionsTextSpeedCursorX] ; text speed cursor X coordinate
cp a,14
jr z,.updateTextSpeedXCoord
cp a,7
@@ -571,7 +575,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
.fromFastToMedium
add a,6
.updateTextSpeedXCoord
- ld [wWhichTrade],a ; text speed cursor X coordinate
+ ld [wOptionsTextSpeedCursorX],a ; text speed cursor X coordinate
jp .eraseOldMenuCursor
TextSpeedOptionText: ; 5fc0 (1:5fc0)
@@ -592,7 +596,7 @@ OptionMenuCancelText: ; 6018 (1:6018)
; sets the options variable according to the current placement of the menu cursors in the options menu
SetOptionsFromCursorPositions: ; 601f (1:601f)
ld hl,TextSpeedOptionData
- ld a,[wWhichTrade] ; text speed cursor X coordinate
+ ld a,[wOptionsTextSpeedCursorX] ; text speed cursor X coordinate
ld c,a
.loop
ld a,[hli]
@@ -603,7 +607,7 @@ SetOptionsFromCursorPositions: ; 601f (1:601f)
.textSpeedMatchFound
ld a,[hl]
ld d,a
- ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate
+ ld a,[wOptionsBattleAnimCursorX] ; battle animation cursor X coordinate
dec a
jr z,.battleAnimationOn
.battleAnimationOff
@@ -612,7 +616,7 @@ SetOptionsFromCursorPositions: ; 601f (1:601f)
.battleAnimationOn
res 7,d
.checkBattleStyle
- ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate
+ ld a,[wOptionsBattleStyleCursorX] ; battle style cursor X coordinate
dec a
jr z,.battleStyleShift
.battleStyleSet
@@ -637,27 +641,27 @@ SetCursorPositionsFromOptions: ; 604c (1:604c)
pop bc
dec hl
ld a,[hl]
- ld [wWhichTrade],a ; text speed cursor X coordinate
- hlCoord 0, 3
+ ld [wOptionsTextSpeedCursorX],a ; text speed cursor X coordinate
+ coord hl, 0, 3
call .placeUnfilledRightArrow
sla c
ld a,1 ; On
jr nc,.storeBattleAnimationCursorX
ld a,10 ; Off
.storeBattleAnimationCursorX
- ld [wTrainerEngageDistance],a ; battle animation cursor X coordinate
- hlCoord 0, 8
+ ld [wOptionsBattleAnimCursorX],a ; battle animation cursor X coordinate
+ coord hl, 0, 8
call .placeUnfilledRightArrow
sla c
ld a,1
jr nc,.storeBattleStyleCursorX
ld a,10
.storeBattleStyleCursorX
- ld [wTrainerFacingDirection],a ; battle style cursor X coordinate
- hlCoord 0, 13
+ ld [wOptionsBattleStyleCursorX],a ; battle style cursor X coordinate
+ coord hl, 0, 13
call .placeUnfilledRightArrow
; cursor in front of Cancel
- hlCoord 0, 16
+ coord hl, 0, 16
ld a,1
.placeUnfilledRightArrow
ld e,a
@@ -677,28 +681,32 @@ TextSpeedOptionData: ; 6096 (1:6096)
db 7 ; default X coordinate (Medium)
db $ff ; terminator
-Func_609e: ; 609e (1:609e)
- ld a, $a
- ld [$0], a
+CheckForPlayerNameInSRAM: ; 609e (1:609e)
+; Check if the player name data in SRAM has a string terminator character
+; (indicating that a name may have been saved there) and return whether it does
+; in carry.
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
ld a, $1
- ld [$6000], a
- ld [$4000], a
- ld b, $b
- ld hl, $a598
-.asm_60b0
+ ld [MBC1SRamBankingMode], a
+ ld [MBC1SRamBank], a
+ ld b, NAME_LENGTH
+ ld hl, sPlayerName
+.loop
ld a, [hli]
- cp $50
- jr z, .asm_60c1
+ cp "@"
+ jr z, .found
dec b
- jr nz, .asm_60b0
+ jr nz, .loop
+; not found
xor a
- ld [$0], a
- ld [$6000], a
+ ld [MBC1SRamEnable], a
+ ld [MBC1SRamBankingMode], a
and a
ret
-.asm_60c1
+.found
xor a
- ld [$0], a
- ld [$6000], a
+ ld [MBC1SRamEnable], a
+ ld [MBC1SRamBankingMode], a
scf
ret
diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm
index df862d69..978216c8 100755
--- a/engine/menu/naming_screen.asm
+++ b/engine/menu/naming_screen.asm
@@ -4,37 +4,37 @@ AskName: ; 64eb (1:64eb)
push hl
ld a, [W_ISINBATTLE]
dec a
- ld hl, wTileMap
- ld b, $4
- ld c, $b
+ coord hl, 0, 0
+ ld b, 4
+ ld c, 11
call z, ClearScreenArea ; only if in wild batle
ld a, [wcf91]
ld [wd11e], a
call GetMonName
ld hl, DoYouWantToNicknameText
call PrintText
- hlCoord 14, 7
- ld bc, $80f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID
pop hl
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_654c
+ jr nz, .declinedNickname
ld a, [wUpdateSpritesEnabled]
push af
xor a
ld [wUpdateSpritesEnabled], a
push hl
- ld a, $2
- ld [wd07d], a
+ ld a, NAME_MON_SCREEN
+ ld [wNamingScreenType], a
call DisplayNamingScreen
ld a, [W_ISINBATTLE]
and a
- jr nz, .asm_653e
+ jr nz, .inBattle
call ReloadMapSpriteTilePatterns
-.asm_653e
+.inBattle
call LoadScreenTilesFromBuffer1
pop hl
pop af
@@ -42,42 +42,42 @@ AskName: ; 64eb (1:64eb)
ld a, [wcf4b]
cp $50
ret nz
-.asm_654c
+.declinedNickname
ld d, h
ld e, l
ld hl, wcd6d
- ld bc, $000b
+ ld bc, NAME_LENGTH
jp CopyData
DoYouWantToNicknameText: ; 0x6557
TX_FAR _DoYouWantToNicknameText
db "@"
-Func_655c: ; 655c (1:655c)
- ld hl, wHPBarMaxHP
+DisplayNameRaterScreen: ; 655c (1:655c)
+ ld hl, wBuffer
xor a
ld [wUpdateSpritesEnabled], a
- ld a, $2
- ld [wd07d], a
+ ld a, NAME_MON_SCREEN
+ ld [wNamingScreenType], a
call DisplayNamingScreen
call GBPalWhiteOutWithDelay3
call RestoreScreenTilesAndReloadTilePatterns
call LoadGBPal
ld a, [wcf4b]
- cp $50
- jr z, .asm_6594
+ cp "@"
+ jr z, .playerCancelled
ld hl, wPartyMonNicks
- ld bc, $b
+ ld bc, NAME_LENGTH
ld a, [wWhichPokemon]
call AddNTimes
ld e, l
ld d, h
- ld hl, wHPBarMaxHP
- ld bc, $b
+ ld hl, wBuffer
+ ld bc, NAME_LENGTH
call CopyData
and a
ret
-.asm_6594
+.playerCancelled
scf
ret
@@ -88,44 +88,44 @@ DisplayNamingScreen: ; 6596 (1:6596)
call GBPalWhiteOutWithDelay3
call ClearScreen
call UpdateSprites
- ld b, $8
- call GoPAL_SET
+ ld b, SET_PAL_GENERIC
+ call RunPaletteCommand
call LoadHpBarAndStatusTilePatterns
call LoadEDTile
callba LoadMonPartySpriteGfx
- hlCoord 0, 4
- ld b, $9
- ld c, $12
+ coord hl, 0, 4
+ ld b, 9
+ ld c, 18
call TextBoxBorder
call PrintNamingText
- ld a, $3
+ ld a, 3
ld [wTopMenuItemY], a
- ld a, $1
+ ld a, 1
ld [wTopMenuItemX], a
ld [wLastMenuItem], a
ld [wCurrentMenuItem], a
ld a, $ff
ld [wMenuWatchedKeys], a
- ld a, $7
+ ld a, 7
ld [wMaxMenuItem], a
ld a, $50
ld [wcf4b], a
xor a
- ld hl, wHPBarMaxHP + 1
+ ld hl, wNamingScreenSubmitName
ld [hli], a
ld [hli], a
- ld [wPartyMonAnimCounter], a
-.asm_65ed
+ ld [wAnimCounter], a
+.selectReturnPoint
call PrintAlphabet
call GBPalNormal
-.asm_65f3
- ld a, [wHPBarMaxHP + 1]
+.ABStartReturnPoint
+ ld a, [wNamingScreenSubmitName]
and a
- jr nz, .asm_662d
- call Func_680e
-.asm_65fc
+ jr nz, .submitNickname
+ call PrintNicknameAndUnderscores
+.dPadReturnPoint
call PlaceMenuCursor
-.asm_65ff
+.inputLoop
ld a, [wCurrentMenuItem]
push af
callba AnimatePartyMon_ForceSpeed1
@@ -134,17 +134,17 @@ DisplayNamingScreen: ; 6596 (1:6596)
call JoypadLowSensitivity
ld a, [hJoyPressed]
and a
- jr z, .asm_65ff
- ld hl, .unknownPointerTable_665e
-.asm_661a
+ jr z, .inputLoop
+ ld hl, .namingScreenButtonFunctions
+.checkForPressedButton
sla a
- jr c, .asm_6624
+ jr c, .foundPressedButton
inc hl
inc hl
inc hl
inc hl
- jr .asm_661a
-.asm_6624
+ jr .checkForPressedButton
+.foundPressedButton
ld a, [hli]
ld e, a
ld a, [hli]
@@ -154,15 +154,16 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld l, a
push de
jp [hl]
-.asm_662d
+
+.submitNickname
pop de
ld hl, wcf4b
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
call GBPalWhiteOutWithDelay3
call ClearScreen
call ClearSprites
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call GBPalNormal
xor a
ld [W_SUBANIMTRANSFORM], a
@@ -171,193 +172,197 @@ DisplayNamingScreen: ; 6596 (1:6596)
ld a, [W_ISINBATTLE]
and a
jp z, LoadTextBoxTilePatterns
- ld hl, LoadHudTilePatterns
- ld b, BANK(LoadHudTilePatterns)
- jp Bankswitch
+ jpab LoadHudTilePatterns
-.unknownPointerTable_665e: ; 665e (1:665e)
- dw .asm_65fc
- dw .asm_673e
- dw .asm_65fc
- dw .asm_672c
- dw .asm_65fc
- dw .asm_6718
- dw .asm_65fc
- dw .asm_6702
- dw .asm_65f3
- dw .asm_668c
- dw .asm_65ed
- dw .asm_6683
- dw .asm_65f3
- dw .deleteLetter
- dw .asm_65f3
- dw .asm_6692
+.namingScreenButtonFunctions
+ dw .dPadReturnPoint
+ dw .pressedDown
+ dw .dPadReturnPoint
+ dw .pressedUp
+ dw .dPadReturnPoint
+ dw .pressedLeft
+ dw .dPadReturnPoint
+ dw .pressedRight
+ dw .ABStartReturnPoint
+ dw .pressedStart
+ dw .selectReturnPoint
+ dw .pressedSelect
+ dw .ABStartReturnPoint
+ dw .pressedB
+ dw .ABStartReturnPoint
+ dw .pressedA
-.asm_667e
+.pressedA_changedCase
pop de
- ld de, .asm_65ed ; $65ed
+ ld de, .selectReturnPoint
push de
-.asm_6683
- ld a, [wHPBarOldHP]
+.pressedSelect
+ ld a, [wAlphabetCase]
xor $1
- ld [wHPBarOldHP], a
+ ld [wAlphabetCase], a
ret
-.asm_668c
- ld a, $1
- ld [wHPBarMaxHP + 1], a
+
+.pressedStart
+ ld a, 1
+ ld [wNamingScreenSubmitName], a
ret
-.asm_6692
+
+.pressedA
ld a, [wCurrentMenuItem]
- cp $5
- jr nz, .asm_66a0
+ cp $5 ; "ED" row
+ jr nz, .didNotPressED
ld a, [wTopMenuItemX]
- cp $11
- jr z, .asm_668c
-.asm_66a0
+ cp $11 ; "ED" column
+ jr z, .pressedStart
+.didNotPressED
ld a, [wCurrentMenuItem]
- cp $6
- jr nz, .asm_66ae
+ cp $6 ; case switch row
+ jr nz, .didNotPressCaseSwtich
ld a, [wTopMenuItemX]
- cp $1
- jr z, .asm_667e
-.asm_66ae
+ cp $1 ; case switch column
+ jr z, .pressedA_changedCase
+.didNotPressCaseSwtich
ld hl, wMenuCursorLocation
ld a, [hli]
ld h, [hl]
ld l, a
inc hl
ld a, [hl]
- ld [wHPBarNewHP], a
+ ld [wNamingScreenLetter], a
call CalcStringLength
- ld a, [wHPBarNewHP]
+ ld a, [wNamingScreenLetter]
cp $e5
- ld de, Dakutens ; $6885
- jr z, .asm_66e3
+ ld de, Dakutens
+ jr z, .dakutensAndHandakutens
cp $e4
- ld de, Handakutens ; $68d6
- jr z, .asm_66e3
- ld a, [wd07d]
- cp $2
+ ld de, Handakutens
+ jr z, .dakutensAndHandakutens
+ ld a, [wNamingScreenType]
+ cp NAME_MON_SCREEN
jr nc, .checkMonNameLength
- ld a, [wHPBarMaxHP]
+ ld a, [wNamingScreenNameLength]
cp $7 ; max length of player/rival names
jr .checkNameLength
.checkMonNameLength
- ld a, [wHPBarMaxHP]
+ ld a, [wNamingScreenNameLength]
cp $a ; max length of pokemon nicknames
.checkNameLength
jr c, .addLetter
ret
-.asm_66e3
+
+.dakutensAndHandakutens
push hl
- call Func_6871
+ call DakutensAndHandakutens
pop hl
ret nc
dec hl
.addLetter
- ld a, [wHPBarNewHP]
+ ld a, [wNamingScreenLetter]
ld [hli], a
ld [hl], $50
- ld a, (SFX_02_40 - SFX_Headers_02) / 3
+ ld a, SFX_PRESS_AB
call PlaySound
ret
-.deleteLetter
- ld a, [wHPBarMaxHP]
+.pressedB
+ ld a, [wNamingScreenNameLength]
and a
ret z
call CalcStringLength
dec hl
- ld [hl], $50
+ ld [hl], "@"
ret
-.asm_6702
+.pressedRight
ld a, [wCurrentMenuItem]
cp $6
- ret z
+ ret z ; can't scroll right on bottom row
ld a, [wTopMenuItemX]
- cp $11
- jp z, .asm_6714
+ cp $11 ; max
+ jp z, .wrapToFirstColumn
inc a
inc a
- jr .asm_6755
-.asm_6714
+ jr .done
+.wrapToFirstColumn
ld a, $1
- jr .asm_6755
-.asm_6718
+ jr .done
+.pressedLeft
ld a, [wCurrentMenuItem]
cp $6
- ret z
+ ret z ; can't scroll right on bottom row
ld a, [wTopMenuItemX]
dec a
- jp z, .asm_6728
+ jp z, .wrapToLastColumn
dec a
- jr .asm_6755
-.asm_6728
- ld a, $11
- jr .asm_6755
-.asm_672c
+ jr .done
+.wrapToLastColumn
+ ld a, $11 ; max
+ jr .done
+.pressedUp
ld a, [wCurrentMenuItem]
dec a
ld [wCurrentMenuItem], a
and a
ret nz
- ld a, $6
+ ld a, $6 ; wrap to bottom row
ld [wCurrentMenuItem], a
- ld a, $1
- jr .asm_6755
-.asm_673e
+ ld a, $1 ; force left column
+ jr .done
+.pressedDown
ld a, [wCurrentMenuItem]
inc a
ld [wCurrentMenuItem], a
cp $7
- jr nz, .asm_6750
+ jr nz, .wrapToTopRow
ld a, $1
ld [wCurrentMenuItem], a
- jr .asm_6755
-.asm_6750
+ jr .done
+.wrapToTopRow
cp $6
ret nz
ld a, $1
-.asm_6755
+.done
ld [wTopMenuItemX], a
jp EraseMenuCursor
LoadEDTile: ; 675b (1:675b)
ld de, ED_Tile
ld hl, vFont + $700
- ld bc, $1
+ ld bc, (ED_TileEnd - ED_Tile) / $8
+ ; to fix the graphical bug on poor emulators
+ ;lb bc, BANK(ED_Tile), (ED_TileEnd - ED_Tile) / $8
jp CopyVideoDataDouble
ED_Tile: ; 6767 (1:6767)
INCBIN "gfx/ED_tile.1bpp"
+ED_TileEnd:
PrintAlphabet: ; 676f (1:676f)
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [wHPBarOldHP]
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, [wAlphabetCase]
and a
- ld de, LowerCaseAlphabet ; $679e
- jr nz, .asm_677e
- ld de, UpperCaseAlphabet ; $67d6
-.asm_677e
- hlCoord 2, 5
- ld bc, $509
-.asm_6784
+ ld de, LowerCaseAlphabet
+ jr nz, .lowercase
+ ld de, UpperCaseAlphabet
+.lowercase
+ coord hl, 2, 5
+ lb bc, 5, 9 ; 5 rows, 9 columns
+.outerLoop
push bc
-.asm_6785
+.innerLoop
ld a, [de]
ld [hli], a
inc hl
inc de
dec c
- jr nz, .asm_6785
- ld bc, $16
+ jr nz, .innerLoop
+ ld bc, SCREEN_WIDTH + 2
add hl, bc
pop bc
dec b
- jr nz, .asm_6784
+ jr nz, .outerLoop
call PlaceString
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
jp Delay3
LowerCaseAlphabet: ; 679e (1:679e)
@@ -366,59 +371,61 @@ LowerCaseAlphabet: ; 679e (1:679e)
UpperCaseAlphabet: ; 67d6 (1:67d6)
db "ABCDEFGHIJKLMNOPQRSTUVWXYZ ×():;[]",$e1,$e2,"-?!♂♀/",$f2,",¥lower case@"
-Func_680e: ; 680e (1:680e)
+PrintNicknameAndUnderscores: ; 680e (1:680e)
call CalcStringLength
ld a, c
- ld [wHPBarMaxHP], a
- hlCoord 10, 2
- ld bc, $10a
+ ld [wNamingScreenNameLength], a
+ coord hl, 10, 2
+ lb bc, 1, 10
call ClearScreenArea
- hlCoord 10, 2
+ coord hl, 10, 2
ld de, wcf4b
call PlaceString
- hlCoord 10, 3
- ld a, [wd07d]
- cp $2
- jr nc, .asm_6835
- ld b, $7
- jr .asm_6837
-.asm_6835
- ld b, $a
-.asm_6837
- ld a, $76
-.asm_6839
+ coord hl, 10, 3
+ ld a, [wNamingScreenType]
+ cp NAME_MON_SCREEN
+ jr nc, .pokemon1
+ ld b, 7 ; player or rival max name length
+ jr .playerOrRival1
+.pokemon1
+ ld b, 10 ; pokemon max name length
+.playerOrRival1
+ ld a, $76 ; underscore tile id
+.placeUnderscoreLoop
ld [hli], a
dec b
- jr nz, .asm_6839
- ld a, [wd07d]
- cp $2
- ld a, [wHPBarMaxHP]
- jr nc, .asm_684b
- cp $7
- jr .asm_684d
-.asm_684b
- cp $a
-.asm_684d
- jr nz, .asm_6867
+ jr nz, .placeUnderscoreLoop
+ ld a, [wNamingScreenType]
+ cp NAME_MON_SCREEN
+ ld a, [wNamingScreenNameLength]
+ jr nc, .pokemon2
+ cp 7 ; player or rival max name length
+ jr .playerOrRival2
+.pokemon2
+ cp 10 ; pokemon max name length
+.playerOrRival2
+ jr nz, .emptySpacesRemaining
+ ; when all spaces are filled, force the cursor onto the ED tile
call EraseMenuCursor
- ld a, $11
+ ld a, $11 ; "ED" x coord
ld [wTopMenuItemX], a
- ld a, $5
+ ld a, $5 ; "ED" y corrd
ld [wCurrentMenuItem], a
- ld a, [wd07d]
- cp $2
- ld a, $9
- jr nc, .asm_6867
- ld a, $6
-.asm_6867
+ ld a, [wNamingScreenType]
+ cp NAME_MON_SCREEN
+ ld a, 9 ; keep the last underscore raised
+ jr nc, .pokemon3
+ ld a, 6 ; keep the last underscore raised
+.pokemon3
+.emptySpacesRemaining
ld c, a
ld b, $0
- hlCoord 10, 3
+ coord hl, 10, 3
add hl, bc
- ld [hl], $77
+ ld [hl], $77 ; raised underscore tile id
ret
-Func_6871: ; 6871 (1:6871)
+DakutensAndHandakutens: ; 6871 (1:6871)
push de
call CalcStringLength
dec hl
@@ -429,7 +436,7 @@ Func_6871: ; 6871 (1:6871)
ret nc
inc hl
ld a, [hl]
- ld [wHPBarNewHP], a
+ ld [wNamingScreenLetter], a
ret
Dakutens: ; 6885 (1:6885)
@@ -452,17 +459,17 @@ Handakutens: ; 68d6 (1:68d6)
CalcStringLength: ; 68eb (1:68eb)
ld hl, wcf4b
ld c, $0
-.asm_68f0
+.loop
ld a, [hl]
- cp $50
+ cp "@"
ret z
inc hl
inc c
- jr .asm_68f0
+ jr .loop
PrintNamingText: ; 68f8 (1:68f8)
- hlCoord 0, 1
- ld a, [wd07d]
+ coord hl, 0, 1
+ ld a, [wNamingScreenType]
ld de, YourTextString
and a
jr z, .notNickname
@@ -476,12 +483,12 @@ PrintNamingText: ; 68f8 (1:68f8)
pop af
ld [wd11e], a
call GetMonName
- hlCoord 4, 1
+ coord hl, 4, 1
call PlaceString
ld hl, $1
add hl, bc
ld [hl], $c9
- hlCoord 1, 3
+ coord hl, 1, 3
ld de, NicknameTextString
jr .placeString
.notNickname
diff --git a/engine/menu/oaks_pc.asm b/engine/menu/oaks_pc.asm
index 6e7edda2..7ff03c46 100755
--- a/engine/menu/oaks_pc.asm
+++ b/engine/menu/oaks_pc.asm
@@ -5,7 +5,7 @@ OpenOaksPC: ; 1e915 (7:6915)
ld hl, GetDexRatedText
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
jr nz, .asm_1e932
predef DisplayDexRating
diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm
index 242edd40..f3e1a138 100755
--- a/engine/menu/party_menu.asm
+++ b/engine/menu/party_menu.asm
@@ -1,4 +1,4 @@
-; [wd07d] = menu type / message ID
+; [wPartyMenuTypeOrMessageID] = menu type / message ID
; if less than $F0, it is a menu type
; menu types:
; 00: normal pokemon menu (e.g. Start menu)
@@ -21,21 +21,21 @@ DrawPartyMenu_: ; 12cd2 (4:6cd2)
xor a
ld [H_AUTOBGTRANSFERENABLED],a
call ClearScreen
- call UpdateSprites ; move sprites
+ call UpdateSprites
callba LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics
RedrawPartyMenu_: ; 12ce3 (4:6ce3)
- ld a,[wd07d]
- cp a,$04
+ ld a,[wPartyMenuTypeOrMessageID]
+ cp a,SWAP_MONS_PARTY_MENU
jp z,.printMessage
call ErasePartyMenuCursors
- callba SendBlkPacket_PartyMenu ; loads some data to wcf2e
- hlCoord 3, 0
+ callba InitPartyMenuBlkPacket
+ coord hl, 3, 0
ld de,wPartySpecies
xor a
ld c,a
ld [hPartyMonIndex],a
- ld [wcf2d],a
+ ld [wWhichPartyMenuHPBar],a
.loop
ld a,[de]
cp a,$FF ; reached the terminator?
@@ -75,10 +75,10 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
inc hl
inc hl
.skipUnfilledRightArrow
- ld a,[wd07d] ; menu type
- cp a,$03
+ ld a,[wPartyMenuTypeOrMessageID] ; menu type
+ cp a,TMHM_PARTY_MENU
jr z,.teachMoveMenu
- cp a,$05
+ cp a,EVO_STONE_PARTY_MENU
jr z,.evolutionStoneMenu
push hl
ld bc,14 ; 14 columns to the right
@@ -96,7 +96,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
ld a,[hFlags_0xFFF6]
res 0,a
ld [hFlags_0xFFF6],a
- call SetPartyMenuHealthBarColor ; color the HP bar (on SGB)
+ call SetPartyMenuHPBarColor ; color the HP bar (on SGB)
pop hl
jr .printLevel
.teachMoveMenu
@@ -150,7 +150,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
ld l,a
ld de,wcd6d
ld a,BANK(EvosMovesPointerTable)
- ld bc,13
+ ld bc,Mon133_EvosEnd - Mon133_EvosMoves
call FarCopyData
ld hl,wcd6d
ld de,.notAbleToEvolveText
@@ -167,7 +167,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
dec hl
dec hl
ld b,[hl]
- ld a,[wd156] ; evolution stone item ID
+ ld a,[wEvoStoneItemID] ; the stone the player used
inc hl
inc hl
inc hl
@@ -188,15 +188,15 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
.notAbleToEvolveText
db "NOT ABLE@"
.afterDrawingMonEntries
- ld b,$0A
- call GoPAL_SET
+ ld b, SET_PAL_PARTY_MENU
+ call RunPaletteCommand
.printMessage
ld hl,wd730
ld a,[hl]
push af
push hl
set 6,[hl] ; turn off letter printing delay
- ld a,[wd07d] ; message ID
+ ld a,[wPartyMenuTypeOrMessageID] ; message ID
cp a,$F0
jr nc,.printItemUseMessage
add a
@@ -227,7 +227,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
ld h,[hl]
ld l,a
push hl
- ld a,[wcf06]
+ ld a,[wUsedItemOnWhichPokemon]
ld hl,wPartyMonNicks
call GetPartyMonName
pop hl
@@ -311,15 +311,15 @@ RareCandyText: ; 12ec0 (4:6ec0)
db $06
db "@"
-SetPartyMenuHealthBarColor: ; 12ec7 (4:6ec7)
- ld hl, wcf1f
- ld a, [wcf2d]
+SetPartyMenuHPBarColor: ; 12ec7 (4:6ec7)
+ ld hl, wPartyMenuHPBarColors
+ ld a, [wWhichPartyMenuHPBar]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
call GetHealthBarColor
- ld b, $fc
- call GoPAL_SET
- ld hl, wcf2d
+ ld b, UPDATE_PARTY_MENU_BLK_PACKET
+ call RunPaletteCommand
+ ld hl, wWhichPartyMenuHPBar
inc [hl]
ret
diff --git a/engine/menu/pc.asm b/engine/menu/pc.asm
index 97895ca6..78b35b95 100755
--- a/engine/menu/pc.asm
+++ b/engine/menu/pc.asm
@@ -1,16 +1,16 @@
ActivatePC: ; 17e2c (5:7e2c)
- call SaveScreenTilesToBuffer2 ;XXX: copy background from wTileMap to wTileMapBackup2
- ld a, (SFX_02_45 - SFX_Headers_02) / 3
- call PlaySound ;XXX: play sound or stop music
+ call SaveScreenTilesToBuffer2
+ ld a, SFX_TURN_ON_PC
+ call PlaySound
ld hl, TurnedOnPC1Text
call PrintText
- call WaitForSoundToFinish ;XXX: wait for sound to be done
+ call WaitForSoundToFinish
ld hl, wFlags_0xcd60
set 3, [hl]
- call LoadScreenTilesFromBuffer2 ;XXX: restore saved screen
+ call LoadScreenTilesFromBuffer2
call Delay3
PCMainMenu: ; 17e48 (5:7e48)
- callba Func_213c8
+ callba DisplayPCMainMenu
ld hl, wFlags_0xcd60
set 5, [hl]
call HandleMenuInput
@@ -51,31 +51,30 @@ PCMainMenu: ; 17e48 (5:7e48)
ld hl, wFlags_0xcd60
res 5, [hl]
set 3, [hl]
- ld a, (SFX_02_47 - SFX_Headers_02) / 3
- call PlaySound ;XXX: play sound or stop music
- call WaitForSoundToFinish ;XXX: wait for sound to be done
+ ld a, SFX_ENTER_PC
+ call PlaySound
+ call WaitForSoundToFinish
ld hl, AccessedMyPCText
call PrintText
callba PlayerPC
jr ReloadMainMenu
OaksPC: ; 17ec0 (5:7ec0)
- ld a, (SFX_02_47 - SFX_Headers_02) / 3
- call PlaySound ;XXX: play sound or stop music
- call WaitForSoundToFinish ;XXX: wait for sound to be done
+ ld a, SFX_ENTER_PC
+ call PlaySound
+ call WaitForSoundToFinish
callba OpenOaksPC
jr ReloadMainMenu
PKMNLeague: ; 17ed2 (5:7ed2)
- ld a, (SFX_02_47 - SFX_Headers_02) / 3
- call PlaySound ;XXX: play sound or stop music
- call WaitForSoundToFinish ;XXX: wait for sound to be done
+ ld a, SFX_ENTER_PC
+ call PlaySound
+ call WaitForSoundToFinish
callba PKMNLeaguePC
jr ReloadMainMenu
BillsPC: ; 17ee4 (5:7ee4)
- ld a, (SFX_02_47 - SFX_Headers_02) / 3
- call PlaySound ;XXX: play sound or stop music
- call WaitForSoundToFinish ;XXX: wait for sound to be done
- ld a, [wd7f1] ;has to do with having met Bill
- bit 0, a
+ ld a, SFX_ENTER_PC
+ call PlaySound
+ call WaitForSoundToFinish
+ CheckEvent EVENT_MET_BILL
jr nz, .billsPC ;if you've met bill, use that bill's instead of someone's
ld hl, AccessedSomeonesPCText
jr .printText
@@ -88,12 +87,12 @@ ReloadMainMenu: ; 17f06 (5:7f06)
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
call ReloadMapData
- call UpdateSprites ;XXX: moves sprites
+ call UpdateSprites
jp PCMainMenu
LogOff: ; 17f13 (5:7f13)
- ld a, (SFX_02_46 - SFX_Headers_02) / 3
- call PlaySound ;XXX: play sound or stop music
- call WaitForSoundToFinish ;XXX: wait for sound to be done
+ ld a, SFX_TURN_OFF_PC
+ call PlaySound
+ call WaitForSoundToFinish
ld hl, wFlags_0xcd60
res 3, [hl]
res 5, [hl]
@@ -115,13 +114,13 @@ AccessedMyPCText: ; 17f32 (5:7f32)
TX_FAR _AccessedMyPCText
db "@"
-; removes one of the specified item ID [$FFdb] from bag (if existent)
+; removes one of the specified item ID [hItemToRemoveID] from bag (if existent)
RemoveItemByID: ; 17f37 (5:7f37)
- ld hl, wBagItems ; wd31e
- ld a, [$ffdb]
+ ld hl, wBagItems
+ ld a, [hItemToRemoveID]
ld b, a
xor a
- ld [$ffdc], a
+ ld [hItemToRemoveIndex], a
.asm_17f40
ld a, [hli]
cp $ff
@@ -129,14 +128,14 @@ RemoveItemByID: ; 17f37 (5:7f37)
cp b
jr z, .asm_17f4f
inc hl
- ld a, [$ffdc]
+ ld a, [hItemToRemoveIndex]
inc a
- ld [$ffdc], a
+ ld [hItemToRemoveIndex], a
jr .asm_17f40
.asm_17f4f
ld a, $1
- ld [wcf96], a
- ld a, [$ffdc]
- ld [wWhichPokemon], a ; wWhichPokemon
- ld hl, wNumBagItems ; wNumBagItems
+ ld [wItemQuantity], a
+ ld a, [hItemToRemoveIndex]
+ ld [wWhichPokemon], a
+ ld hl, wNumBagItems
jp RemoveItemFromInventory
diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm
index 147a27a4..00889e93 100755
--- a/engine/menu/players_pc.asm
+++ b/engine/menu/players_pc.asm
@@ -5,238 +5,240 @@ PlayerPC: ; 78e6 (1:78e6)
ld [wNameListType], a
call SaveScreenTilesToBuffer1
xor a
- ld [wcc2c], a
- ld [wccd3], a
+ ld [wBagSavedMenuItem], a
+ ld [wParentMenuItem], a
ld a, [wFlags_0xcd60]
- bit 3, a
- jr nz, Func_790c
- ld a, (SFX_02_45 - SFX_Headers_02) / 3
+ bit 3, a ; accessing player's PC through another PC?
+ jr nz, PlayerPCMenu
+; accessing it directly
+ ld a, SFX_TURN_ON_PC
call PlaySound
ld hl, TurnedOnPC2Text
call PrintText
-Func_790c: ; 790c (1:790c)
- ld a, [wccd3]
+PlayerPCMenu: ; 790c (1:790c)
+ ld a, [wParentMenuItem]
ld [wCurrentMenuItem], a
ld hl, wFlags_0xcd60
set 5, [hl]
call LoadScreenTilesFromBuffer2
- ld hl, wTileMap
+ coord hl, 0, 0
ld b, $8
ld c, $e
call TextBoxBorder
call UpdateSprites
- hlCoord 2, 2
+ coord hl, 2, 2
ld de, PlayersPCMenuEntries
call PlaceString
ld hl, wTopMenuItemY
- ld a, $2
- ld [hli], a
+ ld a, 2
+ ld [hli], a ; wTopMenuItemY
dec a
- ld [hli], a
+ ld [hli], a ; wTopMenuItemX
inc hl
inc hl
- ld a, $3
- ld [hli], a
- ld a, $3
- ld [hli], a
+ ld a, 3
+ ld [hli], a ; wMaxMenuItem
+ ld a, A_BUTTON | B_BUTTON
+ ld [hli], a ; wMenuWatchedKeys
xor a
ld [hl], a
ld hl, wListScrollOffset
- ld [hli], a
- ld [hl], a
+ ld [hli], a ; wListScrollOffset
+ ld [hl], a ; wMenuWatchMovingOutOfBounds
ld [wPlayerMonNumber], a
ld hl, WhatDoYouWantText
call PrintText
call HandleMenuInput
bit 1, a
- jp nz, Func_796d
+ jp nz, ExitPlayerPC
call PlaceUnfilledArrowMenuCursor
ld a, [wCurrentMenuItem]
- ld [wccd3], a
+ ld [wParentMenuItem], a
and a
- jp z, Func_7a12
+ jp z, PlayerPCWithdraw
dec a
- jp z, Func_7995
+ jp z, PlayerPCDeposit
dec a
- jp z, Func_7a8f
+ jp z, PlayerPCToss
-Func_796d: ; 796d (1:796d)
+ExitPlayerPC: ; 796d (1:796d)
ld a, [wFlags_0xcd60]
- bit 3, a
- jr nz, .asm_797c
- ld a, (SFX_02_46 - SFX_Headers_02) / 3
+ bit 3, a ; accessing player's PC through another PC?
+ jr nz, .next
+; accessing it directly
+ ld a, SFX_TURN_OFF_PC
call PlaySound
call WaitForSoundToFinish
-.asm_797c
+.next
ld hl, wFlags_0xcd60
res 5, [hl]
call LoadScreenTilesFromBuffer2
xor a
ld [wListScrollOffset], a
- ld [wcc2c], a
+ ld [wBagSavedMenuItem], a
ld hl, wd730
res 6, [hl]
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ret
-Func_7995: ; 7995 (1:7995)
+PlayerPCDeposit: ; 7995 (1:7995)
xor a
ld [wCurrentMenuItem], a
ld [wListScrollOffset], a
ld a, [wNumBagItems]
and a
- jr nz, Func_79ab
+ jr nz, .loop
ld hl, NothingToDepositText
call PrintText
- jp Func_790c
-
-Func_79ab: ; 79ab (1:79ab)
+ jp PlayerPCMenu
+.loop
ld hl, WhatToDepositText
call PrintText
ld hl, wNumBagItems
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
- ld [wcf93], a
- ld a, $3
+ ld [wPrintItemPrices], a
+ ld a, ITEMLISTMENU
ld [wListMenuID], a
call DisplayListMenuID
- jp c, Func_790c
+ jp c, PlayerPCMenu
call IsKeyItem
- ld a, $1
- ld [wcf96], a
- ld a, [wd124]
+ ld a, 1
+ ld [wItemQuantity], a
+ ld a, [wIsKeyItem]
and a
- jr nz, .asm_79e7
+ jr nz, .next
+; if it's not a key item, there can be more than one of the item
ld hl, DepositHowManyText
call PrintText
call DisplayChooseQuantityMenu
cp $ff
- jp z, Func_79ab
-.asm_79e7
+ jp z, .loop
+.next
ld hl, wNumBoxItems
call AddItemToInventory
- jr c, .asm_79f8
+ jr c, .roomAvailable
ld hl, NoRoomToStoreText
call PrintText
- jp Func_79ab
-.asm_79f8
+ jp .loop
+.roomAvailable
ld hl, wNumBagItems
call RemoveItemFromInventory
call WaitForSoundToFinish
- ld a, (SFX_02_55 - SFX_Headers_02) / 3
+ ld a, SFX_WITHDRAW_DEPOSIT
call PlaySound
call WaitForSoundToFinish
ld hl, ItemWasStoredText
call PrintText
- jp Func_79ab
+ jp .loop
-Func_7a12: ; 7a12 (1:7a12)
+PlayerPCWithdraw: ; 7a12 (1:7a12)
xor a
ld [wCurrentMenuItem], a
ld [wListScrollOffset], a
ld a, [wNumBoxItems]
and a
- jr nz, Func_7a28
+ jr nz, .loop
ld hl, NothingStoredText
call PrintText
- jp Func_790c
-
-Func_7a28: ; 7a28 (1:7a28)
+ jp PlayerPCMenu
+.loop
ld hl, WhatToWithdrawText
call PrintText
ld hl, wNumBoxItems
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
- ld [wcf93], a
- ld a, $3
+ ld [wPrintItemPrices], a
+ ld a, ITEMLISTMENU
ld [wListMenuID], a
call DisplayListMenuID
- jp c, Func_790c
+ jp c, PlayerPCMenu
call IsKeyItem
- ld a, $1
- ld [wcf96], a
- ld a, [wd124]
+ ld a, 1
+ ld [wItemQuantity], a
+ ld a, [wIsKeyItem]
and a
- jr nz, .asm_7a64
+ jr nz, .next
+; if it's not a key item, there can be more than one of the item
ld hl, WithdrawHowManyText
call PrintText
call DisplayChooseQuantityMenu
cp $ff
- jp z, Func_7a28
-.asm_7a64
+ jp z, .loop
+.next
ld hl, wNumBagItems
call AddItemToInventory
- jr c, .asm_7a75
+ jr c, .roomAvailable
ld hl, CantCarryMoreText
call PrintText
- jp Func_7a28
-.asm_7a75
+ jp .loop
+.roomAvailable
ld hl, wNumBoxItems
call RemoveItemFromInventory
call WaitForSoundToFinish
- ld a, (SFX_02_55 - SFX_Headers_02) / 3
+ ld a, SFX_WITHDRAW_DEPOSIT
call PlaySound
call WaitForSoundToFinish
ld hl, WithdrewItemText
call PrintText
- jp Func_7a28
+ jp .loop
-Func_7a8f: ; 7a8f (1:7a8f)
+PlayerPCToss: ; 7a8f (1:7a8f)
xor a
ld [wCurrentMenuItem], a
ld [wListScrollOffset], a
ld a, [wNumBoxItems]
and a
- jr nz, Func_7aa5
+ jr nz, .loop
ld hl, NothingStoredText
call PrintText
- jp Func_790c
-
-Func_7aa5: ; 7aa5 (1:7aa5)
+ jp PlayerPCMenu
+.loop
ld hl, WhatToTossText
call PrintText
ld hl, wNumBoxItems
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
- ld [wcf93], a
- ld a, $3
+ ld [wPrintItemPrices], a
+ ld a, ITEMLISTMENU
ld [wListMenuID], a
push hl
call DisplayListMenuID
pop hl
- jp c, Func_790c
+ jp c, PlayerPCMenu
push hl
call IsKeyItem
pop hl
- ld a, $1
- ld [wcf96], a
- ld a, [wd124]
+ ld a, 1
+ ld [wItemQuantity], a
+ ld a, [wIsKeyItem]
and a
- jr nz, .asm_7aef
+ jr nz, .next
ld a, [wcf91]
call IsItemHM
- jr c, .asm_7aef
+ jr c, .next
+; if it's not a key item, there can be more than one of the item
push hl
ld hl, TossHowManyText
call PrintText
call DisplayChooseQuantityMenu
pop hl
cp $ff
- jp z, Func_7aa5
-.asm_7aef
- call TossItem
- jp Func_7aa5
+ jp z, .loop
+.next
+ call TossItem ; disallows tossing key items
+ jp .loop
PlayersPCMenuEntries: ; 7af5 (1:7af5)
db "WITHDRAW ITEM"
diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm
index bd4c40bd..7953b849 100755
--- a/engine/menu/pokedex.asm
+++ b/engine/menu/pokedex.asm
@@ -1,7 +1,7 @@
ShowPokedexMenu: ; 40000 (10:4000)
call GBPalWhiteOut
call ClearScreen
- call UpdateSprites ; move sprites
+ call UpdateSprites
ld a,[wListScrollOffset]
push af
xor a
@@ -12,8 +12,8 @@ ShowPokedexMenu: ; 40000 (10:4000)
ld [wd11e],a
ld [hJoy7],a
.setUpGraphics
- ld b,$08
- call GoPAL_SET
+ ld b, SET_PAL_GENERIC
+ call RunPaletteCommand
callab LoadPokedexTilePatterns
.doPokemonListMenu
ld hl,wTopMenuItemY
@@ -22,17 +22,17 @@ ShowPokedexMenu: ; 40000 (10:4000)
xor a
ld [hli],a ; top menu item X
inc a
- ld [wcc37],a
+ ld [wMenuWatchMovingOutOfBounds],a
inc hl
inc hl
ld a,6
ld [hli],a ; max menu item ID
- ld [hl],%00110011 ; menu watched keys (Left, Right, B button, A button)
+ ld [hl],D_LEFT | D_RIGHT | B_BUTTON | A_BUTTON
call HandlePokedexListMenu
jr c,.goToSideMenu ; if the player chose a pokemon from the list
.exitPokedex
xor a
- ld [wcc37],a
+ ld [wMenuWatchMovingOutOfBounds],a
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
ld [hJoy7],a
@@ -41,7 +41,7 @@ ShowPokedexMenu: ; 40000 (10:4000)
pop af
ld [wListScrollOffset],a
call GBPalWhiteOutWithDelay3
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
jp ReloadMapData
.goToSideMenu
call HandlePokedexSideMenu
@@ -71,8 +71,8 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
ld [wd11e],a
ld a,[wd11e]
push af
- ld a,[wWhichTrade]
- push af
+ ld a,[wDexMaxSeenMon]
+ push af ; this doesn't need to be preserved
ld hl,wPokedexSeen
call IsPokemonBitSet
ld b,2
@@ -88,10 +88,11 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
inc hl
ld a,3
ld [hli],a ; max menu item ID
+ ;ld a, A_BUTTON | B_BUTTON
ld [hli],a ; menu watched keys (A button and B button)
xor a
ld [hli],a ; old menu item ID
- ld [wcc37],a
+ ld [wMenuWatchMovingOutOfBounds],a
.handleMenuInput
call HandleMenuInput
bit 1,a ; was the B button pressed?
@@ -108,7 +109,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
ld b,1
.exitSideMenu
pop af
- ld [wWhichTrade],a
+ ld [wDexMaxSeenMon],a
pop af
ld [wd11e],a
pop af
@@ -118,17 +119,17 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
pop af
ld [wCurrentMenuItem],a
push bc
- hlCoord 0, 3
+ coord hl, 0, 3
ld de,20
- ld bc,$7f0d ; 13 blank tiles
+ lb bc, " ", 13
call DrawTileLine ; cover up the menu cursor in the pokemon list
pop bc
ret
.buttonBPressed
push bc
- hlCoord 15, 10
+ coord hl, 15, 10
ld de,20
- ld bc,$7f07 ; 7 blank tiles
+ lb bc, " ", 7
call DrawTileLine ; cover up the menu cursor in the side menu
pop bc
jr .exitSideMenu
@@ -139,8 +140,8 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
; play pokemon cry
.choseCry
ld a,[wd11e]
- call GetCryData ; get cry data
- call PlaySound ; play sound
+ call GetCryData
+ call PlaySound
jr .handleMenuInput
.choseArea
predef LoadTownMap_Nest ; display pokemon areas
@@ -153,43 +154,43 @@ HandlePokedexListMenu: ; 40111 (10:4111)
xor a
ld [H_AUTOBGTRANSFERENABLED],a
; draw the horizontal line separating the seen and owned amounts from the menu
- hlCoord 15, 8
+ coord hl, 15, 8
ld a,$7a ; horizontal line tile
ld [hli],a
ld [hli],a
ld [hli],a
ld [hli],a
ld [hli],a
- hlCoord 14, 0
+ coord hl, 14, 0
ld [hl],$71 ; vertical line tile
- hlCoord 14, 1
+ coord hl, 14, 1
call DrawPokedexVerticalLine
- hlCoord 14, 9
+ coord hl, 14, 9
call DrawPokedexVerticalLine
ld hl,wPokedexSeen
ld b,wPokedexSeenEnd - wPokedexSeen
call CountSetBits
- ld de,wd11e
- hlCoord 16, 3
- ld bc,$0103
+ ld de, wNumSetBits
+ coord hl, 16, 3
+ lb bc, 1, 3
call PrintNumber ; print number of seen pokemon
ld hl,wPokedexOwned
ld b,wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld de,wd11e
- hlCoord 16, 6
- ld bc,$0103
+ ld de, wNumSetBits
+ coord hl, 16, 6
+ lb bc, 1, 3
call PrintNumber ; print number of owned pokemon
- hlCoord 16, 2
+ coord hl, 16, 2
ld de,PokedexSeenText
call PlaceString
- hlCoord 16, 5
+ coord hl, 16, 5
ld de,PokedexOwnText
call PlaceString
- hlCoord 1, 1
+ coord hl, 1, 1
ld de,PokedexContentsText
call PlaceString
- hlCoord 16, 10
+ coord hl, 16, 10
ld de,PokedexMenuItemsText
call PlaceString
; find the highest pokedex number among the pokemon the player has seen
@@ -207,18 +208,18 @@ HandlePokedexListMenu: ; 40111 (10:4111)
jr .maxSeenPokemonLoop
.storeMaxSeenPokemon
ld a,b
- ld [wWhichTrade],a ; max seen pokemon
+ ld [wDexMaxSeenMon],a
.loop
xor a
ld [H_AUTOBGTRANSFERENABLED],a
- hlCoord 4, 2
- ld bc,$0e0a
+ coord hl, 4, 2
+ lb bc, 14, 10
call ClearScreenArea
- hlCoord 1, 3
+ coord hl, 1, 3
ld a,[wListScrollOffset]
ld [wd11e],a
ld d,7
- ld a,[wWhichTrade]
+ ld a,[wDexMaxSeenMon]
cp a,7
jr nc,.printPokemonLoop
ld d,a
@@ -233,12 +234,12 @@ HandlePokedexListMenu: ; 40111 (10:4111)
push af
push de
push hl
- ld de,-20
+ ld de,-SCREEN_WIDTH
add hl,de
ld de,wd11e
- ld bc,$8103
+ lb bc, LEADING_ZEROES | 1, 3
call PrintNumber ; print the pokedex number
- ld de,20
+ ld de,SCREEN_WIDTH
add hl,de
dec hl
push hl
@@ -294,9 +295,9 @@ HandlePokedexListMenu: ; 40111 (10:4111)
bit 7,a ; was Down pressed?
jr z,.checkIfRightPressed
.downPressed ; scroll down one row
- ld a,[wWhichTrade]
+ ld a,[wDexMaxSeenMon]
cp a,7
- jp c,.loop
+ jp c,.loop ; can't if the list is shorter than 7
sub a,7
ld b,a
ld a,[wListScrollOffset]
@@ -309,9 +310,9 @@ HandlePokedexListMenu: ; 40111 (10:4111)
bit 4,a ; was Right pressed?
jr z,.checkIfLeftPressed
.rightPressed ; scroll down 7 rows
- ld a,[wWhichTrade]
+ ld a,[wDexMaxSeenMon]
cp a,7
- jp c,.loop
+ jp c,.loop ; can't if the list is shorter than 7
sub a,6
ld b,a
ld a,[wListScrollOffset]
@@ -377,7 +378,7 @@ IsPokemonBitSet: ; 402c2 (10:42c2)
ld a,[wd11e]
dec a
ld c,a
- ld b,2
+ ld b,FLAG_TEST
predef FlagActionPredef
ld a,c
and a
@@ -395,32 +396,32 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
ld hl,wd72c
set 1,[hl]
ld a,$33 ; 3/7 volume
- ld [$ff24],a
+ ld [rNR50],a
call GBPalWhiteOut ; zero all palettes
call ClearScreen
ld a,[wd11e] ; pokemon ID
ld [wcf91],a
push af
- ld b,04
- call GoPAL_SET
+ ld b, SET_PAL_POKEDEX
+ call RunPaletteCommand
pop af
ld [wd11e],a
ld a,[hTilesetType]
push af
xor a
ld [hTilesetType],a
- hlCoord 0, 0
+ coord hl, 0, 0
ld de,1
- ld bc,$6414
+ lb bc, $64, SCREEN_WIDTH
call DrawTileLine ; draw top border
- hlCoord 0, 17
- ld b,$6f
+ coord hl, 0, 17
+ ld b, $6f
call DrawTileLine ; draw bottom border
- hlCoord 0, 1
+ coord hl, 0, 1
ld de,20
- ld bc,$6610
+ lb bc, $66, $10
call DrawTileLine ; draw left border
- hlCoord 19, 1
+ coord hl, 19, 1
ld b,$67
call DrawTileLine ; draw right border
ld a,$63 ; upper left corner tile
@@ -431,14 +432,14 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
Coorda 0, 17
ld a,$6e ; lower right corner tile
Coorda 19, 17
- hlCoord 0, 9
+ coord hl, 0, 9
ld de,PokedexDataDividerLine
call PlaceString ; draw horizontal divider line
- hlCoord 9, 6
+ coord hl, 9, 6
ld de,HeightWeightText
call PlaceString
call GetMonName
- hlCoord 9, 2
+ coord hl, 9, 2
call PlaceString
ld hl,PokedexEntryPointers
ld a,[wd11e]
@@ -450,7 +451,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
ld a,[hli]
ld e,a
ld d,[hl] ; de = address of pokedex entry
- hlCoord 9, 4
+ coord hl, 9, 4
call PlaceString ; print species name
ld h,b
ld l,c
@@ -458,13 +459,13 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
ld a,[wd11e]
push af
call IndexToPokedex
- hlCoord 2, 8
+ coord hl, 2, 8
ld a, "№"
ld [hli],a
ld a,$f2
ld [hli],a
ld de,wd11e
- ld bc,$8103
+ lb bc, LEADING_ZEROES | 1, 3
call PrintNumber ; print pokedex number
ld hl,wPokedexOwned
call IsPokemonBitSet
@@ -480,7 +481,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
call Delay3
call GBPalNormal
call GetMonHeader ; load pokemon picture location
- hlCoord 1, 1
+ coord hl, 1, 1
call LoadFlippedFrontSpriteByMonIndex ; draw pokemon picture
ld a,[wcf91]
call PlayCry ; play pokemon cry
@@ -493,15 +494,15 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
jp z,.waitForButtonPress ; if the pokemon has not been owned, don't print the height, weight, or description
inc de ; de = address of feet (height)
ld a,[de] ; reads feet, but a is overwritten without being used
- hlCoord 12, 6
- ld bc,$0102
+ coord hl, 12, 6
+ lb bc, 1, 2
call PrintNumber ; print feet (height)
ld a,$60 ; feet symbol tile (one tick)
ld [hl],a
inc de
inc de ; de = address of inches (height)
- hlCoord 15, 6
- ld bc,$8102
+ coord hl, 15, 6
+ lb bc, LEADING_ZEROES | 1, 2
call PrintNumber ; print inches (height)
ld a,$61 ; inches symbol tile (two ticks)
ld [hl],a
@@ -510,25 +511,25 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
inc de
inc de ; de = address of upper byte of weight
push de
-; put weight in big-endian order at $ff8b
- ld hl,$ff8b
- ld a,[hl] ; save existing value of [$ff8b]
+; put weight in big-endian order at hDexWeight
+ ld hl,hDexWeight
+ ld a,[hl] ; save existing value of [hDexWeight]
push af
ld a,[de] ; a = upper byte of weight
- ld [hli],a ; store upper byte of weight in [$ff8b]
- ld a,[hl] ; save existing value of [$ff8c]
+ ld [hli],a ; store upper byte of weight in [hDexWeight]
+ ld a,[hl] ; save existing value of [hDexWeight + 1]
push af
dec de
ld a,[de] ; a = lower byte of weight
- ld [hl],a ; store lower byte of weight in [$ff8c]
- ld de,$ff8b
- hlCoord 11, 8
- ld bc,$0205 ; no leading zeroes, right-aligned, 2 bytes, 5 digits
+ ld [hl],a ; store lower byte of weight in [hDexWeight + 1]
+ ld de,hDexWeight
+ coord hl, 11, 8
+ lb bc, 2, 5 ; 2 bytes, 5 digits
call PrintNumber ; print weight
- hlCoord 14, 8
- ld a,[$ff8c]
+ coord hl, 14, 8
+ ld a,[hDexWeight + 1]
sub a,10
- ld a,[$ff8b]
+ ld a,[hDexWeight]
sbc a,0
jr nc,.next
ld [hl],"0" ; if the weight is less than 10, put a 0 before the decimal point
@@ -538,12 +539,12 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
ld [hld],a ; make space for the decimal point by moving the last digit forward one tile
ld [hl],$f2 ; decimal point tile
pop af
- ld [$ff8c],a ; restore original value of [$ff8c]
+ ld [hDexWeight + 1],a ; restore original value of [hDexWeight + 1]
pop af
- ld [$ff8b],a ; restore original value of [$ff8b]
+ ld [hDexWeight],a ; restore original value of [hDexWeight]
pop hl
inc hl ; hl = address of pokedex description text
- bcCoord 1, 11
+ coord bc, 1, 11
ld a,2
ld [$fff4],a
call TextCommandProcessor ; print pokedex description text
@@ -552,27 +553,27 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
.waitForButtonPress
call JoypadLowSensitivity
ld a,[hJoy5]
- and a,%00000011 ; A button and B button
+ and a,A_BUTTON | B_BUTTON
jr z,.waitForButtonPress
pop af
ld [hTilesetType],a
call GBPalWhiteOut
call ClearScreen
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call LoadTextBoxTilePatterns
call GBPalNormal
ld hl,wd72c
res 1,[hl]
ld a,$77 ; max volume
- ld [$ff24],a
+ ld [rNR50],a
ret
HeightWeightText: ; 40448 (10:4448)
db "HT ?",$60,"??",$61,$4E,"WT ???lb@"
; XXX does anything point to this?
-Unknown_4045D: ; 4045d (10:445d)
- db $54,$50
+PokeText: ; 4045d (10:445d)
+ db "#@"
; horizontal line that divides the pokedex text description from the rest of the data
PokedexDataDividerLine: ; 4045f (10:445f)
diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm
index 0e904200..409f0bdb 100755
--- a/engine/menu/prize_menu.asm
+++ b/engine/menu/prize_menu.asm
@@ -13,7 +13,7 @@ CeladonPrizeMenu: ; 5271b (14:671b)
xor a
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
- ld a,$03
+ ld a,A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys],a
ld a,$03
ld [wMaxMenuItem],a
@@ -21,12 +21,12 @@ CeladonPrizeMenu: ; 5271b (14:671b)
ld [wTopMenuItemY],a
ld a,$01
ld [wTopMenuItemX],a
- call PrintPrizePrice ; 687A
- hlCoord 0, 2
+ call PrintPrizePrice
+ coord hl, 0, 2
ld b,$08
ld c,$10
call TextBoxBorder
- call GetPrizeMenuId ;678E
+ call GetPrizeMenuId
call UpdateSprites
ld hl,WhichPrizeTextPtr
call PrintText
@@ -36,7 +36,7 @@ CeladonPrizeMenu: ; 5271b (14:671b)
ld a,[wCurrentMenuItem]
cp a,$03 ; "NO,THANKS" choice
jr z,.NoChoice
- call HandlePrizeChoice ; 14:68C6
+ call HandlePrizeChoice
.NoChoice
ld hl,wd730
res 6,[hl]
@@ -58,18 +58,18 @@ WhichPrizeTextPtr: ; 52789 (14:6789)
GetPrizeMenuId: ; 5278e (14:678e)
; determine which one among the three
; prize-texts has been selected
-; using the text ID (stored in [$FF8C])
+; using the text ID (stored in [hSpriteIndexOrTextID])
; load the three prizes at wd13d-wd13f
; load the three prices at wd141-wd146
; display the three prizes' names
; (distinguishing between Pokemon names
; and Items (specifically TMs) names)
- ld a,[$FF8C]
- sub a,$03 ; prize-texts' id are 3, 4 and 5
- ld [wd12f],a ; prize-texts' id (relative, i.e. 0, 1 or 2)
+ ld a,[hSpriteIndexOrTextID]
+ sub a,3 ; prize-texts' id are 3, 4 and 5
+ ld [wWhichPrizeWindow],a ; prize-texts' id (relative, i.e. 0, 1 or 2)
add a
add a
- ld d,$00
+ ld d,0
ld e,a
ld hl,PrizeDifferentMenuPtrs
add hl,de
@@ -79,178 +79,184 @@ GetPrizeMenuId: ; 5278e (14:678e)
inc hl
push hl
ld hl,W_PRIZE1
- call CopyString ; XXX what does this do
+ call CopyString
pop hl
ld a,[hli]
ld h,[hl]
ld l,a
- ld de,wd141
- ld bc,$0006
+ ld de,wPrize1Price
+ ld bc,6
call CopyData
- ld a,[wd12f]
+ ld a,[wWhichPrizeWindow]
cp a,$02 ;is TM_menu?
jr nz,.putMonName
ld a,[W_PRIZE1]
ld [wd11e],a
call GetItemName
- hlCoord 2, 4
+ coord hl, 2, 4
call PlaceString
ld a,[W_PRIZE2]
ld [wd11e],a
call GetItemName
- hlCoord 2, 6
+ coord hl, 2, 6
call PlaceString
ld a,[W_PRIZE3]
ld [wd11e],a
call GetItemName
- hlCoord 2, 8
+ coord hl, 2, 8
call PlaceString
jr .putNoThanksText
-.putMonName ; 14:67EC
+.putMonName
ld a,[W_PRIZE1]
ld [wd11e],a
call GetMonName
- hlCoord 2, 4
+ coord hl, 2, 4
call PlaceString
ld a,[W_PRIZE2]
ld [wd11e],a
call GetMonName
- hlCoord 2, 6
+ coord hl, 2, 6
call PlaceString
ld a,[W_PRIZE3]
ld [wd11e],a
call GetMonName
- hlCoord 2, 8
+ coord hl, 2, 8
call PlaceString
-.putNoThanksText ; 14:6819
- hlCoord 2, 10
+.putNoThanksText
+ coord hl, 2, 10
ld de,NoThanksText
call PlaceString
; put prices on the right side of the textbox
- ld de,wd141
- hlCoord 13, 5
+ ld de,wPrize1Price
+ coord hl, 13, 5
; reg. c:
; [low nybble] number of bytes
; [bit 765 = %100] space-padding (not zero-padding)
ld c,(1 << 7 | 2)
; Function $15CD displays BCD value (same routine
; used by text-command $02)
- call PrintBCDNumber ; Print_BCD
- ld de,wd143
- hlCoord 13, 7
+ call PrintBCDNumber
+ ld de,wPrize2Price
+ coord hl, 13, 7
ld c,(%1 << 7 | 2)
call PrintBCDNumber
- ld de,wd145
- hlCoord 13, 9
+ ld de,wPrize3Price
+ coord hl, 13, 9
ld c,(1 << 7 | 2)
jp PrintBCDNumber
INCLUDE "data/prizes.asm"
PrintPrizePrice: ; 5287a (14:687a)
- hlCoord 11, 0
+ coord hl, 11, 0
ld b,$01
ld c,$07
call TextBoxBorder
- call UpdateSprites ; XXX save OAM?
- hlCoord 12, 0
+ call UpdateSprites
+ coord hl, 12, 0
ld de,.CoinText
call PlaceString
- hlCoord 13, 1
+ coord hl, 13, 1
ld de,.SixSpacesText
call PlaceString
- hlCoord 13, 1
+ coord hl, 13, 1
ld de,wPlayerCoins
ld c,%10000010
call PrintBCDNumber
ret
-.CoinText ; 14:68A5
+.CoinText
db "COIN@"
-.SixSpacesText ; 14:68AA
+.SixSpacesText
db " @"
LoadCoinsToSubtract: ; 528b1 (14:68b1)
- ld a,[wd139] ; backup of selected menu_entry
+ ld a,[wWhichPrize]
add a
- ld d,$00
+ ld d,0
ld e,a
- ld hl,wd141 ; first prize's price
+ ld hl,wPrize1Price
add hl,de ; get selected prize's price
xor a
- ld [$FF9F],a
+ ld [hUnusedCoinsByte],a
ld a,[hli]
- ld [$FFA0],a
+ ld [hCoins],a
ld a,[hl]
- ld [$FFA1],a
+ ld [hCoins + 1],a
ret
HandlePrizeChoice: ; 528c6 (14:68c6)
- ld a,[wCurrentMenuItem] ; selected menu_entry
- ld [wd139],a
- ld d,$00
+ ld a,[wCurrentMenuItem]
+ ld [wWhichPrize],a
+ ld d,0
ld e,a
ld hl,W_PRIZE1
add hl,de
ld a,[hl]
ld [wd11e],a
- ld a,[wd12f]
+ ld a,[wWhichPrizeWindow]
cp a,$02 ; is prize a TM?
jr nz,.GetMonName
call GetItemName
jr .GivePrize
-.GetMonName ; 14:68E3
+.GetMonName
call GetMonName
-.GivePrize ; 14:68E6
+.GivePrize
ld hl,SoYouWantPrizeTextPtr
call PrintText
- call YesNoChoice ; yes/no textbox
+ call YesNoChoice
ld a,[wCurrentMenuItem] ; yes/no answer (Y=0, N=1)
and a
jr nz,.PrintOhFineThen
call LoadCoinsToSubtract
call HasEnoughCoins
jr c,.NotEnoughCoins
- ld a,[wd12f]
+ ld a,[wWhichPrizeWindow]
cp a,$02
jr nz,.GiveMon
ld a,[wd11e]
ld b,a
ld a,1
ld c,a
- call GiveItem ; GiveItem
+ call GiveItem
jr nc,.BagFull
jr .SubtractCoins
-.GiveMon ; 14:6912
+.GiveMon
ld a,[wd11e]
ld [wcf91],a
push af
- call GetPrizeMonLevel ; 14:6977
+ call GetPrizeMonLevel
ld c,a
pop af
ld b,a
call GivePokemon
+
+; If either the party or box was full, wait after displaying message.
push af
- ld a,[wccd3] ; XXX is there room?
+ ld a,[wAddedToParty]
and a
call z,WaitForTextScrollButtonPress
pop af
+
+; If the mon couldn't be given to the player (because both the party and box
+; were full), return without subtracting coins.
ret nc
-.SubtractCoins ; 14:692C
+
+.SubtractCoins
call LoadCoinsToSubtract
- ld hl,$FFA1
+ ld hl,hCoins + 1
ld de,wPlayerCoins + 1
ld c,$02 ; how many bytes
- predef SubBCDPredef ; subtract coins (BCD daa operations)
+ predef SubBCDPredef
jp PrintPrizePrice
.BagFull
ld hl,PrizeRoomBagIsFullTextPtr
jp PrintText
-.NotEnoughCoins ; 14:6945
+.NotEnoughCoins
ld hl,SorryNeedMoreCoinsText
jp PrintText
-.PrintOhFineThen ; 14:694B
+.PrintOhFineThen
ld hl,OhFineThenTextPtr
jp PrintText
@@ -286,13 +292,13 @@ GetPrizeMonLevel: ; 52977 (14:6977)
ld a,[wcf91]
ld b,a
ld hl,PrizeMonLevelDictionary
-.loop ; 14:697E
+.loop
ld a,[hli]
cp b
jr z,.matchFound
inc hl
jr .loop
-.matchFound ; 14:6985
+.matchFound
ld a,[hl]
ld [W_CURENEMYLVL],a
ret
diff --git a/engine/menu/start_menu.asm b/engine/menu/start_menu.asm
index 3c3b837c..60010d9c 100755
--- a/engine/menu/start_menu.asm
+++ b/engine/menu/start_menu.asm
@@ -8,7 +8,7 @@ DisplayStartMenu:: ; 29d1 (0:29d1)
RedisplayStartMenu:: ; 29e1 (0:29e1)
callba DrawStartMenu
callba PrintSafariZoneSteps ; print Safari Zone info, if in Safari Zone
- call UpdateSprites ; move sprites
+ call UpdateSprites
.loop
call HandleMenuInput
ld b,a
@@ -22,8 +22,7 @@ RedisplayStartMenu:: ; 29e1 (0:29e1)
and a
jr nz,.loop
; if the player pressed tried to go past the top item, wrap around to the bottom
- ld a,[wd74b]
- bit 5,a ; does the player have the pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
ld a,6 ; there are 7 menu items with the pokedex, so the max index is 6
jr nz,.wrapMenuItemId
dec a ; there are only 6 menu items without the pokedex
@@ -35,8 +34,7 @@ RedisplayStartMenu:: ; 29e1 (0:29e1)
bit 7,a
jr z,.buttonPressed
; if the player pressed tried to go past the bottom item, wrap around to the top
- ld a,[wd74b]
- bit 5,a ; does the player have the pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
ld a,[wCurrentMenuItem]
ld c,7 ; there are 7 menu items with the pokedex
jr nz,.checkIfPastBottom
@@ -52,13 +50,12 @@ RedisplayStartMenu:: ; 29e1 (0:29e1)
.buttonPressed ; A, B, or Start button pressed
call PlaceUnfilledArrowMenuCursor
ld a,[wCurrentMenuItem]
- ld [wcc2d],a ; save current menu item ID
+ ld [wBattleAndStartSavedMenuItem],a ; save current menu selection
ld a,b
and a,%00001010 ; was the Start button or B button pressed?
jp nz,CloseStartMenu
call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2
- ld a,[wd74b]
- bit 5,a ; does the player have the pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
ld a,[wCurrentMenuItem]
jr nz,.displayMenuItem
inc a ; adjust position to account for missing pokedex menu item
diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm
index 589224ab..ab8c8756 100755
--- a/engine/menu/start_sub_menus.asm
+++ b/engine/menu/start_sub_menus.asm
@@ -12,14 +12,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
jp z,RedisplayStartMenu
xor a
ld [wMenuItemToSwap],a
- ld [wd07d],a
+ ld [wPartyMenuTypeOrMessageID],a
ld [wUpdateSpritesEnabled],a
call DisplayPartyMenu
jr .checkIfPokemonChosen
.loop
xor a
ld [wMenuItemToSwap],a
- ld [wd07d],a
+ ld [wPartyMenuTypeOrMessageID],a
call GoBackToPartyMenu
.checkIfPokemonChosen
jr nc,.chosePokemon
@@ -33,14 +33,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
ld a,FIELD_MOVE_MON_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; display pokemon menu options
- ld hl,wWhichTrade
- ld bc,$020c ; max menu item ID, top menu item Y
+ ld hl,wFieldMoves
+ lb bc, $02, $0c ; max menu item ID, top menu item Y
ld e,5
.adjustMenuVariablesLoop
dec e
jr z,.storeMenuVariables
ld a,[hli]
- and a
+ and a ; end of field moves?
jr z,.storeMenuVariables
inc b
dec c
@@ -50,14 +50,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
ld hl,wTopMenuItemY
ld a,c
ld [hli],a ; top menu item Y
- ld a,[$fff7]
+ ld a,[hFieldMoveMonMenuTopMenuItemX]
ld [hli],a ; top menu item X
xor a
ld [hli],a ; current menu item ID
inc hl
ld a,b
ld [hli],a ; max menu item ID
- ld a,%00000011 ; A button, B button
+ ld a,A_BUTTON | B_BUTTON
ld [hli],a ; menu watched keys
xor a
ld [hl],a
@@ -81,22 +81,22 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
jp z,.choseStats
ld c,a
ld b,0
- ld hl,wWhichTrade
+ ld hl,wFieldMoves
add hl,bc
jp .choseOutOfBattleMove
.choseSwitch
ld a,[wPartyCount]
cp a,2 ; is there more than one pokemon in the party?
jp c,StartMenu_Pokemon ; if not, no switching
- call SwitchPartyMon_Stats
- ld a,$04 ; swap pokemon positions menu
- ld [wd07d],a
+ call SwitchPartyMon_InitVarOrSwapData ; init [wMenuItemToSwap]
+ ld a,SWAP_MONS_PARTY_MENU
+ ld [wPartyMenuTypeOrMessageID],a
call GoBackToPartyMenu
jp .checkIfPokemonChosen
.choseStats
call ClearSprites
- xor a
- ld [wcc49],a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation],a
predef StatusScreen
predef StatusScreen2
call ReloadMapData
@@ -153,7 +153,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
bit 1,a ; does the player have the Cascade Badge?
jp z,.newBadgeRequired
predef UsedCut
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
and a
jp z,.loop
jp CloseTextDisplay
@@ -167,9 +167,9 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
jp z,.loop
ld a,SURFBOARD
ld [wcf91],a
- ld [wd152],a
+ ld [wPseudoItemID],a
call UseItem
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
and a
jp z,.loop
call GBPalWhiteOutWithDelay3
@@ -195,9 +195,9 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
.dig
ld a,ESCAPE_ROPE
ld [wcf91],a
- ld [wd152],a
+ ld [wPseudoItemID],a
call UseItem
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
and a
jp z,.loop
call GBPalWhiteOutWithDelay3
@@ -256,14 +256,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
ld a,[H_QUOTIENT + 2]
sbc b
jp nc,.notHealthyEnough
- ld a,[wcc2b]
+ ld a,[wPartyAndBillsPCSavedMenuItem]
push af
ld a,POTION
ld [wcf91],a
- ld [wd152],a
+ ld [wPseudoItemID],a
call UseItem
pop af
- ld [wcc2b],a
+ ld [wPartyAndBillsPCSavedMenuItem],a
jp .loop
.notHealthyEnough ; if current HP is less than 1/5 of max HP
ld hl,.notHealthyEnoughText
@@ -285,7 +285,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9)
; writes a blank tile to all possible menu cursor positions on the party menu
ErasePartyMenuCursors: ; 132ed (4:72ed)
- hlCoord 0, 1
+ coord hl, 0, 1
ld bc,2 * 20 ; menu cursor positions are 2 rows apart
ld a,6 ; 6 menu cursor positions
.loop
@@ -297,7 +297,7 @@ ErasePartyMenuCursors: ; 132ed (4:72ed)
ItemMenuLoop: ; 132fc (4:72fc)
call LoadScreenTilesFromBuffer2DisableBGTransfer ; restore saved screen
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
StartMenu_Item: ; 13302 (4:7302)
ld a,[wLinkState]
@@ -308,24 +308,24 @@ StartMenu_Item: ; 13302 (4:7302)
jr .exitMenu
.notInCableClubRoom
ld bc,wNumBagItems
- ld hl,wList
+ ld hl,wListPointer
ld a,c
ld [hli],a
- ld [hl],b ; store item bag pointer at wList (for DisplayListMenuID)
+ ld [hl],b ; store item bag pointer in wListPointer (for DisplayListMenuID)
xor a
- ld [wcf93],a
+ ld [wPrintItemPrices],a
ld a,ITEMLISTMENU
ld [wListMenuID],a
- ld a,[wcc2c]
+ ld a,[wBagSavedMenuItem]
ld [wCurrentMenuItem],a
call DisplayListMenuID
ld a,[wCurrentMenuItem]
- ld [wcc2c],a
+ ld [wBagSavedMenuItem],a
jr nc,.choseItem
.exitMenu
call LoadScreenTilesFromBuffer2 ; restore saved screen
call LoadTextBoxTilePatterns
- call UpdateSprites ; move sprites
+ call UpdateSprites
jp RedisplayStartMenu
.choseItem
; erase menu cursor (blank each tile in front of an item name)
@@ -354,7 +354,7 @@ StartMenu_Item: ; 13302 (4:7302)
inc hl
inc a ; a = 1
ld [hli],a ; max menu item ID
- ld a,%00000011 ; A button, B button
+ ld a,A_BUTTON | B_BUTTON
ld [hli],a ; menu watched keys
xor a
ld [hl],a ; old menu item id
@@ -381,8 +381,8 @@ StartMenu_Item: ; 13302 (4:7302)
ld a,[wCurrentMenuItem]
and a
jr nz,.tossItem
-.useItem
- ld [wd152],a
+; use item
+ ld [wPseudoItemID],a ; a must be 0 due to above conditional jump
ld a,[wcf91]
cp a,HM_01
jr nc,.useItem_partyMenu
@@ -399,9 +399,9 @@ StartMenu_Item: ; 13302 (4:7302)
jp ItemMenuLoop
.useItem_closeMenu
xor a
- ld [wd152],a
+ ld [wPseudoItemID],a
call UseItem
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
and a
jp z,ItemMenuLoop
jp CloseStartMenu
@@ -409,7 +409,7 @@ StartMenu_Item: ; 13302 (4:7302)
ld a,[wUpdateSpritesEnabled]
push af
call UseItem
- ld a,[wcd6a]
+ ld a,[wActionResultOrTookBattleTurn]
cp a,$02
jp z,.partyMenuNotDisplayed
call GBPalWhiteOutWithDelay3
@@ -423,7 +423,7 @@ StartMenu_Item: ; 13302 (4:7302)
jp ItemMenuLoop
.tossItem
call IsKeyItem
- ld a,[wd124]
+ ld a,[wIsKeyItem]
and a
jr nz,.skipAskingQuantity
ld a,[wcf91]
@@ -499,21 +499,21 @@ UsableItems_CloseMenu: ; 13459 (4:7459)
StartMenu_TrainerInfo: ; 13460 (4:7460)
call GBPalWhiteOut
call ClearScreen
- call UpdateSprites ; move sprites
+ call UpdateSprites
ld a,[hTilesetType]
push af
xor a
ld [hTilesetType],a
call DrawTrainerInfo
predef DrawBadges ; draw badges
- ld b,$0d
- call GoPAL_SET
+ ld b, SET_PAL_TRAINER_CARD
+ call RunPaletteCommand
call GBPalNormal
call WaitForTextScrollButtonPress ; wait for button press
call GBPalWhiteOut
call LoadFontTilePatterns
call LoadScreenTilesFromBuffer2 ; restore saved screen
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call ReloadMapData
call LoadGBPal
pop af
@@ -523,37 +523,37 @@ StartMenu_TrainerInfo: ; 13460 (4:7460)
; loads tile patterns and draws everything except for gym leader faces / badges
DrawTrainerInfo: ; 1349a (4:749a)
ld de,RedPicFront
- ld bc,(BANK(RedPicFront) << 8) | $01
- predef Predef3B
+ lb bc, BANK(RedPicFront), $01
+ predef DisplayPicCenteredOrUpperRight
call DisableLCD
- hlCoord 0, 2
+ coord hl, 0, 2
ld a," "
call TrainerInfo_DrawVerticalLine
- hlCoord 1, 2
+ coord hl, 1, 2
call TrainerInfo_DrawVerticalLine
ld hl,vChars2 + $70
ld de,vChars2
ld bc,$70 * 4
call CopyData
- ld hl,TrainerInfoTextBoxTileGraphics ; $7b98 ; trainer info text box tile patterns
+ ld hl,TrainerInfoTextBoxTileGraphics ; trainer info text box tile patterns
ld de,vChars2 + $770
ld bc,$0080
push bc
call TrainerInfo_FarCopyData
- ld hl,BlankLeaderNames ; $7c28
+ ld hl,BlankLeaderNames
ld de,vChars2 + $600
ld bc,$0170
call TrainerInfo_FarCopyData
pop bc
- ld hl,BadgeNumbersTileGraphics ; $7d98 ; badge number tile patterns
+ ld hl,BadgeNumbersTileGraphics ; badge number tile patterns
ld de,vChars1 + $580
call TrainerInfo_FarCopyData
- ld hl,GymLeaderFaceAndBadgeTileGraphics ; $6a9e ; gym leader face and badge tile patterns
+ ld hl,GymLeaderFaceAndBadgeTileGraphics ; gym leader face and badge tile patterns
ld de,vChars2 + $200
ld bc,$0400
ld a,$03
call FarCopyData2
- ld hl,TextBoxGraphics ; $6288
+ ld hl,TextBoxGraphics
ld de,$00d0
add hl,de ; hl = colon tile pattern
ld de,vChars1 + $560
@@ -562,56 +562,56 @@ DrawTrainerInfo: ; 1349a (4:749a)
push bc
call FarCopyData2
pop bc
- ld hl,TrainerInfoTextBoxTileGraphics + $80 ; $7c18 ; background tile pattern
+ ld hl,TrainerInfoTextBoxTileGraphics + $80 ; background tile pattern
ld de,vChars1 + $570
call TrainerInfo_FarCopyData
call EnableLCD
- ld hl,wWhichTrade
+ ld hl,wTrainerInfoTextBoxWidthPlus1
ld a,18 + 1
ld [hli],a
dec a
ld [hli],a
ld [hl],1
- hlCoord 0, 0
+ coord hl, 0, 0
call TrainerInfo_DrawTextBox
- ld hl,wWhichTrade
+ ld hl,wTrainerInfoTextBoxWidthPlus1
ld a,16 + 1
ld [hli],a
dec a
ld [hli],a
ld [hl],3
- hlCoord 1, 10
+ coord hl, 1, 10
call TrainerInfo_DrawTextBox
- hlCoord 0, 10
+ coord hl, 0, 10
ld a,$d7
call TrainerInfo_DrawVerticalLine
- hlCoord 19, 10
+ coord hl, 19, 10
call TrainerInfo_DrawVerticalLine
- hlCoord 6, 9
+ coord hl, 6, 9
ld de,TrainerInfo_BadgesText
call PlaceString
- hlCoord 2, 2
+ coord hl, 2, 2
ld de,TrainerInfo_NameMoneyTimeText
call PlaceString
- hlCoord 7, 2
+ coord hl, 7, 2
ld de,wPlayerName
call PlaceString
- hlCoord 8, 4
+ coord hl, 8, 4
ld de,wPlayerMoney
ld c,$e3
call PrintBCDNumber
- hlCoord 9, 6
+ coord hl, 9, 6
ld de,W_PLAYTIMEHOURS + 1 ; hours
- ld bc,$4103
+ lb bc, LEFT_ALIGN | 1, 3
call PrintNumber
ld [hl],$d6 ; colon tile ID
inc hl
ld de,W_PLAYTIMEMINUTES + 1 ; minutes
- ld bc,$8102
+ lb bc, LEADING_ZEROES | 1, 2
jp PrintNumber
TrainerInfo_FarCopyData: ; 1357f (4:757f)
- ld a,$0b
+ ld a,BANK(TrainerInfoTextBoxTileGraphics)
jp FarCopyData2
TrainerInfo_NameMoneyTimeText: ; 13584 (4:7584)
@@ -627,15 +627,15 @@ TrainerInfo_BadgesText: ; 13597 (4:7597)
; height is always 6
; INPUT:
; hl = destination address
-; [wWhichTrade] = width + 1
-; [wTrainerEngageDistance] = width
-; [wTrainerFacingDirection] = distance from the end of a text box row to the start of the next
+; [wTrainerInfoTextBoxWidthPlus1] = width
+; [wTrainerInfoTextBoxWidth] = width - 1
+; [wTrainerInfoTextBoxNextRowOffset] = distance from the end of a text box row to the start of the next
TrainerInfo_DrawTextBox: ; 135a0 (4:75a0)
ld a,$79 ; upper left corner tile ID
- ld de,$7a7b ; top edge and upper right corner tile ID's
+ lb de, $7a, $7b ; top edge and upper right corner tile ID's
call TrainerInfo_DrawHorizontalEdge ; draw top edge
call TrainerInfo_NextTextBoxRow
- ld a,[wWhichTrade] ; width of the text box plus one
+ ld a,[wTrainerInfoTextBoxWidthPlus1]
ld e,a
ld d,0
ld c,6 ; height of the text box
@@ -647,11 +647,11 @@ TrainerInfo_DrawTextBox: ; 135a0 (4:75a0)
dec c
jr nz,.loop
ld a,$7d ; lower left corner tile ID
- ld de,$777e ; bottom edge and lower right corner tile ID's
+ lb de,$77, $7e ; bottom edge and lower right corner tile ID's
TrainerInfo_DrawHorizontalEdge: ; 135c3 (4:75c3)
ld [hli],a ; place left corner tile
- ld a,[wTrainerEngageDistance] ; width of the text box
+ ld a,[wTrainerInfoTextBoxWidth]
ld c,a
ld a,d
.loop
@@ -663,7 +663,7 @@ TrainerInfo_DrawHorizontalEdge: ; 135c3 (4:75c3)
ret
TrainerInfo_NextTextBoxRow: ; 135d0 (4:75d0)
- ld a,[wTrainerFacingDirection] ; distance to the start of the next row
+ ld a,[wTrainerInfoTextBoxNextRowOffset] ; distance to the start of the next row
.loop
inc hl
dec a
@@ -704,62 +704,65 @@ StartMenu_Option: ; 135f6 (4:75f6)
jp RedisplayStartMenu
SwitchPartyMon: ; 13613 (4:7613)
- call SwitchPartyMon_Stats
- ld a, [wWhichTrade] ; wWhichTrade
- call SwitchPartyMon_OAM
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
- call SwitchPartyMon_OAM
+ call SwitchPartyMon_InitVarOrSwapData ; swap data
+ ld a, [wSwappedMenuItem]
+ call SwitchPartyMon_ClearGfx
+ ld a, [wCurrentMenuItem]
+ call SwitchPartyMon_ClearGfx
jp RedrawPartyMenu_
-SwitchPartyMon_OAM: ; 13625 (4:7625)
+SwitchPartyMon_ClearGfx: ; 13625 (4:7625)
push af
- ld hl, wTileMap
- ld bc, $28
+ coord hl, 0, 0
+ ld bc, SCREEN_WIDTH * 2
call AddNTimes
- ld c, $28
- ld a, $7f
-.asm_13633
+ ld c, SCREEN_WIDTH * 2
+ ld a, " "
+.clearMonBGLoop ; clear the mon's row in the party menu
ld [hli], a
dec c
- jr nz, .asm_13633
+ jr nz, .clearMonBGLoop
pop af
ld hl, wOAMBuffer
ld bc, $10
call AddNTimes
ld de, $4
ld c, e
-.asm_13645
+.clearMonOAMLoop
ld [hl], $a0
add hl, de
dec c
- jr nz, .asm_13645
+ jr nz, .clearMonOAMLoop
call WaitForSoundToFinish
- ld a, (SFX_02_58 - SFX_Headers_02) / 3
+ ld a, SFX_SWAP
jp PlaySound
-SwitchPartyMon_Stats: ; 13653 (4:7653)
+SwitchPartyMon_InitVarOrSwapData: ; 13653 (4:7653)
+; This is used to initialise [wMenuItemToSwap] and to actually swap the data.
ld a, [wMenuItemToSwap]
- and a
- jr nz, .asm_13661
- ld a, [wWhichPokemon] ; wWhichPokemon
- inc a
+ and a ; has [wMenuItemToSwap] been initialised yet?
+ jr nz, .pickedMonsToSwap
+; If not, initialise [wMenuItemToSwap] so that it matches the current mon.
+ ld a, [wWhichPokemon]
+ inc a ; [wMenuItemToSwap] counts from 1
ld [wMenuItemToSwap], a
ret
-.asm_13661
+.pickedMonsToSwap
xor a
- ld [wd07d], a
+ ld [wPartyMenuTypeOrMessageID], a
ld a, [wMenuItemToSwap]
dec a
ld b, a
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
- ld [wWhichTrade], a ; wWhichTrade
- cp b
- jr nz, .asm_1367b
+ ld a, [wCurrentMenuItem]
+ ld [wSwappedMenuItem], a
+ cp b ; swapping a mon with itself?
+ jr nz, .swappingDifferentMons
+; can't swap a mon with itself
xor a
ld [wMenuItemToSwap], a
- ld [wd07d], a
+ ld [wPartyMenuTypeOrMessageID], a
ret
-.asm_1367b
+.swappingDifferentMons
ld a, b
ld [wMenuItemToSwap], a
push hl
@@ -767,85 +770,85 @@ SwitchPartyMon_Stats: ; 13653 (4:7653)
ld hl, wPartySpecies
ld d, h
ld e, l
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
add l
ld l, a
- jr nc, .asm_1368e
+ jr nc, .noCarry
inc h
-.asm_1368e
+.noCarry
ld a, [wMenuItemToSwap]
add e
ld e, a
- jr nc, .asm_13696
+ jr nc, .noCarry2
inc d
-.asm_13696
+.noCarry2
ld a, [hl]
- ld [H_DIVIDEND], a ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+ ld [hSwapTemp], a
ld a, [de]
ld [hl], a
- ld a, [H_DIVIDEND] ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+ ld a, [hSwapTemp]
ld [de], a
ld hl, wPartyMons
ld bc, wPartyMon2 - wPartyMon1
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
call AddNTimes
push hl
ld de, wSwitchPartyMonTempBuffer
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
call CopyData
ld hl, wPartyMons
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
ld a, [wMenuItemToSwap]
call AddNTimes
pop de
push hl
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
call CopyData
pop de
ld hl, wSwitchPartyMonTempBuffer
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
call CopyData
- ld hl, wPartyMonOT ; wd273
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld hl, wPartyMonOT
+ ld a, [wCurrentMenuItem]
call SkipFixedLengthTextEntries
push hl
ld de, wSwitchPartyMonTempBuffer
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
- ld hl, wPartyMonOT ; wd273
+ ld hl, wPartyMonOT
ld a, [wMenuItemToSwap]
call SkipFixedLengthTextEntries
pop de
push hl
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
pop de
ld hl, wSwitchPartyMonTempBuffer
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
- ld hl, wPartyMonNicks ; wPartyMonNicks
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld hl, wPartyMonNicks
+ ld a, [wCurrentMenuItem]
call SkipFixedLengthTextEntries
push hl
ld de, wSwitchPartyMonTempBuffer
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
- ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld hl, wPartyMonNicks
ld a, [wMenuItemToSwap]
call SkipFixedLengthTextEntries
pop de
push hl
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
pop de
ld hl, wSwitchPartyMonTempBuffer
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
ld a, [wMenuItemToSwap]
- ld [wWhichTrade], a ; wWhichTrade
+ ld [wSwappedMenuItem], a
xor a
ld [wMenuItemToSwap], a
- ld [wd07d], a
+ ld [wPartyMenuTypeOrMessageID], a
pop de
pop hl
ret
diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm
index b5254694..c91d5eda 100755
--- a/engine/menu/status_screen.asm
+++ b/engine/menu/status_screen.asm
@@ -50,12 +50,12 @@ DrawHP_: ; 128fb (4:68fb)
.printFraction
add hl, bc
ld de, wLoadedMonHP
- ld bc, $203
+ lb bc, 2, 3
call PrintNumber
ld a, "/"
ld [hli], a
ld de, wLoadedMonMaxHP
- ld bc, $203
+ lb bc, 2, 3
call PrintNumber
pop hl
pop de
@@ -65,9 +65,10 @@ DrawHP_: ; 128fb (4:68fb)
; Predef 0x37
StatusScreen: ; 12953 (4:6953)
call LoadMonData
- ld a, [wcc49]
- cp $2 ; 2 means we're in a PC box
- jr c, .DontRecalculate ; 0x1295b $14
+ ld a, [wMonDataLocation]
+ cp BOX_DATA
+ jr c, .DontRecalculate
+; mon is in a box or daycare
ld a, [wLoadedMonBoxLevel]
ld [wLoadedMonLevel], a
ld [W_CURENEMYLVL], a
@@ -79,95 +80,95 @@ StatusScreen: ; 12953 (4:6953)
ld hl, wd72c
set 1, [hl]
ld a, $33
- ld [$ff24], a ; Reduce the volume
+ ld [rNR50], a ; Reduce the volume
call GBPalWhiteOutWithDelay3
call ClearScreen
- call UpdateSprites ; move sprites (?)
+ call UpdateSprites
call LoadHpBarAndStatusTilePatterns
- ld de, BattleHudTiles1 ; $6080 ; source
+ ld de, BattleHudTiles1 ; source
ld hl, vChars2 + $6d0 ; dest
- ld bc, (BANK(BattleHudTiles1) << 8) + $03 ; bank bytes/8
+ lb bc, BANK(BattleHudTiles1), $03
call CopyVideoDataDouble ; ·│ :L and halfarrow line end
- ld de, BattleHudTiles2 ; $6098
+ ld de, BattleHudTiles2
ld hl, vChars2 + $780
- ld bc, (BANK(BattleHudTiles2) << 8) + $01
+ lb bc, BANK(BattleHudTiles2), $01
call CopyVideoDataDouble ; │
- ld de, BattleHudTiles3 ; $60b0
+ ld de, BattleHudTiles3
ld hl, vChars2 + $760
- ld bc, (BANK(BattleHudTiles3) << 8) + $02
+ lb bc, BANK(BattleHudTiles3), $02
call CopyVideoDataDouble ; ─┘
ld de, PTile
ld hl, vChars2 + $720
- ld bc,(BANK(PTile) << 8 | $01)
+ lb bc, BANK(PTile), (PTileEnd - PTile) / $8
call CopyVideoDataDouble ; P (for PP), inline
ld a, [hTilesetType]
push af
xor a
ld [hTilesetType], a
- hlCoord 19, 1
- ld bc, $060a
+ coord hl, 19, 1
+ lb bc, 6, 10
call DrawLineBox ; Draws the box around name, HP and status
- ld de, $fffa
+ ld de, -6
add hl, de
ld [hl], $f2 ; . after No ("." is a different one)
dec hl
ld [hl], "№"
- hlCoord 19, 9
- ld bc, $0806
+ coord hl, 19, 9
+ lb bc, 8, 6
call DrawLineBox ; Draws the box around types, ID No. and OT
- hlCoord 10, 9
+ coord hl, 10, 9
ld de, Type1Text
call PlaceString ; "TYPE1/"
- hlCoord 11, 3
+ coord hl, 11, 3
predef DrawHP
- ld hl, wcf25
+ ld hl, wStatusScreenHPBarColor
call GetHealthBarColor
- ld b, $3
- call GoPAL_SET ; SGB palette
- hlCoord 16, 6
+ ld b, SET_PAL_STATUS_SCREEN
+ call RunPaletteCommand
+ coord hl, 16, 6
ld de, wLoadedMonStatus
call PrintStatusCondition
- jr nz, .StatusWritten ; 0x129fc $9
- hlCoord 16, 6
+ jr nz, .StatusWritten
+ coord hl, 16, 6
ld de, OKText
call PlaceString ; "OK"
.StatusWritten
- hlCoord 9, 6
+ coord hl, 9, 6
ld de, StatusText
call PlaceString ; "STATUS/"
- hlCoord 14, 2
+ coord hl, 14, 2
call PrintLevel ; Pokémon level
- ld a, [W_MONHDEXNUM]
+ ld a, [W_MONHINDEX]
ld [wd11e], a
ld [wd0b5], a
predef IndexToPokedex
- hlCoord 3, 7
+ coord hl, 3, 7
ld de, wd11e
- ld bc, $8103 ; Zero-padded, 3
+ lb bc, LEADING_ZEROES | 1, 3
call PrintNumber ; Pokémon no.
- hlCoord 11, 10
+ coord hl, 11, 10
predef PrintMonType
- ld hl, NamePointers2 ; $6a9d
- call .unk_12a7e
+ ld hl, NamePointers2
+ call .GetStringPointer
ld d, h
ld e, l
- hlCoord 9, 1
+ coord hl, 9, 1
call PlaceString ; Pokémon name
- ld hl, OTPointers ; $6a95
- call .unk_12a7e
+ ld hl, OTPointers
+ call .GetStringPointer
ld d, h
ld e, l
- hlCoord 12, 16
+ coord hl, 12, 16
call PlaceString ; OT
- hlCoord 12, 14
+ coord hl, 12, 14
ld de, wLoadedMonOTID
- ld bc, $8205 ; 5
+ lb bc, LEADING_ZEROES | 2, 5
call PrintNumber ; ID Number
ld d, $0
call PrintStatsBox
call Delay3
call GBPalNormal
- hlCoord 1, 0
+ coord hl, 1, 0
call LoadFlippedFrontSpriteByMonIndex ; draw Pokémon picture
ld a, [wcf91]
call PlayCry ; play Pokémon cry
@@ -175,17 +176,18 @@ StatusScreen: ; 12953 (4:6953)
pop af
ld [hTilesetType], a
ret
-.unk_12a7e ; 0x12a7e ; I don't know what this does, iterates over pointers?
- ld a, [wcc49]
+
+.GetStringPointer
+ ld a, [wMonDataLocation]
add a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wcc49]
- cp $3
+ ld a, [wMonDataLocation]
+ cp DAYCARE_DATA
ret z
ld a, [wWhichPokemon]
jp SkipFixedLengthTextEntries
@@ -221,43 +223,44 @@ OKText: ; 12ac4 (4:6ac4)
db "OK@"
; Draws a line starting from hl high b and wide c
-DrawLineBox ; 0x12ac7
- ld de, $0014 ; New line
+DrawLineBox: ; 0x12ac7
+ ld de, SCREEN_WIDTH ; New line
.PrintVerticalLine
ld [hl], $78 ; │
add hl, de
dec b
- jr nz, .PrintVerticalLine ; 0x12ace $fa
+ jr nz, .PrintVerticalLine
ld [hl], $77 ; ┘
dec hl
.PrintHorizLine
ld [hl], $76 ; ─
dec hl
dec c
- jr nz, .PrintHorizLine ; 0x12ad7 $fa
+ jr nz, .PrintHorizLine
ld [hl], $6f ; ← (halfarrow ending)
ret
PTile: ; 12adc (4:6adc) ; This is a single 1bpp "P" tile
INCBIN "gfx/p_tile.1bpp"
+PTileEnd:
PrintStatsBox: ; 12ae4 (4:6ae4)
ld a, d
and a ; a is 0 from the status screen
- jr nz, .DifferentBox ; 0x12ae6 $12
- hlCoord 0, 8
+ jr nz, .DifferentBox
+ coord hl, 0, 8
ld b, $8
ld c, $8
call TextBoxBorder ; Draws the box
- hlCoord 1, 9 ; Start printing stats from here
+ coord hl, 1, 9 ; Start printing stats from here
ld bc, $0019 ; Number offset
- jr .PrintStats ; 0x12af8 $10
+ jr .PrintStats
.DifferentBox
- hlCoord 9, 2
+ coord hl, 9, 2
ld b, $8
ld c, $9
call TextBoxBorder
- hlCoord 11, 3
+ coord hl, 11, 3
ld bc, $0018
.PrintStats
push bc
@@ -268,7 +271,7 @@ PrintStatsBox: ; 12ae4 (4:6ae4)
pop bc
add hl, bc
ld de, wLoadedMonAttack
- ld bc, $0203 ; three digits
+ lb bc, 2, 3
call PrintStat
ld de, wLoadedMonDefense
call PrintStat
@@ -280,7 +283,7 @@ PrintStat
push hl
call PrintNumber
pop hl
- ld de, $0028
+ ld de, SCREEN_WIDTH * 2
add hl, de
ret
@@ -295,8 +298,8 @@ StatusScreen2: ; 12b57 (4:6b57)
push af
xor a
ld [hTilesetType], a
- ld [$ffba], a
- ld bc, $0005
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld bc, NUM_MOVES + 1
ld hl, wMoves
call FillMemory
ld hl, wLoadedMonMoves
@@ -304,42 +307,42 @@ StatusScreen2: ; 12b57 (4:6b57)
ld bc, NUM_MOVES
call CopyData
callab FormatMovesString
- hlCoord 9, 2
- ld bc, $050a
+ coord hl, 9, 2
+ lb bc, 5, 10
call ClearScreenArea ; Clear under name
- hlCoord 19, 3
+ coord hl, 19, 3
ld [hl], $78
- hlCoord 0, 8
- ld b, $8
- ld c, $12
+ coord hl, 0, 8
+ ld b, 8
+ ld c, 18
call TextBoxBorder ; Draw move container
- hlCoord 2, 9
+ coord hl, 2, 9
ld de, wMovesString
call PlaceString ; Print moves
- ld a, [wcd6c]
+ ld a, [wNumMovesMinusOne]
inc a
ld c, a
ld a, $4
sub c
ld b, a ; Number of moves ?
- hlCoord 11, 10
- ld de, $0028
- ld a, $72
- call Func_12ccb ; Print "PP"
+ coord hl, 11, 10
+ ld de, SCREEN_WIDTH * 2
+ ld a, $72 ; special P tile id
+ call StatusScreen_PrintPP ; Print "PP"
ld a, b
and a
- jr z, .InitPP ; 0x12bb3 $6
+ jr z, .InitPP
ld c, a
ld a, "-"
- call Func_12ccb ; Fill the rest with --
+ call StatusScreen_PrintPP ; Fill the rest with --
.InitPP ; 12bbb
ld hl, wLoadedMonMoves
- deCoord 14, 10
- ld b, $0
+ coord de, 14, 10
+ ld b, 0
.PrintPP ; 12bc3
ld a, [hli]
and a
- jr z, .PPDone ; 0x12bc5 $4a
+ jr z, .PPDone
push bc
push hl
push de
@@ -356,24 +359,24 @@ StatusScreen2: ; 12b57 (4:6b57)
pop de
pop hl
push hl
- ld bc, $0014
+ ld bc, wPartyMon1PP - wPartyMon1Moves - 1
add hl, bc
ld a, [hl]
and $3f
- ld [wcd71], a
+ ld [wStatusScreenCurrentPP], a
ld h, d
ld l, e
push hl
- ld de, wcd71
- ld bc, $0102
+ ld de, wStatusScreenCurrentPP
+ lb bc, 1, 2
call PrintNumber
ld a, "/"
ld [hli], a
- ld de, wd11e
- ld bc, $0102
+ ld de, wMaxPP
+ lb bc, 1, 2
call PrintNumber
pop hl
- ld de, $0028
+ ld de, SCREEN_WIDTH * 2
add hl, de
ld d, h
ld e, l
@@ -382,19 +385,19 @@ StatusScreen2: ; 12b57 (4:6b57)
inc b
ld a, b
cp $4
- jr nz, .PrintPP ; 0x12c0f $b2
+ jr nz, .PrintPP
.PPDone
- hlCoord 9, 3
- ld de, EXPPointsText
+ coord hl, 9, 3
+ ld de, StatusScreenExpText
call PlaceString
- ld a, [wLoadedMonLevel] ; level
+ ld a, [wLoadedMonLevel]
push af
cp MAX_LEVEL
- jr z, .Level100 ; 0x12c20 $4
+ jr z, .Level100
inc a
ld [wLoadedMonLevel], a ; Increase temporarily if not 100
.Level100
- hlCoord 14, 6
+ coord hl, 14, 6
ld [hl], $70 ; 1-tile "to"
inc hl
inc hl
@@ -402,25 +405,25 @@ StatusScreen2: ; 12b57 (4:6b57)
pop af
ld [wLoadedMonLevel], a
ld de, wLoadedMonExp
- hlCoord 12, 4
- ld bc, $0307
+ coord hl, 12, 4
+ lb bc, 3, 7
call PrintNumber ; exp
- call .asm_12c86
+ call CalcExpToLevelUp
ld de, wLoadedMonExp
- hlCoord 7, 6
- ld bc, $0307
- call PrintNumber
- hlCoord 9, 0
- call Func_12cc3
- hlCoord 9, 1
- call Func_12cc3
- ld a, [W_MONHDEXNUM]
+ coord hl, 7, 6
+ lb bc, 3, 7
+ call PrintNumber ; exp needed to level up
+ coord hl, 9, 0
+ call StatusScreen_ClearName
+ coord hl, 9, 1
+ call StatusScreen_ClearName
+ ld a, [W_MONHINDEX]
ld [wd11e], a
call GetMonName
- hlCoord 9, 1
+ coord hl, 9, 1
call PlaceString
ld a, $1
- ld [$ffba], a
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
call WaitForTextScrollButtonPress ; wait for button
pop af
@@ -428,28 +431,29 @@ StatusScreen2: ; 12b57 (4:6b57)
ld hl, wd72c
res 1, [hl]
ld a, $77
- ld [$ff24], a
+ ld [rNR50], a
call GBPalWhiteOut
jp ClearScreen
-.asm_12c86 ; This does some magic with lvl/exp?
- ld a, [wLoadedMonLevel] ; Load level
+
+CalcExpToLevelUp: ; 12c86 (4:6c86)
+ ld a, [wLoadedMonLevel]
cp MAX_LEVEL
- jr z, .asm_12ca7 ; 0x12c8b $1a ; If 100
+ jr z, .atMaxLevel
inc a
ld d, a
callab CalcExperience
ld hl, wLoadedMonExp + 2
- ld a, [$ff98]
+ ld a, [hExperience + 2]
sub [hl]
ld [hld], a
- ld a, [$ff97]
+ ld a, [hExperience + 1]
sbc [hl]
ld [hld], a
- ld a, [$ff96]
+ ld a, [hExperience]
sbc [hl]
ld [hld], a
ret
-.asm_12ca7
+.atMaxLevel
ld hl, wLoadedMonExp
xor a
ld [hli], a
@@ -457,21 +461,20 @@ StatusScreen2: ; 12b57 (4:6b57)
ld [hl], a
ret
-EXPPointsText: ; 12caf (4:6caf)
- db "EXP POINTS", $4e
-
-LevelUpText: ; 12cba (4:6cba)
- db "LEVEL UP@"
+StatusScreenExpText: ; 12caf (4:6caf)
+ db "EXP POINTS"
+ next "LEVEL UP@"
-Func_12cc3: ; 12cc3 (4:6cc3)
- ld bc, $a
- ld a, $7f
+StatusScreen_ClearName: ; 12cc3 (4:6cc3)
+ ld bc, 10
+ ld a, " "
jp FillMemory
-Func_12ccb: ; 12ccb (4:6ccb)
+StatusScreen_PrintPP: ; 12ccb (4:6ccb)
+; print PP or -- c times, going down two rows each time
ld [hli], a
ld [hld], a
add hl, de
dec c
- jr nz, Func_12ccb
+ jr nz, StatusScreen_PrintPP
ret
diff --git a/engine/menu/vending_machine.asm b/engine/menu/vending_machine.asm
index 88cfcf65..8460889f 100755
--- a/engine/menu/vending_machine.asm
+++ b/engine/menu/vending_machine.asm
@@ -7,65 +7,66 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, $3
+ ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
- ld a, $3
+ ld a, 3
ld [wMaxMenuItem], a
- ld a, $5
+ ld a, 5
ld [wTopMenuItemY], a
- ld a, $1
+ ld a, 1
ld [wTopMenuItemX], a
ld hl, wd730
set 6, [hl]
- hlCoord 0, 3
- ld b, $8
- ld c, $c
+ coord hl, 0, 3
+ ld b, 8
+ ld c, 12
call TextBoxBorder
call UpdateSprites
- hlCoord 2, 5
+ coord hl, 2, 5
ld de, DrinkText
call PlaceString
- hlCoord 9, 6
+ coord hl, 9, 6
ld de, DrinkPriceText
call PlaceString
ld hl, wd730
res 6, [hl]
call HandleMenuInput
- bit 1, a
- jr nz, .asm_74f93
+ bit 1, a ; pressed B?
+ jr nz, .notThirsty
ld a, [wCurrentMenuItem]
- cp $3
- jr z, .asm_74f93
+ cp 3 ; chose Cancel?
+ jr z, .notThirsty
xor a
- ld [$ff9f], a
- ld [$ffa1], a
+ ld [hMoney], a
+ ld [hMoney + 2], a
ld a, $2
- ld [$ffa0], a
+ ld [hMoney + 1], a
call HasEnoughMoney
jr nc, .enoughMoney
ld hl, VendingMachineText4
jp PrintText
.enoughMoney
- call Func_74fe7
- ld a, [$ffdb]
+ call LoadVendingMachineItem
+ ld a, [hVendingMachineItem]
ld b, a
ld c, 1
call GiveItem
jr nc, .BagFull
- ld b, $3c ; number of times to play the "brrrrr" sound
-.playDeliverySound ; 0x74f63
- ld c, $2
+
+ ld b, 60 ; number of times to play the "brrrrr" sound
+.playDeliverySound
+ ld c, 2
call DelayFrames
push bc
- ld a, (SFX_02_53 - SFX_Headers_02) / 3
+ ld a, SFX_PUSH_BOULDER
call PlaySound
pop bc
dec b
jr nz, .playDeliverySound
-.asm_74f72
+
ld hl, VendingMachineText5
call PrintText
- ld hl, $ffde
+ ld hl, hVendingMachinePrice + 2
ld de, wPlayerMoney + 2
ld c, $3
predef SubBCDPredef
@@ -75,7 +76,7 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
.BagFull
ld hl, VendingMachineText6
jp PrintText
-.asm_74f93
+.notThirsty
ld hl, VendingMachineText7
jp PrintText
@@ -110,22 +111,22 @@ VendingMachineText7: ; 74fe2 (1d:4fe2)
TX_FAR _VendingMachineText7
db "@"
-Func_74fe7: ; 74fe7 (1d:4fe7)
+LoadVendingMachineItem: ; 74fe7 (1d:4fe7)
ld hl, VendingPrices
ld a, [wCurrentMenuItem]
add a
add a
- ld d, $0
+ ld d, 0
ld e, a
add hl, de
ld a, [hli]
- ld [$ffdb], a
+ ld [hVendingMachineItem], a
ld a, [hli]
- ld [$ffdc], a
+ ld [hVendingMachinePrice], a
ld a, [hli]
- ld [$ffdd], a
+ ld [hVendingMachinePrice + 1], a
ld a, [hl]
- ld [$ffde], a
+ ld [hVendingMachinePrice + 2], a
ret
VendingPrices: ; 75000 (1d:5000)
diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm
index e3323cfc..185151cb 100755
--- a/engine/mon_party_sprites.asm
+++ b/engine/mon_party_sprites.asm
@@ -5,15 +5,15 @@ AnimatePartyMon_ForceSpeed1: ; 716f7 (1c:56f7)
inc a
jr GetAnimationSpeed
-; wcf1f contains the party mon's health bar colors
+; wPartyMenuHPBarColors contains the party mon's health bar colors
; 0: green
; 1: yellow
; 2: red
AnimatePartyMon: ; 716ff (1c:56ff)
- ld hl, wcf1f
+ ld hl, wPartyMenuHPBarColors
ld a, [wCurrentMenuItem]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hl]
@@ -27,7 +27,7 @@ GetAnimationSpeed: ; 7170a (1c:570a)
ld c, a
add a
ld b, a
- ld a, [wPartyMonAnimCounter]
+ ld a, [wAnimCounter]
and a
jr z, .resetSprites
cp c
@@ -38,11 +38,11 @@ GetAnimationSpeed: ; 7170a (1c:570a)
jr nz, .skipResetTimer
xor a ; reset timer
.skipResetTimer
- ld [wPartyMonAnimCounter], a
+ ld [wAnimCounter], a
jp DelayFrame
.resetSprites
push bc
- ld hl, wcc5b
+ ld hl, wMonPartySpritesSavedOAM
ld de, wOAMBuffer
ld bc, $60
call CopyData
@@ -86,7 +86,7 @@ GetAnimationSpeed: ; 7170a (1c:570a)
; that each frame lasts for green HP, yellow HP, and red HP in order.
; On the naming screen, the yellow HP speed is always used.
PartyMonSpeeds: ; 71769 (1c:5769)
- db $05,$10,$20
+ db 5, 16, 32
LoadMonPartySpriteGfx: ; 7176c (1c:576c)
; Load mon party sprite tile patterns into VRAM during V-blank.
@@ -315,7 +315,7 @@ WriteMonPartySpriteOAMByPartyIndex: ; 71868 (1c:5868)
add hl, de
ld a, [hl]
call GetPartyMonSpriteID
- ld [wcd5b], a
+ ld [wOAMBaseTile], a
call WriteMonPartySpriteOAM
pop bc
pop de
@@ -329,7 +329,7 @@ WriteMonPartySpriteOAMBySpecies: ; 71882 (1c:5882)
ld [hPartyMonIndex], a
ld a, [wMonPartySpriteSpecies]
call GetPartyMonSpriteID
- ld [wcd5b], a
+ ld [wOAMBaseTile], a
jr WriteMonPartySpriteOAM
UnusedPartyMonSpriteFunction: ; 71890 (1c:5890)
@@ -372,7 +372,7 @@ UnusedPartyMonSpriteFunction: ; 71890 (1c:5890)
WriteMonPartySpriteOAM: ; 718c3 (1c:58c3)
; Write the OAM blocks for the first animation frame into the OAM buffer and
-; make a copy at wcc5b.
+; make a copy at wMonPartySpritesSavedOAM.
push af
ld c, $10
ld h, wOAMBuffer / $100
@@ -392,7 +392,7 @@ WriteMonPartySpriteOAM: ; 718c3 (1c:58c3)
; we can flip back to it from the second frame by copying it back.
.makeCopy
ld hl, wOAMBuffer
- ld de, wcc5b
+ ld de, wMonPartySpritesSavedOAM
ld bc, $60
jp CopyData
diff --git a/engine/multiply_divide.asm b/engine/multiply_divide.asm
index 6ff427c6..7cb381b4 100755
--- a/engine/multiply_divide.asm
+++ b/engine/multiply_divide.asm
@@ -58,6 +58,10 @@ _Multiply: ; f660e (3d:660e)
ld [H_PRODUCT+1], a ; $ff96
ld a, [H_MULTIPLYBUFFER]
ld [H_PRODUCT], a ; $ff95
+ ld a, [H_MULTIPLYBUFFER+1]
+ ld [H_PRODUCT+1], a
+ ld a, [H_MULTIPLYBUFFER]
+ ld [H_PRODUCT], a
ret
_Divide: ; f6672 (3d:6672)
diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm
index 0cbdaa3d..0de7ffad 100755
--- a/engine/oak_speech.asm
+++ b/engine/oak_speech.asm
@@ -1,11 +1,11 @@
SetDefaultNames: ; 60ca (1:60ca)
- ld a, [wd358]
+ ld a, [wLetterPrintingDelayFlags]
push af
- ld a, [W_OPTIONS] ; W_OPTIONS
+ ld a, [W_OPTIONS]
push af
ld a, [wd732]
push af
- ld hl, wPlayerName ; wd158
+ ld hl, wPlayerName
ld bc, $d8a
xor a
call FillMemory
@@ -16,28 +16,28 @@ SetDefaultNames: ; 60ca (1:60ca)
pop af
ld [wd732], a
pop af
- ld [W_OPTIONS], a ; W_OPTIONS
+ ld [W_OPTIONS], a
pop af
- ld [wd358], a
- ld a, [wd08a]
+ ld [wLetterPrintingDelayFlags], a
+ ld a, [wOptionsInitialized]
and a
- call z, Func_5bff
+ call z, InitOptions
ld hl, NintenText
- ld de, wPlayerName ; wd158
- ld bc, $b
+ ld de, wPlayerName
+ ld bc, NAME_LENGTH
call CopyData
ld hl, SonyText
- ld de, W_RIVALNAME ; wd34a
- ld bc, $b
+ ld de, W_RIVALNAME
+ ld bc, NAME_LENGTH
jp CopyData
OakSpeech: ; 6115 (1:6115)
ld a,$FF
call PlaySound ; stop music
- ld a, BANK(Music_Routes2) ; bank of song
+ ld a, BANK(Music_Routes2)
ld c,a
- ld a, MUSIC_ROUTES2 ; song #
- call PlayMusic ; plays music
+ ld a, MUSIC_ROUTES2
+ call PlayMusic
call ClearScreen
call LoadTextBoxTilePatterns
call SetDefaultNames
@@ -46,7 +46,7 @@ OakSpeech: ; 6115 (1:6115)
ld a,POTION
ld [wcf91],a
ld a,1
- ld [wcf96],a
+ ld [wItemQuantity],a
call AddItemToInventory ; give one potion
ld a,[W_ANIMATIONID]
ld [wDestinationMap],a
@@ -54,50 +54,49 @@ OakSpeech: ; 6115 (1:6115)
xor a
ld [hTilesetType],a
ld a,[wd732]
- bit 1,a ; XXX when is bit 1 set?
- jp nz,Func_61bc ; easter egg: skip the intro
+ bit 1,a ; possibly a debug mode bit
+ jp nz,.skipChoosingNames
ld de,ProfOakPic
- ld bc, (Bank(ProfOakPic) << 8) | $00
- call IntroPredef3B ; displays Oak pic?
+ lb bc, Bank(ProfOakPic), $00
+ call IntroDisplayPicCenteredOrUpperRight
call FadeInIntroPic
ld hl,OakSpeechText1
- call PrintText ; prints text box
+ call PrintText
call GBFadeOutToWhite
call ClearScreen
ld a,NIDORINO
- ld [wd0b5],a ; pic displayed is stored at this location
+ ld [wd0b5],a
ld [wcf91],a
- call GetMonHeader ; this is also related to the pic
- hlCoord 6, 4 ; position on tilemap the pic is displayed
- call LoadFlippedFrontSpriteByMonIndex ; displays pic?
+ call GetMonHeader
+ coord hl, 6, 4
+ call LoadFlippedFrontSpriteByMonIndex
call MovePicLeft
ld hl,OakSpeechText2
- call PrintText ; Prints text box
+ call PrintText
call GBFadeOutToWhite
call ClearScreen
ld de,RedPicFront
- ld bc,(Bank(RedPicFront) << 8) | $00
- call IntroPredef3B ; displays player pic?
+ lb bc, Bank(RedPicFront), $00
+ call IntroDisplayPicCenteredOrUpperRight
call MovePicLeft
ld hl,IntroducePlayerText
call PrintText
- call LoadDefaultNamesPlayer ; brings up NewName/Red/etc menu
+ call ChoosePlayerName
call GBFadeOutToWhite
call ClearScreen
ld de,Rival1Pic
- ld bc,(Bank(Rival1Pic) << 8) | $00
- call IntroPredef3B ; displays rival pic
+ lb bc, Bank(Rival1Pic), $00
+ call IntroDisplayPicCenteredOrUpperRight
call FadeInIntroPic
ld hl,IntroduceRivalText
call PrintText
- call LoadDefaultNamesRival
-
-Func_61bc: ; 61bc (1:61bc)
+ call ChooseRivalName
+.skipChoosingNames
call GBFadeOutToWhite
call ClearScreen
ld de,RedPicFront
- ld bc,(Bank(RedPicFront) << 8) | $00
- call IntroPredef3B
+ lb bc, Bank(RedPicFront), $00
+ call IntroDisplayPicCenteredOrUpperRight
call GBFadeInFromWhite
ld a,[wd72d]
and a
@@ -107,49 +106,49 @@ Func_61bc: ; 61bc (1:61bc)
.next
ld a,[H_LOADEDROMBANK]
push af
- ld a,(SFX_02_48 - SFX_Headers_02) / 3
+ ld a,SFX_SHRINK
call PlaySound
pop af
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
ld c,4
call DelayFrames
- ld de,RedSprite ; $4180
+ ld de,RedSprite
ld hl,vSprites
- ld bc,(BANK(RedSprite) << 8) | $0C
+ lb bc, BANK(RedSprite), $0C
call CopyVideoData
ld de,ShrinkPic1
- ld bc,(BANK(ShrinkPic1) << 8) | $00
- call IntroPredef3B
+ lb bc, BANK(ShrinkPic1), $00
+ call IntroDisplayPicCenteredOrUpperRight
ld c,4
call DelayFrames
ld de,ShrinkPic2
- ld bc,(BANK(ShrinkPic2) << 8) | $00
- call IntroPredef3B
+ lb bc, BANK(ShrinkPic2), $00
+ call IntroDisplayPicCenteredOrUpperRight
call ResetPlayerSpriteData
ld a,[H_LOADEDROMBANK]
push af
ld a, BANK(Music_PalletTown)
- ld [wc0ef],a
- ld [wc0f0],a
- ld a,$A
- ld [wMusicHeaderPointer],a
+ ld [wAudioROMBank],a
+ ld [wAudioSavedROMBank],a
+ ld a, 10
+ ld [wAudioFadeOutControl],a
ld a,$FF
- ld [wc0ee],a
+ ld [wNewSoundID],a
call PlaySound ; stop music
pop af
ld [H_LOADEDROMBANK],a
- ld [$2000],a
- ld c,$14
+ ld [MBC1RomBank],a
+ ld c,20
call DelayFrames
- hlCoord 6, 5
+ coord hl, 6, 5
ld b,7
ld c,7
call ClearScreenArea
call LoadTextBoxTilePatterns
ld a,1
ld [wUpdateSpritesEnabled],a
- ld c,$32
+ ld c,50
call DelayFrames
call GBFadeOutToWhite
jp ClearScreen
@@ -193,24 +192,26 @@ IntroFadePalettes: ; 6282 (1:6282)
MovePicLeft: ; 6288 (1:6288)
ld a,119
- ld [$FF4B],a
+ ld [rWX],a
call DelayFrame
ld a,$E4
ld [rBGP],a
.next
call DelayFrame
- ld a,[$FF4B]
+ ld a,[rWX]
sub 8
cp $FF
ret z
- ld [$FF4B],a
+ ld [rWX],a
jr .next
-Predef3B: ; 62a1 (1:62a1)
+DisplayPicCenteredOrUpperRight: ; 62a1 (1:62a1)
call GetPredefRegisters
-IntroPredef3B: ; 62a4 (1:62a4)
-; bank of sprite given in b
+IntroDisplayPicCenteredOrUpperRight: ; 62a4 (1:62a4)
+; b = bank
+; de = address of compressed pic
+; c: 0 = centred, non-zero = upper-right
push bc
ld a,b
call UncompressSpriteFromDE
@@ -223,10 +224,10 @@ IntroPredef3B: ; 62a4 (1:62a4)
pop bc
ld a,c
and a
- hlCoord 15, 1
+ coord hl, 15, 1
jr nz,.next
- hlCoord 6, 4
+ coord hl, 6, 4
.next
xor a
- ld [$FFE1],a
- predef_jump Func_3f0c6
+ ld [hStartTileID],a
+ predef_jump CopyUncompressedPicToTilemap
diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm
index 16a97377..c0349d2e 100755
--- a/engine/oak_speech2.asm
+++ b/engine/oak_speech2.asm
@@ -1,29 +1,29 @@
-LoadDefaultNamesPlayer: ; 695d (1:695d)
- call Func_6a12
- ld de, DefaultNamesPlayer ; $6aa8
+ChoosePlayerName: ; 695d (1:695d)
+ call OakSpeechSlidePicRight
+ ld de, DefaultNamesPlayer
call DisplayIntroNameTextBox
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
- jr z, .asm_697a
- ld hl, DefaultNamesPlayerList ; $6af2
- call Func_6ad6
- ld de, wPlayerName ; wd158
- call Func_69ec
- jr .asm_6999
-.asm_697a
- ld hl, wPlayerName ; wd158
- xor a
- ld [wd07d], a
+ jr z, .customName
+ ld hl, DefaultNamesPlayerList
+ call GetDefaultName
+ ld de, wPlayerName
+ call OakSpeechSlidePicLeft
+ jr .done
+.customName
+ ld hl, wPlayerName
+ xor a ; NAME_PLAYER_SCREEN
+ ld [wNamingScreenType], a
call DisplayNamingScreen
ld a, [wcf4b]
- cp $50
- jr z, .asm_697a
+ cp "@"
+ jr z, .customName
call ClearScreen
call Delay3
- ld de, RedPicFront ; $6ede
+ ld de, RedPicFront
ld b, BANK(RedPicFront)
- call IntroPredef3B
-.asm_6999
+ call IntroDisplayPicCenteredOrUpperRight
+.done
ld hl, YourNameIsText
jp PrintText
@@ -31,32 +31,32 @@ YourNameIsText: ; 699f (1:699f)
TX_FAR _YourNameIsText
db "@"
-LoadDefaultNamesRival: ; 69a4 (1:69a4)
- call Func_6a12 ; 0x69a4 call 0x6a12
+ChooseRivalName: ; 69a4 (1:69a4)
+ call OakSpeechSlidePicRight
ld de, DefaultNamesRival
call DisplayIntroNameTextBox
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
- jr z, .asm_69c1
+ jr z, .customName
ld hl, DefaultNamesRivalList
- call Func_6ad6
- ld de, W_RIVALNAME ; wd34a
- call Func_69ec
- jr .asm_69e1
-.asm_69c1
- ld hl, W_RIVALNAME ; wd34a
- ld a, $1
- ld [wd07d], a
+ call GetDefaultName
+ ld de, W_RIVALNAME
+ call OakSpeechSlidePicLeft
+ jr .done
+.customName
+ ld hl, W_RIVALNAME
+ ld a, NAME_RIVAL_SCREEN
+ ld [wNamingScreenType], a
call DisplayNamingScreen
ld a, [wcf4b]
- cp $50
- jr z, .asm_69c1
+ cp "@"
+ jr z, .customName
call ClearScreen
call Delay3
- ld de, Rival1Pic ; $6049
+ ld de, Rival1Pic
ld b, $13
- call IntroPredef3B
-.asm_69e1
+ call IntroDisplayPicCenteredOrUpperRight
+.done
ld hl, HisNameIsText
jp PrintText
@@ -64,90 +64,96 @@ HisNameIsText: ; 69e7 (1:69e7)
TX_FAR _HisNameIsText
db "@"
-Func_69ec: ; 69ec (1:69ec)
+OakSpeechSlidePicLeft: ; 69ec (1:69ec)
push de
- ld hl, wTileMap
- ld bc, $c0b
- call ClearScreenArea
- ld c, $a
+ coord hl, 0, 0
+ lb bc, 12, 11
+ call ClearScreenArea ; clear the name list text box
+ ld c, 10
call DelayFrames
pop de
ld hl, wcd6d
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
call Delay3
- hlCoord 12, 4
- ld de, $67d
+ coord hl, 12, 4
+ lb de, 6, 6 * SCREEN_WIDTH + 5
ld a, $ff
- jr asm_6a19
+ jr OakSpeechSlidePicCommon
-Func_6a12: ; 6a12 (1:6a12)
- hlCoord 5, 4
- ld de, $67d
+OakSpeechSlidePicRight: ; 6a12 (1:6a12)
+ coord hl, 5, 4
+ lb de, 6, 6 * SCREEN_WIDTH + 5
xor a
-asm_6a19: ; 6a19 (1:6a19)
+
+OakSpeechSlidePicCommon: ; 6a19 (1:6a19)
push hl
push de
push bc
- ld [$ff8d], a
+ ld [hSlideDirection], a
ld a, d
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+ ld [hSlideAmount], a
ld a, e
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSlidingRegionSize], a
ld c, a
- ld a, [$ff8d]
+ ld a, [hSlideDirection]
and a
- jr nz, .asm_6a2d
- ld d, $0
+ jr nz, .next
+; If sliding right, point hl to the end of the pic's tiles.
+ ld d, 0
add hl, de
-.asm_6a2d
+.next
ld d, h
ld e, l
-.asm_6a2f
+.loop
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [$ff8d]
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, [hSlideDirection]
and a
- jr nz, .asm_6a3c
+ jr nz, .slideLeft
+; sliding right
ld a, [hli]
ld [hld], a
dec hl
- jr .asm_6a3f
-.asm_6a3c
+ jr .next2
+.slideLeft
ld a, [hld]
ld [hli], a
inc hl
-.asm_6a3f
+.next2
dec c
- jr nz, .asm_6a2f
- ld a, [$ff8d]
+ jr nz, .loop
+ ld a, [hSlideDirection]
and a
- jr z, .asm_6a4a
+ jr z, .next3
+; If sliding left, we need to zero the last tile in the pic (there is no need
+; to take a corresponding action when sliding right because hl initially points
+; to a 0 tile in that case).
xor a
dec hl
ld [hl], a
-.asm_6a4a
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+.next3
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld a, [hSlidingRegionSize]
ld c, a
ld h, d
ld l, e
- ld a, [$ff8d]
+ ld a, [hSlideDirection]
and a
- jr nz, .asm_6a5e
+ jr nz, .slideLeft2
inc hl
- jr .asm_6a5f
-.asm_6a5e
+ jr .next4
+.slideLeft2
dec hl
-.asm_6a5f
+.next4
ld d, h
ld e, l
- ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
+ ld a, [hSlideAmount]
dec a
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
- jr nz, .asm_6a2f
+ ld [hSlideAmount], a
+ jr nz, .loop
pop bc
pop de
pop hl
@@ -155,27 +161,27 @@ asm_6a19: ; 6a19 (1:6a19)
DisplayIntroNameTextBox: ; 6a6c (1:6a6c)
push de
- ld hl, wTileMap
+ coord hl, 0, 0
ld b, $a
ld c, $9
call TextBoxBorder
- hlCoord 3, 0
- ld de, .namestring ; $6aa3
+ coord hl, 3, 0
+ ld de, .namestring
call PlaceString
pop de
- hlCoord 2, 2
+ coord hl, 2, 2
call PlaceString
call UpdateSprites
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld [wLastMenuItem], a ; wLastMenuItem
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
inc a
- ld [wTopMenuItemX], a ; wTopMenuItemX
- ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+ ld [wTopMenuItemX], a
+ ld [wMenuWatchedKeys], a ; A_BUTTON
inc a
- ld [wTopMenuItemY], a ; wTopMenuItemY
+ ld [wTopMenuItemY], a
inc a
- ld [wMaxMenuItem], a ; wMaxMenuItem
+ ld [wMaxMenuItem], a
jp HandleMenuInput
.namestring ; 6aa3 (1:6aa3)
@@ -195,27 +201,30 @@ DefaultNamesRival:
next "JOHN"
db "@"
-Func_6ad6: ; 6ad6 (1:6ad6)
+GetDefaultName: ; 6ad6 (1:6ad6)
+; a = name index
+; hl = name list
ld b, a
- ld c, $0
-.asm_6ad9
+ ld c, 0
+.loop
ld d, h
ld e, l
-.asm_6adb
+.innerLoop
ld a, [hli]
- cp $50
- jr nz, .asm_6adb
+ cp "@"
+ jr nz, .innerLoop
ld a, b
cp c
- jr z, .asm_6ae7
+ jr z, .foundName
inc c
- jr .asm_6ad9
-.asm_6ae7
+ jr .loop
+.foundName
ld h, d
ld l, e
ld de, wcd6d
ld bc, $14
jp CopyData
+
DefaultNamesPlayerList:
db "NEW NAME@YELLOW@ASH@JACK@"
DefaultNamesRivalList:
diff --git a/engine/oam_dma.asm b/engine/oam_dma.asm
index 3de4d773..7326445e 100644
--- a/engine/oam_dma.asm
+++ b/engine/oam_dma.asm
@@ -15,11 +15,12 @@ WriteDMACodeToHRAM:
DMARoutine:
; initiate DMA
ld a, wOAMBuffer / $100
- ld [$ff46], a
+ ld [rDMA], a
; wait for DMA to finish
ld a, $28
-.wait dec a
+.wait
+ dec a
jr nz, .wait
ret
DMARoutineEnd:
diff --git a/engine/overworld/cable_club_npc.asm b/engine/overworld/cable_club_npc.asm
index bdab41a6..a2feba06 100755
--- a/engine/overworld/cable_club_npc.asm
+++ b/engine/overworld/cable_club_npc.asm
@@ -1,15 +1,14 @@
CableClubNPC: ; 71c5 (1:71c5)
ld hl, CableClubNPCWelcomeText
call PrintText
- ld a, [wd74b]
- bit 5, a ; received pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
jp nz, .receivedPokedex
; if the player hasn't received the pokedex
- ld c, $3c
+ ld c, 60
call DelayFrames
ld hl, CableClubNPCMakingPreparationsText
call PrintText
- jp Func_7298
+ jp .didNotConnect
.receivedPokedex
ld a, $1
ld [wMenuJoypadPollCount], a
@@ -57,7 +56,7 @@ CableClubNPC: ; 71c5 (1:71c5)
jr nz, .choseNo
callab SaveSAVtoSRAM
call WaitForSoundToFinish
- ld a, (SFX_02_5d - SFX_Headers_02) / 3
+ ld a, SFX_SAVE
call PlaySoundWaitForCurrent
ld hl, CableClubNPCPleaseWaitText
call PrintText
@@ -72,31 +71,29 @@ CableClubNPC: ; 71c5 (1:71c5)
ld hl, wUnknownSerialCounter
ld a, [hli]
inc a
- jr nz, Func_72a8 ; 0x726b $3b
+ jr nz, .connected
ld a, [hl]
inc a
- jr nz, Func_72a8 ; 0x726f $37
- ld b, $a
-.asm_7273
+ jr nz, .connected
+ ld b, 10
+.syncLoop
call DelayFrame
call Serial_SendZeroByte
dec b
- jr nz, .asm_7273 ; 0x727a $f7
+ jr nz, .syncLoop
call CloseLinkConnection
ld hl, CableClubNPCLinkClosedBecauseOfInactivityText
call PrintText
- jr Func_7298 ; 0x7285 $11
+ jr .didNotConnect
.failedToEstablishConnection
ld hl, CableClubNPCAreaReservedFor2FriendsLinkedByCableText
call PrintText
- jr Func_7298 ; 0x728d $9
+ jr .didNotConnect
.choseNo
call CloseLinkConnection
ld hl, CableClubNPCPleaseComeAgainText
call PrintText
- ; fall through
-
-Func_7298: ; 7298 (1:7298)
+.didNotConnect
xor a
ld hl, wUnknownSerialCounter
ld [hli], a
@@ -106,14 +103,11 @@ Func_7298: ; 7298 (1:7298)
xor a
ld [wMenuJoypadPollCount], a
ret
-
-Func_72a8: ; 72a8 (1:72a8)
+.connected
xor a
ld [hld], a
ld [hl], a
- ld hl, LinkMenu
- ld b, BANK(LinkMenu)
- jp Bankswitch
+ jpab LinkMenu
CableClubNPCAreaReservedFor2FriendsLinkedByCableText: ; 72b3 (1:72b3)
TX_FAR _CableClubNPCAreaReservedFor2FriendsLinkedByCableText
diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm
index c4df0d51..cc9fe3a7 100755
--- a/engine/overworld/card_key.asm
+++ b/engine/overworld/card_key.asm
@@ -27,8 +27,8 @@ PrintCardKeyText: ; 52673 (14:6673)
jr z, .noCardKey
call GetCoordsInFrontOfPlayer
push de
- ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a
+ tx_pre_id CardKeySuccessText
+ ld [hSpriteIndexOrTextID], a
call PrintPredefTextID
pop de
srl d
@@ -47,15 +47,15 @@ PrintCardKeyText: ; 52673 (14:6673)
.notSilphCo11F
ld a, $e
.replaceCardKeyDoorTileBlock
- ld [wd09f], a
+ ld [wNewTileBlockID], a
predef ReplaceTileBlock
ld hl, wd126
set 5, [hl]
- ld a, (SFX_1f_57 - SFX_Headers_1f) / 3
+ ld a, SFX_GO_INSIDE
jp PlaySound
.noCardKey
- ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a
+ tx_pre_id CardKeyFailText
+ ld [hSpriteIndexOrTextID], a
jp PrintPredefTextID
SilphCoMapList: ; 526e3 (14:66e3)
diff --git a/engine/overworld/cinnabar_lab.asm b/engine/overworld/cinnabar_lab.asm
index eefa2176..f81324e0 100755
--- a/engine/overworld/cinnabar_lab.asm
+++ b/engine/overworld/cinnabar_lab.asm
@@ -2,36 +2,36 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
ld hl, wd730
set 6, [hl]
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld a, $3
- ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
- ld a, [wcd37]
+ ld [wCurrentMenuItem], a
+ ld a, A_BUTTON | B_BUTTON
+ ld [wMenuWatchedKeys], a
+ ld a, [wFilteredBagItemsCount]
dec a
- ld [wMaxMenuItem], a ; wMaxMenuItem
- ld a, $2
- ld [wTopMenuItemY], a ; wTopMenuItemY
- ld a, $1
- ld [wTopMenuItemX], a ; wTopMenuItemX
- ld a, [wcd37]
+ ld [wMaxMenuItem], a
+ ld a, 2
+ ld [wTopMenuItemY], a
+ ld a, 1
+ ld [wTopMenuItemX], a
+ ld a, [wFilteredBagItemsCount]
dec a
- ld bc, $2
- ld hl, $3
+ ld bc, 2
+ ld hl, 3
call AddNTimes
dec l
ld b, l
ld c, $d
- ld hl, wTileMap
+ coord hl, 0, 0
call TextBoxBorder
call UpdateSprites
- call Func_610c2
+ call PrintFossilsInBag
ld hl, wd730
res 6, [hl]
call HandleMenuInput
- bit 1, a
- jr nz, .asm_610a7
- ld hl, wcc5b
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
- ld d, $0
+ bit 1, a ; pressed B?
+ jr nz, .cancelledGivingFossil
+ ld hl, wFilteredBagItems
+ ld a, [wCurrentMenuItem]
+ ld d, 0
ld e, a
add hl, de
ld a, [hl]
@@ -55,21 +55,19 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006)
ld hl, LabFossil_610ae
call PrintText
call YesNoChoice
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+ ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_610a7
+ jr nz, .cancelledGivingFossil
ld hl, LabFossil_610b3
call PrintText
ld a, [W_FOSSILITEM]
- ld [$ffdb], a
+ ld [hItemToRemoveID], a
callba RemoveItemByID
ld hl, LabFossil_610b8
call PrintText
- ld hl, wd7a3
- set 0, [hl]
- set 1, [hl]
+ SetEvents EVENT_GAVE_FOSSIL_TO_LAB, EVENT_LAB_STILL_REVIVING_FOSSIL
ret
-.asm_610a7
+.cancelledGivingFossil
ld hl, LabFossil_610bd
call PrintText
ret
@@ -90,27 +88,28 @@ LabFossil_610bd: ; 610bd (18:50bd)
TX_FAR _Lab4Text_610bd
db "@"
-Func_610c2: ; 610c2 (18:50c2)
- ld hl, wcc5b
+PrintFossilsInBag: ; 610c2 (18:50c2)
+; Prints each fossil in the player's bag on a separate line in the menu.
+ ld hl, wFilteredBagItems
xor a
- ld [$ffdb], a
-.asm_610c8
+ ld [hItemCounter], a
+.loop
ld a, [hli]
cp $ff
ret z
push hl
ld [wd11e], a
call GetItemName
- hlCoord 2, 2
- ld a, [$ffdb]
- ld bc, $28
+ coord hl, 2, 2
+ ld a, [hItemCounter]
+ ld bc, SCREEN_WIDTH * 2
call AddNTimes
ld de, wcd6d
call PlaceString
- ld hl, $ffdb
+ ld hl, hItemCounter
inc [hl]
pop hl
- jr .asm_610c8
+ jr .loop
; loads the names of the fossil item and the resulting mon
LoadFossilItemAndMonName: ; 610eb (18:50eb)
diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm
index 7b92bca3..30aedbc1 100755
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -1,43 +1,43 @@
UsedCut: ; ef54 (3:6f54)
xor a
- ld [wcd6a], a
- ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
+ ld [wActionResultOrTookBattleTurn], a ; initialise to failure value
+ ld a, [W_CURMAPTILESET]
and a ; OVERWORLD
- jr z, .asm_ef6b
+ jr z, .overworld
cp GYM
- jr nz, .asm_ef77
+ jr nz, .nothingToCut
ld a, [wTileInFrontOfPlayer]
cp $50 ; gym cut tree
- jr nz, .asm_ef77
- jr asm_ef82
-.asm_ef6b
+ jr nz, .nothingToCut
+ jr .canCut
+.overworld
dec a
ld a, [wTileInFrontOfPlayer]
cp $3d ; cut tree
- jr z, asm_ef82
+ jr z, .canCut
cp $52 ; grass
- jr z, asm_ef82
-.asm_ef77
- ld hl, NothingToCutText
+ jr z, .canCut
+.nothingToCut
+ ld hl, .NothingToCutText
jp PrintText
-NothingToCutText: ; ef7d (3:6f7d)
+.NothingToCutText
TX_FAR _NothingToCutText
db "@"
-asm_ef82: ; ef82 (3:6f82)
- ld [wcd4d], a
- ld a, $1
- ld [wcd6a], a
- ld a, [wWhichPokemon] ; wWhichPokemon
- ld hl, wPartyMonNicks ; wPartyMonNicks
+.canCut
+ ld [wCutTile], a
+ ld a, 1
+ ld [wActionResultOrTookBattleTurn], a ; used cut
+ ld a, [wWhichPokemon]
+ ld hl, wPartyMonNicks
call GetPartyMonName
ld hl, wd730
set 6, [hl]
call GBPalWhiteOutWithDelay3
call ClearSprites
call RestoreScreenTilesAndReloadTilePatterns
- ld a, $90
+ ld a, SCREEN_HEIGHT_PIXELS
ld [hWY], a
call Delay3
call LoadGBPal
@@ -53,14 +53,14 @@ asm_ef82: ; ef82 (3:6f82)
res 6, [hl]
ld a, $ff
ld [wUpdateSpritesEnabled], a
- call AnimateCutTree
- ld de, CutTreeBlockSwaps ; $7100
- call Func_f09f
+ call InitCutAnimOAM
+ ld de, CutTreeBlockSwaps
+ call ReplaceTreeTileBlock
call RedrawMapView
- callba Func_79e96
+ callba AnimCut
ld a, $1
ld [wUpdateSpritesEnabled], a
- ld a, (SFX_02_56 - SFX_Headers_02) / 3
+ ld a, SFX_CUT
call PlaySound
ld a, $90
ld [hWY], a
@@ -71,61 +71,62 @@ UsedCutText: ; eff2 (3:6ff2)
TX_FAR _UsedCutText
db "@"
-AnimateCutTree: ; eff7 (3:6ff7)
+InitCutAnimOAM: ; eff7 (3:6ff7)
xor a
- ld [wcd50], a
+ ld [wWhichAnimationOffsets], a
ld a, $e4
- ld [rOBP1], a ; $ff49
- ld a, [wcd4d]
+ ld [rOBP1], a
+ ld a, [wCutTile]
cp $52
- jr z, .asm_f020
- ld de, Overworld_GFX + $2d0 ; $42d0 ; cuttable tree sprite top row
+ jr z, .grass
+; tree
+ ld de, Overworld_GFX + $2d0 ; cuttable tree sprite top row
ld hl, vChars1 + $7c0
- ld bc, (BANK(Overworld_GFX) << 8) + $02
+ lb bc, BANK(Overworld_GFX), $02
call CopyVideoData
- ld de, Overworld_GFX + $3d0 ; $43d0 ; cuttable tree sprite bottom row
+ ld de, Overworld_GFX + $3d0 ; cuttable tree sprite bottom row
ld hl, vChars1 + $7e0
- ld bc, (BANK(Overworld_GFX) << 8) + $02
+ lb bc, BANK(Overworld_GFX), $02
call CopyVideoData
- jr WriteCutTreeBoulderDustAnimationOAMBlock
-.asm_f020
+ jr WriteCutOrBoulderDustAnimationOAMBlock
+.grass
ld hl, vChars1 + $7c0
- call LoadCutTreeAnimationTilePattern
+ call LoadCutGrassAnimationTilePattern
ld hl, vChars1 + $7d0
- call LoadCutTreeAnimationTilePattern
+ call LoadCutGrassAnimationTilePattern
ld hl, vChars1 + $7e0
- call LoadCutTreeAnimationTilePattern
+ call LoadCutGrassAnimationTilePattern
ld hl, vChars1 + $7f0
- call LoadCutTreeAnimationTilePattern
- call WriteCutTreeBoulderDustAnimationOAMBlock
+ call LoadCutGrassAnimationTilePattern
+ call WriteCutOrBoulderDustAnimationOAMBlock
ld hl, wOAMBuffer + $93
- ld de, $4
+ ld de, 4
ld a, $30
ld c, e
-.asm_f044
+.loop
ld [hl], a
add hl, de
xor $60
dec c
- jr nz, .asm_f044
+ jr nz, .loop
ret
-LoadCutTreeAnimationTilePattern: ; f04c (3:704c)
- ld de, AnimationTileset2 + $60 ; $474e ; tile depicting a leaf
- ld bc, (BANK(AnimationTileset2) << 8) + $01
+LoadCutGrassAnimationTilePattern: ; f04c (3:704c)
+ ld de, AnimationTileset2 + $60 ; tile depicting a leaf
+ lb bc, BANK(AnimationTileset2), $01
jp CopyVideoData
-WriteCutTreeBoulderDustAnimationOAMBlock: ; f055 (3:7055)
- call GetCutTreeBoulderDustAnimationOffsets
+WriteCutOrBoulderDustAnimationOAMBlock: ; f055 (3:7055)
+ call GetCutOrBoulderDustAnimationOffsets
ld a, $9
- ld de, CutTreeBoulderDustAnimationTilesAndAttributes
+ ld de, CutOrBoulderDustAnimationTilesAndAttributes
jp WriteOAMBlock
-CutTreeBoulderDustAnimationTilesAndAttributes: ; f060 (3:7060)
+CutOrBoulderDustAnimationTilesAndAttributes: ; f060 (3:7060)
db $FC,$10,$FD,$10
db $FE,$10,$FF,$10
-GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068)
+GetCutOrBoulderDustAnimationOffsets: ; f068 (3:7068)
ld hl, wSpriteStateData1 + 4
ld a, [hli] ; player's sprite screen Y position
ld b, a
@@ -138,12 +139,12 @@ GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068)
srl a
ld e, a
ld d, $0 ; de holds direction (00: down, 02: up, 04: left, 06: right)
- ld a, [wcd50]
+ ld a, [wWhichAnimationOffsets]
and a
- ld hl, CutTreeAnimationOffsets
- jr z, .asm_f084
+ ld hl, CutAnimationOffsets
+ jr z, .next
ld hl, BoulderDustAnimationOffsets
-.asm_f084
+.next
add hl, de
ld e, [hl]
inc hl
@@ -156,7 +157,7 @@ GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068)
ld c, a
ret
-CutTreeAnimationOffsets: ; f08f (3:708f)
+CutAnimationOffsets: ; f08f (3:708f)
; Each pair represents the x and y pixels offsets from the player of where the cut tree animation should be drawn
db 8, 36 ; player is facing down
db 8, 4 ; player is facing up
@@ -171,75 +172,79 @@ BoulderDustAnimationOffsets: ; f097 (3:7097)
db -24, 20 ; player is facing left
db 40, 20 ; player is facing right
-Func_f09f: ; f09f (3:709f)
+ReplaceTreeTileBlock: ; f09f (3:709f)
+; Determine the address of the tile block that contains the tile in front of the
+; player (i.e. where the tree is) and replace it with the corresponding tile
+; block that doesn't have the tree.
push de
- ld a, [W_CURMAPWIDTH] ; wd369
- add $6
+ ld a, [W_CURMAPWIDTH]
+ add 6
ld c, a
- ld b, $0
- ld d, $0
+ ld b, 0
+ ld d, 0
ld hl, wCurrentTileBlockMapViewPointer
ld a, [hli]
ld h, [hl]
ld l, a
add hl, bc
- ld a, [wSpriteStateData1 + 9]
+ ld a, [wSpriteStateData1 + 9] ; player sprite's facing direction
and a
- jr z, .asm_f0c7
- cp $4
- jr z, .asm_f0cf
- cp $8
- jr z, .asm_f0d7
- ld a, [W_XBLOCKCOORD] ; wd364
+ jr z, .down
+ cp SPRITE_FACING_UP
+ jr z, .up
+ cp SPRITE_FACING_LEFT
+ jr z, .left
+; right
+ ld a, [W_XBLOCKCOORD]
and a
- jr z, .asm_f0e0
- jr .asm_f0ec
-.asm_f0c7
- ld a, [W_YBLOCKCOORD] ; wd363
+ jr z, .centerTileBlock
+ jr .rightOfCenter
+.down
+ ld a, [W_YBLOCKCOORD]
and a
- jr z, .asm_f0e0
- jr .asm_f0df
-.asm_f0cf
- ld a, [W_YBLOCKCOORD] ; wd363
+ jr z, .centerTileBlock
+ jr .belowCenter
+.up
+ ld a, [W_YBLOCKCOORD]
and a
- jr z, .asm_f0e1
- jr .asm_f0e0
-.asm_f0d7
- ld a, [W_XBLOCKCOORD] ; wd364
+ jr z, .aboveCenter
+ jr .centerTileBlock
+.left
+ ld a, [W_XBLOCKCOORD]
and a
- jr z, .asm_f0e6
- jr .asm_f0e0
-.asm_f0df
+ jr z, .leftOfCenter
+ jr .centerTileBlock
+.belowCenter
add hl, bc
-.asm_f0e0
+.centerTileBlock
add hl, bc
-.asm_f0e1
+.aboveCenter
ld e, $2
add hl, de
- jr .asm_f0f0
-.asm_f0e6
+ jr .next
+.leftOfCenter
ld e, $1
add hl, bc
add hl, de
- jr .asm_f0f0
-.asm_f0ec
+ jr .next
+.rightOfCenter
ld e, $3
add hl, bc
add hl, de
-.asm_f0f0
+.next
pop de
ld a, [hl]
ld c, a
-.asm_f0f3
+.loop ; find the matching tile block in the array
ld a, [de]
inc de
inc de
cp $ff
ret z
cp c
- jr nz, .asm_f0f3
+ jr nz, .loop
dec de
- ld a, [de]
+ ld a, [de] ; replacement tile block from matching array entry
ld [hl], a
ret
diff --git a/engine/overworld/cut2.asm b/engine/overworld/cut2.asm
index de2b9d55..1cf832b5 100755
--- a/engine/overworld/cut2.asm
+++ b/engine/overworld/cut2.asm
@@ -1,89 +1,89 @@
-Func_79e96: ; 79e96 (1e:5e96)
- ld a, [wcd4d]
+AnimCut: ; 79e96 (1e:5e96)
+ ld a, [wCutTile]
cp $52
- jr z, .asm_79ec8
+ jr z, .grass
ld c, $8
-.asm_79e9f
+.cutTreeLoop
push bc
ld hl, wOAMBuffer + $91
- ld a, $1
- ld [wd08a], a
- ld c, $2
+ ld a, 1
+ ld [wCoordAdjustmentAmount], a
+ ld c, 2
call AdjustOAMBlockXPos2
ld hl, wOAMBuffer + $99
- ld a, $ff
- ld [wd08a], a
- ld c, $2
+ ld a, -1
+ ld [wCoordAdjustmentAmount], a
+ ld c, 2
call AdjustOAMBlockXPos2
- ld a, [rOBP1] ; $ff49
+ ld a, [rOBP1]
xor $64
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
call DelayFrame
pop bc
dec c
- jr nz, .asm_79e9f
+ jr nz, .cutTreeLoop
ret
-.asm_79ec8
- ld c, $2
-.asm_79eca
+.grass
+ ld c, 2
+.cutGrassLoop
push bc
ld c, $8
- call Func_79eed
- call Func_79f30
+ call AnimCutGrass_UpdateOAMEntries
+ call AnimCutGrass_SwapOAMEntries
ld c, $8
- call Func_79eed
- call Func_79f30
+ call AnimCutGrass_UpdateOAMEntries
+ call AnimCutGrass_SwapOAMEntries
ld hl, wOAMBuffer + $90
- ld a, $2
- ld [wd08a], a
- ld c, $4
+ ld a, 2
+ ld [wCoordAdjustmentAmount], a
+ ld c, 4
call AdjustOAMBlockYPos2
pop bc
dec c
- jr nz, .asm_79eca
+ jr nz, .cutGrassLoop
ret
-Func_79eed: ; 79eed (1e:5eed)
+AnimCutGrass_UpdateOAMEntries: ; 79eed (1e:5eed)
push bc
ld hl, wOAMBuffer + $91
- ld a, $1
- ld [wd08a], a
- ld c, $1
+ ld a, 1
+ ld [wCoordAdjustmentAmount], a
+ ld c, 1
call AdjustOAMBlockXPos2
ld hl, wOAMBuffer + $95
- ld a, $2
- ld [wd08a], a
- ld c, $1
+ ld a, 2
+ ld [wCoordAdjustmentAmount], a
+ ld c, 1
call AdjustOAMBlockXPos2
ld hl, wOAMBuffer + $99
- ld a, $fe
- ld [wd08a], a
- ld c, $1
+ ld a, -2
+ ld [wCoordAdjustmentAmount], a
+ ld c, 1
call AdjustOAMBlockXPos2
ld hl, wOAMBuffer + $9d
- ld a, $ff
- ld [wd08a], a
- ld c, $1
+ ld a, -1
+ ld [wCoordAdjustmentAmount], a
+ ld c, 1
call AdjustOAMBlockXPos2
- ld a, [rOBP1] ; $ff49
+ ld a, [rOBP1]
xor $64
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
call DelayFrame
pop bc
dec c
- jr nz, Func_79eed
+ jr nz, AnimCutGrass_UpdateOAMEntries
ret
-Func_79f30: ; 79f30 (1e:5f30)
+AnimCutGrass_SwapOAMEntries: ; 79f30 (1e:5f30)
ld hl, wOAMBuffer + $90
- ld de, wHPBarMaxHP
+ ld de, wBuffer
ld bc, $8
call CopyData
ld hl, wOAMBuffer + $98
ld de, wOAMBuffer + $90
ld bc, $8
call CopyData
- ld hl, wHPBarMaxHP
+ ld hl, wBuffer
ld de, wOAMBuffer + $98
ld bc, $8
jp CopyData
diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm
index ac345af9..641c021f 100755
--- a/engine/overworld/doors.asm
+++ b/engine/overworld/doors.asm
@@ -1,8 +1,8 @@
; returns whether the player is standing on a door tile in carry
IsPlayerStandingOnDoorTile: ; 1a609 (6:6609)
push de
- ld hl, DoorTileIDPointers ; $662c
- ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
+ ld hl, DoorTileIDPointers
+ ld a, [W_CURMAPTILESET]
ld de, $3
call IsInArray
pop de
diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm
index 3a23d410..05a9cc4e 100755
--- a/engine/overworld/elevator.asm
+++ b/engine/overworld/elevator.asm
@@ -1,46 +1,48 @@
ShakeElevator: ; 7bf15 (1e:7f15)
- ld de, $ffe0
- call Func_7bf64
- ld de, $240
- call Func_7bf64
+ ld de, -$20
+ call ShakeElevatorRedrawRow
+ ld de, SCREEN_HEIGHT * $20
+ call ShakeElevatorRedrawRow
call Delay3
ld a, $ff
call PlaySound
ld a, [hSCY]
ld d, a
ld e, $1
- ; number of times to play collision sfx
- ld b, $64
-.asm_7bf30
+ ld b, 100
+.shakeLoop ; scroll the BG up and down and play a sound effect
ld a, e
xor $fe
ld e, a
add d
ld [hSCY], a
push bc
- ld c, BANK(SFX_02_5b)
- ld a, (SFX_02_5b - SFX_Headers_02) / 3
+ ld c, BANK(SFX_Collision_1)
+ ld a, SFX_COLLISION
call PlayMusic
pop bc
- ld c, $2
+ ld c, 2
call DelayFrames
dec b
- jr nz, .asm_7bf30
+ jr nz, .shakeLoop
ld a, d
ld [hSCY], a
ld a, $ff
call PlaySound
- ld c, BANK(SFX_02_5f)
- ld a, (SFX_02_5f - SFX_Headers_02) / 3
+ ld c, BANK(SFX_Safari_Zone_PA)
+ ld a, SFX_SAFARI_ZONE_PA
call PlayMusic
-.asm_7bf57
- ld a, [wc02a]
+.musicLoop
+ ld a, [wChannelSoundIDs + CH4]
cp $b9
- jr z, .asm_7bf57
+ jr z, .musicLoop
call UpdateSprites
jp PlayDefaultMusic
-Func_7bf64: ; 7bf64 (1e:7f64)
+ShakeElevatorRedrawRow: ; 7bf64 (1e:7f64)
+; This function is used to redraw certain portions of the screen, but it does
+; not appear to ever result in any visible effect, so this function seems to
+; be pointless.
ld hl, wMapViewVRAMPointer + 1
ld a, [hld]
push af
diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm
index 7106063b..f8665dd6 100755
--- a/engine/overworld/emotion_bubbles.asm
+++ b/engine/overworld/emotion_bubbles.asm
@@ -1,30 +1,33 @@
EmotionBubble: ; 17c47 (5:7c47)
- ld a, [wcd50]
+ ld a, [wWhichEmotionBubble]
ld c, a
- ld b, $0
- ld hl, EmotionBubblesPointerTable ; $7caf
+ ld b, 0
+ ld hl, EmotionBubblesPointerTable
add hl, bc
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, vChars1 + $780
- ld bc, (BANK(EmotionBubblesPointerTable) << 8) + $04
+ lb bc, BANK(EmotionBubbles), $04
call CopyVideoData
ld a, [wUpdateSpritesEnabled]
push af
ld a, $ff
ld [wUpdateSpritesEnabled], a
ld a, [wd736]
- bit 6, a
+ bit 6, a ; are the last 4 OAM entries reserved for a shadow or fishing rod?
ld hl, wOAMBuffer + $8f
ld de, wOAMBuffer + $9f
- jr z, .asm_17c7a
+ jr z, .next
ld hl, wOAMBuffer + $7f
ld de, wOAMBuffer + $8f
-.asm_17c7a
+
+; Copy OAM data 16 bytes forward to make room for emotion bubble OAM data at the
+; start of the OAM buffer.
+.next
ld bc, $90
-.asm_17c7d
+.loop
ld a, [hl]
ld [de], a
dec hl
@@ -32,12 +35,14 @@ EmotionBubble: ; 17c47 (5:7c47)
dec bc
ld a, c
or b
- jr nz, .asm_17c7d
+ jr nz, .loop
+
+; get the screen coordinates of the sprite the bubble is to be displayed above
ld hl, wSpriteStateData1 + 4
- ld a, [wcd4f]
+ ld a, [wEmotionBubbleSpriteIndex]
swap a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hli]
ld b, a
@@ -45,10 +50,11 @@ EmotionBubble: ; 17c47 (5:7c47)
ld a, [hl]
add $8
ld c, a
- ld de, EmotionBubblesOAM ; $7cb5
+
+ ld de, EmotionBubblesOAM
xor a
call WriteOAMBlock
- ld c, $3c
+ ld c, 60
call DelayFrames
pop af
ld [wUpdateSpritesEnabled], a
diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm
index 23e24b23..e9310925 100755
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -1,59 +1,58 @@
AnimateHealingMachine: ; 7048b (1c:448b)
ld de, PokeCenterFlashingMonitorAndHealBall ; $44b7
ld hl, vChars0 + $7c0
- ld bc, (BANK(PokeCenterFlashingMonitorAndHealBall) << 8) + $03
+ lb bc, BANK(PokeCenterFlashingMonitorAndHealBall), $03 ; loads one too many tiles
call CopyVideoData
ld hl, wUpdateSpritesEnabled
ld a, [hl]
push af
ld [hl], $ff
push hl
- ld a, [rOBP1] ; $ff49
+ ld a, [rOBP1]
push af
ld a, $e0
+<<<<<<< HEAD
ld [rOBP1], a ; $ff49
call Func_3061
ld hl, wOAMBuffer + $84
ld de, PokeCenterOAMData ; $44d7
- call Func_7055a
- ld a, $4
- ld [wMusicHeaderPointer], a
+ call CopyHealingMachineOAM
+ ld a, 4
+ ld [wAudioFadeOutControl], a
call StopAllMusic
- ;ld a, $ff
- ;ld [wc0ee], a
- ;call PlaySound
-.asm_704ba
- ld a, [wMusicHeaderPointer]
+.waitLoop
+ ld a, [wAudioFadeOutControl]
and a
- jr nz, .asm_704ba
+ jr nz, .waitLoop
ld a, [wPartyCount] ; wPartyCount
ld b, a
-.asm_704c4
- call Func_7055a
+.partyLoop
+ call CopyHealingMachineOAM
ld a, $9e ; (SFX_02_4a - SFX_Headers_02) / 3
call PlaySound
- ld c, $1e
+ ld c, 30
call DelayFrames
dec b
- jr nz, .asm_704c4
- ld a, [wc0ef]
+<<<<<<< HEAD
+ jr nz, .partyLoop
+ ld a, [wAudioROMBank]
cp $1f
- ld [wc0f0], a
- jr nz, .asm_704e6
+ ld [wAudioSavedROMBank], a
+ jr nz, .next
call StopAllMusic
ld a, $2 ; BANK(Music_PkmnHealed)
- ld [wc0ef], a
-.asm_704e6
+ ld [wAudioROMBank], a
+.next
ld a, $e8 ; MUSIC_PKMN_HEALED
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld d, $28
call FlashSprite8Times
-.asm_704f3
+.waitLoop2
ld a, [wc026]
cp $e8 ; MUSIC_PKMN_HEALED
- jr z, .asm_704f3
- ld c, $20
+ jr z, .waitLoop2
+ ld c, 32
call DelayFrames
pop af
ld [rOBP1], a ; $ff49
@@ -89,7 +88,8 @@ FlashSprite8Times: ; 70547 (1c:4547)
jr nz, .loop
ret
-Func_7055a: ; 7055a (1c:455a)
+CopyHealingMachineOAM: ; 7055a (1c:455a)
+; copy one OAM entry and advance the pointers
ld a, [de]
inc de
ld [hli], a
diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm
index 17288a17..28528116 100755
--- a/engine/overworld/hidden_items.asm
+++ b/engine/overworld/hidden_items.asm
@@ -1,43 +1,41 @@
HiddenItems: ; 76688 (1d:6688)
ld hl, HiddenItemCoords
- call Func_76857
- ld [wTrainerScreenX], a
- ld hl, wd6f0
- ld a, [wTrainerScreenX]
+ call FindHiddenItemOrCoinsIndex
+ ld [wHiddenItemOrCoinsIndex], a
+ ld hl, wObtainedHiddenItemsFlags
+ ld a, [wHiddenItemOrCoinsIndex]
ld c, a
- ld b, $2
+ ld b, FLAG_TEST
predef FlagActionPredef
ld a, c
and a
ret nz
call EnableAutoTextBoxDrawing
- ld a, $1
+ ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld a, [wWhichTrade] ; item ID
+ ld a, [wHiddenObjectFunctionArgument] ; item ID
ld [wd11e], a
call GetItemName
- ld a, $24
- jp PrintPredefTextID
+ tx_pre_jump FoundHiddenItemText
INCLUDE "data/hidden_item_coords.asm"
FoundHiddenItemText: ; 7675b (1d:675b)
-; XXX where is the pointer to this?
TX_FAR _FoundHiddenItemText
- db $8
- ld a, [wWhichTrade] ; item ID
+ TX_ASM
+ ld a, [wHiddenObjectFunctionArgument] ; item ID
ld b, a
ld c, 1
call GiveItem
jr nc, .BagFull
- ld hl, wd6f0
- ld a, [wTrainerScreenX]
+ ld hl, wObtainedHiddenItemsFlags
+ ld a, [wHiddenItemOrCoinsIndex]
ld c, a
- ld b, $1
+ ld b, FLAG_SET
predef FlagActionPredef
- ld a, (SFX_02_3b - SFX_Headers_02) / 3
- call PlaySoundWaitForCurrent ; play sound
- call WaitForSoundToFinish ; wait for sound to finish playing
+ ld a, SFX_GET_ITEM_2
+ call PlaySoundWaitForCurrent
+ call WaitForSoundToFinish
jp TextScriptEnd
.BagFull
call WaitForTextScrollButtonPress ; wait for button press
@@ -53,26 +51,26 @@ HiddenItemBagFullText: ; 76794 (1d:6794)
HiddenCoins: ; 76799 (1d:6799)
ld b, COIN_CASE
- predef IsItemInBag_
+ predef GetQuantityOfItemInBag
ld a, b
and a
ret z
ld hl, HiddenCoinCoords
- call Func_76857
- ld [wTrainerScreenX], a
- ld hl, wd6fe
- ld a, [wTrainerScreenX]
+ call FindHiddenItemOrCoinsIndex
+ ld [wHiddenItemOrCoinsIndex], a
+ ld hl, wObtainedHiddenCoinsFlags
+ ld a, [wHiddenItemOrCoinsIndex]
ld c, a
- ld b, $2
+ ld b, FLAG_TEST
predef FlagActionPredef
ld a, c
and a
ret nz
xor a
- ld [$ff9f], a
- ld [$ffa0], a
- ld [$ffa1], a
- ld a, [wWhichTrade]
+ ld [hUnusedCoinsByte], a
+ ld [hCoins], a
+ ld [hCoins + 1], a
+ ld a, [wHiddenObjectFunctionArgument]
sub COIN
cp 10
jr z, .bcd10
@@ -83,28 +81,28 @@ HiddenCoins: ; 76799 (1d:6799)
jr .bcd100
.bcd10
ld a, $10
- ld [$ffa1], a
+ ld [hCoins + 1], a
jr .bcddone
.bcd20
ld a, $20
- ld [$ffa1], a
+ ld [hCoins + 1], a
jr .bcddone
.bcd40 ; due to a typo, this is never used
ld a, $40
- ld [$ffa1], a
+ ld [hCoins + 1], a
jr .bcddone
.bcd100
ld a, $1
- ld [$ffa0], a
+ ld [hCoins], a
.bcddone
ld de, wPlayerCoins + 1
- ld hl, $ffa1
+ ld hl, hCoins + 1
ld c, $2
predef AddBCDPredef
- ld hl, wd6fe
- ld a, [wTrainerScreenX]
+ ld hl, wObtainedHiddenCoinsFlags
+ ld a, [wHiddenItemOrCoinsIndex]
ld c, a
- ld b, $1
+ ld b, FLAG_SET
predef FlagActionPredef
call EnableAutoTextBoxDrawing
ld a, [wPlayerCoins]
@@ -113,10 +111,10 @@ HiddenCoins: ; 76799 (1d:6799)
ld a, [wPlayerCoins + 1]
cp $99
jr nz, .RoomInCoinCase
- ld a, $2c
+ tx_pre_id DroppedHiddenCoinsText
jr .done
.RoomInCoinCase
- ld a, $2b
+ tx_pre_id FoundHiddenCoinsText
.done
jp PrintPredefTextID
@@ -132,31 +130,31 @@ DroppedHiddenCoinsText: ; 7684d (1d:684d)
TX_FAR _DroppedHiddenCoinsText
db "@"
-Func_76857: ; 76857 (1d:6857)
- ld a, [wTrainerScreenY]
+FindHiddenItemOrCoinsIndex: ; 76857 (1d:6857)
+ ld a, [wHiddenObjectY]
ld d, a
- ld a, [wTrainerScreenX]
+ ld a, [wHiddenObjectX]
ld e, a
ld a, [W_CURMAP]
ld b, a
- ld c, $ff
+ ld c, -1
.loop
inc c
ld a, [hli]
cp $ff ; end of the list?
ret z ; if so, we're done here
cp b
- jr nz, .asm_76877 ; 0x7686b $a
+ jr nz, .next1
ld a, [hli]
cp d
- jr nz, .asm_76878 ; 0x7686f $7
+ jr nz, .next2
ld a, [hli]
cp e
jr nz, .loop
ld a, c
ret
-.asm_76877
+.next1
inc hl
-.asm_76878
+.next2
inc hl
jr .loop
diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm
index ae67aeed..cabfc093 100755
--- a/engine/overworld/hidden_objects.asm
+++ b/engine/overworld/hidden_objects.asm
@@ -1,4 +1,4 @@
-Func_46981: ; 46981 (11:6981)
+IsPlayerOnDungeonWarp: ; 46981 (11:6981)
xor a
ld [wWhichDungeonWarp], a
ld a, [wd72d]
@@ -6,7 +6,7 @@ Func_46981: ; 46981 (11:6981)
ret nz
call ArePlayerCoordsInArray
ret nc
- ld a, [wWhichTrade]
+ ld a, [wCoordIndex]
ld [wWhichDungeonWarp], a
ld hl, wd72d
set 4, [hl]
@@ -58,7 +58,7 @@ CheckForHiddenObject: ; 469a0 (11:69a0)
ld [wHiddenObjectX], a
ld c, a
call CheckIfCoordsInFrontOfPlayerMatch
- ld a, [$ffea]
+ ld a, [hCoordsInFrontOfPlayerMatch]
and a
jr z, .foundMatchingObject
inc hl
@@ -85,7 +85,7 @@ CheckForHiddenObject: ; 469a0 (11:69a0)
ret
; checks if the coordinates in front of the player's sprite match Y in b and X in c
-; [$ffea] = $00 if they match, $ff if they don't match
+; [hCoordsInFrontOfPlayerMatch] = $00 if they match, $ff if they don't match
CheckIfCoordsInFrontOfPlayerMatch: ; 46a01 (11:6a01)
ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
cp SPRITE_FACING_UP
@@ -127,7 +127,7 @@ CheckIfCoordsInFrontOfPlayerMatch: ; 46a01 (11:6a01)
.didNotMatch
ld a, $ff
.done
- ld [$ffea], a
+ ld [hCoordsInFrontOfPlayerMatch], a
ret
INCLUDE "data/hidden_objects.asm"
diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm
index a49fc268..6fbe823d 100644
--- a/engine/overworld/item.asm
+++ b/engine/overworld/item.asm
@@ -1,7 +1,7 @@
-PickupItem:
+PickUpItem:
call EnableAutoTextBoxDrawing
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld a, [hSpriteIndexOrTextID]
ld b, a
ld hl, W_MISSABLEOBJECTLIST
.missableObjectsListLoop
@@ -18,7 +18,7 @@ PickupItem:
ld [$ffdb], a
ld hl, W_MAPSPRITEEXTRADATA
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld a, [hSpriteIndexOrTextID]
dec a
add a
ld d, 0
@@ -31,7 +31,7 @@ PickupItem:
jr nc, .BagFull
ld a, [$ffdb]
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm
index b8c19181..df4273fd 100755
--- a/engine/overworld/ledges.asm
+++ b/engine/overworld/ledges.asm
@@ -2,7 +2,7 @@ HandleLedges: ; 1a672 (6:6672)
ld a, [wd736]
bit 6, a ; already jumping down ledge
ret nz
- ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
+ ld a, [W_CURMAPTILESET]
and a ; OVERWORLD
ret nz
predef GetTileAndCoordsInFrontOfPlayer
@@ -50,7 +50,7 @@ HandleLedges: ; 1a672 (6:6672)
ld a, $2
ld [wSimulatedJoypadStatesIndex], a
call LoadHoppingShadowOAM
- ld a, (SFX_02_4e - SFX_Headers_02) / 3
+ ld a, SFX_LEDGE
call PlaySound
ret
@@ -69,16 +69,17 @@ LedgeTiles: ; 1a6cf (6:66cf)
LoadHoppingShadowOAM: ; 1a6f0 (6:66f0)
ld hl, vChars1 + $7f0
ld de, LedgeHoppingShadow
- ld bc, (BANK(LedgeHoppingShadow) << 8) + $01
+ lb bc, BANK(LedgeHoppingShadow), (LedgeHoppingShadowEnd - LedgeHoppingShadow) / $8
call CopyVideoDataDouble
ld a, $9
- ld bc, $5448 ; b, c = y, x coordinates of shadow
+ lb bc, $54, $48 ; b, c = y, x coordinates of shadow
ld de, LedgeHoppingShadowOAM
call WriteOAMBlock
ret
LedgeHoppingShadow: ; 1a708 (6:6708)
INCBIN "gfx/ledge_hopping_shadow.1bpp"
+LedgeHoppingShadowEnd:
LedgeHoppingShadowOAM: ; 1a710 (6:6710)
db $FF,$10,$FF,$20
diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm
index 747a0a45..84d67b36 100755
--- a/engine/overworld/map_sprites.asm
+++ b/engine/overworld/map_sprites.asm
@@ -39,7 +39,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
ld b,$10 ; number of sprite slots
ld hl,wSpriteStateData2 + $0d
xor a
- ld [$ff8e],a ; 4-tile sprite counter
+ ld [hFourTileSpriteCount],a
.copyPictureIDLoop ; loop to copy picture ID from $C2XD to $C2XE
ld a,[hli] ; $C2XD (sprite picture ID)
ld [hld],a ; $C2XE
@@ -98,14 +98,14 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
cp a,SPRITE_BALL ; is it a 4-tile sprite?
jr c,.notFourTileSprite
pop af
- ld a,[$ff8e] ; 4-tile sprite counter
+ ld a,[hFourTileSpriteCount]
add a,11
jr .storeVRAMSlot
.notFourTileSprite
pop af
.storeVRAMSlot
ld [hl],a ; store VRAM slot at $C2XE
- ld [$ff8d],a ; used to determine if it's 4-tile sprite later
+ ld [hVRAMSlot],a ; used to determine if it's 4-tile sprite later
ld a,b ; a = current sprite picture ID
dec a
add a
@@ -128,7 +128,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
push bc
ld hl,vNPCSprites ; VRAM base address
ld bc,$c0 ; number of bytes per VRAM slot
- ld a,[$ff8d]
+ ld a,[hVRAMSlot]
cp a,11 ; is it a 4-tile sprite?
jr nc,.fourTileSpriteVRAMAddr
ld d,a
@@ -142,13 +142,13 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
jr .loadStillTilePattern
.fourTileSpriteVRAMAddr
ld hl,vSprites + $7c0 ; address for second 4-tile sprite
- ld a,[$ff8e] ; 4-tile sprite counter
- and a ; is it the first 4-tile sprite?
+ ld a,[hFourTileSpriteCount]
+ and a
jr nz,.loadStillTilePattern
; if it's the first 4-tile sprite
ld hl,vSprites + $780 ; address for first 4-tile sprite
inc a
- ld [$ff8e],a ; 4-tile sprite counter
+ ld [hFourTileSpriteCount],a
.loadStillTilePattern
pop bc
pop de
@@ -168,7 +168,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871)
.skipFirstLoad
pop de
pop hl
- ld a,[$ff8d]
+ ld a,[hVRAMSlot]
cp a,11 ; is it a 4-tile sprite?
jr nc,.skipSecondLoad ; if so, there is no second block
push de
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm
index c4482700..be10fd69 100644
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -12,7 +12,7 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)
; the maximum number for map tiles
.checkIfTextBoxInFrontOfSprite
aCoord 8, 9
- ld [$ff93], a
+ ld [hTilePlayerStandingOn], a
cp $60
jr c, .lowerLeftTileIsMapTile
.disableSprite
@@ -21,52 +21,54 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)
ret
.lowerLeftTileIsMapTile
call DetectCollisionBetweenSprites
- ld h, $c1
- ld a, [wWalkCounter] ; wcfc5
+ ld h, wSpriteStateData1 / $100
+ ld a, [wWalkCounter]
and a
- jr nz, .asm_4e90
- ld a, [wd528]
- bit 2, a
- jr z, .asm_4e65
- xor a
- jr .asm_4e86
-.asm_4e65
- bit 3, a
- jr z, .asm_4e6d
- ld a, $4
- jr .asm_4e86
-.asm_4e6d
- bit 1, a
- jr z, .asm_4e75
- ld a, $8
- jr .asm_4e86
-.asm_4e75
- bit 0, a
- jr z, .asm_4e7d
- ld a, $c
- jr .asm_4e86
-.asm_4e7d
+ jr nz, .moving
+ ld a, [wPlayerMovingDirection]
+; check if down
+ bit PLAYER_DIR_BIT_DOWN, a
+ jr z, .checkIfUp
+ xor a ; ld a, SPRITE_FACING_DOWN
+ jr .next
+.checkIfUp
+ bit PLAYER_DIR_BIT_UP, a
+ jr z, .checkIfLeft
+ ld a, SPRITE_FACING_UP
+ jr .next
+.checkIfLeft
+ bit PLAYER_DIR_BIT_LEFT, a
+ jr z, .checkIfRight
+ ld a, SPRITE_FACING_LEFT
+ jr .next
+.checkIfRight
+ bit PLAYER_DIR_BIT_RIGHT, a
+ jr z, .notMoving
+ ld a, SPRITE_FACING_RIGHT
+ jr .next
+.notMoving
+; zero the animation counters
xor a
ld [wSpriteStateData1 + 7], a
ld [wSpriteStateData1 + 8], a
- jr .asm_4eab
-.asm_4e86
- ld [wSpriteStateData1 + 9], a
+ jr .calcImageIndex
+.next
+ ld [wSpriteStateData1 + 9], a ; facing direction
ld a, [wFontLoaded]
bit 0, a
- jr nz, .asm_4e7d
-.asm_4e90
+ jr nz, .notMoving
+.moving
ld a, [wd736]
- bit 7, a
- jr nz, .asm_4eb6
+ bit 7, a ; is the player sprite spinning due to a spin tile?
+ jr nz, .skipSpriteAnim
ld a, [H_CURRENTSPRITEOFFSET]
add $7
ld l, a
ld a, [hl]
inc a
ld [hl], a
- cp $4
- jr nz, .asm_4eab
+ cp 4
+ jr nz, .calcImageIndex
xor a
ld [hl], a
inc hl
@@ -74,28 +76,32 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)
inc a
and $3
ld [hl], a
-.asm_4eab
+.calcImageIndex
ld a, [wSpriteStateData1 + 8]
ld b, a
ld a, [wSpriteStateData1 + 9]
add b
ld [wSpriteStateData1 + 2], a
-.asm_4eb6
- ld a, [$ff93]
+.skipSpriteAnim
+; If the player is standing on a grass tile, make the player's sprite have
+; lower priority than the background so that it's partially obscured by the
+; grass. Only the lower half of the sprite is permitted to have the priority
+; bit set by later logic.
+ ld a, [hTilePlayerStandingOn]
ld c, a
ld a, [W_GRASSTILE]
cp c
ld a, $0
- jr nz, .asm_4ec3
+ jr nz, .next2
ld a, $80
-.asm_4ec3
+.next2
ld [wSpriteStateData2 + $07], a
ret
-Func_4ec7: ; 4ec7 (1:4ec7)
+UnusedReadSpriteDataFunction: ; 4ec7 (1:4ec7)
push bc
push af
- ld a, [$ffda]
+ ld a, [H_CURRENTSPRITEOFFSET]
ld c, a
pop af
add c
@@ -103,12 +109,12 @@ Func_4ec7: ; 4ec7 (1:4ec7)
pop bc
ret
-Func_4ed1: ; 4ed1 (1:4ed1)
+UpdateNPCSprite: ; 4ed1 (1:4ed1)
ld a, [H_CURRENTSPRITEOFFSET]
swap a
dec a
add a
- ld hl, W_MAPSPRITEDATA ; wd4e4
+ ld hl, W_MAPSPRITEDATA
add l
ld l, a
ld a, [hl] ; read movement byte 2
@@ -138,7 +144,7 @@ Func_4ed1: ; 4ed1 (1:4ed1)
jp z, UpdateSpriteMovementDelay ; c1x1 == 2
cp $3
jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3
- ld a, [wWalkCounter] ; wcfc5
+ ld a, [wWalkCounter]
and a
ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)
call InitializeSpriteScreenPosition
@@ -148,40 +154,43 @@ Func_4ed1: ; 4ed1 (1:4ed1)
ld l, a
ld a, [hl] ; c2x6: movement byte 1
inc a
- jr z, .asm_4f59 ; value $FF
+ jr z, .randomMovement ; value $FF
inc a
- jr z, .asm_4f59 ; value $FE
+ jr z, .randomMovement ; value $FE
+; scripted movement
dec a
- ld [hl], a ; (temporarily) increment movement byte 1
+ ld [hl], a ; increment movement byte 1 (movement data index)
dec a
push hl
- ld hl, wcf0f
- dec [hl] ; decrement wcf0f
+ ld hl, wNPCNumScriptedSteps
+ dec [hl] ; decrement wNPCNumScriptedSteps
pop hl
- ld de, wcc5b
- call LoadDEPlusA ; a = [wcc5b + movement byte 1]
+ ld de, wNPCMovementDirections
+ call LoadDEPlusA ; a = [wNPCMovementDirections + movement byte 1]
cp $e0
jp z, ChangeFacingDirection
cp $ff
- jr nz, .asm_4f4b
- ld [hl], a ; reset movement byte 1 to initial value
+ jr nz, .next
+; reached end of wNPCMovementDirections list
+ ld [hl], a ; store $ff in movement byte 1, disabling scripted movement
ld hl, wd730
res 0, [hl]
xor a
ld [wSimulatedJoypadStatesIndex], a
ld [wWastedByteCD3A], a
ret
-.asm_4f4b
+.next
cp $fe
- jr nz, .asm_4f5f
+ jr nz, .determineDirection
+; current NPC movement data is $fe. this seems buggy
ld [hl], $1 ; set movement byte 1 to $1
- ld de, wcc5b
- call LoadDEPlusA ; a = [wcc5b + $fe] (?)
- jr .asm_4f5f
-.asm_4f59
- call getTileSpriteStandsOn
+ ld de, wNPCMovementDirections
+ call LoadDEPlusA ; a = [wNPCMovementDirections + $fe] (?)
+ jr .determineDirection
+.randomMovement
+ call GetTileSpriteStandsOn
call Random
-.asm_4f5f
+.determineDirection
ld b, a
ld a, [wCurSpriteMovement2]
cp $d0
@@ -199,11 +208,10 @@ Func_4ed1: ; 4ed1 (1:4ed1)
cp $2
jr z, .moveLeft ; movement byte 2 = $2 only allows left or right
.moveDown
- ld de, 2*20
+ ld de, 2*SCREEN_WIDTH
add hl, de ; move tile pointer two rows down
- ld de, $100
-
- ld bc, $400
+ lb de, 1, 0
+ lb bc, 4, SPRITE_FACING_DOWN
jr TryWalking
.notDown
cp $80 ; $40 <= a < $80: up (or right)
@@ -212,10 +220,10 @@ Func_4ed1: ; 4ed1 (1:4ed1)
cp $2
jr z, .moveRight ; movement byte 2 = $2 only allows left or right
.moveUp
- ld de, -2*20 ; $ffd8
+ ld de, -2*SCREEN_WIDTH
add hl, de ; move tile pointer two rows up
- ld de, $ff00
- ld bc, $804
+ lb de, -1, 0
+ lb bc, 8, SPRITE_FACING_UP
jr TryWalking
.notUp
cp $c0 ; $80 <= a < $c0: left (or up)
@@ -226,8 +234,8 @@ Func_4ed1: ; 4ed1 (1:4ed1)
.moveLeft
dec hl
dec hl ; move tile pointer two columns left
- ld de, $ff
- ld bc, $208
+ lb de, 0, -1
+ lb bc, 2, SPRITE_FACING_LEFT
jr TryWalking
.notLeft ; $c0 <= a: right (or down)
ld a, [wCurSpriteMovement2]
@@ -236,8 +244,8 @@ Func_4ed1: ; 4ed1 (1:4ed1)
.moveRight
inc hl
inc hl ; move tile pointer two columns right
- ld de, $1
- ld bc, $10c
+ lb de, 0, 1
+ lb bc, 1, SPRITE_FACING_RIGHT
jr TryWalking
; changes facing direction by zeroing the movement delta and calling TryWalking
@@ -249,7 +257,7 @@ ChangeFacingDirection: ; 4fc8 (1:4fc8)
; c: new facing direction (0,4,8 or $c)
; d: Y movement delta (-1, 0 or 1)
; e: X movement delta (-1, 0 or 1)
-; hl: pointer to tile the sprite would wlak onto
+; hl: pointer to tile the sprite would walk onto
; set carry on failure, clears carry on success
TryWalking: ; 4fcb (1:4fcb)
push hl
@@ -397,23 +405,23 @@ InitializeSpriteFacingDirection: ; 507f (1:507f)
bit 5, a
jr nz, notYetMoving
res 7, [hl]
- ld a, [wd52a]
- bit 3, a
+ ld a, [wPlayerDirection]
+ bit PLAYER_DIR_BIT_UP, a
jr z, .notFacingDown
- ld c, $0 ; make sprite face down
+ ld c, SPRITE_FACING_DOWN
jr .facingDirectionDetermined
.notFacingDown
- bit 2, a
+ bit PLAYER_DIR_BIT_DOWN, a
jr z, .notFacingUp
- ld c, $4 ; make sprite face up
+ ld c, SPRITE_FACING_UP
jr .facingDirectionDetermined
.notFacingUp
- bit 1, a
+ bit PLAYER_DIR_BIT_LEFT, a
jr z, .notFacingRight
- ld c, $c ; make sprite face right
+ ld c, SPRITE_FACING_RIGHT
jr .facingDirectionDetermined
.notFacingRight
- ld c, $8 ; make sprite face left
+ ld c, SPRITE_FACING_LEFT
.facingDirectionDetermined
ld a, [H_CURRENTSPRITEOFFSET]
add $9
@@ -440,7 +448,7 @@ InitializeSpriteScreenPosition: ; 50bd (1:50bd)
ld a, [H_CURRENTSPRITEOFFSET]
add $4
ld l, a
- ld a, [W_YCOORD] ; wd361
+ ld a, [W_YCOORD]
ld b, a
ld a, [hl] ; c2x4 (Y position + 4)
sub b ; relative to player position
@@ -449,7 +457,7 @@ InitializeSpriteScreenPosition: ; 50bd (1:50bd)
dec h
ld [hli], a ; c1x4 (screen Y position)
inc h
- ld a, [W_XCOORD] ; wd362
+ ld a, [W_XCOORD]
ld b, a
ld a, [hli] ; c2x6 (X position + 4)
sub b ; relative to player position
@@ -470,12 +478,12 @@ CheckSpriteAvailability: ; 50dc (1:50dc)
ld l, a
ld a, [hl] ; c2x6: movement byte 1
cp $fe
- jr c, .skipXVisibilityTest ; movement byte 1 < $fe
+ jr c, .skipXVisibilityTest ; movement byte 1 < $fe (i.e. the sprite's movement is scripted)
ld a, [H_CURRENTSPRITEOFFSET]
add $4
ld l, a
ld b, [hl] ; c2x4: Y pos (+4)
- ld a, [W_YCOORD] ; wd361
+ ld a, [W_YCOORD]
cp b
jr z, .skipYVisibilityTest
jr nc, .spriteInvisible ; above screen region
@@ -485,7 +493,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)
.skipYVisibilityTest
inc l
ld b, [hl] ; c2x5: X pos (+4)
- ld a, [W_XCOORD] ; wd362
+ ld a, [W_XCOORD]
cp b
jr z, .skipXVisibilityTest
jr nc, .spriteInvisible ; left of screen region
@@ -495,7 +503,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)
.skipXVisibilityTest
; make the sprite invisible if a text box is in front of it
; $5F is the maximum number for map tiles
- call getTileSpriteStandsOn
+ call GetTileSpriteStandsOn
ld d, $60
ld a, [hli]
cp d
@@ -503,7 +511,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)
ld a, [hld]
cp d
jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom right tile)
- ld bc, -20 ; $ffec
+ ld bc, -20
add hl, bc ; go back one row of tiles
ld a, [hli]
cp d
@@ -521,7 +529,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)
jr .done
.spriteVisible
ld c, a
- ld a, [wWalkCounter] ; wcfc5
+ ld a, [wWalkCounter]
and a
jr nz, .done ; if player is currently walking, we're done
call UpdateSpriteImage
@@ -572,10 +580,11 @@ CanWalkOntoTile: ; 516e (1:516e)
ld l, a
ld a, [hl] ; c2x6 (movement byte 1)
cp $fe
- jr nc, .canMove ; values $fe and $ff
+ jr nc, .notScripted ; values $fe and $ff
+; always allow walking if the movement is scripted
and a
ret
-.canMove
+.notScripted
ld a, [W_TILESETCOLLISIONPTR]
ld l, a
ld a, [W_TILESETCOLLISIONPTR+1]
@@ -675,7 +684,7 @@ CanWalkOntoTile: ; 516e (1:516e)
; calculates the tile pointer pointing to the tile the current sprite stancs on
; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to
; hl: output pointer
-getTileSpriteStandsOn: ; 5207 (1:5207)
+GetTileSpriteStandsOn: ; 5207 (1:5207)
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $4
@@ -690,11 +699,11 @@ getTileSpriteStandsOn: ; 5207 (1:5207)
ld a, [hl] ; c1x6: screen Y position
srl a
srl a
- srl a ; screen X tile
- add $14 ; screen X tile + 20
+ srl a ; screen X tile
+ add SCREEN_WIDTH ; screen X tile + 20
ld d, $0
ld e, a
- ld hl, wTileMap
+ coord hl, 0, 0
add hl, bc
add hl, bc
add hl, bc
@@ -713,53 +722,58 @@ LoadDEPlusA: ; 522f (1:522f)
ld a, [de]
ret
-Func_5236: ; 5236 (1:5236)
+DoScriptedNPCMovement: ; 5236 (1:5236)
+; This is an alternative method of scripting an NPC's movement and is only used
+; a few times in the game. It is used when the NPC and player must walk together
+; in sync, such as when the player is following the NPC somewhere. An NPC can't
+; be moved in sync with the player using the other method.
ld a, [wd730]
bit 7, a
ret z
ld hl, wd72e
bit 7, [hl]
set 7, [hl]
- jp z, Func_52a6
+ jp z, InitScriptedNPCMovement
ld hl, wNPCMovementDirections2
ld a, [wNPCMovementDirections2Index]
add l
ld l, a
- jr nc, .asm_5251
+ jr nc, .noCarry
inc h
-.asm_5251
+.noCarry
ld a, [hl]
- cp $40
- jr nz, .asm_525f
- call Func_52b2
- ld c, $4
- ld a, $fe
- jr .asm_5289
-.asm_525f
- cp $0
- jr nz, .asm_526c
- call Func_52b2
- ld c, $0
- ld a, $2
- jr .asm_5289
-.asm_526c
- cp $80
- jr nz, .asm_5279
- call Func_52b7
- ld c, $8
- ld a, $fe
- jr .asm_5289
-.asm_5279
- cp $c0
- jr nz, .asm_5286
- call Func_52b7
- ld c, $c
- ld a, $2
- jr .asm_5289
-.asm_5286
+; check if moving up
+ cp NPC_MOVEMENT_UP
+ jr nz, .checkIfMovingDown
+ call GetSpriteScreenYPointer
+ ld c, SPRITE_FACING_UP
+ ld a, -2
+ jr .move
+.checkIfMovingDown
+ cp NPC_MOVEMENT_DOWN
+ jr nz, .checkIfMovingLeft
+ call GetSpriteScreenYPointer
+ ld c, SPRITE_FACING_DOWN
+ ld a, 2
+ jr .move
+.checkIfMovingLeft
+ cp NPC_MOVEMENT_LEFT
+ jr nz, .checkIfMovingRight
+ call GetSpriteScreenXPointer
+ ld c, SPRITE_FACING_LEFT
+ ld a, -2
+ jr .move
+.checkIfMovingRight
+ cp NPC_MOVEMENT_RIGHT
+ jr nz, .noMatch
+ call GetSpriteScreenXPointer
+ ld c, SPRITE_FACING_RIGHT
+ ld a, 2
+ jr .move
+.noMatch
cp $ff
ret
-.asm_5289
+.move
ld b, a
ld a, [hl]
add b
@@ -768,33 +782,34 @@ Func_5236: ; 5236 (1:5236)
add $9
ld l, a
ld a, c
- ld [hl], a
- call Func_52c3
- ld hl, wcf18
+ ld [hl], a ; facing direction
+ call AnimScriptedNPCMovement
+ ld hl, wScriptedNPCWalkCounter
dec [hl]
ret nz
- ld a, $8
- ld [wcf18], a
+ ld a, 8
+ ld [wScriptedNPCWalkCounter], a
ld hl, wNPCMovementDirections2Index
inc [hl]
ret
-Func_52a6: ; 52a6 (1:52a6)
+InitScriptedNPCMovement: ; 52a6 (1:52a6)
xor a
ld [wNPCMovementDirections2Index], a
- ld a, $8
- ld [wcf18], a
- jp Func_52c3
+ ld a, 8
+ ld [wScriptedNPCWalkCounter], a
+ jp AnimScriptedNPCMovement
-Func_52b2: ; 52b2 (1:52b2)
+GetSpriteScreenYPointer: ; 52b2 (1:52b2)
ld a, $4
ld b, a
- jr asm_52ba
+ jr GetSpriteScreenXYPointerCommon
-Func_52b7: ; 52b7 (1:52b7)
+GetSpriteScreenXPointer: ; 52b7 (1:52b7)
ld a, $6
ld b, a
-asm_52ba: ; 52ba (1:52ba)
+
+GetSpriteScreenXYPointerCommon: ; 52ba (1:52ba)
ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add l
@@ -802,12 +817,12 @@ asm_52ba: ; 52ba (1:52ba)
ld l, a
ret
-Func_52c3: ; 52c3 (1:52c3)
+AnimScriptedNPCMovement: ; 52c3 (1:52c3)
ld hl, wSpriteStateData2
ld a, [H_CURRENTSPRITEOFFSET]
add $e
ld l, a
- ld a, [hl]
+ ld a, [hl] ; VRAM slot
dec a
swap a
ld b, a
@@ -815,47 +830,47 @@ Func_52c3: ; 52c3 (1:52c3)
ld a, [H_CURRENTSPRITEOFFSET]
add $9
ld l, a
- ld a, [hl]
- cp $0
- jr z, .asm_52ea
- cp $4
- jr z, .asm_52ea
- cp $8
- jr z, .asm_52ea
- cp $c
- jr z, .asm_52ea
+ ld a, [hl] ; facing direction
+ cp SPRITE_FACING_DOWN
+ jr z, .anim
+ cp SPRITE_FACING_UP
+ jr z, .anim
+ cp SPRITE_FACING_LEFT
+ jr z, .anim
+ cp SPRITE_FACING_RIGHT
+ jr z, .anim
ret
-.asm_52ea
+.anim
add b
ld b, a
- ld [$ffe9], a
- call Func_5301
+ ld [hSpriteVRAMSlotAndFacing], a
+ call AdvanceScriptedNPCAnimFrameCounter
ld hl, wSpriteStateData1
ld a, [H_CURRENTSPRITEOFFSET]
add $2
ld l, a
- ld a, [$ffe9]
+ ld a, [hSpriteVRAMSlotAndFacing]
ld b, a
- ld a, [$ffea]
+ ld a, [hSpriteAnimFrameCounter]
add b
ld [hl], a
ret
-Func_5301: ; 5301 (1:5301)
+AdvanceScriptedNPCAnimFrameCounter: ; 5301 (1:5301)
ld a, [H_CURRENTSPRITEOFFSET]
add $7
ld l, a
- ld a, [hl]
+ ld a, [hl] ; intra-animation frame counter
inc a
ld [hl], a
- cp $4
+ cp 4
ret nz
xor a
- ld [hl], a
+ ld [hl], a ; reset intra-animation frame counter
inc l
- ld a, [hl]
+ ld a, [hl] ; animation frame counter
inc a
and $3
ld [hl], a
- ld [$ffea], a
+ ld [hSpriteAnimFrameCounter], a
ret
diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm
index 84e39853..098be875 100755
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -44,60 +44,66 @@ _EndNPCMovementScript: ; 1a41d (6:641d)
ld [wSimulatedJoypadStatesEnd], a
ret
-ProfOakMovementScriptPointerTable: ; 1a442 (6:6442)
- dw Func_1a44c
- dw Func_1a485
- dw Func_1a4a1
- dw Func_1a4a6
- dw Func_1a4f4
+PalletMovementScriptPointerTable: ; 1a442 (6:6442)
+ dw PalletMovementScript_OakMoveLeft
+ dw PalletMovementScript_PlayerMoveLeft
+ dw PalletMovementScript_WaitAndWalkToLab
+ dw PalletMovementScript_WalkToLab
+ dw PalletMovementScript_Done
-Func_1a44c: ; 1a44c (6:644c)
- ld a, [W_XCOORD] ; wd362
+PalletMovementScript_OakMoveLeft: ; 1a44c (6:644c)
+ ld a, [W_XCOORD]
sub $a
- ld [wcca1], a
- jr z, .asm_1a475
- ld b, $0
+ ld [wNumStepsToTake], a
+ jr z, .playerOnLeftTile
+; The player is on the right tile of the northern path out of Pallet Town and
+; Prof. Oak is below.
+; Make Prof. Oak step to the left.
+ ld b, 0
ld c, a
ld hl, wNPCMovementDirections2
- ld a, $80
+ ld a, NPC_MOVEMENT_LEFT
call FillMemory
ld [hl], $ff
ld a, [wSpriteIndex]
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
ld de, wNPCMovementDirections2
call MoveSprite
ld a, $1
ld [wNPCMovementScriptFunctionNum], a
- jr .asm_1a47a
-.asm_1a475
+ jr .done
+; The player is on the left tile of the northern path out of Pallet Town and
+; Prof. Oak is below.
+; Prof. Oak is already where he needs to be.
+.playerOnLeftTile
ld a, $3
ld [wNPCMovementScriptFunctionNum], a
-.asm_1a47a
+.done
ld hl, W_FLAGS_D733
set 1, [hl]
ld a, $fc
ld [wJoyIgnore], a
ret
-Func_1a485: ; 1a485 (6:6485)
+PalletMovementScript_PlayerMoveLeft: ; 1a485 (6:6485)
ld a, [wd730]
- bit 0, a
- ret nz
- ld a, [wcca1]
+ bit 0, a ; is an NPC being moved by a script?
+ ret nz ; return if Oak is still moving
+ ld a, [wNumStepsToTake]
ld [wSimulatedJoypadStatesIndex], a
- ld [$ff95], a
+ ld [hNPCMovementDirections2Index], a
predef ConvertNPCMovementDirectionsToJoypadMasks
call StartSimulatingJoypadStates
ld a, $2
ld [wNPCMovementScriptFunctionNum], a
ret
-Func_1a4a1: ; 1a4a1 (6:64a1)
+PalletMovementScript_WaitAndWalkToLab: ; 1a4a1 (6:64a1)
ld a, [wSimulatedJoypadStatesIndex]
- and a
+ and a ; is the player done moving left yet?
ret nz
-Func_1a4a6: ; 1a4a6 (6:64a6)
+PalletMovementScript_WalkToLab: ; 1a4a6 (6:64a6)
xor a
ld [wOverrideSimulatedJoypadStatesMask], a
ld a, [wSpriteIndex]
@@ -122,12 +128,12 @@ Func_1a4a6: ; 1a4a6 (6:64a6)
ret
RLEList_ProfOakWalkToLab: ; 1a4dc (6:64dc)
- db $00, $05
- db $80, $01
- db $00, $05
- db $C0, $03
- db $40, $01
- db $E0, $01
+ db NPC_MOVEMENT_DOWN, $05
+ db NPC_MOVEMENT_LEFT, $01
+ db NPC_MOVEMENT_DOWN, $05
+ db NPC_MOVEMENT_RIGHT, $03
+ db NPC_MOVEMENT_UP, $01
+ db $E0, $01 ; stand still
db $FF
RLEList_PlayerWalkToLab: ; 1a4e9 (6:64e9)
@@ -138,12 +144,12 @@ RLEList_PlayerWalkToLab: ; 1a4e9 (6:64e9)
db D_DOWN, $06
db $FF
-Func_1a4f4: ; 1a4f4 (6:64f4)
+PalletMovementScript_Done: ; 1a4f4 (6:64f4)
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
ld a, $0
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld hl, wd730
res 7, [hl]
@@ -152,15 +158,15 @@ Func_1a4f4: ; 1a4f4 (6:64f4)
jp EndNPCMovementScript
PewterMuseumGuyMovementScriptPointerTable: ; 1a510 (6:6510)
- dw Func_1a514
- dw PewterMovementScriptDone
+ dw PewterMovementScript_WalkToMuseum
+ dw PewterMovementScript_Done
-Func_1a514: ; 1a514 (6:6514)
+PewterMovementScript_WalkToMuseum: ; 1a514 (6:6514)
ld a, BANK(Music_MuseumGuy)
- ld [wc0ef], a
- ld [wc0f0], a
+ ld [wAudioROMBank], a
+ ld [wAudioSavedROMBank], a
ld a, MUSIC_MUSEUM_GUY
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld a, [wSpriteIndex]
swap a
@@ -172,7 +178,7 @@ Func_1a514: ; 1a514 (6:6514)
dec a
ld [wSimulatedJoypadStatesIndex], a
xor a
- ld [wd12f], a
+ ld [wWhichPewterGuy], a
predef PewterGuys
ld hl, wNPCMovementDirections2
ld de, RLEList_PewterMuseumGuy
@@ -191,13 +197,13 @@ RLEList_PewterMuseumPlayer: ; 1a559 (6:6559)
db $FF
RLEList_PewterMuseumGuy: ; 1a562 (6:6562)
- db $40, $06
- db $80, $0D
- db $40, $03
- db $80, $01
+ db NPC_MOVEMENT_UP, $06
+ db NPC_MOVEMENT_LEFT, $0D
+ db NPC_MOVEMENT_UP, $03
+ db NPC_MOVEMENT_LEFT, $01
db $FF
-PewterMovementScriptDone: ; 1a56b (6:656b)
+PewterMovementScript_Done: ; 1a56b (6:656b)
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
@@ -208,15 +214,15 @@ PewterMovementScriptDone: ; 1a56b (6:656b)
jp EndNPCMovementScript
PewterGymGuyMovementScriptPointerTable: ; 1a57d (6:657d)
- dw Func_1a581
- dw PewterMovementScriptDone
+ dw PewterMovementScript_WalkToGym
+ dw PewterMovementScript_Done
-Func_1a581: ; 1a581 (6:6581)
+PewterMovementScript_WalkToGym: ; 1a581 (6:6581)
ld a, BANK(Music_MuseumGuy)
- ld [wc0ef], a
- ld [wc0f0], a
+ ld [wAudioROMBank], a
+ ld [wAudioSavedROMBank], a
ld a, MUSIC_MUSEUM_GUY
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld a, [wSpriteIndex]
swap a
@@ -228,8 +234,8 @@ Func_1a581: ; 1a581 (6:6581)
call DecodeRLEList
dec a
ld [wSimulatedJoypadStatesIndex], a
- ld a, $1
- ld [wd12f], a
+ ld a, 1
+ ld [wWhichPewterGuy], a
predef PewterGuys
ld hl, wNPCMovementDirections2
ld de, RLEList_PewterGymGuy
@@ -252,12 +258,12 @@ RLEList_PewterGymPlayer: ; 1a5cd (6:65cd)
db $FF
RLEList_PewterGymGuy: ; 1a5da (6:65da)
- db $00, $02
- db $80, $0F
- db $40, $05
- db $80, $0B
- db $00, $05
- db $C0, $03
+ db NPC_MOVEMENT_DOWN, $02
+ db NPC_MOVEMENT_LEFT, $0F
+ db NPC_MOVEMENT_UP, $05
+ db NPC_MOVEMENT_LEFT, $0B
+ db NPC_MOVEMENT_DOWN, $05
+ db NPC_MOVEMENT_RIGHT, $03
db $FF
FreezeEnemyTrainerSprite: ; 1a5e7 (6:65e7)
@@ -280,7 +286,7 @@ FreezeEnemyTrainerSprite: ; 1a5e7 (6:65e7)
jp SetSpriteMovementBytesToFF
RivalIDs: ; 1a605 (6:6605)
- db SONY1 + $c8
- db SONY2 + $c8
- db SONY3 + $c8
+ db OPP_SONY1
+ db OPP_SONY2
+ db OPP_SONY3
db $ff
diff --git a/engine/overworld/oaks_aide.asm b/engine/overworld/oaks_aide.asm
index 68135287..8ac456d2 100755
--- a/engine/overworld/oaks_aide.asm
+++ b/engine/overworld/oaks_aide.asm
@@ -1,48 +1,48 @@
-OaksAideScript ; 0x59035
+OaksAideScript: ; 0x59035
ld hl, OaksAideHiText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_59086 ; 0x59042 $42
+ jr nz, .choseNo
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [wd11e]
- ld [$ffdd], a
+ ld a, [wNumSetBits]
+ ld [hOaksAideNumMonsOwned], a
ld b, a
- ld a, [$ffdb]
+ ld a, [hOaksAideRequirement]
cp b
- jr z, .asm_59059 ; 0x59055 $2
- jr nc, .asm_5907c ; 0x59057 $23
-.asm_59059
+ jr z, .giveItem
+ jr nc, .notEnoughOwnedMons
+.giveItem
ld hl, OaksAideHereYouGoText
call PrintText
- ld a, [$ffdc]
+ ld a, [hOaksAideRewardItem]
ld b, a
ld c, 1
call GiveItem
- jr nc, .BagFull
+ jr nc, .bagFull
ld hl, OaksAideGotItemText
call PrintText
ld a, $1
- jr .asm_5908e ; 0x59071 $1b
-.BagFull
+ jr .done
+.bagFull
ld hl, OaksAideNoRoomText
call PrintText
xor a
- jr .asm_5908e ; 0x5907a $12
-.asm_5907c
+ jr .done
+.notEnoughOwnedMons
ld hl, OaksAideUhOhText
call PrintText
ld a, $80
- jr .asm_5908e ; 0x59084 $8
-.asm_59086
+ jr .done
+.choseNo
ld hl, OaksAideComeBackText
call PrintText
ld a, $ff
-.asm_5908e
- ld [$ffdb], a
+.done
+ ld [hOaksAideResult], a
ret
OaksAideHiText: ; 59091 (16:5091)
diff --git a/engine/overworld/oam.asm b/engine/overworld/oam.asm
index 71eb297c..ff85eb3e 100644
--- a/engine/overworld/oam.asm
+++ b/engine/overworld/oam.asm
@@ -4,25 +4,26 @@ PrepareOAMData:
ld a, [wUpdateSpritesEnabled]
dec a
- jr z, .asm_4b1e
+ jr z, .updateEnabled
cp 0 - 1
ret nz
ld [wUpdateSpritesEnabled], a
jp HideSprites
-.asm_4b1e
+.updateEnabled
xor a
- ld [$ff90], a
-.asm_4b21
- ld [$ff8f], a
+ ld [hOAMBufferOffset], a
+
+.spriteLoop
+ ld [hSpriteOffset2], a
ld d, wSpriteStateData1 / $100
- ld a, [$ff8f]
+ ld a, [hSpriteOffset2]
ld e, a
ld a, [de] ; c1x0
and a
- jp z, .asm_4bad
+ jp z, .nextSprite
inc e
inc e
@@ -31,21 +32,25 @@ PrepareOAMData:
cp $ff ; off-screen (don't draw)
jr nz, .visible
- call Func_4bd1
- jr .asm_4bad
+ call GetSpriteScreenXY
+ jr .nextSprite
.visible
- cp $a0
+ cp $a0 ; is the sprite unchanging like an item ball or boulder?
jr c, .usefacing
+
+; unchanging
and $f
- add $10
- jr .asm_4b48
+ add $10 ; skip to the second half of the table which doesn't account for facing direction
+ jr .next
.usefacing
and $f
-.asm_4b48
+
+.next
ld l, a
+; get sprite priority
push de
inc d
ld a, e
@@ -53,15 +58,15 @@ PrepareOAMData:
ld e, a
ld a, [de] ; c2x7
and $80
- ld [$ff94], a ; temp store sprite priority
+ ld [hSpritePriority], a ; temp store sprite priority
pop de
+; read the entry from the table
ld h, 0
ld bc, SpriteFacingAndAnimationTable
add hl, hl
add hl, hl
add hl, bc
-
ld a, [hli]
ld c, a
ld a, [hli]
@@ -70,24 +75,25 @@ PrepareOAMData:
ld h, [hl]
ld l, a
- call Func_4bd1
+ call GetSpriteScreenXY
- ld a, [$ff90]
+ ld a, [hOAMBufferOffset]
ld e, a
ld d, wOAMBuffer / $100
-.tile
- ld a, [$ff92] ; temp for sprite Y position
+
+.tileLoop
+ ld a, [hSpriteScreenY] ; temp for sprite Y position
add $10 ; Y=16 is top of screen (Y=0 is invisible)
add [hl] ; add Y offset from table
ld [de], a ; write new sprite OAM Y position
inc hl
- ld a, [$ff91] ; temp for sprite X position
+ ld a, [hSpriteScreenX] ; temp for sprite X position
add $8 ; X=8 is left of screen (X=0 is invisible)
add [hl] ; add X offset from table
inc e
ld [de], a ; write new sprite OAM X position
inc e
- ld a, [bc] ; read pattern number offset (accomodates orientation (offset 0,4 or 8) and animation (offset 0 or $80))
+ ld a, [bc] ; read pattern number offset (accommodates orientation (offset 0,4 or 8) and animation (offset 0 or $80))
inc bc
push bc
ld b, a
@@ -99,55 +105,60 @@ PrepareOAMData:
; Sprites $a and $b have one face (and therefore 4 tiles instead of 12).
; As a result, sprite $b's tile offset is less than normal.
cp $b
- jr nz, .offset
+ jr nz, .notFourTileSprite
ld a, $a * 12 + 4
- jr .gotoffset
+ jr .next2
-.offset
+.notFourTileSprite
; a *= 12
sla a
sla a
ld c, a
sla a
add c
-.gotoffset
- add b ; which frame
+
+.next2
+ add b ; add the tile offset from the table (based on frame and facing direction)
pop bc
ld [de], a ; tile id
inc hl
inc e
ld a, [hl]
- bit 1, a ; sprite priority
- jr z, .fg
- ld a, [$ff94] ; facing priority
+ bit 1, a ; is the tile allowed to set the sprite priority bit?
+ jr z, .skipPriority
+ ld a, [hSpritePriority]
or [hl]
-.fg
+.skipPriority
inc hl
ld [de], a
inc e
bit 0, a ; OAMFLAG_ENDOFDATA
- jr z, .tile
+ jr z, .tileLoop
ld a, e
- ld [$ff90], a
+ ld [hOAMBufferOffset], a
-.asm_4bad
- ld a, [$ff8f]
+.nextSprite
+ ld a, [hSpriteOffset2]
add $10
cp $100 % $100
- jp nz, .asm_4b21
+ jp nz, .spriteLoop
; Clear unused OAM.
- ld a, [$ff90]
+ ld a, [hOAMBufferOffset]
ld l, a
ld h, wOAMBuffer / $100
ld de, $4
ld b, $a0
ld a, [wd736]
- bit 6, a
+ bit 6, a ; jumping down ledge or fishing animation?
ld a, $a0
jr z, .clear
+
+; Don't clear the last 4 entries because they are used for the shadow in the
+; jumping down ledge animation and the rod in the fishing animation.
ld a, $90
+
.clear
cp l
ret z
@@ -155,24 +166,24 @@ PrepareOAMData:
add hl, de
jr .clear
-Func_4bd1: ; 4bd1 (1:4bd1)
+GetSpriteScreenXY: ; 4bd1 (1:4bd1)
inc e
inc e
ld a, [de] ; c1x4
- ld [$ff92], a
+ ld [hSpriteScreenY], a
inc e
inc e
ld a, [de] ; c1x6
- ld [$ff91], a
- ld a, $4
+ ld [hSpriteScreenX], a
+ ld a, 4
add e
ld e, a
- ld a, [$ff92]
- add $4
+ ld a, [hSpriteScreenY]
+ add 4
and $f0
ld [de], a ; c1xa (y)
inc e
- ld a, [$ff91]
+ ld a, [hSpriteScreenX]
and $f0
ld [de], a ; c1xb (x)
ret
diff --git a/engine/overworld/pewter_guys.asm b/engine/overworld/pewter_guys.asm
index eb6dd5ac..4ac60e00 100755
--- a/engine/overworld/pewter_guys.asm
+++ b/engine/overworld/pewter_guys.asm
@@ -9,7 +9,7 @@ PewterGuys: ; 37ca1 (d:7ca1)
ld d, h
ld e, l
ld hl, PointerTable_37ce6
- ld a, [wd12f]
+ ld a, [wWhichPewterGuy]
add a
ld b, 0
ld c, a
@@ -21,17 +21,17 @@ PewterGuys: ; 37ca1 (d:7ca1)
ld b, a
ld a, [W_XCOORD]
ld c, a
-.asm_37cc7
+.findMatchingCoordsLoop
ld a, [hli]
cp b
- jr nz, .asm_37ce1
+ jr nz, .nextEntry1
ld a, [hli]
cp c
- jr nz, .asm_37ce2
+ jr nz, .nextEntry2
ld a, [hli]
ld h, [hl]
ld l, a
-.asm_37cd2
+.copyMovementDataLoop
ld a, [hli]
cp $ff
ret z
@@ -40,13 +40,13 @@ PewterGuys: ; 37ca1 (d:7ca1)
ld a, [wSimulatedJoypadStatesIndex]
inc a
ld [wSimulatedJoypadStatesIndex], a
- jr .asm_37cd2
-.asm_37ce1
+ jr .copyMovementDataLoop
+.nextEntry1
inc hl
-.asm_37ce2
+.nextEntry2
inc hl
inc hl
- jr .asm_37cc7
+ jr .findMatchingCoordsLoop
PointerTable_37ce6: ; 37ce6 (d:7ce6)
dw PewterMuseumGuyCoords
@@ -66,17 +66,18 @@ PewterMuseumGuyCoords: ; 37cea (d:7cea)
dw .right
.down
- db $40, $40, $ff
+ db D_UP, D_UP, $ff
.up
- db $10, $20, $ff
+ db D_RIGHT, D_LEFT, $ff
.left
- db $40, $10, $ff
+ db D_UP, D_RIGHT, $ff
.right
- db $40, $20, $ff
+ db D_UP, D_LEFT, $ff
; these are the five coordinates which trigger the gym guy and pointers to
; different movements for the player to make to get positioned before the
; main movement
+; $00 is a pause
PewterGymGuyCoords: ; 37d06 (d:7d06)
db 16, 34
dw .one
@@ -90,12 +91,12 @@ PewterGymGuyCoords: ; 37d06 (d:7d06)
dw .five
.one
- db $20, $80, $80, $10, $ff
+ db D_LEFT, D_DOWN, D_DOWN, D_RIGHT, $ff
.two
- db $20, $80, $10, $20, $ff
+ db D_LEFT, D_DOWN, D_RIGHT, D_LEFT, $ff
.three
- db $20, $20, $20, $00, $00, $00, $00, $00, $00, $00, $00, $ff
+ db D_LEFT, D_LEFT, D_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff
.four
- db $20, $20, $40, $20, $ff
+ db D_LEFT, D_LEFT, D_UP, D_LEFT, $ff
.five
- db $20, $80, $20, $00, $00, $00, $00, $00, $00, $00, $00, $ff
+ db D_LEFT, D_DOWN, D_LEFT, $00, $00, $00, $00, $00, $00, $00, $00, $ff
diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm
index fc0a3a6c..05be3d1d 100755
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -1,5 +1,5 @@
EnterMapAnim: ; 70567 (1c:4567)
- call InitFacingDirectionBuffer
+ call InitFacingDirectionList
ld a, $ec
ld [wSpriteStateData1 + 4], a ; player's sprite Y screen position
call Delay3
@@ -32,7 +32,7 @@ EnterMapAnim: ; 70567 (1c:4567)
ld a, $8
ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayEndValue
ld [hl], $ff ; wPlayerSpinInPlaceAnimSoundID
- ld hl, wcd48
+ ld hl, wFacingDirectionList
call PlayerSpinInPlace
ld a, $1
ld [wd431], a
@@ -50,12 +50,8 @@ EnterMapAnim: ; 70567 (1c:4567)
jr .done
.flyAnimation
pop hl
- ;ld de, BirdSprite
- ;ld hl, vNPCSprites
- ;ld bc, (BANK(BirdSprite) << 8) + $0c
- ;call CopyVideoData
call LoadBirdSpriteGraphics
- ld a, $a4 ; (SFX_02_50 - SFX_Headers_02) / 3
+ ld a, $a4 ; SFX_BIRD_FLY
call PlaySound
ld hl, wFlyAnimUsingCoordList
xor a ; is using coord list
@@ -63,7 +59,7 @@ EnterMapAnim: ; 70567 (1c:4567)
ld a, 12
ld [hli], a ; wFlyAnimCounter
ld [hl], $8 ; wFlyAnimBirdSpriteImageIndex (facing right)
- ld de, FlyAnimationEnterScreenCoords ; $4592
+ ld de, FlyAnimationEnterScreenCoords
call DoFlyAnimation
call LoadPlayerSpriteGraphics
ld a, $1
@@ -97,9 +93,10 @@ PlayerSpinWhileMovingDown: ; 70605 (1c:4605)
ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay
jp PlayerSpinWhileMovingUpOrDown
+
_LeaveMapAnim: ; 70615 (1c:4615)
call Func_1510
- call InitFacingDirectionBuffer
+ call InitFacingDirectionList
call IsPlayerStandingOnWarpPadOrHole
ld a, b
and a
@@ -141,8 +138,8 @@ _LeaveMapAnim: ; 70615 (1c:4615)
ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayDelta
xor a
ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayEndValue
- ld [hl], $a1 ; (SFX_02_4d - SFX_Headers_02) / 3 ; wPlayerSpinInPlaceAnimSoundID
- ld hl, wcd48
+ ld [hl], $a1 ; SFX_TELEPORT_EXIT_2
+ ld hl, wFacingDirectionList
call PlayerSpinInPlace
jr .spinWhileMovingUp
.flyAnimation
@@ -154,7 +151,7 @@ _LeaveMapAnim: ; 70615 (1c:4615)
ld [hli], a ; wFlyAnimCounter
ld [hl], $c ; wFlyAnimBirdSpriteImageIndex
call DoFlyAnimation
- ld a, $a4 ; (SFX_02_50 - SFX_Headers_02) / 3
+ ld a, $a4 ; SFX_FLY
call PlaySound
ld hl, wFlyAnimUsingCoordList
xor a ; is using coord list
@@ -162,7 +159,7 @@ _LeaveMapAnim: ; 70615 (1c:4615)
ld a, $c
ld [hli], a ; wFlyAnimCounter
ld [hl], $c ; wFlyAnimBirdSpriteImageIndex (facing right)
- ld de, FlyAnimationScreenCoords1 ; $464f
+ ld de, FlyAnimationScreenCoords1
call DoFlyAnimation
ld c, 40
call DelayFrames
@@ -170,7 +167,7 @@ _LeaveMapAnim: ; 70615 (1c:4615)
ld a, 11
ld [hli], a ; wFlyAnimCounter
ld [hl], $8 ; wFlyAnimBirdSpriteImageIndex (facing left)
- ld de, FlyAnimationScreenCoords2 ; $4667
+ ld de, FlyAnimationScreenCoords2
call DoFlyAnimation
call GBFadeOutToWhite
jp RestoreFacingDirectionAndYScreenPos
@@ -222,7 +219,7 @@ LeaveMapThroughHoleAnim: ; 706db (1c:46db)
ld [wOAMBuffer + 1 * 4], a
ld c, 2
call DelayFrames
- ; hide lower half of player's sprite
+ ; hide upper half of player's sprite
ld a, $a0
ld [wOAMBuffer + 2 * 4], a
ld [wOAMBuffer + 3 * 4], a
@@ -239,7 +236,7 @@ DoFlyAnimation: ; 7070c (1c:470c)
call Delay3
ld a, [wFlyAnimUsingCoordList]
cp $ff
- jr z, .asm_7072b
+ jr z, .skipCopyingCoords ; if the bird is flapping its wings in place
ld hl, wSpriteStateData1 + 4
ld a, [de]
inc de
@@ -248,7 +245,7 @@ DoFlyAnimation: ; 7070c (1c:470c)
ld a, [de]
inc de
ld [hl], a
-.asm_7072b
+.skipCopyingCoords
ld a, [wFlyAnimCounter]
dec a
ld [wFlyAnimCounter], a
@@ -258,7 +255,7 @@ DoFlyAnimation: ; 7070c (1c:470c)
LoadBirdSpriteGraphics: ; 70735 (1c:4735)
ld de, BirdSprite ; $4d80
ld b, BANK(BirdSprite)
- ld c,$c
+ ld c, $c
ld hl, vNPCSprites
call CopyVideoData
ld de, BirdSprite + $c0 ; $4e40 ; moving amination sprite
@@ -267,17 +264,18 @@ LoadBirdSpriteGraphics: ; 70735 (1c:4735)
ld hl, vNPCSprites2
jp CopyVideoData
-InitFacingDirectionBuffer: ; 7074f (1c:474f)
+InitFacingDirectionList: ; 7074f (1c:474f)
ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction (image index is locked to standing images)
- ld [wcd50], a
+ ld [wSavedPlayerFacingDirection], a
ld a, [wSpriteStateData1 + 4] ; player's sprite Y screen position
- ld [wcd4f], a
+ ld [wSavedPlayerScreenY], a
ld hl, PlayerSpinningFacingOrder
- ld de, wcd48
- ld bc, $4
+ ld de, wFacingDirectionList
+ ld bc, 4
call CopyData
ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction (image index is locked to standing images)
- ld hl, wcd48
+ ld hl, wFacingDirectionList
+; find the place in the list that matches the current facing direction
.loop
cp [hl]
inc hl
@@ -291,15 +289,16 @@ PlayerSpinningFacingOrder: ; 70773 (1c:4773)
db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT
SpinPlayerSprite: ; 70777 (1c:4777)
+; copy the current value from the list into the sprite data and rotate the list
ld a, [hl]
ld [wSpriteStateData1 + 2], a ; player's sprite facing direction (image index is locked to standing images)
push hl
- ld hl, wcd48
- ld de, wcd47
- ld bc, $4
+ ld hl, wFacingDirectionList
+ ld de, wFacingDirectionList - 1
+ ld bc, 4
call CopyData
- ld a, [wcd47]
- ld [wcd4b], a
+ ld a, [wFacingDirectionList - 1]
+ ld [wFacingDirectionList + 3], a
pop hl
ret
@@ -308,11 +307,12 @@ PlayerSpinInPlace: ; 70790 (1c:4790)
ld a, [wPlayerSpinInPlaceAnimFrameDelay]
ld c, a
and $3
- jr nz, .asm_707a3
+ jr nz, .skipPlayingSound
+; when the last delay was a multiple of 4, play a sound if there is one
ld a, [wPlayerSpinInPlaceAnimSoundID]
cp $ff
call nz, PlaySound
-.asm_707a3
+.skipPlayingSound
ld a, [wPlayerSpinInPlaceAnimFrameDelayDelta]
add c
ld [wPlayerSpinInPlaceAnimFrameDelay], a
@@ -340,9 +340,9 @@ PlayerSpinWhileMovingUpOrDown: ; 707b5 (1c:47b5)
jr PlayerSpinWhileMovingUpOrDown
RestoreFacingDirectionAndYScreenPos: ; 707d2 (1c:47d2)
- ld a, [wcd4f]
+ ld a, [wSavedPlayerScreenY]
ld [wSpriteStateData1 + 4], a
- ld a, [wcd50]
+ ld a, [wSavedPlayerFacingDirection]
ld [wSpriteStateData1 + 2], a
ret
@@ -377,10 +377,10 @@ IsPlayerStandingOnWarpPadOrHole: ; 707e7 (1c:47e7)
ld b, [hl]
.done
ld a, b
- ld [wcd5b], a
+ ld [wStandingOnWarpPadOrHole], a
ret
-; format: db tileset id, tile id, value to be put in wcd5b
+; format: db tileset id, tile id, value to be put in [wStandingOnWarpPadOrHole]
.warpPadAndHoleData: ; 70809 (1c:4809)
db FACILITY, $20, 1 ; warp pad
db FACILITY, $11, 2 ; hole
@@ -388,8 +388,8 @@ IsPlayerStandingOnWarpPadOrHole: ; 707e7 (1c:47e7)
db INTERIOR, $55, 1 ; warp pad
db $FF
-Func_70816: ; 70816 (1c:4816)
- ld c, $a
+FishingAnim: ; 70816 (1c:4816)
+ ld c, 10
call DelayFrames
ld hl, wd736
set 6, [hl]
@@ -399,60 +399,72 @@ Func_70816: ; 70816 (1c:4816)
ld c, $c
call CopyVideoData
ld a, $4
- ld hl, RedFishingTiles ; $4866
+ ld hl, RedFishingTiles
call LoadAnimSpriteGfx
ld a, [wSpriteStateData1 + 2]
ld c, a
ld b, $0
- ld hl, FishingRodGfxProperties ; $4856
+ ld hl, FishingRodOAM
add hl, bc
ld de, wOAMBuffer + $9c
ld bc, $4
call CopyData
ld c, 100
call DelayFrames
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wRodResponse]
and a
ld hl, NoNibbleText
- jr z, .asm_70897
+<<<<<<< HEAD
+ jr z, .done
cp $2
ld hl, NothingHereText
- jr z, .asm_70897
- ld b, $a
-.asm_7085f
- ld hl, wSpriteStateData1 + 4
- call Func_708a3
+ jr z, .done
+
+; there was a bite
+
+; shake the player's sprite vertically
+
+ ld b, 10
+.loop
+ ld hl, wSpriteStateData1 + 4 ; player's sprite Y screen position
+ call .ShakePlayerSprite
ld hl, wOAMBuffer + $9c
- call Func_708a3
+ call .ShakePlayerSprite
call Delay3
dec b
- jr nz, .asm_7085f
+ jr nz, .loop
+
+; If the player is facing up, hide the fishing rod so it doesn't overlap with
+; the exclamation bubble that will be shown next.
ld a, [wSpriteStateData1 + 2]
- cp $4
- jr nz, .asm_7087d
+ cp SPRITE_FACING_UP
+ jr nz, .skipHidingFishingRod
ld a, $a0
ld [wOAMBuffer + $9c], a
-.asm_7087d
- ld hl, wcd4f
+.skipHidingFishingRod
+ ld hl, wEmotionBubbleSpriteIndex
xor a
- ld [hli], a
- ld [hl], a
+ ld [hli], a ; player's sprite
+ ld [hl], a ; EXCLAMATION_BUBBLE
predef EmotionBubble
- ld a, [wSpriteStateData1 + 2]
- cp $4
- jr nz, .asm_70894
+; If the player is facing up, unhide the fishing rod.
+ ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction
+ cp SPRITE_FACING_UP
+ jr nz, .skipUnhidingFishingRod
ld a, $44
ld [wOAMBuffer + $9c], a
-.asm_70894
+
+.skipUnhidingFishingRod
ld hl, ItsABiteText
-.asm_70897
+
+.done
call PrintText
ld hl, wd736
- res 6, [hl]
+ res 6, [hl] ; unreserve the last 4 OAM entries
call LoadFontTilePatterns
ret
-Func_708a3: ; 708a3 (1c:48a3)
+.ShakePlayerSprite ; 708a3 (1c:48a3)
ld a, [hl]
xor $1
ld [hl], a
@@ -470,7 +482,7 @@ ItsABiteText: ; 708b2 (1c:48b2)
TX_FAR _ItsABiteText
db "@"
-FishingRodGfxProperties: ; 708b7 (1c:48b7)
+FishingRodOAM: ; 708b7 (1c:48b7)
; specifies how the fishing rod should be drawn on the screen
; first byte = screen y coordinate
; second byte = screen x coordinate
diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm
index 3c640d8e..f302d994 100755
--- a/engine/overworld/pokecenter.asm
+++ b/engine/overworld/pokecenter.asm
@@ -24,12 +24,12 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6)
predef HealParty
callba AnimateHealingMachine ; do the healing machine animation
xor a
- ld [wMusicHeaderPointer], a
- ld a, [wc0f0]
- ld [wc0ef], a
- ld a, [wd35b]
- ld [wcfca], a
- ld [wc0ee], a
+ ld [wAudioFadeOutControl], a
+ ld a, [wAudioSavedROMBank]
+ ld [wAudioROMBank], a
+ ld a, [wMapMusicSoundID]
+ ld [wLastMusicSoundID], a
+ ld [wNewSoundID], a
call PlaySound
ld hl, PokemonFightingFitText
call PrintText
@@ -43,7 +43,7 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6)
.done
ld hl, PokemonCenterFarewellText
call PrintText
- jp UpdateSprites ; move sprites
+ jp UpdateSprites
PokemonCenterWelcomeText: ; 705d (1:705d)
TX_FAR _PokemonCenterWelcomeText
diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm
index 8325b93f..ae96c4a9 100755
--- a/engine/overworld/pokemart.asm
+++ b/engine/overworld/pokemart.asm
@@ -1,30 +1,34 @@
DisplayPokemartDialogue_: ; 6c20 (1:6c20)
ld a,[wListScrollOffset]
- ld [wd07e],a
- call UpdateSprites ; move sprites
+ ld [wSavedListScrollOffset],a
+ call UpdateSprites
xor a
- ld [wcf0a],a ; flag that is set if something is sold or bought
+ ld [wBoughtOrSoldItemInMart],a
.loop
xor a
ld [wListScrollOffset],a
ld [wCurrentMenuItem],a
ld [wPlayerMonNumber],a
inc a
- ld [wcf93],a
+ ld [wPrintItemPrices],a
ld a,MONEY_BOX
ld [wTextBoxID],a
- call DisplayTextBoxID ; draw money text box
+ call DisplayTextBoxID
ld a,BUY_SELL_QUIT_MENU
ld [wTextBoxID],a
- call DisplayTextBoxID ; do buy/sell/quit menu
- ld hl,wd128 ; pointer to this pokemart's inventory
+ call DisplayTextBoxID
+
+; This code is useless. It copies the address of the pokemart's inventory to hl,
+; but the address is never used.
+ ld hl,wItemListPointer
ld a,[hli]
ld l,[hl]
- ld h,a ; hl = address of inventory
- ld a,[wd12e]
- cp a,$02
+ ld h,a
+
+ ld a,[wMenuExitMethod]
+ cp a,CANCELLED_MENU
jp z,.done
- ld a,[wd12d] ; ID of the chosen menu item
+ ld a,[wChosenMenuItem]
and a ; buying?
jp z,.buyMenu
dec a ; selling?
@@ -32,11 +36,14 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
dec a ; quitting?
jp z,.done
.sellMenu
+
+; the same variables are set again below, so this code has no effect
xor a
- ld [wcf93],a
- ld a,$02
- ld [wd11b],a
- callab Func_39bd5
+ ld [wPrintItemPrices],a
+ ld a,INIT_BAG_ITEM_LIST
+ ld [wInitListType],a
+ callab InitList
+
ld a,[wNumBagItems]
and a
jp z,.bagEmpty
@@ -50,19 +57,19 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call DisplayTextBoxID ; draw money text box
ld hl,wNumBagItems
ld a,l
- ld [wList],a
+ ld [wListPointer],a
ld a,h
- ld [wList + 1],a
+ ld [wListPointer + 1],a
xor a
- ld [wcf93],a
+ ld [wPrintItemPrices],a
ld [wCurrentMenuItem],a
ld a,ITEMLISTMENU
ld [wListMenuID],a
call DisplayListMenuID
jp c,.returnToMainPokemartMenu ; if the player closed the menu
.confirmItemSale ; if the player is trying to sell a specific item
- call IsKeyItem ; check if item is unsellable
- ld a,[wd124]
+ call IsKeyItem
+ ld a,[wIsKeyItem]
and a
jr nz,.unsellableItem
ld a,[wcf91]
@@ -70,30 +77,34 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
jr c,.unsellableItem
ld a,PRICEDITEMLISTMENU
ld [wListMenuID],a
- ld [$ff8e],a ; halve prices when selling
+ ld [hHalveItemPrices],a ; halve prices when selling
call DisplayChooseQuantityMenu
inc a
jr z,.sellMenuLoop ; if the player closed the choose quantity menu with the B button
ld hl,PokemartTellSellPriceText
- ld bc,$0e01
+ lb bc, 14, 1 ; location that PrintText always prints to, this is useless
call PrintText
- hlCoord 14, 7
- ld bc,$080f
+ coord hl, 14, 7
+ lb bc, 08, 15
ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
- ld a,[wd12e]
- cp a,$02
- jr z,.sellMenuLoop ; if the player pressed the B button
- ld a,[wd12d] ; ID of the chosen menu item
+ ld a,[wMenuExitMethod]
+ cp a,CHOSE_SECOND_ITEM
+ jr z,.sellMenuLoop ; if the player chose No or pressed the B button
+
+; The following code is supposed to check if the player chose No, but the above
+; check already catches it.
+ ld a,[wChosenMenuItem]
dec a
- jr z,.sellMenuLoop ; if the player chose No
+ jr z,.sellMenuLoop
+
.sellItem
- ld a,[wcf0a] ; flag that is set if something is sold or bought
+ ld a,[wBoughtOrSoldItemInMart]
and a
jr nz,.skipSettingFlag1
inc a
- ld [wcf0a],a
+ ld [wBoughtOrSoldItemInMart],a
.skipSettingFlag1
call AddAmountSoldToMoney
ld hl,wNumBagItems
@@ -106,39 +117,42 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
.bagEmpty
ld hl,PokemartItemBagEmptyText
call PrintText
- call SaveScreenTilesToBuffer1 ; save screen
+ call SaveScreenTilesToBuffer1
jp .returnToMainPokemartMenu
.buyMenu
- ld a,$01
- ld [wcf93],a
- ld a,$03
- ld [wd11b],a
- callab Func_39bd5
+
+; the same variables are set again below, so this code has no effect
+ ld a,1
+ ld [wPrintItemPrices],a
+ ld a,INIT_OTHER_ITEM_LIST
+ ld [wInitListType],a
+ callab InitList
+
ld hl,PokemartBuyingGreetingText
call PrintText
- call SaveScreenTilesToBuffer1 ; save screen
+ call SaveScreenTilesToBuffer1
.buyMenuLoop
- call LoadScreenTilesFromBuffer1 ; restore saved screen
+ call LoadScreenTilesFromBuffer1
ld a,MONEY_BOX
ld [wTextBoxID],a
- call DisplayTextBoxID ; draw money text box
- ld hl,wStringBuffer2 + 11
+ call DisplayTextBoxID
+ ld hl,wItemList
ld a,l
- ld [wList],a
+ ld [wListPointer],a
ld a,h
- ld [wList + 1],a
+ ld [wListPointer + 1],a
xor a
ld [wCurrentMenuItem],a
inc a
- ld [wcf93],a
+ ld [wPrintItemPrices],a
inc a ; a = 2 (PRICEDITEMLISTMENU)
ld [wListMenuID],a
call DisplayListMenuID
jr c,.returnToMainPokemartMenu ; if the player closed the menu
- ld a,$63
- ld [wcf97],a
+ ld a,99
+ ld [wMaxItemQuantity],a
xor a
- ld [$ff8e],a
+ ld [hHalveItemPrices],a ; don't halve item prices when buying
call DisplayChooseQuantityMenu
inc a
jr z,.buyMenuLoop ; if the player closed the choose quantity menu with the B button
@@ -148,17 +162,21 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call CopyStringToCF4B ; copy name to wcf4b
ld hl,PokemartTellBuyPriceText
call PrintText
- hlCoord 14, 7
- ld bc,$080f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
- ld a,[wd12e]
- cp a,$02
- jp z,.buyMenuLoop ; if the player pressed the B button
- ld a,[wd12d] ; ID of the chosen menu item
+ ld a,[wMenuExitMethod]
+ cp a,CHOSE_SECOND_ITEM
+ jp z,.buyMenuLoop ; if the player chose No or pressed the B button
+
+; The following code is supposed to check if the player chose No, but the above
+; check already catches it.
+ ld a,[wChosenMenuItem]
dec a
- jr z,.buyMenuLoop ; if the player chose No
+ jr z,.buyMenuLoop
+
.buyItem
call .isThereEnoughMoney
jr c,.notEnoughMoney
@@ -166,13 +184,13 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call AddItemToInventory
jr nc,.bagFull
call SubtractAmountPaidFromMoney
- ld a,[wcf0a] ; flag that is set if something is sold or bought
+ ld a,[wBoughtOrSoldItemInMart]
and a
jr nz,.skipSettingFlag2
- ld a,$01
- ld [wcf0a],a
+ ld a,1
+ ld [wBoughtOrSoldItemInMart],a
.skipSettingFlag2
- ld a,(SFX_02_5a - SFX_Headers_02) / 3
+ ld a,SFX_PURCHASE
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
ld hl,PokemartBoughtItemText
@@ -182,13 +200,13 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
call LoadScreenTilesFromBuffer1
ld a,MONEY_BOX
ld [wTextBoxID],a
- call DisplayTextBoxID ; draw money text box
+ call DisplayTextBoxID
ld hl,PokemartAnythingElseText
call PrintText
jp .loop
.isThereEnoughMoney
ld de,wPlayerMoney
- ld hl,$ff9f ; item price
+ ld hl,hMoney
ld c,3 ; length of money in bytes
jp StringCmp
.notEnoughMoney
@@ -202,10 +220,10 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
.done
ld hl,PokemartThankYouText
call PrintText
- ld a,$01
+ ld a,1
ld [wUpdateSpritesEnabled],a
- call UpdateSprites ; move sprites
- ld a,[wd07e]
+ call UpdateSprites
+ ld a,[wSavedListScrollOffset]
ld [wListScrollOffset],a
ret
diff --git a/engine/overworld/saffron_guards.asm b/engine/overworld/saffron_guards.asm
index 8e584a2d..c0d6a985 100755
--- a/engine/overworld/saffron_guards.asm
+++ b/engine/overworld/saffron_guards.asm
@@ -10,9 +10,7 @@ RemoveGuardDrink: ; 5a59f (16:659f)
call IsItemInBag
pop hl
jr z, .drinkLoop
- ld b, BANK(RemoveItemByID)
- ld hl, RemoveItemByID
- jp Bankswitch
+ jpba RemoveItemByID
GuardDrinksList: ; 5a5b7 (16:65b7)
db FRESH_WATER, SODA_POP, LEMONADE, $00
diff --git a/engine/overworld/ssanne.asm b/engine/overworld/ssanne.asm
index f1a8ecf9..e631bbfa 100755
--- a/engine/overworld/ssanne.asm
+++ b/engine/overworld/ssanne.asm
@@ -1,6 +1,6 @@
AnimateBoulderDust: ; 79f54 (1e:5f54)
ld a, $1
- ld [wcd50], a ; select the boulder dust offsets
+ ld [wWhichAnimationOffsets], a ; select the boulder dust offsets
ld a, [wUpdateSpritesEnabled]
push af
ld a, $ff
@@ -8,14 +8,14 @@ AnimateBoulderDust: ; 79f54 (1e:5f54)
ld a, %11100100
ld [rOBP1], a
call LoadSmokeTileFourTimes
- callba WriteCutTreeBoulderDustAnimationOAMBlock
+ callba WriteCutOrBoulderDustAnimationOAMBlock
ld c, 8 ; number of steps in animation
.loop
push bc
call GetMoveBoulderDustFunctionPointer
ld bc, .returnAddress
push bc
- ld c, $4
+ ld c, 4
jp [hl]
.returnAddress
ld a, [rOBP1]
@@ -36,7 +36,7 @@ GetMoveBoulderDustFunctionPointer: ; 79f92 (1e:5f92)
ld b, $0
add hl, bc
ld a, [hli]
- ld [wd08a], a
+ ld [wCoordAdjustmentAmount], a
ld a, [hli]
ld e, a
ld a, [hli]
@@ -84,9 +84,10 @@ LoadSmokeTileFourTimes: ; 79fc0 (1e:5fc0)
ret
LoadSmokeTile: ; 79fd4 (1e:5fd4)
- ld de, SSAnneSmokePuffTile ; $5fdd
- ld bc, (BANK(SSAnneSmokePuffTile) << 8) + $01
+ ld de, SSAnneSmokePuffTile
+ lb bc, BANK(SSAnneSmokePuffTile), (SSAnneSmokePuffTileEnd - SSAnneSmokePuffTile) / $10
jp CopyVideoData
SSAnneSmokePuffTile: ; 79fdd (1e:5fdd)
INCBIN "gfx/ss_anne_smoke_puff.2bpp"
+SSAnneSmokePuffTileEnd:
diff --git a/engine/overworld/trainers.asm b/engine/overworld/trainers.asm
index 4aaab3ed..7d2ec0dd 100755
--- a/engine/overworld/trainers.asm
+++ b/engine/overworld/trainers.asm
@@ -24,16 +24,16 @@ _GetSpritePosition2: ; 56819 (15:6819)
ld [H_SPRITEINDEX], a
call GetSpriteDataPointer
ld a, [hli] ; c1x4 (screen Y pos)
- ld [wd130], a
+ ld [wSavedSpriteScreenY], a
inc hl
ld a, [hl] ; c1x6 (screen X pos)
- ld [wd131], a
+ ld [wSavedSpriteScreenX], a
ld de, $104 - $6
add hl, de
ld a, [hli] ; c2x4 (map Y pos)
- ld [wd132], a
+ ld [wSavedSpriteMapY], a
ld a, [hl] ; c2x5 (map X pos)
- ld [wd133], a
+ ld [wSavedSpriteMapX], a
ret
_SetSpritePosition1: ; 5683d (15:683d)
@@ -61,23 +61,23 @@ _SetSpritePosition2: ; 5685d (15:685d)
ld a, [wSpriteIndex]
ld [H_SPRITEINDEX], a
call GetSpriteDataPointer
- ld a, [wd130]
+ ld a, [wSavedSpriteScreenY]
ld [hli], a
inc hl
- ld a, [wd131]
+ ld a, [wSavedSpriteScreenX]
ld [hl], a
ld de, $00fe
add hl, de
- ld a, [wd132]
+ ld a, [wSavedSpriteMapY]
ld [hli], a
- ld a, [wd133]
+ ld a, [wSavedSpriteMapX]
ld [hl], a
ret
TrainerWalkUpToPlayer: ; 56881 (15:6881)
ld a, [wSpriteIndex]
swap a
- ld [wTrainerSpriteOffset], a ; wWhichTrade
+ ld [wTrainerSpriteOffset], a
call ReadTrainerScreenPosition
ld a, [wTrainerFacingDirection]
and a
@@ -164,7 +164,7 @@ GetSpriteDataPointer: ; 56903 (15:6903)
TrainerEngage: ; 5690f (15:690f)
push hl
push de
- ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ ld a, [wTrainerSpriteOffset]
add $2
ld d, $0
ld e, a
@@ -175,7 +175,7 @@ TrainerEngage: ; 5690f (15:690f)
jr nz, .spriteOnScreen ; test if sprite is on screen
jp .noEngage
.spriteOnScreen
- ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ ld a, [wTrainerSpriteOffset]
add $9
ld d, $0
ld e, a
@@ -218,7 +218,7 @@ TrainerEngage: ; 5690f (15:690f)
jp .noEngage
.engage
call CheckPlayerIsInFrontOfSprite
- ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ ld a, [wTrainerSpriteOffset]
and a
jr z, .noEngage
ld hl, wFlags_0xcd60
@@ -226,14 +226,14 @@ TrainerEngage: ; 5690f (15:690f)
call EngageMapTrainer
ld a, $ff
.noEngage: ; 56988 (15:6988)
- ld [wTrainerSpriteOffset], a ; wWhichTrade
+ ld [wTrainerSpriteOffset], a
pop de
pop hl
ret
; reads trainer's Y position to wTrainerScreenY and X position to wTrainerScreenX
ReadTrainerScreenPosition: ; 5698e (15:698e)
- ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ ld a, [wTrainerSpriteOffset]
add $4
ld d, $0
ld e, a
@@ -241,7 +241,7 @@ ReadTrainerScreenPosition: ; 5698e (15:698e)
add hl, de
ld a, [hl]
ld [wTrainerScreenY], a
- ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ ld a, [wTrainerSpriteOffset]
add $6
ld d, $0
ld e, a
@@ -256,7 +256,7 @@ ReadTrainerScreenPosition: ; 5698e (15:698e)
; a: distance player to sprite
CheckSpriteCanSeePlayer: ; 569af (15:69af)
ld b, a
- ld a, [wTrainerEngageDistance] ; sprite line of sight (engage distance)
+ ld a, [wTrainerEngageDistance] ; how far the trainer can see
cp b
jr nc, .checkIfLinedUp
jr .notInLine ; player too far away
@@ -291,10 +291,10 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af)
; tests if the player is in front of the sprite (rather than behind it)
CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
- ld a, [W_CURMAP] ; W_CURMAP
+ ld a, [W_CURMAP]
cp POWER_PLANT
- jp z, .engage ; XXX not sure why bypass this for power plant (maybe to get voltorb fake items to work?)
- ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ jp z, .engage ; bypass this for power plant to get voltorb fake items to work
+ ld a, [wTrainerSpriteOffset]
add $4
ld d, $0
ld e, a
@@ -306,7 +306,7 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
ld a, $c
.notOnTopmostTile
ld [wTrainerScreenY], a
- ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ ld a, [wTrainerSpriteOffset]
add $6
ld d, $0
ld e, a
@@ -345,5 +345,5 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3)
.noEngage
xor a
.done
- ld [wTrainerSpriteOffset], a ; wWhichTrade
+ ld [wTrainerSpriteOffset], a
ret
diff --git a/engine/palettes.asm b/engine/palettes.asm
index 2536fefc..080998ff 100755
--- a/engine/palettes.asm
+++ b/engine/palettes.asm
@@ -1,33 +1,33 @@
-Func_71eb3: ; 71eb3 (1c:5eb3)
+_RunPaletteCommand: ; 71ddf (1c:5ddf)
call GetPredefRegisters
ld a, b
cp $ff
- jr nz, .asm_71ebe
- ld a, [wcf1c]
-.asm_71ebe
- cp $fc
- jp z, Func_7218b
+ jr nz, .next
+ ld a, [wDefaultPaletteCommand] ; use default command if command ID is $ff
+.next
+ cp UPDATE_PARTY_MENU_BLK_PACKET
+ jp z, UpdatePartyMenuBlkPacket
ld l, a
- ld h, $0
+ ld h, 0
add hl, hl
- ld de, PointerTable_7206b
+ ld de, SetPalFunctions
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, Func_72328
+ ld de, SendSGBPackets
push de
jp [hl]
-SendPalPacket_Black: ; 71ed3 (1c:5ed3)
+SetPal_Black: ; 71ed3 (1c:5ed3)
ld hl, PalPacket_Black
ld de, BlkPacket_Battle
ret
; uses PalPacket_Empty to build a packet based on mon IDs and health color
-BuildBattlePalPacket: ; 71eda (1c:5eda)
+SetPal_Battle: ; 71eda (1c:5eda)
ld hl, PalPacket_Empty
- ld de, wcf2d
+ ld de, wPalPacket
ld bc, $10
call CopyData
;ld a, [W_PLAYERBATTSTATUS3]
@@ -46,12 +46,12 @@ BuildBattlePalPacket: ; 71eda (1c:5eda)
ld hl, wEnemyMonSpecies2
call DeterminePaletteID
ld c, a
- ld hl, wcf2e
- ld a, [wcf1d]
+ ld hl, wPalPacket + 1
+ ld a, [wPlayerHPBarColor]
add PAL_GREENBAR
ld [hli], a
inc hl
- ld a, [wcf1e]
+ ld a, [wEnemyHPBarColor]
add PAL_GREENBAR
ld [hli], a
inc hl
@@ -60,21 +60,21 @@ BuildBattlePalPacket: ; 71eda (1c:5eda)
inc hl
ld a, c
ld [hl], a
- ld hl, wcf2d
+ ld hl, wPalPacket
ld de, BlkPacket_Battle
- ld a, $1
- ld [wcf1c], a
+ ld a, SET_PAL_BATTLE
+ ld [wDefaultPaletteCommand], a
ret
-SendPalPacket_TownMap: ; 71f26 (1c:5f26)
+SetPal_TownMap: ; 71f26 (1c:5f26)
ld hl, PalPacket_TownMap
ld de, BlkPacket_WholeScreen
ret
; uses PalPacket_Empty to build a packet based the mon ID
-BuildStatusScreenPalPacket: ; 71f2d (1c:5f2d)
+SetPal_StatusScreen: ; 71f2d (1c:5f2d)
ld hl, PalPacket_Empty
- ld de, wcf2d
+ ld de, wPalPacket
ld bc, $10
call CopyData
ld a, [wcf91]
@@ -84,67 +84,67 @@ BuildStatusScreenPalPacket: ; 71f2d (1c:5f2d)
.pokemon
call DeterminePaletteIDOutOfBattle
push af
- ld hl, wcf2e
- ld a, [wcf25]
- add $1f
+ ld hl, wPalPacket + 1
+ ld a, [wStatusScreenHPBarColor]
+ add PAL_GREENBAR
ld [hli], a
inc hl
pop af
ld [hl], a
- ld hl, wcf2d
+ ld hl, wPalPacket
ld de, BlkPacket_StatusScreen
ret
-SendPalPacket_PartyMenu: ; 71f59 (1c:5f59)
+SetPal_PartyMenu: ; 71f59 (1c:5f59)
ld hl, PalPacket_PartyMenu
- ld de, wcf2e
+ ld de, wPartyMenuBlkPacket
ret
-SendPalPacket_Pokedex: ; 71f60 (1c:5f60)
+SetPal_Pokedex: ; 71f60 (1c:5f60)
ld hl, PalPacket_Pokedex
- ld de, wcf2d
+ ld de, wPalPacket
ld bc, $10
call CopyData
ld a, [wcf91]
call DeterminePaletteIDOutOfBattle
- ld hl, wcf30
+ ld hl, wPalPacket + 3
ld [hl], a
- ld hl, wcf2d
+ ld hl, wPalPacket
ld de, BlkPacket_Pokedex
ret
-SendPalPacket_Slots: ; 71f7d (1c:5f7d)
+SetPal_Slots: ; 71f7d (1c:5f7d)
ld hl, PalPacket_Slots
ld de, BlkPacket_Slots
ret
-SendPalPacket_Titlescreen: ; 71f84 (1c:5f84)
+SetPal_Titlescreen: ; 71f84 (1c:5f84)
ld hl, PalPacket_Titlescreen
ld de, BlkPacket_Titlescreen
ret
; used mostly for menus and the Oak intro
-SendPalPacket_Generic: ; 71f8b (1c:5f8b)
+SetPal_Generic: ; 71f8b (1c:5f8b)
ld hl, PalPacket_Generic
ld de, BlkPacket_WholeScreen
ret
-SendPalPacket_NidorinoIntro: ; 71f92 (1c:5f92)
+SetPal_NidorinoIntro: ; 71f92 (1c:5f92)
ld hl, PalPacket_NidorinoIntro
ld de, BlkPacket_NidorinoIntro
ret
-SendPalPacket_GameFreakIntro: ; 71f99 (1c:5f99)
+SetPal_GameFreakIntro: ; 71f99 (1c:5f99)
ld hl, PalPacket_GameFreakIntro
ld de, BlkPacket_GameFreakIntro
- ld a, $8
- ld [wcf1c], a
+ ld a, SET_PAL_GENERIC
+ ld [wDefaultPaletteCommand], a
ret
; uses PalPacket_Empty to build a packet based on the current map
-BuildOverworldPalPacket: ; 71fa5 (1c:5fa5)
+SetPal_Overworld: ; 71fa5 (1c:5fa5)
ld hl, PalPacket_Empty
- ld de, wcf2d
+ ld de, wPalPacket
ld bc, $10
call CopyData
ld a, [W_CURMAPTILESET]
@@ -174,12 +174,12 @@ BuildOverworldPalPacket: ; 71fa5 (1c:5fa5)
jr c, .town
ld a, PAL_ROUTE - 1
.town
- inc a ; a town's pallete ID is its map ID + 1
- ld hl, wcf2e
+ inc a ; a town's palette ID is its map ID + 1
+ ld hl, wPalPacket + 1
ld [hld], a
ld de, BlkPacket_WholeScreen
- ld a, $9
- ld [wcf1c], a
+ ld a, SET_PAL_OVERWORLD
+ ld [wDefaultPaletteCommand], a
ret
.PokemonTowerOrAgatha
ld a, PAL_GREYMON - 1
@@ -196,63 +196,66 @@ BuildOverworldPalPacket: ; 71fa5 (1c:5fa5)
; used when a Pokemon is the only thing on the screen
; such as evolution, trading and the Hall of Fame
-SendPokemonPalette_WholeScreen: ; 72001 (1c:6001)
+SetPal_PokemonWholeScreen: ; 72001 (1c:6001)
push bc
ld hl, PalPacket_Empty
- ld de, wcf2d
+ ld de, wPalPacket
ld bc, $10
call CopyData
pop bc
ld a, c
and a
- ld a, $1e
- jr nz, .asm_7201b
- ld a, [wcf1d]
+ ld a, PAL_BLACK
+ jr nz, .next
+ ld a, [wWholeScreenPaletteMonSpecies]
call DeterminePaletteIDOutOfBattle
-.asm_7201b
- ld [wcf2e], a
- ld hl, wcf2d
+.next
+ ld [wPalPacket + 1], a
+ ld hl, wPalPacket
ld de, BlkPacket_WholeScreen
ret
-BuildTrainerCardPalPacket: ; 72025 (1c:6025)
+SetPal_TrainerCard: ; 72025 (1c:6025)
ld hl, BlkPacket_TrainerCard
- ld de, wcc5b
+ ld de, wTrainerCardBlkPacket
ld bc, $40
call CopyData
- ld de, LoopCounts_7208b
- ld hl, wcc5d
+ ld de, BadgeBlkDataLengths
+ ld hl, wTrainerCardBlkPacket + 2
ld a, [W_OBTAINEDBADGES]
- ld c, $8
-.asm_7203c
+ ld c, 8
+.badgeLoop
srl a
push af
- jr c, .asm_7204c
+ jr c, .haveBadge
+; The player doens't have the badge, so zero the badge's blk data.
push bc
ld a, [de]
ld c, a
xor a
-.asm_72045
+.zeroBadgeDataLoop
ld [hli], a
dec c
- jr nz, .asm_72045
+ jr nz, .zeroBadgeDataLoop
pop bc
- jr .asm_72051
-.asm_7204c
+ jr .nextBadge
+.haveBadge
+; The player does have the badge, so skip past the badge's blk data.
ld a, [de]
-.asm_7204d
+.skipBadgeDataLoop
inc hl
dec a
- jr nz, .asm_7204d
-.asm_72051
+ jr nz, .skipBadgeDataLoop
+.nextBadge
pop af
inc de
dec c
- jr nz, .asm_7203c
+ jr nz, .badgeLoop
ld hl, PalPacket_TrainerCard
- ld de, wcc5b
+ ld de, wTrainerCardBlkPacket
ret
+<<<<<<< HEAD
SendUnknownPalPacket_7205d:: ; 7205d (1c:605d)
ld hl,UnknownPalPacket_72811
ld de,BlkPacket_WholeScreen
@@ -263,50 +266,55 @@ SendUnknownPalPacket_72064:: ; 72064 (1c:6064)
ld de,UnknownPacket_72751
ret
-PointerTable_7206b: ; 7206b (1c:606b)
- dw SendPalPacket_Black
- dw BuildBattlePalPacket
- dw SendPalPacket_TownMap
- dw BuildStatusScreenPalPacket
- dw SendPalPacket_Pokedex
- dw SendPalPacket_Slots
- dw SendPalPacket_Titlescreen
- dw SendPalPacket_NidorinoIntro
- dw SendPalPacket_Generic
- dw BuildOverworldPalPacket
- dw SendPalPacket_PartyMenu
- dw SendPokemonPalette_WholeScreen
- dw SendPalPacket_GameFreakIntro
- dw BuildTrainerCardPalPacket
+SetPalFunctions: ; 7206b (1c:606b)
+ dw SetPal_Black
+ dw SetPal_Battle
+ dw SetPal_TownMap
+ dw SetPal_StatusScreen
+ dw SetPal_Pokedex
+ dw SetPal_Slots
+ dw SetPal_Titlescreen
+ dw SetPal_NidorinoIntro
+ dw SetPal_Generic
+ dw SetPal_Overworld
+ dw SetPal_PartyMenu
+ dw SetPal_PokemonWholeScreen
+ dw SetPal_GameFreakIntro
+ dw SetPal_TrainerCard
dw SendUnknownPalPacket_7205d
dw SendUnknownPalPacket_72064
-; each byte is the number of loops to make in .asm_71f5b for each badge
-LoopCounts_7208b: ; 7208b (1c:608b)
- db $06,$06,$06,$12,$06,$06,$06,$06
+; The length of the blk data of each badge on the Trainer Card.
+; The Rainbow Badge has 3 entries because of its many colors.
+BadgeBlkDataLengths: ; 7208b (1c:608b)
+ db 6 ; Boulder Badge
+ db 6 ; Cascade Badge
+ db 6 ; Thunder Badge
+ db 6 * 3 ; Rainbow Badge
+ db 6 ; Soul Badge
+ db 6 ; Marsh Badge
+ db 6 ; Volcano Badge
+ db 6 ; Earth Badge
-;DeterminePaletteID: ; 71f97 (1c:5f97)
- ;bit 3, a ; bit 3 of battle status 3, set if ;current Pokemon is transformed
- ;ld a, PAL_GREYMON ; if yes, use Ditto's palette
- ;ret nz
DeterminePaletteID: ; 72093 (1c:6093)
ld a, [hl]
DeterminePaletteIDOutOfBattle: ; 72094 (1c:6094)
ld [wd11e], a
- and a
- jr z, .idZero
+ and a ; is the mon index 0?
+ jr z, .skipDexNumConversion
push bc
- predef IndexToPokedex ; turn Pokemon ID number into Pokedex number
+ predef IndexToPokedex
pop bc
ld a, [wd11e]
-.idZero
+.skipDexNumConversion
ld e, a
- ld d, $00
- ld hl, MonsterPalettes ; not just for Pokemon, Trainers use it too
+ ld d, 0
+ ld hl, MonsterPalettes ; not just for Pokemon, Trainers use it too
add hl, de
ld a, [hl]
ret
+<<<<<<< HEAD
Func_720ad:: ; 720ad (1c:60ad)
ld a,e
and a
@@ -384,7 +392,7 @@ Func_720e3:: ; 720e3 (1c:60e3)
ret
Func_7213b:: ; 7213b (1c:613b)
-; similar to BuildOverworldPalPacket
+; similar to SetPal_Overworld
ld a, [W_CURMAPTILESET]
cp CEMETERY
jr z, .PokemonTowerOrAgatha
@@ -427,33 +435,35 @@ Func_7213b:: ; 7213b (1c:613b)
ld a,$18
jr .town
-SendBlkPacket_PartyMenu: ; 7217f (1c:617f)
- ld hl, BlkPacket_PartyMenu ; $62f4
- ld de, wcf2e
+InitPartyMenuBlkPacket: ; 7217f (1c:617f)
+ ld hl, BlkPacket_PartyMenu
+ ld de, wPartyMenuBlkPacket
ld bc, $30
jp CopyData
-Func_7218b: ; 7218b (1c:618b)
- ld hl, wcf1f
- ld a, [wcf2d]
+UpdatePartyMenuBlkPacket: ; 7218b (1c:618b)
+; Update the blk packet with the palette of the HP bar that is
+; specified in [wWhichPartyMenuHPBar].
+ ld hl, wPartyMenuHPBarColors
+ ld a, [wWhichPartyMenuHPBar]
ld e, a
- ld d, $0
+ ld d, 0
add hl, de
ld e, l
ld d, h
ld a, [de]
and a
- ld e, $5
- jr z, .asm_721a4
+ ld e, (1 << 2) | 1 ; green
+ jr z, .next
dec a
- ld e, $a
- jr z, .asm_721a4
- ld e, $f
-.asm_721a4
+ ld e, (2 << 2) | 2 ; yellow
+ jr z, .next
+ ld e, (3 << 2) | 3 ; red
+.next
push de
- ld hl, wcf37
- ld bc, $6
- ld a, [wcf2d]
+ ld hl, wPartyMenuBlkPacket + 8 + 1
+ ld bc, 6
+ ld a, [wWhichPartyMenuHPBar]
call AddNTimes
pop de
ld [hl], e
@@ -482,10 +492,10 @@ SendSGBPacket: ; 71feb (1c:5feb)
push bc
; send RESET signal (P14=LOW, P15=LOW)
xor a
- ld [$ff00],a
+ ld [rJOYP],a
; set P14=HIGH, P15=HIGH
ld a,$30
- ld [$ff00],a
+ ld [rJOYP],a
;load length of packets (16 bytes)
ld b,$10
.nextByte
@@ -502,10 +512,10 @@ SendSGBPacket: ; 71feb (1c:5feb)
; else (if 0th bit is zero) set P14=LOW,P15=HIGH (send bit 0)
ld a,$20
.next0
- ld [$ff00],a
+ ld [rJOYP],a
; must set P14=HIGH,P15=HIGH between each "pulse"
ld a,$30
- ld [$ff00],a
+ ld [rJOYP],a
; rotation will put next bit in 0th position (so we can always use command
; "bit 0,d" to fetch the bit that has to be sent)
rr d
@@ -516,13 +526,11 @@ SendSGBPacket: ; 71feb (1c:5feb)
jr nz,.nextByte
; send bit 1 as a "stop bit" (end of parameter data)
ld a,$20
- ld [$ff00],a
+ ld [rJOYP],a
; set P14=HIGH,P15=HIGH
ld a,$30
- ld [$ff00],a
+ ld [rJOYP],a
call Wait7000
-; xor a
-; ld [$fff9],a
; wait for about 70000 cycles
; call Wait7000
; restore (previously pushed) number of packets
@@ -549,30 +557,30 @@ LoadSGB: ; 721f8 (1c:61f8)
ld a, $1
ld [wOnSGB], a
di
- call Func_72247
+ call PrepareSuperNintendoVRAMTransfer
ei
- ld a, $1
- ld [wcf2d], a
+ ld a, 1
+ ld [wCopyingSGBTileData], a
ld de, ChrTrnPacket
ld hl, SGBBorderGraphics
- call Func_722d7
+ call CopyGfxToSuperNintendoVRAM
xor a
- ld [wcf2d], a
+ ld [wCopyingSGBTileData], a
ld de, PctTrnPacket
ld hl, BorderPalettes
- call Func_722d7
+ call CopyGfxToSuperNintendoVRAM
xor a
- ld [wcf2d], a
+ ld [wCopyingSGBTileData], a
ld de, PalTrnPacket
ld hl, SuperPalettes
- call Func_722d7
+ call CopyGfxToSuperNintendoVRAM
call ClearVram
ld hl, MaskEnCancelPacket
jp Func_721b4
-Func_72247: ; 72247 (1c:6247)
- ld hl, PointerTable_7225b
- ld c, $9
+PrepareSuperNintendoVRAMTransfer: ; 72247 (1c:6247)
+ ld hl, .packetPointers
+ ld c, 9
.loop
push bc
ld a, [hli]
@@ -587,7 +595,8 @@ Func_72247: ; 72247 (1c:6247)
jr nz, .loop
ret
-PointerTable_7225b: ; 7225b (1c:625b)
+.packetPointers ; 7225b (1c:625b)
+; Only the first packet is needed.
dw MaskEnFreezePacket
dw DataSnd_728a1
dw DataSnd_728b1
@@ -602,55 +611,55 @@ CheckSGB: ; 7226d (1c:626d)
ld hl, MltReq2Packet
call Func_721b4
call Wait7000
- ld a, [rJOYP] ; $ff0
+ ld a, [rJOYP]
and $3
cp $3
- jr nz, .asm_722c9
+ jr nz, .isSGB
ld a, $20
- ld [rJOYP], a ; $ff0
- ld a, [rJOYP] ; $ff0
- ld a, [rJOYP] ; $ff0
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
call Wait7000
call Wait7000
ld a, $30
- ld [rJOYP], a ; $ff0
+ ld [rJOYP], a
call Wait7000
call Wait7000
ld a, $10
- ld [rJOYP], a ; $ff0
- ld a, [rJOYP] ; $ff0
- ld a, [rJOYP] ; $ff0
- ld a, [rJOYP] ; $ff0
- ld a, [rJOYP] ; $ff0
- ld a, [rJOYP] ; $ff0
- ld a, [rJOYP] ; $ff0
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
call Wait7000
call Wait7000
ld a, $30
- ld [rJOYP], a ; $ff0
- ld a, [rJOYP] ; $ff0
- ld a, [rJOYP] ; $ff0
- ld a, [rJOYP] ; $ff0
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
call Wait7000
call Wait7000
- ld a, [rJOYP] ; $ff0
+ ld a, [rJOYP]
and $3
cp $3
- jr nz, .asm_722c9
- call Func_722ce
+ jr nz, .isSGB
+ call SendMltReq1Packet
and a
ret
-.asm_722c9
- call Func_722ce
+.isSGB
+ call SendMltReq1Packet
scf
ret
-Func_722ce: ; 722ce (1c:62ce)
+SendMltReq1Packet: ; 722ce (1c:62ce)
ld hl, MltReq1Packet
call Func_721b4
jp Wait7000
-Func_722d7: ; 722d7 (1c:62d7)
+CopyGfxToSuperNintendoVRAM: ; 722d7 (1c:62d7)
di
push de
call DisableLCD
@@ -658,31 +667,31 @@ Func_722d7: ; 722d7 (1c:62d7)
ld [rBGP], a ; $ff47
call Func_72520
ld de, vChars1
- ld a, [wcf2d]
+ ld a, [wCopyingSGBTileData]
and a
- jr z, .asm_722f1
- call Func_725fb
- jr .asm_722f7
-.asm_722f1
+ jr z, .notCopyingTileData
+ call CopySGBBorderTiles
+ jr .next
+.notCopyingTileData
ld bc, $1000
call CopyData
-.asm_722f7
+.next
ld hl, vBGMap0
ld de, $c
ld a, $80
ld c, $d
-.asm_72301
+.loop
ld b, $14
-.asm_72303
+.innerLoop
ld [hli], a
inc a
dec b
- jr nz, .asm_72303
+ jr nz, .innerLoop
add hl, de
dec c
- jr nz, .asm_72301
+ jr nz, .loop
ld a, $e3
- ld [rLCDC], a ; $ff40
+ ld [rLCDC], a
pop hl
call Func_721b4
xor a
@@ -704,26 +713,26 @@ Wait7000: ; 7231c (1c:631c)
jr nz, .loop
ret
-Func_72328: ; 72328 (1c:6328)
+SendSGBPackets: ; 72328 (1c:6328)
ld a, [hGBC]
and a
- jr z, .asm_7233e
+ jr z, .notGBC
push de
- call Func_72346
+ call InitGBCPalettes
pop hl
- call Func_72346
+ call InitGBCPalettes
ld a,[rLCDC]
and rLCDC_ENABLE_MASK
ret z
call Delay3
ret
-.asm_7233e
+.notGBC
push de
call Func_721b4
pop hl
jp Func_721b4
-Func_72346: ; 72346 (1c:6346)
+InitGBCPalettes: ; 72346 (1c:6346)
ld a,[hl]
and $f8
cp $20
@@ -905,6 +914,7 @@ Func_72470:: ; 72470 (1c:6470)
push de
add a
add a
+<<<<<<< HEAD
add a
or $80
ld [rBGPI],a
@@ -1140,25 +1150,34 @@ Pointer_725e2:: ; 725e2 (1c:65e2)
db $0c,$11,$66,$21,$66,$41,$66,$51,$66,$61,$66,$81,$66,$a1,$66,$2d
db $cf,$5b,$cc,$31,$67,$2c,$cf,$51,$67
-Func_725fb: ; 725fb (1c:65fb)
- ld b, $80
+CopySGBBorderTiles: ; 725fb (1c:65fb)
+; SGB tile data is stored in a 4BPP planar format.
+; Each tile is 32 bytes. The first 16 bytes contain bit planes 1 and 2, while
+; the second 16 bytes contain bit planes 3 and 4.
+; This function converts 2BPP planar data into this format by mapping
+; 2BPP colors 0-3 to 4BPP colors 0-3. 4BPP colors 4-15 are not used.
+ ld b, 128
.loop
- ld c, $10
-.asm_725ff
+; Copy bit planes 1 and 2 of the tile data.
+ ld c, 16
+.copyLoop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_725ff
- ld c, $10
+ jr nz, .copyLoop
+
+; Zero bit planes 3 and 4.
+ ld c, 16
xor a
-.asm_72608
+.zeroLoop
ld [de], a
inc de
dec c
- jr nz, .asm_72608
+ jr nz, .zeroLoop
+
dec b
- jr nz, .loop
+ jr nz, .tileLoop
ret
;dr $725e2,$734b9
diff --git a/engine/pokedex_rating.asm b/engine/pokedex_rating.asm
index 080025c6..73025f0a 100755
--- a/engine/pokedex_rating.asm
+++ b/engine/pokedex_rating.asm
@@ -2,18 +2,18 @@ DisplayDexRating: ; 44169 (11:4169)
ld hl, wPokedexSeen
ld b, wPokedexSeenEnd - wPokedexSeen
call CountSetBits
- ld a, [wd11e] ; result of CountSetBits (seen count)
- ld [$FFDB], a
+ ld a, [wNumSetBits]
+ ld [hDexRatingNumMonsSeen], a
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [wd11e] ; result of CountSetBits (own count)
- ld [$FFDC], a
+ ld a, [wNumSetBits]
+ ld [hDexRatingNumMonsOwned], a
ld hl, DexRatingsTable
.findRating
ld a, [hli]
ld b, a
- ld a, [$FFDC] ; number of pokemon owned
+ ld a, [hDexRatingNumMonsOwned]
cp b
jr c, .foundRating
inc hl
@@ -23,34 +23,31 @@ DisplayDexRating: ; 44169 (11:4169)
ld a, [hli]
ld h, [hl]
ld l, a ; load text pointer into hl
- ld a, [wd747]
- bit 3, a
- res 3, a
- ld [wd747], a
- jr nz, .label3
+ CheckAndResetEventA EVENT_HALL_OF_FAME_DEX_RATING
+ jr nz, .hallOfFame
push hl
ld hl, PokedexRatingText_441cc
call PrintText
pop hl
call PrintText
- callba Func_7d13b
- jp WaitForTextScrollButtonPress ; wait for button press
-.label3
- ld de, wcc5b
- ld a, [$FFDB]
+ callba PlayPokedexRatingSfx
+ jp WaitForTextScrollButtonPress
+.hallOfFame
+ ld de, wDexRatingNumMonsSeen
+ ld a, [hDexRatingNumMonsSeen]
ld [de], a
inc de
- ld a, [$FFDC]
+ ld a, [hDexRatingNumMonsOwned]
ld [de], a
inc de
-.label4
+.copyRatingTextLoop
ld a, [hli]
- cp a, $50
- jr z, .label5
+ cp a, "@"
+ jr z, .doneCopying
ld [de], a
inc de
- jr .label4
-.label5
+ jr .copyRatingTextLoop
+.doneCopying
ld [de], a
ret
diff --git a/engine/predefs.asm b/engine/predefs.asm
index 6cf84511..a59f70d8 100755
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -52,7 +52,7 @@ GetPredefPointer: ; f67ed (3d:67ed)
PredefPointers:: ; f681d (3d:681d)
; these are pointers to ASM routines.
; they appear to be used in overworld map scripts.
- dr $f681d,$f7000
+ dr $f681d,$f8000
;add_predef DrawPlayerHUDAndHPBar
;add_predef Func_3f0c6
;add_predef Func_3f073
@@ -151,4 +151,4 @@ PredefPointers:: ; f681d (3d:681d)
;add_predef DrawHP ; 5F
;add_predef DrawHP2
;add_predef Func_1c9c6
- ;add_predef OaksAideScript
+ ;add_predef OaksAideScript \ No newline at end of file
diff --git a/engine/predefs12.asm b/engine/predefs12.asm
index 90032a14..269a681e 100755
--- a/engine/predefs12.asm
+++ b/engine/predefs12.asm
@@ -4,62 +4,68 @@ ChangeBGPalColor0_4Frames: ; 480eb (12:40eb)
ld a, [rBGP]
or b
ld [rBGP], a
- ld c, $4
+ ld c, 4
call DelayFrames
ld a, [rBGP]
and %11111100
ld [rBGP], a
ret
-Func_480ff: ; 480ff (12:40ff)
+PredefShakeScreenVertically: ; 480ff (12:40ff)
+; Moves the window down and then back in a sequence of progressively smaller
+; numbers of pixels, starting at b.
call GetPredefRegisters
- ld a, $1
- ld [wd0a0], a
+ ld a, 1
+ ld [wDisableVBlankWYUpdate], a
xor a
-.asm_48108
- ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
- call Func_48119
- call Func_48119
+.loop
+ ld [$ff96], a
+ call .MutateWY
+ call .MutateWY
dec b
ld a, b
- jr nz, .asm_48108
+ jr nz, .loop
xor a
- ld [wd0a0], a
+ ld [wDisableVBlankWYUpdate], a
ret
-Func_48119: ; 48119 (12:4119)
- ld a, [H_NUMTOPRINT] ; $ff96 (aliases: H_MULTIPLICAND)
+.MutateWY ; 48119 (12:4119)
+ ld a, [$ff96]
xor b
- ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND)
- ld [rWY], a ; $ff4a
- ld c, $3
+ ld [$ff96], a
+ ld [rWY], a
+ ld c, 3
jp DelayFrames
-Func_48125: ; 48125 (12:4125)
+PredefShakeScreenHorizontally: ; 48125 (12:4125)
+; Moves the window right and then back in a sequence of progressively smaller
+; numbers of pixels, starting at b.
call GetPredefRegisters
xor a
-.asm_48129
+.loop
ld [$ff97], a
- call Func_4813f
- ld c, $1
+ call .MutateWX
+ ld c, 1
call DelayFrames
- call Func_4813f
+ call .MutateWX
dec b
ld a, b
- jr nz, .asm_48129
- ld a, $7
- ld [rWX], a ; $ff4b
+ jr nz, .loop
+
+; restore normal WX
+ ld a, 7
+ ld [rWX], a
ret
-Func_4813f: ; 4813f (12:413f)
+.MutateWX ; 4813f (12:413f)
ld a, [$ff97]
xor b
ld [$ff97], a
bit 7, a
- jr z, .asm_48149
- xor a
-.asm_48149
- add $7
- ld [rWX], a ; $ff4b
- ld c, $4
+ jr z, .skipZeroing
+ xor a ; zero a if it's negative
+.skipZeroing
+ add 7
+ ld [rWX], a
+ ld c, 4
jp DelayFrames
diff --git a/engine/predefs17.asm b/engine/predefs17.asm
index 74977ee8..a674b45a 100755
--- a/engine/predefs17.asm
+++ b/engine/predefs17.asm
@@ -2,8 +2,8 @@
; so that the full Pokedex information gets displayed in Oak's lab
StarterDex: ; 5c0dc (17:40dc)
ld a, %01001011 ; set starter flags
- ld [wPokedexOwned], a ; wPokedexOwned
+ ld [wPokedexOwned], a
predef ShowPokedexData
xor a ; unset starter flags
- ld [wPokedexOwned], a ; wPokedexOwned
+ ld [wPokedexOwned], a
ret
diff --git a/engine/predefs7.asm b/engine/predefs7.asm
index 9786c097..a2c08171 100755
--- a/engine/predefs7.asm
+++ b/engine/predefs7.asm
@@ -1,18 +1,18 @@
-Func_1c9c6: ; 1c9c6 (7:49c6)
+DisplayElevatorFloorMenu: ; 1c9c6 (7:49c6)
ld hl, WhichFloorText
call PrintText
- ld hl, wStringBuffer2 + 11
+ ld hl, wItemList
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
ld a, [wListScrollOffset]
push af
xor a
ld [wCurrentMenuItem], a
ld [wListScrollOffset], a
- ld [wcf93], a
- ld a, $4
+ ld [wPrintItemPrices], a
+ ld a, SPECIALLISTMENU
ld [wListMenuID], a
call DisplayListMenuID
pop bc
@@ -21,10 +21,10 @@ Func_1c9c6: ; 1c9c6 (7:49c6)
ret c
ld hl, wd126
set 7, [hl]
- ld hl, wcc5b
+ ld hl, wElevatorWarpMaps
ld a, [wWhichPokemon]
add a
- ld d, $0
+ ld d, 0
ld e, a
add hl, de
ld a, [hli]
@@ -32,15 +32,15 @@ Func_1c9c6: ; 1c9c6 (7:49c6)
ld a, [hl]
ld c, a
ld hl, wWarpEntries
- call Func_1ca0d
+ call .UpdateWarp
-Func_1ca0d: ; 1ca0d (7:4a0d)
+.UpdateWarp
inc hl
inc hl
ld a, b
- ld [hli], a
+ ld [hli], a ; destination warp ID
ld a, c
- ld [hli], a
+ ld [hli], a ; destination map ID
ret
WhichFloorText: ; 1ca14 (7:4a14)
diff --git a/engine/save.asm b/engine/save.asm
index 93b70be4..a7b2a7c0 100755
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -4,11 +4,11 @@ LoadSAV: ; 735e8 (1c:75e8)
call ClearScreen
call LoadFontTilePatterns
call LoadTextBoxTilePatterns
- call LoadSAVCheckSum
+ call LoadSAV0
jr c, .badsum
- call LoadSAVCheckSum1
+ call LoadSAV1
jr c, .badsum
- call LoadSAVCheckSum2
+ call LoadSAV2
jr c, .badsum
ld a, $2 ; good checksum
jr .goodsum
@@ -18,103 +18,105 @@ LoadSAV: ; 735e8 (1c:75e8)
set 6, [hl]
ld hl, FileDataDestroyedText
call PrintText
- ld c, $64
+ ld c, 100
call DelayFrames
pop hl
res 6, [hl]
ld a, $1 ; bad checksum
.goodsum
- ld [wd088], a ; checksum flag
+ ld [wSaveFileStatus], a
ret
FileDataDestroyedText: ; 7361e (1c:761e)
TX_FAR _FileDataDestroyedText
db "@"
-LoadSAVCheckSum: ; 73623 (1c:7623)
+LoadSAV0: ; 73623 (1c:7623)
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
ld a, $1
ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a
- ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
- ld bc, $f8b ; but here checks the full SAV
+ ld hl, sPlayerName ; hero name located in SRAM
+ ld bc, sMainDataCheckSum - sPlayerName ; but here checks the full SAV
call SAVCheckSum
ld c, a
- ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
+ ld a, [sMainDataCheckSum] ; SAV's checksum
cp c
- jp z, .Func_73652
- ld hl, S_SAVEDPLAYERNAME
- ld bc, $f8b
+ jp z, .checkSumsMatched
+
+; If the computed checksum didn't match the saved on, try again.
+ ld hl, sPlayerName
+ ld bc, sMainDataCheckSum - sPlayerName
call SAVCheckSum
ld c, a
- ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
+ ld a, [sMainDataCheckSum] ; SAV's checksum
cp c
jp nz, SAVBadCheckSum
-.Func_73652 ; 73652 (1c:7652)
- ld hl, S_SAVEDPLAYERNAME
- ld de, wPlayerName ; wd158
- ld bc, $b
+.checkSumsMatched
+ ld hl, sPlayerName
+ ld de, wPlayerName
+ ld bc, NAME_LENGTH
call CopyData
- ld hl, S_SAVEDMAINDATA
- ld de, wPokedexOwned
- ld bc, $789
+ ld hl, sMainData
+ ld de, wMainDataStart
+ ld bc, wMainDataEnd - wMainDataStart
call CopyData
ld hl, W_CURMAPTILESET
set 7, [hl]
- ld hl, S_SAVEDSPRITEDATA
- ld de, wSpriteStateData1
- ld bc, $200
+ ld hl, sSpriteData
+ ld de, wSpriteDataStart
+ ld bc, wSpriteDataEnd - wSpriteDataStart
call CopyData
- ld a, [S_SAVEDhTilesetType]
+ ld a, [sTilesetType]
ld [hTilesetType], a
- ld hl, S_SAVEDCURBOXDATA
- ld de, W_NUMINBOX
- ld bc, wBoxMonNicksEnd - W_NUMINBOX
+ ld hl, sCurBoxData
+ ld de, wBoxDataStart
+ ld bc, wBoxDataEnd - wBoxDataStart
call CopyData
and a
jp SAVGoodChecksum
-LoadSAVCheckSum1: ; 73690 (1c:7690)
+LoadSAV1: ; 73690 (1c:7690)
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
ld a, $1
ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a
- ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
- ld bc, $f8b ; but here checks the full SAV
+ ld hl, sPlayerName ; hero name located in SRAM
+ ld bc, sMainDataCheckSum - sPlayerName ; but here checks the full SAV
call SAVCheckSum
ld c, a
- ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
+ ld a, [sMainDataCheckSum] ; SAV's checksum
cp c
jr nz, SAVBadCheckSum
- ld hl, S_SAVEDCURBOXDATA
- ld de, W_NUMINBOX
- ld bc, wBoxMonNicksEnd - W_NUMINBOX
+ ld hl, sCurBoxData
+ ld de, wBoxDataStart
+ ld bc, wBoxDataEnd - wBoxDataStart
call CopyData
and a
jp SAVGoodChecksum
-LoadSAVCheckSum2: ; 736bd (1c:76bd)
+LoadSAV2: ; 736bd (1c:76bd)
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
ld a, $1
ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a
- ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
- ld bc, $f8b ; but here checks the full SAV
+ ld hl, sPlayerName ; hero name located in SRAM
+ ld bc, sMainDataCheckSum - sPlayerName ; but here checks the full SAV
call SAVCheckSum
ld c, a
- ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
+ ld a, [sMainDataCheckSum] ; SAV's checksum
cp c
jp nz, SAVBadCheckSum
- ld hl, S_SAVEDPARTYDATA
- ld de, wPartyCount ; wPartyCount
- ld bc, wPokedexOwned - wPartyCount
+ ld hl, sPartyData
+ ld de, wPartyDataStart
+ ld bc, wPartyDataEnd - wPartyDataStart
call CopyData
- ld hl, S_SAVEDMAINDATA
- ld de, wPokedexOwned ; wPokedexOwned
+ ld hl, sMainData
+ ld de, wPokedexOwned
ld bc, wPokedexSeenEnd - wPokedexOwned
call CopyData
and a
@@ -129,18 +131,19 @@ SAVGoodChecksum: ; 736f8 (1c:76f8)
ld [MBC1SRamEnable], a
ret
-Func_73701: ; 0x73701
- call LoadSAVCheckSum
- call LoadSAVCheckSum1
- jp LoadSAVCheckSum2
+LoadSAVIgnoreBadCheckSum: ; 73701 (1c:7701)
+; unused function that loads save data and ignores bad checksums
+ call LoadSAV0
+ call LoadSAV1
+ jp LoadSAV2
-SaveSAV: ;$770a
+SaveSAV: ; 7370a (1c:770a)
callba PrintSaveScreenText
ld hl,WouldYouLikeToSaveText
call SaveSAVConfirm
and a ;|0 = Yes|1 = No|
ret nz
- ld a,[wd088]
+ ld a,[wSaveFileStatus]
dec a
jr z,.save
call SAVCheckRandomID
@@ -149,22 +152,22 @@ SaveSAV: ;$770a
call SaveSAVConfirm
and a
ret nz
-.save ;$772d
- call SaveSAVtoSRAM ;$7848
- hlCoord 1, 13
- ld bc,$0412
- call ClearScreenArea ; clear area 4x12 starting at 13,1
- hlCoord 1, 14
+.save
+ call SaveSAVtoSRAM
+ coord hl, 1, 13
+ lb bc, 4, 18
+ call ClearScreenArea
+ coord hl, 1, 14
ld de,NowSavingString
call PlaceString
- ld c,$78
+ ld c,120
call DelayFrames
ld hl,GameSavedText
call PrintText
- ld a, (SFX_02_5d - SFX_Headers_02) / 3 ;sound for saved game
+ ld a, SFX_SAVE
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
- ld c,$1e
+ ld c,30
jp DelayFrames
NowSavingString:
@@ -172,8 +175,8 @@ NowSavingString:
SaveSAVConfirm: ; 73768 (1c:7768)
call PrintText
- hlCoord 0, 7
- ld bc,$0801
+ coord hl, 0, 7
+ lb bc, 8, 1
ld a,TWO_OPTION_MENU
ld [wTextBoxID],a
call DisplayTextBoxID ; yes/no menu
@@ -199,27 +202,27 @@ SaveSAVtoSRAM0: ; 7378c (1c:778c)
ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a
ld hl, wPlayerName
- ld de, S_SAVEDPLAYERNAME
- ld bc, $b
+ ld de, sPlayerName
+ ld bc, NAME_LENGTH
call CopyData
- ld hl, wPokedexOwned
- ld de, S_SAVEDMAINDATA
- ld bc, W_NUMINBOX - wPokedexOwned
+ ld hl, wMainDataStart
+ ld de, sMainData
+ ld bc, wMainDataEnd - wMainDataStart
call CopyData
- ld hl, wSpriteStateData1
- ld de, S_SAVEDSPRITEDATA
- ld bc, $200
+ ld hl, wSpriteDataStart
+ ld de, sSpriteData
+ ld bc, wSpriteDataEnd - wSpriteDataStart
call CopyData
- ld hl, W_NUMINBOX
- ld de, S_SAVEDCURBOXDATA
- ld bc, wBoxMonNicksEnd - W_NUMINBOX
+ ld hl, wBoxDataStart
+ ld de, sCurBoxData
+ ld bc, wBoxDataEnd - wBoxDataStart
call CopyData
ld a, [hTilesetType]
- ld [S_SAVEDhTilesetType], a
- ld hl, S_SAVEDPLAYERNAME
- ld bc, $f8b
+ ld [sTilesetType], a
+ ld hl, sPlayerName
+ ld bc, sMainDataCheckSum - sPlayerName
call SAVCheckSum
- ld [S_SAVEDMAINDATACHECKSUM], a
+ ld [sMainDataCheckSum], a
xor a
ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a
@@ -232,14 +235,14 @@ SaveSAVtoSRAM1: ; 737e2 (1c:77e2)
ld a, $1
ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a
- ld hl, W_NUMINBOX
- ld de, S_SAVEDCURBOXDATA
- ld bc, wBoxMonNicksEnd - W_NUMINBOX
+ ld hl, wBoxDataStart
+ ld de, sCurBoxData
+ ld bc, wBoxDataEnd - wBoxDataStart
call CopyData
- ld hl, S_SAVEDPLAYERNAME
- ld bc, $f8b
+ ld hl, sPlayerName
+ ld bc, sMainDataCheckSum - sPlayerName
call SAVCheckSum
- ld [S_SAVEDMAINDATACHECKSUM], a
+ ld [sMainDataCheckSum], a
xor a
ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a
@@ -251,18 +254,18 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f)
ld a, $1
ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a
- ld hl, wPartyCount
- ld de, S_SAVEDPARTYDATA
- ld bc, wPokedexOwned - wPartyCount
+ ld hl, wPartyDataStart
+ ld de, sPartyData
+ ld bc, wPartyDataEnd - wPartyDataStart
call CopyData
ld hl, wPokedexOwned ; pokédex only
- ld de, S_SAVEDMAINDATA
+ ld de, sMainData
ld bc, wPokedexSeenEnd - wPokedexOwned
call CopyData
- ld hl, S_SAVEDPLAYERNAME
- ld bc, $f8b
+ ld hl, sPlayerName
+ ld bc, sMainDataCheckSum - sPlayerName
call SAVCheckSum
- ld [S_SAVEDMAINDATACHECKSUM], a
+ ld [sMainDataCheckSum], a
xor a
ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a
@@ -270,14 +273,14 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f)
SaveSAVtoSRAM: ; 73848 (1c:7848)
ld a, $2
- ld [wd088], a
+ ld [wSaveFileStatus], a
call SaveSAVtoSRAM0
call SaveSAVtoSRAM1
jp SaveSAVtoSRAM2
SAVCheckSum: ; 73856 (1c:7856)
;Check Sum (result[1 byte] is complemented)
- ld d, $0
+ ld d, 0
.loop
ld a, [hli]
add d
@@ -290,35 +293,37 @@ SAVCheckSum: ; 73856 (1c:7856)
cpl
ret
-Func_73863: ; 73863 (1c:7863)
- ld hl, $a000
- ld de, S_SAVEDBOXESCHECKSUM2 ; $ba4d
- ld b, $6
-.asm_7386b
+CalcIndividualBoxCheckSums: ; 73863 (1c:7863)
+ ld hl, sBox1 ; sBox7
+ ld de, sBank2IndividualBoxChecksums ; sBank3IndividualBoxChecksums
+ ld b, NUM_BOXES / 2
+.loop
push bc
push de
- ld bc, $462
+ ld bc, wBoxDataEnd - wBoxDataStart
call SAVCheckSum
pop de
ld [de], a
inc de
pop bc
dec b
- jr nz, .asm_7386b
+ jr nz, .loop
ret
-Func_7387b: ; 7387b (1c:787b)
- ld hl, PointerTable_73895 ; $7895
- ld a, [wd5a0]
+GetBoxSRAMLocation: ; 7387b (1c:787b)
+; in: a = box num
+; out: b = box SRAM bank, hl = pointer to start of box
+ ld hl, BoxSRAMPointerTable
+ ld a, [wCurrentBoxNum]
and $7f
- cp $6
- ld b, $2
- jr c, .asm_7388c
+ cp NUM_BOXES / 2
+ ld b, 2
+ jr c, .next
inc b
- sub $6
-.asm_7388c
+ sub NUM_BOXES / 2
+.next
ld e, a
- ld d, $0
+ ld d, 0
add hl, de
add hl, de
ld a, [hli]
@@ -326,13 +331,13 @@ Func_7387b: ; 7387b (1c:787b)
ld l, a
ret
-PointerTable_73895: ; 73895 (1c:7895)
- dw S_SAVEDBOX1
- dw S_SAVEDBOX2
- dw S_SAVEDBOX3
- dw S_SAVEDBOX4
- dw S_SAVEDBOX5
- dw S_SAVEDBOX6
+BoxSRAMPointerTable: ; 73895 (1c:7895)
+ dw sBox1 ; sBox7
+ dw sBox2 ; sBox8
+ dw sBox3 ; sBox9
+ dw sBox4 ; sBox10
+ dw sBox5 ; sBox11
+ dw sBox6 ; sBox12
ChangeBox:: ; 738a1 (1c:78a1)
ld hl, WhenYouChangeBoxText
@@ -341,29 +346,29 @@ ChangeBox:: ; 738a1 (1c:78a1)
ld a, [wCurrentMenuItem]
and a
ret nz ; return if No was chosen
- ld hl, wd5a0
- bit 7, [hl]
- call z, Func_73a29
- call Func_7393f
+ ld hl, wCurrentBoxNum
+ bit 7, [hl] ; is it the first time player is changing the box?
+ call z, EmptyAllSRAMBoxes ; if so, empty all boxes in SRAM
+ call DisplayChangeBoxMenu
call UpdateSprites
ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
ld hl, hFlags_0xFFF6
res 1, [hl]
- bit 1, a
+ bit 1, a ; pressed b
ret nz
- call Func_7387b
+ call GetBoxSRAMLocation
ld e, l
ld d, h
- ld hl, W_NUMINBOX
- call Func_7390e
+ ld hl, wBoxDataStart
+ call CopyBoxToOrFromSRAM ; copy old box from WRAM to SRAM
ld a, [wCurrentMenuItem]
set 7, a
- ld [wd5a0], a
- call Func_7387b
- ld de, W_NUMINBOX
- call Func_7390e
+ ld [wCurrentBoxNum], a
+ call GetBoxSRAMLocation
+ ld de, wBoxDataStart
+ call CopyBoxToOrFromSRAM ; copy new box from SRAM to WRAM
ld hl, W_MAPTEXTPTR
ld de, wChangeBoxSavedMapTextPointer
ld a, [hli]
@@ -375,7 +380,7 @@ ChangeBox:: ; 738a1 (1c:78a1)
call SaveSAVtoSRAM
ld hl, wChangeBoxSavedMapTextPointer
call SetMapTextPointer
- ld a, (SFX_02_5d - SFX_Headers_02) / 3
+ ld a, SFX_SAVE
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
ret
@@ -384,7 +389,8 @@ WhenYouChangeBoxText: ; 73909 (1c:7909)
TX_FAR _WhenYouChangeBoxText
db "@"
-Func_7390e: ; 7390e (1c:790e)
+CopyBoxToOrFromSRAM: ; 7390e (1c:790e)
+; copy an entire box from hl to de with b as the SRAM bank
push hl
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
@@ -392,92 +398,95 @@ Func_7390e: ; 7390e (1c:790e)
ld [MBC1SRamBankingMode], a
ld a, b
ld [MBC1SRamBank], a
- ld bc, $462
+ ld bc, wBoxDataEnd - wBoxDataStart
call CopyData
pop hl
+
+; mark the memory that the box was copied from as am empty box
xor a
ld [hli], a
dec a
ld [hl], a
- ld hl, $a000
- ld bc, $1a4c
+
+ ld hl, sBox1 ; sBox7
+ ld bc, sBank2AllBoxesChecksum - sBox1
call SAVCheckSum
- ld [S_SAVEDBOXESCHECKSUM], a
- call Func_73863
+ ld [sBank2AllBoxesChecksum], a ; sBank3AllBoxesChecksum
+ call CalcIndividualBoxCheckSums
xor a
ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a
ret
-Func_7393f: ; 7393f (1c:793f)
+DisplayChangeBoxMenu: ; 7393f (1c:793f)
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, $3
- ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
- ld a, $b
- ld [wMaxMenuItem], a ; wMaxMenuItem
- ld a, $1
- ld [wTopMenuItemY], a ; wTopMenuItemY
- ld a, $c
- ld [wTopMenuItemX], a ; wTopMenuItemX
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, A_BUTTON | B_BUTTON
+ ld [wMenuWatchedKeys], a
+ ld a, 11
+ ld [wMaxMenuItem], a
+ ld a, 1
+ ld [wTopMenuItemY], a
+ ld a, 12
+ ld [wTopMenuItemX], a
xor a
- ld [wcc37], a
- ld a, [wd5a0]
+ ld [wMenuWatchMovingOutOfBounds], a
+ ld a, [wCurrentBoxNum]
and $7f
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld [wLastMenuItem], a ; wLastMenuItem
- ld hl, wTileMap
- ld b, $2
- ld c, $9
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
+ coord hl, 0, 0
+ ld b, 2
+ ld c, 9
call TextBoxBorder
ld hl, ChooseABoxText
call PrintText
- hlCoord 11, 0
- ld b, $c
- ld c, $7
+ coord hl, 11, 0
+ ld b, 12
+ ld c, 7
call TextBoxBorder
ld hl, hFlags_0xFFF6
set 2, [hl]
- ld de, BoxNames ; $79d9
- hlCoord 13, 1
+ ld de, BoxNames
+ coord hl, 13, 1
call PlaceString
ld hl, hFlags_0xFFF6
res 2, [hl]
- ld a, [wd5a0]
+ ld a, [wCurrentBoxNum]
and $7f
cp 9
- jr c, .asm_739a6
+ jr c, .singleDigitBoxNum
sub 9
- hlCoord 8, 2
+ coord hl, 8, 2
ld [hl], "1"
add "0"
- jr .asm_739a8
-.asm_739a6
+ jr .next
+.singleDigitBoxNum
add "1"
-.asm_739a8
+.next
Coorda 9, 2
- hlCoord 1, 2
+ coord hl, 1, 2
ld de, BoxNoText
call PlaceString
- call Func_73a84
- hlCoord 18, 1
- ld de, wWhichTrade ; wWhichTrade
- ld bc, $14
+ call GetMonCountsForAllBoxes
+ coord hl, 18, 1
+ ld de, wBoxMonCounts
+ ld bc, SCREEN_WIDTH
ld a, $c
-.asm_739c2
+.loop
push af
ld a, [de]
- and a
- jr z, .asm_739c9
- ld [hl], $78
-.asm_739c9
+ and a ; is the box empty?
+ jr z, .skipPlacingPokeball
+ ld [hl], $78 ; place pokeball tile next to box name if box not empty
+.skipPlacingPokeball
add hl, bc
inc de
pop af
dec a
- jr nz, .asm_739c2
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ jr nz, .loop
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
ret
ChooseABoxText: ; 739d4 (1c:79d4)
@@ -501,51 +510,54 @@ BoxNames: ; 739d9 (1c:79d9)
BoxNoText: ; 73a21 (1c:7a21)
db "BOX No.@"
-Func_73a29: ; 73a29 (1c:7a29)
+EmptyAllSRAMBoxes: ; 73a29 (1c:7a29)
+; marks all boxes in SRAM as empty (initialisation for the first time the
+; player changes the box)
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
ld a, $1
ld [MBC1SRamBankingMode], a
- ld a, $2
+ ld a, 2
ld [MBC1SRamBank], a
- call Func_73a4b
- ld a, $3
+ call EmptySRAMBoxesInBank
+ ld a, 3
ld [MBC1SRamBank], a
- call Func_73a4b
+ call EmptySRAMBoxesInBank
xor a
ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a
ret
-Func_73a4b: ; 73a4b (1c:7a4b)
- ld hl, S_SAVEDBOX1
- call Func_73a7f
- ld hl, S_SAVEDBOX2
- call Func_73a7f
- ld hl, S_SAVEDBOX3
- call Func_73a7f
- ld hl, S_SAVEDBOX4
- call Func_73a7f
- ld hl, S_SAVEDBOX5
- call Func_73a7f
- ld hl, S_SAVEDBOX6
- call Func_73a7f
- ld hl, S_SAVEDBOX1
- ld bc, $6 * (S_SAVEDBOX2 - S_SAVEDBOX1) ; $1a4c
+EmptySRAMBoxesInBank: ; 73a4b (1c:7a4b)
+; marks every box in the current SRAM bank as empty
+ ld hl, sBox1 ; sBox7
+ call EmptySRAMBox
+ ld hl, sBox2 ; sBox8
+ call EmptySRAMBox
+ ld hl, sBox3 ; sBox9
+ call EmptySRAMBox
+ ld hl, sBox4 ; sBox10
+ call EmptySRAMBox
+ ld hl, sBox5 ; sBox11
+ call EmptySRAMBox
+ ld hl, sBox6 ; sBox12
+ call EmptySRAMBox
+ ld hl, sBox1 ; sBox7
+ ld bc, sBank2AllBoxesChecksum - sBox1
call SAVCheckSum
- ld [S_SAVEDBOXESCHECKSUM], a
- call Func_73863
+ ld [sBank2AllBoxesChecksum], a ; sBank3AllBoxesChecksum
+ call CalcIndividualBoxCheckSums
ret
-Func_73a7f: ; 73a7f (1c:7a7f)
+EmptySRAMBox: ; 73a7f (1c:7a7f)
xor a
ld [hli], a
dec a
ld [hl], a
ret
-Func_73a84: ; 73a84 (1c:7a84)
- ld hl, wWhichTrade ; wWhichTrade
+GetMonCountsForAllBoxes: ; 73a84 (1c:7a84)
+ ld hl, wBoxMonCounts
push hl
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
@@ -553,58 +565,61 @@ Func_73a84: ; 73a84 (1c:7a84)
ld [MBC1SRamBankingMode], a
ld a, $2
ld [MBC1SRamBank], a
- call Func_73ab8
+ call GetMonCountsForBoxesInBank
ld a, $3
ld [MBC1SRamBank], a
- call Func_73ab8
+ call GetMonCountsForBoxesInBank
xor a
ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a
pop hl
- ld a, [wd5a0]
+
+; copy the count for the current box from WRAM
+ ld a, [wCurrentBoxNum]
and $7f
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
ld [hl], a
+
ret
-Func_73ab8: ; 73ab8 (1c:7ab8)
- ld a, [S_SAVEDBOX1]
+GetMonCountsForBoxesInBank: ; 73ab8 (1c:7ab8)
+ ld a, [sBox1] ; sBox7
ld [hli], a
- ld a, [S_SAVEDBOX2]
+ ld a, [sBox2] ; sBox8
ld [hli], a
- ld a, [S_SAVEDBOX3]
+ ld a, [sBox3] ; sBox9
ld [hli], a
- ld a, [S_SAVEDBOX4]
+ ld a, [sBox4] ; sBox10
ld [hli], a
- ld a, [S_SAVEDBOX5]
+ ld a, [sBox5] ; sBox11
ld [hli], a
- ld a, [S_SAVEDBOX6]
+ ld a, [sBox6] ; sBox12
ld [hli], a
ret
-SAVCheckRandomID: ;$7ad1
+SAVCheckRandomID: ; 73ad1 (1c:7ad1)
;checks if Sav file is the same by checking player's name 1st letter ($a598)
; and the two random numbers generated at game beginning
-;(which are stored at wPlayerID)
+;(which are stored at wPlayerID)s
ld a,$0a
- ld [$0000],a
+ ld [MBC1SRamEnable],a
ld a,$01
ld [MBC1SRamBankingMode],a
ld [MBC1SRamBank],a
- ld a,[S_SAVEDPLAYERNAME]
+ ld a,[sPlayerName]
and a
jr z,.next
- ld hl,S_SAVEDPLAYERNAME
- ld bc,$0f8b
+ ld hl,sPlayerName
+ ld bc, sMainDataCheckSum - sPlayerName
call SAVCheckSum
ld c,a
- ld a,[S_SAVEDMAINDATACHECKSUM]
+ ld a,[sMainDataCheckSum]
cp c
jr nz,.next
- ld hl,S_SAVEDMAINDATA + 98 ; player ID
+ ld hl,sMainData + 98 ; player ID
ld a,[hli]
ld h,[hl]
ld l,a
@@ -616,39 +631,39 @@ SAVCheckRandomID: ;$7ad1
.next
ld a,$00
ld [MBC1SRamBankingMode],a
- ld [$0000],a
+ ld [MBC1SRamEnable],a
ret
SaveHallOfFameTeams: ; 73b0d (1c:7b0d)
- ld a, [wd5a2]
+ ld a, [wNumHoFTeams]
dec a
- cp NUM_HOF_TEAMS
+ cp HOF_TEAM_CAPACITY
jr nc, .asm_73b28
ld hl, sHallOfFame
ld bc, HOF_TEAM
call AddNTimes
ld e, l
ld d, h
- ld hl, wcc5b
+ ld hl, wHallOfFame
ld bc, HOF_TEAM
jr HallOfFame_Copy
.asm_73b28
ld hl, sHallOfFame + HOF_TEAM
ld de, sHallOfFame
- ld bc, HOF_TEAM * (NUM_HOF_TEAMS - 1)
+ ld bc, HOF_TEAM * (HOF_TEAM_CAPACITY - 1)
call HallOfFame_Copy
- ld hl, wcc5b
- ld de, sHallOfFame + HOF_TEAM * (NUM_HOF_TEAMS - 1)
+ ld hl, wHallOfFame
+ ld de, sHallOfFame + HOF_TEAM * (HOF_TEAM_CAPACITY - 1)
ld bc, HOF_TEAM
jr HallOfFame_Copy
LoadHallOfFameTeams: ; 73b3f (1c:7b3f)
ld hl, sHallOfFame
ld bc, HOF_TEAM
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wHoFTeamIndex]
call AddNTimes
- ld de, wcc5b
+ ld de, wHallOfFame
ld bc, HOF_TEAM
; fallthrough
diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm
index fc1a3e11..0b72d7e5 100755
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -10,45 +10,45 @@ PromptUserToPlaySlots: ; 3730e (d:730e)
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .skip
+ jr nz, .done ; if player chose No
dec a
ld [wUpdateSpritesEnabled], a
- ld hl, wcd4f
+ ld hl, wSlotMachineRerollCounter
xor a
ld [hli], a
- ld [hl], $2
+ ld [hl], SMILE_BUBBLE
predef EmotionBubble
call GBPalWhiteOutWithDelay3
call LoadSlotMachineTiles
call LoadFontTilePatterns
- ld b, $5
- call GoPAL_SET
+ ld b, SET_PAL_SLOTS
+ call RunPaletteCommand
call GBPalNormal
ld a, $e4
- ld [$ff48], a
+ ld [rOBP0], a
ld hl, wd730
set 6, [hl]
xor a
- ld [W_SUBANIMSUBENTRYADDR], a
- ld hl, wTrainerSpriteOffset
+ ld [wSlotMachineAllowMatchesCounter], a
+ ld hl, wStoppingWhichSlotMachineWheel
ld bc, $0014
call FillMemory
call MainSlotMachineLoop
ld hl, wd730
res 6, [hl]
xor a
- ld [W_SUBANIMSUBENTRYADDR], a
+ ld [wSlotMachineAllowMatchesCounter], a
call GBPalWhiteOutWithDelay3
ld a, $1
ld [wUpdateSpritesEnabled], a
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
call ReloadMapSpriteTilePatterns
call ReloadTilesetTilePatterns
-.skip
+.done
call LoadScreenTilesFromBuffer2
call Delay3
call GBPalNormal
- ld a, [wcc5e]
+ ld a, [wSlotMachineSavedROMBank]
push af
jp CloseTextDisplay
@@ -57,43 +57,43 @@ PlaySlotMachineText: ; 37390 (d:7390)
db "@"
MainSlotMachineLoop: ; 37395 (d:7395)
- call SlotMachine_37754
+ call SlotMachine_PrintCreditCoins
xor a
- ld hl, wcd4a
+ ld hl, wPayoutCoins
ld [hli], a
ld [hl], a
- call SlotMachine_3775f
+ call SlotMachine_PrintPayoutCoins
ld hl, BetHowManySlotMachineText
call PrintText
call SaveScreenTilesToBuffer1
.loop
- ld a, $3
+ ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
- ld a, $2
+ ld a, 2
ld [wMaxMenuItem], a
- ld a, $c
+ ld a, 12
ld [wTopMenuItemY], a
- ld a, $f
+ ld a, 15
ld [wTopMenuItemX], a
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld [wcc37], a
- ld hl, wTileMap + $ea
- ld b, $5
- ld c, $4
+ ld [wMenuWatchMovingOutOfBounds], a
+ coord hl, 14, 11
+ ld b, 5
+ ld c, 4
call TextBoxBorder
- ld hl, wTileMap + $100
+ coord hl, 16, 12
ld de, CoinMultiplierSlotMachineText
call PlaceString
call HandleMenuInput
- and $2
+ and B_BUTTON
jp nz, LoadScreenTilesFromBuffer1
ld a, [wCurrentMenuItem]
ld b, a
- ld a, $3
+ ld a, 3
sub b
- ld [wcd50], a
+ ld [wSlotMachineBet], a
ld hl, wPlayerCoins
ld c, a
ld a, [hli]
@@ -107,34 +107,34 @@ MainSlotMachineLoop: ; 37395 (d:7395)
jr .loop
.skip1
call LoadScreenTilesFromBuffer1
- call SlotMachine_37741
- call SlotMachine_377d5
- call SlotMachine_37480
- ld a, $4
- ld hl, wcd4d
+ call SlotMachine_SubtractBetFromPlayerCoins
+ call SlotMachine_LightBalls
+ call SlotMachine_SetFlags
+ ld a, 4
+ ld hl, wSlotMachineWheel1SlipCounter
ld [hli], a
ld [hli], a
ld [hl], a
call WaitForSoundToFinish
- ld a, (SFX_1f_66 - SFX_Headers_1f) / 3
+ ld a, SFX_SLOTS_NEW_SPIN
call PlaySound
ld hl, StartSlotMachineText
call PrintText
- call SlotMachine_374ad
- call SlotMachine_37588
+ call SlotMachine_SpinWheels
+ call SlotMachine_CheckForMatches
ld hl, wPlayerCoins
ld a, [hli]
or [hl]
jr nz, .skip2
ld hl, OutOfCoinsSlotMachineText
call PrintText
- ld c, $3c
+ ld c, 60
jp DelayFrames
.skip2
ld hl, OneMoreGoSlotMachineText
call PrintText
- ld hl, wTileMap + $fe
- ld bc, $0d0f
+ coord hl, 14, 12
+ lb bc, 13, 15
xor a ; YES_NO_MENU
ld [wTwoOptionMenuID], a
ld a, TWO_OPTION_MENU
@@ -143,7 +143,7 @@ MainSlotMachineLoop: ; 37395 (d:7395)
ld a, [wCurrentMenuItem]
and a
ret nz
- call SlotMachine_377ce
+ call SlotMachine_PutOutLitBalls
jp MainSlotMachineLoop
CoinMultiplierSlotMachineText: ; 3745e (d:745e)
@@ -171,55 +171,55 @@ OneMoreGoSlotMachineText: ; 3747b (d:747b)
TX_FAR _OneMoreGoSlotMachineText
db "@"
-SlotMachine_37480: ; 37480 (d:7480)
- ld hl, wcd4c
+SlotMachine_SetFlags: ; 37480 (d:7480)
+ ld hl, wSlotMachineFlags
bit 7, [hl]
ret nz
- ld a, [W_SUBANIMSUBENTRYADDR]
+ ld a, [wSlotMachineAllowMatchesCounter]
and a
- jr nz, .skip1
+ jr nz, .allowMatches
call Random
and a
- jr z, .skip2
+ jr z, .setAllowMatchesCounter ; 1/256 (~0.4%) chance
ld b, a
- ld a, [wcc5b]
+ ld a, [wSlotMachineSevenAndBarModeChance]
cp b
- jr c, .skip3
- ld a, $d2
+ jr c, .allowSevenAndBarMatches
+ ld a, 210
cp b
- jr c, .skip1
- ld [hl], $0
+ jr c, .allowMatches ; 55/256 (~21.5%) chance
+ ld [hl], 0
ret
-.skip1
+.allowMatches
set 6, [hl]
ret
-.skip2
- ld a, $3c
- ld [W_SUBANIMSUBENTRYADDR], a
+.setAllowMatchesCounter
+ ld a, 60
+ ld [wSlotMachineAllowMatchesCounter], a
ret
-.skip3
+.allowSevenAndBarMatches
set 7, [hl]
ret
-SlotMachine_374ad: ; 374ad (d:74ad)
- ld c, $14
+SlotMachine_SpinWheels: ; 374ad (d:74ad)
+ ld c, 20
.loop1
push bc
- call SlotMachine_37813
- call SlotMachine_37823
- call SlotMachine_37833
- ld c, $2
+ call SlotMachine_AnimWheel1
+ call SlotMachine_AnimWheel2
+ call SlotMachine_AnimWheel3
+ ld c, 2
call DelayFrames
pop bc
dec c
jr nz, .loop1
xor a
- ld [wTrainerSpriteOffset], a
+ ld [wStoppingWhichSlotMachineWheel], a
.loop2
- call SlotMachine_37882
- call SlotMachine_374df
- call SlotMachine_374fb
- call SlotMachine_37517
+ call SlotMachine_HandleInputWhileWheelsSpin
+ call SlotMachine_StopOrAnimWheel1
+ call SlotMachine_StopOrAnimWheel2
+ call SlotMachine_StopOrAnimWheel3
ret c
ld a, [wOnSGB]
xor $1
@@ -228,194 +228,214 @@ SlotMachine_374ad: ; 374ad (d:74ad)
call DelayFrames
jr .loop2
-SlotMachine_374df: ; 374df (d:74df)
- ld a, [wTrainerSpriteOffset]
- cp $1
- jr c, .skip
- ld de, wTrainerEngageDistance
+; Note that the wheels can only stop when a symbol is centred in the wheel
+; and thus 3 full symbols rather than 2 full symbols and 2 half symbols are
+; visible. The 3 functions below ensure this by checking if the wheel offset
+; is even before stopping the wheel.
+
+SlotMachine_StopOrAnimWheel1: ; 374df (d:74df)
+ ld a, [wStoppingWhichSlotMachineWheel]
+ cp 1
+ jr c, .animWheel
+ ld de, wSlotMachineWheel1Offset
ld a, [de]
rra
- jr nc, .skip
- ld hl, wcd4d
+ jr nc, .animWheel ; check that a symbol is centred in the wheel
+ ld hl, wSlotMachineWheel1SlipCounter
ld a, [hl]
and a
ret z
dec [hl]
- call SlotMachine_3752c
+ call SlotMachine_StopWheel1Early
ret nz
-.skip
- jp SlotMachine_37813
-
-SlotMachine_374fb: ; 374fb (d:74fb)
- ld a, [wTrainerSpriteOffset]
- cp $2
- jr c, .skip
- ld de, wTrainerFacingDirection
+.animWheel
+ jp SlotMachine_AnimWheel1
+
+SlotMachine_StopOrAnimWheel2: ; 374fb (d:74fb)
+ ld a, [wStoppingWhichSlotMachineWheel]
+ cp 2
+ jr c, .animWheel
+ ld de, wSlotMachineWheel2Offset
ld a, [de]
rra
- jr nc, .skip
- ld hl, wcd4e
+ jr nc, .animWheel ; check that a symbol is centred in the wheel
+ ld hl, wSlotMachineWheel2SlipCounter
ld a, [hl]
and a
ret z
dec [hl]
- call SlotMachine_37552
+ call SlotMachine_StopWheel2Early
ret z
-.skip
- jp SlotMachine_37823
-
-SlotMachine_37517: ; 37517 (d:7517)
- ld a, [wTrainerSpriteOffset]
- cp $3
- jr c, .skip
- ld de, wTrainerScreenY
+.animWheel
+ jp SlotMachine_AnimWheel2
+
+SlotMachine_StopOrAnimWheel3: ; 37517 (d:7517)
+ ld a, [wStoppingWhichSlotMachineWheel]
+ cp 3
+ jr c, .animWheel
+ ld de, wSlotMachineWheel3Offset
ld a, [de]
rra
- jr nc, .skip
+ jr nc, .animWheel ; check that a symbol is centred in the wheel
+; wheel 3 stops as soon as possible
scf
ret
-.skip
- call SlotMachine_37833
+.animWheel
+ call SlotMachine_AnimWheel3
and a
ret
-SlotMachine_3752c: ; 3752c (d:752c)
- call SlotMachine_GetWheelOneTile
- ld hl, wTrainerScreenX
- ld a, [wcd4c]
+SlotMachine_StopWheel1Early: ; 3752c (d:752c)
+ call SlotMachine_GetWheel1Tiles
+ ld hl, wSlotMachineWheel1BottomTile
+ ld a, [wSlotMachineFlags]
and $80
- jr nz, .skip1
+ jr nz, .sevenAndBarMode
+; Stop early if the middle symbol is not a cherry.
inc hl
ld a, [hl]
- cp $a
- jr nz, .skip2
+ cp SLOTSCHERRY >> 8
+ jr nz, .stopWheel
ret
-.skip1
+; It looks like this was intended to make the wheel stop when a 7 symbol was
+; visible, but it has a bug and so the wheel stops randomly.
+.sevenAndBarMode
ld c, $3
.loop
ld a, [hli]
- cp $2
- jr c, .skip2
+ cp SLOTS7 >> 8
+ jr c, .stopWheel ; condition never true
dec c
jr nz, .loop
ret
-.skip2
+.stopWheel
inc a
- ld hl, wcd4d
- ld [hl], $0
+ ld hl, wSlotMachineWheel1SlipCounter
+ ld [hl], 0
ret
-SlotMachine_37552: ; 37552 (d:7552)
- call SlotMachine_GetWheelTwoTile
- ld a, [wcd4c]
+SlotMachine_StopWheel2Early: ; 37552 (d:7552)
+ call SlotMachine_GetWheel2Tiles
+ ld a, [wSlotMachineFlags]
and $80
- jr nz, .skip1
- call SlotMachine_3756e
+ jr nz, .sevenAndBarMode
+; Stop early if any symbols are lined up in the first two wheels.
+ call SlotMachine_FindWheel1Wheel2Matches
ret nz
- jr .skip2
-.skip1
- call SlotMachine_3756e
+ jr .stopWheel
+; Stop early if two 7 symbols or two bar symbols are lined up in the first two
+; wheels OR if no symbols are lined up and the bottom symbol in wheel 2 is a
+; 7 symbol or bar symbol. The second part could be a bug or a way to reduce the
+; player's odds.
+.sevenAndBarMode
+ call SlotMachine_FindWheel1Wheel2Matches
ld a, [de]
- cp $7
+ cp (SLOTSBAR >> 8) + 1
ret nc
-.skip2
+.stopWheel
xor a
- ld [wcd4e], a
+ ld [wSlotMachineWheel2SlipCounter], a
ret
-SlotMachine_3756e: ; 3756e (d:756e)
- ld hl, wTrainerScreenX
- ld de, wcd44
+SlotMachine_FindWheel1Wheel2Matches: ; 3756e (d:756e)
+; return whether wheel 1 and wheel 2's current positions allow a match (given
+; that wheel 3 stops in a good position) in Z
+ ld hl, wSlotMachineWheel1BottomTile
+ ld de, wSlotMachineWheel2BottomTile
ld a, [de]
- cp [hl]
+ cp [hl] ; wheel 1 bottom, wheel 2 bottom
ret z
inc de
ld a, [de]
- cp [hl]
+ cp [hl] ; wheel 1 bottom, wheel 2 middle
ret z
inc hl
- cp [hl]
+ cp [hl] ; wheel 1 middle, wheel 2 middle
ret z
inc hl
- cp [hl]
+ cp [hl] ; wheel 1 top, wheel 2 middle
ret z
inc de
ld a, [de]
- cp [hl]
+ cp [hl] ; wheel 1 top, wheel 2 top
ret z
dec de
dec de
ret
-SlotMachine_37588: ; 37588 (d:7588)
- call SlotMachine_GetWheelThreeTile
- ld a, [wcd50]
- cp $2
- jr z, .skip1
- cp $1
- jr z, .skip2
- ld hl, wTrainerScreenX
- ld de, wcd45
- ld bc, wcd49
+SlotMachine_CheckForMatches: ; 37588 (d:7588)
+ call SlotMachine_GetWheel3Tiles
+ ld a, [wSlotMachineBet]
+ cp 2
+ jr z, .checkMatchesFor2CoinBet
+ cp 1
+ jr z, .checkMatchFor1CoinBet
+; 3 coin bet allows diagonal matches (plus the matches for 1/2 coin bets)
+ ld hl, wSlotMachineWheel1BottomTile
+ ld de, wSlotMachineWheel2MiddleTile
+ ld bc, wSlotMachineWheel3TopTile
call SlotMachine_CheckForMatch
- jp z, .skip5
- ld hl, wcd43
- ld de, wcd45
- ld bc, wcd47
+ jp z, .foundMatch
+ ld hl, wSlotMachineWheel1TopTile
+ ld de, wSlotMachineWheel2MiddleTile
+ ld bc, wSlotMachineWheel3BottomTile
call SlotMachine_CheckForMatch
- jr z, .skip5
-.skip1
- ld hl, wcd43
- ld de, wcd46
- ld bc, wcd49
+ jr z, .foundMatch
+; 2 coin bet allows top/bottom horizontal matches (plus the match for a 1 coin bet)
+.checkMatchesFor2CoinBet
+ ld hl, wSlotMachineWheel1TopTile
+ ld de, wSlotMachineWheel2TopTile
+ ld bc, wSlotMachineWheel3TopTile
call SlotMachine_CheckForMatch
- jr z, .skip5
- ld hl, wTrainerScreenX
- ld de, wcd44
- ld bc, wcd47
+ jr z, .foundMatch
+ ld hl, wSlotMachineWheel1BottomTile
+ ld de, wSlotMachineWheel2BottomTile
+ ld bc, wSlotMachineWheel3BottomTile
call SlotMachine_CheckForMatch
- jr z, .skip5
-.skip2
- ld hl, wcd42
- ld de, wcd45
- ld bc, wcd48
+ jr z, .foundMatch
+; 1 coin bet only allows a middle horizontal match
+.checkMatchFor1CoinBet
+ ld hl, wSlotMachineWheel1MiddleTile
+ ld de, wSlotMachineWheel2MiddleTile
+ ld bc, wSlotMachineWheel3MiddleTile
call SlotMachine_CheckForMatch
- jr z, .skip5
- ld a, [wcd4c]
+ jr z, .foundMatch
+ ld a, [wSlotMachineFlags]
and $c0
- jr z, .skip3
- ld hl, wcd4f
+ jr z, .noMatch
+ ld hl, wSlotMachineRerollCounter
dec [hl]
- jr nz, .skip4
-.skip3
+ jr nz, .rollWheel3DownByOneSymbol
+.noMatch
ld hl, NotThisTimeText
call PrintText
-.loop
+.done
xor a
- ld [wc002], a
+ ld [wMuteAudioAndPauseMusic], a
ret
-.skip4
- call SlotMachine_37833
+.rollWheel3DownByOneSymbol
+ call SlotMachine_AnimWheel3
call DelayFrame
- call SlotMachine_37833
+ call SlotMachine_AnimWheel3
call DelayFrame
- jp SlotMachine_37588
-.skip5
- ld a, [wcd4c]
+ jp SlotMachine_CheckForMatches
+.foundMatch
+ ld a, [wSlotMachineFlags]
and $c0
- jr z, .skip4
+ jr z, .rollWheel3DownByOneSymbol ; roll wheel if player isn't allowed to win
and $80
- jr nz, .skip6
+ jr nz, .acceptMatch
+; if 7/bar matches aren't enabled and the match was a 7/bar symbol, roll wheel
ld a, [hl]
- cp $7
- jr c, .skip4
-.skip6
+ cp (SLOTSBAR >> 8) + 1
+ jr c, .rollWheel3DownByOneSymbol
+.acceptMatch
ld a, [hl]
sub $2
- ld [wTrainerScreenX], a
+ ld [wSlotMachineWinningSymbol], a
ld hl, SlotRewardPointers
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hli]
ld e, a
@@ -426,39 +446,39 @@ SlotMachine_37588: ; 37588 (d:7588)
ld h, [hl]
ld l, a
ld de, wcf4b
- ld bc, $0004
+ ld bc, 4
call CopyData
pop hl
- ld de, .asm_37638
+ ld de, .flashScreenLoop
push de
jp [hl]
-.asm_37638
- ld a, [$ff47]
+.flashScreenLoop
+ ld a, [rBGP]
xor $40
- ld [$ff47], a
- ld c, $5
+ ld [rBGP], a
+ ld c, 5
call DelayFrames
dec b
- jr nz, .asm_37638
- ld hl, wcd4a
+ jr nz, .flashScreenLoop
+ ld hl, wPayoutCoins
ld [hl], d
inc hl
ld [hl], e
- call SlotMachine_3775f
- ld hl, SlotsMachineText_37665
+ call SlotMachine_PrintPayoutCoins
+ ld hl, SymbolLinedUpSlotMachineText
call PrintText
call WaitForTextScrollButtonPress
- call SlotMachine_3776b
- call SlotMachine_3775f
+ call SlotMachine_PayCoinsToPlayer
+ call SlotMachine_PrintPayoutCoins
ld a, $e4
- ld [$ff48], a
- jp .loop
+ ld [rOBP0], a
+ jp .done
-SlotsMachineText_37665: ; 37665 (d:7665)
- db $08 ; asm
+SymbolLinedUpSlotMachineText: ; 37665 (d:7665)
+ TX_ASM
push bc
- call SlotMachine_37728
+ call SlotMachine_PrintWinningSymbol
ld hl, LinedUpText
pop bc
inc bc
@@ -510,28 +530,28 @@ SlotMachine_CheckForMatch: ; 376a2 (d:76a2)
cp [hl]
ret
-SlotMachine_GetWheelThreeTile: ; 376a8 (d:76a8)
- ld de, wcd47
+SlotMachine_GetWheel3Tiles: ; 376a8 (d:76a8)
+ ld de, wSlotMachineWheel3BottomTile
ld hl, SlotMachineWheel3
- ld a, [wTrainerScreenY]
- call SlotMachine_GetWheelTile
+ ld a, [wSlotMachineWheel3Offset]
+ call SlotMachine_GetWheelTiles
-SlotMachine_GetWheelTwoTile: ; 376b4 (d:76b4)
- ld de, wcd44
+SlotMachine_GetWheel2Tiles: ; 376b4 (d:76b4)
+ ld de, wSlotMachineWheel2BottomTile
ld hl, SlotMachineWheel2
- ld a, [wTrainerFacingDirection]
- call SlotMachine_GetWheelTile
+ ld a, [wSlotMachineWheel2Offset]
+ call SlotMachine_GetWheelTiles
-SlotMachine_GetWheelOneTile: ; 376c0 (d:76c0)
- ld de, wTrainerScreenX
+SlotMachine_GetWheel1Tiles: ; 376c0 (d:76c0)
+ ld de, wSlotMachineWheel1BottomTile
ld hl, SlotMachineWheel1
- ld a, [wTrainerEngageDistance]
+ ld a, [wSlotMachineWheel1Offset]
-SlotMachine_GetWheelTile: ; 376c9 (d:76c9)
+SlotMachine_GetWheelTiles: ; 376c9 (d:76c9)
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
- ld c, $3
+ ld c, 3
.loop
ld a, [hli]
ld [de], a
@@ -542,7 +562,7 @@ SlotMachine_GetWheelTile: ; 376c9 (d:76c9)
ret
SlotReward8Func: ; 376d7 (d:76d7)
- ld hl, W_SUBANIMSUBENTRYADDR
+ ld hl, wSlotMachineAllowMatchesCounter
ld a, [hl]
and a
jr z, .skip
@@ -553,7 +573,7 @@ SlotReward8Func: ; 376d7 (d:76d7)
ret
SlotReward15Func: ; 376e5 (d:76e5)
- ld hl, W_SUBANIMSUBENTRYADDR
+ ld hl, wSlotMachineAllowMatchesCounter
ld a, [hl]
and a
jr z, .skip
@@ -564,10 +584,10 @@ SlotReward15Func: ; 376e5 (d:76e5)
ret
SlotReward100Func: ; 376f3 (d:76f3)
- ld a, (SFX_1f_42 - SFX_Headers_1f) / 3
+ ld a, SFX_GET_KEY_ITEM
call PlaySound
xor a
- ld [wcd4c], a
+ ld [wSlotMachineFlags], a
ld b, $8
ld de, 100
ret
@@ -575,15 +595,15 @@ SlotReward100Func: ; 376f3 (d:76f3)
SlotReward300Func: ; 37702 (d:7702)
ld hl, YeahText
call PrintText
- ld a, (SFX_1f_3b - SFX_Headers_1f) / 3
+ ld a, SFX_GET_ITEM_2
call PlaySound
call Random
cp $80
ld a, $0
jr c, .skip
- ld [wcd4c], a
+ ld [wSlotMachineFlags], a
.skip
- ld [W_SUBANIMSUBENTRYADDR], a
+ ld [wSlotMachineAllowMatchesCounter], a
ld b, $14
ld de, 300
ret
@@ -592,26 +612,27 @@ YeahText: ; 37722 (d:7722)
TX_FAR _YeahText
db $0a, "@"
-SlotMachine_37728: ; 37728 (d:7728)
- ld hl, wTileMap + $11a
- ld a, [wTrainerScreenX]
+SlotMachine_PrintWinningSymbol: ; 37728 (d:7728)
+; prints winning symbol and down arrow in text box
+ coord hl, 2, 14
+ ld a, [wSlotMachineWinningSymbol]
add $25
ld [hli], a
inc a
ld [hld], a
inc a
- ld de, $ffec
+ ld de, -SCREEN_WIDTH
add hl, de
ld [hli], a
inc a
ld [hl], a
- ld hl, wTileMap + $152
- ld [hl], $ee
+ coord hl, 18, 16
+ ld [hl], $ee ; down arrow
ret
-SlotMachine_37741: ; 37741 (d:7741)
- ld hl, wcd4b
- ld a, [wcd50]
+SlotMachine_SubtractBetFromPlayerCoins: ; 37741 (d:7741)
+ ld hl, wTempCoins2 + 1
+ ld a, [wSlotMachineBet]
ld [hld], a
xor a
ld [hli], a
@@ -619,136 +640,143 @@ SlotMachine_37741: ; 37741 (d:7741)
ld c, $2
predef SubBCDPredef
-SlotMachine_37754: ; 37754 (d:7754)
- ld hl, wTileMap + $19
+SlotMachine_PrintCreditCoins: ; 37754 (d:7754)
+ coord hl, 5, 1
ld de, wPlayerCoins
ld c, $2
jp PrintBCDNumber
-SlotMachine_3775f: ; 3775f (d:775f)
- ld hl, wTileMap + $1f
- ld de, wcd4a
- ld bc, $8204
+SlotMachine_PrintPayoutCoins: ; 3775f (d:775f)
+ coord hl, 11, 1
+ ld de, wPayoutCoins
+ lb bc, LEADING_ZEROES | 2, 4 ; 2 bytes, 4 digits
jp PrintNumber
-SlotMachine_3776b: ; 3776b (d:776b)
+SlotMachine_PayCoinsToPlayer: ; 3776b (d:776b)
ld a, $1
- ld [wc002], a
+ ld [wMuteAudioAndPauseMusic], a
call WaitForSoundToFinish
- ld hl, wcd46
+
+; Put 1 in the temp coins variable. This value is added to the player's coins
+; repeatedly so the player can watch the value go up 1 coin at a time.
+ ld hl, wTempCoins1
xor a
ld [hli], a
inc a
ld [hl], a
- ld a, $5
- ld [W_SUBANIMTRANSFORM], a
+
+ ld a, 5
+ ld [wAnimCounter], a
+
+; Subtract 1 from the payout amount and add 1 to the player's coins each
+; iteration until the payout amount reaches 0.
.loop
- ld a, [wcd4b]
+ ld a, [wPayoutCoins + 1]
ld l, a
- ld a, [wcd4a]
+ ld a, [wPayoutCoins]
ld h, a
or l
ret z
- ld de, $ffff
+ ld de, -1
add hl, de
ld a, l
- ld [wcd4b], a
+ ld [wPayoutCoins + 1], a
ld a, h
- ld [wcd4a], a
- ld hl, wcd47
+ ld [wPayoutCoins], a
+ ld hl, wTempCoins1 + 1
ld de, wPlayerCoins + 1
ld c, $2
predef AddBCDPredef
- call SlotMachine_37754
- call SlotMachine_3775f
- ld a, (SFX_1f_65 - SFX_Headers_1f) / 3
+ call SlotMachine_PrintCreditCoins
+ call SlotMachine_PrintPayoutCoins
+ ld a, SFX_SLOTS_REWARD
call PlaySound
- ld a, [W_SUBANIMTRANSFORM]
+ ld a, [wAnimCounter]
dec a
jr nz, .skip1
- ld a, [$ff48]
- xor $40
- ld [$ff48], a
- ld a, $5
+ ld a, [rOBP0]
+ xor $40 ; make the slot wheel symbols flash
+ ld [rOBP0], a
+ ld a, 5
.skip1
- ld [W_SUBANIMTRANSFORM], a
- ld a, [wTrainerScreenX]
- cp $7
- ld c, $8
+ ld [wAnimCounter], a
+ ld a, [wSlotMachineWinningSymbol]
+ cp (SLOTSBAR >> 8) + 1
+ ld c, 8
jr nc, .skip2
- srl c
+ srl c ; c = 4 (make the the coins transfer faster if the symbol was 7 or bar)
.skip2
call DelayFrames
jr .loop
-SlotMachine_377ce: ; 377ce (d:77ce)
+SlotMachine_PutOutLitBalls: ; 377ce (d:77ce)
ld a, $23
- ld [wd08a], a
- jr SlotMachine_377e3
+ ld [wNewSlotMachineBallTile], a
+ jr SlotMachine_UpdateThreeCoinBallTiles
-SlotMachine_377d5: ; 377d5 (d:77d5)
+SlotMachine_LightBalls: ; 377d5 (d:77d5)
ld a, $14
- ld [wd08a], a
- ld a, [wcd50]
+ ld [wNewSlotMachineBallTile], a
+ ld a, [wSlotMachineBet]
dec a
- jr z, SlotMachine_377fb
+ jr z, SlotMachine_UpdateOneCoinBallTiles
dec a
- jr z, SlotMachine_377ef
+ jr z, SlotMachine_UpdateTwoCoinBallTiles
-SlotMachine_377e3: ; 377e3 (d:77e3)
- ld hl, wTileMap + $2b
- call SlotMachine_377fe
- ld hl, wTileMap + $cb
- call SlotMachine_377fe
+SlotMachine_UpdateThreeCoinBallTiles: ; 377e3 (d:77e3)
+ coord hl, 3, 2
+ call SlotMachine_UpdateBallTiles
+ coord hl, 3, 10
+ call SlotMachine_UpdateBallTiles
-SlotMachine_377ef: ; 377ef (d:77ef)
- ld hl, wTileMap + $53
- call SlotMachine_377fe
- ld hl, wTileMap + $a3
- call SlotMachine_377fe
+SlotMachine_UpdateTwoCoinBallTiles: ; 377ef (d:77ef)
+ coord hl, 3, 4
+ call SlotMachine_UpdateBallTiles
+ coord hl, 3, 8
+ call SlotMachine_UpdateBallTiles
-SlotMachine_377fb: ; 377fb (d:77fb)
- ld hl, wTileMap + $7b
+SlotMachine_UpdateOneCoinBallTiles: ; 377fb (d:77fb)
+ coord hl, 3, 6
-SlotMachine_377fe: ; 377fe (d:77fe)
- ld a, [wd08a]
+SlotMachine_UpdateBallTiles: ; 377fe (d:77fe)
+ ld a, [wNewSlotMachineBallTile]
ld [hl], a
- ld bc, $000d
+ ld bc, 13
add hl, bc
ld [hl], a
- ld bc, $0007
+ ld bc, 7
add hl, bc
inc a
ld [hl], a
- ld bc, $000d
+ ld bc, 13
add hl, bc
ld [hl], a
ret
-SlotMachine_37813: ; 37813 (d:7813)
+SlotMachine_AnimWheel1: ; 37813 (d:7813)
ld bc, SlotMachineWheel1
- ld de, wTrainerEngageDistance
+ ld de, wSlotMachineWheel1Offset
ld hl, wOAMBuffer
ld a, $30
ld [W_BASECOORDX], a
- jr SlotMachine_37841
+ jr SlotMachine_AnimWheel
-SlotMachine_37823: ; 37823 (d:7823)
+SlotMachine_AnimWheel2: ; 37823 (d:7823)
ld bc, SlotMachineWheel2
- ld de, wTrainerFacingDirection
+ ld de, wSlotMachineWheel2Offset
ld hl, wOAMBuffer + $30
ld a, $50
ld [W_BASECOORDX], a
- jr SlotMachine_37841
+ jr SlotMachine_AnimWheel
-SlotMachine_37833: ; 37833 (d:7833)
+SlotMachine_AnimWheel3: ; 37833 (d:7833)
ld bc, SlotMachineWheel3
- ld de, wTrainerScreenY
+ ld de, wSlotMachineWheel3Offset
ld hl, wOAMBuffer + $60
ld a, $70
ld [W_BASECOORDX], a
-SlotMachine_37841: ; 37841 (d:7841)
+SlotMachine_AnimWheel: ; 37841 (d:7841)
ld a, $58
ld [W_BASECOORDY], a
push de
@@ -756,10 +784,9 @@ SlotMachine_37841: ; 37841 (d:7841)
ld d, b
add c
ld e, a
- jr nc, SlotMachine_3784e
+ jr nc, .loop
inc d
-
-SlotMachine_3784e: ; 3784e (d:784e)
+.loop
ld a, [W_BASECOORDY]
ld [hli], a
ld a, [W_BASECOORDX]
@@ -783,34 +810,34 @@ SlotMachine_3784e: ; 3784e (d:784e)
sub $8
ld [W_BASECOORDY], a
cp $28
- jr nz, SlotMachine_3784e
+ jr nz, .loop
pop de
ld a, [de]
- inc a
- cp $1e
+ inc a ; advance the offset so that the wheel animates
+ cp 30
jr nz, .skip
- xor a
+ xor a ; wrap around to 0 when the offset reaches 30
.skip
ld [de], a
ret
-SlotMachine_37882: ; 37882 (d:7882)
+SlotMachine_HandleInputWhileWheelsSpin: ; 37882 (d:7882)
call DelayFrame
call JoypadLowSensitivity
ld a, [hJoy5]
- and $1
+ and A_BUTTON
ret z
- ld hl, wTrainerSpriteOffset
+ ld hl, wStoppingWhichSlotMachineWheel
ld a, [hl]
dec a
- ld de, wcd4d
+ ld de, wSlotMachineWheel1SlipCounter
jr z, .skip
dec a
- ld de, wcd4e
+ ld de, wSlotMachineWheel2SlipCounter
jr z, .skip
.loop
inc [hl]
- ld a, (SFX_1f_64 - SFX_Headers_1f) / 3
+ ld a, SFX_SLOTS_STOP_WHEEL
jp PlaySound
.skip
ld a, [de]
@@ -836,29 +863,22 @@ LoadSlotMachineTiles: ; 378a8 (d:78a8)
ld a, BANK(SlotMachineTiles2)
call FarCopyData2
ld hl, SlotMachineMap
- ld de, wTileMap
+ coord de, 0, 0
ld bc, $00f0
call CopyData
call EnableLCD
- ld hl, wTrainerEngageDistance
+ ld hl, wSlotMachineWheel1Offset
ld a, $1c
ld [hli], a
ld [hli], a
ld [hl], a
- call SlotMachine_37813
- call SlotMachine_37823
- jp SlotMachine_37833
+ call SlotMachine_AnimWheel1
+ call SlotMachine_AnimWheel2
+ jp SlotMachine_AnimWheel3
SlotMachineMap: ; 378f5 (d:78f5)
INCBIN "gfx/tilemaps/slotmachine.map"
-SLOTS7 EQU $0200
-SLOTSBAR EQU $0604
-SLOTSCHERRY EQU $0A08
-SLOTSFISH EQU $0E0C
-SLOTSBIRD EQU $1210
-SLOTSMOUSE EQU $1614
-
INCLUDE "data/slot_machine_wheels.asm"
SlotMachineTiles1: ; 37a51 (d:7a51)
diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm
index 8f2fcfe7..8d605c49 100755
--- a/engine/titlescreen.asm
+++ b/engine/titlescreen.asm
@@ -1,30 +1,30 @@
-; copy text of fixed length $b (like player name, rival name, mon names, ...)
+; copy text of fixed length NAME_LENGTH (like player name, rival name, mon names, ...)
CopyFixedLengthText: ; 42b1 (1:42b1)
- ld bc, $b
+ ld bc, NAME_LENGTH
jp CopyData
SetDefaultNamesBeforeTitlescreen: ; 42b7 (1:42b7)
ld hl, NintenText
- ld de, wPlayerName ; wd158
+ ld de, wPlayerName
call CopyFixedLengthText
ld hl, SonyText
- ld de, W_RIVALNAME ; wd34a
+ ld de, W_RIVALNAME
call CopyFixedLengthText
xor a
ld [hWY], a
- ld [wd358], a
+ ld [wLetterPrintingDelayFlags], a
ld hl, wd732
ld [hli], a
ld [hli], a
ld [hl], a
ld a, BANK(Music_TitleScreen)
- ld [wc0ef], a
- ld [wc0f0], a
+ ld [wAudioROMBank], a
+ ld [wAudioSavedROMBank], a
-LoadTitlescreenGraphics: ; 42dd (1:42dd)
+DisplayTitleScreen: ; 42dd (1:42dd)
call GBPalWhiteOut
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
xor a
ld [hTilesetType], a
ld [hSCX], a
@@ -35,112 +35,123 @@ LoadTitlescreenGraphics: ; 42dd (1:42dd)
call ClearScreen
call DisableLCD
call LoadFontTilePatterns
- ld hl, NintendoCopyrightLogoGraphics ; $60c8
+ ld hl, NintendoCopyrightLogoGraphics
ld de, vTitleLogo2 + $100
ld bc, $50
ld a, BANK(NintendoCopyrightLogoGraphics)
call FarCopyData2
- ld hl, GamefreakLogoGraphics ; $61f8
+ ld hl, GamefreakLogoGraphics
ld de, vTitleLogo2 + $100 + $50
ld bc, $90
ld a, BANK(GamefreakLogoGraphics)
call FarCopyData2
- ld hl, PokemonLogoGraphics ; $5380
+ ld hl, PokemonLogoGraphics
ld de, vTitleLogo
ld bc, $600
ld a, BANK(PokemonLogoGraphics)
call FarCopyData2 ; first chunk
- ld hl, PokemonLogoGraphics+$600 ; $5980
+ ld hl, PokemonLogoGraphics+$600
ld de, vTitleLogo2
ld bc, $100
ld a, BANK(PokemonLogoGraphics)
call FarCopyData2 ; second chunk
ld hl, Version_GFX ; $402f
ld de,vChars2 + $600
- ld bc,$50
-
+ ld bc, Version_GFXEnd - Version_GFX
ld a, BANK(Version_GFX)
call FarCopyDataDouble
- call Func_4519
- hlCoord 2, 1
+ call ClearBothBGMaps
+
+; place tiles for pokemon logo (except for the last row)
+ coord hl, 2, 1
ld a, $80
- ld de, $14
- ld c, $6
-.asm_434d
+ ld de, SCREEN_WIDTH
+ ld c, 6
+.pokemonLogoTileLoop
ld b, $10
push hl
-.asm_4350
+.pokemonLogoTileRowLoop ; place tiles for one row
ld [hli], a
inc a
dec b
- jr nz, .asm_4350
+ jr nz, .pokemonLogoTileRowLoop
pop hl
add hl, de
dec c
- jr nz, .asm_434d
- hlCoord 2, 7
+ jr nz, .pokemonLogoTileLoop
+
+; place tiles for the last row of the pokemon logo
+ coord hl, 2, 7
ld a, $31
ld b, $10
-.asm_4361
+.pokemonLogoLastTileRowLoop
ld [hli], a
inc a
dec b
- jr nz, .asm_4361
- call Func_44dd
+ jr nz, .pokemonLogoLastTileRowLoop
+
+ call DrawPlayerCharacter
+
+; put a pokeball in the player's hand
ld hl, wOAMBuffer + $28
ld a, $74
ld [hl], a
- hlCoord 2, 17
- ld de, .titlescreenTilemap ; $437f
+
+; place tiles for title screen copyright
+ coord hl, 2, 17
+ ld de, .tileScreenCopyrightTiles
ld b, $10
-.asm_4377
+.tileScreenCopyrightTilesLoop
ld a, [de]
ld [hli], a
inc de
dec b
- jr nz, .asm_4377
- jr .asm_438f
+ jr nz, .tileScreenCopyrightTilesLoop
+
+ jr .next
-.titlescreenTilemap ; 437f (1:437f)
+.tileScreenCopyrightTiles ; 437f (1:437f)
db $41,$42,$43,$42,$44,$42,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E ; ©'95.'96.'98 GAME FREAK inc.
-.asm_438f
+.next
call SaveScreenTilesToBuffer2
call LoadScreenTilesFromBuffer2
call EnableLCD
ld a,CHARMANDER ; which Pokemon to show first on the title screen
- ld [wWhichTrade], a ; wWhichTrade
- call Func_4524
- ld a, $9b
- call Func_4533
+ ld [wTitleMonSpecies], a
+ call LoadTitleMonSprite
+ ld a, (vBGMap0 + $300) / $100
+ call TitleScreenCopyTileMapToVRAM
call SaveScreenTilesToBuffer1
ld a, $40
ld [hWY], a
call LoadScreenTilesFromBuffer2
- ld a, $98
- call Func_4533
- ld b, $6
- call GoPAL_SET
+ ld a, vBGMap0 / $100
+ call TitleScreenCopyTileMapToVRAM
+ ld b, SET_PAL_TITLE_SCREEN
+ call RunPaletteCommand
call GBPalNormal
- ld a, $e4
- ld [rOBP0], a ; $ff48
- ld bc, $ffaf ; background scroll Y
- ld hl, .TitleScreenPokemonLogoYScrolls ; $43db
-.asm_43c6
+ ld a, %11100100
+ ld [rOBP0], a
+
+; make pokemon logo bounce up and down
+ ld bc, hSCY ; background scroll Y
+ ld hl, .TitleScreenPokemonLogoYScrolls
+.bouncePokemonLogoLoop
ld a, [hli]
and a
- jr z, .asm_43f4
+ jr z, .finishedBouncingPokemonLogo
ld d, a
- cp $fd
- jr nz, .asm_43d4
- ld a, (SFX_1f_62 - SFX_Headers_1f) / 3
+ cp -3
+ jr nz, .skipPlayingSound
+ ld a, SFX_INTRO_CRASH
call PlaySound
-.asm_43d4
+.skipPlayingSound
ld a, [hli]
ld e, a
call .ScrollTitleScreenPokemonLogo
- jr .asm_43c6
+ jr .bouncePokemonLogoLoop
.TitleScreenPokemonLogoYScrolls: ; 43db (1:43db)
; Controls the bouncing effect of the Pokemon logo on the title screen
@@ -157,58 +168,65 @@ LoadTitlescreenGraphics: ; 42dd (1:42dd)
; Scrolls the Pokemon logo on the title screen to create the bouncing effect
; Scrolls d pixels e times
call DelayFrame
- ld a, [bc]
+ ld a, [bc] ; background scroll Y
add d
ld [bc], a
dec e
jr nz, .ScrollTitleScreenPokemonLogo
ret
-.asm_43f4
+
+.finishedBouncingPokemonLogo
call LoadScreenTilesFromBuffer1
- ld c, $24
+ ld c, 36
call DelayFrames
- ld a, (SFX_1f_63 - SFX_Headers_1f) / 3
+ ld a, SFX_INTRO_WHOOSH
call PlaySound
+
+; scroll game version in from the right
call PrintGameVersionOnTitleScreen
- ld a, $90
+ ld a, SCREEN_HEIGHT_PIXELS
ld [hWY], a
- ld d, $90
-.asm_440a
+ ld d, 144
+.scrollTitleScreenGameVersionLoop
ld h, d
- ld l, $40
- call Func_44cf
- ld h, $0
- ld l, $50
- call Func_44cf
+ ld l, 64
+ call ScrollTitleScreenGameVersion
+ ld h, 0
+ ld l, 80
+ call ScrollTitleScreenGameVersion
ld a, d
- add $4
+ add 4
ld d, a
and a
- jr nz, .asm_440a
- ld a, $9c
- call Func_4533
+ jr nz, .scrollTitleScreenGameVersionLoop
+
+ ld a, vBGMap1 / $100
+ call TitleScreenCopyTileMapToVRAM
call LoadScreenTilesFromBuffer2
call PrintGameVersionOnTitleScreen
call Delay3
call WaitForSoundToFinish
ld a, MUSIC_TITLE_SCREEN
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
xor a
- ld [wcc5b], a
-.asm_443b
- ld c, $c8
+ ld [wUnusedCC5B], a
+
+; Keep scrolling in new mons indefinitely until the user performs input.
+.awaitUserInterruptionLoop
+ ld c, 200
call CheckForUserInterruption
- jr c, .asm_4459
- call Func_44c1
- ld c, $1
+ jr c, .finishedWaiting
+ call TitleScreenScrollInMon
+ ld c, 1
call CheckForUserInterruption
- jr c, .asm_4459
- callba Func_372ac
- call Func_4496
- jr .asm_443b
-.asm_4459
- ld a, [wWhichTrade] ; wWhichTrade
+ jr c, .finishedWaiting
+ callba TitleScreenAnimateBallIfStarterOut
+ call TitleScreenPickNewMon
+ jr .awaitUserInterruptionLoop
+
+.finishedWaiting
+ ld a, [wTitleMonSpecies]
call PlayCry
call WaitForSoundToFinish
call GBPalWhiteOutWithDelay3
@@ -216,12 +234,12 @@ LoadTitlescreenGraphics: ; 42dd (1:42dd)
xor a
ld [hWY], a
inc a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
call ClearScreen
- ld a, $98
- call Func_4533
- ld a, $9c
- call Func_4533
+ ld a, vBGMap0 / $100
+ call TitleScreenCopyTileMapToVRAM
+ ld a, vBGMap1 / $100
+ call TitleScreenCopyTileMapToVRAM
call Delay3
call LoadGBPal
ld a, [hJoyHeld]
@@ -232,16 +250,14 @@ LoadTitlescreenGraphics: ; 42dd (1:42dd)
jp MainMenu
.doClearSaveDialogue
- ld b, BANK(DoClearSaveDialogue)
- ld hl, DoClearSaveDialogue
- jp Bankswitch
+ jpba DoClearSaveDialogue
-Func_4496: ; 4496 (1:4496)
- ld a, $98
- call Func_4533
+TitleScreenPickNewMon: ; 4496 (1:4496)
+ ld a, vBGMap0 / $100
+ call TitleScreenCopyTileMapToVRAM
-.new
-; Generate a new TitleMon.
+.loop
+; Keep looping until a mon different from the current one is picked.
call Random
and $f
ld c, a
@@ -249,14 +265,14 @@ Func_4496: ; 4496 (1:4496)
ld hl, TitleMons
add hl, bc
ld a, [hl]
- ld hl, wWhichTrade ; wWhichTrade
+ ld hl, wTitleMonSpecies
; Can't be the same as before.
cp [hl]
- jr z, .new
+ jr z, .loop
ld [hl], a
- call Func_4524
+ call LoadTitleMonSprite
ld a, $90
ld [hWY], a
@@ -264,80 +280,80 @@ Func_4496: ; 4496 (1:4496)
callba TitleScroll
ret
-Func_44c1: ; 44c1 (1:44c1)
+TitleScreenScrollInMon: ; 44c1 (1:44c1)
ld d, 0 ; scroll in
callba TitleScroll
xor a
ld [hWY], a
ret
-Func_44cf: ; 44cf (1:44cf)
+ScrollTitleScreenGameVersion: ; 44cf (1:44cf)
.wait
- ld a, [$ff44] ; rLY
+ ld a, [rLY]
cp l
jr nz, .wait
ld a, h
- ld [rSCX], a ; $ff43
+ ld [rSCX], a
.wait2
- ld a, [$ff44] ; rLY
+ ld a, [rLY]
cp h
jr z, .wait2
ret
-Func_44dd: ; 44dd (1:44dd)
- ld hl, PlayerCharacterTitleGraphics ; $66a8
+DrawPlayerCharacter: ; 44dd (1:44dd)
+ ld hl, PlayerCharacterTitleGraphics
ld de, vSprites
- ld bc, $230
+ ld bc, PlayerCharacterTitleGraphicsEnd - PlayerCharacterTitleGraphics
ld a, BANK(PlayerCharacterTitleGraphics)
call FarCopyData2
call ClearSprites
xor a
- ld [wWhichTrade], a ; wWhichTrade
+ ld [wPlayerCharacterOAMTile], a
ld hl, wOAMBuffer
ld de, $605a
- ld b, $7
-.asm_44fa
+ ld b, 7
+.loop
push de
- ld c, $5
-.asm_44fd
+ ld c, 5
+.innerLoop
ld a, d
- ld [hli], a
+ ld [hli], a ; Y
ld a, e
- ld [hli], a
- add $8
+ ld [hli], a ; X
+ add 8
ld e, a
- ld a, [wWhichTrade] ; wWhichTrade
- ld [hli], a
+ ld a, [wPlayerCharacterOAMTile]
+ ld [hli], a ; tile
inc a
- ld [wWhichTrade], a ; wWhichTrade
+ ld [wPlayerCharacterOAMTile], a
inc hl
dec c
- jr nz, .asm_44fd
+ jr nz, .innerLoop
pop de
- ld a, $8
+ ld a, 8
add d
ld d, a
dec b
- jr nz, .asm_44fa
+ jr nz, .loop
ret
-Func_4519: ; 4519 (1:4519)
+ClearBothBGMaps: ; 4519 (1:4519)
ld hl, vBGMap0
- ld bc, $800
- ld a, $7f
+ ld bc, $400 * 2
+ ld a, " "
jp FillMemory
-Func_4524: ; 4524 (1:4524)
+LoadTitleMonSprite: ; 4524 (1:4524)
ld [wcf91], a
ld [wd0b5], a
- hlCoord 5, 10
+ coord hl, 5, 10
call GetMonHeader
jp LoadFrontSpriteByMonIndex
-Func_4533: ; 4533 (1:4533)
- ld [$ffbd], a
+TitleScreenCopyTileMapToVRAM: ; 4533 (1:4533)
+ ld [H_AUTOBGTRANSFERDEST + 1], a
jp Delay3
LoadCopyrightAndTextBoxTiles: ; 4538 (1:4538)
@@ -347,12 +363,12 @@ LoadCopyrightAndTextBoxTiles: ; 4538 (1:4538)
call LoadTextBoxTilePatterns
LoadCopyrightTiles: ; 4541 (1:4541)
- ld de, NintendoCopyrightLogoGraphics ; $60c8
+ ld de, NintendoCopyrightLogoGraphics
ld hl, vChars2 + $600
- ld bc, (BANK(NintendoCopyrightLogoGraphics) << 8) + $1c
+ lb bc, BANK(NintendoCopyrightLogoGraphics), (GamefreakLogoGraphicsEnd - NintendoCopyrightLogoGraphics) / $10
call CopyVideoData
- hlCoord 2, 7
- ld de, CopyrightTextString ; $4556
+ coord hl, 2, 7
+ ld de, CopyrightTextString
jp PlaceString
CopyrightTextString: ; 4556 (1:4556)
@@ -365,7 +381,7 @@ INCLUDE "data/title_mons.asm"
; prints version text (red, blue)
PrintGameVersionOnTitleScreen: ; 4598 (1:4598)
- hlCoord 7, 8
+ coord hl, 7, 8
ld de, VersionOnTitleScreenText
jp PlaceString
diff --git a/engine/titlescreen2.asm b/engine/titlescreen2.asm
index dc1c633a..c0853a0d 100755
--- a/engine/titlescreen2.asm
+++ b/engine/titlescreen2.asm
@@ -69,15 +69,15 @@ _TitleScroll: ; 3726a (d:726a)
.ScrollBetween ; 37292 (d:7292)
.wait
- ld a, [$ff44] ; rLY
+ ld a, [rLY] ; rLY
cp l
jr nz, .wait
ld a, h
- ld [rSCX], a ; $ff43
+ ld [rSCX], a
.wait2
- ld a, [$ff44] ; rLY
+ ld a, [rLY] ; rLY
cp h
jr z, .wait2
ret
@@ -87,9 +87,9 @@ TitleBallYTable: ; 372a0 (d:72a0)
; This is really two 0-terminated lists. Initiated with an index of 1.
db 0, $71, $6f, $6e, $6d, $6c, $6d, $6e, $6f, $71, $74, 0
-Func_372ac: ; 372ac (d:72ac)
+TitleScreenAnimateBallIfStarterOut: ; 372ac (d:72ac)
; Animate the TitleBall if a starter just got scrolled out.
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wTitleMonSpecies]
cp STARTER1
jr z, .ok
cp STARTER2
diff --git a/engine/town_map.asm b/engine/town_map.asm
index 535756b8..ee282b49 100755
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -7,11 +7,11 @@ DisplayTownMap: ; 70eb7 (1c:4eb7)
push hl
ld a, $1
ld [hJoy7], a
- ld a, [W_CURMAP] ; W_CURMAP
+ ld a, [W_CURMAP]
push af
ld b, $0
- call Func_7124e
- hlCoord 1, 0
+ call DrawPlayerOrBirdSprite ; player sprite
+ coord hl, 1, 0
ld de, wcd6d
call PlaceString
ld hl, wOAMBuffer
@@ -19,101 +19,103 @@ DisplayTownMap: ; 70eb7 (1c:4eb7)
ld bc, $10
call CopyData
ld hl, vSprites + $40
- ld de, TownMapCursor ; $4f40
- ld bc, (BANK(TownMapCursor) << 8) + $04
+ ld de, TownMapCursor
+ lb bc, BANK(TownMapCursor), (TownMapCursorEnd - TownMapCursor) / $8
call CopyVideoDataDouble
xor a
- ld [wWhichTrade], a ; wWhichTrade
+ ld [wWhichTownMapLocation], a
pop af
- jr Func_70f08
+ jr .enterLoop
-Func_70ef4: ; 70ef4 (1c:4ef4)
- ld hl, wTileMap
- ld bc, $114
+.townMapLoop ; 70ef4 (1c:4ef4)
+ coord hl, 0, 0
+ lb bc, 1, 20
call ClearScreenArea
- ld hl, TownMapOrder ; $4f11
- ld a, [wWhichTrade] ; wWhichTrade
+ ld hl, TownMapOrder
+ ld a, [wWhichTownMapLocation]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hl]
-
-Func_70f08: ; 70f08 (1c:4f08)
- ld de, wHPBarMaxHP
- call Func_7137a
+.enterLoop ; 70f08 (1c:4f08)
+ ld de, wTownMapCoords
+ call LoadTownMapEntry
ld a, [de]
push hl
- call Func_712e1
+ call TownMapCoordsToOAMCoords
ld a, $4
- ld [wcd5b], a
+ ld [wOAMBaseTile], a
ld hl, wOAMBuffer + $10
- call Func_71302
+ call WriteTownMapSpriteOAM ; town map cursor sprite
pop hl
ld de, wcd6d
-.loop
+.copyMapName
ld a, [hli]
ld [de], a
inc de
- cp "@"
- jr nz, .loop
- hlCoord 1, 0
+ cp $50
+ jr nz, .copyMapName
+ coord hl, 1, 0
ld de, wcd6d
call PlaceString
ld hl, wOAMBuffer + $10
ld de, wTileMapBackup + 16
ld bc, $10
call CopyData
-.asm_70f3e
+.inputLoop
call TownMapSpriteBlinkingAnimation
call JoypadLowSensitivity
ld a, [hJoy5]
ld b, a
- and D_DOWN | D_UP | B_BUTTON | A_BUTTON
- jr z, .asm_70f3e
- ld a, $8c ; (SFX_02_3c - SFX_Headers_02) / 3
+ and A_BUTTON | B_BUTTON | D_UP | D_DOWN
+ jr z, .inputLoop
+ ld a, $8c
call PlaySound
bit 6, b
- jr nz, .asm_70f68
+ jr nz, .pressedUp
bit 7, b
- jr nz, .asm_70f77
+ jr nz, .pressedDown
xor a
ld [wTownMapSpriteBlinkingEnabled], a
ld [hJoy7], a
- ld [wTownMapSpriteBlinkingCounter], a
- call Func_71235
+ ld [wAnimCounter], a
+ call ExitTownMap
pop hl
pop af
ld [hl], a
ret
-.asm_70f68
- ld a, [wWhichTrade] ; wWhichTrade
+
+.pressedUp
+ ld a, [wWhichTownMapLocation]
inc a
- cp $2f
- jr nz, .asm_70f71
+ cp TownMapOrderEnd - TownMapOrder ; number of list items + 1
+ jr nz, .noOverflow
xor a
-.asm_70f71
- ld [wWhichTrade], a ; wWhichTrade
- jp Func_70ef4
-.asm_70f77
- ld a, [wWhichTrade] ; wWhichTrade
+.noOverflow
+ ld [wWhichTownMapLocation], a
+ jp .townMapLoop
+.pressedDown
+ ld a, [wWhichTownMapLocation]
dec a
- cp $ff
- jr nz, .asm_70f81
- ld a, $2e
-.asm_70f81
- ld [wWhichTrade], a ; wWhichTrade
- jp Func_70ef4
+ cp -1
+ jr nz, .noUnderflow
+ ld a, TownMapOrderEnd - TownMapOrder - 1 ; number of list items
+.noUnderflow
+ ld [wWhichTownMapLocation], a
+ jp .townMapLoop
+
.asm_70f87
ld a,[hJoy5]
and D_DOWN | D_UP
ret z
callab Func_f0000
ret
-
+
INCLUDE "data/town_map_order.asm"
TownMapCursor: ; 70fc4 (1c:4fc4)
INCBIN "gfx/town_map_cursor.1bpp"
+TownMapCursorEnd:
LoadTownMap_Nest: ; 70fe4 (1c:4fe4)
call LoadTownMap
@@ -122,16 +124,16 @@ LoadTownMap_Nest: ; 70fe4 (1c:4fe4)
push af
ld [hl], $ff
push hl
- call Func_71279
+ call DisplayWildLocations
call GetMonName
- hlCoord 1, 0
+ coord hl, 1, 0
call PlaceString
ld h, b
ld l, c
ld de, MonsNestText
call PlaceString
call WaitForTextScrollButtonPress
- call Func_71235
+ call ExitTownMap
pop hl
pop af
ld [hl], a
@@ -152,67 +154,66 @@ LoadTownMap_Fly: ; 71014 (1c:5014)
ld c, $c
ld hl, vSprites + $40
call CopyVideoData
- ld de, TownMapUpArrow ; $5093
+ ld de, TownMapUpArrow
ld hl, vChars1 + $6d0
- ld bc, (BANK(TownMapUpArrow) << 8) + $01
+ lb bc, BANK(TownMapUpArrow), (TownMapUpArrowEnd - TownMapUpArrow) / $8
call CopyVideoDataDouble
- call Func_710fb
+ call BuildFlyLocationsList
ld hl, wUpdateSpritesEnabled
ld a, [hl]
push af
ld [hl], $ff
push hl
- ld hl, wTileMap
+ coord hl, 0, 0
ld de, ToText
call PlaceString
- ld a, [W_CURMAP] ; W_CURMAP
+ ld a, [W_CURMAP]
ld b, $0
- call Func_7124e
- ld hl, wTrainerEngageDistance
- deCoord 18, 0
-
+ call DrawPlayerOrBirdSprite
+ ld hl, wFlyLocationsList
+ coord de, 18, 0
.townMapFlyLoop
- ld a, $7f
+ ld a, " "
ld [de], a
push hl
push hl
- hlCoord 3, 0
- ld bc, $10f
+ coord hl, 3, 0
+ lb bc, 1, 15
call ClearScreenArea
pop hl
ld a, [hl]
ld b, $4
- call Func_7124e
- hlCoord 3, 0
+ call DrawPlayerOrBirdSprite ; draw bird sprite
+ coord hl, 3, 0
ld de, wcd6d
call PlaceString
- ld c, $f
+ ld c, 15
call DelayFrames
- hlCoord 18, 0
+ coord hl, 18, 0
ld [hl], "▶"
- hlCoord 19, 0
+ coord hl, 19, 0
ld [hl], $ee
pop hl
-.asm_7108d
+.inputLoop
push hl
call DelayFrame
call JoypadLowSensitivity
ld a, [hJoy5]
ld b, a
pop hl
- and D_DOWN | D_UP | B_BUTTON | A_BUTTON
- jr z, .asm_7108d
+ and A_BUTTON | B_BUTTON | D_UP | D_DOWN
+ jr z, .inputLoop
bit 0, b
- jr nz, .asm_710af
- ld a, $8c ; (SFX_02_3c - SFX_Headers_02) / 3
+ jr nz, .pressedA
+ ld a, $8c ; SFX_TINK
call PlaySound
bit 6, b
- jr nz, .asm_710cd
+ jr nz, .pressedUp
bit 7, b
- jr nz, .asm_710e3
- jr .asm_710c0
-.asm_710af
- ld a, $8e ; (SFX_02_3e - SFX_Headers_02) / 3
+ jr nz, .pressedDown
+ jr .pressedB
+.pressedA
+ ld a, $8e ; SFX_HEAL_AILMENT
call PlaySound
ld a, [hl]
ld [wDestinationMap], a
@@ -220,7 +221,7 @@ LoadTownMap_Fly: ; 71014 (1c:5014)
set 3, [hl]
inc hl
set 7, [hl]
-.asm_710c0
+.pressedB
xor a
ld [wTownMapSpriteBlinkingEnabled], a
ld [hJoy7], a
@@ -229,85 +230,86 @@ LoadTownMap_Fly: ; 71014 (1c:5014)
pop af
ld [hl], a
ret
-.asm_710cd
- deCoord 18, 0
+.pressedUp
+ coord de, 18, 0
inc hl
ld a, [hl]
cp $ff
- jr z, .asm_710dd
+ jr z, .wrapToStartOfList
cp $fe
- jr z, .asm_710cd
+ jr z, .pressedUp ; skip past unvisited towns
jp .townMapFlyLoop
-.asm_710dd
- ld hl, wTrainerEngageDistance
+.wrapToStartOfList
+ ld hl, wFlyLocationsList
jp .townMapFlyLoop
-.asm_710e3
- deCoord 19, 0
+.pressedDown
+ coord de, 19, 0
dec hl
ld a, [hl]
cp $ff
- jr z, .asm_710f3
+ jr z, .wrapToEndOfList
cp $fe
- jr z, .asm_710e3
+ jr z, .pressedDown ; skip past unvisited towns
jp .townMapFlyLoop
-.asm_710f3
- ld hl, wcd49
- jr .asm_710e3
+.wrapToEndOfList
+ ld hl, wFlyLocationsList + 11
+ jr .pressedDown
ToText: ; 710f8 (1c:50f8)
db "To@"
-Func_710fb: ; 710fb (1c:50fb)
- ld hl, wWhichTrade ; wWhichTrade
+BuildFlyLocationsList: ; 710fb (1c:50fb)
+ ld hl, wFlyLocationsList - 1
ld [hl], $ff
inc hl
ld a, [W_TOWNVISITEDFLAG]
ld e, a
ld a, [W_TOWNVISITEDFLAG + 1]
ld d, a
- ld bc, $b
-.asm_7110c
+ ld bc, SAFFRON_CITY + 1
+.loop
srl d
rr e
- ld a, $fe
- jr nc, .asm_71115
- ld a, b
-.asm_71115
+ ld a, $fe ; store $fe if the town hasn't been visited
+ jr nc, .notVisited
+ ld a, b ; store the map number of the town if it has been visited
+.notVisited
ld [hl], a
inc hl
inc b
dec c
- jr nz, .asm_7110c
+ jr nz, .loop
ld [hl], $ff
ret
TownMapUpArrow: ; 7111e (1c:511e)
INCBIN "gfx/up_arrow.1bpp"
+TownMapUpArrowEnd:
LoadTownMap: ; 71126 (1c:5126)
call GBPalWhiteOutWithDelay3
call ClearScreen
call UpdateSprites
- ld hl, wTileMap
- ld bc, $1212
+ coord hl, 0, 0
+ lb bc, $12, $12
call TextBoxBorder
call DisableLCD
- ld hl, WorldMapTileGraphics ; $65a8
+ ld hl, WorldMapTileGraphics
ld de, vChars2 + $600
- ld bc, $100
+ ld bc, WorldMapTileGraphicsEnd - WorldMapTileGraphics
ld a, BANK(WorldMapTileGraphics)
call FarCopyData
ld hl, MonNestIcon ; $574b
ld de, vSprites + $40
- ld bc, $8
+ ld bc, MonNestIconEnd - MonNestIcon
ld a, BANK(MonNestIcon)
call FarCopyDataDouble
- ld hl, wTileMap
- ld de, CompressedMap ; $5100
-.asm_710d3
+ coord hl, 0, 0
+ ld de, CompressedMap
+.nextTile
ld a, [de]
and a
- jr z, .asm_71173
+ jr z, .done
ld b, a
and $f
ld c, a
@@ -315,20 +317,20 @@ LoadTownMap: ; 71126 (1c:5126)
swap a
and $f
add $60
-.loop
+.writeRunLoop
ld [hli], a
dec c
- jr nz, .loop
+ jr nz, .writeRunLoop
inc de
- jr .asm_710d3
-.asm_71173
+ jr .nextTile
+.done
call EnableLCD
- ld b, $2
- call GoPAL_SET
+ ld b, SET_PAL_TOWN_MAP
+ call RunPaletteCommand
call Delay3
call GBPalNormal
xor a
- ld [wTownMapSpriteBlinkingCounter], a
+ ld [wAnimCounter], a
inc a
ld [wTownMapSpriteBlinkingEnabled], a
ret
@@ -337,7 +339,8 @@ CompressedMap: ; 7118a (1c:518a)
; you can decompress this file with the redrle program in the extras/ dir
INCBIN "gfx/town_map.rle"
-Func_71235: ; 71235 (1c:5235)
+ExitTownMap: ; 71235 (1c:5235)
+; clear town map graphics data and load usual graphics data
xor a
ld [wTownMapSpriteBlinkingEnabled], a
call GBPalWhiteOut
@@ -346,19 +349,21 @@ Func_71235: ; 71235 (1c:5235)
call LoadPlayerSpriteGraphics
call LoadFontTilePatterns
call UpdateSprites
- jp GoPAL_SET_CF1C
+ jp RunDefaultPaletteCommand
-Func_7124e: ; 7124e (1c:524e)
+DrawPlayerOrBirdSprite: ; 7124e (1c:524e)
+; a = map number
+; b = OAM base tile
push af
ld a, b
- ld [wcd5b], a
+ ld [wOAMBaseTile], a
pop af
- ld de, wHPBarMaxHP
- call Func_7137a
+ ld de, wTownMapCoords
+ call LoadTownMapEntry
ld a, [de]
push hl
- call Func_712e1
- call Func_712f6
+ call TownMapCoordsToOAMCoords
+ call WritePlayerOrBirdSpriteOAM
pop hl
ld de, wcd6d
.asm_71266
@@ -372,48 +377,49 @@ Func_7124e: ; 7124e (1c:524e)
ld bc, $a0
jp CopyData
-Func_71279: ; 71279 (1c:5279)
+<<<<<<< HEAD
+DisplayWildLocations: ; 71279 (1c:5279)
callba FindWildLocationsOfMon
- call Func_71362
+ call ZeroOutDuplicatesInList
ld hl, wOAMBuffer
- ld de, wBuffer
-.asm_7128a
+ ld de, wTownMapCoords
+.loop
ld a, [de]
cp $ff
- jr z, .asm_712a7
+ jr z, .exitLoop
and a
- jr z, .asm_712a4
+ jr z, .nextEntry
push hl
- call Func_7137a
+ call LoadTownMapEntry
pop hl
ld a, [de]
- cp $19
- jr z, .asm_712a4
- call Func_712e1
- ld a, $4
+ cp $19 ; Cerulean Cave's coordinates
+ jr z, .nextEntry ; skip Cerulean Cave
+ call TownMapCoordsToOAMCoords
+ ld a, $4 ; nest icon tile no.
ld [hli], a
xor a
ld [hli], a
-.asm_712a4
+.nextEntry
inc de
- jr .asm_7128a
-.asm_712a7
+ jr .loop
+.exitLoop
ld a, l
- and a
- ; continue from here
- jr nz, .asm_712bf
- hlCoord 1, 7
- ld bc, $20f
+ and a ; were any OAM entries written?
+ jr nz, .drawPlayerSprite
+; if no OAM entries were written, print area unknown text
+ coord hl, 1, 7
+ lb bc, $20f
call TextBoxBorder
- hlCoord 2, 9
+ coord hl, 2, 9
ld de, AreaUnknownText
call PlaceString
- jr .asm_712c7
-.asm_712bf
- ld a, [W_CURMAP] ; W_CURMAP
+ jr .done
+.drawPlayerSprite
+ ld a, [W_CURMAP]
ld b, $0
- call Func_7124e
-.asm_712c7
+ call DrawPlayerOrBirdSprite
+.done
ld hl, wOAMBuffer
ld de, wTileMapBackup
ld bc, $a0
@@ -422,33 +428,35 @@ Func_71279: ; 71279 (1c:5279)
AreaUnknownText: ; 712d3 (1c:52d3)
db " AREA UNKNOWN@"
-Func_712e1: ; 712e1 (1c:52e1)
+TownMapCoordsToOAMCoords: ; 712e1 (1c:52e1)
+; in: lower nybble of a = x, upper nybble of a = y
+; out: b and [hl] = (y * 8) + 24, c and [hl+1] = (x * 8) + 24
push af
and $f0
srl a
- add $18
+ add 24
ld b, a
ld [hli], a
pop af
and $f
swap a
srl a
- add $18
+ add 24
ld c, a
ld [hli], a
ret
-Func_712f6: ; 712f6 (1c:52f6)
- ld a, [wcd5b]
+WritePlayerOrBirdSpriteOAM: ; 712f6 (1c:52f6)
+ ld a, [wOAMBaseTile]
and a
- ld hl, wOAMBuffer + $90
- jr z, Func_71302
- ld hl, wOAMBuffer + $80
+ ld hl, wOAMBuffer + $90 ; for player sprite
+ jr z, WriteTownMapSpriteOAM
+ ld hl, wOAMBuffer + $80 ; for bird sprite
-Func_71302: ; 71302 (1c:5302)
+WriteTownMapSpriteOAM: ; 71302 (1c:5302)
push hl
- ld hl, $fcfc
- add hl, bc
+ lb hl, -4, -4
+ add hl, bc ; subtract 4 from c (X coord) and 4 from b (Y coord)
ld b, h
ld c, l
pop hl
@@ -456,7 +464,7 @@ Func_71302: ; 71302 (1c:5302)
WriteAsymmetricMonPartySpriteOAM: ; 7130a (1c:530a)
; Writes 4 OAM blocks for a helix mon party sprite, since is does not have
; a vertical line of symmetry.
- ld de, $202
+ lb de, 2, 2
.loop
push de
push bc
@@ -465,10 +473,10 @@ WriteAsymmetricMonPartySpriteOAM: ; 7130a (1c:530a)
ld [hli], a
ld a, c
ld [hli], a
- ld a, [wcd5b]
+ ld a, [wOAMBaseTile]
ld [hli], a
inc a
- ld [wcd5b], a
+ ld [wOAMBaseTile], a
xor a
ld [hli], a
inc d
@@ -492,24 +500,24 @@ WriteSymmetricMonPartySpriteOAM: ; 7132f (1c:532f)
; the X-flip OAM bit to be used so that only 2 rather than 4 tile patterns are
; needed.
xor a
- ld [wcd5c], a
- ld de, $202
+ ld [wSymmetricSpriteOAMAttributes], a
+ lb de, 2, 2
.loop
push de
push bc
.innerLoop
ld a, b
- ld [hli], a
+ ld [hli], a ; Y
ld a, c
- ld [hli], a
- ld a, [wcd5b]
- ld [hli], a
- ld a, [wcd5c]
- ld [hli], a
- xor $20
- ld [wcd5c], a
+ ld [hli], a ; X
+ ld a, [wOAMBaseTile]
+ ld [hli], a ; tile
+ ld a, [wSymmetricSpriteOAMAttributes]
+ ld [hli], a ; attributes
+ xor (1 << OAM_X_FLIP)
+ ld [wSymmetricSpriteOAMAttributes], a
inc d
- ld a, $8
+ ld a, 8
add c
ld c, a
dec e
@@ -517,20 +525,21 @@ WriteSymmetricMonPartySpriteOAM: ; 7132f (1c:532f)
pop bc
pop de
push hl
- ld hl, wcd5b
+ ld hl, wOAMBaseTile
inc [hl]
inc [hl]
pop hl
- ld a, $8
+ ld a, 8
add b
ld b, a
dec d
jr nz, .loop
ret
-Func_71362: ; 71362 (1c:5362)
- ld de, wHPBarMaxHP
-.asm_71365
+ZeroOutDuplicatesInList: ; 71362 (1c:5362)
+; replace duplicate bytes in the list of wild pokemon locations with 0
+ ld de, wBuffer
+.loop
ld a, [de]
inc de
cp $ff
@@ -538,38 +547,41 @@ Func_71362: ; 71362 (1c:5362)
ld c, a
ld l, e
ld h, d
-.asm_7136d
+.zeroDuplicatesLoop
ld a, [hl]
cp $ff
- jr z, .asm_71365
+ jr z, .loop
cp c
- jr nz, .asm_71377
+ jr nz, .skipZeroing
xor a
ld [hl], a
-.asm_71377
+.skipZeroing
inc hl
- jr .asm_7136d
-Func_7137a: ; 7137a (1c:537a)
+ jr .zeroDuplicatesLoop
+
+LoadTownMapEntry: ; 7137a (1c:537a)
+; in: a = map number
+; out: lower nybble of [de] = x, upper nybble of [de] = y, hl = address of name
cp REDS_HOUSE_1F
- jr c, .asm_7138d
- ld bc, $4
- ld hl, InternalMapEntries ; $540b
-.asm_71384
+ jr c, .external
+ ld bc, 4
+ ld hl, InternalMapEntries
+.loop
cp [hl]
- jr c, .asm_7138a
+ jr c, .foundEntry
add hl, bc
- jr .asm_71384
-.asm_7138a
+ jr .loop
+.foundEntry
inc hl
- jr .asm_71396
-.asm_7138d
- ld hl, ExternalMapEntries ; $539c
+ jr .readEntry
+.external
+ ld hl, ExternalMapEntries
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
add hl, bc
add hl, bc
-.asm_71396
+.readEntry
ld a, [hli]
ld [de], a
ld a, [hli]
@@ -586,11 +598,12 @@ InternalMapEntries: ; 7140b (1c:540b)
;INCLUDE "text/map_names.asm" ; TODO: relabel addresses
-MonNestIcon: ; 7174b (1c:574b) ; relabel this too
+MonNestIcon: ; 7174b (1c:574b)
INCBIN "gfx/mon_nest_icon.1bpp"
+MonNestIconEnd:
TownMapSpriteBlinkingAnimation: ; 71753 (1c:5753)
- ld a, [wTownMapSpriteBlinkingCounter]
+ ld a, [wAnimCounter]
inc a
cp 25
jr z, .hideSprites
@@ -614,5 +627,5 @@ TownMapSpriteBlinkingAnimation: ; 71753 (1c:5753)
jr nz, .hideSpritesLoop
ld a, 25
.done
- ld [wTownMapSpriteBlinkingCounter], a
+ ld [wAnimCounter], a
jp DelayFrame
diff --git a/engine/trade.asm b/engine/trade.asm
index bb4fa4e1..66afa47e 100755
--- a/engine/trade.asm
+++ b/engine/trade.asm
@@ -13,7 +13,7 @@ ExternalClockTradeAnim: ; 410f3 (10:50f3)
; Externally clocked link cable trades use this.
ld a, [wTradedEnemyMonSpecies]
ld [wLeftGBMonSpecies], a
- ld a, [wTrainerSpriteOffset]
+ ld a, [wTradedPlayerMonSpecies]
ld [wRightGBMonSpecies], a
ld de, ExternalClockTradeFuncSequence
@@ -148,8 +148,8 @@ Trade_Delay80: ; 41191 (10:5191)
jp DelayFrames
Trade_ClearTileMap: ; 41196 (10:5196)
- ld hl, wTileMap
- ld bc, 20 * 18
+ coord hl, 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, " "
jp FillMemory
@@ -158,12 +158,12 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1)
call DisableLCD
ld hl, TradingAnimationGraphics
ld de, vChars2 + $310
- ld bc, $310
+ ld bc, TradingAnimationGraphicsEnd - TradingAnimationGraphics
ld a, BANK(TradingAnimationGraphics)
call FarCopyData2
ld hl, TradingAnimationGraphics2
ld de, vSprites + $7c0
- ld bc, $40
+ ld bc, TradingAnimationGraphics2End - TradingAnimationGraphics2
ld a, BANK(TradingAnimationGraphics2)
call FarCopyData2
ld hl, vBGMap0
@@ -190,7 +190,7 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1)
call GetMonName
ld hl, wcd6d
ld de, wcf4b
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
ld a, [wTradedEnemyMonSpecies]
ld [wd11e], a
@@ -199,22 +199,20 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1)
Trade_LoadMonPartySpriteGfx: ; 4120b (10:520b)
ld a, %11010000
ld [rOBP1], a
- ld b, BANK(LoadMonPartySpriteGfx)
- ld hl, LoadMonPartySpriteGfx
- jp Bankswitch
+ jpba LoadMonPartySpriteGfx
Trade_SwapNames: ; 41217 (10:5217)
ld hl, wPlayerName
ld de, wBuffer
- ld bc, 11
+ ld bc, NAME_LENGTH
call CopyData
ld hl, wLinkEnemyTrainerName
ld de, wPlayerName
- ld bc, 11
+ ld bc, NAME_LENGTH
call CopyData
ld hl, wBuffer
ld de, wLinkEnemyTrainerName
- ld bc, 11
+ ld bc, NAME_LENGTH
jp CopyData
Trade_Cleanup: ; 4123b (10:523b)
@@ -234,7 +232,7 @@ Trade_ShowPlayerMon: ; 41245 (10:5245)
ld [hSCX], a
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- hlCoord 4, 0
+ coord hl, 4, 0
ld b, 6
ld c, 10
call TextBoxBorder
@@ -259,7 +257,7 @@ Trade_ShowPlayerMon: ; 41245 (10:5245)
ld a, TRADE_BALL_POOF_ANIM
call Trade_ShowAnimation
ld a, TRADE_BALL_DROP_ANIM
- call Trade_ShowAnimation
+ call Trade_ShowAnimation ; clears mon pic
ld a, [wTradedPlayerMonSpecies]
call PlayCry
xor a
@@ -270,20 +268,24 @@ Trade_DrawOpenEndOfLinkCable: ; 41298 (10:5298)
call Trade_ClearTileMap
ld b, vBGMap0 / $100
call CopyScreenTileBufferToVRAM
- ld b, $8
- call GoPAL_SET
+ ld b, SET_PAL_GENERIC
+ call RunPaletteCommand
+
+; This function call is pointless. It just copies blank tiles to VRAM that was
+; already filled with blank tiles.
ld hl, vBGMap1 + $8c
call Trade_CopyCableTilesOffScreen
+
ld a, $a0
ld [hSCX], a
call DelayFrame
ld a, %10001011
ld [rLCDC], a
- hlCoord 6, 2
+ coord hl, 6, 2
ld b, $7 ; open end of link cable tile ID list index
call CopyTileIDsFromList_ZeroBaseTileID
call Trade_CopyTileMapToVRAM
- ld a, (SFX_02_3d - SFX_Headers_02) / 3
+ ld a, SFX_HEAL_HP
call PlaySound
ld c, 20
.loop
@@ -302,25 +304,25 @@ Trade_AnimateBallEnteringLinkCable: ; 412d2 (10:52d2)
ld a, %11100100
ld [rOBP0], a
xor a
- ld [wd09f], a
+ ld [wLinkCableAnimBulgeToggle], a
ld bc, $2060
.moveBallInsideLinkCableLoop
push bc
xor a
ld de, Trade_BallInsideLinkCableOAM
call WriteOAMBlock
- ld a, [wd09f]
+ ld a, [wLinkCableAnimBulgeToggle]
xor $1
- ld [wd09f], a
+ ld [wLinkCableAnimBulgeToggle], a
add $7e
ld hl, wOAMBuffer + $02
- ld de, $4
+ ld de, 4
ld c, e
-.cycleSpriteFramesLoop
+.cycleLinkCableBulgeTile
ld [hl], a
add hl, de
dec c
- jr nz, .cycleSpriteFramesLoop
+ jr nz, .cycleLinkCableBulgeTile
call Delay3
pop bc
ld a, c
@@ -328,7 +330,7 @@ Trade_AnimateBallEnteringLinkCable: ; 412d2 (10:52d2)
ld c, a
cp $a0
jr nc, .ballSpriteReachedEdgeOfScreen
- ld a, (SFX_02_3c - SFX_Headers_02) / 3
+ ld a, SFX_TINK
call PlaySound
jr .moveBallInsideLinkCableLoop
.ballSpriteReachedEdgeOfScreen
@@ -351,7 +353,7 @@ Trade_ShowEnemyMon: ; 41336 (10:5336)
ld a, TRADE_BALL_TILT_ANIM
call Trade_ShowAnimation
call Trade_ShowClearedWindow
- hlCoord 4, 10
+ coord hl, 4, 10
ld b, 6
ld c, 10
call TextBoxBorder
@@ -368,8 +370,8 @@ Trade_ShowEnemyMon: ; 41336 (10:5336)
ld a, [wTradedEnemyMonSpecies]
call PlayCry
call Trade_Delay100
- hlCoord 4, 10
- ld bc, $80c
+ coord hl, 4, 10
+ lb bc, 8, 12
call ClearScreenArea
jp PrintTradeTakeCareText
@@ -460,7 +462,7 @@ Trade_DrawLeftGameboy: ; 4142d (10:542d)
call Trade_ClearTileMap
; draw link cable
- hlCoord 11, 4
+ coord hl, 11, 4
ld a, $5d
ld [hli], a
ld a, $5e
@@ -471,16 +473,16 @@ Trade_DrawLeftGameboy: ; 4142d (10:542d)
jr nz, .loop
; draw gameboy pic
- hlCoord 5, 3
+ coord hl, 5, 3
ld b, $6
call CopyTileIDsFromList_ZeroBaseTileID
; draw text box with player name below gameboy pic
- hlCoord 4, 12
+ coord hl, 4, 12
ld b, 2
ld c, 7
call TextBoxBorder
- hlCoord 5, 14
+ coord hl, 5, 14
ld de, wPlayerName
call PlaceString
@@ -490,7 +492,7 @@ Trade_DrawRightGameboy: ; 4145c (10:545c)
call Trade_ClearTileMap
; draw horizontal segment of link cable
- hlCoord 0, 4
+ coord hl, 0, 4
ld a, $5e
ld c, $e
.loop
@@ -518,16 +520,16 @@ Trade_DrawRightGameboy: ; 4145c (10:545c)
ld [hl], a
; draw gameboy pic
- hlCoord 7, 8
+ coord hl, 7, 8
ld b, $6
call CopyTileIDsFromList_ZeroBaseTileID
; draw text box with enemy name above link cable
- hlCoord 6, 0
+ coord hl, 6, 0
ld b, $2
ld c, $7
call TextBoxBorder
- hlCoord 7, 2
+ coord hl, 7, 2
ld de, wLinkEnemyTrainerName
call PlaceString
@@ -536,7 +538,7 @@ Trade_DrawRightGameboy: ; 4145c (10:545c)
Trade_DrawCableAcrossScreen: ; 4149f (10:549f)
; Draws the link cable across the screen.
call Trade_ClearTileMap
- hlCoord 0, 4
+ coord hl, 0, 4
ld a, $5e
ld c, SCREEN_WIDTH
.loop
@@ -549,15 +551,15 @@ Trade_CopyCableTilesOffScreen: ; 414ae (10:54ae)
; This is used to copy the link cable tiles off screen so that the cable
; continues when the screen is scrolled.
push hl
- hlCoord 0, 4
- call CopyToScreenEdgeTiles
+ coord hl, 0, 4
+ call CopyToRedrawRowOrColumnSrcTiles
pop hl
ld a, h
- ld [H_SCREENEDGEREDRAWADDR + 1], a
+ ld [hRedrawRowOrColumnDest + 1], a
ld a, l
- ld [H_SCREENEDGEREDRAWADDR], a
- ld a, REDRAWROW
- ld [H_SCREENEDGEREDRAW], a
+ ld [hRedrawRowOrColumnDest], a
+ ld a, REDRAW_ROW
+ ld [hRedrawRowOrColumnMode], a
ld c, 10
jp DelayFrames
@@ -645,14 +647,14 @@ Trade_AnimMonMoveVertical: ; 41525 (10:5525)
and a
jr z, .movingLeft
; moving right
- ld bc, $400 ; move right
+ lb bc, 4, 0 ; move right
call .doAnim
- ld bc, $a ; move down
+ lb bc, 0, 10 ; move down
jr .doAnim
.movingLeft
- ld bc, $f6 ; move up
+ lb bc, 0, -10 ; move up
call .doAnim
- ld bc, $fc00 ; move left
+ lb bc, -4, 0 ; move left
.doAnim
ld a, b
ld [W_BASECOORDX], a
@@ -662,7 +664,7 @@ Trade_AnimMonMoveVertical: ; 41525 (10:5525)
.loop
call Trade_AddOffsetsToOAMCoords
call Trade_AnimCircledMon
- ld c, $8
+ ld c, 8
call DelayFrames
dec d
jr nz, .loop
@@ -725,15 +727,15 @@ Trade_CircleOAM3: ; 4159c (10:559c)
Trade_LoadMonSprite: ; 415a4 (10:55a4)
ld [wcf91], a
ld [wd0b5], a
- ld [wcf1d], a
- ld b, $b
- ld c, $0
- call GoPAL_SET
+ ld [wWholeScreenPaletteMonSpecies], a
+ ld b, SET_PAL_POKEMON_WHOLE_SCREEN
+ ld c, 0
+ call RunPaletteCommand
ld a, [H_AUTOBGTRANSFERENABLED]
xor $1
ld [H_AUTOBGTRANSFERENABLED], a
call GetMonHeader
- hlCoord 7, 2
+ coord hl, 7, 2
call LoadFlippedFrontSpriteByMonIndex
ld c, 10
jp DelayFrames
@@ -754,7 +756,10 @@ Trade_ShowClearedWindow: ; 415c8 (10:55c8)
ret
Trade_SlideTextBoxOffScreen: ; 415df (10:55df)
-; Slides the window right until it's off screen.
+; Slides the window right until it's off screen. The window usually just has
+; a text box at the bottom when this is called. However, when this is called
+; after Trade_ShowEnemyMon in the external clock sequence, there is a mon pic
+; above the text box and it is also scrolled off the screen.
ld c, 50
call DelayFrames
.loop
@@ -844,5 +849,5 @@ TradeforText: ; 41671 (10:5671)
Trade_ShowAnimation: ; 41676 (10:5676)
ld [W_ANIMATIONID], a
xor a
- ld [wcc5b], a
+ ld [wAnimationType], a
predef_jump MoveAnimation
diff --git a/engine/trade2.asm b/engine/trade2.asm
index da199e77..10bef792 100755
--- a/engine/trade2.asm
+++ b/engine/trade2.asm
@@ -1,45 +1,45 @@
Trade_PrintPlayerMonInfoText: ; 42769 (10:6769)
- hlCoord 5, 0
+ coord hl, 5, 0
ld de,Trade_MonInfoText
call PlaceString
ld a,[wTradedPlayerMonSpecies]
ld [wd11e],a
predef IndexToPokedex
- hlCoord 9, 0
+ coord hl, 9, 0
ld de,wd11e
- ld bc,$8103
+ lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
- hlCoord 5, 2
+ coord hl, 5, 2
ld de,wcf4b
call PlaceString
- hlCoord 8, 4
+ coord hl, 8, 4
ld de,wTradedPlayerMonOT
call PlaceString
- hlCoord 8, 6
+ coord hl, 8, 6
ld de,wTradedPlayerMonOTID
- ld bc,$8205
+ lb bc, LEADING_ZEROES | 2, 5
jp PrintNumber
Trade_PrintEnemyMonInfoText: ; 427a7 (10:67a7)
- hlCoord 5, 10
+ coord hl, 5, 10
ld de,Trade_MonInfoText
call PlaceString
ld a,[wTradedEnemyMonSpecies]
ld [wd11e],a
predef IndexToPokedex
- hlCoord 9, 10
+ coord hl, 9, 10
ld de,wd11e
- ld bc,$8103
+ lb bc, LEADING_ZEROES | 1, 3
call PrintNumber
- hlCoord 5, 12
+ coord hl, 5, 12
ld de,wcd6d
call PlaceString
- hlCoord 8, 14
+ coord hl, 8, 14
ld de,wTradedEnemyMonOT
call PlaceString
- hlCoord 8, 16
+ coord hl, 8, 16
ld de,wTradedEnemyMonOTID
- ld bc,$8205
+ lb bc, LEADING_ZEROES | 2, 5
jp PrintNumber
Trade_MonInfoText: ; 427e5 (10:67e5)
diff --git a/home.asm b/home.asm
index b03bc13d..b15dc73f 100644
--- a/home.asm
+++ b/home.asm
@@ -203,7 +203,7 @@ LoadDestinationWarpPosition:: ; 10d5 (0:10d5)
push af
ld a,[wPredefParentBank]
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
ld a,b
add a
add a
@@ -215,7 +215,7 @@ LoadDestinationWarpPosition:: ; 10d5 (0:10d5)
call CopyData
pop af
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
ret
@@ -289,10 +289,10 @@ DrawHPBar:: ; 10f8 (0:10f8)
; loads pokemon data from one of multiple sources to wLoadedMon
-; loads base stats to W_MONHDEXNUM
+; loads base stats to W_MONHEADER
; INPUT:
; [wWhichPokemon] = index of pokemon within party/box
-; [wcc49] = source
+; [wMonDataLocation] = source
; 00: player's party
; 01: enemy's party
; 02: current box
@@ -302,12 +302,9 @@ DrawHPBar:: ; 10f8 (0:10f8)
; wLoadedMon = base address of pokemon data
; W_MONHDEXNUM = base address of base stats
LoadMonData:: ; 1132 (0:1132)
- ld hl, LoadMonData_
- ld b, BANK(LoadMonData_) ; 1:442b
- jp Bankswitch
+ jpab LoadMonData_
-
-Func_137a:: ; 113a (0:113a)
+OverwritewMoves:: ; 113a (0:113a)
; Write c to [wMoves + b]. Unused.
ld hl, wMoves
ld e, b
@@ -348,11 +345,10 @@ LoadFrontSpriteByMonIndex:: ; 1149 (0:1149)
pop hl
ld a, [H_LOADEDROMBANK]
push af
- ld a, BANK(asm_f6203)
- call BankswitchCommon
+ switchbank CopyUncompressedPicToHL
xor a
- ld [$ffe1], a
- call asm_f6203
+ ld [hStartTileID], a
+ call CopyUncompressedPicToHL
xor a
ld [W_SPRITEFLIPPED], a
pop af
@@ -390,9 +386,9 @@ GetCryData:: ; 11a5 (0:11a5)
ld a, [hli]
ld b, a ; cry id
ld a, [hli]
- ld [wc0f1], a
+ ld [wFrequencyModifier], a
ld a, [hl]
- ld [wc0f2], a
+ ld [wTempoModifier], a
call BankswitchBack
; Cry headers have 3 channels,
@@ -431,15 +427,15 @@ PartyMenuInit:: ; 11ec (0:11ec)
call LoadHpBarAndStatusTilePatterns
ld hl, wd730
set 6, [hl] ; turn off letter printing delay
- xor a
- ld [wcc49], a
- ld [wcc37], a
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
+ ld [wMenuWatchMovingOutOfBounds], a
ld hl, wTopMenuItemY
inc a
ld [hli], a ; top menu item Y
xor a
ld [hli], a ; top menu item X
- ld a, [wcc2b]
+ ld a, [wPartyAndBillsPCSavedMenuItem]
push af
ld [hli], a ; current menu item ID
inc hl
@@ -451,13 +447,13 @@ PartyMenuInit:: ; 11ec (0:11ec)
; otherwise, it is 0
.storeMaxMenuItemID
ld [hli], a ; max menu item ID
- ld a, [wd11f]
+ ld a, [wForcePlayerToChooseMon]
and a
- ld a, A_BUTTON + B_BUTTON
+ ld a, A_BUTTON | B_BUTTON
jr z, .next
xor a
- ld [wd11f], a
- inc a
+ ld [wForcePlayerToChooseMon], a
+ inc a ; a = A_BUTTON
.next
ld [hli], a ; menu watched keys
pop af
@@ -468,14 +464,14 @@ HandlePartyMenuInput:: ; 1226 (0:1226)
ld a,1
ld [wMenuWrappingEnabled],a
ld a,$40
- ld [wd09b],a
+ ld [wPartyMenuAnimMonEnabled],a
call HandleMenuInputPokemonSelection
push af ; save hJoy5 OR wMenuWrapping enabled, if no inputs were selected within a certain period of time
bit 1,a ; was B button pressed?
ld a,$0
- ld [wd09b],a
+ ld [wPartyMenuAnimMonEnabled],a
ld a,[wCurrentMenuItem]
- ld [wcc2b],a
+ ld [wPartyAndBillsPCSavedMenuItem],a
jr nz,.asm_1258
ld a,[wCurrentMenuItem]
ld [wWhichPokemon],a
@@ -486,7 +482,7 @@ HandlePartyMenuInput:: ; 1226 (0:1226)
.asm_1258
pop af
call PlaceUnfilledArrowMenuCursor
- ld b,a
+ ld b,a
ld hl,wd730
res 6,[hl] ; turn on letter printing delay
ld a,[wMenuItemToSwap]
@@ -530,7 +526,7 @@ HandlePartyMenuInput:: ; 1226 (0:1226)
callba ErasePartyMenuCursors ; 4:5e98
xor a
ld [wMenuItemToSwap],a
- ld [wd07d],a
+ ld [wPartyMenuTypeOrMessageID],a
call RedrawPartyMenu
jp HandlePartyMenuInput
.handleSwap
@@ -577,6 +573,7 @@ PrintStatusCondition:: ; 12de (0:12de)
ld [hl],"T"
and a
ret
+
PrintStatusConditionNotFainted: ; 12f3 (0:12f3)
homecall_jump_sf PrintStatusAilment
@@ -609,11 +606,11 @@ PrintLevelFull:: ; 1313 (0:1313)
PrintLevelCommon:: ; 131b (0:131b)
ld [wd11e],a
ld de,wd11e
- ld b,$41 ; no leading zeroes, left-aligned, one byte
+ ld b,LEFT_ALIGN | 1 ; 1 byte
jp PrintNumber
-Func_1326:: ; 1326 (0:132)
-; Unused.
+GetwMoves:: ; 1326 (0:1326)
+; Unused. Returns the move at index a from wMoves in a
ld hl,wMoves
ld c,a
ld b,0
@@ -621,7 +618,7 @@ Func_1326:: ; 1326 (0:132)
ld a,[hl]
ret
-; copies the base stat data of a pokemon to W_MONHDEXNUM (W_MONHEADER)
+; copies the base stat data of a pokemon to W_MONHEADER
; INPUT:
; [wd0b5] = pokemon ID
GetMonHeader:: ; 132f (0:132f)
@@ -651,11 +648,11 @@ GetMonHeader:: ; 132f (0:132f)
predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number
ld a,[wd11e]
dec a
- ld bc,28
+ ld bc,MonBaseStatsEnd - MonBaseStats
ld hl,BaseStats
call AddNTimes
ld de,W_MONHEADER
- ld bc,28
+ ld bc,MonBaseStatsEnd - MonBaseStats
call CopyData
jr .done
.specialID
@@ -667,7 +664,7 @@ GetMonHeader:: ; 132f (0:132f)
ld [hl],d
.done
ld a,[wd0b5]
- ld [W_MONHDEXNUM],a
+ ld [W_MONHINDEX],a
pop af
ld [wd11e],a
pop hl
@@ -686,10 +683,10 @@ GetPartyMonName2:: ; 1394 (0:1394)
GetPartyMonName:: ; 139a (0:139a)
push hl
push bc
- call SkipFixedLengthTextEntries ; add 11 to hl, a times
+ call SkipFixedLengthTextEntries ; add NAME_LENGTH to hl, a times
ld de,wcd6d
push de
- ld bc,11
+ ld bc,NAME_LENGTH
call CopyData
pop de
pop bc
@@ -858,7 +855,7 @@ LoadUncompressedSpriteData:: ; 1672 (0:1672)
add a
add a
add a ; 8*tiles is height in bytes
- ld [H_SPRITEHEIGHT], a ; $ff8c
+ ld [H_SPRITEHEIGHT], a
ld a, $7
sub b ; 7-h ; skip for vertical center (in tiles, relative to current column)
ld b, a
@@ -891,11 +888,11 @@ AlignSpriteDataCentered:: ; 149f (0:149f)
ld b, $0
ld c, a
add hl, bc
- ld a, [H_SPRITEWIDTH] ; $ff8b
+ ld a, [H_SPRITEWIDTH]
.columnLoop
push af
push hl
- ld a, [H_SPRITEHEIGHT] ; $ff8c
+ ld a, [H_SPRITEHEIGHT]
ld c, a
.columnInnerLoop
ld a, [de]
@@ -934,7 +931,7 @@ InterlaceMergeSpriteBuffers:: ; 14c7 (0:14c7)
ld de, S_SPRITEBUFFER1 + (SPRITEBUFFERSIZE - 1) ; source 2: end of buffer 1
ld bc, S_SPRITEBUFFER0 + (SPRITEBUFFERSIZE - 1) ; source 1: end of buffer 0
ld a, SPRITEBUFFERSIZE/2 ; $c4
- ld [H_SPRITEINTERLACECOUNTER], a ; $ff8b
+ ld [H_SPRITEINTERLACECOUNTER], a
.interlaceLoop
ld a, [de]
dec de
@@ -948,9 +945,9 @@ InterlaceMergeSpriteBuffers:: ; 14c7 (0:14c7)
ld a, [bc]
dec bc
ld [hld], a ; write byte of source 1
- ld a, [H_SPRITEINTERLACECOUNTER] ; $ff8b
+ ld a, [H_SPRITEINTERLACECOUNTER]
dec a
- ld [H_SPRITEINTERLACECOUNTER], a ; $ff8b
+ ld [H_SPRITEINTERLACECOUNTER], a
jr nz, .interlaceLoop
ld a, [W_SPRITEFLIPPED]
and a
@@ -1152,10 +1149,9 @@ PokeCenterSignText:: ; 23ea (0:23ea)
TX_FAR _PokeCenterSignText
db "@"
-Predef5CText:: ; 23ef (0:23ef)
-; XXX better label (what does predef $5C do?)
- db $08 ; asm
- predef PickupItem
+PickUpItemText:: ; 23ef (0:23ef)
+ TX_ASM
+ predef PickUpItem
jp TextScriptEnd
@@ -1185,8 +1181,8 @@ ResetPlayerSpriteData_ClearSpriteData:: ; 27ba (0:27ba)
ret
;jp FillMemory
-Func_27c2:: ; 27c2 (0:27c2)
- ld a, [wMusicHeaderPointer]
+FadeOutAudio:: ; 27c2 (0:27c2)
+ ld a, [wAudioFadeOutControl]
and a
jr nz, .asm_27d3
ld a, [wd72c]
@@ -1196,15 +1192,15 @@ Func_27c2:: ; 27c2 (0:27c2)
ld [rNR50], a
ret
.asm_27d3
- ld a, [wcfc9]
+ ld a, [wAudioFadeOutCounter]
and a
- jr z, .asm_27de
+ jr z, .counterReachedZero
dec a
- ld [wcfc9], a
+ ld [wAudioFadeOutCounter], a
ret
-.asm_27de
- ld a, [wcfc8]
- ld [wcfc9], a
+.counterReachedZero
+ ld a, [wAudioFadeOutCounterReloadValue]
+ ld [wAudioFadeOutCounter], a
ld a, [rNR50]
and a
jr z, .asm_27fa
@@ -1221,15 +1217,15 @@ Func_27c2:: ; 27c2 (0:27c2)
ld [rNR50], a
ret
.asm_27fa
- ld a, [wMusicHeaderPointer]
+ ld a, [wAudioFadeOutControl]
ld b, a
xor a
- ld [wMusicHeaderPointer], a
+ ld [wAudioFadeOutControl], a
call StopAllMusic
- ld a, [wc0f0]
- ld [wc0ef], a
+ ld a, [wAudioSavedROMBank]
+ ld [wAudioROMBank], a
ld a, b
- ld [wc0ee], a
+ ld [wNewSoundID], a
jp PlaySound
UnknownText_2812:: ; 2812 (0:2812)
@@ -1237,12 +1233,12 @@ UnknownText_2812:: ; 2812 (0:2812)
db "@"
; this function is used to display sign messages, sprite dialog, etc.
-; INPUT: [$ff8c] = sprite ID or text ID
+; INPUT: [hSpriteIndexOrTextID] = sprite ID or text ID
DisplayTextID:: ; 2817 (0:2817)
ld a,[H_LOADEDROMBANK]
push af
callba DisplayTextIDInit ; initialization
- ld hl,wcf11
+ ld hl,wTextPredefFlag
bit 0,[hl]
res 0,[hl]
jr nz,.skipSwitchToMapBank
@@ -1256,23 +1252,23 @@ DisplayTextID:: ; 2817 (0:2817)
ld h,[hl]
ld l,a ; hl = map text pointer
ld d,$00
- ld a,[$ff8c] ; text ID
+ ld a,[hSpriteIndexOrTextID] ; text ID
ld [wSpriteIndex],a
and a
jp z,DisplayStartMenu
cp a,$d4 ; new yellow asm
jp z,DisplayUnknownText_29c6
- cp a,$d3
+ cp a,TEXT_SAFARI_GAME_OVER
jp z,DisplaySafariGameOverText
- cp a,$d0
+ cp a,TEXT_MON_FAINTED
jp z,DisplayPokemonFaintedText
- cp a,$d1
+ cp a,TEXT_BLACKED_OUT
jp z,DisplayPlayerBlackedOutText
- cp a,$d2
+ cp a,TEXT_REPEL_WORE_OFF
jp z,DisplayRepelWoreOffText
ld a,[W_NUMSPRITES]
ld e,a
- ld a,[$ff8c] ; sprite ID
+ ld a,[hSpriteIndexOrTextID] ; sprite ID
cp e
jr z,.spriteHandling
jr nc,.skipSpriteHandling
@@ -1285,7 +1281,7 @@ DisplayTextID:: ; 2817 (0:2817)
;pop bc
;pop de
ld hl,W_MAPSPRITEDATA ; NPC text entries
- ld a,[$ff8c]
+ ld a,[hSpriteIndexOrTextID]
dec a
add a
ld e,a
@@ -1318,7 +1314,7 @@ DisplayTextID:: ; 2817 (0:2817)
jp z,FuncTX_PokemonCenterPC
cp a,$f5 ; Vending Machine
jr nz,.notVendingMachine
- callba VendingMachineMenu ; jump banks to vending machine routine
+ callba VendingMachineMenu ; jump banks to vending machine routine
jr AfterDisplayingTextID
.notVendingMachine
cp a,$f7 ; slot machine
@@ -1328,13 +1324,13 @@ DisplayTextID:: ; 2817 (0:2817)
callab CableClubNPC
jr AfterDisplayingTextID
.notSpecialCase
- call Func_3c46 ; display the text (actually 3c46)
+ call PrintText_NoCreatingTextBox ; display the text
ld a,[wDoNotWaitForButtonPressAfterDisplayingText]
and a
jr nz,HoldTextDisplayOpen
AfterDisplayingTextID:: ; 28c6 (0:28c6)
- ld a,[wcc47]
+ ld a,[wEnteringCableClub]
and a
jr nz,HoldTextDisplayOpen
call WaitForTextScrollButtonPress ; wait for a button press after displaying all the text
@@ -1385,7 +1381,7 @@ DisplayPokemartDialogue:: ; 2915 (0:2915)
pop hl
inc hl
call LoadItemList
- ld a,$02
+ ld a,PRICEDITEMLISTMENU
ld [wListMenuID],a ; selects between subtypes of menus
homecall DisplayPokemartDialogue_
jp AfterDisplayingTextID
@@ -1395,13 +1391,13 @@ PokemartGreetingText:: ; 2938 (0:2938)
db "@"
LoadItemList:: ; 293d (0:293d)
- ld a,$01
+ ld a,1
ld [wUpdateSpritesEnabled],a
ld a,h
- ld [wd128],a
+ ld [wItemListPointer],a
ld a,l
- ld [wd129],a
- ld de,wStringBuffer2 + 11
+ ld [wItemListPointer + 1],a
+ ld de,wItemList
.loop
ld a,[hli]
ld [de],a
@@ -1411,10 +1407,12 @@ LoadItemList:: ; 293d (0:293d)
ret
DisplayPokemonCenterDialogue:: ; 2955 (0:2955)
+; zeroing these doesn't appear to serve any purpose
xor a
ld [$ff8b],a
ld [$ff8c],a
ld [$ff8d],a
+
inc hl
homecall DisplayPokemonCenterDialogue_
jp AfterDisplayingTextID
@@ -1475,7 +1473,7 @@ INCLUDE "engine/menu/start_menu.asm"
; hl = address of string of bytes
; b = length of string of bytes
; OUTPUT:
-; [wd11e] = number of set bits
+; [wNumSetBits] = number of set bits
CountSetBits:: ; 2a81 (0:2a81)
ld c,0
.loop
@@ -1492,15 +1490,13 @@ CountSetBits:: ; 2a81 (0:2a81)
dec b
jr nz,.loop
ld a,c
- ld [wd11e],a ; store number of set bits
+ ld [wNumSetBits],a
ret
; subtracts the amount the player paid from their money
; sets carry flag if there is enough money and unsets carry flag if not
SubtractAmountPaidFromMoney:: ; 2a98 (0:2a98)
- ld b,BANK(SubtractAmountPaidFromMoney_)
- ld hl,SubtractAmountPaidFromMoney_
- jp Bankswitch
+ jpba SubtractAmountPaidFromMoney_
; adds the amount the player sold to their money
AddAmountSoldToMoney:: ; 2aa0 (0:2aa0)
@@ -1511,15 +1507,18 @@ AddAmountSoldToMoney:: ; 2aa0 (0:2aa0)
ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID ; redraw money text box
- ld a, $b2 ;(SFX_02_5a - SFX_Headers_02) / 3
+ ld a, $b2 ; SFX_PURCHASE
call PlaySoundWaitForCurrent ; play sound
jp WaitForSoundToFinish ; wait until sound is done playing
+ ld a, SFX_PURCHASE
+ call PlaySoundWaitForCurrent
+ jp WaitForSoundToFinish
; function to remove an item (in varying quantities) from the player's bag or PC box
; INPUT:
; HL = address of inventory (either wNumBagItems or wNumBoxItems)
; [wWhichPokemon] = index (within the inventory) of the item to remove
-; [wcf96] = quantity to remove
+; [wItemQuantity] = quantity to remove
RemoveItemFromInventory:: ; 2abd (0:2abd)
homecall RemoveItemFromInventory_
ret
@@ -1528,7 +1527,7 @@ RemoveItemFromInventory:: ; 2abd (0:2abd)
; INPUT:
; HL = address of inventory (either wNumBagItems or wNumBoxItems)
; [wcf91] = item ID
-; [wcf96] = item quantity
+; [wItemQuantity] = item quantity
; sets carry flag if successful, unsets carry flag if unsuccessful
AddItemToInventory:: ; 2acd (0:2acd)
push bc
@@ -1538,7 +1537,7 @@ AddItemToInventory:: ; 2acd (0:2acd)
; INPUT:
; [wListMenuID] = list menu ID
-; [wList] = address of the list (2 bytes)
+; [wListPointer] = address of the list (2 bytes)
DisplayListMenuID:: ; 2ae0 (0:2ae0)
xor a
ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer
@@ -1557,28 +1556,28 @@ DisplayListMenuID:: ; 2ae0 (0:2ae0)
set 6,[hl] ; turn off letter printing delay
xor a
ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped
- ld [wd12a],a
- ld a,[wList]
+ ld [wListCount],a
+ ld a,[wListPointer]
ld l,a
- ld a,[wList + 1]
+ ld a,[wListPointer + 1]
ld h,a ; hl = address of the list
- ld a,[hl]
- ld [wd12a],a ; [wd12a] = number of list entries
+ ld a,[hl] ; the first byte is the number of entries in the list
+ ld [wListCount],a
ld a,LIST_MENU_BOX
ld [wTextBoxID],a
call DisplayTextBoxID ; draw the menu text box
call UpdateSprites ; disable sprites behind the text box
; the code up to .skipMovingSprites appears to be useless
coord hl, 4, 2 ; coordinates of upper left corner of menu text box
- ld de,$090e ; height and width of menu text box
+ lb de, 9, 14 ; height and width of menu text box
ld a,[wListMenuID]
and a ; is it a PC pokemon list?
jr nz,.skipMovingSprites
- call UpdateSprites ; move sprites
+ call UpdateSprites
.skipMovingSprites
ld a,1 ; max menu item ID is 1 if the list has less than 2 entries
- ld [wcc37],a
- ld a,[wd12a]
+ ld [wMenuWatchMovingOutOfBounds],a
+ ld a,[wListCount]
cp a,2 ; does the list have less than 2 entries?
jr c,.setMenuVariables
ld a,2 ; max menu item ID is 2 if the list has at least 2 entries
@@ -1627,17 +1626,20 @@ DisplayListMenuIDLoop:: ; 2b4d (0:2b4d)
.buttonAPressed
ld a,[wCurrentMenuItem]
call PlaceUnfilledArrowMenuCursor
+
+; pointless because both values are overwritten before they are read
ld a,$01
- ld [wd12e],a
- ld [wd12d],a
+ ld [wMenuExitMethod],a
+ ld [wChosenMenuItem],a
+
xor a
- ld [wcc37],a
+ ld [wMenuWatchMovingOutOfBounds],a
ld a,[wCurrentMenuItem]
ld c,a
ld a,[wListScrollOffset]
add c
ld c,a
- ld a,[wd12a] ; number of list entries
+ ld a,[wListCount]
and a ; is the list empty?
jp z,ExitListMenu ; if so, exit the menu
dec a
@@ -1651,9 +1653,9 @@ DisplayListMenuIDLoop:: ; 2b4d (0:2b4d)
; if it's an item menu
sla c ; item entries are 2 bytes long, so multiply by 2
.skipMultiplying
- ld a,[wList]
+ ld a,[wListPointer]
ld l,a
- ld a,[wList + 1]
+ ld a,[wListPointer + 1]
ld h,a
inc hl ; hl = beginning of list entries
ld b,0
@@ -1672,7 +1674,7 @@ DisplayListMenuIDLoop:: ; 2b4d (0:2b4d)
; if it's an item menu
inc hl
ld a,[hl] ; a = item quantity
- ld [wcf97],a
+ ld [wMaxItemQuantity],a
.skipGettingQuantity
ld a,[wcf91]
ld [wd0b5],a
@@ -1682,7 +1684,7 @@ DisplayListMenuIDLoop:: ; 2b4d (0:2b4d)
jr .storeChosenEntry
.pokemonList
ld hl,wPartyCount
- ld a,[wList]
+ ld a,[wListPointer]
cp l ; is it a list of party pokemon or box pokemon?
ld hl,wPartyMonNicks
jr z,.getPokemonName
@@ -1693,10 +1695,10 @@ DisplayListMenuIDLoop:: ; 2b4d (0:2b4d)
.storeChosenEntry ; store the menu entry that the player chose and return
ld de,wcd6d
call CopyStringToCF4B ; copy name to wcf4b
- ld a,$01
- ld [wd12e],a
+ ld a,CHOSE_MENU_ITEM
+ ld [wMenuExitMethod],a
ld a,[wCurrentMenuItem]
- ld [wd12d],a
+ ld [wChosenMenuItem],a
xor a
ld [hJoy7],a ; joypad state update flag
ld hl,wd730
@@ -1715,7 +1717,7 @@ DisplayListMenuIDLoop:: ; 2b4d (0:2b4d)
ld a,[hl]
add a,3
ld b,a
- ld a,[wd12a] ; number of list entries
+ ld a,[wListCount]
cp b ; will going down scroll past the Cancel button?
jp c,DisplayListMenuIDLoop
inc [hl] ; if not, go down
@@ -1730,13 +1732,15 @@ DisplayListMenuIDLoop:: ; 2b4d (0:2b4d)
DisplayChooseQuantityMenu:: ; 2c51 (0:2c51)
; text box dimensions/coordinates for just quantity
coord hl, 15, 9
- ld bc,$103 ; height and width
+ lb bc, 1, 3 ; height and width
ld a,[wListMenuID]
cp a,PRICEDITEMLISTMENU
jr nz,.drawTextBox
; text box dimensions/coordinates for quantity and price
coord hl, 7, 9
- ld bc,$10b ; height and width
+ lb bc, 1, 11 ; height and width
+ ld b,1 ; height
+ ld c,11 ; width
.drawTextBox
call TextBoxBorder
coord hl, 16, 10
@@ -1748,7 +1752,7 @@ DisplayChooseQuantityMenu:: ; 2c51 (0:2c51)
ld de,InitialQuantityText
call PlaceString
xor a
- ld [wcf96],a ; initialize current quantity to 0
+ ld [wItemQuantity],a ; initialize current quantity to 0
jp .incrementQuantity
.waitForKeyPressLoop
call JoypadLowSensitivity
@@ -1763,10 +1767,10 @@ DisplayChooseQuantityMenu:: ; 2c51 (0:2c51)
jr nz,.decrementQuantity
jr .waitForKeyPressLoop
.incrementQuantity
- ld a,[wcf97] ; max quantity
+ ld a,[wMaxItemQuantity]
inc a
ld b,a
- ld hl,wcf96 ; current quantity
+ ld hl,wItemQuantity ; current quantity
inc [hl]
ld a,[hl]
cp b
@@ -1776,11 +1780,11 @@ DisplayChooseQuantityMenu:: ; 2c51 (0:2c51)
ld [hl],a
jr .handleNewQuantity
.decrementQuantity
- ld hl,wcf96 ; current quantity
+ ld hl,wItemQuantity ; current quantity
dec [hl]
jr nz,.handleNewQuantity
; wrap to the max quantity if the player goes below 1
- ld a,[wcf97] ; max quantity
+ ld a,[wMaxItemQuantity]
ld [hl],a
.handleNewQuantity
coord hl, 17, 10
@@ -1789,49 +1793,49 @@ DisplayChooseQuantityMenu:: ; 2c51 (0:2c51)
jr nz,.printQuantity
.printPrice
ld c,$03
- ld a,[wcf96]
+ ld a,[wItemQuantity]
ld b,a
- ld hl,$ff9f ; total price
+ ld hl,hMoney ; total price
; initialize total price to 0
xor a
ld [hli],a
ld [hli],a
ld [hl],a
.addLoop ; loop to multiply the individual price by the quantity to get the total price
- ld de,$ffa1
- ld hl,$ff8d
+ ld de,hMoney + 2
+ ld hl,hItemPrice + 2
push bc
predef AddBCDPredef ; add the individual price to the current sum
pop bc
dec b
jr nz,.addLoop
- ld a,[$ff8e]
+ ld a,[hHalveItemPrices]
and a ; should the price be halved (for selling items)?
jr z,.skipHalvingPrice
xor a
- ld [$ffa2],a
- ld [$ffa3],a
+ ld [hDivideBCDDivisor],a
+ ld [hDivideBCDDivisor + 1],a
ld a,$02
- ld [$ffa4],a
+ ld [hDivideBCDDivisor + 2],a
predef DivideBCDPredef3 ; halves the price
; store the halved price
- ld a,[$ffa2]
- ld [$ff9f],a
- ld a,[$ffa3]
- ld [$ffa0],a
- ld a,[$ffa4]
- ld [$ffa1],a
+ ld a,[hDivideBCDQuotient]
+ ld [hMoney],a
+ ld a,[hDivideBCDQuotient + 1]
+ ld [hMoney + 1],a
+ ld a,[hDivideBCDQuotient + 2]
+ ld [hMoney + 2],a
.skipHalvingPrice
coord hl, 12, 10
ld de,SpacesBetweenQuantityAndPriceText
call PlaceString
- ld de,$ff9f ; total price
+ ld de,hMoney ; total price
ld c,$a3
call PrintBCDNumber
coord hl, 9, 10
.printQuantity
- ld de,wcf96 ; current quantity
- ld bc,$8102 ; print leading zeroes, 1 byte, 2 digits
+ ld de,wItemQuantity ; current quantity
+ lb bc, LEADING_ZEROES | 1, 2 ; 1 byte, 2 digits
call PrintNumber
jp .waitForKeyPressLoop
.buttonAPressed ; the player chose to make the transaction
@@ -1852,10 +1856,10 @@ SpacesBetweenQuantityAndPriceText:: ; 2d2c (0:2d2c)
ExitListMenu:: ; 2d33 (0:2d33)
ld a,[wCurrentMenuItem]
- ld [wd12d],a
- ld a,$02
- ld [wd12e],a
- ld [wcc37],a
+ ld [wChosenMenuItem],a
+ ld a,CANCELLED_MENU
+ ld [wMenuExitMethod],a
+ ld [wMenuWatchMovingOutOfBounds],a
xor a
ld [hJoy7],a
ld hl,wd730
@@ -1868,11 +1872,11 @@ ExitListMenu:: ; 2d33 (0:2d33)
PrintListMenuEntries:: ; 2d52 (0:2d52)
coord hl, 5, 3
- ld bc,$090e
+ lb bc, 9, 14
call ClearScreenArea
- ld a,[wList]
+ ld a,[wListPointer]
ld e,a
- ld a,[wList + 1]
+ ld a,[wListPointer + 1]
ld d,a
inc de ; de = beginning of list entries
ld a,[wListScrollOffset]
@@ -1916,7 +1920,7 @@ PrintListMenuEntries:: ; 2d52 (0:2d52)
.pokemonPCMenu
push hl
ld hl,wPartyCount
- ld a,[wList]
+ ld a,[wListPointer]
cp l ; is it a list of party pokemon or box pokemon?
ld hl,wPartyMonNicks
jr z,.getPokemonName
@@ -1938,7 +1942,7 @@ PrintListMenuEntries:: ; 2d52 (0:2d52)
call PlaceString
pop de
pop hl
- ld a,[wcf93]
+ ld a,[wPrintItemPrices]
and a ; should prices be printed?
jr z,.skipPrintingItemPrice
.printItemPrice
@@ -1948,7 +1952,7 @@ PrintListMenuEntries:: ; 2d52 (0:2d52)
ld [wcf91],a
call GetItemPrice ; get price
pop hl
- ld bc,20 + 5 ; 1 row down and 5 columns right
+ ld bc, SCREEN_WIDTH + 5 ; 1 row down and 5 columns right
add hl,bc
ld c,$a3 ; no leading zeroes, right-aligned, print currency symbol, 3 bytes
call PrintBCDNumber
@@ -1961,13 +1965,13 @@ PrintListMenuEntries:: ; 2d52 (0:2d52)
push af
push hl
ld hl,wPartyCount
- ld a,[wList]
+ ld a,[wListPointer]
cp l ; is it a list of party pokemon or box pokemon?
- ld a,$00
+ ld a,PLAYER_PARTY_DATA
jr z,.next
- ld a,$02
+ ld a,BOX_DATA
.next
- ld [wcc49],a
+ ld [wMonDataLocation],a
ld hl,wWhichPokemon
ld a,[hl]
ld b,a
@@ -1977,8 +1981,8 @@ PrintListMenuEntries:: ; 2d52 (0:2d52)
ld a,[wListScrollOffset]
add b
ld [hl],a
- call LoadMonData ; load pokemon info
- ld a,[wcc49]
+ call LoadMonData
+ ld a,[wMonDataLocation]
and a ; is it a list of party pokemon or box pokemon?
jr z,.skipCopyingLevel
.copyLevel
@@ -1988,7 +1992,7 @@ PrintListMenuEntries:: ; 2d52 (0:2d52)
pop hl
ld bc,$001c
add hl,bc
- call PrintLevel ; print level
+ call PrintLevel
pop af
ld [wd11e],a
.skipPrintingPokemonLevel
@@ -2002,22 +2006,22 @@ PrintListMenuEntries:: ; 2d52 (0:2d52)
ld a,[wd11e]
ld [wcf91],a
call IsKeyItem ; check if item is unsellable
- ld a,[wd124]
+ ld a,[wIsKeyItem]
and a ; is the item unsellable?
jr nz,.skipPrintingItemQuantity ; if so, don't print the quantity
push hl
- ld bc,20 + 8 ; 1 row down and 8 columns right
+ ld bc, SCREEN_WIDTH + 8 ; 1 row down and 8 columns right
add hl,bc
ld a,"×"
ld [hli],a
ld a,[wd11e]
push af
ld a,[de]
- ld [wcf97],a
+ ld [wMaxItemQuantity],a
push de
ld de,wd11e
ld [de],a
- ld bc,$0102
+ lb bc, 1, 2
call PrintNumber
pop de
pop af
@@ -2039,7 +2043,7 @@ PrintListMenuEntries:: ; 2d52 (0:2d52)
ld a,$ec ; unfilled right arrow menu cursor to indicate an item being swapped
ld [hli],a
.nextListEntry
- ld bc,2 * 20 ; 2 rows
+ ld bc,2 * SCREEN_WIDTH ; 2 rows
add hl,bc
pop bc
inc c
@@ -2063,7 +2067,7 @@ GetMonName:: ; 2e93 (0:2e93)
push af
ld a,BANK(MonsterNames) ; 3a
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
ld a,[wd11e]
dec a
ld hl,MonsterNames ; 4000
@@ -2074,12 +2078,12 @@ GetMonName:: ; 2e93 (0:2e93)
push de
ld bc,10
call CopyData
- ld hl,wcd77
+ ld hl,wcd6d + 10
ld [hl], "@"
pop de
pop af
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
pop hl
ret
@@ -2134,7 +2138,7 @@ GetMachineName:: ; 2ee8 (0:2ee8)
; now get the machine number and convert it to text
ld a,[wd11e]
sub TM_01 - 1
- ld b,$F6 ; "0"
+ ld b, "0"
.FirstDigit
sub 10
jr c,.SecondDigit
@@ -2147,7 +2151,7 @@ GetMachineName:: ; 2ee8 (0:2ee8)
ld [de],a
inc de
pop af
- ld b,$F6 ; "0"
+ ld b, "0"
add b
ld [de],a
inc de
@@ -2232,9 +2236,7 @@ ReloadTilesetTilePatterns:: ; 2f83 (0:2f83)
ChooseFlyDestination:: ; 2f9a (0:2f9a)
ld hl,wd72e
res 4,[hl]
- ld b, BANK(LoadTownMap_Fly)
- ld hl, LoadTownMap_Fly
- jp Bankswitch
+ jpba LoadTownMap_Fly
Func_2fa7:: ; 2fa7 (0:2fa7)
homecall Func_e8a5e
@@ -2275,21 +2277,19 @@ DisableWaitingAfterTextDisplay:: ; 2fde (0:2fde)
; INPUT:
; [wcf91] = item ID
; OUTPUT:
-; [wcd6a] = success
+; [wActionResultOrTookBattleTurn] = success
; 00: unsucessful
; 01: successful
; 02: not able to be used right now, no extra menu displayed (only certain items use this)
UseItem:: ; 2fe4 (0:2fe4)
- ld b,BANK(UseItem_)
- ld hl,UseItem_
- jp Bankswitch
+ jpba UseItem_
; confirms the item toss and then tosses the item
; INPUT:
; hl = address of inventory (either wNumBagItems or wNumBoxItems)
; [wcf91] = item ID
; [wWhichPokemon] = index of item within inventory
-; [wcf96] = quantity to toss
+; [wItemQuantity] = quantity to toss
; OUTPUT:
; clears carry flag if the item is tossed, sets carry flag if not
TossItem:: ; 2fec (0:2fec)
@@ -2297,19 +2297,19 @@ TossItem:: ; 2fec (0:2fec)
push af
ld a,BANK(TossItem_)
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
call TossItem_
pop de
ld a,d
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
ret
; checks if an item is a key item
; INPUT:
; [wcf91] = item ID
; OUTPUT:
-; [wd124] = result
+; [wIsKeyItem] = result
; 00: item is not key item
; 01: item is key item
IsKeyItem:: ; 3000 (0:3000)
@@ -2452,18 +2452,14 @@ RunNPCMovementScript:: ; 30ae (0:30ae)
ret
.NPCMovementScriptPointerTables
- dw ProfOakMovementScriptPointerTable
+ dw PalletMovementScriptPointerTable
dw PewterMuseumGuyMovementScriptPointerTable
dw PewterGymGuyMovementScriptPointerTable
.playerStepOutFromDoor
- ld b, BANK(PlayerStepOutFromDoor)
- ld hl, PlayerStepOutFromDoor
- jp Bankswitch
+ jpba PlayerStepOutFromDoor
EndNPCMovementScript:: ; 30ea (0:30ea)
- ld b, BANK(_EndNPCMovementScript)
- ld hl, _EndNPCMovementScript
- jp Bankswitch
+ jpba _EndNPCMovementScript
EmptyFunc2:: ; 30f2 (0:30f2)
ret
@@ -2504,7 +2500,7 @@ LoadGymLeaderAndCityName:: ; 311b (0:311b)
call CopyData ; load city name
pop hl
ld de, wGymLeaderName
- ld bc, $b
+ ld bc, NAME_LENGTH
jp CopyData ; load gym leader name
; reads specific information from trainer header (pointed to at W_TRAINERHEADERPTR)
@@ -2564,7 +2560,7 @@ TalkToTrainer:: ; 3168 (0:3168)
call ReadTrainerHeaderInfo ; read flag's byte ptr
ld a, [wTrainerHeaderFlagBit]
ld c, a
- ld b, $2
+ ld b, FLAG_TEST
call TrainerFlagAction ; read trainer's flag
ld a, c
and a
@@ -2572,7 +2568,7 @@ TalkToTrainer:: ; 3168 (0:3168)
ld a, $6
call ReadTrainerHeaderInfo ; print after battle text
jp PrintText
-.trainerNotYetFought ; 0x31ed
+.trainerNotYetFought
ld a, $4
call ReadTrainerHeaderInfo ; print before battle text
call PrintText
@@ -2607,9 +2603,9 @@ CheckFightingMapTrainers:: ; 31b5 (0:31b5)
.trainerEngaging
ld hl, W_FLAGS_D733
set 3, [hl]
- ld [wcd4f], a
- xor a
- ld [wcd50], a
+ ld [wEmotionBubbleSpriteIndex], a
+ xor a ; EXCLAMATION_BUBBLE
+ ld [wWhichEmotionBubble], a
predef EmotionBubble
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
ld [wJoyIgnore], a
@@ -2652,17 +2648,17 @@ EndTrainerBattle:: ; 3211 (0:3211)
res 7, [hl]
ld hl, wFlags_0xcd60
res 0, [hl] ; player is no longer engaged by any trainer
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, ResetButtonPressedAndMapScript
ld a, $2
call ReadTrainerHeaderInfo
ld a, [wTrainerHeaderFlagBit]
ld c, a
- ld b, $1
+ ld b, FLAG_SET
call TrainerFlagAction ; flag trainer as fought
ld a, [W_ENEMYMONORTRAINERCLASS]
- cp $c8
+ cp 200
jr nc, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite)
ld hl, W_MISSABLEOBJECTLIST
ld de, $2
@@ -2670,7 +2666,7 @@ EndTrainerBattle:: ; 3211 (0:3211)
call IsInArray ; search for sprite ID
inc hl
ld a, [hl]
- ld [wcc4d], a ; load corresponding missable object index and remove it
+ ld [wMissableObjectIndex], a ; load corresponding missable object index and remove it
predef HideObject
.skipRemoveSprite
ld hl, wd730
@@ -2689,39 +2685,37 @@ ResetButtonPressedAndMapScript:: ; 325d (0:325d)
; calls TrainerWalkUpToPlayer
TrainerWalkUpToPlayer_Bank0:: ; 326b (0:326b)
- ld b, BANK(TrainerWalkUpToPlayer)
- ld hl, TrainerWalkUpToPlayer
- jp Bankswitch
+ jpba TrainerWalkUpToPlayer
; sets opponent type and mon set/lvl based on the engaging trainer data
InitBattleEnemyParameters:: ; 3273 (0:3273)
ld a, [wEngagedTrainerClass]
- ld [W_CUROPPONENT], a ; wd059
+ ld [W_CUROPPONENT], a
ld [W_ENEMYMONORTRAINERCLASS], a
- cp $c8
- ld a, [wEngagedTrainerSet] ; wcd2e
+ cp 200
+ ld a, [wEngagedTrainerSet]
jr c, .noTrainer
- ld [W_TRAINERNO], a ; wd05d
+ ld [W_TRAINERNO], a
ret
.noTrainer
- ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
+ ld [W_CURENEMYLVL], a
ret
GetSpritePosition1:: ; 328b (0:328b)
ld hl, _GetSpritePosition1
- jr asm_329d
+ jr SpritePositionBankswitch
GetSpritePosition2:: ; 3290 (0:3290)
ld hl, _GetSpritePosition2
- jr asm_329d ; 0x32f7 $8
+ jr SpritePositionBankswitch
SetSpritePosition1:: ; 3295 (0:3295)
ld hl, _SetSpritePosition1
- jr asm_329d
+ jr SpritePositionBankswitch
SetSpritePosition2:: ; 329a (0:329a)
ld hl, _SetSpritePosition2
-asm_329d:: ; 329d (0:329d)
+SpritePositionBankswitch:: ; 329d (0:329d)
ld b, BANK(_GetSpritePosition1) ; BANK(_GetSpritePosition2), BANK(_SetSpritePosition1), BANK(_SetSpritePosition2)
jp Bankswitch ; indirect jump to one of the four functions
@@ -2739,13 +2733,13 @@ CheckForEngagingTrainers:: ; 32a2 (0:32a2)
ret z
ld a, $2
call ReadTrainerHeaderInfo ; read trainer flag's byte ptr
- ld b, $2
+ ld b, FLAG_TEST
ld a, [wTrainerHeaderFlagBit]
ld c, a
call TrainerFlagAction ; read trainer flag
ld a, c
- and a
- jr nz, .trainerAlreadyFought
+ and a ; has the trainer already been defeated?
+ jr nz, .continue
push hl
push de
push hl
@@ -2757,14 +2751,14 @@ CheckForEngagingTrainers:: ; 32a2 (0:32a2)
ld [wTrainerEngageDistance], a
ld a, [wSpriteIndex]
swap a
- ld [wTrainerSpriteOffset], a ; wWhichTrade
+ ld [wTrainerSpriteOffset], a
predef TrainerEngage
pop de
pop hl
- ld a, [wTrainerSpriteOffset] ; wWhichTrade
+ ld a, [wTrainerSpriteOffset]
and a
ret nz ; break if the trainer is engaging
-.trainerAlreadyFought
+.continue
ld hl, $c
add hl, de
ld d, h
@@ -2799,7 +2793,7 @@ EngageMapTrainer:: ; 3306 (0:3306)
ld a, [hli] ; load trainer class
ld [wEngagedTrainerClass], a
ld a, [hl] ; load trainer mon set
- ld [wEnemyMonAttackMod], a ; wcd2e
+ ld [wEnemyMonAttackMod], a
jp PlayTrainerMusic
PrintEndBattleText:: ; 331d (0:331d)
@@ -2844,37 +2838,28 @@ GetSavedEndBattleTextPointer:: ; 3353 (0:3353)
TrainerEndBattleText:: ; 336b (0:336b)
TX_FAR _TrainerNameText
- db $08
+ TX_ASM
call GetSavedEndBattleTextPointer
call TextCommandProcessor
jp TextScriptEnd
-; XXX unused?
-;Func_33dd:: ; 33dd (0:33dd)
-; ld a, [wFlags_0xcd60]
-; bit 0, a
-; ret nz
-; call EngageMapTrainer
-; xor a
-; ret
-
PlayTrainerMusic:: ; 3379 (0:3379)
ld a, [wEngagedTrainerClass]
- cp $c8 + SONY1
+ cp OPP_SONY1
ret z
- cp $c8 + SONY2
+ cp OPP_SONY2
ret z
- cp $c8 + SONY3
+ cp OPP_SONY3
ret z
- ld a, [W_GYMLEADERNO] ; W_GYMLEADERNO
+ ld a, [W_GYMLEADERNO]
and a
ret nz
xor a
- ld [wMusicHeaderPointer], a
+ ld [wAudioFadeOutControl], a
call StopAllMusic ; stop music
ld a, $1f ; BANK(Music_MeetEvilTrainer)
- ld [wc0ef], a
- ld [wc0f0], a
+ ld [wAudioROMBank], a
+ ld [wAudioSavedROMBank], a
ld a, [wEngagedTrainerClass]
ld b, a
ld hl, EvilTrainerList
@@ -2899,7 +2884,7 @@ PlayTrainerMusic:: ; 3379 (0:3379)
.maleTrainer
ld a, $fb ; MUSIC_MEET_MALE_TRAINER
.PlaySound
- ld [wc0ee], a
+ ld [wNewSoundID], a
jp PlaySound
INCLUDE "data/trainer_types.asm"
@@ -2971,7 +2956,7 @@ IsItemInBag:: ; 3422 (0:3422)
; set zero flag if item isn't in player's bag
; else reset zero flag
; related to Pokémon Tower and ghosts
- predef IsItemInBag_
+ predef GetQuantityOfItemInBag
ld a,b
and a
ret
@@ -3032,20 +3017,18 @@ Func_3467:: ; 3467 (0:3467)
DisplayPokedex:: ; 347d (0:347d)
ld [wd11e], a
- ld b, BANK(Func_7abf)
- ld hl, Func_7abf
- jp Bankswitch
+ jpba _DisplayPokedex
SetSpriteFacingDirectionAndDelay:: ; 3488 (0:3488)
call SetSpriteFacingDirection
- ld c, $6
+ ld c, 6
jp DelayFrames
SetSpriteFacingDirection:: ; 3490 (0:3490)
ld a, $9
ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
- ld a, [$ff8d]
+ ld a, [hSpriteFacingDirection]
ld [hl], a
ret
@@ -3079,7 +3062,7 @@ SpriteFunc_34a1:: ; 34a1 (0:34a1)
; INPUT:
; hl = address of array
; OUTPUT:
-; [wWhichTrade] = if there is match, the matching array index
+; [wCoordIndex] = if there is match, the matching array index
; sets carry if the coordinates are in the array, clears carry if not
ArePlayerCoordsInArray:: ; 34bc (0:34bc)
ld a,[W_YCOORD]
@@ -3090,13 +3073,13 @@ ArePlayerCoordsInArray:: ; 34bc (0:34bc)
CheckCoords:: ; 34c4 (0:34c4)
xor a
- ld [wWhichTrade],a
+ ld [wCoordIndex],a
.loop
ld a,[hli]
cp a,$ff ; reached terminator?
jr z,.notInArray
push hl
- ld hl,wWhichTrade
+ ld hl,wCoordIndex
inc [hl]
pop hl
.compareYCoord
@@ -3120,7 +3103,7 @@ CheckCoords:: ; 34c4 (0:34c4)
; hl = address of array
; [H_SPRITEINDEX] = index of boulder sprite
; OUTPUT:
-; [wWhichTrade] = if there is match, the matching array index
+; [wCoordIndex] = if there is match, the matching array index
; sets carry if the coordinates are in the array, clears carry if not
CheckBoulderCoords:: ; 34e1 (0:34e1)
push hl
@@ -3167,7 +3150,7 @@ DecodeRLEList:: ; 3509 (0:3509)
ld a, [de]
cp $ff
jr z, .endOfList
- ld [H_DOWNARROWBLINKCNT1], a ; store byte value to be written
+ ld [hRLEByteValue], a ; store byte value to be written
inc de
ld a, [de]
ld b, $0
@@ -3175,7 +3158,7 @@ DecodeRLEList:: ; 3509 (0:3509)
ld a, [wRLEByteCount]
add c
ld [wRLEByteCount], a ; update total number of written bytes
- ld a, [H_DOWNARROWBLINKCNT1] ; $ff8b
+ ld a, [hRLEByteValue]
call FillMemory ; write a c-times to output
inc de
jr .listLoop
@@ -3186,18 +3169,18 @@ DecodeRLEList:: ; 3509 (0:3509)
inc a ; include sentinel in counting
ret
-; sets movement byte 1 for sprite [$FF8C] to $FE and byte 2 to [$FF8D]
+; sets movement byte 1 for sprite [H_SPRITEINDEX] to $FE and byte 2 to [hSpriteMovementByte2]
SetSpriteMovementBytesToFE:: ; 3530 (0:3530)
push hl
call GetSpriteMovementByte1Pointer
ld [hl], $fe
call GetSpriteMovementByte2Pointer
- ld a, [$ff8d]
+ ld a, [hSpriteMovementByte2]
ld [hl], a
pop hl
ret
-; sets both movement bytes for sprite [$FF8C] to $FF
+; sets both movement bytes for sprite [H_SPRITEINDEX] to $FF
SetSpriteMovementBytesToFF:: ; 353f (0:353f)
push hl
call GetSpriteMovementByte1Pointer
@@ -3207,20 +3190,20 @@ SetSpriteMovementBytesToFF:: ; 353f (0:353f)
pop hl
ret
-; returns the sprite movement byte 1 pointer for sprite [$FF8C] in hl
+; returns the sprite movement byte 1 pointer for sprite [H_SPRITEINDEX] in hl
GetSpriteMovementByte1Pointer:: ; 354b (0:354b)
ld h,$C2
- ld a,[H_SPRITEINDEX] ; the sprite to move
+ ld a,[H_SPRITEINDEX]
swap a
add a,6
ld l,a
ret
-; returns the sprite movement byte 2 pointer for sprite [$FF8C] in hl
+; returns the sprite movement byte 2 pointer for sprite [H_SPRITEINDEX] in hl
GetSpriteMovementByte2Pointer:: ; 3555 (0:3555)
push de
ld hl,W_MAPSPRITEDATA
- ld a,[$FF8C] ; the sprite to move
+ ld a,[H_SPRITEINDEX]
dec a
add a
ld e,a
@@ -3236,7 +3219,7 @@ GetTrainerInformation:: ; 3563 (0:3563)
jr nz, .linkBattle
ld a, BANK(TrainerPicAndMoneyPointers)
call BankswitchHome
- ld a, [W_TRAINERCLASS] ; wd031
+ ld a, [W_TRAINERCLASS]
dec a
ld hl, TrainerPicAndMoneyPointers
ld bc, $5
@@ -3247,7 +3230,7 @@ GetTrainerInformation:: ; 3563 (0:3563)
inc de
ld a, [hli]
ld [de], a
- ld de, wd046
+ ld de, wTrainerBaseMoney
ld a, [hli]
ld [de], a
inc de
@@ -3282,23 +3265,21 @@ IsFightingJessieJames:: ; 359e (0:359e)
ret
GetTrainerName:: ; 35bb (0:35bb)
- ld b, BANK(GetTrainerName_) ; actually 3d:67a5
- ld hl, GetTrainerName_
- jp Bankswitch
+ jpba GetTrainerName_
HasEnoughMoney:: ; 35c3 (0:35c3)
; Check if the player has at least as much
-; money as the 3-byte BCD value at $ff9f.
+; money as the 3-byte BCD value at hMoney.
ld de, wPlayerMoney
- ld hl, $ff9f
+ ld hl, hMoney
ld c, 3
jp StringCmp
HasEnoughCoins:: ; 35ce (0:35ce)
; Check if the player has at least as many
-; coins as the 2-byte BCD value at $ffa0.
+; coins as the 2-byte BCD value at hCoins.
ld de, wPlayerCoins
- ld hl, $ffa0
+ ld hl, hCoins
ld c, 2
jp StringCmp
@@ -3306,19 +3287,37 @@ HasEnoughCoins:: ; 35ce (0:35ce)
BankswitchHome:: ; 35d9 (0:35d9)
; switches to bank # in a
; Only use this when in the home bank!
- ld [wcf09],a
+ ld [wBankswitchHomeTemp],a
ld a,[H_LOADEDROMBANK]
- ld [wcf08],a
- ld a,[wcf09]
+ ld [wBankswitchHomeSavedROMBank],a
+ ld a,[wBankswitchHomeTemp]
call BankswitchCommon
ret
BankswitchBack:: ; 35e8 (0:35e8)
; returns from BankswitchHome
- ld a,[wcf08]
+ ld a,[wBankswitchHomeSavedROMBank]
call BankswitchCommon
ret
-
+
+Bankswitch:: ; 35d6 (0:35d6)
+; self-contained bankswitch, use this when not in the home bank
+; switches to the bank in b
+ ld a,[H_LOADEDROMBANK]
+ push af
+ ld a,b
+ ld [H_LOADEDROMBANK],a
+ ld [MBC1RomBank],a
+ ld bc,.Return
+ push bc
+ jp [hl]
+.Return
+ pop bc
+ ld a,b
+ ld [H_LOADEDROMBANK],a
+ ld [MBC1RomBank],a
+ ret
+
; displays yes/no choice
; yes -> set carry
YesNoChoice:: ; 35ef (0:35ef)
@@ -3344,7 +3343,7 @@ YesNoChoicePokeCenter:: ; 360d (0:360d)
ld a, HEAL_CANCEL_MENU
ld [wTwoOptionMenuID], a
coord hl, 11, 6
- ld bc, $80c
+ lb bc, 8, 12
jr DisplayYesNoChoice
Func_361d:: ; 361d (0:361d)
@@ -3352,7 +3351,7 @@ Func_361d:: ; 361d (0:361d)
ld a, WIDE_YES_NO_MENU
ld [wTwoOptionMenuID], a
coord hl, 12, 7
- ld bc, $080d
+ lb bc, 8, 13
DisplayYesNoChoice:: ; 362b (0:362b)
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
@@ -3369,8 +3368,8 @@ CalcDifference:: ; 3636 (0:3636)
ret
MoveSprite:: ; 363d (0:363d)
-; move the sprite [$FF8C] with the movement pointed to by de
-; actually only copies the movement data to wcc5b for later
+; move the sprite [H_SPRITEINDEX] with the movement pointed to by de
+; actually only copies the movement data to wNPCMovementDirections for later
call SetSpriteMovementBytesToFF
MoveSprite_:: ; 3640 (0:3640)
push hl
@@ -3378,7 +3377,7 @@ MoveSprite_:: ; 3640 (0:3640)
call GetSpriteMovementByte1Pointer
xor a
ld [hl],a
- ld hl,wcc5b
+ ld hl,wNPCMovementDirections
ld c,0
.loop
@@ -3390,7 +3389,7 @@ MoveSprite_:: ; 3640 (0:3640)
jr nz,.loop
ld a,c
- ld [wcf0f],a ; number of steps taken
+ ld [wNPCNumScriptedSteps],a ; number of steps taken
pop bc
ld hl,wd730
@@ -3404,10 +3403,10 @@ MoveSprite_:: ; 3640 (0:3640)
ld [wWastedByteCD3A],a
ret
-; divides [$ffe5] by [$ffe6] and stores the quotient in [$ffe7]
+; divides [hDividend2] by [hDivisor2] and stores the quotient in [hQuotient2]
DivideBytes:: ; 366e (0:366e)
push hl
- ld hl, $ffe7
+ ld hl, hQuotient2
xor a
ld [hld], a
ld a, [hld]
@@ -3433,13 +3432,13 @@ LoadFontTilePatterns:: ; 3683 (0:3683)
.off
ld hl, FontGraphics
ld de, vFont
- ld bc, $400
+ ld bc, FontGraphicsEnd - FontGraphics
ld a, BANK(FontGraphics)
jp FarCopyDataDouble ; if LCD is off, transfer all at once
.on
ld de, FontGraphics
ld hl, vFont
- ld bc, BANK(FontGraphics) << 8 | $80
+ lb bc, BANK(FontGraphics), (FontGraphicsEnd - FontGraphics) / $8
jp CopyVideoDataDouble ; if LCD is on, transfer during V-blank
LoadTextBoxTilePatterns:: ; 36a3 (0:36a3)
@@ -3449,13 +3448,13 @@ LoadTextBoxTilePatterns:: ; 36a3 (0:36a3)
.off
ld hl, TextBoxGraphics
ld de, vChars2 + $600
- ld bc, $200
+ ld bc, TextBoxGraphicsEnd - TextBoxGraphics
ld a, BANK(TextBoxGraphics)
jp FarCopyData ; if LCD is off, transfer all at once
.on
ld de, TextBoxGraphics
ld hl, vChars2 + $600
- ld bc, BANK(TextBoxGraphics) << 8 | $20
+ lb bc, BANK(TextBoxGraphics), (TextBoxGraphicsEnd - TextBoxGraphics) / $10
jp CopyVideoData ; if LCD is on, transfer during V-blank
LoadHpBarAndStatusTilePatterns:: ; 36c3 (0:36c3)
@@ -3465,13 +3464,13 @@ LoadHpBarAndStatusTilePatterns:: ; 36c3 (0:36c3)
.off
ld hl, HpBarAndStatusGraphics
ld de, vChars2 + $620
- ld bc, $1e0
+ ld bc, HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics
ld a, BANK(HpBarAndStatusGraphics)
jp FarCopyData ; if LCD is off, transfer all at once
.on
ld de, HpBarAndStatusGraphics
ld hl, vChars2 + $620
- ld bc, BANK(HpBarAndStatusGraphics) << 8 | $1e
+ lb bc, BANK(HpBarAndStatusGraphics), (HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics) / $10
jp CopyVideoData ; if LCD is on, transfer during V-blank
UncompressSpriteFromDE:: ; 36e3 (0:36e3)
@@ -3483,41 +3482,41 @@ UncompressSpriteFromDE:: ; 36e3 (0:36e3)
jp UncompressSpriteData
SaveScreenTilesToBuffer2:: ; 36ec (0:36ec)
- ld hl, wTileMap
+ coord hl, 0, 0
ld de, wTileMapBackup2
- ld bc, $168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
jp CopyData
LoadScreenTilesFromBuffer2:: ; 36f8 (0:36f8)
call LoadScreenTilesFromBuffer2DisableBGTransfer
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ret
; loads screen tiles stored in wTileMapBackup2 but leaves H_AUTOBGTRANSFERENABLED disabled
LoadScreenTilesFromBuffer2DisableBGTransfer:: ; 3700 (0:3700)
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ld hl, wTileMapBackup2
- ld de, wTileMap
+ coord de, 0, 0
ld bc, $168
jp CopyData
SaveScreenTilesToBuffer1:: ; 370f (0:370f)
- ld hl, wTileMap
+ coord hl, 0, 0
ld de, wTileMapBackup
- ld bc, $168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
jp CopyData
LoadScreenTilesFromBuffer1:: ; 371b (0:371b)
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ld hl, wTileMapBackup
- ld de, wTileMap
- ld bc, $168
+ coord de, 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyData
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ret
DelayFrames:: ; 372f (0:372f)
@@ -3539,8 +3538,8 @@ WaitForSoundToFinish:: ; 373e (0:373e)
and $80
ret nz
push hl
-.asm_374f
- ld hl, wc02a
+.waitLoop
+ ld hl, wChannelSoundIDs + CH4
xor a
or [hl]
inc hl
@@ -3549,7 +3548,7 @@ WaitForSoundToFinish:: ; 373e (0:373e)
inc hl
or [hl]
and a
- jr nz, .asm_374f
+ jr nz, .waitLoop
pop hl
ret
@@ -3587,12 +3586,12 @@ GetName:: ; 3762 (0:3762)
jr nz,.otherEntries
;1 = MON_NAMES
call GetMonName
- ld hl,11
+ ld hl,NAME_LENGTH
add hl,de
ld e,l
ld d,h
jr .gotPtr
-.otherEntries ; $378d
+.otherEntries
;2-7 = OTHER ENTRIES
ld a,[wPredefBank]
call BankswitchCommon
@@ -3603,7 +3602,7 @@ GetName:: ; 3762 (0:3762)
ld e,a
jr nc,.skip
inc d
-.skip ; $37a0
+.skip
ld hl,NamePointers
add hl,de
ld a,[hli]
@@ -3633,11 +3632,11 @@ GetName:: ; 3762 (0:3762)
ld de,wcd6d
ld bc,$0014
call CopyData
-.gotPtr ; $37cd
+.gotPtr
ld a,e
- ld [wcf8d],a
+ ld [wUnusedCF8D],a
ld a,d
- ld [wcf8e],a
+ ld [wUnusedCF8D + 1],a
pop de
pop bc
pop hl
@@ -3794,10 +3793,10 @@ ManualTextScroll:: ; 388e (0:388e)
jr z, .inLinkBattle
call WaitForTextScrollButtonPress
call WaitForSoundToFinish
- ld a, $90 ; (SFX_02_40 - SFX_Headers_02) / 3
+ ld a, $90 ; SFX_PRESS_AB
jp PlaySound
.inLinkBattle
- ld c, $41
+ ld c, 65
jp DelayFrames
; function to do multiplication
@@ -3836,18 +3835,18 @@ Divide:: ; 38b2 (0:38b2)
; This function is used to wait a short period after printing a letter to the
; screen unless the player presses the A/B button or the delay is turned off
-; through the [wd730] or [wd358] flags.
+; through the [wd730] or [wLetterPrintingDelayFlags] flags.
PrintLetterDelay:: ; 38c8 (0:38c8)
ld a,[wd730]
bit 6,a
ret nz
- ld a,[wd358]
+ ld a,[wLetterPrintingDelayFlags]
bit 1,a
ret z
push hl
push de
push bc
- ld a,[wd358]
+ ld a,[wLetterPrintingDelayFlags]
bit 0,a
jr z,.waitOneFrame
ld a,[W_OPTIONS]
@@ -3897,12 +3896,10 @@ CopyDataUntil:: ; 3908 (0:3908)
; Function to remove a pokemon from the party or the current box.
; wWhichPokemon determines the pokemon.
-; [wcf95] == 0 specifies the party.
-; [wcf95] != 0 specifies the current box.
+; [wRemoveMonFromBox] == 0 specifies the party.
+; [wRemoveMonFromBox] != 0 specifies the current box.
RemovePokemon:: ; 3914 (0:3914)
- ld hl, _RemovePokemon
- ld b, BANK(_RemovePokemon)
- jp Bankswitch
+ jpab _RemovePokemon
AddPartyMon:: ; 391c (0:391c)
push hl
@@ -3927,7 +3924,7 @@ CalcStats:: ; 392b (0:392b)
ld [de], a
inc de
ld a, c
- cp $5
+ cp NUM_STATS
jr nz, .statsLoop
ret
@@ -3978,7 +3975,7 @@ CalcStat:: ; 393f (0:393f)
srl c
pop hl
push bc
- ld bc, $b ; skip to stat IV values
+ ld bc, wPartyMon1DVs - (wPartyMon1HPExp - 1) ; also wEnemyMonDVs - wEnemyMonHP
add hl, bc
pop bc
ld a, c
@@ -4056,7 +4053,7 @@ CalcStat:: ; 393f (0:393f)
ld [H_MULTIPLICAND+1], a
xor a
ld [H_MULTIPLICAND], a
- ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
+ ld a, [W_CURENEMYLVL]
ld [H_MULTIPLIER], a
call Multiply ; ((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level
ld a, [H_MULTIPLICAND]
@@ -4072,9 +4069,9 @@ CalcStat:: ; 393f (0:393f)
call Divide ; (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100
ld a, c
cp $1
- ld a, $5
+ ld a, 5 ; + 5 for non-HP stat
jr nz, .notHPStat
- ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
+ ld a, [W_CURENEMYLVL]
ld b, a
ld a, [H_MULTIPLICAND+2]
add b
@@ -4084,7 +4081,7 @@ CalcStat:: ; 393f (0:393f)
inc a
ld [H_MULTIPLICAND+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level
.noCarry3
- ld a, $a
+ ld a, 10 ; +10 for HP stat
.notHPStat
ld b, a
ld a, [H_MULTIPLICAND+2]
@@ -4096,17 +4093,17 @@ CalcStat:: ; 393f (0:393f)
ld [H_MULTIPLICAND+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level + 10
.noCarry4
ld a, [H_MULTIPLICAND+1] ; check for overflow (>999)
- cp $4
+ cp 999 / $100 + 1
jr nc, .overflow
- cp $3
+ cp 999 / $100
jr c, .noOverflow
ld a, [H_MULTIPLICAND+2]
- cp $e8
+ cp 999 % $100 + 1
jr c, .noOverflow
.overflow
- ld a, $3 ; overflow: cap at 999
+ ld a, 999 / $100 ; overflow: cap at 999
ld [H_MULTIPLICAND+1], a
- ld a, $e7
+ ld a, 999 % $100
ld [H_MULTIPLICAND+2], a
.noOverflow
pop bc
@@ -4118,16 +4115,16 @@ AddEnemyMonToPlayerParty:: ; 3a48 (0:3a48)
homecall_sf _AddEnemyMonToPlayerParty
ret
-Func_3a59:: ; 3a59 (0:3a59)
+MoveMon:: ; 3a59 (0:3a59)
homecall_sf Func_f3a4
ret
-; skips a text entries, each of size $b (like trainer name, OT name, rival name, ...)
-; hl: base pointer, will be incremented by $b * a
+; skips a text entries, each of size NAME_LENGTH (like trainer name, OT name, rival name, ...)
+; hl: base pointer, will be incremented by NAME_LENGTH * a
SkipFixedLengthTextEntries:: ; 3a6a (0:3a6a)
and a
ret z
- ld bc, $b
+ ld bc, NAME_LENGTH
.skipLoop
add hl, bc
dec a
@@ -4195,7 +4192,7 @@ WriteOAMBlock:: ; 3a84 (0:3a84)
HandleMenuInput:: ; 3aab (0:3aab)
xor a
- ld [wd09b],a
+ ld [wPartyMenuAnimMonEnabled],a
HandleMenuInputPokemonSelection:: ; 3aaf (0:3aaf)
ld a,[H_DOWNARROWBLINKCNT1]
@@ -4204,16 +4201,16 @@ HandleMenuInputPokemonSelection:: ; 3aaf (0:3aaf)
push af ; save existing values on stack
xor a
ld [H_DOWNARROWBLINKCNT1],a ; blinking down arrow timing value 1
- ld a,$06
+ ld a,6
ld [H_DOWNARROWBLINKCNT2],a ; blinking down arrow timing value 2
.loop1
xor a
- ld [wPartyMonAnimCounter],a ; counter for pokemon shaking animation
+ ld [wAnimCounter],a ; counter for pokemon shaking animation
call PlaceMenuCursor
call Delay3
.loop2
push hl
- ld a,[wd09b]
+ ld a,[wPartyMenuAnimMonEnabled]
and a ; is it a pokemon selection menu?
jr z,.getJoypadState
callba AnimatePartyMon ; shake mini sprite of selected pokemon (1c:578c)
@@ -4242,7 +4239,7 @@ HandleMenuInputPokemonSelection:: ; 3aaf (0:3aaf)
ret
.keyPressed
xor a
- ld [wcc4b],a
+ ld [wCheckFor180DegreeTurn],a
ld a,[hJoy5]
ld b,a
bit 0,a ; pressed A key?
@@ -4296,7 +4293,7 @@ HandleMenuInputPokemonSelection:: ; 3aaf (0:3aaf)
bit 5,[hl]
pop hl
jr nz,.skipPlayingSound
- ld a, $90 ; (SFX_02_40 - SFX_Headers_02) / 3
+ ld a, $90 ; SFX_PRESS_AB
call PlaySound ; play sound
.skipPlayingSound
pop af
@@ -4308,7 +4305,7 @@ HandleMenuInputPokemonSelection:: ; 3aaf (0:3aaf)
ld a,[hJoy5]
ret
.noWrappingAround
- ld a,[wcc37]
+ ld a,[wMenuWatchMovingOutOfBounds]
and a ; should we return if the user tried to go past the top or bottom?
jr z,.checkOtherKeys
jr .checkIfAButtonOrBButtonPressed
@@ -4317,7 +4314,7 @@ PlaceMenuCursor:: ; 3b6d (0:3b6d)
ld a,[wTopMenuItemY]
and a ; is the y coordinate 0?
jr z,.adjustForXCoord
- ld hl,wTileMap
+ coord hl, 0, 0
ld bc,SCREEN_WIDTH
.topMenuItemLoop
add hl,bc
@@ -4458,7 +4455,7 @@ HandleDownArrowBlinkTiming:: ; 3bf1 (0:3bf1)
; The following code either enables or disables the automatic drawing of
; text boxes by DisplayTextID. Both functions cause DisplayTextID to wait
-; for a button press after displaying text (unless [wcc47] is set).
+; for a button press after displaying text (unless [wEnteringCableClub] is set).
EnableAutoTextBoxDrawing:: ; 3c29 (0:3c29)
xor a
@@ -4482,7 +4479,7 @@ PrintText:: ; 3c36 (0:3c36)
call UpdateSprites
call Delay3
pop hl
-Func_3c46:: ; 3c46 (0:3c46)
+PrintText_NoCreatingTextBox:: ; 3c46 (0:3c46)
coord bc, 1, 14
jp TextCommandProcessor
@@ -4503,9 +4500,6 @@ PrintNumber:: ; 3c5b (0:3c5b)
; the value to char "0" instead of calling PrintNumber.
; Flags LEADING_ZEROES and LEFT_ALIGN can be given
; in bits 7 and 6 of b respectively.
-LEADING_ZEROES EQU 7
-LEFT_ALIGN EQU 6
-
push bc
xor a
ld [H_PASTLEADINGZEROES], a
@@ -4698,7 +4692,7 @@ endm
ret
.PrintLeadingZero: ; 3d7f (0:3d7f)
- bit LEADING_ZEROES, d
+ bit BIT_LEADING_ZEROES, d
ret z
ld [hl], "0"
ret
@@ -4707,9 +4701,9 @@ endm
; Increment unless the number is left-aligned,
; leading zeroes are not printed, and no digits
; have been printed yet.
- bit LEADING_ZEROES, d
+ bit BIT_LEADING_ZEROES, d
jr nz, .inc
- bit LEFT_ALIGN, d
+ bit BIT_LEFT_ALIGN, d
jr z, .inc
ld a, [H_PASTLEADINGZEROES]
and a
@@ -4781,7 +4775,7 @@ RestoreScreenTilesAndReloadTilePatterns:: ; 3dc2 (0:3dc2)
call ReloadMapSpriteTilePatterns
call LoadScreenTilesFromBuffer2
call LoadTextBoxTilePatterns
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
jr Delay3
@@ -4817,13 +4811,13 @@ GBPalWhiteOut:: ; 3df2 (0:3df2)
ret
-GoPAL_SET_CF1C:: ; 3e03 (0:3e03)
+RunDefaultPaletteCommand:: ; 3e03 (0:3e03)
ld b,$ff
-GoPAL_SET:: ; 3e05 (0:3e05)
+RunPaletteCommand:: ; 3e05 (0:3e05)
ld a,[wOnSGB]
and a
ret z
- predef_jump Func_71ddf
+ predef_jump _RunPaletteCommand
GetHealthBarColor:: ; 3e0f (0:3e0f)
; Return at hl the palette of
@@ -4869,7 +4863,7 @@ GiveItem:: ; 3e3f (0:3e3f)
ld [wd11e], a
ld [wcf91], a
ld a, c
- ld [wcf96], a
+ ld [wItemQuantity], a
ld hl,wNumBagItems
call AddItemToInventory
ret nc
@@ -4884,13 +4878,12 @@ GivePokemon:: ; 3e59 (0:3e59)
ld [wcf91], a
ld a, c
ld [W_CURENEMYLVL], a
- xor a
- ld [wcc49], a
- ld b, BANK(_GivePokemon) ; 3d:66fa
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
+ jpba _GivePokemon ; 3d:66fa
ld hl, _GivePokemon
jp Bankswitch
-
Random:: ; 3e6d (0:3e6d)
; Return a random number in a.
; For battles, use BattleRandom.
@@ -4946,11 +4939,8 @@ PrepareRTCDataAndDisableSRAM:: ; 3ea9 (0:3ea9)
INCLUDE "home/predef.asm"
-
-Func_3ef0:: ; 3ef0 (0:3ef0)
- ld b, BANK(CinnabarGymQuiz_1eb0a)
- ld hl, CinnabarGymQuiz_1eb0a
- call Bankswitch
+UpdateCinnabarGymGateTileBlocks:: ; 3ef0 (0:3ef0)
+ callba CinnabarGymQuiz_1eb0a
ret ; again?
;jp Bankswitch
@@ -4987,10 +4977,10 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: ; 3ef9 (0:3ef9)
ret
PrintPredefTextID:: ; 3f3a (0:3f3a)
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a ; $ff8c
ld hl, TextPredefs
call SetMapTextPointer
- ld hl, wcf11
+ ld hl, wTextPredefFlag
set 0, [hl]
call DisplayTextID
diff --git a/home/audio.asm b/home/audio.asm
index 94cf999c..52f29b9b 100644
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -3,56 +3,68 @@ PlayDefaultMusic:: ; 216b (0:216b)
xor a
ld c, a
ld d, a
- ld [wcfca], a
- jr asm_2188
+ ld [wLastMusicSoundID], a
+ jr PlayDefaultMusicCommon
-Func_2176:: ; 2176 (0:2176)
- ld c, $a
- ld d, $0
+PlayDefaultMusicFadeOutCurrent:: ; 2176 (0:2176)
+; Fade out the current music and then play the default music.
+ ld c, 10
+ ld d, 0
ld a, [wd72e]
- bit 5, a
- jr z, asm_2188
+ bit 5, a ; has a battle just ended?
+ jr z, PlayDefaultMusicCommon
xor a
- ld [wcfca], a
- ld c, $8
+ ld [wLastMusicSoundID], a
+ ld c, 8
ld d, c
-asm_2188: ; 2118 (0:2118)
+PlayDefaultMusicCommon:: ; 2118 (0:2118)
ld a, [wWalkBikeSurfState]
and a
- jr z, .asm_21ac
+ jr z, .walking
cp $2
- jr z, .asm_219b
+ jr z, .surfing
call Func_21c8
jr c, .asm_21ac
ld a, $d2 ; MUSIC_BIKE_RIDING
- jr .asm_219d
-.asm_219b
+ jr .next
+
+.surfing
ld a, $d6 ; MUSIC_SURFING
-.asm_219d
+
+.next
ld b, a
ld a, d
- and a
+ and a ; should current music be faded out first?
ld a, $1f ; BANK(Music_BikeRiding)
- jr nz, .asm_21a7
- ld [wc0ef], a
-.asm_21a7
- ld [wc0f0], a
- jr .asm_21b5
-.asm_21ac
- ld a, [wd35b]
+ jr nz, .next2
+
+; Only change the audio ROM bank if the current music isn't going to be faded
+; out before the default music begins.
+ ld [wAudioROMBank], a
+
+.next2
+; [wAudioSavedROMBank] will be copied to [wAudioROMBank] after fading out the
+; current music (if the current music is faded out).
+ ld [wAudioSavedROMBank], a
+ jr .next3
+
+.walking
+ ld a, [wMapMusicSoundID]
ld b, a
- call Func_21f5
- jr c, .asm_21ba
-.asm_21b5
- ld a, [wcfca]
- cp b
- ret z
-.asm_21ba
+ call CompareMapMusicBankWithCurrentBank
+ jr c, .next4
+
+.next3
+ ld a, [wLastMusicSoundID]
+ cp b ; is the default music already playing?
+ ret z ; if so, do nothing
+
+.next4
ld a, c
- ld [wMusicHeaderPointer], a
+ ld [wAudioFadeOutControl], a
ld a, b
- ld [wcfca], a
- ld [wc0ee], a
+ ld [wLastMusicSoundID], a
+ ld [wNewSoundID], a
jp PlaySound
Func_21c8:: ; 21c8 (0:21c8)
@@ -87,7 +99,7 @@ Func_21e3:: ; 21e5 (0:21e5)
ret
;Func_235f:: ; 235f (0:235f)
-; ld a, [wc0ef]
+; ld a, [wAudioROMBank]
; ld b, a
; cp BANK(Music2_UpdateMusic)
; jr nz, .checkForBank08
@@ -114,34 +126,41 @@ Func_21e3:: ; 21e5 (0:21e5)
; jr nz, .asm_237a
; ret
-Func_21f5:: ; 21f5 (0:21f5)
- ld a, [wd35c]
+CompareMapMusicBankWithCurrentBank:: ; 21f5 (0:21f5)
+; Compares the map music's audio ROM bank with the current audio ROM bank
+; and updates the audio ROM bank variables.
+; Returns whether the banks are different in carry.
+ ld a, [wMapMusicROMBank]
ld e, a
- ld a, [wc0ef]
+ ld a, [wAudioROMBank]
cp e
- jr nz, .asm_2204
- ld [wc0f0], a
+ jr nz, .differentBanks
+ ld [wAudioSavedROMBank], a
and a
ret
-.asm_2204
- ld a, c
+.differentBanks
+ ld a, c ; this is a fade-out counter value and it's always non-zero
and a
ld a, e
- jr nz, .asm_220c
- ld [wc0ef], a
-.asm_220c
- ld [wc0f0], a
+ jr nz, .next
+; If the fade-counter is non-zero, we don't change the audio ROM bank because
+; it's needed to keep playing the music as it fades out. The FadeOutAudio
+; routine will take care of copying [wAudioSavedROMBank] to [wAudioROMBank]
+; when the music has faded out.
+ ld [wAudioROMBank], a
+.next
+ ld [wAudioSavedROMBank], a
scf
ret
PlayMusic:: ; 2211 (0:2211)
ld b, a
- ld [wc0ee], a
+ ld [wNewSoundID], a
xor a
- ld [wMusicHeaderPointer], a
+ ld [wAudioFadeOutControl], a
ld a, c
- ld [wc0ef], a
- ld [wc0f0], a
+ ld [wAudioROMBank], a
+ ld [wAudioSavedROMBank], a
ld a, b
jr PlaySound
@@ -163,42 +182,42 @@ PlaySound:: ; 2238 (0:2238)
push de
push bc
ld b, a
- ld a, [wc0ee]
+ ld a, [wNewSoundID]
and a
- jr z, .asm_224f
+ jr z, .next
xor a
ld [wc02a], a
ld [wc02b], a
ld [wc02c], a
ld [wc02d], a
-.asm_224f
- ld a, [wMusicHeaderPointer]
+.next
+ ld a, [wAudioFadeOutControl]
and a
- jr z, .asm_226a
- ld a, [wc0ee]
+ jr z, .noFadeOut
+ ld a, [wNewSoundID]
and a
- jr z, .asm_2284
+ jr z, .done
xor a
- ld [wc0ee], a
- ld a, [wcfca]
+ ld [wNewSoundID], a
+ ld a, [wLastMusicSoundID]
cp $ff
- jr nz, .asm_2273
+ jr nz, .fadeOut
xor a
ld [wMusicHeaderPointer], a
-.asm_226a
+.noFadeOut
xor a
ld [wc0ee], a
call Func_22ec
- jr .asm_2284
-.asm_2273
+ jr .done
+.fadeOut
ld a,b
- ld [wcfca],a
- ld a,[wMusicHeaderPointer]
- ld [wcfc8],a
- ld [wcfc9],a
+ ld [wLastMusicSoundID],a
+ ld a,[wAudioFadeOutControl]
+ ld [wAudioFadeOutCounterReloadValue],a
+ ld [wAudioFadeOutCounter],a
ld a,b
- ld [wMusicHeaderPointer],a
-.asm_2284
+ ld [wAudioFadeOutControl],a
+.done
pop bc
pop de
pop hl
@@ -207,13 +226,13 @@ PlaySound:: ; 2238 (0:2238)
Func_2288:: ; 2288 (0:2288)
ld a,[H_LOADEDROMBANK]
push af
- ld a, [wc0ef]
+ ld a, [wAudioROMBank]
call BankswitchCommon
ld d,$0
ld a,c
add a
ld e,a
- ld hl,wc006
+ ld hl,wChannelCommandPointers
add hl,de
ld a,[hli]
ld e,a
@@ -263,7 +282,7 @@ Func_22d6:: ; 22d6 (0:22d6)
Func_22ec:: ; 22ec (0:22ec)
ld a,[H_LOADEDROMBANK]
push af
- ld a,[wc0ef]
+ ld a,[wAudioROMBank]
call BankswitchCommon
cp BANK(Func_984e)
jr nz, .checkForBank08
diff --git a/home/copy2.asm b/home/copy2.asm
index 086ebc1a..bd1c0f78 100644
--- a/home/copy2.asm
+++ b/home/copy2.asm
@@ -165,7 +165,7 @@ Func_1681:: ; 1681 (0:1681)
ClearScreenArea:: ; 1692 (0:1692)
; Clear tilemap area cxb at hl.
- ld a, $7f ; blank tile
+ ld a, " " ; blank tile
ld de, 20 ; screen width
.y
push hl
@@ -188,17 +188,17 @@ CopyScreenTileBufferToVRAM:: ; 16a4 (0:16a4)
ld c, 6
ld hl, $600 * 0
- ld de, wTileMap + 20 * 6 * 0
+ coord de, 0, 6 * 0
call .setup
call DelayFrame
ld hl, $600 * 1
- ld de, wTileMap + 20 * 6 * 1
+ coord de, 0, 6 * 1
call .setup
call DelayFrame
ld hl, $600 * 2
- ld de, wTileMap + 20 * 6 * 2
+ coord de, 0, 6 * 2
call .setup
jp DelayFrame
@@ -221,8 +221,8 @@ ClearScreen:: ; 16dd (0:16dd)
; for the bg map to update.
ld bc, 20 * 18
inc b
- ld hl, wTileMap
- ld a, $7f
+ coord hl, 0, 0
+ ld a, " "
.loop
ld [hli], a
dec c
diff --git a/home/init.asm b/home/init.asm
index 168524b8..8d0aeab3 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -1,7 +1,7 @@
SoftReset:: ; 1d08 (0:1d08)
call StopAllSounds
call GBPalWhiteOut
- ld c, $20
+ ld c, 32
call DelayFrames
; fallthrough
@@ -23,17 +23,17 @@ rLCDC_DEFAULT EQU %11100011
xor a
ld [rIF], a
ld [rIE], a
- ld [$ff43], a
- ld [$ff42], a
+ ld [rSCX], a
+ ld [rSCY], a
ld [rSB], a
ld [rSC], a
- ld [$ff4b], a
- ld [$ff4a], a
- ld [$ff06], a
- ld [$ff07], a
- ld [$ff47], a
- ld [$ff48], a
- ld [$ff49], a
+ ld [rWX], a
+ ld [rWY], a
+ ld [rTMA], a
+ ld [rTAC], a
+ ld [rBGP], a
+ ld [rOBP0], a
+ ld [rOBP1], a
ld a, rLCDC_ENABLE_MASK
ld [rLCDC], a
@@ -66,10 +66,10 @@ rLCDC_DEFAULT EQU %11100011
xor a
ld [hTilesetType], a
- ld [$ff41], a
+ ld [rSTAT], a
ld [hSCX], a
ld [hSCY], a
- ld [$ff0f], a
+ ld [rIF], a
ld [wc0f3], a
ld [wc0f4], a
ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL
@@ -100,12 +100,12 @@ rLCDC_DEFAULT EQU %11100011
predef LoadSGB
ld a, $1f ; BANK(SFX_1f_67)
- ld [wc0ef], a
- ld [wc0f0], a
+ ld [wAudioROMBank], a
+ ld [wAudioSavedROMBank], a
ld a, $9c
- ld [$ffbd], a
+ ld [H_AUTOBGTRANSFERDEST + 1], a
xor a
- ld [$ffbc], a
+ ld [H_AUTOBGTRANSFERDEST], a
dec a
ld [wUpdateSpritesEnabled], a
@@ -128,11 +128,11 @@ ClearVram: ; 1dc6 (0:1dc6)
StopAllSounds::
- ld a, BANK(Music2_UpdateMusic)
- ld [wc0ef], a
- ld [wc0f0], a
+ ld a, BANK(Audio1_UpdateMusic)
+ ld [wAudioROMBank], a
+ ld [wAudioSavedROMBank], a
xor a
- ld [wMusicHeaderPointer], a
- ld [wc0ee], a
- ld [wcfca], a
+ ld [wAudioFadeOutControl], a
+ ld [wNewSoundID], a
+ ld [wLastMusicSoundID], a
jp StopAllMusic
diff --git a/home/overworld.asm b/home/overworld.asm
index 4ae1d36a..7b9fadfa 100644
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -108,9 +108,9 @@ OverworldLoopLessDelay:: ; 0245 (0:0245)
bit 0,a
jr nz,.checkForOpponent
aCoord 8, 9
- ld [wcf0e],a
+ ld [wTilePlayerStandingOn],a ; unused?
call DisplayTextID ; display either the start menu or the NPC/sign text
- ld a,[wcc47]
+ ld a,[wEnteringCableClub]
and a
jr z,.checkForOpponent
xor a
@@ -136,55 +136,55 @@ OverworldLoopLessDelay:: ; 0245 (0:0245)
xor a
ld [wd435], a
ld a, $1
- ld [wcc4b],a
- ld a,[wd528] ; the direction that was pressed last time
+ ld [wCheckFor180DegreeTurn],a
+ ld a,[wPlayerMovingDirection] ; the direction that was pressed last time
and a
jr z, .overworldloop
; if a direction was pressed last time
- ld [wd529],a ; save the last direction
+ ld [wPlayerLastStopDirection],a ; save the last direction
xor a
- ld [wd528],a ; zero the direction
+ ld [wPlayerMovingDirection],a ; zero the direction
.overworldloop
jp OverworldLoop
.checkIfDownButtonIsPressed
ld a,[hJoyHeld] ; current joypad state
bit 7,a ; down button
jr z,.checkIfUpButtonIsPressed
- ld a,$01
- ld [wSpriteStateData1 + 3],a
- ld a,$04
+ ld a,1
+ ld [wSpriteStateData1 + 3],a ; delta Y
+ ld a,PLAYER_DIR_DOWN
jr .handleDirectionButtonPress
.checkIfUpButtonIsPressed
bit 6,a ; up button
jr z,.checkIfLeftButtonIsPressed
- ld a,$ff
- ld [wSpriteStateData1 + 3],a
- ld a,$08
+ ld a,-1
+ ld [wSpriteStateData1 + 3],a ; delta Y
+ ld a,PLAYER_DIR_UP
jr .handleDirectionButtonPress
.checkIfLeftButtonIsPressed
bit 5,a ; left button
jr z,.checkIfRightButtonIsPressed
- ld a,$ff
- ld [wSpriteStateData1 + 5],a
- ld a,$02
+ ld a,-1
+ ld [wSpriteStateData1 + 5],a ; delta X
+ ld a,PLAYER_DIR_LEFT
jr .handleDirectionButtonPress
.checkIfRightButtonIsPressed
bit 4,a ; right button
jr z,.noDirectionButtonsPressed
- ld a,$01
+ ld a,$1
ld [wSpriteStateData1 + 5],a
ld a,$1
.handleDirectionButtonPress
- ld [wd52a],a ; new direction
+ ld [wPlayerDirection],a ; new direction
ld a,[wd730]
bit 7,a ; are we simulating button presses?
jr nz,.noDirectionChange ; ignore direction changes if we are
- ld a,[wcc4b]
+ ld a,[wCheckFor180DegreeTurn]
and a
jr z,.noDirectionChange
- ld a,[wd52a] ; new direction
+ ld a,[wPlayerDirection] ; new direction
ld b,a
- ld a,[wd529] ; old direction
+ ld a,[wPlayerLastStopDirection] ; old direction
cp b
jr z,.noDirectionChange
ld a,$8
@@ -193,15 +193,15 @@ OverworldLoopLessDelay:: ; 0245 (0:0245)
ld hl,wFlags_0xcd60
set 2,[hl]
xor a
- ld [wcc4b],a
+ ld [wCheckFor180DegreeTurn],a
ld a,[wd52a]
ld [wd528],a
call NewBattle
jp c,.battleOccurred
jp OverworldLoop
.noDirectionChange
- ld a,[wd52a] ; current direction
- ld [wd528],a ; save direction
+ ld a,[wPlayerDirection] ; current direction
+ ld [wPlayerMovingDirection],a ; save direction
call UpdateSprites
ld a,[wWalkBikeSurfState]
cp a,$02 ; surfing
@@ -256,7 +256,7 @@ OverworldLoopLessDelay:: ; 0245 (0:0245)
and a
jp nz,CheckWarpsNoCollision
predef ApplyOutOfBattlePoisonDamage ; also increment daycare mon exp
- ld a,[wd12d]
+ ld a,[wOutOfBattleBlackout]
and a
jp nz,HandleBlackOut ; if all pokemon fainted
.newBattle
@@ -290,7 +290,7 @@ OverworldLoopLessDelay:: ; 0245 (0:0245)
and a
jr z,AllPokemonFainted
.noFaintCheck
- ld c,$0a
+ ld c,10
call DelayFrames
jp EnterMap
@@ -329,9 +329,7 @@ NewBattle:: ; 0480 (0:0480)
ld a,[wd72e]
bit 4,a
jr nz,.noBattle
- ld b, BANK(InitBattle)
- ld hl, InitBattle ; 3d:5ff2
- jp Bankswitch
+ jpba InitBattle ; 3d:5ff2
.noBattle
and a
ret
@@ -435,7 +433,7 @@ CheckWarpsCollision:: ; 051a (0:051a)
ld a,[hli]
ld [wDestinationWarpID],a
ld a,[hl]
- ld [$ff8b],a ; save target map
+ ld [hWarpDestinationMap],a
jr WarpFound2
.retry1
inc hl
@@ -450,23 +448,23 @@ WarpFound1:: ; 0543 (0:0543)
ld a,[hli]
ld [wDestinationWarpID],a
ld a,[hli]
- ld [$ff8b],a ; save target map
+ ld [hWarpDestinationMap],a
WarpFound2:: ; 054a (0:054a)
ld a,[wNumberOfWarps]
sub c
- ld [wd73b],a ; save ID of used warp
+ ld [wWarpedFromWhichWarp],a ; save ID of used warp
ld a,[W_CURMAP]
- ld [wd73c],a
+ ld [wWarpedFromWhichMap],a
call CheckIfInOutsideMap
jr nz,.indoorMaps
; this is for handling "outside" maps that can't have the 0xFF destination map
ld a,[W_CURMAP]
ld [wLastMap],a
ld a,[W_CURMAPWIDTH]
- ld [wd366],a
- ld a,[$ff8b] ; destination map number
- ld [W_CURMAP],a ; change current map to destination map
+ ld [wUnusedD366],a ; not read
+ ld a,[hWarpDestinationMap]
+ ld [W_CURMAP],a
cp a,ROCK_TUNNEL_1
jr nz,.notRockTunnel
ld a,$06
@@ -478,13 +476,13 @@ WarpFound2:: ; 054a (0:054a)
jr .done
; for maps that can have the 0xFF destination map, which means to return to the outside map; not all these maps are necessarily indoors, though
.indoorMaps
- ld a,[$ff8b] ; destination map
+ ld a,[hWarpDestinationMap] ; destination map
cp a,$ff
jr z,.goBackOutside
; if not going back to the previous map
- ld [W_CURMAP],a ; current map number
+ ld [W_CURMAP],a
callba IsPlayerStandingOnWarpPadOrHole
- ld a,[wcd5b]
+ ld a,[wStandingOnWarpPadOrHole]
dec a ; is the player on a warp pad?
jr nz,.notWarpPad
; if the player is on a warp pad
@@ -521,26 +519,26 @@ CheckMapConnections:: ; 05db (0:05db)
jr nz,.checkEastMap
ld a,[W_MAPCONN3PTR]
ld [W_CURMAP],a
- ld a,[wd38f] ; new X coordinate upon entering west map
+ ld a,[wWestConnectedMapXAlignment] ; new X coordinate upon entering west map
ld [W_XCOORD],a
ld a,[W_YCOORD]
ld c,a
- ld a,[wd38e] ; Y adjustment upon entering west map
+ ld a,[wWestConnectedMapYAlignment] ; Y adjustment upon entering west map
add c
ld c,a
ld [W_YCOORD],a
- ld a,[wd390] ; pointer to upper left corner of map without adjustment for Y position
+ ld a,[wWestConnectedMapViewPointer] ; pointer to upper left corner of map without adjustment for Y position
ld l,a
- ld a,[wd391]
+ ld a,[wWestConnectedMapViewPointer + 1]
ld h,a
srl c
jr z,.savePointer1
.pointerAdjustmentLoop1
- ld a,[wd38d] ; width of connected map
- add a,$06
+ ld a,[wWestConnectedMapWidth] ; width of connected map
+ add a,MAP_BORDER * 2
ld e,a
- ld d,$00
- ld b,$00
+ ld d,0
+ ld b,0
add hl,de
dec c
jr nz,.pointerAdjustmentLoop1
@@ -552,31 +550,31 @@ CheckMapConnections:: ; 05db (0:05db)
jp .loadNewMap
.checkEastMap
ld b,a
- ld a,[wd525] ; map width
+ ld a,[wCurrentMapWidth2] ; map width
cp b
jr nz,.checkNorthMap
ld a,[W_MAPCONN4PTR]
ld [W_CURMAP],a
- ld a,[wd39a] ; new X coordinate upon entering east map
+ ld a,[wEastConnectedMapXAlignment] ; new X coordinate upon entering east map
ld [W_XCOORD],a
ld a,[W_YCOORD]
ld c,a
- ld a,[wd399] ; Y adjustment upon entering east map
+ ld a,[wEastConnectedMapYAlignment] ; Y adjustment upon entering east map
add c
ld c,a
ld [W_YCOORD],a
- ld a,[wd39b] ; pointer to upper left corner of map without adjustment for Y position
+ ld a,[wEastConnectedMapViewPointer] ; pointer to upper left corner of map without adjustment for Y position
ld l,a
- ld a,[wd39c]
+ ld a,[wEastConnectedMapViewPointer + 1]
ld h,a
srl c
jr z,.savePointer2
.pointerAdjustmentLoop2
- ld a,[wd398]
- add a,$06
+ ld a,[wEastConnectedMapWidth]
+ add a,MAP_BORDER * 2
ld e,a
- ld d,$00
- ld b,$00
+ ld d,0
+ ld b,0
add hl,de
dec c
jr nz,.pointerAdjustmentLoop2
@@ -592,19 +590,19 @@ CheckMapConnections:: ; 05db (0:05db)
jr nz,.checkSouthMap
ld a,[W_MAPCONN1PTR]
ld [W_CURMAP],a
- ld a,[wd378] ; new Y coordinate upon entering north map
+ ld a,[wNorthConnectedMapYAlignment] ; new Y coordinate upon entering north map
ld [W_YCOORD],a
ld a,[W_XCOORD]
ld c,a
- ld a,[wd379] ; X adjustment upon entering north map
+ ld a,[wNorthConnectedMapXAlignment] ; X adjustment upon entering north map
add c
ld c,a
ld [W_XCOORD],a
- ld a,[wd37a] ; pointer to upper left corner of map without adjustment for X position
+ ld a,[wNorthConnectedMapViewPointer] ; pointer to upper left corner of map without adjustment for X position
ld l,a
- ld a,[wd37b]
+ ld a,[wNorthConnectedMapViewPointer + 1]
ld h,a
- ld b,$00
+ ld b,0
srl c
add hl,bc
ld a,l
@@ -614,24 +612,24 @@ CheckMapConnections:: ; 05db (0:05db)
jp .loadNewMap
.checkSouthMap
ld b,a
- ld a,[wd524]
+ ld a,[wCurrentMapHeight2]
cp b
jr nz,.didNotEnterConnectedMap
ld a,[W_MAPCONN2PTR]
ld [W_CURMAP],a
- ld a,[wd383] ; new Y coordinate upon entering south map
+ ld a,[wSouthConnectedMapYAlignment] ; new Y coordinate upon entering south map
ld [W_YCOORD],a
ld a,[W_XCOORD]
ld c,a
- ld a,[wd384] ; X adjustment upon entering south map
+ ld a,[wSouthConnectedMapXAlignment] ; X adjustment upon entering south map
add c
ld c,a
ld [W_XCOORD],a
- ld a,[wd385] ; pointer to upper left corner of map without adjustment for X position
+ ld a,[wSouthConnectedMapViewPointer] ; pointer to upper left corner of map without adjustment for X position
ld l,a
- ld a,[wd386]
+ ld a,[wSouthConnectedMapViewPointer + 1]
ld h,a
- ld b,$00
+ ld b,0
srl c
add hl,bc
ld a,l
@@ -645,9 +643,9 @@ CheckMapConnections:: ; 05db (0:05db)
ld a,$2
ld [wd431],a
call LoadMapHeader ; 0dab (0:0dab)
- call Func_2176 ; music
- ld b,$09
- call GoPAL_SET
+ call PlayDefaultMusicFadeOutCurrent ; music
+ ld b,SET_PAL_OVERWORLD
+ call RunPaletteCommand
; Since the sprite set shouldn't change, this will just update VRAM slots at
; $C2XE without loading any tile patterns.
call InitMapSprites
@@ -666,10 +664,10 @@ PlayMapChangeSound:: ; 06ef (0:06ef)
aCoord 8, 8 ; upper left tile of the 4x4 square the player's sprite is standing on
cp UNDERGROUND ; door tile in tileset 0
jr nz,.didNotGoThroughDoor
- ld a, $ad ; (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, $ad ; SFX_GO_INSIDE
jr .playSound
.didNotGoThroughDoor
- ld a, $b5 ; (SFX_02_5c - SFX_Headers_02) / 3
+ ld a, $b5 ; SFX_GO_OUTSIDE
.playSound
call PlaySound
ld a,[wMapPalOffset]
@@ -740,14 +738,14 @@ HandleBlackOut:: ; 0762 (0:0762)
switchbank SpecialWarpIn ; also Bank(SpecialEnterMap)
callab ResetStatusAndHalveMoneyOnBlackout ; 3c:4274
call SpecialWarpIn
- call Func_2176
+ call PlayDefaultMusicFadeOutCurrent
jp SpecialEnterMap
StopMusic:: ; 0788 (0:0788)
ld [wMusicHeaderPointer], a
call StopAllMusic
.wait
- ld a, [wMusicHeaderPointer]
+ ld a, [wAudioFadeOutControl]
and a
jr nz, .wait
jp StopAllSounds
@@ -767,11 +765,6 @@ HandleFlyWarpOrDungeonWarp:: ; 0794 (0:0794)
callbs SpecialWarpIn
jp SpecialEnterMap
-LeaveMapAnim:: ; 07bc (0:07bc)
- ld b, BANK(_LeaveMapAnim)
- ld hl, _LeaveMapAnim
- jp Bankswitch
-
Func_07c4:: ; 07c4 (0:07c4)
ld a, [wWalkBikeSurfState]
and a
@@ -874,16 +867,16 @@ LoadTileBlockMap:: ; 083c (0:083c)
; a 3-byte border at the edges of the map is kept so that there is space for map connections
ld hl,wOverworldMap
ld a,[W_CURMAPWIDTH]
- ld [$ff8c],a
- add a,$06 ; border (east and west)
- ld [$ff8b],a ; map width + border
- ld b,$00
+ ld [hMapWidth],a
+ add a,MAP_BORDER * 2 ; east and west
+ ld [hMapStride],a ; map width + border
+ ld b,0
ld c,a
; make space for north border (next 3 lines)
add hl,bc
add hl,bc
add hl,bc
- ld c,$03
+ ld c,MAP_BORDER
add hl,bc ; this puts us past the (west) border
ld a,[W_MAPDATAPTR] ; tile map pointer
ld e,a
@@ -893,7 +886,7 @@ LoadTileBlockMap:: ; 083c (0:083c)
ld b,a
.rowLoop ; copy one row each iteration
push hl
- ld a,[$ff8c] ; map width (without border)
+ ld a,[hMapWidth] ; map width (without border)
ld c,a
.rowInnerLoop
ld a,[de]
@@ -903,7 +896,7 @@ LoadTileBlockMap:: ; 083c (0:083c)
jr nz,.rowInnerLoop
; add the map width plus the border to the base address of the current row to get the next row's address
pop hl
- ld a,[$ff8b] ; map width + border
+ ld a,[hMapStride] ; map width + border
add l
ld l,a
jr nc,.noCarry
@@ -916,82 +909,82 @@ LoadTileBlockMap:: ; 083c (0:083c)
cp a,$ff
jr z,.southConnection
call SwitchToMapRomBank
- ld a,[wd372]
+ ld a,[wNorthConnectionStripSrc]
ld l,a
- ld a,[wd373]
+ ld a,[wNorthConnectionStripSrc + 1]
ld h,a
- ld a,[wd374]
+ ld a,[wNorthConnectionStripDest]
ld e,a
- ld a,[wd375]
+ ld a,[wNorthConnectionStripDest + 1]
ld d,a
- ld a,[wd376]
- ld [$ff8b],a
- ld a,[wd377]
- ld [$ff8c],a
+ ld a,[wNorthConnectionStripWidth]
+ ld [hNorthSouthConnectionStripWidth],a
+ ld a,[wNorthConnectedMapWidth]
+ ld [hNorthSouthConnectedMapWidth],a
call LoadNorthSouthConnectionsTileMap
.southConnection
ld a,[W_MAPCONN2PTR]
cp a,$ff
jr z,.westConnection
call SwitchToMapRomBank
- ld a,[wd37d]
+ ld a,[wSouthConnectionStripSrc]
ld l,a
- ld a,[wd37e]
+ ld a,[wSouthConnectionStripSrc + 1]
ld h,a
- ld a,[wd37f]
+ ld a,[wSouthConnectionStripDest]
ld e,a
- ld a,[wd380]
+ ld a,[wSouthConnectionStripDest + 1]
ld d,a
- ld a,[wd381]
- ld [$ff8b],a
- ld a,[wd382]
- ld [$ff8c],a
+ ld a,[wSouthConnectionStripWidth]
+ ld [hNorthSouthConnectionStripWidth],a
+ ld a,[wSouthConnectedMapWidth]
+ ld [hNorthSouthConnectedMapWidth],a
call LoadNorthSouthConnectionsTileMap
.westConnection
ld a,[W_MAPCONN3PTR]
cp a,$ff
jr z,.eastConnection
call SwitchToMapRomBank
- ld a,[wd388]
+ ld a,[wWestConnectionStripSrc]
ld l,a
- ld a,[wd389]
+ ld a,[wWestConnectionStripSrc + 1]
ld h,a
- ld a,[wd38a]
+ ld a,[wWestConnectionStripDest]
ld e,a
- ld a,[wd38b]
+ ld a,[wWestConnectionStripDest + 1]
ld d,a
- ld a,[wd38c]
+ ld a,[wWestConnectionStripHeight]
ld b,a
- ld a,[wd38d]
- ld [$ff8b],a
+ ld a,[wWestConnectedMapWidth]
+ ld [hEastWestConnectedMapWidth],a
call LoadEastWestConnectionsTileMap
.eastConnection
ld a,[W_MAPCONN4PTR]
cp a,$ff
jr z,.done
call SwitchToMapRomBank
- ld a,[wd393]
+ ld a,[wEastConnectionStripSrc]
ld l,a
- ld a,[wd394]
+ ld a,[wEastConnectionStripSrc + 1]
ld h,a
- ld a,[wd395]
+ ld a,[wEastConnectionStripDest]
ld e,a
- ld a,[wd396]
+ ld a,[wEastConnectionStripDest + 1]
ld d,a
- ld a,[wd397]
+ ld a,[wEastConnectionStripHeight]
ld b,a
- ld a,[wd398]
- ld [$ff8b],a
+ ld a,[wEastConnectedMapWidth]
+ ld [hEastWestConnectedMapWidth],a
call LoadEastWestConnectionsTileMap
.done
ret
LoadNorthSouthConnectionsTileMap:: ; 0919 (0:0919)
- ld c,$03
+ ld c,MAP_BORDER
.loop
push de
push hl
- ld a,[$ff8b] ; width of connection
+ ld a,[hNorthSouthConnectionStripWidth]
ld b,a
.innerLoop
ld a,[hli]
@@ -1001,14 +994,14 @@ LoadNorthSouthConnectionsTileMap:: ; 0919 (0:0919)
jr nz,.innerLoop
pop hl
pop de
- ld a,[$ff8c] ; width of connected map
+ ld a,[hNorthSouthConnectedMapWidth]
add l
ld l,a
jr nc,.noCarry1
inc h
.noCarry1
ld a,[W_CURMAPWIDTH]
- add a,$06
+ add a,MAP_BORDER * 2
add e
ld e,a
jr nc,.noCarry2
@@ -1021,7 +1014,7 @@ LoadNorthSouthConnectionsTileMap:: ; 0919 (0:0919)
LoadEastWestConnectionsTileMap:: ; 093d (0:093d)
push hl
push de
- ld c,$03
+ ld c,MAP_BORDER
.innerLoop
ld a,[hli]
ld [de],a
@@ -1030,14 +1023,14 @@ LoadEastWestConnectionsTileMap:: ; 093d (0:093d)
jr nz,.innerLoop
pop de
pop hl
- ld a,[$ff8b] ; width of connected map
+ ld a,[hEastWestConnectedMapWidth]
add l
ld l,a
jr nc,.noCarry1
inc h
.noCarry1
ld a,[W_CURMAPWIDTH]
- add a,$06
+ add a,MAP_BORDER * 2
add e
ld e,a
jr nc,.noCarry2
@@ -1052,7 +1045,7 @@ LoadEastWestConnectionsTileMap:: ; 093d (0:093d)
IsSpriteOrSignInFrontOfPlayer:: ; 095e (0:095e)
xor a
ld [hSpriteIndexOrTextID],a
- ld a,[wd4b0] ; number of signs in the map
+ ld a,[wNumSigns]
and a
jr z,.extendRangeOverCounter
; if there are signs
@@ -1063,7 +1056,7 @@ IsSpriteOrSignInFrontOfPlayer:: ; 095e (0:095e)
; check if the player is front of a counter in a pokemon center, pokemart, etc. and if so, extend the range at which he can talk to the NPC
predef GetTileAndCoordsInFrontOfPlayer ; get the tile in front of the player in c
ld hl,W_TILESETTALKINGOVERTILES ; list of tiles that extend talking range (counter tiles)
- ld b,$03
+ ld b,3
ld d,$20 ; talking range in pixels (long range)
.counterTilesLoop
ld a,[hli]
@@ -1076,43 +1069,43 @@ IsSpriteOrSignInFrontOfPlayer:: ; 095e (0:095e)
IsSpriteInFrontOfPlayer:: ; 0983 (0:0983)
ld d,$10 ; talking range in pixels (normal range)
IsSpriteInFrontOfPlayer2:: ; 0985 (0:0985)
- ld bc,$3c40 ; Y and X position of player sprite
+ lb bc,$3c, $40 ; Y and X position of player sprite
ld a,[wSpriteStateData1 + 9] ; direction the player is facing
.checkIfPlayerFacingUp
- cp a,$04
+ cp SPRITE_FACING_UP
jr nz,.checkIfPlayerFacingDown
; facing up
ld a,b
sub d
ld b,a
- ld a,$08
+ ld a,PLAYER_DIR_UP
jr .doneCheckingDirection
.checkIfPlayerFacingDown
- cp a,$00
+ cp SPRITE_FACING_DOWN
jr nz,.checkIfPlayerFacingRight
; facing down
ld a,b
add d
ld b,a
- ld a,$04
+ ld a,PLAYER_DIR_DOWN
jr .doneCheckingDirection
.checkIfPlayerFacingRight
- cp a,$0c
+ cp SPRITE_FACING_RIGHT
jr nz,.playerFacingLeft
; facing right
ld a,c
add d
ld c,a
- ld a,$01
+ ld a,PLAYER_DIR_RIGHT
jr .doneCheckingDirection
.playerFacingLeft
; facing left
ld a,c
sub d
ld c,a
- ld a,$02
+ ld a,PLAYER_DIR_LEFT
.doneCheckingDirection
- ld [wd52a],a
+ ld [wPlayerDirection],a
ld hl,wSpriteStateData1 + $10
; yellow does not have the "if sprites are existant" check
ld e,$01
@@ -1209,7 +1202,7 @@ CollisionCheckOnLand:: ; 0a1c (0:0a1c)
ld a,[wSimulatedJoypadStatesIndex]
and a
jr nz,.noCollision ; no collisions when the player's movements are being controlled by the game
- ld a,[wd52a] ; the direction that the player is trying to go in
+ ld a,[wPlayerDirection] ; the direction that the player is trying to go in
ld d,a
ld a,[wSpriteStateData1 + 12] ; the player sprite's collision data (bit field) (set in the sprite movement code)
and d ; check if a sprite is in the direction the player is trying to go
@@ -1244,10 +1237,10 @@ CollisionCheckOnLand:: ; 0a1c (0:0a1c)
call CheckTilePassable
jr nc,.noCollision
.collision
- ld a,[wc02a]
- cp $b4 ; (SFX_02_5b - SFX_Headers_02) / 3 ; check if collision sound is already playing
+ ld a,[wChannelSoundIDs + CH4]
+ cp $b4 ; SFX_COLLISION ; check if collision sound is already playing
jr z,.setCarry
- ld a, $b4 ; (SFX_02_5b - SFX_Headers_02) / 3
+ ld a, $b4 ; SFX_COLLISION
call PlaySound ; play collision sound (if it's not already playing)
.setCarry
scf
@@ -1287,7 +1280,7 @@ CheckForJumpingAndTilePairCollisions:: ; 0a86 (0:0a86)
CheckForTilePairCollisions2:: ; 0aa0 (0:0aa0)
aCoord 8, 9 ; tile the player is on
- ld [wcf0e],a
+ ld [wTilePlayerStandingOn],a
CheckForTilePairCollisions:: ; 0aa6 (0:0aa6)
ld a,[wTileInFrontOfPlayer]
@@ -1305,7 +1298,7 @@ CheckForTilePairCollisions:: ; 0aa6 (0:0aa6)
inc hl
jr .tilePairCollisionLoop
.tilesetMatches
- ld a,[wcf0e] ; tile the player is on
+ ld a,[wTilePlayerStandingOn] ; tile the player is on
ld b,a
ld a,[hl]
cp b
@@ -1395,7 +1388,7 @@ LoadCurrentMapView:: ; 0b06 (0:0b06)
; update tile block map pointer to next row's address
pop de
ld a,[W_CURMAPWIDTH]
- add a,$06
+ add a,MAP_BORDER * 2
add e
ld e,a
jr nc,.noCarry
@@ -1426,10 +1419,10 @@ LoadCurrentMapView:: ; 0b06 (0:0b06)
ld bc,$0002
add hl,bc
.copyToVisibleAreaBuffer
- ld de,wTileMap ; base address for the tiles that are directly transfered to VRAM during V-blank
- ld b,$12
+ coord de, 0, 0 ; base address for the tiles that are directly transferred to VRAM during V-blank
+ ld b, SCREEN_HEIGHT
.rowLoop2
- ld c,$14
+ ld c, SCREEN_WIDTH
.rowInnerLoop2
ld a,[hli]
ld [de],a
@@ -1465,18 +1458,18 @@ AdvancePlayerSprite:: ; 0b7f (0:0b7f)
ScheduleNorthRowRedraw:: ; 0b95 (0:0b95)
hlCoord 0, 0
- call CopyToScreenEdgeTiles
+ call CopyToRedrawRowOrColumnSrcTiles
ld a,[wMapViewVRAMPointer]
ld [H_SCREENEDGEREDRAWADDR],a
ld a,[wMapViewVRAMPointer + 1]
- ld [H_SCREENEDGEREDRAWADDR + 1],a
- ld a,REDRAWROW
- ld [H_SCREENEDGEREDRAW],a
+ ld [hRedrawRowOrColumnDest + 1],a
+ ld a,REDRAW_ROW
+ ld [hRedrawRowOrColumnMode],a
ret
-CopyToScreenEdgeTiles:: ; 0baa (0:0baa)
- ld de,wScreenEdgeTiles
- ld c,2 * 20
+CopyToRedrawRowOrColumnSrcTiles:: ; 0baa (0:0baa)
+ ld de,wRedrawRowOrColumnSrcTiles
+ ld c,2 * SCREEN_WIDTH
.loop
ld a,[hli]
ld [de],a
@@ -1486,8 +1479,8 @@ CopyToScreenEdgeTiles:: ; 0baa (0:0baa)
ret
ScheduleSouthRowRedraw:: ; 0bb6 (0:0bb6)
- hlCoord 0, 16
- call CopyToScreenEdgeTiles
+ coord hl, 0, 16
+ call CopyToRedrawRowOrColumnSrcTiles
ld a,[wMapViewVRAMPointer]
ld l,a
ld a,[wMapViewVRAMPointer + 1]
@@ -1497,15 +1490,15 @@ ScheduleSouthRowRedraw:: ; 0bb6 (0:0bb6)
ld a,h
and a,$03
or a,$98
- ld [H_SCREENEDGEREDRAWADDR + 1],a
+ ld [hRedrawRowOrColumnDest + 1],a
ld a,l
- ld [H_SCREENEDGEREDRAWADDR],a
- ld a,REDRAWROW
- ld [H_SCREENEDGEREDRAW],a
+ ld [hRedrawRowOrColumnDest],a
+ ld a,REDRAW_ROW
+ ld [hRedrawRowOrColumnMode],a
ret
ScheduleEastColumnRedraw:: ; 0bd6 (0:0bd7)
- hlCoord 18, 0
+ coord hl, 18, 0
call ScheduleColumnRedrawHelper
ld a,[wMapViewVRAMPointer]
ld c,a
@@ -1515,16 +1508,16 @@ ScheduleEastColumnRedraw:: ; 0bd6 (0:0bd7)
add a,18
and a,$1f
or b
- ld [H_SCREENEDGEREDRAWADDR],a
+ ld [hRedrawRowOrColumnDest],a
ld a,[wMapViewVRAMPointer + 1]
- ld [H_SCREENEDGEREDRAWADDR + 1],a
- ld a,REDRAWCOL
- ld [H_SCREENEDGEREDRAW],a
+ ld [hRedrawRowOrColumnDest + 1],a
+ ld a,REDRAW_COL
+ ld [hRedrawRowOrColumnMode],a
ret
ScheduleColumnRedrawHelper:: ; 0bf6 (0:0bf6)
- ld de,wScreenEdgeTiles
- ld c,$12
+ ld de,wRedrawRowOrColumnSrcTiles
+ ld c,SCREEN_HEIGHT
.loop
ld a,[hli]
ld [de],a
@@ -1543,14 +1536,14 @@ ScheduleColumnRedrawHelper:: ; 0bf6 (0:0bf6)
ret
ScheduleWestColumnRedraw:: ; 0c0c (0:0c0c)
- hlCoord 0, 0
+ coord hl, 0, 0
call ScheduleColumnRedrawHelper
ld a,[wMapViewVRAMPointer]
- ld [H_SCREENEDGEREDRAWADDR],a
+ ld [hRedrawRowOrColumnDest],a
ld a,[wMapViewVRAMPointer + 1]
- ld [H_SCREENEDGEREDRAWADDR + 1],a
- ld a,REDRAWCOL
- ld [H_SCREENEDGEREDRAW],a
+ ld [hRedrawRowOrColumnDest + 1],a
+ ld a,REDRAW_COL
+ ld [hRedrawRowOrColumnMode],a
ret
; function to write the tiles that make up a tile block to memory
@@ -1688,7 +1681,7 @@ CollisionCheckOnWater:: ; 0cca (0:0cca)
ld a,[wd730]
bit 7,a
jp nz,.noCollision ; return and clear carry if button presses are being simulated
- ld a,[wd52a] ; the direction that the player is trying to go in
+ ld a,[wPlayerDirection] ; the direction that the player is trying to go in
ld d,a
ld a,[wSpriteStateData1 + 12] ; the player sprite's collision data (bit field) (set in the sprite movement code)
and d ; check if a sprite is in the direction the player is trying to go
@@ -1704,10 +1697,10 @@ CollisionCheckOnWater:: ; 0cca (0:0cca)
call IsTilePassable
jr nc,.stopSurfing
.collision
- ld a,[wc02a]
- cp $b4 ; (SFX_02_5b - SFX_Headers_02) / 3 ; check if collision sound is already playing
+ ld a,[wChannelSoundIDs + CH4]
+ cp $b4 ; SFX_COLLISION
jr z,.setCarry
- ld a, $b4 ; (SFX_02_5b - SFX_Headers_02) / 3
+ ld a, $b4 ; SFX_COLLISION
call PlaySound ; play collision sound (if it's not already playing)
.setCarry
scf
@@ -1765,7 +1758,6 @@ LoadWalkingPlayerSpriteGraphics:: ; 0d5e (0:0d5e)
ld [wd473],a
ld b,BANK(RedSprite)
ld de,RedSprite ; $4180
- jr LoadPlayerSpriteGraphicsCommon
LoadSurfingPlayerSpriteGraphics2:: ; 0d69 (0:0d69)
ld a,[wd473]
@@ -1819,14 +1811,14 @@ LoadMapHeader:: ; 0dab (0:0dab)
callba Func_f0a55 ; 3c:4a55
.asm_0dbd
ld a,[W_CURMAPTILESET]
- ld [wd119],a
+ ld [wUnusedD119],a
ld a,[W_CURMAP]
call SwitchToMapRomBank
ld a,[W_CURMAPTILESET]
ld b,a
res 7,a
ld [W_CURMAPTILESET],a
- ld [$ff8b],a
+ ld [hPreviousTileset],a
bit 7,b
ret nz
call GetMapHeaderPointer
@@ -1870,17 +1862,17 @@ LoadMapHeader:: ; 0dab (0:0dab)
call CopyMapConnectionHeader
.getObjectDataPointer
ld a,[hli]
- ld [wd3a9],a
+ ld [wObjectDataPointerTemp],a
ld a,[hli]
- ld [wd3aa],a
+ ld [wObjectDataPointerTemp + 1],a
push hl
- ld a,[wd3a9]
+ ld a,[wObjectDataPointerTemp]
ld l,a
- ld a,[wd3aa]
+ ld a,[wObjectDataPointerTemp + 1]
ld h,a ; hl = base of object data
- ld de,wd3ad ; background tile ID
+ ld de,wMapBackgroundTile
ld a,[hli]
- ld [de],a ; save background tile ID
+ ld [de],a
.loadWarpData
ld a,[hli]
ld [wNumberOfWarps],a
@@ -1900,7 +1892,7 @@ LoadMapHeader:: ; 0dab (0:0dab)
jr nz,.warpLoop
.loadSignData
ld a,[hli] ; number of signs
- ld [wd4b0],a ; save the number of signs
+ ld [wNumSigns],a
and a ; are there any signs?
jr z,.loadSpriteData ; if not, skip this
call CopySignData ; 0eb3 (0:0eb3)
@@ -1920,10 +1912,10 @@ LoadMapHeader:: ; 0dab (0:0dab)
pop hl ; restore hl from before going to the warp/sign/sprite data (this value was saved for seemingly no purpose)
ld a,[W_CURMAPHEIGHT] ; map height in 4x4 tile blocks
add a ; double it
- ld [wd524],a ; store map height in 2x2 tile blocks
+ ld [wCurrentMapHeight2],a ; store map height in 2x2 tile blocks
ld a,[W_CURMAPWIDTH] ; map width in 4x4 tile blocks
add a ; double it
- ld [wd525],a ; map width in 2x2 tile blocks
+ ld [wCurrentMapWidth2],a ; map width in 2x2 tile blocks
ld a,[W_CURMAP]
ld c,a
ld b,$00
@@ -1934,9 +1926,9 @@ LoadMapHeader:: ; 0dab (0:0dab)
add hl,bc
add hl,bc
ld a,[hli]
- ld [wd35b],a ; music 1
+ ld [wMapMusicSoundID],a ; music 1
ld a,[hl]
- ld [wd35c],a ; music 2
+ ld [wMapMusicROMBank],a ; music 2
pop af
call BankswitchCommon
ret
@@ -2047,7 +2039,7 @@ ResetMapVariables:: ; 0f56 (0:0f56)
ld [hSCY],a
ld [hSCX],a
ld [wWalkCounter],a
- ld [wd119],a
+ ld [wUnusedD119],a
ld [W_SPRITESETID],a
ld [wWalkBikeSurfStateCopy],a
ret
diff --git a/home/pic.asm b/home/pic.asm
index 28f27b79..28ffcbc7 100644
--- a/home/pic.asm
+++ b/home/pic.asm
@@ -28,7 +28,7 @@ _UncompressSpriteData:: ; 2410 (0:2410)
xor a
ld [W_SPRITECURPOSX], a
ld [W_SPRITECURPOSY], a
- ld [W_SPRITELOADFLAGS], a ; wd0a8
+ ld [W_SPRITELOADFLAGS], a
call ReadNextInputByte ; first byte of input determines sprite width (high nybble) and height (low nybble) in tiles (8x8 pixels)
ld b, a
and $f
@@ -54,13 +54,13 @@ _UncompressSpriteData:: ; 2410 (0:2410)
; note that this is an endless loop which is terminated during a call to MoveToNextBufferPosition by manipulating the stack
UncompressSpriteDataLoop:: ; 244c (0:244c)
ld hl, S_SPRITEBUFFER1
- ld a, [W_SPRITELOADFLAGS] ; wd0a8
+ ld a, [W_SPRITELOADFLAGS]
bit 0, a
jr z, .useSpriteBuffer1 ; check which buffer to use
ld hl, S_SPRITEBUFFER2
.useSpriteBuffer1
call StoreSpriteOutputPointer
- ld a, [W_SPRITELOADFLAGS] ; wd0a8
+ ld a, [W_SPRITELOADFLAGS]
bit 1, a
jr z, .startDecompression ; check if last iteration
call ReadNextInputBit ; if last chunk, read 1-2 bit unpacking mode
@@ -192,12 +192,12 @@ MoveToNextBufferPosition:: ; 24ce (0:24ce)
pop hl
xor a
ld [W_SPRITECURPOSX], a
- ld a, [W_SPRITELOADFLAGS] ; wd0a8
+ ld a, [W_SPRITELOADFLAGS]
bit 1, a
jr nz, .done ; test if there is one more sprite to go
xor $1
set 1, a
- ld [W_SPRITELOADFLAGS], a ; wd0a8
+ ld [W_SPRITELOADFLAGS], a
jp UncompressSpriteDataLoop
.done
jp UnpackSprite
@@ -535,8 +535,13 @@ ReverseNybble:: ; 272d (0:272d)
ret
; resets sprite buffer pointers to buffer 1 and 2, depending on W_SPRITELOADFLAGS
+<<<<<<< HEAD
ResetSpriteBufferPointers:: ; 2737 (0:2737)
ld a, [W_SPRITELOADFLAGS] ; wd0a8
+=======
+ResetSpriteBufferPointers:: ; 2841 (0:2841)
+ ld a, [W_SPRITELOADFLAGS]
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
bit 0, a
jr nz, .buffer2Selected
ld de, S_SPRITEBUFFER1
diff --git a/home/predef.asm b/home/predef.asm
index 07188019..5d879ddc 100644
--- a/home/predef.asm
+++ b/home/predef.asm
@@ -14,7 +14,7 @@ Predef:: ; 3eb4 (0:3eb4)
push af
ld a, BANK(GetPredefPointer)
ld [H_LOADEDROMBANK], a
- ld [$2000], a
+ ld [MBC1RomBank], a
call GetPredefPointer
diff --git a/home/text.asm b/home/text.asm
index c2c224e3..fcb1d439 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -65,20 +65,20 @@ Char4ETest:: ; 172d (0:172d)
ld a,[hFlags_0xFFFA]
bit 2,a
jr z,.next2
- ld bc,$14
+ ld bc,SCREEN_WIDTH
.next2
pop hl
add hl,bc
push hl
- jp Next17B6 ; 17b6
+ jp PlaceNextChar_inc ; 17b6
.next
cp $4F
jr nz,.next3
pop hl
- hlCoord 1, 16
+ coord hl, 1, 16
push hl
- jp Next17B6
+ jp PlaceNextChar_inc
.next3 ; Check against a dictionary
and a
@@ -123,7 +123,7 @@ Char4ETest:: ; 172d (0:172d)
jp z,Char5A
ld [hli],a
call PrintLetterDelay
-Next17B6:: ; 17b6 (0:17b6)
+PlaceNextChar_inc:: ; 17b6 (0:17b6)
inc de
jp PlaceNextChar
@@ -207,7 +207,7 @@ MonsterNameCharsCommon:: ; 1a37 (0:1a37)
ld de,wBattleMonNick ; player active monster name
jr FinishDTE
-.Enemy ; 1A40
+.Enemy
; print “Enemy ”
ld de,Char5AText
call PlaceString
@@ -272,7 +272,7 @@ Char58:: ; 1863 (0:1863)
Next1870:: ; 1870 (0:1870)
call ProtectedDelay3 ; 1913
call ManualTextScroll ; 388e
- ld a,$7F ; space
+ ld a, " " ; space
Coorda 18, 16
Char57:: ; 1aad (0:1aad)
pop hl
@@ -289,14 +289,14 @@ Char51:: ; 1882 (0:1882)
Coorda 18, 16
call ProtectedDelay3
call ManualTextScroll
- hlCoord 1, 13
- ld bc,$0412
+ coord hl, 1, 13
+ lb bc, 4, 18
call ClearScreenArea
- ld c,$14
+ ld c,20
call DelayFrames
pop de
- hlCoord 1, 14
- jp Next17B6
+ coord hl, 1, 14
+ jp PlaceNextChar_inc
Char49:: ; 18a3 (0:18a3)
ld a,[hFlags_0xFFFA]
@@ -311,16 +311,16 @@ Char49:: ; 18a3 (0:18a3)
Coorda 18, 16
call ProtectedDelay3
call ManualTextScroll
- hlCoord 1, 10
- ld bc,$0712
+ coord hl, 1, 10
+ lb bc, 7, 18
call ClearScreenArea
- ld c,$14
+ ld c,20
call DelayFrames
pop de
pop hl
- hlCoord 1, 11
+ coord hl, 1, 11
push hl
- jp Next17B6
+ jp PlaceNextChar_inc
Char4B:: ; 18d1 (0:18d1)
ld a,$EE
@@ -329,30 +329,30 @@ Char4B:: ; 18d1 (0:18d1)
push de
call ManualTextScroll
pop de
- ld a,$7F
+ ld a, " "
Coorda 18, 16
;fall through
Char4C:: ; 18e3 (0:18e3)
push de
call Next18F1 ; 18f1
call Next18F1
- hlCoord 1, 16
+ coord hl, 1, 16
pop de
- jp Next17B6
+ jp PlaceNextChar_inc
Next18F1:: ; 18f1 (0:18f1)
- hlCoord 0, 14
- deCoord 0, 13
- ld b,$3C
+ coord hl, 0, 14
+ coord de, 0, 13
+ ld b, 60
.next
ld a,[hli]
ld [de],a
inc de
dec b
jr nz,.next
- hlCoord 1, 16
- ld a,$7F
- ld b,$12
+ coord hl, 1, 16
+ ld a, " "
+ ld b,SCREEN_WIDTH - 2
.next2
ld [hli],a
dec b
@@ -374,24 +374,24 @@ ProtectedDelay3:: ; 1913 (0:1913)
ret
TextCommandProcessor:: ; 1919 (0:1919)
- ld a,[wd358]
+ ld a,[wLetterPrintingDelayFlags]
push af
set 1,a
ld e,a
ld a,[$fff9]
xor e
- ld [wd358],a
+ ld [wLetterPrintingDelayFlags],a
ld a,c
- ld [wcc3a],a
+ ld [wUnusedCC3A],a
ld a,b
- ld [wcc3b],a
+ ld [wUnusedCC3B],a
NextTextCommand:: ; 192e (0:192e)
ld a,[hli]
cp a, "@" ; terminator
jr nz,.doTextCommand
pop af
- ld [wd358],a
+ ld [wLetterPrintingDelayFlags],a
ret
.doTextCommand
push hl
@@ -493,10 +493,10 @@ TextCommand02:: ; 197e (0:197e)
TextCommand03:: ; 1990 (0:1990)
pop hl
ld a,[hli]
- ld [wcc3a],a
+ ld [wUnusedCC3A],a
ld c,a
ld a,[hli]
- ld [wcc3b],a
+ ld [wUnusedCC3B],a
ld b,a
jp NextTextCommand
@@ -505,7 +505,7 @@ TextCommand03:: ; 1990 (0:1990)
; (no arguments)
TextCommand05:: ; 199e (0:199e)
pop hl
- bcCoord 1, 16 ; address of second line of dialogue text box
+ coord bc, 1, 16 ; address of second line of dialogue text box
jp NextTextCommand
; blink arrow and wait for A or B to be pressed
@@ -534,7 +534,7 @@ TextCommand07:: ; 19c0 (0:19c0)
call Next18F1 ; scroll up text
call Next18F1
pop hl
- bcCoord 1, 16 ; address of second line of dialogue text box
+ coord bc, 1, 16 ; address of second line of dialogue text box
jp NextTextCommand
; execute asm inline
@@ -567,7 +567,7 @@ TextCommand09:: ; 19d8 (0:19d8)
ld a,b
and a,$f0
swap a
- set 6,a
+ set BIT_LEFT_ALIGN,a
ld b,a
call PrintNumber
ld b,h
@@ -582,7 +582,7 @@ TextCommand0A:: ; 19f6 (0:19f6)
push bc
call Joypad
ld a,[hJoyHeld]
- and a,%00000011 ; A and B buttons
+ and a,A_BUTTON | B_BUTTON
jr nz,.skipDelay
ld c,30
call DelayFrames
@@ -660,7 +660,7 @@ TextCommand0C:: ; 1a51 (0:1a51)
call Joypad
pop de
ld a,[hJoyHeld] ; joypad state
- and a,%00000011 ; is A or B button pressed?
+ and a,A_BUTTON | B_BUTTON
jr nz,.skipDelay ; if so, skip the delay
ld c,10
call DelayFrames
@@ -696,7 +696,7 @@ TextCommand17:: ; 1a7c (0:1a7c)
ld d,a
ld a,[hli]
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
push hl
ld l,e
ld h,d
@@ -704,7 +704,7 @@ TextCommand17:: ; 1a7c (0:1a7c)
pop hl
pop af
ld [H_LOADEDROMBANK],a
- ld [$2000],a
+ ld [MBC1RomBank],a
jp NextTextCommand
TextCommandJumpTable:: ; 1a9a (0:1a9a)
diff --git a/home/vblank.asm b/home/vblank.asm
index 66158e50..8eff5bab 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -11,14 +11,14 @@ VBlank:: ; 1de5 (0:1de5)
ld [rVBK], a ; reset vram bank to 0
ld a, [H_LOADEDROMBANK]
- ld [wd122], a
+ ld [wVBlankSavedROMBank], a
ld a, [hSCX]
ld [rSCX], a
ld a, [hSCY]
ld [rSCY], a
- ld a, [wd0a0]
+ ld a, [wDisableVBlankWYUpdate]
and a
jr nz, .ok
ld a, [hWY]
@@ -27,7 +27,7 @@ VBlank:: ; 1de5 (0:1de5)
call AutoBgMapTransfer
call VBlankCopyBgMap
- call RedrawExposedScreenEdge
+ call RedrawRowOrColumn
call VBlankCopy
call VBlankCopyDouble
call UpdateMovingBgTiles
@@ -45,19 +45,18 @@ VBlank:: ; 1de5 (0:1de5)
ld a, [H_VBLANKOCCURRED]
and a
- jr z, .vblanked
+ jr z, .skipZeroing
xor a
ld [H_VBLANKOCCURRED], a
-.vblanked
+.skipZeroing
ld a, [H_FRAMECOUNTER]
and a
- jr z, .decced
+ jr z, .skipDec
dec a
ld [H_FRAMECOUNTER], a
-.decced
- call Func_27c2
+ call FadeOutAudio
ld a, $8
call BankswitchCommon
@@ -69,7 +68,7 @@ VBlank:: ; 1de5 (0:1de5)
call SerialFunction ; add this
- ld a, [wd122]
+ ld a, [wVBlankSavedROMBank]
ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a
diff --git a/home/vcopy.asm b/home/vcopy.asm
index 4ce297d2..da85e3e7 100644
--- a/home/vcopy.asm
+++ b/home/vcopy.asm
@@ -33,32 +33,35 @@ ClearBgMap:: ; 1cf0 (0:1cf0)
jr nz,.loop
ret
-; When the player takes a step, a row or column of 2x2 tile blocks at the edge
-; of the screen toward which they moved is exposed and has to be redrawn.
-; This function does the redrawing.
-RedrawExposedScreenEdge:: ; 1ada (0:1ada)
- ld a,[H_SCREENEDGEREDRAW]
+; This function redraws a BG row of height 2 or a BG column of width 2.
+; One of its main uses is redrawing the row or column that will be exposed upon
+; scrolling the BG when the player takes a step. Redrawing only the exposed
+; row or column is more efficient than redrawing the entire screen.
+; However, this function is also called repeatedly to redraw the whole screen
+; when necessary. It is also used in trade animation and elevator code.
+RedrawRowOrColumn:: ; 1ada (0:1ada)
+ ld a,[hRedrawRowOrColumnMode]
and a
ret z
ld b,a
xor a
- ld [H_SCREENEDGEREDRAW],a
+ ld [hRedrawRowOrColumnMode],a
dec b
jr nz,.redrawRow
.redrawColumn
- ld hl,wScreenEdgeTiles
- ld a,[H_SCREENEDGEREDRAWADDR]
+ ld hl,wRedrawRowOrColumnSrcTiles
+ ld a,[hRedrawRowOrColumnDest]
ld e,a
- ld a,[H_SCREENEDGEREDRAWADDR + 1]
+ ld a,[hRedrawRowOrColumnDest + 1]
ld d,a
- ld c,18 ; screen height
+ ld c,SCREEN_HEIGHT
.loop1
ld a,[hli]
ld [de],a
inc de
ld a,[hli]
ld [de],a
- ld a,31
+ ld a,BG_MAP_WIDTH - 1
add e
ld e,a
jr nc,.noCarry
@@ -72,23 +75,24 @@ RedrawExposedScreenEdge:: ; 1ada (0:1ada)
dec c
jr nz,.loop1
xor a
- ld [H_SCREENEDGEREDRAW],a
+ ld [hRedrawRowOrColumnMode],a
ret
.redrawRow
- ld hl,wScreenEdgeTiles
- ld a,[H_SCREENEDGEREDRAWADDR]
+ ld hl,wRedrawRowOrColumnSrcTiles
+ ld a,[hRedrawRowOrColumnDest]
ld e,a
- ld a,[H_SCREENEDGEREDRAWADDR + 1]
+ ld a,[hRedrawRowOrColumnDest + 1]
ld d,a
push de
- call .drawHalf ; draw upper half
+ call .DrawHalf ; draw upper half
pop de
- ld a,32 ; width of VRAM background map
+ ld a,BG_MAP_WIDTH ; width of VRAM background map
add e
ld e,a
- ; draw lower half
-.drawHalf
- ld c,10
+ ; fall through and draw lower half
+
+.DrawHalf
+ ld c,SCREEN_WIDTH / 2
.loop2
ld a,[hli]
ld [de],a
@@ -113,7 +117,7 @@ RedrawExposedScreenEdge:: ; 1ada (0:1ada)
; background per V-blank. It cycles through which third it draws.
; This transfer is turned off when walking around the map, but is turned
; on when talking to sprites, battling, using menus, etc. This is because
-; the above function, RedrawExposedScreenEdge, is used when walking to
+; the above function, RedrawRowOrColumn, is used when walking to
; improve efficiency.
AutoBgMapTransfer:: ; 1b30 (0:1b30)
ld a,[H_AUTOBGTRANSFERENABLED]
@@ -126,7 +130,7 @@ AutoBgMapTransfer:: ; 1b30 (0:1b30)
dec a
jr z,.transferMiddleThird
.transferBottomThird
- hlCoord 0, 12
+ coord hl, 0, 12
ld sp,hl
ld a,[H_AUTOBGTRANSFERDEST + 1]
ld h,a
@@ -137,7 +141,7 @@ AutoBgMapTransfer:: ; 1b30 (0:1b30)
xor a ; TRANSFERTOP
jr .doTransfer
.transferTopThird
- hlCoord 0, 0
+ coord hl, 0, 0
ld sp,hl
ld a,[H_AUTOBGTRANSFERDEST + 1]
ld h,a
@@ -146,7 +150,7 @@ AutoBgMapTransfer:: ; 1b30 (0:1b30)
ld a,TRANSFERMIDDLE
jr .doTransfer
.transferMiddleThird
- hlCoord 0, 6
+ coord hl, 0, 6
ld sp,hl
ld a,[H_AUTOBGTRANSFERDEST + 1]
ld h,a
@@ -283,12 +287,11 @@ VBlankCopyDouble:: ; 1bd1 (0:1bd1)
VBlankCopy:: ; 1c21 (0:1c21)
-; Copy [H_VBCOPYSIZE] 2bpp tiles
+; Copy [H_VBCOPYSIZE] 2bpp tiles (or 16 * [H_VBCOPYSIZE] tile map entries)
; from H_VBCOPYSRC to H_VBCOPYDEST.
-; Source and destination addresses
-; are updated, so transfer can
-; continue in subsequent calls.
+; Source and destination addresses are updated,
+; so transfer can continue in subsequent calls.
ld a, [H_VBCOPYSIZE]
and a
@@ -354,21 +357,23 @@ UpdateMovingBgTiles:: ; 1c75 (0:1c75)
cp $90 ; check if not in vblank period??? (maybe if vblank is too long)
ret c
- ld a, [$ffd8]
+ ld a, [hMovingBGTilesCounter1]
inc a
- ld [$ffd8], a
- cp $14
+ ld [hMovingBGTilesCounter1], a
+ cp 20
ret c
- cp $15
+ cp 21
jr z, .flower
+; water
+
ld hl, vTileset + $14 * $10
ld c, $10
- ld a, [wd085]
+ ld a, [wMovingBGTilesCounter2]
inc a
and 7
- ld [wd085], a
+ ld [wMovingBGTilesCounter2], a
and 4
jr nz, .left
@@ -391,14 +396,14 @@ UpdateMovingBgTiles:: ; 1c75 (0:1c75)
ret nc
; if in a cave, no flower animations
xor a
- ld [$ffd8], a
+ ld [hMovingBGTilesCounter1], a
ret
.flower
xor a
- ld [$ffd8], a
+ ld [hMovingBGTilesCounter1], a
- ld a, [wd085]
+ ld a, [wMovingBGTilesCounter2]
and 3
cp 2
ld hl, FlowerTile1
diff --git a/hram.asm b/hram.asm
index f1802f08..29d38ecb 100644
--- a/hram.asm
+++ b/hram.asm
@@ -1,19 +1,36 @@
-
-H_SPRITEWIDTH EQU $FF8B ; in tiles
-H_SPRITEINTERLACECOUNTER EQU $FF8B
-H_SPRITEHEIGHT EQU $FF8C ; in tiles
-H_SPRITEOFFSET EQU $FF8D
-
hSoftReset EQU $FF8A
; Initialized to 16.
; Decremented each input iteration if the player
; presses the reset sequence (A+B+SEL+START).
; Soft reset when 0 is reached.
+; base tile ID to which offsets are added
hBaseTileID EQU $FF8B
+; 3-byte BCD number
hItemPrice EQU $FF8B
+hDexWeight EQU $FF8B
+
+hWarpDestinationMap EQU $FF8B
+
+hOAMTile EQU $FF8B
+
+hROMBankTemp EQU $FF8B
+
+hPreviousTileset EQU $FF8B
+
+hEastWestConnectedMapWidth EQU $FF8B
+
+hSlideAmount EQU $FF8B
+
+hRLEByteValue EQU $FF8B
+
+H_SPRITEWIDTH EQU $FF8B ; in tiles
+H_SPRITEINTERLACECOUNTER EQU $FF8B
+H_SPRITEHEIGHT EQU $FF8C ; in tiles
+H_SPRITEOFFSET EQU $FF8D
+
; counters for blinking down arrow
H_DOWNARROWBLINKCNT1 EQU $FF8B
H_DOWNARROWBLINKCNT2 EQU $FF8C
@@ -21,11 +38,66 @@ H_DOWNARROWBLINKCNT2 EQU $FF8C
H_SPRITEDATAOFFSET EQU $FF8B
H_SPRITEINDEX EQU $FF8C
+hMapStride EQU $FF8B
+hMapWidth EQU $FF8C
+
+hNorthSouthConnectionStripWidth EQU $FF8B
+hNorthSouthConnectedMapWidth EQU $FF8C
+
; DisplayTextID's argument
hSpriteIndexOrTextID EQU $FF8C
hPartyMonIndex EQU $FF8C
+; the total number of tiles being shifted each time the pic slides by one tile
+hSlidingRegionSize EQU $FF8C
+
+; 2 bytes
+hEnemySpeed EQU $FF8D
+
+hVRAMSlot EQU $FF8D
+
+hFourTileSpriteCount EQU $FF8E
+
+; -1 = left
+; 0 = right
+hSlideDirection EQU $FF8D
+
+hSpriteFacingDirection EQU $FF8D
+
+hSpriteMovementByte2 EQU $FF8D
+
+hSpriteImageIndex EQU $FF8D
+
+hLoadSpriteTemp1 EQU $FF8D
+hLoadSpriteTemp2 EQU $FF8E
+
+hHalveItemPrices EQU $FF8E
+
+hSpriteOffset2 EQU $FF8F
+
+hOAMBufferOffset EQU $FF90
+
+hSpriteScreenX EQU $FF91
+hSpriteScreenY EQU $FF92
+
+hTilePlayerStandingOn EQU $FF93
+
+hSpritePriority EQU $FF94
+
+; 2 bytes
+hSignCoordPointer EQU $FF95
+
+hNPCMovementDirections2Index EQU $FF95
+
+; CalcPositionOfPlayerRelativeToNPC
+hNPCSpriteOffset EQU $FF95
+
+; temp value used when swapping bytes
+hSwapTemp EQU $FF95
+
+hExperience EQU $FF96 ; 3 bytes, big endian
+
; Multiplcation and division variables are meant
; to overlap for back-to-back usage. Big endian.
@@ -48,9 +120,42 @@ H_NUMTOPRINT EQU $FF96 ; 3 bytes
H_POWEROFTEN EQU $FF99 ; 3 bytes
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes
+; distance in steps between NPC and player
+hNPCPlayerYDistance EQU $FF95
+hNPCPlayerXDistance EQU $FF96
+
+hFindPathNumSteps EQU $FF97
+
+; bit 0: set when the end of the path's Y coordinate matches the target's
+; bit 1: set when the end of the path's X coordinate matches the target's
+; When both bits are set, the end of the path is at the target's position
+; (i.e. the path has been found).
+hFindPathFlags EQU $FF98
+
+hFindPathYProgress EQU $FF99
+hFindPathXProgress EQU $FF9A
+
+; 0 = from player to NPC
+; 1 = from NPC to player
+hNPCPlayerRelativePosPerspective EQU $FF9B
+
+; bit 0:
+; 0 = target is to the south or aligned
+; 1 = target is to the north
+; bit 1:
+; 0 = target is to the east or aligned
+; 1 = target is to the west
+hNPCPlayerRelativePosFlags EQU $FF9D
+
+; some code zeroes this for no reason when writing a coin amount
+hUnusedCoinsByte EQU $FF9F
+
hMoney EQU $FF9F ; 3-byte BCD number
hCoins EQU $FFA0 ; 2-byte BCD number
+hDivideBCDDivisor EQU $FFA2 ; 3-byte BCD number
+hDivideBCDQuotient EQU $FFA2 ; 3-byte BCD number
+
hSerialReceivedNewData EQU $FFA9
; $01 = using external clock
@@ -77,7 +182,9 @@ hJoy5 EQU $FFB5
hJoy6 EQU $FFB6
hJoy7 EQU $FFB7
-H_LOADEDROMBANK EQU $FFB8
+H_LOADEDROMBANK EQU $FFB8
+
+hSavedROMBank EQU $FFB9
; is automatic background transfer during V-blank enabled?
; if nonzero, yes
@@ -135,12 +242,12 @@ H_VBCOPYDOUBLEDEST EQU $FFCE
; 00 = no redraw
; 01 = redraw column
; 02 = redraw row
-H_SCREENEDGEREDRAW EQU $FFD0
+hRedrawRowOrColumnMode EQU $FFD0
-REDRAWCOL EQU 1
-REDRAWROW EQU 2
+REDRAW_COL EQU 1
+REDRAW_ROW EQU 2
-H_SCREENEDGEREDRAWADDR EQU $FFD1
+hRedrawRowOrColumnDest EQU $FFD1
hRandomAdd EQU $FFD3
hRandomSub EQU $FFD4
@@ -158,14 +265,58 @@ H_VBLANKOCCURRED EQU $FFD6
; this is often set to 00 in order to turn off water and flower BG tile animations
hTilesetType EQU $FFD7
+hMovingBGTilesCounter1 EQU $FFD8
+
H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
+hItemCounter EQU $FFDB
+
+hGymGateIndex EQU $FFDB
+
+hGymTrashCanRandNumMask EQU $FFDB
+
+hDexRatingNumMonsSeen EQU $FFDB
+hDexRatingNumMonsOwned EQU $FFDC
+
+; $00 = bag full
+; $01 = got item
+; $80 = didn't meet required number of owned mons
+; $FF = player cancelled
+hOaksAideResult EQU $FFDB
+
+hOaksAideRequirement EQU $FFDB ; required number of owned mons
+hOaksAideRewardItem EQU $FFDC
+hOaksAideNumMonsOwned EQU $FFDD
+
+hItemToRemoveID EQU $FFDB
+hItemToRemoveIndex EQU $FFDC
+
+hVendingMachineItem EQU $FFDB
+hVendingMachinePrice EQU $FFDC ; 3-byte BCD number
+
+; the first tile ID in a sequence of tile IDs that increase by 1 each step
+hStartTileID EQU $FFE1
+
+hNewPartyLength EQU $FFE4
+
+hDividend2 EQU $FFE5
+hDivisor2 EQU $FFE6
+hQuotient2 EQU $FFE7
+
+hSpriteVRAMSlotAndFacing EQU $FFE9
+
+hCoordsInFrontOfPlayerMatch EQU $FFEA
+
+hSpriteAnimFrameCounter EQU $FFEA
+
H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
hLCDCPointer EQU $FFF4
hJoyInput EQU $FFF5
+hFieldMoveMonMenuTopMenuItemX EQU $FFF7
+
hReadJoypad EQU $FFF8 ; 0 to read joypad, anything else skips joypad check
; written to in palettes.asm
diff --git a/macros.asm b/macros.asm
index 4836bc93..76951248 100644
--- a/macros.asm
+++ b/macros.asm
@@ -13,6 +13,10 @@ dex EQUS "db $5f, $50" ; End a Pokedex entry.
percent EQUS "* $ff / 100"
+lb: MACRO ; r, hi, lo
+ ld \1, (\2) << 8 + ((\3) & $ff)
+ ENDM
+
; Constant enumeration is useful for monsters, items, moves, etc.
const_def: MACRO
@@ -93,43 +97,37 @@ callab: MACRO
call Bankswitch
ENDM
-;\1 = r
-;\2 = X
-;\3 = Y
-coord: MACRO
- ld \1, wTileMap + 20 * \3 + \2
+jpba: MACRO
+ ld b, BANK(\1)
+ ld hl, \1
+ jp Bankswitch
ENDM
-
+
+jpab: MACRO
+ ld hl, \1
+ ld b, BANK(\1)
+ jp Bankswitch
+ ENDM
+
bcd2: MACRO
- dn ((\1) / 1000) % 10, ((\1) / 100) % 10
- dn ((\1) / 10) % 10, (\1) % 10
- ENDM
+ dn ((\1) / 1000) % 10, ((\1) / 100) % 10
+ dn ((\1) / 10) % 10, (\1) % 10
+ ENDM
bcd3: MACRO
- dn ((\1) / 100000) % 10, ((\1) / 10000) % 10
- dn ((\1) / 1000) % 10, ((\1) / 100) % 10
- dn ((\1) / 10) % 10, (\1) % 10
- ENDM
+ dn ((\1) / 100000) % 10, ((\1) / 10000) % 10
+ dn ((\1) / 1000) % 10, ((\1) / 100) % 10
+ dn ((\1) / 10) % 10, (\1) % 10
+ ENDM
coins equs "bcd2"
money equs "bcd3"
-;\1 = X
-;\2 = Y
-hlCoord: MACRO
- ld hl, wTileMap + 20 * \2 + \1
- ENDM
-
-;\1 = X
-;\2 = Y
-deCoord: MACRO
- ld de, wTileMap + 20 * \2 + \1
- ENDM
-
-;\1 = X
-;\2 = Y
-bcCoord: MACRO
- ld bc, wTileMap + 20 * \2 + \1
+;\1 = r
+;\2 = X
+;\3 = Y
+coord: MACRO
+ ld \1, wTileMap + 20 * \3 + \2
ENDM
;\1 = X
@@ -150,6 +148,14 @@ dwCoord: MACRO
dw wTileMap + 20 * \2 + \1
ENDM
+;\1 = r
+;\2 = X
+;\3 = Y
+;\4 = map width
+overworldMapCoord: MACRO
+ ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2)))
+ ENDM
+
;\1 = Map Width
;\2 = Rows above (Y-blocks)
;\3 = X movement (X-blocks)
@@ -181,7 +187,7 @@ IMAP: MACRO ; imap mapid_less_than,x-coordinate,y-coordinate,textpointer
; nybble: y-coordinate
; nybble: x-coordinate
; word : pointer to map name
- db \1
+ db \1 + 1
db \2 + \3 << 4
dw \4
ENDM
@@ -246,6 +252,10 @@ TX_BCD: MACRO
db \2
ENDM
+TX_ASM: MACRO
+ db $08
+ ENDM
+
; Predef macro.
add_predef: MACRO
\1Predef::
@@ -276,7 +286,7 @@ add_tx_pre: MACRO
ENDM
tx_pre_id: MACRO
- ld a, (\1_id - TextPredefs) / 2
+ ld a, (\1_id - TextPredefs) / 2 + 1
ENDM
tx_pre: MACRO
@@ -588,75 +598,103 @@ endchannel: MACRO
ENDM
-;\1 (byte) = connected map id
-;\2 (byte) = connected map width
-;\3 (byte) = connected map height
-;\4 (byte) = x movement of connection strip
-;\5 (byte) = connection strip offset
-;\6 (byte) = width of connection strip
-;\7 (word) = connected map blocks pointer
+;\1 (byte) = current map id
+;\2 (byte) = connected map id
+;\3 (byte) = x movement of connection strip
+;\4 (byte) = connection strip offset
+;\5 (word) = connected map blocks pointer
NORTH_MAP_CONNECTION: MACRO
- db \1 ; map id
- dw \7 + (\2 * (\3 - 3)) + \5; "Connection Strip" location
- dw wOverworldMap + 3 + \4 ; current map position
- db \6 ; width of connection strip
- db \2 ; map width
- db (\3 * 2) - 1 ; y alignment (y coordinate of player when entering map)
- db (\4 - \5) * -2 ; x alignment (x coordinate of player when entering map)
- dw wOverworldMap + 1 + (\3 * (\2 + 6)) ; window (position of the upper left block after entering the map)
-ENDM
-
-;\1 (byte) = connected map id
-;\2 (byte) = connected map width
-;\3 (byte) = x movement of connection strip
-;\4 (byte) = connection strip offset
-;\5 (byte) = width of connection strip
-;\6 (word) = connected map blocks pointer
-;\7 (byte) = current map width
-;\8 (byte) = current map height
+ db \2 ; map id
+ dw \5 + (\2_WIDTH * (\2_HEIGHT - 3)) + \4; "Connection Strip" location
+ dw wOverworldMap + 3 + \3 ; current map position
+ IF (\1_WIDTH < \2_WIDTH)
+ db \1_WIDTH - \3 + 3 ; width of connection strip
+ ELSE
+ db \2_WIDTH - \4 ; width of connection strip
+ ENDC
+ db \2_WIDTH ; map width
+ db (\2_HEIGHT * 2) - 1 ; y alignment (y coordinate of player when entering map)
+ db (\3 - \4) * -2 ; x alignment (x coordinate of player when entering map)
+ dw wOverworldMap + 1 + (\2_HEIGHT * (\2_WIDTH + 6)) ; window (position of the upper left block after entering the map)
+ENDM
+
+;\1 (byte) = current map id
+;\2 (byte) = connected map id
+;\3 (byte) = x movement of connection strip
+;\4 (byte) = connection strip offset
+;\5 (word) = connected map blocks pointer
+;\6 (flag) = add 3 to width of connection strip (why?)
SOUTH_MAP_CONNECTION: MACRO
- db \1 ; map id
- dw \6 + \4 ; "Conection Strip" location
- dw wOverworldMap + 3 + (\8 + 3) * (\7 + 6) + \3 ; current map positoin
- db \5 ; width of connection strip
- db \2 ; map width
+ db \2 ; map id
+ dw \5 + \4 ; "Conection Strip" location
+ dw wOverworldMap + 3 + (\1_HEIGHT + 3) * (\1_WIDTH + 6) + \3 ; current map position
+ IF (\1_WIDTH < \2_WIDTH)
+ IF (_NARG > 5)
+ db \1_WIDTH - \3 + 3 ; width of connection strip
+ ELSE
+ db \1_WIDTH - \3 ; width of connection strip
+ ENDC
+ ELSE
+ db \2_WIDTH - \4 ; width of connection strip
+ ENDC
+ db \2_WIDTH ; map width
db 0 ; y alignment (y coordinate of player when entering map)
db (\3 - \4) * -2 ; x alignment (x coordinate of player when entering map)
- dw wOverworldMap + 7 + \2 ; window (position of the upper left block after entering the map)
+ dw wOverworldMap + 7 + \2_WIDTH ; window (position of the upper left block after entering the map)
ENDM
-;\1 (byte) = connected map id
-;\2 (byte) = connected map width
-;\3 (byte) = y movement of connection strip
-;\4 (byte) = connection strip offset
-;\5 (byte) = height of connection strip
-;\6 (word) = connected map blocks pointer
-;\7 (byte) = current map width
-EAST_MAP_CONNECTION: MACRO
- db \1 ; map id
- dw \6 + (\2 * \4) ; "Connection Strip" location
- dw wOverworldMap - 3 + (\7 + 6) * (\3 + 4) ; current map position
- db \5 ; height of connection strip
- db \2 ; map width
+;\1 (byte) = current map id
+;\2 (byte) = connected map id
+;\3 (byte) = y movement of connection strip
+;\4 (byte) = connection strip offset
+;\5 (word) = connected map blocks pointer
+WEST_MAP_CONNECTION: MACRO
+ db \2 ; map id
+ dw \5 + (\2_WIDTH * \4) + \2_WIDTH - 3 ; "Connection Strip" location
+ dw wOverworldMap + (\1_WIDTH + 6) * (\3 + 3) ; current map position
+ IF (\1_HEIGHT < \2_HEIGHT)
+ db \1_HEIGHT - \3 + 3 ; height of connection strip
+ ELSE
+ db \2_HEIGHT - \4 ; height of connection strip
+ ENDC
+ db \2_WIDTH ; map width
db (\3 - \4) * -2 ; y alignment
- db 0 ; x alignment
- dw wOverworldMap + 7 + \2 ; window (position of the upper left block after entering the map)
+ db (\2_WIDTH * 2) - 1 ; x alignment
+ dw wOverworldMap + 6 + (2 * \2_WIDTH) ; window (position of the upper left block after entering the map)
ENDM
-;\1 (byte) = connected map id
-;\2 (byte) = connected map width
-;\3 (byte) = y movement of connection strip
-;\4 (byte) = connection strip offset
-;\5 (byte) = height of connection strip
-;\6 (word) = connected map blocks pointer
-;\7 (byte) = current map width
-WEST_MAP_CONNECTION: MACRO
- db \1 ; map id
- dw \6 + (\2 * \4) + \2 - 3 ; "Connection Strip" location
- dw wOverworldMap + (\7 + 6) * (\3 + 3) ; current map position
- db \5 ; height of connection strip
- db \2 ; map width
+;\1 (byte) = current map id
+;\2 (byte) = connected map id
+;\3 (byte) = y movement of connection strip
+;\4 (byte) = connection strip offset
+;\5 (word) = connected map blocks pointer
+;\6 (flag) = add 3 to height of connection strip (why?)
+EAST_MAP_CONNECTION: MACRO
+ db \2 ; map id
+ dw \5 + (\2_WIDTH * \4) ; "Connection Strip" location
+ dw wOverworldMap - 3 + (\1_WIDTH + 6) * (\3 + 4) ; current map position
+ IF (\1_HEIGHT < \2_HEIGHT)
+ IF (_NARG > 5)
+ db \1_HEIGHT - \3 + 3 ; height of connection strip
+ ELSE
+ db \1_HEIGHT - \3 ; height of connection strip
+ ENDC
+ ELSE
+ db \2_HEIGHT - \4 ; height of connection strip
+ ENDC
+ db \2_WIDTH ; map width
db (\3 - \4) * -2 ; y alignment
- db (\2 * 2) - 1 ; x alignment
- dw wOverworldMap + 6 + (2 * \2) ; window (position of the upper left block after entring the map)
+ db 0 ; x alignment
+ dw wOverworldMap + 7 + \2_WIDTH ; window (position of the upper left block after entering the map)
+ENDM
+
+tmlearn: MACRO
+x = 0
+ rept _NARG
+if \1 != 0
+x = x | (1 << ((\1 - 1) % 8))
+endc
+ shift
+ endr
+ db x
ENDM
diff --git a/main.asm b/main.asm
index bac33564..57cc2438 100755
--- a/main.asm
+++ b/main.asm
@@ -32,18 +32,18 @@ SonyText: db "SONY@"
LoadMonData_:
-; Load monster [wWhichPokemon] from list [wcc49]:
+; Load monster [wWhichPokemon] from list [wMonDataLocation]:
; 0: partymon
; 1: enemymon
; 2: boxmon
; 3: daycaremon
; Return monster id at wcf91 and its data at wLoadedMon.
-; Also load base stats at W_MONHDEXNUM for convenience.
+; Also load base stats at W_MONHEADER for convenience.
ld a, [wDayCareMonSpecies]
ld [wcf91], a
- ld a, [wcc49]
- cp 3
+ ld a, [wMonDataLocation]
+ cp DAYCARE_DATA
jr z, .GetMonHeader
ld a, [wWhichPokemon]
@@ -57,8 +57,8 @@ LoadMonData_:
ld hl, wPartyMons
ld bc, wPartyMon2 - wPartyMon1
- ld a, [wcc49]
- cp 1
+ ld a, [wMonDataLocation]
+ cp ENEMY_PARTY_DATA
jr c, .getMonEntry
ld hl, wEnemyMons
@@ -110,7 +110,7 @@ INCLUDE "engine/overworld/oam.asm"
INCLUDE "engine/oam_dma.asm"
PrintWaitingText:
- hlCoord 3, 10
+ coord hl, 3, 10
ld b, $1
ld c, $b
ld a, [W_ISINBATTLE]
@@ -121,7 +121,7 @@ PrintWaitingText:
.asm_4c17
call CableClub_TextBoxBorder
.asm_4c1a
- hlCoord 4, 11
+ coord hl, 4, 11
ld de, WaitingText
call PlaceString
ld c, 50
@@ -170,9 +170,9 @@ UpdateNonPlayerSprite:
ld a, [H_CURRENTSPRITEOFFSET]
cp b
jr nz, .unequal
- jp Func_5236
+ jp DoScriptedNPCMovement
.unequal
- jp Func_4ed1
+ jp UpdateNPCSprite
; This detects if the current sprite (whose offset is at H_CURRENTSPRITEOFFSET)
; is going to collide with another sprite by looping over the other sprites.
@@ -236,7 +236,7 @@ DetectCollisionBetweenSprites:
ld [hld], a ; zero [$c1ic] (directions in which collisions occurred)
ld a, [$ff91]
- ld [hld], a ; [$c1ib] = adjusted X coordiate
+ ld [hld], a ; [$c1ib] = adjusted X coordinate
ld a, [$ff90]
ld [hl], a ; [$c1ia] = adjusted Y coordinate
@@ -516,7 +516,7 @@ TestBattle:
ld a, 20
ld [W_CURENEMYLVL], a
xor a
- ld [wcc49], a
+ ld [wMonDataLocation], a
ld [W_CURMAP], a
call AddPartyMon
@@ -540,9 +540,9 @@ INCLUDE "engine/overworld/movement.asm"
INCLUDE "engine/cable_club.asm"
LoadTrainerInfoTextBoxTiles: ; 5ae6 (1:5ae6)
- ld de, TrainerInfoTextBoxTileGraphics ; $7b98
+ ld de, TrainerInfoTextBoxTileGraphics
ld hl, vChars2 + $760
- ld bc, (BANK(TrainerInfoTextBoxTileGraphics) << 8) +$09
+ lb bc, BANK(TrainerInfoTextBoxTileGraphics), (TrainerInfoTextBoxTileGraphicsEnd - TrainerInfoTextBoxTileGraphics) / $10
jp CopyVideoData
INCLUDE "engine/menu/main_menu.asm"
@@ -582,24 +582,24 @@ SpecialWarpIn: ; 62ce (1:62ce)
; gets the map ID, tile block map view pointer, tileset, and coordinates
LoadSpecialWarpData: ; 62ff (1:62ff)
ld a, [wd72d]
- cp BATTLE_CENTER
- jr nz, .notBattleCenter
- ld hl, BattleCenterSpec1
- ld a, [hSerialConnectionStatus]
- cp USING_INTERNAL_CLOCK ; which gameboy is clocking determines who is on the left and who is on the right
- jr z, .copyWarpData
- ld hl, BattleCenterSpec2
- jr .copyWarpData
-.notBattleCenter
cp TRADE_CENTER
jr nz, .notTradeCenter
ld hl, TradeCenterSpec1
ld a, [hSerialConnectionStatus]
- cp USING_INTERNAL_CLOCK
+ cp USING_INTERNAL_CLOCK ; which gameboy is clocking determines who is on the left and who is on the right
jr z, .copyWarpData
ld hl, TradeCenterSpec2
jr .copyWarpData
.notTradeCenter
+ cp COLOSSEUM
+ jr nz, .notColosseum
+ ld hl, ColosseumSpec1
+ ld a, [hSerialConnectionStatus]
+ cp USING_INTERNAL_CLOCK
+ jr z, .copyWarpData
+ ld hl, ColosseumSpec2
+ jr .copyWarpData
+.notColosseum
ld a, [wd732]
bit 1, a
jr nz, .notFirstMap
@@ -639,9 +639,9 @@ LoadSpecialWarpData: ; 62ff (1:62ff)
ld a, [wWhichDungeonWarp]
ld c, a
ld hl, DungeonWarpList
- ld de, $0
- ld a, $6
- ld [wd12f], a
+ ld de, 0
+ ld a, 6
+ ld [wDungeonWarpDataEntrySize], a
.dungeonWarpListLoop
ld a, [hli]
cp b
@@ -653,7 +653,7 @@ LoadSpecialWarpData: ; 62ff (1:62ff)
cp c
jr z, .matchedDungeonWarpID
.nextDungeonWarp
- ld a, [wd12f]
+ ld a, [wDungeonWarpDataEntrySize]
add e
ld e, a
jr .dungeonWarpListLoop
@@ -741,12 +741,12 @@ INCLUDE "engine/oak_speech2.asm"
; sets carry flag if there is enough money and unsets carry flag if not
SubtractAmountPaidFromMoney_: ; 6b21 (1:6b21)
ld de,wPlayerMoney
- ld hl,$ff9f ; total price of items
+ ld hl,hMoney ; total price of items
ld c,3 ; length of money in bytes
call StringCmp
ret c
ld de,wPlayerMoney + 2
- ld hl,$ffa1 ; total price of items
+ ld hl,hMoney + 2 ; total price of items
ld c,3 ; length of money in bytes
predef SubBCDPredef ; subtract total price from money
ld a,MONEY_BOX
@@ -760,7 +760,7 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
cp a,ITEMLISTMENU
jp nz,DisplayListMenuIDLoop ; only rearrange item list menus
push hl
- ld hl,wList
+ ld hl,wListPointer
ld a,[hli]
ld h,[hl]
ld l,a
@@ -806,7 +806,7 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
call DelayFrames
push hl
push de
- ld hl,wList
+ ld hl,wListPointer
ld a,[hli]
ld h,[hl]
ld l,a
@@ -868,13 +868,13 @@ HandleItemListSwapping: ; 6b44 (1:6b44)
jr .done
.combineItemSlots
ld [hl],a ; put the sum in the second item slot
- ld hl,wList
+ ld hl,wListPointer
ld a,[hli]
ld h,[hl]
ld l,a
dec [hl] ; decrease the number of items
ld a,[hl]
- ld [wd12a],a ; update number of items variable
+ ld [wListCount],a ; update number of items variable
cp a,1
jr nz,.skipSettingMaxMenuItemID
ld [wMaxMenuItem],a ; if the number of items is only one now, update the max menu item ID
@@ -948,27 +948,26 @@ DisplayTextIDInit: ; 7096 (1:7096)
ld a,[wAutoTextBoxDrawingControl]
bit 0,a
jr nz,.skipDrawingTextBoxBorder
- ld a,[$ff8c] ; text ID (or sprite ID)
+ ld a,[hSpriteIndexOrTextID] ; text ID (or sprite ID)
and a
jr nz,.notStartMenu
; if text ID is 0 (i.e. the start menu)
; Note that the start menu text border is also drawn in the function directly
; below this, so this seems unnecessary.
- ld a,[wd74b]
- bit 5,a ; does the player have the pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
; start menu with pokedex
- hlCoord 10, 0
+ coord hl, 10, 0
ld b,$0e
ld c,$08
jr nz,.drawTextBoxBorder
; start menu without pokedex
- hlCoord 10, 0
+ coord hl, 10, 0
ld b,$0c
ld c,$08
jr .drawTextBoxBorder
; if text ID is not 0 (i.e. not the start menu) then do a standard dialogue text box
.notStartMenu
- hlCoord 0, 12
+ coord hl, 0, 12
ld b,$04
ld c,$12
.drawTextBoxBorder
@@ -980,7 +979,7 @@ DisplayTextIDInit: ; 7096 (1:7096)
bit 4,[hl]
res 4,[hl]
jr nz,.skipMovingSprites
- call UpdateSprites ; move sprites
+ call UpdateSprites
.skipMovingSprites
; loop to copy C1X9 (direction the sprite is facing) to C2X9 for each sprite
; this is done because when you talk to an NPC, they turn to look your way
@@ -1023,35 +1022,33 @@ DisplayTextIDInit: ; 7096 (1:7096)
; function that displays the start menu
DrawStartMenu: ; 710b (1:710b)
- ld a,[wd74b]
- bit 5,a ; does the player have the pokedex?
+ CheckEvent EVENT_GOT_POKEDEX
; menu with pokedex
- hlCoord 10, 0
+ coord hl, 10, 0
ld b,$0e
ld c,$08
jr nz,.drawTextBoxBorder
; shorter menu if the player doesn't have the pokedex
- hlCoord 10, 0
+ coord hl, 10, 0
ld b,$0c
ld c,$08
.drawTextBoxBorder
call TextBoxBorder
- ld a,%11001011 ; bit mask for down, up, start, B, and A buttons
+ ld a,D_DOWN | D_UP | START | B_BUTTON | A_BUTTON
ld [wMenuWatchedKeys],a
ld a,$02
ld [wTopMenuItemY],a ; Y position of first menu choice
ld a,$0b
ld [wTopMenuItemX],a ; X position of first menu choice
- ld a,[wcc2d] ; remembered menu selection from last time
+ ld a,[wBattleAndStartSavedMenuItem] ; remembered menu selection from last time
ld [wCurrentMenuItem],a
ld [wLastMenuItem],a
xor a
- ld [wcc37],a
+ ld [wMenuWatchMovingOutOfBounds],a
ld hl,wd730
set 6,[hl] ; no pauses between printing each letter
- hlCoord 12, 2
- ld a,[wd74b]
- bit 5,a ; does the player have the pokedex?
+ coord hl, 12, 2
+ CheckEvent EVENT_GOT_POKEDEX
; case for not having pokdex
ld a,$06
jr z,.storeMenuItemCount
@@ -1109,7 +1106,7 @@ PrintStartMenuItem: ; 71bb (1:71bb)
push hl
call PlaceString
pop hl
- ld de,$28
+ ld de,SCREEN_WIDTH * 2
add hl,de
ret
@@ -1162,7 +1159,7 @@ DisplayTextBoxID_: ; 72ea (1:72ea)
call PlaceString
pop af
ld [wd730],a
- call UpdateSprites ; move sprites
+ call UpdateSprites
ret
; function to search a table terminated with $ff for a byte matching c in increments of de
@@ -1228,7 +1225,7 @@ GetTextBoxIDText: ; 7367 (1:7367)
; hl = address of upper left corner of text box
GetAddressOfScreenCoords: ; 7375 (1:7375)
push bc
- ld hl,wTileMap
+ coord hl, 0, 0
ld bc,20
.loop ; loop to add d rows to the base address
ld a,d
@@ -1389,11 +1386,11 @@ DisplayMoneyBox: ; 74ba (1:74ba)
ld a, MONEY_BOX_TEMPLATE
ld [wTextBoxID], a
call DisplayTextBoxID
- hlCoord 13, 1
- ld b, $1
- ld c, $6
+ coord hl, 13, 1
+ ld b, 1
+ ld c, 6
call ClearScreenArea
- hlCoord 12, 1
+ coord hl, 12, 1
ld de, wPlayerMoney
ld c, $a3
call PrintBCDNumber
@@ -1409,7 +1406,7 @@ DoBuySellQuitMenu: ; 74ea (1:74ea)
set 6, a ; no printing delay
ld [wd730], a
xor a
- ld [wd12d], a
+ ld [wChosenMenuItem], a
ld a, BUY_SELL_QUIT_MENU_TEMPLATE
ld [wTextBoxID], a
call DisplayTextBoxID
@@ -1424,7 +1421,7 @@ DoBuySellQuitMenu: ; 74ea (1:74ea)
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld [wcc37], a
+ ld [wMenuWatchMovingOutOfBounds], a
ld a, [wd730]
res 6, a ; turn on the printing delay
ld [wd730], a
@@ -1434,24 +1431,24 @@ DoBuySellQuitMenu: ; 74ea (1:74ea)
jr nz, .pressedA
bit 1, a ; was B pressed? (always true since only A/B are watched)
jr z, .pressedA
- ld a, $2
- ld [wd12e], a
+ ld a, CANCELLED_MENU
+ ld [wMenuExitMethod], a
jr .quit
.pressedA
- ld a, $1
- ld [wd12e], a
+ ld a, CHOSE_MENU_ITEM
+ ld [wMenuExitMethod], a
ld a, [wCurrentMenuItem]
- ld [wd12d], a
+ ld [wChosenMenuItem], a
ld b, a
ld a, [wMaxMenuItem]
cp b
jr z, .quit
ret
.quit
- ld a, $2
- ld [wd12e], a
+ ld a, CANCELLED_MENU
+ ld [wMenuExitMethod], a
ld a, [wCurrentMenuItem]
- ld [wd12d], a
+ ld [wChosenMenuItem], a
scf
ret
@@ -1464,9 +1461,12 @@ DisplayTwoOptionMenu: ; 7559 (1:7559)
ld a, [wd730]
set 6, a ; no printing delay
ld [wd730], a
+
+; pointless because both values are overwritten before they are read
xor a
- ld [wd12d], a
- ld [wd12e], a
+ ld [wChosenMenuItem], a
+ ld [wMenuExitMethod], a
+
ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
ld a, $1
@@ -1477,7 +1477,7 @@ DisplayTwoOptionMenu: ; 7559 (1:7559)
ld [wTopMenuItemX], a
xor a
ld [wLastMenuItem], a
- ld [wcc37], a
+ ld [wMenuWatchMovingOutOfBounds], a
push hl
ld hl, wTwoOptionMenuID
bit 7, [hl] ; select second menu item by default?
@@ -1554,7 +1554,7 @@ DisplayTwoOptionMenu: ; 7559 (1:7559)
pop af
pop hl
ld [wFlags_0xcd60], a
- ld a, (SFX_02_40 - SFX_Headers_02) / 3
+ ld a, SFX_PRESS_AB
call PlaySound
jr .pressedAButton
.notNoYesMenu
@@ -1566,23 +1566,23 @@ DisplayTwoOptionMenu: ; 7559 (1:7559)
jr nz, .choseSecondMenuItem ; automatically choose the second option if B is pressed
.pressedAButton
ld a, [wCurrentMenuItem]
- ld [wd12d], a
+ ld [wChosenMenuItem], a
and a
jr nz, .choseSecondMenuItem
; chose first menu item
- ld a, $1
- ld [wd12e], a
+ ld a, CHOSE_FIRST_ITEM
+ ld [wMenuExitMethod], a
ld c, 15
call DelayFrames
call TwoOptionMenu_RestoreScreenTiles
and a
ret
.choseSecondMenuItem
- ld a, $1
+ ld a, 1
ld [wCurrentMenuItem], a
- ld [wd12d], a
- ld a, $2
- ld [wd12e], a
+ ld [wChosenMenuItem], a
+ ld a, CHOSE_SECOND_ITEM
+ ld [wMenuExitMethod], a
ld c, 15
call DelayFrames
call TwoOptionMenu_RestoreScreenTiles
@@ -1594,39 +1594,39 @@ DisplayTwoOptionMenu: ; 7559 (1:7559)
; The bottom and right edges of the menu may remain after the function returns.
TwoOptionMenu_SaveScreenTiles: ; 763e (1:763e)
- ld de, wHPBarMaxHP
- ld bc, $506
-.asm_7644
+ ld de, wBuffer
+ lb bc, 5, 6
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_7644
+ jr nz, .loop
push bc
- ld bc, 14
+ ld bc, SCREEN_WIDTH - 6
add hl, bc
pop bc
ld c, $6
dec b
- jr nz, .asm_7644
+ jr nz, .loop
ret
TwoOptionMenu_RestoreScreenTiles: ; 7656 (1:7656)
- ld de, wHPBarMaxHP
- ld bc, $506
-.asm_765c
+ ld de, wBuffer
+ lb bc, 5, 6
+.loop
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_765c
+ jr nz, .loop
push bc
- ld bc, $e
+ ld bc, SCREEN_WIDTH - 6
add hl, bc
pop bc
- ld c, $6
+ ld c, 6
dec b
- jr nz, .asm_765c
+ jr nz, .loop
call UpdateSprites
ret
@@ -1668,86 +1668,101 @@ TwoOptionMenuStrings: ; 7671 (1:7671)
.HealCancelMenu ; 76d5 (1:36d5)
db "HEAL",$4E,"CANCEL@"
-DisplayFieldMoveMonMenu: ; 76e1 (1:36e1)
+DisplayFieldMoveMonMenu: ; 76e1 (1:76e1)
xor a
- ld hl, wWhichTrade
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], $c
+ ld hl, wFieldMoves
+ ld [hli], a ; wFieldMoves
+ ld [hli], a ; wFieldMoves + 1
+ ld [hli], a ; wFieldMoves + 2
+ ld [hli], a ; wFieldMoves + 3
+ ld [hli], a ; wNumFieldMoves
+ ld [hl], 12 ; wFieldMovesLeftmostXCoord
call GetMonFieldMoves
- ld a, [wTrainerScreenX]
+ ld a, [wNumFieldMoves]
and a
- jr nz, .asm_770f
- hlCoord 11, 11
- ld b, $5
- ld c, $7
+ jr nz, .fieldMovesExist
+
+; no field moves
+ coord hl, 11, 11
+ ld b, 5
+ ld c, 7
call TextBoxBorder
call UpdateSprites
- ld a, $c
- ld [$fff7], a
- hlCoord 13, 12
+ ld a, 12
+ ld [hFieldMoveMonMenuTopMenuItemX], a
+ coord hl, 13, 12
ld de, PokemonMenuEntries
jp PlaceString
-.asm_770f
+
+.fieldMovesExist
push af
- hlCoord 0, 11
- ld a, [wcd42]
+
+; Calculate the text box position and dimensions based on the leftmost X coord
+; of the field move names before adjusting for the number of field moves.
+ coord hl, 0, 11
+ ld a, [wFieldMovesLeftmostXCoord]
dec a
ld e, a
- ld d, $0
+ ld d, 0
add hl, de
- ld b, $5
- ld a, $12
+ ld b, 5
+ ld a, 18
sub e
ld c, a
pop af
- ld de, $ffd8
-.asm_7725
+
+; For each field move, move the top of the text box up 2 rows while the leaving
+; the bottom of the text box at the bottom of the screen.
+ ld de, -SCREEN_WIDTH * 2
+.textBoxHeightLoop
add hl, de
inc b
inc b
dec a
- jr nz, .asm_7725
- ld de, $ffec
+ jr nz, .textBoxHeightLoop
+
+; Make space for an extra blank row above the top field move.
+ ld de, -SCREEN_WIDTH
add hl, de
inc b
+
call TextBoxBorder
call UpdateSprites
- hlCoord 0, 12
- ld a, [wcd42]
+
+; Calculate the position of the first field move name to print.
+ coord hl, 0, 12
+ ld a, [wFieldMovesLeftmostXCoord]
inc a
ld e, a
- ld d, $0
+ ld d, 0
add hl, de
- ld de, $ffd8
- ld a, [wTrainerScreenX]
-.asm_7747
+ ld de, -SCREEN_WIDTH * 2
+ ld a, [wNumFieldMoves]
+.calcFirstFieldMoveYLoop
add hl, de
dec a
- jr nz, .asm_7747
+ jr nz, .calcFirstFieldMoveYLoop
+
xor a
- ld [wTrainerScreenX], a
- ld de, wWhichTrade
-.asm_7752
+ ld [wNumFieldMoves], a
+ ld de, wFieldMoves
+.printNamesLoop
push hl
ld hl, FieldMoveNames
ld a, [de]
and a
- jr z, .asm_7776
+ jr z, .donePrintingNames
inc de
- ld b, a
-.asm_775c
+ ld b, a ; index of name
+.skipNamesLoop ; skip past names before the name we want
dec b
- jr z, .asm_7766
-.asm_775f
+ jr z, .reachedName
+.skipNameLoop ; skip past current name
ld a, [hli]
- cp $50
- jr nz, .asm_775f
- jr .asm_775c
-.asm_7766
+ cp "@"
+ jr nz, .skipNameLoop
+ jr .skipNamesLoop
+.reachedName
ld b, h
ld c, l
pop hl
@@ -1755,19 +1770,20 @@ DisplayFieldMoveMonMenu: ; 76e1 (1:36e1)
ld d, b
ld e, c
call PlaceString
- ld bc, $28
+ ld bc, SCREEN_WIDTH * 2
add hl, bc
pop de
- jr .asm_7752
-.asm_7776
+ jr .printNamesLoop
+
+.donePrintingNames
pop hl
- ld a, [wcd42]
- ld [$fff7], a
- hlCoord 0, 12
- ld a, [wcd42]
+ ld a, [wFieldMovesLeftmostXCoord]
+ ld [hFieldMoveMonMenuTopMenuItemX], a
+ coord hl, 0, 12
+ ld a, [wFieldMovesLeftmostXCoord]
inc a
ld e, a
- ld d, $0
+ ld d, 0
add hl, de
ld de, PokemonMenuEntries
jp PlaceString
@@ -1791,59 +1807,58 @@ PokemonMenuEntries: ; 77c2 (1:77c2)
GetMonFieldMoves: ; 77d6 (1:77d6)
ld a, [wWhichPokemon]
ld hl, wPartyMon1Moves
- ld bc, $2c
+ ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld d, h
ld e, l
- ld c, $5
- ld hl, wWhichTrade
-.asm_77e9
+ ld c, NUM_MOVES + 1
+ ld hl, wFieldMoves
+.loop
push hl
-.asm_77ea
+.nextMove
dec c
- jr z, .asm_7821
- ld a, [de] ; de is RAM address of move
+ jr z, .done
+ ld a, [de] ; move ID
and a
- jr z, .asm_7821
+ jr z, .done
ld b, a
- inc de ; go to next move
+ inc de
ld hl, FieldMoveDisplayData
-.asm_77f6
+.fieldMoveLoop
ld a, [hli]
cp $ff
- jr z, .asm_77ea
+ jr z, .nextMove ; if the move is not a field move
cp b
- jr z, .asm_7802
+ jr z, .foundFieldMove
inc hl
inc hl
- jr .asm_77f6
-.asm_7802
+ jr .fieldMoveLoop
+.foundFieldMove
ld a, b
- ld [wcd43], a
- ld a, [hli]
- ld b, [hl]
+ ld [wLastFieldMoveID], a
+ ld a, [hli] ; field move name index
+ ld b, [hl] ; field move leftmost X coordinate
pop hl
- ld [hli], a
- ld a, [wTrainerScreenX]
+ ld [hli], a ; store name index in wFieldMoves
+ ld a, [wNumFieldMoves]
inc a
- ld [wTrainerScreenX], a
- ld a, [wcd42]
+ ld [wNumFieldMoves], a
+ ld a, [wFieldMovesLeftmostXCoord]
cp b
- jr c, .asm_781b
+ jr c, .skipUpdatingLeftmostXCoord
ld a, b
- ld [wcd42], a
-.asm_781b
- ld a, [wcd43]
+ ld [wFieldMovesLeftmostXCoord], a
+.skipUpdatingLeftmostXCoord
+ ld a, [wLastFieldMoveID]
ld b, a
- jr .asm_77e9
-.asm_7821
+ jr .loop
+.done
pop hl
ret
-; Format: [Move id], [list priority], [leftmost tile]
+; Format: [Move id], [name index], [leftmost tile]
; Move id = id of move
-; List priority = lower number means higher priority when field moves are displayed
-; these priorities must be unique
+; Name index = index of name in FieldMoveNames
; Leftmost tile = -1 + tile column in which the first letter of the move's name should be displayed
; "SOFTBOILED" is $08 because it has 4 more letters than "SURF", for example, whose value is $0C
FieldMoveDisplayData: ; 7823 (1:7823)
@@ -1864,16 +1879,16 @@ INCLUDE "engine/battle/moveEffects/drain_hp_effect.asm"
INCLUDE "engine/menu/players_pc.asm"
_RemovePokemon: ; 7b68 (1:7b68)
- ld hl, wPartyCount ; wPartyCount
- ld a, [wcf95]
+ ld hl, wPartyCount
+ ld a, [wRemoveMonFromBox]
and a
jr z, .asm_7b74
- ld hl, W_NUMINBOX ; wda80
+ ld hl, W_NUMINBOX
.asm_7b74
ld a, [hl]
dec a
ld [hli], a
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
ld c, a
ld b, $0
add hl, bc
@@ -1886,17 +1901,17 @@ _RemovePokemon: ; 7b68 (1:7b68)
ld [hli], a
inc a
jr nz, .asm_7b81
- ld hl, wPartyMonOT ; wd273
+ ld hl, wPartyMonOT
ld d, $5
- ld a, [wcf95]
+ ld a, [wRemoveMonFromBox]
and a
jr z, .asm_7b97
ld hl, wBoxMonOT
ld d, $13
.asm_7b97
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
cp d
jr nz, .asm_7ba6
ld [hl], $ff
@@ -1904,10 +1919,10 @@ _RemovePokemon: ; 7b68 (1:7b68)
.asm_7ba6
ld d, h
ld e, l
- ld bc, $b
+ ld bc, NAME_LENGTH
add hl, bc
- ld bc, wPartyMonNicks ; wPartyMonNicks
- ld a, [wcf95]
+ ld bc, wPartyMonNicks
+ ld a, [wRemoveMonFromBox]
and a
jr z, .asm_7bb8
ld bc, wBoxMonNicks
@@ -1915,17 +1930,17 @@ _RemovePokemon: ; 7b68 (1:7b68)
call CopyDataUntil
ld hl, wPartyMons
ld bc, wPartyMon2 - wPartyMon1
- ld a, [wcf95]
+ ld a, [wRemoveMonFromBox]
and a
jr z, .asm_7bcd
ld hl, wBoxMons
ld bc, wBoxMon2 - wBoxMon1
.asm_7bcd
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
call AddNTimes
ld d, h
ld e, l
- ld a, [wcf95]
+ ld a, [wRemoveMonFromBox]
and a
jr z, .asm_7be4
ld bc, wBoxMon2 - wBoxMon1
@@ -1935,44 +1950,44 @@ _RemovePokemon: ; 7b68 (1:7b68)
.asm_7be4
ld bc, wPartyMon2 - wPartyMon1
add hl, bc
- ld bc, wPartyMonOT ; wd273
+ ld bc, wPartyMonOT
.asm_7beb
call CopyDataUntil
- ld hl, wPartyMonNicks ; wPartyMonNicks
- ld a, [wcf95]
+ ld hl, wPartyMonNicks
+ ld a, [wRemoveMonFromBox]
and a
jr z, .asm_7bfa
ld hl, wBoxMonNicks
.asm_7bfa
- ld bc, $b
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld bc, NAME_LENGTH
+ ld a, [wWhichPokemon]
call AddNTimes
ld d, h
ld e, l
- ld bc, $b
+ ld bc, NAME_LENGTH
add hl, bc
- ld bc, wPokedexOwned ; wPokedexOwned
- ld a, [wcf95]
+ ld bc, wPokedexOwned
+ ld a, [wRemoveMonFromBox]
and a
jr z, .asm_7c15
ld bc, wBoxMonNicksEnd
.asm_7c15
jp CopyDataUntil
-Func_7c18: ; 7c18 (1:7c18)
+_DisplayPokedex: ; 7c18 (1:7c18)
ld hl, wd730
set 6, [hl]
predef ShowPokedexData
ld hl, wd730
res 6, [hl]
call ReloadMapData
- ld c, $a
+ ld c, 10
call DelayFrames
predef IndexToPokedex
ld a, [wd11e]
dec a
ld c, a
- ld b, $1
+ ld b, FLAG_SET
ld hl, wPokedexSeen
predef FlagActionPredef
ld a, $1
@@ -1985,23 +2000,23 @@ SECTION "bank3",ROMX,BANK[$3]
INCLUDE "engine/joypad.asm"
ClearVariablesAfterLoadingMapData: ; c07c (3:407c)
- ld a, $90
+ ld a, SCREEN_HEIGHT_PIXELS
ld [hWY], a
ld [rWY], a
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ld [wStepCounter], a
- ld [W_LONEATTACKNO], a ; W_GYMLEADERNO
+ ld [W_LONEATTACKNO], a
ld [hJoyPressed], a
ld [hJoyReleased], a
ld [hJoyHeld], a
- ld [wcd6a], a
- ld [wd5a3], a
+ ld [wActionResultOrTookBattleTurn], a
+ ld [wUnusedD5A3], a
ld hl, wCardKeyDoorY
ld [hli], a
ld [hl], a
ld hl, wWhichTrade
- ld bc, $1e
+ ld bc, wStandingOnWarpPadOrHole - wWhichTrade
call FillMemory
ret
@@ -2024,7 +2039,7 @@ IsPlayerStandingOnWarp: ; c0a6 (3:40a6)
ld a, [hli] ; target warp
ld [wDestinationWarpID], a
ld a, [hl] ; target map
- ld [$ff8b], a
+ ld [hWarpDestinationMap], a
ld hl, wd736
set 2, [hl] ; standing on warp flag
ret
@@ -2241,35 +2256,35 @@ IsPlayerStandingOnDoorTileOrWarpTile: ; c1e6 (3:41e6)
INCLUDE "data/warp_tile_ids.asm"
PrintSafariZoneSteps: ; c52f (3:452f)
- ld a, [W_CURMAP] ; W_CURMAP
+ ld a, [W_CURMAP]
cp SAFARI_ZONE_EAST
ret c
cp UNKNOWN_DUNGEON_2
ret nc
- ld hl, wTileMap
- ld b, $3
- ld c, $7
+ coord hl, 0, 0
+ ld b, 3
+ ld c, 7
call TextBoxBorder
- hlCoord 1, 1
- ld de, wSafariSteps ; wd70d
- ld bc, $203
+ coord hl, 1, 1
+ ld de, wSafariSteps
+ lb bc, 2, 3
call PrintNumber
- hlCoord 4, 1
- ld de, SafariSteps ; $4579
+ coord hl, 4, 1
+ ld de, SafariSteps
call PlaceString
- hlCoord 1, 3
+ coord hl, 1, 3
ld de, SafariBallText
call PlaceString
- ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS
- cp $a
+ ld a, [W_NUMSAFARIBALLS]
+ cp 10
jr nc, .asm_c56d
- hlCoord 5, 3
- ld a, $7f
+ coord hl, 5, 3
+ ld a, " "
ld [hl], a
.asm_c56d
- hlCoord 6, 3
- ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS
- ld bc, $102
+ coord hl, 6, 3
+ ld de, W_NUMSAFARIBALLS
+ lb bc, 1, 2
jp PrintNumber
SafariSteps: ; c579 (3:4579)
@@ -2287,7 +2302,7 @@ _GetTileAndCoordsInFrontOfPlayer: ; c589 (3:4589)
ld a, [W_XCOORD]
ld e, a
ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
- and a
+ and a ; cp SPRITE_FACING_DOWN
jr nz, .notFacingDown
; facing down
aCoord 8, 11
@@ -2326,7 +2341,7 @@ GetTileTwoStepsInFrontOfPlayer: ; c5be (3:45be)
ld d, a
ld e, [hl]
ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction
- and a
+ and a ; cp SPRITE_FACING_DOWN
jr nz, .notFacingDown
; facing down
ld hl, $ffdb
@@ -2523,7 +2538,7 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c)
ld [wJoyIgnore], a
call EnableAutoTextBoxDrawing
ld a, $d0
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
pop de
pop hl
@@ -2561,7 +2576,7 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c)
jr z, .skipPoisonEffectAndSound
ld b, $2
predef ChangeBGPalColor0_4Frames ; change BG white to dark grey for 4 frames
- ld a, (SFX_02_43 - SFX_Headers_02) / 3
+ ld a, SFX_POISONED
call PlaySound
.skipPoisonEffectAndSound
predef AnyPartyAlive
@@ -2570,7 +2585,7 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c)
jr nz, .noBlackOut
call EnableAutoTextBoxDrawing
ld a, $d1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld hl, wd72e
set 5, [hl]
@@ -2579,7 +2594,7 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c)
.noBlackOut
xor a
.done
- ld [wd12d], a
+ ld [wOutOfBattleBlackout], a
ret
LoadTilesetHeader: ; c754 (3:4754)
@@ -2622,7 +2637,7 @@ LoadTilesetHeader: ; c754 (3:4754)
jr c, .asm_c797
ld a, [W_CURMAPTILESET]
ld b, a
- ld a, [$ff8b]
+ ld a, [hPreviousTileset]
cp b
jr z, .done
.asm_c797
@@ -2674,7 +2689,7 @@ PrintStrengthTxt: ; cd99 (3:4d99)
UsedStrengthText: ; cdaa (3:4daa)
TX_FAR _UsedStrengthText
- db $08 ; asm
+ TX_ASM
ld a, [wcf91]
call PlayCry
call Delay3
@@ -2690,14 +2705,12 @@ CheckForForcedBikeSurf: ; cdc0 (3:4dc0)
ld a, [wd732]
bit 5, a
jr nz, .asm_cdec
- ld a, [W_CURMAP] ; W_CURMAP
+ ld a, [W_CURMAP]
cp SEAFOAM_ISLANDS_5
ret nz
- ld a, [wd881]
- and $3
- cp $3
+ CheckBothEventsSet EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE
ret z
- ld hl, CoordsData_cdf7 ; $4df7
+ ld hl, CoordsData_cdf7
call ArePlayerCoordsInArray
ret nc
ld hl, wd728
@@ -2721,7 +2734,6 @@ CyclingIsFunText: ; cdff (3:4dff)
TX_FAR _CyclingIsFunText
db "@"
-
; wild pokemon data: from 4EB8 to 55C7
LoadWildData: ; ceb8 (3:4eb8)
@@ -2768,20 +2780,20 @@ DrawBadges: ; ea03 (3:6a03)
; Instead of removing relevant code, the name graphics were erased.
; Tile ids for face/badge graphics.
- ld de, wTrainerFacingDirection
+ ld de, wBadgeOrFaceTiles
ld hl, .FaceBadgeTiles
ld bc, 8
call CopyData
; Booleans for each badge.
- ld hl, wcd49
+ ld hl, wTempObtainedBadgesBooleans
ld bc, 8
xor a
call FillMemory
; Alter these based on owned badges.
- ld de, wcd49
- ld hl, wTrainerFacingDirection
+ ld de, wTempObtainedBadgesBooleans
+ ld hl, wBadgeOrFaceTiles
ld a, [W_OBTAINEDBADGES]
ld b, a
ld c, 8
@@ -2800,17 +2812,17 @@ DrawBadges: ; ea03 (3:6a03)
jr nz, .CheckBadge
; Draw two rows of badges.
- ld hl, wWhichTrade
+ ld hl, wBadgeNumberTile
ld a, $d8 ; [1]
ld [hli], a
ld [hl], $60 ; First name
- hlCoord 2, 11
- ld de, wcd49
+ coord hl, 2, 11
+ ld de, wTempObtainedBadgesBooleans
call .DrawBadgeRow
- hlCoord 2, 14
- ld de, wcd49 + 4
+ coord hl, 2, 14
+ ld de, wTempObtainedBadgesBooleans + 4
; call .DrawBadgeRow
; ret
@@ -2823,15 +2835,15 @@ DrawBadges: ; ea03 (3:6a03)
push hl
; Badge no.
- ld a, [wWhichTrade]
+ ld a, [wBadgeNumberTile]
ld [hli], a
inc a
- ld [wWhichTrade], a
+ ld [wBadgeNumberTile], a
; Names aren't printed if the badge is owned.
ld a, [de]
and a
- ld a, [wTrainerEngageDistance]
+ ld a, [wBadgeNameTile]
jr nz, .SkipName
call .PlaceTiles
jr .PlaceBadge
@@ -2842,18 +2854,18 @@ DrawBadges: ; ea03 (3:6a03)
inc hl
.PlaceBadge
- ld [wTrainerEngageDistance], a
- ld de, 20 - 1
+ ld [wBadgeNameTile], a
+ ld de, SCREEN_WIDTH - 1
add hl, de
- ld a, [wTrainerFacingDirection]
+ ld a, [wBadgeOrFaceTiles]
call .PlaceTiles
add hl, de
call .PlaceTiles
; Shift badge array back one byte.
push bc
- ld hl, wTrainerFacingDirection + 1
- ld de, wTrainerFacingDirection
+ ld hl, wBadgeOrFaceTiles + 1
+ ld de, wBadgeOrFaceTiles
ld bc, 8
call CopyData
pop bc
@@ -2930,7 +2942,7 @@ ReplaceTileBlock: ; ee9e (3:6e9e)
ret c ; return if the replaced tile block is above the map view in memory
RedrawMapView: ; eedc (3:6edc)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
inc a
ret z
ld a, [H_AUTOBGTRANSFERENABLED]
@@ -2941,7 +2953,7 @@ RedrawMapView: ; eedc (3:6edc)
ld [H_AUTOBGTRANSFERENABLED], a
ld [hTilesetType], a ; no flower/water BG tile animations
call LoadCurrentMapView
- call GoPAL_SET_CF1C
+ call RunDefaultPaletteCommand
ld hl, wMapViewVRAMPointer
ld a, [hli]
ld h, [hl]
@@ -2952,9 +2964,9 @@ RedrawMapView: ; eedc (3:6edc)
and $3
or $98
ld a, l
- ld [wHPBarMaxHP], a
+ ld [wBuffer], a
ld a, h
- ld [wHPBarMaxHP + 1], a
+ ld [wBuffer + 1], a ; this copy of the address is not used
ld a, 2
ld [$ffbe], a
ld c, 9 ; number of rows of 2x2 tiles (this covers the whole screen)
@@ -2962,30 +2974,30 @@ RedrawMapView: ; eedc (3:6edc)
push bc
push hl
push hl
- ld hl, wTileMap - 2 * 20
- ld de, 20
+ ld hl, wTileMap - 2 * SCREEN_WIDTH
+ ld de, SCREEN_WIDTH
ld a, [$ffbe]
-.asm_ef1a
+.calcWRAMAddrLoop
add hl, de
dec a
- jr nz, .asm_ef1a
- call CopyToScreenEdgeTiles
+ jr nz, .calcWRAMAddrLoop
+ call CopyToRedrawRowOrColumnSrcTiles
pop hl
ld de, $20
ld a, [$ffbe]
ld c, a
-.asm_ef28
+.calcVRAMAddrLoop
add hl, de
ld a, h
and $3
or $98
dec c
- jr nz, .asm_ef28
- ld [H_SCREENEDGEREDRAWADDR + 1], a
+ jr nz, .calcVRAMAddrLoop
+ ld [hRedrawRowOrColumnDest + 1], a
ld a, l
- ld [H_SCREENEDGEREDRAWADDR], a
- ld a, REDRAWROW
- ld [H_SCREENEDGEREDRAW], a
+ ld [hRedrawRowOrColumnDest], a
+ ld a, REDRAW_ROW
+ ld [hRedrawRowOrColumnMode], a
call DelayFrame
ld hl, $ffbe
inc [hl]
@@ -3015,7 +3027,7 @@ MarkTownVisitedAndLoadMissableObjects: ; f113 (3:7113)
cp ROUTE_1
jr nc, .notInTown
ld c, a
- ld b, $1
+ ld b, FLAG_SET
ld hl, W_TOWNVISITEDFLAG ; mark town as visited (for flying)
predef FlagActionPredef
.notInTown
@@ -3053,7 +3065,7 @@ LoadMissableObjects: ; f132 (3:7132)
ld [H_DIVISOR], a
ld b, $2
call Divide ; divide difference by 3, resulting in the global offset (number of missable items before ours)
- ld a, [W_CURMAP] ; W_CURMAP
+ ld a, [W_CURMAP]
ld b, a
ld a, [H_DIVIDEND+3]
ld c, a ; store global offset in c
@@ -3081,12 +3093,12 @@ LoadMissableObjects: ; f132 (3:7132)
InitializeMissableObjectsFlags: ; f175 (3:7175)
ld hl, W_MISSABLEOBJECTFLAGS
- ld bc, $20
+ ld bc, wMissableObjectFlagsEnd - W_MISSABLEOBJECTFLAGS
xor a
call FillMemory ; clear missable objects flags
ld hl, MapHS00
xor a
- ld [wd048], a
+ ld [wMissableObjectCounter], a
.missableObjectsLoop
ld a, [hli]
cp $ff ; end of list
@@ -3095,14 +3107,14 @@ InitializeMissableObjectsFlags: ; f175 (3:7175)
inc hl
ld a, [hl]
cp Hide
- jr nz, .asm_f19d
+ jr nz, .skip
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [wd048]
+ ld a, [wMissableObjectCounter]
ld c, a
- ld b, $1
- call MissableObjectFlagAction ; set flag iff Item is hidden
-.asm_f19d
- ld hl, wd048
+ ld b, FLAG_SET
+ call MissableObjectFlagAction ; set flag if Item is hidden
+.skip
+ ld hl, wMissableObjectCounter
inc [hl]
pop hl
inc hl
@@ -3123,7 +3135,7 @@ IsObjectHidden: ; f1a6 (3:71a6)
ld a, [hli]
jr nz, .loop
ld c, a
- ld b, $2
+ ld b, FLAG_TEST
ld hl, W_MISSABLEOBJECTFLAGS
call MissableObjectFlagAction
ld a, c
@@ -3136,23 +3148,23 @@ IsObjectHidden: ; f1a6 (3:71a6)
ret
; adds missable object (items, leg. pokemon, etc.) to the map
-; [wcc4d]: index of the missable object to be added (global index)
+; [wMissableObjectIndex]: index of the missable object to be added (global index)
ShowObject: ; f1c8 (3:71c8)
ShowObject2:
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [wcc4d]
+ ld a, [wMissableObjectIndex]
ld c, a
- ld b, $0
+ ld b, FLAG_RESET
call MissableObjectFlagAction ; reset "removed" flag
jp UpdateSprites
; removes missable object (items, leg. pokemon, etc.) from the map
-; [wcc4d]: index of the missable object to be removed (global index)
+; [wMissableObjectIndex]: index of the missable object to be removed (global index)
HideObject: ; f1d7 (3:71d7)
ld hl, W_MISSABLEOBJECTFLAGS
- ld a, [wcc4d]
+ ld a, [wMissableObjectIndex]
ld c, a
- ld b, $1
+ ld b, FLAG_SET
call MissableObjectFlagAction ; set "removed" flag
jp UpdateSprites
@@ -3234,15 +3246,15 @@ TryPushingBoulder: ; f225 (3:7225)
bit 1, a ; has boulder dust animation from previous push played yet?
ret nz
xor a
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call IsSpriteInFrontOfPlayer
- ld a, [$ff8c]
+ ld a, [hSpriteIndexOrTextID]
ld [wBoulderSpriteIndex], a
and a
jp z, ResetBoulderPushFlags
ld hl, wSpriteStateData1 + 1
ld d, $0
- ld a, [$ff8c]
+ ld a, [hSpriteIndexOrTextID]
swap a
ld e, a
add hl, de
@@ -3256,7 +3268,7 @@ TryPushingBoulder: ; f225 (3:7225)
set 6, [hl] ; indicate that the player has tried pushing
ret z ; the player must try pushing twice before the boulder will move
ld a, [hJoyHeld]
- and $f0
+ and D_RIGHT | D_LEFT | D_UP | D_DOWN
ret z
predef CheckForCollisionWhenPushingBoulder
ld a, [wTileInFrontOfBoulderAndBoulderCollisionResult]
@@ -3292,7 +3304,7 @@ TryPushingBoulder: ; f225 (3:7225)
ld de, PushBoulderRightMovementData
.done
call MoveSprite
- ld a, (SFX_02_53 - SFX_Headers_02) / 3
+ ld a, SFX_PUSH_BOULDER
call PlaySound
ld hl, wFlags_0xcd60
set 1, [hl]
@@ -3323,7 +3335,7 @@ DoBoulderDustAnimation: ; f2b5 (3:72b5)
ld [H_SPRITEINDEX], a
call GetSpriteMovementByte2Pointer
ld [hl], $10
- ld a, (SFX_02_56 - SFX_Headers_02) / 3
+ ld a, SFX_CUT
jp PlaySound
ResetBoulderPushFlags: ; f2dd (3:72dd)
@@ -3333,61 +3345,65 @@ ResetBoulderPushFlags: ; f2dd (3:72dd)
ret
_AddPartyMon: ; f2e5 (3:72e5)
- ld de, wPartyCount ; wPartyCount
- ld a, [wcc49]
+; Adds a new mon to the player's or enemy's party.
+; [wMonDataLocation] is used in an unusual way in this function.
+; If the lower nybble is 0, the mon is added to the player's party, else the enemy's.
+; If the entire value is 0, then the player is allowed to name the mon.
+ ld de, wPartyCount
+ ld a, [wMonDataLocation]
and $f
- jr z, .asm_f2f2
- ld de, wEnemyPartyCount ; wEnemyPartyCount
-.asm_f2f2
+ jr z, .next
+ ld de, wEnemyPartyCount
+.next
ld a, [de]
inc a
cp PARTY_LENGTH + 1
- ret nc
+ ret nc ; return if the party is already full
ld [de], a
ld a, [de]
- ld [$ffe4], a
+ ld [hNewPartyLength], a
add e
ld e, a
- jr nc, .asm_f300
+ jr nc, .noCarry
inc d
-.asm_f300
+.noCarry
ld a, [wcf91]
- ld [de], a
+ ld [de], a ; write species of new mon in party list
inc de
- ld a, $ff
+ ld a, $ff ; terminator
ld [de], a
- ld hl, wPartyMonOT ; wd273
- ld a, [wcc49]
+ ld hl, wPartyMonOT
+ ld a, [wMonDataLocation]
and $f
- jr z, .asm_f315
+ jr z, .next2
ld hl, wEnemyMonOT
-.asm_f315
- ld a, [$ffe4]
+.next2
+ ld a, [hNewPartyLength]
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
- ld hl, wPlayerName ; wd158
- ld bc, $b
+ ld hl, wPlayerName
+ ld bc, NAME_LENGTH
call CopyData
- ld a, [wcc49]
+ ld a, [wMonDataLocation]
and a
- jr nz, .asm_f33f
- ld hl, wPartyMonNicks ; wPartyMonNicks
- ld a, [$ffe4]
+ jr nz, .skipNaming
+ ld hl, wPartyMonNicks
+ ld a, [hNewPartyLength]
dec a
call SkipFixedLengthTextEntries
- ld a, $2
- ld [wd07d], a
+ ld a, NAME_MON_SCREEN
+ ld [wNamingScreenType], a
predef AskName
-.asm_f33f
+.skipNaming
ld hl, wPartyMons
- ld a, [wcc49]
+ ld a, [wMonDataLocation]
and $f
- jr z, .asm_f34c
+ jr z, .next3
ld hl, wEnemyMons
-.asm_f34c
- ld a, [$ffe4]
+.next3
+ ld a, [hNewPartyLength]
dec a
ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
@@ -3399,15 +3415,17 @@ _AddPartyMon: ; f2e5 (3:72e5)
call GetMonHeader
ld hl, W_MONHEADER
ld a, [hli]
- ld [de], a
+ ld [de], a ; species
inc de
pop hl
push hl
- ld a, [wcc49]
+ ld a, [wMonDataLocation]
and $f
ld a, $98 ; set enemy trainer mon IVs to fixed average values
ld b, $88
- jr nz, .writeFreshMonData
+ jr nz, .next4
+
+; If the mon is being added to the player's party, update the pokedex.
ld a, [wcf91]
ld [wd11e], a
push de
@@ -3416,38 +3434,43 @@ _AddPartyMon: ; f2e5 (3:72e5)
ld a, [wd11e]
dec a
ld c, a
- ld b, $2
- ld hl, wPokedexOwned ; wPokedexOwned
+ ld b, FLAG_TEST
+ ld hl, wPokedexOwned
call FlagAction
- ld a, c
- ld [wd153], a
+ ld a, c ; whether the mon was already flagged as owned
+ ld [wUnusedD153], a ; not read
ld a, [wd11e]
dec a
ld c, a
- ld b, $1
+ ld b, FLAG_SET
push bc
call FlagAction
pop bc
- ld hl, wPokedexSeen ; wd30a
+ ld hl, wPokedexSeen
call FlagAction
+
pop hl
push hl
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
- and a
+
+ ld a, [W_ISINBATTLE]
+ and a ; is this a wild mon caught in battle?
jr nz, .copyEnemyMonData
+
+; Not wild.
call Random ; generate random IVs
ld b, a
call Random
-.writeFreshMonData ; f3b3
+
+.next4
push bc
- ld bc, $1b
+ ld bc, wPartyMon1DVs - wPartyMon1
add hl, bc
pop bc
ld [hli], a
ld [hl], b ; write IVs
- ld bc, $fff4
+ ld bc, (wPartyMon1HPExp - 1) - (wPartyMon1DVs + 1)
add hl, bc
- ld a, $1
+ ld a, 1
ld c, a
xor a
ld b, a
@@ -3459,13 +3482,13 @@ _AddPartyMon: ; f2e5 (3:72e5)
ld [de], a
inc de
xor a
- ld [de], a ; level (?)
+ ld [de], a ; box level
inc de
ld [de], a ; status ailments
inc de
jr .copyMonTypesAndMoves
.copyEnemyMonData
- ld bc, $1b
+ ld bc, wEnemyMon1DVs - wEnemyMon1
add hl, bc
ld a, [wEnemyMonDVs] ; copy IVs from cur enemy mon
ld [hli], a
@@ -3478,7 +3501,7 @@ _AddPartyMon: ; f2e5 (3:72e5)
ld [de], a
inc de
xor a
- ld [de], a ; level (?)
+ ld [de], a ; box level
inc de
ld a, [wEnemyMonStatus] ; copy status ailments from cur enemy mon
ld [de], a
@@ -3491,7 +3514,7 @@ _AddPartyMon: ; f2e5 (3:72e5)
ld a, [hli] ; type 2
ld [de], a
inc de
- ld a, [hli] ; unused (?)
+ ld a, [hli] ; catch rate (held item in gen 2)
ld [de], a
ld hl, W_MONHMOVES
ld a, [hli]
@@ -3512,7 +3535,7 @@ _AddPartyMon: ; f2e5 (3:72e5)
dec de
dec de
xor a
- ld [wHPBarMaxHP], a
+ ld [wLearningMovesFromDayCare], a
predef WriteMonMoves
pop de
ld a, [wPlayerID] ; set trainer ID to player ID
@@ -3527,16 +3550,16 @@ _AddPartyMon: ; f2e5 (3:72e5)
callab CalcExperience
pop de
inc de
- ld a, [H_MULTIPLICAND] ; write experience
+ ld a, [hExperience] ; write experience
ld [de], a
inc de
- ld a, [H_MULTIPLICAND+1]
+ ld a, [hExperience + 1]
ld [de], a
inc de
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hExperience + 2]
ld [de], a
xor a
- ld b, $a
+ ld b, NUM_STATS * 2
.writeEVsLoop ; set all EVs to 0
inc de
ld [de], a
@@ -3547,20 +3570,20 @@ _AddPartyMon: ; f2e5 (3:72e5)
pop hl
call AddPartyMon_WriteMovePP
inc de
- ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL
+ ld a, [W_CURENEMYLVL]
ld [de], a
inc de
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
dec a
jr nz, .calcFreshStats
- ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
+ ld hl, wEnemyMonMaxHP
ld bc, $a
call CopyData ; copy stats of cur enemy mon
pop hl
jr .done
.calcFreshStats
pop hl
- ld bc, $10
+ ld bc, wPartyMon1HPExp - 1 - wPartyMon1
add hl, bc
ld b, $0
call CalcStats ; calculate fresh set of stats
@@ -3572,7 +3595,7 @@ LoadMovePPs: ; f473 (3:7473)
call GetPredefRegisters
; fallthrough
AddPartyMon_WriteMovePP: ; f476 (3:7476)
- ld b, $4
+ ld b, NUM_MOVES
.pploop
ld a, [hli] ; read move ID
and a
@@ -3582,7 +3605,7 @@ AddPartyMon_WriteMovePP: ; f476 (3:7476)
push de
push bc
ld hl, Moves
- ld bc, $6
+ ld bc, MoveEnd - Moves
call AddNTimes
ld de, wcd6d
ld a, BANK(Moves)
@@ -3590,7 +3613,7 @@ AddPartyMon_WriteMovePP: ; f476 (3:7476)
pop bc
pop de
pop hl
- ld a, [wcd72] ; sixth move byte = pp
+ ld a, [wcd6d + 5] ; PP is byte 5 of move data
.empty
inc de
ld [de], a
@@ -3632,7 +3655,7 @@ _AddEnemyMonToPlayerParty: ; f49d (3:749d)
ld hl, wEnemyMonOT
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyData ; write new mon's OT name (from an enemy mon)
ld hl, wPartyMonNicks
ld a, [wPartyCount]
@@ -3643,7 +3666,7 @@ _AddEnemyMonToPlayerParty: ; f49d (3:749d)
ld hl, wEnemyMonNicks
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyData ; write new mon's nickname (from an enemy mon)
ld a, [wcf91]
ld [wd11e], a
@@ -3651,7 +3674,7 @@ _AddEnemyMonToPlayerParty: ; f49d (3:749d)
ld a, [wd11e]
dec a
ld c, a
- ld b, $1
+ ld b, FLAG_SET
ld hl, wPokedexOwned
push bc
call FlagAction ; add to owned pokemon
@@ -3661,22 +3684,22 @@ _AddEnemyMonToPlayerParty: ; f49d (3:749d)
and a
ret ; return success
-Func_f51e: ; f51e (3:751e)
- ld a, [wcf95]
+_MoveMon: ; f51e (3:751e)
+ ld a, [wMoveMonType]
and a
jr z, .checkPartyMonSlots
- cp $2
+ cp DAYCARE_TO_PARTY
jr z, .checkPartyMonSlots
- cp $3
+ cp PARTY_TO_DAYCARE
ld hl, wDayCareMon
jr z, .asm_f575
- ld hl, W_NUMINBOX ; wda80
+ ld hl, W_NUMINBOX
ld a, [hl]
cp MONS_PER_BOX
jr nz, .partyOrBoxNotFull
jr .boxFull
.checkPartyMonSlots
- ld hl, wPartyCount ; wPartyCount
+ ld hl, wPartyCount
ld a, [hl]
cp PARTY_LENGTH
jr nz, .partyOrBoxNotFull
@@ -3687,25 +3710,25 @@ Func_f51e: ; f51e (3:751e)
inc a
ld [hl], a ; increment number of mons in party/box
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
- ld a, [wcf95]
- cp $2
+ ld a, [wMoveMonType]
+ cp DAYCARE_TO_PARTY
ld a, [wDayCareMon]
jr z, .asm_f556
ld a, [wcf91]
.asm_f556
ld [hli], a ; write new mon ID
ld [hl], $ff ; write new sentinel
- ld a, [wcf95]
+ ld a, [wMoveMonType]
dec a
ld hl, wPartyMons
ld bc, wPartyMon2 - wPartyMon1 ; $2c
- ld a, [wPartyCount] ; wPartyCount
+ ld a, [wPartyCount]
jr nz, .skipToNewMonEntry
ld hl, wBoxMons
ld bc, wBoxMon2 - wBoxMon1 ; $21
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
.skipToNewMonEntry
dec a
call AddNTimes
@@ -3713,18 +3736,18 @@ Func_f51e: ; f51e (3:751e)
push hl
ld e, l
ld d, h
- ld a, [wcf95]
+ ld a, [wMoveMonType]
and a
ld hl, wBoxMons
ld bc, wBoxMon2 - wBoxMon1 ; $21
jr z, .asm_f591
- cp $2
+ cp DAYCARE_TO_PARTY
ld hl, wDayCareMon
jr z, .asm_f597
ld hl, wPartyMons
ld bc, wPartyMon2 - wPartyMon1 ; $2c
.asm_f591
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
call AddNTimes
.asm_f597
push hl
@@ -3733,10 +3756,10 @@ Func_f51e: ; f51e (3:751e)
call CopyData
pop de
pop hl
- ld a, [wcf95]
+ ld a, [wMoveMonType]
and a
jr z, .asm_f5b4
- cp $2
+ cp DAYCARE_TO_PARTY
jr z, .asm_f5b4
ld bc, wBoxMon2 - wBoxMon1
add hl, bc
@@ -3746,16 +3769,16 @@ Func_f51e: ; f51e (3:751e)
inc de
ld [de], a
.asm_f5b4
- ld a, [wcf95]
- cp $3
+ ld a, [wMoveMonType]
+ cp PARTY_TO_DAYCARE
ld de, W_DAYCAREMONOT
jr z, .asm_f5d3
dec a
- ld hl, wPartyMonOT ; wd273
- ld a, [wPartyCount] ; wPartyCount
+ ld hl, wPartyMonOT
+ ld a, [wPartyCount]
jr nz, .asm_f5cd
ld hl, wBoxMonOT
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
.asm_f5cd
dec a
call SkipFixedLengthTextEntries
@@ -3763,29 +3786,29 @@ Func_f51e: ; f51e (3:751e)
ld e, l
.asm_f5d3
ld hl, wBoxMonOT
- ld a, [wcf95]
+ ld a, [wMoveMonType]
and a
jr z, .asm_f5e6
ld hl, W_DAYCAREMONOT
- cp $2
+ cp DAYCARE_TO_PARTY
jr z, .asm_f5ec
- ld hl, wPartyMonOT ; wd273
+ ld hl, wPartyMonOT
.asm_f5e6
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
.asm_f5ec
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
- ld a, [wcf95]
- cp $3
+ ld a, [wMoveMonType]
+ cp PARTY_TO_DAYCARE
ld de, W_DAYCAREMONNAME
jr z, .asm_f611
dec a
- ld hl, wPartyMonNicks ; wPartyMonNicks
- ld a, [wPartyCount] ; wPartyCount
+ ld hl, wPartyMonNicks
+ ld a, [wPartyCount]
jr nz, .asm_f60b
ld hl, wBoxMonNicks
- ld a, [W_NUMINBOX] ; wda80
+ ld a, [W_NUMINBOX]
.asm_f60b
dec a
call SkipFixedLengthTextEntries
@@ -3793,40 +3816,40 @@ Func_f51e: ; f51e (3:751e)
ld e, l
.asm_f611
ld hl, wBoxMonNicks
- ld a, [wcf95]
+ ld a, [wMoveMonType]
and a
jr z, .asm_f624
ld hl, W_DAYCAREMONNAME
- cp $2
+ cp DAYCARE_TO_PARTY
jr z, .asm_f62a
- ld hl, wPartyMonNicks ; wPartyMonNicks
+ ld hl, wPartyMonNicks
.asm_f624
- ld a, [wWhichPokemon] ; wWhichPokemon
+ ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
.asm_f62a
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyData
pop hl
- ld a, [wcf95]
- cp $1
+ ld a, [wMoveMonType]
+ cp PARTY_TO_BOX
jr z, .asm_f664
- cp $3
+ cp PARTY_TO_DAYCARE
jr z, .asm_f664
push hl
srl a
add $2
- ld [wcc49], a
+ ld [wMonDataLocation], a
call LoadMonData
callba CalcLevelFromExperience
ld a, d
- ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
+ ld [W_CURENEMYLVL], a
pop hl
ld bc, wBoxMon2 - wBoxMon1
add hl, bc
ld [hli], a
ld d, h
ld e, l
- ld bc, $ffee
+ ld bc, -18
add hl, bc
ld b, $1
call CalcStats
@@ -3947,12 +3970,12 @@ HealParty:
push bc
ld hl, Moves
- ld bc, $0006
+ ld bc, MoveEnd - Moves
call AddNTimes
ld de, wcd6d
ld a, BANK(Moves)
call FarCopyData
- ld a, [wcd72] ; default pp
+ ld a, [wcd6d + 5] ; PP is byte 5 of move data
pop bc
pop de
@@ -4054,7 +4077,7 @@ DivideBCD::
.asm_f75b
push de
push de
- call Func_f800
+ call DivideBCD_f800
pop de
ld a, b
swap a
@@ -4063,8 +4086,8 @@ DivideBCD::
dec d
jr z, .asm_f7bc
push de
- call Func_f7d7
- call Func_f800
+ call DivideBCD_f7d7
+ call DivideBCD_f800
pop de
ld a, [$ffa5]
or b
@@ -4072,8 +4095,8 @@ DivideBCD::
dec d
jr z, .asm_f7bc
push de
- call Func_f7d7
- call Func_f800
+ call DivideBCD_f7d7
+ call DivideBCD_f800
pop de
ld a, b
swap a
@@ -4082,8 +4105,8 @@ DivideBCD::
dec d
jr z, .asm_f7bc
push de
- call Func_f7d7
- call Func_f800
+ call DivideBCD_f7d7
+ call DivideBCD_f800
pop de
ld a, [$ffa6]
or b
@@ -4091,8 +4114,8 @@ DivideBCD::
dec d
jr z, .asm_f7bc
push de
- call Func_f7d7
- call Func_f800
+ call DivideBCD_f7d7
+ call DivideBCD_f800
pop de
ld a, b
swap a
@@ -4101,8 +4124,8 @@ DivideBCD::
dec d
jr z, .asm_f7bc
push de
- call Func_f7d7
- call Func_f800
+ call DivideBCD_f7d7
+ call DivideBCD_f800
pop de
ld a, [$ffa7]
or b
@@ -4121,13 +4144,13 @@ DivideBCD::
ret z
.asm_f7ce
push af
- call Func_f7d7
+ call DivideBCD_f7d7
pop af
dec a
jr nz, .asm_f7ce
ret
-Func_f7d7: ; f7d7 (3:77d7)
+DivideBCD_f7d7: ; f7d7 (3:77d7)
ld a, [$ffa4]
swap a
and $f
@@ -4152,7 +4175,7 @@ Func_f7d7: ; f7d7 (3:77d7)
ld [$ffa2], a
ret
-Func_f800: ; f800 (3:7800)
+DivideBCD_f800: ; f800 (3:7800)
ld bc, $3
.asm_f803
ld de, $ff9f
@@ -4237,7 +4260,7 @@ InitPlayerData2:
ld [wPlayerID + 1], a
ld a, $ff
- ld [wd71b], a ; XXX what's this?
+ ld [wUnusedD71B], a
ld hl, wPartyCount
call InitializeEmptyList
@@ -4257,7 +4280,7 @@ START_MONEY EQU $3000
inc hl
ld [hl], a
- ld [wcc49], a
+ ld [wMonDataLocation], a
ld hl, W_OBTAINEDBADGES
ld [hli], a
@@ -4269,7 +4292,7 @@ START_MONEY EQU $3000
ld [hl], a
ld hl, W_GAMEPROGRESSFLAGS
- ld bc, $c8
+ ld bc, wGameProgressFlagsEnd - W_GAMEPROGRESSFLAGS
call FillMemory ; clear all game progress flags
jp InitializeMissableObjectsFlags
@@ -4282,91 +4305,96 @@ InitializeEmptyList:
ret
-IsItemInBag_: ; f8a5 (3:78a5)
+GetQuantityOfItemInBag: ; f8a5 (3:78a5)
+; In: b = item ID
+; Out: b = how many of that item are in the bag
call GetPredefRegisters
- ld hl, wNumBagItems ; wNumBagItems
-.asm_f8ab
+ ld hl, wNumBagItems
+.loop
inc hl
ld a, [hli]
cp $ff
- jr z, .asm_f8b7
+ jr z, .notInBag
cp b
- jr nz, .asm_f8ab
+ jr nz, .loop
ld a, [hl]
ld b, a
ret
-.asm_f8b7
- ld b, $0
+.notInBag
+ ld b, 0
ret
FindPathToPlayer: ; f8ba (3:78ba)
xor a
- ld hl, $ff97
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
+ ld hl, hFindPathNumSteps
+ ld [hli], a ; hFindPathNumSteps
+ ld [hli], a ; hFindPathFlags
+ ld [hli], a ; hFindPathYProgress
+ ld [hl], a ; hFindPathXProgress
ld hl, wNPCMovementDirections2
ld de, $0
.loop
- ld a, [$ff99]
+ ld a, [hFindPathYProgress]
ld b, a
- ld a, [$ff95] ; Y distance in steps
+ ld a, [hNPCPlayerYDistance] ; Y distance in steps
call CalcDifference
ld d, a
and a
jr nz, .asm_f8da
- ld a, [$ff98]
- set 0, a
- ld [$ff98], a
+ ld a, [hFindPathFlags]
+ set 0, a ; current end of path matches the player's Y coordinate
+ ld [hFindPathFlags], a
.asm_f8da
- ld a, [$ff9a]
+ ld a, [hFindPathXProgress]
ld b, a
- ld a, [$ff96] ; X distance in steps
+ ld a, [hNPCPlayerXDistance] ; X distance in steps
call CalcDifference
ld e, a
and a
jr nz, .asm_f8ec
- ld a, [$ff98]
- set 1, a
- ld [$ff98], a
+ ld a, [hFindPathFlags]
+ set 1, a ; current end of path matches the player's X coordinate
+ ld [hFindPathFlags], a
.asm_f8ec
- ld a, [$ff98]
- cp $3
+ ld a, [hFindPathFlags]
+ cp $3 ; has the end of the path reached the player's position?
jr z, .done
+; Compare whether the X distance between the player and the current of the path
+; is greater or if the Y distance is. Then, try to reduce whichever is greater.
ld a, e
cp d
- jr c, .asm_f90a
- ld a, [$ff9d]
+ jr c, .yDistanceGreater
+; x distance is greater
+ ld a, [hNPCPlayerRelativePosFlags]
bit 1, a
- jr nz, .asm_f900
+ jr nz, .playerIsLeftOfNPC
ld d, NPC_MOVEMENT_RIGHT
- jr .asm_f902
-.asm_f900
+ jr .next1
+.playerIsLeftOfNPC
ld d, NPC_MOVEMENT_LEFT
-.asm_f902
- ld a, [$ff9a]
- add $1
- ld [$ff9a], a
- jr .asm_f91c
-.asm_f90a
- ld a, [$ff9d]
+.next1
+ ld a, [hFindPathXProgress]
+ add 1
+ ld [hFindPathXProgress], a
+ jr .storeDirection
+.yDistanceGreater
+ ld a, [hNPCPlayerRelativePosFlags]
bit 0, a
- jr nz, .asm_f914
+ jr nz, .playerIsAboveNPC
ld d, NPC_MOVEMENT_DOWN
- jr .asm_f916
-.asm_f914
+ jr .next2
+.playerIsAboveNPC
ld d, NPC_MOVEMENT_UP
-.asm_f916
- ld a, [$ff99]
- add $1
- ld [$ff99], a
-.asm_f91c
+.next2
+ ld a, [hFindPathYProgress]
+ add 1
+ ld [hFindPathYProgress], a
+.storeDirection
ld a, d
ld [hli], a
- ld a, [$ff97]
+ ld a, [hFindPathNumSteps]
inc a
- ld [$ff97], a
+ ld [hFindPathNumSteps], a
jp .loop
.done
ld [hl], $ff
@@ -4374,13 +4402,13 @@ FindPathToPlayer: ; f8ba (3:78ba)
CalcPositionOfPlayerRelativeToNPC: ; f929 (3:7929)
xor a
- ld [$ff9d], a
+ ld [hNPCPlayerRelativePosFlags], a
ld a, [wSpriteStateData1 + 4] ; player's sprite screen Y position in pixels
ld d, a
ld a, [wSpriteStateData1 + 6] ; player's sprite screen X position in pixels
ld e, a
ld hl, wSpriteStateData1
- ld a, [$ff95] ; sprite offset
+ ld a, [hNPCSpriteOffset]
add l
add $4
ld l, a
@@ -4394,26 +4422,26 @@ CalcPositionOfPlayerRelativeToNPC: ; f929 (3:7929)
jr nc, .NPCSouthOfOrAlignedWithPlayer
.NPCNorthOfPlayer
push hl
- ld hl, $ff9d
+ ld hl, hNPCPlayerRelativePosFlags
bit 0, [hl]
set 0, [hl]
pop hl
jr .divideYDistance
.NPCSouthOfOrAlignedWithPlayer
push hl
- ld hl, $ff9d
+ ld hl, hNPCPlayerRelativePosFlags
bit 0, [hl]
res 0, [hl]
pop hl
.divideYDistance
push hl
- ld hl, $ffe5
+ ld hl, hDividend2
ld [hli], a
ld a, 16
ld [hli], a
call DivideBytes ; divide Y absolute distance by 16
ld a, [hl] ; quotient
- ld [$ff95], a
+ ld [hNPCPlayerYDistance], a
pop hl
inc hl
ld b, e
@@ -4422,35 +4450,35 @@ CalcPositionOfPlayerRelativeToNPC: ; f929 (3:7929)
jr nc, .NPCEastOfOrAlignedWithPlayer
.NPCWestOfPlayer
push hl
- ld hl, $ff9d
+ ld hl, hNPCPlayerRelativePosFlags
bit 1, [hl]
set 1, [hl]
pop hl
jr .divideXDistance
.NPCEastOfOrAlignedWithPlayer
push hl
- ld hl, $ff9d
+ ld hl, hNPCPlayerRelativePosFlags
bit 1, [hl]
res 1, [hl]
pop hl
.divideXDistance
- ld [$ffe5], a
+ ld [hDividend2], a
ld a, 16
- ld [$ffe6], a
+ ld [hDivisor2], a
call DivideBytes ; divide X absolute distance by 16
- ld a, [$ffe7] ; quotient
- ld [$ff96], a
- ld a, [$ff9b]
+ ld a, [hQuotient2]
+ ld [hNPCPlayerXDistance], a
+ ld a, [hNPCPlayerRelativePosPerspective]
and a
ret z
- ld a, [$ff9d]
+ ld a, [hNPCPlayerRelativePosFlags]
cpl
and $3
- ld [$ff9d], a
+ ld [hNPCPlayerRelativePosFlags], a
ret
ConvertNPCMovementDirectionsToJoypadMasks: ; f9a0 (3:79a0)
- ld a, [$ff95]
+ ld a, [hNPCMovementDirections2Index]
ld [wNPCMovementDirections2Index], a
dec a
ld de, wSimulatedJoypadStatesEnd
@@ -4464,9 +4492,9 @@ ConvertNPCMovementDirectionsToJoypadMasks: ; f9a0 (3:79a0)
call ConvertNPCMovementDirectionToJoypadMask
ld [de], a
inc de
- ld a, [$ff95]
+ ld a, [hNPCMovementDirections2Index]
dec a
- ld [$ff95], a
+ ld [hNPCMovementDirections2Index], a
jr nz, .loop
ret
@@ -4495,7 +4523,7 @@ NPCMovementDirectionsToJoypadMasksTable: ; f9d2 (3:79d2)
db NPC_MOVEMENT_RIGHT, D_RIGHT
db $ff
-Func_f9db: ; f9db (3:79db)
+; unreferenced
ret
INCLUDE "engine/hp_bar.asm"
@@ -4538,17 +4566,26 @@ SECTION "Graphics", ROMX, BANK[GFX]
PokemonLogoGraphics: INCBIN "gfx/pokemon_logo.2bpp"
FontGraphics: INCBIN "gfx/font.1bpp"
+FontGraphicsEnd:
ABTiles: INCBIN "gfx/AB.2bpp"
HpBarAndStatusGraphics: INCBIN "gfx/hp_bar_and_status.2bpp"
+HpBarAndStatusGraphicsEnd:
BattleHudTiles1: INCBIN "gfx/battle_hud1.1bpp"
+BattleHudTiles1End:
BattleHudTiles2: INCBIN "gfx/battle_hud2.1bpp"
BattleHudTiles3: INCBIN "gfx/battle_hud3.1bpp"
+BattleHudTiles3End:
NintendoCopyrightLogoGraphics: INCBIN "gfx/copyright.2bpp"
GamefreakLogoGraphics: INCBIN "gfx/gamefreak.2bpp"
+GamefreakLogoGraphicsEnd:
TextBoxGraphics: INCBIN "gfx/text_box.2bpp"
+TextBoxGraphicsEnd:
PokedexTileGraphics: INCBIN "gfx/pokedex.2bpp"
+PokedexTileGraphicsEnd:
WorldMapTileGraphics: INCBIN "gfx/town_map.2bpp"
+WorldMapTileGraphicsEnd:
PlayerCharacterTitleGraphics: INCBIN "gfx/player_title.2bpp"
+PlayerCharacterTitleGraphicsEnd:
SECTION "Battle (bank 4)", ROMX, BANK[$4]
@@ -5103,6 +5140,7 @@ SECTION "Battle (bank B)", ROMX, BANK[$B]
INCLUDE "engine/battle/display_effectiveness.asm"
TrainerInfoTextBoxTileGraphics: INCBIN "gfx/trainer_info.2bpp"
+TrainerInfoTextBoxTileGraphicsEnd:
BlankLeaderNames: INCBIN "gfx/blank_leader_names.2bpp"
CircleTile: INCBIN "gfx/circle_tile.2bpp"
BadgeNumbersTileGraphics: INCBIN "gfx/badge_numbers.2bpp"
@@ -5264,10 +5302,12 @@ INCLUDE "engine/battle/draw_hud_pokeball_gfx.asm"
TradingAnimationGraphics:
INCBIN "gfx/game_boy.norepeat.2bpp"
INCBIN "gfx/link_cable.2bpp"
+TradingAnimationGraphicsEnd:
TradingAnimationGraphics2:
; Pokeball traveling through the link cable.
INCBIN "gfx/trade2.2bpp"
+TradingAnimationGraphics2End:
INCLUDE "engine/evos_moves.asm"
;INCLUDE "engine/battle/moveEffects/heal_effect.asm"
@@ -5663,15 +5703,15 @@ AgathaPic:: INCBIN "pic/trainer/agatha.pic"
LancePic:: INCBIN "pic/trainer/lance.pic"
JessieJamesPic:: INCBIN "pic/ytrainer/jessiejames.pic"
-INCLUDE "data/mapHeaders/battlecenterm.asm"
-INCLUDE "scripts/battlecenterm.asm"
-INCLUDE "data/mapObjects/battlecenterm.asm"
-BattleCenterMBlocks: INCBIN "maps/battlecenterm.blk"
+INCLUDE "data/mapHeaders/tradecenter.asm"
+INCLUDE "scripts/tradecenter.asm"
+INCLUDE "data/mapObjects/tradecenter.asm"
+TradeCenterBlocks: INCBIN "maps/tradecenter.blk"
-INCLUDE "data/mapHeaders/tradecenterm.asm"
-INCLUDE "scripts/tradecenterm.asm"
-INCLUDE "data/mapObjects/tradecenterm.asm"
-TradeCenterMBlocks: INCBIN "maps/tradecenterm.blk"
+INCLUDE "data/mapHeaders/colosseum.asm"
+INCLUDE "scripts/colosseum.asm"
+INCLUDE "data/mapObjects/colosseum.asm"
+ColosseumBlocks: INCBIN "maps/colosseum.blk"
;INCLUDE "engine/give_pokemon.asm"
@@ -6250,6 +6290,7 @@ ENDC
IF DEF(_BLUE)
INCBIN "gfx/blue/blueversion.1bpp" ; 8 tiles
ENDC
+Version_GFXEnd:
Dojo_GFX:
Gym_GFX: INCBIN "gfx/tilesets/gym.2bpp"
diff --git a/maps/tradecenterm.blk b/maps/colosseum.blk
index d05a5b43..d05a5b43 100644
--- a/maps/tradecenterm.blk
+++ b/maps/colosseum.blk
diff --git a/maps/battlecenterm.blk b/maps/tradecenter.blk
index 638b48ef..638b48ef 100644
--- a/maps/battlecenterm.blk
+++ b/maps/tradecenter.blk
diff --git a/pic/ymon/electrode.png b/pic/ymon/electrode.png
index f5e05464..f5e05464 100644..100755
--- a/pic/ymon/electrode.png
+++ b/pic/ymon/electrode.png
Binary files differ
diff --git a/scripts/agatha.asm b/scripts/agatha.asm
index a8f9e137..1e34c99c 100755
--- a/scripts/agatha.asm
+++ b/scripts/agatha.asm
@@ -13,8 +13,7 @@ AgathaScript_76443: ; 76443 (1d:6443)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd865]
- bit 1, a
+ CheckEvent EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
jr z, .asm_76457
ld a, $e
jp AgathaScript_76459
@@ -22,8 +21,8 @@ AgathaScript_76443: ; 76443 (1d:6443)
ld a, $3b
AgathaScript_76459: ; 76459 (1d:6459)
- ld [wd09f], a
- ld bc, $2
+ ld [wNewTileBlockID], a
+ lb bc, 0, 2
predef_jump ReplaceTileBlock
AgathaScript_76464: ; 76464 (1d:6464)
@@ -40,7 +39,8 @@ AgathaScriptPointers: ; 76469 (1d:6469)
AgathaScript4: ; 76473 (1d:6473)
ret
-asm_76474: ; 76474 (1d:6474)
+
+AgathaScript_76474: ; 76474 (1d:6474)
ld hl, wSimulatedJoypadStatesEnd
ld a, D_UP
ld [hli], a
@@ -66,16 +66,14 @@ AgathaScript0: ; 76490 (1d:6490)
ld [hJoyHeld], a
ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesIndex], a
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wCoordIndex]
cp $3
jr c, .asm_764b4
- ld hl, wd865
- bit 6, [hl]
- set 6, [hl]
- jr z, asm_76474
+ CheckAndSetEvent EVENT_AUTOWALKED_INTO_AGATHAS_ROOM
+ jr z, AgathaScript_76474
.asm_764b4
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
@@ -107,11 +105,11 @@ AgathaScript3: ; 764da (1d:64da)
AgathaScript2: ; 764ed (1d:64ed)
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, AgathaScript_76464
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
ld [W_GARYCURSCRIPT], a
@@ -119,22 +117,22 @@ AgathaScript2: ; 764ed (1d:64ed)
AgathaTextPointers: ; 76505 (1d:6505)
dw AgathaText1
- dw AgathaText2
+ dw AgathaDontRunAwayText
AgathaTrainerHeaders: ; 76509 (1d:6509)
AgathaTrainerHeader0: ; 76509 (1d:6509)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd865 ; flag's byte
- dw AgathaBeforeBattleText ; 0x6520 TextBeforeBattle
- dw AgathaAfterBattleText ; 0x652a TextAfterBattle
- dw AgathaEndBattleText ; 0x6525 TextEndBattle
- dw AgathaEndBattleText ; 0x6525 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
+ dw AgathaBeforeBattleText ; TextBeforeBattle
+ dw AgathaAfterBattleText ; TextAfterBattle
+ dw AgathaEndBattleText ; TextEndBattle
+ dw AgathaEndBattleText ; TextEndBattle
db $ff
AgathaText1: ; 76516 (1d:6516)
- db $08 ; asm
+ TX_ASM
ld hl, AgathaTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -151,6 +149,6 @@ AgathaAfterBattleText: ; 7652a (1d:652a)
TX_FAR _AgathaAfterBattleText
db "@"
-AgathaText2: ; 7652f (1d:652f)
- TX_FAR _AgathaText2
+AgathaDontRunAwayText: ; 7652f (1d:652f)
+ TX_FAR _AgathaDontRunAwayText
db "@"
diff --git a/scripts/beach_house.asm b/scripts/beach_house.asm
index 67c29f1b..d6112df7 100644
--- a/scripts/beach_house.asm
+++ b/scripts/beach_house.asm
@@ -11,7 +11,7 @@ BeachHouseTextPointers:
dw BeachHouseSign4Text
SurfinDudeText:
- db 8
+ TX_ASM
ld a,[$d471]
bit 6,a
jr nz,.next
@@ -61,7 +61,7 @@ SurfinDudeText:
db "@"
BeachHousePikachuText:
- db 8
+ TX_ASM
ld hl,.BeachHousePikachuText
call PrintText
ld a,PIKACHU
@@ -74,7 +74,7 @@ BeachHousePikachuText:
db "@"
BeachHouseSign1Text:
- db 8
+ TX_ASM
ld hl,.BeachHouseSign1Text2
ld a,[$d471]
bit 6,a
@@ -92,7 +92,7 @@ BeachHouseSign1Text:
db "@"
BeachHouseSign2Text:
- db 8
+ TX_ASM
ld hl,.BeachHouseSign2Text2
ld a,[$d471]
bit 6,a
@@ -110,7 +110,7 @@ BeachHouseSign2Text:
db "@"
BeachHouseSign3Text:
- db 8
+ TX_ASM
ld hl,.BeachHouseSign3Text2
ld a,[$d471]
bit 6,a
@@ -128,7 +128,7 @@ BeachHouseSign3Text:
db "@"
BeachHouseSign4Text:
- db 8
+ TX_ASM
ld a,1
ld [$cc3c],a
ld a,[$d471]
diff --git a/scripts/bikeshop.asm b/scripts/bikeshop.asm
index 4bd26a7e..e639caf9 100755
--- a/scripts/bikeshop.asm
+++ b/scripts/bikeshop.asm
@@ -7,27 +7,25 @@ BikeShopTextPointers: ; 1d73f (7:573f)
dw BikeShopText3
BikeShopText1: ; 1d745 (7:5745)
- db $08 ; asm
- ld a, [wd75f]
- bit 0, a
- jr z, .asm_260d4 ; 0x1d74b
+ TX_ASM
+ CheckEvent EVENT_GOT_BICYCLE
+ jr z, .asm_260d4
ld hl, BikeShopText_1d82f
call PrintText
jp .Done
-.asm_260d4 ; 0x1d756
+.asm_260d4
ld b, BIKE_VOUCHER
call IsItemInBag
- jr z, .asm_41190 ; 0x1d75b
+ jr z, .asm_41190
ld hl, BikeShopText_1d81f
call PrintText
- ld bc, (BICYCLE << 8) | 1
+ lb bc, BICYCLE, 1
call GiveItem
jr nc, .BagFull
ld a, BIKE_VOUCHER
- ldh [$db], a
+ ld [$ffdb], a
callba RemoveItemByID
- ld hl, wd75f
- set 0, [hl]
+ SetEvent EVENT_GOT_BICYCLE
ld hl, BikeShopText_1d824
call PrintText
jr .Done
@@ -35,13 +33,13 @@ BikeShopText1: ; 1d745 (7:5745)
ld hl, BikeShopText_1d834
call PrintText
jr .Done
-.asm_41190 ; 0x1d78c
+.asm_41190
ld hl, BikeShopText_1d810
call PrintText
xor a
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
- ld a, $3
+ ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
ld a, $1
ld [wMaxMenuItem], a
@@ -51,31 +49,31 @@ BikeShopText1: ; 1d745 (7:5745)
ld [wTopMenuItemX], a
ld hl, wd730
set 6, [hl]
- ld hl, wTileMap
+ coord hl, 0, 0
ld b, $4
ld c, $f
call TextBoxBorder
call UpdateSprites
- hlCoord 2, 2
+ coord hl, 2, 2
ld de, BikeShopMenuText
call PlaceString
- hlCoord 8, 3
+ coord hl, 8, 3
ld de, BikeShopMenuPrice
call PlaceString
ld hl, BikeShopText_1d815
call PrintText
call HandleMenuInput
bit 1, a
- jr nz, .asm_b7579 ; 0x1d7dc
+ jr nz, .cancel
ld hl, wd730
res 6, [hl]
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_b7579 ; 0x1d7e7
- ld hl, BikeShopText_1d81a
+ jr nz, .cancel
+ ld hl, BikeShopCantAffordText
call PrintText
-.asm_b7579 ; 0x1d7ef
- ld hl, BikeShopText_1d82a
+.cancel
+ ld hl, BikeShopComeAgainText
call PrintText
.Done
jp TextScriptEnd
@@ -95,8 +93,8 @@ BikeShopText_1d815: ; 1d815 (7:5815)
TX_FAR _BikeShopText_1d815
db "@"
-BikeShopText_1d81a: ; 1d81a (7:581a)
- TX_FAR _BikeShopText_1d81a
+BikeShopCantAffordText: ; 1d81a (7:581a)
+ TX_FAR _BikeShopCantAffordText
db "@"
BikeShopText_1d81f: ; 1d81f (7:581f)
@@ -104,11 +102,11 @@ BikeShopText_1d81f: ; 1d81f (7:581f)
db "@"
BikeShopText_1d824: ; 1d824 (7:5824)
- TX_FAR _BikeShopText_1d824 ; 0x98eb2
+ TX_FAR _BikeShopText_1d824
db $11, "@"
-BikeShopText_1d82a: ; 1d82a (7:582a)
- TX_FAR _BikeShopText_1d82a
+BikeShopComeAgainText: ; 1d82a (7:582a)
+ TX_FAR _BikeShopComeAgainText
db "@"
BikeShopText_1d82f: ; 1d82f (7:582f)
@@ -120,7 +118,7 @@ BikeShopText_1d834: ; 1d834 (7:5834)
db "@"
BikeShopText2: ; 1d839 (7:5839)
- db $08 ; asm
+ TX_ASM
ld hl, BikeShopText_1d843
call PrintText
jp TextScriptEnd
@@ -130,13 +128,12 @@ BikeShopText_1d843: ; 1d843 (7:5843)
db "@"
BikeShopText3: ; 1d848 (7:5848)
- db $08 ; asm
- ld a, [wd75f]
- bit 0, a
+ TX_ASM
+ CheckEvent EVENT_GOT_BICYCLE
ld hl, BikeShopText_1d861
- jr nz, .asm_34d2d ; 0x1d851
+ jr nz, .asm_34d2d
ld hl, BikeShopText_1d85c
-.asm_34d2d ; 0x1d856
+.asm_34d2d
call PrintText
jp TextScriptEnd
diff --git a/scripts/billshouse.asm b/scripts/billshouse.asm
index 61a575b9..08ac98d6 100755
--- a/scripts/billshouse.asm
+++ b/scripts/billshouse.asm
@@ -17,33 +17,41 @@ BillsHouseScript0: ; 1e782 (7:6782)
BillsHouseScript1: ; 1e783 (7:6783)
ld a, [wSpriteStateData1 + 9]
- and a
+ and a ; cp SPRITE_FACING_DOWN
ld de, MovementData_1e79c
- jr nz, .asm_1e78f ; 0x1e78a $3
+ jr nz, .notDown
ld de, MovementData_1e7a0
-.asm_1e78f
+.notDown
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $2
ld [W_BILLSHOUSECURSCRIPT], a
ret
MovementData_1e79c: ; 1e79c (7:679c)
- db $40,$40,$40,$FF
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db $FF
+; make Bill walk around the player
MovementData_1e7a0: ; 1e7a0 (7:67a0)
- db $C0,$40,$40,$80,$40,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_LEFT
+ db NPC_MOVEMENT_UP
+ db $FF
BillsHouseScript2: ; 1e7a6 (7:67a6)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_BILL_POKEMON
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
- ld hl, wd7f2
- set 6, [hl]
+ SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
xor a
ld [wJoyIgnore], a
ld a, $3
@@ -51,8 +59,7 @@ BillsHouseScript2: ; 1e7a6 (7:67a6)
ret
BillsHouseScript3: ; 1e7c5 (7:67c5)
- ld a, [wd7f2]
- bit 3, a
+ CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL
ret z
ld a, $f0
ld [wJoyIgnore], a
@@ -68,12 +75,12 @@ BillsHouseScript3: ; 1e7c5 (7:67c5)
ld [$ffee], a
call SetSpritePosition1
ld a, HS_BILL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
- ld c, $8
+ ld c, 8
call DelayFrames
ld a, $2
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
ld de, MovementData_1e807
call MoveSprite
ld a, $4
@@ -81,7 +88,12 @@ BillsHouseScript3: ; 1e7c5 (7:67c5)
ret
MovementData_1e807: ; 1e807 (7:6807)
- db $00,$C0,$C0,$C0,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db $FF
BillsHouseScript4: ; 1e80d (7:680d)
ld a, [wd730]
@@ -89,17 +101,15 @@ BillsHouseScript4: ; 1e80d (7:680d)
ret nz
xor a
ld [wJoyIgnore], a
- ld hl, wd7f2
- set 5, [hl]
- ld hl, wd7f1
- set 0, [hl]
+ SetEvent EVENT_MET_BILL_2 ; this event seems redundant
+ SetEvent EVENT_MET_BILL
ld a, $0
ld [W_BILLSHOUSECURSCRIPT], a
ret
BillsHouseScript5: ; 1e827 (7:6827)
ld a, $4
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $0
ld [W_BILLSHOUSECURSCRIPT], a
@@ -115,66 +125,64 @@ BillsHouseText4: ; 1e83c (7:683c)
db $fd
BillsHouseText1: ; 1e83d (7:683d)
- db $8
+ TX_ASM
ld hl, BillsHouseText_1e865
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, asm_6b196 ; 0x1e84b $d
-asm_4d03c: ; 1e84d (7:684d)
+ jr nz, .asm_1e85a
+.asm_1e84d
ld hl, BillsHouseText_1e86a
call PrintText
ld a, $1
ld [W_BILLSHOUSECURSCRIPT], a
- jr asm_fd4e2 ; 0x1e858 $8
-asm_6b196: ; 1e85a (7:685a)
+ jr .asm_1e862
+.asm_1e85a
ld hl, BillsHouseText_1e86f
call PrintText
- jr asm_4d03c ; 0x1e860 $eb
-asm_fd4e2 ; 0x1e862
+ jr .asm_1e84d
+.asm_1e862
jp TextScriptEnd
BillsHouseText_1e865: ; 1e865 (7:6865)
- TX_FAR _BillsHouseText_1e865 ; 0x8d267
+ TX_FAR _BillsHouseText_1e865
db "@"
BillsHouseText_1e86a: ; 1e86a (7:686a)
- TX_FAR _BillsHouseText_1e86a ; 0x8d345
+ TX_FAR _BillsHouseText_1e86a
db "@"
BillsHouseText_1e86f: ; 1e86f (7:686f)
- TX_FAR _BillsHouseText_1e86f ; 0x8d391
+ TX_FAR _BillsHouseText_1e86f
db "@"
BillsHouseText2: ; 1e874 (7:6874)
- db $08 ; asm
- ld a, [wd7f2]
- bit 4, a
- jr nz, .asm_5491f ; 0x1e87a
+ TX_ASM
+ CheckEvent EVENT_GOT_SS_TICKET
+ jr nz, .asm_1e8a9
ld hl, BillThankYouText
call PrintText
- ld bc, (S_S__TICKET << 8) | 1
+ lb bc, S_S__TICKET, 1
call GiveItem
jr nc, .BagFull
ld hl, SSTicketReceivedText
call PrintText
- ld hl, wd7f2
- set 4, [hl]
+ SetEvent EVENT_GOT_SS_TICKET
ld a, HS_CERULEAN_GUARD_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_CERULEAN_GUARD_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
-.asm_5491f ; 0x1e8a9
+.asm_1e8a9
ld hl, BillsHouseText_1e8cb
call PrintText
- jr .asm_bd408 ; 0x1e8af
+ jr .asm_1e8b7
.BagFull
ld hl, SSTicketNoRoomText
call PrintText
-.asm_bd408 ; 0x1e8b7
+.asm_1e8b7
jp TextScriptEnd
BillThankYouText: ; 1e8ba (7:68ba)
@@ -194,7 +202,7 @@ BillsHouseText_1e8cb: ; 1e8cb (7:68cb)
db "@"
BillsHouseText3: ; 1e8d0 (7:68d0)
- db $08 ; asm
+ TX_ASM
ld hl, BillsHouseText_1e8da
call PrintText
jp TextScriptEnd
diff --git a/scripts/blueshouse.asm b/scripts/blueshouse.asm
index ab05e286..6aa2eaec 100755
--- a/scripts/blueshouse.asm
+++ b/scripts/blueshouse.asm
@@ -9,8 +9,7 @@ BluesHouseScriptPointers: ; 19b47 (6:5b47)
dw BluesHouseScript1
BluesHouseScript0: ; 19b4b (6:5b4b)
- ld hl,wd74a
- set 1,[hl]
+ SetEvent EVENT_ENTERED_BLUES_HOUSE
; trigger the next script
ld a,1
@@ -26,12 +25,10 @@ BluesHouseTextPointers: ; 19b57 (6:5b57)
dw BluesHouseText3
BluesHouseText1: ; 19b5d (6:5b5d)
- db 8
- ld a,[wd74a]
- bit 0,a
+ TX_ASM
+ CheckEvent EVENT_GOT_TOWN_MAP
jr nz,.GotMap
- ld a,[wd74b]
- bit 5,a
+ CheckEvent EVENT_GOT_POKEDEX
jr nz,.GiveMap
ld hl,DaisyInitialText
call PrintText
@@ -39,16 +36,15 @@ BluesHouseText1: ; 19b5d (6:5b5d)
.GiveMap
ld hl,DaisyOfferMapText
call PrintText
- ld bc,(TOWN_MAP << 8) | 1
+ lb bc, TOWN_MAP, 1
call GiveItem
jr nc, .BagFull
ld a,HS_TOWN_MAP
- ld [wcc4d],a
+ ld [wMissableObjectIndex],a
predef HideObject ; hide table map object
ld hl,GotMapText
call PrintText
- ld hl,wd74a
- set 0,[hl]
+ SetEvent EVENT_GOT_TOWN_MAP
jr .done
.GotMap
ld hl,DaisyUseMapText
diff --git a/scripts/bruno.asm b/scripts/bruno.asm
index ffe05bce..bdfd7e24 100755
--- a/scripts/bruno.asm
+++ b/scripts/bruno.asm
@@ -13,8 +13,7 @@ BrunoScript_762ec: ; 762ec (1d:62ec)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd864]
- bit 1, a
+ CheckEvent EVENT_BEAT_BRUNOS_ROOM_TRAINER_0
jr z, .asm_76300
ld a, $5
jp BrunoScript_76302
@@ -22,8 +21,8 @@ BrunoScript_762ec: ; 762ec (1d:62ec)
ld a, $24
BrunoScript_76302: ; 76302 (1d:6302)
- ld [wd09f], a
- ld bc, $2
+ ld [wNewTileBlockID], a
+ lb bc, 0, 2
predef_jump ReplaceTileBlock
BrunoScript_7630d: ; 7630d (1d:630d)
@@ -40,7 +39,8 @@ BrunoScriptPointers: ; 76312 (1d:6312)
BrunoScript4: ; 7631c (1d:631c)
ret
-asm_7631d: ; 7631d (1d:631d)
+
+BrunoScript_7631d: ; 7631d (1d:631d)
ld hl, wSimulatedJoypadStatesEnd
ld a, D_UP
ld [hli], a
@@ -66,16 +66,14 @@ BrunoScript0: ; 76339 (1d:6339)
ld [hJoyHeld], a
ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesIndex], a
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wCoordIndex]
cp $3
jr c, .asm_7635d
- ld hl, wd864
- bit 6, [hl]
- set 6, [hl]
- jr z, asm_7631d
+ CheckAndSetEvent EVENT_AUTOWALKED_INTO_BRUNOS_ROOM
+ jr z, BrunoScript_7631d
.asm_7635d
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
@@ -107,31 +105,31 @@ BrunoScript3: ; 76383 (1d:6383)
BrunoScript2: ; 76396 (1d:6396)
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, BrunoScript_7630d
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
BrunoTextPointers: ; 763a8 (1d:63a8)
dw BrunoText1
- dw BrunoText2
+ dw BrunoDontRunAwayText
BrunoTrainerHeaders: ; 763ac (1d:63ac)
BrunoTrainerHeader0: ; 763ac (1d:63ac)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_BRUNOS_ROOM_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd864 ; flag's byte
- dw BrunoBeforeBattleText ; 0x63c3 TextBeforeBattle
- dw BrunoAfterBattleText ; 0x63cd TextAfterBattle
- dw BrunoEndBattleText ; 0x63c8 TextEndBattle
- dw BrunoEndBattleText ; 0x63c8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_BRUNOS_ROOM_TRAINER_0
+ dw BrunoBeforeBattleText ; TextBeforeBattle
+ dw BrunoAfterBattleText ; TextAfterBattle
+ dw BrunoEndBattleText ; TextEndBattle
+ dw BrunoEndBattleText ; TextEndBattle
db $ff
BrunoText1: ; 763b9 (1d:63b9)
- db $08 ; asm
+ TX_ASM
ld hl, BrunoTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -148,6 +146,6 @@ BrunoAfterBattleText: ; 763cd (1d:63cd)
TX_FAR _BrunoAfterBattleText
db "@"
-BrunoText2: ; 763d2 (1d:63d2)
- TX_FAR _UnnamedText_763d2
+BrunoDontRunAwayText: ; 763d2 (1d:63d2)
+ TX_FAR _BrunoDontRunAwayText
db "@"
diff --git a/scripts/celadoncity.asm b/scripts/celadoncity.asm
index 004d8773..cfc8f197 100755
--- a/scripts/celadoncity.asm
+++ b/scripts/celadoncity.asm
@@ -1,10 +1,7 @@
CeladonCityScript: ; 19956 (6:5956)
call EnableAutoTextBoxDrawing
- ld hl, wd77e
- res 0, [hl]
- res 7, [hl]
- ld hl, wd816
- res 7, [hl]
+ ResetEvents EVENT_1B8, EVENT_1BF
+ ResetEvent EVENT_67F
ret
CeladonCityTextPointers: ; 19966 (6:5966)
@@ -44,13 +41,12 @@ CeladonCityText4: ; 19999 (6:5999)
db "@"
CeladonCityText5: ; 1999e (6:599e)
- db $08 ; asm
- ld a, [wd777]
- bit 0, a
- jr nz, .asm_7053f ; 0x199a4
+ TX_ASM
+ CheckEvent EVENT_GOT_TM41
+ jr nz, .asm_7053f
ld hl, TM41PreText
call PrintText
- ld bc, (TM_41 << 8) | 1
+ lb bc, TM_41, 1
call GiveItem
jr c, .Success
ld hl, TM41NoRoomText
@@ -59,10 +55,9 @@ CeladonCityText5: ; 1999e (6:599e)
.Success
ld hl, ReceivedTM41Text
call PrintText
- ld hl, wd777
- set 0, [hl]
+ SetEvent EVENT_GOT_TM41
jr .Done
-.asm_7053f ; 0x199c9
+.asm_7053f
ld hl, TM41ExplanationText
call PrintText
.Done
@@ -90,7 +85,7 @@ CeladonCityText6: ; 199e7 (6:59e7)
CeladonCityText7: ; 199ec (6:59ec)
TX_FAR _CeladonCityText7
- db $08 ; asm
+ TX_ASM
ld a, POLIWRATH
call PlayCry
jp TextScriptEnd
diff --git a/scripts/celadondiner.asm b/scripts/celadondiner.asm
index 5ae89022..be1ed4c8 100755
--- a/scripts/celadondiner.asm
+++ b/scripts/celadondiner.asm
@@ -26,28 +26,26 @@ CeladonDinerText4: ; 4916e (12:516e)
db "@"
CeladonDinerText5: ; 49173 (12:5173)
- db $08 ; asm
- ld a, [wd783]
- bit 0, a
- jr nz, .asm_eb14d ; 0x49179
+ TX_ASM
+ CheckEvent EVENT_GOT_COIN_CASE
+ jr nz, .asm_eb14d
ld hl, CeladonDinerText_491a7
call PrintText
- ld bc, (COIN_CASE << 8) | 1
+ lb bc, COIN_CASE, 1
call GiveItem
jr nc, .BagFull
- ld hl, wd783
- set 0, [hl]
+ SetEvent EVENT_GOT_COIN_CASE
ld hl, ReceivedCoinCaseText
call PrintText
- jr .asm_68b61 ; 0x49194
+ jr .asm_68b61
.BagFull
ld hl, CoinCaseNoRoomText
call PrintText
- jr .asm_68b61 ; 0x4919c
-.asm_eb14d ; 0x4919e
+ jr .asm_68b61
+.asm_eb14d
ld hl, CeladonDinerText_491b7
call PrintText
-.asm_68b61 ; 0x491a4
+.asm_68b61
jp TextScriptEnd
CeladonDinerText_491a7: ; 491a7 (12:51a7)
diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm
index 5dbbd06a..787a2f3d 100755
--- a/scripts/celadongamecorner.asm
+++ b/scripts/celadongamecorner.asm
@@ -12,7 +12,7 @@ CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf)
res 6, [hl]
ret z
call Random
- ld a, [$ffd3]
+ ld a, [hRandomAdd]
cp $7
jr nc, .asm_48be2
ld a, $8
@@ -20,7 +20,7 @@ CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf)
srl a
srl a
srl a
- ld [wUnknownSlotVar], a
+ ld [wLuckySlotHiddenObjectIndex], a
ret
CeladonGameCornerScript_48bec: ; 48bec (12:4bec)
@@ -28,12 +28,11 @@ CeladonGameCornerScript_48bec: ; 48bec (12:4bec)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd77e]
- bit 1, a
+ CheckEvent EVENT_FOUND_ROCKET_HIDEOUT
ret nz
ld a, $2a
- ld [wd09f], a
- ld bc, $0208
+ ld [wNewTileBlockID], a
+ lb bc, 2, 8
predef_jump ReplaceTileBlock
CeladonGameCornerScript_48c07: ; 48c07 (12:4c07)
@@ -58,10 +57,10 @@ CeladonGameCornerScript1: ; 48c19 (12:4c19)
ld a, $f0
ld [wJoyIgnore], a
ld a, $d
- ld [H_SPRITEHEIGHT], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $b
- ld [H_SPRITEHEIGHT], a
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld de, MovementData_48c5a
ld a, [W_YCOORD]
@@ -76,17 +75,30 @@ CeladonGameCornerScript1: ; 48c19 (12:4c19)
ld de, MovementData_48c63
.asm_48c4d
ld a, $b
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $2
ld [W_CELADONGAMECORNERCURSCRIPT], a
ret
MovementData_48c5a: ; 48c5a (12:4c5a)
- db $00,$C0,$C0,$40,$C0,$C0,$C0,$C0,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
MovementData_48c63: ; 48c63 (12:4c63)
- db $C0,$C0,$C0,$C0,$C0,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
CeladonGameCornerScript2: ; 48c69 (12:4c69)
ld a, [wd730]
@@ -95,7 +107,7 @@ CeladonGameCornerScript2: ; 48c69 (12:4c69)
xor a
ld [wJoyIgnore], a
ld a, HS_GAME_CORNER_ROCKET
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld hl, wd126
set 5, [hl]
@@ -124,59 +136,59 @@ CeladonGameCornerText1: ; 48ca4 (12:4ca4)
db "@"
CeladonGameCornerText2: ; 48ca9 (12:4ca9)
- db $08 ; asm
+ TX_ASM
call CeladonGameCornerScript_48f1e
ld hl, CeladonGameCornerText_48d22
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_c650b ; 0x48cba
+ jr nz, .asm_48d0f
ld b,COIN_CASE
call IsItemInBag
- jr z, .asm_ed086 ; 0x48cc1
+ jr z, .asm_48d19
call Has9990Coins
- jr nc, .asm_31338 ; 0x48cc6
+ jr nc, .asm_48d14
xor a
- ld [$ff9f], a
- ld [$ffa1], a
+ ld [hMoney], a
+ ld [hMoney + 2], a
ld a, $10
- ld [$ffa0], a
+ ld [hMoney + 1], a
call HasEnoughMoney
- jr nc, .asm_b6ef0 ; 0x48cd4
- ld hl, CeladonGameCornerText_48d31 ; $4d31
- jr .asm_e2afd ; 0x48cd9
-.asm_b6ef0 ; 0x48cdb
+ jr nc, .asm_48cdb
+ ld hl, CeladonGameCornerText_48d31
+ jr .asm_48d1c
+.asm_48cdb
xor a
- ld [$ff9f], a
- ld [$ffa1], a
+ ld [hMoney], a
+ ld [hMoney + 2], a
ld a, $10
- ld [$fa0], a
- ld hl, $ffa1
+ ld [hMoney + 1], a
+ ld hl, hMoney + 2
ld de, wPlayerMoney + 2
ld c, $3
predef SubBCDPredef
xor a
- ld [$ff9f], a
- ld [$ffa0], a
+ ld [hUnusedCoinsByte], a
+ ld [hCoins], a
ld a, $50
- ld [$ffa1], a
+ ld [hCoins + 1], a
ld de, wPlayerCoins + 1
- ld hl, $ffa1
+ ld hl, hCoins + 1
ld c, $2
predef AddBCDPredef
call CeladonGameCornerScript_48f1e
ld hl, CeladonGameCornerText_48d27
- jr .asm_e2afd ; 0x48d0d
-.asm_c650b ; 0x48d0f
+ jr .asm_48d1c
+.asm_48d0f
ld hl, CeladonGameCornerText_48d2c
- jr .asm_e2afd ; 0x48d12
-.asm_31338 ; 0x48d14
+ jr .asm_48d1c
+.asm_48d14
ld hl, CeladonGameCornerText_48d36
- jr .asm_e2afd ; 0x48d17
-.asm_ed086 ; 0x48d19
+ jr .asm_48d1c
+.asm_48d19
ld hl, CeladonGameCornerText_48d3b
-.asm_e2afd ; 0x48d1c
+.asm_48d1c
call PrintText
jp TextScriptEnd
@@ -213,41 +225,39 @@ CeladonGameCornerText4: ; 48d45 (12:4d45)
db "@"
CeladonGameCornerText5: ; 48d4a (12:4d4a)
- db $08 ; asm
- ld a, [wd77e]
- bit 2, a
- jr nz, .asm_d0957 ; 0x48d50
+ TX_ASM
+ CheckEvent EVENT_GOT_10_COINS
+ jr nz, .asm_48d89
ld hl, CeladonGameCornerText_48d9c
call PrintText
ld b, COIN_CASE
call IsItemInBag
- jr z, .asm_5aef9 ; 0x48d5d
+ jr z, .asm_48d93
call Has9990Coins
- jr nc, .asm_98546 ; 0x48d62
+ jr nc, .asm_48d8e
xor a
- ld [$ff9f], a
- ld [$ffa0], a
+ ld [hUnusedCoinsByte], a
+ ld [hCoins], a
ld a, $10
- ld [$ffa1], a
+ ld [hCoins + 1], a
ld de, wPlayerCoins + 1
- ld hl, $ffa1
+ ld hl, hCoins + 1
ld c, $2
predef AddBCDPredef
- ld hl, wd77e
- set 2, [hl]
+ SetEvent EVENT_GOT_10_COINS
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, Received10CoinsText
- jr .asm_c7d1a ; 0x48d87
-.asm_d0957 ; 0x48d89
+ jr .asm_48d96
+.asm_48d89
ld hl, CeladonGameCornerText_48dac
- jr .asm_c7d1a ; 0x48d8c
-.asm_98546 ; 0x48d8e
+ jr .asm_48d96
+.asm_48d8e
ld hl, CeladonGameCornerText_48da7
- jr .asm_c7d1a ; 0x48d91
-.asm_5aef9 ; 0x48d93
+ jr .asm_48d96
+.asm_48d93
ld hl, CeladonGameCornerText_48f19
-.asm_c7d1a ; 0x48d96
+.asm_48d96
call PrintText
jp TextScriptEnd
@@ -272,13 +282,12 @@ CeladonGameCornerText6: ; 48db1 (12:4db1)
db "@"
CeladonGameCornerText7: ; 48db6 (12:4db6)
- db $08 ; asm
- ld a, [wd77c]
- bit 1, a
- ld hl, CeladonGameCornerText_48dca ; $4dca
- jr z, .asm_be3fd ; 0x48dbf
- ld hl, CeladonGameCornerText_48dcf ; $4dcf
-.asm_be3fd ; 0x48dc4
+ TX_ASM
+ CheckEvent EVENT_BEAT_ERIKA
+ ld hl, CeladonGameCornerText_48dca
+ jr z, .asm_48dc4
+ ld hl, CeladonGameCornerText_48dcf
+.asm_48dc4
call PrintText
jp TextScriptEnd
@@ -295,39 +304,37 @@ CeladonGameCornerText8: ; 48dd4 (12:4dd4)
db "@"
CeladonGameCornerText9: ; 48dd9 (12:4dd9)
- db $08 ; asm
- ld a, [wd77e]
- bit 4, a
- jr nz, .asm_ed8bc ; 0x48ddf
+ TX_ASM
+ CheckEvent EVENT_GOT_20_COINS_2
+ jr nz, .asm_48e13
ld hl, CeladonGameCornerText_48e26
call PrintText
ld b, COIN_CASE
call IsItemInBag
- jr z, .asm_df794 ; 0x48dec
+ jr z, .asm_48e1d
call Has9990Coins
- jr nc, .asm_f17c3 ; 0x48df1
+ jr nc, .asm_48e18
xor a
- ld [$ff9f], a
- ld [$ffa0], a
+ ld [hUnusedCoinsByte], a
+ ld [hCoins], a
ld a, $20
- ld [$ffa1], a
+ ld [hCoins + 1], a
ld de, wPlayerCoins + 1
- ld hl, $ffa1
+ ld hl, hCoins + 1
ld c, $2
predef AddBCDPredef
- ld hl, wd77e
- set 4, [hl]
+ SetEvent EVENT_GOT_20_COINS_2
ld hl, Received20CoinsText
- jr .asm_0ddc2 ; 0x48e11
-.asm_ed8bc ; 0x48e13
+ jr .asm_48e20
+.asm_48e13
ld hl, CeladonGameCornerText_48e36
- jr .asm_0ddc2 ; 0x48e16
-.asm_f17c3 ; 0x48e18
+ jr .asm_48e20
+.asm_48e18
ld hl, CeladonGameCornerText_48e31
- jr .asm_0ddc2 ; 0x48e1b
-.asm_df794 ; 0x48e1d
+ jr .asm_48e20
+.asm_48e1d
ld hl, CeladonGameCornerText_48f19
-.asm_0ddc2 ; 0x48e20
+.asm_48e20
call PrintText
jp TextScriptEnd
@@ -348,39 +355,37 @@ CeladonGameCornerText_48e36: ; 48e36 (12:4e36)
db "@"
CeladonGameCornerText10: ; 48e3b (12:4e3b)
- db $08 ; asm
- ld a, [wd77e]
- bit 3, a
- jr nz, .asm_ff080 ; 0x48e41
- ld hl, CeladonGameCornerText_48e88 ; $4e88
+ TX_ASM
+ CheckEvent EVENT_GOT_20_COINS
+ jr nz, .asm_48e75
+ ld hl, CeladonGameCornerText_48e88
call PrintText
ld b,COIN_CASE
call IsItemInBag
- jr z, .asm_4fb0c ; 0x48e4e
+ jr z, .asm_48e7f
call Has9990Coins
- jr z, .asm_9505a ; 0x48e53
+ jr z, .asm_48e7a
xor a
- ld [$ff9f], a
- ld [$ffa0], a
+ ld [hUnusedCoinsByte], a
+ ld [hCoins], a
ld a, $20
- ld [$ffa1], a
+ ld [hCoins + 1], a
ld de, wPlayerCoins + 1
- ld hl, $ffa1
+ ld hl, hCoins + 1
ld c, $2
predef AddBCDPredef
- ld hl, wd77e
- set 3, [hl]
+ SetEvent EVENT_GOT_20_COINS
ld hl, CeladonGameCornerText_48e8d
- jr .asm_78d65 ; 0x48e73
-.asm_ff080 ; 0x48e75
+ jr .asm_48e82
+.asm_48e75
ld hl, CeladonGameCornerText_48e98
- jr .asm_78d65 ; 0x48e78
-.asm_9505a ; 0x48e7a
+ jr .asm_48e82
+.asm_48e7a
ld hl, CeladonGameCornerText_48e93
- jr .asm_78d65 ; 0x48e7d
-.asm_4fb0c ; 0x48e7f
+ jr .asm_48e82
+.asm_48e7f
ld hl, CeladonGameCornerText_48f19
-.asm_78d65 ; 0x48e82
+.asm_48e82
call PrintText
jp TextScriptEnd
@@ -389,7 +394,7 @@ CeladonGameCornerText_48e88: ; 48e88 (12:4e88)
db "@"
CeladonGameCornerText_48e8d: ; 48e8d (12:4e8d)
- TX_FAR _CeladonGameCornerText_48e8d ; 0x9dceb
+ TX_FAR _CeladonGameCornerText_48e8d
db $0B, "@"
CeladonGameCornerText_48e93: ; 48e93 (12:4e93)
@@ -401,7 +406,7 @@ CeladonGameCornerText_48e98: ; 48e98 (12:4e98)
db "@"
CeladonGameCornerText11: ; 48e9d (12:4e9d)
- db $08 ; asm
+ TX_ASM
ld hl, CeladonGameCornerText_48ece
call PrintText
ld hl, wd72d
@@ -410,14 +415,14 @@ CeladonGameCornerText11: ; 48e9d (12:4e9d)
ld hl, CeladonGameCornerText_48ed3
ld de, CeladonGameCornerText_48ed3
call SaveEndBattleTextPointers
- ldh a, [$8c]
+ ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
xor a
ld [hJoyHeld], a
- ldh [hJoyPressed], a
- ldh [hJoyReleased], a
+ ld [hJoyPressed], a
+ ld [hJoyReleased], a
ld a, $1
ld [W_CELADONGAMECORNERCURSCRIPT], a
jp TextScriptEnd
@@ -435,27 +440,26 @@ CeladonGameCornerText13: ; 48ed8 (12:4ed8)
db "@"
CeladonGameCornerText12: ; 48edd (12:4edd)
- db $08 ; asm
+ TX_ASM
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, CeladonGameCornerText_48f09
call PrintText
call WaitForSoundToFinish
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
call WaitForSoundToFinish
- ld hl, wd77e
- set 1, [hl]
+ SetEvent EVENT_FOUND_ROCKET_HIDEOUT
ld a, $43
- ld [wd09f], a
- ld bc, $0208
+ ld [wNewTileBlockID], a
+ lb bc, 2, 8
predef ReplaceTileBlock
jp TextScriptEnd
CeladonGameCornerText_48f09: ; 48f09 (12:4f09)
- TX_FAR _CeladonGameCornerText_48f09 ; 0x9ddb0
- db $8
- ld a, (SFX_02_49 - SFX_Headers_02) / 3
+ TX_FAR _CeladonGameCornerText_48f09
+ TX_ASM
+ ld a, SFX_SWITCH
call PlaySound
call WaitForSoundToFinish
jp TextScriptEnd
@@ -467,32 +471,32 @@ CeladonGameCornerText_48f19: ; 48f19 (12:4f19)
CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e)
ld hl, wd730
set 6, [hl]
- hlCoord 11, 0
+ coord hl, 11, 0
ld b, $5
ld c, $7
call TextBoxBorder
call UpdateSprites
- hlCoord 12, 1
- ld b, $4
- ld c, $7
+ coord hl, 12, 1
+ ld b, 4
+ ld c, 7
call ClearScreenArea
- hlCoord 12, 2
+ coord hl, 12, 2
ld de, GameCornerMoneyText
call PlaceString
- hlCoord 12, 3
+ coord hl, 12, 3
ld de, GameCornerBlankText1
call PlaceString
- hlCoord 12, 3
+ coord hl, 12, 3
ld de, wPlayerMoney
ld c, $a3
call PrintBCDNumber
- hlCoord 12, 4
+ coord hl, 12, 4
ld de, GameCornerCoinText
call PlaceString
- hlCoord 12, 5
+ coord hl, 12, 5
ld de, GameCornerBlankText2
call PlaceString
- hlCoord 15, 5
+ coord hl, 15, 5
ld de, wPlayerCoins
ld c, $82
call PrintBCDNumber
@@ -514,7 +518,7 @@ GameCornerBlankText2: ; 48f8d (12:4f8d)
Has9990Coins: ; 48f95 (12:4f95)
ld a, $99
- ld [$ffa0], a
+ ld [hCoins], a
ld a, $90
- ld [$ffa1], a
+ ld [hCoins + 1], a
jp HasEnoughCoins
diff --git a/scripts/celadongym.asm b/scripts/celadongym.asm
index b1b1060c..64e85ff7 100755
--- a/scripts/celadongym.asm
+++ b/scripts/celadongym.asm
@@ -12,8 +12,8 @@ CeladonGymScript: ; 4890a (12:490a)
ret
CeladonGymScript_48927: ; 48927 (12:4927)
- ld hl, Gym4CityName ; $4930
- ld de, Gym4LeaderName ; $493d
+ ld hl, Gym4CityName
+ ld de, Gym4LeaderName
jp LoadGymLeaderAndCityName
Gym4CityName: ; 48930 (12:4930)
@@ -36,7 +36,7 @@ CeladonGymScriptPointers: ; 4894e (12:494e)
dw CeladonGymScript3
CeladonGymScript3: ; 48956 (12:4956)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, CeladonGymText_48943
ld a, $f0
@@ -44,35 +44,29 @@ CeladonGymScript3: ; 48956 (12:4956)
CeladonGymText_48963: ; 48963 (12:4963)
ld a, $9
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd77c
- set 1, [hl]
- ld bc, (TM_21 << 8) | 1
+ SetEvent EVENT_BEAT_ERIKA
+ lb bc, TM_21, 1
call GiveItem
jr nc, .BagFull
ld a, $a
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd77c
- set 0, [hl]
+ SetEvent EVENT_GOT_TM21
jr .asm_4898c
.BagFull
ld a, $b
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_4898c
ld hl, W_OBTAINEDBADGES
set 3, [hl]
- ld hl, wd72a
+ ld hl, wBeatGymFlags
set 3, [hl]
; deactivate gym trainers
- ld a, [wd77c]
- or %11111100
- ld [wd77c], a
- ld hl, wd77d
- set 0, [hl]
+ SetEventRange EVENT_BEAT_CELADON_GYM_TRAINER_0, EVENT_BEAT_CELADON_GYM_TRAINER_7
jp CeladonGymText_48943
@@ -91,85 +85,84 @@ CeladonGymTextPointers: ; 489a6 (12:49a6)
CeladonGymTrainerHeaders: ; 489bc (12:49bc)
CeladonGymTrainerHeader0: ; 489bc (12:49bc)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd77c ; flag's byte
- dw CeladonGymBattleText2 ; 0x4a8b TextBeforeBattle
- dw CeladonGymAfterBattleText2 ; 0x4a95 TextAfterBattle
- dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle
- dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_0
+ dw CeladonGymBattleText2 ; TextBeforeBattle
+ dw CeladonGymAfterBattleText2 ; TextAfterBattle
+ dw CeladonGymEndBattleText2 ; TextEndBattle
+ dw CeladonGymEndBattleText2 ; TextEndBattle
CeladonGymTrainerHeader2: ; 489c8 (12:49c8)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd77c ; flag's byte
- dw CeladonGymBattleText3 ; 0x4aa4 TextBeforeBattle
- dw CeladonGymAfterBattleText3 ; 0x4aae TextAfterBattle
- dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle
- dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_2
+ dw CeladonGymBattleText3 ; TextBeforeBattle
+ dw CeladonGymAfterBattleText3 ; TextAfterBattle
+ dw CeladonGymEndBattleText3 ; TextEndBattle
+ dw CeladonGymEndBattleText3 ; TextEndBattle
CeladonGymTrainerHeader3: ; 489d4 (12:49d4)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd77c ; flag's byte
- dw CeladonGymBattleText4 ; 0x4abd TextBeforeBattle
- dw CeladonGymAfterBattleText4 ; 0x4ac7 TextAfterBattle
- dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle
- dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_3
+ dw CeladonGymBattleText4 ; TextBeforeBattle
+ dw CeladonGymAfterBattleText4 ; TextAfterBattle
+ dw CeladonGymEndBattleText4 ; TextEndBattle
+ dw CeladonGymEndBattleText4 ; TextEndBattle
CeladonGymTrainerHeader4: ; 489e0 (12:49e0)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd77c ; flag's byte
- dw CeladonGymBattleText5 ; 0x4ad6 TextBeforeBattle
- dw CeladonGymAfterBattleText5 ; 0x4ae0 TextAfterBattle
- dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle
- dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_4
+ dw CeladonGymBattleText5 ; TextBeforeBattle
+ dw CeladonGymAfterBattleText5 ; TextAfterBattle
+ dw CeladonGymEndBattleText5 ; TextEndBattle
+ dw CeladonGymEndBattleText5 ; TextEndBattle
CeladonGymTrainerHeader5: ; 489ec (12:49ec)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_5
db ($2 << 4) ; trainer's view range
- dw wd77c ; flag's byte
- dw CeladonGymBattleText6 ; 0x4aef TextBeforeBattle
- dw CeladonGymAfterBattleText6 ; 0x4af9 TextAfterBattle
- dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle
- dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_5
+ dw CeladonGymBattleText6 ; TextBeforeBattle
+ dw CeladonGymAfterBattleText6 ; TextAfterBattle
+ dw CeladonGymEndBattleText6 ; TextEndBattle
+ dw CeladonGymEndBattleText6 ; TextEndBattle
CeladonGymTrainerHeader6: ; 489f8 (12:49f8)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_6
db ($2 << 4) ; trainer's view range
- dw wd77c ; flag's byte
- dw CeladonGymBattleText7 ; 0x4b08 TextBeforeBattle
- dw CeladonGymAfterBattleText7 ; 0x4b12 TextAfterBattle
- dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle
- dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_6
+ dw CeladonGymBattleText7 ; TextBeforeBattle
+ dw CeladonGymAfterBattleText7 ; TextAfterBattle
+ dw CeladonGymEndBattleText7 ; TextEndBattle
+ dw CeladonGymEndBattleText7 ; TextEndBattle
CeladonGymTrainerHeader7: ; 48a04 (12:4a04)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_7, 1
db ($3 << 4) ; trainer's view range
- dw wd77c ; flag's byte
- dw CeladonGymBattleText8 ; 0x4b21 TextBeforeBattle
- dw CeladonGymAfterBattleText8 ; 0x4b2b TextAfterBattle
- dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
- dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_7, 1
+ dw CeladonGymBattleText8 ; TextBeforeBattle
+ dw CeladonGymAfterBattleText8 ; TextAfterBattle
+ dw CeladonGymEndBattleText8 ; TextEndBattle
+ dw CeladonGymEndBattleText8 ; TextEndBattle
db $ff
CeladonGymText1: ; 48a11 (12:4a11)
- db $08 ; asm
- ld a, [wd77c]
- bit 1, a
- jr z, .asm_16064 ; 0x48a17
- bit 0, a
- jr nz, .asm_3b22c ; 0x48a1b
+ TX_ASM
+ CheckEvent EVENT_BEAT_ERIKA
+ jr z, .asm_48a2d
+ CheckEventReuseA EVENT_GOT_TM21
+ jr nz, .asm_48a25
call z, CeladonGymText_48963
call DisableWaitingAfterTextDisplay
- jr .asm_96252 ; 0x48a23
-.asm_3b22c ; 0x48a25
+ jr .asm_48a5b
+.asm_48a25
ld hl, CeladonGymText_48a68
call PrintText
- jr .asm_96252 ; 0x48a2b
-.asm_16064 ; 0x48a2d
+ jr .asm_48a5b
+.asm_48a2d
ld hl, CeladonGymText_48a5e
call PrintText
ld hl, wd72d
@@ -178,7 +171,7 @@ CeladonGymText1: ; 48a11 (12:4a11)
ld hl, CeladonGymText_48a63
ld de, CeladonGymText_48a63
call SaveEndBattleTextPointers
- ldh a, [$8c]
+ ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -187,7 +180,7 @@ CeladonGymText1: ; 48a11 (12:4a11)
ld a, $3
ld [W_CELADONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
-.asm_96252 ; 0x48a5b
+.asm_48a5b
jp TextScriptEnd
CeladonGymText_48a5e: ; 48a5e (12:4a5e)
@@ -217,7 +210,7 @@ TM21NoRoomText: ; 48a7c (12:4a7c)
db "@"
CeladonGymText2: ; 48a81 (12:4a81)
- db $08 ; asm
+ TX_ASM
ld hl, CeladonGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -235,7 +228,7 @@ CeladonGymAfterBattleText2: ; 48a95 (12:4a95)
db "@"
CeladonGymText3: ; 48a9a (12:4a9a)
- db $08 ; asm
+ TX_ASM
ld hl, CeladonGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -253,7 +246,7 @@ CeladonGymAfterBattleText3: ; 48aae (12:4aae)
db "@"
CeladonGymText4: ; 48ab3 (12:4ab3)
- db $08 ; asm
+ TX_ASM
ld hl, CeladonGymTrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -271,7 +264,7 @@ CeladonGymAfterBattleText4: ; 48ac7 (12:4ac7)
db "@"
CeladonGymText5: ; 48acc (12:4acc)
- db $08 ; asm
+ TX_ASM
ld hl, CeladonGymTrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -289,7 +282,7 @@ CeladonGymAfterBattleText5: ; 48ae0 (12:4ae0)
db "@"
CeladonGymText6: ; 48ae5 (12:4ae5)
- db $08 ; asm
+ TX_ASM
ld hl, CeladonGymTrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -307,7 +300,7 @@ CeladonGymAfterBattleText6: ; 48af9 (12:4af9)
db "@"
CeladonGymText7: ; 48afe (12:4afe)
- db $08 ; asm
+ TX_ASM
ld hl, CeladonGymTrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -325,7 +318,7 @@ CeladonGymAfterBattleText7: ; 48b12 (12:4b12)
db "@"
CeladonGymText8: ; 48b17 (12:4b17)
- db $08 ; asm
+ TX_ASM
ld hl, CeladonGymTrainerHeader7
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/celadonmansion1.asm b/scripts/celadonmansion1.asm
index 14832dbe..857c2e42 100755
--- a/scripts/celadonmansion1.asm
+++ b/scripts/celadonmansion1.asm
@@ -14,7 +14,7 @@ CeladonMansion1_486a1: ; 486a1 (12:46a1)
CeladonMansion1Text1: ; 486a7 (12:46a7)
TX_FAR _CeladonMansion1Text1
- db $08 ; asm
+ TX_ASM
ld a, MEOWTH
jp CeladonMansion1_486a1
@@ -24,13 +24,13 @@ CeladonMansion1Text2: ; 486b1 (12:46b1)
CeladonMansion1Text3: ; 486b6 (12:46b6)
TX_FAR _CeladonMansion1Text3
- db $8
+ TX_ASM
ld a, CLEFAIRY
jp CeladonMansion1_486a1
CeladonMansion1Text4: ; 486c0 (12:46c0)
TX_FAR _CeladonMansion1Text4
- db $8
+ TX_ASM
ld a, NIDORAN_F
jp CeladonMansion1_486a1
diff --git a/scripts/celadonmansion3.asm b/scripts/celadonmansion3.asm
index 47190c92..11a8646d 100755
--- a/scripts/celadonmansion3.asm
+++ b/scripts/celadonmansion3.asm
@@ -24,13 +24,13 @@ WriterText: ; 487ad (12:47ad)
db "@"
DirectorText: ; 487b2 (12:47b2)
- db $08 ; asm
+ TX_ASM
; check pokédex
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [wd11e]
+ ld a, [wNumSetBits]
cp 150
jr nc, .CompletedDex
ld hl, .GameDesigner
@@ -48,7 +48,7 @@ DirectorText: ; 487b2 (12:47b2)
.CompletedDexText
TX_FAR _CompletedDexText
db $6
- db $8 ; asm
+ TX_ASM
callab DisplayDiploma
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
diff --git a/scripts/celadonmansion5.asm b/scripts/celadonmansion5.asm
index c18e36c6..6d979e04 100755
--- a/scripts/celadonmansion5.asm
+++ b/scripts/celadonmansion5.asm
@@ -10,12 +10,12 @@ CeladonMansion5Text1: ; 1dd41 (7:5d41)
db "@"
CeladonMansion5Text2: ; 1dd46 (7:5d46)
- db $08 ; asm
- ld bc,(EEVEE << 8) | 25
+ TX_ASM
+ lb bc, EEVEE, 25
call GivePokemon
- jr nc, .asm_24365 ; 0x1dd4d
+ jr nc, .asm_24365
ld a, HS_CELADON_MANSION_5_GIFT
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
-.asm_24365 ; 0x1dd59
+.asm_24365
jp TextScriptEnd
diff --git a/scripts/celadonmart3.asm b/scripts/celadonmart3.asm
index 8874a743..c6c6ecc7 100755
--- a/scripts/celadonmart3.asm
+++ b/scripts/celadonmart3.asm
@@ -21,25 +21,23 @@ CeladonMart3TextPointers: ; 48228 (12:4228)
dw CeladonMart3Text17
CeladonMart3Text1: ; 4824a (12:424a)
- db $08 ; asm
- ld a, [wd778]
- bit 7, a
- jr nz, .asm_a5463 ; 0x48250
+ TX_ASM
+ CheckEvent EVENT_GOT_TM18
+ jr nz, .asm_a5463
ld hl, TM18PreReceiveText
call PrintText
- ld bc, (TM_18 << 8) | 1
+ lb bc, TM_18, 1
call GiveItem
jr nc, .BagFull
- ld hl, wd778
- set 7, [hl]
+ SetEvent EVENT_GOT_TM18
ld hl, ReceivedTM18Text
- jr .asm_81359 ; 0x48268
+ jr .asm_81359
.BagFull
ld hl, TM18NoRoomText
- jr .asm_81359 ; 0x4826d
-.asm_a5463 ; 0x4826f
+ jr .asm_81359
+.asm_a5463
ld hl, TM18ExplanationText
-.asm_81359 ; 0x48272
+.asm_81359
call PrintText
jp TextScriptEnd
diff --git a/scripts/celadonmartelevator.asm b/scripts/celadonmartelevator.asm
index ff835765..6d901613 100755
--- a/scripts/celadonmartelevator.asm
+++ b/scripts/celadonmartelevator.asm
@@ -16,9 +16,9 @@ CeladonMartElevatorScript: ; 48600 (12:4600)
CeladonMartElevatorScript_4861c: ; 4861c (12:461c)
ld hl, wWarpEntries
- ld a, [wd73b]
+ ld a, [wWarpedFromWhichWarp]
ld b, a
- ld a, [wd73c]
+ ld a, [wWarpedFromWhichMap]
ld c, a
call CeladonMartElevatorScript_4862a
@@ -32,16 +32,20 @@ CeladonMartElevatorScript_4862a: ; 4862a (12:462a)
ret
CeladonMartElevatorScript_48631: ; 48631 (12:4631)
- ld hl, CeladonMartElavatorFloors ; $4643
+ ld hl, CeladonMartElavatorFloors
call LoadItemList
- ld hl, CeldaonMartElevatorWarpMaps ; $464a
- ld de, wcc5b
- ld bc, $000a
+ ld hl, CeldaonMartElevatorWarpMaps
+ ld de, wElevatorWarpMaps
+ ld bc, CeldaonMartElevatorWarpMapsEnd - CeldaonMartElevatorWarpMaps
jp CopyData
CeladonMartElavatorFloors: ; 48643 (12:4643)
db $05 ; num elements in list
- db $56, $57, $58, $59, $5A ; "1F", "2F", "3F", "4F, "5F"
+ db FLOOR_1F
+ db FLOOR_2F
+ db FLOOR_3F
+ db FLOOR_4F
+ db FLOOR_5F
db $FF ; terminator
CeldaonMartElevatorWarpMaps: ; 4864a (12:464a)
@@ -53,18 +57,17 @@ CeldaonMartElevatorWarpMaps: ; 4864a (12:464a)
db $02, CELADON_MART_3
db $02, CELADON_MART_4
db $02, CELADON_MART_5
+CeldaonMartElevatorWarpMapsEnd:
CeladonMartElevatorScript_48654: ; 48654 (12:4654)
- ld b, BANK(ShakeElevator)
- ld hl, ShakeElevator
- jp Bankswitch
+ jpba ShakeElevator
CeladonMartElevatorTextPointers: ; 4865c (12:465c)
dw CeladonMartElevatorText1
CeladonMartElevatorText1: ; 4865e (12:465e)
- db $08 ; asm
+ TX_ASM
call CeladonMartElevatorScript_48631
- ld hl, CeldaonMartElevatorWarpMaps ; $464a
- predef Func_1c9c6
+ ld hl, CeldaonMartElevatorWarpMaps
+ predef DisplayElevatorFloorMenu
jp TextScriptEnd
diff --git a/scripts/celadonmartroof.asm b/scripts/celadonmartroof.asm
index d4bb4319..439ab62e 100755
--- a/scripts/celadonmartroof.asm
+++ b/scripts/celadonmartroof.asm
@@ -1,34 +1,35 @@
CeladonMartRoofScript: ; 483d5 (12:43d5)
jp EnableAutoTextBoxDrawing
-CeladonMartRoofScript_483d8: ; 483d8 (12:43d8)
+CeladonMartRoofScript_GetDrinksInBag: ; 483d8 (12:43d8)
+; construct a list of all drinks in the player's bag
xor a
- ld [wcd37], a
- ld de, wcc5b
- ld hl, CeladonMartRoofDrinkList ; $4408
-.asm_483e2
+ ld [wFilteredBagItemsCount], a
+ ld de, wFilteredBagItems
+ ld hl, CeladonMartRoofDrinkList
+.loop
ld a, [hli]
and a
- jr z, .asm_48404
+ jr z, .done
push hl
push de
ld [wd11e], a
ld b, a
- predef IsItemInBag_
+ predef GetQuantityOfItemInBag
pop de
pop hl
ld a, b
and a
- jr z, .asm_483e2
+ jr z, .loop ; if the item isn't in the bag
ld a, [wd11e]
ld [de], a
inc de
push hl
- ld hl, wcd37
+ ld hl, wFilteredBagItemsCount
inc [hl]
pop hl
- jr .asm_483e2
-.asm_48404
+ jr .loop
+.done
ld a, $ff
ld [de], a
ret
@@ -39,105 +40,98 @@ CeladonMartRoofDrinkList: ; 48408 (12:4408)
db LEMONADE
db $00
-CeladonMartRoofScript_4840c: ; 4840c (12:440c)
+CeladonMartRoofScript_GiveDrinkToGirl: ; 4840c (12:440c)
ld hl, wd730
set 6, [hl]
- ld hl, CeladonMartRoofText_484ee ; $44ee
+ ld hl, CeladonMartRoofText_484ee
call PrintText
xor a
- ld [wCurrentMenuItem], a ; wCurrentMenuItem
- ld a, $3
- ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
- ld a, [wcd37]
+ ld [wCurrentMenuItem], a
+ ld a, A_BUTTON | B_BUTTON
+ ld [wMenuWatchedKeys], a
+ ld a, [wFilteredBagItemsCount]
dec a
- ld [wMaxMenuItem], a ; wMaxMenuItem
- ld a, $2
- ld [wTopMenuItemY], a ; wTopMenuItemY
- ld a, $1
- ld [wTopMenuItemX], a ; wTopMenuItemX
- ld a, [wcd37]
+ ld [wMaxMenuItem], a
+ ld a, 2
+ ld [wTopMenuItemY], a
+ ld a, 1
+ ld [wTopMenuItemX], a
+ ld a, [wFilteredBagItemsCount]
dec a
- ld bc, $2
- ld hl, $3
+ ld bc, 2
+ ld hl, 3
call AddNTimes
dec l
ld b, l
- ld c, $c
- ld hl, wTileMap
+ ld c, 12
+ coord hl, 0, 0
call TextBoxBorder
call UpdateSprites
- call CeladonMartRoofScript_48532
+ call CeladonMartRoofScript_PrintDrinksInBag
ld hl, wd730
res 6, [hl]
call HandleMenuInput
- bit 1, a
+ bit 1, a ; pressed b
ret nz
- ld hl, wcc5b
- ld a, [wCurrentMenuItem] ; wCurrentMenuItem
- ld d, $0
+ ld hl, wFilteredBagItems
+ ld a, [wCurrentMenuItem]
+ ld d, 0
ld e, a
add hl, de
ld a, [hl]
- ld [$ffdb], a
+ ld [hItemToRemoveID], a
cp FRESH_WATER
- jr z, .asm_484b6
+ jr z, .gaveFreshWater
cp SODA_POP
- jr z, .asm_48492
- ld a, [wd778]
- bit 6, a
- jr nz, .asm_484e0
- ld hl, CeladonMartRoofText_48515 ; $4515
+ jr z, .gaveSodaPop
+; gave Lemonade
+ CheckEvent EVENT_GOT_TM49
+ jr nz, .alreadyGaveDrink
+ ld hl, CeladonMartRoofText_48515
call PrintText
call RemoveItemByIDBank12
- ld bc, (TM_49 << 8) | 1
+ lb bc, TM_49, 1
call GiveItem
- jr nc, .BagFull
+ jr nc, .bagFull
ld hl, ReceivedTM49Text
call PrintText
- ld hl, wd778
- set 6, [hl]
+ SetEvent EVENT_GOT_TM49
ret
-.asm_48492
- ld a, [wd778]
- bit 5, a
- jr nz, .asm_484e0
- ld hl, CeladonMartRoofText_48504 ; $4504
+.gaveSodaPop
+ CheckEvent EVENT_GOT_TM48
+ jr nz, .alreadyGaveDrink
+ ld hl, CeladonMartRoofText_48504
call PrintText
call RemoveItemByIDBank12
- ld bc, (TM_48 << 8) | 1
+ lb bc, TM_48, 1
call GiveItem
- jr nc, .BagFull
- ld hl, CeladonMartRoofText_4850a ; $450a
+ jr nc, .bagFull
+ ld hl, CeladonMartRoofText_4850a
call PrintText
- ld hl, wd778
- set 5, [hl]
+ SetEvent EVENT_GOT_TM48
ret
-.asm_484b6
- ld a, [wd778]
- bit 4, a
- jr nz, .asm_484e0
- ld hl, CeladonMartRoofText_484f3 ; $44f3
+.gaveFreshWater
+ CheckEvent EVENT_GOT_TM13
+ jr nz, .alreadyGaveDrink
+ ld hl, CeladonMartRoofText_484f3
call PrintText
call RemoveItemByIDBank12
- ld bc, (TM_13 << 8) | 1
+ lb bc, TM_13, 1
call GiveItem
- jr nc, .BagFull
- ld hl, CeladonMartRoofText_484f9 ; $44f9
+ jr nc, .bagFull
+ ld hl, CeladonMartRoofText_484f9
call PrintText
- ld hl, wd778
- set 4, [hl]
+ SetEvent EVENT_GOT_TM13
ret
-.BagFull
- ld hl, CeladonMartRoofText_48526 ; $4526
+.bagFull
+ ld hl, CeladonMartRoofText_48526
jp PrintText
-.asm_484e0
- ld hl, CeladonMartRoofText_4852c ; $452c
+.alreadyGaveDrink
+ ld hl, CeladonMartRoofText_4852c
jp PrintText
RemoveItemByIDBank12: ; 484e6 (12:44e6)
- ld b, BANK(RemoveItemByID)
- ld hl, RemoveItemByID
- jp Bankswitch
+ jpba RemoveItemByID
CeladonMartRoofText_484ee: ; 484ee (12:44ee)
TX_FAR _CeladonMartRoofText_484ee
@@ -189,27 +183,27 @@ CeladonMartRoofText_4852c: ; 4852c (12:452c)
db $0d
db "@"
-CeladonMartRoofScript_48532: ; 48532 (12:4532)
- ld hl, wcc5b
+CeladonMartRoofScript_PrintDrinksInBag: ; 48532 (12:4532)
+ ld hl, wFilteredBagItems
xor a
- ld [$ffdb], a
-.asm_48538
+ ld [hItemCounter], a
+.loop
ld a, [hli]
cp $ff
ret z
push hl
ld [wd11e], a
call GetItemName
- hlCoord 2, 2
- ld a, [$ffdb]
- ld bc, $28
+ coord hl, 2, 2
+ ld a, [hItemCounter]
+ ld bc, SCREEN_WIDTH * 2
call AddNTimes
ld de, wcd6d
call PlaceString
- ld hl, $ffdb
+ ld hl, hItemCounter
inc [hl]
pop hl
- jr .asm_48538
+ jr .loop
CeladonMartRoofTextPointers: ; 4855b (12:455b)
dw CeladonMartRoofText1
@@ -224,25 +218,25 @@ CeladonMartRoofText1: ; 48567 (12:4567)
db "@"
CeladonMartRoofText2: ; 4856c (12:456c)
- db $08 ; asm
- call CeladonMartRoofScript_483d8
- ld a, [wcd37]
+ TX_ASM
+ call CeladonMartRoofScript_GetDrinksInBag
+ ld a, [wFilteredBagItemsCount]
and a
- jr z, .asm_914b9 ; 0x48574
- ld a, $1
+ jr z, .noDrinksInBag
+ ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, CeladonMartRoofText4
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_05aa4 ; 0x48588
- call CeladonMartRoofScript_4840c
- jr .asm_05aa4 ; 0x4858d
-.asm_914b9 ; 0x4858f
+ jr nz, .done
+ call CeladonMartRoofScript_GiveDrinkToGirl
+ jr .done
+.noDrinksInBag
ld hl, CeladonMartRoofText3
call PrintText
-.asm_05aa4 ; 0x48595
+.done
jp TextScriptEnd
CeladonMartRoofText3: ; 48598 (12:4598)
diff --git a/scripts/ceruleancity.asm b/scripts/ceruleancity.asm
index bbddad79..e0444a1c 100755
--- a/scripts/ceruleancity.asm
+++ b/scripts/ceruleancity.asm
@@ -9,7 +9,7 @@ CeruleanCityScript_1948c: ; 1948c (6:548c)
ld [wJoyIgnore], a
ld [W_CERULEANCITYCURSCRIPT], a
ld a, HS_CERULEAN_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump HideObject
CeruleanCityScriptPointers: ; 1949d (6:549d)
@@ -25,10 +25,9 @@ CeruleanCityScript4: ; 194a7 (6:54a7)
jp z, CeruleanCityScript_1948c
ld a, $f0
ld [wJoyIgnore], a
- ld hl, wd75b
- set 7, [hl]
+ SetEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -36,39 +35,37 @@ CeruleanCityScript4: ; 194a7 (6:54a7)
ret
CeruleanCityScript0: ; 194c8 (6:54c8)
- ld a, [wd75b]
- bit 7, a
- jr nz, .asm_194f7 ; 0x194cd $28
+ CheckEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF
+ jr nz, .asm_194f7
ld hl, CeruleanCityCoords1
call ArePlayerCoordsInArray
- jr nc, .asm_194f7 ; 0x194d5 $20
- ld a, [wWhichTrade]
+ jr nc, .asm_194f7
+ ld a, [wCoordIndex]
cp $1
- ld a, $8
- ld b, $0
- jr nz, .asm_194e6 ; 0x194e0 $4
- ld a, $4
- ld b, $4
+ ld a, PLAYER_DIR_UP
+ ld b, SPRITE_FACING_DOWN
+ jr nz, .asm_194e6
+ ld a, PLAYER_DIR_DOWN
+ ld b, SPRITE_FACING_UP
.asm_194e6
- ld [wd528], a
+ ld [wPlayerMovingDirection], a
ld a, b
- ld [wSpriteStateData1 + $29], a
+ ld [wSpriteStateData1 + 2 * $10 + $9], a
call Delay3
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
.asm_194f7
- ld a, [wd75a]
- bit 0, a
+ CheckEvent EVENT_BEAT_CERULEAN_RIVAL
ret nz
ld hl, CeruleanCityCoords2
call ArePlayerCoordsInArray
ret nc
ld a, [wWalkBikeSurfState]
and a
- jr z, .asm_19512 ; 0x19508 $8
+ jr z, .asm_19512
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
.asm_19512
ld c, BANK(Music_MeetRival)
@@ -80,20 +77,20 @@ CeruleanCityScript0: ; 194c8 (6:54c8)
ld [wJoyIgnore], a
ld a, [W_XCOORD]
cp $14
- jr z, .asm_19535 ; 0x19526 $d
+ jr z, .asm_19535
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
ld a, $5
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData2
ld [hl], $19
.asm_19535
ld a, HS_CERULEAN_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld de, CeruleanCityMovement1
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $1
ld [W_CERULEANCITYCURSCRIPT], a
@@ -110,13 +107,16 @@ CeruleanCityCoords2: ; 19554 (6:5554)
db $ff
CeruleanCityMovement1: ; 19559 (6:5559)
- db $00,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
CeruleanCityScript_1955d: ; 1955d (6:555d)
ld a,1
- ld [$ff8c],a
- xor a
- ld [$ff8d],a
+ ld [H_SPRITEINDEX],a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection],a
jp SetSpriteFacingDirectionAndDelay ; face object
CeruleanCityScript1: ; 19567 (6:5567)
@@ -126,7 +126,7 @@ CeruleanCityScript1: ; 19567 (6:5567)
xor a
ld [wJoyIgnore], a
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld hl, wd72d
set 6, [hl]
@@ -134,18 +134,18 @@ CeruleanCityScript1: ; 19567 (6:5567)
ld hl, CeruleanCityText_1966d
ld de, CeruleanCityText_19672
call SaveEndBattleTextPointers
- ld a, SONY1 + $c8
+ ld a, OPP_SONY1
ld [W_CUROPPONENT], a
; select which team to use during the encounter
ld a, [W_RIVALSTARTER]
cp STARTER2
- jr nz, .NotSquirtle ; 0x19592 $4
+ jr nz, .NotSquirtle
ld a, $7
jr .done
.NotSquirtle
cp STARTER3
- jr nz, .Charmander ; 0x1959a $4
+ jr nz, .Charmander
ld a, $8
jr .done
.Charmander
@@ -167,45 +167,58 @@ CeruleanCityScript2: ; 195b1 (6:55b1)
call CeruleanCityScript_1955d
ld a, $f0
ld [wJoyIgnore], a
- ld hl, wd75a
- set 0, [hl]
+ SetEvent EVENT_BEAT_CERULEAN_RIVAL
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld a, [W_XCOORD]
cp $14
- jr nz, .asm_195f0 ; 0x195e9 $5
+ jr nz, .asm_195f0
ld de, CeruleanCityMovement4
- jr .asm_195f3 ; 0x195ee $3
+ jr .asm_195f3
.asm_195f0
ld de, CeruleanCityMovement3
.asm_195f3
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $3
ld [W_CERULEANCITYCURSCRIPT], a
ret
CeruleanCityMovement3: ; 19600 (6:5600)
- db $80,$00,$00,$00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_LEFT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
CeruleanCityMovement4: ; 19608 (6:5608)
- db $c0,$00,$00,$00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
CeruleanCityScript3: ; 19610 (6:5610)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_CERULEAN_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -234,19 +247,18 @@ CeruleanCityTextPointers: ; 1962d (6:562d)
dw CeruleanCityText17
CeruleanCityText1: ; 1964f (6:564f)
- db $08 ; asm
- ld a, [wd75a] ; rival battle flag
- bit 0, a
+ TX_ASM
+ CheckEvent EVENT_BEAT_CERULEAN_RIVAL
; do pre-battle text
jr z, .PreBattleText
; or talk about bill
ld hl, CeruleanCityText_19677
call PrintText
- jr .end ; 0x1965d
-.PreBattleText ; 0x1965f
+ jr .end
+.PreBattleText
ld hl, CeruleanCityText_19668
call PrintText
-.end ; 0x19665
+.end
jp TextScriptEnd
CeruleanCityText_19668: ; 19668 (6:5668)
@@ -266,10 +278,9 @@ CeruleanCityText_19677: ; 19677 (6:5677)
db "@"
CeruleanCityText2: ; 1967c (6:567c)
- db $8
- ld a, [wd75b]
- bit 7, a
- jr nz, .asm_4ca20 ; 0x19682 $29
+ TX_ASM
+ CheckEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF
+ jr nz, .asm_4ca20
ld hl, CeruleanCityText_196d9
call PrintText
ld hl, wd72d
@@ -278,17 +289,17 @@ CeruleanCityText2: ; 1967c (6:567c)
ld hl, CeruleanCityText_196ee
ld de, CeruleanCityText_196ee
call SaveEndBattleTextPointers
- ld a, [$ff8c]
+ ld a, [hSpriteIndexOrTextID]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $4
ld [W_CERULEANCITYCURSCRIPT], a
jp TextScriptEnd
-.asm_4ca20 ; 0x196ad
+.asm_4ca20
ld hl, CeruleanCityText_196f3
call PrintText
- ld bc, (TM_28 << 8) + 1
+ lb bc, TM_28, 1
call GiveItem
jr c, .Success
ld hl, TM28NoRoomText
@@ -299,7 +310,7 @@ CeruleanCityText2: ; 1967c (6:567c)
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, ReceivedTM28Text
call PrintText
- callba Func_74872
+ callba CeruleanHideRocket
.Done
jp TextScriptEnd
@@ -343,23 +354,23 @@ CeruleanCityText6: ; 19707 (6:5707)
db "@"
CeruleanCityText7: ; 1970c (6:570c)
- db $08 ; asm
- ldh a, [$d3]
+ TX_ASM
+ ld a, [hRandomAdd]
cp $b4
- jr c, .asm_e9fc9 ; 0x19711
+ jr c, .asm_e9fc9
ld hl, CeruleanCityText_19730
call PrintText
- jr .asm_d486e ; 0x19719
-.asm_e9fc9 ; 0x1971b
+ jr .asm_d486e
+.asm_e9fc9
cp $64
- jr c, .asm_df99b ; 0x1971d
+ jr c, .asm_df99b
ld hl, CeruleanCityText_19735
call PrintText
- jr .asm_d486e ; 0x19725
-.asm_df99b ; 0x19727
+ jr .asm_d486e
+.asm_df99b
ld hl, CeruleanCityText_1973a
call PrintText
-.asm_d486e ; 0x1972d
+.asm_d486e
jp TextScriptEnd
CeruleanCityText_19730: ; 19730 (6:5730)
@@ -375,29 +386,29 @@ CeruleanCityText_1973a: ; 1973a (6:573a)
db "@"
CeruleanCityText8: ; 1973f (6:573f)
- db $08 ; asm
- ldh a, [$d3]
+ TX_ASM
+ ld a, [hRandomAdd]
cp $b4
- jr c, .asm_e28da ; 0x19744
+ jr c, .asm_e28da
ld hl, CeruleanCityText_1976f
call PrintText
- jr .asm_f2f38 ; 0x1974c
-.asm_e28da ; 0x1974e
+ jr .asm_f2f38
+.asm_e28da
cp $78
- jr c, .asm_15d08 ; 0x19750
+ jr c, .asm_15d08
ld hl, CeruleanCityText_19774
call PrintText
- jr .asm_f2f38 ; 0x19758
-.asm_15d08 ; 0x1975a
+ jr .asm_f2f38
+.asm_15d08
cp $3c
- jr c, .asm_d7fea ; 0x1975c
+ jr c, .asm_d7fea
ld hl, CeruleanCityText_19779
call PrintText
- jr .asm_f2f38 ; 0x19764
-.asm_d7fea ; 0x19766
+ jr .asm_f2f38
+.asm_d7fea
ld hl, CeruleanCityText_1977e
call PrintText
-.asm_f2f38 ; 0x1976c
+.asm_f2f38
jp TextScriptEnd
CeruleanCityText_1976f: ; 1976f (6:576f)
diff --git a/scripts/ceruleancity2.asm b/scripts/ceruleancity2.asm
index 72ee4a86..3dafb3f8 100755
--- a/scripts/ceruleancity2.asm
+++ b/scripts/ceruleancity2.asm
@@ -1,16 +1,16 @@
-Func_74872: ; 74872 (1d:4872)
+CeruleanHideRocket: ; 74872 (1d:4872)
; code similar to this appears in a lot of banks; this particular
; one is called after you beat the Rocket that gives you TM28 DIG.
; the screen then fades out, he disappears, and fades back in
call GBFadeOutToBlack
ld a, HS_CERULEAN_GUARD_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_CERULEAN_GUARD_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_CERULEAN_ROCKET
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call GBFadeInFromBlack
ret
diff --git a/scripts/ceruleangym.asm b/scripts/ceruleangym.asm
index f643e264..ca1c2c7d 100755
--- a/scripts/ceruleangym.asm
+++ b/scripts/ceruleangym.asm
@@ -12,8 +12,8 @@ CeruleanGymScript: ; 5c6b3 (17:46b3)
ret
CeruleanGymScript_5c6d0: ; 5c6d0 (17:46d0)
- ld hl, Gym2CityName ; $46d9
- ld de, Gym2LeaderName ; $46e7
+ ld hl, Gym2CityName
+ ld de, Gym2LeaderName
jp LoadGymLeaderAndCityName
Gym2CityName: ; 5c6d9 (17:46d9)
@@ -36,7 +36,7 @@ CeruleanGymScriptPointers: ; 5c6f8 (17:46f8)
dw CeruleanGymScript3
CeruleanGymScript3: ; 5c700 (17:4700)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, CeruleanGymScript_5c6ed
ld a, $f0
@@ -44,33 +44,29 @@ CeruleanGymScript3: ; 5c700 (17:4700)
CeruleanGymScript_5c70d: ; 5c70d (17:470d)
ld a, $5
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd75e
- set 7, [hl]
- ld bc, (TM_11 << 8) | 1
+ SetEvent EVENT_BEAT_MISTY
+ lb bc, TM_11, 1
call GiveItem
jr nc, .BagFull
ld a, $6
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd75e
- set 6, [hl]
+ SetEvent EVENT_GOT_TM11
jr .asm_5c736
.BagFull
ld a, $7
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_5c736
ld hl, W_OBTAINEDBADGES
set 1, [hl]
- ld hl, wd72a
+ ld hl, wBeatGymFlags
set 1, [hl]
; deactivate gym trainers
- ld hl, wd75e
- set 2, [hl]
- set 3, [hl]
+ SetEvents EVENT_BEAT_CERULEAN_GYM_TRAINER_0, EVENT_BEAT_CERULEAN_GYM_TRAINER_1
jp CeruleanGymScript_5c6ed
@@ -85,40 +81,39 @@ CeruleanGymTextPointers: ; 5c74a (17:474a)
CeruleanGymTrainerHeaders: ; 5c758 (17:4758)
CeruleanGymTrainerHeader0: ; 5c758 (17:4758)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CERULEAN_GYM_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd75e ; flag's byte
- dw CeruleanGymBattleText1 ; 0x47e9 TextBeforeBattle
- dw CeruleanGymAfterBattleText1 ; 0x47f3 TextAfterBattle
- dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle
- dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CERULEAN_GYM_TRAINER_0
+ dw CeruleanGymBattleText1 ; TextBeforeBattle
+ dw CeruleanGymAfterBattleText1 ; TextAfterBattle
+ dw CeruleanGymEndBattleText1 ; TextEndBattle
+ dw CeruleanGymEndBattleText1 ; TextEndBattle
CeruleanGymTrainerHeader1: ; 5c764 (17:4764)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_CERULEAN_GYM_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd75e ; flag's byte
- dw CeruleanGymBattleText2 ; 0x4802 TextBeforeBattle
- dw CeruleanGymAfterBattleText2 ; 0x480c TextAfterBattle
- dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
- dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_CERULEAN_GYM_TRAINER_1
+ dw CeruleanGymBattleText2 ; TextBeforeBattle
+ dw CeruleanGymAfterBattleText2 ; TextAfterBattle
+ dw CeruleanGymEndBattleText2 ; TextEndBattle
+ dw CeruleanGymEndBattleText2 ; TextEndBattle
db $ff
CeruleanGymText1: ; 5c771 (17:4771)
- db $08 ; asm
- ld a, [wd75e]
- bit 7, a
- jr z, .asm_10854 ; 0x5c777
- bit 6, a
- jr nz, .asm_37a1b ; 0x5c77b
+ TX_ASM
+ CheckEvent EVENT_BEAT_MISTY
+ jr z, .asm_5c78d
+ CheckEventReuseA EVENT_GOT_TM11
+ jr nz, .asm_5c785
call z, CeruleanGymScript_5c70d
call DisableWaitingAfterTextDisplay
- jr .asm_95b04 ; 0x5c783
-.asm_37a1b ; 0x5c785
+ jr .asm_5c7bb
+.asm_5c785
ld hl, CeruleanGymText_5c7c3
call PrintText
- jr .asm_95b04 ; 0x5c78b
-.asm_10854 ; 0x5c78d
+ jr .asm_5c7bb
+.asm_5c78d
ld hl, CeruleanGymText_5c7be
call PrintText
ld hl, wd72d
@@ -137,7 +132,7 @@ CeruleanGymText1: ; 5c771 (17:4771)
ld [hJoyHeld], a
ld a, $3
ld [W_CERULEANGYMCURSCRIPT], a
-.asm_95b04 ; 0x5c7bb
+.asm_5c7bb
jp TextScriptEnd
CeruleanGymText_5c7be: ; 5c7be (17:47be)
@@ -166,7 +161,7 @@ CeruleanGymText_5c7d8: ; 5c7d8 (17:47d8)
db $11, $6, "@"
CeruleanGymText2: ; 5c7df (17:47df)
- db $08 ; asm
+ TX_ASM
ld hl, CeruleanGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -184,7 +179,7 @@ CeruleanGymAfterBattleText1: ; 5c7f3 (17:47f3)
db "@"
CeruleanGymText3: ; 5c7f8 (17:47f8)
- db $08 ; asm
+ TX_ASM
ld hl, CeruleanGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -202,17 +197,16 @@ CeruleanGymAfterBattleText2: ; 5c80c (17:480c)
db "@"
CeruleanGymText4: ; 5c811 (17:4811)
- db $08 ; asm
- ld a, [wd75e]
- bit 7, a
- jr nz, .asm_f80ce ; 0x5c817
+ TX_ASM
+ CheckEvent EVENT_BEAT_MISTY
+ jr nz, .asm_5c821
ld hl, CeruleanGymText_5c82a
call PrintText
- jr .asm_18a31 ; 0x5c81f
-.asm_f80ce ; 0x5c821
+ jr .asm_5c827
+.asm_5c821
ld hl, CeruleanGymText_5c82f
call PrintText
-.asm_18a31 ; 0x5c827
+.asm_5c827
jp TextScriptEnd
CeruleanGymText_5c82a: ; 5c82a (17:482a)
diff --git a/scripts/ceruleanhouse1.asm b/scripts/ceruleanhouse1.asm
index 4b6a240a..e703d830 100755
--- a/scripts/ceruleanhouse1.asm
+++ b/scripts/ceruleanhouse1.asm
@@ -10,7 +10,7 @@ CeruleanHouse1Text1: ; 1d6fd (7:56fd)
db "@"
CeruleanHouse1Text2: ; 1d702 (7:5702)
- db $08 ; asm
+ TX_ASM
ld a, $6
ld [wWhichTrade], a
predef DoInGameTradeDialogue
diff --git a/scripts/ceruleanhouse2.asm b/scripts/ceruleanhouse2.asm
index a40d9224..278f3bcf 100755
--- a/scripts/ceruleanhouse2.asm
+++ b/scripts/ceruleanhouse2.asm
@@ -9,7 +9,7 @@ CeruleanHouse2TextPointers: ; 74e13 (1d:4e13)
dw CeruleanHouse2Text1
CeruleanHouse2Text1: ; 74e15 (1d:4e15)
- db $8
+ TX_ASM
ld hl, CeruleanHouse2Text_74e77
call PrintText
xor a
@@ -20,18 +20,18 @@ CeruleanHouse2Text1: ; 74e15 (1d:4e15)
call PrintText
ld hl, BadgeItemList
call LoadItemList
- ld hl, wStringBuffer2 + 11
+ ld hl, wItemList
ld a, l
- ld [wList], a
+ ld [wListPointer], a
ld a, h
- ld [wList + 1], a
+ ld [wListPointer + 1], a
xor a
- ld [wcf93], a
+ ld [wPrintItemPrices], a
ld [wMenuItemToSwap], a
ld a, SPECIALLISTMENU
ld [wListMenuID], a
call DisplayListMenuID
- jr c, .asm_74e60 ; 0x74e49 $15
+ jr c, .asm_74e60
ld hl, TextPointers_74e86
ld a, [wcf91]
sub $15
@@ -43,7 +43,7 @@ CeruleanHouse2Text1: ; 74e15 (1d:4e15)
ld h, [hl]
ld l, a
call PrintText
- jr .asm_74e23 ; 0x74e5e $c3
+ jr .asm_74e23
.asm_74e60
xor a
ld [wListScrollOffset], a
diff --git a/scripts/ceruleanhousetrashed.asm b/scripts/ceruleanhousetrashed.asm
index ee60cda7..a1f58684 100755
--- a/scripts/ceruleanhousetrashed.asm
+++ b/scripts/ceruleanhousetrashed.asm
@@ -8,18 +8,18 @@ CeruleanHouseTrashedTextPointers: ; 1d689 (7:5689)
dw CeruleanHouseTrashedText3
CeruleanHouseTrashedText1: ; 1d68f (7:568f)
- db $08 ; asm
+ TX_ASM
ld b, $e4
- predef IsItemInBag_
+ predef GetQuantityOfItemInBag
and b
- jr z, .asm_f8734 ; 0x1d698
+ jr z, .asm_f8734
ld hl, CeruleanHouseTrashedText_1d6b0
call PrintText
- jr .asm_8dfe9 ; 0x1d6a0
-.asm_f8734 ; 0x1d6a2
+ jr .asm_8dfe9
+.asm_f8734
ld hl, CeruleanHouseTrashedText_1d6ab
call PrintText
-.asm_8dfe9 ; 0x1d6a8
+.asm_8dfe9
jp TextScriptEnd
CeruleanHouseTrashedText_1d6ab: ; 1d6ab (7:56ab)
diff --git a/scripts/cinnabargym.asm b/scripts/cinnabargym.asm
index 48133c52..5bbb94a9 100755
--- a/scripts/cinnabargym.asm
+++ b/scripts/cinnabargym.asm
@@ -14,9 +14,8 @@ CinnabarGymScript_75759: ; 75759 (1d:5759)
pop hl
bit 5, [hl]
res 5, [hl]
- call nz, Func_3ead
- ld hl, wd79b
- res 7, [hl]
+ call nz, UpdateCinnabarGymGateTileBlocks
+ ResetEvent EVENT_2A7
ret
CinnabarGymScript_75772: ; 75772 (1d:5772)
ld hl, Gym7CityName
@@ -33,11 +32,11 @@ CinnabarGymScript_75792: ; 75792 (1d:5792)
ld [wJoyIgnore], a
ld [W_CINNABARGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
- ld [wda38], a
+ ld [wOpponentAfterWrongAnswer], a
ret
CinnabarGymScript_757a0: ; 757a0 (1d:57a0)
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld a, [hSpriteIndexOrTextID]
ld [wTrainerHeaderFlagBit], a
ret
@@ -48,20 +47,20 @@ CinnabarGymScriptPointers: ; 757a6 (1d:57a6)
dw CinnabarGymScript3
CinnabarGymScript0: ; 757ae (1d:57ae)
- ld a, [wda38]
+ ld a, [wOpponentAfterWrongAnswer]
and a
ret z
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
cp $4
- jr nz, .asm_757c3 ; 0x757b7 $a
- ld a, $4
- ld [wd528], a
+ jr nz, .asm_757c3
+ ld a, PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection], a
ld de, MovementData_757d7
- jr .asm_757cb ; 0x757c1 $8
+ jr .asm_757cb
.asm_757c3
ld de, MovementData_757da
- ld a, $1
- ld [wd528], a
+ ld a, PLAYER_DIR_RIGHT
+ ld [wPlayerMovingDirection], a
.asm_757cb
call MoveSprite
ld a, $1
@@ -70,10 +69,13 @@ CinnabarGymScript0: ; 757ae (1d:57ae)
ret
MovementData_757d7: ; 757d7 (1d:57d7)
- db $80,$40,$FF
+ db NPC_MOVEMENT_LEFT
+ db NPC_MOVEMENT_UP
+ db $FF
MovementData_757da: ; 757da (1d:57da)
- db $80,$FF
+ db NPC_MOVEMENT_LEFT
+ db $FF
CinnabarGymScript1: ; 757dc (1d:57dc)
ld a, [wd730]
@@ -81,12 +83,12 @@ CinnabarGymScript1: ; 757dc (1d:57dc)
ret nz
xor a
ld [wJoyIgnore], a
- ld a, [wda38]
+ ld a, [wOpponentAfterWrongAnswer]
ld [wTrainerHeaderFlagBit], a
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
-CinnabarGymScript_757f1: ; 757f1 (1d:57f1)
+CinnabarGymFlagAction: ; 757f1 (1d:57f1)
predef_jump FlagActionPredef
CinnabarGymScript2: ; 757f6 (1d:57f6)
@@ -95,34 +97,37 @@ CinnabarGymScript2: ; 757f6 (1d:57f6)
jp z, CinnabarGymScript_75792
ld a, [wTrainerHeaderFlagBit]
ld [$ffdb], a
+ AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
ld c, a
- ld b, $2
- ld hl, wd79a
- call CinnabarGymScript_757f1
+ ld b, FLAG_TEST
+ EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0
+ call CinnabarGymFlagAction
ld a, c
and a
- jr nz, .asm_7581b ; 0x7580e $b
+ jr nz, .asm_7581b
call WaitForSoundToFinish
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
call WaitForSoundToFinish
.asm_7581b
ld a, [wTrainerHeaderFlagBit]
ld [$ffdb], a
+ AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
ld c, a
- ld b, $1
- ld hl, wd79a
- call CinnabarGymScript_757f1
+ ld b, FLAG_SET
+ EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0
+ call CinnabarGymFlagAction
ld a, [wTrainerHeaderFlagBit]
sub $2
+ AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0
ld c, a
- ld b, $1
- ld hl, wd79c
- call CinnabarGymScript_757f1
- call Func_3ead
+ ld b, FLAG_SET
+ EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED
+ call CinnabarGymFlagAction
+ call UpdateCinnabarGymGateTileBlocks
xor a
ld [wJoyIgnore], a
- ld [wda38], a
+ ld [wOpponentAfterWrongAnswer], a
ld a, $0
ld [W_CINNABARGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -136,35 +141,29 @@ CinnabarGymScript3: ; 7584a (1d:584a)
ld [wJoyIgnore], a
CinnabarGymScript3_75857: ; 75857 (1d:5857)
ld a, $a
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd79a
- set 1, [hl]
- ld bc, (TM_38 << 8) | 1
+ SetEvent EVENT_BEAT_BLAINE
+ lb bc, TM_38, 1
call GiveItem
jr nc, .BagFull
ld a, $b
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd79a
- set 0, [hl]
- jr .asm_75880 ; 0x75877 $7
+ SetEvent EVENT_GOT_TM38
+ jr .asm_75880
.BagFull
ld a, $c
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_75880
ld hl, W_OBTAINEDBADGES
set 6, [hl]
- ld hl, wd72a
+ ld hl, wBeatGymFlags
set 6, [hl]
; deactivate gym trainers
- ld a, [wd79a]
- or %11111100
- ld [wd79a], a
- ld hl, wd79b
- set 0, [hl]
+ SetEventRange EVENT_BEAT_CINNABAR_GYM_TRAINER_0, EVENT_BEAT_CINNABAR_GYM_TRAINER_6
ld hl, wd126
set 5, [hl]
@@ -186,7 +185,7 @@ CinnabarGymTextPointers: ; 7589f (1d:589f)
dw TM38NoRoomText
CinnabarGymScript_758b7: ; 758b7 (1d:58b7)
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld a, [hSpriteIndexOrTextID]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -206,20 +205,19 @@ CinnabarGymScript_758b7: ; 758b7 (1d:58b7)
jp TextScriptEnd
CinnabarGymText1: ; 758df (1d:58df)
- db $8
- ld a, [wd79a]
- bit 1, a
- jr z, .asm_d9332 ; 0x758e5 $16
- bit 0, a
- jr nz, .asm_3012f ; 0x758e9 $9
+ TX_ASM
+ CheckEvent EVENT_BEAT_BLAINE
+ jr z, .asm_d9332
+ CheckEventReuseA EVENT_GOT_TM38
+ jr nz, .asm_3012f
call z, CinnabarGymScript3_75857
call DisableWaitingAfterTextDisplay
jp TextScriptEnd
-.asm_3012f ; 0x758f4
+.asm_3012f
ld hl, BlaineFireBlastText
call PrintText
jp TextScriptEnd
-.asm_d9332 ; 0x758fd
+.asm_d9332
ld hl, BlaineBattleText
call PrintText
ld hl, BlaineEndBattleText
@@ -258,18 +256,17 @@ TM38NoRoomText: ; 75934 (1d:5934)
db "@"
CinnabarGymText2: ; 75939 (1d:5939)
- db $08 ; asm
+ TX_ASM
call CinnabarGymScript_757a0
- ld a, [wd79a]
- bit 2, a
- jr nz, .asm_46bb4 ; 0x75942
+ CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_0
+ jr nz, .asm_46bb4
ld hl, CinnabarGymText_7595f
call PrintText
ld hl, CinnabarGymText_75964
- ld de, CinnabarGymText_75964 ; $5964 XXX
+ ld de, CinnabarGymText_75964
call SaveEndBattleTextPointers
jp CinnabarGymScript_758b7
-.asm_46bb4 ; 0x75956
+.asm_46bb4
ld hl, CinnabarGymText_75969
call PrintText
jp TextScriptEnd
@@ -287,18 +284,17 @@ CinnabarGymText_75969: ; 75969 (1d:5969)
db "@"
CinnabarGymText3: ; 7596e (1d:596e)
- db $08 ; asm
+ TX_ASM
call CinnabarGymScript_757a0
- ld a, [wd79a]
- bit 3, a
- jr nz, .asm_4b406 ; 0x75977
+ CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_1
+ jr nz, .asm_4b406
ld hl, CinnabarGymText_75994
call PrintText
ld hl, CinnabarGymText_75999
- ld de, CinnabarGymText_75999 ; $5999 XXX
+ ld de, CinnabarGymText_75999
call SaveEndBattleTextPointers
jp CinnabarGymScript_758b7
-.asm_4b406 ; 0x7598b
+.asm_4b406
ld hl, CinnabarGymText_7599e
call PrintText
jp TextScriptEnd
@@ -316,18 +312,17 @@ CinnabarGymText_7599e: ; 7599e (1d:599e)
db "@"
CinnabarGymText4: ; 759a3 (1d:59a3)
- db $08 ; asm
+ TX_ASM
call CinnabarGymScript_757a0
- ld a, [wd79a]
- bit 4, a
- jr nz, .asm_c0673 ; 0x759ac
+ CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_2
+ jr nz, .asm_c0673
ld hl, CinnabarGymText_759c9
call PrintText
ld hl, CinnabarGymText_759ce
- ld de, CinnabarGymText_759ce ; $59ce XXX
+ ld de, CinnabarGymText_759ce
call SaveEndBattleTextPointers
jp CinnabarGymScript_758b7
-.asm_c0673 ; 0x759c0
+.asm_c0673
ld hl, CinnabarGymText_759d3
call PrintText
jp TextScriptEnd
@@ -345,18 +340,17 @@ CinnabarGymText_759d3: ; 759d3 (1d:59d3)
db "@"
CinnabarGymText5: ; 759d8 (1d:59d8)
- db $08 ; asm
+ TX_ASM
call CinnabarGymScript_757a0
- ld a, [wd79a]
- bit 5, a
- jr nz, .asm_5cfd7 ; 0x759e1
+ CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_3
+ jr nz, .asm_5cfd7
ld hl, CinnabarGymText_759fe
call PrintText
ld hl, CinnabarGymText_75a03
- ld de, CinnabarGymText_75a03 ; $5a03 XXX
+ ld de, CinnabarGymText_75a03
call SaveEndBattleTextPointers
jp CinnabarGymScript_758b7
-.asm_5cfd7 ; 0x759f5
+.asm_5cfd7
ld hl, CinnabarGymText_75a08
call PrintText
jp TextScriptEnd
@@ -374,18 +368,17 @@ CinnabarGymText_75a08: ; 75a08 (1d:5a08)
db "@"
CinnabarGymText6: ; 75a0d (1d:5a0d)
- db $08 ; asm
+ TX_ASM
call CinnabarGymScript_757a0
- ld a, [wd79a]
- bit 6, a
- jr nz, .asm_776b4 ; 0x75a16
+ CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_4
+ jr nz, .asm_776b4
ld hl, CinnabarGymText_75a33
call PrintText
ld hl, CinnabarGymText_75a38
ld de, CinnabarGymText_75a38
call SaveEndBattleTextPointers
jp CinnabarGymScript_758b7
-.asm_776b4 ; 0x75a2a
+.asm_776b4
ld hl, CinnabarGymText_75a3d
call PrintText
jp TextScriptEnd
@@ -403,18 +396,17 @@ CinnabarGymText_75a3d: ; 75a3d (1d:5a3d)
db "@"
CinnabarGymText7: ; 75a42 (1d:5a42)
- db $08 ; asm
+ TX_ASM
call CinnabarGymScript_757a0
- ld a, [wd79a]
- bit 7, a
- jr nz, .asm_2f755 ; 0x75a4b
+ CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_5
+ jr nz, .asm_2f755
ld hl, CinnabarGymText_75a68
call PrintText
ld hl, CinnabarGymText_75a6d
ld de, CinnabarGymText_75a6d
call SaveEndBattleTextPointers
jp CinnabarGymScript_758b7
-.asm_2f755 ; 0x75a5f
+.asm_2f755
ld hl, CinnabarGymText_75a72
call PrintText
jp TextScriptEnd
@@ -432,18 +424,17 @@ CinnabarGymText_75a72: ; 75a72 (1d:5a72)
db "@"
CinnabarGymText8: ; 75a77 (1d:5a77)
- db $08 ; asm
+ TX_ASM
call CinnabarGymScript_757a0
- ld a, [wd79b]
- bit 0, a
- jr nz, .asm_d87be ; 0x75a80
+ CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_6
+ jr nz, .asm_d87be
ld hl, CinnabarGymText_75a9d
call PrintText
ld hl, CinnabarGymText_75aa2
- ld de, CinnabarGymText_75aa2 ; $5aa2 XXX
+ ld de, CinnabarGymText_75aa2
call SaveEndBattleTextPointers
jp CinnabarGymScript_758b7
-.asm_d87be ; 0x75a94
+.asm_d87be
ld hl, CinnabarGymText_75aa7
call PrintText
jp TextScriptEnd
@@ -461,15 +452,14 @@ CinnabarGymText_75aa7: ; 75aa7 (1d:5aa7)
db "@"
CinnabarGymText9: ; 75aac (1d:5aac)
- db $08 ; asm
- ld a, [wd79a]
- bit 1, a
- jr nz, .asm_627d9 ; 0x75ab2
+ TX_ASM
+ CheckEvent EVENT_BEAT_BLAINE
+ jr nz, .asm_627d9
ld hl, CinnabarGymText_75ac2
- jr .asm_0b11d ; 0x75ab7
-.asm_627d9 ; 0x75ab9
+ jr .asm_0b11d
+.asm_627d9
ld hl, CinnabarGymText_75ac7
-.asm_0b11d ; 0x75abc
+.asm_0b11d
call PrintText
jp TextScriptEnd
diff --git a/scripts/cinnabarisland.asm b/scripts/cinnabarisland.asm
index 33a497c4..c06c784c 100755
--- a/scripts/cinnabarisland.asm
+++ b/scripts/cinnabarisland.asm
@@ -2,10 +2,8 @@ CinnabarIslandScript: ; 1ca19 (7:4a19)
call EnableAutoTextBoxDrawing
ld hl, wd126
set 5, [hl]
- ld hl, wd796
- res 0, [hl]
- ld hl, wd7a3
- res 1, [hl]
+ ResetEvent EVENT_MANSION_SWITCH_ON
+ ResetEvent EVENT_LAB_STILL_REVIVING_FOSSIL
ld hl, CinnabarIslandScriptPointers
ld a, [W_CINNABARISLANDCURSCRIPT]
jp CallFunctionInTable
@@ -24,10 +22,10 @@ CinnabarIslandScript0: ; 1ca38 (7:4a38)
ld a, [W_XCOORD]
cp $12
ret nz
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
ld a, $8
- ld [wd528], a
- ld a, $8
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [hJoyHeld], a
diff --git a/scripts/colosseum.asm b/scripts/colosseum.asm
new file mode 100644
index 00000000..e4ba4611
--- /dev/null
+++ b/scripts/colosseum.asm
@@ -0,0 +1,9 @@
+ColosseumScript: ; 4fd7d (13:7d7d)
+ jp TradeCenterScript
+
+ColosseumTextPointers: ; 4fd80 (13:7d80)
+ dw ColosseumText1
+
+ColosseumText1: ; 4fd82 (13:7d82)
+ TX_FAR _ColosseumText1
+ db "@"
diff --git a/scripts/copycatshouse1f.asm b/scripts/copycatshouse1f.asm
index 230a3ca3..bc76da1a 100755
--- a/scripts/copycatshouse1f.asm
+++ b/scripts/copycatshouse1f.asm
@@ -16,7 +16,7 @@ CopycatsHouse1FText2: ; 75ed1 (1d:5ed1)
CopycatsHouse1FText3: ; 75ed6 (1d:5ed6)
TX_FAR _CopycatsHouse1FText3
- db $8
+ TX_ASM
ld a, CHANSEY
call PlayCry
jp TextScriptEnd
diff --git a/scripts/copycatshouse2f.asm b/scripts/copycatshouse2f.asm
index ed4e9a4f..74dbb1c5 100755
--- a/scripts/copycatshouse2f.asm
+++ b/scripts/copycatshouse2f.asm
@@ -11,20 +11,19 @@ CopycatsHouse2FTextPointers: ; 5cc74 (17:4c74)
dw CopycatsHouse2FText7
CopycatsHouse2FText1: ; 5cc82 (17:4c82)
- db $08 ; asm
- ld a, [wd7af]
- bit 0, a
- jr nz, .asm_7ccf3 ; 0x5cc88
+ TX_ASM
+ CheckEvent EVENT_GOT_TM31
+ jr nz, .asm_7ccf3
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, CopycatsHouse2FText_5ccd4
call PrintText
ld b, POKE_DOLL
call IsItemInBag
- jr z, .asm_62ecd ; 0x5cc9a
+ jr z, .asm_62ecd
ld hl, TM31PreReceiveText
call PrintText
- ld bc, (TM_31 << 8) | 1
+ lb bc, TM_31, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedTM31Text
@@ -32,17 +31,16 @@ CopycatsHouse2FText1: ; 5cc82 (17:4c82)
ld a, POKE_DOLL
ld [$ffdb], a
callba RemoveItemByID
- ld hl, wd7af
- set 0, [hl]
- jr .asm_62ecd ; 0x5ccc1
+ SetEvent EVENT_GOT_TM31
+ jr .asm_62ecd
.BagFull
ld hl, TM31NoRoomText
call PrintText
- jr .asm_62ecd ; 0x5ccc9
-.asm_7ccf3 ; 0x5cccb
+ jr .asm_62ecd
+.asm_7ccf3
ld hl, TM31ExplanationText2
call PrintText
-.asm_62ecd ; 0x5ccd1
+.asm_62ecd
jp TextScriptEnd
CopycatsHouse2FText_5ccd4: ; 5ccd4 (17:4cd4)
@@ -83,13 +81,13 @@ CopycatsHouse2FText6: ; 5ccfe (17:4cfe)
db "@"
CopycatsHouse2FText7: ; 5cd03 (17:4d03)
- db $08 ; asm
+ TX_ASM
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ld hl, CopycatsHouse2FText_5cd1c
- jr nz, .asm_399a4 ; 0x5cd0c
+ jr nz, .notUp
ld hl, CopycatsHouse2FText_5cd17
-.asm_399a4 ; 0x5cd11
+.notUp
call PrintText
jp TextScriptEnd
diff --git a/scripts/daycarem.asm b/scripts/daycarem.asm
index 1830d2c0..3eabb0bc 100755
--- a/scripts/daycarem.asm
+++ b/scripts/daycarem.asm
@@ -5,27 +5,27 @@ DayCareMTextPointers: ; 56252 (15:6252)
dw DayCareMText1
DayCareMText1: ; 56254 (15:6254)
- db $8
+ TX_ASM
call SaveScreenTilesToBuffer2
ld a, [W_DAYCARE_IN_USE]
and a
- jp nz, DayCareMScript_562e1
- ld hl, DayCareMText_5640f
+ jp nz, .daycareInUse
+ ld hl, DayCareIntroText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- ld hl, DayCareMText_5643b
- jp nz, DayCareMScript_56409
+ ld hl, DayCareComeAgainText
+ jp nz, .done
ld a, [wPartyCount]
dec a
- ld hl, DayCareMText_56445
- jp z, DayCareMScript_56409
- ld hl, DayCareMText_56414
+ ld hl, DayCareOnlyHaveOneMonText
+ jp z, .done
+ ld hl, DayCareWhichMonText
call PrintText
xor a
ld [wUpdateSpritesEnabled], a
- ld [wd07d], a
+ ld [wPartyMenuTypeOrMessageID], a
ld [wMenuItemToSwap], a
call DisplayPartyMenu
push af
@@ -33,90 +33,91 @@ DayCareMText1: ; 56254 (15:6254)
call RestoreScreenTilesAndReloadTilePatterns
call LoadGBPal
pop af
- ld hl, DayCareMText_56437
- jp c, DayCareMScript_56409
- callab Func_2171b
- ld hl, DayCareMText_5644a
- jp c, DayCareMScript_56409
+ ld hl, DayCareAllRightThenText
+ jp c, .done
+ callab KnowsHMMove
+ ld hl, DayCareCantAcceptMonWithHMText
+ jp c, .done
xor a
- ld [wcc2b], a
+ ld [wPartyAndBillsPCSavedMenuItem], a
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
call GetPartyMonName
- ld hl, DayCareMText_56419
+ ld hl, DayCareWillLookAfterMonText
call PrintText
- ld a, $1
+ ld a, 1
ld [W_DAYCARE_IN_USE], a
- ld a, $3
- ld [wcf95], a
- call Func_3a68
+ ld a, PARTY_TO_DAYCARE
+ ld [wMoveMonType], a
+ call MoveMon
xor a
- ld [wcf95], a
+ ld [wRemoveMonFromBox], a
call RemovePokemon
ld a, [wcf91]
call PlayCry
- ld hl, DayCareMText_5641e
- jp DayCareMScript_56409
+ ld hl, DayCareComeSeeMeInAWhileText
+ jp .done
-DayCareMScript_562e1: ; 562e1 (15:62e1)
+.daycareInUse
xor a
ld hl, W_DAYCAREMONNAME
call GetPartyMonName
- ld a, $3
- ld [wcc49], a
+ ld a, DAYCARE_DATA
+ ld [wMonDataLocation], a
call LoadMonData
callab CalcLevelFromExperience
ld a, d
cp MAX_LEVEL
- jr c, .asm_56315
+ jr c, .skipCalcExp
+
ld d, MAX_LEVEL
callab CalcExperience
ld hl, wDayCareMonExp
- ld a, [H_NUMTOPRINT]
+ ld a, [hExperience]
ld [hli], a
- ld a, [$ff97]
+ ld a, [hExperience + 1]
ld [hli], a
- ld a, [$ff98]
+ ld a, [hExperience + 2]
ld [hl], a
ld d, MAX_LEVEL
-.asm_56315
+.skipCalcExp
xor a
- ld [wTrainerEngageDistance], a
+ ld [wDayCareNumLevelsGrown], a
ld hl, wDayCareMonBoxLevel
ld a, [hl]
- ld [wTrainerSpriteOffset], a
+ ld [wDayCareStartLevel], a
cp d
ld [hl], d
- ld hl, DayCareMText_56432
- jr z, .asm_56333
- ld a, [wTrainerSpriteOffset]
+ ld hl, DayCareMonNeedsMoreTimeText
+ jr z, .next
+ ld a, [wDayCareStartLevel]
ld b, a
ld a, d
sub b
- ld [wTrainerEngageDistance], a
- ld hl, DayCareMText_56423
+ ld [wDayCareNumLevelsGrown], a
+ ld hl, DayCareMonHasGrownText
-.asm_56333
+.next
call PrintText
ld a, [wPartyCount]
cp PARTY_LENGTH
- ld hl, DayCareMText_56440
- jp z, .asm_56403
- ld de, wTrainerFacingDirection
+ ld hl, DayCareNoRoomForMonText
+ jp z, .leaveMonInDayCare
+ ld de, wDayCareTotalCost
xor a
ld [de], a
inc de
ld [de], a
- ld hl, wTrainerScreenX
+ ld hl, wDayCarePerLevelCost
ld a, $1
ld [hli], a
ld [hl], $0
- ld a, [wTrainerEngageDistance]
+ ld a, [wDayCareNumLevelsGrown]
inc a
ld b, a
- ld c, $2
-.asm_56357
+ ld c, 2
+.calcPriceLoop
push hl
push de
push bc
@@ -125,141 +126,144 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
pop de
pop hl
dec b
- jr nz, .asm_56357
- ld hl, DayCareMText_56428
+ jr nz, .calcPriceLoop
+ ld hl, DayCareOweMoneyText
call PrintText
- ld a, $13
+ ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
call YesNoChoice
- ld hl, DayCareMText_56437
+ ld hl, DayCareAllRightThenText
ld a, [wCurrentMenuItem]
and a
- jp nz, .asm_56403
- ld hl, wTrainerFacingDirection
- ld [$ff9f], a
+ jp nz, .leaveMonInDayCare
+ ld hl, wDayCareTotalCost
+ ld [hMoney], a
ld a, [hli]
- ld [$ffa0], a
+ ld [hMoney + 1], a
ld a, [hl]
- ld [$ffa1], a
+ ld [hMoney + 2], a
call HasEnoughMoney
- jr nc, .asm_56396
- ld hl, DayCareMText_56454
- jp .asm_56403
+ jr nc, .enoughMoney
+ ld hl, DayCareNotEnoughMoneyText
+ jp .leaveMonInDayCare
-.asm_56396
+.enoughMoney
xor a
ld [W_DAYCARE_IN_USE], a
- ld hl, wTrainerEngageDistance
+ ld hl, wDayCareNumLevelsGrown
ld [hli], a
inc hl
ld de, wPlayerMoney + 2
ld c, $3
predef SubBCDPredef
- ld a, (SFX_02_5a - SFX_Headers_02) / 3
+ ld a, SFX_PURCHASE
call PlaySoundWaitForCurrent
- ld a, $13
+ ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
- ld hl, DayCareMText_5644f
+ ld hl, DayCareHeresYourMonText
call PrintText
- ld a, $2
- ld [wcf95], a
- call Func_3a68
+ ld a, DAYCARE_TO_PARTY
+ ld [wMoveMonType], a
+ call MoveMon
ld a, [wDayCareMonSpecies]
ld [wcf91], a
ld a, [wPartyCount]
dec a
push af
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
push bc
ld hl, wPartyMon1Moves
call AddNTimes
ld d, h
ld e, l
- ld a, $1
- ld [wHPBarMaxHP], a
+ ld a, 1
+ ld [wLearningMovesFromDayCare], a
predef WriteMonMoves
pop bc
pop af
+
+; set mon's HP to max
ld hl, wPartyMon1HP
call AddNTimes
ld d, h
ld e, l
- ld bc, $0021
+ ld bc, wPartyMon1MaxHP - wPartyMon1HP
add hl, bc
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
+
ld a, [wcf91]
call PlayCry
- ld hl, DayCareMText_5642d
- jr DayCareMScript_56409
+ ld hl, DayCareGotMonBackText
+ jr .done
-.asm_56403
- ld a, [wTrainerSpriteOffset]
+.leaveMonInDayCare
+ ld a, [wDayCareStartLevel]
ld [wDayCareMonBoxLevel], a
-DayCareMScript_56409: ; 56409 (15:6409)
+.done
call PrintText
jp TextScriptEnd
-DayCareMText_5640f: ; 5640f (15:640f)
- TX_FAR _DayCareMText_5640f
+DayCareIntroText: ; 5640f (15:640f)
+ TX_FAR _DayCareIntroText
db "@"
-DayCareMText_56414: ; 56414 (15:6414)
- TX_FAR _DayCareMText_56414
+DayCareWhichMonText: ; 56414 (15:6414)
+ TX_FAR _DayCareWhichMonText
db "@"
-DayCareMText_56419: ; 56419 (15:6419)
- TX_FAR _DayCareMText_56419
+DayCareWillLookAfterMonText: ; 56419 (15:6419)
+ TX_FAR _DayCareWillLookAfterMonText
db "@"
-DayCareMText_5641e: ; 5641e (15:641e)
- TX_FAR _DayCareMText_5641e
+DayCareComeSeeMeInAWhileText: ; 5641e (15:641e)
+ TX_FAR _DayCareComeSeeMeInAWhileText
db "@"
-DayCareMText_56423: ; 56423 (15:6423)
- TX_FAR _DayCareMText_56423
+DayCareMonHasGrownText: ; 56423 (15:6423)
+ TX_FAR _DayCareMonHasGrownText
db "@"
-DayCareMText_56428: ; 56428 (15:6428)
- TX_FAR _DayCareMText_56428
+DayCareOweMoneyText: ; 56428 (15:6428)
+ TX_FAR _DayCareOweMoneyText
db "@"
-DayCareMText_5642d: ; 5642d (15:642d)
- TX_FAR _DayCareMText_5642d
+DayCareGotMonBackText: ; 5642d (15:642d)
+ TX_FAR _DayCareGotMonBackText
db "@"
-DayCareMText_56432: ; 56432 (15:6432)
- TX_FAR _DayCareMText_56432
+DayCareMonNeedsMoreTimeText: ; 56432 (15:6432)
+ TX_FAR _DayCareMonNeedsMoreTimeText
db "@"
-DayCareMText_56437: ; 56437 (15:6437)
- TX_FAR _DayCareMText_56437 ; 0x8c000
-DayCareMText_5643b: ; 5643b (15:643b)
- TX_FAR _DayCareMText_5643b ; 0x8c013
+DayCareAllRightThenText: ; 56437 (15:6437)
+ TX_FAR _DayCareAllRightThenText
+DayCareComeAgainText: ; 5643b (15:643b)
+ TX_FAR _DayCareComeAgainText
db "@"
-DayCareMText_56440: ; 56440 (15:6440)
- TX_FAR _DayCareMText_56440
+DayCareNoRoomForMonText: ; 56440 (15:6440)
+ TX_FAR _DayCareNoRoomForMonText
db "@"
-DayCareMText_56445: ; 56445 (15:6445)
- TX_FAR _DayCareMText_56445
+DayCareOnlyHaveOneMonText: ; 56445 (15:6445)
+ TX_FAR _DayCareOnlyHaveOneMonText
db "@"
-DayCareMText_5644a: ; 5644a (15:644a)
- TX_FAR _DayCareMText_5644a
+DayCareCantAcceptMonWithHMText: ; 5644a (15:644a)
+ TX_FAR _DayCareCantAcceptMonWithHMText
db "@"
-DayCareMText_5644f: ; 5644f (15:644f)
- TX_FAR _DayCareMText_5644f
+DayCareHeresYourMonText: ; 5644f (15:644f)
+ TX_FAR _DayCareHeresYourMonText
db "@"
-DayCareMText_56454: ; 56454 (15:6454)
- TX_FAR _DayCareMText_56454
+DayCareNotEnoughMoneyText: ; 56454 (15:6454)
+ TX_FAR _DayCareNotEnoughMoneyText
db "@"
diff --git a/scripts/fanclub.asm b/scripts/fanclub.asm
index f9a839fa..cbafc034 100755
--- a/scripts/fanclub.asm
+++ b/scripts/fanclub.asm
@@ -3,8 +3,7 @@ FanClubScript: ; 59b70 (16:5b70)
FanClubBikeInBag:
; check if any bike paraphernalia in bag
- ld a, [wd771]
- bit 1, a ; got bike voucher?
+ CheckEvent EVENT_GOT_BIKE_VOUCHER
ret nz
ld b, BICYCLE
call IsItemInBag
@@ -24,20 +23,17 @@ FanClubTextPointers: ; 59b84 (16:5b84)
FanClubText1:
; pikachu fan
- db $08 ; asm
- ld a, [wd771]
- bit 7, a
+ TX_ASM
+ CheckEvent EVENT_PIKACHU_FAN_BOAST
jr nz, .mineisbetter
ld hl, .normaltext
call PrintText
- ld hl, wd771
- set 6, [hl]
+ SetEvent EVENT_SEEL_FAN_BOAST
jr .done
.mineisbetter
ld hl, .bettertext
call PrintText
- ld hl, wd771
- res 7, [hl]
+ ResetEvent EVENT_PIKACHU_FAN_BOAST
.done
jp TextScriptEnd
@@ -51,20 +47,17 @@ FanClubText1:
FanClubText2:
; seel fan
- db $08 ; asm
- ld a, [wd771]
- bit 6, a
+ TX_ASM
+ CheckEvent EVENT_SEEL_FAN_BOAST
jr nz, .mineisbetter
ld hl, .normaltext
call PrintText
- ld hl, wd771
- set 7, [hl]
+ SetEvent EVENT_PIKACHU_FAN_BOAST
jr .done
.mineisbetter
ld hl, .bettertext
call PrintText
- ld hl, wd771
- res 6, [hl]
+ ResetEvent EVENT_SEEL_FAN_BOAST
.done
jp TextScriptEnd
@@ -78,7 +71,7 @@ FanClubText2:
FanClubText3:
; pikachu
- db $8
+ TX_ASM
ld hl, .text
call PrintText
ld a, PIKACHU
@@ -92,7 +85,7 @@ FanClubText3:
FanClubText4:
; seel
- db $08 ; asm
+ TX_ASM
ld hl, .text
call PrintText
ld a, SEEL
@@ -106,7 +99,7 @@ FanClubText4:
FanClubText5:
; chair
- db $08 ; asm
+ TX_ASM
call FanClubBikeInBag
jr nz, .nothingleft
@@ -120,13 +113,12 @@ FanClubText5:
; tell the story
ld hl, .storytext
call PrintText
- ld bc, (BIKE_VOUCHER << 8) | 1
+ lb bc, BIKE_VOUCHER, 1
call GiveItem
jr nc, .BagFull
ld hl, .receivedvouchertext
call PrintText
- ld hl, wd771
- set 1, [hl]
+ SetEvent EVENT_GOT_BIKE_VOUCHER
jr .done
.BagFull
ld hl, .bagfulltext
diff --git a/scripts/fightingdojo.asm b/scripts/fightingdojo.asm
index e26da1b1..fa05d486 100755
--- a/scripts/fightingdojo.asm
+++ b/scripts/fightingdojo.asm
@@ -21,15 +21,13 @@ FightingDojoScriptPointers: ; 5cd7b (17:4d7b)
dw FightingDojoScript3
FightingDojoScript1: ; 5cd83 (17:4d83)
- ld a, [wd7b1]
- bit 0, a
+ CheckEvent EVENT_DEFEATED_FIGHTING_DOJO
ret nz
call CheckFightingMapTrainers
ld a, [wTrainerHeaderFlagBit]
and a
ret nz
- ld a, [wd7b1]
- bit 1, a
+ CheckEvent EVENT_BEAT_KARATE_MASTER
ret nz
xor a
ld [hJoyHeld], a
@@ -42,15 +40,15 @@ FightingDojoScript1: ; 5cd83 (17:4d83)
ret nz
ld a, $1
ld [wcf0d], a
+ ld a, PLAYER_DIR_RIGHT
+ ld [wPlayerMovingDirection], a
ld a, $1
- ld [wd528], a
- ld a, $1
- ld [$ff8c], a
- ld a, $8
- ld [$ff8d], a
+ ld [H_SPRITEINDEX], a
+ ld a, SPRITE_FACING_LEFT
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ret
@@ -61,22 +59,20 @@ FightingDojoScript3: ; 5cdc6 (17:4dc6)
ld a, [wcf0d]
and a
jr z, .asm_5cde4
+ ld a, PLAYER_DIR_RIGHT
+ ld [wPlayerMovingDirection], a
ld a, $1
- ld [wd528], a
- ld a, $1
- ld [$ff8c], a
- ld a, $8
- ld [$ff8d], a
+ ld [H_SPRITEINDEX], a
+ ld a, SPRITE_FACING_LEFT
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
.asm_5cde4
ld a, $f0
ld [wJoyIgnore], a
- ld a, [wd7b1]
- or $3e
- ld [wd7b1], a
+ SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3
ld a, $8
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -96,49 +92,48 @@ FightingDojoTextPointers: ; 5ce03 (17:4e03)
FightingDojoTrainerHeaders: ; 5ce13 (17:4e13)
FightingDojoTrainerHeader0: ; 5ce13 (17:4e13)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7b1 ; flag's byte
- dw FightingDojoBattleText1 ; 0x4eac TextBeforeBattle
- dw FightingDojoAfterBattleText1 ; 0x4eb6 TextAfterBattle
- dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle
- dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_0
+ dw FightingDojoBattleText1 ; TextBeforeBattle
+ dw FightingDojoAfterBattleText1 ; TextAfterBattle
+ dw FightingDojoEndBattleText1 ; TextEndBattle
+ dw FightingDojoEndBattleText1 ; TextEndBattle
FightingDojoTrainerHeader1: ; 5ce1f (17:4e1f)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd7b1 ; flag's byte
- dw FightingDojoBattleText2 ; 0x4ec5 TextBeforeBattle
- dw FightingDojoAfterBattleText2 ; 0x4ecf TextAfterBattle
- dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle
- dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_1
+ dw FightingDojoBattleText2 ; TextBeforeBattle
+ dw FightingDojoAfterBattleText2 ; TextAfterBattle
+ dw FightingDojoEndBattleText2 ; TextEndBattle
+ dw FightingDojoEndBattleText2 ; TextEndBattle
FightingDojoTrainerHeader2: ; 5ce2b (17:4e2b)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7b1 ; flag's byte
- dw FightingDojoBattleText3 ; 0x4ede TextBeforeBattle
- dw FightingDojoAfterBattleText3 ; 0x4ee8 TextAfterBattle
- dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle
- dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_2
+ dw FightingDojoBattleText3 ; TextBeforeBattle
+ dw FightingDojoAfterBattleText3 ; TextAfterBattle
+ dw FightingDojoEndBattleText3 ; TextEndBattle
+ dw FightingDojoEndBattleText3 ; TextEndBattle
FightingDojoTrainerHeader3: ; 5ce37 (17:4e37)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7b1 ; flag's byte
- dw FightingDojoBattleText4 ; 0x4ef7 TextBeforeBattle
- dw FightingDojoAfterBattleText4 ; 0x4f01 TextAfterBattle
- dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
- dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_3
+ dw FightingDojoBattleText4 ; TextBeforeBattle
+ dw FightingDojoAfterBattleText4 ; TextAfterBattle
+ dw FightingDojoEndBattleText4 ; TextEndBattle
+ dw FightingDojoEndBattleText4 ; TextEndBattle
db $ff
FightingDojoText1: ; 5ce44 (17:4e44)
- db $08 ; asm
- ld a, [wd7b1]
- bit 0, a
+ TX_ASM
+ CheckEvent EVENT_DEFEATED_FIGHTING_DOJO
jp nz, .continue1
- bit 1, a
+ CheckEventReuseA EVENT_BEAT_KARATE_MASTER
jp nz, .continue2
ld hl, FightingDojoText_5ce8e
call PrintText
@@ -148,22 +143,22 @@ FightingDojoText1: ; 5ce44 (17:4e44)
ld hl, FightingDojoText_5ce93
ld de, FightingDojoText_5ce93
call SaveEndBattleTextPointers
- ldh a, [$8c]
+ ld a, [hSpriteIndexOrTextID]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
ld [W_FIGHTINGDOJOCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
- jr .asm_9dba4 ; 0x5ce7b
-.continue1 ; 0x5ce7d
+ jr .asm_9dba4
+.continue1
ld hl, FightingDojoText_5ce9d
call PrintText
- jr .asm_9dba4 ; 0x5ce83
-.continue2 ; 0x5ce85f
+ jr .asm_9dba4
+.continue2
ld hl, FightingDojoText8
call PrintText
-.asm_9dba4 ; 0x5ce8b
+.asm_9dba4
jp TextScriptEnd
FightingDojoText_5ce8e: ; 5ce8e (17:4e8e)
@@ -183,7 +178,7 @@ FightingDojoText_5ce9d: ; 5ce9d (17:4e9d)
db "@"
FightingDojoText2: ; 5cea2 (17:4ea2)
- db $08 ; asm
+ TX_ASM
ld hl, FightingDojoTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -201,7 +196,7 @@ FightingDojoAfterBattleText1: ; 5ceb6 (17:4eb6)
db "@"
FightingDojoText3: ; 5cebb (17:4ebb)
- db $08 ; asm
+ TX_ASM
ld hl, FightingDojoTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -219,7 +214,7 @@ FightingDojoAfterBattleText2: ; 5cecf (17:4ecf)
db "@"
FightingDojoText4: ; 5ced4 (17:4ed4)
- db $08 ; asm
+ TX_ASM
ld hl, FightingDojoTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -237,7 +232,7 @@ FightingDojoAfterBattleText3: ; 5cee8 (17:4ee8)
db "@"
FightingDojoText5: ; 5ceed (17:4eed)
- db $08 ; asm
+ TX_ASM
ld hl, FightingDojoTrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -256,9 +251,8 @@ FightingDojoAfterBattleText4: ; 5cf01 (17:4f01)
FightingDojoText6: ; 5cf06 (17:4f06)
; Hitmonlee Poké Ball
- db $08 ; asm
- ld a, [wd7b1]
- and %11000000
+ TX_ASM
+ CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN
jr z, .GetMon
ld hl, OtherHitmonText
call PrintText
@@ -280,11 +274,9 @@ FightingDojoText6: ; 5cf06 (17:4f06)
; once Poké Ball is taken, hide sprite
ld a, HS_FIGHTING_DOJO_GIFT_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
- ld hl, wd7b1
- set 6, [hl]
- set 0, [hl]
+ SetEvents EVENT_GOT_HITMONLEE, EVENT_DEFEATED_FIGHTING_DOJO
.done
jp TextScriptEnd
@@ -294,9 +286,8 @@ WantHitmonleeText: ; 5cf49 (17:4f49)
FightingDojoText7: ; 5cf4e (17:4f4e)
; Hitmonchan Poké Ball
- db $08 ; asm
- ld a, [wd7b1]
- and %11000000
+ TX_ASM
+ CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN
jr z, .GetMon
ld hl, OtherHitmonText
call PrintText
@@ -315,13 +306,11 @@ FightingDojoText7: ; 5cf4e (17:4f4e)
ld c,30
call GivePokemon
jr nc, .done
- ld hl, wd7b1
- set 7, [hl]
- set 0, [hl]
+ SetEvents EVENT_GOT_HITMONCHAN, EVENT_DEFEATED_FIGHTING_DOJO
; once Poké Ball is taken, hide sprite
ld a, HS_FIGHTING_DOJO_GIFT_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
.done
jp TextScriptEnd
diff --git a/scripts/fuchsiacity.asm b/scripts/fuchsiacity.asm
index 6b7e067b..cdf8e203 100755
--- a/scripts/fuchsiacity.asm
+++ b/scripts/fuchsiacity.asm
@@ -74,7 +74,7 @@ FuchsiaCityText18: ; 19a8b (6:5a8b)
db "@"
FuchsiaCityText19: ; 19a90 (6:5a90)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaCityChanseyText
call PrintText
ld a, CHANSEY
@@ -86,7 +86,7 @@ FuchsiaCityChanseyText: ; 19a9f (6:5a9f)
db "@"
FuchsiaCityText20: ; 19aa4 (6:5aa4)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaCityVoltorbText
call PrintText
ld a, VOLTORB
@@ -98,7 +98,7 @@ FuchsiaCityVoltorbText: ; 19ab3 (6:5ab3)
db "@"
FuchsiaCityText21: ; 19ab8 (6:5ab8)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaCityKangaskhanText
call PrintText
ld a, KANGASKHAN
@@ -110,7 +110,7 @@ FuchsiaCityKangaskhanText: ; 19ac7 (6:5ac7)
db "@"
FuchsiaCityText22: ; 19acc (6:5acc)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaCitySlowpokeText
call PrintText
ld a, SLOWPOKE
@@ -122,7 +122,7 @@ FuchsiaCitySlowpokeText: ; 19adb (6:5adb)
db "@"
FuchsiaCityText23: ; 19ae0 (6:5ae0)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaCityLaprasText
call PrintText
ld a, LAPRAS
@@ -134,27 +134,26 @@ FuchsiaCityLaprasText: ; 19aef (6:5aef)
db "@"
FuchsiaCityText24: ; 19af4 (6:5af4)
- db $08 ; asm
- ld a, [wd7f6]
- bit 6, a
- jr nz, .asm_3b4e8 ; 0x19afa
- bit 7, a
- jr nz, .asm_667d5 ; 0x19afe
+ TX_ASM
+ CheckEvent EVENT_GOT_DOME_FOSSIL
+ jr nz, .asm_3b4e8
+ CheckEventReuseA EVENT_GOT_HELIX_FOSSIL
+ jr nz, .asm_667d5
ld hl, FuchsiaCityText_19b2a
call PrintText
- jr .asm_4343f ; 0x19b06
-.asm_3b4e8 ; 0x19b08
+ jr .asm_4343f
+.asm_3b4e8
ld hl, FuchsiaCityOmanyteText
call PrintText
ld a, OMANYTE
- jr .asm_81556 ; 0x19b10
-.asm_667d5 ; 0x19b12
+ jr .asm_81556
+.asm_667d5
ld hl, FuchsiaCityKabutoText
call PrintText
ld a, KABUTO
-.asm_81556 ; 0x19b1a
+.asm_81556
call DisplayPokedex
-.asm_4343f ; 0x19b1d
+.asm_4343f
jp TextScriptEnd
FuchsiaCityOmanyteText: ; 19b20 (6:5b20)
diff --git a/scripts/fuchsiagym.asm b/scripts/fuchsiagym.asm
index 43d977d7..3ec89256 100755
--- a/scripts/fuchsiagym.asm
+++ b/scripts/fuchsiagym.asm
@@ -37,40 +37,36 @@ FuchsiaGymScriptPointers: ; 75482 (1d:5482)
dw FuchsiaGymScript3
FuchsiaGymScript3: ; 7548a (1d:548a)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, FuchsiaGymScript_75477
ld a, $f0
ld [wJoyIgnore], a
FuchsiaGymScript3_75497: ; 75497 (1d:5497)
ld a, $9
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd792
- set 1, [hl]
- ld bc, (TM_06 << 8) | 1
+ SetEvent EVENT_BEAT_KOGA
+ lb bc, TM_06, 1
call GiveItem
jr nc, .BagFull
ld a, $a
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd792
- set 0, [hl]
+ SetEvent EVENT_GOT_TM06
jr .asm_754c0
.BagFull
ld a, $b
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_754c0
ld hl, W_OBTAINEDBADGES
set 4, [hl]
- ld hl, wd72a
+ ld hl, wBeatGymFlags
set 4, [hl]
; deactivate gym trainers
- ld a, [wd792]
- or %11111100
- ld [wd792], a
+ SetEventRange EVENT_BEAT_FUCHSIA_GYM_TRAINER_0, EVENT_BEAT_FUCHSIA_GYM_TRAINER_6
jp FuchsiaGymScript_75477
@@ -89,111 +85,110 @@ FuchsiaGymTextPointers: ; 754d5 (1d:54d5)
FuchsiaGymTrainerHeaders: ; 754eb (1d:54eb)
FuchsiaGymTrainerHeader0: ; 754eb (1d:54eb)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd792 ; flag's byte
- dw FuchsiaGymBattleText1 ; 0x55ae TextBeforeBattle
- dw FuchsiaGymAfterBattleText1 ; 0x55b8 TextAfterBattle
- dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle
- dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_0
+ dw FuchsiaGymBattleText1 ; TextBeforeBattle
+ dw FuchsiaGymAfterBattleText1 ; TextAfterBattle
+ dw FuchsiaGymEndBattleText1 ; TextEndBattle
+ dw FuchsiaGymEndBattleText1 ; TextEndBattle
FuchsiaGymTrainerHeader2: ; 754f7 (1d:54f7)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd792 ; flag's byte
- dw FuchsiaGymBattleText2 ; 0x55c7 TextBeforeBattle
- dw FuchsiaGymAfterBattleText2 ; 0x55d1 TextAfterBattle
- dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle
- dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_2
+ dw FuchsiaGymBattleText2 ; TextBeforeBattle
+ dw FuchsiaGymAfterBattleText2 ; TextAfterBattle
+ dw FuchsiaGymEndBattleText2 ; TextEndBattle
+ dw FuchsiaGymEndBattleText2 ; TextEndBattle
FuchsiaGymTrainerHeader3: ; 75503 (1d:5503)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd792 ; flag's byte
- dw FuchsiaGymBattleText3 ; 0x55e0 TextBeforeBattle
- dw FuchsiaGymAfterBattleText3 ; 0x55ea TextAfterBattle
- dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle
- dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_3
+ dw FuchsiaGymBattleText3 ; TextBeforeBattle
+ dw FuchsiaGymAfterBattleText3 ; TextAfterBattle
+ dw FuchsiaGymEndBattleText3 ; TextEndBattle
+ dw FuchsiaGymEndBattleText3 ; TextEndBattle
FuchsiaGymTrainerHeader4: ; 7550f (1d:550f)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_4
db ($2 << 4) ; trainer's view range
- dw wd792 ; flag's byte
- dw FuchsiaGymBattleText4 ; 0x55f9 TextBeforeBattle
- dw FuchsiaGymAfterBattleText4 ; 0x5603 TextAfterBattle
- dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle
- dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_4
+ dw FuchsiaGymBattleText4 ; TextBeforeBattle
+ dw FuchsiaGymAfterBattleText4 ; TextAfterBattle
+ dw FuchsiaGymEndBattleText4 ; TextEndBattle
+ dw FuchsiaGymEndBattleText4 ; TextEndBattle
FuchsiaGymTrainerHeader5: ; 7551b (1d:551b)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_5
db ($2 << 4) ; trainer's view range
- dw wd792 ; flag's byte
- dw FuchsiaGymBattleText5 ; 0x5612 TextBeforeBattle
- dw FuchsiaGymAfterBattleText5 ; 0x561c TextAfterBattle
- dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle
- dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_5
+ dw FuchsiaGymBattleText5 ; TextBeforeBattle
+ dw FuchsiaGymAfterBattleText5 ; TextAfterBattle
+ dw FuchsiaGymEndBattleText5 ; TextEndBattle
+ dw FuchsiaGymEndBattleText5 ; TextEndBattle
FuchsiaGymTrainerHeader6: ; 75527 (1d:5527)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_6
db ($2 << 4) ; trainer's view range
- dw wd792 ; flag's byte
- dw FuchsiaGymBattleText6 ; 0x562b TextBeforeBattle
- dw FuchsiaGymAfterBattleText6 ; 0x5635 TextAfterBattle
- dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
- dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_6
+ dw FuchsiaGymBattleText6 ; TextBeforeBattle
+ dw FuchsiaGymAfterBattleText6 ; TextAfterBattle
+ dw FuchsiaGymEndBattleText6 ; TextEndBattle
+ dw FuchsiaGymEndBattleText6 ; TextEndBattle
db $ff
FuchsiaGymText1: ; 75534 (1d:5534)
- db $08 ; asm
- ld a, [wd792]
- bit 1, a
- jr z, .asm_181b6 ; 0x7553a
- bit 0, a
- jr nz, .asm_adc3b ; 0x7553e
+ TX_ASM
+ CheckEvent EVENT_BEAT_KOGA
+ jr z, .asm_181b6
+ CheckEventReuseA EVENT_GOT_TM06
+ jr nz, .asm_adc3b
call z, FuchsiaGymScript3_75497
call DisableWaitingAfterTextDisplay
- jr .asm_e84c6 ; 0x75546
-.asm_adc3b ; 0x75548
- ld hl, UnnamedText_7558b
+ jr .asm_e84c6
+.asm_adc3b
+ ld hl, KogaExplainToxicText
call PrintText
- jr .asm_e84c6 ; 0x7554e
-.asm_181b6 ; 0x75550
- ld hl, UnnamedText_75581
+ jr .asm_e84c6
+.asm_181b6
+ ld hl, KogaBeforeBattleText
call PrintText
ld hl, wd72d
set 6, [hl]
set 7, [hl]
- ld hl, UnnamedText_75586
- ld de, UnnamedText_75586
+ ld hl, KogaAfterBattleText
+ ld de, KogaAfterBattleText
call SaveEndBattleTextPointers
- ldh a, [$8c]
+ ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $5
ld [W_GYMLEADERNO], a
xor a
- ldh [$b4], a
+ ld [hJoyHeld], a
ld a, $3
ld [W_FUCHSIAGYMCURSCRIPT], a
-.asm_e84c6 ; 0x7557e
+.asm_e84c6
jp TextScriptEnd
-UnnamedText_75581: ; 75581 (1d:5581)
- TX_FAR _UnnamedText_75581
+KogaBeforeBattleText: ; 75581 (1d:5581)
+ TX_FAR _KogaBeforeBattleText
db "@"
-UnnamedText_75586: ; 75586 (1d:5586)
- TX_FAR _UnnamedText_75586
+KogaAfterBattleText: ; 75586 (1d:5586)
+ TX_FAR _KogaAfterBattleText
db "@"
-UnnamedText_7558b: ; 7558b (1d:558b)
- TX_FAR _UnnamedText_7558b
+KogaExplainToxicText: ; 7558b (1d:558b)
+ TX_FAR _KogaExplainToxicText
db "@"
FuchsiaGymText9: ; 75590 (1d:5590)
- TX_FAR _UnnamedText_75590
+ TX_FAR _FuchsiaGymText9
db "@"
FuchsiaGymText10: ; 75595 (1d:5595)
@@ -209,7 +204,7 @@ FuchsiaGymText11: ; 7559f (1d:559f)
db "@"
FuchsiaGymText2: ; 755a4 (1d:55a4)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -227,7 +222,7 @@ FuchsiaGymAfterBattleText1: ; 755b8 (1d:55b8)
db "@"
FuchsiaGymText3: ; 755bd (1d:55bd)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -245,7 +240,7 @@ FuchsiaGymAfterBattleText2: ; 755d1 (1d:55d1)
db "@"
FuchsiaGymText4: ; 755d6 (1d:55d6)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaGymTrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -263,7 +258,7 @@ FuchsiaGymAfterBattleText3: ; 755ea (1d:55ea)
db "@"
FuchsiaGymText5: ; 755ef (1d:55ef)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaGymTrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -281,7 +276,7 @@ FuchsiaGymAfterBattleText4: ; 75603 (1d:5603)
db "@"
FuchsiaGymText6: ; 75608 (1d:5608)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaGymTrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -299,7 +294,7 @@ FuchsiaGymAfterBattleText5: ; 7561c (1d:561c)
db "@"
FuchsiaGymText7: ; 75621 (1d:5621)
- db $08 ; asm
+ TX_ASM
ld hl, FuchsiaGymTrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -317,20 +312,19 @@ FuchsiaGymAfterBattleText6: ; 75635 (1d:5635)
db "@"
FuchsiaGymText8: ; 7563a (1d:563a)
- db $08 ; asm
- ld a, [wd792]
- bit 1, a
- ld hl, UnnamedText_75653
- jr nz, .asm_50671 ; 0x75643
- ld hl, UnnamedText_7564e
-.asm_50671 ; 0x75648
+ TX_ASM
+ CheckEvent EVENT_BEAT_KOGA
+ ld hl, FuchsiaGymText_75653
+ jr nz, .asm_50671
+ ld hl, FuchsiaGymText_7564e
+.asm_50671
call PrintText
jp TextScriptEnd
-UnnamedText_7564e: ; 7564e (1d:564e)
- TX_FAR _UnnamedText_7564e
+FuchsiaGymText_7564e: ; 7564e (1d:564e)
+ TX_FAR _FuchsiaGymText_7564e
db "@"
-UnnamedText_75653: ; 75653 (1d:5653)
- TX_FAR _UnnamedText_75653
+FuchsiaGymText_75653: ; 75653 (1d:5653)
+ TX_FAR _FuchsiaGymText_75653
db "@"
diff --git a/scripts/fuchsiahouse2.asm b/scripts/fuchsiahouse2.asm
index c8c250ab..76b5e91f 100755
--- a/scripts/fuchsiahouse2.asm
+++ b/scripts/fuchsiahouse2.asm
@@ -3,60 +3,56 @@ FuchsiaHouse2Script: ; 750b5 (1d:50b5)
FuchsiaHouse2TextPointers: ; 750b8 (1d:50b8)
dw FuchsiaHouse2Text1
- dw Predef5CText
+ dw PickUpItemText
dw BoulderText
dw FuchsiaHouse2Text4
dw FuchsiaHouse2Text5
FuchsiaHouse2Text1: ; 750c2 (1d:50c2)
- db $08 ; asm
- ld a, [wd78e]
- bit 0, a
- jr nz, .subtract ; 0x750c8
+ TX_ASM
+ CheckEvent EVENT_GOT_HM04
+ jr nz, .subtract
ld b,GOLD_TEETH
call IsItemInBag
- jr nz, .asm_3f30f ; 0x750cf
- ld a, [wd78e]
- bit 1, a
- jr nz, .asm_60cba ; 0x750d6
+ jr nz, .asm_3f30f
+ CheckEvent EVENT_GAVE_GOLD_TEETH
+ jr nz, .asm_60cba
ld hl, WardenGibberishText1
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
ld hl, WardenGibberishText3
- jr nz, .asm_61238 ; 0x750e8
+ jr nz, .asm_61238
ld hl, WardenGibberishText2
-.asm_61238 ; 0x750ed
+.asm_61238
call PrintText
- jr .asm_52039 ; 0x750f0
-.asm_3f30f ; 0x750f2
+ jr .asm_52039
+.asm_3f30f
ld hl, WardenTeethText1
call PrintText
ld a, GOLD_TEETH
ld [$ffdb], a
callba RemoveItemByID
- ld hl, wd78e
- set 1, [hl]
-.asm_60cba ; 0x75109
+ SetEvent EVENT_GAVE_GOLD_TEETH
+.asm_60cba
ld hl, WardenThankYouText
call PrintText
- ld bc,(HM_04 << 8) | 1
+ lb bc, HM_04, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedHM04Text
call PrintText
- ld hl, wd78e
- set 0, [hl]
- jr .asm_52039 ; 0x75122
-.subtract ; 0x75124
+ SetEvent EVENT_GOT_HM04
+ jr .asm_52039
+.subtract
ld hl, HM04ExplanationText
call PrintText
- jr .asm_52039 ; 0x7512a
+ jr .asm_52039
.BagFull
ld hl, HM04NoRoomText
call PrintText
-.asm_52039 ; 0x75132
+.asm_52039
jp TextScriptEnd
WardenGibberishText1: ; 75135 (1d:5135)
@@ -97,13 +93,13 @@ HM04NoRoomText: ; 7515e (1d:515e)
FuchsiaHouse2Text5: ; 75163 (1d:5163)
FuchsiaHouse2Text4: ; 75163 (1d:5163)
- db $08 ; asm
- ld a, [hSpriteIndexOrTextID]
+ TX_ASM
+ ld a, [H_SPRITEINDEX]
cp $4
ld hl, FuchsiaHouse2Text_7517b
- jr nz, .asm_4c9a2 ; 0x7516b
+ jr nz, .asm_4c9a2
ld hl, FuchsiaHouse2Text_75176
-.asm_4c9a2 ; 0x75170
+.asm_4c9a2
call PrintText
jp TextScriptEnd
diff --git a/scripts/fuchsiahouse3.asm b/scripts/fuchsiahouse3.asm
index 372df6a6..2aabb9c2 100755
--- a/scripts/fuchsiahouse3.asm
+++ b/scripts/fuchsiahouse3.asm
@@ -5,7 +5,7 @@ FuchsiaHouse3TextPointers: ; 5617f (15:617f)
dw FuchsiaHouse3Text1
FuchsiaHouse3Text1: ; 56181 (15:6181)
- db $08 ; asm
+ TX_ASM
ld a, [wd728]
bit 4, a
jr nz, .after
@@ -18,7 +18,7 @@ FuchsiaHouse3Text1: ; 56181 (15:6181)
and a
jr nz, .refused
- ld bc, (GOOD_ROD << 8) | 1
+ lb bc, GOOD_ROD, 1
call GiveItem
jr nc, .full
@@ -48,11 +48,11 @@ FuchsiaHouse3Text_561bd: ; 561bd (15:61bd)
db "@"
FuchsiaHouse3Text_561c2: ; 561c2 (15:61c2)
- TX_FAR _FuchsiaHouse3Text_561c2 ; 0xa06e8
+ TX_FAR _FuchsiaHouse3Text_561c2
db $0B
db "@"
-UnnamedText_561c8: ; 561c8
+UnusedText_561c8: ; 561c8
para "つり こそ"
line "おとこの ロマン だ!"
diff --git a/scripts/gary.asm b/scripts/gary.asm
index c0785cab..3215a04f 100755
--- a/scripts/gary.asm
+++ b/scripts/gary.asm
@@ -40,9 +40,9 @@ GaryScript1: ; 75f48 (1d:5f48)
ret
RLEMovement75f63: ; 75f63 (1d:5f63)
- db $40,1
- db $10,1
- db $40,3
+ db D_UP,1
+ db D_RIGHT,1
+ db D_UP,3
db $ff
GaryScript2: ; 75f6a (1d:5f6a)
@@ -55,7 +55,7 @@ GaryScript2: ; 75f6a (1d:5f6a)
ld hl, W_OPTIONS
res 7, [hl]
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld hl, wd72d
@@ -64,18 +64,18 @@ GaryScript2: ; 75f6a (1d:5f6a)
ld hl, GaryText_760f9
ld de, GaryText_760fe
call SaveEndBattleTextPointers
- ld a, SONY3 + $c8
+ ld a, OPP_SONY3
ld [W_CUROPPONENT], a
; select which team to use during the encounter
ld a, [W_RIVALSTARTER]
cp STARTER2
- jr nz, .NotSquirtle ; 0x75f9f $4
+ jr nz, .NotSquirtle
ld a, $1
jr .done
.NotSquirtle
cp STARTER3
- jr nz, .Charmander ; 0x75fa7 $4
+ jr nz, .Charmander
ld a, $2
jr .done
.Charmander
@@ -93,16 +93,15 @@ GaryScript3: ; 75fbb (1d:5fbb)
ld a, [W_ISINBATTLE]
cp $ff
jp z, GaryScript_75f29
- call UpdateSprites ; move sprites
- ld hl, wd867
- set 1, [hl]
+ call UpdateSprites
+ SetEvent EVENT_BEAT_CHAMPION_RIVAL
ld a, $f0
ld [wJoyIgnore], a
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call GaryScript_760c8
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld a, $4
ld [W_GARYCURSCRIPT], a
@@ -111,43 +110,48 @@ GaryScript3: ; 75fbb (1d:5fbb)
GaryScript4: ; 75fe4 (1d:5fe4)
callba Music_Cities1AlternateTempo
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call GaryScript_760c8
ld a, $2
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld de, MovementData_76014
ld a, $2
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, HS_CHAMPIONS_ROOM_OAK
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $5
ld [W_GARYCURSCRIPT], a
ret
MovementData_76014: ; 76014 (1d:6014)
- db $40,$40,$40,$40,$40,$FF
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db $FF
GaryScript5: ; 7601a (1d:601a)
ld a, [wd730]
bit 0, a
ret nz
- ld a, $2
- ld [wd528], a
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
ld a, $1
- ld [$ff8c], a
- ld a, $8
- ld [$ff8d], a
+ ld [H_SPRITEINDEX], a
+ ld a, SPRITE_FACING_LEFT
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $2
- ld [$ff8c], a
- xor a
- ld [$ff8d], a
- call SetSpriteFacingDirectionAndDelay ; face object
+ ld [H_SPRITEINDEX], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
+ call SetSpriteFacingDirectionAndDelay
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call GaryScript_760c8
ld a, $6
ld [W_GARYCURSCRIPT], a
@@ -155,12 +159,12 @@ GaryScript5: ; 7601a (1d:601a)
GaryScript6: ; 76047 (1d:6047)
ld a, $2
- ld [$ff8c], a
- ld a, $c
- ld [$ff8d], a
- call SetSpriteFacingDirectionAndDelay ; face object
+ ld [H_SPRITEINDEX], a
+ ld a, SPRITE_FACING_RIGHT
+ ld [hSpriteFacingDirection], a
+ call SetSpriteFacingDirectionAndDelay
ld a, $4
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call GaryScript_760c8
ld a, $7
ld [W_GARYCURSCRIPT], a
@@ -168,30 +172,32 @@ GaryScript6: ; 76047 (1d:6047)
GaryScript7: ; 7605f (1d:605f)
ld a, $2
- ld [$ff8c], a
- xor a
- ld [$ff8d], a
- call SetSpriteFacingDirectionAndDelay ; face object
+ ld [H_SPRITEINDEX], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
+ call SetSpriteFacingDirectionAndDelay
ld a, $5
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call GaryScript_760c8
ld de, MovementData_76080
ld a, $2
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $8
ld [W_GARYCURSCRIPT], a
ret
MovementData_76080: ; 76080 (1d:6080)
- db $40,$40,$FF
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db $FF
GaryScript8: ; 76083 (1d:6083)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_CHAMPIONS_ROOM_OAK
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $9
ld [W_GARYCURSCRIPT], a
@@ -210,9 +216,9 @@ GaryScript9: ; 76099 (1d:6099)
ld [W_GARYCURSCRIPT], a
ret
-RLEMovement760b4 ; 760b4 (1d:60b4)
- db $40,4
- db $20,1
+RLEMovement760b4: ; 760b4 (1d:60b4)
+ db D_UP,4
+ db D_LEFT,1
db $ff
GaryScript10: ; 760b9 (1d:60b9)
@@ -225,7 +231,7 @@ GaryScript10: ; 760b9 (1d:60b9)
ld [W_GARYCURSCRIPT], a
ret
-GaryScript_760c8 ; 760c8 (1d:60c8)
+GaryScript_760c8: ; 760c8 (1d:60c8)
ld a, $f0
ld [wJoyIgnore], a
call DisplayTextID
@@ -241,13 +247,12 @@ GaryTextPointers: ; 760d6 (1d:60d6)
dw GaryText5
GaryText1: ; 760e0 (1d:60e0)
- db $08 ; asm
- ld a, [wd867]
- bit 1, a
+ TX_ASM
+ CheckEvent EVENT_BEAT_CHAMPION_RIVAL
ld hl, GaryText_760f4
- jr z, .asm_17e9f ; 0x760e9
+ jr z, .asm_17e9f
ld hl, GaryText_76103
-.asm_17e9f ; 0x760ee
+.asm_17e9f
call PrintText
jp TextScriptEnd
@@ -272,7 +277,7 @@ GaryText2: ; 76108 (1d:6108)
db "@"
GaryText3: ; 7610d (1d:610d)
- db $8
+ TX_ASM
ld a, [W_PLAYERSTARTER]
ld [wd11e], a
call GetMonName
diff --git a/scripts/halloffameroom.asm b/scripts/halloffameroom.asm
index c44622c7..1da6d3f5 100755
--- a/scripts/halloffameroom.asm
+++ b/scripts/halloffameroom.asm
@@ -21,13 +21,13 @@ HallofFameRoomScript3: ; 5a4ba (16:64ba)
HallofFameRoomScript2: ; 5a4bb (16:64bb)
call Delay3
- ld a, [wd358]
+ ld a, [wLetterPrintingDelayFlags]
push af
xor a
ld [wJoyIgnore], a
predef HallOfFamePC
pop af
- ld [wd358], a
+ ld [wLetterPrintingDelayFlags], a
ld hl, W_FLAGS_D733
res 1, [hl]
inc hl
@@ -39,12 +39,8 @@ HallofFameRoomScript2: ; 5a4bb (16:64bb)
ld [hl], a
ld [W_LANCECURSCRIPT], a
ld [W_HALLOFFAMEROOMCURSCRIPT], a
- ld hl, wd863
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
+ ; Elite 4 events
+ ResetEventRange ELITE4_EVENTS_START, ELITE4_CHAMPION_EVENTS_END, 1
xor a
ld [W_HALLOFFAMEROOMCURSCRIPT], a
ld a, PALLET_TOWN
@@ -55,7 +51,7 @@ HallofFameRoomScript2: ; 5a4bb (16:64bb)
ld c, 600 / 5
call DelayFrames
dec b
- jr nz, .asm_5a4ff ; 0x5a505 $f8
+ jr nz, .asm_5a4ff
call WaitForTextScrollButtonPress
jp Init
@@ -73,33 +69,33 @@ HallofFameRoomScript0: ; 5a50d (16:650d)
ret
RLEMovement5a528: ; 5a528 (16:6528)
- db $40,$5
+ db D_UP,$5
db $ff
HallofFameRoomScript1: ; 5a52b (16:652b)
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
+ ld a, PLAYER_DIR_RIGHT
+ ld [wPlayerMovingDirection], a
ld a, $1
- ld [wd528], a
- ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
- ld a, $8
- ld [$ff8d], a
+ ld a, SPRITE_FACING_LEFT
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
call Delay3
xor a
ld [wJoyIgnore], a
- inc a
- ld [wd528], a
+ inc a ; PLAYER_DIR_RIGHT
+ ld [wPlayerMovingDirection], a
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
ld [wJoyIgnore], a
ld a, HS_UNKNOWN_DUNGEON_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $2
ld [W_HALLOFFAMEROOMCURSCRIPT], a
diff --git a/scripts/indigoplateaulobby.asm b/scripts/indigoplateaulobby.asm
index 1b09a61d..7655d8c7 100755
--- a/scripts/indigoplateaulobby.asm
+++ b/scripts/indigoplateaulobby.asm
@@ -5,18 +5,13 @@ IndigoPlateauLobbyScript: ; 19c5b (6:5c5b)
bit 6, [hl]
res 6, [hl]
ret z
- ld hl, wd869
- res 7, [hl]
- ld hl, wd734
+ ResetEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
+ ld hl, wBeatLorelei
bit 1, [hl]
res 1, [hl]
ret z
- ld hl, wd863
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
+ ; Elite 4 events
+ ResetEventRange ELITE4_EVENTS_START, EVENT_LANCES_ROOM_LOCK_DOOR
ret
IndigoPlateauLobbyTextPointers: ; 19c7f (6:5c7f)
diff --git a/scripts/lab2.asm b/scripts/lab2.asm
index 9839a563..4c3ab344 100755
--- a/scripts/lab2.asm
+++ b/scripts/lab2.asm
@@ -11,15 +11,15 @@ Lab2Text1: ; 75c2a (1d:5c2a)
db "@"
Lab2Text2: ; 75c2f (1d:5c2f)
- db $8
+ TX_ASM
ld a, $7
ld [wWhichTrade], a
- jr asm_78552 ; 0x75c35 $6
+ jr Lab2DoTrade
Lab2Text3: ; 75c37 (1d:5c37)
- db $8
+ TX_ASM
ld a, $8
ld [wWhichTrade], a
-asm_78552: ; 75c3d (1d:5c3d)
+Lab2DoTrade: ; 75c3d (1d:5c3d)
predef DoInGameTradeDialogue
jp TextScriptEnd
diff --git a/scripts/lab3.asm b/scripts/lab3.asm
index 66839b17..cbb5f53f 100755
--- a/scripts/lab3.asm
+++ b/scripts/lab3.asm
@@ -9,28 +9,26 @@ Lab3TextPointers: ; 75c8a (1d:5c8a)
dw Lab3Text5
Lab3Text1: ; 75c94 (1d:5c94)
- db $08 ; asm
- ld a, [wd7a1]
- bit 7, a
- jr nz, .asm_e551a ; 0x75c9a
+ TX_ASM
+ CheckEvent EVENT_GOT_TM35
+ jr nz, .asm_e551a
ld hl, TM35PreReceiveText
call PrintText
- ld bc, (TM_35 << 8) | 1
+ lb bc, TM_35, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedTM35Text
call PrintText
- ld hl, wd7a1
- set 7, [hl]
- jr .asm_eb896 ; 0x75cb5
+ SetEvent EVENT_GOT_TM35
+ jr .asm_eb896
.BagFull
ld hl, TM35NoRoomText
call PrintText
- jr .asm_eb896 ; 0x75cbd
-.asm_e551a ; 0x75cbf
+ jr .asm_eb896
+.asm_e551a
ld hl, TM35ExplanationText
call PrintText
-.asm_eb896 ; 0x75cc5
+.asm_eb896
jp TextScriptEnd
TM35PreReceiveText: ; 75cc8 (1d:5cc8)
diff --git a/scripts/lab4.asm b/scripts/lab4.asm
index 1e818676..dab07824 100755
--- a/scripts/lab4.asm
+++ b/scripts/lab4.asm
@@ -5,12 +5,11 @@ Lab4TextPointers: ; 75d34 (1d:5d34)
dw Lab4Text1
dw Lab4Text2
-Lab4Script_75d38: ; 75d38 (1d:5d38)
+Lab4Script_GetFossilsInBag: ; 75d38 (1d:5d38)
; construct a list of all fossils in the player's bag
-
xor a
- ld [wcd37], a
- ld de, wcc5b
+ ld [wFilteredBagItemsCount], a
+ ld de, wFilteredBagItems
ld hl, FossilsList
.loop
ld a, [hli]
@@ -20,7 +19,7 @@ Lab4Script_75d38: ; 75d38 (1d:5d38)
push de
ld [wd11e], a
ld b, a
- predef IsItemInBag_
+ predef GetQuantityOfItemInBag
pop de
pop hl
ld a, b
@@ -32,7 +31,7 @@ Lab4Script_75d38: ; 75d38 (1d:5d38)
ld [de], a
inc de
push hl
- ld hl, wcd37
+ ld hl, wFilteredBagItemsCount
inc [hl]
pop hl
jr .loop
@@ -48,45 +47,40 @@ FossilsList: ; 75d68 (1d:5d68)
db $00
Lab4Text1: ; 75d6c (1d:5d6c)
- db $8
- ld a, [wd7a3]
- bit 0, a
- jr nz, .asm_75d96 ; 0x75d72 $22
+ TX_ASM
+ CheckEvent EVENT_GAVE_FOSSIL_TO_LAB
+ jr nz, .asm_75d96
ld hl, Lab4Text_75dc6
call PrintText
- call Lab4Script_75d38
- ld a, [wcd37]
+ call Lab4Script_GetFossilsInBag
+ ld a, [wFilteredBagItemsCount]
and a
- jr z, .asm_75d8d ; 0x75d81 $a
+ jr z, .asm_75d8d
callba GiveFossilToCinnabarLab
- jr .asm_75d93 ; 0x75d8b $6
+ jr .asm_75d93
.asm_75d8d
ld hl, Lab4Text_75dcb
call PrintText
.asm_75d93
jp TextScriptEnd
.asm_75d96
- bit 1, a
- jr z, .asm_75da2 ; 0x75d98 $8
+ CheckEventAfterBranchReuseA EVENT_LAB_STILL_REVIVING_FOSSIL, EVENT_GAVE_FOSSIL_TO_LAB
+ jr z, .asm_75da2
ld hl, Lab4Text_75dd0
call PrintText
- jr .asm_75d93 ; 0x75da0 $f1
+ jr .asm_75d93
.asm_75da2
call LoadFossilItemAndMonNameBank1D
ld hl, Lab4Text_75dd5
call PrintText
- ld hl, wd7a3
- set 2, [hl]
+ SetEvent EVENT_LAB_HANDING_OVER_FOSSIL_MON
ld a, [W_FOSSILMON]
ld b, a
ld c, 30
call GivePokemon
- jr nc, .asm_75d93 ; 0x75db9 $d8
- ld hl, wd7a3
- res 0, [hl]
- res 1, [hl]
- res 2, [hl]
- jr .asm_75d93 ; 0x75dc4 $cd
+ jr nc, .asm_75d93
+ ResetEvents EVENT_GAVE_FOSSIL_TO_LAB, EVENT_LAB_STILL_REVIVING_FOSSIL, EVENT_LAB_HANDING_OVER_FOSSIL_MON
+ jr .asm_75d93
Lab4Text_75dc6: ; 75dc6 (1d:5dc6)
TX_FAR _Lab4Text_75dc6
@@ -105,13 +99,11 @@ Lab4Text_75dd5: ; 75dd5 (1d:5dd5)
db "@"
Lab4Text2: ; 75dda (1d:5dda)
- db $08 ; asm
+ TX_ASM
ld a, $3
ld [wWhichTrade], a
predef DoInGameTradeDialogue
jp TextScriptEnd
LoadFossilItemAndMonNameBank1D: ; 75de8 (1d:5de8)
- ld b, BANK(LoadFossilItemAndMonName)
- ld hl, LoadFossilItemAndMonName
- jp Bankswitch
+ jpba LoadFossilItemAndMonName
diff --git a/scripts/lance.asm b/scripts/lance.asm
index f2523098..e2c43614 100755
--- a/scripts/lance.asm
+++ b/scripts/lance.asm
@@ -13,8 +13,7 @@ LanceScript_5a2c4: ; 5a2c4 (16:62c4)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd866]
- bit 7, a
+ CheckEvent EVENT_LANCES_ROOM_LOCK_DOOR
jr nz, .asm_5a2da
ld a, $31
ld b, $32
@@ -25,13 +24,13 @@ LanceScript_5a2c4: ; 5a2c4 (16:62c4)
LanceScript_5a2de: ; 5a2de (16:62de)
push bc
- ld [wd09f], a
- ld bc, $602
+ ld [wNewTileBlockID], a
+ lb bc, 6, 2
call LanceScript_5a2f0
pop bc
ld a, b
- ld [wd09f], a
- ld bc, $603
+ ld [wNewTileBlockID], a
+ lb bc, 6, 3
LanceScript_5a2f0: ; 5a2f0 (16:62f0)
predef_jump ReplaceTileBlock
@@ -52,30 +51,27 @@ LanceScript4: ; 5a304 (16:6304)
ret
LanceScript0: ; 5a305 (16:6305)
- ld a, [wd866]
- bit 6, a
+ CheckEvent EVENT_BEAT_LANCE
ret nz
ld hl, CoordsData_5a33e
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
ld [hJoyHeld], a
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wCoordIndex]
cp $3
jr nc, .asm_5a325
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
.asm_5a325
cp $5
jr z, LanceScript_5a35b
- ld hl, wd866
- bit 7, [hl]
- set 7, [hl]
+ CheckAndSetEvent EVENT_LANCES_ROOM_LOCK_DOOR
ret nz
ld hl, wd126
set 5, [hl]
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
jp LanceScript_5a2c4
@@ -89,11 +85,11 @@ CoordsData_5a33e: ; 5a33e (16:633e)
LanceScript2: ; 5a349 (16:6349)
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, LanceScript_5a2f5
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
LanceScript_5a35b: ; 5a35b (16:635b)
@@ -111,10 +107,10 @@ LanceScript_5a35b: ; 5a35b (16:635b)
ret
RLEList_5a379: ; 5a379 (16:6379)
- db $40, $0C
- db $20, $0C
- db $80, $07
- db $20, $06
+ db D_UP, $0C
+ db D_LEFT, $0C
+ db D_DOWN, $07
+ db D_LEFT, $06
db $FF
LanceScript3: ; 5a382 (16:6382)
@@ -133,18 +129,18 @@ LanceTextPointers: ; 5a395 (16:6395)
LanceTrainerHeaders: ; 5a397 (16:6397)
LanceTrainerHeader0: ; 5a397 (16:6397)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_LANCES_ROOM_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd866 ; flag's byte
- dw LanceBeforeBattleText ; 0x63ae TextBeforeBattle
- dw LanceAfterBattleText ; 0x63b8 TextAfterBattle
- dw LanceEndBattleText ; 0x63b3 TextEndBattle
- dw LanceEndBattleText ; 0x63b3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_LANCES_ROOM_TRAINER_0
+ dw LanceBeforeBattleText ; TextBeforeBattle
+ dw LanceAfterBattleText ; TextAfterBattle
+ dw LanceEndBattleText ; TextEndBattle
+ dw LanceEndBattleText ; TextEndBattle
db $ff
LanceText1: ; 5a3a4 (16:63a4)
- db $08 ; asm
+ TX_ASM
ld hl, LanceTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -159,7 +155,6 @@ LanceEndBattleText: ; 5a3b3 (16:63b3)
LanceAfterBattleText: ; 5a3b8 (16:63b8)
TX_FAR _LanceAfterBattleText
- db $8
- ld hl, wd866
- set 6, [hl]
+ TX_ASM
+ SetEvent EVENT_BEAT_LANCE
jp TextScriptEnd
diff --git a/scripts/lavenderhouse1.asm b/scripts/lavenderhouse1.asm
index 5fd1dd34..ccf9cef1 100755
--- a/scripts/lavenderhouse1.asm
+++ b/scripts/lavenderhouse1.asm
@@ -11,17 +11,16 @@ LavenderHouse1TextPointers: ; 1d8ac (7:58ac)
dw LavenderHouse1Text6
LavenderHouse1Text1: ; 1d8b8 (7:58b8)
- db $08 ; asm
- ld a, [wd7e0]
- bit 7, a
- jr nz, .asm_72e5d ; 0x1d8be
+ TX_ASM
+ CheckEvent EVENT_RESCUED_MR_FUJI
+ jr nz, .asm_72e5d
ld hl, LavenderHouse1Text_1d8d1
call PrintText
- jr .asm_6957f ; 0x1d8c6
-.asm_72e5d ; 0x1d8c8
+ jr .asm_6957f
+.asm_72e5d
ld hl, LavenderHouse1Text_1d8d6
call PrintText
-.asm_6957f ; 0x1d8ce
+.asm_6957f
jp TextScriptEnd
LavenderHouse1Text_1d8d1: ; 1d8d1 (7:58d1)
@@ -33,17 +32,16 @@ LavenderHouse1Text_1d8d6: ; 1d8d6 (7:58d6)
db "@"
LavenderHouse1Text2: ; 1d8db (7:58db)
- db $08 ; asm
- ld a, [wd7e0]
- bit 7, a
- jr nz, .asm_06470 ; 0x1d8e1
+ TX_ASM
+ CheckEvent EVENT_RESCUED_MR_FUJI
+ jr nz, .asm_06470
ld hl, LavenderHouse1Text_1d8f4
call PrintText
- jr .asm_3d208 ; 0x1d8e9
-.asm_06470 ; 0x1d8eb
+ jr .asm_3d208
+.asm_06470
ld hl, LavenderHouse1Text_1d8f9
call PrintText
-.asm_3d208 ; 0x1d8f1
+.asm_3d208
jp TextScriptEnd
LavenderHouse1Text_1d8f4: ; 1d8f4 (7:58f4)
@@ -56,41 +54,39 @@ LavenderHouse1Text_1d8f9: ; 1d8f9 (7:58f9)
LavenderHouse1Text3: ; 1d8fe (7:58fe)
TX_FAR _LavenderHouse1Text3
- db $8
+ TX_ASM
ld a, PSYDUCK
call PlayCry
jp TextScriptEnd
LavenderHouse1Text4: ; 1d90b (7:590b)
TX_FAR _LavenderHouse1Text4
- db $8
+ TX_ASM
ld a, NIDORINO
call PlayCry
jp TextScriptEnd
LavenderHouse1Text5: ; 1d918 (7:5918)
- db $08 ; asm
- ld a, [wd76c]
- bit 0, a
- jr nz, .asm_15ac2 ; 0x1d91e
+ TX_ASM
+ CheckEvent EVENT_GOT_POKE_FLUTE
+ jr nz, .asm_15ac2
ld hl, LavenderHouse1Text_1d94c
call PrintText
- ld bc, (POKE_FLUTE << 8) | 1
+ lb bc, POKE_FLUTE, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedFluteText
call PrintText
- ld hl, wd76c
- set 0, [hl]
- jr .asm_da749 ; 0x1d939
+ SetEvent EVENT_GOT_POKE_FLUTE
+ jr .asm_da749
.BagFull
ld hl, FluteNoRoomText
call PrintText
- jr .asm_da749 ; 0x1d941
-.asm_15ac2 ; 0x1d943
+ jr .asm_da749
+.asm_15ac2
ld hl, MrFujiAfterFluteText
call PrintText
-.asm_da749 ; 0x1d949
+.asm_da749
jp TextScriptEnd
LavenderHouse1Text_1d94c: ; 1d94c (7:594c)
diff --git a/scripts/lavenderhouse2.asm b/scripts/lavenderhouse2.asm
index c2120058..fe0b3ee2 100755
--- a/scripts/lavenderhouse2.asm
+++ b/scripts/lavenderhouse2.asm
@@ -8,23 +8,22 @@ LavenderHouse2TextPointers: ; 1d9b2 (7:59b2)
LavenderHouse2Text1: ; 1d9b6 (7:59b6)
TX_FAR _LavenderHouse2Text1
- db $8
+ TX_ASM
ld a, CUBONE
call PlayCry
jp TextScriptEnd
LavenderHouse2Text2: ; 1d9c3 (7:59c3)
- db $08 ; asm
- ld a, [wd7e0]
- bit 7, a
- jr nz, .asm_65711 ; 0x1d9c9
+ TX_ASM
+ CheckEvent EVENT_RESCUED_MR_FUJI
+ jr nz, .asm_65711
ld hl, LavenderHouse2Text_1d9dc
call PrintText
- jr .asm_64be1 ; 0x1d9d1
-.asm_65711 ; 0x1d9d3
+ jr .asm_64be1
+.asm_65711
ld hl, LavenderHouse2Text_1d9e1
call PrintText
-.asm_64be1 ; 0x1d9d9
+.asm_64be1
jp TextScriptEnd
LavenderHouse2Text_1d9dc: ; 1d9dc (7:59dc)
diff --git a/scripts/lavendermart.asm b/scripts/lavendermart.asm
index 3852a235..85518fd2 100755
--- a/scripts/lavendermart.asm
+++ b/scripts/lavendermart.asm
@@ -11,17 +11,16 @@ LavenderMartText2: ; 5c935 (17:4935)
db "@"
LavenderMartText3: ; 5c93a (17:493a)
- db $08 ; asm
- ld a, [wd7e0]
- bit 7, a
- jr nz, .asm_c88d4 ; 0x5c940
+ TX_ASM
+ CheckEvent EVENT_RESCUED_MR_FUJI
+ jr nz, .asm_c88d4
ld hl, LavenderMart_5c953
call PrintText
- jr .asm_6d225 ; 0x5c948
-.asm_c88d4 ; 0x5c94a
+ jr .asm_6d225
+.asm_c88d4
ld hl, LavenderMart_5c958
call PrintText
-.asm_6d225 ; 0x5c950
+.asm_6d225
jp TextScriptEnd
LavenderMart_5c953: ; 5c953 (17:4953)
diff --git a/scripts/lavendertown.asm b/scripts/lavendertown.asm
index a4f1f200..30c6d4e5 100755
--- a/scripts/lavendertown.asm
+++ b/scripts/lavendertown.asm
@@ -13,16 +13,16 @@ LavenderTownTextPointers: ; 4410e (11:410e)
dw LavenderTownText9
LavenderTownText1: ; 44120 (11:4120)
- db $08 ; asm
+ TX_ASM
ld hl, LavenderTownText_4413c
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
ld hl, LavenderTownText_44146
- jr nz, .asm_40831 ; 0x44131
+ jr nz, .asm_40831
ld hl, LavenderTownText_44141
-.asm_40831 ; 0x44136
+.asm_40831
call PrintText
jp TextScriptEnd
diff --git a/scripts/lorelei.asm b/scripts/lorelei.asm
index ab769d94..43eee966 100755
--- a/scripts/lorelei.asm
+++ b/scripts/lorelei.asm
@@ -13,18 +13,17 @@ LoreleiScript_76191: ; 76191 (1d:6191)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, wd734
+ ld hl, wBeatLorelei
set 1, [hl]
- ld a, [wd863]
- bit 1, a
+ CheckEvent EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
jr z, .asm_761a9
ld a, $5
jr .asm_761ab
.asm_761a9
ld a, $24
.asm_761ab
- ld [wd09f], a
- ld bc, $2
+ ld [wNewTileBlockID], a
+ lb bc, 0, 2
predef_jump ReplaceTileBlock
LoreleiScript_761b6: ; 761b6 (1d:61b6)
@@ -41,7 +40,8 @@ LoreleiScriptPointers: ; 761bb (1d:61bb)
LoreleiScript4: ; 761c5 (1d:61c5)
ret
-asm_761c6: ; 761c6 (1d:61c6)
+
+LoreleiScript_761c6: ; 761c6 (1d:61c6)
ld hl, wSimulatedJoypadStatesEnd
ld a, D_UP
ld [hli], a
@@ -57,6 +57,7 @@ asm_761c6: ; 761c6 (1d:61c6)
ld [W_LORELEICURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
+
LoreleiScript0: ; 761e2 (1d:61e2)
ld hl, CoordsData_76223
call ArePlayerCoordsInArray
@@ -66,16 +67,14 @@ LoreleiScript0: ; 761e2 (1d:61e2)
ld [hJoyHeld], a
ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesIndex], a
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wCoordIndex]
cp $3
jr c, .asm_76206
- ld hl, wd863
- bit 6, [hl]
- set 6, [hl]
- jr z, asm_761c6
+ CheckAndSetEvent EVENT_AUTOWALKED_INTO_LORELEIS_ROOM
+ jr z, LoreleiScript_761c6
.asm_76206
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
@@ -106,31 +105,31 @@ LoreleiScript3: ; 7622c (1d:622c)
ret
LoreleiScript2: ; 7623f (1d:623f)
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, LoreleiScript_761b6
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
LoreleiTextPointers: ; 76251 (1d:6251)
dw LoreleiText1
- dw LoreleiText2
+ dw LoreleiDontRunAwayText
LoreleiTrainerHeaders: ; 76255 (1d:6255)
LoreleiTrainerHeader0: ; 76255 (1d:6255)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd863 ; flag's byte
- dw LoreleiBeforeBattleText ; 0x626c TextBeforeBattle
- dw LoreleiAfterBattleText ; 0x6276 TextAfterBattle
- dw LoreleiEndBattleText ; 0x6271 TextEndBattle
- dw LoreleiEndBattleText ; 0x6271 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
+ dw LoreleiBeforeBattleText ; TextBeforeBattle
+ dw LoreleiAfterBattleText ; TextAfterBattle
+ dw LoreleiEndBattleText ; TextEndBattle
+ dw LoreleiEndBattleText ; TextEndBattle
db $ff
LoreleiText1: ; 76262 (1d:6262)
- db $08 ; asm
+ TX_ASM
ld hl, LoreleiTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -147,6 +146,6 @@ LoreleiAfterBattleText: ; 76276 (1d:6276)
TX_FAR _LoreleiAfterBattleText
db "@"
-LoreleiText2: ; 7627b (1d:627b)
- TX_FAR _LoreleiText2
+LoreleiDontRunAwayText: ; 7627b (1d:627b)
+ TX_FAR _LoreleiDontRunAwayText
db "@"
diff --git a/scripts/mansion1.asm b/scripts/mansion1.asm
index 3e067a98..bbfb0a0b 100755
--- a/scripts/mansion1.asm
+++ b/scripts/mansion1.asm
@@ -13,47 +13,46 @@ Mansion1Subscript1: ; 442c5 (11:42c5)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd796]
- bit 0, a
- jr nz, .asm_442ec ; 0x442d2 $18
- ld bc, $060c
+ CheckEvent EVENT_MANSION_SWITCH_ON
+ jr nz, .asm_442ec
+ lb bc, 6, 12
call Mansion1Script_4430b
- ld bc, $0308
+ lb bc, 3, 8
call Mansion1Script_44304
- ld bc, $080a
+ lb bc, 8, 10
call Mansion1Script_44304
- ld bc, $0d0d
+ lb bc, 13, 13
jp Mansion1Script_44304
.asm_442ec
- ld bc, $060c
+ lb bc, 6, 12
call Mansion1Script_44304
- ld bc, $0308
+ lb bc, 3, 8
call Mansion1Script_4430b
- ld bc, $080a
+ lb bc, 8, 10
call Mansion1Script_4430b
- ld bc, $0d0d
+ lb bc, 13, 13
jp Mansion1Script_4430b
Mansion1Script_44304: ; 44304 (11:4304)
ld a, $2d
- ld [wd09f], a
- jr asm_44310
+ ld [wNewTileBlockID], a
+ jr Mansion1ReplaceBlock
Mansion1Script_4430b: ; 4430b (11:430b)
ld a, $e
- ld [wd09f], a
-asm_44310: ; 44310 (11:4310)
+ ld [wNewTileBlockID], a
+Mansion1ReplaceBlock: ; 44310 (11:4310)
predef ReplaceTileBlock
ret
Mansion1Script_Switches: ; 44316 (11:4316)
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
xor a
ld [hJoyHeld], a
ld a, $4
- ld [H_SPRITEHEIGHT], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
Mansion1ScriptPointers: ; 44326 (11:4326)
@@ -63,24 +62,24 @@ Mansion1ScriptPointers: ; 44326 (11:4326)
Mansion1TextPointers: ; 4432c (11:432c)
dw Mansion1Text1
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw Mansion1Text4
Mansion1TrainerHeaders: ; 44334 (11:4334)
Mansion1TrainerHeader0: ; 44334 (11:4334)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MANSION_1_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd798 ; flag's byte
- dw Mansion1BattleText2 ; 0x434b TextBeforeBattle
- dw Mansion1AfterBattleText2 ; 0x4355 TextAfterBattle
- dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
- dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MANSION_1_TRAINER_0
+ dw Mansion1BattleText2 ; TextBeforeBattle
+ dw Mansion1AfterBattleText2 ; TextAfterBattle
+ dw Mansion1EndBattleText2 ; TextEndBattle
+ dw Mansion1EndBattleText2 ; TextEndBattle
db $ff
Mansion1Text1: ; 44341 (11:4341)
- db $08 ; asm
+ TX_ASM
ld hl, Mansion1TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -98,27 +97,25 @@ Mansion1AfterBattleText2: ; 44355 (11:4355)
db "@"
Mansion1Text4: ; 4435a (11:435a)
- db $8
+ TX_ASM
ld hl, MansionSwitchText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_4438c ; 0x44368 $22
+ jr nz, .asm_4438c
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, wd126
set 5, [hl]
ld hl, MansionSwitchPressedText
call PrintText
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
- ld hl, wd796
- bit 0, [hl]
- set 0, [hl]
- jr z, .asm_44392 ; 0x44386 $a
- res 0, [hl]
- jr .asm_44392 ; 0x4438a $6
+ CheckAndSetEvent EVENT_MANSION_SWITCH_ON
+ jr z, .asm_44392
+ ResetEventReuseHL EVENT_MANSION_SWITCH_ON
+ jr .asm_44392
.asm_4438c
ld hl, MansionSwitchNotPressedText
call PrintText
diff --git a/scripts/mansion2.asm b/scripts/mansion2.asm
index c643d229..22bc2b12 100755
--- a/scripts/mansion2.asm
+++ b/scripts/mansion2.asm
@@ -13,43 +13,42 @@ Mansion2Script_51fee: ; 51fee (14:5fee)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd796]
- bit 0, a
+ CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .asm_52016
ld a, $e
- ld bc, $204
+ lb bc, 2, 4
call Mansion2Script_5202f
ld a, $54
- ld bc, $409
+ lb bc, 4, 9
call Mansion2Script_5202f
ld a, $5f
- ld bc, $b03
+ lb bc, 11, 3
call Mansion2Script_5202f
ret
.asm_52016
ld a, $5f
- ld bc, $204
+ lb bc, 2, 4
call Mansion2Script_5202f
ld a, $e
- ld bc, $409
+ lb bc, 4, 9
call Mansion2Script_5202f
ld a, $e
- ld bc, $b03
+ lb bc, 11, 3
call Mansion2Script_5202f
ret
Mansion2Script_5202f: ; 5202f (14:602f)
- ld [wd09f], a
+ ld [wNewTileBlockID], a
predef_jump ReplaceTileBlock
Mansion2Script_Switches: ; 52037 (14:6037)
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
xor a
ld [hJoyHeld], a
ld a, $5
- ld [H_SPRITEHEIGHT], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
Mansion2ScriptPointers: ; 52047 (14:6047)
@@ -59,25 +58,25 @@ Mansion2ScriptPointers: ; 52047 (14:6047)
Mansion2TextPointers: ; 5204d (14:604d)
dw Mansion2Text1
- dw Predef5CText
+ dw PickUpItemText
dw Mansion2Text3
dw Mansion2Text4
dw Mansion2Text5
Mansion2TrainerHeaders: ; 52057 (14:6057)
Mansion2TrainerHeader0: ; 52057 (14:6057)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MANSION_2_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd847 ; flag's byte
- dw Mansion2BattleText1 ; 0x606e TextBeforeBattle
- dw Mansion2AfterBattleText1 ; 0x6078 TextAfterBattle
- dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
- dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MANSION_2_TRAINER_0
+ dw Mansion2BattleText1 ; TextBeforeBattle
+ dw Mansion2AfterBattleText1 ; TextAfterBattle
+ dw Mansion2EndBattleText1 ; TextEndBattle
+ dw Mansion2EndBattleText1 ; TextEndBattle
db $ff
Mansion2Text1: ; 52064 (14:6064)
- db $08 ; asm
+ TX_ASM
ld hl, Mansion2TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -104,27 +103,25 @@ Mansion2Text4: ; 52082 (14:6082)
Mansion3Text6: ; 52087 (14:6087)
Mansion2Text5: ; 52087 (14:6087)
- db $8
+ TX_ASM
ld hl, Mansion2Text_520c2
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_520b9 ; 0x52095 $22
+ jr nz, .asm_520b9
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, wd126
set 5, [hl]
ld hl, Mansion2Text_520c7
call PrintText
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
- ld hl, wd796
- bit 0, [hl]
- set 0, [hl]
- jr z, .asm_520bf ; 0x520b3 $a
- res 0, [hl]
- jr .asm_520bf ; 0x520b7 $6
+ CheckAndSetEvent EVENT_MANSION_SWITCH_ON
+ jr z, .asm_520bf
+ ResetEventReuseHL EVENT_MANSION_SWITCH_ON
+ jr .asm_520bf
.asm_520b9
ld hl, Mansion2Text_520cc
call PrintText
diff --git a/scripts/mansion3.asm b/scripts/mansion3.asm
index 6ad02dd9..e49667ef 100755
--- a/scripts/mansion3.asm
+++ b/scripts/mansion3.asm
@@ -13,8 +13,7 @@ Mansion3Script_52204: ; 52204 (14:6204)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd796]
- bit 0, a
+ CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .asm_52224
ld a, $e
ld bc, $207
@@ -65,7 +64,7 @@ Mansion3Script_5225b: ; 5225b (14:625b)
ret nz
call ArePlayerCoordsInArray
ret nc
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wCoordIndex]
ld [wWhichDungeonWarp], a
ld hl, wd72d
set 4, [hl]
@@ -75,51 +74,51 @@ Mansion3Script_5225b: ; 5225b (14:625b)
Mansion3Script_Switches: ; 5227a (14:627a)
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
xor a
ld [hJoyHeld], a
ld a, $6
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
Mansion3TextPointers: ; 5228a (14:628a)
dw Mansion3Text1
dw Mansion3Text2
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw Mansion3Text5
dw Mansion3Text6
Mansion3TrainerHeaders: ; 52296 (14:6296)
Mansion3TrainerHeader0: ; 52296 (14:6296)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MANSION_3_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd849 ; flag's byte
- dw Mansion3BattleText1 ; 0x62c3 TextBeforeBattle
- dw Mansion3AfterBattleText1 ; 0x62cd TextAfterBattle
- dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle
- dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MANSION_3_TRAINER_0
+ dw Mansion3BattleText1 ; TextBeforeBattle
+ dw Mansion3AfterBattleText1 ; TextAfterBattle
+ dw Mansion3EndBattleText1 ; TextEndBattle
+ dw Mansion3EndBattleText1 ; TextEndBattle
Mansion3TrainerHeader2: ; 522a2 (14:62a2)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MANSION_3_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd849 ; flag's byte
- dw Mansion3BattleText2 ; 0x62d2 TextBeforeBattle
- dw Mansion3AfterBattleText2 ; 0x62dc TextAfterBattle
- dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
- dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MANSION_3_TRAINER_2
+ dw Mansion3BattleText2 ; TextBeforeBattle
+ dw Mansion3AfterBattleText2 ; TextAfterBattle
+ dw Mansion3EndBattleText2 ; TextEndBattle
+ dw Mansion3EndBattleText2 ; TextEndBattle
db $ff
Mansion3Text1: ; 522af (14:62af)
- db $08 ; asm
+ TX_ASM
ld hl, Mansion3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Mansion3Text2: ; 522b9 (14:62b9)
- db $08 ; asm
+ TX_ASM
ld hl, Mansion3TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/mansion4.asm b/scripts/mansion4.asm
index b89af5f2..59ee3704 100755
--- a/scripts/mansion4.asm
+++ b/scripts/mansion4.asm
@@ -13,8 +13,7 @@ Mansion4Script_523cf: ; 523cf (14:63cf)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd796]
- bit 0, a
+ CheckEvent EVENT_MANSION_SWITCH_ON
jr nz, .asm_523ff
ld a, $e
ld bc, $80d
@@ -46,12 +45,12 @@ Mansion4Script_523cf: ; 523cf (14:63cf)
Mansion4Script_Switches: ; 52420 (14:6420)
ld a, [wSpriteStateData1 + 9]
- cp $4
+ cp SPRITE_FACING_UP
ret nz
xor a
ld [hJoyHeld], a
ld a, $9
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
Mansion4ScriptPointers: ; 52430 (14:6430)
@@ -62,43 +61,43 @@ Mansion4ScriptPointers: ; 52430 (14:6430)
Mansion4TextPointers: ; 52436 (14:6436)
dw Mansion4Text1
dw Mansion4Text2
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw Mansion4Text7
- dw Predef5CText
+ dw PickUpItemText
dw Mansion3Text6
Mansion4TrainerHeaders: ; 52448 (14:6448)
Mansion4TrainerHeader0: ; 52448 (14:6448)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MANSION_4_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd84b ; flag's byte
- dw Mansion4BattleText1 ; 0x6475 TextBeforeBattle
- dw Mansion4AfterBattleText1 ; 0x647f TextAfterBattle
- dw Mansion4EndBattleText1 ; 0x647a TextEndBattle
- dw Mansion4EndBattleText1 ; 0x647a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MANSION_4_TRAINER_0
+ dw Mansion4BattleText1 ; TextBeforeBattle
+ dw Mansion4AfterBattleText1 ; TextAfterBattle
+ dw Mansion4EndBattleText1 ; TextEndBattle
+ dw Mansion4EndBattleText1 ; TextEndBattle
Mansion4TrainerHeader2: ; 52454 (14:6454)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MANSION_4_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd84b ; flag's byte
- dw Mansion4BattleText2 ; 0x6484 TextBeforeBattle
- dw Mansion4AfterBattleText2 ; 0x648e TextAfterBattle
- dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
- dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MANSION_4_TRAINER_2
+ dw Mansion4BattleText2 ; TextBeforeBattle
+ dw Mansion4AfterBattleText2 ; TextAfterBattle
+ dw Mansion4EndBattleText2 ; TextEndBattle
+ dw Mansion4EndBattleText2 ; TextEndBattle
db $ff
Mansion4Text1: ; 52461 (14:6461)
- db $08 ; asm
+ TX_ASM
ld hl, Mansion4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Mansion4Text2: ; 5246b (14:646b)
- db $08 ; asm
+ TX_ASM
ld hl, Mansion4TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/mtmoon1.asm b/scripts/mtmoon1.asm
index def597ba..4a5eeae3 100755
--- a/scripts/mtmoon1.asm
+++ b/scripts/mtmoon1.asm
@@ -20,118 +20,118 @@ MtMoon1TextPointers: ; 499e1 (12:59e1)
dw MtMoon1Text5
dw MtMoon1Text6
dw MtMoon1Text7
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw MtMoon1Text14
MtMoon1TrainerHeaders: ; 499fd (12:59fd)
MtMoon1TrainerHeader0: ; 499fd (12:59fd)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd7f5 ; flag's byte
- dw MtMoon1BattleText2 ; 0x5a98 TextBeforeBattle
- dw MtMoon1AfterBattleText2 ; 0x5aa2 TextAfterBattle
- dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle
- dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_0
+ dw MtMoon1BattleText2 ; TextBeforeBattle
+ dw MtMoon1AfterBattleText2 ; TextAfterBattle
+ dw MtMoon1EndBattleText2 ; TextEndBattle
+ dw MtMoon1EndBattleText2 ; TextEndBattle
MtMoon1TrainerHeader2: ; 49a09 (12:5a09)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7f5 ; flag's byte
- dw MtMoon1BattleText3 ; 0x5aa7 TextBeforeBattle
- dw MtMoon1AfterBattleText3 ; 0x5ab1 TextAfterBattle
- dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle
- dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_2
+ dw MtMoon1BattleText3 ; TextBeforeBattle
+ dw MtMoon1AfterBattleText3 ; TextAfterBattle
+ dw MtMoon1EndBattleText3 ; TextEndBattle
+ dw MtMoon1EndBattleText3 ; TextEndBattle
MtMoon1TrainerHeader3: ; 49a15 (12:5a15)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7f5 ; flag's byte
- dw MtMoon1BattleText4 ; 0x5ab6 TextBeforeBattle
- dw MtMoon1AfterBattleText4 ; 0x5ac0 TextAfterBattle
- dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle
- dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_3
+ dw MtMoon1BattleText4 ; TextBeforeBattle
+ dw MtMoon1AfterBattleText4 ; TextAfterBattle
+ dw MtMoon1EndBattleText4 ; TextEndBattle
+ dw MtMoon1EndBattleText4 ; TextEndBattle
MtMoon1TrainerHeader4: ; 49a21 (12:5a21)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd7f5 ; flag's byte
- dw MtMoon1BattleText5 ; 0x5ac5 TextBeforeBattle
- dw MtMoon1AfterBattleText5 ; 0x5acf TextAfterBattle
- dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle
- dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_4
+ dw MtMoon1BattleText5 ; TextBeforeBattle
+ dw MtMoon1AfterBattleText5 ; TextAfterBattle
+ dw MtMoon1EndBattleText5 ; TextEndBattle
+ dw MtMoon1EndBattleText5 ; TextEndBattle
MtMoon1TrainerHeader5: ; 49a2d (12:5a2d)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd7f5 ; flag's byte
- dw MtMoon1BattleText6 ; 0x5ad4 TextBeforeBattle
- dw MtMoon1AfterBattleText6 ; 0x5ade TextAfterBattle
- dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle
- dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_5
+ dw MtMoon1BattleText6 ; TextBeforeBattle
+ dw MtMoon1AfterBattleText6 ; TextAfterBattle
+ dw MtMoon1EndBattleText6 ; TextEndBattle
+ dw MtMoon1EndBattleText6 ; TextEndBattle
MtMoon1TrainerHeader6: ; 49a39 (12:5a39)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_6
db ($3 << 4) ; trainer's view range
- dw wd7f5 ; flag's byte
- dw MtMoon1BattleText7 ; 0x5ae3 TextBeforeBattle
- dw MtMoon1AfterBattleText7 ; 0x5aed TextAfterBattle
- dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle
- dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_6
+ dw MtMoon1BattleText7 ; TextBeforeBattle
+ dw MtMoon1AfterBattleText7 ; TextAfterBattle
+ dw MtMoon1EndBattleText7 ; TextEndBattle
+ dw MtMoon1EndBattleText7 ; TextEndBattle
MtMoon1TrainerHeader7: ; 49a45 (12:5a45)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_7
db ($3 << 4) ; trainer's view range
- dw wd7f5 ; flag's byte
- dw MtMoon1BattleText8 ; 0x5af2 TextBeforeBattle
- dw MtMoon1AfterBattleText8 ; 0x5afc TextAfterBattle
- dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
- dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_7
+ dw MtMoon1BattleText8 ; TextBeforeBattle
+ dw MtMoon1AfterBattleText8 ; TextAfterBattle
+ dw MtMoon1EndBattleText8 ; TextEndBattle
+ dw MtMoon1EndBattleText8 ; TextEndBattle
db $ff
MtMoon1Text1: ; 49a52 (12:5a52)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon1TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
MtMoon1Text2: ; 49a5c (12:5a5c)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon1TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
MtMoon1Text3: ; 49a66 (12:5a66)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon1TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
MtMoon1Text4: ; 49a70 (12:5a70)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon1TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
MtMoon1Text5: ; 49a7a (12:5a7a)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon1TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
MtMoon1Text6: ; 49a84 (12:5a84)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon1TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
MtMoon1Text7: ; 49a8e (12:5a8e)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon1TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/mtmoon3.asm b/scripts/mtmoon3.asm
index eb0fc301..84c00981 100755
--- a/scripts/mtmoon3.asm
+++ b/scripts/mtmoon3.asm
@@ -1,16 +1,15 @@
MtMoon3Script: ; 49d0b (12:5d0b)
call EnableAutoTextBoxDrawing
- ld hl, MtMoon3TrainerHeader0 ; $5e48
+ ld hl, MtMoon3TrainerHeader0
ld de, MtMoon3ScriptPointers
ld a, [W_MTMOON3CURSCRIPT]
call ExecuteCurMapScriptInTable
ld [W_MTMOON3CURSCRIPT], a
- ld a, [wd7f6]
- bit 1, a
+ CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
ret z
ld hl, CoordsData_49d37
call ArePlayerCoordsInArray
- jr nc, .asm_49d31 ; 0x49d29 $6
+ jr nc, .asm_49d31
ld hl, wd72e
set 4, [hl]
ret
@@ -54,35 +53,32 @@ MtMoon3ScriptPointers: ; 49d63 (12:5d63)
dw MtMoon3Script5
MtMoon3Script0: ; 49d6f (12:5d6f)
- ld a, [wd7f6]
- bit 1, a
+ CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
jp nz, MtMoon3Script_49d91
- ld a, [W_YCOORD] ; wd361
+ ld a, [W_YCOORD]
cp $8
jp nz, MtMoon3Script_49d91
- ld a, [W_XCOORD] ; wd362
+ ld a, [W_XCOORD]
cp $d
jp nz, MtMoon3Script_49d91
xor a
ld [hJoyHeld], a
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
MtMoon3Script_49d91: ; 49d91 (12:5d91)
- ld a, [wd7f6]
- and $c0
+ CheckEitherEventSet EVENT_GOT_DOME_FOSSIL, EVENT_GOT_HELIX_FOSSIL
jp z, CheckFightingMapTrainers
ret
MtMoon3Script3: ; 49d9a (12:5d9a)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, MtMoon3Script_49d58
call UpdateSprites
call Delay3
- ld hl, wd7f6
- set 1, [hl]
+ SetEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
xor a
ld [wJoyIgnore], a
ld a, $0
@@ -92,7 +88,7 @@ MtMoon3Script3: ; 49d9a (12:5d9a)
MtMoon3Script4: ; 49dba (12:5dba)
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld hl, CoordsData_49dea
call ArePlayerCoordsInArray
@@ -106,7 +102,7 @@ MtMoon3Script4: ; 49dba (12:5dba)
ld de, MovementData_49df8
.asm_49dda
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $5
ld [W_MTMOON3CURSCRIPT], a
@@ -126,10 +122,10 @@ CoordsData_49df1: ; 49df1 (12:5df1)
db $FF
MovementData_49df8: ; 49df8 (12:5df8)
- db $C0
+ db NPC_MOVEMENT_RIGHT
MovementData_49df9: ; 49df9 (12:5df9)
- db $40,$FF
+ db NPC_MOVEMENT_UP,$FF
MtMoon3Script5: ; 49dfb (12:5dfb)
ld a, [wd730]
@@ -140,17 +136,16 @@ MtMoon3Script5: ; 49dfb (12:5dfb)
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, $a
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld a, [wd7f6]
- bit 6, a
+ CheckEvent EVENT_GOT_DOME_FOSSIL
jr z, .asm_49e1d
ld a, HS_MT_MOON_3_FOSSIL_2
jr .asm_49e1f
.asm_49e1d
ld a, HS_MT_MOON_3_FOSSIL_1
.asm_49e1f
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -167,60 +162,59 @@ MtMoon3TextPointers: ; 49e34 (12:5e34)
dw MtMoon3Text5
dw MtMoon3Text6
dw MtMoon3Text7
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw MtMoon3Text_49f99
MtMoon3TrainerHeaders: ; 49e48 (12:5e48)
MtMoon3TrainerHeader0: ; 49e48 (12:5e48)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7f6 ; flag's byte
- dw MtMoon3BattleText2 ; 0x5f9f TextBeforeBattle
- dw MtMoon3AfterBattleText2 ; 0x5fa9 TextAfterBattle
- dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle
- dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_0
+ dw MtMoon3BattleText2 ; TextBeforeBattle
+ dw MtMoon3AfterBattleText2 ; TextAfterBattle
+ dw MtMoon3EndBattleText2 ; TextEndBattle
+ dw MtMoon3EndBattleText2 ; TextEndBattle
MtMoon3TrainerHeader2: ; 49e54 (12:5e54)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7f6 ; flag's byte
- dw MtMoon3BattleText3 ; 0x5fae TextBeforeBattle
- dw MtMoon3AfterBattleText3 ; 0x5fb8 TextAfterBattle
- dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle
- dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_2
+ dw MtMoon3BattleText3 ; TextBeforeBattle
+ dw MtMoon3AfterBattleText3 ; TextAfterBattle
+ dw MtMoon3EndBattleText3 ; TextEndBattle
+ dw MtMoon3EndBattleText3 ; TextEndBattle
MtMoon3TrainerHeader3: ; 49e60 (12:5e60)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd7f6 ; flag's byte
- dw MtMoon3BattleText4 ; 0x5fbd TextBeforeBattle
- dw MtMoon3AfterBattleText4 ; 0x5fc7 TextAfterBattle
- dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle
- dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_3
+ dw MtMoon3BattleText4 ; TextBeforeBattle
+ dw MtMoon3AfterBattleText4 ; TextAfterBattle
+ dw MtMoon3EndBattleText4 ; TextEndBattle
+ dw MtMoon3EndBattleText4 ; TextEndBattle
MtMoon3TrainerHeader4: ; 49e6c (12:5e6c)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd7f6 ; flag's byte
- dw MtMoon3BattleText5 ; 0x5fcc TextBeforeBattle
- dw MtMoon3AfterBattleText5 ; 0x5fd6 TextAfterBattle
- dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
- dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_4
+ dw MtMoon3BattleText5 ; TextBeforeBattle
+ dw MtMoon3AfterBattleText5 ; TextAfterBattle
+ dw MtMoon3EndBattleText5 ; TextEndBattle
+ dw MtMoon3EndBattleText5 ; TextEndBattle
db $ff
MtMoon3Text1: ; 49e79 (12:5e79)
- db $08 ; asm
- ld a, [wd7f6]
- bit 1, a
- jr z, .asm_be1e0 ; 0x49e7f
+ TX_ASM
+ CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
+ jr z, .asm_49e8d
and $c0
- jr nz, .asm_f8cd4 ; 0x49e83
+ jr nz, .asm_49eb8
ld hl, MtMoon3Text_49f8f
call PrintText
- jr .asm_f1fba ; 0x49e8b
-.asm_be1e0 ; 0x49e8d
+ jr .asm_49ebe
+.asm_49e8d
ld hl, MtMoon3Text_49f85
call PrintText
ld hl, wd72d
@@ -229,46 +223,46 @@ MtMoon3Text1: ; 49e79 (12:5e79)
ld hl, MtMoon3Text_49f8a
ld de, MtMoon3Text_49f8a
call SaveEndBattleTextPointers
- ldh a, [$8c]
+ ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
- jr .asm_f1fba ; 0x49eb6
-.asm_f8cd4 ; 0x49eb8
+ jr .asm_49ebe
+.asm_49eb8
ld hl, MtMoon3Text_49f94
call PrintText
-.asm_f1fba ; 0x49ebe
+.asm_49ebe
jp TextScriptEnd
MtMoon3Text2: ; 49ec1 (12:5ec1)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
MtMoon3Text3: ; 49ecb (12:5ecb)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon3TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
MtMoon3Text4: ; 49ed5 (12:5ed5)
- db $08 ; asm
+ TX_ASM
ld hl, MtMoon3TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
MtMoon3Text5: ; 49edf (12:5edf)
- db $08 ; asm
- ld hl, MtMoon3TrainerHeader4 ; $5e6c
+ TX_ASM
+ ld hl, MtMoon3TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
MtMoon3Text6: ; 49ee9 (12:5ee9)
- db $08 ; asm
+ TX_ASM
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, MtMoon3Text_49f24
@@ -276,20 +270,19 @@ MtMoon3Text6: ; 49ee9 (12:5ee9)
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_1fa5e ; 0x49efc
- ld bc,(DOME_FOSSIL << 8) | 1
+ jr nz, .asm_49f21
+ lb bc, DOME_FOSSIL, 1
call GiveItem
jp nc, MtMoon3Script_49f76
call MtMoon3Script_49f69
ld a, HS_MT_MOON_3_FOSSIL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
- ld hl, wd7f6
- set 6, [hl]
+ SetEvent EVENT_GOT_DOME_FOSSIL
ld a, $4
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
-.asm_1fa5e ; 0x49f21
+.asm_49f21
jp TextScriptEnd
MtMoon3Text_49f24: ; 49f24 (12:5f24)
@@ -297,7 +290,7 @@ MtMoon3Text_49f24: ; 49f24 (12:5f24)
db "@"
MtMoon3Text7: ; 49f29 (12:5f29)
- db $08 ; asm
+ TX_ASM
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, MtMoon3Text_49f64
@@ -305,20 +298,19 @@ MtMoon3Text7: ; 49f29 (12:5f29)
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_8e988 ; 0x49f3c
- ld bc, (HELIX_FOSSIL << 8) | 1
+ jr nz, .asm_49f61
+ lb bc, HELIX_FOSSIL, 1
call GiveItem
jp nc, MtMoon3Script_49f76
call MtMoon3Script_49f69
ld a, HS_MT_MOON_3_FOSSIL_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
- ld hl, wd7f6
- set 7, [hl]
+ SetEvent EVENT_GOT_HELIX_FOSSIL
ld a, $4
ld [W_MTMOON3CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
-.asm_8e988 ; 0x49f61
+.asm_49f61
jp TextScriptEnd
MtMoon3Text_49f64: ; 49f64 (12:5f64)
@@ -330,7 +322,7 @@ MtMoon3Script_49f69: ; 49f69 (12:5f69)
jp PrintText
MtMoon3Text_49f6f: ; 49f6f (12:5f6f)
- TX_FAR _MtMoon3Text_49f6f ; 0x80995
+ TX_FAR _MtMoon3Text_49f6f
db $11, $d, "@"
MtMoon3Script_49f76: ; 49f76 (12:5f76)
@@ -339,7 +331,7 @@ MtMoon3Script_49f76: ; 49f76 (12:5f76)
jp TextScriptEnd
MtMoon3Text_49f7f: ; 49f7f (12:5f7f)
- TX_FAR _MtMoon3Text_49f7f ; 0x809a8
+ TX_FAR _MtMoon3Text_49f7f
db $d, "@"
MtMoon3Text_49f85: ; 49f85 (12:5f85)
diff --git a/scripts/mtmoonpokecenter.asm b/scripts/mtmoonpokecenter.asm
index 080a64fe..fd3e4e53 100755
--- a/scripts/mtmoonpokecenter.asm
+++ b/scripts/mtmoonpokecenter.asm
@@ -22,54 +22,52 @@ MtMoonPokecenterText3: ; 492e7 (12:52e7)
db "@"
MtMoonPokecenterText4: ; 492ec (12:52ec)
- db $08 ; asm
- ld a, [wd7c6]
- add a
- jp c, .asm_49353
+ TX_ASM
+ CheckEvent EVENT_BOUGHT_MAGIKARP, 1
+ jp c, .alreadyBoughtMagikarp
ld hl, MtMoonPokecenterText_4935c
call PrintText
- ld a, $13
+ ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jp nz, .asm_4934e
- ld [$ff9f], a
- ld [$ffa1], a
+ jp nz, .choseNo
+ ld [hMoney], a
+ ld [hMoney + 2], a
ld a, $5
- ld [$ffa0], a
+ ld [hMoney + 1], a
call HasEnoughMoney
- jr nc, .asm_faa09 ; 0x49317
+ jr nc, .enoughMoney
ld hl, MtMoonPokecenterText_49366
- jr .asm_49356 ; 0x4931c
-.asm_faa09 ; 0x4931e
- ld bc,(MAGIKARP << 8) | 5
+ jr .printText
+.enoughMoney
+ lb bc, MAGIKARP, 5
call GivePokemon
- jr nc, .asm_49359 ; 0x49324
+ jr nc, .done
xor a
- ld [wWhichTrade], a
- ld [wTrainerFacingDirection], a
+ ld [wPriceTemp], a
+ ld [wPriceTemp + 2], a
ld a, $5
- ld [wTrainerEngageDistance], a
- ld hl, wTrainerFacingDirection
+ ld [wPriceTemp + 1], a
+ ld hl, wPriceTemp + 2
ld de, wPlayerMoney + 2
ld c, $3
predef SubBCDPredef
- ld a, $13
+ ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
- ld hl, wd7c6
- set 7, [hl]
- jr .asm_49359 ; 0x4934c
-.asm_4934e ; 0x4934e
+ SetEvent EVENT_BOUGHT_MAGIKARP
+ jr .done
+.choseNo
ld hl, MtMoonPokecenterText_49361
- jr .asm_49356 ; 0x49351
-.asm_49353 ; 0x49353
+ jr .printText
+.alreadyBoughtMagikarp
ld hl, MtMoonPokecenterText_4936b
-.asm_49356 ; 0x49356
+.printText
call PrintText
-.asm_49359 ; 0x49359
+.done
jp TextScriptEnd
MtMoonPokecenterText_4935c: ; 4935c (12:535c)
diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm
index cd2b3c29..ac552c6d 100755
--- a/scripts/museum1f.asm
+++ b/scripts/museum1f.asm
@@ -17,7 +17,7 @@ Museum1FScript0: ; 5c10d (17:410d)
ret nz
ld a, [W_XCOORD]
cp $9
- jr z, .asm_5c120 ; 0x5c118 $6
+ jr z, .asm_5c120
ld a, [W_XCOORD]
cp $a
ret nz
@@ -25,7 +25,7 @@ Museum1FScript0: ; 5c10d (17:410d)
xor a
ld [hJoyHeld], a
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
Museum1FScript1: ; 5c12a (17:412a)
@@ -39,7 +39,7 @@ Museum1FTextPointers: ; 5c12b (17:412b)
dw Museum1FText5
Museum1FText1: ; 5c135 (17:4135)
- db $8
+ TX_ASM
ld a, [W_YCOORD]
cp $4
jr nz, .asm_8774b
@@ -54,22 +54,20 @@ Museum1FText1: ; 5c135 (17:4135)
cp $c
jp z, Museum1FScript_5c1f9
.asm_d49e7
- ld a, [wd754]
- bit 0, a
+ CheckEvent EVENT_BOUGHT_MUSEUM_TICKET
jr nz, .asm_31a16
ld hl, Museum1FText_5c23d
call PrintText
- jp asm_d1145
+ jp Museum1FScriptEnd
.asm_b8709
- ld a, [wd754]
- bit 0, a
+ CheckEvent EVENT_BOUGHT_MUSEUM_TICKET
jr z, .asm_3ded4
.asm_31a16
ld hl, Museum1FText_5c242
call PrintText
- jp asm_d1145
+ jp Museum1FScriptEnd
.asm_3ded4
- ld a, $13
+ ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
xor a
@@ -81,10 +79,10 @@ Museum1FText1: ; 5c135 (17:4135)
and a
jr nz, .asm_de133
xor a
- ld [$ff9f], a
- ld [$ffa0], a
+ ld [hMoney], a
+ ld [hMoney + 1], a
ld a, $50
- ld [$ffa1], a
+ ld [hMoney + 2], a
call HasEnoughMoney
jr nc, .asm_0f3e3
ld hl, Museum1FText_5c229
@@ -93,38 +91,37 @@ Museum1FText1: ; 5c135 (17:4135)
.asm_0f3e3
ld hl, Museum1FText_5c224
call PrintText
- ld hl, wd754
- set 0, [hl]
+ SetEvent EVENT_BOUGHT_MUSEUM_TICKET
xor a
- ld [wWhichTrade], a
- ld [wTrainerEngageDistance], a
+ ld [wPriceTemp], a
+ ld [wPriceTemp + 1], a
ld a, $50
- ld [wTrainerFacingDirection], a
- ld hl, wTrainerFacingDirection
+ ld [wPriceTemp + 2], a
+ ld hl, wPriceTemp + 2
ld de, wPlayerMoney + 2
ld c, $3
predef SubBCDPredef
- ld a, $13
+ ld a, MONEY_BOX
ld [wTextBoxID], a
call DisplayTextBoxID
- ld a, (SFX_02_5a - SFX_Headers_02) / 3
+ ld a, SFX_PURCHASE
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
jr .asm_0b094
.asm_de133
- ld hl, Museum1FText_5c21a ; $421a
+ ld hl, Museum1FText_5c21a
call PrintText
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $80
+ ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
call UpdateSprites
- jr asm_d1145
+ jr Museum1FScriptEnd
.asm_0b094
ld a, $1
ld [W_MUSEUM1FCURSCRIPT], a
- jr asm_d1145
+ jr Museum1FScriptEnd
Museum1FScript_5c1f9: ; 5c1f9 (17:41f9)
ld hl, Museum1FText_5c22e
@@ -135,11 +132,11 @@ Museum1FScript_5c1f9: ; 5c1f9 (17:41f9)
jr nz, .asm_d1144
ld hl, Museum1FText_5c233
call PrintText
- jr asm_d1145
+ jr Museum1FScriptEnd
.asm_d1144
ld hl, Museum1FText_5c238
call PrintText
-asm_d1145: ; 5c217 (17:4217)
+Museum1FScriptEnd: ; 5c217 (17:4217)
jp TextScriptEnd
Museum1FText_5c21a: ; 5c21a (17:421a)
@@ -179,7 +176,7 @@ Museum1FText_5c242: ; 5c242 (17:4242)
db "@"
Museum1FText2: ; 5c247 (17:4247)
- db $08 ; asm
+ TX_ASM
ld hl, Museum1FText_5c251
call PrintText
jp TextScriptEnd
@@ -189,28 +186,26 @@ Museum1FText_5c251: ; 5c251 (17:4251)
db "@"
Museum1FText3: ; 5c256 (17:4256)
- db $08 ; asm
- ld a, [wd754]
- bit 1, a
- jr nz, .asm_16599 ; 0x5c25c
+ TX_ASM
+ CheckEvent EVENT_GOT_OLD_AMBER
+ jr nz, .asm_5c285
ld hl, Museum1FText_5c28e
call PrintText
- ld bc, (OLD_AMBER << 8) | 1
+ lb bc, OLD_AMBER, 1
call GiveItem
jr nc, .BagFull
- ld hl, wd754
- set 1, [hl]
+ SetEvent EVENT_GOT_OLD_AMBER
ld a, HS_OLD_AMBER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld hl, ReceivedOldAmberText
- jr .asm_52e0f ; 0x5c27e
+ jr .asm_5c288
.BagFull
ld hl, Museum1FText_5c29e
- jr .asm_52e0f ; 0x5c283
-.asm_16599 ; 0x5c285
+ jr .asm_5c288
+.asm_5c285
ld hl, Museum1FText_5c299
-.asm_52e0f ; 0x5c288
+.asm_5c288
call PrintText
jp TextScriptEnd
@@ -231,7 +226,7 @@ Museum1FText_5c29e: ; 5c29e (17:429e)
db "@"
Museum1FText4: ; 5c2a3 (17:42a3)
- db $08 ; asm
+ TX_ASM
ld hl, Museum1FText_5c2ad
call PrintText
jp TextScriptEnd
@@ -241,7 +236,7 @@ Museum1FText_5c2ad: ; 5c2ad (17:42ad)
db "@"
Museum1FText5: ; 5c2b2 (17:42b2)
- db $08 ; asm
+ TX_ASM
ld hl, Museum1FText_5c2bc
call PrintText
jp TextScriptEnd
diff --git a/scripts/namerater.asm b/scripts/namerater.asm
index c9e3bfb4..42b82b62 100755
--- a/scripts/namerater.asm
+++ b/scripts/namerater.asm
@@ -10,15 +10,15 @@ NameRaterScript_1da15: ; 1da15 (7:5a15)
NameRaterScript_1da20: ; 1da20 (7:5a20)
ld hl, wPartyMonOT
- ld bc, $000b
+ ld bc, NAME_LENGTH
ld a, [wWhichPokemon]
call AddNTimes
ld de, wPlayerName
- ld c, $b
+ ld c, NAME_LENGTH
call .asm_1da47
- jr c, .asm_1da52 ; 0x1da34 $1c
+ jr c, .asm_1da52
ld hl, wPartyMon1OTID
- ld bc, $002c
+ ld bc, wPartyMon2 - wPartyMon1
ld a, [wWhichPokemon]
call AddNTimes
ld de, wPlayerID
@@ -26,11 +26,11 @@ NameRaterScript_1da20: ; 1da20 (7:5a20)
.asm_1da47
ld a, [de]
cp [hl]
- jr nz, .asm_1da52 ; 0x1da49 $7
+ jr nz, .asm_1da52
inc hl
inc de
dec c
- jr nz, .asm_1da47 ; 0x1da4e $f7
+ jr nz, .asm_1da47
and a
ret
.asm_1da52
@@ -41,15 +41,15 @@ NameRaterTextPointers: ; 1da54 (7:5a54)
dw NameRaterText1
NameRaterText1: ; 1da56 (7:5a56)
- db $8
+ TX_ASM
call SaveScreenTilesToBuffer2
ld hl, NameRaterText_1dab3
call NameRaterScript_1da15
- jr nz, .asm_1daae ; 0x1da60 $4c
+ jr nz, .asm_1daae
ld hl, NameRaterText_1dab8
call PrintText
xor a
- ld [wd07d], a
+ ld [wPartyMenuTypeOrMessageID], a
ld [wUpdateSpritesEnabled], a
ld [wMenuItemToSwap], a
call DisplayPartyMenu
@@ -58,25 +58,25 @@ NameRaterText1: ; 1da56 (7:5a56)
call RestoreScreenTilesAndReloadTilePatterns
call LoadGBPal
pop af
- jr c, .asm_1daae ; 0x1da80 $2c
+ jr c, .asm_1daae
call GetPartyMonName2
call NameRaterScript_1da20
ld hl, NameRaterText_1dad1
- jr c, .asm_1daa8 ; 0x1da8b $1b
+ jr c, .asm_1daa8
ld hl, NameRaterText_1dabd
call NameRaterScript_1da15
- jr nz, .asm_1daae ; 0x1da93 $19
+ jr nz, .asm_1daae
ld hl, NameRaterText_1dac2
call PrintText
- callba Func_655c
- jr c, .asm_1daae ; 0x1daa3 $9
+ callba DisplayNameRaterScreen
+ jr c, .asm_1daae
ld hl, NameRaterText_1dac7
.asm_1daa8
call PrintText
jp TextScriptEnd
.asm_1daae
ld hl, NameRaterText_1dacc
- jr .asm_1daa8 ; 0x1dab1 $f5
+ jr .asm_1daa8
NameRaterText_1dab3: ; 1dab3 (7:5ab3)
TX_FAR _NameRaterText_1dab3
diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm
index 8f23cd3e..c5ca2e6e 100755
--- a/scripts/oakslab.asm
+++ b/scripts/oakslab.asm
@@ -1,6 +1,5 @@
OaksLabScript: ; 1cb0e (7:4b0e)
- ld a, [wd74b]
- bit 6, a
+ CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2
call nz, OaksLabScript_1d076
ld a, $1
ld [wAutoTextBoxDrawingControl], a
@@ -32,14 +31,13 @@ OaksLabScriptPointers: ; 1cb28 (7:4b28)
dw OaksLabScript18
OaksLabScript0: ; 1cb4e (7:4b4e)
- ld a, [wd74b]
- bit 7, a
+ CheckEvent EVENT_OAK_APPEARED_IN_PALLET
ret z
ld a, [wNPCMovementScriptFunctionNum]
and a
ret nz
ld a, HS_OAKS_LAB_OAK_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld hl, wd72e
res 4, [hl]
@@ -59,17 +57,20 @@ OaksLabScript1: ; 1cb6e (7:4b6e)
ret
OakEntryMovement: ; 1cb7e (7:4b7e)
- db $40,$40,$40,$FF
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db $FF
OaksLabScript2: ; 1cb82 (7:4b82)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_OAKS_LAB_OAK_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_OAKS_LAB_OAK_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $3
@@ -87,12 +88,12 @@ OaksLabScript3: ; 1cba2 (7:4ba2)
ld a, $1
ld [H_SPRITEINDEX], a
xor a
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $5
ld [H_SPRITEINDEX], a
xor a
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $4
@@ -100,20 +101,19 @@ OaksLabScript3: ; 1cba2 (7:4ba2)
ret
PlayerEntryMovementRLE: ; 1cbcf (7:4bcf)
- db $40, $8, $ff
+ db D_UP,$8
+ db $ff
OaksLabScript4: ; 1cbd2 (7:4bd2)
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
- ld hl, wd747
- set 0, [hl]
- ld hl, wd74b
- set 0, [hl]
+ SetEvent EVENT_FOLLOWED_OAK_INTO_LAB
+ SetEvent EVENT_FOLLOWED_OAK_INTO_LAB_2
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $4
- ld [$ff8d], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
call UpdateSprites
ld hl, W_FLAGS_D733
@@ -128,22 +128,21 @@ OaksLabScript5: ; 1cbfd (7:4bfd)
ld a, $fc
ld [wJoyIgnore], a
ld a, $11
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld a, $12
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld a, $13
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld a, $14
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd74b
- set 1, [hl]
+ SetEvent EVENT_OAK_ASKED_TO_CHOOSE_MON
xor a
ld [wJoyIgnore], a
@@ -157,25 +156,25 @@ OaksLabScript6: ; 1cc36 (7:4c36)
ret nz
ld a, $5
ld [H_SPRITEINDEX], a
- xor a
- ld [$ff8d], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $1
ld [H_SPRITEINDEX], a
xor a
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
call UpdateSprites
ld a, $c
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $40
+ ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
ld a, $7
ld [W_OAKSLABCURSCRIPT], a
@@ -194,46 +193,70 @@ OaksLabScript7: ; 1cc72 (7:4c72)
OaksLabScript8: ; 1cc80 (7:4c80)
ld a, [W_PLAYERSTARTER]
cp STARTER1
- jr z, .Charmander ; 0x1cc85 $6
+ jr z, .Charmander
cp STARTER2
- jr z, .Squirtle ; 0x1cc89 $1d
- jr .Bulbasaur ; 0x1cc8b $38
+ jr z, .Squirtle
+ jr .Bulbasaur
.Charmander
ld de, .MiddleBallMovement1
ld a, [W_YCOORD]
cp $4 ; is the player standing below the table?
- jr z, .asm_1ccf3 ; 0x1cc95 $5c
+ jr z, .asm_1ccf3
ld de, .MiddleBallMovement2
- jr .asm_1ccf3 ; 0x1cc9a $57
+ jr .asm_1ccf3
.MiddleBallMovement1
- db 0,0,$C0,$C0,$C0,$40,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_UP
+ db $FF
+
.MiddleBallMovement2
- db 0,$C0,$C0,$C0,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
.Squirtle
ld de, .RightBallMovement1
ld a, [W_YCOORD]
cp $4 ; is the player standing below the table?
- jr z, .asm_1ccf3 ; 0x1ccb0 $41
+ jr z, .asm_1ccf3
ld de, .RightBallMovement2
- jr .asm_1ccf3 ; 0x1ccb5 $3c
+ jr .asm_1ccf3
.RightBallMovement1
- db 0,0,$C0,$C0,$C0,$C0,$40,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_UP
+ db $FF
+
.RightBallMovement2
- db 0,$C0,$C0,$C0,$C0,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
.Bulbasaur
ld de, .LeftBallMovement1
ld a, [W_XCOORD]
cp $9 ; is the player standing to the right of the table?
- jr nz, .asm_1ccf3 ; 0x1cccd $24
+ jr nz, .asm_1ccf3
push hl
ld a, $1
ld [H_SPRITEINDEX], a
ld a, $4
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
push hl
ld [hl], $4c
@@ -247,12 +270,14 @@ OaksLabScript8: ; 1cc80 (7:4c80)
ld [hl], $9
ld de, .LeftBallMovement2 ; the rival is not currently onscreen, so account for that
pop hl
- jr .asm_1ccf3 ; 0x1cced $4
+ jr .asm_1ccf3
.LeftBallMovement1
- db $00,$C0 ; not yet terminated!
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT ; not yet terminated!
.LeftBallMovement2
- db $C0,$FF
+ db NPC_MOVEMENT_RIGHT
+ db $FF
.asm_1ccf3
ld a, $1
@@ -271,43 +296,42 @@ OaksLabScript9: ; 1cd00 (7:4d00)
ld [wJoyIgnore], a
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $4
- ld [$ff8d], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $d
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld a, [wTrainerEngageDistance]
+ ld a, [wRivalStarterBallSpriteIndex]
cp $2
- jr nz, .asm_1cd28 ; 0x1cd22 $4
+ jr nz, .asm_1cd28
ld a, HS_STARTER_BALL_1
- jr .asm_1cd32 ; 0x1cd26 $a
+ jr .asm_1cd32
.asm_1cd28
cp $3
- jr nz, .asm_1cd30 ; 0x1cd2a $4
+ jr nz, .asm_1cd30
ld a, HS_STARTER_BALL_2
- jr .asm_1cd32 ; 0x1cd2e $2
+ jr .asm_1cd32
.asm_1cd30
ld a, HS_STARTER_BALL_3
.asm_1cd32
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call Delay3
- ld a, [wWhichTrade]
+ ld a, [wRivalStarterTemp]
ld [W_RIVALSTARTER], a
ld [wcf91], a
ld [wd11e], a
call GetMonName
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $4
- ld [$ff8d], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $e
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd74b
- set 2, [hl]
+ SetEvent EVENT_GOT_STARTER
xor a
ld [wJoyIgnore], a
@@ -321,26 +345,26 @@ OaksLabScript10: ; 1cd6d (7:4d6d)
ret nz
ld a, $1
ld [H_SPRITEINDEX], a
- xor a
- ld [$ff8d], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
- call PlayMusic ; play music
+ call PlayMusic
ld a, $f
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
- ld [$ff9b], a
+ ld [hNPCPlayerRelativePosPerspective], a
ld a, $1
swap a
- ld [$ff95], a
+ ld [hNPCSpriteOffset], a
predef CalcPositionOfPlayerRelativeToNPC
- ld a, [$ff95]
+ ld a, [hNPCPlayerYDistance]
dec a
- ld [$ff95], a
+ ld [hNPCPlayerYDistance], a
predef FindPathToPlayer
ld de, wNPCMovementDirections2
ld a, $1
@@ -357,18 +381,18 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
ret nz
; define which team rival uses, and fight it
- ld a, SONY1 + $C8
+ ld a, OPP_SONY1
ld [W_CUROPPONENT], a
ld a, [W_RIVALSTARTER]
cp STARTER2
- jr nz, .NotSquirtle ; 0x1cdc9 $4
+ jr nz, .NotSquirtle
ld a, $1
- jr .done ; 0x1cdcd $a
+ jr .done
.NotSquirtle
cp STARTER3
- jr nz, .Charmander ; 0x1cdd1 $4
+ jr nz, .Charmander
ld a, $2
- jr .done ; 0x1cdd5 $2
+ jr .done
.Charmander
ld a, $3
.done
@@ -384,8 +408,8 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
set 7, [hl]
xor a
ld [wJoyIgnore], a
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
ld a, $c
ld [W_OAKSLABCURSCRIPT], a
ret
@@ -393,30 +417,29 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
OaksLabScript12: ; 1ce03 (7:4e03)
ld a, $f0
ld [wJoyIgnore], a
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
call UpdateSprites
ld a, $1
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, $1
ld [H_SPRITEINDEX], a
- xor a
- ld [$ff8d], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
predef HealParty
- ld hl, wd74b
- set 3, [hl]
+ SetEvent EVENT_BATTLED_RIVAL_IN_OAKS_LAB
ld a, $d
ld [W_OAKSLABCURSCRIPT], a
ret
OaksLabScript13: ; 1ce32 (7:4e32)
- ld c, $14
+ ld c, 20
call DelayFrames
ld a, $10
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
callba Music_RivalAlternateStart
ld a, $1
@@ -426,52 +449,59 @@ OaksLabScript13: ; 1ce32 (7:4e32)
ld a, [W_XCOORD]
cp $4
; move left or right depending on where the player is standing
- jr nz, .asm_1ce5b ; 0x1ce55 $4
- ld a, $c0
- jr .asm_1ce5d ; 0x1ce59 $2
-.asm_1ce5b
- ld a, $80
-.asm_1ce5d
- ld [wcc5b], a
+ jr nz, .moveLeft
+ ld a, NPC_MOVEMENT_RIGHT
+ jr .next
+.moveLeft
+ ld a, NPC_MOVEMENT_LEFT
+.next
+ ld [wNPCMovementDirections], a
ld a, $e
ld [W_OAKSLABCURSCRIPT], a
ret
.RivalExitMovement
- db $E0,$00,$00,$00,$00,$00,$FF
+ db $E0 ; change sprite facing direction
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
OaksLabScript14: ; 1ce6d (7:4e6d)
ld a, [wd730]
bit 0, a
- jr nz, .asm_1ce8c ; 0x1ce72 $18
+ jr nz, .asm_1ce8c
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
call PlayDefaultMusic ; reset to map music
ld a, $12
ld [W_OAKSLABCURSCRIPT], a
- jr .done ; 0x1ce8a $23
+ jr .done
+; make the player keep facing the rival as he walks away
.asm_1ce8c
- ld a, [wcf0f]
+ ld a, [wNPCNumScriptedSteps]
cp $5
- jr nz, .asm_1cea8 ; 0x1ce91 $15
+ jr nz, .asm_1cea8
ld a, [W_XCOORD]
cp $4
- jr nz, .asm_1cea1 ; 0x1ce98 $7
- ld a, $c
+ jr nz, .asm_1cea1
+ ld a, SPRITE_FACING_RIGHT
ld [wSpriteStateData1 + 9], a
- jr .done ; 0x1ce9f $e
+ jr .done
.asm_1cea1
- ld a, $8
+ ld a, SPRITE_FACING_LEFT
ld [wSpriteStateData1 + 9], a
- jr .done ; 0x1cea6 $7
+ jr .done
.asm_1cea8
cp $4
ret nz
- xor a
+ xor a ; ld a, SPRITE_FACING_DOWN
ld [wSpriteStateData1 + 9], a
.done
ret
@@ -481,22 +511,22 @@ OaksLabScript15: ; 1ceb0 (7:4eb0)
ld [hJoyHeld], a
call EnableAutoTextBoxDrawing
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $15
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call OaksLabScript_1d02b
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, [wNPCMovementDirections2Index]
- ld [wd157], a
- ld b, $0
+ ld [wSavedNPCMovementDirections2Index], a
+ ld b, 0
ld c, a
ld hl, wNPCMovementDirections2
- ld a, $40
+ ld a, NPC_MOVEMENT_UP
call FillMemory
ld [hl], $ff
ld a, $1
@@ -508,16 +538,16 @@ OaksLabScript15: ; 1ceb0 (7:4eb0)
ld [W_OAKSLABCURSCRIPT], a
ret
-OaksLabScript_1cefd ; 1cefd (7:4efd)
+OaksLabScript_1cefd: ; 1cefd (7:4efd)
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $4
- ld [$ff8d], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $8
ld [H_SPRITEINDEX], a
- xor a
- ld [$ff8d], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
OaksLabScript16: ; 1cf12 (7:4f12)
@@ -530,61 +560,59 @@ OaksLabScript16: ; 1cf12 (7:4f12)
ld [wJoyIgnore], a
call OaksLabScript_1cefd
ld a, $16
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call DelayFrame
call OaksLabScript_1cefd
ld a, $17
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call DelayFrame
call OaksLabScript_1cefd
ld a, $18
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call DelayFrame
ld a, $19
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld a, HS_POKEDEX_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_POKEDEX_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call OaksLabScript_1cefd
ld a, $1a
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $c
- ld [$ff8d], a
+ ld a, SPRITE_FACING_RIGHT
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
call Delay3
ld a, $1b
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd74b
- set 5, [hl]
- ld hl, wd74e
- set 0, [hl]
+ SetEvent EVENT_GOT_POKEDEX
+ SetEvent EVENT_OAK_GOT_PARCEL
ld a, HS_LYING_OLD_MAN
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_OLD_MAN
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
- ld a, [wd157]
- ld b, $0
+ ld a, [wSavedNPCMovementDirections2Index]
+ ld b, 0
ld c, a
ld hl, wNPCMovementDirections2
- xor a
+ xor a ; NPC_MOVEMENT_DOWN
call FillMemory
ld [hl], $ff
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $1
@@ -602,14 +630,13 @@ OaksLabScript17: ; 1cfd4 (7:4fd4)
ret nz
call PlayDefaultMusic
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
- ld hl, wd7eb
- set 0, [hl]
- res 1, [hl]
- set 7, [hl]
+ SetEvent EVENT_1ST_ROUTE22_RIVAL_BATTLE
+ ResetEventReuseHL EVENT_2ND_ROUTE22_RIVAL_BATTLE
+ SetEventReuseHL EVENT_ROUTE22_RIVAL_WANTS_BATTLE
ld a, HS_ROUTE_22_RIVAL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $5
ld [W_PALLETTOWNCURSCRIPT], a
@@ -623,24 +650,24 @@ OaksLabScript17: ; 1cfd4 (7:4fd4)
OaksLabScript18: ; 1d009 (7:5009)
ret
-OaksLabScript_1d00a: ; 1d00a (7:500a)
+OaksLabScript_RemoveParcel: ; 1d00a (7:500a)
ld hl, wBagItems
ld bc, $0000
-.asm_1d010
+.loop
ld a, [hli]
cp $ff
ret z
cp OAKS_PARCEL
- jr z, .GotParcel ; 0x1d016 $4
+ jr z, .foundParcel
inc hl
inc c
- jr .asm_1d010 ; 0x1d01a $f4
-.GotParcel
+ jr .loop
+.foundParcel
ld hl, wNumBagItems
ld a, c
ld [wWhichPokemon], a
ld a, $1
- ld [wcf96], a
+ ld [wItemQuantity], a
jp RemoveItemFromInventory
OaksLabScript_1d02b: ; 1d02b (7:502b)
@@ -650,29 +677,29 @@ OaksLabScript_1d02b: ; 1d02b (7:502b)
ld [$ffee], a
ld a, [W_YCOORD]
cp $3
- jr nz, .asm_1d045 ; 0x1d038 $b
+ jr nz, .asm_1d045
ld a, $4
ld [wNPCMovementDirections2Index], a
ld a, $30
ld b, $b
- jr .asm_1d068 ; 0x1d043 $23
+ jr .asm_1d068
.asm_1d045
cp $1
- jr nz, .asm_1d054 ; 0x1d047 $b
+ jr nz, .asm_1d054
ld a, $2
ld [wNPCMovementDirections2Index], a
ld a, $30
ld b, $9
- jr .asm_1d068 ; 0x1d052 $14
+ jr .asm_1d068
.asm_1d054
ld a, $3
ld [wNPCMovementDirections2Index], a
ld b, $a
ld a, [W_XCOORD]
cp $4
- jr nz, .asm_1d066 ; 0x1d060 $4
+ jr nz, .asm_1d066
ld a, $40
- jr .asm_1d068 ; 0x1d064 $2
+ jr .asm_1d068
.asm_1d066
ld a, $20
.asm_1d068
@@ -685,7 +712,7 @@ OaksLabScript_1d02b: ; 1d02b (7:502b)
ret
OaksLabScript_1d076: ; 1d076 (7:5076)
- ld hl, OaksLabTextPointers + $36 ; $50b8 ; starts at OaksLabText28
+ ld hl, OaksLabTextPointers + $36 ; starts at OaksLabText28
ld a, l
ld [W_MAPTEXTPTR], a
ld a, h
@@ -734,23 +761,22 @@ OaksLabTextPointers: ; 1d082 (7:5082)
OaksLabText28: ; 1d0ce (7:50ce)
OaksLabText1: ; 1d0ce (7:50ce)
- db $08 ; asm
- ld a, [wd74b]
- bit 0, a
- jr nz, .asm_1d0de ; 0x1d0d4
+ TX_ASM
+ CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB_2
+ jr nz, .asm_1d0de
ld hl, OaksLabGaryText1
call PrintText
- jr .asm_1d0f0 ; 0x1d0dc
-.asm_1d0de ; 0x1d0de
+ jr .asm_1d0f0
+.asm_1d0de
bit 2, a
- jr nz, .asm_1d0ea ; 0x1d0e0
+ jr nz, .asm_1d0ea
ld hl, OaksLabText40
call PrintText
- jr .asm_1d0f0 ; 0x1d0e8
-.asm_1d0ea ; 0x1d0ea
+ jr .asm_1d0f0
+.asm_1d0ea
ld hl, OaksLabText41
call PrintText
-.asm_1d0f0 ; 0x1d0f0
+.asm_1d0f0
jp TextScriptEnd
OaksLabGaryText1: ; 1d0f3 (7:50f3)
@@ -767,33 +793,33 @@ OaksLabText41: ; 1d0fd (7:50fd)
OaksLabText29: ; 1d102 (7:5102)
OaksLabText2: ; 1d102 (7:5102)
- db $8
+ TX_ASM
ld a, STARTER2
- ld [wWhichTrade], a
+ ld [wRivalStarterTemp], a
ld a, $3
- ld [wTrainerEngageDistance], a
+ ld [wRivalStarterBallSpriteIndex], a
ld a, STARTER1
ld b, $2
- jr OaksLabScript_1d133 ; 0x1d111 $20
+ jr OaksLabScript_1d133
OaksLabText30: ; 1d113 (7:5113)
OaksLabText3: ; 1d113 (7:5113)
- db $8
+ TX_ASM
ld a, STARTER3
- ld [wWhichTrade], a
+ ld [wRivalStarterTemp], a
ld a, $4
- ld [wTrainerEngageDistance], a
+ ld [wRivalStarterBallSpriteIndex], a
ld a, STARTER2
ld b, $3
- jr OaksLabScript_1d133 ; 0x1d122 $f
+ jr OaksLabScript_1d133
OaksLabText31: ; 1d124 (7:5124)
OaksLabText4: ; 1d124 (7:5124)
- db $8
+ TX_ASM
ld a, STARTER1
- ld [wWhichTrade], a
+ ld [wRivalStarterTemp], a
ld a, $2
- ld [wTrainerEngageDistance], a
+ ld [wRivalStarterBallSpriteIndex], a
ld a, STARTER3
ld b, $4
@@ -802,11 +828,10 @@ OaksLabScript_1d133: ; 1d133 (7:5133)
ld [wd11e], a
ld a, b
ld [wSpriteIndex], a
- ld a, [wd74b]
- bit 2, a
+ CheckEvent EVENT_GOT_STARTER
jp nz, OaksLabScript_1d22d
- bit 1, a
- jr nz, OaksLabScript_1d157 ; 0x1d147 $e
+ CheckEventReuseA EVENT_OAK_ASKED_TO_CHOOSE_MON
+ jr nz, OaksLabScript_1d157
ld hl, OaksLabText39
call PrintText
jp TextScriptEnd
@@ -819,23 +844,22 @@ OaksLabScript_1d157: ; 1d157 (7:5157)
ld a, $5
ld [H_SPRITEINDEX], a
ld a, $9
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
- ld [hl], $0
- ; manually fixed some disassembler issues around here
+ ld [hl], SPRITE_FACING_DOWN
ld a, $1
ld [H_SPRITEINDEX], a
ld a, $9
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
- ld [hl], $c
+ ld [hl], SPRITE_FACING_RIGHT
ld hl, wd730
set 6, [hl]
- predef StarterDex ; StarterDex
+ predef StarterDex
ld hl, wd730
res 6, [hl]
call ReloadMapData
- ld c, $a
+ ld c, 10
call DelayFrames
ld a, [wSpriteIndex]
cp $2
@@ -844,7 +868,7 @@ OaksLabScript_1d157: ; 1d157 (7:5157)
jr z, OaksLabLookAtSquirtle
jr OaksLabLookAtBulbasaur
-OaksLabLookAtCharmander ; 0x1d195
+OaksLabLookAtCharmander: ; 1d195 (7:5195)
ld hl, OaksLabCharmanderText
jr OaksLabMonChoiceMenu
OaksLabCharmanderText: ; 1d19a (7:519a)
@@ -879,18 +903,18 @@ OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3)
call GetMonName
ld a, [wSpriteIndex]
cp $2
- jr nz, asm_1d1db ; 0x1d1d5 $4
+ jr nz, .asm_1d1db
ld a, HS_STARTER_BALL_1
- jr asm_1d1e5 ; 0x1d1d9 $a
-asm_1d1db: ; 1d1db (7:51db)
+ jr .asm_1d1e5
+.asm_1d1db
cp $3
- jr nz, asm_1d1e3 ; 0x1d1dd $4
+ jr nz, .asm_1d1e3
ld a, HS_STARTER_BALL_2
- jr asm_1d1e5 ; 0x1d1e1 $2
-asm_1d1e3: ; 1d1e3 (7:51e3)
+ jr .asm_1d1e5
+.asm_1d1e3
ld a, HS_STARTER_BALL_3
-asm_1d1e5: ; 1d1e5 (7:51e5)
- ld [wcc4d], a
+.asm_1d1e5
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -898,9 +922,9 @@ asm_1d1e5: ; 1d1e5 (7:51e5)
call PrintText
ld hl, OaksLabReceivedMonText
call PrintText
- xor a
- ld [wcc49], a
- ld a, $5
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
+ ld a, 5
ld [W_CURENEMYLVL], a
ld a, [wcf91]
ld [wd11e], a
@@ -926,7 +950,7 @@ OaksLabScript_1d22d: ; 1d22d (7:522d)
ld a, $5
ld [H_SPRITEINDEX], a
ld a, $9
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
ld [hl], $0
ld hl, OaksLabLastMonText
@@ -939,80 +963,74 @@ OaksLabLastMonText: ; 1d243 (7:5243)
OaksLabText32: ; 1d248 (7:5248)
OaksLabText5: ; 1d248 (7:5248)
- db $08 ; asm
- ld a, [wd747]
- bit 6, a
- jr nz, .asm_50e81 ; 0x1d24e
+ TX_ASM
+ CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS
+ jr nz, .asm_1d266
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [wd11e]
- cp $2
- jr c, .asm_b28b0 ; 0x1d25d
- ld a, [wd74b]
- bit 5, a
- jr z, .asm_b28b0 ; 0x1d264
-.asm_50e81 ; 0x1d266
+ ld a, [wNumSetBits]
+ cp 2
+ jr c, .asm_1d279
+ CheckEvent EVENT_GOT_POKEDEX
+ jr z, .asm_1d279
+.asm_1d266
ld hl, OaksLabText_1d31d
call PrintText
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
predef DisplayDexRating
- jp .asm_0f042
-.asm_b28b0 ; 0x1d279
+ jp .asm_1d2ed
+.asm_1d279
ld b,POKE_BALL
call IsItemInBag
- jr nz, .asm_17c30 ; 0x1d27e
- ld a, [wd7eb]
- bit 5, a
- jr nz, .asm_f1adc ; 0x1d285
- ld a, [wd74b]
- bit 5, a
- jr nz, .asm_333a2 ; 0x1d28c
- bit 3, a
- jr nz, .asm_76269 ; 0x1d290
+ jr nz, .asm_1d2e7
+ CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
+ jr nz, .asm_1d2d0
+ CheckEvent EVENT_GOT_POKEDEX
+ jr nz, .asm_1d2c8
+ CheckEventReuseA EVENT_BATTLED_RIVAL_IN_OAKS_LAB
+ jr nz, .asm_1d2a9
ld a, [wd72e]
bit 3, a
- jr nz, .asm_4a5e0 ; 0x1d297
+ jr nz, .asm_1d2a1
ld hl, OaksLabText_1d2f0
call PrintText
- jr .asm_0f042 ; 0x1d29f
-.asm_4a5e0 ; 0x1d2a1
+ jr .asm_1d2ed
+.asm_1d2a1
ld hl, OaksLabText_1d2f5
call PrintText
- jr .asm_0f042 ; 0x1d2a7
-.asm_76269 ; 0x1d2a9
+ jr .asm_1d2ed
+.asm_1d2a9
ld b, OAKS_PARCEL
call IsItemInBag
- jr nz, .asm_a8fcf ; 0x1d2ae
+ jr nz, .asm_1d2b8
ld hl, OaksLabText_1d2fa
call PrintText
- jr .asm_0f042 ; 0x1d2b6
-.asm_a8fcf ; 0x1d2b8
+ jr .asm_1d2ed
+.asm_1d2b8
ld hl, OaksLabDeliverParcelText
call PrintText
- call OaksLabScript_1d00a
+ call OaksLabScript_RemoveParcel
ld a, $f
ld [W_OAKSLABCURSCRIPT], a
- jr .asm_0f042 ; 0x1d2c6
-.asm_333a2 ; 0x1d2c8
+ jr .asm_1d2ed
+.asm_1d2c8
ld hl, OaksLabAroundWorldText
call PrintText
- jr .asm_0f042 ; 0x1d2ce
-.asm_f1adc ; 0x1d2d0
- ld hl, wd74b
- bit 4, [hl]
- set 4, [hl]
- jr nz, .asm_17c30 ; 0x1d2d7
- ld bc, (POKE_BALL << 8) | 5
+ jr .asm_1d2ed
+.asm_1d2d0
+ CheckAndSetEvent EVENT_GOT_POKEBALLS_FROM_OAK
+ jr nz, .asm_1d2e7
+ lb bc, POKE_BALL, 5
call GiveItem
ld hl, OaksLabGivePokeballsText
call PrintText
- jr .asm_0f042 ; 0x1d2e5
-.asm_17c30 ; 0x1d2e7
+ jr .asm_1d2ed
+.asm_1d2e7
ld hl, OaksLabPleaseVisitText
call PrintText
-.asm_0f042 ; 0x1d2ed
+.asm_1d2ed
jp TextScriptEnd
OaksLabText_1d2f0: ; 1d2f0 (7:52f0)
@@ -1055,7 +1073,7 @@ OaksLabText34: ; 1d322 (7:5322)
OaksLabText33: ; 1d322 (7:5322)
OaksLabText7: ; 1d322 (7:5322)
OaksLabText6: ; 1d322 (7:5322)
- db $08 ; asm
+ TX_ASM
ld hl, OaksLabText_1d32c
call PrintText
jp TextScriptEnd
@@ -1071,7 +1089,7 @@ OaksLabText8: ; 1d331 (7:5331)
OaksLabText36: ; 1d336 (7:5336)
OaksLabText9: ; 1d336 (7:5336)
- db $08 ; asm
+ TX_ASM
ld hl, OaksLabText_1d340
call PrintText
jp TextScriptEnd
@@ -1081,7 +1099,7 @@ OaksLabText_1d340: ; 1d340 (7:5340)
db "@"
OaksLabText17: ; 1d345 (7:5345)
- db $8
+ TX_ASM
ld hl, OaksLabRivalWaitingText
call PrintText
jp TextScriptEnd
@@ -1091,7 +1109,7 @@ OaksLabRivalWaitingText: ; 1d34f (7:534f)
db "@"
OaksLabText18: ; 1d354 (7:5354)
- db $8
+ TX_ASM
ld hl, OaksLabChooseMonText
call PrintText
jp TextScriptEnd
@@ -1101,7 +1119,7 @@ OaksLabChooseMonText: ; 1d35e (7:535e)
db "@"
OaksLabText19: ; 1d363 (7:5363)
- db $8
+ TX_ASM
ld hl, OaksLabRivalInterjectionText
call PrintText
jp TextScriptEnd
@@ -1111,7 +1129,7 @@ OaksLabRivalInterjectionText: ; 1d36d (7:536d)
db "@"
OaksLabText20: ; 1d372 (7:5372)
- db $8
+ TX_ASM
ld hl, OaksLabBePatientText
call PrintText
jp TextScriptEnd
@@ -1121,7 +1139,7 @@ OaksLabBePatientText: ; 1d37c (7:537c)
db "@"
OaksLabText12: ; 1d381 (7:5381)
- db $8
+ TX_ASM
ld hl, OaksLabLeavingText
call PrintText
jp TextScriptEnd
@@ -1131,7 +1149,7 @@ OaksLabLeavingText: ; 1d38b (7:538b)
db "@"
OaksLabText13: ; 1d390 (7:5390)
- db $8
+ TX_ASM
ld hl, OaksLabRivalPickingMonText
call PrintText
jp TextScriptEnd
@@ -1141,7 +1159,7 @@ OaksLabRivalPickingMonText: ; 1d39a (7:539a)
db "@"
OaksLabText14: ; 1d39f (7:539f)
- db $8
+ TX_ASM
ld hl, OaksLabRivalReceivedMonText
call PrintText
jp TextScriptEnd
@@ -1151,7 +1169,7 @@ OaksLabRivalReceivedMonText: ; 1d3a9 (7:53a9)
db $11, "@"
OaksLabText15: ; 1d3af (7:53af)
- db $8
+ TX_ASM
ld hl, OaksLabRivalChallengeText
call PrintText
jp TextScriptEnd
@@ -1169,7 +1187,7 @@ OaksLabText_1d3c3: ; 1d3c3 (7:53c3)
db "@"
OaksLabText16: ; 1d3c8 (7:53c8)
- db $8
+ TX_ASM
ld hl, OaksLabRivalToughenUpText
call PrintText
jp TextScriptEnd
@@ -1210,7 +1228,7 @@ OaksLabText38: ; 1d3fb (7:53fb)
OaksLabText37: ; 1d3fb (7:53fb)
OaksLabText11: ; 1d3fb (7:53fb)
OaksLabText10: ; 1d3fb (7:53fb)
- db $08 ; asm
+ TX_ASM
ld hl, OaksLabText_1d405
call PrintText
jp TextScriptEnd
diff --git a/scripts/pallettown.asm b/scripts/pallettown.asm
index c43b9682..e4c3f135 100755
--- a/scripts/pallettown.asm
+++ b/scripts/pallettown.asm
@@ -1,9 +1,7 @@
PalletTownScript: ; 18e5b (6:4e5b)
- ld a,[wd74b]
- bit 4,a
+ CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK
jr z,.next
- ld hl,wd747
- set 6,[hl]
+ SetEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS
.next
call EnableAutoTextBoxDrawing
ld hl,PalletTownScriptPointers
@@ -20,26 +18,24 @@ PalletTownScriptPointers: ; 18e73 (6:4e73)
dw PalletTownScript6
PalletTownScript0: ; 18e81 (6:4e81)
- ld a,[wd747]
- bit 0,a
+ CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB
ret nz
ld a,[W_YCOORD]
cp 1 ; is player near north exit?
ret nz
xor a
ld [hJoyHeld],a
- ld a,4
- ld [wd528],a
+ ld a,PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection],a
ld a,$FF
call PlaySound ; stop music
ld a, BANK(Music_MeetProfOak)
- ld c,a ; song bank
+ ld c,a
ld a, MUSIC_MEET_PROF_OAK ; “oak appears” music
- call PlayMusic ; plays music
+ call PlayMusic
ld a,$FC
ld [wJoyIgnore],a
- ld hl,wd74b
- set 7,[hl]
+ SetEvent EVENT_OAK_APPEARED_IN_PALLET
; trigger the next script
ld a,1
@@ -50,12 +46,12 @@ PalletTownScript1: ; 18eb2 (6:4eb2)
xor a
ld [wcf0d],a
ld a,1
- ld [$FF8C],a
+ ld [hSpriteIndexOrTextID],a
call DisplayTextID
ld a,$FF
ld [wJoyIgnore],a
ld a,HS_PALLET_TOWN_OAK
- ld [wcc4d],a
+ ld [wMissableObjectIndex],a
predef ShowObject
; trigger the next script
@@ -65,25 +61,25 @@ PalletTownScript1: ; 18eb2 (6:4eb2)
PalletTownScript2: ; 18ed2 (6:4ed2)
ld a,1
- ld [$FF8C],a
- ld a,4
- ld [$FF8D],a
+ ld [H_SPRITEINDEX],a
+ ld a,SPRITE_FACING_UP
+ ld [hSpriteFacingDirection],a
call SetSpriteFacingDirectionAndDelay
call Delay3
ld a,1
ld [W_YCOORD],a
ld a,1
- ld [$FF9B],a
+ ld [hNPCPlayerRelativePosPerspective],a
ld a,1
swap a
- ld [$FF95],a
+ ld [hNPCSpriteOffset],a
predef CalcPositionOfPlayerRelativeToNPC
- ld hl,$FF95
+ ld hl,hNPCPlayerYDistance
dec [hl]
predef FindPathToPlayer ; load Oak’s movement into wNPCMovementDirections2
ld de,wNPCMovementDirections2
ld a,1 ; oak
- ld [$FF8C],a
+ ld [H_SPRITEINDEX],a
call MoveSprite
ld a,$FF
ld [wJoyIgnore],a
@@ -97,15 +93,16 @@ PalletTownScript3: ; 18f12 (6:4f12)
ld a,[wd730]
bit 0,a
ret nz
- xor a
+ xor a ; ld a, SPRITE_FACING_DOWN
ld [wSpriteStateData1 + 9],a
ld a,1
ld [wcf0d],a
ld a,$FC
ld [wJoyIgnore],a
ld a,1
- ld [$FF8C],a
+ ld [hSpriteIndexOrTextID],a
call DisplayTextID
+; set up movement script that causes the player to follow Oak to his lab
ld a,$FF
ld [wJoyIgnore],a
ld a,1
@@ -124,7 +121,7 @@ PalletTownScript3: ; 18f12 (6:4f12)
PalletTownScript4: ; 18f4b (6:4f4b)
ld a,[wNPCMovementScriptPointerTableNum]
- and a
+ and a ; is the movement script over?
ret nz
; trigger the next script
@@ -133,26 +130,21 @@ PalletTownScript4: ; 18f4b (6:4f4b)
ret
PalletTownScript5: ; 18f56 (6:4f56)
- ld a,[wd74a]
- bit 2,a
+ CheckEvent EVENT_DAISY_WALKING
jr nz,.next
- and 3
- cp 3
+ CheckBothEventsSet EVENT_GOT_TOWN_MAP, EVENT_ENTERED_BLUES_HOUSE, 1
jr nz,.next
- ld hl,wd74a
- set 2,[hl]
+ SetEvent EVENT_DAISY_WALKING
ld a,HS_DAISY_SITTING
- ld [wcc4d],a
+ ld [wMissableObjectIndex],a
predef HideObject
ld a,HS_DAISY_WALKING
- ld [wcc4d],a
+ ld [wMissableObjectIndex],a
predef_jump ShowObject
.next
- ld a,[wd74b]
- bit 4,a
+ CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK
ret z
- ld hl,wd74b
- set 6,[hl]
+ SetEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2
PalletTownScript6: ; 18f87 (6:4f87)
ret
@@ -166,7 +158,7 @@ PalletTownTextPointers: ; 18f88 (6:4f88)
dw PalletTownText7
PalletTownText1: ; 18f96 (6:4f96)
- db 8
+ TX_ASM
ld a,[wcf0d]
and a
jr nz,.next
@@ -182,15 +174,15 @@ PalletTownText1: ; 18f96 (6:4f96)
OakAppearsText: ; 18fb0 (6:4fb0)
TX_FAR _OakAppearsText
- db 8
+ TX_ASM
ld c,10
call DelayFrames
xor a
- ld [wcd4f],a
- ld [wcd50],a
- predef EmotionBubble ; display ! over head
- ld a,4
- ld [wd528],a
+ ld [wEmotionBubbleSpriteIndex],a ; player's sprite
+ ld [wWhichEmotionBubble],a ; EXCLAMATION_BUBBLE
+ predef EmotionBubble
+ ld a,PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection],a
jp TextScriptEnd
OakWalksUpText: ; 18fce (6:4fce)
diff --git a/scripts/pewtercity.asm b/scripts/pewtercity.asm
index bd6872a1..66589d52 100755
--- a/scripts/pewtercity.asm
+++ b/scripts/pewtercity.asm
@@ -16,14 +16,12 @@ PewterCityScriptPointers: ; 19243 (6:5243)
PewterCityScript0: ; 19251 (6:5251)
xor a
ld [W_MUSEUM1FCURSCRIPT], a
- ld hl, wd754
- res 0, [hl]
+ ResetEvent EVENT_BOUGHT_MUSEUM_TICKET
call PewterCityScript_1925e
ret
PewterCityScript_1925e: ; 1925e (6:525e)
- ld a, [wd755]
- bit 7, a
+ CheckEvent EVENT_BEAT_BROCK
ret nz
ld hl, CoordsData_19277
call ArePlayerCoordsInArray
@@ -31,7 +29,7 @@ PewterCityScript_1925e: ; 1925e (6:525e)
ld a, $f0
ld [wJoyIgnore], a
ld a, $5
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
CoordsData_19277: ; 19277 (6:5277)
@@ -48,16 +46,16 @@ PewterCityScript1: ; 19280 (6:5280)
ld a, $3
ld [H_SPRITEINDEX], a
ld a, SPRITE_FACING_UP
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, ($3 << 4) | SPRITE_FACING_UP
- ld [$ff8d], a
+ ld [hSpriteImageIndex], a
call SetSpriteImageIndexAfterSettingFacingDirection
call PlayDefaultMusic
ld hl, wFlags_0xcd60
set 4, [hl]
ld a, $d
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $3c
ld [$ffeb], a
@@ -71,22 +69,26 @@ PewterCityScript1: ; 19280 (6:5280)
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, $3
- ld [$ff8c], a
- ld de, MovementData_PewterMuseumGuyExit ; $52ce
+ ld [H_SPRITEINDEX], a
+ ld de, MovementData_PewterMuseumGuyExit
call MoveSprite
ld a, $2
ld [W_PEWTERCITYCURSCRIPT], a
ret
MovementData_PewterMuseumGuyExit: ; 192ce (6:52ce)
- db $00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
PewterCityScript2: ; 192d3 (6:52d3)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_MUSEUM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $3
ld [W_PEWTERCITYCURSCRIPT], a
@@ -97,7 +99,7 @@ PewterCityScript3: ; 192e9 (6:52e9)
ld [wSpriteIndex], a
call SetSpritePosition2
ld a, HS_MUSEUM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
xor a
ld [wJoyIgnore], a
@@ -110,18 +112,18 @@ PewterCityScript4: ; 19305 (6:5305)
and a
ret nz
ld a, $5
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
ld a, SPRITE_FACING_LEFT
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, ($1 << 4) | SPRITE_FACING_LEFT
- ld [$ff8d], a
+ ld [hSpriteImageIndex], a
call SetSpriteImageIndexAfterSettingFacingDirection
call PlayDefaultMusic
ld hl, wFlags_0xcd60
set 4, [hl]
ld a, $e
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $3c
ld [$ffeb], a
@@ -135,7 +137,7 @@ PewterCityScript4: ; 19305 (6:5305)
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, $5
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
ld de, MovementData_PewterGymGuyExit
call MoveSprite
ld a, $5
@@ -143,14 +145,19 @@ PewterCityScript4: ; 19305 (6:5305)
ret
MovementData_PewterGymGuyExit: ; 19353 (6:5353)
- db $C0,$C0,$C0,$C0,$C0,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
PewterCityScript5: ; 19359 (6:5359)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_GYM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $6
ld [W_PEWTERCITYCURSCRIPT], a
@@ -161,7 +168,7 @@ PewterCityScript6: ; 1936f (6:536f)
ld [wSpriteIndex], a
call SetSpritePosition2
ld a, HS_GYM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
xor a
ld [wJoyIgnore], a
@@ -194,17 +201,17 @@ PewterCityText2: ; 193ac (6:53ac)
db "@"
PewterCityText3: ; 193b1 (6:53b1)
- db $08 ; asm
+ TX_ASM
ld hl, PewterCityText_193f1
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_f46a9 ; 0x193bf
+ jr nz, .asm_193c9
ld hl, PewterCityText_193f6
call PrintText
- jr .asm_ac429 ; 0x193c7
-.asm_f46a9 ; 0x193c9
+ jr .asm_193ee
+.asm_193c9
ld hl, PewterCityText_193fb
call PrintText
xor a
@@ -220,7 +227,7 @@ PewterCityText3: ; 193b1 (6:53b1)
call GetSpritePosition2
ld a, $1
ld [W_PEWTERCITYCURSCRIPT], a
-.asm_ac429 ; 0x193ee
+.asm_193ee
jp TextScriptEnd
PewterCityText_193f1: ; 193f1 (6:53f1)
@@ -240,20 +247,20 @@ PewterCityText13: ; 19400 (6:5400)
db "@"
PewterCityText4: ; 19405 (6:5405)
- db $8
+ TX_ASM
ld hl, PewterCityText_19427
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
cp $0
- jr nz, .asm_e4603
+ jr nz, .asm_1941e
ld hl, PewterCityText_1942c
call PrintText
- jr .asm_e4604 ; 0x1941c $6
-.asm_e4603
+ jr .asm_19424
+.asm_1941e
ld hl, PewterCityText_19431
call PrintText
-.asm_e4604 ; 0x19424
+.asm_19424
jp TextScriptEnd
PewterCityText_19427: ; 19427 (6:5427)
@@ -269,7 +276,7 @@ PewterCityText_19431: ; 19431 (6:5431)
db "@"
PewterCityText5: ; 19436 (6:5436)
- db $08 ; asm
+ TX_ASM
ld hl, PewterCityText_1945d
call PrintText
xor a
diff --git a/scripts/pewtergym.asm b/scripts/pewtergym.asm
index 8cb6696c..831403bb 100755
--- a/scripts/pewtergym.asm
+++ b/scripts/pewtergym.asm
@@ -12,8 +12,8 @@ PewterGymScript: ; 5c387 (17:4387)
ret
PewterGymScript_5c3a4: ; 5c3a4 (17:43a4)
- ld hl, Gym1CityName ; $43ad
- ld de, Gym1LeaderName ; $43b9
+ ld hl, Gym1CityName
+ ld de, Gym1LeaderName
jp LoadGymLeaderAndCityName
Gym1CityName: ; 5c3ad (17:43ad)
@@ -36,7 +36,7 @@ PewterGymScriptPointers: ; 5c3ca (17:43ca)
dw PewterGymScript3
PewterGymScript3: ; 5c3d2 (17:43d2)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, PewterGymScript_5c3bf
ld a, $f0
@@ -44,43 +44,38 @@ PewterGymScript3: ; 5c3d2 (17:43d2)
PewterGymScript_5c3df: ; 5c3df (17:43df)
ld a, $4
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd755
- set 7, [hl]
- ld bc, (TM_34 << 8) | 1
+ SetEvent EVENT_BEAT_BROCK
+ lb bc, TM_34, 1
call GiveItem
jr nc, .BagFull
ld a, $5
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd755
- set 6, [hl]
+ SetEvent EVENT_GOT_TM34
jr .asm_5c408
.BagFull
ld a, $6
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_5c408
ld hl, W_OBTAINEDBADGES
set 0, [hl]
- ld hl, wd72a
+ ld hl, wBeatGymFlags
set 0, [hl]
ld a, HS_GYM_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_ROUTE_22_RIVAL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
- ld hl, wd7eb
- res 0, [hl]
- res 7, [hl]
+ ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
; deactivate gym trainers
- ld hl, wd755
- set 2, [hl]
+ SetEvent EVENT_BEAT_PEWTER_GYM_TRAINER_0
jp PewterGymScript_5c3bf
@@ -94,31 +89,30 @@ PewterGymTextPointers: ; 5c435 (17:4435)
PewterGymTrainerHeaders: ; 5c441 (17:4441)
PewterGymTrainerHeader0: ; 5c441 (17:4441)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_PEWTER_GYM_TRAINER_0
db ($5 << 4) ; trainer's view range
- dw wd755 ; flag's byte
- dw PewterGymBattleText1 ; 0x44d0 TextBeforeBattle
- dw PewterGymAfterBattleText1 ; 0x44da TextAfterBattle
- dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
- dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_PEWTER_GYM_TRAINER_0
+ dw PewterGymBattleText1 ; TextBeforeBattle
+ dw PewterGymAfterBattleText1 ; TextAfterBattle
+ dw PewterGymEndBattleText1 ; TextEndBattle
+ dw PewterGymEndBattleText1 ; TextEndBattle
db $ff
PewterGymText1: ; 5c44e (17:444e)
- db $08 ; asm
- ld a, [wd755]
- bit 7, a
- jr z, .asm_4a735 ; 0x5c454
- bit 6, a
- jr nz, .asm_ff7d0 ; 0x5c458
+ TX_ASM
+ CheckEvent EVENT_BEAT_BROCK
+ jr z, .asm_5c46a
+ CheckEventReuseA EVENT_GOT_TM34
+ jr nz, .asm_5c462
call z, PewterGymScript_5c3df
call DisableWaitingAfterTextDisplay
- jr .asm_e0ffb ; 0x5c460
-.asm_ff7d0 ; 0x5c462
+ jr .asm_5c49b
+.asm_5c462
ld hl, PewterGymText_5c4a3
call PrintText
- jr .asm_e0ffb ; 0x5c468
-.asm_4a735 ; 0x5c46a
+ jr .asm_5c49b
+.asm_5c46a
ld hl, PewterGymText_5c49e
call PrintText
ld hl, wd72d
@@ -138,7 +132,7 @@ PewterGymText1: ; 5c44e (17:444e)
ld a, $3
ld [W_PEWTERGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
-.asm_e0ffb ; 0x5c49b
+.asm_5c49b
jp TextScriptEnd
PewterGymText_5c49e: ; 5c49e (17:449e)
@@ -170,7 +164,7 @@ PewterGymText_5c4bc: ; 5c4bc (17:44bc)
db "@"
PewterGymText2: ; 5c4c6 (17:44c6)
- db $08 ; asm
+ TX_ASM
ld hl, PewterGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -188,30 +182,30 @@ PewterGymAfterBattleText1: ; 5c4da (17:44da)
db "@"
PewterGymText3: ; 5c4df (17:44df)
- db $08 ; asm
- ld a, [wd72a]
+ TX_ASM
+ ld a, [wBeatGymFlags]
bit 0, a
- jr nz, .asm_71369 ; 0x5c4e5
+ jr nz, .asm_5c50c
ld hl, PewterGymText_5c515
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_6123a ; 0x5c4f4
+ jr nz, .asm_5c4fe
ld hl, PewterGymText_5c51a
call PrintText
- jr .asm_d1578 ; 0x5c4fc
-.asm_6123a ; 0x5c4fe
+ jr .asm_5c504
+.asm_5c4fe
ld hl, PewterGymText_5c524
call PrintText
-.asm_d1578 ; 0x5c504
+.asm_5c504
ld hl, PewterGymText_5c51f
call PrintText
- jr .asm_07013 ; 0x5c50a
-.asm_71369 ; 0x5c50c
+ jr .asm_5c512
+.asm_5c50c
ld hl, PewterGymText_5c529
call PrintText
-.asm_07013 ; 0x5c512
+.asm_5c512
jp TextScriptEnd
PewterGymText_5c515: ; 5c515 (17:4515)
diff --git a/scripts/pewterhouse1.asm b/scripts/pewterhouse1.asm
index 05d27a14..a670f23c 100755
--- a/scripts/pewterhouse1.asm
+++ b/scripts/pewterhouse1.asm
@@ -8,7 +8,7 @@ PewterHouse1TextPointers: ; 1d5f6 (7:55f6)
PewterHouse1Text1: ; 1d5fc (7:55fc)
TX_FAR _PewterHouse1Text1
- db $08 ; asm
+ TX_ASM
ld a, NIDORAN_M
call PlayCry
call WaitForSoundToFinish
diff --git a/scripts/pewtermart.asm b/scripts/pewtermart.asm
index 8fe99d94..62831d1b 100755
--- a/scripts/pewtermart.asm
+++ b/scripts/pewtermart.asm
@@ -10,7 +10,7 @@ PewterMartTextPointers: ; 74cb6 (1d:4cb6)
dw PewterMartText3
PewterMartText2: ; 74cbc (1d:4cbc)
- db $08 ; asm
+ TX_ASM
ld hl, PewterMartText_74cc6
call PrintText
jp TextScriptEnd
@@ -20,7 +20,7 @@ PewterMartText_74cc6: ; 74cc6 (1d:4cc6)
db "@"
PewterMartText3: ; 74ccb (1d:4ccb)
- db $08 ; asm
+ TX_ASM
ld hl, PewterMartText_74cd5
call PrintText
jp TextScriptEnd
diff --git a/scripts/pewterpokecenter.asm b/scripts/pewterpokecenter.asm
index 1f3cabe0..46d4d509 100755
--- a/scripts/pewterpokecenter.asm
+++ b/scripts/pewterpokecenter.asm
@@ -16,50 +16,56 @@ PewterPokecenterText2: ; 5c596 (17:4596)
db "@"
PewterPokecenterText3: ; 5c59b (17:459b)
- db $8
+ TX_ASM
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, PewterPokecenterText5
call PrintText
ld a, $ff
call PlaySound
- ld c, $20
+ ld c, 32
call DelayFrames
- ld hl, Unknown_5c608 ; $4608
- ld de, wTrainerFacingDirection
- ld bc, $0004
+ ld hl, JigglypuffFacingDirections
+ ld de, wJigglypuffFacingDirections
+ ld bc, JigglypuffFacingDirectionsEnd - JigglypuffFacingDirections
call CopyData
- ld a, [wSpriteStateData1 + $32]
- ld hl, wTrainerFacingDirection
-.asm_5c5c3
+
+ ld a, [wSpriteStateData1 + 3 * $10 + $2]
+ ld hl, wJigglypuffFacingDirections
+.findMatchingFacingDirectionLoop
cp [hl]
inc hl
- jr nz, .asm_5c5c3 ; 0x5c5c5 $fc
+ jr nz, .findMatchingFacingDirectionLoop
dec hl
push hl
ld c, BANK(Music_JigglypuffSong)
ld a, MUSIC_JIGGLYPUFF_SONG
call PlayMusic
pop hl
-.asm_5c5d1
+.loop
ld a, [hl]
- ld [wSpriteStateData1 + $32], a
+ ld [wSpriteStateData1 + 3 * $10 + $2], a
+
+; rotate the array
push hl
- ld hl, wTrainerFacingDirection
- ld de, wTrainerEngageDistance
- ld bc, $0004
+ ld hl, wJigglypuffFacingDirections
+ ld de, wJigglypuffFacingDirections - 1
+ ld bc, JigglypuffFacingDirectionsEnd - JigglypuffFacingDirections
call CopyData
- ld a, [wTrainerEngageDistance]
- ld [wcd42], a
+ ld a, [wJigglypuffFacingDirections - 1]
+ ld [wJigglypuffFacingDirections + 3], a
pop hl
- ld c, $18
+
+ ld c, 24
call DelayFrames
- ld a, [wc026]
+
+ ld a, [wChannelSoundIDs]
ld b, a
- ld a, [wc027]
+ ld a, [wChannelSoundIDs + CH1]
or b
- jr nz, .asm_5c5d1 ; 0x5c5f6 $d9
- ld c, $30
+ jr nz, .loop
+
+ ld c, 48
call DelayFrames
call PlayDefaultMusic
jp TextScriptEnd
@@ -68,8 +74,12 @@ PewterPokecenterText5: ; 5c603 (17:4603)
TX_FAR _PewterPokecenterText5
db "@"
-Unknown_5c608: ; 5c608 (17:4608)
- db $30, $38, $34, $3c
+JigglypuffFacingDirections: ; 5c608 (17:4608)
+ db $30 | SPRITE_FACING_DOWN
+ db $30 | SPRITE_FACING_LEFT
+ db $30 | SPRITE_FACING_UP
+ db $30 | SPRITE_FACING_RIGHT
+JigglypuffFacingDirectionsEnd:
PewterPokecenterText4: ; 5c60c (17:460c)
db $f6
diff --git a/scripts/pokemontower2.asm b/scripts/pokemontower2.asm
index dc9275f2..bee2b3b2 100755
--- a/scripts/pokemontower2.asm
+++ b/scripts/pokemontower2.asm
@@ -17,38 +17,36 @@ PokemonTower2ScriptPointers: ; 60509 (18:4509)
dw PokemonTower2Script2
PokemonTower2Script0: ; 6050f (18:450f)
- ld a, [wd764]
- bit 7, a
+ CheckEvent EVENT_BEAT_POKEMON_TOWER_RIVAL
ret nz
- ld hl, CoordsData_6055e ; $455e
+ ld hl, CoordsData_6055e
call ArePlayerCoordsInArray
ret nc
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
- ld hl, wd764
- res 6, [hl]
- ld a, [wWhichTrade]
+ ResetEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
+ ld a, [wCoordIndex]
cp $1
- ld a, $8
- ld b, $0
- jr nz, .asm_60544 ; 0x60539 $9
- ld hl, wd764
- set 6, [hl]
- ld a, $2
- ld b, $c
+ ld a, PLAYER_DIR_UP
+ ld b, SPRITE_FACING_DOWN
+ jr nz, .asm_60544
+; the rival is on the left side and the player is on the right side
+ SetEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
+ ld a, PLAYER_DIR_LEFT
+ ld b, SPRITE_FACING_RIGHT
.asm_60544
- ld [wd528], a
+ ld [wPlayerMovingDirection], a
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
ld a, b
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [hJoyHeld], a
@@ -66,22 +64,20 @@ PokemonTower2Script1: ; 60563 (18:4563)
jp z, PokemonTower2Script_604fe
ld a, $f0
ld [wJoyIgnore], a
- ld hl, wd764
- set 7, [hl]
+ SetEvent EVENT_BEAT_POKEMON_TOWER_RIVAL
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld de, MovementData_605b2
- ld a, [wd764]
- bit 6, a
- jr nz, .asm_60589 ; 0x60584 $3
+ CheckEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
+ jr nz, .asm_60589
ld de, MovementData_605a9
.asm_60589
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $2
@@ -90,17 +86,33 @@ PokemonTower2Script1: ; 60563 (18:4563)
ret
MovementData_605a9: ; 605a9 (18:45a9)
- db $C0,$00,$00,$C0,$00,$00,$C0,$C0,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
MovementData_605b2: ; 605b2 (18:45b2)
- db $00,$00,$C0,$C0,$C0,$C0,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
PokemonTower2Script2: ; 605bb (18:45bb)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_POKEMONTOWER_2_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -115,37 +127,36 @@ PokemonTower2TextPointers: ; 605db (18:45db)
dw PokemonTower2Text2
PokemonTower2Text1: ; 605df (18:45df)
- db $08 ; asm
- ld a, [wd764]
- bit 7, a
- jr z, .asm_16f24 ; 0x605e5
+ TX_ASM
+ CheckEvent EVENT_BEAT_POKEMON_TOWER_RIVAL
+ jr z, .asm_16f24
ld hl, PokemonTower2Text_6063c
call PrintText
- jr .asm_41852 ; 0x605ed
-.asm_16f24 ; 0x605ef
+ jr .asm_41852
+.asm_16f24
ld hl, PokemonTower2Text_6062d
call PrintText
ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, PokemonTower2Text_60632
- ld de, PokemonTower2Text_60637 ; XXX $4637
+ ld de, PokemonTower2Text_60637
call SaveEndBattleTextPointers
- ld a, SONY2 + $c8
+ ld a, OPP_SONY2
ld [W_CUROPPONENT], a
; select which team to use during the encounter
ld a, [W_RIVALSTARTER]
cp STARTER2
- jr nz, .NotSquirtle ; 0x6060f
+ jr nz, .NotSquirtle
ld a, $4
jr .done
-.NotSquirtle ; 0x60615
+.NotSquirtle
cp STARTER3
- jr nz, .Charmander ; 0x60617
+ jr nz, .Charmander
ld a, $5
jr .done
-.Charmander ; 0x6061d
+.Charmander
ld a, $6
.done
ld [W_TRAINERNO], a
@@ -153,7 +164,7 @@ PokemonTower2Text1: ; 605df (18:45df)
ld a, $1
ld [W_POKEMONTOWER2CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
-.asm_41852 ; 0x6062a
+.asm_41852
jp TextScriptEnd
PokemonTower2Text_6062d: ; 6062d (18:462d)
diff --git a/scripts/pokemontower3.asm b/scripts/pokemontower3.asm
index 8df5bfc5..a4fbbf18 100755
--- a/scripts/pokemontower3.asm
+++ b/scripts/pokemontower3.asm
@@ -16,51 +16,51 @@ PokemonTower3TextPointers: ; 606e5 (18:46e5)
dw PokemonTower3Text1
dw PokemonTower3Text2
dw PokemonTower3Text3
- dw Predef5CText
+ dw PickUpItemText
PokemonTower3TrainerHeaders: ; 606ed (18:46ed)
PokemonTower3TrainerHeader0: ; 606ed (18:46ed)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_3_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd765 ; flag's byte
- dw PokemonTower3BattleText1 ; 0x4730 TextBeforeBattle
- dw PokemonTower3AfterBattleText1 ; 0x473a TextAfterBattle
- dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle
- dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_3_TRAINER_0
+ dw PokemonTower3BattleText1 ; TextBeforeBattle
+ dw PokemonTower3AfterBattleText1 ; TextAfterBattle
+ dw PokemonTower3EndBattleText1 ; TextEndBattle
+ dw PokemonTower3EndBattleText1 ; TextEndBattle
PokemonTower3TrainerHeader1: ; 606f9 (18:46f9)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_3_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd765 ; flag's byte
- dw PokemonTower3BattleText2 ; 0x473f TextBeforeBattle
- dw PokemonTower3AfterBattleText2 ; 0x4749 TextAfterBattle
- dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle
- dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_3_TRAINER_1
+ dw PokemonTower3BattleText2 ; TextBeforeBattle
+ dw PokemonTower3AfterBattleText2 ; TextAfterBattle
+ dw PokemonTower3EndBattleText2 ; TextEndBattle
+ dw PokemonTower3EndBattleText2 ; TextEndBattle
PokemonTower3TrainerHeader2: ; 60705 (18:4705)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_3_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd765 ; flag's byte
- dw PokemonTower3BattleText3 ; 0x474e TextBeforeBattle
- dw PokemonTower3AfterBattleText3 ; 0x4758 TextAfterBattle
- dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
- dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_3_TRAINER_2
+ dw PokemonTower3BattleText3 ; TextBeforeBattle
+ dw PokemonTower3AfterBattleText3 ; TextAfterBattle
+ dw PokemonTower3EndBattleText3 ; TextEndBattle
+ dw PokemonTower3EndBattleText3 ; TextEndBattle
db $ff
PokemonTower3Text1: ; 60712 (18:4712)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonTower3Text2: ; 6071c (18:471c)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower3TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
PokemonTower3Text3: ; 60726 (18:4726)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower3TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/pokemontower4.asm b/scripts/pokemontower4.asm
index 760bb604..2638bdc2 100755
--- a/scripts/pokemontower4.asm
+++ b/scripts/pokemontower4.asm
@@ -16,54 +16,54 @@ PokemonTower4TextPointers: ; 6080f (18:480f)
dw PokemonTower4Text1
dw PokemonTower4Text2
dw PokemonTower4Text3
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
PokemonTower4TrainerHeaders: ; 6081b (18:481b)
PokemonTower4TrainerHeader0: ; 6081b (18:481b)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_4_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd766 ; flag's byte
- dw PokemonTower4BattleText1 ; 0x485e TextBeforeBattle
- dw PokemonTower4AfterBattleText1 ; 0x4868 TextAfterBattle
- dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle
- dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_4_TRAINER_0
+ dw PokemonTower4BattleText1 ; TextBeforeBattle
+ dw PokemonTower4AfterBattleText1 ; TextAfterBattle
+ dw PokemonTower4EndBattleText1 ; TextEndBattle
+ dw PokemonTower4EndBattleText1 ; TextEndBattle
PokemonTower4TrainerHeader1: ; 60827 (18:4827)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_4_TRAINER_1
db ($2 << 4) ; trainer's view range
- dw wd766 ; flag's byte
- dw PokemonTower4BattleText2 ; 0x486d TextBeforeBattle
- dw PokemonTower4AfterBattleText2 ; 0x4877 TextAfterBattle
- dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle
- dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_4_TRAINER_1
+ dw PokemonTower4BattleText2 ; TextBeforeBattle
+ dw PokemonTower4AfterBattleText2 ; TextAfterBattle
+ dw PokemonTower4EndBattleText2 ; TextEndBattle
+ dw PokemonTower4EndBattleText2 ; TextEndBattle
PokemonTower4TrainerHeader2: ; 60833 (18:4833)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_4_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd766 ; flag's byte
- dw PokemonTower4BattleText3 ; 0x487c TextBeforeBattle
- dw PokemonTower4AfterBattleText3 ; 0x4886 TextAfterBattle
- dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
- dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_4_TRAINER_2
+ dw PokemonTower4BattleText3 ; TextBeforeBattle
+ dw PokemonTower4AfterBattleText3 ; TextAfterBattle
+ dw PokemonTower4EndBattleText3 ; TextEndBattle
+ dw PokemonTower4EndBattleText3 ; TextEndBattle
db $ff
PokemonTower4Text1: ; 60840 (18:4840)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonTower4Text2: ; 6084a (18:484a)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower4TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
PokemonTower4Text3: ; 60854 (18:4854)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower4TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/pokemontower5.asm b/scripts/pokemontower5.asm
index b70f9e28..c4e9eed9 100755
--- a/scripts/pokemontower5.asm
+++ b/scripts/pokemontower5.asm
@@ -13,18 +13,15 @@ PokemonTower5ScriptPointers: ; 60945 (18:4945)
dw EndTrainerBattle
PokemonTower5Script0: ; 6094b (18:494b)
- ld hl, CoordsData_60992 ; $4992
+ ld hl, CoordsData_60992
call ArePlayerCoordsInArray
jr c, .asm_60960
ld hl, wd72e
res 4, [hl]
- ld hl, wd767
- res 7, [hl]
+ ResetEvent EVENT_IN_PURIFIED_ZONE
jp CheckFightingMapTrainers
.asm_60960
- ld hl, wd767
- bit 7, [hl]
- set 7, [hl]
+ CheckAndSetEvent EVENT_IN_PURIFIED_ZONE
ret nz
xor a
ld [hJoyHeld], a
@@ -38,7 +35,7 @@ PokemonTower5Script0: ; 6094b (18:494b)
call Delay3
call GBFadeInFromWhite
ld a, $7
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -57,45 +54,45 @@ PokemonTower5TextPointers: ; 6099b (18:499b)
dw PokemonTower5Text3
dw PokemonTower5Text4
dw PokemonTower5Text5
- dw Predef5CText
+ dw PickUpItemText
dw PokemonTower5Text7
PokemonTower5TrainerHeaders: ; 609a9 (18:49a9)
PokemonTower5TrainerHeader0: ; 609a9 (18:49a9)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_5_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd767 ; flag's byte
- dw PokemonTower5BattleText1 ; 0x49e9 TextBeforeBattle
- dw PokemonTower5AfterBattleText1 ; 0x49f3 TextAfterBattle
- dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle
- dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_5_TRAINER_0
+ dw PokemonTower5BattleText1 ; TextBeforeBattle
+ dw PokemonTower5AfterBattleText1 ; TextAfterBattle
+ dw PokemonTower5EndBattleText1 ; TextEndBattle
+ dw PokemonTower5EndBattleText1 ; TextEndBattle
PokemonTower5TrainerHeader1: ; 609b5 (18:49b5)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_5_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd767 ; flag's byte
- dw PokemonTower5BattleText2 ; 0x4a02 TextBeforeBattle
- dw PokemonTower5AfterBattleText2 ; 0x4a0c TextAfterBattle
- dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle
- dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_5_TRAINER_1
+ dw PokemonTower5BattleText2 ; TextBeforeBattle
+ dw PokemonTower5AfterBattleText2 ; TextAfterBattle
+ dw PokemonTower5EndBattleText2 ; TextEndBattle
+ dw PokemonTower5EndBattleText2 ; TextEndBattle
PokemonTower5TrainerHeader2: ; 609c1 (18:49c1)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_5_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd767 ; flag's byte
- dw PokemonTower5BattleText3 ; 0x4a1b TextBeforeBattle
- dw PokemonTower5AfterBattleText3 ; 0x4a25 TextAfterBattle
- dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle
- dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_5_TRAINER_2
+ dw PokemonTower5BattleText3 ; TextBeforeBattle
+ dw PokemonTower5AfterBattleText3 ; TextAfterBattle
+ dw PokemonTower5EndBattleText3 ; TextEndBattle
+ dw PokemonTower5EndBattleText3 ; TextEndBattle
PokemonTower5TrainerHeader3: ; 609cd (18:49cd)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_5_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd767 ; flag's byte
- dw PokemonTower5BattleText4 ; 0x4a34 TextBeforeBattle
- dw PokemonTower5AfterBattleText4 ; 0x4a3e TextAfterBattle
- dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
- dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_5_TRAINER_3
+ dw PokemonTower5BattleText4 ; TextBeforeBattle
+ dw PokemonTower5AfterBattleText4 ; TextAfterBattle
+ dw PokemonTower5EndBattleText4 ; TextEndBattle
+ dw PokemonTower5EndBattleText4 ; TextEndBattle
db $ff
@@ -104,7 +101,7 @@ PokemonTower5Text1: ; 609da (18:49da)
db "@"
PokemonTower5Text2: ; 609df (18:49df)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower5TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -122,7 +119,7 @@ PokemonTower5AfterBattleText1: ; 609f3 (18:49f3)
db "@"
PokemonTower5Text3: ; 609f8 (18:49f8)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower5TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -140,7 +137,7 @@ PokemonTower5AfterBattleText2: ; 60a0c (18:4a0c)
db "@"
PokemonTower5Text4: ; 60a11 (18:4a11)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower5TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -158,8 +155,8 @@ PokemonTower5AfterBattleText3: ; 60a25 (18:4a25)
db "@"
PokemonTower5Text5: ; 60a2a (18:4a2a)
- db $08 ; asm
- ld hl, PokemonTower5TrainerHeader3 ; $49cd
+ TX_ASM
+ ld hl, PokemonTower5TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/pokemontower6.asm b/scripts/pokemontower6.asm
index 58968d17..37ca1b33 100755
--- a/scripts/pokemontower6.asm
+++ b/scripts/pokemontower6.asm
@@ -22,21 +22,20 @@ PokemonTower6ScriptPointers: ; 60b0d (18:4b0d)
dw PokemonTower6Script4
PokemonTower6Script0: ; 60b17 (18:4b17)
- ld a, [wd768]
- bit 7, a
+ CheckEvent EVENT_BEAT_GHOST_MAROWAK
jp nz, CheckFightingMapTrainers
- ld hl, CoordsData_60b45 ; $4b45
+ ld hl, CoordsData_60b45
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
ld [hJoyHeld], a
ld a, $6
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, MAROWAK
- ld [W_CUROPPONENT], a ; wd059
+ ld [W_CUROPPONENT], a
ld a, 30
- ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
+ ld [W_CURENEMYLVL], a
ld a, $4
ld [W_POKEMONTOWER6CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -46,7 +45,7 @@ CoordsData_60b45: ; 60b45 (18:4b45)
db $10,$0A,$FF
PokemonTower6Script4: ; 60b48 (18:4b48)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, PokemonTower6Script_60b02
ld a, $ff
@@ -60,10 +59,9 @@ PokemonTower6Script4: ; 60b48 (18:4b48)
ld a, [wBattleResult]
and a
jr nz, .asm_60b82
- ld hl, wd768
- set 7, [hl]
+ SetEvent EVENT_BEAT_GHOST_MAROWAK
ld a, $7
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -100,67 +98,67 @@ PokemonTower6TextPointers: ; 60bb1 (18:4bb1)
dw PokemonTower6Text1
dw PokemonTower6Text2
dw PokemonTower6Text3
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw PokemonTower6Text6
dw PokemonTower6Text7
PokemonTower6TrainerHeaders: ; 60bbf (18:4bbf)
PokemonTower6TrainerHeader0: ; 60bbf (18:4bbf)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_6_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd768 ; flag's byte
- dw PokemonTower6BattleText1 ; 0x4c29 TextBeforeBattle
- dw PokemonTower6AfterBattleText1 ; 0x4c33 TextAfterBattle
- dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle
- dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_6_TRAINER_0
+ dw PokemonTower6BattleText1 ; TextBeforeBattle
+ dw PokemonTower6AfterBattleText1 ; TextAfterBattle
+ dw PokemonTower6EndBattleText1 ; TextEndBattle
+ dw PokemonTower6EndBattleText1 ; TextEndBattle
PokemonTower6TrainerHeader1: ; 60bcb (18:4bcb)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_6_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd768 ; flag's byte
- dw PokemonTower6BattleText2 ; 0x4c38 TextBeforeBattle
- dw PokemonTower6AfterBattleText2 ; 0x4c42 TextAfterBattle
- dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle
- dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_6_TRAINER_1
+ dw PokemonTower6BattleText2 ; TextBeforeBattle
+ dw PokemonTower6AfterBattleText2 ; TextAfterBattle
+ dw PokemonTower6EndBattleText2 ; TextEndBattle
+ dw PokemonTower6EndBattleText2 ; TextEndBattle
PokemonTower6TrainerHeader2: ; 60bd7 (18:4bd7)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_6_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd768 ; flag's byte
- dw PokemonTower6BattleText3 ; 0x4c47 TextBeforeBattle
- dw PokemonTower6AfterBattleText3 ; 0x4c51 TextAfterBattle
- dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
- dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_6_TRAINER_2
+ dw PokemonTower6BattleText3 ; TextBeforeBattle
+ dw PokemonTower6AfterBattleText3 ; TextAfterBattle
+ dw PokemonTower6EndBattleText3 ; TextEndBattle
+ dw PokemonTower6EndBattleText3 ; TextEndBattle
db $ff
PokemonTower6Text1: ; 60be4 (18:4be4)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower6TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonTower6Text2: ; 60bee (18:4bee)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower6TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
PokemonTower6Text3: ; 60bf8 (18:4bf8)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower6TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
PokemonTower6Text7: ; 60c02 (18:4c02)
- db $8
+ TX_ASM
ld hl, PokemonTower2Text_60c1f
call PrintText
ld a, MAROWAK
call PlayCry
call WaitForSoundToFinish
- ld c, $1e
+ ld c, 30
call DelayFrames
ld hl, PokemonTower2Text_60c24
call PrintText
diff --git a/scripts/pokemontower7.asm b/scripts/pokemontower7.asm
index ab42121d..a4635aa3 100755
--- a/scripts/pokemontower7.asm
+++ b/scripts/pokemontower7.asm
@@ -24,14 +24,14 @@ PokemonTower7ScriptPointers:
PokemonTower7Script2: ; 60d23 (18:4d23)
ld hl, wFlags_0xcd60
res 0, [hl]
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, PokemonTower7Script_60d18
call EndTrainerBattle
ld a, $f0
ld [wJoyIgnore], a
ld a, [wSpriteIndex]
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call PokemonTower7Script_60db6
ld a, $3
@@ -51,13 +51,13 @@ PokemonTower7Script3: ; 60d56 (18:4d56)
cp b ; search for sprite ID in missing objects list
ld a, [hli]
jr nz, .missableObjectsListLoop
- ld [wcc4d], a ; remove missable object
+ ld [wMissableObjectIndex], a ; remove missable object
predef HideObject
xor a
ld [wJoyIgnore], a
ld [wSpriteIndex], a
ld [wTrainerHeaderFlagBit], a
- ld [wda38], a
+ ld [wUnusedDA38], a
ld a, $0
ld [W_POKEMONTOWER7CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
@@ -67,12 +67,12 @@ PokemonTower7Script4: ; 60d86 (18:4d86)
ld a, $ff
ld [wJoyIgnore], a
ld a, HS_POKEMONTOWER_7_MR_FUJI
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, $4
+ ld a, SPRITE_FACING_UP
ld [wSpriteStateData1 + 9], a
ld a, LAVENDER_HOUSE_1
- ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+ ld [hWarpDestinationMap], a
ld a, $1
ld [wDestinationWarpID], a
ld a, LAVENDER_TOWN
@@ -85,16 +85,16 @@ PokemonTower7Script4: ; 60d86 (18:4d86)
ret
PokemonTower7Script_60db6: ; 60db6 (18:4db6)
- ld hl, CoordsData_60de3 ; $4de3
+ ld hl, CoordsData_60de3
ld a, [wSpriteIndex]
dec a
swap a
ld d, $0
ld e, a
add hl, de
- ld a, [W_YCOORD] ; wd361
+ ld a, [W_YCOORD]
ld b, a
- ld a, [W_XCOORD] ; wd362
+ ld a, [W_XCOORD]
ld c, a
.asm_60dcb
ld a, [hli]
@@ -107,7 +107,7 @@ PokemonTower7Script_60db6: ; 60db6 (18:4db6)
ld d, [hl]
ld e, a
ld a, [wSpriteIndex]
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
jp MoveSprite
.asm_60dde
inc hl
@@ -143,22 +143,60 @@ CoordsData_60de3: ; 60de3 (18:4de3)
dw MovementData_60e22
MovementData_60e13: ; 60e13
- db $C0,$00,$00,$00,$00,$00,$80,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_LEFT
+ db $FF
MovementData_60e1b: ; 60e1b
- db $00,$C0,$00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
MovementData_60e22: ; 60e22
- db $00,$00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
MovementData_60e28: ; 60e28
- db $80,$00,$00,$00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_LEFT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
MovementData_60e30: ; 60e30
- db $00,$00,$00,$80,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_LEFT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
MovementData_60e37: ; 60e37
- db $C0,$00,$00,$00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
PokemonTower7TextPointers: ; 60e3f (18:4e3f)
dw PokemonTower7Text1
@@ -168,68 +206,66 @@ PokemonTower7TextPointers: ; 60e3f (18:4e3f)
PokemonTower7TrainerHeaders: ; 60e47 (18:4e47)
PokemonTower7TrainerHeader0: ; 60e47 (18:4e47)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_7_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd769 ; flag's byte
- dw PokemonTower7BattleText1 ; 0x4ec9 TextBeforeBattle
- dw PokemonTower7AfterBattleText1 ; 0x4ed3 TextAfterBattle
- dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle
- dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_7_TRAINER_0
+ dw PokemonTower7BattleText1 ; TextBeforeBattle
+ dw PokemonTower7AfterBattleText1 ; TextAfterBattle
+ dw PokemonTower7EndBattleText1 ; TextEndBattle
+ dw PokemonTower7EndBattleText1 ; TextEndBattle
PokemonTower7TrainerHeader1: ; 60e53 (18:4e53)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_7_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd769 ; flag's byte
- dw PokemonTower7BattleText2 ; 0x4ed8 TextBeforeBattle
- dw PokemonTower7AfterBattleText2 ; 0x4ee2 TextAfterBattle
- dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle
- dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_7_TRAINER_1
+ dw PokemonTower7BattleText2 ; TextBeforeBattle
+ dw PokemonTower7AfterBattleText2 ; TextAfterBattle
+ dw PokemonTower7EndBattleText2 ; TextEndBattle
+ dw PokemonTower7EndBattleText2 ; TextEndBattle
PokemonTower7TrainerHeader2: ; 60e5f (18:4e5f)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POKEMONTOWER_7_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd769 ; flag's byte
- dw PokemonTower7BattleText3 ; 0x4ee7 TextBeforeBattle
- dw PokemonTower7AfterBattleText3 ; 0x4ef1 TextAfterBattle
- dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
- dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_7_TRAINER_2
+ dw PokemonTower7BattleText3 ; TextBeforeBattle
+ dw PokemonTower7AfterBattleText3 ; TextAfterBattle
+ dw PokemonTower7EndBattleText3 ; TextEndBattle
+ dw PokemonTower7EndBattleText3 ; TextEndBattle
db $ff
PokemonTower7Text1: ; 60e6c (18:4e6c)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower7TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonTower7Text2: ; 60e76 (18:4e76)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower7TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
PokemonTower7Text3: ; 60e80 (18:4e80)
- db $08 ; asm
+ TX_ASM
ld hl, PokemonTower7TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
PokemonTower7FujiText:
- db 8 ; asm
+ TX_ASM
ld hl, TowerRescueFujiText
call PrintText
- ld hl, wd7e0
- set 7, [hl]
- ld hl, wd769
- set 7, [hl]
+ SetEvent EVENT_RESCUED_MR_FUJI
+ SetEvent EVENT_RESCUED_MR_FUJI_2
ld a, HS_LAVENDER_HOUSE_1_MR_FUJI
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_SAFFRON_CITY_E
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_SAFFRON_CITY_F
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $4
ld [W_POKEMONTOWER7CURSCRIPT], a
diff --git a/scripts/powerplant.asm b/scripts/powerplant.asm
index ec4f89b3..48f291e1 100755
--- a/scripts/powerplant.asm
+++ b/scripts/powerplant.asm
@@ -22,89 +22,89 @@ PowerPlantTextPointers: ; 1e2df (7:62df)
dw PowerPlantText7
dw PowerPlantText8
dw PowerPlantText9
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
PowerPlantTrainerHeaders: ; 1e2fb (7:62fb)
PowerPlantTrainerHeader0: ; 1e2fb (7:62fb)
- db 1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_0
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_0
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
dw VoltorbBattleText ; TextEndBattle
PowerPlantTrainerHeader1: ; 1e307 (7:6307)
- db 2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_1
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_1
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
dw VoltorbBattleText ; TextEndBattle
PowerPlantTrainerHeader2: ; 1e313 (7:6313)
- db 3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_2
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_2
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
dw VoltorbBattleText ; TextEndBattle
PowerPlantTrainerHeader3: ; 1e31f (7:631f)
- db 4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_3
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_3
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
dw VoltorbBattleText ; TextEndBattle
PowerPlantTrainerHeader4: ; 1e32b (7:632b)
- db 5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_4
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_4
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
dw VoltorbBattleText ; TextEndBattle
PowerPlantTrainerHeader5: ; 1e337 (7:6337)
- db 6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_5
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_5
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
dw VoltorbBattleText ; TextEndBattle
PowerPlantTrainerHeader6: ; 1e343 (7:6343)
- db 7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_6
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_6
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
dw VoltorbBattleText ; TextEndBattle
PowerPlantTrainerHeader7: ; 1e34f (7:634f)
- db 8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_7, 1
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_7, 1
dw VoltorbBattleText ; TextBeforeBattle
dw VoltorbBattleText ; TextAfterBattle
dw VoltorbBattleText ; TextEndBattle
dw VoltorbBattleText ; TextEndBattle
PowerPlantTrainerHeader8: ; 1e35b (7:635b)
- db 9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_POWER_PLANT_TRAINER_8, 1
db 0 ; view range
- dw wd7d3 ; flag's byte
+ dwEventFlagAddress EVENT_BEAT_POWER_PLANT_TRAINER_8, 1
dw ZapdosBattleText ; TextBeforeBattle
dw ZapdosBattleText ; TextAfterBattle
dw ZapdosBattleText ; TextEndBattle
@@ -112,56 +112,56 @@ PowerPlantTrainerHeader8: ; 1e35b (7:635b)
db $ff
-asm_234cc: ; 1e368 (7:6368)
+InitVoltorbBattle: ; 1e368 (7:6368)
call TalkToTrainer
ld a, [W_CURMAPSCRIPT]
ld [W_POWERPLANTCURSCRIPT], a
jp TextScriptEnd
PowerPlantText1: ; 1e374 (7:6374)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader0 ; $62fb
- jr asm_234cc ; 0x1e378 $ee
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader0
+ jr InitVoltorbBattle
PowerPlantText2: ; 1e37a (7:637a)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader1 ; $6307
- jr asm_234cc ; 0x1e37e $e8
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader1
+ jr InitVoltorbBattle
PowerPlantText3: ; 1e380 (7:6380)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader2 ; $6313
- jr asm_234cc ; 0x1e384 $e2
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader2
+ jr InitVoltorbBattle
PowerPlantText4: ; 1e386 (7:6386)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader3 ; $631f
- jr asm_234cc ; 0x1e38a $dc
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader3
+ jr InitVoltorbBattle
PowerPlantText5: ; 1e38c (7:638c)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader4 ; $632b
- jr asm_234cc ; 0x1e390 $d6
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader4
+ jr InitVoltorbBattle
PowerPlantText6: ; 1e392 (7:6392)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader5 ; $6337
- jr asm_234cc ; 0x1e396 $d0
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader5
+ jr InitVoltorbBattle
PowerPlantText7: ; 1e398 (7:6398)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader6 ; $6343
- jr asm_234cc ; 0x1e39c $ca
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader6
+ jr InitVoltorbBattle
PowerPlantText8: ; 1e39e (7:639e)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader7 ; $634f
- jr asm_234cc ; 0x1e3a2 $c4
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader7
+ jr InitVoltorbBattle
PowerPlantText9: ; 1e3a4 (7:63a4)
- db $8 ; asm
- ld hl, PowerPlantTrainerHeader8 ; $635b
- jr asm_234cc ; 0x1e3a8 $be
+ TX_ASM
+ ld hl, PowerPlantTrainerHeader8
+ jr InitVoltorbBattle
VoltorbBattleText: ; 1e3aa (7:63aa)
TX_FAR _VoltorbBattleText
@@ -169,7 +169,7 @@ VoltorbBattleText: ; 1e3aa (7:63aa)
ZapdosBattleText: ; 1e3af (7:63af)
TX_FAR _ZapdosBattleText
- db $8
+ TX_ASM
ld a, ZAPDOS
call PlayCry
call WaitForSoundToFinish
diff --git a/scripts/redshouse1f.asm b/scripts/redshouse1f.asm
index 7b3f1f87..f9c7193f 100755
--- a/scripts/redshouse1f.asm
+++ b/scripts/redshouse1f.asm
@@ -5,8 +5,8 @@ RedsHouse1FTextPointers: ; 4816b (12:416b)
dw RedsHouse1FText1
dw RedsHouse1FText2
-RedsHouse1FText1: ; 4816f (12:416f) ; 416F Mom
- db 8
+RedsHouse1FText1: ; 4816f (12:416f) Mom
+ TX_ASM
ld a, [wd72e]
bit 3, a
jr nz, .heal ; if player has received a Pokémon from Oak, heal team
@@ -29,14 +29,14 @@ MomHealPokemon: ; 4818a (12:418a)
call ReloadMapData
predef HealParty
ld a, MUSIC_PKMN_HEALED
- ld [wc0ee], a
- call PlaySound ; play sound?
+ ld [wNewSoundID], a
+ call PlaySound
.next
- ld a, [wc026]
+ ld a, [wChannelSoundIDs]
cp MUSIC_PKMN_HEALED
jr z, .next
- ld a, [wd35b]
- ld [wc0ee], a
+ ld a, [wMapMusicSoundID]
+ ld [wNewSoundID], a
call PlaySound
call GBFadeInFromWhite
ld hl, MomHealText2
@@ -50,13 +50,13 @@ MomHealText2: ; 481c1 (12:41c1)
db "@"
RedsHouse1FText2: ; 0x481c6 TV
- db 8
+ TX_ASM
ld a,[wSpriteStateData1 + 9]
- cp 4
+ cp SPRITE_FACING_UP
ld hl,TVWrongSideText
- jr nz,.done ; if player is not facing up
+ jr nz,.notUp
ld hl,StandByMeText
-.done
+.notUp
call PrintText
jp TextScriptEnd
diff --git a/scripts/redshouse2f.asm b/scripts/redshouse2f.asm
index 8fcdc66e..2335e6d1 100755
--- a/scripts/redshouse2f.asm
+++ b/scripts/redshouse2f.asm
@@ -11,8 +11,8 @@ RedsHouse2FScriptPointers: ; 5c0bc (17:40bc)
RedsHouse2FScript0: ; 5c0c0 (17:40c0)
xor a
ld [hJoyHeld],a
- ld a,8
- ld [wd528],a
+ ld a,PLAYER_DIR_UP
+ ld [wPlayerMovingDirection],a
ld a,1
ld [W_REDSHOUSE2CURSCRIPT],a
ret
diff --git a/scripts/rockethideout1.asm b/scripts/rockethideout1.asm
index 499f77ef..82561577 100755
--- a/scripts/rockethideout1.asm
+++ b/scripts/rockethideout1.asm
@@ -13,23 +13,21 @@ RocketHideout1Script_44be0: ; 44be0 (11:4be0)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd815]
- bit 7, a
+ CheckEvent EVENT_677
jr nz, .asm_44c01
- bit 5, a
+ CheckEventReuseA EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_5
jr nz, .asm_44bf7
ld a, $54
jr .asm_44c03
.asm_44bf7
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
- ld hl, wd815
- bit 7, [hl]
+ CheckEventHL EVENT_677
.asm_44c01
ld a, $e
.asm_44c03
- ld [wd09f], a
- ld bc, $080c
+ ld [wNewTileBlockID], a
+ lb bc, 8, 12
predef_jump ReplaceTileBlock
RocketHideout1ScriptPointers: ; 44c0e (11:4c0e)
@@ -43,92 +41,91 @@ RocketHideout1TextPointers: ; 44c14 (11:4c14)
dw RocketHideout1Text3
dw RocketHideout1Text4
dw RocketHideout1Text5
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
RocketHideout1TrainerHeaders: ; 44c22 (11:4c22)
RocketHideout1TrainerHeader0: ; 44c22 (11:4c22)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd815 ; flag's byte
- dw RocketHideout1BattleText2 ; 0x4ca1 TextBeforeBattle
- dw RocketHideout1AfterBattleTxt2 ; 0x4cab TextAfterBattle
- dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle
- dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0
+ dw RocketHideout1BattleText2 ; TextBeforeBattle
+ dw RocketHideout1AfterBattleTxt2 ; TextAfterBattle
+ dw RocketHideout1EndBattleText2 ; TextEndBattle
+ dw RocketHideout1EndBattleText2 ; TextEndBattle
RocketHideout1TrainerHeader2: ; 44c2e (11:4c2e)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd815 ; flag's byte
- dw RocketHideout1BattleText3 ; 0x4cb0 TextBeforeBattle
- dw RocketHideout1AfterBattleTxt3 ; 0x4cba TextAfterBattle
- dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle
- dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2
+ dw RocketHideout1BattleText3 ; TextBeforeBattle
+ dw RocketHideout1AfterBattleTxt3 ; TextAfterBattle
+ dw RocketHideout1EndBattleText3 ; TextEndBattle
+ dw RocketHideout1EndBattleText3 ; TextEndBattle
RocketHideout1TrainerHeader3: ; 44c3a (11:4c3a)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd815 ; flag's byte
- dw RocketHideout1BattleText4 ; 0x4cbf TextBeforeBattle
- dw RocketHideout1AfterBattleTxt4 ; 0x4cc9 TextAfterBattle
- dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle
- dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3
+ dw RocketHideout1BattleText4 ; TextBeforeBattle
+ dw RocketHideout1AfterBattleTxt4 ; TextAfterBattle
+ dw RocketHideout1EndBattleText4 ; TextEndBattle
+ dw RocketHideout1EndBattleText4 ; TextEndBattle
RocketHideout1TrainerHeader4: ; 44c46 (11:4c46)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd815 ; flag's byte
- dw RocketHideout1BattleText5 ; 0x4cce TextBeforeBattle
- dw RocketHideout1AfterBattleTxt5 ; 0x4cd8 TextAfterBattle
- dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle
- dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4
+ dw RocketHideout1BattleText5 ; TextBeforeBattle
+ dw RocketHideout1AfterBattleTxt5 ; TextAfterBattle
+ dw RocketHideout1EndBattleText5 ; TextEndBattle
+ dw RocketHideout1EndBattleText5 ; TextEndBattle
RocketHideout1TrainerHeader5: ; 44c52 (11:4c52)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd815 ; flag's byte
- dw RocketHideout1BattleText6 ; 0x4cdd TextBeforeBattle
- dw RocketHideout1AfterBattleTxt6 ; 0x4ce2 TextAfterBattle
- dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
- dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_5
+ dw RocketHideout1BattleText6 ; TextBeforeBattle
+ dw RocketHideout1AfterBattleTxt6 ; TextAfterBattle
+ dw RocketHideout1EndBattleText6 ; TextEndBattle
+ dw RocketHideout1EndBattleText6 ; TextEndBattle
db $ff
RocketHideout1Text1: ; 44c5f (11:4c5f)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout1TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
RocketHideout1Text2: ; 44c69 (11:4c69)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout1TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
RocketHideout1Text3: ; 44c73 (11:4c73)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout1TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
RocketHideout1Text4: ; 44c7d (11:4c7d)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout1TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
RocketHideout1Text5: ; 44c87 (11:4c87)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout1TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
RocketHideout1EndBattleText6: ; 44c91 (11:4c91)
TX_FAR _RocketHideout1EndBattleText6
- db $8
- ld hl, wd815
- set 5, [hl]
+ TX_ASM
+ SetEvent EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_5
ld hl, RocketHideout1Text_44c9f
ret
diff --git a/scripts/rockethideout2.asm b/scripts/rockethideout2.asm
index 99754658..f269faef 100755
--- a/scripts/rockethideout2.asm
+++ b/scripts/rockethideout2.asm
@@ -25,7 +25,7 @@ RocketHideout2Script0: ; 44e42 (11:4e42)
ld hl, wd736
set 7, [hl]
call StartSimulatingJoypadStates
- ld a, (SFX_02_52 - SFX_Headers_02) / 3
+ ld a, SFX_ARROW_TILES
call PlaySound
ld a, $ff
ld [wJoyIgnore], a
@@ -126,183 +126,179 @@ RocketHideout2ArrowTilePlayerMovement: ; 44e6d (11:4e6d)
db $FF
;format: direction, count
-;right: $10
-;left: $20
-;up: $40
-;down: $80
;each list is read starting from the $FF and working backwards
RocketHideout2ArrowMovement1: ; 44f1a (11:4f1a)
- db $20,$02
+ db D_LEFT,$02
db $FF
RocketHideout2ArrowMovement2: ; 44f1d (11:4f1d)
- db $10,$04
+ db D_RIGHT,$04
db $FF
RocketHideout2ArrowMovement3: ; 44f20 (11:4f20)
- db $40,$04
- db $10,$04
+ db D_UP,$04
+ db D_RIGHT,$04
db $FF
RocketHideout2ArrowMovement4: ; 44f25 (11:4f25)
- db $40,$04
- db $10,$04
- db $40,$01
+ db D_UP,$04
+ db D_RIGHT,$04
+ db D_UP,$01
db $FF
RocketHideout2ArrowMovement5: ; 44f2c (11:4f2c)
- db $20,$02
- db $40,$03
+ db D_LEFT,$02
+ db D_UP,$03
db $FF
RocketHideout2ArrowMovement6: ; 44f31 (11:4f31)
- db $80,$02
- db $10,$04
+ db D_DOWN,$02
+ db D_RIGHT,$04
db $FF
RocketHideout2ArrowMovement7: ; 44f36 (11:4f36)
- db $40,$02
+ db D_UP,$02
db $FF
RocketHideout2ArrowMovement8: ; 44f39 (11:4f39)
- db $40,$04
+ db D_UP,$04
db $FF
RocketHideout2ArrowMovement9: ; 44f3c (11:4f3c)
- db $20,$06
+ db D_LEFT,$06
db $FF
RocketHideout2ArrowMovement10: ; 44f3f (11:4f3f)
- db $40,$01
+ db D_UP,$01
db $FF
RocketHideout2ArrowMovement11: ; 44f42 (11:4f42)
- db $20,$06
- db $40,$04
+ db D_LEFT,$06
+ db D_UP,$04
db $FF
RocketHideout2ArrowMovement12: ; 44f47 (11:4f47)
- db $80,$02
+ db D_DOWN,$02
db $FF
RocketHideout2ArrowMovement13: ; 44f4a (11:4f4a)
- db $20,$08
+ db D_LEFT,$08
db $FF
RocketHideout2ArrowMovement14: ; 44f4d (11:4f4d)
- db $20,$08
- db $40,$01
+ db D_LEFT,$08
+ db D_UP,$01
db $FF
RocketHideout2ArrowMovement15: ; 44f52 (11:4f52)
- db $20,$08
- db $40,$06
+ db D_LEFT,$08
+ db D_UP,$06
db $FF
RocketHideout2ArrowMovement16: ; 44f57 (11:4f57)
- db $40,$02
- db $10,$04
+ db D_UP,$02
+ db D_RIGHT,$04
db $FF
RocketHideout2ArrowMovement17: ; 44f5c (11:4f5c)
- db $40,$02
- db $10,$04
- db $40,$02
+ db D_UP,$02
+ db D_RIGHT,$04
+ db D_UP,$02
db $FF
RocketHideout2ArrowMovement18: ; 44f63 (11:4f63)
- db $80,$02
- db $10,$04
- db $80,$02
+ db D_DOWN,$02
+ db D_RIGHT,$04
+ db D_DOWN,$02
db $FF
RocketHideout2ArrowMovement19: ; 44f6a (11:4f6a)
- db $80,$02
- db $10,$04
+ db D_DOWN,$02
+ db D_RIGHT,$04
db $FF
RocketHideout2ArrowMovement20: ; 44f6f (11:4f6f)
- db $20,$0A
+ db D_LEFT,$0A
db $FF
RocketHideout2ArrowMovement21: ; 44f72 (11:4f72)
- db $20,$0A
- db $40,$02
+ db D_LEFT,$0A
+ db D_UP,$02
db $FF
RocketHideout2ArrowMovement22: ; 44f77 (11:4f77)
- db $20,$0A
- db $40,$04
+ db D_LEFT,$0A
+ db D_UP,$04
db $FF
RocketHideout2ArrowMovement23: ; 44f7c (11:4f7c)
- db $40,$02
- db $10,$02
+ db D_UP,$02
+ db D_RIGHT,$02
db $FF
RocketHideout2ArrowMovement24: ; 44f81 (11:4f81)
- db $10,$01
- db $80,$02
+ db D_RIGHT,$01
+ db D_DOWN,$02
db $FF
RocketHideout2ArrowMovement25: ; 44f86 (11:4f86)
- db $10,$01
+ db D_RIGHT,$01
db $FF
RocketHideout2ArrowMovement26: ; 44f89 (11:4f89)
- db $80,$02
- db $10,$02
+ db D_DOWN,$02
+ db D_RIGHT,$02
db $FF
RocketHideout2ArrowMovement27: ; 44f8e (11:4f8e)
- db $80,$02
- db $20,$02
+ db D_DOWN,$02
+ db D_LEFT,$02
db $FF
RocketHideout2ArrowMovement28: ; 44f93 (11:4f93)
- db $40,$02
- db $10,$04
- db $40,$02
- db $20,$03
+ db D_UP,$02
+ db D_RIGHT,$04
+ db D_UP,$02
+ db D_LEFT,$03
db $FF
RocketHideout2ArrowMovement29: ; 44f9c (11:4f9c)
- db $80,$02
- db $20,$04
+ db D_DOWN,$02
+ db D_LEFT,$04
db $FF
RocketHideout2ArrowMovement30: ; 44fa1 (11:4fa1)
- db $20,$06
- db $40,$04
- db $20,$05
+ db D_LEFT,$06
+ db D_UP,$04
+ db D_LEFT,$05
db $FF
RocketHideout2ArrowMovement31: ; 44fa8 (11:4fa8)
- db $40,$02
+ db D_UP,$02
db $FF
RocketHideout2ArrowMovement32: ; 44fab (11:4fab)
- db $40,$01
+ db D_UP,$01
db $FF
RocketHideout2ArrowMovement33: ; 44fae (11:4fae)
- db $40,$03
+ db D_UP,$03
db $FF
RocketHideout2ArrowMovement34: ; 44fb1 (11:4fb1)
- db $40,$05
+ db D_UP,$05
db $FF
RocketHideout2ArrowMovement35: ; 44fb4 (11:4fb4)
- db $10,$01
- db $80,$02
- db $20,$04
+ db D_RIGHT,$01
+ db D_DOWN,$02
+ db D_LEFT,$04
db $FF
RocketHideout2ArrowMovement36: ; 44fbb (11:4fbb)
- db $20,$0A
- db $40,$02
- db $20,$05
+ db D_LEFT,$0A
+ db D_UP,$02
+ db D_LEFT,$05
db $FF
RocketHideout2Script3: ; 44fc2 (11:4fc2)
@@ -321,17 +317,17 @@ LoadSpinnerArrowTiles: ; 44fd7 (11:4fd7)
ld a, [wSpriteStateData1 + 2]
srl a
srl a
- ld hl, SpinnerPlayerFacingDirections ; $5083
+ ld hl, SpinnerPlayerFacingDirections
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
ld [wSpriteStateData1 + 2], a
- ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET
+ ld a, [W_CURMAPTILESET]
cp FACILITY
- ld hl, FacilitySpinnerArrows ; $5023
+ ld hl, FacilitySpinnerArrows
jr z, .asm_44ff6
- ld hl, GymSpinnerArrows ; $5053
+ ld hl, GymSpinnerArrows
.asm_44ff6
ld a, [wSimulatedJoypadStatesIndex]
bit 0, a
@@ -419,25 +415,25 @@ SpinnerArrowAnimTiles: ; 45087 (11:5087)
RocketHideout2TextPointers: ; 450c7 (11:50c7)
dw RocketHideout2Text1
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
RocketHideout2TrainerHeaders: ; 450d1 (11:50d1)
RocketHideout2TrainerHeader0: ; 450d1 (11:50d1)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd817 ; flag's byte
- dw RocketHideout2BattleText2 ; 0x50e8 TextBeforeBattle
- dw RocketHideout2AfterBattleTxt2 ; 0x50f2 TextAfterBattle
- dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
- dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0
+ dw RocketHideout2BattleText2 ; TextBeforeBattle
+ dw RocketHideout2AfterBattleTxt2 ; TextAfterBattle
+ dw RocketHideout2EndBattleText2 ; TextEndBattle
+ dw RocketHideout2EndBattleText2 ; TextEndBattle
db $ff
RocketHideout2Text1: ; 450de (11:50de)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout2TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/rockethideout3.asm b/scripts/rockethideout3.asm
index 6dc467ab..1f6d5b41 100755
--- a/scripts/rockethideout3.asm
+++ b/scripts/rockethideout3.asm
@@ -25,7 +25,7 @@ RocketHideout3Script0: ; 45240 (11:5240)
ld hl, wd736
set 7, [hl]
call StartSimulatingJoypadStates
- ld a, (SFX_02_52 - SFX_Headers_02) / 3
+ ld a, SFX_ARROW_TILES
call PlaySound
ld a, $ff
ld [wJoyIgnore], a
@@ -72,70 +72,66 @@ RocketHideout3ArrowTilePlayerMovement: ; 4526b (11:526b)
db $FF
;format: direction, count
-;right: $10
-;left: $20
-;up: $40
-;down: $80
;each list is read starting from the $FF and working backwards
RocketHideout3ArrowMovement1: ; 452ac (11:52ac)
- db $10,$04
- db $40,$04
- db $10,$04
+ db D_RIGHT,$04
+ db D_UP,$04
+ db D_RIGHT,$04
db $FF
RocketHideout3ArrowMovement2: ; 452b3 (11:52b3)
- db $80,$04
- db $10,$04
+ db D_DOWN,$04
+ db D_RIGHT,$04
db $FF
RocketHideout3ArrowMovement3: ; 452b8 (11:52b8)
- db $20,$02
+ db D_LEFT,$02
db $FF
RocketHideout3ArrowMovement4: ; 452bb (11:52bb)
- db $10,$04
- db $40,$02
- db $10,$02
+ db D_RIGHT,$04
+ db D_UP,$02
+ db D_RIGHT,$02
db $FF
RocketHideout3ArrowMovement5: ; 452c2 (11:52c2)
- db $10,$04
- db $40,$02
- db $10,$02
- db $40,$03
+ db D_RIGHT,$04
+ db D_UP,$02
+ db D_RIGHT,$02
+ db D_UP,$03
db $FF
RocketHideout3ArrowMovement6: ; 452cb (11:52cb)
- db $10,$04
+ db D_RIGHT,$04
db $FF
RocketHideout3ArrowMovement7: ; 452ce (11:52ce)
- db $10,$02
+ db D_RIGHT,$02
db $FF
RocketHideout3ArrowMovement8: ; 452d1 (11:52d1)
- db $10,$04
- db $40,$02
+ db D_RIGHT,$04
+ db D_UP,$02
db $FF
RocketHideout3ArrowMovement9: ; 452d6 (11:52d6)
- db $10,$04
- db $40,$04
+ db D_RIGHT,$04
+ db D_UP,$04
db $FF
RocketHideout3ArrowMovement10: ; 452db (11:52db)
- db $80,$04
+ db D_DOWN,$04
db $FF
RocketHideout3ArrowMovement11: ; 452de (11:52de)
- db $40,$02
+ db D_UP,$02
db $FF
RocketHideout3ArrowMovement12: ; 452e1 (11:52e1)
- db $40,$01
+ db D_UP,$01
db $FF
-RocketHideout3Script3 ; 452e4 (11:452e4)
+RocketHideout3Script3: ; 452e4 (11:452e4)
ld a, [wSimulatedJoypadStatesIndex]
and a
jp nz, LoadSpinnerArrowTiles
@@ -150,32 +146,32 @@ RocketHideout3Script3 ; 452e4 (11:452e4)
RocketHideout3TextPointers: ; 452fa (11:52fa)
dw RocketHideout3Text1
dw RocketHideout3Text2
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
RocketHideout3TrainerHeaders: ; 45302 (11:5302)
RocketHideout3TrainerHeader0: ; 45302 (11:5302)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd819 ; flag's byte
- dw RocketHideout3BattleText2 ; 0x5325 TextBeforeBattle
- dw RocketHideout3AfterBattleTxt2 ; 0x532f TextAfterBattle
- dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle
- dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0
+ dw RocketHideout3BattleText2 ; TextBeforeBattle
+ dw RocketHideout3AfterBattleTxt2 ; TextAfterBattle
+ dw RocketHideout3EndBattleText2 ; TextEndBattle
+ dw RocketHideout3EndBattleText2 ; TextEndBattle
RocketHideout3TrainerHeader2: ; 4530e (11:530e)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd819 ; flag's byte
- dw RocketHideout3BattleTxt ; 0x533e TextBeforeBattle
- dw RocketHideout3AfterBattleText3 ; 0x5348 TextAfterBattle
- dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
- dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_2
+ dw RocketHideout3BattleTxt ; TextBeforeBattle
+ dw RocketHideout3AfterBattleText3 ; TextAfterBattle
+ dw RocketHideout3EndBattleText3 ; TextEndBattle
+ dw RocketHideout3EndBattleText3 ; TextEndBattle
db $ff
RocketHideout3Text1: ; 4531b (11:531b)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -193,7 +189,7 @@ RocketHideout3AfterBattleTxt2: ; 4532f (11:532f)
db "@"
RocketHideout3Text2: ; 45334 (11:5334)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout3TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm
index 845b7730..a71e444c 100755
--- a/scripts/rockethideout4.asm
+++ b/scripts/rockethideout4.asm
@@ -13,24 +13,21 @@ RocketHideout4Script_45473: ; 45473 (11:5473)
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd81b]
- bit 5, a
+ CheckEvent EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED
jr nz, .asm_45496
- and $c
- cp $c
+ CheckBothEventsSet EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0, EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2, 1
jr z, .asm_4548c
ld a, $2d
jr .asm_45498
.asm_4548c
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
- ld hl, wd81b
- set 5, [hl]
+ SetEvent EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED
.asm_45496
ld a, $e
.asm_45498
- ld [wd09f], a
- ld bc, $050c
+ ld [wNewTileBlockID], a
+ lb bc, 5, 12
predef_jump ReplaceTileBlock
RocketHideout4Script_454a3: ; 454a3 (11:54a3)
@@ -53,17 +50,16 @@ RocketHideout4Script3: ; 454b6 (11:54b6)
call UpdateSprites
ld a, $f0
ld [wJoyIgnore], a
- ld hl, wd81b
- set 7, [hl]
+ SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
ld a, $a
- ld [H_SPRITEHEIGHT], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call GBFadeOutToBlack
ld a, HS_ROCKET_HIDEOUT_4_GIOVANNI
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_ROCKET_HIDEOUT_4_ITEM_4
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
call UpdateSprites
call GBFadeInFromBlack
@@ -81,47 +77,46 @@ RocketHideout4TextPointers: ; 45501 (11:5501)
dw RocketHideout4Text2
dw RocketHideout4Text3
dw RocketHideout4Text4
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw RocketHideout4Text10
RocketHideout4TrainerHeaders: ; 45515 (11:5515)
RocketHideout4TrainerHeader0: ; 45515 (11:5515)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd81b ; flag's byte
- dw RocketHideout4BattleText2 ; 0x5593 TextBeforeBattle
- dw RocketHideout4AfterBattleText2 ; 0x559d TextAfterBattle
- dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle
- dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0
+ dw RocketHideout4BattleText2 ; TextBeforeBattle
+ dw RocketHideout4AfterBattleText2 ; TextAfterBattle
+ dw RocketHideout4EndBattleText2 ; TextEndBattle
+ dw RocketHideout4EndBattleText2 ; TextEndBattle
RocketHideout4TrainerHeader2: ; 45521 (11:5521)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
db ($0 << 4) ; trainer's view range
- dw wd81b ; flag's byte
- dw RocketHideout4BattleText3 ; 0x55ac TextBeforeBattle
- dw RocketHideout4AfterBattleText3 ; 0x55b6 TextAfterBattle
- dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle
- dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
+ dw RocketHideout4BattleText3 ; TextBeforeBattle
+ dw RocketHideout4AfterBattleText3 ; TextAfterBattle
+ dw RocketHideout4EndBattleText3 ; TextEndBattle
+ dw RocketHideout4EndBattleText3 ; TextEndBattle
RocketHideout4TrainerHeader3: ; 4552d (11:552d)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3
db ($1 << 4) ; trainer's view range
- dw wd81b ; flag's byte
- dw RocketHideout4BattleText4 ; 0x55c5 TextBeforeBattle
- dw RocketHideout4AfterBattleText4 ; 0x55cf TextAfterBattle
- dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
- dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3
+ dw RocketHideout4BattleText4 ; TextBeforeBattle
+ dw RocketHideout4AfterBattleText4 ; TextAfterBattle
+ dw RocketHideout4EndBattleText4 ; TextEndBattle
+ dw RocketHideout4EndBattleText4 ; TextEndBattle
db $ff
RocketHideout4Text1: ; 4553a (11:553a)
- db $08 ; asm
- ld a, [wd81b]
- bit 7, a
+ TX_ASM
+ CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
jp nz, .asm_545571
ld hl, RocketHideout4Text_4557a
call PrintText
@@ -140,11 +135,11 @@ RocketHideout4Text1: ; 4553a (11:553a)
ld a, $3
ld [W_ROCKETHIDEOUT4CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
- jr .asm_209f0 ; 0x4556f
+ jr .asm_209f0
.asm_545571
ld hl, RocketHideout4Text10
call PrintText
-.asm_209f0 ; 0x45577
+.asm_209f0
jp TextScriptEnd
RocketHideout4Text_4557a: ; 4557a (11:557a)
@@ -160,7 +155,7 @@ RocketHideout4Text10: ; 45584 (11:5584)
db "@"
RocketHideout4Text2: ; 45589 (11:5589)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -178,7 +173,7 @@ RocketHideout4AfterBattleText2: ; 4559d (11:559d)
db "@"
RocketHideout4Text3: ; 455a2 (11:55a2)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout4TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -196,7 +191,7 @@ RocketHideout4AfterBattleText3: ; 455b6 (11:55b6)
db "@"
RocketHideout4Text4: ; 455bb (11:55bb)
- db $08 ; asm
+ TX_ASM
ld hl, RocketHideout4TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -210,15 +205,13 @@ RocketHideout4EndBattleText4: ; 455ca (11:55ca)
db "@"
RocketHideout4AfterBattleText4: ; 455cf (11:55cf)
- db $8
- ld hl, RocketHideout4Text_455ec ; $55ec
+ TX_ASM
+ ld hl, RocketHideout4Text_455ec
call PrintText
- ld hl, wd81b
- bit 6, [hl]
- set 6, [hl]
- jr nz, .asm_455e9 ; 0x455dd $a
+ CheckAndSetEvent EVENT_ROCKET_DROPPED_LIFT_KEY
+ jr nz, .asm_455e9
ld a, HS_ROCKET_HIDEOUT_4_ITEM_5
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
.asm_455e9
jp TextScriptEnd
diff --git a/scripts/rockethideoutelevator.asm b/scripts/rockethideoutelevator.asm
index e7bc24f3..8a0ca049 100755
--- a/scripts/rockethideoutelevator.asm
+++ b/scripts/rockethideoutelevator.asm
@@ -16,9 +16,9 @@ RocketHideoutElevatorScript: ; 45710 (11:5710)
RocketHideoutElevatorScript_4572c: ; 4572c (11:572c)
ld hl, wWarpEntries
- ld a, [wd73b]
+ ld a, [wWarpedFromWhichWarp]
ld b, a
- ld a, [wd73c]
+ ld a, [wWarpedFromWhichMap]
ld c, a
call RocketHideoutElevatorScript_4573a
@@ -32,17 +32,19 @@ RocketHideoutElevatorScript_4573a: ; 4573a (11:573a)
ret
RocketHideoutElevatorScript_45741: ; 45741 (11:5741)
- ld hl, RocketHideoutElavatorFloors ; $5754
+ ld hl, RocketHideoutElavatorFloors
call LoadItemList
- ld hl, RocketHideoutElevatorWarpMaps ; $5759
- ld de, wcc5b
- ld bc, $0006
+ ld hl, RocketHideoutElevatorWarpMaps
+ ld de, wElevatorWarpMaps
+ ld bc, RocketHideoutElevatorWarpMapsEnd - RocketHideoutElevatorWarpMaps
call CopyData
ret
RocketHideoutElavatorFloors: ; 45754 (11:5754)
db $03 ; num elements in list
- db $55, $54, $61 ; "B1F", "B2F", "B4F"
+ db FLOOR_B1F
+ db FLOOR_B2F
+ db FLOOR_B4F
db $FF ; terminator
RocketHideoutElevatorWarpMaps: ; 45759 (11:5759)
@@ -52,6 +54,7 @@ RocketHideoutElevatorWarpMaps: ; 45759 (11:5759)
db $04, ROCKET_HIDEOUT_1
db $04, ROCKET_HIDEOUT_2
db $02, ROCKET_HIDEOUT_4
+RocketHideoutElevatorWarpMapsEnd:
RocketHideoutElevatorScript_4575f: ; 4575f (11:575f)
call Delay3
@@ -62,20 +65,20 @@ RocketHideoutElevatorTextPointers: ; 4576b (11:576b)
dw RocketHideoutElevatorText1
RocketHideoutElevatorText1: ; 4576d (11:576d)
- db $08 ; asm
+ TX_ASM
ld b, LIFT_KEY
call IsItemInBag
- jr z, .asm_8d8f0 ; 0x45773
+ jr z, .asm_45782
call RocketHideoutElevatorScript_45741
- ld hl, RocketHideoutElevatorWarpMaps ; $5759
- predef Func_1c9c6
- jr .asm_46c43 ; 0x45780
-.asm_8d8f0 ; 0x45782
+ ld hl, RocketHideoutElevatorWarpMaps
+ predef DisplayElevatorFloorMenu
+ jr .asm_45788
+.asm_45782
ld hl, RocketHideoutElevatorText_4578b
call PrintText
-.asm_46c43 ; 0x45788
+.asm_45788
jp TextScriptEnd
RocketHideoutElevatorText_4578b: ; 4578b (11:578b)
- TX_FAR _RocketElevatorText_4578b ; 0x82438
+ TX_FAR _RocketElevatorText_4578b
db $d, "@"
diff --git a/scripts/rocktunnel1.asm b/scripts/rocktunnel1.asm
index 1d514a05..d03a5ba1 100755
--- a/scripts/rocktunnel1.asm
+++ b/scripts/rocktunnel1.asm
@@ -24,104 +24,104 @@ RockTunnel1TextPointers: ; 444f5 (11:44f5)
RockTunnel1TrainerHeaders: ; 44505 (11:4505)
RockTunnel1TrainerHeader1: ; 44505 (11:4505)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd7d2 ; flag's byte
- dw RockTunnel1BattleText1 ; 0x4588 TextBeforeBattle
- dw RockTunnel1AfterBattleText1 ; 0x4592 TextAfterBattle
- dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
- dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1
+ dw RockTunnel1BattleText1 ; TextBeforeBattle
+ dw RockTunnel1AfterBattleText1 ; TextAfterBattle
+ dw RockTunnel1EndBattleText1 ; TextEndBattle
+ dw RockTunnel1EndBattleText1 ; TextEndBattle
RockTunnel1TrainerHeader2: ; 44511 (11:4511)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7d2 ; flag's byte
- dw RockTunnel1BattleText2 ; 0x4597 TextBeforeBattle
- dw RockTunnel1AfterBattleText2 ; 0x45a1 TextAfterBattle
- dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
- dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2
+ dw RockTunnel1BattleText2 ; TextBeforeBattle
+ dw RockTunnel1AfterBattleText2 ; TextAfterBattle
+ dw RockTunnel1EndBattleText2 ; TextEndBattle
+ dw RockTunnel1EndBattleText2 ; TextEndBattle
RockTunnel1TrainerHeader3: ; 4451d (11:451d)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7d2 ; flag's byte
- dw RockTunnel1BattleText3 ; 0x45a6 TextBeforeBattle
- dw RockTunnel1AfterBattleText3 ; 0x45b0 TextAfterBattle
- dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
- dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_3
+ dw RockTunnel1BattleText3 ; TextBeforeBattle
+ dw RockTunnel1AfterBattleText3 ; TextAfterBattle
+ dw RockTunnel1EndBattleText3 ; TextEndBattle
+ dw RockTunnel1EndBattleText3 ; TextEndBattle
RockTunnel1TrainerHeader4: ; 44529 (11:4529)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd7d2 ; flag's byte
- dw RockTunnel1BattleText4 ; 0x45b5 TextBeforeBattle
- dw RockTunnel1AfterBattleText4 ; 0x45bf TextAfterBattle
- dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle
- dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4
+ dw RockTunnel1BattleText4 ; TextBeforeBattle
+ dw RockTunnel1AfterBattleText4 ; TextAfterBattle
+ dw RockTunnel1EndBattleText4 ; TextEndBattle
+ dw RockTunnel1EndBattleText4 ; TextEndBattle
RockTunnel1TrainerHeader5: ; 44535 (11:4535)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7d2 ; flag's byte
- dw RockTunnel1BattleText5 ; 0x45c4 TextBeforeBattle
- dw RockTunnel1AfterBattleText5 ; 0x45ce TextAfterBattle
- dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
- dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5
+ dw RockTunnel1BattleText5 ; TextBeforeBattle
+ dw RockTunnel1AfterBattleText5 ; TextAfterBattle
+ dw RockTunnel1EndBattleText5 ; TextEndBattle
+ dw RockTunnel1EndBattleText5 ; TextEndBattle
RockTunnel1TrainerHeader6: ; 44541 (11:4541)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6
db ($4 << 4) ; trainer's view range
- dw wd7d2 ; flag's byte
- dw RockTunnel1BattleText6 ; 0x45d3 TextBeforeBattle
- dw RockTunnel1AfterBattleText6 ; 0x45dd TextAfterBattle
- dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
- dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6
+ dw RockTunnel1BattleText6 ; TextBeforeBattle
+ dw RockTunnel1AfterBattleText6 ; TextAfterBattle
+ dw RockTunnel1EndBattleText6 ; TextEndBattle
+ dw RockTunnel1EndBattleText6 ; TextEndBattle
RockTunnel1TrainerHeader7: ; 4454d (11:454d)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_7
db ($4 << 4) ; trainer's view range
- dw wd7d2 ; flag's byte
- dw RockTunnel1BattleText7 ; 0x45e2 TextBeforeBattle
- dw RockTunnel1AfterBattleText7 ; 0x45ec TextAfterBattle
- dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
- dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_7
+ dw RockTunnel1BattleText7 ; TextBeforeBattle
+ dw RockTunnel1AfterBattleText7 ; TextAfterBattle
+ dw RockTunnel1EndBattleText7 ; TextEndBattle
+ dw RockTunnel1EndBattleText7 ; TextEndBattle
db $ff
RockTunnel1Text1: ; 4455a (11:455a)
- db $8
- ld hl, RockTunnel1TrainerHeader1 ; $4505
- jr asm_0c916 ; 0x4455e $22
+ TX_ASM
+ ld hl, RockTunnel1TrainerHeader1
+ jr RockTunnel1TalkToTrainer
RockTunnel1Text2: ; 44560 (11:4560)
- db $8
- ld hl, RockTunnel1TrainerHeader2 ; $4511
- jr asm_0c916 ; 0x44564 $1c
+ TX_ASM
+ ld hl, RockTunnel1TrainerHeader2
+ jr RockTunnel1TalkToTrainer
RockTunnel1Text3: ; 44566 (11:4566)
- db $8
- ld hl, RockTunnel1TrainerHeader3 ; $451d
- jr asm_0c916 ; 0x4456a $16
+ TX_ASM
+ ld hl, RockTunnel1TrainerHeader3
+ jr RockTunnel1TalkToTrainer
RockTunnel1Text4: ; 4456c (11:456c)
- db $8
- ld hl, RockTunnel1TrainerHeader4 ; $4529
- jr asm_0c916 ; 0x44570 $10
+ TX_ASM
+ ld hl, RockTunnel1TrainerHeader4
+ jr RockTunnel1TalkToTrainer
RockTunnel1Text5: ; 44572 (11:4572)
- db $8
- ld hl, RockTunnel1TrainerHeader5 ; $4535
- jr asm_0c916 ; 0x44576 $a
+ TX_ASM
+ ld hl, RockTunnel1TrainerHeader5
+ jr RockTunnel1TalkToTrainer
RockTunnel1Text6: ; 44578 (11:4578)
- db $8
- ld hl, RockTunnel1TrainerHeader6 ; $4541
- jr asm_0c916 ; 0x4457c $4
+ TX_ASM
+ ld hl, RockTunnel1TrainerHeader6
+ jr RockTunnel1TalkToTrainer
RockTunnel1Text7: ; 4457e (11:457e)
- db $8
- ld hl, RockTunnel1TrainerHeader7 ; $454d
-asm_0c916: ; 44582 (11:4582)
+ TX_ASM
+ ld hl, RockTunnel1TrainerHeader7
+RockTunnel1TalkToTrainer: ; 44582 (11:4582)
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/rocktunnel2.asm b/scripts/rocktunnel2.asm
index 98b804a7..2082394a 100755
--- a/scripts/rocktunnel2.asm
+++ b/scripts/rocktunnel2.asm
@@ -24,123 +24,123 @@ RockTunnel2TextPointers: ; 46004 (11:6004)
RockTunnel2TrainerHeaders: ; 46014 (11:6014)
RockTunnel2TrainerHeader0: ; 46014 (11:6014)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd87d ; flag's byte
- dw RockTunnel2BattleText2 ; 0x60c5 TextBeforeBattle
- dw RockTunnel2AfterBattleText2 ; 0x60cf TextAfterBattle
- dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle
- dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0
+ dw RockTunnel2BattleText2 ; TextBeforeBattle
+ dw RockTunnel2AfterBattleText2 ; TextAfterBattle
+ dw RockTunnel2EndBattleText2 ; TextEndBattle
+ dw RockTunnel2EndBattleText2 ; TextEndBattle
RockTunnel2TrainerHeader2: ; 46020 (11:6020)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd87d ; flag's byte
- dw RockTunnel2BattleText3 ; 0x60d4 TextBeforeBattle
- dw RockTunnel2AfterBattleText3 ; 0x60de TextAfterBattle
- dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle
- dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2
+ dw RockTunnel2BattleText3 ; TextBeforeBattle
+ dw RockTunnel2AfterBattleText3 ; TextAfterBattle
+ dw RockTunnel2EndBattleText3 ; TextEndBattle
+ dw RockTunnel2EndBattleText3 ; TextEndBattle
RockTunnel2TrainerHeader3: ; 4602c (11:602c)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd87d ; flag's byte
- dw RockTunnel2BattleText4 ; 0x60e3 TextBeforeBattle
- dw RockTunnel2AfterBattleText4 ; 0x60ed TextAfterBattle
- dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle
- dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_3
+ dw RockTunnel2BattleText4 ; TextBeforeBattle
+ dw RockTunnel2AfterBattleText4 ; TextAfterBattle
+ dw RockTunnel2EndBattleText4 ; TextEndBattle
+ dw RockTunnel2EndBattleText4 ; TextEndBattle
RockTunnel2TrainerHeader4: ; 46038 (11:6038)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd87d ; flag's byte
- dw RockTunnel2BattleText5 ; 0x60f2 TextBeforeBattle
- dw RockTunnel2AfterBattleText5 ; 0x60fc TextAfterBattle
- dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle
- dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_4
+ dw RockTunnel2BattleText5 ; TextBeforeBattle
+ dw RockTunnel2AfterBattleText5 ; TextAfterBattle
+ dw RockTunnel2EndBattleText5 ; TextEndBattle
+ dw RockTunnel2EndBattleText5 ; TextEndBattle
RockTunnel2TrainerHeader5: ; 46044 (11:6044)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd87d ; flag's byte
- dw RockTunnel2BattleText6 ; 0x6101 TextBeforeBattle
- dw RockTunnel2AfterBattleText6 ; 0x610b TextAfterBattle
- dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle
- dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5
+ dw RockTunnel2BattleText6 ; TextBeforeBattle
+ dw RockTunnel2AfterBattleText6 ; TextAfterBattle
+ dw RockTunnel2EndBattleText6 ; TextEndBattle
+ dw RockTunnel2EndBattleText6 ; TextEndBattle
RockTunnel2TrainerHeader6: ; 46050 (11:6050)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6
db ($4 << 4) ; trainer's view range
- dw wd87d ; flag's byte
- dw RockTunnel2BattleText7 ; 0x6110 TextBeforeBattle
- dw RockTunnel2AfterBattleText7 ; 0x611a TextAfterBattle
- dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle
- dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6
+ dw RockTunnel2BattleText7 ; TextBeforeBattle
+ dw RockTunnel2AfterBattleText7 ; TextAfterBattle
+ dw RockTunnel2EndBattleText7 ; TextEndBattle
+ dw RockTunnel2EndBattleText7 ; TextEndBattle
RockTunnel2TrainerHeader7: ; 4605c (11:605c)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7
db ($3 << 4) ; trainer's view range
- dw wd87d ; flag's byte
- dw RockTunnel2BattleText8 ; 0x611f TextBeforeBattle
- dw RockTunnel2AfterBattleText8 ; 0x6129 TextAfterBattle
- dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle
- dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7
+ dw RockTunnel2BattleText8 ; TextBeforeBattle
+ dw RockTunnel2AfterBattleText8 ; TextAfterBattle
+ dw RockTunnel2EndBattleText8 ; TextEndBattle
+ dw RockTunnel2EndBattleText8 ; TextEndBattle
RockTunnel2TrainerHeader8: ; 46068 (11:6068)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_8, 1
db ($3 << 4) ; trainer's view range
- dw wd87d ; flag's byte
- dw RockTunnel2BattleText9 ; 0x612e TextBeforeBattle
- dw RockTunnel2AfterBattleText9 ; 0x6138 TextAfterBattle
- dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
- dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_8, 1
+ dw RockTunnel2BattleText9 ; TextBeforeBattle
+ dw RockTunnel2AfterBattleText9 ; TextAfterBattle
+ dw RockTunnel2EndBattleText9 ; TextEndBattle
+ dw RockTunnel2EndBattleText9 ; TextEndBattle
db $ff
RockTunnel2Text1: ; 46075 (11:6075)
- db $08 ; asm
+ TX_ASM
ld hl, RockTunnel2TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
RockTunnel2Text2: ; 4607f (11:607f)
- db $08 ; asm
+ TX_ASM
ld hl, RockTunnel2TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
RockTunnel2Text3: ; 46089 (11:6089)
- db $08 ; asm
+ TX_ASM
ld hl, RockTunnel2TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
RockTunnel2Text4: ; 46093 (11:6093)
- db $08 ; asm
+ TX_ASM
ld hl, RockTunnel2TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
RockTunnel2Text5: ; 4609d (11:609d)
- db $08 ; asm
+ TX_ASM
ld hl, RockTunnel2TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
RockTunnel2Text6: ; 460a7 (11:60a7)
- db $08 ; asm
+ TX_ASM
ld hl, RockTunnel2TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
RockTunnel2Text7: ; 460b1 (11:60b1)
- db $08 ; asm
+ TX_ASM
ld hl, RockTunnel2TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
RockTunnel2Text8: ; 460bb (11:60bb)
- db $08 ; asm
+ TX_ASM
ld hl, RockTunnel2TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route1.asm b/scripts/route1.asm
index 189b987b..926ffd20 100755
--- a/scripts/route1.asm
+++ b/scripts/route1.asm
@@ -7,24 +7,22 @@ Route1TextPointers: ; 1cab2 (7:4ab2)
dw Route1Text3
Route1Text1: ; 1cab8 (7:4ab8)
- db $08 ; asm
- ld hl, wd7bf
- bit 0, [hl]
- set 0, [hl]
- jr nz, .asm_02840 ; 0x1cac0
+ TX_ASM
+ CheckAndSetEvent EVENT_GOT_POTION_SAMPLE
+ jr nz, .asm_1cada
ld hl, Route1ViridianMartSampleText
call PrintText
- ld bc, (POTION << 8) | 1
+ lb bc, POTION, 1
call GiveItem
jr nc, .BagFull
- ld hl, Route1Text_1cae8 ; $4ae8
- jr .asm_46d43 ; 0x1cad3
+ ld hl, Route1Text_1cae8
+ jr .asm_1cadd
.BagFull
- ld hl, Route1Text_1caf3 ; $4af3
- jr .asm_46d43 ; 0x1cad8
-.asm_02840 ; 0x1cada
- ld hl, Route1Text_1caee ; $4aee
-.asm_46d43 ; 0x1cadd
+ ld hl, Route1Text_1caf3
+ jr .asm_1cadd
+.asm_1cada
+ ld hl, Route1Text_1caee
+.asm_1cadd
call PrintText
jp TextScriptEnd
diff --git a/scripts/route10.asm b/scripts/route10.asm
index c587b1df..2d5d2ae4 100755
--- a/scripts/route10.asm
+++ b/scripts/route10.asm
@@ -26,63 +26,63 @@ Route10TextPointers: ; 5934f (16:534f)
Route10TrainerHeaders: ; 59363 (16:5363)
Route10TrainerHeader0: ; 59363 (16:5363)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7d1 ; flag's byte
- dw Route10BattleText1 ; 0x53b6 TextBeforeBattle
- dw Route10AfterBattleText1 ; 0x53c0 TextAfterBattle
- dw Route10EndBattleText1 ; 0x53bb TextEndBattle
- dw Route10EndBattleText1 ; 0x53bb TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_0
+ dw Route10BattleText1 ; TextBeforeBattle
+ dw Route10AfterBattleText1 ; TextAfterBattle
+ dw Route10EndBattleText1 ; TextEndBattle
+ dw Route10EndBattleText1 ; TextEndBattle
Route10TrainerHeader1: ; 5936f (16:536f)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd7d1 ; flag's byte
- dw Route10BattleText2 ; 0x53cf TextBeforeBattle
- dw Route10AfterBattleText2 ; 0x53d9 TextAfterBattle
- dw Route10EndBattleText2 ; 0x53d4 TextEndBattle
- dw Route10EndBattleText2 ; 0x53d4 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_1
+ dw Route10BattleText2 ; TextBeforeBattle
+ dw Route10AfterBattleText2 ; TextAfterBattle
+ dw Route10EndBattleText2 ; TextEndBattle
+ dw Route10EndBattleText2 ; TextEndBattle
Route10TrainerHeader2: ; 5937b (16:537b)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7d1 ; flag's byte
- dw Route10BattleText3 ; 0x53e8 TextBeforeBattle
- dw Route10AfterBattleText3 ; 0x53f2 TextAfterBattle
- dw Route10EndBattleText3 ; 0x53ed TextEndBattle
- dw Route10EndBattleText3 ; 0x53ed TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_2
+ dw Route10BattleText3 ; TextBeforeBattle
+ dw Route10AfterBattleText3 ; TextAfterBattle
+ dw Route10EndBattleText3 ; TextEndBattle
+ dw Route10EndBattleText3 ; TextEndBattle
Route10TrainerHeader3: ; 59387 (16:5387)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7d1 ; flag's byte
- dw Route10BattleText4 ; 0x5401 TextBeforeBattle
- dw Route10AfterBattleText4 ; 0x540b TextAfterBattle
- dw Route10EndBattleText4 ; 0x5406 TextEndBattle
- dw Route10EndBattleText4 ; 0x5406 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_3
+ dw Route10BattleText4 ; TextBeforeBattle
+ dw Route10AfterBattleText4 ; TextAfterBattle
+ dw Route10EndBattleText4 ; TextEndBattle
+ dw Route10EndBattleText4 ; TextEndBattle
Route10TrainerHeader4: ; 59393 (16:5393)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_4
db ($2 << 4) ; trainer's view range
- dw wd7d1 ; flag's byte
- dw Route10BattleText5 ; 0x541a TextBeforeBattle
- dw Route10AfterBattleText5 ; 0x5424 TextAfterBattle
- dw Route10EndBattleText5 ; 0x541f TextEndBattle
- dw Route10EndBattleText5 ; 0x541f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_4
+ dw Route10BattleText5 ; TextBeforeBattle
+ dw Route10AfterBattleText5 ; TextAfterBattle
+ dw Route10EndBattleText5 ; TextEndBattle
+ dw Route10EndBattleText5 ; TextEndBattle
Route10TrainerHeader5: ; 5939f (16:539f)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_5
db ($2 << 4) ; trainer's view range
- dw wd7d1 ; flag's byte
- dw Route10BattleText6 ; 0x5433 TextBeforeBattle
- dw Route10AfterBattleText6 ; 0x543d TextAfterBattle
- dw Route10EndBattleText6 ; 0x5438 TextEndBattle
- dw Route10EndBattleText6 ; 0x5438 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_5
+ dw Route10BattleText6 ; TextBeforeBattle
+ dw Route10AfterBattleText6 ; TextAfterBattle
+ dw Route10EndBattleText6 ; TextEndBattle
+ dw Route10EndBattleText6 ; TextEndBattle
db $ff
Route10Text1: ; 593ac (16:53ac)
- db $08 ; asm
+ TX_ASM
ld hl, Route10TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -100,7 +100,7 @@ Route10AfterBattleText1: ; 593c0 (16:53c0)
db "@"
Route10Text2: ; 593c5 (16:53c5)
- db $08 ; asm
+ TX_ASM
ld hl, Route10TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -118,7 +118,7 @@ Route10AfterBattleText2: ; 593d9 (16:53d9)
db "@"
Route10Text3: ; 593de (16:53de)
- db $08 ; asm
+ TX_ASM
ld hl, Route10TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -136,7 +136,7 @@ Route10AfterBattleText3: ; 593f2 (16:53f2)
db "@"
Route10Text4: ; 593f7 (16:53f7)
- db $08 ; asm
+ TX_ASM
ld hl, Route10TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -154,7 +154,7 @@ Route10AfterBattleText4: ; 5940b (16:540b)
db "@"
Route10Text5: ; 59410 (16:5410)
- db $08 ; asm
+ TX_ASM
ld hl, Route10TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -172,7 +172,7 @@ Route10AfterBattleText5: ; 59424 (16:5424)
db "@"
Route10Text6: ; 59429 (16:5429)
- db $08 ; asm
+ TX_ASM
ld hl, Route10TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route11.asm b/scripts/route11.asm
index 629a6efd..3a9f1e0d 100755
--- a/scripts/route11.asm
+++ b/scripts/route11.asm
@@ -27,99 +27,99 @@ Route11TextPointers: ; 59465 (16:5465)
Route11TrainerHeaders: ; 5947b (16:547b)
Route11TrainerHeader0: ; 5947b (16:547b)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText1 ; 0x54fe TextBeforeBattle
- dw Route11AfterBattleText1 ; 0x5508 TextAfterBattle
- dw Route11EndBattleText1 ; 0x5503 TextEndBattle
- dw Route11EndBattleText1 ; 0x5503 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_0
+ dw Route11BattleText1 ; TextBeforeBattle
+ dw Route11AfterBattleText1 ; TextAfterBattle
+ dw Route11EndBattleText1 ; TextEndBattle
+ dw Route11EndBattleText1 ; TextEndBattle
Route11TrainerHeader1: ; 59487 (16:5487)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_1
db ($2 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText2 ; 0x5517 TextBeforeBattle
- dw Route11AfterBattleText2 ; 0x5521 TextAfterBattle
- dw Route11EndBattleText2 ; 0x551c TextEndBattle
- dw Route11EndBattleText2 ; 0x551c TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_1
+ dw Route11BattleText2 ; TextBeforeBattle
+ dw Route11AfterBattleText2 ; TextAfterBattle
+ dw Route11EndBattleText2 ; TextEndBattle
+ dw Route11EndBattleText2 ; TextEndBattle
Route11TrainerHeader2: ; 59493 (16:5493)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText3 ; 0x5530 TextBeforeBattle
- dw Route11AfterBattleText3 ; 0x553a TextAfterBattle
- dw Route11EndBattleText3 ; 0x5535 TextEndBattle
- dw Route11EndBattleText3 ; 0x5535 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_2
+ dw Route11BattleText3 ; TextBeforeBattle
+ dw Route11AfterBattleText3 ; TextAfterBattle
+ dw Route11EndBattleText3 ; TextEndBattle
+ dw Route11EndBattleText3 ; TextEndBattle
Route11TrainerHeader3: ; 5949f (16:549f)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText4 ; 0x5549 TextBeforeBattle
- dw Route11AfterBattleText4 ; 0x5553 TextAfterBattle
- dw Route11EndBattleText4 ; 0x554e TextEndBattle
- dw Route11EndBattleText4 ; 0x554e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_3
+ dw Route11BattleText4 ; TextBeforeBattle
+ dw Route11AfterBattleText4 ; TextAfterBattle
+ dw Route11EndBattleText4 ; TextEndBattle
+ dw Route11EndBattleText4 ; TextEndBattle
Route11TrainerHeader4: ; 594ab (16:54ab)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText5 ; 0x5562 TextBeforeBattle
- dw Route11AfterBattleText5 ; 0x556c TextAfterBattle
- dw Route11EndBattleText5 ; 0x5567 TextEndBattle
- dw Route11EndBattleText5 ; 0x5567 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_4
+ dw Route11BattleText5 ; TextBeforeBattle
+ dw Route11AfterBattleText5 ; TextAfterBattle
+ dw Route11EndBattleText5 ; TextEndBattle
+ dw Route11EndBattleText5 ; TextEndBattle
Route11TrainerHeader5: ; 594b7 (16:54b7)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText6 ; 0x557b TextBeforeBattle
- dw Route11AfterBattleText6 ; 0x5585 TextAfterBattle
- dw Route11EndBattleText6 ; 0x5580 TextEndBattle
- dw Route11EndBattleText6 ; 0x5580 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_5
+ dw Route11BattleText6 ; TextBeforeBattle
+ dw Route11AfterBattleText6 ; TextAfterBattle
+ dw Route11EndBattleText6 ; TextEndBattle
+ dw Route11EndBattleText6 ; TextEndBattle
Route11TrainerHeader6: ; 594c3 (16:54c3)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_6
db ($3 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText7 ; 0x5594 TextBeforeBattle
- dw Route11AfterBattleText7 ; 0x559e TextAfterBattle
- dw Route11EndBattleText7 ; 0x5599 TextEndBattle
- dw Route11EndBattleText7 ; 0x5599 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_6
+ dw Route11BattleText7 ; TextBeforeBattle
+ dw Route11AfterBattleText7 ; TextAfterBattle
+ dw Route11EndBattleText7 ; TextEndBattle
+ dw Route11EndBattleText7 ; TextEndBattle
Route11TrainerHeader7: ; 594cf (16:54cf)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_7, 1
db ($4 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText8 ; 0x55ad TextBeforeBattle
- dw Route11AfterBattleText8 ; 0x55b7 TextAfterBattle
- dw Route11EndBattleText8 ; 0x55b2 TextEndBattle
- dw Route11EndBattleText8 ; 0x55b2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_7, 1
+ dw Route11BattleText8 ; TextBeforeBattle
+ dw Route11AfterBattleText8 ; TextAfterBattle
+ dw Route11EndBattleText8 ; TextEndBattle
+ dw Route11EndBattleText8 ; TextEndBattle
Route11TrainerHeader8: ; 594db (16:54db)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_8, 1
db ($3 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText9 ; 0x55c6 TextBeforeBattle
- dw Route11AfterBattleText9 ; 0x55d0 TextAfterBattle
- dw Route11EndBattleText9 ; 0x55cb TextEndBattle
- dw Route11EndBattleText9 ; 0x55cb TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_8, 1
+ dw Route11BattleText9 ; TextBeforeBattle
+ dw Route11AfterBattleText9 ; TextAfterBattle
+ dw Route11EndBattleText9 ; TextEndBattle
+ dw Route11EndBattleText9 ; TextEndBattle
Route11TrainerHeader9: ; 594e7 (16:54e7)
- db $a ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_9, 1
db ($4 << 4) ; trainer's view range
- dw wd7d5 ; flag's byte
- dw Route11BattleText10 ; 0x55df TextBeforeBattle
- dw Route11AfterBattleText10 ; 0x55e9 TextAfterBattle
- dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
- dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_9, 1
+ dw Route11BattleText10 ; TextBeforeBattle
+ dw Route11AfterBattleText10 ; TextAfterBattle
+ dw Route11EndBattleText10 ; TextEndBattle
+ dw Route11EndBattleText10 ; TextEndBattle
db $ff
Route11Text1: ; 594f4 (16:54f4)
- db $8
+ TX_ASM
ld hl, Route11TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -137,7 +137,7 @@ Route11AfterBattleText1: ; 59508 (16:5508)
db "@"
Route11Text2: ; 5950d (16:550d)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -155,7 +155,7 @@ Route11AfterBattleText2: ; 59521 (16:5521)
db "@"
Route11Text3: ; 59526 (16:5526)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -173,7 +173,7 @@ Route11AfterBattleText3: ; 5953a (16:553a)
db "@"
Route11Text4: ; 5953f (16:553f)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -191,7 +191,7 @@ Route11AfterBattleText4: ; 59553 (16:5553)
db "@"
Route11Text5: ; 59558 (16:5558)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -209,7 +209,7 @@ Route11AfterBattleText5: ; 5956c (16:556c)
db "@"
Route11Text6: ; 59571 (16:5571)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -227,7 +227,7 @@ Route11AfterBattleText6: ; 59585 (16:5585)
db "@"
Route11Text7: ; 5958a (16:558a)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -245,7 +245,7 @@ Route11AfterBattleText7: ; 5959e (16:559e)
db "@"
Route11Text8: ; 595a3 (16:55a3)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
@@ -263,7 +263,7 @@ Route11AfterBattleText8: ; 595b7 (16:55b7)
db "@"
Route11Text9: ; 595bc (16:55bc)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
@@ -281,7 +281,7 @@ Route11AfterBattleText9: ; 595d0 (16:55d0)
db "@"
Route11Text10: ; 595d5 (16:55d5)
- db $08 ; asm
+ TX_ASM
ld hl, Route11TrainerHeader9
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route11gateupstairs.asm b/scripts/route11gateupstairs.asm
index d8740986..ec543a6a 100755
--- a/scripts/route11gateupstairs.asm
+++ b/scripts/route11gateupstairs.asm
@@ -8,52 +8,49 @@ Route11GateUpstairsTextPointers: ; 49457 (12:5457)
dw Route11GateUpstairsText4
Route11GateUpstairsText1: ; 4945f (12:545f)
- db $08 ; asm
+ TX_ASM
xor a
ld [wWhichTrade], a
predef DoInGameTradeDialogue
-asm_49469: ; 49469 (12:5469)
+Route11GateUpstairsScriptEnd: ; 49469 (12:5469)
jp TextScriptEnd
Route11GateUpstairsText2: ; 4946c (12:546c)
- db $8
- ld a, [wd7d6]
- add a
- jr c, .asm_4949b ; 0x49471 $28
+ TX_ASM
+ CheckEvent EVENT_GOT_ITEMFINDER, 1
+ jr c, .asm_4949b
ld a, 30 ; pokemon needed
- ld [$ffdb], a
+ ld [hOaksAideRequirement], a
ld a, ITEMFINDER ; oak's aide reward
- ld [$ffdc], a
+ ld [hOaksAideRewardItem], a
ld [wd11e], a
call GetItemName
ld h, d
ld l, e
- ld de, wcc5b
- ld bc, $000d
+ ld de, wOaksAideRewardItemName
+ ld bc, ITEM_NAME_LENGTH
call CopyData
- predef OaksAideScript ; call oak's aide script
- ld a, [$ffdb]
+ predef OaksAideScript
+ ld a, [hOaksAideResult]
dec a
- jr nz, .asm_494a1 ; 0x49494 $b
- ld hl, wd7d6
- set 7, [hl]
+ jr nz, .asm_494a1
+ SetEvent EVENT_GOT_ITEMFINDER
.asm_4949b
ld hl, Route11GateUpstairsText_494a3
call PrintText
.asm_494a1
- jr asm_49469 ; 0x494a1 $c6
+ jr Route11GateUpstairsScriptEnd
Route11GateUpstairsText_494a3: ; 494a3 (12:54a3)
TX_FAR _Route11GateUpstairsText_494a3
db "@"
Route11GateUpstairsText3: ; 494a8 (12:54a8)
- db $08 ; asm
+ TX_ASM
ld a, [wSpriteStateData1 + 9]
- cp $4
- jp nz, Route12GateUpstairsScript_495c9
- ld a, [wd7d8]
- bit 7, a ; fought snorlax?
+ cp SPRITE_FACING_UP
+ jp nz, GateUpstairsScript_PrintIfFacingUp
+ CheckEvent EVENT_BEAT_ROUTE12_SNORLAX
ld hl, BinocularsSnorlaxText
jr z, .print
ld hl, BinocularsNoSnorlaxText
@@ -70,9 +67,9 @@ BinocularsNoSnorlaxText:
db "@"
Route11GateUpstairsText4: ; 494ce (12:54ce)
- db $8
- ld hl, Route11GateUpstairsText_494d5 ; $54d5
- jp Route12GateUpstairsScript_495c9
+ TX_ASM
+ ld hl, Route11GateUpstairsText_494d5
+ jp GateUpstairsScript_PrintIfFacingUp
Route11GateUpstairsText_494d5: ; 494d5 (12:54d5)
TX_FAR _Route11GateUpstairsText_494d5
diff --git a/scripts/route12.asm b/scripts/route12.asm
index fdaf2a85..4057ce03 100755
--- a/scripts/route12.asm
+++ b/scripts/route12.asm
@@ -21,21 +21,20 @@ Route12ScriptPointers: ; 59611 (16:5611)
dw Route12Script3
Route12Script0: ; 59619 (16:5619)
- ld hl, wd7d8
- bit 7, [hl]
+ CheckEventHL EVENT_BEAT_ROUTE12_SNORLAX
jp nz, CheckFightingMapTrainers
- bit 6, [hl]
- res 6, [hl]
+ CheckEventReuseHL EVENT_FIGHT_ROUTE12_SNORLAX
+ ResetEventReuseHL EVENT_FIGHT_ROUTE12_SNORLAX
jp z, CheckFightingMapTrainers
ld a, $d
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, SNORLAX
- ld [W_CUROPPONENT], a ; wd059
+ ld [W_CUROPPONENT], a
ld a, 30
- ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
+ ld [W_CURENEMYLVL], a
ld a, HS_ROUTE_12_SNORLAX
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $3
ld [W_ROUTE12CURSCRIPT], a
@@ -43,7 +42,7 @@ Route12Script0: ; 59619 (16:5619)
ret
Route12Script3: ; 5964c (16:564c)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jr z, Route12Script_59606
call UpdateSprites
@@ -51,11 +50,10 @@ Route12Script3: ; 5964c (16:564c)
cp $2
jr z, .asm_59664
ld a, $e
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_59664
- ld hl, wd7d8
- set 7, [hl]
+ SetEvent EVENT_BEAT_ROUTE12_SNORLAX
call Delay3
ld a, $0
ld [W_ROUTE12CURSCRIPT], a
@@ -71,8 +69,8 @@ Route12TextPointers: ; 59675 (16:5675)
dw Route12Text6
dw Route12Text7
dw Route12Text8
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw Route12Text11
dw Route12Text12
dw Route12Text13
@@ -80,67 +78,67 @@ Route12TextPointers: ; 59675 (16:5675)
Route12TrainerHeaders: ; 59691 (16:5691)
Route12TrainerHeader0: ; 59691 (16:5691)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7d7 ; flag's byte
- dw Route12BattleText1 ; 0x56ff TextBeforeBattle
- dw Route12AfterBattleText1 ; 0x5709 TextAfterBattle
- dw Route12EndBattleText1 ; 0x5704 TextEndBattle
- dw Route12EndBattleText1 ; 0x5704 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_0
+ dw Route12BattleText1 ; TextBeforeBattle
+ dw Route12AfterBattleText1 ; TextAfterBattle
+ dw Route12EndBattleText1 ; TextEndBattle
+ dw Route12EndBattleText1 ; TextEndBattle
Route12TrainerHeader1: ; 5969d (16:569d)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd7d7 ; flag's byte
- dw Route12BattleText2 ; 0x5718 TextBeforeBattle
- dw Route12AfterBattleText2 ; 0x5722 TextAfterBattle
- dw Route12EndBattleText2 ; 0x571d TextEndBattle
- dw Route12EndBattleText2 ; 0x571d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_1
+ dw Route12BattleText2 ; TextBeforeBattle
+ dw Route12AfterBattleText2 ; TextAfterBattle
+ dw Route12EndBattleText2 ; TextEndBattle
+ dw Route12EndBattleText2 ; TextEndBattle
Route12TrainerHeader2: ; 596a9 (16:56a9)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7d7 ; flag's byte
- dw Route12BattleText3 ; 0x5731 TextBeforeBattle
- dw Route12AfterBattleText3 ; 0x573b TextAfterBattle
- dw Route12EndBattleText3 ; 0x5736 TextEndBattle
- dw Route12EndBattleText3 ; 0x5736 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_2
+ dw Route12BattleText3 ; TextBeforeBattle
+ dw Route12AfterBattleText3 ; TextAfterBattle
+ dw Route12EndBattleText3 ; TextEndBattle
+ dw Route12EndBattleText3 ; TextEndBattle
Route12TrainerHeader3: ; 596b5 (16:56b5)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd7d7 ; flag's byte
- dw Route12BattleText4 ; 0x574a TextBeforeBattle
- dw Route12AfterBattleText4 ; 0x5754 TextAfterBattle
- dw Route12EndBattleText4 ; 0x574f TextEndBattle
- dw Route12EndBattleText4 ; 0x574f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_3
+ dw Route12BattleText4 ; TextBeforeBattle
+ dw Route12AfterBattleText4 ; TextAfterBattle
+ dw Route12EndBattleText4 ; TextEndBattle
+ dw Route12EndBattleText4 ; TextEndBattle
Route12TrainerHeader4: ; 596c1 (16:56c1)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd7d7 ; flag's byte
- dw Route12BattleText5 ; 0x5763 TextBeforeBattle
- dw Route12AfterBattleText5 ; 0x576d TextAfterBattle
- dw Route12EndBattleText5 ; 0x5768 TextEndBattle
- dw Route12EndBattleText5 ; 0x5768 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_4
+ dw Route12BattleText5 ; TextBeforeBattle
+ dw Route12AfterBattleText5 ; TextAfterBattle
+ dw Route12EndBattleText5 ; TextEndBattle
+ dw Route12EndBattleText5 ; TextEndBattle
Route12TrainerHeader5: ; 596cd (16:56cd)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7d7 ; flag's byte
- dw Route12BattleText6 ; 0x577c TextBeforeBattle
- dw Route12AfterBattleText6 ; 0x5786 TextAfterBattle
- dw Route12EndBattleText6 ; 0x5781 TextEndBattle
- dw Route12EndBattleText6 ; 0x5781 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_5
+ dw Route12BattleText6 ; TextBeforeBattle
+ dw Route12AfterBattleText6 ; TextAfterBattle
+ dw Route12EndBattleText6 ; TextEndBattle
+ dw Route12EndBattleText6 ; TextEndBattle
Route12TrainerHeader6: ; 596d9 (16:56d9)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_6, 1
db ($1 << 4) ; trainer's view range
- dw wd7d7 ; flag's byte
- dw Route12BattleText7 ; 0x5795 TextBeforeBattle
- dw Route12AfterBattleText7 ; 0x579f TextAfterBattle
- dw Route12EndBattleText7 ; 0x579a TextEndBattle
- dw Route12EndBattleText7 ; 0x579a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_6, 1
+ dw Route12BattleText7 ; TextBeforeBattle
+ dw Route12AfterBattleText7 ; TextAfterBattle
+ dw Route12EndBattleText7 ; TextEndBattle
+ dw Route12EndBattleText7 ; TextEndBattle
db $ff
@@ -157,7 +155,7 @@ Route12Text14: ; 596f0 (16:56f0)
db "@"
Route12Text2: ; 596f5 (16:56f5)
- db $08 ; asm
+ TX_ASM
ld hl, Route12TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -175,7 +173,7 @@ Route12AfterBattleText1: ; 59709 (16:5709)
db "@"
Route12Text3: ; 5970e (16:570e)
- db $08 ; asm
+ TX_ASM
ld hl, Route12TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -193,7 +191,7 @@ Route12AfterBattleText2: ; 59722 (16:5722)
db "@"
Route12Text4: ; 59727 (16:5727)
- db $08 ; asm
+ TX_ASM
ld hl, Route12TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -211,7 +209,7 @@ Route12AfterBattleText3: ; 5973b (16:573b)
db "@"
Route12Text5: ; 59740 (16:5740)
- db $08 ; asm
+ TX_ASM
ld hl, Route12TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -229,7 +227,7 @@ Route12AfterBattleText4: ; 59754 (16:5754)
db "@"
Route12Text6: ; 59759 (16:5759)
- db $08 ; asm
+ TX_ASM
ld hl, Route12TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -247,7 +245,7 @@ Route12AfterBattleText5: ; 5976d (16:576d)
db "@"
Route12Text7: ; 59772 (16:5772)
- db $08 ; asm
+ TX_ASM
ld hl, Route12TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -265,7 +263,7 @@ Route12AfterBattleText6: ; 59786 (16:5786)
db "@"
Route12Text8: ; 5978b (16:578b)
- db $08 ; asm
+ TX_ASM
ld hl, Route12TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route12gateupstairs.asm b/scripts/route12gateupstairs.asm
index c4c05cd6..e7ad5cbf 100755
--- a/scripts/route12gateupstairs.asm
+++ b/scripts/route12gateupstairs.asm
@@ -7,28 +7,26 @@ Route12GateUpstairsTextPointers: ; 49563 (12:5563)
dw Route12GateUpstairsText3
Route12GateUpstairsText1: ; 49569 (12:5569)
- db $08 ; asm
- ld a, [wd7d7]
- rrca
- jr c, .asm_0ad3c ; 0x4956e
+ TX_ASM
+ CheckEvent EVENT_GOT_TM39, 1
+ jr c, .asm_0ad3c
ld hl, TM39PreReceiveText
call PrintText
- ld bc, (TM_39 << 8) | 1
+ lb bc, TM_39, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedTM39Text
call PrintText
- ld hl, wd7d7
- set 0, [hl]
- jr .asm_4ba56 ; 0x49589
+ SetEvent EVENT_GOT_TM39
+ jr .asm_4ba56
.BagFull
ld hl, TM39NoRoomText
call PrintText
- jr .asm_4ba56 ; 0x49591
-.asm_0ad3c ; 0x49593
+ jr .asm_4ba56
+.asm_0ad3c
ld hl, TM39ExplanationText
call PrintText
-.asm_4ba56 ; 0x49599
+.asm_4ba56
jp TextScriptEnd
TM39PreReceiveText: ; 4959c (12:559c)
@@ -48,32 +46,32 @@ TM39NoRoomText: ; 495ac (12:55ac)
db "@"
Route12GateUpstairsText2: ; 495b1 (12:55b1)
- db $08 ; asm
+ TX_ASM
ld hl, Route12GateUpstairsText_495b8
- jp Route12GateUpstairsScript_495c9
+ jp GateUpstairsScript_PrintIfFacingUp
Route12GateUpstairsText_495b8: ; 495b8 (12:55b8)
TX_FAR _Route12GateUpstairsText_495b8
db "@"
Route12GateUpstairsText3: ; 495bd (12:55bd)
- db $8
+ TX_ASM
ld hl, Route12GateUpstairsText_495c4
- jp Route12GateUpstairsScript_495c9
+ jp GateUpstairsScript_PrintIfFacingUp
Route12GateUpstairsText_495c4: ; 495c4 (12:55c4)
TX_FAR _Route12GateUpstairsText_495c4
db "@"
-Route12GateUpstairsScript_495c9: ; 495c9 (12:55c9)
+GateUpstairsScript_PrintIfFacingUp: ; 495c9 (12:55c9)
ld a, [wSpriteStateData1 + 9]
- cp $4
- jr z, .asm_495d4 ; 0x495ce $4
+ cp SPRITE_FACING_UP
+ jr z, .up
ld a, $1
- jr .asm_495d8 ; 0x495d2 $4
-.asm_495d4
+ jr .done
+.up
call PrintText
xor a
-.asm_495d8
+.done
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
jp TextScriptEnd
diff --git a/scripts/route12house.asm b/scripts/route12house.asm
index 44667b24..bb065f1c 100755
--- a/scripts/route12house.asm
+++ b/scripts/route12house.asm
@@ -5,7 +5,7 @@ Route12HouseTextPointers: ; 56482 (15:6482)
dw Route12HouseText1
Route12HouseText1: ; 56484 (15:6484)
- db $08 ; asm
+ TX_ASM
ld a, [wd728]
bit 5, a
jr nz, .asm_b4cad
@@ -15,7 +15,7 @@ Route12HouseText1: ; 56484 (15:6484)
ld a, [wCurrentMenuItem]
and a
jr nz, .asm_a2d76
- ld bc, (SUPER_ROD << 8) | 1
+ lb bc, SUPER_ROD, 1
call GiveItem
jr nc, .BagFull
ld hl, wd728
@@ -27,7 +27,7 @@ Route12HouseText1: ; 56484 (15:6484)
jr .asm_df984
.asm_a2d76
ld hl, Route12HouseText_564cf
- jr .asm_df984 ; 0x564b5
+ jr .asm_df984
.asm_b4cad
ld hl, Route12HouseText_564d4
.asm_df984
@@ -39,9 +39,9 @@ Route12HouseText_564c0: ; 564c0 (15:64c0)
db "@"
Route12HouseText_564c5: ; 564c5 (15:64c5)
- TX_FAR _Route12HouseText_564c5 ; 0x8ca00
+ TX_FAR _Route12HouseText_564c5
db $0B
- TX_FAR _Route12HouseText_564ca ; 0x8ca4f
+ TX_FAR _Route12HouseText_564ca
db "@"
Route12HouseText_564cf: ; 564cf (15:64cf)
diff --git a/scripts/route13.asm b/scripts/route13.asm
index 21862dfc..ab061071 100755
--- a/scripts/route13.asm
+++ b/scripts/route13.asm
@@ -29,99 +29,99 @@ Route13TextPointers: ; 55837 (15:5837)
Route13TrainerHeaders: ; 55851 (15:5851)
Route13TrainerHeader0: ; 55851 (15:5851)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText2 ; 0x58d4 TextBeforeBattle
- dw Route13AfterBattleText2 ; 0x58de TextAfterBattle
- dw Route13EndBattleText2 ; 0x58d9 TextEndBattle
- dw Route13EndBattleText2 ; 0x58d9 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_0
+ dw Route13BattleText2 ; TextBeforeBattle
+ dw Route13AfterBattleText2 ; TextAfterBattle
+ dw Route13EndBattleText2 ; TextEndBattle
+ dw Route13EndBattleText2 ; TextEndBattle
Route13TrainerHeader2: ; 5585d (15:585d)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText3 ; 0x58ed TextBeforeBattle
- dw Route13AfterBattleText3 ; 0x58f7 TextAfterBattle
- dw Route13EndBattleText3 ; 0x58f2 TextEndBattle
- dw Route13EndBattleText3 ; 0x58f2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_2
+ dw Route13BattleText3 ; TextBeforeBattle
+ dw Route13AfterBattleText3 ; TextAfterBattle
+ dw Route13EndBattleText3 ; TextEndBattle
+ dw Route13EndBattleText3 ; TextEndBattle
Route13TrainerHeader3: ; 55869 (15:5869)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText4 ; 0x5906 TextBeforeBattle
- dw Route13AfterBattleText4 ; 0x5910 TextAfterBattle
- dw Route13EndBattleText4 ; 0x590b TextEndBattle
- dw Route13EndBattleText4 ; 0x590b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_3
+ dw Route13BattleText4 ; TextBeforeBattle
+ dw Route13AfterBattleText4 ; TextAfterBattle
+ dw Route13EndBattleText4 ; TextEndBattle
+ dw Route13EndBattleText4 ; TextEndBattle
Route13TrainerHeader4: ; 55875 (15:5875)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_4
db ($2 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText5 ; 0x591f TextBeforeBattle
- dw Route13AfterBattleText5 ; 0x5929 TextAfterBattle
- dw Route13EndBattleText5 ; 0x5924 TextEndBattle
- dw Route13EndBattleText5 ; 0x5924 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_4
+ dw Route13BattleText5 ; TextBeforeBattle
+ dw Route13AfterBattleText5 ; TextAfterBattle
+ dw Route13EndBattleText5 ; TextEndBattle
+ dw Route13EndBattleText5 ; TextEndBattle
Route13TrainerHeader5: ; 55881 (15:5881)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText6 ; 0x5938 TextBeforeBattle
- dw Route13AfterBattleText6 ; 0x5942 TextAfterBattle
- dw Route13EndBattleText6 ; 0x593d TextEndBattle
- dw Route13EndBattleText6 ; 0x593d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_5
+ dw Route13BattleText6 ; TextBeforeBattle
+ dw Route13AfterBattleText6 ; TextAfterBattle
+ dw Route13EndBattleText6 ; TextEndBattle
+ dw Route13EndBattleText6 ; TextEndBattle
Route13TrainerHeader6: ; 5588d (15:588d)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_6
db ($2 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText7 ; 0x5951 TextBeforeBattle
- dw Route13AfterBattleText7 ; 0x595b TextAfterBattle
- dw Route13EndBattleText7 ; 0x5956 TextEndBattle
- dw Route13EndBattleText7 ; 0x5956 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_6
+ dw Route13BattleText7 ; TextBeforeBattle
+ dw Route13AfterBattleText7 ; TextAfterBattle
+ dw Route13EndBattleText7 ; TextEndBattle
+ dw Route13EndBattleText7 ; TextEndBattle
Route13TrainerHeader7: ; 55899 (15:5899)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_7
db ($4 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText8 ; 0x596a TextBeforeBattle
- dw Route13AfterBattleText8 ; 0x5974 TextAfterBattle
- dw Route13EndBattleText8 ; 0x596f TextEndBattle
- dw Route13EndBattleText8 ; 0x596f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_7
+ dw Route13BattleText8 ; TextBeforeBattle
+ dw Route13AfterBattleText8 ; TextAfterBattle
+ dw Route13EndBattleText8 ; TextEndBattle
+ dw Route13EndBattleText8 ; TextEndBattle
Route13TrainerHeader8: ; 558a5 (15:58a5)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_8, 1
db ($2 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText9 ; 0x5983 TextBeforeBattle
- dw Route13AfterBattleText9 ; 0x598d TextAfterBattle
- dw Route13EndBattleText9 ; 0x5988 TextEndBattle
- dw Route13EndBattleText9 ; 0x5988 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_8, 1
+ dw Route13BattleText9 ; TextBeforeBattle
+ dw Route13AfterBattleText9 ; TextAfterBattle
+ dw Route13EndBattleText9 ; TextEndBattle
+ dw Route13EndBattleText9 ; TextEndBattle
Route13TrainerHeader9: ; 558b1 (15:58b1)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_9, 1
db ($2 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText10 ; 0x599c TextBeforeBattle
- dw Route13AfterBattleText10 ; 0x59a6 TextAfterBattle
- dw Route13EndBattleText10 ; 0x59a1 TextEndBattle
- dw Route13EndBattleText10 ; 0x59a1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_9, 1
+ dw Route13BattleText10 ; TextBeforeBattle
+ dw Route13AfterBattleText10 ; TextAfterBattle
+ dw Route13EndBattleText10 ; TextEndBattle
+ dw Route13EndBattleText10 ; TextEndBattle
Route13TrainerHeader10: ; 558bd (15:58bd)
- db $a ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_10, 1
db ($4 << 4) ; trainer's view range
- dw wd7d9 ; flag's byte
- dw Route13BattleText11 ; 0x59b5 TextBeforeBattle
- dw Route13AfterBattleText11 ; 0x59bf TextAfterBattle
- dw Route13EndBattleText11 ; 0x59ba TextEndBattle
- dw Route13EndBattleText11 ; 0x59ba TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_10, 1
+ dw Route13BattleText11 ; TextBeforeBattle
+ dw Route13AfterBattleText11 ; TextAfterBattle
+ dw Route13EndBattleText11 ; TextEndBattle
+ dw Route13EndBattleText11 ; TextEndBattle
db $ff
Route13Text1: ; 558ca (15:58ca)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -139,7 +139,7 @@ Route13AfterBattleText2: ; 558de (15:58de)
db "@"
Route13Text2: ; 558e3 (15:58e3)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -157,7 +157,7 @@ Route13AfterBattleText3: ; 558f7 (15:58f7)
db "@"
Route13Text3: ; 558fc (15:58fc)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -175,7 +175,7 @@ Route13AfterBattleText4: ; 55910 (15:5910)
db "@"
Route13Text4: ; 55915 (15:5915)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -193,7 +193,7 @@ Route13AfterBattleText5: ; 55929 (15:5929)
db "@"
Route13Text5: ; 5592e (15:592e)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -211,7 +211,7 @@ Route13AfterBattleText6: ; 55942 (15:5942)
db "@"
Route13Text6: ; 55947 (15:5947)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -229,7 +229,7 @@ Route13AfterBattleText7: ; 5595b (15:595b)
db "@"
Route13Text7: ; 55960 (15:5960)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
@@ -247,7 +247,7 @@ Route13AfterBattleText8: ; 55974 (15:5974)
db "@"
Route13Text8: ; 55979 (15:5979)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
@@ -265,7 +265,7 @@ Route13AfterBattleText9: ; 5598d (15:598d)
db "@"
Route13Text9: ; 55992 (15:5992)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader9
call TalkToTrainer
jp TextScriptEnd
@@ -283,7 +283,7 @@ Route13AfterBattleText10: ; 559a6 (15:59a6)
db "@"
Route13Text10: ; 559ab (15:59ab)
- db $08 ; asm
+ TX_ASM
ld hl, Route13TrainerHeader10
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route14.asm b/scripts/route14.asm
index d430f858..d65e257f 100755
--- a/scripts/route14.asm
+++ b/scripts/route14.asm
@@ -27,99 +27,99 @@ Route14TextPointers: ; 559ec (15:59ec)
Route14TrainerHeaders: ; 55a02 (15:5a02)
Route14TrainerHeader0: ; 55a02 (15:5a02)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText1 ; 0x5a85 TextBeforeBattle
- dw Route14AfterBattleText1 ; 0x5a8f TextAfterBattle
- dw Route14EndBattleText1 ; 0x5a8a TextEndBattle
- dw Route14EndBattleText1 ; 0x5a8a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_0
+ dw Route14BattleText1 ; TextBeforeBattle
+ dw Route14AfterBattleText1 ; TextAfterBattle
+ dw Route14EndBattleText1 ; TextEndBattle
+ dw Route14EndBattleText1 ; TextEndBattle
Route14TrainerHeader1: ; 55a0e (15:5a0e)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_1
db ($2 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText2 ; 0x5a9e TextBeforeBattle
- dw Route14AfterBattleText2 ; 0x5aa8 TextAfterBattle
- dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle
- dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_1
+ dw Route14BattleText2 ; TextBeforeBattle
+ dw Route14AfterBattleText2 ; TextAfterBattle
+ dw Route14EndBattleText2 ; TextEndBattle
+ dw Route14EndBattleText2 ; TextEndBattle
Route14TrainerHeader2: ; 55a1a (15:5a1a)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText3 ; 0x5ab7 TextBeforeBattle
- dw Route14AfterBattleText3 ; 0x5ac1 TextAfterBattle
- dw Route14EndBattleText3 ; 0x5abc TextEndBattle
- dw Route14EndBattleText3 ; 0x5abc TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_2
+ dw Route14BattleText3 ; TextBeforeBattle
+ dw Route14AfterBattleText3 ; TextAfterBattle
+ dw Route14EndBattleText3 ; TextEndBattle
+ dw Route14EndBattleText3 ; TextEndBattle
Route14TrainerHeader3: ; 55a26 (15:5a26)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText4 ; 0x5ad0 TextBeforeBattle
- dw Route14AfterBattleText4 ; 0x5ada TextAfterBattle
- dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle
- dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_3
+ dw Route14BattleText4 ; TextBeforeBattle
+ dw Route14AfterBattleText4 ; TextAfterBattle
+ dw Route14EndBattleText4 ; TextEndBattle
+ dw Route14EndBattleText4 ; TextEndBattle
Route14TrainerHeader4: ; 55a32 (15:5a32)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText5 ; 0x5ae9 TextBeforeBattle
- dw Route14AfterBattleText5 ; 0x5af3 TextAfterBattle
- dw Route14EndBattleText5 ; 0x5aee TextEndBattle
- dw Route14EndBattleText5 ; 0x5aee TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_4
+ dw Route14BattleText5 ; TextBeforeBattle
+ dw Route14AfterBattleText5 ; TextAfterBattle
+ dw Route14EndBattleText5 ; TextEndBattle
+ dw Route14EndBattleText5 ; TextEndBattle
Route14TrainerHeader5: ; 55a3e (15:5a3e)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText6 ; 0x5b02 TextBeforeBattle
- dw Route14AfterBattleText6 ; 0x5b0c TextAfterBattle
- dw Route14EndBattleText6 ; 0x5b07 TextEndBattle
- dw Route14EndBattleText6 ; 0x5b07 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_5
+ dw Route14BattleText6 ; TextBeforeBattle
+ dw Route14AfterBattleText6 ; TextAfterBattle
+ dw Route14EndBattleText6 ; TextEndBattle
+ dw Route14EndBattleText6 ; TextEndBattle
Route14TrainerHeader6: ; 55a4a (15:5a4a)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_6
db ($4 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText7 ; 0x5b1b TextBeforeBattle
- dw Route14AfterBattleText7 ; 0x5b25 TextAfterBattle
- dw Route14EndBattleText7 ; 0x5b20 TextEndBattle
- dw Route14EndBattleText7 ; 0x5b20 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_6
+ dw Route14BattleText7 ; TextBeforeBattle
+ dw Route14AfterBattleText7 ; TextAfterBattle
+ dw Route14EndBattleText7 ; TextEndBattle
+ dw Route14EndBattleText7 ; TextEndBattle
Route14TrainerHeader7: ; 55a56 (15:5a56)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_7, 1
db ($4 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText8 ; 0x5b34 TextBeforeBattle
- dw Route14AfterBattleText8 ; 0x5b3e TextAfterBattle
- dw Route14EndBattleText8 ; 0x5b39 TextEndBattle
- dw Route14EndBattleText8 ; 0x5b39 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_7, 1
+ dw Route14BattleText8 ; TextBeforeBattle
+ dw Route14AfterBattleText8 ; TextAfterBattle
+ dw Route14EndBattleText8 ; TextEndBattle
+ dw Route14EndBattleText8 ; TextEndBattle
Route14TrainerHeader8: ; 55a62 (15:5a62)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_8, 1
db ($3 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText9 ; 0x5b4d TextBeforeBattle
- dw Route14AfterBattleText9 ; 0x5b57 TextAfterBattle
- dw Route14EndBattleText9 ; 0x5b52 TextEndBattle
- dw Route14EndBattleText9 ; 0x5b52 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_8, 1
+ dw Route14BattleText9 ; TextBeforeBattle
+ dw Route14AfterBattleText9 ; TextAfterBattle
+ dw Route14EndBattleText9 ; TextEndBattle
+ dw Route14EndBattleText9 ; TextEndBattle
Route14TrainerHeader9: ; 55a6e (15:5a6e)
- db $a ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_9, 1
db ($4 << 4) ; trainer's view range
- dw wd7db ; flag's byte
- dw Route14BattleText10 ; 0x5b66 TextBeforeBattle
- dw Route14AfterBattleText10 ; 0x5b70 TextAfterBattle
- dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
- dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_9, 1
+ dw Route14BattleText10 ; TextBeforeBattle
+ dw Route14AfterBattleText10 ; TextAfterBattle
+ dw Route14EndBattleText10 ; TextEndBattle
+ dw Route14EndBattleText10 ; TextEndBattle
db $ff
Route14Text1: ; 55a7b (15:5a7b)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -137,7 +137,7 @@ Route14AfterBattleText1: ; 55a8f (15:5a8f)
db "@"
Route14Text2: ; 55a94 (15:5a94)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -155,7 +155,7 @@ Route14AfterBattleText2: ; 55aa8 (15:5aa8)
db "@"
Route14Text3: ; 55aad (15:5aad)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -173,7 +173,7 @@ Route14AfterBattleText3: ; 55ac1 (15:5ac1)
db "@"
Route14Text4: ; 55ac6 (15:5ac6)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -191,7 +191,7 @@ Route14AfterBattleText4: ; 55ada (15:5ada)
db "@"
Route14Text5: ; 55adf (15:5adf)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -209,7 +209,7 @@ Route14AfterBattleText5: ; 55af3 (15:5af3)
db "@"
Route14Text6: ; 55af8 (15:5af8)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -227,7 +227,7 @@ Route14AfterBattleText6: ; 55b0c (15:5b0c)
db "@"
Route14Text7: ; 55b11 (15:5b11)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -245,7 +245,7 @@ Route14AfterBattleText7: ; 55b25 (15:5b25)
db "@"
Route14Text8: ; 55b2a (15:5b2a)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
@@ -263,7 +263,7 @@ Route14AfterBattleText8: ; 55b3e (15:5b3e)
db "@"
Route14Text9: ; 55b43 (15:5b43)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
@@ -281,7 +281,7 @@ Route14AfterBattleText9: ; 55b57 (15:5b57)
db "@"
Route14Text10: ; 55b5c (15:5b5c)
- db $08 ; asm
+ TX_ASM
ld hl, Route14TrainerHeader9
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route15.asm b/scripts/route15.asm
index 733d4a1c..023f859c 100755
--- a/scripts/route15.asm
+++ b/scripts/route15.asm
@@ -23,151 +23,151 @@ Route15TextPointers: ; 597c7 (16:57c7)
dw Route15Text8
dw Route15Text9
dw Route15Text10
- dw Predef5CText
+ dw PickUpItemText
dw Route15Text12
Route15TrainerHeaders: ; 597df (16:57df)
Route15TrainerHeader0: ; 597df (16:57df)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText1 ; 0x5898 TextBeforeBattle
- dw Route15AfterBattleText1 ; 0x58a2 TextAfterBattle
- dw Route15EndBattleText1 ; 0x589d TextEndBattle
- dw Route15EndBattleText1 ; 0x589d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_0
+ dw Route15BattleText1 ; TextBeforeBattle
+ dw Route15AfterBattleText1 ; TextAfterBattle
+ dw Route15EndBattleText1 ; TextEndBattle
+ dw Route15EndBattleText1 ; TextEndBattle
Route15TrainerHeader1: ; 597eb (16:57eb)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText2 ; 0x58a7 TextBeforeBattle
- dw Route15AfterBattleText2 ; 0x58b1 TextAfterBattle
- dw Route15EndBattleText2 ; 0x58ac TextEndBattle
- dw Route15EndBattleText2 ; 0x58ac TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_1
+ dw Route15BattleText2 ; TextBeforeBattle
+ dw Route15AfterBattleText2 ; TextAfterBattle
+ dw Route15EndBattleText2 ; TextEndBattle
+ dw Route15EndBattleText2 ; TextEndBattle
Route15TrainerHeader2: ; 597f7 (16:57f7)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText3 ; 0x58b6 TextBeforeBattle
- dw Route15AfterBattleText3 ; 0x58c0 TextAfterBattle
- dw Route15EndBattleText3 ; 0x58bb TextEndBattle
- dw Route15EndBattleText3 ; 0x58bb TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_2
+ dw Route15BattleText3 ; TextBeforeBattle
+ dw Route15AfterBattleText3 ; TextAfterBattle
+ dw Route15EndBattleText3 ; TextEndBattle
+ dw Route15EndBattleText3 ; TextEndBattle
Route15TrainerHeader3: ; 59803 (16:5803)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText4 ; 0x58c5 TextBeforeBattle
- dw Route15AfterBattleText4 ; 0x58cf TextAfterBattle
- dw Route15EndBattleText4 ; 0x58ca TextEndBattle
- dw Route15EndBattleText4 ; 0x58ca TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_3
+ dw Route15BattleText4 ; TextBeforeBattle
+ dw Route15AfterBattleText4 ; TextAfterBattle
+ dw Route15EndBattleText4 ; TextEndBattle
+ dw Route15EndBattleText4 ; TextEndBattle
Route15TrainerHeader4: ; 5980f (16:580f)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_4
db ($2 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText5 ; 0x58d4 TextBeforeBattle
- dw Route15AfterBattleText5 ; 0x58de TextAfterBattle
- dw Route15EndBattleText5 ; 0x58d9 TextEndBattle
- dw Route15EndBattleText5 ; 0x58d9 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_4
+ dw Route15BattleText5 ; TextBeforeBattle
+ dw Route15AfterBattleText5 ; TextAfterBattle
+ dw Route15EndBattleText5 ; TextEndBattle
+ dw Route15EndBattleText5 ; TextEndBattle
Route15TrainerHeader5: ; 5981b (16:581b)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText6 ; 0x58e3 TextBeforeBattle
- dw Route15AfterBattleText6 ; 0x58ed TextAfterBattle
- dw Route15EndBattleText6 ; 0x58e8 TextEndBattle
- dw Route15EndBattleText6 ; 0x58e8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_5
+ dw Route15BattleText6 ; TextBeforeBattle
+ dw Route15AfterBattleText6 ; TextAfterBattle
+ dw Route15EndBattleText6 ; TextEndBattle
+ dw Route15EndBattleText6 ; TextEndBattle
Route15TrainerHeader6: ; 59827 (16:5827)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_6
db ($3 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText7 ; 0x58f2 TextBeforeBattle
- dw Route15AfterBattleText7 ; 0x58fc TextAfterBattle
- dw Route15EndBattleText7 ; 0x58f7 TextEndBattle
- dw Route15EndBattleText7 ; 0x58f7 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_6
+ dw Route15BattleText7 ; TextBeforeBattle
+ dw Route15AfterBattleText7 ; TextAfterBattle
+ dw Route15EndBattleText7 ; TextEndBattle
+ dw Route15EndBattleText7 ; TextEndBattle
Route15TrainerHeader7: ; 59833 (16:5833)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_7, 1
db ($3 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText8 ; 0x5901 TextBeforeBattle
- dw Route15AfterBattleText8 ; 0x590b TextAfterBattle
- dw Route15EndBattleText8 ; 0x5906 TextEndBattle
- dw Route15EndBattleText8 ; 0x5906 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_7, 1
+ dw Route15BattleText8 ; TextBeforeBattle
+ dw Route15AfterBattleText8 ; TextAfterBattle
+ dw Route15EndBattleText8 ; TextEndBattle
+ dw Route15EndBattleText8 ; TextEndBattle
Route15TrainerHeader8: ; 5983f (16:583f)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_8, 1
db ($3 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText9 ; 0x5910 TextBeforeBattle
- dw Route15AfterBattleText9 ; 0x591a TextAfterBattle
- dw Route15EndBattleText9 ; 0x5915 TextEndBattle
- dw Route15EndBattleText9 ; 0x5915 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_8, 1
+ dw Route15BattleText9 ; TextBeforeBattle
+ dw Route15AfterBattleText9 ; TextAfterBattle
+ dw Route15EndBattleText9 ; TextEndBattle
+ dw Route15EndBattleText9 ; TextEndBattle
Route15TrainerHeader9: ; 5984b (16:584b)
- db $a ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_9, 1
db ($3 << 4) ; trainer's view range
- dw wd7dd ; flag's byte
- dw Route15BattleText10 ; 0x591f TextBeforeBattle
- dw Route15AfterBattleText10 ; 0x5929 TextAfterBattle
- dw Route15EndBattleText10 ; 0x5924 TextEndBattle
- dw Route15EndBattleText10 ; 0x5924 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_9, 1
+ dw Route15BattleText10 ; TextBeforeBattle
+ dw Route15AfterBattleText10 ; TextAfterBattle
+ dw Route15EndBattleText10 ; TextEndBattle
+ dw Route15EndBattleText10 ; TextEndBattle
db $ff
Route15Text1: ; 59858 (16:5858)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader0
- jr asm_33cb7 ; 0x5985c $34
+ jr Route15TalkToTrainer
Route15Text2: ; 5985e (16:585e)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader1
- jr asm_33cb7 ; 0x59862 $2e
+ jr Route15TalkToTrainer
Route15Text3: ; 59864 (16:5864)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader2
- jr asm_33cb7 ; 0x59868 $28
+ jr Route15TalkToTrainer
Route15Text4: ; 5986a (16:586a)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader3
- jr asm_33cb7 ; 0x5986e $22
+ jr Route15TalkToTrainer
Route15Text5: ; 59870 (16:5870)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader4
- jr asm_33cb7 ; 0x59874 $1c
+ jr Route15TalkToTrainer
Route15Text6: ; 59876 (16:5876)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader5
- jr asm_33cb7 ; 0x5987a $16
+ jr Route15TalkToTrainer
Route15Text7: ; 5987c (16:587c)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader6
- jr asm_33cb7 ; 0x59880 $10
+ jr Route15TalkToTrainer
Route15Text8: ; 59882 (16:5882)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader7
- jr asm_33cb7 ; 0x59886 $a
+ jr Route15TalkToTrainer
Route15Text9: ; 59888 (16:5888)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader8
- jr asm_33cb7 ; 0x5988c $4
+ jr Route15TalkToTrainer
Route15Text10: ; 5988e (16:588e)
- db $8 ; asm
+ TX_ASM
ld hl, Route15TrainerHeader9
-asm_33cb7: ; 59892 (16:5892)
+Route15TalkToTrainer: ; 59892 (16:5892)
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route15gateupstairs.asm b/scripts/route15gateupstairs.asm
index 2d328122..332df6b6 100755
--- a/scripts/route15gateupstairs.asm
+++ b/scripts/route15gateupstairs.asm
@@ -6,26 +6,24 @@ Route15GateUpstairsTextPointers: ; 4964d (12:564d)
dw Route15GateUpstairsText2
Route15GateUpstairsText1: ; 49651 (12:5651)
- db $8
- ld a, [wd7dd]
- bit 0, a
- jr nz, .asm_49683 ; 0x49657 $2a
+ TX_ASM
+ CheckEvent EVENT_GOT_EXP_ALL
+ jr nz, .asm_49683
ld a, 50 ; pokemon needed
- ld [$ffdb], a
+ ld [hOaksAideRequirement], a
ld a, EXP__ALL ; oak's aide reward
- ld [$ffdc], a
+ ld [hOaksAideRewardItem], a
ld [wd11e], a
call GetItemName
ld hl, wcd6d
- ld de, wcc5b
- ld bc, $000d
+ ld de, wOaksAideRewardItemName
+ ld bc, ITEM_NAME_LENGTH
call CopyData
- predef OaksAideScript ; call oak's aide script
- ld a, [$ffdb]
+ predef OaksAideScript
+ ld a, [hOaksAideResult]
cp $1
- jr nz, .asm_49689 ; 0x4967c $b
- ld hl, wd7dd
- set 0, [hl]
+ jr nz, .asm_49689
+ SetEvent EVENT_GOT_EXP_ALL
.asm_49683
ld hl, Route15GateUpstairsText_4968c
call PrintText
@@ -37,9 +35,9 @@ Route15GateUpstairsText_4968c: ; 4968c (12:568c)
db "@"
Route15GateUpstairsText2: ; 49691 (12:5691)
- db $8
+ TX_ASM
ld hl, Route15GateUpstairsText_49698
- jp Route12GateUpstairsScript_495c9
+ jp GateUpstairsScript_PrintIfFacingUp
Route15GateUpstairsText_49698: ; 49698 (12:5698)
TX_FAR _Route15GateUpstairsText_49698
diff --git a/scripts/route16.asm b/scripts/route16.asm
index ef5b5859..c762c999 100755
--- a/scripts/route16.asm
+++ b/scripts/route16.asm
@@ -21,21 +21,20 @@ Route16ScriptPointers: ; 59951 (16:5951)
dw Route16Script3
Route16Script0: ; 59959 (16:5959)
- ld hl, wd7e0
- bit 1, [hl]
+ CheckEventHL EVENT_BEAT_ROUTE16_SNORLAX
jp nz, CheckFightingMapTrainers
- bit 0, [hl]
- res 0, [hl]
+ CheckEventReuseHL EVENT_FIGHT_ROUTE16_SNORLAX
+ ResetEventReuseHL EVENT_FIGHT_ROUTE16_SNORLAX
jp z, CheckFightingMapTrainers
ld a, $a
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, SNORLAX
- ld [W_CUROPPONENT], a ; wd059
+ ld [W_CUROPPONENT], a
ld a, 30
- ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
+ ld [W_CURENEMYLVL], a
ld a, HS_ROUTE_16_SNORLAX
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call UpdateSprites
ld a, $3
@@ -44,7 +43,7 @@ Route16Script0: ; 59959 (16:5959)
ret
Route16Script3: ; 5998f (16:598f)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, Route16Script_59946
call UpdateSprites
@@ -52,11 +51,10 @@ Route16Script3: ; 5998f (16:598f)
cp $2
jr z, .asm_599a8
ld a, $b
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_599a8
- ld hl, wd7e0
- set 1, [hl]
+ SetEvent EVENT_BEAT_ROUTE16_SNORLAX
call Delay3
ld a, $0
ld [W_ROUTE16CURSCRIPT], a
@@ -78,63 +76,63 @@ Route16TextPointers: ; 599b9 (16:59b9)
Route16TrainerHeaders: ; 599cf (16:59cf)
Route16TrainerHeader0: ; 599cf (16:59cf)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd7df ; flag's byte
- dw Route16BattleText1 ; 0x5a22 TextBeforeBattle
- dw Route16AfterBattleText1 ; 0x5a2c TextAfterBattle
- dw Route16EndBattleText1 ; 0x5a27 TextEndBattle
- dw Route16EndBattleText1 ; 0x5a27 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_0
+ dw Route16BattleText1 ; TextBeforeBattle
+ dw Route16AfterBattleText1 ; TextAfterBattle
+ dw Route16EndBattleText1 ; TextEndBattle
+ dw Route16EndBattleText1 ; TextEndBattle
Route16TrainerHeader1: ; 599db (16:59db)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_1
db ($2 << 4) ; trainer's view range
- dw wd7df ; flag's byte
- dw Route16BattleText2 ; 0x5a3b TextBeforeBattle
- dw Route16AfterBattleText2 ; 0x5a45 TextAfterBattle
- dw Route16EndBattleText2 ; 0x5a40 TextEndBattle
- dw Route16EndBattleText2 ; 0x5a40 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_1
+ dw Route16BattleText2 ; TextBeforeBattle
+ dw Route16AfterBattleText2 ; TextAfterBattle
+ dw Route16EndBattleText2 ; TextEndBattle
+ dw Route16EndBattleText2 ; TextEndBattle
Route16TrainerHeader2: ; 599e7 (16:59e7)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd7df ; flag's byte
- dw Route16BattleText3 ; 0x5a54 TextBeforeBattle
- dw Route16AfterBattleText3 ; 0x5a5e TextAfterBattle
- dw Route16EndBattleText3 ; 0x5a59 TextEndBattle
- dw Route16EndBattleText3 ; 0x5a59 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_2
+ dw Route16BattleText3 ; TextBeforeBattle
+ dw Route16AfterBattleText3 ; TextAfterBattle
+ dw Route16EndBattleText3 ; TextEndBattle
+ dw Route16EndBattleText3 ; TextEndBattle
Route16TrainerHeader3: ; 599f3 (16:59f3)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd7df ; flag's byte
- dw Route16BattleText4 ; 0x5a6d TextBeforeBattle
- dw Route16AfterBattleText4 ; 0x5a77 TextAfterBattle
- dw Route16EndBattleText4 ; 0x5a72 TextEndBattle
- dw Route16EndBattleText4 ; 0x5a72 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_3
+ dw Route16BattleText4 ; TextBeforeBattle
+ dw Route16AfterBattleText4 ; TextAfterBattle
+ dw Route16EndBattleText4 ; TextEndBattle
+ dw Route16EndBattleText4 ; TextEndBattle
Route16TrainerHeader4: ; 599ff (16:59ff)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_4
db ($2 << 4) ; trainer's view range
- dw wd7df ; flag's byte
- dw Route16BattleText5 ; 0x5a86 TextBeforeBattle
- dw Route16AfterBattleText5 ; 0x5a90 TextAfterBattle
- dw Route16EndBattleText5 ; 0x5a8b TextEndBattle
- dw Route16EndBattleText5 ; 0x5a8b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_4
+ dw Route16BattleText5 ; TextBeforeBattle
+ dw Route16AfterBattleText5 ; TextAfterBattle
+ dw Route16EndBattleText5 ; TextEndBattle
+ dw Route16EndBattleText5 ; TextEndBattle
Route16TrainerHeader5: ; 59a0b (16:5a0b)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7df ; flag's byte
- dw Route16BattleText6 ; 0x5a9f TextBeforeBattle
- dw Route16AfterBattleText6 ; 0x5aa9 TextAfterBattle
- dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
- dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_5
+ dw Route16BattleText6 ; TextBeforeBattle
+ dw Route16AfterBattleText6 ; TextAfterBattle
+ dw Route16EndBattleText6 ; TextEndBattle
+ dw Route16EndBattleText6 ; TextEndBattle
db $ff
Route16Text1: ; 59a18 (16:5a18)
- db $08 ; asm
+ TX_ASM
ld hl, Route16TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -152,7 +150,7 @@ Route16AfterBattleText1: ; 59a2c (16:5a2c)
db "@"
Route16Text2: ; 59a31 (16:5a31)
- db $08 ; asm
+ TX_ASM
ld hl, Route16TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -170,7 +168,7 @@ Route16AfterBattleText2: ; 59a45 (16:5a45)
db "@"
Route16Text3: ; 59a4a (16:5a4a)
- db $08 ; asm
+ TX_ASM
ld hl, Route16TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -188,7 +186,7 @@ Route16AfterBattleText3: ; 59a5e (16:5a5e)
db "@"
Route16Text4: ; 59a63 (16:5a63)
- db $08 ; asm
+ TX_ASM
ld hl, Route16TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -206,7 +204,7 @@ Route16AfterBattleText4: ; 59a77 (16:5a77)
db "@"
Route16Text5: ; 59a7c (16:5a7c)
- db $08 ; asm
+ TX_ASM
ld hl, Route16TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -224,7 +222,7 @@ Route16AfterBattleText5: ; 59a90 (16:5a90)
db "@"
Route16Text6: ; 59a95 (16:5a95)
- db $08 ; asm
+ TX_ASM
ld hl, Route16TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route16gate.asm b/scripts/route16gate.asm
index 54bca413..801e577e 100755
--- a/scripts/route16gate.asm
+++ b/scripts/route16gate.asm
@@ -19,19 +19,19 @@ Route16GateScript0: ; 496d7 (12:56d7)
call ArePlayerCoordsInArray
ret nc
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [hJoyHeld], a
- ld a, [wWhichTrade]
+ ld a, [wCoordIndex]
cp $1
- jr z, .asm_4970e ; 0x496f1 $1b
- ld a, [wWhichTrade]
+ jr z, .asm_4970e
+ ld a, [wCoordIndex]
dec a
ld [wSimulatedJoypadStatesIndex], a
ld b, $0
ld c, a
- ld a, $40
+ ld a, D_UP
ld hl, wSimulatedJoypadStatesEnd
call FillMemory
call StartSimulatingJoypadStates
@@ -59,11 +59,11 @@ Route16GateScript1: ; 4971d (12:571d)
Route16GateScript2: ; 49727 (12:5727)
ld a, $1
- ld [H_SPRITEHEIGHT], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $10
+ ld a, D_RIGHT
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
ld a, $3
@@ -92,16 +92,16 @@ Route16GateTextPointers: ; 4975a (12:575a)
dw Route16GateText3
Route16GateText1: ; 49760 (12:5760)
- db $08 ; asm
+ TX_ASM
call Route16GateScript_49755
- jr z, .asm_0bdf3 ; 0x49764
+ jr z, .asm_0bdf3
ld hl, Route16GateText_4977c
call PrintText
- jr .asm_56c9d ; 0x4976c
-.asm_0bdf3 ; 0x4976e
+ jr .asm_56c9d
+.asm_0bdf3
ld hl, Route16GateText_49777
call PrintText
-.asm_56c9d ; 0x49774
+.asm_56c9d
jp TextScriptEnd
Route16GateText_49777: ; 49777 (12:5777)
diff --git a/scripts/route16gateupstairs.asm b/scripts/route16gateupstairs.asm
index c9996dcd..64b43e10 100755
--- a/scripts/route16gateupstairs.asm
+++ b/scripts/route16gateupstairs.asm
@@ -8,7 +8,7 @@ Route16GateUpstairsTextPointers: ; 4980e (12:580e)
dw Route16GateUpstairsText4
Route16GateUpstairsText1: ; 49816 (12:5816)
- db $08 ; asm
+ TX_ASM
ld hl, Route16GateUpstairsText_49820
call PrintText
jp TextScriptEnd
@@ -18,7 +18,7 @@ Route16GateUpstairsText_49820: ; 49820 (12:5820)
db "@"
Route16GateUpstairsText2: ; 49825 (12:5825)
- db $08 ; asm
+ TX_ASM
ld hl, Route16GateUpstairsText_4982f
call PrintText
jp TextScriptEnd
@@ -28,18 +28,18 @@ Route16GateUpstairsText_4982f: ; 4982f (12:582f)
db "@"
Route16GateUpstairsText3: ; 49834 (12:5834)
- db $8
+ TX_ASM
ld hl, Route16GateUpstairsText_4983b
- jp Route12GateUpstairsScript_495c9
+ jp GateUpstairsScript_PrintIfFacingUp
Route16GateUpstairsText_4983b: ; 4983b (12:583b)
TX_FAR _Route16GateUpstairsText_4983b
db "@"
Route16GateUpstairsText4: ; 49840 (12:5840)
- db $8
- ld hl, Route16GateUpstairsText_49847 ; $5847
- jp Route12GateUpstairsScript_495c9
+ TX_ASM
+ ld hl, Route16GateUpstairsText_49847
+ jp GateUpstairsScript_PrintIfFacingUp
Route16GateUpstairsText_49847: ; 49847 (12:5847)
TX_FAR _Route16GateUpstairsText_49847
diff --git a/scripts/route16house.asm b/scripts/route16house.asm
index 9a189757..ee23fd89 100755
--- a/scripts/route16house.asm
+++ b/scripts/route16house.asm
@@ -6,23 +6,21 @@ Route16HouseTextPointers: ; 1e5fb (7:65fb)
dw Route16HouseText2
Route16HouseText1: ; 1e5ff (7:65ff)
- db $08 ; asm
- ld a, [wd7e0]
- bit 6, a
+ TX_ASM
+ CheckEvent EVENT_GOT_HM02
ld hl, HM02ExplanationText
- jr nz, .asm_13616 ; 0x1e608
+ jr nz, .asm_13616
ld hl, Route16HouseText3
call PrintText
- ld bc, (HM_02 << 8) | 1
+ lb bc, HM_02, 1
call GiveItem
jr nc, .BagFull
- ld hl, wd7e0
- set 6, [hl]
+ SetEvent EVENT_GOT_HM02
ld hl, ReceivedHM02Text
- jr .asm_13616 ; 0x1e620
+ jr .asm_13616
.BagFull
ld hl, HM02NoRoomText
-.asm_13616 ; 0x1e625
+.asm_13616
call PrintText
jp TextScriptEnd
@@ -43,7 +41,7 @@ HM02NoRoomText: ; 1e63b (7:663b)
db "@"
Route16HouseText2: ; 1e640 (7:6640)
- db $08 ; asm
+ TX_ASM
ld hl, Route16HouseText_1e652
call PrintText
ld a, FEAROW
diff --git a/scripts/route17.asm b/scripts/route17.asm
index ffd00634..28c43627 100755
--- a/scripts/route17.asm
+++ b/scripts/route17.asm
@@ -32,99 +32,99 @@ Route17TextPointers: ; 55b93 (15:5b93)
Route17TrainerHeaders: ; 55bb3 (15:5bb3)
Route17TrainerHeader0: ; 55bb3 (15:5bb3)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText1 ; 0x5c36 TextBeforeBattle
- dw Route17AfterBattleText1 ; 0x5c40 TextAfterBattle
- dw Route17EndBattleText1 ; 0x5c3b TextEndBattle
- dw Route17EndBattleText1 ; 0x5c3b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_0
+ dw Route17BattleText1 ; TextBeforeBattle
+ dw Route17AfterBattleText1 ; TextAfterBattle
+ dw Route17EndBattleText1 ; TextEndBattle
+ dw Route17EndBattleText1 ; TextEndBattle
Route17TrainerHeader1: ; 55bbf (15:5bbf)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText2 ; 0x5c4f TextBeforeBattle
- dw Route17AfterBattleText2 ; 0x5c59 TextAfterBattle
- dw Route17EndBattleText2 ; 0x5c54 TextEndBattle
- dw Route17EndBattleText2 ; 0x5c54 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_1
+ dw Route17BattleText2 ; TextBeforeBattle
+ dw Route17AfterBattleText2 ; TextAfterBattle
+ dw Route17EndBattleText2 ; TextEndBattle
+ dw Route17EndBattleText2 ; TextEndBattle
Route17TrainerHeader2: ; 55bcb (15:5bcb)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText3 ; 0x5c68 TextBeforeBattle
- dw Route17AfterBattleText3 ; 0x5c72 TextAfterBattle
- dw Route17EndBattleText3 ; 0x5c6d TextEndBattle
- dw Route17EndBattleText3 ; 0x5c6d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_2
+ dw Route17BattleText3 ; TextBeforeBattle
+ dw Route17AfterBattleText3 ; TextAfterBattle
+ dw Route17EndBattleText3 ; TextEndBattle
+ dw Route17EndBattleText3 ; TextEndBattle
Route17TrainerHeader3: ; 55bd7 (15:5bd7)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText4 ; 0x5c81 TextBeforeBattle
- dw Route17AfterBattleText4 ; 0x5c8b TextAfterBattle
- dw Route17EndBattleText4 ; 0x5c86 TextEndBattle
- dw Route17EndBattleText4 ; 0x5c86 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_3
+ dw Route17BattleText4 ; TextBeforeBattle
+ dw Route17AfterBattleText4 ; TextAfterBattle
+ dw Route17EndBattleText4 ; TextEndBattle
+ dw Route17EndBattleText4 ; TextEndBattle
Route17TrainerHeader4: ; 55be3 (15:5be3)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText5 ; 0x5c9a TextBeforeBattle
- dw Route17AfterBattleText5 ; 0x5ca4 TextAfterBattle
- dw Route17EndBattleText5 ; 0x5c9f TextEndBattle
- dw Route17EndBattleText5 ; 0x5c9f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_4
+ dw Route17BattleText5 ; TextBeforeBattle
+ dw Route17AfterBattleText5 ; TextAfterBattle
+ dw Route17EndBattleText5 ; TextEndBattle
+ dw Route17EndBattleText5 ; TextEndBattle
Route17TrainerHeader5: ; 55bef (15:5bef)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_5
db ($2 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText6 ; 0x5cb3 TextBeforeBattle
- dw Route17AfterBattleText6 ; 0x5cbd TextAfterBattle
- dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle
- dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_5
+ dw Route17BattleText6 ; TextBeforeBattle
+ dw Route17AfterBattleText6 ; TextAfterBattle
+ dw Route17EndBattleText6 ; TextEndBattle
+ dw Route17EndBattleText6 ; TextEndBattle
Route17TrainerHeader6: ; 55bfb (15:5bfb)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_6
db ($4 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText7 ; 0x5ccc TextBeforeBattle
- dw Route17AfterBattleText7 ; 0x5cd6 TextAfterBattle
- dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle
- dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_6
+ dw Route17BattleText7 ; TextBeforeBattle
+ dw Route17AfterBattleText7 ; TextAfterBattle
+ dw Route17EndBattleText7 ; TextEndBattle
+ dw Route17EndBattleText7 ; TextEndBattle
Route17TrainerHeader7: ; 55c07 (15:5c07)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_7, 1
db ($2 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText8 ; 0x5ce5 TextBeforeBattle
- dw Route17AfterBattleText8 ; 0x5cef TextAfterBattle
- dw Route17EndBattleText8 ; 0x5cea TextEndBattle
- dw Route17EndBattleText8 ; 0x5cea TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_7, 1
+ dw Route17BattleText8 ; TextBeforeBattle
+ dw Route17AfterBattleText8 ; TextAfterBattle
+ dw Route17EndBattleText8 ; TextEndBattle
+ dw Route17EndBattleText8 ; TextEndBattle
Route17TrainerHeader8: ; 55c13 (15:5c13)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_8, 1
db ($3 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText9 ; 0x5cfe TextBeforeBattle
- dw Route17AfterBattleText9 ; 0x5d08 TextAfterBattle
- dw Route17EndBattleText9 ; 0x5d03 TextEndBattle
- dw Route17EndBattleText9 ; 0x5d03 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_8, 1
+ dw Route17BattleText9 ; TextBeforeBattle
+ dw Route17AfterBattleText9 ; TextAfterBattle
+ dw Route17EndBattleText9 ; TextEndBattle
+ dw Route17EndBattleText9 ; TextEndBattle
Route17TrainerHeader9: ; 55c1f (15:5c1f)
- db $a ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_9, 1
db ($4 << 4) ; trainer's view range
- dw wd7e1 ; flag's byte
- dw Route17BattleText10 ; 0x5d17 TextBeforeBattle
- dw Route17AfterBattleText10 ; 0x5d21 TextAfterBattle
- dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
- dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_9, 1
+ dw Route17BattleText10 ; TextBeforeBattle
+ dw Route17AfterBattleText10 ; TextAfterBattle
+ dw Route17EndBattleText10 ; TextEndBattle
+ dw Route17EndBattleText10 ; TextEndBattle
db $ff
Route17Text1: ; 55c2c (15:5c2c)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -142,7 +142,7 @@ Route17AfterBattleText1: ; 55c40 (15:5c40)
db "@"
Route17Text2: ; 55c45 (15:5c45)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -160,7 +160,7 @@ Route17AfterBattleText2: ; 55c59 (15:5c59)
db "@"
Route17Text3: ; 55c5e (15:5c5e)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -178,7 +178,7 @@ Route17AfterBattleText3: ; 55c72 (15:5c72)
db "@"
Route17Text4: ; 55c77 (15:5c77)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -196,7 +196,7 @@ Route17AfterBattleText4: ; 55c8b (15:5c8b)
db "@"
Route17Text5: ; 55c90 (15:5c90)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -214,7 +214,7 @@ Route17AfterBattleText5: ; 55ca4 (15:5ca4)
db "@"
Route17Text6: ; 55ca9 (15:5ca9)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -232,7 +232,7 @@ Route17AfterBattleText6: ; 55cbd (15:5cbd)
db "@"
Route17Text7: ; 55cc2 (15:5cc2)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -250,7 +250,7 @@ Route17AfterBattleText7: ; 55cd6 (15:5cd6)
db "@"
Route17Text8: ; 55cdb (15:5cdb)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
@@ -268,7 +268,7 @@ Route17AfterBattleText8: ; 55cef (15:5cef)
db "@"
Route17Text9: ; 55cf4 (15:5cf4)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
@@ -286,7 +286,7 @@ Route17AfterBattleText9: ; 55d08 (15:5d08)
db "@"
Route17Text10: ; 55d0d (15:5d0d)
- db $08 ; asm
+ TX_ASM
ld hl, Route17TrainerHeader9
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route18.asm b/scripts/route18.asm
index de2fe19a..9a077faf 100755
--- a/scripts/route18.asm
+++ b/scripts/route18.asm
@@ -21,36 +21,36 @@ Route18TextPointers: ; 59ae0 (16:5ae0)
Route18TrainerHeaders: ; 59aea (16:5aea)
Route18TrainerHeader0: ; 59aea (16:5aea)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_18_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd7e3 ; flag's byte
- dw Route18BattleText1 ; 0x5b19 TextBeforeBattle
- dw Route18AfterBattleText1 ; 0x5b23 TextAfterBattle
- dw Route18EndBattleText1 ; 0x5b1e TextEndBattle
- dw Route18EndBattleText1 ; 0x5b1e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_18_TRAINER_0
+ dw Route18BattleText1 ; TextBeforeBattle
+ dw Route18AfterBattleText1 ; TextAfterBattle
+ dw Route18EndBattleText1 ; TextEndBattle
+ dw Route18EndBattleText1 ; TextEndBattle
Route18TrainerHeader1: ; 59af6 (16:5af6)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_18_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd7e3 ; flag's byte
- dw Route18BattleText2 ; 0x5b32 TextBeforeBattle
- dw Route18AfterBattleText2 ; 0x5b3c TextAfterBattle
- dw Route18EndBattleText2 ; 0x5b37 TextEndBattle
- dw Route18EndBattleText2 ; 0x5b37 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_18_TRAINER_1
+ dw Route18BattleText2 ; TextBeforeBattle
+ dw Route18AfterBattleText2 ; TextAfterBattle
+ dw Route18EndBattleText2 ; TextEndBattle
+ dw Route18EndBattleText2 ; TextEndBattle
Route18TrainerHeader2: ; 59b02 (16:5b02)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_18_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7e3 ; flag's byte
- dw Route18BattleText3 ; 0x5b4b TextBeforeBattle
- dw Route18AfterBattleText3 ; 0x5b55 TextAfterBattle
- dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
- dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_18_TRAINER_2
+ dw Route18BattleText3 ; TextBeforeBattle
+ dw Route18AfterBattleText3 ; TextAfterBattle
+ dw Route18EndBattleText3 ; TextEndBattle
+ dw Route18EndBattleText3 ; TextEndBattle
db $ff
Route18Text1: ; 59b0f (16:5b0f)
- db $08 ; asm
+ TX_ASM
ld hl, Route18TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -68,7 +68,7 @@ Route18AfterBattleText1: ; 59b23 (16:5b23)
db "@"
Route18Text2: ; 59b28 (16:5b28)
- db $08 ; asm
+ TX_ASM
ld hl, Route18TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -86,7 +86,7 @@ Route18AfterBattleText2: ; 59b3c (16:5b3c)
db "@"
Route18Text3: ; 59b41 (16:5b41)
- db $08 ; asm
+ TX_ASM
ld hl, Route18TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route18gate.asm b/scripts/route18gate.asm
index 1500f578..060a6bbf 100755
--- a/scripts/route18gate.asm
+++ b/scripts/route18gate.asm
@@ -19,19 +19,19 @@ Route18GateScript0: ; 4988f (12:588f)
call ArePlayerCoordsInArray
ret nc
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [hJoyHeld], a
- ld a, [wWhichTrade]
+ ld a, [wCoordIndex]
cp $1
- jr z, .asm_498c6 ; 0x498a9 $1b
- ld a, [wWhichTrade]
+ jr z, .asm_498c6
+ ld a, [wCoordIndex]
dec a
ld [wSimulatedJoypadStatesIndex], a
- ld b, $0
+ ld b, 0
ld c, a
- ld a, $40
+ ld a, D_UP
ld hl, wSimulatedJoypadStatesEnd
call FillMemory
call StartSimulatingJoypadStates
@@ -59,11 +59,11 @@ Route18GateScript1: ; 498d5 (12:58d5)
Route18GateScript2: ; 498df (12:58df)
ld a, $1
- ld [H_SPRITEHEIGHT], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $10
+ ld a, D_RIGHT
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
ld a, $3
@@ -87,16 +87,16 @@ Route18GateTextPointers: ; 4990d (12:590d)
dw Route18GateText2
Route18GateText1: ; 49911 (12:5911)
- db $08 ; asm
+ TX_ASM
call Route16GateScript_49755
- jr z, .asm_3c84d ; 0x49915
+ jr z, .asm_3c84d
ld hl, Route18GateText_4992d
call PrintText
- jr .asm_a8410 ; 0x4991d
-.asm_3c84d ; 0x4991f
+ jr .asm_a8410
+.asm_3c84d
ld hl, Route18GateText_49928
call PrintText
-.asm_a8410 ; 0x49925
+.asm_a8410
jp TextScriptEnd
Route18GateText_49928: ; 49928 (12:5928)
diff --git a/scripts/route18gateupstairs.asm b/scripts/route18gateupstairs.asm
index aaa1b34e..4e1014e0 100755
--- a/scripts/route18gateupstairs.asm
+++ b/scripts/route18gateupstairs.asm
@@ -7,25 +7,25 @@ Route18GateUpstairsTextPointers: ; 49978 (12:5978)
dw Route18GateUpstairsText3
Route18GateUpstairsText1: ; 4997e (12:597e)
- db $08 ; asm
+ TX_ASM
ld a, $5
ld [wWhichTrade], a
predef DoInGameTradeDialogue
jp TextScriptEnd
Route18GateUpstairsText2: ; 4998c (12:598c)
- db $8
- ld hl, Route18GateUpstairsText_49993 ; $5993
- jp Route12GateUpstairsScript_495c9
+ TX_ASM
+ ld hl, Route18GateUpstairsText_49993
+ jp GateUpstairsScript_PrintIfFacingUp
Route18GateUpstairsText_49993: ; 49993 (12:5993)
TX_FAR _Route18GateUpstairsText_49993
db "@"
Route18GateUpstairsText3: ; 49998 (12:5998)
- db $8
- ld hl, Route18GateUpstairsText_4999f ; $599f
- jp Route12GateUpstairsScript_495c9
+ TX_ASM
+ ld hl, Route18GateUpstairsText_4999f
+ jp GateUpstairsScript_PrintIfFacingUp
Route18GateUpstairsText_4999f: ; 4999f (12:599f)
TX_FAR _Route18GateUpstairsText_4999f
diff --git a/scripts/route19.asm b/scripts/route19.asm
index 40c7aeb3..4a60e40f 100755
--- a/scripts/route19.asm
+++ b/scripts/route19.asm
@@ -27,153 +27,153 @@ Route19TextPointers: ; 55d5d (15:5d5d)
Route19TrainerHeaders: ; 55d73 (15:5d73)
Route19TrainerHeader0: ; 55d73 (15:5d73)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText1 ; 0x5e50 TextBeforeBattle
- dw Route19AfterBattleText1 ; 0x5e5a TextAfterBattle
- dw Route19EndBattleText1 ; 0x5e55 TextEndBattle
- dw Route19EndBattleText1 ; 0x5e55 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_0
+ dw Route19BattleText1 ; TextBeforeBattle
+ dw Route19AfterBattleText1 ; TextAfterBattle
+ dw Route19EndBattleText1 ; TextEndBattle
+ dw Route19EndBattleText1 ; TextEndBattle
Route19TrainerHeader1: ; 55d7f (15:5d7f)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText2 ; 0x5e5f TextBeforeBattle
- dw Route19AfterBattleText2 ; 0x5e69 TextAfterBattle
- dw Route19EndBattleText2 ; 0x5e64 TextEndBattle
- dw Route19EndBattleText2 ; 0x5e64 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_1
+ dw Route19BattleText2 ; TextBeforeBattle
+ dw Route19AfterBattleText2 ; TextAfterBattle
+ dw Route19EndBattleText2 ; TextEndBattle
+ dw Route19EndBattleText2 ; TextEndBattle
Route19TrainerHeader2: ; 55d8b (15:5d8b)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText3 ; 0x5e6e TextBeforeBattle
- dw Route19AfterBattleText3 ; 0x5e78 TextAfterBattle
- dw Route19EndBattleText3 ; 0x5e73 TextEndBattle
- dw Route19EndBattleText3 ; 0x5e73 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_2
+ dw Route19BattleText3 ; TextBeforeBattle
+ dw Route19AfterBattleText3 ; TextAfterBattle
+ dw Route19EndBattleText3 ; TextEndBattle
+ dw Route19EndBattleText3 ; TextEndBattle
Route19TrainerHeader3: ; 55d97 (15:5d97)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText4 ; 0x5e7d TextBeforeBattle
- dw Route19AfterBattleText4 ; 0x5e87 TextAfterBattle
- dw Route19EndBattleText4 ; 0x5e82 TextEndBattle
- dw Route19EndBattleText4 ; 0x5e82 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_3
+ dw Route19BattleText4 ; TextBeforeBattle
+ dw Route19AfterBattleText4 ; TextAfterBattle
+ dw Route19EndBattleText4 ; TextEndBattle
+ dw Route19EndBattleText4 ; TextEndBattle
Route19TrainerHeader4: ; 55da3 (15:5da3)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText5 ; 0x5e8c TextBeforeBattle
- dw Route19AfterBattleText5 ; 0x5e96 TextAfterBattle
- dw Route19EndBattleText5 ; 0x5e91 TextEndBattle
- dw Route19EndBattleText5 ; 0x5e91 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_4
+ dw Route19BattleText5 ; TextBeforeBattle
+ dw Route19AfterBattleText5 ; TextAfterBattle
+ dw Route19EndBattleText5 ; TextEndBattle
+ dw Route19EndBattleText5 ; TextEndBattle
Route19TrainerHeader5: ; 55daf (15:5daf)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText6 ; 0x5e9b TextBeforeBattle
- dw Route19AfterBattleText6 ; 0x5ea5 TextAfterBattle
- dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle
- dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_5
+ dw Route19BattleText6 ; TextBeforeBattle
+ dw Route19AfterBattleText6 ; TextAfterBattle
+ dw Route19EndBattleText6 ; TextEndBattle
+ dw Route19EndBattleText6 ; TextEndBattle
Route19TrainerHeader6: ; 55dbb (15:5dbb)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_6
db ($3 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText7 ; 0x5eaa TextBeforeBattle
- dw Route19AfterBattleText7 ; 0x5eb4 TextAfterBattle
- dw Route19EndBattleText7 ; 0x5eaf TextEndBattle
- dw Route19EndBattleText7 ; 0x5eaf TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_6
+ dw Route19BattleText7 ; TextBeforeBattle
+ dw Route19AfterBattleText7 ; TextAfterBattle
+ dw Route19EndBattleText7 ; TextEndBattle
+ dw Route19EndBattleText7 ; TextEndBattle
Route19TrainerHeader7: ; 55dc7 (15:5dc7)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_7, 1
db ($4 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText8 ; 0x5eb9 TextBeforeBattle
- dw Route19AfterBattleText8 ; 0x5ec3 TextAfterBattle
- dw Route19EndBattleText8 ; 0x5ebe TextEndBattle
- dw Route19EndBattleText8 ; 0x5ebe TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_7, 1
+ dw Route19BattleText8 ; TextBeforeBattle
+ dw Route19AfterBattleText8 ; TextAfterBattle
+ dw Route19EndBattleText8 ; TextEndBattle
+ dw Route19EndBattleText8 ; TextEndBattle
Route19TrainerHeader8: ; 55dd3 (15:5dd3)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_8, 1
db ($4 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText9 ; 0x5ec8 TextBeforeBattle
- dw Route19AfterBattleText9 ; 0x5ed2 TextAfterBattle
- dw Route19EndBattleText9 ; 0x5ecd TextEndBattle
- dw Route19EndBattleText9 ; 0x5ecd TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_8, 1
+ dw Route19BattleText9 ; TextBeforeBattle
+ dw Route19AfterBattleText9 ; TextAfterBattle
+ dw Route19EndBattleText9 ; TextEndBattle
+ dw Route19EndBattleText9 ; TextEndBattle
Route19TrainerHeader9: ; 55ddf (15:5ddf)
- db $a ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_9, 1
db ($4 << 4) ; trainer's view range
- dw wd7e5 ; flag's byte
- dw Route19BattleText10 ; 0x5ed7 TextBeforeBattle
- dw Route19AfterBattleText10 ; 0x5ee1 TextAfterBattle
- dw Route19EndBattleText10 ; 0x5edc TextEndBattle
- dw Route19EndBattleText10 ; 0x5edc TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_9, 1
+ dw Route19BattleText10 ; TextBeforeBattle
+ dw Route19AfterBattleText10 ; TextAfterBattle
+ dw Route19EndBattleText10 ; TextEndBattle
+ dw Route19EndBattleText10 ; TextEndBattle
db $ff
Route19Text1: ; 55dec (15:5dec)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Route19Text2: ; 55df6 (15:5df6)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
Route19Text3: ; 55e00 (15:5e00)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
Route19Text4: ; 55e0a (15:5e0a)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
Route19Text5: ; 55e14 (15:5e14)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
Route19Text6: ; 55e1e (15:5e1e)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
Route19Text7: ; 55e28 (15:5e28)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
Route19Text8: ; 55e32 (15:5e32)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
Route19Text9: ; 55e3c (15:5e3c)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
Route19Text10: ; 55e46 (15:5e46)
- db $08 ; asm
+ TX_ASM
ld hl, Route19TrainerHeader9
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route2.asm b/scripts/route2.asm
index fdc5eb6c..62ef3050 100755
--- a/scripts/route2.asm
+++ b/scripts/route2.asm
@@ -2,8 +2,8 @@ Route2Script: ; 554e3 (15:54e3)
jp EnableAutoTextBoxDrawing
Route2TextPointers: ; 554e6 (15:54e6)
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw Route2Text3
dw Route2Text4
diff --git a/scripts/route20.asm b/scripts/route20.asm
index 4ef57e23..ce9e6f23 100755
--- a/scripts/route20.asm
+++ b/scripts/route20.asm
@@ -1,10 +1,8 @@
Route20Script: ; 50ca9 (14:4ca9)
- ld hl, wd7e7
- bit 0, [hl]
- res 0, [hl]
+ CheckAndResetEvent EVENT_IN_SEAFOAM_ISLANDS
call nz, Route20Script_50cc6
call EnableAutoTextBoxDrawing
- ld hl, Route20TrainerHeader0 ; $4d3a
+ ld hl, Route20TrainerHeader0
ld de, Route20ScriptPointers
ld a, [W_ROUTE20CURSCRIPT]
call ExecuteCurMapScriptInTable
@@ -12,15 +10,13 @@ Route20Script: ; 50ca9 (14:4ca9)
ret
Route20Script_50cc6: ; 50cc6 (14:4cc6)
- ld a, [wd880]
- and $3
- cp $3
+ CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE
jr z, .asm_50cef
- ld a, $d7
+ ld a, HS_SEAFOAM_ISLANDS_1_BOULDER_1
call Route20Script_50d0c
- ld a, $d8
+ ld a, HS_SEAFOAM_ISLANDS_1_BOULDER_2
call Route20Script_50d0c
- ld hl, .MissableObjectIDs ; $4ce8
+ ld hl, .MissableObjectIDs
.asm_50cdc
ld a, [hli]
cp $ff
@@ -40,9 +36,7 @@ Route20Script_50cc6: ; 50cc6 (14:4cc6)
db $FF
.asm_50cef
- ld a, [wd881]
- and $3
- cp $3
+ CheckBothEventsSet EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE
ret z
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_1
call Route20Script_50d0c
@@ -55,11 +49,11 @@ Route20Script_50cc6: ; 50cc6 (14:4cc6)
ret
Route20Script_50d0c: ; 50d0c (14:4d0c)
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
Route20Script_50d14: ; 50d14 (14:4d14)
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump HideObject
Route20ScriptPointers: ; 50d1c (14:4d1c)
@@ -83,153 +77,153 @@ Route20TextPointers: ; 50d22 (14:4d22)
Route20TrainerHeaders: ; 50d3a (14:4d3a)
Route20TrainerHeader0: ; 50d3a (14:4d3a)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText1 ; 0x4e17 TextBeforeBattle
- dw Route20AfterBattleText1 ; 0x4e21 TextAfterBattle
- dw Route20EndBattleText1 ; 0x4e1c TextEndBattle
- dw Route20EndBattleText1 ; 0x4e1c TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_0
+ dw Route20BattleText1 ; TextBeforeBattle
+ dw Route20AfterBattleText1 ; TextAfterBattle
+ dw Route20EndBattleText1 ; TextEndBattle
+ dw Route20EndBattleText1 ; TextEndBattle
Route20TrainerHeader2: ; 50d46 (14:4d46)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText2 ; 0x4e26 TextBeforeBattle
- dw Route20AfterBattleText2 ; 0x4e30 TextAfterBattle
- dw Route20EndBattleText2 ; 0x4e2b TextEndBattle
- dw Route20EndBattleText2 ; 0x4e2b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_2
+ dw Route20BattleText2 ; TextBeforeBattle
+ dw Route20AfterBattleText2 ; TextAfterBattle
+ dw Route20EndBattleText2 ; TextEndBattle
+ dw Route20EndBattleText2 ; TextEndBattle
Route20TrainerHeader3: ; 50d52 (14:4d52)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText3 ; 0x4e35 TextBeforeBattle
- dw Route20AfterBattleText3 ; 0x4e3f TextAfterBattle
- dw Route20EndBattleText3 ; 0x4e3a TextEndBattle
- dw Route20EndBattleText3 ; 0x4e3a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_3
+ dw Route20BattleText3 ; TextBeforeBattle
+ dw Route20AfterBattleText3 ; TextAfterBattle
+ dw Route20EndBattleText3 ; TextEndBattle
+ dw Route20EndBattleText3 ; TextEndBattle
Route20TrainerHeader4: ; 50d5e (14:4d5e)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText4 ; 0x4e44 TextBeforeBattle
- dw Route20AfterBattleText4 ; 0x4e4e TextAfterBattle
- dw Route20EndBattleText4 ; 0x4e49 TextEndBattle
- dw Route20EndBattleText4 ; 0x4e49 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_4
+ dw Route20BattleText4 ; TextBeforeBattle
+ dw Route20AfterBattleText4 ; TextAfterBattle
+ dw Route20EndBattleText4 ; TextEndBattle
+ dw Route20EndBattleText4 ; TextEndBattle
Route20TrainerHeader5: ; 50d6a (14:4d6a)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText5 ; 0x4e53 TextBeforeBattle
- dw Route20AfterBattleText5 ; 0x4e5d TextAfterBattle
- dw Route20EndBattleText5 ; 0x4e58 TextEndBattle
- dw Route20EndBattleText5 ; 0x4e58 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_5
+ dw Route20BattleText5 ; TextBeforeBattle
+ dw Route20AfterBattleText5 ; TextAfterBattle
+ dw Route20EndBattleText5 ; TextEndBattle
+ dw Route20EndBattleText5 ; TextEndBattle
Route20TrainerHeader6: ; 50d76 (14:4d76)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_6
db ($4 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText6 ; 0x4e62 TextBeforeBattle
- dw Route20AfterBattleText6 ; 0x4e6c TextAfterBattle
- dw Route20EndBattleText6 ; 0x4e67 TextEndBattle
- dw Route20EndBattleText6 ; 0x4e67 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_6
+ dw Route20BattleText6 ; TextBeforeBattle
+ dw Route20AfterBattleText6 ; TextAfterBattle
+ dw Route20EndBattleText6 ; TextEndBattle
+ dw Route20EndBattleText6 ; TextEndBattle
Route20TrainerHeader7: ; 50d82 (14:4d82)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_7
db ($2 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText7 ; 0x4e71 TextBeforeBattle
- dw Route20AfterBattleText7 ; 0x4e7b TextAfterBattle
- dw Route20EndBattleText7 ; 0x4e76 TextEndBattle
- dw Route20EndBattleText7 ; 0x4e76 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_7
+ dw Route20BattleText7 ; TextBeforeBattle
+ dw Route20AfterBattleText7 ; TextAfterBattle
+ dw Route20EndBattleText7 ; TextEndBattle
+ dw Route20EndBattleText7 ; TextEndBattle
Route20TrainerHeader8: ; 50d8e (14:4d8e)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_8, 1
db ($4 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText8 ; 0x4e80 TextBeforeBattle
- dw Route20AfterBattleText8 ; 0x4e8a TextAfterBattle
- dw Route20EndBattleText8 ; 0x4e85 TextEndBattle
- dw Route20EndBattleText8 ; 0x4e85 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_8, 1
+ dw Route20BattleText8 ; TextBeforeBattle
+ dw Route20AfterBattleText8 ; TextAfterBattle
+ dw Route20EndBattleText8 ; TextEndBattle
+ dw Route20EndBattleText8 ; TextEndBattle
Route20TrainerHeader9: ; 50d9a (14:4d9a)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_9, 1
db ($3 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText9 ; 0x4e8f TextBeforeBattle
- dw Route20AfterBattleText9 ; 0x4e99 TextAfterBattle
- dw Route20EndBattleText9 ; 0x4e94 TextEndBattle
- dw Route20EndBattleText9 ; 0x4e94 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_9, 1
+ dw Route20BattleText9 ; TextBeforeBattle
+ dw Route20AfterBattleText9 ; TextAfterBattle
+ dw Route20EndBattleText9 ; TextEndBattle
+ dw Route20EndBattleText9 ; TextEndBattle
Route20TrainerHeader10: ; 50da6 (14:4da6)
- db $a ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_10, 1
db ($4 << 4) ; trainer's view range
- dw wd7e7 ; flag's byte
- dw Route20BattleText10 ; 0x4e9e TextBeforeBattle
- dw Route20AfterBattleText10 ; 0x4ea8 TextAfterBattle
- dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
- dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_10, 1
+ dw Route20BattleText10 ; TextBeforeBattle
+ dw Route20AfterBattleText10 ; TextAfterBattle
+ dw Route20EndBattleText10 ; TextEndBattle
+ dw Route20EndBattleText10 ; TextEndBattle
db $ff
Route20Text1: ; 50db3 (14:4db3)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Route20Text2: ; 50dbd (14:4dbd)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
Route20Text3: ; 50dc7 (14:4dc7)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
Route20Text4: ; 50dd1 (14:4dd1)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
Route20Text5: ; 50ddb (14:4ddb)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
Route20Text6: ; 50de5 (14:4de5)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
Route20Text7: ; 50def (14:4def)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
Route20Text8: ; 50df9 (14:4df9)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
Route20Text9: ; 50e03 (14:4e03)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader9
call TalkToTrainer
jp TextScriptEnd
Route20Text10: ; 50e0d (14:4e0d)
- db $08 ; asm
+ TX_ASM
ld hl, Route20TrainerHeader10
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route21.asm b/scripts/route21.asm
index de2046dc..4c8087fd 100755
--- a/scripts/route21.asm
+++ b/scripts/route21.asm
@@ -25,138 +25,138 @@ Route21TextPointers: ; 55f04 (15:5f04)
Route21TrainerHeaders: ; 55f16 (15:5f16)
Route21TrainerHeader0: ; 55f16 (15:5f16)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText1 ; 0x5fdd TextBeforeBattle
- dw Route21AfterBattleText1 ; 0x5fe7 TextAfterBattle
- dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle
- dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_0
+ dw Route21BattleText1 ; TextBeforeBattle
+ dw Route21AfterBattleText1 ; TextAfterBattle
+ dw Route21EndBattleText1 ; TextEndBattle
+ dw Route21EndBattleText1 ; TextEndBattle
Route21TrainerHeader1: ; 55f22 (15:5f22)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_1
db ($0 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText2 ; 0x5fec TextBeforeBattle
- dw Route21AfterBattleText2 ; 0x5ff6 TextAfterBattle
- dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle
- dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_1
+ dw Route21BattleText2 ; TextBeforeBattle
+ dw Route21AfterBattleText2 ; TextAfterBattle
+ dw Route21EndBattleText2 ; TextEndBattle
+ dw Route21EndBattleText2 ; TextEndBattle
Route21TrainerHeader2: ; 55f2e (15:5f2e)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText3 ; 0x5ffb TextBeforeBattle
- dw Route21AfterBattleText3 ; 0x6005 TextAfterBattle
- dw Route21EndBattleText3 ; 0x6000 TextEndBattle
- dw Route21EndBattleText3 ; 0x6000 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_2
+ dw Route21BattleText3 ; TextBeforeBattle
+ dw Route21AfterBattleText3 ; TextAfterBattle
+ dw Route21EndBattleText3 ; TextEndBattle
+ dw Route21EndBattleText3 ; TextEndBattle
Route21TrainerHeader3: ; 55f3a (15:5f3a)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText4 ; 0x600a TextBeforeBattle
- dw Route21AfterBattleText4 ; 0x6014 TextAfterBattle
- dw Route21EndBattleText4 ; 0x600f TextEndBattle
- dw Route21EndBattleText4 ; 0x600f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_3
+ dw Route21BattleText4 ; TextBeforeBattle
+ dw Route21AfterBattleText4 ; TextAfterBattle
+ dw Route21EndBattleText4 ; TextEndBattle
+ dw Route21EndBattleText4 ; TextEndBattle
Route21TrainerHeader4: ; 55f46 (15:5f46)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText5 ; 0x6019 TextBeforeBattle
- dw Route21AfterBattleText5 ; 0x6023 TextAfterBattle
- dw Route21EndBattleText5 ; 0x601e TextEndBattle
- dw Route21EndBattleText5 ; 0x601e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_4
+ dw Route21BattleText5 ; TextBeforeBattle
+ dw Route21AfterBattleText5 ; TextAfterBattle
+ dw Route21EndBattleText5 ; TextEndBattle
+ dw Route21EndBattleText5 ; TextEndBattle
Route21TrainerHeader5: ; 55f52 (15:5f52)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText6 ; 0x6028 TextBeforeBattle
- dw Route21AfterBattleText6 ; 0x6032 TextAfterBattle
- dw Route21EndBattleText6 ; 0x602d TextEndBattle
- dw Route21EndBattleText6 ; 0x602d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_5
+ dw Route21BattleText6 ; TextBeforeBattle
+ dw Route21AfterBattleText6 ; TextAfterBattle
+ dw Route21EndBattleText6 ; TextEndBattle
+ dw Route21EndBattleText6 ; TextEndBattle
Route21TrainerHeader6: ; 55f5e (15:5f5e)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_6
db ($3 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText7 ; 0x6037 TextBeforeBattle
- dw Route21AfterBattleText7 ; 0x6041 TextAfterBattle
- dw Route21EndBattleText7 ; 0x603c TextEndBattle
- dw Route21EndBattleText7 ; 0x603c TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_6
+ dw Route21BattleText7 ; TextBeforeBattle
+ dw Route21AfterBattleText7 ; TextAfterBattle
+ dw Route21EndBattleText7 ; TextEndBattle
+ dw Route21EndBattleText7 ; TextEndBattle
Route21TrainerHeader7: ; 55f6a (15:5f6a)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_7, 1
db ($0 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText8 ; 0x6046 TextBeforeBattle
- dw Route21AfterBattleText8 ; 0x6050 TextAfterBattle
- dw Route21EndBattleText8 ; 0x604b TextEndBattle
- dw Route21EndBattleText8 ; 0x604b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_7, 1
+ dw Route21BattleText8 ; TextBeforeBattle
+ dw Route21AfterBattleText8 ; TextAfterBattle
+ dw Route21EndBattleText8 ; TextEndBattle
+ dw Route21EndBattleText8 ; TextEndBattle
Route21TrainerHeader8: ; 55f76 (15:5f76)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_8, 1
db ($0 << 4) ; trainer's view range
- dw wd7e9 ; flag's byte
- dw Route21BattleText9 ; 0x6055 TextBeforeBattle
- dw Route21AfterBattleText9 ; 0x605f TextAfterBattle
- dw Route21EndBattleText9 ; 0x605a TextEndBattle
- dw Route21EndBattleText9 ; 0x605a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_8, 1
+ dw Route21BattleText9 ; TextBeforeBattle
+ dw Route21AfterBattleText9 ; TextAfterBattle
+ dw Route21EndBattleText9 ; TextEndBattle
+ dw Route21EndBattleText9 ; TextEndBattle
db $ff
Route21Text1: ; 55f83 (15:5f83)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Route21Text2: ; 55f8d (15:5f8d)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
Route21Text3: ; 55f97 (15:5f97)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
Route21Text4: ; 55fa1 (15:5fa1)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
Route21Text5: ; 55fab (15:5fab)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
Route21Text6: ; 55fb5 (15:5fb5)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
Route21Text7: ; 55fbf (15:5fbf)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
Route21Text8: ; 55fc9 (15:5fc9)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
Route21Text9: ; 55fd3 (15:5fd3)
- db $08 ; asm
+ TX_ASM
ld hl, Route21TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route22.asm b/scripts/route22.asm
index 9181380a..1244f0ff 100755
--- a/scripts/route22.asm
+++ b/scripts/route22.asm
@@ -22,7 +22,7 @@ Route22Script7: ; 50ed5 (14:4ed5)
ret
Route22Script_50ed6: ; 50ed6 (14:4ed6)
- ld a, [W_RIVALSTARTER] ; wd715
+ ld a, [W_RIVALSTARTER]
ld b, a
.asm_50eda
ld a, [hli]
@@ -32,43 +32,45 @@ Route22Script_50ed6: ; 50ed6 (14:4ed6)
jr .asm_50eda
.asm_50ee1
ld a, [hl]
- ld [W_TRAINERNO], a ; wd05d
+ ld [W_TRAINERNO], a
ret
Route22MoveRivalSprite: ; 50ee6 (14:4ee6)
- ld de, Route22RivalMovementData ; $4efb
+ ld de, Route22RivalMovementData
ld a, [wcf0d]
cp $1
jr z, .asm_50ef1
inc de
.asm_50ef1
call MoveSprite
- ld a, $c
- ld [$ff8d], a
+ ld a, SPRITE_FACING_RIGHT
+ ld [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
Route22RivalMovementData: ; 50efb (14:4efb)
- db $C0,$C0,$C0,$C0,$FF ; move right 4 times
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
Route22Script0: ; 50f00 (14:4f00)
- ld a, [wd7eb]
- bit 7, a
+ CheckEvent EVENT_ROUTE22_RIVAL_WANTS_BATTLE
ret z
- ld hl, .Route22RivalBattleCoords ; $4f2d
+ ld hl, .Route22RivalBattleCoords
call ArePlayerCoordsInArray
ret nc
- ld a, [wWhichTrade]
+ ld a, [wCoordIndex]
ld [wcf0d], a
xor a
ld [hJoyHeld], a
ld a, $f0
ld [wJoyIgnore], a
- ld a, $2
- ld [wd528], a
- ld a, [wd7eb]
- bit 0, a ; is this the rival battle at the beginning of the game?
- jr nz, .firstRivalBattle ; 0x50f25 $b
- bit 1, a ; is this the rival at the end of the game?
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
+ CheckEvent EVENT_1ST_ROUTE22_RIVAL_BATTLE
+ jr nz, .firstRivalBattle
+ CheckEventReuseA EVENT_2ND_ROUTE22_RIVAL_BATTLE ; is this the rival at the end of the game?
jp nz, Route22Script_5104e
ret
@@ -79,22 +81,22 @@ Route22Script0: ; 50f00 (14:4f00)
.firstRivalBattle
ld a, $1
- ld [wcd4f], a
- xor a
- ld [wcd50], a
+ ld [wEmotionBubbleSpriteIndex], a
+ xor a ; EXCLAMATION_BUBBLE
+ ld [wWhichEmotionBubble], a
predef EmotionBubble
ld a, [wWalkBikeSurfState]
and a
- jr z, .asm_50f4e ; 0x50f44 $8
+ jr z, .asm_50f4e
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
.asm_50f4e
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call Route22MoveRivalSprite
ld a, $1
ld [W_ROUTE22CURSCRIPT], a
@@ -106,22 +108,22 @@ Route22Script1: ; 50f62 (14:4f62)
ret nz
ld a, [wcf0d]
cp $1
- jr nz, .asm_50f78 ; 0x50f6d $9
- ld a, $4
- ld [wd528], a
- ld a, $4
- jr .asm_50f7a ; 0x50f76 $2
+ jr nz, .asm_50f78
+ ld a, PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection], a
+ ld a, SPRITE_FACING_UP
+ jr .asm_50f7a
.asm_50f78
- ld a, $c
+ ld a, SPRITE_FACING_RIGHT
.asm_50f7a
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteFacingDirectionAndDelay
xor a
ld [wJoyIgnore], a
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld hl, wd72d
set 6, [hl]
@@ -129,9 +131,9 @@ Route22Script1: ; 50f62 (14:4f62)
ld hl, Route22RivalDefeatedText1
ld de, Route22Text_511bc
call SaveEndBattleTextPointers
- ld a, SONY1 + $c8
+ ld a, OPP_SONY1
ld [W_CUROPPONENT], a
- ld hl, StarterMons_50faf ; $4faf
+ ld hl, StarterMons_50faf
call Route22Script_50ed6
ld a, $2
ld [W_ROUTE22CURSCRIPT], a
@@ -148,33 +150,32 @@ Route22Script2: ; 50fb5 (14:4fb5)
cp $ff
jp z, Route22Script_50ece
ld a, [wSpriteStateData1 + 9]
- and a
- jr nz, .asm_50fc7 ; 0x50fc1 $4
- ld a, $4
- jr .asm_50fc9 ; 0x50fc5 $2
-.asm_50fc7
- ld a, $c
-.asm_50fc9
- ld [$ff8d], a
+ and a ; cp SPRITE_FACING_DOWN
+ jr nz, .notDown
+ ld a, SPRITE_FACING_UP
+ jr .done
+.notDown
+ ld a, SPRITE_FACING_RIGHT
+.done
+ ld [hSpriteFacingDirection], a
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteFacingDirectionAndDelay
ld a, $f0
ld [wJoyIgnore], a
- ld hl, wd7eb
- set 5, [hl]
+ SetEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, [wcf0d]
cp $1
- jr nz, .asm_50fff ; 0x50ff8 $5
+ jr nz, .asm_50fff
call Route22Script_51008
- jr .asm_51002 ; 0x50ffd $3
+ jr .asm_51002
.asm_50fff
call Route22Script_5100d
.asm_51002
@@ -183,21 +184,38 @@ Route22Script2: ; 50fb5 (14:4fb5)
ret
Route22Script_51008: ; 51008 (14:5008)
- ld de, Route22RivalExitMovementData1 ; $5017
- jr asm_51010
+ ld de, Route22RivalExitMovementData1
+ jr Route22MoveRival1
Route22Script_5100d: ; 5100d (14:500d)
- ld de, Route22RivalExitMovementData2 ; $501f
-asm_51010
+ ld de, Route22RivalExitMovementData2
+Route22MoveRival1: ; 51010 (14:5010)
ld a, $1
- ld [H_SPRITEHEIGHT], a
+ ld [H_SPRITEINDEX], a
jp MoveSprite
Route22RivalExitMovementData1: ; 51017 (14:5017)
- db $C0,$C0,$00,$00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
Route22RivalExitMovementData2: ; 5101f (14:501f)
- db $40,$C0,$C0,$C0,$00,$00,$00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
Route22Script3: ; 5102a (14:502a)
ld a, [wd730]
@@ -206,35 +224,33 @@ Route22Script3: ; 5102a (14:502a)
xor a
ld [wJoyIgnore], a
ld a, HS_ROUTE_22_RIVAL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call PlayDefaultMusic
- ld hl, wd7eb
- res 0, [hl]
- res 7, [hl]
+ ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
ld a, $0
ld [W_ROUTE22CURSCRIPT], a
ret
Route22Script_5104e: ; 5104e (14:504e)
ld a, $2
- ld [wcd4f], a
- xor a
- ld [wcd50], a
+ ld [wEmotionBubbleSpriteIndex], a
+ xor a ; EXCLAMATION_BUBBLE
+ ld [wWhichEmotionBubble], a
predef EmotionBubble
ld a, [wWalkBikeSurfState]
and a
jr z, .skipYVisibilityTesta
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
.skipYVisibilityTesta
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateTempo
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
call Route22MoveRivalSprite
ld a, $4
ld [W_ROUTE22CURSCRIPT], a
@@ -245,35 +261,35 @@ Route22Script4: ; 51087 (14:5087)
bit 0, a
ret nz
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
ld a, [wcf0d]
cp $1
jr nz, .asm_510a1
- ld a, $4
- ld [wd528], a
- ld a, $4
+ ld a, PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection], a
+ ld a, SPRITE_FACING_UP
jr .asm_510a8
.asm_510a1
- ld a, $2
- ld [wd528], a
- ld a, $c
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
+ ld a, SPRITE_FACING_RIGHT
.asm_510a8
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
xor a
ld [wJoyIgnore], a
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld hl, wd72d
set 6, [hl]
set 7, [hl]
- ld hl, Route22RivalDefeatedText2 ; $51cb
- ld de, Route22Text_511d0 ; $51d0
+ ld hl, Route22RivalDefeatedText2
+ ld de, Route22Text_511d0
call SaveEndBattleTextPointers
- ld a, SONY2 + $c8
- ld [W_CUROPPONENT], a ; wd059
- ld hl, StarterMons_510d9 ; $50d9
+ ld a, OPP_SONY2
+ ld [W_CUROPPONENT], a
+ ld hl, StarterMons_510d9
call Route22Script_50ed6
ld a, $5
ld [W_ROUTE22CURSCRIPT], a
@@ -285,34 +301,33 @@ StarterMons_510d9: ; 510d9 (14:50d9)
db STARTER1,$0c
Route22Script5: ; 510df (14:50df)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, Route22Script_50ece
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
ld a, [wcf0d]
cp $1
jr nz, .asm_510fb
- ld a, $4
- ld [wd528], a
- ld a, $4
+ ld a, PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection], a
+ ld a, SPRITE_FACING_UP
jr .asm_51102
.asm_510fb
- ld a, $2
- ld [wd528], a
- ld a, $c
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
+ ld a, SPRITE_FACING_RIGHT
.asm_51102
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $f0
ld [wJoyIgnore], a
- ld hl, wd7eb
- set 6, [hl]
+ SetEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStartAndTempo
ld a, [wcf0d]
@@ -328,21 +343,24 @@ Route22Script5: ; 510df (14:50df)
ret
Route22Script_5113d: ; 5113d (14:513d)
- ld de, MovementData_5114c ; $514c
- jr asm_51145
+ ld de, MovementData_5114c
+ jr Route22MoveRival2
Route22Script_51142: ; 51142 (14:5142)
- ld de, MovementData_5114d ; $514d
-asm_51145: ; 51145 (14:5145)
+ ld de, MovementData_5114d
+Route22MoveRival2: ; 51145 (14:5145)
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
jp MoveSprite
MovementData_5114c: ; 5114c (14:514c)
- db $80 ; left
+ db NPC_MOVEMENT_LEFT
MovementData_5114d: ; 5114d (14:514d)
- db $80,$80,$80,$FF ; left x3
+ db NPC_MOVEMENT_LEFT
+ db NPC_MOVEMENT_LEFT
+ db NPC_MOVEMENT_LEFT
+ db $FF
Route22Script6: ; 51151 (14:5151)
ld a, [wd730]
@@ -351,12 +369,10 @@ Route22Script6: ; 51151 (14:5151)
xor a
ld [wJoyIgnore], a
ld a, HS_ROUTE_22_RIVAL_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call PlayDefaultMusic
- ld hl, wd7eb
- res 1, [hl]
- res 7, [hl]
+ ResetEvents EVENT_2ND_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
ld a, $7
ld [W_ROUTE22CURSCRIPT], a
ret
@@ -367,31 +383,29 @@ Route22TextPointers: ; 51175 (14:5175)
dw Route22FrontGateText
Route22Text1: ; 5117b (14:517b)
- db $08 ; asm
- ld a, [wd7eb]
- bit 5, a
- jr z, .asm_a88cf ; 0x51181
+ TX_ASM
+ CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
+ jr z, .asm_5118b
ld hl, Route22RivalAfterBattleText1
call PrintText
- jr .asm_48088 ; 0x51189
-.asm_a88cf ; 0x5118b
+ jr .asm_51191
+.asm_5118b
ld hl, Route22RivalBeforeBattleText1
call PrintText
-.asm_48088 ; 0x51191
+.asm_51191
jp TextScriptEnd
Route22Text2: ; 51194 (14:5194)
- db $08 ; asm
- ld a, [wd7eb]
- bit 6, a
- jr z, .asm_58c0a ; 0x5119a
+ TX_ASM
+ CheckEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE
+ jr z, .asm_511a4
ld hl, Route22RivalAfterBattleText2
call PrintText
- jr .asm_673ee ; 0x511a2
-.asm_58c0a ; 0x511a4
+ jr .asm_511aa
+.asm_511a4
ld hl, Route22RivalBeforeBattleText2
call PrintText
-.asm_673ee ; 0x511aa
+.asm_511aa
jp TextScriptEnd
Route22RivalBeforeBattleText1: ; 511ad (14:51ad)
diff --git a/scripts/route22gate.asm b/scripts/route22gate.asm
index 6618d6a2..95546a99 100755
--- a/scripts/route22gate.asm
+++ b/scripts/route22gate.asm
@@ -6,7 +6,7 @@ Route22GateScript: ; 1e683 (7:6683)
ld a, [W_YCOORD]
cp $4
ld a, ROUTE_23
- jr c, .asm_1e69a ; 0x1e696 $2
+ jr c, .asm_1e69a
ld a, ROUTE_22
.asm_1e69a
ld [wLastMap], a
@@ -24,7 +24,7 @@ Route22GateScript0: ; 1e6a4 (7:66a4)
xor a
ld [hJoyHeld], a
ld a, $1
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
Route22GateScriptCoords: ; 1e6b5 (7:66b5)
@@ -35,7 +35,7 @@ Route22GateScriptCoords: ; 1e6b5 (7:66b5)
Route22GateScript_1e6ba: ; 1e6ba (7:66ba)
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $80
+ ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
ld [wSpriteStateData1 + 9], a
ld [wJoyIgnore], a
@@ -57,30 +57,30 @@ Route22GateTextPointers: ; 1e6df (7:66df)
dw Route22GateText1
Route22GateText1: ; 1e6e1 (7:66e1)
- db $8
+ TX_ASM
ld a, [W_OBTAINEDBADGES]
bit 0, a
- jr nz, .asm_8a809 ; 0x1e6e7 $d
+ jr nz, .asm_1e6f6
ld hl, Route22GateText_1e704
call PrintText
call Route22GateScript_1e6ba
ld a, $1
- jr .asm_20f7e ; 0x1e6f4 $8
-.asm_8a809 ; 0x1e6f6
+ jr .asm_1e6fe
+.asm_1e6f6
ld hl, Route22GateText_1e71a
call PrintText
ld a, $2
-.asm_20f7e ; 0x1e6fe
+.asm_1e6fe
ld [W_ROUTE22GATECURSCRIPT], a
jp TextScriptEnd
Route22GateText_1e704: ; 1e704 (7:6704)
- TX_FAR _Route22GateText_1e704 ; 0x8cfbb
- db $8
- ld a, (SFX_02_51 - SFX_Headers_02) / 3
+ TX_FAR _Route22GateText_1e704
+ TX_ASM
+ ld a, SFX_DENIED
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
- ld hl, Route22GateText_1e715 ; $6715
+ ld hl, Route22GateText_1e715
ret
Route22GateText_1e715: ; 1e715 (7:6715)
@@ -88,5 +88,5 @@ Route22GateText_1e715: ; 1e715 (7:6715)
db "@"
Route22GateText_1e71a: ; 1e71a (7:671a)
- TX_FAR _Route22GateText_1e71a ; 0x8d03e
+ TX_FAR _Route22GateText_1e71a
db $0B, "@"
diff --git a/scripts/route23.asm b/scripts/route23.asm
index 6d3849f4..35f1b9cb 100755
--- a/scripts/route23.asm
+++ b/scripts/route23.asm
@@ -10,17 +10,13 @@ Route23Script_511e9: ; 511e9 (14:51e9)
bit 6, [hl]
res 6, [hl]
ret z
- ld hl, wd7ee
- res 0, [hl]
- res 7, [hl]
- ld hl, wd813
- res 0, [hl]
- res 6, [hl]
+ ResetEvents EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2
+ ResetEvents EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
ld a, HS_VICTORY_ROAD_3_BOULDER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_VICTORY_ROAD_2_BOULDER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump HideObject
Route23ScriptPointers: ; 51213 (14:5213)
@@ -29,11 +25,11 @@ Route23ScriptPointers: ; 51213 (14:5213)
dw Route23Script2
Route23Script0: ; 51219 (14:5219)
- ld hl, YCoordsData_51255 ; $5255
+ ld hl, YCoordsData_51255
ld a, [W_YCOORD]
ld b, a
ld e, $0
- ld c, $7
+ EventFlagBit c, EVENT_PASSED_EARTHBADGE_CHECK + 1, EVENT_PASSED_CASCADEBADGE_CHECK
.asm_51224
ld a, [hli]
cp $ff
@@ -41,19 +37,19 @@ Route23Script0: ; 51219 (14:5219)
inc e
dec c
cp b
- jr nz, .asm_51224 ; 0x5122b $f7
+ jr nz, .asm_51224
cp $23
- jr nz, .asm_51237 ; 0x5122f $6
+ jr nz, .asm_51237
ld a, [W_XCOORD]
cp $e
ret nc
.asm_51237
ld a, e
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
ld a, c
- ld [wWhichTrade], a
- ld b, $2
- ld hl, wd7ed
+ ld [wWhichBadge], a
+ ld b, FLAG_TEST
+ EventFlagAddress hl, EVENT_PASSED_CASCADEBADGE_CHECK
predef FlagActionPredef
ld a, c
and a
@@ -68,22 +64,22 @@ YCoordsData_51255: ; 51255 (14:5255)
db $23,$38,$55,$60,$69,$77,$88,$FF
Route23Script_5125d: ; 5125d (14:525d)
- ld hl, BadgeTextPointers ; $5276
- ld a, [wWhichTrade] ; wWhichTrade
+ ld hl, BadgeTextPointers
+ ld a, [wWhichBadge]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wcd6d
-.asm_5126e
+.copyTextLoop
ld a, [hli]
ld [de], a
inc de
- cp $50
- jr nz, .asm_5126e
+ cp "@"
+ jr nz, .copyTextLoop
ret
BadgeTextPointers: ; 51276 (14:5276)
@@ -119,7 +115,7 @@ CascadeBadgeText: ; 512cb (14:52cb)
Route23Script_512d8: ; 512d8 (14:52d8)
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $80
+ ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpriteStateData1 + 9], a
@@ -146,54 +142,54 @@ Route23TextPointers: ; 512f7 (14:52f7)
dw Route23Text8
Route23Text1: ; 51307 (14:5307)
- db $08 ; asm
- ld a, $6
+ TX_ASM
+ EventFlagBit a, EVENT_PASSED_EARTHBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23Script_51346
jp TextScriptEnd
Route23Text2: ; 51310 (14:5310)
- db $08 ; asm
- ld a, $5
+ TX_ASM
+ EventFlagBit a, EVENT_PASSED_VOLCANOBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23Script_51346
jp TextScriptEnd
Route23Text3: ; 51319 (14:5319)
- db $08 ; asm
- ld a, $4
+ TX_ASM
+ EventFlagBit a, EVENT_PASSED_MARSHBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23Script_51346
jp TextScriptEnd
Route23Text4: ; 51322 (14:5322)
- db $08 ; asm
- ld a, $3
+ TX_ASM
+ EventFlagBit a, EVENT_PASSED_SOULBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23Script_51346
jp TextScriptEnd
Route23Text5: ; 5132b (14:532b)
- db $08 ; asm
- ld a, $2
+ TX_ASM
+ EventFlagBit a, EVENT_PASSED_RAINBOWBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23Script_51346
jp TextScriptEnd
Route23Text6: ; 51334 (14:5334)
- db $08 ; asm
- ld a, $1
+ TX_ASM
+ EventFlagBit a, EVENT_PASSED_THUNDERBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23Script_51346
jp TextScriptEnd
Route23Text7: ; 5133d (14:533d)
- db $8
- ld a, $0
+ TX_ASM
+ EventFlagBit a, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23Script_51346
jp TextScriptEnd
Route23Script_51346: ; 51346 (14:5346)
- ld [wWhichTrade], a ; wWhichTrade
+ ld [wWhichBadge], a
call Route23Script_5125d
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wWhichBadge]
inc a
ld c, a
- ld b, $2
+ ld b, FLAG_TEST
ld hl, W_OBTAINEDBADGES
predef FlagActionPredef
ld a, c
@@ -208,10 +204,10 @@ Route23Script_51346: ; 51346 (14:5346)
.asm_5136e
ld hl, VictoryRoadGuardText2
call PrintText
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wWhichBadge]
ld c, a
- ld b, $1
- ld hl, wd7ed
+ ld b, FLAG_SET
+ EventFlagAddress hl, EVENT_PASSED_CASCADEBADGE_CHECK
predef FlagActionPredef
ld a, $2
ld [W_ROUTE23CURSCRIPT], a
@@ -223,8 +219,8 @@ Route23Script_51388: ; 51388 (14:5388)
VictoryRoadGuardText1: ; 5138e (14:538e)
TX_FAR _VictoryRoadGuardText1
- db $08 ; asm
- ld a, (SFX_02_51 - SFX_Headers_02) / 3
+ TX_ASM
+ ld a, SFX_DENIED
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
jp TextScriptEnd
diff --git a/scripts/route24.asm b/scripts/route24.asm
index 6916cbe7..6eba1d35 100755
--- a/scripts/route24.asm
+++ b/scripts/route24.asm
@@ -22,22 +22,19 @@ Route24ScriptPointers: ; 513cb (14:53cb)
dw Route24Script4
Route24Script0: ; 513d5 (14:53d5)
- ld a, [wd7ef]
- bit 0, a
+ CheckEvent EVENT_GOT_NUGGET
jp nz, CheckFightingMapTrainers
- ld hl, CoordsData_5140e ; $540e
+ ld hl, CoordsData_5140e
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
ld [hJoyHeld], a
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd7f0
- bit 1, [hl]
- res 1, [hl]
+ CheckAndResetEvent EVENT_NUGGET_REWARD_AVAILABLE
ret z
- ld a, $80
+ ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -61,16 +58,15 @@ Route24Script4: ; 51411 (14:5411)
ret
Route24Script3: ; 51422 (14:5422)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, Route24Script_513c0
call UpdateSprites
ld a, $f0
ld [wJoyIgnore], a
- ld hl, wd7ef
- set 1, [hl]
+ SetEvent EVENT_BEAT_ROUTE24_ROCKET
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wJoyIgnore], a
@@ -87,79 +83,76 @@ Route24TextPointers: ; 5144b (14:544b)
dw Route24Text5
dw Route24Text6
dw Route24Text7
- dw Predef5CText
+ dw PickUpItemText
Route24TrainerHeaders: ; 5145b (14:545b)
Route24TrainerHeader0: ; 5145b (14:545b)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7ef ; flag's byte
- dw Route24BattleText1 ; 0x5571 TextBeforeBattle
- dw Route24AfterBattleText1 ; 0x557b TextAfterBattle
- dw Route24EndBattleText1 ; 0x5576 TextEndBattle
- dw Route24EndBattleText1 ; 0x5576 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_0
+ dw Route24BattleText1 ; TextBeforeBattle
+ dw Route24AfterBattleText1 ; TextAfterBattle
+ dw Route24EndBattleText1 ; TextEndBattle
+ dw Route24EndBattleText1 ; TextEndBattle
Route24TrainerHeader2: ; 51467 (14:5467)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_2
db ($1 << 4) ; trainer's view range
- dw wd7ef ; flag's byte
- dw Route24BattleText2 ; 0x5580 TextBeforeBattle
- dw Route24AfterBattleText2 ; 0x558a TextAfterBattle
- dw Route24EndBattleText2 ; 0x5585 TextEndBattle
- dw Route24EndBattleText2 ; 0x5585 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_2
+ dw Route24BattleText2 ; TextBeforeBattle
+ dw Route24AfterBattleText2 ; TextAfterBattle
+ dw Route24EndBattleText2 ; TextEndBattle
+ dw Route24EndBattleText2 ; TextEndBattle
Route24TrainerHeader3: ; 51473 (14:5473)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_3
db ($1 << 4) ; trainer's view range
- dw wd7ef ; flag's byte
- dw Route24BattleText3 ; 0x558f TextBeforeBattle
- dw Route24AfterBattleText3 ; 0x5599 TextAfterBattle
- dw Route24EndBattleText3 ; 0x5594 TextEndBattle
- dw Route24EndBattleText3 ; 0x5594 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_3
+ dw Route24BattleText3 ; TextBeforeBattle
+ dw Route24AfterBattleText3 ; TextAfterBattle
+ dw Route24EndBattleText3 ; TextEndBattle
+ dw Route24EndBattleText3 ; TextEndBattle
Route24TrainerHeader4: ; 5147f (14:547f)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_4
db ($1 << 4) ; trainer's view range
- dw wd7ef ; flag's byte
- dw Route24BattleText4 ; 0x559e TextBeforeBattle
- dw Route24AfterBattleText4 ; 0x55a8 TextAfterBattle
- dw Route24EndBattleText4 ; 0x55a3 TextEndBattle
- dw Route24EndBattleText4 ; 0x55a3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_4
+ dw Route24BattleText4 ; TextBeforeBattle
+ dw Route24AfterBattleText4 ; TextAfterBattle
+ dw Route24EndBattleText4 ; TextEndBattle
+ dw Route24EndBattleText4 ; TextEndBattle
Route24TrainerHeader5: ; 5148b (14:548b)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_5
db ($1 << 4) ; trainer's view range
- dw wd7ef ; flag's byte
- dw Route24BattleText5 ; 0x55ad TextBeforeBattle
- dw Route24AfterBattleText5 ; 0x55b7 TextAfterBattle
- dw Route24EndBattleText5 ; 0x55b2 TextEndBattle
- dw Route24EndBattleText5 ; 0x55b2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_5
+ dw Route24BattleText5 ; TextBeforeBattle
+ dw Route24AfterBattleText5 ; TextAfterBattle
+ dw Route24EndBattleText5 ; TextEndBattle
+ dw Route24EndBattleText5 ; TextEndBattle
Route24TrainerHeader6: ; 51497 (14:5497)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_6
db ($1 << 4) ; trainer's view range
- dw wd7ef ; flag's byte
- dw Route24BattleText6 ; 0x55bc TextBeforeBattle
- dw Route24AfterBattleText6 ; 0x55c6 TextAfterBattle
- dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
- dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_6
+ dw Route24BattleText6 ; TextBeforeBattle
+ dw Route24AfterBattleText6 ; TextAfterBattle
+ dw Route24EndBattleText6 ; TextEndBattle
+ dw Route24EndBattleText6 ; TextEndBattle
db $ff
Route24Text1: ; 514a4 (14:54a4)
- db $8
- ld hl, wd7f0
- res 1, [hl]
- ld a, [wd7ef]
- bit 0, a
- jr nz, .asm_a03f5 ; 0x514af $48
+ TX_ASM
+ ResetEvent EVENT_NUGGET_REWARD_AVAILABLE
+ CheckEvent EVENT_GOT_NUGGET
+ jr nz, .asm_514f9
ld hl, Route24Text_51510
call PrintText
- ld bc, (NUGGET << 8) | 1
+ lb bc, NUGGET, 1
call GiveItem
jr nc, .BagFull
- ld hl, wd7ef
- set 0, [hl]
+ SetEvent EVENT_GOT_NUGGET
ld hl, Route24Text_5151a
call PrintText
ld hl, Route24Text_51526
@@ -170,7 +163,7 @@ Route24Text1: ; 514a4 (14:54a4)
ld hl, Route24Text_5152b
ld de, Route24Text_5152b
call SaveEndBattleTextPointers
- ld a, [$ff8c]
+ ld a, [hSpriteIndexOrTextID]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -180,25 +173,24 @@ Route24Text1: ; 514a4 (14:54a4)
ld [W_ROUTE24CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
jp TextScriptEnd
-.asm_a03f5 ; 0x514f9
+.asm_514f9
ld hl, Route24Text_51530
call PrintText
jp TextScriptEnd
.BagFull
ld hl, Route24Text_51521
call PrintText
- ld hl, wd7f0
- set 1, [hl]
+ SetEvent EVENT_NUGGET_REWARD_AVAILABLE
jp TextScriptEnd
Route24Text_51510: ; 51510 (14:5510)
- TX_FAR _Route24Text_51510 ; 0x92721
+ TX_FAR _Route24Text_51510
db $0B
- TX_FAR _Route24Text_51515 ; 0x92755
+ TX_FAR _Route24Text_51515
db "@"
Route24Text_5151a: ; 5151a (14:551a)
- TX_FAR _Route24Text_5151a ; 0x92779
+ TX_FAR _Route24Text_5151a
db $0B, $6, "@"
Route24Text_51521: ; 51521 (14:5521)
@@ -218,37 +210,37 @@ Route24Text_51530: ; 51530 (14:5530)
db "@"
Route24Text2: ; 51535 (14:5535)
- db $08 ; asm
+ TX_ASM
ld hl, Route24TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Route24Text3: ; 5153f (14:553f)
- db $08 ; asm
+ TX_ASM
ld hl, Route24TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
Route24Text4: ; 51549 (14:5549)
- db $08 ; asm
+ TX_ASM
ld hl, Route24TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
Route24Text5: ; 51553 (14:5553)
- db $08 ; asm
+ TX_ASM
ld hl, Route24TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
Route24Text6: ; 5155d (14:555d)
- db $08 ; asm
+ TX_ASM
ld hl, Route24TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
Route24Text7: ; 51567 (14:5567)
- db $08 ; asm
+ TX_ASM
ld hl, Route24TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route25.asm b/scripts/route25.asm
index b915bdee..49580ba6 100755
--- a/scripts/route25.asm
+++ b/scripts/route25.asm
@@ -13,27 +13,26 @@ Route25Script_515e1: ; 515e1 (14:55e1)
bit 6, [hl]
res 6, [hl]
ret z
- ld hl, wd7f2
- bit 7, [hl]
+ CheckEventHL EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING
ret nz
- bit 5, [hl]
+ CheckEventReuseHL EVENT_MET_BILL_2
jr nz, .asm_515ff
- res 6, [hl]
+ ResetEventReuseHL EVENT_BILL_SAID_USE_CELL_SEPARATOR
ld a, HS_BILL_POKEMON
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_515ff
- bit 4, [hl]
+ CheckEventAfterBranchReuseHL EVENT_GOT_SS_TICKET, EVENT_MET_BILL_2
ret z
- set 7, [hl]
+ SetEventReuseHL EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING
ld a, HS_NUGGET_BRIDGE_GUY
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_BILL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_BILL_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
Route25ScriptPointers: ; 51622 (14:5622)
@@ -51,143 +50,143 @@ Route25TextPointers: ; 51628 (14:5628)
dw Route25Text7
dw Route25Text8
dw Route25Text9
- dw Predef5CText
+ dw PickUpItemText
dw Route25Text11
Route25TrainerHeaders: ; 5163e (14:563e)
Route25TrainerHeader0: ; 5163e (14:563e)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText1 ; 0x5705 TextBeforeBattle
- dw Route25AfterBattleText1 ; 0x570f TextAfterBattle
- dw Route25EndBattleText1 ; 0x570a TextEndBattle
- dw Route25EndBattleText1 ; 0x570a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_0
+ dw Route25BattleText1 ; TextBeforeBattle
+ dw Route25AfterBattleText1 ; TextAfterBattle
+ dw Route25EndBattleText1 ; TextEndBattle
+ dw Route25EndBattleText1 ; TextEndBattle
Route25TrainerHeader2: ; 5164a (14:564a)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText2 ; 0x5714 TextBeforeBattle
- dw Route25AfterBattleText2 ; 0x571e TextAfterBattle
- dw Route25EndBattleText2 ; 0x5719 TextEndBattle
- dw Route25EndBattleText2 ; 0x5719 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_2
+ dw Route25BattleText2 ; TextBeforeBattle
+ dw Route25AfterBattleText2 ; TextAfterBattle
+ dw Route25EndBattleText2 ; TextEndBattle
+ dw Route25EndBattleText2 ; TextEndBattle
Route25TrainerHeader3: ; 51656 (14:5656)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText3 ; 0x5723 TextBeforeBattle
- dw Route25AfterBattleText3 ; 0x572d TextAfterBattle
- dw Route25EndBattleText3 ; 0x5728 TextEndBattle
- dw Route25EndBattleText3 ; 0x5728 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_3
+ dw Route25BattleText3 ; TextBeforeBattle
+ dw Route25AfterBattleText3 ; TextAfterBattle
+ dw Route25EndBattleText3 ; TextEndBattle
+ dw Route25EndBattleText3 ; TextEndBattle
Route25TrainerHeader4: ; 51662 (14:5662)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_4
db ($2 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText4 ; 0x5732 TextBeforeBattle
- dw Route25AfterBattleText4 ; 0x573c TextAfterBattle
- dw Route25EndBattleText4 ; 0x5737 TextEndBattle
- dw Route25EndBattleText4 ; 0x5737 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_4
+ dw Route25BattleText4 ; TextBeforeBattle
+ dw Route25AfterBattleText4 ; TextAfterBattle
+ dw Route25EndBattleText4 ; TextEndBattle
+ dw Route25EndBattleText4 ; TextEndBattle
Route25TrainerHeader5: ; 5166e (14:566e)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText5 ; 0x5741 TextBeforeBattle
- dw Route25AfterBattleText5 ; 0x574b TextAfterBattle
- dw Route25EndBattleText5 ; 0x5746 TextEndBattle
- dw Route25EndBattleText5 ; 0x5746 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_5
+ dw Route25BattleText5 ; TextBeforeBattle
+ dw Route25AfterBattleText5 ; TextAfterBattle
+ dw Route25EndBattleText5 ; TextEndBattle
+ dw Route25EndBattleText5 ; TextEndBattle
Route25TrainerHeader6: ; 5167a (14:567a)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_6
db ($4 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText6 ; 0x5750 TextBeforeBattle
- dw Route25AfterBattleText6 ; 0x575a TextAfterBattle
- dw Route25EndBattleText6 ; 0x5755 TextEndBattle
- dw Route25EndBattleText6 ; 0x5755 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_6
+ dw Route25BattleText6 ; TextBeforeBattle
+ dw Route25AfterBattleText6 ; TextAfterBattle
+ dw Route25EndBattleText6 ; TextEndBattle
+ dw Route25EndBattleText6 ; TextEndBattle
Route25TrainerHeader7: ; 51686 (14:5686)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_7
db ($3 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText7 ; 0x575f TextBeforeBattle
- dw Route25AfterBattleText7 ; 0x5769 TextAfterBattle
- dw Route25EndBattleText7 ; 0x5764 TextEndBattle
- dw Route25EndBattleText7 ; 0x5764 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_7
+ dw Route25BattleText7 ; TextBeforeBattle
+ dw Route25AfterBattleText7 ; TextAfterBattle
+ dw Route25EndBattleText7 ; TextEndBattle
+ dw Route25EndBattleText7 ; TextEndBattle
Route25TrainerHeader8: ; 51692 (14:5692)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_8, 1
db ($2 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText8 ; 0x576e TextBeforeBattle
- dw Route25AfterBattleText8 ; 0x5778 TextAfterBattle
- dw Route25EndBattleText8 ; 0x5773 TextEndBattle
- dw Route25EndBattleText8 ; 0x5773 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_8, 1
+ dw Route25BattleText8 ; TextBeforeBattle
+ dw Route25AfterBattleText8 ; TextAfterBattle
+ dw Route25EndBattleText8 ; TextEndBattle
+ dw Route25EndBattleText8 ; TextEndBattle
Route25TrainerHeader9: ; 5169e (14:569e)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_9, 1
db ($2 << 4) ; trainer's view range
- dw wd7f1 ; flag's byte
- dw Route25BattleText9 ; 0x577d TextBeforeBattle
- dw Route25AfterBattleText9 ; 0x5787 TextAfterBattle
- dw Route25EndBattleText9 ; 0x5782 TextEndBattle
- dw Route25EndBattleText9 ; 0x5782 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_9, 1
+ dw Route25BattleText9 ; TextBeforeBattle
+ dw Route25AfterBattleText9 ; TextAfterBattle
+ dw Route25EndBattleText9 ; TextEndBattle
+ dw Route25EndBattleText9 ; TextEndBattle
db $ff
Route25Text1: ; 516ab (14:56ab)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Route25Text2: ; 516b5 (14:56b5)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
Route25Text3: ; 516bf (14:56bf)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
Route25Text4: ; 516c9 (14:56c9)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
Route25Text5: ; 516d3 (14:56d3)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
Route25Text6: ; 516dd (14:56dd)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
Route25Text7: ; 516e7 (14:56e7)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
Route25Text8: ; 516f1 (14:56f1)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
Route25Text9: ; 516fb (14:56fb)
- db $08 ; asm
+ TX_ASM
ld hl, Route25TrainerHeader9
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route2gate.asm b/scripts/route2gate.asm
index 97067e70..133d0e7c 100755
--- a/scripts/route2gate.asm
+++ b/scripts/route2gate.asm
@@ -6,30 +6,28 @@ Route2GateTextPointers: ; 5d5d7 (17:55d7)
dw Route2GateText2
Route2GateText1: ; 5d5db (17:55db)
- db $08 ; asm
- ld a, [wd7c2]
- bit 0, a
- jr nz, .asm_6592c ; 0x5d5e1
+ TX_ASM
+ CheckEvent EVENT_GOT_HM05
+ jr nz, .asm_5d60d
ld a, 10 ; pokemon needed
- ld [$ffdb], a
+ ld [hOaksAideRequirement], a
ld a, HM_05 ; oak's aide reward
- ld [$ffdc], a
+ ld [hOaksAideRewardItem], a
ld [wd11e], a
- call GetItemName ; $2fcf
+ call GetItemName
ld hl, wcd6d
- ld de, wcc5b
- ld bc, $000d
+ ld de, wOaksAideRewardItemName
+ ld bc, ITEM_NAME_LENGTH
call CopyData
- predef OaksAideScript ; call oak's aide script
- ld a, [$ffdb]
+ predef OaksAideScript
+ ld a, [hOaksAideResult]
cp $1
- jr nz, .asm_ad646 ; 0x5d606
- ld hl, wd7c2
- set 0, [hl]
-.asm_6592c ; 0x5d60d
+ jr nz, .asm_5d613
+ SetEvent EVENT_GOT_HM05
+.asm_5d60d
ld hl, Route2GateText_5d616
call PrintText
-.asm_ad646 ; 0x5d613
+.asm_5d613
jp TextScriptEnd
Route2GateText_5d616: ; 5d616 (17:5616)
diff --git a/scripts/route2house.asm b/scripts/route2house.asm
index ba13605b..d1312c91 100755
--- a/scripts/route2house.asm
+++ b/scripts/route2house.asm
@@ -10,7 +10,7 @@ Route2HouseText1: ; 1def4 (7:5ef4)
db "@"
Route2HouseText2: ; 1def9 (7:5ef9)
- db $08 ; asm
+ TX_ASM
ld a, $1
ld [wWhichTrade], a
predef DoInGameTradeDialogue
diff --git a/scripts/route3.asm b/scripts/route3.asm
index acb2afce..50c4e00d 100755
--- a/scripts/route3.asm
+++ b/scripts/route3.asm
@@ -26,76 +26,76 @@ Route3TextPointers: ; 55511 (15:5511)
Route3TrainerHeaders: ; 55525 (15:5525)
Route3TrainerHeader0: ; 55525 (15:5525)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd7c3 ; flag's byte
- dw Route3BattleText1 ; 0x5595 TextBeforeBattle
- dw Route3AfterBattleText1 ; 0x559f TextAfterBattle
- dw Route3EndBattleText1 ; 0x559a TextEndBattle
- dw Route3EndBattleText1 ; 0x559a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_0
+ dw Route3BattleText1 ; TextBeforeBattle
+ dw Route3AfterBattleText1 ; TextAfterBattle
+ dw Route3EndBattleText1 ; TextEndBattle
+ dw Route3EndBattleText1 ; TextEndBattle
Route3TrainerHeader2: ; 55531 (15:5531)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7c3 ; flag's byte
- dw Route3BattleText2 ; 0x55ae TextBeforeBattle
- dw Route3AfterBattleText2 ; 0x55b8 TextAfterBattle
- dw Route3EndBattleText2 ; 0x55b3 TextEndBattle
- dw Route3EndBattleText2 ; 0x55b3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_2
+ dw Route3BattleText2 ; TextBeforeBattle
+ dw Route3AfterBattleText2 ; TextAfterBattle
+ dw Route3EndBattleText2 ; TextEndBattle
+ dw Route3EndBattleText2 ; TextEndBattle
Route3TrainerHeader3: ; 5553d (15:553d)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd7c3 ; flag's byte
- dw Route3BattleText3 ; 0x55c7 TextBeforeBattle
- dw Route3AfterBattleText3 ; 0x55d1 TextAfterBattle
- dw Route3EndBattleText3 ; 0x55cc TextEndBattle
- dw Route3EndBattleText3 ; 0x55cc TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_3
+ dw Route3BattleText3 ; TextBeforeBattle
+ dw Route3AfterBattleText3 ; TextAfterBattle
+ dw Route3EndBattleText3 ; TextEndBattle
+ dw Route3EndBattleText3 ; TextEndBattle
Route3TrainerHeader4: ; 55549 (15:5549)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_4
db ($1 << 4) ; trainer's view range
- dw wd7c3 ; flag's byte
- dw Route3BattleText4 ; 0x55e0 TextBeforeBattle
- dw Route3AfterBattleText4 ; 0x55ea TextAfterBattle
- dw Route3EndBattleText4 ; 0x55e5 TextEndBattle
- dw Route3EndBattleText4 ; 0x55e5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_4
+ dw Route3BattleText4 ; TextBeforeBattle
+ dw Route3AfterBattleText4 ; TextAfterBattle
+ dw Route3EndBattleText4 ; TextEndBattle
+ dw Route3EndBattleText4 ; TextEndBattle
Route3TrainerHeader5: ; 55555 (15:5555)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd7c3 ; flag's byte
- dw Route3BattleText5 ; 0x55f9 TextBeforeBattle
- dw Route3AfterBattleText5 ; 0x5603 TextAfterBattle
- dw Route3EndBattleText5 ; 0x55fe TextEndBattle
- dw Route3EndBattleText5 ; 0x55fe TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_5
+ dw Route3BattleText5 ; TextBeforeBattle
+ dw Route3AfterBattleText5 ; TextAfterBattle
+ dw Route3EndBattleText5 ; TextEndBattle
+ dw Route3EndBattleText5 ; TextEndBattle
Route3TrainerHeader6: ; 55561 (15:5561)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_6
db ($3 << 4) ; trainer's view range
- dw wd7c3 ; flag's byte
- dw Route3BattleText6 ; 0x5612 TextBeforeBattle
- dw Route3AfterBattleText6 ; 0x561c TextAfterBattle
- dw Route3EndBattleText6 ; 0x5617 TextEndBattle
- dw Route3EndBattleText6 ; 0x5617 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_6
+ dw Route3BattleText6 ; TextBeforeBattle
+ dw Route3AfterBattleText6 ; TextAfterBattle
+ dw Route3EndBattleText6 ; TextEndBattle
+ dw Route3EndBattleText6 ; TextEndBattle
Route3TrainerHeader7: ; 5556d (15:556d)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_7, 1
db ($3 << 4) ; trainer's view range
- dw wd7c3 ; flag's byte
- dw Route3BattleText7 ; 0x562b TextBeforeBattle
- dw Route3AfterBattleText7 ; 0x5635 TextAfterBattle
- dw Route3EndBattleText7 ; 0x5630 TextEndBattle
- dw Route3EndBattleText7 ; 0x5630 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_7, 1
+ dw Route3BattleText7 ; TextBeforeBattle
+ dw Route3AfterBattleText7 ; TextAfterBattle
+ dw Route3EndBattleText7 ; TextEndBattle
+ dw Route3EndBattleText7 ; TextEndBattle
Route3TrainerHeader8: ; 55579 (15:5579)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_8, 1
db ($2 << 4) ; trainer's view range
- dw wd7c3 ; flag's byte
- dw Route3BattleText8 ; 0x5644 TextBeforeBattle
- dw Route3AfterBattleText8 ; 0x564e TextAfterBattle
- dw Route3EndBattleText8 ; 0x5649 TextEndBattle
- dw Route3EndBattleText8 ; 0x5649 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_8, 1
+ dw Route3BattleText8 ; TextBeforeBattle
+ dw Route3AfterBattleText8 ; TextAfterBattle
+ dw Route3EndBattleText8 ; TextEndBattle
+ dw Route3EndBattleText8 ; TextEndBattle
db $ff
@@ -104,7 +104,7 @@ Route3Text1: ; 55586 (15:5586)
db "@"
Route3Text2: ; 5558b (15:558b)
- db $08 ; asm
+ TX_ASM
ld hl, Route3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -122,7 +122,7 @@ Route3AfterBattleText1: ; 5559f (15:559f)
db "@"
Route3Text3: ; 555a4 (15:55a4)
- db $08 ; asm
+ TX_ASM
ld hl, Route3TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -140,7 +140,7 @@ Route3AfterBattleText2: ; 555b8 (15:55b8)
db "@"
Route3Text4: ; 555bd (15:55bd)
- db $08 ; asm
+ TX_ASM
ld hl, Route3TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -158,7 +158,7 @@ Route3AfterBattleText3: ; 555d1 (15:55d1)
db "@"
Route3Text5: ; 555d6 (15:55d6)
- db $08 ; asm
+ TX_ASM
ld hl, Route3TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -176,7 +176,7 @@ Route3AfterBattleText4: ; 555ea (15:55ea)
db "@"
Route3Text6: ; 555ef (15:55ef)
- db $08 ; asm
+ TX_ASM
ld hl, Route3TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -194,7 +194,7 @@ Route3AfterBattleText5: ; 55603 (15:5603)
db "@"
Route3Text7: ; 55608 (15:5608)
- db $08 ; asm
+ TX_ASM
ld hl, Route3TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -212,7 +212,7 @@ Route3AfterBattleText6: ; 5561c (15:561c)
db "@"
Route3Text8: ; 55621 (15:5621)
- db $08 ; asm
+ TX_ASM
ld hl, Route3TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
@@ -230,7 +230,7 @@ Route3AfterBattleText7: ; 55635 (15:5635)
db "@"
Route3Text9: ; 5563a (15:563a)
- db $08 ; asm
+ TX_ASM
ld hl, Route3TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route4.asm b/scripts/route4.asm
index 5eafb4f7..f5bdd9e8 100755
--- a/scripts/route4.asm
+++ b/scripts/route4.asm
@@ -15,20 +15,20 @@ Route4ScriptPointers: ; 5566b (15:566b)
Route4TextPointers: ; 55671 (15:5671)
dw Route4Text1
dw Route4Text2
- dw Predef5CText
+ dw PickUpItemText
dw PokeCenterSignText
dw Route4Text5
dw Route4Text6
Route4TrainerHeaders: ; 5567d (15:567d)
Route4TrainerHeader0: ; 5567d (15:567d)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_4_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd7c5 ; flag's byte
- dw Route4BattleText1 ; 0x5699 TextBeforeBattle
- dw Route4AfterBattleText1 ; 0x56a3 TextAfterBattle
- dw Route4EndBattleText1 ; 0x569e TextEndBattle
- dw Route4EndBattleText1 ; 0x569e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_4_TRAINER_0
+ dw Route4BattleText1 ; TextBeforeBattle
+ dw Route4AfterBattleText1 ; TextAfterBattle
+ dw Route4EndBattleText1 ; TextEndBattle
+ dw Route4EndBattleText1 ; TextEndBattle
db $ff
@@ -37,7 +37,7 @@ Route4Text1: ; 5568a (15:568a)
db "@"
Route4Text2: ; 5568f (15:568f)
- db $08 ; asm
+ TX_ASM
ld hl, Route4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route5gate.asm b/scripts/route5gate.asm
index bee70e77..35f3a020 100755
--- a/scripts/route5gate.asm
+++ b/scripts/route5gate.asm
@@ -9,7 +9,7 @@ Route5GateScriptPointers: ; 1df3f (7:5f3f)
dw Route5GateScript1
Route5GateScript_1df43: ; 1df43 (7:5f43)
- ld a, $40
+ ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -22,16 +22,16 @@ Route5GateScript0: ; 1df50 (7:5f50)
ld hl, CoordsData_1df8f
call ArePlayerCoordsInArray
ret nc
- ld a, $2
- ld [wd528], a
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
xor a
ld [hJoyHeld], a
callba RemoveGuardDrink
ld a, [$ffdb]
and a
- jr nz, .asm_1df82 ; 0x1df70 $10
+ jr nz, .asm_1df82
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Route5GateScript_1df43
ld a, $1
@@ -39,7 +39,7 @@ Route5GateScript0: ; 1df50 (7:5f50)
ret
.asm_1df82
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld hl, wd728
set 6, [hl]
@@ -69,27 +69,27 @@ Route8GateText1: ; 1dfaa (7:5faa)
Route7GateText1: ; 1dfaa (7:5faa)
Route6GateText1: ; 1dfaa (7:5faa)
Route5GateText1: ; 1dfaa (7:5faa)
- db $8
+ TX_ASM
ld a, [wd728]
bit 6, a
- jr nz, .asm_88856 ; 0x1dfb0 $2c
+ jr nz, .asm_88856
callba RemoveGuardDrink
ld a, [$ffdb]
and a
- jr nz, .asm_768a2 ; 0x1dfbd $11
+ jr nz, .asm_768a2
ld hl, Route5GateText2
call PrintText
call Route5GateScript_1df43
ld a, $1
ld [W_ROUTE5GATECURSCRIPT], a
jp TextScriptEnd
-.asm_768a2 ; 0x1dfd0
+.asm_768a2
ld hl, Route5GateText3
call PrintText
ld hl, wd728
set 6, [hl]
jp TextScriptEnd
-.asm_88856 ; 0x1dfde
+.asm_88856
ld hl, SaffronGateText_1dff6
call PrintText
jp TextScriptEnd
@@ -105,9 +105,9 @@ Route8GateText3: ; 1dfec (7:5fec)
Route7GateText3: ; 1dfec (7:5fec)
Route6GateText3: ; 1dfec (7:5fec)
Route5GateText3: ; 1dfec (7:5fec)
- TX_FAR _SaffronGateText_8aaa9 ; 0x8aaa9
+ TX_FAR _SaffronGateText_8aaa9
db $11
- TX_FAR _SaffronGateText_1dff1 ; 0x8aaef
+ TX_FAR _SaffronGateText_1dff1
db "@"
SaffronGateText_1dff6: ; 1dff6 (7:5ff6)
diff --git a/scripts/route6.asm b/scripts/route6.asm
index ee6258cd..e748fed1 100755
--- a/scripts/route6.asm
+++ b/scripts/route6.asm
@@ -23,63 +23,63 @@ Route6TextPointers: ; 590c9 (16:50c9)
Route6TrainerHeaders: ; 590d7 (16:50d7)
Route6TrainerHeader0: ; 590d7 (16:50d7)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd7c9 ; flag's byte
- dw Route6BattleText1 ; 0x512a TextBeforeBattle
- dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle
- dw Route6EndBattleText1 ; 0x512f TextEndBattle
- dw Route6EndBattleText1 ; 0x512f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_0
+ dw Route6BattleText1 ; TextBeforeBattle
+ dw Route6AfterBattleText1 ; TextAfterBattle
+ dw Route6EndBattleText1 ; TextEndBattle
+ dw Route6EndBattleText1 ; TextEndBattle
Route6TrainerHeader1: ; 590e3 (16:50e3)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_1
db ($0 << 4) ; trainer's view range
- dw wd7c9 ; flag's byte
- dw Route6BattleText2 ; 0x5143 TextBeforeBattle
- dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle
- dw Route6EndBattleText2 ; 0x5148 TextEndBattle
- dw Route6EndBattleText2 ; 0x5148 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_1
+ dw Route6BattleText2 ; TextBeforeBattle
+ dw Route6AfterBattleText1 ; TextAfterBattle
+ dw Route6EndBattleText2 ; TextEndBattle
+ dw Route6EndBattleText2 ; TextEndBattle
Route6TrainerHeader2: ; 590ef (16:50ef)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7c9 ; flag's byte
- dw Route6BattleText3 ; 0x5157 TextBeforeBattle
- dw Route6AfterBattleText3 ; 0x5161 TextAfterBattle
- dw Route6EndBattleText3 ; 0x515c TextEndBattle
- dw Route6EndBattleText3 ; 0x515c TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_2
+ dw Route6BattleText3 ; TextBeforeBattle
+ dw Route6AfterBattleText3 ; TextAfterBattle
+ dw Route6EndBattleText3 ; TextEndBattle
+ dw Route6EndBattleText3 ; TextEndBattle
Route6TrainerHeader3: ; 590fb (16:50fb)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7c9 ; flag's byte
- dw Route6BattleText4 ; 0x5170 TextBeforeBattle
- dw Route6AfterBattleText4 ; 0x517a TextAfterBattle
- dw Route6EndBattleText4 ; 0x5175 TextEndBattle
- dw Route6EndBattleText4 ; 0x5175 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_3
+ dw Route6BattleText4 ; TextBeforeBattle
+ dw Route6AfterBattleText4 ; TextAfterBattle
+ dw Route6EndBattleText4 ; TextEndBattle
+ dw Route6EndBattleText4 ; TextEndBattle
Route6TrainerHeader4: ; 59107 (16:5107)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd7c9 ; flag's byte
- dw Route6BattleText5 ; 0x5189 TextBeforeBattle
- dw Route6AfterBattleText5 ; 0x5193 TextAfterBattle
- dw Route6EndBattleText5 ; 0x518e TextEndBattle
- dw Route6EndBattleText5 ; 0x518e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_4
+ dw Route6BattleText5 ; TextBeforeBattle
+ dw Route6AfterBattleText5 ; TextAfterBattle
+ dw Route6EndBattleText5 ; TextEndBattle
+ dw Route6EndBattleText5 ; TextEndBattle
Route6TrainerHeader5: ; 59113 (16:5113)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd7c9 ; flag's byte
- dw Route6BattleText6 ; 0x51a2 TextBeforeBattle
- dw Route6AfterBattleText6 ; 0x51ac TextAfterBattle
- dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
- dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_5
+ dw Route6BattleText6 ; TextBeforeBattle
+ dw Route6AfterBattleText6 ; TextAfterBattle
+ dw Route6EndBattleText6 ; TextEndBattle
+ dw Route6EndBattleText6 ; TextEndBattle
db $ff
Route6Text1: ; 59120 (16:5120)
- db $8
+ TX_ASM
ld hl, Route6TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -97,7 +97,7 @@ Route6AfterBattleText1: ; 59134 (16:5134)
db "@"
Route6Text2: ; 59139 (16:5139)
- db $08 ; asm
+ TX_ASM
ld hl, Route6TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -111,7 +111,7 @@ Route6EndBattleText2: ; 59148 (16:5148)
db "@"
Route6Text3: ; 5914d (16:514d)
- db $08 ; asm
+ TX_ASM
ld hl, Route6TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -129,7 +129,7 @@ Route6AfterBattleText3: ; 59161 (16:5161)
db "@"
Route6Text4: ; 59166 (16:5166)
- db $08 ; asm
+ TX_ASM
ld hl, Route6TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -147,7 +147,7 @@ Route6AfterBattleText4: ; 5917a (16:517a)
db "@"
Route6Text5: ; 5917f (16:517f)
- db $08 ; asm
+ TX_ASM
ld hl, Route6TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -165,7 +165,7 @@ Route6AfterBattleText5: ; 59193 (16:5193)
db "@"
Route6Text6: ; 59198 (16:5198)
- db $08 ; asm
+ TX_ASM
ld hl, Route6TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route6gate.asm b/scripts/route6gate.asm
index 44d03a75..a4b6149c 100755
--- a/scripts/route6gate.asm
+++ b/scripts/route6gate.asm
@@ -16,16 +16,16 @@ Route6GateScript0: ; 1e04e (7:604e)
ld hl, CoordsData_1e08c
call ArePlayerCoordsInArray
ret nc
- ld a, $1
- ld [wd528], a
+ ld a, PLAYER_DIR_RIGHT
+ ld [wPlayerMovingDirection], a
xor a
ld [hJoyHeld], a
callba RemoveGuardDrink
ld a, [$ffdb]
and a
- jr nz, .asm_1e080 ; 0x1e06e $10
+ jr nz, .asm_1e080
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Route6GateScript_1e0a1
ld a, $1
@@ -35,7 +35,7 @@ Route6GateScript0: ; 1e04e (7:604e)
ld hl, wd728
set 6, [hl]
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
CoordsData_1e08c: ; 1e08c (7:608c)
diff --git a/scripts/route7gate.asm b/scripts/route7gate.asm
index beab96bf..b55f813c 100755
--- a/scripts/route7gate.asm
+++ b/scripts/route7gate.asm
@@ -28,16 +28,16 @@ Route7GateScript0: ; 1e128 (7:6128)
ld hl, CoordsData_1e167
call ArePlayerCoordsInArray
ret nc
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
xor a
ld [hJoyHeld], a
callba RemoveGuardDrink
ld a, [$ffdb]
and a
- jr nz, .asm_1e15a ; 0x1e148 $10
+ jr nz, .asm_1e15a
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Route7GateScript_1e111
ld a, $1
@@ -45,7 +45,7 @@ Route7GateScript0: ; 1e128 (7:6128)
ret
.asm_1e15a
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld hl, wd728
set 6, [hl]
diff --git a/scripts/route8.asm b/scripts/route8.asm
index eed57c7b..c734c62d 100755
--- a/scripts/route8.asm
+++ b/scripts/route8.asm
@@ -26,90 +26,90 @@ Route8TextPointers: ; 591cf (16:51cf)
Route8TrainerHeaders: ; 591e3 (16:51e3)
Route8TrainerHeader0: ; 591e3 (16:51e3)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText1 ; 0x525a TextBeforeBattle
- dw Route8AfterBattleText1 ; 0x5264 TextAfterBattle
- dw Route8EndBattleText1 ; 0x525f TextEndBattle
- dw Route8EndBattleText1 ; 0x525f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_0
+ dw Route8BattleText1 ; TextBeforeBattle
+ dw Route8AfterBattleText1 ; TextAfterBattle
+ dw Route8EndBattleText1 ; TextEndBattle
+ dw Route8EndBattleText1 ; TextEndBattle
Route8TrainerHeader1: ; 591ef (16:51ef)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText2 ; 0x5273 TextBeforeBattle
- dw Route8AfterBattleText2 ; 0x527d TextAfterBattle
- dw Route8EndBattleText2 ; 0x5278 TextEndBattle
- dw Route8EndBattleText2 ; 0x5278 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_1
+ dw Route8BattleText2 ; TextBeforeBattle
+ dw Route8AfterBattleText2 ; TextAfterBattle
+ dw Route8EndBattleText2 ; TextEndBattle
+ dw Route8EndBattleText2 ; TextEndBattle
Route8TrainerHeader2: ; 591fb (16:51fb)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText3 ; 0x528c TextBeforeBattle
- dw Route8AfterBattleText3 ; 0x5296 TextAfterBattle
- dw Route8EndBattleText3 ; 0x5291 TextEndBattle
- dw Route8EndBattleText3 ; 0x5291 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_2
+ dw Route8BattleText3 ; TextBeforeBattle
+ dw Route8AfterBattleText3 ; TextAfterBattle
+ dw Route8EndBattleText3 ; TextEndBattle
+ dw Route8EndBattleText3 ; TextEndBattle
Route8TrainerHeader3: ; 59207 (16:5207)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText4 ; 0x52a5 TextBeforeBattle
- dw Route8AfterBattleText4 ; 0x52af TextAfterBattle
- dw Route8EndBattleText4 ; 0x52aa TextEndBattle
- dw Route8EndBattleText4 ; 0x52aa TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_3
+ dw Route8BattleText4 ; TextBeforeBattle
+ dw Route8AfterBattleText4 ; TextAfterBattle
+ dw Route8EndBattleText4 ; TextEndBattle
+ dw Route8EndBattleText4 ; TextEndBattle
Route8TrainerHeader4: ; 59213 (16:5213)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText5 ; 0x52be TextBeforeBattle
- dw Route8AfterBattleText5 ; 0x52c8 TextAfterBattle
- dw Route8EndBattleText5 ; 0x52c3 TextEndBattle
- dw Route8EndBattleText5 ; 0x52c3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_4
+ dw Route8BattleText5 ; TextBeforeBattle
+ dw Route8AfterBattleText5 ; TextAfterBattle
+ dw Route8EndBattleText5 ; TextEndBattle
+ dw Route8EndBattleText5 ; TextEndBattle
Route8TrainerHeader5: ; 5921f (16:521f)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText6 ; 0x52d7 TextBeforeBattle
- dw Route8AfterBattleText6 ; 0x52e1 TextAfterBattle
- dw Route8EndBattleText6 ; 0x52dc TextEndBattle
- dw Route8EndBattleText6 ; 0x52dc TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_5
+ dw Route8BattleText6 ; TextBeforeBattle
+ dw Route8AfterBattleText6 ; TextAfterBattle
+ dw Route8EndBattleText6 ; TextEndBattle
+ dw Route8EndBattleText6 ; TextEndBattle
Route8TrainerHeader6: ; 5922b (16:522b)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_6
db ($2 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText7 ; 0x52f0 TextBeforeBattle
- dw Route8AfterBattleText7 ; 0x52fa TextAfterBattle
- dw Route8EndBattleText7 ; 0x52f5 TextEndBattle
- dw Route8EndBattleText7 ; 0x52f5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_6
+ dw Route8BattleText7 ; TextBeforeBattle
+ dw Route8AfterBattleText7 ; TextAfterBattle
+ dw Route8EndBattleText7 ; TextEndBattle
+ dw Route8EndBattleText7 ; TextEndBattle
Route8TrainerHeader7: ; 59237 (16:5237)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_7, 1
db ($2 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText8 ; 0x5309 TextBeforeBattle
- dw Route8AfterBattleText8 ; 0x5313 TextAfterBattle
- dw Route8EndBattleText8 ; 0x530e TextEndBattle
- dw Route8EndBattleText8 ; 0x530e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_7, 1
+ dw Route8BattleText8 ; TextBeforeBattle
+ dw Route8AfterBattleText8 ; TextAfterBattle
+ dw Route8EndBattleText8 ; TextEndBattle
+ dw Route8EndBattleText8 ; TextEndBattle
Route8TrainerHeader8: ; 59243 (16:5243)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_8, 1
db ($4 << 4) ; trainer's view range
- dw wd7cd ; flag's byte
- dw Route8BattleText9 ; 0x5322 TextBeforeBattle
- dw Route8AfterBattleText9 ; 0x532c TextAfterBattle
- dw Route8EndBattleText9 ; 0x5327 TextEndBattle
- dw Route8EndBattleText9 ; 0x5327 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_8, 1
+ dw Route8BattleText9 ; TextBeforeBattle
+ dw Route8AfterBattleText9 ; TextAfterBattle
+ dw Route8EndBattleText9 ; TextEndBattle
+ dw Route8EndBattleText9 ; TextEndBattle
db $ff
Route8Text1: ; 59250 (16:5250)
- db $8
+ TX_ASM
ld hl, Route8TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -127,7 +127,7 @@ Route8AfterBattleText1: ; 59264 (16:5264)
db "@"
Route8Text2: ; 59269 (16:5269)
- db $08 ; asm
+ TX_ASM
ld hl, Route8TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -145,7 +145,7 @@ Route8AfterBattleText2: ; 5927d (16:527d)
db "@"
Route8Text3: ; 59282 (16:5282)
- db $08 ; asm
+ TX_ASM
ld hl, Route8TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -163,7 +163,7 @@ Route8AfterBattleText3: ; 59296 (16:5296)
db "@"
Route8Text4: ; 5929b (16:529b)
- db $08 ; asm
+ TX_ASM
ld hl, Route8TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -181,7 +181,7 @@ Route8AfterBattleText4: ; 592af (16:52af)
db "@"
Route8Text5: ; 592b4 (16:52b4)
- db $08 ; asm
+ TX_ASM
ld hl, Route8TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -199,7 +199,7 @@ Route8AfterBattleText5: ; 592c8 (16:52c8)
db "@"
Route8Text6: ; 592cd (16:52cd)
- db $08 ; asm
+ TX_ASM
ld hl, Route8TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -217,7 +217,7 @@ Route8AfterBattleText6: ; 592e1 (16:52e1)
db "@"
Route8Text7: ; 592e6 (16:52e6)
- db $08 ; asm
+ TX_ASM
ld hl, Route8TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -235,7 +235,7 @@ Route8AfterBattleText7: ; 592fa (16:52fa)
db "@"
Route8Text8: ; 592ff (16:52ff)
- db $08 ; asm
+ TX_ASM
ld hl, Route8TrainerHeader7
call TalkToTrainer
jp TextScriptEnd
@@ -253,7 +253,7 @@ Route8AfterBattleText8: ; 59313 (16:5313)
db "@"
Route8Text9: ; 59318 (16:5318)
- db $08 ; asm
+ TX_ASM
ld hl, Route8TrainerHeader8
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/route8gate.asm b/scripts/route8gate.asm
index 8ea12f04..96bfa875 100755
--- a/scripts/route8gate.asm
+++ b/scripts/route8gate.asm
@@ -27,16 +27,16 @@ Route8GateScript0: ; 1e1ee (7:61ee)
ld hl, CoordsData_1e22c
call ArePlayerCoordsInArray
ret nc
- ld a, $2
- ld [wd528], a
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
xor a
ld [hJoyHeld], a
callba RemoveGuardDrink
ld a, [$ffdb]
and a
- jr nz, .asm_1e220 ; 0x1e20e $10
+ jr nz, .asm_1e220
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Route8GateScript_1e1d7
ld a, $1
@@ -46,7 +46,7 @@ Route8GateScript0: ; 1e1ee (7:61ee)
ld hl, wd728
set 6, [hl]
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
CoordsData_1e22c: ; 1e22c (7:622c)
diff --git a/scripts/route9.asm b/scripts/route9.asm
index 77b216c6..9d26ee96 100755
--- a/scripts/route9.asm
+++ b/scripts/route9.asm
@@ -22,137 +22,137 @@ Route9TextPointers: ; 556d5 (15:56d5)
dw Route9Text7
dw Route9Text8
dw Route9Text9
- dw Predef5CText
+ dw PickUpItemText
dw Route9Text11
Route9TrainerHeaders: ; 556eb (15:56eb)
Route9TrainerHeader0: ; 556eb (15:56eb)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText1 ; 0x5792 TextBeforeBattle
- dw Route9AfterBattleText1 ; 0x579c TextAfterBattle
- dw Route9EndBattleText1 ; 0x5797 TextEndBattle
- dw Route9EndBattleText1 ; 0x5797 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_0
+ dw Route9BattleText1 ; TextBeforeBattle
+ dw Route9AfterBattleText1 ; TextAfterBattle
+ dw Route9EndBattleText1 ; TextEndBattle
+ dw Route9EndBattleText1 ; TextEndBattle
Route9TrainerHeader2: ; 556f7 (15:56f7)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText2 ; 0x57a1 TextBeforeBattle
- dw Route9AfterBattleText2 ; 0x57ab TextAfterBattle
- dw Route9EndBattleText2 ; 0x57a6 TextEndBattle
- dw Route9EndBattleText2 ; 0x57a6 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_2
+ dw Route9BattleText2 ; TextBeforeBattle
+ dw Route9AfterBattleText2 ; TextAfterBattle
+ dw Route9EndBattleText2 ; TextEndBattle
+ dw Route9EndBattleText2 ; TextEndBattle
Route9TrainerHeader3: ; 55703 (15:5703)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText3 ; 0x57b0 TextBeforeBattle
- dw Route9AfterBattleText3 ; 0x57ba TextAfterBattle
- dw Route9EndBattleText3 ; 0x57b5 TextEndBattle
- dw Route9EndBattleText3 ; 0x57b5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_3
+ dw Route9BattleText3 ; TextBeforeBattle
+ dw Route9AfterBattleText3 ; TextAfterBattle
+ dw Route9EndBattleText3 ; TextEndBattle
+ dw Route9EndBattleText3 ; TextEndBattle
Route9TrainerHeader4: ; 5570f (15:570f)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_4
db ($2 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText4 ; 0x57bf TextBeforeBattle
- dw Route9AfterBattleText4 ; 0x57c9 TextAfterBattle
- dw Route9EndBattleText4 ; 0x57c4 TextEndBattle
- dw Route9EndBattleText4 ; 0x57c4 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_4
+ dw Route9BattleText4 ; TextBeforeBattle
+ dw Route9AfterBattleText4 ; TextAfterBattle
+ dw Route9EndBattleText4 ; TextEndBattle
+ dw Route9EndBattleText4 ; TextEndBattle
Route9TrainerHeader5: ; 5571b (15:571b)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_5
db ($2 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText5 ; 0x57ce TextBeforeBattle
- dw Route9AfterBattleText5 ; 0x57d8 TextAfterBattle
- dw Route9EndBattleText5 ; 0x57d3 TextEndBattle
- dw Route9EndBattleText5 ; 0x57d3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_5
+ dw Route9BattleText5 ; TextBeforeBattle
+ dw Route9AfterBattleText5 ; TextAfterBattle
+ dw Route9EndBattleText5 ; TextEndBattle
+ dw Route9EndBattleText5 ; TextEndBattle
Route9TrainerHeader6: ; 55727 (15:5727)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_6
db ($3 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText6 ; 0x57dd TextBeforeBattle
- dw Route9AfterBattleText6 ; 0x57e7 TextAfterBattle
- dw Route9EndBattleText6 ; 0x57e2 TextEndBattle
- dw Route9EndBattleText6 ; 0x57e2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_6
+ dw Route9BattleText6 ; TextBeforeBattle
+ dw Route9AfterBattleText6 ; TextAfterBattle
+ dw Route9EndBattleText6 ; TextEndBattle
+ dw Route9EndBattleText6 ; TextEndBattle
Route9TrainerHeader7: ; 55733 (15:5733)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_7
db ($4 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText7 ; 0x57ec TextBeforeBattle
- dw Route9AfterBattleText7 ; 0x57f6 TextAfterBattle
- dw Route9EndBattleText7 ; 0x57f1 TextEndBattle
- dw Route9EndBattleText7 ; 0x57f1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_7
+ dw Route9BattleText7 ; TextBeforeBattle
+ dw Route9AfterBattleText7 ; TextAfterBattle
+ dw Route9EndBattleText7 ; TextEndBattle
+ dw Route9EndBattleText7 ; TextEndBattle
Route9TrainerHeader8: ; 5573f (15:573f)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_8, 1
db ($2 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText8 ; 0x57fb TextBeforeBattle
- dw Route9AfterBattleText8 ; 0x5805 TextAfterBattle
- dw Route9EndBattleText8 ; 0x5800 TextEndBattle
- dw Route9EndBattleText8 ; 0x5800 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_8, 1
+ dw Route9BattleText8 ; TextBeforeBattle
+ dw Route9AfterBattleText8 ; TextAfterBattle
+ dw Route9EndBattleText8 ; TextEndBattle
+ dw Route9EndBattleText8 ; TextEndBattle
Route9TrainerHeader9: ; 5574b (15:574b)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_9, 1
db ($2 << 4) ; trainer's view range
- dw wd7cf ; flag's byte
- dw Route9BattleText9 ; 0x580a TextBeforeBattle
- dw Route9AfterBattleText9 ; 0x5814 TextAfterBattle
- dw Route9EndBattleText9 ; 0x580f TextEndBattle
- dw Route9EndBattleText9 ; 0x580f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_9, 1
+ dw Route9BattleText9 ; TextBeforeBattle
+ dw Route9AfterBattleText9 ; TextAfterBattle
+ dw Route9EndBattleText9 ; TextEndBattle
+ dw Route9EndBattleText9 ; TextEndBattle
db $ff
Route9Text1: ; 55758 (15:5758)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader0
- jr asm_8be3d ; 0x5575c $2e
+ jr Route9TalkToTrainer
Route9Text2: ; 5575e (15:575e)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader2
- jr asm_8be3d ; 0x55762 $28
+ jr Route9TalkToTrainer
Route9Text3: ; 55764 (15:5764)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader3
- jr asm_8be3d ; 0x55768 $22
+ jr Route9TalkToTrainer
Route9Text4: ; 5576a (15:576a)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader4
- jr asm_8be3d ; 0x5576e $1c
+ jr Route9TalkToTrainer
Route9Text5: ; 55770 (15:5770)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader5
- jr asm_8be3d ; 0x55774 $16
+ jr Route9TalkToTrainer
Route9Text6: ; 55776 (15:5776)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader6
- jr asm_8be3d ; 0x5577a $10
+ jr Route9TalkToTrainer
Route9Text7: ; 5577c (15:577c)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader7
- jr asm_8be3d ; 0x55780 $a
+ jr Route9TalkToTrainer
Route9Text8: ; 55782 (15:5782)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader8
- jr asm_8be3d ; 0x55786 $4
+ jr Route9TalkToTrainer
Route9Text9: ; 55788 (15:5788)
- db $8 ; asm
+ TX_ASM
ld hl, Route9TrainerHeader9
-asm_8be3d: ; 5578c (15:578c)
+Route9TalkToTrainer: ; 5578c (15:578c)
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/safarizonecenter.asm b/scripts/safarizonecenter.asm
index 6ff60ec6..40042038 100755
--- a/scripts/safarizonecenter.asm
+++ b/scripts/safarizonecenter.asm
@@ -2,7 +2,7 @@ SafariZoneCenterScript: ; 45bb2 (11:5bb2)
jp EnableAutoTextBoxDrawing
SafariZoneCenterTextPointers: ; 45bb5 (11:5bb5)
- dw Predef5CText
+ dw PickUpItemText
dw SafariZoneCenterText2
dw SafariZoneCenterText3
diff --git a/scripts/safarizoneeast.asm b/scripts/safarizoneeast.asm
index 3e6df139..55ea5aa6 100755
--- a/scripts/safarizoneeast.asm
+++ b/scripts/safarizoneeast.asm
@@ -2,10 +2,10 @@ SafariZoneEastScript: ; 4586b (11:586b)
jp EnableAutoTextBoxDrawing
SafariZoneEastTextPointers: ; 4586e (11:586e)
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw SafariZoneEastText5
dw SafariZoneEastText6
dw SafariZoneEastText7
diff --git a/scripts/safarizoneentrance-yellow.asm b/scripts/safarizoneentrance-yellow.asm
index c4343095..4a37f0e6 100644
--- a/scripts/safarizoneentrance-yellow.asm
+++ b/scripts/safarizoneentrance-yellow.asm
@@ -1,7 +1,7 @@
.xf1f77
ld hl,.ForJust500Text
call PrintText
- ld a,$13
+ ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID
call YesNoChoice
@@ -21,11 +21,11 @@
.xf1f9f
xor a
- ld [$ff9f],a
+ ld [hMoney],a
ld a,$05
- ld [$ffa0],a
+ ld [hMoney + 1],a
ld a,$00
- ld [$ffa1],a
+ ld [hMoney + 2],a
call HasEnoughMoney
jr nc,.success
ld hl,.NotEnoughMoneyText
@@ -36,37 +36,36 @@
.success
xor a
- ld [wSubtrahend],a
+ ld [wPriceTemp],a
ld a,$05
- ld [wSubtrahend+1],a
+ ld [wPriceTemp + 1],a
ld a,$00
- ld [wSubtrahend+2],a
- ld hl,wTrainerFacingDirection
+ ld [wPriceTemp + 2],a
+ ld hl,wPriceTemp + 2
ld de,wPlayerMoney + 2
ld c,3
predef SubBCDPredef
ld a,$b2
call $3736
call $373e
- ld a,$13
+ ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID
ld hl,.MakePaymentText
call PrintText
ld a,30
- ld hl,(502 / $100) << 8 | (502 % $100)
+ lb hl, (502 / $100), (502 % $100)
.xf1ff2
ld [W_NUMSAFARIBALLS],a
ld a,h
ld [wSafariSteps],a
ld a,l
ld [wSafariSteps + 1],a
- ld a,$40
+ ld a,D_UP
ld c,3
call SafariZoneEntranceAutoWalk
- ld hl,wd790
- set 7,[hl]
- res 6,[hl]
+ SetEvent EVENT_IN_SAFARI_ZONE
+ ResetEventReuseHL EVENT_SAFARI_GAME_OVER
ld a,3
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
jr .done
@@ -75,7 +74,7 @@
ld hl,.PleaseComeAgainText
call PrintText
.CantPayWalkDown
- ld a,$80
+ ld a,D_DOWN
ld c,1
call SafariZoneEntranceAutoWalk
ld a,4
@@ -155,8 +154,8 @@ SafariZoneEntranceAutoWalk:
ld bc,3
call FillMemory
ld hl,.OhAllRightText
- call Func_3c59
- ld a,$13
+ call PrintText_NoCreatingTextBox
+ ld a,MONEY_BOX
ld a,[$d124]
call DisplayTextBoxID
ld hl,.CantGive30BallsText
diff --git a/scripts/safarizoneentrance.asm b/scripts/safarizoneentrance.asm
index 294dcf58..e4e2e2a8 100755
--- a/scripts/safarizoneentrance.asm
+++ b/scripts/safarizoneentrance.asm
@@ -18,22 +18,22 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9)
call ArePlayerCoordsInArray
ret nc
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
ld [wJoyIgnore], a
xor a
ld [hJoyHeld], a
- ld a, $c
+ ld a, SPRITE_FACING_RIGHT
ld [wSpriteStateData1 + 9], a
- ld a, [wWhichTrade]
+ ld a, [wCoordIndex]
cp $1
- jr z, .asm_7520f ; 0x75207 $6
+ jr z, .asm_7520f
ld a, $2
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
.asm_7520f
- ld a, $10
+ ld a, D_RIGHT
ld c, $1
call SafariZoneEntranceAutoWalk
ld a, $f0
@@ -56,7 +56,7 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9)
ld [wJoyIgnore], a
call UpdateSprites
ld a, $4
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
ld [wJoyIgnore], a
@@ -72,30 +72,28 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9)
ret
.SafariZoneEntranceScript5
- ld a, $4
- ld [wd528], a
- ld hl, wd790
- bit 6, [hl]
- res 6, [hl]
- jr z, .asm_7527f ; 0x7525a $23
- res 7, [hl]
+ ld a, PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection], a
+ CheckAndResetEvent EVENT_SAFARI_GAME_OVER
+ jr z, .asm_7527f
+ ResetEventReuseHL EVENT_IN_SAFARI_ZONE
call UpdateSprites
ld a, $f0
ld [wJoyIgnore], a
ld a, $6
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [W_NUMSAFARIBALLS], a
- ld a, $80
+ ld a, D_DOWN
ld c, $3
call SafariZoneEntranceAutoWalk
ld a, $4
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
- jr .asm_75286 ; 0x7527d $7
+ jr .asm_75286
.asm_7527f
ld a, $5
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_75286
ret
@@ -145,9 +143,9 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
db "@"
.SafariZoneEntranceText4
- TX_FAR SafariZoneEntranceText_9e6e4 ; 0x9e6e4
- db $8
- ld a, $13
+ TX_FAR SafariZoneEntranceText_9e6e4
+ TX_ASM
+ ld a, MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID
call YesNoChoice
@@ -155,11 +153,11 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
and a
jp nz,.PleaseComeAgain
xor a
- ld [$ff9f],a
+ ld [hMoney],a
ld a,$05
- ld [$ffa0],a
+ ld [hMoney + 1],a
ld a,$00
- ld [$ffa1],a
+ ld [hMoney + 2],a
call HasEnoughMoney
jr nc,.success
ld hl,.NotEnoughMoneyText
@@ -168,16 +166,16 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
.success
xor a
- ld [wSubtrahend],a
+ ld [wPriceTemp],a
ld a,$05
- ld [wSubtrahend+1],a
+ ld [wPriceTemp + 1],a
ld a,$00
- ld [wSubtrahend+2],a
- ld hl,wTrainerFacingDirection
+ ld [wPriceTemp + 2],a
+ ld hl,wPriceTemp + 2
ld de,wPlayerMoney + 2
ld c,3
predef SubBCDPredef
- ld a,$13
+ ld a,MONEY_BOX
ld [wTextBoxID],a
call DisplayTextBoxID
ld hl,.MakePaymentText
@@ -188,12 +186,11 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
ld [wSafariSteps],a
ld a, 502 % $100
ld [wSafariSteps + 1],a
- ld a,$40
+ ld a,D_UP
ld c,3
call SafariZoneEntranceAutoWalk
- ld hl,wd790
- set 7,[hl]
- res 6,[hl]
+ SetEvent EVENT_IN_SAFARI_ZONE
+ ResetEventReuseHL EVENT_SAFARI_GAME_OVER
ld a,3
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
jr .done
@@ -202,7 +199,7 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
ld hl,.PleaseComeAgainText
call PrintText
.CantPayWalkDown
- ld a,$80
+ ld a,D_DOWN
ld c,1
call SafariZoneEntranceAutoWalk
ld a,4
@@ -225,31 +222,29 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
db "@"
.SafariZoneEntranceText5
- TX_FAR SafariZoneEntranceText_9e814 ; 0x9e814
- db $8
+ TX_FAR SafariZoneEntranceText_9e814
+ TX_ASM
call YesNoChoice
ld a,[wCurrentMenuItem]
and a
- jr nz, .asm_7539c ; 0x7537b $1f
+ jr nz, .asm_7539c
ld hl, .SafariZoneEntranceText_753bb
call PrintText
xor a
ld [wSpriteStateData1 + 9], a
- ld a, $80
+ ld a, D_DOWN
ld c, $3
call SafariZoneEntranceAutoWalk
- ld hl, wd790
- res 6, [hl]
- res 7, [hl]
+ ResetEvents EVENT_SAFARI_GAME_OVER, EVENT_IN_SAFARI_ZONE
ld a, $0
ld [wcf0d], a
- jr .asm_753b3 ; 0x7539a $17
+ jr .asm_753b3
.asm_7539c
ld hl, .SafariZoneEntranceText_753c0
call PrintText
- ld a, $4
+ ld a, SPRITE_FACING_UP
ld [wSpriteStateData1 + 9], a
- ld a, $40
+ ld a, D_UP
ld c, $1
call SafariZoneEntranceAutoWalk
ld a, $5
@@ -272,7 +267,7 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
db "@"
.SafariZoneEntranceText2
- db $08 ; asm
+ TX_ASM
ld hl,.FirstTimeQuestionText
call PrintText
call YesNoChoice
diff --git a/scripts/safarizonenorth.asm b/scripts/safarizonenorth.asm
index 74790e76..6ea5f902 100755
--- a/scripts/safarizonenorth.asm
+++ b/scripts/safarizonenorth.asm
@@ -2,8 +2,8 @@ SafariZoneNorthScript: ; 459ab (11:59ab)
jp EnableAutoTextBoxDrawing
SafariZoneNorthTextPointers: ; 459ae (11:59ae)
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw SafariZoneNorthText3
dw SafariZoneNorthText4
dw SafariZoneNorthText5
diff --git a/scripts/safarizonesecrethouse.asm b/scripts/safarizonesecrethouse.asm
index 28aae7c4..8881472b 100755
--- a/scripts/safarizonesecrethouse.asm
+++ b/scripts/safarizonesecrethouse.asm
@@ -5,28 +5,26 @@ SafariZoneSecretHouseTextPointers: ; 4a31a (12:631a)
dw SafariZoneSecretHouseText1
SafariZoneSecretHouseText1: ; 4a31c (12:631c)
- db $08 ; asm
- ld a, [wd857]
- bit 0, a
- jr nz, .asm_20a9b ; 0x4a322
+ TX_ASM
+ CheckEvent EVENT_GOT_HM03
+ jr nz, .asm_20a9b
ld hl, SafariZoneSecretHouseText_4a350
call PrintText
- ld bc, (HM_03 << 8) | 1
+ lb bc, HM_03, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedHM03Text
call PrintText
- ld hl, wd857
- set 0, [hl]
- jr .asm_8f1fc ; 0x4a33d
+ SetEvent EVENT_GOT_HM03
+ jr .asm_8f1fc
.BagFull
ld hl, HM03NoRoomText
call PrintText
- jr .asm_8f1fc ; 0x4a345
-.asm_20a9b ; 0x4a347
+ jr .asm_8f1fc
+.asm_20a9b
ld hl, HM03ExplanationText
call PrintText
-.asm_8f1fc ; 0x4a34d
+.asm_8f1fc
jp TextScriptEnd
SafariZoneSecretHouseText_4a350: ; 4a350 (12:6350)
diff --git a/scripts/safarizonewest.asm b/scripts/safarizonewest.asm
index 1465af56..db2c6427 100755
--- a/scripts/safarizonewest.asm
+++ b/scripts/safarizonewest.asm
@@ -2,10 +2,10 @@ SafariZoneWestScript: ; 4a1b5 (12:61b5)
jp EnableAutoTextBoxDrawing
SafariZoneWestTextPointers: ; 4a1b8 (12:61b8)
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw SafariZoneWestText5
dw SafariZoneWestText6
dw SafariZoneWestText7
diff --git a/scripts/saffrongym.asm b/scripts/saffrongym.asm
index 7c2eb559..140b1130 100755
--- a/scripts/saffrongym.asm
+++ b/scripts/saffrongym.asm
@@ -12,8 +12,8 @@ SaffronGymScript: ; 5d00d (17:500d)
ret
.extra
- ld hl, Gym6CityName ; $5033
- ld de, Gym6LeaderName ; $5040
+ ld hl, Gym6CityName
+ ld de, Gym6LeaderName
jp LoadGymLeaderAndCityName
Gym6CityName: ; 5d033 (17:5033)
@@ -36,7 +36,7 @@ SaffronGymScriptPointers: ; 5d053 (17:5053)
dw SaffronGymScript3
SaffronGymScript3: ; 5d05b (17:505b)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, SaffronGymText_5d048
ld a, $f0
@@ -44,35 +44,29 @@ SaffronGymScript3: ; 5d05b (17:505b)
SaffronGymText_5d068: ; 5d068 (17:5068)
ld a, $a
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd7b3
- set 1, [hl]
- ld bc, (TM_46 << 8) | 1
+ SetEvent EVENT_BEAT_SABRINA
+ lb bc, TM_46, 1
call GiveItem
jr nc, .BagFull
ld a, $b
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd7b3
- set 0, [hl]
+ SetEvent EVENT_GOT_TM46
jr .asm_5d091
.BagFull
ld a, $c
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_5d091
ld hl, W_OBTAINEDBADGES
set 5, [hl]
- ld hl, wd72a
+ ld hl, wBeatGymFlags
set 5, [hl]
; deactivate gym trainers
- ld a, [wd7b3]
- or %11111100
- ld [wd7b3], a
- ld hl, wd7b4
- set 0, [hl]
+ SetEventRange EVENT_BEAT_SAFFRON_GYM_TRAINER_0, EVENT_BEAT_SAFFRON_GYM_TRAINER_6
jp SaffronGymText_5d048
@@ -92,85 +86,84 @@ SaffronGymTextPointers: ; 5d0ab (17:50ab)
SaffronGymTrainerHeaders: ; 5d0c3 (17:50c3)
SaffronGymTrainerHeader0: ; 5d0c3 (17:50c3)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd7b3 ; flag's byte
- dw SaffronGymBattleText1 ; 0x51f0 TextBeforeBattle
- dw SaffronGymAfterBattleText1 ; 0x51fa TextAfterBattle
- dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle
- dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_0
+ dw SaffronGymBattleText1 ; TextBeforeBattle
+ dw SaffronGymAfterBattleText1 ; TextAfterBattle
+ dw SaffronGymEndBattleText1 ; TextEndBattle
+ dw SaffronGymEndBattleText1 ; TextEndBattle
SaffronGymTrainerHeader1: ; 5d0cf (17:50cf)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd7b3 ; flag's byte
- dw SaffronGymBattleText2 ; 0x51ff TextBeforeBattle
- dw SaffronGymAfterBattleText2 ; 0x5209 TextAfterBattle
- dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle
- dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_1
+ dw SaffronGymBattleText2 ; TextBeforeBattle
+ dw SaffronGymAfterBattleText2 ; TextAfterBattle
+ dw SaffronGymEndBattleText2 ; TextEndBattle
+ dw SaffronGymEndBattleText2 ; TextEndBattle
SaffronGymTrainerHeader2: ; 5d0db (17:50db)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7b3 ; flag's byte
- dw SaffronGymBattleText3 ; 0x520e TextBeforeBattle
- dw SaffronGymAfterBattleText3 ; 0x5218 TextAfterBattle
- dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle
- dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_2
+ dw SaffronGymBattleText3 ; TextBeforeBattle
+ dw SaffronGymAfterBattleText3 ; TextAfterBattle
+ dw SaffronGymEndBattleText3 ; TextEndBattle
+ dw SaffronGymEndBattleText3 ; TextEndBattle
SaffronGymTrainerHeader3: ; 5d0e7 (17:50e7)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7b3 ; flag's byte
- dw SaffronGymBattleText4 ; 0x521d TextBeforeBattle
- dw SaffronGymAfterBattleText4 ; 0x5227 TextAfterBattle
- dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle
- dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_3
+ dw SaffronGymBattleText4 ; TextBeforeBattle
+ dw SaffronGymAfterBattleText4 ; TextAfterBattle
+ dw SaffronGymEndBattleText4 ; TextEndBattle
+ dw SaffronGymEndBattleText4 ; TextEndBattle
SaffronGymTrainerHeader4: ; 5d0f3 (17:50f3)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd7b3 ; flag's byte
- dw SaffronGymBattleText5 ; 0x522c TextBeforeBattle
- dw SaffronGymAfterBattleText5 ; 0x5236 TextAfterBattle
- dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle
- dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_4
+ dw SaffronGymBattleText5 ; TextBeforeBattle
+ dw SaffronGymAfterBattleText5 ; TextAfterBattle
+ dw SaffronGymEndBattleText5 ; TextEndBattle
+ dw SaffronGymEndBattleText5 ; TextEndBattle
SaffronGymTrainerHeader5: ; 5d0ff (17:50ff)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd7b3 ; flag's byte
- dw SaffronGymBattleText6 ; 0x523b TextBeforeBattle
- dw SaffronGymAfterBattleText6 ; 0x5245 TextAfterBattle
- dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle
- dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_5
+ dw SaffronGymBattleText6 ; TextBeforeBattle
+ dw SaffronGymAfterBattleText6 ; TextAfterBattle
+ dw SaffronGymEndBattleText6 ; TextEndBattle
+ dw SaffronGymEndBattleText6 ; TextEndBattle
SaffronGymTrainerHeader6: ; 5d10b (17:510b)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 1
db ($3 << 4) ; trainer's view range
- dw wd7b3 ; flag's byte
- dw SaffronGymBattleText7 ; 0x524a TextBeforeBattle
- dw SaffronGymAfterBattleText7 ; 0x5254 TextAfterBattle
- dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
- dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 1
+ dw SaffronGymBattleText7 ; TextBeforeBattle
+ dw SaffronGymAfterBattleText7 ; TextAfterBattle
+ dw SaffronGymEndBattleText7 ; TextEndBattle
+ dw SaffronGymEndBattleText7 ; TextEndBattle
db $ff
SaffronGymText1: ; 5d118 (17:5118)
- db $08 ; asm
- ld a, [wd7b3]
- bit 1, a
- jr z, .asm_e3544 ; 0x5d11e
- bit 0, a
- jr nz, .asm_8d2f6 ; 0x5d122
+ TX_ASM
+ CheckEvent EVENT_BEAT_SABRINA
+ jr z, .asm_5d134
+ CheckEventReuseA EVENT_GOT_TM46
+ jr nz, .asm_5d12c
call z, SaffronGymText_5d068
call DisableWaitingAfterTextDisplay
- jr .asm_34c2c ; 0x5d12a
-.asm_8d2f6 ; 0x5d12c
+ jr .asm_5d15f
+.asm_5d12c
ld hl, SaffronGymText_5d16e
call PrintText
- jr .asm_34c2c ; 0x5d132
-.asm_e3544 ; 0x5d134
+ jr .asm_5d15f
+.asm_5d134
ld hl, SaffronGymText_5d162
call PrintText
ld hl, wd72d
@@ -179,7 +172,7 @@ SaffronGymText1: ; 5d118 (17:5118)
ld hl, SaffronGymText_5d167
ld de, SaffronGymText_5d167
call SaveEndBattleTextPointers
- ldh a, [$8c]
+ ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -187,7 +180,7 @@ SaffronGymText1: ; 5d118 (17:5118)
ld [W_GYMLEADERNO], a
ld a, $3
ld [W_SAFFRONGYMCURSCRIPT], a
-.asm_34c2c ; 0x5d15f
+.asm_5d15f
jp TextScriptEnd
SaffronGymText_5d162: ; 5d162 (17:5162)
@@ -195,7 +188,7 @@ SaffronGymText_5d162: ; 5d162 (17:5162)
db "@"
SaffronGymText_5d167: ; 5d167 (17:5167)
- TX_FAR _SaffronGymText_5d167 ; 0xa1c73
+ TX_FAR _SaffronGymText_5d167
db $11 ; play same sound as red giving oak parcel
db $6 ; wait for keypress
db "@"
@@ -219,59 +212,58 @@ SaffronGymText12: ; 5d182 (17:5182)
db "@"
SaffronGymText2: ; 5d187 (17:5187)
- db $08 ; asm
+ TX_ASM
ld hl, SaffronGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SaffronGymText3: ; 5d191 (17:5191)
- db $08 ; asm
+ TX_ASM
ld hl, SaffronGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SaffronGymText4: ; 5d19b (17:519b)
- db $08 ; asm
+ TX_ASM
ld hl, SaffronGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
SaffronGymText5: ; 5d1a5 (17:51a5)
- db $08 ; asm
+ TX_ASM
ld hl, SaffronGymTrainerHeader3
call TalkToTrainer
jp TextScriptEnd
SaffronGymText6: ; 5d1af (17:51af)
- db $08 ; asm
+ TX_ASM
ld hl, SaffronGymTrainerHeader4
call TalkToTrainer
jp TextScriptEnd
SaffronGymText7: ; 5d1b9 (17:51b9)
- db $08 ; asm
+ TX_ASM
ld hl, SaffronGymTrainerHeader5
call TalkToTrainer
jp TextScriptEnd
SaffronGymText8: ; 5d1c3 (17:51c3)
- db $08 ; asm
+ TX_ASM
ld hl, SaffronGymTrainerHeader6
call TalkToTrainer
jp TextScriptEnd
SaffronGymText9: ; 5d1cd (17:51cd)
- db $08 ; asm
- ld a, [wd7b3]
- bit 1, a
- jr nz, .asm_13f3c ; 0x5d1d3
+ TX_ASM
+ CheckEvent EVENT_BEAT_SABRINA
+ jr nz, .asm_5d1dd
ld hl, SaffronGymText_5d1e6
call PrintText
- jr .asm_e9907 ; 0x5d1db
-.asm_13f3c ; 0x5d1dd
+ jr .asm_5d1e3
+.asm_5d1dd
ld hl, SaffronGymText_5d1eb
call PrintText
-.asm_e9907 ; 0x5d1e3
+.asm_5d1e3
jp TextScriptEnd
SaffronGymText_5d1e6: ; 5d1e6 (17:51e6)
diff --git a/scripts/saffronhouse1.asm b/scripts/saffronhouse1.asm
index 39a70ebf..3aced3c5 100755
--- a/scripts/saffronhouse1.asm
+++ b/scripts/saffronhouse1.asm
@@ -13,7 +13,7 @@ SaffronHouse1Text1: ; 1dde8 (7:5de8)
SaffronHouse1Text2: ; 1dded (7:5ded)
TX_FAR _SaffronHouse1Text2
- db $8
+ TX_ASM
ld a, PIDGEY
call PlayCry
jp TextScriptEnd
diff --git a/scripts/saffronhouse2.asm b/scripts/saffronhouse2.asm
index 727fd981..2c159190 100755
--- a/scripts/saffronhouse2.asm
+++ b/scripts/saffronhouse2.asm
@@ -5,28 +5,26 @@ SaffronHouse2TextPointers: ; 1de3f (7:5e3f)
dw SaffronHouse2Text1
SaffronHouse2Text1: ; 1de41 (7:5e41)
- db $08 ; asm
- ld a, [wd7bd]
- bit 0, a
- jr nz, .asm_9e72b ; 0x1de47
+ TX_ASM
+ CheckEvent EVENT_GOT_TM29
+ jr nz, .asm_9e72b
ld hl, TM29PreReceiveText
call PrintText
- ld bc,(TM_29 << 8) | 1
+ lb bc, TM_29, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedTM29Text
call PrintText
- ld hl, wd7bd
- set 0, [hl]
- jr .asm_fe4e1 ; 0x1de62
+ SetEvent EVENT_GOT_TM29
+ jr .asm_fe4e1
.BagFull
ld hl, TM29NoRoomText
call PrintText
- jr .asm_fe4e1 ; 0x1de6a
-.asm_9e72b ; 0x1de6c
+ jr .asm_fe4e1
+.asm_9e72b
ld hl, TM29ExplanationText
call PrintText
-.asm_fe4e1 ; 0x1de72
+.asm_fe4e1
jp TextScriptEnd
TM29PreReceiveText: ; 1de75 (7:5e75)
diff --git a/scripts/seafoamislands1.asm b/scripts/seafoamislands1.asm
index 2e64c9d7..f9a2e7fc 100755
--- a/scripts/seafoamislands1.asm
+++ b/scripts/seafoamislands1.asm
@@ -1,42 +1,41 @@
SeafoamIslands1Script: ; 447e9 (11:47e9)
call EnableAutoTextBoxDrawing
- ld hl, wd7e7
- set 0, [hl]
+ SetEvent EVENT_IN_SEAFOAM_ISLANDS
ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
- jr z, .asm_4483b ; 0x447f8 $41
+ jr z, .asm_4483b
ld hl, Seafoam1HolesCoords
call CheckBoulderCoords
ret nc
- ld hl, wd7e8
- ld a, [wWhichTrade]
+ EventFlagAddress hl, EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
+ ld a, [wCoordIndex]
cp $1
- jr nz, .asm_44819 ; 0x44809 $e
- set 6, [hl]
+ jr nz, .asm_44819
+ SetEventReuseHL EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_1_BOULDER_1
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_2_BOULDER_1
- ld [wd07a], a
- jr .asm_44825 ; 0x44817 $c
+ ld [wObjectToShow], a
+ jr .asm_44825
.asm_44819
- set 7, [hl]
+ SetEventAfterBranchReuseHL EVENT_SEAFOAM1_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_1_BOULDER_2
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_2_BOULDER_2
- ld [wd07a], a
+ ld [wObjectToShow], a
.asm_44825
- ld a, [wd079]
- ld [wcc4d], a
+ ld a, [wObjectToHide]
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, [wd07a]
- ld [wcc4d], a
+ ld a, [wObjectToShow]
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_4483b
ld a, $9f
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam1HolesCoords
- jp Func_46981
+ jp IsPlayerOnDungeonWarp
Seafoam1HolesCoords: ; 44846 (11:4846)
db $06,$11
diff --git a/scripts/seafoamislands2.asm b/scripts/seafoamislands2.asm
index 66fe9297..2c2962f8 100755
--- a/scripts/seafoamislands2.asm
+++ b/scripts/seafoamislands2.asm
@@ -3,38 +3,38 @@ SeafoamIslands2Script: ; 46315 (11:6315)
ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
- jr z, .asm_46362 ; 0x4631f $41
+ jr z, .asm_46362
ld hl, Seafoam2HolesCoords
call CheckBoulderCoords
ret nc
- ld hl, wd87f
- ld a, [wWhichTrade]
+ EventFlagAddress hl, EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
+ ld a, [wCoordIndex]
cp $1
- jr nz, .asm_46340 ; 0x46330 $e
- set 0, [hl]
+ jr nz, .asm_46340
+ SetEventReuseHL EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_2_BOULDER_1
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_3_BOULDER_1
- ld [wd07a], a
- jr .asm_4634c ; 0x4633e $c
+ ld [wObjectToShow], a
+ jr .asm_4634c
.asm_46340
- set 1, [hl]
+ SetEventAfterBranchReuseHL EVENT_SEAFOAM2_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_2_BOULDER_2
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_3_BOULDER_2
- ld [wd07a], a
+ ld [wObjectToShow], a
.asm_4634c
- ld a, [wd079]
- ld [wcc4d], a
+ ld a, [wObjectToHide]
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, [wd07a]
- ld [wcc4d], a
+ ld a, [wObjectToShow]
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_46362
ld a, $a0
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam2HolesCoords
- jp Func_46981
+ jp IsPlayerOnDungeonWarp
Seafoam2HolesCoords: ; 4636d (11:636d)
db $06,$12
diff --git a/scripts/seafoamislands3.asm b/scripts/seafoamislands3.asm
index fb7d05ba..6dda7f37 100755
--- a/scripts/seafoamislands3.asm
+++ b/scripts/seafoamislands3.asm
@@ -3,38 +3,38 @@ SeafoamIslands3Script: ; 46451 (11:6451)
ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
- jr z, .asm_4649e ; 0x4645b $41
+ jr z, .asm_4649e
ld hl, Seafoam3HolesCoords
call CheckBoulderCoords
ret nc
- ld hl, wd880
- ld a, [wWhichTrade]
+ EventFlagAddress hl, EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
+ ld a, [wCoordIndex]
cp $1
- jr nz, .asm_4647c ; 0x4646c $e
- set 0, [hl]
+ jr nz, .asm_4647c
+ SetEventReuseHL EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_3_BOULDER_1
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_3
- ld [wd07a], a
- jr .asm_46488 ; 0x4647a $c
+ ld [wObjectToShow], a
+ jr .asm_46488
.asm_4647c
- set 1, [hl]
+ SetEventAfterBranchReuseHL EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_3_BOULDER_2
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_4
- ld [wd07a], a
+ ld [wObjectToShow], a
.asm_46488
- ld a, [wd079]
- ld [wcc4d], a
+ ld a, [wObjectToHide]
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, [wd07a]
- ld [wcc4d], a
+ ld a, [wObjectToShow]
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.asm_4649e
ld a, $a1
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam3HolesCoords
- jp Func_46981
+ jp IsPlayerOnDungeonWarp
Seafoam3HolesCoords: ; 464a9 (11:64a9)
db $06,$13
diff --git a/scripts/seafoamislands4.asm b/scripts/seafoamislands4.asm
index 7e519f86..f7407e48 100755
--- a/scripts/seafoamislands4.asm
+++ b/scripts/seafoamislands4.asm
@@ -3,39 +3,39 @@ SeafoamIslands4Script: ; 4658d (11:658d)
ld hl, wFlags_0xcd60
bit 7, [hl]
res 7, [hl]
- jr z, .asm_465dc ; 0x46597 $43
+ jr z, .asm_465dc
ld hl, Seafoam4HolesCoords
call CheckBoulderCoords
ret nc
- ld hl, wd881
- ld a, [wWhichTrade]
+ EventFlagAddress hl, EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
+ ld a, [wCoordIndex]
cp $1
- jr nz, .asm_465b8 ; 0x465a8 $e
- set 0, [hl]
+ jr nz, .asm_465b8
+ SetEventReuseHL EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_1
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_5_BOULDER_1
- ld [wd07a], a
- jr .asm_465c4 ; 0x465b6 $c
+ ld [wObjectToShow], a
+ jr .asm_465c4
.asm_465b8
- set 1, [hl]
+ SetEventAfterBranchReuseHL EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_4_BOULDER_2
- ld [wd079], a
+ ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_5_BOULDER_2
- ld [wd07a], a
+ ld [wObjectToShow], a
.asm_465c4
- ld a, [wd079]
- ld [wcc4d], a
+ ld a, [wObjectToHide]
+ ld [wMissableObjectIndex], a
predef HideObject
- ld a, [wd07a]
- ld [wcc4d], a
+ ld a, [wObjectToShow]
+ ld [wMissableObjectIndex], a
predef ShowObject
- jr .asm_465ed ; 0x465da $11
+ jr .asm_465ed
.asm_465dc
ld a, $a2
ld [wDungeonWarpDestinationMap], a
ld hl, Seafoam4HolesCoords
- call Func_46981
+ call IsPlayerOnDungeonWarp
ld a, [wd732]
bit 4, a
ret nz
@@ -56,9 +56,7 @@ SeafoamIslands4ScriptPointers: ; 465fb (11:65fb)
dw SeafoamIslands4Script3
SeafoamIslands4Script0: ; 46603 (11:6603)
- ld a, [wd880]
- and $3
- cp $3
+ CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE
ret z
ld a, [W_YCOORD]
cp $8
@@ -79,9 +77,9 @@ SeafoamIslands4Script0: ; 46603 (11:6603)
ret
RLEMovement46632: ; 46632 (11:6632)
- db $80,6
- db $10,5
- db $80,3
+ db D_DOWN,6
+ db D_RIGHT,5
+ db D_DOWN,3
db $ff
SeafoamIslands4Script1: ; 46639 (11:6639)
@@ -93,9 +91,7 @@ SeafoamIslands4Script1: ; 46639 (11:6639)
ret
SeafoamIslands4Script2: ; 46644 (11:6644)
- ld a, [wd880]
- and $3
- cp $3
+ CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE
ret z
ld a, [W_XCOORD]
cp $12
@@ -124,10 +120,17 @@ SeafoamIslands4Script2: ; 46644 (11:6644)
ret
RLEData_4667f: ; 4667f (11:667f)
- db $80,$06,$10,$02,$80,$04,$20,$01,$FF
+ db D_DOWN,$06
+ db D_RIGHT,$02
+ db D_DOWN,$04
+ db D_LEFT,$01
+ db $FF
RLEData_46688: ; 46688 (11:6688)
- db $80,$06,$10,$02,$80,$04,$FF
+ db D_DOWN,$06
+ db D_RIGHT,$02
+ db D_DOWN,$04
+ db $FF
SeafoamIslands4Script3: ; 4668f (11:668f)
ld a, [wSimulatedJoypadStatesIndex]
diff --git a/scripts/seafoamislands5.asm b/scripts/seafoamislands5.asm
index b554034b..87942ca0 100755
--- a/scripts/seafoamislands5.asm
+++ b/scripts/seafoamislands5.asm
@@ -27,25 +27,23 @@ SeafoamIslands5Script4: ; 467b7 (11:67b7)
ret
SeafoamIslands5Script0: ; 467c7 (11:67c7)
- ld a, [wd880]
- and $3
- cp $3
+ CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE
ret z
ld hl, CoordsData_467fe
call ArePlayerCoordsInArray
ret nc
- ld a, [wWhichTrade]
+ ld a, [wCoordIndex]
cp $3
jr nc, .asm_467e6
- ld a, $40
- ld [wccd4], a
- ld a, $2
+ ld a, NPC_MOVEMENT_UP
+ ld [wSimulatedJoypadStatesEnd + 1], a
+ ld a, 2
jr .asm_467e8
.asm_467e6
- ld a, $1
+ ld a, 1
.asm_467e8
ld [wSimulatedJoypadStatesIndex], a
- ld a, $40
+ ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
ld hl, W_FLAGS_D733
@@ -72,16 +70,14 @@ SeafoamIslands5Script1: ; 46807 (11:6807)
ret
SeafoamIslands5Script2: ; 46816 (11:6816)
- ld a, [wd881]
- and $3
- cp $3
+ CheckBothEventsSet EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE
ld a, $0
jr z, .asm_46849
ld hl, CoordsData_4684d
call ArePlayerCoordsInArray
ld a, $0
jr nc, .asm_46849
- ld a, [wWhichTrade]
+ ld a, [wCoordIndex]
cp $1
jr nz, .asm_46837
ld de, RLEMovementData_46859
@@ -105,15 +101,15 @@ CoordsData_4684d: ; 4684d (11:684d)
db $FF
RLEMovementData_46852: ; 46852 (11:6852)
- db $40,$03
- db $10,$02
- db $40,$01
+ db D_UP,$03
+ db D_RIGHT,$02
+ db D_UP,$01
db $FF
RLEMovementData_46859: ; 46859 (11:6859)
- db $40,$03
- db $10,$03
- db $40,$01
+ db D_UP,$03
+ db D_RIGHT,$03
+ db D_UP,$01
db $FF
SeafoamIslands5Script3: ; 46860 (11:6860)
@@ -143,18 +139,18 @@ SeafoamIslands5TextPointers: ; 4687c (11:687c)
SeafoamIslands5TrainerHeaders: ; 46886 (11:6886)
SeafoamIslands5TrainerHeader0: ; 46886 (11:6886)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SEAFOAM_ISLANDS_5_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd882 ; flag's byte
- dw SeafoamIslands5BattleText2 ; 0x68a2 TextBeforeBattle
- dw SeafoamIslands5BattleText2 ; 0x68a2 TextAfterBattle
- dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
- dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SEAFOAM_ISLANDS_5_TRAINER_0
+ dw SeafoamIslands5BattleText2 ; TextBeforeBattle
+ dw SeafoamIslands5BattleText2 ; TextAfterBattle
+ dw SeafoamIslands5BattleText2 ; TextEndBattle
+ dw SeafoamIslands5BattleText2 ; TextEndBattle
db $ff
SeafoamIslands5Text3: ; 46893 (11:6893)
- db $08 ; asm
+ TX_ASM
ld hl, SeafoamIslands5TrainerHeader0
call TalkToTrainer
ld a, $4
@@ -163,7 +159,7 @@ SeafoamIslands5Text3: ; 46893 (11:6893)
SeafoamIslands5BattleText2: ; 468a2 (11:68a2)
TX_FAR _SeafoamIslands5BattleText2
- db $8
+ TX_ASM
ld a, ARTICUNO
call PlayCry
call WaitForSoundToFinish
diff --git a/scripts/silphco1.asm b/scripts/silphco1.asm
index 8a399a4c..cfd51dc1 100755
--- a/scripts/silphco1.asm
+++ b/scripts/silphco1.asm
@@ -1,14 +1,11 @@
SilphCo1Script: ; 5d44e (17:544e)
call EnableAutoTextBoxDrawing
- ld a, [wd838]
- bit 7, a
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
ret z
- ld hl, wd7b9
- bit 7, [hl]
- set 7, [hl]
+ CheckAndSetEvent EVENT_SILPH_CO_RECEPTIONIST_AT_DESK
ret nz
- ld a, HS_SILPH_CO_1F_1
- ld [wcc4d], a
+ ld a, HS_SILPH_CO_1F_RECEPTIONIST
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
SilphCo1TextPointers: ; 5d469 (17:5469)
diff --git a/scripts/silphco10.asm b/scripts/silphco10.asm
index 7d044aca..a6f2f860 100755
--- a/scripts/silphco10.asm
+++ b/scripts/silphco10.asm
@@ -13,26 +13,25 @@ SilphCo10Script_5a14f: ; 5a14f (16:614f)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, DataTable_5a173 ; $6173
+ ld hl, SilphCo10GateCoords
call SilphCo2Script_59d43
call SilphCo10Text_5a176
- ld a, [wd836]
- bit 0, a
+ CheckEvent EVENT_SILPH_CO_10_UNLOCKED_DOOR
ret nz
ld a, $54
- ld [wd09f], a
- ld bc, $405
+ ld [wNewTileBlockID], a
+ lb bc, 4, 5
predef_jump ReplaceTileBlock
-DataTable_5a173: ; 5a173 (16:6173)
- db $04,$05,$FF
+SilphCo10GateCoords: ; 5a173 (16:6173)
+ db $04,$05
+ db $FF
SilphCo10Text_5a176: ; 5a176 (16:6176)
ld a, [$ffe0]
and a
ret z
- ld hl, wd836
- set 0, [hl]
+ SetEvent EVENT_SILPH_CO_10_UNLOCKED_DOOR
ret
SilphCo10ScriptPointers: ; 5a180 (16:6180)
@@ -44,47 +43,46 @@ SilphCo10TextPointers: ; 5a186 (16:6186)
dw SilphCo10Text1
dw SilphCo10Text2
dw SilphCo10Text3
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
SilphCo10TrainerHeaders: ; 5a192 (16:6192)
SilphCo10TrainerHeader0: ; 5a192 (16:6192)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_10F_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd835 ; flag's byte
- dw SilphCo10BattleText1 ; 0x61dd TextBeforeBattle
- dw SilphCo10AfterBattleText1 ; 0x61e7 TextAfterBattle
- dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle
- dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_10F_TRAINER_0
+ dw SilphCo10BattleText1 ; TextBeforeBattle
+ dw SilphCo10AfterBattleText1 ; TextAfterBattle
+ dw SilphCo10EndBattleText1 ; TextEndBattle
+ dw SilphCo10EndBattleText1 ; TextEndBattle
SilphCo10TrainerHeader1: ; 5a19e (16:619e)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_10F_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd835 ; flag's byte
- dw SilphCo10BattleText2 ; 0x61ec TextBeforeBattle
- dw SilphCo10AfterBattleText2 ; 0x61f6 TextAfterBattle
- dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
- dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_10F_TRAINER_1
+ dw SilphCo10BattleText2 ; TextBeforeBattle
+ dw SilphCo10AfterBattleText2 ; TextAfterBattle
+ dw SilphCo10EndBattleText2 ; TextEndBattle
+ dw SilphCo10EndBattleText2 ; TextEndBattle
db $ff
SilphCo10Text1: ; 5a1ab (16:61ab)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo10TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SilphCo10Text2: ; 5a1b5 (16:61b5)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo10TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SilphCo10Text3: ; 5a1bf (16:61bf)
- db $08 ; asm
- ld a, [wd838]
- bit 7, a
+ TX_ASM
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
ld hl, SilphCo10Text_5a1d8
jr nz, .asm_cf85f
ld hl, SilphCo10Text_5a1d3
diff --git a/scripts/silphco11.asm b/scripts/silphco11.asm
index 7bb6e448..4c83c20d 100755
--- a/scripts/silphco11.asm
+++ b/scripts/silphco11.asm
@@ -13,19 +13,19 @@ SilphCo11Script_62110: ; 62110 (18:6110)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, DataTable_62134 ; $6134
+ ld hl, SilphCo11GateCoords
call SilphCo11Script_62137
call SilphCo11Script_62163
- ld a, [wd838]
- bit 0, a
+ CheckEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
ret nz
ld a, $20
- ld [wd09f], a
- ld bc, $603
+ ld [wNewTileBlockID], a
+ lb bc, 6, 3
predef_jump ReplaceTileBlock
-DataTable_62134: ; 62134 (18:6134)
- db $06,$03,$FF
+SilphCo11GateCoords: ; 62134 (18:6134)
+ db $06,$03
+ db $FF
SilphCo11Script_62137: ; 62137 (18:6137)
push hl
@@ -67,29 +67,28 @@ SilphCo11Script_62163: ; 62163 (18:6163)
ld a, [$ffe0]
and a
ret z
- ld hl, wd838
- set 0, [hl]
+ SetEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
ret
SilphCo11Script_6216d: ; 6216d (18:616d)
- ld hl, MissableObjectIDs_6219b ; $619b
+ ld hl, MissableObjectIDs_6219b
.asm_62170
ld a, [hli]
cp $ff
jr z, .asm_62181
push hl
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
pop hl
jr .asm_62170
.asm_62181
- ld hl, MissableObjectIDs_62194 ; $6194
+ ld hl, MissableObjectIDs_62194
.asm_62184
ld a, [hli]
cp $ff
ret z
push hl
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
pop hl
jr .asm_62184
@@ -164,23 +163,22 @@ SilphCo11ScriptPointers: ; 621cf (18:61cf)
dw SilphCo11Script5
SilphCo11Script0: ; 621db (18:61db)
- ld a, [wd838]
- bit 7, a
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
ret nz
- ld hl, CoordsData_62211 ; $6211
+ ld hl, CoordsData_62211
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wCoordIndex]
ld [wcf0d], a
xor a
ld [hJoyHeld], a
ld a, $f0
ld [wJoyIgnore], a
ld a, $3
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $3
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld de, MovementData_62216
call MoveSprite
@@ -193,43 +191,45 @@ CoordsData_62211: ; 62211 (18:6211)
db $FF
MovementData_62216: ; 62216 (18:6216)
- db $00,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
SilphCo11Script_6221a: ; 6221a (18:621a)
- ld [wd528], a
+ ld [wPlayerMovingDirection], a
ld a, $3
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
ld a, b
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
SilphCo11Script5: ; 62227 (18:6227)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, SilphCo11Script_621c4
ld a, [wcf0d]
cp $1
jr z, .asm_6223c
- ld a, $2
- ld b, $c
+ ld a, PLAYER_DIR_LEFT
+ ld b, SPRITE_FACING_RIGHT
jr .asm_62240
.asm_6223c
- ld a, $8
- ld b, $0
+ ld a, PLAYER_DIR_UP
+ ld b, SPRITE_FACING_DOWN
.asm_62240
call SilphCo11Script_6221a
ld a, $f0
ld [wJoyIgnore], a
ld a, $6
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call GBFadeOutToBlack
call SilphCo11Script_6216d
call UpdateSprites
call Delay3
call GBFadeInFromBlack
- ld hl, wd838
- set 7, [hl]
+ SetEvent EVENT_BEAT_SILPH_CO_GIOVANNI
xor a
ld [wJoyIgnore], a
jp SilphCo11Script_621c8
@@ -239,17 +239,17 @@ SilphCo11Script3: ; 6226a (18:626a)
bit 0, a
ret nz
ld a, $3
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld a, [wcf0d]
cp $1
jr z, .asm_62284
- ld a, $2
- ld b, $c
+ ld a, PLAYER_DIR_LEFT
+ ld b, SPRITE_FACING_RIGHT
jr .asm_62288
.asm_62284
- ld a, $8
- ld b, $0
+ ld a, PLAYER_DIR_UP
+ ld b, SPRITE_FACING_DOWN
.asm_62288
call SilphCo11Script_6221a
call Delay3
@@ -260,10 +260,10 @@ SilphCo11Script4: ; 62293 (18:6293)
ld hl, wd72d
set 6, [hl]
set 7, [hl]
- ld hl, SilphCo10Text_62330 ; $6330
- ld de, SilphCo10Text_62330 ; $6330
+ ld hl, SilphCo10Text_62330
+ ld de, SilphCo10Text_62330
call SaveEndBattleTextPointers
- ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -282,48 +282,46 @@ SilphCo11TextPointers: ; 622b7 (18:62b7)
SilphCo11TrainerHeaders: ; 622c3 (18:62c3)
SilphCo11TrainerHeader0: ; 622c3 (18:62c3)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_11F_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd837 ; flag's byte
- dw SilphCo11BattleText1 ; 0x6344 TextBeforeBattle
- dw SilphCo11AfterBattleText1 ; 0x634e TextAfterBattle
- dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle
- dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_11F_TRAINER_0
+ dw SilphCo11BattleText1 ; TextBeforeBattle
+ dw SilphCo11AfterBattleText1 ; TextAfterBattle
+ dw SilphCo11EndBattleText1 ; TextEndBattle
+ dw SilphCo11EndBattleText1 ; TextEndBattle
SilphCo11TrainerHeader1: ; 622cf (18:62cf)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_11F_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd837 ; flag's byte
- dw SilphCo11BattleText2 ; 0x635d TextBeforeBattle
- dw SilphCo11AfterBattleText2 ; 0x6367 TextAfterBattle
- dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
- dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_11F_TRAINER_1
+ dw SilphCo11BattleText2 ; TextBeforeBattle
+ dw SilphCo11AfterBattleText2 ; TextAfterBattle
+ dw SilphCo11EndBattleText2 ; TextEndBattle
+ dw SilphCo11EndBattleText2 ; TextEndBattle
db $ff
SilphCo11Text1: ; 622dc (18:62dc)
- db $08 ; asm
- ld a, [wd838]
- bit 5, a
+ TX_ASM
+ CheckEvent EVENT_GOT_MASTER_BALL
jp nz, .asm_62308
ld hl, SilphCoPresidentText
call PrintText
- ld bc, (MASTER_BALL << 8) | 1
+ lb bc, MASTER_BALL, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedSilphCoMasterBallText
call PrintText
- ld hl, wd838
- set 5, [hl]
- jr .asm_fd405 ; 0x622fe
+ SetEvent EVENT_GOT_MASTER_BALL
+ jr .asm_6230e
.BagFull
ld hl, SilphCoMasterBallNoRoomText
call PrintText
- jr .asm_fd405 ; 0x62306
-.asm_62308 ; 0x62308
+ jr .asm_6230e
+.asm_62308
ld hl, SilphCo10Text_6231c
call PrintText
-.asm_fd405 ; 0x6230e
+.asm_6230e
jp TextScriptEnd
SilphCoPresidentText: ; 62311 (18:6311)
@@ -359,7 +357,7 @@ SilphCo11Text6: ; 62335 (18:6335)
db "@"
SilphCo11Text4: ; 6233a (18:633a)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo11TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -377,7 +375,7 @@ SilphCo11AfterBattleText1: ; 6234e (18:634e)
db "@"
SilphCo11Text5: ; 62353 (18:6353)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo11TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -395,7 +393,7 @@ SilphCo11AfterBattleText2: ; 62367 (18:6367)
db "@"
SilphCo10Text_6236c: ; 6236c (18:636c)
- db $8
+ TX_ASM
ld hl, SilphCo10Text_6237b
call PrintText
ld a, PORYGON
diff --git a/scripts/silphco2.asm b/scripts/silphco2.asm
index 63803acd..ecb3b5a5 100755
--- a/scripts/silphco2.asm
+++ b/scripts/silphco2.asm
@@ -13,28 +13,29 @@ SilphCo2Script_59d07: ; 59d07 (16:5d07)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, DataTable_59d3e
+ ld hl, SilphCo2GateCoords
call SilphCo2Script_59d43
call SilphCo2Script_59d6f
- ld a, [wd826]
- bit 5, a
+ CheckEvent EVENT_SILPH_CO_2_UNLOCKED_DOOR1
jr nz, .asm_59d2e
push af
ld a, $54
- ld [wd09f], a
- ld bc, $0202
+ ld [wNewTileBlockID], a
+ lb bc, 2, 2
predef ReplaceTileBlock
pop af
.asm_59d2e
- bit 6, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_2_UNLOCKED_DOOR2, EVENT_SILPH_CO_2_UNLOCKED_DOOR1
ret nz
ld a, $54
- ld [wd09f], a
- ld bc, $0502
+ ld [wNewTileBlockID], a
+ lb bc, 5, 2
predef_jump ReplaceTileBlock
-DataTable_59d3e: ; 59d3e (16:5d3e)
- db $02,$02,$05,$02,$FF
+SilphCo2GateCoords: ; 59d3e (16:5d3e)
+ db $02,$02
+ db $05,$02
+ db $FF
SilphCo2Script_59d43: ; 59d43 (16:5d43)
push hl
@@ -73,16 +74,16 @@ SilphCo2Script_59d43: ; 59d43 (16:5d43)
ret
SilphCo2Script_59d6f: ; 59d6f (16:5d6f)
- ld hl, wd826
+ EventFlagAddress hl, EVENT_SILPH_CO_2_UNLOCKED_DOOR1
ld a, [$ffe0]
and a
ret z
cp $1
- jr nz, .asm_59d7d
- set 5, [hl]
+ jr nz, .next
+ SetEventReuseHL EVENT_SILPH_CO_2_UNLOCKED_DOOR1
ret
-.asm_59d7d
- set 6, [hl]
+.next
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_2_UNLOCKED_DOOR2, EVENT_SILPH_CO_2_UNLOCKED_DOOR1
ret
SilphCo2ScriptPointers: ; 59d80 (16:5d80)
@@ -99,61 +100,59 @@ SilphCo2TextPointers: ; 59d86 (16:5d86)
SilphCo2TrainerHeaders: ; 59d90 (16:5d90)
SilphCo2TrainerHeader0: ; 59d90 (16:5d90)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_2F_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd825 ; flag's byte
- dw SilphCo2BattleText1 ; 0x5e2a TextBeforeBattle
- dw SilphCo2AfterBattleText1 ; 0x5e34 TextAfterBattle
- dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle
- dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_2F_TRAINER_0
+ dw SilphCo2BattleText1 ; TextBeforeBattle
+ dw SilphCo2AfterBattleText1 ; TextAfterBattle
+ dw SilphCo2EndBattleText1 ; TextEndBattle
+ dw SilphCo2EndBattleText1 ; TextEndBattle
SilphCo2TrainerHeader1: ; 59d9c (16:5d9c)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_2F_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd825 ; flag's byte
- dw SilphCo2BattleText2 ; 0x5e39 TextBeforeBattle
- dw SilphCo2AfterBattleText2 ; 0x5e43 TextAfterBattle
- dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle
- dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_2F_TRAINER_1
+ dw SilphCo2BattleText2 ; TextBeforeBattle
+ dw SilphCo2AfterBattleText2 ; TextAfterBattle
+ dw SilphCo2EndBattleText2 ; TextEndBattle
+ dw SilphCo2EndBattleText2 ; TextEndBattle
SilphCo2TrainerHeader2: ; 59da8 (16:5da8)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_2F_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd825 ; flag's byte
- dw SilphCo2BattleText3 ; 0x5e48 TextBeforeBattle
- dw SilphCo2AfterBattleText3 ; 0x5e52 TextAfterBattle
- dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle
- dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_2F_TRAINER_2
+ dw SilphCo2BattleText3 ; TextBeforeBattle
+ dw SilphCo2AfterBattleText3 ; TextAfterBattle
+ dw SilphCo2EndBattleText3 ; TextEndBattle
+ dw SilphCo2EndBattleText3 ; TextEndBattle
SilphCo2TrainerHeader3: ; 59db4 (16:5db4)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_2F_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd825 ; flag's byte
- dw SilphCo2BattleText4 ; 0x5e57 TextBeforeBattle
- dw SilphCo2AfterBattleText4 ; 0x5e61 TextAfterBattle
- dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
- dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_2F_TRAINER_3
+ dw SilphCo2BattleText4 ; TextBeforeBattle
+ dw SilphCo2AfterBattleText4 ; TextAfterBattle
+ dw SilphCo2EndBattleText4 ; TextEndBattle
+ dw SilphCo2EndBattleText4 ; TextEndBattle
db $ff
SilphCo2Text1: ; 59dc1 (16:5dc1)
- db $08 ; asm
- ld a, [wd826]
- bit 7, a
- jr nz, asm_b8a0d ; 0x59dc7
+ TX_ASM
+ CheckEvent EVENT_GOT_TM36
+ jr nz, .asm_59de4
ld hl, SilphCo2Text_59ded
call PrintText
- ld bc, (TM_36 << 8) | 1
+ lb bc, TM_36, 1
call GiveItem
ld hl, TM36NoRoomText
- jr nc, asm_2c1e0 ; 0x59dd8
- ld hl, wd826
- set 7, [hl]
+ jr nc, .asm_59de7
+ SetEvent EVENT_GOT_TM36
ld hl, ReceivedTM36Text
- jr asm_2c1e0 ; 0x59de2
-asm_b8a0d ; 0x59de4
+ jr .asm_59de7
+.asm_59de4
ld hl, TM36ExplanationText
-asm_2c1e0 ; 0x59de7
+.asm_59de7
call PrintText
jp TextScriptEnd
@@ -174,25 +173,25 @@ TM36NoRoomText: ; 59dfd (16:5dfd)
db "@"
SilphCo2Text2: ; 59e02 (16:5e02)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo2TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SilphCo2Text3: ; 59e0c (16:5e0c)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo2TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SilphCo2Text4: ; 59e16 (16:5e16)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo2TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
SilphCo2Text5: ; 59e20 (16:5e20)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo2TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/silphco3.asm b/scripts/silphco3.asm
index 7b0c67c1..bdaac452 100755
--- a/scripts/silphco3.asm
+++ b/scripts/silphco3.asm
@@ -13,40 +13,41 @@ SilphCo3Script_59f71: ; 59f71 (16:5f71)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, DataTable_59fa8 ; $5fa8
+ ld hl, SilphCo3GateCoords
call SilphCo2Script_59d43
call SilphCo3Script_59fad
- ld a, [wd828]
- bit 0, a
+ CheckEvent EVENT_SILPH_CO_3_UNLOCKED_DOOR1
jr nz, .asm_59f98
push af
ld a, $5f
- ld [wd09f], a
- ld bc, $404
+ ld [wNewTileBlockID], a
+ lb bc, 4, 4
predef ReplaceTileBlock
pop af
.asm_59f98
- bit 1, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_3_UNLOCKED_DOOR2, EVENT_SILPH_CO_3_UNLOCKED_DOOR1
ret nz
ld a, $5f
- ld [wd09f], a
- ld bc, $408
+ ld [wNewTileBlockID], a
+ lb bc, 4, 8
predef_jump ReplaceTileBlock
-DataTable_59fa8: ; 59fa8 (16:5fa8)
- db $04,$04,$04,$08,$FF
+SilphCo3GateCoords: ; 59fa8 (16:5fa8)
+ db $04,$04
+ db $04,$08
+ db $FF
SilphCo3Script_59fad: ; 59fad (16:5fad)
- ld hl, wd828
+ EventFlagAddress hl, EVENT_SILPH_CO_3_UNLOCKED_DOOR1
ld a, [$ffe0]
and a
ret z
cp $1
- jr nz, .asm_59fbb
- set 0, [hl]
+ jr nz, .next
+ SetEventReuseHL EVENT_SILPH_CO_3_UNLOCKED_DOOR1
ret
-.asm_59fbb
- set 1, [hl]
+.next
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_3_UNLOCKED_DOOR2, EVENT_SILPH_CO_3_UNLOCKED_DOOR1
ret
SilphCo3ScriptPointers: ; 59fbe (16:5fbe)
@@ -58,37 +59,36 @@ SilphCo3TextPointers: ; 59fc4 (16:5fc4)
dw SilphCo3Text1
dw SilphCo3Text2
dw SilphCo3Text3
- dw Predef5CText
+ dw PickUpItemText
SilphCo3TrainerHeaders: ; 59fcc (16:5fcc)
SilphCo3TrainerHeader0: ; 59fcc (16:5fcc)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_3F_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd827 ; flag's byte
- dw SilphCo3BattleText1 ; 0x600d TextBeforeBattle
- dw SilphCo3AfterBattleText1 ; 0x6017 TextAfterBattle
- dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle
- dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_3F_TRAINER_0
+ dw SilphCo3BattleText1 ; TextBeforeBattle
+ dw SilphCo3AfterBattleText1 ; TextAfterBattle
+ dw SilphCo3EndBattleText1 ; TextEndBattle
+ dw SilphCo3EndBattleText1 ; TextEndBattle
SilphCo3TrainerHeader1: ; 59fd8 (16:5fd8)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_3F_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd827 ; flag's byte
- dw SilphCo3BattleText2 ; 0x6026 TextBeforeBattle
- dw SilphCo3AfterBattleText2 ; 0x6030 TextAfterBattle
- dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
- dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_3F_TRAINER_1
+ dw SilphCo3BattleText2 ; TextBeforeBattle
+ dw SilphCo3AfterBattleText2 ; TextAfterBattle
+ dw SilphCo3EndBattleText2 ; TextEndBattle
+ dw SilphCo3EndBattleText2 ; TextEndBattle
db $ff
SilphCo3Text1: ; 59fe5 (16:5fe5)
- db $08 ; asm
- ld a, [wd838]
- bit 7, a
+ TX_ASM
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
ld hl, SilphCo3Text_59ffe
- jr nz, asm_8c56f ; 0x59fee
+ jr nz, .asm_59fee
ld hl, SilphCo3Text_59ff9
-asm_8c56f ; 0x59ff3
+.asm_59fee
call PrintText
jp TextScriptEnd
@@ -101,7 +101,7 @@ SilphCo3Text_59ffe: ; 59ffe (16:5ffe)
db "@"
SilphCo3Text2: ; 5a003 (16:6003)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -119,7 +119,7 @@ SilphCo3AfterBattleText1: ; 5a017 (16:6017)
db "@"
SilphCo3Text3: ; 5a01c (16:601c)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo3TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/silphco4.asm b/scripts/silphco4.asm
index 15a46dd3..0dad6f6b 100755
--- a/scripts/silphco4.asm
+++ b/scripts/silphco4.asm
@@ -13,28 +13,29 @@ SilphCo4Script_19d21: ; 19d21 (6:5d21)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, SilphCo4Data19d58
+ ld hl, SilphCo4GateCoords
call SilphCo4Script_19d5d
call SilphCo4Script_19d89
- ld a, [wd82a]
- bit 0, a
+ CheckEvent EVENT_SILPH_CO_4_UNLOCKED_DOOR1
jr nz, .asm_19d48
push af
ld a, $54
- ld [wd09f], a
- ld bc, $0602
+ ld [wNewTileBlockID], a
+ lb bc, 6, 2
predef ReplaceTileBlock
pop af
.asm_19d48
- bit 1, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_4_UNLOCKED_DOOR2, EVENT_SILPH_CO_4_UNLOCKED_DOOR1
ret nz
ld a, $54
- ld [wd09f], a
- ld bc, $0406
+ ld [wNewTileBlockID], a
+ lb bc, 4, 6
predef_jump ReplaceTileBlock
-SilphCo4Data19d58: ; 19d58 (6:5d58)
- db $06, $02, $04, $06, $ff
+SilphCo4GateCoords: ; 19d58 (6:5d58)
+ db $06,$02
+ db $04,$06
+ db $FF
SilphCo4Script_19d5d: ; 19d5d (6:5d5d)
push hl
@@ -49,19 +50,19 @@ SilphCo4Script_19d5d: ; 19d5d (6:5d5d)
.asm_19d69
ld a, [hli]
cp $ff
- jr z, .asm_19d85 ; 0x19d6c $17
+ jr z, .asm_19d85
push hl
ld hl, $ffe0
inc [hl]
pop hl
cp b
- jr z, .asm_19d7a ; 0x19d75 $3
+ jr z, .asm_19d7a
inc hl
- jr .asm_19d69 ; 0x19d78 $ef
+ jr .asm_19d69
.asm_19d7a
ld a, [hli]
cp c
- jr nz, .asm_19d69 ; 0x19d7c $eb
+ jr nz, .asm_19d69
ld hl, wCardKeyDoorY
xor a
ld [hli], a
@@ -73,16 +74,16 @@ SilphCo4Script_19d5d: ; 19d5d (6:5d5d)
ret
SilphCo4Script_19d89: ; 19d89 (6:5d89)
- ld hl, wd82a
+ EventFlagAddress hl, EVENT_SILPH_CO_4_UNLOCKED_DOOR1
ld a, [$ffe0]
and a
ret z
cp $1
- jr nz, .asm_19d97 ; 0x19d92 $3
- set 0, [hl]
+ jr nz, .next
+ SetEventReuseHL EVENT_SILPH_CO_4_UNLOCKED_DOOR1
ret
-.asm_19d97
- set 1, [hl]
+.next
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_4_UNLOCKED_DOOR2, EVENT_SILPH_CO_4_UNLOCKED_DOOR1
ret
SilphCo4ScriptPointers: ; 19d9a (6:5d9a)
@@ -95,42 +96,42 @@ SilphCo4TextPointers: ; 19da0 (6:5da0)
dw SilphCo4Text2
dw SilphCo4Text3
dw SilphCo4Text4
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
SilphCo4TrainerHeaders: ; 19dae (6:5dae)
SilphCo4TrainerHeader0: ; 19dae (6:5dae)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_4F_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd829 ; flag's byte
- dw SilphCo4BattleText2 ; 0x5df4 TextBeforeBattle
- dw SilphCo4AfterBattleText2 ; 0x5dfe TextAfterBattle
- dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle
- dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_4F_TRAINER_0
+ dw SilphCo4BattleText2 ; TextBeforeBattle
+ dw SilphCo4AfterBattleText2 ; TextAfterBattle
+ dw SilphCo4EndBattleText2 ; TextEndBattle
+ dw SilphCo4EndBattleText2 ; TextEndBattle
SilphCo4TrainerHeader2: ; 19dba (6:5dba)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_4F_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd829 ; flag's byte
- dw SilphCo4BattleText3 ; 0x5e0d TextBeforeBattle
- dw SilphCo4AfterBattleText3 ; 0x5e17 TextAfterBattle
- dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle
- dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_4F_TRAINER_2
+ dw SilphCo4BattleText3 ; TextBeforeBattle
+ dw SilphCo4AfterBattleText3 ; TextAfterBattle
+ dw SilphCo4EndBattleText3 ; TextEndBattle
+ dw SilphCo4EndBattleText3 ; TextEndBattle
SilphCo4TrainerHeader3: ; 19dc6 (6:5dc6)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_4F_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd829 ; flag's byte
- dw SilphCo4BattleText4 ; 0x5e26 TextBeforeBattle
- dw SilphCo4AfterBattleText4 ; 0x5e30 TextAfterBattle
- dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
- dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_4F_TRAINER_3
+ dw SilphCo4BattleText4 ; TextBeforeBattle
+ dw SilphCo4AfterBattleText4 ; TextAfterBattle
+ dw SilphCo4EndBattleText4 ; TextEndBattle
+ dw SilphCo4EndBattleText4 ; TextEndBattle
db $ff
SilphCo4Text1: ; 19dd3 (6:5dd3)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo4Text_19de0
ld de, SilphCo4Text_19de5
call SilphCo6Script_1a22f
@@ -145,7 +146,7 @@ SilphCo4Text_19de5: ; 19de5 (6:5de5)
db "@"
SilphCo4Text2: ; 19dea (6:5dea)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -163,7 +164,7 @@ SilphCo4AfterBattleText2: ; 19dfe (6:5dfe)
db "@"
SilphCo4Text3: ; 19e03 (6:5e03)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo4TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -181,7 +182,7 @@ SilphCo4AfterBattleText3: ; 19e17 (6:5e17)
db "@"
SilphCo4Text4: ; 19e1c (6:5e1c)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo4TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/silphco5.asm b/scripts/silphco5.asm
index 0b63708b..7380f98f 100755
--- a/scripts/silphco5.asm
+++ b/scripts/silphco5.asm
@@ -13,54 +13,56 @@ SilphCo5Script_19f4d: ; 19f4d (6:5f4d)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, SilphCo5Coords
+ ld hl, SilphCo5GateCoords
call SilphCo4Script_19d5d
call SilphCo5Script_19f9e
- ld a, [wd82c]
- bit 0, a
- jr nz, .asm_19f74 ; 0x19f63 $f
+ CheckEvent EVENT_SILPH_CO_5_UNLOCKED_DOOR1
+ jr nz, .asm_19f74
push af
ld a, $5f
- ld [wd09f], a
- ld bc, $0203
+ ld [wNewTileBlockID], a
+ lb bc, 2, 3
predef ReplaceTileBlock
pop af
.asm_19f74
- bit 1, a
- jr nz, .asm_19f87 ; 0x19f76 $f
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_5_UNLOCKED_DOOR2, EVENT_SILPH_CO_5_UNLOCKED_DOOR1
+ jr nz, .asm_19f87
push af
ld a, $5f
- ld [wd09f], a
- ld bc, $0603
+ ld [wNewTileBlockID], a
+ lb bc, 6, 3
predef ReplaceTileBlock
pop af
.asm_19f87
- bit 2, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_5_UNLOCKED_DOOR3, EVENT_SILPH_CO_5_UNLOCKED_DOOR2
ret nz
ld a, $5f
- ld [wd09f], a
- ld bc, $0507
+ ld [wNewTileBlockID], a
+ lb bc, 5, 7
predef_jump ReplaceTileBlock
-SilphCo5Coords: ; 19f97 (6:5f97) ; coords?
- db $02, $03, $06, $03, $05, $07, $ff
+SilphCo5GateCoords: ; 19f97 (6:5f97)
+ db $02,$03
+ db $06,$03
+ db $05,$07
+ db $FF
SilphCo5Script_19f9e: ; 19f9e (6:5f9e)
- ld hl, wd82c
+ EventFlagAddress hl, EVENT_SILPH_CO_5_UNLOCKED_DOOR1
ld a, [$ffe0]
and a
ret z
cp $1
- jr nz, .asm_19fac ; 0x19fa7 $3
- set 0, [hl]
+ jr nz, .next1
+ SetEventReuseHL EVENT_SILPH_CO_5_UNLOCKED_DOOR1
ret
-.asm_19fac
+.next1
cp $2
- jr nz, .asm_19fb3 ; 0x19fae $3
- set 1, [hl]
+ jr nz, .next2
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_5_UNLOCKED_DOOR2, EVENT_SILPH_CO_5_UNLOCKED_DOOR1
ret
-.asm_19fb3
- set 2, [hl]
+.next2
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_5_UNLOCKED_DOOR3, EVENT_SILPH_CO_5_UNLOCKED_DOOR1
ret
SilphCo5ScriptPointers: ; 19fb6 (6:5fb6)
@@ -74,54 +76,54 @@ SilphCo5TextPointers: ; 19fbc (6:5fbc)
dw SilphCo5Text3
dw SilphCo5Text4
dw SilphCo5Text5
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw SilphCo5Text9
dw SilphCo5Text10
dw SilphCo5Text11
SilphCo5TrainerHeaders: ; 19fd2 (6:5fd2)
Silphco5TrainerHeader0: ; 19fd2 (6:5fd2)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_5F_TRAINER_0
db ($1 << 4) ; trainer's view range
- dw wd82b ; flag's byte
- dw SilphCo5BattleText2 ; 0x6024 TextBeforeBattle
- dw SilphCo5AfterBattleText2 ; 0x602e TextAfterBattle
- dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle
- dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_5F_TRAINER_0
+ dw SilphCo5BattleText2 ; TextBeforeBattle
+ dw SilphCo5AfterBattleText2 ; TextAfterBattle
+ dw SilphCo5EndBattleText2 ; TextEndBattle
+ dw SilphCo5EndBattleText2 ; TextEndBattle
Silphco5TrainerHeader2: ; 19fde (6:5fde)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_5F_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd82b ; flag's byte
- dw SilphCo5BattleText3 ; 0x603d TextBeforeBattle
- dw SilphCo5AfterBattleText3 ; 0x6047 TextAfterBattle
- dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle
- dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_5F_TRAINER_2
+ dw SilphCo5BattleText3 ; TextBeforeBattle
+ dw SilphCo5AfterBattleText3 ; TextAfterBattle
+ dw SilphCo5EndBattleText3 ; TextEndBattle
+ dw SilphCo5EndBattleText3 ; TextEndBattle
Silphco5TrainerHeader3: ; 19fea (6:5fea)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_5F_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd82b ; flag's byte
- dw SilphCo5BattleText4 ; 0x6056 TextBeforeBattle
- dw SilphCo5AfterBattleText4 ; 0x6060 TextAfterBattle
- dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle
- dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_5F_TRAINER_3
+ dw SilphCo5BattleText4 ; TextBeforeBattle
+ dw SilphCo5AfterBattleText4 ; TextAfterBattle
+ dw SilphCo5EndBattleText4 ; TextEndBattle
+ dw SilphCo5EndBattleText4 ; TextEndBattle
Silphco5TrainerHeader4: ; 19ff6 (6:5ff6)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_5F_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd82b ; flag's byte
- dw SilphCo5BattleText5 ; 0x606f TextBeforeBattle
- dw SilphCo5AfterBattleText5 ; 0x6079 TextAfterBattle
- dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
- dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_5F_TRAINER_4
+ dw SilphCo5BattleText5 ; TextBeforeBattle
+ dw SilphCo5AfterBattleText5 ; TextAfterBattle
+ dw SilphCo5EndBattleText5 ; TextEndBattle
+ dw SilphCo5EndBattleText5 ; TextEndBattle
db $ff
SilphCo5Text1: ; 1a003 (6:6003)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo5Text_1a010
ld de, SilphCo5Text_1a015
call SilphCo6Script_1a22f
@@ -136,7 +138,7 @@ SilphCo5Text_1a015: ; 1a015 (6:6015)
db "@"
SilphCo5Text2: ; 1a01a (6:601a)
- db $08 ; asm
+ TX_ASM
ld hl, Silphco5TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -154,7 +156,7 @@ SilphCo5AfterBattleText2: ; 1a02e (6:602e)
db "@"
SilphCo5Text3: ; 1a033 (6:6033)
- db $08 ; asm
+ TX_ASM
ld hl, Silphco5TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -172,7 +174,7 @@ SilphCo5AfterBattleText3: ; 1a047 (6:6047)
db "@"
SilphCo5Text4: ; 1a04c (6:604c)
- db $08 ; asm
+ TX_ASM
ld hl, Silphco5TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -190,7 +192,7 @@ SilphCo5AfterBattleText4: ; 1a060 (6:6060)
db "@"
SilphCo5Text5: ; 1a065 (6:6065)
- db $08 ; asm
+ TX_ASM
ld hl, Silphco5TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/silphco6.asm b/scripts/silphco6.asm
index 137e31be..fa199069 100755
--- a/scripts/silphco6.asm
+++ b/scripts/silphco6.asm
@@ -13,27 +13,25 @@ SilphCo6Script_1a1bf: ; 1a1bf (6:61bf)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, SilphCo6Coords1
+ ld hl, SilphCo6GateCoords
call SilphCo4Script_19d5d
call SilphCo6Script_1a1e6
- ld a, [wd82e]
- bit 7, a
+ CheckEvent EVENT_SILPH_CO_6_UNLOCKED_DOOR
ret nz
ld a, $5f
- ld [wd09f], a
- ld bc, $0602
+ ld [wNewTileBlockID], a
+ lb bc, 6, 2
predef_jump ReplaceTileBlock
-SilphCo6Coords1: ; 1a1e3 (6:61e3)
- db $06, $02
- db $ff
+SilphCo6GateCoords: ; 1a1e3 (6:61e3)
+ db $06,$02
+ db $FF
SilphCo6Script_1a1e6: ; 1a1e6 (6:61e6)
ld a, [$ffe0]
and a
ret z
- ld hl, wd82e
- set 7, [hl]
+ SetEvent EVENT_SILPH_CO_6_UNLOCKED_DOOR
ret
SilphCo6ScriptPointers: ; 1a1f0 (6:61f0)
@@ -50,44 +48,43 @@ SilphCo6TextPointers: ; 1a1f6 (6:61f6)
dw SilphCo6Text6
dw SilphCo6Text7
dw SilphCo6Text8
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
SilphCo6TrainerHeaders: ; 1a20a (6:620a)
SilphCo6TrainerHeader0: ; 1a20a (6:620a)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_6F_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd82d ; flag's byte
- dw SilphCo6BattleText2 ; 0x62ba TextBeforeBattle
- dw SilphCo6AfterBattleText2 ; 0x62c4 TextAfterBattle
- dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle
- dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_6F_TRAINER_0
+ dw SilphCo6BattleText2 ; TextBeforeBattle
+ dw SilphCo6AfterBattleText2 ; TextAfterBattle
+ dw SilphCo6EndBattleText2 ; TextEndBattle
+ dw SilphCo6EndBattleText2 ; TextEndBattle
SilphCo6TrainerHeader2: ; 1a216 (6:6216)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_6F_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd82d ; flag's byte
- dw SilphCo6BattleText3 ; 0x62d3 TextBeforeBattle
- dw SilphCo6AfterBattleText3 ; 0x62dd TextAfterBattle
- dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle
- dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_6F_TRAINER_2
+ dw SilphCo6BattleText3 ; TextBeforeBattle
+ dw SilphCo6AfterBattleText3 ; TextAfterBattle
+ dw SilphCo6EndBattleText3 ; TextEndBattle
+ dw SilphCo6EndBattleText3 ; TextEndBattle
SilphCo6TrainerHeader3: ; 1a222 (6:6222)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_6F_TRAINER_3, 1
db ($2 << 4) ; trainer's view range
- dw wd82d ; flag's byte
- dw SilphCo6BattleText4 ; 0x62ec TextBeforeBattle
- dw SilphCo6AfterBattleText4 ; 0x62f6 TextAfterBattle
- dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
- dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_6F_TRAINER_3, 1
+ dw SilphCo6BattleText4 ; TextBeforeBattle
+ dw SilphCo6AfterBattleText4 ; TextAfterBattle
+ dw SilphCo6EndBattleText4 ; TextEndBattle
+ dw SilphCo6EndBattleText4 ; TextEndBattle
db $ff
SilphCo6Script_1a22f: ; 1a22f (6:622f)
- ld a, [wd838]
- bit 7, a
- jr nz, .asm_1a238 ; 0x1a234 $2
- jr .asm_1a23a ; 0x1a236 $2
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
+ jr nz, .asm_1a238
+ jr .asm_1a23a
.asm_1a238
ld h, d
ld l, e
@@ -95,7 +92,7 @@ SilphCo6Script_1a22f: ; 1a22f (6:622f)
jp PrintText
SilphCo6Text1: ; 1a23d (6:623d)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo6Text_1a24a
ld de, SilphCo6Text_1a24f
call SilphCo6Script_1a22f
@@ -110,7 +107,7 @@ SilphCo6Text_1a24f: ; 1a24f (6:624f)
db "@"
SilphCo6Text2: ; 1a254 (6:6254)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo6Text_1a261
ld de, SilphCo6Text_1a266
call SilphCo6Script_1a22f
@@ -125,7 +122,7 @@ SilphCo6Text_1a266: ; 1a266 (6:6266)
db "@"
SilphCo6Text3: ; 1a26b (6:626b)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo6Text_1a278
ld de, SilphCo6Text_1a27d
call SilphCo6Script_1a22f
@@ -140,7 +137,7 @@ SilphCo6Text_1a27d: ; 1a27d (6:627d)
db "@"
SilphCo6Text4: ; 1a282 (6:6282)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo6Text_1a28f
ld de, SilphCo6Text_1a294
call SilphCo6Script_1a22f
@@ -155,7 +152,7 @@ SilphCo6Text_1a294: ; 1a294 (6:6294)
db "@"
SilphCo6Text5: ; 1a299 (6:6299)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo6Text_1a2a6
ld de, SilphCo6Text_1a2ab
call SilphCo6Script_1a22f
@@ -170,7 +167,7 @@ SilphCo6Text_1a2ab: ; 1a2ab (6:62ab)
db "@"
SilphCo6Text6: ; 1a2b0 (6:62b0)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo6TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -188,7 +185,7 @@ SilphCo6AfterBattleText2: ; 1a2c4 (6:62c4)
db "@"
SilphCo6Text7: ; 1a2c9 (6:62c9)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo6TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -206,7 +203,7 @@ SilphCo6AfterBattleText3: ; 1a2dd (6:62dd)
db "@"
SilphCo6Text8: ; 1a2e2 (6:62e2)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo6TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm
index 23eb795c..5333e07f 100755
--- a/scripts/silphco7.asm
+++ b/scripts/silphco7.asm
@@ -13,37 +13,39 @@ SilphCo7Script_51b77: ; 51b77 (14:5b77)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, DataTable_51bc1 ; $5bc1
+ ld hl, SilphCo7GateCoords
call SilphCo7Text_51bc8
call SilphCo7Text_51bf4
- ld a, [wd830]
- bit 4, a
+ CheckEvent EVENT_SILPH_CO_7_UNLOCKED_DOOR1
jr nz, .asm_51b9e
push af
ld a, $54
- ld [wd09f], a
- ld bc, $305
+ ld [wNewTileBlockID], a
+ lb bc, 3, 5
predef ReplaceTileBlock
pop af
.asm_51b9e
- bit 5, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_7_UNLOCKED_DOOR2, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
jr nz, .asm_51bb1
push af
ld a, $54
- ld [wd09f], a
- ld bc, $20a
+ ld [wNewTileBlockID], a
+ lb bc, 2, 10
predef ReplaceTileBlock
pop af
.asm_51bb1
- bit 6, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_7_UNLOCKED_DOOR3, EVENT_SILPH_CO_7_UNLOCKED_DOOR2
ret nz
ld a, $54
- ld [wd09f], a
- ld bc, $60a
+ ld [wNewTileBlockID], a
+ lb bc, 6, 10
predef_jump ReplaceTileBlock
-DataTable_51bc1: ; 51bc1 (14:5bc1)
- db $03,$05,$02,$0A,$06,$0A,$FF
+SilphCo7GateCoords: ; 51bc1 (14:5bc1)
+ db $03,$05
+ db $02,$0A
+ db $06,$0A
+ db $FF
SilphCo7Text_51bc8: ; 51bc8 (14:5bc8)
push hl
@@ -82,21 +84,21 @@ SilphCo7Text_51bc8: ; 51bc8 (14:5bc8)
ret
SilphCo7Text_51bf4: ; 51bf4 (14:5bf4)
- ld hl, wd830
+ EventFlagAddress hl, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
ld a, [$ffe0]
and a
ret z
cp $1
- jr nz, .asm_51c02
- set 4, [hl]
+ jr nz, .next1
+ SetEventReuseHL EVENT_SILPH_CO_7_UNLOCKED_DOOR1
ret
-.asm_51c02
+.next1
cp $2
- jr nz, .asm_51c09
- set 5, [hl]
+ jr nz, .next2
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_7_UNLOCKED_DOOR2, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
ret
-.asm_51c09
- set 6, [hl]
+.next2
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_7_UNLOCKED_DOOR3, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
ret
SilphCo7Text_51c0c: ; 51c0c (14:5c0c)
@@ -117,8 +119,7 @@ SilphCo7ScriptPointers: ; 51c17 (14:5c17)
dw SilphCo7Script5
SilphCo7Script0: ; 51c23 (14:5c23)
- ld a, [wd82f]
- bit 0, a
+ CheckEvent EVENT_BEAT_SILPH_CO_RIVAL
jp nz, CheckFightingMapTrainers
ld hl, CoordsData_51c78
call ArePlayerCoordsInArray
@@ -127,29 +128,29 @@ SilphCo7Script0: ; 51c23 (14:5c23)
ld [hJoyHeld], a
ld a, $f0
ld [wJoyIgnore], a
- ld a, $4
- ld [wd528], a
+ ld a, PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection], a
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld a, $9
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $9
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld de, MovementData_51c7d
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wCoordIndex]
ld [wcf0d], a
cp $1
jr z, .asm_51c6c
inc de
.asm_51c6c
ld a, $9
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $3
jp SilphCo7Text_51c10
@@ -160,7 +161,11 @@ CoordsData_51c78: ; 51c78 (14:5c78)
db $FF
MovementData_51c7d: ; 51c7d (14:5c7d)
- db $40,$40,$40,$40,$FF
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db $FF
SilphCo7Script3: ; 51c82 (14:5c82)
ld a, [wd730]
@@ -169,18 +174,18 @@ SilphCo7Script3: ; 51c82 (14:5c82)
xor a
ld [wJoyIgnore], a
ld a, $d
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld hl, wd72d
set 6, [hl]
set 7, [hl]
- ld hl, SilphCo7Text14 ; $5ec8
- ld de, SilphCo7Text_51ecd ; $5ecd
+ ld hl, SilphCo7Text14
+ ld de, SilphCo7Text_51ecd
call SaveEndBattleTextPointers
- ld a, SONY2 + $c8
- ld [W_CUROPPONENT], a ; wd059
- ld a, [W_RIVALSTARTER] ; wd715
+ ld a, OPP_SONY2
+ ld [W_CUROPPONENT], a
+ ld a, [W_RIVALSTARTER]
cp STARTER2
jr nz, .asm_51cb6
ld a, $7
@@ -193,30 +198,29 @@ SilphCo7Script3: ; 51c82 (14:5c82)
.asm_51cbe
ld a, $9
.asm_51cc0
- ld [W_TRAINERNO], a ; wd05d
+ ld [W_TRAINERNO], a
ld a, $4
jp SilphCo7Text_51c10
SilphCo7Script4: ; 51cc8 (14:5cc8)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, SilphCo7Text_51c0c
ld a, $f0
ld [wJoyIgnore], a
- ld hl, wd82f
- set 0, [hl]
- ld a, $4
- ld [wd528], a
+ SetEvent EVENT_BEAT_SILPH_CO_RIVAL
+ ld a, PLAYER_DIR_DOWN
+ ld [wPlayerMovingDirection], a
ld a, $9
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
- ld a, $4
- ld [$ff8d], a
+ ld [H_SPRITEINDEX], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $f
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld de, MovementData_51d1d
@@ -226,23 +230,32 @@ SilphCo7Script4: ; 51cc8 (14:5cc8)
ld de, MovementData_51d1a
.asm_51d0e
ld a, $9
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $5
jp SilphCo7Text_51c10
MovementData_51d1a: ; 51d1a (14:5d1a)
- db $C0,$C0,$FF
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
MovementData_51d1d: ; 51d1d (14:5d1d)
- db $80,$40,$40,$C0,$C0,$C0,$00,$FF
+ db NPC_MOVEMENT_LEFT
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+ db $FF
SilphCo7Script5: ; 51d25 (14:5d25)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_SILPH_CO_7F_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call PlayDefaultMusic
xor a
@@ -259,60 +272,59 @@ SilphCo7TextPointers: ; 51d3f (14:5d3f)
dw SilphCo7Text7
dw SilphCo7Text8
dw SilphCo7Text9
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw SilphCo7Text13
dw SilphCo7Text14
dw SilphCo7Text15
SilphCo7TrainerHeaders: ; 51d5d (14:5d5d)
SilphCo7TrainerHeader0: ; 51d5d (14:5d5d)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd82f ; flag's byte
- dw SilphCo7BattleText1 ; 0x5e5a TextBeforeBattle
- dw SilphCo7AfterBattleText1 ; 0x5e64 TextAfterBattle
- dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
- dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_0
+ dw SilphCo7BattleText1 ; TextBeforeBattle
+ dw SilphCo7AfterBattleText1 ; TextAfterBattle
+ dw SilphCo7EndBattleText1 ; TextEndBattle
+ dw SilphCo7EndBattleText1 ; TextEndBattle
SilphCo7TrainerHeader2: ; 51d69 (14:5d69)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd82f ; flag's byte
- dw SilphCo7BattleText2 ; 0x5e73 TextBeforeBattle
- dw SilphCo7AfterBattleText2 ; 0x5e7d TextAfterBattle
- dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
- dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_2
+ dw SilphCo7BattleText2 ; TextBeforeBattle
+ dw SilphCo7AfterBattleText2 ; TextAfterBattle
+ dw SilphCo7EndBattleText2 ; TextEndBattle
+ dw SilphCo7EndBattleText2 ; TextEndBattle
SilphCo7TrainerHeader3: ; 51d75 (14:5d75)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd82f ; flag's byte
- dw SilphCo7BattleText3 ; 0x5e8c TextBeforeBattle
- dw SilphCo7AfterBattleText3 ; 0x5e96 TextAfterBattle
- dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
- dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_3
+ dw SilphCo7BattleText3 ; TextBeforeBattle
+ dw SilphCo7AfterBattleText3 ; TextAfterBattle
+ dw SilphCo7EndBattleText3 ; TextEndBattle
+ dw SilphCo7EndBattleText3 ; TextEndBattle
SilphCo7TrainerHeader4: ; 51d81 (14:5d81)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_4, 1
db ($4 << 4) ; trainer's view range
- dw wd82f ; flag's byte
- dw SilphCo7BattleText4 ; 0x5ea5 TextBeforeBattle
- dw SilphCo7AfterBattleText4 ; 0x5eaf TextAfterBattle
- dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
- dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_4, 1
+ dw SilphCo7BattleText4 ; TextBeforeBattle
+ dw SilphCo7AfterBattleText4 ; TextAfterBattle
+ dw SilphCo7EndBattleText4 ; TextEndBattle
+ dw SilphCo7EndBattleText4 ; TextEndBattle
db $ff
SilphCo7Text1:
; lapras guy
- db $08 ; asm
+ TX_ASM
ld a, [wd72e]
bit 0, a ; got lapras?
jr z, .givelapras
- ld a, [wd838]
- bit 7, a ; saved silph?
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
jr nz, .savedsilph
ld hl, .LaprasGuyText
call PrintText
@@ -320,7 +332,7 @@ SilphCo7Text1:
.givelapras
ld hl, .MeetLaprasGuyText
call PrintText
- ld bc, (LAPRAS << 8) | 15
+ lb bc, LAPRAS, 15
call GivePokemon
jr nc, .done
ld a, [wSimulatedJoypadStatesEnd]
@@ -355,9 +367,8 @@ SilphCo7Text1:
db "@"
SilphCo7Text2:
- db $8
- ld a, [wd838]
- bit 7, a ; saved silph?
+ TX_ASM
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
jr nz, .savedsilph
ld hl, .rockettext
call PrintText
@@ -377,9 +388,8 @@ SilphCo7Text2:
db "@"
SilphCo7Text3:
- db $08 ; asm
- ld a, [wd838]
- bit 7, a ; saved silph?
+ TX_ASM
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
jr nz, .savedsilph
ld hl, .rockettext
call PrintText
@@ -399,9 +409,8 @@ SilphCo7Text3:
db "@"
SilphCo7Text4:
- db $08 ; asm
- ld a, [wd838]
- bit 7, a ; saved silph?
+ TX_ASM
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
jr nz, .savedsilph
ld hl, .rockettext
call PrintText
@@ -421,7 +430,7 @@ SilphCo7Text4:
db "@"
SilphCo7Text5: ; 51e50 (14:5e50)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo7TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -439,7 +448,7 @@ SilphCo7AfterBattleText1: ; 51e64 (14:5e64)
db "@"
SilphCo7Text6: ; 51e69 (14:5e69)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo7TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -457,7 +466,7 @@ SilphCo7AfterBattleText2: ; 51e7d (14:5e7d)
db "@"
SilphCo7Text7: ; 51e82 (14:5e82)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo7TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -475,7 +484,7 @@ SilphCo7AfterBattleText3: ; 51e96 (14:5e96)
db "@"
SilphCo7Text8: ; 51e9b (14:5e9b)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo7TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -493,7 +502,7 @@ SilphCo7AfterBattleText4: ; 51eaf (14:5eaf)
db "@"
SilphCo7Text9: ; 51eb4 (14:5eb4)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo7Text_51ebe
call PrintText
jp TextScriptEnd
diff --git a/scripts/silphco8.asm b/scripts/silphco8.asm
index ebca9b95..9ea985a8 100755
--- a/scripts/silphco8.asm
+++ b/scripts/silphco8.asm
@@ -13,19 +13,19 @@ SilphCo8Script_5651a: ; 5651a (15:651a)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, DataTable_5653e ; $653e
+ ld hl, SilphCo8GateCoords
call SilphCo8Script_56541
call SilphCo8Script_5656d
- ld a, [wd832]
- bit 0, a
+ CheckEvent EVENT_SILPH_CO_8_UNLOCKED_DOOR
ret nz
ld a, $5f
- ld [wd09f], a
- ld bc, $403
+ ld [wNewTileBlockID], a
+ lb bc, 4, 3
predef_jump ReplaceTileBlock
-DataTable_5653e: ; 5653e (15:653e)
- db $04,$03,$FF
+SilphCo8GateCoords: ; 5653e (15:653e)
+ db $04,$03
+ db $FF
SilphCo8Script_56541: ; 56541 (15:6541)
push hl
@@ -67,8 +67,7 @@ SilphCo8Script_5656d: ; 5656d (15:656d)
ld a, [$ffe0]
and a
ret z
- ld hl, wd832
- set 0, [hl]
+ SetEvent EVENT_SILPH_CO_8_UNLOCKED_DOOR
ret
SilphCo8ScriptPointers: ; 56577 (15:6577)
@@ -84,42 +83,41 @@ SilphCo8TextPointers: ; 5657d (15:657d)
SilphCo8TrainerHeaders: ; 56585 (15:6585)
SilphCo8TrainerHeader0: ; 56585 (15:6585)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd831 ; flag's byte
- dw SilphCo8BattleText1 ; 0x65e6 TextBeforeBattle
- dw SilphCo8AfterBattleText1 ; 0x65f0 TextAfterBattle
- dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle
- dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_0
+ dw SilphCo8BattleText1 ; TextBeforeBattle
+ dw SilphCo8AfterBattleText1 ; TextAfterBattle
+ dw SilphCo8EndBattleText1 ; TextEndBattle
+ dw SilphCo8EndBattleText1 ; TextEndBattle
SilphCo8TrainerHeader1: ; 56591 (15:6591)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd831 ; flag's byte
- dw SilphCo8BattleText2 ; 0x65f5 TextBeforeBattle
- dw SilphCo8AfterBattleText2 ; 0x65ff TextAfterBattle
- dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle
- dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_1
+ dw SilphCo8BattleText2 ; TextBeforeBattle
+ dw SilphCo8AfterBattleText2 ; TextAfterBattle
+ dw SilphCo8EndBattleText2 ; TextEndBattle
+ dw SilphCo8EndBattleText2 ; TextEndBattle
SilphCo8TrainerHeader2: ; 5659d (15:659d)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd831 ; flag's byte
- dw SilphCo8BattleText3 ; 0x6604 TextBeforeBattle
- dw SilphCo8AfterBattleText3 ; 0x660e TextAfterBattle
- dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
- dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_2
+ dw SilphCo8BattleText3 ; TextBeforeBattle
+ dw SilphCo8AfterBattleText3 ; TextAfterBattle
+ dw SilphCo8EndBattleText3 ; TextEndBattle
+ dw SilphCo8EndBattleText3 ; TextEndBattle
db $ff
SilphCo8Text1: ; 565aa (15:65aa)
- db $08 ; asm
- ld a, [wd838]
- bit 7, a
+ TX_ASM
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
ld hl, SilphCo8Text_565c3
- jr nz, asm_a468f ; 0x565b3
+ jr nz, .asm_565b8
ld hl, SilphCo8Text_565be
-asm_a468f ; 0x565b8
+.asm_565b8
call PrintText
jp TextScriptEnd
@@ -132,19 +130,19 @@ SilphCo8Text_565c3: ; 565c3 (15:65c3)
db "@"
SilphCo8Text2: ; 565c8 (15:65c8)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo8TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SilphCo8Text3: ; 565d2 (15:65d2)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo8TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SilphCo8Text4: ; 565dc (15:65dc)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo8TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/silphco9.asm b/scripts/silphco9.asm
index e8b16927..02638459 100755
--- a/scripts/silphco9.asm
+++ b/scripts/silphco9.asm
@@ -13,46 +13,49 @@ SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, DataTable_5d82e ; $582e
+ ld hl, SilphCo9GateCoords
call SilphCo9Script_5d837
call SilphCo9Script_5d863
- ld a, [wd834]
- bit 0, a
+ CheckEvent EVENT_SILPH_CO_9_UNLOCKED_DOOR1
jr nz, .asm_5d7f8
push af
ld a, $5f
- ld [wd09f], a
- ld bc, $401
+ ld [wNewTileBlockID], a
+ lb bc, 4, 1
predef ReplaceTileBlock
pop af
.asm_5d7f8
- bit 1, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_9_UNLOCKED_DOOR2, EVENT_SILPH_CO_9_UNLOCKED_DOOR1
jr nz, .asm_5d80b
push af
ld a, $54
- ld [wd09f], a
- ld bc, $209
+ ld [wNewTileBlockID], a
+ lb bc, 2, 9
predef ReplaceTileBlock
pop af
.asm_5d80b
- bit 2, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_9_UNLOCKED_DOOR3, EVENT_SILPH_CO_9_UNLOCKED_DOOR2
jr nz, .asm_5d81e
push af
ld a, $54
- ld [wd09f], a
- ld bc, $509
+ ld [wNewTileBlockID], a
+ lb bc, 5, 9
predef ReplaceTileBlock
pop af
.asm_5d81e
- bit 3, a
+ CheckEventAfterBranchReuseA EVENT_SILPH_CO_9_UNLOCKED_DOOR4, EVENT_SILPH_CO_9_UNLOCKED_DOOR3
ret nz
ld a, $5f
- ld [wd09f], a
- ld bc, $605
+ ld [wNewTileBlockID], a
+ lb bc, 6, 5
predef_jump ReplaceTileBlock
-DataTable_5d82e: ; 5d82e (17:582e)
- db $04,$01,$02,$09,$05,$09,$06,$05,$FF
+SilphCo9GateCoords: ; 5d82e (17:582e)
+ db $04,$01
+ db $02,$09
+ db $05,$09
+ db $06,$05
+ db $FF
SilphCo9Script_5d837: ; 5d837 (17:5837)
push hl
@@ -91,28 +94,28 @@ SilphCo9Script_5d837: ; 5d837 (17:5837)
ret
SilphCo9Script_5d863: ; 5d863 (17:5863)
- ld hl, wd834
+ EventFlagAddress hl, EVENT_SILPH_CO_9_UNLOCKED_DOOR1
ld a, [$ffe0]
and a
ret z
cp $1
- jr nz, .asm_5d871
- set 0, [hl]
+ jr nz, .next1
+ SetEventReuseHL EVENT_SILPH_CO_9_UNLOCKED_DOOR1
ret
-.asm_5d871
+.next1
cp $2
- jr nz, .asm_5d878
- set 1, [hl]
+ jr nz, .next2
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_9_UNLOCKED_DOOR2, EVENT_SILPH_CO_9_UNLOCKED_DOOR1
ret
-.asm_5d878
+.next2
cp $3
- jr nz, .asm_5d87f
- set 2, [hl]
+ jr nz, .next3
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_9_UNLOCKED_DOOR3, EVENT_SILPH_CO_9_UNLOCKED_DOOR1
ret
-.asm_5d87f
+.next3
cp $4
ret nz
- set 3, [hl]
+ SetEventAfterBranchReuseHL EVENT_SILPH_CO_9_UNLOCKED_DOOR4, EVENT_SILPH_CO_9_UNLOCKED_DOOR1
ret
SilphCo9ScriptPointers: ; 5d885 (17:5885)
@@ -128,39 +131,38 @@ SilphCo9TextPointers: ; 5d88b (17:588b)
SilphCo9TrainerHeaders: ; 5d893 (17:5893)
SilphCo9TrainerHeader0: ; 5d893 (17:5893)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_9F_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd833 ; flag's byte
- dw SilphCo9BattleText1 ; 0x5912 TextBeforeBattle
- dw SilphCo9AfterBattleText1 ; 0x591c TextAfterBattle
- dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle
- dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_9F_TRAINER_0
+ dw SilphCo9BattleText1 ; TextBeforeBattle
+ dw SilphCo9AfterBattleText1 ; TextAfterBattle
+ dw SilphCo9EndBattleText1 ; TextEndBattle
+ dw SilphCo9EndBattleText1 ; TextEndBattle
SilphCo9TrainerHeader1: ; 5d89f (17:589f)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_9F_TRAINER_1
db ($2 << 4) ; trainer's view range
- dw wd833 ; flag's byte
- dw SilphCo9BattleText2 ; 0x5921 TextBeforeBattle
- dw SilphCo9AfterBattleText2 ; 0x592b TextAfterBattle
- dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle
- dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_9F_TRAINER_1
+ dw SilphCo9BattleText2 ; TextBeforeBattle
+ dw SilphCo9AfterBattleText2 ; TextAfterBattle
+ dw SilphCo9EndBattleText2 ; TextEndBattle
+ dw SilphCo9EndBattleText2 ; TextEndBattle
SilphCo9TrainerHeader2: ; 5d8ab (17:58ab)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SILPH_CO_9F_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd833 ; flag's byte
- dw SilphCo9BattleText3 ; 0x5930 TextBeforeBattle
- dw SilphCo9AfterBattleText3 ; 0x593a TextAfterBattle
- dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
- dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SILPH_CO_9F_TRAINER_2
+ dw SilphCo9BattleText3 ; TextBeforeBattle
+ dw SilphCo9AfterBattleText3 ; TextAfterBattle
+ dw SilphCo9EndBattleText3 ; TextEndBattle
+ dw SilphCo9EndBattleText3 ; TextEndBattle
db $ff
SilphCo9Text1: ; 5d8b8 (17:58b8)
- db $08 ; asm
- ld a, [wd838]
- bit 7, a
- jr nz, .asm_a14c3 ; 0x5d8be
+ TX_ASM
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
+ jr nz, .asm_5d8dc
ld hl, SilphCo9Text_5d8e5
call PrintText
predef HealParty
@@ -169,11 +171,11 @@ SilphCo9Text1: ; 5d8b8 (17:58b8)
call GBFadeInFromWhite
ld hl, SilphCo9Text_5d8ea
call PrintText
- jr .asm_b6e28 ; 0x5d8da
-.asm_a14c3 ; 0x5d8dc
+ jr .asm_5d8e2
+.asm_5d8dc
ld hl, SilphCo9Text_5d8ef
call PrintText
-.asm_b6e28 ; 0x5d8e2
+.asm_5d8e2
jp TextScriptEnd
SilphCo9Text_5d8e5: ; 5d8e5 (17:58e5)
@@ -189,19 +191,19 @@ SilphCo9Text_5d8ef: ; 5d8ef (17:58ef)
db "@"
SilphCo9Text2: ; 5d8f4 (17:58f4)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo9TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SilphCo9Text3: ; 5d8fe (17:58fe)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo9TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SilphCo9Text4: ; 5d908 (17:5908)
- db $08 ; asm
+ TX_ASM
ld hl, SilphCo9TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/silphcoelevator.asm b/scripts/silphcoelevator.asm
index 48d406cc..d080cfef 100755
--- a/scripts/silphcoelevator.asm
+++ b/scripts/silphcoelevator.asm
@@ -16,9 +16,9 @@ SilphCoElevatorScript: ; 457c0 (11:57c0)
SilphCoElevatorScript_457dc: ; 457dc (11:57dc)
ld hl, wWarpEntries
- ld a, [wd73b]
+ ld a, [wWarpedFromWhichWarp]
ld b, a
- ld a, [wd73c]
+ ld a, [wWarpedFromWhichMap]
ld c, a
call SilphCoElevatorScript_457ea
@@ -32,17 +32,27 @@ SilphCoElevatorScript_457ea: ; 457ea (11:57ea)
ret
SilphCoElevatorScript_457f1: ; 457f1 (11:57f1)
- ld hl, SilphCoElavatorFloors ; $5804
+ ld hl, SilphCoElavatorFloors
call LoadItemList
- ld hl, SilphCoElevatorWarpMaps ; $5811
- ld de, wcc5b
- ld bc, $16
+ ld hl, SilphCoElevatorWarpMaps
+ ld de, wElevatorWarpMaps
+ ld bc, SilphCoElevatorWarpMapsEnd - SilphCoElevatorWarpMaps
call CopyData
ret
SilphCoElavatorFloors: ; 45804 (11:45804)
db $0B ; num elements in list
- db $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $60 ; "1F", "2F", "3F", "4F", ... , "11F"
+ db FLOOR_1F
+ db FLOOR_2F
+ db FLOOR_3F
+ db FLOOR_4F
+ db FLOOR_5F
+ db FLOOR_6F
+ db FLOOR_7F
+ db FLOOR_8F
+ db FLOOR_9F
+ db FLOOR_10F
+ db FLOOR_11F
db $FF ; terminator
SilphCoElevatorWarpMaps: ; 45811 (11:45811)
@@ -60,6 +70,7 @@ SilphCoElevatorWarpMaps: ; 45811 (11:45811)
db $02, SILPH_CO_9F
db $02, SILPH_CO_10F
db $01, SILPH_CO_11F
+SilphCoElevatorWarpMapsEnd:
SilphCoElevatorScript_45827: ; 45827 (11:5827)
call Delay3
@@ -70,8 +81,8 @@ SilphCoElevatorTextPointers: ; 45833 (11:5833)
dw SilphCoElevatorText1
SilphCoElevatorText1: ; 45835 (11:5835)
- db $08 ; asm
+ TX_ASM
call SilphCoElevatorScript_457f1
- ld hl, SilphCoElevatorWarpMaps ; $5811
- predef Func_1c9c6
+ ld hl, SilphCoElevatorWarpMaps
+ predef DisplayElevatorFloorMenu
jp TextScriptEnd
diff --git a/scripts/ssanne10.asm b/scripts/ssanne10.asm
index 8f3ff9a4..3b53b961 100755
--- a/scripts/ssanne10.asm
+++ b/scripts/ssanne10.asm
@@ -21,106 +21,106 @@ SSAnne10TextPointers: ; 61d6e (18:5d6e)
dw SSAnne10Text6
dw SSAnne10Text7
dw SSAnne10Text8
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
SSAnne10TrainerHeaders: ; 61d84 (18:5d84)
SSAnne10TrainerHeader0: ; 61d84 (18:5d84)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd809 ; flag's byte
- dw SSAnne10BattleText1 ; 0x5e16 TextBeforeBattle
- dw SSAnne10AfterBattleText1 ; 0x5e20 TextAfterBattle
- dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle
- dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_0
+ dw SSAnne10BattleText1 ; TextBeforeBattle
+ dw SSAnne10AfterBattleText1 ; TextAfterBattle
+ dw SSAnne10EndBattleText1 ; TextEndBattle
+ dw SSAnne10EndBattleText1 ; TextEndBattle
SSAnne10TrainerHeader1: ; 61d90 (18:5d90)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd809 ; flag's byte
- dw SSAnne10BattleText2 ; 0x5e25 TextBeforeBattle
- dw SSAnne10AfterBattleText2 ; 0x5e2f TextAfterBattle
- dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle
- dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_1
+ dw SSAnne10BattleText2 ; TextBeforeBattle
+ dw SSAnne10AfterBattleText2 ; TextAfterBattle
+ dw SSAnne10EndBattleText2 ; TextEndBattle
+ dw SSAnne10EndBattleText2 ; TextEndBattle
SSAnne10TrainerHeader2: ; 61d9c (18:5d9c)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd809 ; flag's byte
- dw SSAnne10BattleText3 ; 0x5e34 TextBeforeBattle
- dw SSAnne10AfterBattleText3 ; 0x5e3e TextAfterBattle
- dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle
- dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_2
+ dw SSAnne10BattleText3 ; TextBeforeBattle
+ dw SSAnne10AfterBattleText3 ; TextAfterBattle
+ dw SSAnne10EndBattleText3 ; TextEndBattle
+ dw SSAnne10EndBattleText3 ; TextEndBattle
SSAnne10TrainerHeader3: ; 61da8 (18:5da8)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd809 ; flag's byte
- dw SSAnne10BattleText4 ; 0x5e43 TextBeforeBattle
- dw SSAnne10AfterBattleText4 ; 0x5e4d TextAfterBattle
- dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle
- dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_3
+ dw SSAnne10BattleText4 ; TextBeforeBattle
+ dw SSAnne10AfterBattleText4 ; TextAfterBattle
+ dw SSAnne10EndBattleText4 ; TextEndBattle
+ dw SSAnne10EndBattleText4 ; TextEndBattle
SSAnne10TrainerHeader4: ; 61db4 (18:5db4)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_4
db ($2 << 4) ; trainer's view range
- dw wd809 ; flag's byte
- dw SSAnne10BattleText5 ; 0x5e52 TextBeforeBattle
- dw SSAnne10AfterBattleText5 ; 0x5e5c TextAfterBattle
- dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle
- dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_4
+ dw SSAnne10BattleText5 ; TextBeforeBattle
+ dw SSAnne10AfterBattleText5 ; TextAfterBattle
+ dw SSAnne10EndBattleText5 ; TextEndBattle
+ dw SSAnne10EndBattleText5 ; TextEndBattle
SSAnne10TrainerHeader5: ; 61dc0 (18:5dc0)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd809 ; flag's byte
- dw SSAnne10BattleText6 ; 0x5e61 TextBeforeBattle
- dw SSAnne10AfterBattleText6 ; 0x5e6b TextAfterBattle
- dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
- dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_5
+ dw SSAnne10BattleText6 ; TextBeforeBattle
+ dw SSAnne10AfterBattleText6 ; TextAfterBattle
+ dw SSAnne10EndBattleText6 ; TextEndBattle
+ dw SSAnne10EndBattleText6 ; TextEndBattle
db $ff
SSAnne10Text1: ; 61dcd (18:5dcd)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne10TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SSAnne10Text2: ; 61dd7 (18:5dd7)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne10TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SSAnne10Text3: ; 61de1 (18:5de1)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne10TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
SSAnne10Text4: ; 61deb (18:5deb)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne10TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
SSAnne10Text5: ; 61df5 (18:5df5)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne10TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
SSAnne10Text6: ; 61dff (18:5dff)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne10TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
SSAnne10Text8: ; 61e09 (18:5e09)
TX_FAR _SSAnne10Text8
- db $8 ; 0x61e0d
+ TX_ASM
ld a, MACHOKE
call PlayCry
jp TextScriptEnd
diff --git a/scripts/ssanne2.asm b/scripts/ssanne2.asm
index 474aaa60..8bcc2b17 100755
--- a/scripts/ssanne2.asm
+++ b/scripts/ssanne2.asm
@@ -21,23 +21,23 @@ SSAnne2Script4: ; 613bd (18:53bd)
ret
SSAnne2Script0: ; 613be (18:53be)
- ld hl, CoordsData_61411 ; $5411
+ ld hl, CoordsData_61411
call ArePlayerCoordsInArray
ret nc
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
- ld a, [wWhichTrade]
+ ld a, [wCoordIndex]
ld [$ffdb], a
ld a, HS_SS_ANNE_2_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
call Delay3
ld a, $2
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
xor a
ld [hJoyHeld], a
@@ -45,9 +45,9 @@ SSAnne2Script0: ; 613be (18:53be)
ld [wJoyIgnore], a
ld a, [$ffdb]
cp $2
- jr nz, .asm_61400 ; 0x613f9 $5
+ jr nz, .asm_61400
ld de, MovementData_6140c
- jr .asm_61403 ; 0x613fe $3
+ jr .asm_61403
.asm_61400
ld de, MovementData_6140d
.asm_61403
@@ -57,28 +57,33 @@ SSAnne2Script0: ; 613be (18:53be)
ret
MovementData_6140c: ; 6140c (18:540c)
- db $00
+ db NPC_MOVEMENT_DOWN
MovementData_6140d: ; 6140d (18:540d)
- db $00,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
CoordsData_61411: ; 61411 (18:5411)
- db $08,$24,$08,$25,$FF
+ db $08,$24
+ db $08,$25
+ db $FF
SSAnne2Script_61416: ; 61416 (18:5416)
- ld a, [W_XCOORD] ; wd362
+ ld a, [W_XCOORD]
cp $25
jr nz, .asm_61426
- ld a, $2
- ld [wd528], a
- ld a, $c
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
+ ld a, SPRITE_FACING_RIGHT
jr .asm_61427
.asm_61426
- xor a
+ xor a ; SPRITE_FACING_DOWN
.asm_61427
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
ld a, $2
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [H_SPRITEINDEX], a
jp SetSpriteFacingDirectionAndDelay
SSAnne2Script1: ; 61430 (18:5430)
@@ -89,21 +94,21 @@ SSAnne2Script1: ; 61430 (18:5430)
xor a
ld [wJoyIgnore], a
ld a, $2
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
- ld a, SONY2 + $c8
+ ld a, OPP_SONY2
ld [W_CUROPPONENT], a
; select which team to use during the encounter
ld a, [W_RIVALSTARTER]
cp STARTER2
- jr nz, .NotSquirtle ; 0x61451 $4
+ jr nz, .NotSquirtle
ld a, $1
jr .done
.NotSquirtle
cp STARTER3
- jr nz, .Charmander ; 0x61459 $4
+ jr nz, .Charmander
ld a, $2
jr .done
.Charmander
@@ -124,24 +129,24 @@ SSAnne2Script2: ; 6146d (18:546d)
ld a, $f0
ld [wJoyIgnore], a
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $2
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF
ld a, [W_XCOORD]
cp $25
- jr nz, .asm_61497 ; 0x61490 $5
+ jr nz, .asm_61497
ld de, MovementData_614b9
- jr .asm_6149a ; 0x61495 $3
+ jr .asm_6149a
.asm_61497
ld de, MovementData_614b7
.asm_6149a
ld a, $2
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call MoveSprite
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $3
@@ -149,10 +154,15 @@ SSAnne2Script2: ; 6146d (18:546d)
ret
MovementData_614b7: ; 614b7 (18:54b7)
- db $C0,$00
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
MovementData_614b9: ; 614b9 (18:54b9)
- db $00,$00,$00,$00,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
SSAnne2Script3: ; 614be (18:54be)
ld a, [wd730]
@@ -161,7 +171,7 @@ SSAnne2Script3: ; 614be (18:54be)
xor a
ld [wJoyIgnore], a
ld a, HS_SS_ANNE_2_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call PlayDefaultMusic
ld a, $4
@@ -178,7 +188,7 @@ SSAnne2Text1: ; 614e1 (18:54e1)
db "@"
SSAnne2Text2: ; 614e6 (18:54e6)
- db $8
+ TX_ASM
ld hl, SSAnneRivalBeforeBattleText
call PrintText
ld hl, wd72d
diff --git a/scripts/ssanne5.asm b/scripts/ssanne5.asm
index 96b94c52..76553563 100755
--- a/scripts/ssanne5.asm
+++ b/scripts/ssanne5.asm
@@ -1,6 +1,6 @@
SSAnne5Script: ; 616ae (18:56ae)
call EnableAutoTextBoxDrawing
- ld hl, SSAnne5TrainerHeader0 ; $56d1
+ ld hl, SSAnne5TrainerHeader0
ld de, SSAnne5ScriptPointers
ld a, [W_SSANNE5CURSCRIPT]
call ExecuteCurMapScriptInTable
@@ -21,22 +21,22 @@ SSAnne5TextPointers: ; 616c7 (18:56c7)
SSAnne5TrainerHeaders: ; 616d1 (18:56d1)
SSAnne5TrainerHeader0: ; 616d1 (18:56d1)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_5_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd7ff ; flag's byte
- dw SSAnne5BattleText1 ; 0x5703 TextBeforeBattle
- dw SSAnne5AfterBattleText1 ; 0x570d TextAfterBattle
- dw SSAnne5EndBattleText1 ; 0x5708 TextEndBattle
- dw SSAnne5EndBattleText1 ; 0x5708 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_5_TRAINER_0
+ dw SSAnne5BattleText1 ; TextBeforeBattle
+ dw SSAnne5AfterBattleText1 ; TextAfterBattle
+ dw SSAnne5EndBattleText1 ; TextEndBattle
+ dw SSAnne5EndBattleText1 ; TextEndBattle
SSAnne5TrainerHeader1: ; 616dd (18:56dd)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_5_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd7ff ; flag's byte
- dw SSAnne5BattleText2 ; 0x571c TextBeforeBattle
- dw SSAnne5AfterBattleText2 ; 0x5726 TextAfterBattle
- dw SSAnne5EndBattleText2 ; 0x5721 TextEndBattle
- dw SSAnne5EndBattleText2 ; 0x5721 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_5_TRAINER_1
+ dw SSAnne5BattleText2 ; TextBeforeBattle
+ dw SSAnne5AfterBattleText2 ; TextAfterBattle
+ dw SSAnne5EndBattleText2 ; TextEndBattle
+ dw SSAnne5EndBattleText2 ; TextEndBattle
db $ff
@@ -53,7 +53,7 @@ SSAnne5Text3: ; 616f4 (18:56f4)
db "@"
SSAnne5Text4: ; 616f9 (18:56f9)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne5TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -71,7 +71,7 @@ SSAnne5AfterBattleText1: ; 6170d (18:570d)
db "@"
SSAnne5Text5: ; 61712 (18:5712)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne5TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/ssanne6.asm b/scripts/ssanne6.asm
index ded8e719..fbe8176d 100755
--- a/scripts/ssanne6.asm
+++ b/scripts/ssanne6.asm
@@ -36,22 +36,22 @@ SSAnne6Text6: ; 617de (18:57de)
db "@"
SSAnne6Text7: ; 617e3 (18:57e3)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne6Text_61807
call PrintText
ld a, [hRandomAdd]
bit 7, a
- jr z, .asm_93eb1 ; 0x617ee
+ jr z, .asm_93eb1
ld hl, SSAnne6Text_6180c
- jr .asm_63292 ; 0x617f3
-.asm_93eb1 ; 0x617f5
+ jr .asm_63292
+.asm_93eb1
bit 4, a
- jr z, .asm_7436c ; 0x617f7
+ jr z, .asm_7436c
ld hl, SSAnne6Text_61811
- jr .asm_63292 ; 0x617fc
-.asm_7436c ; 0x617fe
+ jr .asm_63292
+.asm_7436c
ld hl, SSAnne6Text_61816
-.asm_63292 ; 0x61801
+.asm_63292
call PrintText
jp TextScriptEnd
diff --git a/scripts/ssanne7.asm b/scripts/ssanne7.asm
index 1ca97ce2..911dac7f 100755
--- a/scripts/ssanne7.asm
+++ b/scripts/ssanne7.asm
@@ -3,8 +3,7 @@ SSAnne7Script: ; 61895 (18:5895)
jp EnableAutoTextBoxDrawing
SSAnne7Script_6189b: ; 6189b (18:589b)
- ld a, [wd803]
- bit 1, a
+ CheckEvent EVENT_RUBBED_CAPTAINS_BACK
ret nz
ld hl, wd72d
set 5, [hl]
@@ -16,57 +15,54 @@ SSAnne7TextPointers: ; 618a7 (18:58a7)
dw SSAnne7Text3
SSAnne7Text1: ; 618ad (18:58ad)
- db $08 ; asm
- ld a, [wd803]
- bit 0, a
- jr nz, .asm_797c4 ; 0x618b3
+ TX_ASM
+ CheckEvent EVENT_GOT_HM01
+ jr nz, .asm_797c4
ld hl, SSAnne7RubText
call PrintText
ld hl, ReceivingHM01Text
call PrintText
- ld bc, (HM_01 << 8) | 1
+ lb bc, HM_01, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedHM01Text
call PrintText
- ld hl, wd803
- set 0, [hl]
- jr .asm_0faf5 ; 0x618d4
+ SetEvent EVENT_GOT_HM01
+ jr .asm_0faf5
.BagFull
ld hl, HM01NoRoomText
call PrintText
ld hl, wd72d
set 5, [hl]
- jr .asm_0faf5 ; 0x618e1
-.asm_797c4 ; 0x618e3
+ jr .asm_0faf5
+.asm_797c4
ld hl, SSAnne7Text_61932
call PrintText
-.asm_0faf5 ; 0x618e9
+.asm_0faf5
jp TextScriptEnd
SSAnne7RubText: ; 618ec (18:58ec)
TX_FAR _SSAnne7RubText
- db $8
- ld a, [wc0ef]
- cp $1f
- ld [wc0f0], a
- jr nz, .asm_61908 ; 0x618f9 $d
+ TX_ASM
+ ld a, [wAudioROMBank]
+ cp BANK(Audio3_UpdateMusic)
+ ld [wAudioSavedROMBank], a
+ jr nz, .asm_61908
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
- ld a, Bank(Func_9876)
- ld [wc0ef], a
+ ld a, Bank(Music_PkmnHealed)
+ ld [wAudioROMBank], a
.asm_61908
ld a, MUSIC_PKMN_HEALED
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
.asm_61910
- ld a, [wc026]
+ ld a, [wChannelSoundIDs]
cp MUSIC_PKMN_HEALED
- jr z, .asm_61910 ; 0x61915 $f9
+ jr z, .asm_61910
call PlayDefaultMusic
- ld hl, wd803
- set 1, [hl]
+ SetEvent EVENT_RUBBED_CAPTAINS_BACK
ld hl, wd72d
res 5, [hl]
jp TextScriptEnd
diff --git a/scripts/ssanne8.asm b/scripts/ssanne8.asm
index ff7fc57b..195c9a81 100755
--- a/scripts/ssanne8.asm
+++ b/scripts/ssanne8.asm
@@ -22,75 +22,75 @@ SSAnne8TextPointers: ; 6198f (18:598f)
dw SSAnne8Text7
dw SSAnne8Text8
dw SSAnne8Text9
- dw Predef5CText
+ dw PickUpItemText
dw SSAnne8Text11
SSAnne8TrainerHeaders: ; 619a5 (18:59a5)
SSAnne8TrainerHeader0: ; 619a5 (18:59a5)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_8_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd805 ; flag's byte
- dw SSAnne8BattleText1 ; 0x5a0b TextBeforeBattle
- dw SSAnne8AfterBattleText1 ; 0x5a15 TextAfterBattle
- dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle
- dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_8_TRAINER_0
+ dw SSAnne8BattleText1 ; TextBeforeBattle
+ dw SSAnne8AfterBattleText1 ; TextAfterBattle
+ dw SSAnne8EndBattleText1 ; TextEndBattle
+ dw SSAnne8EndBattleText1 ; TextEndBattle
SSAnne8TrainerHeader1: ; 619b1 (18:59b1)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_8_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd805 ; flag's byte
- dw SSAnne8BattleText2 ; 0x5a1a TextBeforeBattle
- dw SSAnne8AfterBattleText2 ; 0x5a24 TextAfterBattle
- dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle
- dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_8_TRAINER_1
+ dw SSAnne8BattleText2 ; TextBeforeBattle
+ dw SSAnne8AfterBattleText2 ; TextAfterBattle
+ dw SSAnne8EndBattleText2 ; TextEndBattle
+ dw SSAnne8EndBattleText2 ; TextEndBattle
SSAnne8TrainerHeader2: ; 619bd (18:59bd)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_8_TRAINER_2
db ($2 << 4) ; trainer's view range
- dw wd805 ; flag's byte
- dw SSAnne8BattleText3 ; 0x5a29 TextBeforeBattle
- dw SSAnne8AfterBattleText3 ; 0x5a33 TextAfterBattle
- dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle
- dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_8_TRAINER_2
+ dw SSAnne8BattleText3 ; TextBeforeBattle
+ dw SSAnne8AfterBattleText3 ; TextAfterBattle
+ dw SSAnne8EndBattleText3 ; TextEndBattle
+ dw SSAnne8EndBattleText3 ; TextEndBattle
SSAnne8TrainerHeader3: ; 619c9 (18:59c9)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_8_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd805 ; flag's byte
- dw SSAnne8BattleText4 ; 0x5a38 TextBeforeBattle
- dw SSAnne8AfterBattleText4 ; 0x5a42 TextAfterBattle
- dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
- dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_8_TRAINER_3
+ dw SSAnne8BattleText4 ; TextBeforeBattle
+ dw SSAnne8AfterBattleText4 ; TextAfterBattle
+ dw SSAnne8EndBattleText4 ; TextEndBattle
+ dw SSAnne8EndBattleText4 ; TextEndBattle
db $ff
SSAnne8Text1: ; 619d6 (18:59d6)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne8TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SSAnne8Text2: ; 619e0 (18:59e0)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne8TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SSAnne8Text3: ; 619ea (18:59ea)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne8TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
SSAnne8Text4: ; 619f4 (18:59f4)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne8TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
SSAnne8Text8: ; 619fe (18:59fe)
TX_FAR _SSAnne8Text8
- db $08 ; asm
+ TX_ASM
ld a, WIGGLYTUFF
call PlayCry
jp TextScriptEnd
diff --git a/scripts/ssanne9.asm b/scripts/ssanne9.asm
index db34fcf2..525a2964 100755
--- a/scripts/ssanne9.asm
+++ b/scripts/ssanne9.asm
@@ -21,10 +21,10 @@ SSAnne9TextPointers: ; 61b6a (18:5b6a)
dw SSAnne9Text3
dw SSAnne9Text4
dw SSAnne9Text5
- dw Predef5CText
+ dw PickUpItemText
dw SSAnne9Text7
dw SSAnne9Text8
- dw Predef5CText
+ dw PickUpItemText
dw SSAnne9Text10
dw SSAnne9Text11
dw SSAnne9Text12
@@ -32,69 +32,69 @@ SSAnne9TextPointers: ; 61b6a (18:5b6a)
SSAnne9TrainerHeaders: ; 61b84 (18:5b84)
SSAnne9TrainerHeader0: ; 61b84 (18:5b84)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_9_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd807 ; flag's byte
- dw SSAnne9BattleText1 ; 0x5c51 TextBeforeBattle
- dw SSAnne9AfterBattleText1 ; 0x5c5b TextAfterBattle
- dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle
- dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_9_TRAINER_0
+ dw SSAnne9BattleText1 ; TextBeforeBattle
+ dw SSAnne9AfterBattleText1 ; TextAfterBattle
+ dw SSAnne9EndBattleText1 ; TextEndBattle
+ dw SSAnne9EndBattleText1 ; TextEndBattle
SSAnne9TrainerHeader1: ; 61b90 (18:5b90)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_9_TRAINER_1
db ($3 << 4) ; trainer's view range
- dw wd807 ; flag's byte
- dw SSAnne9BattleText2 ; 0x5c60 TextBeforeBattle
- dw SSAnne9AfterBattleText2 ; 0x5c6a TextAfterBattle
- dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle
- dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_9_TRAINER_1
+ dw SSAnne9BattleText2 ; TextBeforeBattle
+ dw SSAnne9AfterBattleText2 ; TextAfterBattle
+ dw SSAnne9EndBattleText2 ; TextEndBattle
+ dw SSAnne9EndBattleText2 ; TextEndBattle
SSAnne9TrainerHeader2: ; 61b9c (18:5b9c)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_9_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd807 ; flag's byte
- dw SSAnne9BattleText3 ; 0x5c6f TextBeforeBattle
- dw SSAnne9AfterBattleText3 ; 0x5c79 TextAfterBattle
- dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle
- dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_9_TRAINER_2
+ dw SSAnne9BattleText3 ; TextBeforeBattle
+ dw SSAnne9AfterBattleText3 ; TextAfterBattle
+ dw SSAnne9EndBattleText3 ; TextEndBattle
+ dw SSAnne9EndBattleText3 ; TextEndBattle
SSAnne9TrainerHeader3: ; 61ba8 (18:5ba8)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_SS_ANNE_9_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd807 ; flag's byte
- dw SSAnne9BattleText4 ; 0x5c7e TextBeforeBattle
- dw SSAnne9AfterBattleText4 ; 0x5c88 TextAfterBattle
- dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
- dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_SS_ANNE_9_TRAINER_3
+ dw SSAnne9BattleText4 ; TextBeforeBattle
+ dw SSAnne9AfterBattleText4 ; TextAfterBattle
+ dw SSAnne9EndBattleText4 ; TextEndBattle
+ dw SSAnne9EndBattleText4 ; TextEndBattle
db $ff
SSAnne9Text1: ; 61bb5 (18:5bb5)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SSAnne9Text2: ; 61bbf (18:5bbf)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SSAnne9Text3: ; 61bc9 (18:5bc9)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
SSAnne9Text4: ; 61bd3 (18:5bd3)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
SSAnne9Text5: ; 61bdd (18:5bdd)
- db $08 ; asm
+ TX_ASM
call SaveScreenTilesToBuffer1
ld hl, SSAnne9Text_61bf2
call PrintText
@@ -108,7 +108,7 @@ SSAnne9Text_61bf2: ; 61bf2 (18:5bf2)
db "@"
SSAnne9Text7: ; 61bf7 (18:5bf7)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9Text_61c01
call PrintText
jp TextScriptEnd
@@ -118,7 +118,7 @@ SSAnne9Text_61c01: ; 61c01 (18:5c01)
db "@"
SSAnne9Text8: ; 61c06 (18:5c06)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9Text_61c10
call PrintText
jp TextScriptEnd
@@ -128,7 +128,7 @@ SSAnne9Text_61c10: ; 61c10 (18:5c10)
db "@"
SSAnne9Text10: ; 61c15 (18:5c15)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9Text_61c1f
call PrintText
jp TextScriptEnd
@@ -138,7 +138,7 @@ SSAnne9Text_61c1f: ; 61c1f (18:5c1f)
db "@"
SSAnne9Text11: ; 61c24 (18:5c24)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9Text_61c2e
call PrintText
jp TextScriptEnd
@@ -148,7 +148,7 @@ SSAnne9Text_61c2e: ; 61c2e (18:5c2e)
db "@"
SSAnne9Text12: ; 61c33 (18:5c33)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9Text_61c3d
call PrintText
jp TextScriptEnd
@@ -158,7 +158,7 @@ SSAnne9Text_61c3d: ; 61c3d (18:5c3d)
db "@"
SSAnne9Text13: ; 61c42 (18:5c42)
- db $08 ; asm
+ TX_ASM
ld hl, SSAnne9Text_61c4c
call PrintText
jp TextScriptEnd
diff --git a/scripts/battlecenterm.asm b/scripts/tradecenter.asm
index 5ab697a1..22a61095 100755..100644
--- a/scripts/battlecenterm.asm
+++ b/scripts/tradecenter.asm
@@ -1,14 +1,14 @@
-BattleCenterMScript: ; 4fd10 (13:7d10)
+TradeCenterScript: ; 4fd10 (13:7d10)
call EnableAutoTextBoxDrawing
ld a, [$ffaa]
cp $2
- ld a, $8
- jr z, .asm_4fd1d ; 0x4fd19 $2
- ld a, $c
-.asm_4fd1d
- ld [$ff8d], a
+ ld a, SPRITE_FACING_LEFT
+ jr z, .next
+ ld a, SPRITE_FACING_RIGHT
+.next
+ ld [hSpriteFacingDirection], a
ld a, $1
- ld [$ff8c], a
+ ld [H_SPRITEINDEX], a
call SetSpriteFacingDirection
ld hl, wd72d
bit 0, [hl]
@@ -19,20 +19,20 @@ BattleCenterMScript: ; 4fd10 (13:7d10)
ld [hli], a
ld a, $a
ld [hl], a
- ld a, $8
+ ld a, SPRITE_FACING_LEFT
ld [wSpriteStateData1 + $19], a
ld a, [$ffaa]
cp $2
ret z
ld a, $7
ld [wSpriteStateData2 + $15], a
- ld a, $c
+ ld a, SPRITE_FACING_RIGHT
ld [wSpriteStateData1 + $19], a
ret
-BattleCenterMTextPointers: ; 4fd4c (13:7d4c)
- dw BattleCenterMText1
+TradeCenterTextPointers: ; 4fd4c (13:7d4c)
+ dw TradeCenterText1
-BattleCenterMText1: ; 4fd4e (13:7d4e)
- TX_FAR _BattleCenterMText1
+TradeCenterText1: ; 4fd4e (13:7d4e)
+ TX_FAR _TradeCenterText1
db "@"
diff --git a/scripts/tradecenterm.asm b/scripts/tradecenterm.asm
deleted file mode 100755
index 662a1df7..00000000
--- a/scripts/tradecenterm.asm
+++ /dev/null
@@ -1,9 +0,0 @@
-TradeCenterMScript: ; 4fd7d (13:7d7d)
- jp BattleCenterMScript
-
-TradeCenterMTextPointers: ; 4fd80 (13:7d80)
- dw TradeCenterMText1
-
-TradeCenterMText1: ; 4fd82 (13:7d82)
- TX_FAR _TradeCenterMText1
- db "@"
diff --git a/scripts/undergroundpathentranceroute5.asm b/scripts/undergroundpathentranceroute5.asm
index 03f1c35d..c93ab7b5 100755
--- a/scripts/undergroundpathentranceroute5.asm
+++ b/scripts/undergroundpathentranceroute5.asm
@@ -10,7 +10,7 @@ UndergroundPathEntranceRoute5TextPointers: ; 5d6b0 (17:56b0)
dw UndergroundPathEntranceRoute5Text1
UndergroundPathEntranceRoute5Text1: ; 5d6b2 (17:56b2)
- db $08 ; asm
+ TX_ASM
ld a, $9
ld [wWhichTrade], a
predef DoInGameTradeDialogue
diff --git a/scripts/undergroundpathentranceroute7copy.asm b/scripts/undergroundpathentranceroute7copy.asm
index 2462a254..d94c9f37 100755
--- a/scripts/undergroundpathentranceroute7copy.asm
+++ b/scripts/undergroundpathentranceroute7copy.asm
@@ -4,21 +4,21 @@ UndergroundPathEntranceRoute7CopyScript: ; 5d769 (17:5769)
ret
UndergroundPathEntranceRoute7CopyTextPointers: ; 5d76f (17:576f)
- dw UnnamedText_5d773
- dw UnnamedText_5d77d
+ dw UGPathRoute7EntranceUnusedText_5d773
+ dw UGPathRoute7EntranceUnusedText_5d77d
-UnnamedText_5d773: ; 5d773 (17:5773)
- TX_FAR _UnnamedText_5d773
+UGPathRoute7EntranceUnusedText_5d773: ; 5d773 (17:5773)
+ TX_FAR _UGPathRoute7EntranceUnusedText_5d773
db "@"
-UnnamedText_5d778: ; 5d778 (17:5778)
- TX_FAR _UnnamedText_5d778
+UGPathRoute7EntranceUnusedText_5d778: ; 5d778 (17:5778)
+ TX_FAR _UGPathRoute7EntranceUnusedText_5d778
db "@"
-UnnamedText_5d77d: ; 5d77d (17:577d)
- TX_FAR _UnnamedText_5d77d
+UGPathRoute7EntranceUnusedText_5d77d: ; 5d77d (17:577d)
+ TX_FAR _UGPathRoute7EntranceUnusedText_5d77d
db "@"
-UnnamedText_5d782: ; 5d782 (17:5782)
- TX_FAR _UnnamedText_5d782
+UGPathRoute7EntranceUnusedText_5d782: ; 5d782 (17:5782)
+ TX_FAR _UGPathRoute7EntranceUnusedText_5d782
db "@"
diff --git a/scripts/unknowndungeon1.asm b/scripts/unknowndungeon1.asm
index 008a7bd7..696ddafa 100755
--- a/scripts/unknowndungeon1.asm
+++ b/scripts/unknowndungeon1.asm
@@ -2,6 +2,6 @@ UnknownDungeon1Script: ; 74d0c (1d:4d0c)
jp EnableAutoTextBoxDrawing
UnknownDungeon1TextPointers: ; 74d0f (1d:4d0f)
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
diff --git a/scripts/unknowndungeon2.asm b/scripts/unknowndungeon2.asm
index c8249b27..f3cbb6a5 100755
--- a/scripts/unknowndungeon2.asm
+++ b/scripts/unknowndungeon2.asm
@@ -2,6 +2,6 @@ UnknownDungeon2Script: ; 45e0b (11:5e0b)
jp EnableAutoTextBoxDrawing
UnknownDungeon2TextPointers: ; 45e0e (11:5e0e)
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
diff --git a/scripts/unknowndungeon3.asm b/scripts/unknowndungeon3.asm
index d2078916..42459766 100755
--- a/scripts/unknowndungeon3.asm
+++ b/scripts/unknowndungeon3.asm
@@ -14,30 +14,30 @@ UnknownDungeon3ScriptPointers: ; 45f03 (11:5f03)
UnknownDungeon3TextPointers: ; 45f09 (11:5f09)
dw UnknownDungeon3Text1
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
UnknownDungeon3TrainerHeaders: ; 45f0f (11:5f0f)
UnknownDungeon3TrainerHeader0: ; 45f0f (11:5f0f)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_UNKNOWN_DUNGEON_3_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd85f ; flag's byte
- dw UnknownDungeon3MewtwoText ; 0x5f26 TextBeforeBattle
- dw UnknownDungeon3MewtwoText ; 0x5f26 TextAfterBattle
- dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
- dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_UNKNOWN_DUNGEON_3_TRAINER_0
+ dw UnknownDungeon3MewtwoText ; TextBeforeBattle
+ dw UnknownDungeon3MewtwoText ; TextAfterBattle
+ dw UnknownDungeon3MewtwoText ; TextEndBattle
+ dw UnknownDungeon3MewtwoText ; TextEndBattle
db $ff
UnknownDungeon3Text1: ; 45f1c (11:5f1c)
- db $08 ; asm
+ TX_ASM
ld hl, UnknownDungeon3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
UnknownDungeon3MewtwoText: ; 45f26 (11:5f26)
TX_FAR _UnknownDungeon3MewtwoText
- db $8
+ TX_ASM
ld a, MEWTWO
call PlayCry
call WaitForSoundToFinish
diff --git a/scripts/vermilioncity.asm b/scripts/vermilioncity.asm
index 1214b27c..a203323f 100755
--- a/scripts/vermilioncity.asm
+++ b/scripts/vermilioncity.asm
@@ -17,15 +17,14 @@ VermilionCityScript_197c0: ; 197c0 (6:57c0)
call Random
ld a, [$ffd4]
and $e
- ld [wd743], a
+ ld [wFirstLockTrashCanIndex], a
ret
VermilionCityScript_197cb: ; 197cb (6:57cb)
- ld hl, wd803
- bit 2, [hl]
+ CheckEventHL EVENT_SS_ANNE_LEFT
ret z
- bit 3, [hl]
- set 3, [hl]
+ CheckEventReuseHL EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
+ SetEventReuseHL EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
ret nz
ld a, $2
ld [W_VERMILIONCITYCURSCRIPT], a
@@ -40,7 +39,7 @@ VermilionCityScriptPointers: ; 197dc (6:57dc)
VermilionCityScript0: ; 197e6 (6:57e6)
ld a, [wSpriteStateData1 + 9]
- and a
+ and a ; cp SPRITE_FACING_DOWN
ret nz
ld hl, CoordsData_19823
call ArePlayerCoordsInArray
@@ -49,18 +48,17 @@ VermilionCityScript0: ; 197e6 (6:57e6)
ld [hJoyHeld], a
ld [wcf0d], a
ld a, $3
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld a, [wd803]
- bit 2, a
- jr nz, .asm_19810 ; 0x19804 $a
- ld b, $3f
- predef IsItemInBag_
+ CheckEvent EVENT_SS_ANNE_LEFT
+ jr nz, .asm_19810
+ ld b, S_S__TICKET
+ predef GetQuantityOfItemInBag
ld a, b
and a
ret nz
.asm_19810
- ld a, $40
+ ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -84,10 +82,10 @@ VermilionCityScript4: ; 19826 (6:5826)
VermilionCityScript2: ; 19833 (6:5833)
ld a, $ff
ld [wJoyIgnore], a
- ld a, $40
+ ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
- ld [wccd4], a
- ld a, $2
+ ld [wSimulatedJoypadStatesEnd + 1], a
+ ld a, 2
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, $3
@@ -109,7 +107,7 @@ VermilionCityScript1: ; 1985f (6:585f)
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
- ld c, $a
+ ld c, 10
call DelayFrames
ld a, $0
ld [W_VERMILIONCITYCURSCRIPT], a
@@ -135,17 +133,16 @@ VermilionCityText1: ; 19889 (6:5889)
db "@"
VermilionCityText2: ; 1988e (6:588e)
- db $08 ; asm
- ld a, [wd803]
- bit 2, a
- jr nz, .asm_359bd ; 0x19894
+ TX_ASM
+ CheckEvent EVENT_SS_ANNE_LEFT
+ jr nz, .asm_1989e
ld hl, VermilionCityText_198a7
call PrintText
- jr .asm_735d9 ; 0x1989c
-.asm_359bd ; 0x1989e
+ jr .asm_198a4
+.asm_1989e
ld hl, VermilionCityText_198ac
call PrintText
-.asm_735d9 ; 0x198a4
+.asm_198a4
jp TextScriptEnd
VermilionCityText_198a7: ; 198a7 (6:58a7)
@@ -157,41 +154,40 @@ VermilionCityText_198ac: ; 198ac (6:58ac)
db "@"
VermilionCityText3: ; 198b1 (6:58b1)
- db $08 ; asm
- ld a, [wd803]
- bit 2, a
- jr nz, .asm_3e0e9 ; 0x198b7
+ TX_ASM
+ CheckEvent EVENT_SS_ANNE_LEFT
+ jr nz, .asm_198f6
ld a, [wSpriteStateData1 + 9]
- cp $c
- jr z, .asm_07af3 ; 0x198be
+ cp SPRITE_FACING_RIGHT
+ jr z, .asm_198c8
ld hl, VermilionCityCoords1
call ArePlayerCoordsInArray
- jr nc, .asm_57b73 ; 0x198c6
-.asm_07af3 ; 0x198c8
+ jr nc, .asm_198d0
+.asm_198c8
ld hl, SSAnneWelcomeText4
call PrintText
- jr .asm_79bd1 ; 0x198ce
-.asm_57b73 ; 0x198d0
+ jr .asm_198fc
+.asm_198d0
ld hl, SSAnneWelcomeText9
call PrintText
ld b, S_S__TICKET
- predef IsItemInBag_
+ predef GetQuantityOfItemInBag
ld a, b
and a
- jr nz, .asm_0419b ; 0x198df
+ jr nz, .asm_198e9
ld hl, SSAnneNoTicketText
call PrintText
- jr .asm_79bd1 ; 0x198e7
-.asm_0419b ; 0x198e9
+ jr .asm_198fc
+.asm_198e9
ld hl, SSAnneFlashedTicketText
call PrintText
ld a, $4
ld [W_VERMILIONCITYCURSCRIPT], a
- jr .asm_79bd1 ; 0x198f4
-.asm_3e0e9 ; 0x198f6
+ jr .asm_198fc
+.asm_198f6
ld hl, SSAnneNotHereText
call PrintText
-.asm_79bd1 ; 0x198fc
+.asm_198fc
jp TextScriptEnd
VermilionCityCoords1: ; 198ff (6:58ff)
@@ -225,11 +221,11 @@ VermilionCityText4: ; 1991d (6:591d)
VermilionCityText5: ; 19922 (6:5922)
TX_FAR _VermilionCityText5
- db $08 ; asm
+ TX_ASM
ld a, MACHOP
call PlayCry
call WaitForSoundToFinish
- ld hl, VermilionCityText14 ; $5933
+ ld hl, VermilionCityText14
ret
VermilionCityText14: ; 19933 (6:5933)
diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm
index 7b23c41e..78ada7cf 100755
--- a/scripts/vermiliondock.asm
+++ b/scripts/vermiliondock.asm
@@ -1,21 +1,20 @@
VermilionDockScript: ; 1db52 (7:5b52)
call EnableAutoTextBoxDrawing
- ld hl, wd803
- bit 4, [hl]
- jr nz, .asm_1db8d ; 0x1db5a $31
- bit 0, [hl]
+ CheckEventHL EVENT_STARTED_WALKING_OUT_OF_DOCK
+ jr nz, .asm_1db8d
+ CheckEventReuseHL EVENT_GOT_HM01
ret z
ld a, [wDestinationWarpID]
cp $1
ret nz
- bit 2, [hl]
+ CheckEventReuseHL EVENT_SS_ANNE_LEFT
jp z, VermilionDock_1db9b
- set 4, [hl]
+ SetEventReuseHL EVENT_STARTED_WALKING_OUT_OF_DOCK
call Delay3
ld hl, wd730
set 7, [hl]
ld hl, wSimulatedJoypadStatesEnd
- ld a, $40
+ ld a, D_UP
ld [hli], a
ld [hli], a
ld [hl], a
@@ -28,20 +27,20 @@ VermilionDockScript: ; 1db52 (7:5b52)
ld [wJoyIgnore], a
ret
.asm_1db8d
- bit 5, [hl]
+ CheckEventAfterBranchReuseHL EVENT_WALKED_OUT_OF_DOCK, EVENT_STARTED_WALKING_OUT_OF_DOCK
ret nz
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
ld [wJoyIgnore], a
- set 5, [hl]
+ SetEventReuseHL EVENT_WALKED_OUT_OF_DOCK
ret
VermilionDock_1db9b: ; 1db9b (7:5b9b)
- set 2, [hl]
+ SetEventForceReuseHL EVENT_SS_ANNE_LEFT
ld a, $ff
ld [wJoyIgnore], a
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld c, BANK(Music_Surfing)
ld a, MUSIC_SURFING
@@ -49,30 +48,30 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b)
callba LoadSmokeTileFourTimes
xor a
ld [wSpriteStateData1 + 2], a
- ld c, $78
+ ld c, 120
call DelayFrames
ld b, $9c
call CopyScreenTileBufferToVRAM
- hlCoord 0, 10
- ld bc, $0078
- ld a, $14
+ coord hl, 0, 10
+ ld bc, SCREEN_WIDTH * 6
+ ld a, $14 ; water tile
call FillMemory
- ld a, $1
- ld [$ffba], a
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
xor a
- ld [$ffba], a
- ld [wWhichTrade], a
- ld [$ff49], a
- ld a, $58
- ld [wTrainerEngageDistance], a
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld [wSSAnneSmokeDriftAmount], a
+ ld [rOBP1], a
+ ld a, 88
+ ld [wSSAnneSmokeX], a
ld hl, wMapViewVRAMPointer
ld c, [hl]
inc hl
ld b, [hl]
push bc
push hl
- ld a, (SFX_02_54 - SFX_Headers_02) / 3
+ ld a, SFX_SS_ANNE_HORN
call PlaySoundWaitForCurrent
ld a, $ff
ld [wUpdateSpritesEnabled], a
@@ -88,26 +87,26 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b)
push hl
push de
call ScheduleEastColumnRedraw
- call VermilionDock_1dc59
+ call VermilionDock_EmitSmokePuff
pop de
ld b, $10
.asm_1dc11
- call VermilionDock_1dc42
+ call VermilionDock_AnimSmokePuffDriftRight
ld c, $8
.asm_1dc16
call VermilionDock_1dc7c
dec c
- jr nz, .asm_1dc16 ; 0x1dc1a $fa
+ jr nz, .asm_1dc16
inc d
dec b
- jr nz, .asm_1dc11 ; 0x1dc1e $f1
+ jr nz, .asm_1dc11
pop bc
dec e
- jr nz, .asm_1dbfa ; 0x1dc22 $d6
+ jr nz, .asm_1dbfa
xor a
- ld [$ff4a], a
+ ld [rWY], a
ld [hWY], a
- call VermilionDock_1dc94
+ call VermilionDock_EraseSSAnne
ld a, $90
ld [hWY], a
ld a, $1
@@ -122,33 +121,34 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b)
dec [hl]
ret
-VermilionDock_1dc42: ; 1dc42 (7:5c42)
+VermilionDock_AnimSmokePuffDriftRight: ; 1dc42 (7:5c42)
push bc
push de
ld hl, wOAMBuffer + $11
- ld a, [wWhichTrade]
+ ld a, [wSSAnneSmokeDriftAmount]
swap a
ld c, a
- ld de, $0004
-.asm_1dc50
+ ld de, 4
+.loop
inc [hl]
inc [hl]
add hl, de
dec c
- jr nz, .asm_1dc50 ; 0x1dc54 $fa
+ jr nz, .loop
pop de
pop bc
ret
-VermilionDock_1dc59: ; 1dc59 (7:5c59)
- ld a, [wTrainerEngageDistance]
- sub $10
- ld [wTrainerEngageDistance], a
+VermilionDock_EmitSmokePuff: ; 1dc59 (7:5c59)
+; new smoke puff above the S.S. Anne's front smokestack
+ ld a, [wSSAnneSmokeX]
+ sub 16
+ ld [wSSAnneSmokeX], a
ld c, a
- ld b, $64
- ld a, [wWhichTrade]
+ ld b, 100 ; Y
+ ld a, [wSSAnneSmokeDriftAmount]
inc a
- ld [wWhichTrade], a
+ ld [wSSAnneSmokeDriftAmount], a
ld a, $1
ld de, VermilionDockOAMBlock
call WriteOAMBlock
@@ -167,35 +167,43 @@ VermilionDock_1dc7c: ; 1dc7c (7:5c7c)
ld h, $0
ld l, $80
.asm_1dc86
- ld a, [$ff44]
+ ld a, [rLY]
cp l
- jr nz, .asm_1dc86 ; 0x1dc89 $fb
+ jr nz, .asm_1dc86
ld a, h
- ld [$ff43], a
+ ld [rSCX], a
.asm_1dc8e
- ld a, [$ff44]
+ ld a, [rLY]
cp h
- jr z, .asm_1dc8e ; 0x1dc91 $fb
+ jr z, .asm_1dc8e
ret
-VermilionDock_1dc94: ; 1dc94 (7:5c94)
- ld hl, wcc5b
- ld bc, $00b4
- ld a, $14
+VermilionDock_EraseSSAnne: ; 1dc94 (7:5c94)
+; Fill the area the S.S. Anne occupies in BG map 0 with water tiles.
+ ld hl, wVermilionDockTileMapBuffer
+ ld bc, (5 * BG_MAP_WIDTH) + SCREEN_WIDTH
+ ld a, $14 ; water tile
call FillMemory
- ld hl, vBGMap0 + 10 * 32
- ld de, wcc5b
- ld bc, $000c
+ ld hl, vBGMap0 + 10 * BG_MAP_WIDTH
+ ld de, wVermilionDockTileMapBuffer
+ ld bc, (6 * BG_MAP_WIDTH) / 16
call CopyVideoData
- ld hl, wOverworldMap + 10 + 7 * VERMILION_DOCK_WIDTH ; 10, 7
- ld a, $d
+
+; Replace the blocks of the lower half of the ship with water blocks. This
+; leaves the upper half alone, but that doesn't matter because replacing any of
+; the blocks is unnecessary because the blocks the ship occupies are south of
+; the player and won't be redrawn when the player automatically walks north and
+; exits the map. This code could be removed without affecting anything.
+ overworldMapCoord hl, 5, 2, VERMILION_DOCK_WIDTH
+ ld a, $d ; water block
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld a, (SFX_02_54 - SFX_Headers_02) / 3
+
+ ld a, SFX_SS_ANNE_HORN
call PlaySound
- ld c, $78
+ ld c, 120
call DelayFrames
ret
diff --git a/scripts/vermiliongym.asm b/scripts/vermiliongym.asm
index 6178dafb..78a38aec 100755
--- a/scripts/vermiliongym.asm
+++ b/scripts/vermiliongym.asm
@@ -17,8 +17,8 @@ VermilionGymScript: ; 5ca26 (17:4a26)
ret
VermilionGymScript_5ca4c: ; 5ca4c (17:4a4c)
- ld hl, Gym3CityName ; $4a55
- ld de, Gym3LeaderName ; $4a64
+ ld hl, Gym3CityName
+ ld de, Gym3LeaderName
jp LoadGymLeaderAndCityName
Gym3CityName: ; 5ca55 (17:4a55)
@@ -28,18 +28,17 @@ Gym3LeaderName: ; 5ca64 (17:4a64)
db "LT.SURGE@"
VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d)
- ld a, [wd773]
- bit 0, a
+ CheckEvent EVENT_2ND_LOCK_OPENED
jr nz, .asm_5ca78
ld a, $24
jr .asm_5ca7f
.asm_5ca78
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
ld a, $5
.asm_5ca7f
- ld [wd09f], a
- ld bc, $202
+ ld [wNewTileBlockID], a
+ lb bc, 2, 2
predef_jump ReplaceTileBlock
VermilionGymScript_5ca8a: ; 5ca8a (17:4a8a)
@@ -56,7 +55,7 @@ VermilionGymScriptPointers: ; 5ca95 (17:4a95)
dw VermilionGymScript3
VermilionGymScript3: ; 5ca9d (17:4a9d)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, VermilionGymScript_5ca8a
ld a, $f0
@@ -64,33 +63,29 @@ VermilionGymScript3: ; 5ca9d (17:4a9d)
VermilionGymScript_5caaa: ; 5caaa (17:4aaa)
ld a, $6
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd773
- set 7, [hl]
- ld bc, (TM_24 << 8) | 1
+ SetEvent EVENT_BEAT_LT_SURGE
+ lb bc, TM_24, 1
call GiveItem
jr nc, .BagFull
ld a, $7
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd773
- set 6, [hl]
+ SetEvent EVENT_GOT_TM24
jr .asm_5cad3
.BagFull
ld a, $8
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_5cad3
ld hl, W_OBTAINEDBADGES
set 2, [hl]
- ld hl, wd72a
+ ld hl, wBeatGymFlags
set 2, [hl]
; deactivate gym trainers
- ld a, [wd773]
- or %00011100
- ld [wd773], a
+ SetEventRange EVENT_BEAT_VERMILION_GYM_TRAINER_0, EVENT_BEAT_VERMILION_GYM_TRAINER_2
jp VermilionGymScript_5ca8a
@@ -106,49 +101,48 @@ VermilionGymTextPointers: ; 5cae8 (17:4ae8)
VermilionGymTrainerHeaders: ; 5caf8 (17:4af8)
VermilionGymTrainerHeader0: ; 5caf8 (17:4af8)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_0
db ($3 << 4) ; trainer's view range
- dw wd773 ; flag's byte
- dw VermilionGymBattleText1 ; 0x4b9a TextBeforeBattle
- dw VermilionGymAfterBattleText1 ; 0x4ba4 TextAfterBattle
- dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle
- dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_0
+ dw VermilionGymBattleText1 ; TextBeforeBattle
+ dw VermilionGymAfterBattleText1 ; TextAfterBattle
+ dw VermilionGymEndBattleText1 ; TextEndBattle
+ dw VermilionGymEndBattleText1 ; TextEndBattle
VermilionGymTrainerHeader1: ; 5cb04 (17:4b04)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_1
db ($2 << 4) ; trainer's view range
- dw wd773 ; flag's byte
- dw VermilionGymBattleText2 ; 0x4bb3 TextBeforeBattle
- dw VermilionGymAfterBattleText2 ; 0x4bbd TextAfterBattle
- dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle
- dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_1
+ dw VermilionGymBattleText2 ; TextBeforeBattle
+ dw VermilionGymAfterBattleText2 ; TextAfterBattle
+ dw VermilionGymEndBattleText2 ; TextEndBattle
+ dw VermilionGymEndBattleText2 ; TextEndBattle
VermilionGymTrainerHeader2: ; 5cb10 (17:4b10)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd773 ; flag's byte
- dw VermilionGymBattleText3 ; 0x4bcc TextBeforeBattle
- dw VermilionGymAfterBattleText3 ; 0x4bd6 TextAfterBattle
- dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
- dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_2
+ dw VermilionGymBattleText3 ; TextBeforeBattle
+ dw VermilionGymAfterBattleText3 ; TextAfterBattle
+ dw VermilionGymEndBattleText3 ; TextEndBattle
+ dw VermilionGymEndBattleText3 ; TextEndBattle
db $ff
VermilionGymText1: ; 5cb1d (17:4b1d)
- db $08 ; asm
- ld a, [wd773]
- bit 7, a
- jr z, .asm_7cc29 ; 0x5cb23
- bit 6, a
- jr nz, .asm_41203 ; 0x5cb27
+ TX_ASM
+ CheckEvent EVENT_BEAT_LT_SURGE
+ jr z, .asm_5cb39
+ CheckEventReuseA EVENT_GOT_TM24
+ jr nz, .asm_5cb31
call z, VermilionGymScript_5caaa
call DisableWaitingAfterTextDisplay
- jr .asm_23621 ; 0x5cb2f
-.asm_41203 ; 0x5cb31
+ jr .asm_5cb6a
+.asm_5cb31
ld hl, VermilionGymText_5cb72
call PrintText
- jr .asm_23621 ; 0x5cb37
-.asm_7cc29 ; 0x5cb39
+ jr .asm_5cb6a
+.asm_5cb39
ld hl, VermilionGymText_5cb6d
call PrintText
ld hl, wd72d
@@ -157,18 +151,18 @@ VermilionGymText1: ; 5cb1d (17:4b1d)
ld hl, ReceivedThunderbadgeText
ld de, ReceivedThunderbadgeText
call SaveEndBattleTextPointers
- ldh a, [$8c]
+ ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
ld [W_GYMLEADERNO], a
xor a
- ldh [$b4], a
+ ld [hJoyHeld], a
ld a, $3
ld [W_VERMILIONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
-.asm_23621 ; 0x5cb6a
+.asm_5cb6a
jp TextScriptEnd
VermilionGymText_5cb6d: ; 5cb6d (17:4b6d)
@@ -198,7 +192,7 @@ ReceivedThunderbadgeText: ; 5cb8b (17:4b8b)
db "@"
VermilionGymText2: ; 5cb90 (17:4b90)
- db $08 ; asm
+ TX_ASM
ld hl, VermilionGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -216,7 +210,7 @@ VermilionGymAfterBattleText1: ; 5cba4 (17:4ba4)
db "@"
VermilionGymText3: ; 5cba9 (17:4ba9)
- db $08 ; asm
+ TX_ASM
ld hl, VermilionGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -234,7 +228,7 @@ VermilionGymAfterBattleText2: ; 5cbbd (17:4bbd)
db "@"
VermilionGymText4: ; 5cbc2 (17:4bc2)
- db $08 ; asm
+ TX_ASM
ld hl, VermilionGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -252,17 +246,17 @@ VermilionGymAfterBattleText3: ; 5cbd6 (17:4bd6)
db "@"
VermilionGymText5: ; 5cbdb (17:4bdb)
- db $08 ; asm
- ld a, [wd72a]
+ TX_ASM
+ ld a, [wBeatGymFlags]
bit 2, a
- jr nz, .asm_13b67 ; 0x5cbe1
+ jr nz, .asm_5cbeb
ld hl, VermilionGymText_5cbf4
call PrintText
- jr .asm_c2b38 ; 0x5cbe9
-.asm_13b67 ; 0x5cbeb
+ jr .asm_5cbf1
+.asm_5cbeb
ld hl, VermilionGymText_5cbf9
call PrintText
-.asm_c2b38 ; 0x5cbf1
+.asm_5cbf1
jp TextScriptEnd
VermilionGymText_5cbf4: ; 5cbf4 (17:4bf4)
diff --git a/scripts/vermilionhouse1.asm b/scripts/vermilionhouse1.asm
index 4ead1af7..bfb3da5f 100755
--- a/scripts/vermilionhouse1.asm
+++ b/scripts/vermilionhouse1.asm
@@ -13,7 +13,7 @@ VermilionHouse1Text1: ; 1db06 (7:5b06)
VermilionHouse1Text2: ; 1db0b (7:5b0b)
TX_FAR _VermilionHouse1Text2
- db $08 ; asm
+ TX_ASM
ld a, PIDGEY
call PlayCry
call WaitForSoundToFinish
diff --git a/scripts/vermilionhouse2.asm b/scripts/vermilionhouse2.asm
index 7c06c6e9..f166ebb8 100755
--- a/scripts/vermilionhouse2.asm
+++ b/scripts/vermilionhouse2.asm
@@ -5,7 +5,7 @@ VermilionHouse2TextPointers: ; 56073 (15:6073)
dw VermilionHouse2Text1
VermilionHouse2Text1: ; 56075 (15:6075)
- db $08 ; asm
+ TX_ASM
ld a, [wd728]
bit 3, a
jr nz, .asm_03ef5
@@ -15,7 +15,7 @@ VermilionHouse2Text1: ; 56075 (15:6075)
ld a, [wCurrentMenuItem]
and a
jr nz, .asm_eb1b7
- ld bc, (OLD_ROD << 8) | 1
+ lb bc, OLD_ROD, 1
call GiveItem
jr nc, .BagFull
ld hl, wd728
@@ -39,9 +39,9 @@ VermilionHouse2Text_560b1: ; 560b1 (15:60b1)
db "@"
VermilionHouse2Text_560b6: ; 560b6 (15:60b6)
- TX_FAR _VermilionHouse2Text_560b6 ; 0x9c554
+ TX_FAR _VermilionHouse2Text_560b6
db $0B
- TX_FAR _VermilionHouse2Text_560bb ; 0x9c5a4
+ TX_FAR _VermilionHouse2Text_560bb
db "@"
VermilionHouse2Text_560c0: ; 560c0 (15:60c0)
diff --git a/scripts/vermilionhouse3.asm b/scripts/vermilionhouse3.asm
index 08e2e395..478979da 100755
--- a/scripts/vermilionhouse3.asm
+++ b/scripts/vermilionhouse3.asm
@@ -5,7 +5,7 @@ VermilionHouse3TextPointers: ; 19c15 (6:5c15)
dw VermilionHouse3Text1
VermilionHouse3Text1: ; 19c17 (6:5c17)
- db $08 ; asm
+ TX_ASM
ld a, $4
ld [wWhichTrade], a
predef DoInGameTradeDialogue
diff --git a/scripts/victoryroad1.asm b/scripts/victoryroad1.asm
index b6d2bf3e..11f5d5db 100755
--- a/scripts/victoryroad1.asm
+++ b/scripts/victoryroad1.asm
@@ -11,12 +11,11 @@ VictoryRoad1Script: ; 5da0a (17:5a0a)
ld [W_VICTORYROAD1CURSCRIPT], a
ret
.next
- ld a, [wd869]
- bit 7, a
+ CheckEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
ret z
ld a, $1d
- ld [wd09f], a
- ld bc, $604
+ ld [wNewTileBlockID], a
+ lb bc, 6, 4
predef_jump ReplaceTileBlock
VictoryRoad1ScriptPointers: ; 5da3a (17:5a3a)
@@ -25,16 +24,14 @@ VictoryRoad1ScriptPointers: ; 5da3a (17:5a3a)
dw EndTrainerBattle
VictoryRoad1Script0: ; 5da40 (17:5a40)
- ld a, [wd869]
- bit 7, a
+ CheckEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
jp nz, CheckFightingMapTrainers
- ld hl, CoordsData_5da5c ; $5a5c
+ ld hl, CoordsData_5da5c
call CheckBoulderCoords
jp nc, CheckFightingMapTrainers
ld hl, wd126
set 5, [hl]
- ld hl, wd869
- set 7, [hl]
+ SetEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
ret
CoordsData_5da5c: ; 5da5c (17:5a5c)
@@ -43,41 +40,41 @@ CoordsData_5da5c: ; 5da5c (17:5a5c)
VictoryRoad1TextPointers: ; 5da5f (17:5a5f)
dw VictoryRoad1Text1
dw VictoryRoad1Text2
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw BoulderText
dw BoulderText
dw BoulderText
VictoryRoad1TrainerHeaders: ; 5da6d (17:5a6d)
VictoryRoad1TrainerHeader0: ; 5da6d (17:5a6d)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0
db ($2 << 4) ; trainer's view range
- dw wd869 ; flag's byte
- dw VictoryRoad1BattleText1 ; 0x5a9a TextBeforeBattle
- dw VictoryRoad1AfterBattleText1 ; 0x5aa4 TextAfterBattle
- dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle
- dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0
+ dw VictoryRoad1BattleText1 ; TextBeforeBattle
+ dw VictoryRoad1AfterBattleText1 ; TextAfterBattle
+ dw VictoryRoad1EndBattleText1 ; TextEndBattle
+ dw VictoryRoad1EndBattleText1 ; TextEndBattle
VictoryRoad1TrainerHeader1: ; 5da79 (17:5a79)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1
db ($2 << 4) ; trainer's view range
- dw wd869 ; flag's byte
- dw VictoryRoad1BattleText2 ; 0x5aa9 TextBeforeBattle
- dw VictoryRoad1AfterBattleText2 ; 0x5ab3 TextAfterBattle
- dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
- dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1
+ dw VictoryRoad1BattleText2 ; TextBeforeBattle
+ dw VictoryRoad1AfterBattleText2 ; TextAfterBattle
+ dw VictoryRoad1EndBattleText2 ; TextEndBattle
+ dw VictoryRoad1EndBattleText2 ; TextEndBattle
db $ff
VictoryRoad1Text1: ; 5da86 (17:5a86)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad1TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
VictoryRoad1Text2: ; 5da90 (17:5a90)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad1TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/victoryroad2.asm b/scripts/victoryroad2.asm
index 4aab61ca..cb956b1c 100755
--- a/scripts/victoryroad2.asm
+++ b/scripts/victoryroad2.asm
@@ -16,26 +16,24 @@ VictoryRoad2Script: ; 5179d (14:579d)
ret
VictoryRoad2Script_517c4: ; 517c4 (14:57c4)
- ld hl, wd869
- res 7, [hl]
+ ResetEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
VictoryRoad2Script_517c9: ; 517c9 (14:57c9)
- ld a, [wd7ee]
- bit 0, a
+ CheckEvent EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1
jr z, .asm_517da
push af
ld a, $15
- ld bc, $403
+ lb bc, 4, 3
call VictoryRoad2Script_517e2
pop af
.asm_517da
bit 7, a
ret z
ld a, $1d
- ld bc, $70b
+ lb bc, 7, 11
VictoryRoad2Script_517e2: ; 517e2 (14:57e2)
- ld [wd09f], a
+ ld [wNewTileBlockID], a
predef ReplaceTileBlock
ret
@@ -45,20 +43,20 @@ VictoryRoad2ScriptPointers: ; 517eb (14:57eb)
dw EndTrainerBattle
VictoryRoad2Script0: ; 517f1 (14:57f1)
- ld hl, CoordsData_51816 ; $5816
+ ld hl, CoordsData_51816
call CheckBoulderCoords
jp nc, CheckFightingMapTrainers
- ld hl, wd7ee
- ld a, [wWhichTrade] ; wWhichTrade
+ EventFlagAddress hl, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1
+ ld a, [wCoordIndex]
cp $2
jr z, .asm_5180b
- bit 0, [hl]
- set 0, [hl]
+ CheckEventReuseHL EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1
+ SetEventReuseHL EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1
ret nz
jr .asm_51810
.asm_5180b
- bit 7, [hl]
- set 7, [hl]
+ CheckEventAfterBranchReuseHL EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1
+ SetEventReuseHL EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2
ret nz
.asm_51810
ld hl, wd126
@@ -77,110 +75,110 @@ VictoryRoad2TextPointers: ; 5181b (14:581b)
dw VictoryRoad2Text4
dw VictoryRoad2Text5
dw VictoryRoad2Text6
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw BoulderText
dw BoulderText
dw BoulderText
VictoryRoad2TrainerHeaders: ; 51835 (14:5835)
VictoryRoad2TrainerHeader0: ; 51835 (14:5835)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7ee ; flag's byte
- dw VictoryRoad2BattleText1 ; 0x58ca TextBeforeBattle
- dw VictoryRoad2AfterBattleText1 ; 0x58d4 TextAfterBattle
- dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle
- dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0
+ dw VictoryRoad2BattleText1 ; TextBeforeBattle
+ dw VictoryRoad2AfterBattleText1 ; TextAfterBattle
+ dw VictoryRoad2EndBattleText1 ; TextEndBattle
+ dw VictoryRoad2EndBattleText1 ; TextEndBattle
VictoryRoad2TrainerHeader2: ; 51841 (14:5841)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_2
db ($3 << 4) ; trainer's view range
- dw wd7ee ; flag's byte
- dw VictoryRoad2BattleText2 ; 0x58d9 TextBeforeBattle
- dw VictoryRoad2AfterBattleText2 ; 0x58e3 TextAfterBattle
- dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle
- dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_2
+ dw VictoryRoad2BattleText2 ; TextBeforeBattle
+ dw VictoryRoad2AfterBattleText2 ; TextAfterBattle
+ dw VictoryRoad2EndBattleText2 ; TextEndBattle
+ dw VictoryRoad2EndBattleText2 ; TextEndBattle
VictoryRoad2TrainerHeader3: ; 5184d (14:584d)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_3
db ($3 << 4) ; trainer's view range
- dw wd7ee ; flag's byte
- dw VictoryRoad2BattleText3 ; 0x58e8 TextBeforeBattle
- dw VictoryRoad2AfterBattleText3 ; 0x58f2 TextAfterBattle
- dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle
- dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_3
+ dw VictoryRoad2BattleText3 ; TextBeforeBattle
+ dw VictoryRoad2AfterBattleText3 ; TextAfterBattle
+ dw VictoryRoad2EndBattleText3 ; TextEndBattle
+ dw VictoryRoad2EndBattleText3 ; TextEndBattle
VictoryRoad2TrainerHeader4: ; 51859 (14:5859)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4
db ($1 << 4) ; trainer's view range
- dw wd7ee ; flag's byte
- dw VictoryRoad2BattleText4 ; 0x58f7 TextBeforeBattle
- dw VictoryRoad2AfterBattleText4 ; 0x5901 TextAfterBattle
- dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle
- dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4
+ dw VictoryRoad2BattleText4 ; TextBeforeBattle
+ dw VictoryRoad2AfterBattleText4 ; TextAfterBattle
+ dw VictoryRoad2EndBattleText4 ; TextEndBattle
+ dw VictoryRoad2EndBattleText4 ; TextEndBattle
VictoryRoad2TrainerHeader5: ; 51865 (14:5865)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_5
db ($3 << 4) ; trainer's view range
- dw wd7ee ; flag's byte
- dw VictoryRoad2BattleText5 ; 0x5906 TextBeforeBattle
- dw VictoryRoad2AfterBattleText5 ; 0x5910 TextAfterBattle
- dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle
- dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_5
+ dw VictoryRoad2BattleText5 ; TextBeforeBattle
+ dw VictoryRoad2AfterBattleText5 ; TextAfterBattle
+ dw VictoryRoad2EndBattleText5 ; TextEndBattle
+ dw VictoryRoad2EndBattleText5 ; TextEndBattle
VictoryRoad2TrainerHeader6: ; 51871 (14:5871)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_6
db ($0 << 4) ; trainer's view range
- dw wd7ee ; flag's byte
- dw VictoryRoad2BattleText6 ; 0x58ba TextBeforeBattle
- dw VictoryRoad2BattleText6 ; 0x58ba TextAfterBattle
- dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
- dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_6
+ dw VictoryRoad2BattleText6 ; TextBeforeBattle
+ dw VictoryRoad2BattleText6 ; TextAfterBattle
+ dw VictoryRoad2BattleText6 ; TextEndBattle
+ dw VictoryRoad2BattleText6 ; TextEndBattle
db $ff
VictoryRoad2Text1: ; 5187e (14:587e)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad2TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
VictoryRoad2Text2: ; 51888 (14:5888)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad2TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
VictoryRoad2Text3: ; 51892 (14:5892)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad2TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
VictoryRoad2Text4: ; 5189c (14:589c)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad2TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
VictoryRoad2Text5: ; 518a6 (14:58a6)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad2TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
VictoryRoad2Text6: ; 518b0 (14:58b0)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad2TrainerHeader6
call TalkToTrainer
jp TextScriptEnd
VictoryRoad2BattleText6: ; 518ba (14:58ba)
TX_FAR _VictoryRoad2BattleText6
- db $8
+ TX_ASM
ld a, MOLTRES
call PlayCry
call WaitForSoundToFinish
diff --git a/scripts/victoryroad3.asm b/scripts/victoryroad3.asm
index 01269a3f..22e6813a 100755
--- a/scripts/victoryroad3.asm
+++ b/scripts/victoryroad3.asm
@@ -13,12 +13,11 @@ VictoryRoad3Script_44996: ; 44996 (11:4996)
bit 5, [hl]
res 5, [hl]
ret z
- ld hl, wd813
- bit 0, [hl]
+ CheckEventHL EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1
ret z
ld a, $1d
- ld [wd09f], a
- ld bc, $503
+ ld [wNewTileBlockID], a
+ lb bc, 5, 3
predef_jump ReplaceTileBlock
VictoryRoad3ScriptPointers: ; 449b1 (11:49b1)
@@ -31,27 +30,24 @@ VictoryRoad3Script0: ; 449b7 (11:49b7)
bit 7, [hl]
res 7, [hl]
jp z, .asm_449fe
- ld hl, .coordsData_449f9 ; $49f9
+ ld hl, .coordsData_449f9
call CheckBoulderCoords
jp nc, .asm_449fe
- ld a, [wWhichTrade] ; wWhichTrade
+ ld a, [wCoordIndex]
cp $1
jr nz, .asm_449dc
ld hl, wd126
set 5, [hl]
- ld hl, wd813
- set 0, [hl]
+ SetEvent EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1
ret
.asm_449dc
- ld hl, wd813
- bit 6, [hl]
- set 6, [hl]
+ CheckAndSetEvent EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
jr nz, .asm_449fe
ld a, HS_VICTORY_ROAD_3_BOULDER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_VICTORY_ROAD_2_BOULDER
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef_jump ShowObject
.coordsData_449f9: ; 449f9 (11:49f9)
@@ -60,11 +56,11 @@ VictoryRoad3Script0: ; 449b7 (11:49b7)
db $FF
.asm_449fe
- ld a, $c2
+ ld a, VICTORY_ROAD_2
ld [wDungeonWarpDestinationMap], a
- ld hl, .coordsData_449f9 ; $49f9
- call Func_46981
- ld a, [wWhichTrade] ; wWhichTrade
+ ld hl, .coordsData_449f9
+ call IsPlayerOnDungeonWarp
+ ld a, [wCoordIndex]
cp $1
jr nz, .asm_44a1b
ld hl, wd72d
@@ -83,8 +79,8 @@ VictoryRoad3TextPointers: ; 44a24 (11:4a24)
dw VictoryRoad3Text2
dw VictoryRoad3Text3
dw VictoryRoad3Text4
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
dw BoulderText
dw BoulderText
dw BoulderText
@@ -92,63 +88,63 @@ VictoryRoad3TextPointers: ; 44a24 (11:4a24)
VictoryRoad3TrainerHeaders: ; 44a38 (11:4a38)
VictoryRoad3TrainerHeader0: ; 44a38 (11:4a38)
- db $1 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0
db ($1 << 4) ; trainer's view range
- dw wd813 ; flag's byte
- dw VictoryRoad3BattleText2 ; 0x4a91 TextBeforeBattle
- dw VictoryRoad3AfterBattleText2 ; 0x4a9b TextAfterBattle
- dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle
- dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0
+ dw VictoryRoad3BattleText2 ; TextBeforeBattle
+ dw VictoryRoad3AfterBattleText2 ; TextAfterBattle
+ dw VictoryRoad3EndBattleText2 ; TextEndBattle
+ dw VictoryRoad3EndBattleText2 ; TextEndBattle
VictoryRoad3TrainerHeader2: ; 44a44 (11:4a44)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd813 ; flag's byte
- dw VictoryRoad3BattleText3 ; 0x4aa0 TextBeforeBattle
- dw VictoryRoad3AfterBattleText3 ; 0x4aaa TextAfterBattle
- dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle
- dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2
+ dw VictoryRoad3BattleText3 ; TextBeforeBattle
+ dw VictoryRoad3AfterBattleText3 ; TextAfterBattle
+ dw VictoryRoad3EndBattleText3 ; TextEndBattle
+ dw VictoryRoad3EndBattleText3 ; TextEndBattle
VictoryRoad3TrainerHeader3: ; 44a50 (11:4a50)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3
db ($4 << 4) ; trainer's view range
- dw wd813 ; flag's byte
- dw VictoryRoad3BattleText4 ; 0x4aaf TextBeforeBattle
- dw VictoryRoad3AfterBattleText4 ; 0x4ab9 TextAfterBattle
- dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle
- dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3
+ dw VictoryRoad3BattleText4 ; TextBeforeBattle
+ dw VictoryRoad3AfterBattleText4 ; TextAfterBattle
+ dw VictoryRoad3EndBattleText4 ; TextEndBattle
+ dw VictoryRoad3EndBattleText4 ; TextEndBattle
VictoryRoad3TrainerHeader4: ; 44a5c (11:4a5c)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_3_TRAINER_4
db ($4 << 4) ; trainer's view range
- dw wd813 ; flag's byte
- dw VictoryRoad3BattleText5 ; 0x4abe TextBeforeBattle
- dw VictoryRoad3AfterBattleText5 ; 0x4ac8 TextAfterBattle
- dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
- dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_3_TRAINER_4
+ dw VictoryRoad3BattleText5 ; TextBeforeBattle
+ dw VictoryRoad3AfterBattleText5 ; TextAfterBattle
+ dw VictoryRoad3EndBattleText5 ; TextEndBattle
+ dw VictoryRoad3EndBattleText5 ; TextEndBattle
db $ff
VictoryRoad3Text1: ; 44a69 (11:4a69)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
VictoryRoad3Text2: ; 44a73 (11:4a73)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad3TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
VictoryRoad3Text3: ; 44a7d (11:4a7d)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad3TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
VictoryRoad3Text4: ; 44a87 (11:4a87)
- db $08 ; asm
+ TX_ASM
ld hl, VictoryRoad3TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/viridiancity.asm b/scripts/viridiancity.asm
index d0b2b4ae..79ad444f 100755
--- a/scripts/viridiancity.asm
+++ b/scripts/viridiancity.asm
@@ -15,14 +15,12 @@ ViridianCityScript0: ; 19005 (6:5005)
jp ViridianCityScript_1903d
ViridianCityScript_1900b: ; 1900b (6:500b)
- ld a, [wd74c]
- bit 0, a
+ CheckEvent EVENT_VIRIDIAN_GYM_OPEN
ret nz
ld a, [W_OBTAINEDBADGES]
cp %01111111
- jr nz, .asm_1901e ; 0x19016 $6
- ld hl, wd74c
- set 0, [hl]
+ jr nz, .asm_1901e
+ SetEvent EVENT_VIRIDIAN_GYM_OPEN
ret
.asm_1901e
ld a, [W_YCOORD]
@@ -32,7 +30,7 @@ ViridianCityScript_1900b: ; 1900b (6:500b)
cp $20
ret nz
ld a, $e
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [hJoyHeld], a
@@ -42,8 +40,7 @@ ViridianCityScript_1900b: ; 1900b (6:500b)
ret
ViridianCityScript_1903d: ; 1903d (6:503d)
- ld a, [wd74b]
- bit 5, a
+ CheckEvent EVENT_GOT_POKEDEX
ret nz
ld a, [W_YCOORD]
cp $9
@@ -52,7 +49,7 @@ ViridianCityScript_1903d: ; 1903d (6:503d)
cp $13
ret nz
ld a, $5
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [hJoyHeld], a
@@ -98,7 +95,7 @@ ViridianCityScript2: ; 1908f (6:508f)
xor a
ld [wJoyIgnore], a
ld a, $f
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [W_BATTLETYPE], a
@@ -120,7 +117,7 @@ ViridianCityScript_190cf: ; 190cf (6:50cf)
call StartSimulatingJoypadStates
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $80
+ ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpriteStateData1 + 9], a
@@ -149,16 +146,15 @@ ViridianCityText1: ; 19102 (6:5102)
db "@"
ViridianCityText2: ; 19107 (6:5107)
- db $08 ; asm
+ TX_ASM
ld a, [W_OBTAINEDBADGES]
cp %01111111
ld hl, ViridianCityText_19127
- jr z, .asm_ae9fe ; 0x19110
- ld a, [wd751]
- bit 1, a
- jr nz, .asm_ae9fe ; 0x19117
+ jr z, .asm_ae9fe
+ CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
+ jr nz, .asm_ae9fe
ld hl, ViridianCityText_19122
-.asm_ae9fe ; 0x1911c
+.asm_ae9fe
call PrintText
jp TextScriptEnd
@@ -171,20 +167,20 @@ ViridianCityText_19127: ; 19127 (6:5127)
db "@"
ViridianCityText3: ; 1912c (6:512c)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianCityText_1914d
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_6dfea ; 0x1913a
+ jr nz, .asm_6dfea
ld hl, ViridianCityText_19157
call PrintText
- jr .asm_d611f ; 0x19142
-.asm_6dfea ; 0x19144
+ jr .asm_d611f
+.asm_6dfea
ld hl, ViridianCityText_19152
call PrintText
-.asm_d611f ; 0x1914a
+.asm_d611f
jp TextScriptEnd
ViridianCityText_1914d: ; 1914d (6:514d)
@@ -200,17 +196,16 @@ ViridianCityText_19157: ; 19157 (6:5157)
db "@"
ViridianCityText4: ; 1915c (6:515c)
- db $08 ; asm
- ld a, [wd74b]
- bit 5, a
- jr nz, .asm_83894 ; 0x19162
+ TX_ASM
+ CheckEvent EVENT_GOT_POKEDEX
+ jr nz, .asm_83894
ld hl, ViridianCityText_19175
call PrintText
- jr .asm_700a6 ; 0x1916a
-.asm_83894 ; 0x1916c
+ jr .asm_700a6
+.asm_83894
ld hl, ViridianCityText_1917a
call PrintText
-.asm_700a6 ; 0x19172
+.asm_700a6
jp TextScriptEnd
ViridianCityText_19175: ; 19175 (6:5175)
@@ -222,7 +217,7 @@ ViridianCityText_1917a: ; 1917a (6:517a)
db "@"
ViridianCityText5: ; 1917f (6:517f)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianCityText_19191
call PrintText
call ViridianCityScript_190cf
@@ -235,28 +230,26 @@ ViridianCityText_19191: ; 19191 (6:5191)
db "@"
ViridianCityText6: ; 19196 (6:5196)
- db $08 ; asm
- ld a, [wd74c]
- bit 1, a
- jr nz, .asm_4e5a0 ; 0x1919c
+ TX_ASM
+ CheckEvent EVENT_GOT_TM42
+ jr nz, .asm_4e5a0
ld hl, ViridianCityText_191ca
call PrintText
- ld bc, (TM_42 << 8) | 1
+ lb bc, TM_42, 1
call GiveItem
jr nc, .BagFull
ld hl, ReceivedTM42Text
call PrintText
- ld hl, wd74c
- set 1, [hl]
- jr .asm_3c73c ; 0x191b7
+ SetEvent EVENT_GOT_TM42
+ jr .asm_3c73c
.BagFull
ld hl, TM42NoRoomText
call PrintText
- jr .asm_3c73c ; 0x191bf
-.asm_4e5a0 ; 0x191c1
+ jr .asm_3c73c
+.asm_4e5a0
ld hl, TM42Explanation
call PrintText
-.asm_3c73c ; 0x191c7
+.asm_3c73c
jp TextScriptEnd
ViridianCityText_191ca: ; 191ca (6:51ca)
@@ -276,24 +269,24 @@ TM42NoRoomText: ; 191da (6:51da)
db "@"
ViridianCityText7: ; 191df (6:51df)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianCityText_1920a
call PrintText
- ld c, $2
+ ld c, 2
call DelayFrames
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
- jr z, .asm_42f68 ; 0x191f2
+ jr z, .asm_42f68
ld hl, ViridianCityText_1920f
call PrintText
ld a, $1
ld [W_VIRIDIANCITYCURSCRIPT], a
- jr .asm_2413a ; 0x191ff
-.asm_42f68 ; 0x19201
+ jr .asm_2413a
+.asm_42f68
ld hl, ViridianCityText_19214
call PrintText
-.asm_2413a ; 0x19207
+.asm_2413a
jp TextScriptEnd
ViridianCityText_1920a: ; 1920a (6:520a)
diff --git a/scripts/viridianforest.asm b/scripts/viridianforest.asm
index 4ec1c0aa..892eeef2 100755
--- a/scripts/viridianforest.asm
+++ b/scripts/viridianforest.asm
@@ -17,9 +17,9 @@ ViridianForestTextPointers: ; 61126 (18:5126)
dw ViridianForestText2
dw ViridianForestText3
dw ViridianForestText4
- dw Predef5CText
- dw Predef5CText
- dw Predef5CText
+ dw PickUpItemText
+ dw PickUpItemText
+ dw PickUpItemText
dw ViridianForestText8
dw ViridianForestText9
dw ViridianForestText10
@@ -30,31 +30,31 @@ ViridianForestTextPointers: ; 61126 (18:5126)
ViridianForestTrainerHeaders: ; 61142 (18:5142)
ViridianForestTrainerHeader0: ; 61142 (18:5142)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd7f3 ; flag's byte
- dw ViridianForestBattleText1 ; 0x518a TextBeforeBattle
- dw ViridianForestAfterBattleText1 ; 0x5194 TextAfterBattle
- dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle
- dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0
+ dw ViridianForestBattleText1 ; TextBeforeBattle
+ dw ViridianForestAfterBattleText1 ; TextAfterBattle
+ dw ViridianForestEndBattleText1 ; TextEndBattle
+ dw ViridianForestEndBattleText1 ; TextEndBattle
ViridianForestTrainerHeader1: ; 6114e (18:514e)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd7f3 ; flag's byte
- dw ViridianForestBattleText2 ; 0x5199 TextBeforeBattle
- dw ViridianForestAfterBattleText2 ; 0x51a3 TextAfterBattle
- dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle
- dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1
+ dw ViridianForestBattleText2 ; TextBeforeBattle
+ dw ViridianForestAfterBattleText2 ; TextAfterBattle
+ dw ViridianForestEndBattleText2 ; TextEndBattle
+ dw ViridianForestEndBattleText2 ; TextEndBattle
ViridianForestTrainerHeader2: ; 6115a (18:515a)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2
db ($1 << 4) ; trainer's view range
- dw wd7f3 ; flag's byte
- dw ViridianForestBattleText3 ; 0x51a8 TextBeforeBattle
- dw ViridianForestAfterBattleText3 ; 0x51b2 TextAfterBattle
- dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
- dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2
+ dw ViridianForestBattleText3 ; TextBeforeBattle
+ dw ViridianForestAfterBattleText3 ; TextAfterBattle
+ dw ViridianForestEndBattleText3 ; TextEndBattle
+ dw ViridianForestEndBattleText3 ; TextEndBattle
db $ff
@@ -63,19 +63,19 @@ ViridianForestText1: ; 61167 (18:5167)
db "@"
ViridianForestText2: ; 6116c (18:516c)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianForestTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
ViridianForestText3: ; 61176 (18:5176)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianForestTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
ViridianForestText4: ; 61180 (18:5180)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianForestTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
diff --git a/scripts/viridiangym.asm b/scripts/viridiangym.asm
index 6ced7d82..6cded55d 100755
--- a/scripts/viridiangym.asm
+++ b/scripts/viridiangym.asm
@@ -30,9 +30,9 @@ ViridianGymScriptPointers: ; 748e1 (1d:48e1)
dw ViridianGymScript4
ViridianGymScript0: ; 748eb (1d:48eb)
- ld a, [W_YCOORD] ; wd361
+ ld a, [W_YCOORD]
ld b, a
- ld a, [W_XCOORD] ; wd362
+ ld a, [W_XCOORD]
ld c, a
ld hl, ViridianGymArrowTilePlayerMovement
call DecodeArrowMovementRLE
@@ -41,7 +41,7 @@ ViridianGymScript0: ; 748eb (1d:48eb)
call StartSimulatingJoypadStates
ld hl, wd736
set 7, [hl]
- ld a, (SFX_02_52 - SFX_Headers_02) / 3
+ ld a, SFX_ARROW_TILES
call PlaySound
ld a, $ff
ld [wJoyIgnore], a
@@ -80,45 +80,41 @@ ViridianGymArrowTilePlayerMovement: ; 74916 (1d:4916)
db $FF
;format: direction, count
-;right: $10
-;left: $20
-;up: $40
-;down: $80
ViridianGymArrowMovement1: ; 74947 (1d:4947)
- db $40,$09,$FF
+ db D_UP,$09,$FF
ViridianGymArrowMovement2: ; 7494a (1d:494a)
- db $20,$08,$FF
+ db D_LEFT,$08,$FF
ViridianGymArrowMovement3: ; 7494d (1d:494d)
- db $80,$09,$FF
+ db D_DOWN,$09,$FF
ViridianGymArrowMovement4: ; 74950 (1d:4950)
- db $10,$06,$FF
+ db D_RIGHT,$06,$FF
ViridianGymArrowMovement5: ; 74953 (1d:4953)
- db $80,$02,$FF
+ db D_DOWN,$02,$FF
ViridianGymArrowMovement6: ; 74956 (1d:4956)
- db $80,$07,$FF
+ db D_DOWN,$07,$FF
ViridianGymArrowMovement7: ; 74959 (1d:4959)
- db $10,$08,$FF
+ db D_RIGHT,$08,$FF
ViridianGymArrowMovement8: ; 7495c (1d:495c)
- db $10,$09,$FF
+ db D_RIGHT,$09,$FF
ViridianGymArrowMovement9: ; 7495f (1d:495f)
- db $40,$08,$FF
+ db D_UP,$08,$FF
ViridianGymArrowMovement10: ; 74962 (1d:4962)
- db $40,$06,$FF
+ db D_UP,$06,$FF
ViridianGymArrowMovement11: ; 74965 (1d:4965)
- db $20,$06,$FF
+ db D_LEFT,$06,$FF
ViridianGymArrowMovement12: ; 74968 (1d:4968)
- db $20,$0C,$FF
+ db D_LEFT,$0C,$FF
ViridianGymScript4: ; 7496b (1d:496b)
ld a, [wSimulatedJoypadStatesIndex]
@@ -132,55 +128,44 @@ ViridianGymScript4: ; 7496b (1d:496b)
ld [W_CURMAPSCRIPT], a
ret
.asm_74980
- ld b, BANK(LoadSpinnerArrowTiles)
- ld hl, LoadSpinnerArrowTiles
- jp Bankswitch
+ jpba LoadSpinnerArrowTiles
ViridianGymScript3: ; 74988 (1d:4988)
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [W_ISINBATTLE]
cp $ff
jp z, ViridianGymScript_748d6
ld a, $f0
ld [wJoyIgnore], a
ViridianGymScript3_74995: ; 74995 (1d:4995)
ld a, $c
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd751
- set 1, [hl]
- ld bc, (TM_27 << 8) | 1
+ SetEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
+ lb bc, TM_27, 1
call GiveItem
jr nc, .BagFull
ld a, $d
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd751
- set 0, [hl]
+ SetEvent EVENT_GOT_TM27
jr .asm_749be
.BagFull
ld a, $e
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_749be
ld hl, W_OBTAINEDBADGES
set 7, [hl]
- ld hl, wd72a
+ ld hl, wBeatGymFlags
set 7, [hl]
; deactivate gym trainers
- ld a, [wd751]
- or %11111100
- ld [wd751], a
- ld a, [wd752]
- or %00000011
- ld [wd752], a
+ SetEventRange EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0, EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7
ld a, HS_ROUTE_22_RIVAL_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
- ld hl, wd7eb
- set 1, [hl]
- set 7, [hl]
+ SetEvents EVENT_2ND_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
jp ViridianGymScript_748d6
ViridianGymTextPointers: ; 749ec (1d:49ec)
@@ -194,110 +179,109 @@ ViridianGymTextPointers: ; 749ec (1d:49ec)
dw ViridianGymText8
dw ViridianGymText9
dw ViridianGymText10
- dw Predef5CText
+ dw PickUpItemText
dw ViridianGymText12
dw ViridianGymText13
dw ViridianGymText14
ViridianGymTrainerHeaders: ; 74a08 (1d:4a08)
ViridianGymTrainerHeader0: ; 74a08 (1d:4a08)
- db $2 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0
db ($4 << 4) ; trainer's view range
- dw wd751 ; flag's byte
- dw ViridianGymBattleText1 ; 0x4afd TextBeforeBattle
- dw ViridianGymAfterBattleText1 ; 0x4b07 TextAfterBattle
- dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle
- dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0
+ dw ViridianGymBattleText1 ; TextBeforeBattle
+ dw ViridianGymAfterBattleText1 ; TextAfterBattle
+ dw ViridianGymEndBattleText1 ; TextEndBattle
+ dw ViridianGymEndBattleText1 ; TextEndBattle
ViridianGymTrainerHeader1: ; 74a14 (1d:4a14)
- db $3 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1
db ($4 << 4) ; trainer's view range
- dw wd751 ; flag's byte
- dw ViridianGymBattleText2 ; 0x4b16 TextBeforeBattle
- dw ViridianGymAfterBattleText2 ; 0x4b20 TextAfterBattle
- dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle
- dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1
+ dw ViridianGymBattleText2 ; TextBeforeBattle
+ dw ViridianGymAfterBattleText2 ; TextAfterBattle
+ dw ViridianGymEndBattleText2 ; TextEndBattle
+ dw ViridianGymEndBattleText2 ; TextEndBattle
ViridianGymTrainerHeader2: ; 74a20 (1d:4a20)
- db $4 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2
db ($4 << 4) ; trainer's view range
- dw wd751 ; flag's byte
- dw ViridianGymBattleText3 ; 0x4b2f TextBeforeBattle
- dw ViridianGymAfterBattleText3 ; 0x4b39 TextAfterBattle
- dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle
- dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2
+ dw ViridianGymBattleText3 ; TextBeforeBattle
+ dw ViridianGymAfterBattleText3 ; TextAfterBattle
+ dw ViridianGymEndBattleText3 ; TextEndBattle
+ dw ViridianGymEndBattleText3 ; TextEndBattle
ViridianGymTrainerHeader3: ; 74a2c (1d:4a2c)
- db $5 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3
db ($2 << 4) ; trainer's view range
- dw wd751 ; flag's byte
- dw ViridianGymBattleText4 ; 0x4b48 TextBeforeBattle
- dw ViridianGymAfterBattleText4 ; 0x4b52 TextAfterBattle
- dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle
- dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3
+ dw ViridianGymBattleText4 ; TextBeforeBattle
+ dw ViridianGymAfterBattleText4 ; TextAfterBattle
+ dw ViridianGymEndBattleText4 ; TextEndBattle
+ dw ViridianGymEndBattleText4 ; TextEndBattle
ViridianGymTrainerHeader4: ; 74a38 (1d:4a38)
- db $6 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4
db ($3 << 4) ; trainer's view range
- dw wd751 ; flag's byte
- dw ViridianGymBattleText5 ; 0x4b61 TextBeforeBattle
- dw ViridianGymAfterBattleText5 ; 0x4b6b TextAfterBattle
- dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle
- dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4
+ dw ViridianGymBattleText5 ; TextBeforeBattle
+ dw ViridianGymAfterBattleText5 ; TextAfterBattle
+ dw ViridianGymEndBattleText5 ; TextEndBattle
+ dw ViridianGymEndBattleText5 ; TextEndBattle
ViridianGymTrainerHeader5: ; 74a44 (1d:4a44)
- db $7 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5
db ($4 << 4) ; trainer's view range
- dw wd751 ; flag's byte
- dw ViridianGymBattleText6 ; 0x4b7a TextBeforeBattle
- dw ViridianGymAfterBattleText6 ; 0x4b84 TextAfterBattle
- dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle
- dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5
+ dw ViridianGymBattleText6 ; TextBeforeBattle
+ dw ViridianGymAfterBattleText6 ; TextAfterBattle
+ dw ViridianGymEndBattleText6 ; TextEndBattle
+ dw ViridianGymEndBattleText6 ; TextEndBattle
ViridianGymTrainerHeader6: ; 74a50 (1d:4a50)
- db $8 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6, 1
db ($3 << 4) ; trainer's view range
- dw wd751 ; flag's byte
- dw ViridianGymBattleText7 ; 0x4b93 TextBeforeBattle
- dw ViridianGymAfterBattleText7 ; 0x4b9d TextAfterBattle
- dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle
- dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6, 1
+ dw ViridianGymBattleText7 ; TextBeforeBattle
+ dw ViridianGymAfterBattleText7 ; TextAfterBattle
+ dw ViridianGymEndBattleText7 ; TextEndBattle
+ dw ViridianGymEndBattleText7 ; TextEndBattle
ViridianGymTrainerHeader7: ; 74a5c (1d:4a5c)
- db $9 ; flag's bit
+ dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7, 1
db ($4 << 4) ; trainer's view range
- dw wd751 ; flag's byte
- dw ViridianGymBattleText8 ; 0x4bac TextBeforeBattle
- dw ViridianGymAfterBattleText8 ; 0x4bb6 TextAfterBattle
- dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
- dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7, 1
+ dw ViridianGymBattleText8 ; TextBeforeBattle
+ dw ViridianGymAfterBattleText8 ; TextAfterBattle
+ dw ViridianGymEndBattleText8 ; TextEndBattle
+ dw ViridianGymEndBattleText8 ; TextEndBattle
db $ff
ViridianGymText1: ; 74a69 (1d:4a69)
- db $08 ; asm
- ld a, [wd751]
- bit 1, a
- jr z, .asm_6de66 ; 0x74a6f
- bit 0, a
- jr nz, .asm_9fc95 ; 0x74a73
+ TX_ASM
+ CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
+ jr z, .asm_6de66
+ CheckEventReuseA EVENT_GOT_TM27
+ jr nz, .asm_9fc95
call z, ViridianGymScript3_74995
call DisableWaitingAfterTextDisplay
- jr .asm_6dff7 ; 0x74a7b
-.asm_9fc95 ; 0x74a7d
+ jr .asm_6dff7
+.asm_9fc95
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, ViridianGymText_74ad9
call PrintText
call GBFadeOutToBlack
ld a, HS_VIRIDIAN_GYM_GIOVANNI
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call UpdateSprites
call Delay3
call GBFadeInFromBlack
- jr .asm_6dff7 ; 0x74a9e
-.asm_6de66 ; 0x74aa0
+ jr .asm_6dff7
+.asm_6de66
ld hl, ViridianGymText_74ace
call PrintText
ld hl, wd72d
@@ -306,7 +290,7 @@ ViridianGymText1: ; 74a69 (1d:4a69)
ld hl, ViridianGymText_74ad3
ld de, ViridianGymText_74ad3
call SaveEndBattleTextPointers
- ldh a, [$8c]
+ ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -314,7 +298,7 @@ ViridianGymText1: ; 74a69 (1d:4a69)
ld [W_GYMLEADERNO], a
ld a, $3
ld [W_VIRIDIANGYMCURSCRIPT], a
-.asm_6dff7 ; 0x74acb
+.asm_6dff7
jp TextScriptEnd
ViridianGymText_74ace: ; 74ace (1d:4ace)
@@ -346,7 +330,7 @@ ViridianGymText14: ; 74aee (1d:4aee)
db "@"
ViridianGymText2: ; 74af3 (1d:4af3)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
@@ -364,7 +348,7 @@ ViridianGymAfterBattleText1: ; 74b07 (1d:4b07)
db "@"
ViridianGymText3: ; 74b0c (1d:4b0c)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
@@ -382,7 +366,7 @@ ViridianGymAfterBattleText2: ; 74b20 (1d:4b20)
db "@"
ViridianGymText4: ; 74b25 (1d:4b25)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
@@ -400,7 +384,7 @@ ViridianGymAfterBattleText3: ; 74b39 (1d:4b39)
db "@"
ViridianGymText5: ; 74b3e (1d:4b3e)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianGymTrainerHeader3
call TalkToTrainer
jp TextScriptEnd
@@ -418,7 +402,7 @@ ViridianGymAfterBattleText4: ; 74b52 (1d:4b52)
db "@"
ViridianGymText6: ; 74b57 (1d:4b57)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianGymTrainerHeader4
call TalkToTrainer
jp TextScriptEnd
@@ -436,7 +420,7 @@ ViridianGymAfterBattleText5: ; 74b6b (1d:4b6b)
db "@"
ViridianGymText7: ; 74b70 (1d:4b70)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianGymTrainerHeader5
call TalkToTrainer
jp TextScriptEnd
@@ -454,7 +438,7 @@ ViridianGymAfterBattleText6: ; 74b84 (1d:4b84)
db "@"
ViridianGymText8: ; 74b89 (1d:4b89)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianGymTrainerHeader6
call TalkToTrainer
jp TextScriptEnd
@@ -472,7 +456,7 @@ ViridianGymAfterBattleText7: ; 74b9d (1d:4b9d)
db "@"
ViridianGymText9: ; 74ba2 (1d:4ba2)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianGymTrainerHeader7
call TalkToTrainer
jp TextScriptEnd
@@ -490,17 +474,16 @@ ViridianGymAfterBattleText8: ; 74bb6 (1d:4bb6)
db "@"
ViridianGymText10: ; 74bbb (1d:4bbb)
- db $08 ; asm
- ld a, [wd751]
- bit 1, a
- jr nz, .asm_1abd1 ; 0x74bc1
+ TX_ASM
+ CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
+ jr nz, .asm_1abd1
ld hl, ViridianGymText_74bd4
call PrintText
- jr .asm_6064d ; 0x74bc9
-.asm_1abd1 ; 0x74bcb
+ jr .asm_6064d
+.asm_1abd1
ld hl, ViridianGymText_74bd9
call PrintText
-.asm_6064d ; 0x74bd1
+.asm_6064d
jp TextScriptEnd
ViridianGymText_74bd4: ; 74bd4 (1d:4bd4)
diff --git a/scripts/viridianhouse.asm b/scripts/viridianhouse.asm
index ab8b6786..61920489 100755
--- a/scripts/viridianhouse.asm
+++ b/scripts/viridianhouse.asm
@@ -16,7 +16,7 @@ ViridianHouseText2: ; 1d59a (7:559a)
db "@"
ViridianHouseText3: ; 1d59f (7:559f)
- db $08 ; asm
+ TX_ASM
ld hl, ViridianHouseText_1d5b1
call PrintText
ld a, SPEAROW
diff --git a/scripts/viridianmart.asm b/scripts/viridianmart.asm
index d33dfe81..5cb6eaea 100755
--- a/scripts/viridianmart.asm
+++ b/scripts/viridianmart.asm
@@ -6,13 +6,12 @@ ViridianMartScript: ; 1d46e (7:546e)
jp CallFunctionInTable
ViridianMartScript_1d47d: ; 1d47d (7:547d)
- ld a, [wd74e]
- bit 0, a
- jr nz, .asm_1d489 ; 0x1d482 $5
- ld hl, ViridianMartTextPointers ; $54e0
- jr .asm_1d48c ; 0x1d487 $3
+ CheckEvent EVENT_OAK_GOT_PARCEL
+ jr nz, .asm_1d489
+ ld hl, ViridianMartTextPointers
+ jr .asm_1d48c
.asm_1d489
- ld hl, ViridianMartTextPointers + $a ; $54ea ; starts at ViridianMartText6
+ ld hl, ViridianMartTextPointers + $a ; starts at ViridianMartText6
.asm_1d48c
ld a, l
ld [W_MAPTEXTPTR], a
@@ -28,7 +27,7 @@ ViridianMartScriptPointers: ; 1d495 (7:5495)
ViridianMartScript0: ; 1d49b (7:549b)
call UpdateSprites
ld a, $4
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld hl, wSimulatedJoypadStatesEnd
ld de, RLEMovement1d4bb
@@ -41,8 +40,8 @@ ViridianMartScript0: ; 1d49b (7:549b)
ret
RLEMovement1d4bb: ; 1d4bb (7:54bb)
- db $20, $01
- db $40, $02
+ db D_LEFT, $01
+ db D_UP, $02
db $ff
ViridianMartScript1: ; 1d4c0 (7:54c0)
@@ -51,12 +50,11 @@ ViridianMartScript1: ; 1d4c0 (7:54c0)
ret nz
call Delay3
ld a, $5
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld bc, (OAKS_PARCEL << 8) + 1
+ lb bc, OAKS_PARCEL, 1
call GiveItem
- ld hl, wd74e
- set 1, [hl]
+ SetEvent EVENT_GOT_OAKS_PARCEL
ld a, $2
ld [W_VIRIDIANMARKETCURSCRIPT], a
; fallthrough
diff --git a/sram.asm b/sram.asm
index 76321c43..9f49d9ca 100644
--- a/sram.asm
+++ b/sram.asm
@@ -6,29 +6,40 @@ S_SPRITEBUFFER2:: ds SPRITEBUFFERSIZE ; a310
ds $100
-sHallOfFame:: ds HOF_TEAM * NUM_HOF_TEAMS ; a598
+sHallOfFame:: ds HOF_TEAM * HOF_TEAM_CAPACITY ; a598
-SECTION "Save Data", SRAM, BANK[1]
SECTION "Save Data", SRAM, BANK[1]
ds $598
-S_SAVEDPLAYERNAME:: ds 11 ; a598
-S_SAVEDMAINDATA:: ds W_NUMINBOX - wPokedexOwned ; a5a3
-S_SAVEDSPRITEDATA:: ds wOAMBuffer - wSpriteStateData1 ; ad2c
-S_SAVEDPARTYDATA:: ds wPokedexOwned - wPartyCount ; af2c
-S_SAVEDCURBOXDATA:: ds wBoxMonNicksEnd - W_NUMINBOX ; b0c0
-S_SAVEDhTilesetType:: ds 1 ; b522
-S_SAVEDMAINDATACHECKSUM:: ds 1 ; b523
-
-SECTION "Saved Boxes", SRAM, BANK[2] ; pointers used for bank 3 too
-
-S_BOXLENGTH EQU $462
-
-S_SAVEDBOX1:: ds S_BOXLENGTH ; a000
-S_SAVEDBOX2:: ds S_BOXLENGTH ; a462
-S_SAVEDBOX3:: ds S_BOXLENGTH ; a8c4
-S_SAVEDBOX4:: ds S_BOXLENGTH ; ad26
-S_SAVEDBOX5:: ds S_BOXLENGTH ; b188
-S_SAVEDBOX6:: ds S_BOXLENGTH ; b5ea
-S_SAVEDBOXESCHECKSUM:: ds 1 ; ba4c
-S_SAVEDBOXESCHECKSUM2:: ds 6 ; ba4d
+
+sPlayerName:: ds NAME_LENGTH ; a598
+sMainData:: ds wMainDataEnd - wMainDataStart ; a5a3
+sSpriteData:: ds wSpriteDataEnd - wSpriteDataStart ; ad2c
+sPartyData:: ds wPartyDataEnd - wPartyDataStart ; af2c
+sCurBoxData:: ds wBoxDataEnd - wBoxDataStart ; b0c0
+sTilesetType:: ds 1 ; b522
+sMainDataCheckSum:: ds 1 ; b523
+
+
+SECTION "Saved Boxes 1", SRAM, BANK[2]
+
+sBox1:: ds wBoxDataEnd - wBoxDataStart ; a000
+sBox2:: ds wBoxDataEnd - wBoxDataStart ; a462
+sBox3:: ds wBoxDataEnd - wBoxDataStart ; a8c4
+sBox4:: ds wBoxDataEnd - wBoxDataStart ; ad26
+sBox5:: ds wBoxDataEnd - wBoxDataStart ; b188
+sBox6:: ds wBoxDataEnd - wBoxDataStart ; b5ea
+sBank2AllBoxesChecksum:: ds 1 ; ba4c
+sBank2IndividualBoxChecksums:: ds 6 ; ba4d
+
+
+SECTION "Saved Boxes 2", SRAM, BANK[3]
+
+sBox7:: ds wBoxDataEnd - wBoxDataStart ; a000
+sBox8:: ds wBoxDataEnd - wBoxDataStart ; a462
+sBox9:: ds wBoxDataEnd - wBoxDataStart ; a8c4
+sBox10:: ds wBoxDataEnd - wBoxDataStart ; ad26
+sBox11:: ds wBoxDataEnd - wBoxDataStart ; b188
+sBox12:: ds wBoxDataEnd - wBoxDataStart ; b5ea
+sBank3AllBoxesChecksum:: ds 1 ; ba4c
+sBank3IndividualBoxChecksums:: ds 6 ; ba4d
diff --git a/text.asm b/text.asm
index 9d7789d2..8dae662f 100644
--- a/text.asm
+++ b/text.asm
@@ -91,19 +91,19 @@ _OaksAideHiText::
cont "AIDE!"
para "If you caught @"
- TX_NUM $ffdb, 1, 3
+ TX_NUM hOaksAideRequirement, 1, 3
db $0
line "kinds of #MON,"
cont "I'm supposed to"
cont "give you an"
cont "@"
- TX_RAM wcc5b
+ TX_RAM wOaksAideRewardItemName
text "!"
para "So, ", $52, "! Have"
line "you caught at"
cont "least @"
- TX_NUM $ffdb, 1, 3
+ TX_NUM hOaksAideRequirement, 1, 3
text " kinds of"
cont "#MON?"
done
@@ -112,16 +112,16 @@ _OaksAideUhOhText::
text "Let's see..."
line "Uh-oh! You have"
cont "caught only @"
- TX_NUM $ffdd, 1, 3
+ TX_NUM hOaksAideNumMonsOwned, 1, 3
db $0
cont "kinds of #MON!"
para "You need @"
- TX_NUM $ffdb, 1, 3
+ TX_NUM hOaksAideRequirement, 1, 3
text " kinds"
line "if you want the"
cont "@"
- TX_RAM wcc5b
+ TX_RAM wOaksAideRewardItemName
text "."
done
@@ -129,18 +129,18 @@ _OaksAideComeBackText::
text "Oh. I see."
para "When you get @"
- TX_NUM $ffdb, 1, 3
+ TX_NUM hOaksAideRequirement, 1, 3
db $0
line "kinds, come back"
cont "for @"
- TX_RAM wcc5b
+ TX_RAM wOaksAideRewardItemName
text "."
done
_OaksAideHereYouGoText::
text "Great! You have"
line "caught @"
- TX_NUM $ffdd, 1, 3
+ TX_NUM hOaksAideNumMonsOwned, 1, 3
text " kinds "
cont "of #MON!"
cont "Congratulations!"
@@ -151,7 +151,7 @@ _OaksAideHereYouGoText::
_OaksAideGotItemText::
text $52, " got the"
line "@"
- TX_RAM wcc5b
+ TX_RAM wOaksAideRewardItemName
text "!@@"
_OaksAideNoRoomText::
@@ -159,7 +159,7 @@ _OaksAideNoRoomText::
line "don't have any"
cont "room for the"
cont "@"
- TX_RAM wcc5b
+ TX_RAM wOaksAideRewardItemName
text "."
done
@@ -361,10 +361,10 @@ _YeahText::
_DexSeenOwnedText::
text "#DEX Seen:@"
- TX_NUM wcc5b, 1, 3
+ TX_NUM wDexRatingNumMonsSeen, 1, 3
db $0
line " Owned:@"
- TX_NUM wcc5c, 1, 3
+ TX_NUM wDexRatingNumMonsOwned, 1, 3
db "@"
_DexRatingText::
@@ -1480,8 +1480,9 @@ _WithExpAllText::
_BoostedText::
text "a boosted"
cont "@@"
+
_ExpPointsText::
- TX_NUM wcf4b, 2, 4
+ TX_NUM wExpAmountGained, 2, 4
text " EXP. Points!"
prompt
@@ -2692,7 +2693,7 @@ _PokemartAnythingElseText::
done
_LearnedMove1Text::
- TX_RAM wd036
+ TX_RAM wLearnMoveMonName
text " learned"
line "@"
TX_RAM wcf4b
@@ -2711,7 +2712,7 @@ _AbandonLearningText::
done
_DidNotLearnText::
- TX_RAM wd036
+ TX_RAM wLearnMoveMonName
db $0
line "did not learn"
cont "@"
@@ -2720,7 +2721,7 @@ _DidNotLearnText::
prompt
_TryingToLearnText::
- TX_RAM wd036
+ TX_RAM wLearnMoveMonName
text " is"
line "trying to learn"
cont "@"
@@ -2728,7 +2729,7 @@ _TryingToLearnText::
text "!"
para "But, @"
- TX_RAM wd036
+ TX_RAM wLearnMoveMonName
db $0
line "can't learn more"
cont "than 4 moves!"
@@ -2749,7 +2750,7 @@ _PoofText::
_ForgotAndText::
db $0
para "@"
- TX_RAM wd036
+ TX_RAM wLearnMoveMonName
text " forgot"
line "@"
TX_RAM wcd6d
diff --git a/text/maps/daycare.asm b/text/maps/daycare.asm
index 929c9104..4f4b1950 100644
--- a/text/maps/daycare.asm
+++ b/text/maps/daycare.asm
@@ -1,60 +1,54 @@
-_DayCareMText_5640f::
+_DayCareIntroText::
text "I run a DAYCARE."
line "Would you like me"
cont "to raise one of"
cont "your #MON?"
done
-_DayCareMText_56414::
+_DayCareWhichMonText::
text "Which #MON"
line "should I raise?"
prompt
-_DayCareMText_56419::
+_DayCareWillLookAfterMonText::
text "Fine, I'll look"
line "after @"
TX_RAM wcd6d
db $0
cont "for a while."
prompt
-
-_DayCareMText_5641e::
+_DayCareComeSeeMeInAWhileText::
text "Come see me in"
line "a while."
done
-
-_DayCareMText_56423::
+_DayCareMonHasGrownText::
text "Your @"
TX_RAM wcd6d
db $0
line "has grown a lot!"
-
para "By level, it's"
line "grown by @"
-
-DayCareMText_8ac67::
- TX_NUM wTrainerEngageDistance,$1,$3
+ TX_NUM wDayCareNumLevelsGrown,$1,$3
text "!"
para "Aren't I great?"
prompt
-
-_DayCareMText_56428::
+_DayCareOweMoneyText::
text "You owe me ¥@"
- TX_BCD wcd3f, $c2
+ TX_BCD wDayCareTotalCost, $c2
db $0
line "for the return"
cont "of this #MON."
done
-_DayCareMText_5642d::
+_DayCareGotMonBackText::
text $52, " got"
line "@"
TX_RAM W_DAYCAREMONNAME
text " back!"
done
-_DayCareMText_56432::
+_DayCareMonNeedsMoreTimeText::
text "Back already?"
line "Your @"
TX_RAM wcd6d
@@ -63,37 +57,36 @@ _DayCareMText_56432::
cont "time with me."
prompt
-_DayCareMText_56437::
+_DayCareAllRightThenText::
text "All right then,"
line "@@"
-_DayCareMText_5643b::
+_DayCareComeAgainText::
text "Come again."
done
-_DayCareMText_56440::
+_DayCareNoRoomForMonText::
text "You have no room"
line "for this #MON!"
done
-_DayCareMText_56445::
+_DayCareOnlyHaveOneMonText::
text "You only have one"
line "#MON with you."
done
-_DayCareMText_5644a::
+_DayCareCantAcceptMonWithHMText::
text "I can't accept a"
line "#MON that"
cont "knows an HM move."
done
-_DayCareMText_5644f::
+_DayCareHeresYourMonText::
text "Thank you! Here's"
line "your #MON!"
prompt
-_DayCareMText_56454::
+_DayCareNotEnoughMoneyText::
text "Hey, you don't"
line "have enough ¥!"
- done
-
+ done \ No newline at end of file
diff --git a/text/maps/fuchsia_gym.asm b/text/maps/fuchsia_gym.asm
index de3b9e3c..f2bb8c9c 100644
--- a/text/maps/fuchsia_gym.asm
+++ b/text/maps/fuchsia_gym.asm
@@ -1,4 +1,4 @@
-_UnnamedText_75581::
+_KogaBeforeBattleText::
text "KOGA: Fwahahaha!"
para "A mere child like"
@@ -16,7 +16,7 @@ _UnnamedText_75581::
cont "techniques!"
done
-_UnnamedText_75586::
+_KogaAfterBattleText::
text "Humph!"
line "You have proven"
cont "your worth!"
@@ -25,7 +25,7 @@ _UnnamedText_75586::
line "SOULBADGE!"
prompt
-_UnnamedText_7558b::
+_KogaExplainToxicText::
text "When afflicted by"
line "TOXIC, #MON"
cont "suffer more and"
@@ -36,7 +36,7 @@ _UnnamedText_7558b::
line "terrorize foes!"
done
-_UnnamedText_75590::
+_FuchsiaGymText9::
text "Now that you have"
line "the SOULBADGE,"
cont "the DEFENSE of"
@@ -78,7 +78,6 @@ _FuchsiaGymBattleText1::
cont "#MON!"
para "It's strategy!"
-
para "I'll show you how"
line "strategy can beat"
cont "brute strength!"
@@ -105,14 +104,12 @@ _FuchsiaGymEndBattleText2::
text "I'm done"
line "for!"
prompt
-
_FuchsiaGymAfterBattleText2::
text "I will keep on"
line "training under"
cont "KOGA, my ninja"
cont "master!"
done
-
_FuchsiaGymBattleText3::
text "Let's see you"
line "beat my special"
@@ -143,7 +140,6 @@ _FuchsiaGymEndBattleText4::
text "Whoa!"
line "He's got it!"
prompt
-
_FuchsiaGymAfterBattleText4::
text "You impressed me!"
line "Here's a hint!"
@@ -196,7 +192,7 @@ _FuchsiaGymAfterBattleText6::
cont "choose?"
done
-_UnnamedText_7564e::
+_FuchsiaGymText_7564e::
text "Yo! Champ in"
line "making!"
@@ -207,15 +203,12 @@ _UnnamedText_7564e::
para "KOGA might appear"
line "close, but he's"
cont "blocked off!"
-
para "You have to find"
line "gaps in the walls"
cont "to reach him!"
done
-
-_UnnamedText_75653::
+_FuchsiaGymText_75653::
text "It's amazing how"
line "ninja can terrify"
cont "even now!"
- done
-
+ done \ No newline at end of file
diff --git a/text/maps/fuchsia_gym_1.asm b/text/maps/fuchsia_gym_1.asm
new file mode 100644
index 00000000..a877c0a1
--- /dev/null
+++ b/text/maps/fuchsia_gym_1.asm
@@ -0,0 +1,27 @@
+_KogaBeforeBattleText:: ; 9e9b1 (27:69b1)
+ text "KOGA: Fwahahaha!"
+
+ para "A mere child like"
+ line "you dares to"
+ cont "challenge me?"
+
+ para "Very well, I"
+ line "shall show you"
+ cont "true terror as a"
+ cont "ninja master!"
+
+ para "You shall feel"
+ line "the despair of"
+ cont "poison and sleep"
+ cont "techniques!"
+ done
+
+_KogaAfterBattleText:: ; 9ea66 (27:6a66)
+ text "Humph!"
+ line "You have proven"
+ cont "your worth!"
+
+ para "Here! Take the"
+ line "SOULBADGE!"
+ prompt
+
diff --git a/text/maps/lorelei.asm b/text/maps/lorelei.asm
index 4c392562..db032c78 100644
--- a/text/maps/lorelei.asm
+++ b/text/maps/lorelei.asm
@@ -30,14 +30,12 @@ _LoreleiAfterBattleText::
text "You're better"
line "than I thought!"
cont "Go on ahead!"
-
para "You only got a"
line "taste of #MON"
cont "LEAGUE power!"
done
-_LoreleiText2::
+_LoreleiDontRunAwayText::
text "Someone's voice:"
line "Don't run away!"
- done
-
+ done \ No newline at end of file
diff --git a/text/maps/name_rater.asm b/text/maps/name_rater.asm
index 2708ca73..09878dca 100644
--- a/text/maps/name_rater.asm
+++ b/text/maps/name_rater.asm
@@ -35,7 +35,7 @@ _NameRaterText_1dac7::
text "OK! This #MON"
line "has been renamed"
cont "@"
- TX_RAM wHPBarMaxHP
+ TX_RAM wBuffer
text "!"
para "That's a better"
diff --git a/text/maps/oaks_lab.asm b/text/maps/oaks_lab.asm
index b4b77ed1..31f8deeb 100644
--- a/text/maps/oaks_lab.asm
+++ b/text/maps/oaks_lab.asm
@@ -400,10 +400,10 @@ _OaksLabText_441cc::
line "letion is:"
para "@"
- TX_NUM $ffdb, 1, 3
+ TX_NUM hDexRatingNumMonsSeen, 1, 3
text " #MON seen"
line "@"
- TX_NUM $ffdc, 1, 3
+ TX_NUM hDexRatingNumMonsOwned, 1, 3
text " #MON owned"
para "PROF.OAK's"
diff --git a/text/maps/underground_path_route_7_entrance_unused.asm b/text/maps/underground_path_route_7_entrance_unused.asm
index ed1497f7..1a66e8b1 100644
--- a/text/maps/underground_path_route_7_entrance_unused.asm
+++ b/text/maps/underground_path_route_7_entrance_unused.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5d773::
+_UGPathRoute7EntranceUnusedText_5d773::
text "I want to shop at"
line "the dept. store"
cont "in CELADON but..."
@@ -8,29 +8,25 @@ _UnnamedText_5d773::
cont "people there."
done
-_UnnamedText_5d778::
+_UGPathRoute7EntranceUnusedText_5d778::
text "TEAM ROCKET had a"
line "secret hideout in"
cont "CELADON CITY?"
done
-_UnnamedText_5d77d::
+_UGPathRoute7EntranceUnusedText_5d77d::
text "You're here to"
line "shop in CELADON?"
-
para "Just step outside"
line "and head west!"
done
-
-_UnnamedText_5d782::
+_UGPathRoute7EntranceUnusedText_5d782::
text "The UNDERGROUND"
line "PATH goes beneath"
cont "SAFFRON and leads"
cont "to LAVENDER."
-
para "If you're heading"
line "to CERULEAN, go"
cont "to the building"
cont "across the road."
- done
-
+ done \ No newline at end of file
diff --git a/wram.asm b/wram.asm
index 4b62e5c3..fcb5c3dd 100755
--- a/wram.asm
+++ b/wram.asm
@@ -61,73 +61,153 @@ ENDM
SECTION "WRAM Bank 0", WRAM0
-wc000:: ds 1
-wc001:: ds 1
-wc002:: ds 1
-wc003:: ds 1
-wc004:: ds 1
-wc005:: ds 1
-wc006:: ds 8
-wc00e:: ds 4
-wc012:: ds 4
-wc016:: ds 16
-wc026:: ds 1
-wc027:: ds 1
-wc028:: ds 2
-wc02a:: ds 1
-wc02b:: ds 1
-wc02c:: ds 1
-wc02d:: ds 1
-wc02e:: ds 8
-wc036:: ds 8
-wc03e:: ds 8
-wc046:: ds 8
-wc04e:: ds 8
-wc056:: ds 8
-wc05e:: ds 8
-wc066:: ds 8
-wc06e:: ds 8
-wc076:: ds 8
-wc07e:: ds 8
-wc086:: ds 8
-wc08e:: ds 8
-wc096:: ds 8
-wc09e:: ds 8
-wc0a6:: ds 8
-wc0ae:: ds 8
-wc0b6:: ds 8
-wc0be:: ds 8
-wc0c6:: ds 8
-wc0ce:: ds 1
-wc0cf:: ds 1
-wc0d0:: ds 1
-wc0d1:: ds 1
-wc0d2:: ds 1
-wc0d3:: ds 1
-wc0d4:: ds 1
-wc0d5:: ds 1
-wc0d6:: ds 8
-wc0de:: ds 8
-wc0e6:: ds 1
-wc0e7:: ds 1
-wc0e8:: ds 1
-wc0e9:: ds 1
-wc0ea:: ds 1
-wc0eb:: ds 1
-wc0ec:: ds 1
-wc0ed:: ds 1
-wc0ee:: ds 1
-wc0ef:: ds 1
-wc0f0:: ds 1
-wc0f1:: ds 1
-wc0f2:: ds 1
+wUnusedC000:: ; c000
+ ds 1
+
+wSoundID:: ; c001
+ ds 1
+
+wMuteAudioAndPauseMusic:: ; c002
+; bit 7: whether sound has been muted
+; all bits: whether the effective is active
+; Store 1 to activate effect (any value in the range [1, 127] works).
+; All audio is muted and music is paused. Sfx continues playing until it
+; ends normally.
+; Store 0 to resume music.
+ ds 1
+
+wDisableChannelOutputWhenSfxEnds:: ; c003
+ ds 1
+
+wStereoPanning:: ; c004
+ ds 1
+
+wSavedVolume:: ; c005
+ ds 1
+
+wChannelCommandPointers:: ; c006
+ ds 16
+
+wChannelReturnAddresses:: ; c016
+ ds 16
+
+wChannelSoundIDs:: ; c026
+ ds 8
+
+wChannelFlags1:: ; c02e
+ ds 8
+
+wChannelFlags2:: ; c036
+ ds 8
+
+wChannelDuties:: ; c03e
+ ds 8
+
+wChannelDutyCycles:: ; c046
+ ds 8
+
+wChannelVibratoDelayCounters:: ; c04e
+; reloaded at the beginning of a note. counts down until the vibrato begins.
+ ds 8
+
+wChannelVibratoExtents:: ; c056
+ ds 8
+
+wChannelVibratoRates:: ; c05e
+; high nybble is rate (counter reload value) and low nybble is counter.
+; time between applications of vibrato.
+ ds 8
+
+wChannelFrequencyLowBytes:: ; c066
+ ds 8
+
+wChannelVibratoDelayCounterReloadValues:: ; c06e
+; delay of the beginning of the vibrato from the start of the note
+ ds 8
+
+wChannelPitchBendLengthModifiers:: ; c076
+ ds 8
+
+wChannelPitchBendFrequencySteps:: ; c07e
+ ds 8
+
+wChannelPitchBendFrequencyStepsFractionalPart:: ; c086
+ ds 8
+
+wChannelPitchBendCurrentFrequencyFractionalPart:: ; c08e
+ ds 8
+
+wChannelPitchBendCurrentFrequencyHighBytes:: ; c096
+ ds 8
+
+wChannelPitchBendCurrentFrequencyLowBytes:: ; c09e
+ ds 8
+
+wChannelPitchBendTargetFrequencyHighBytes:: ; c0a6
+ ds 8
+
+wChannelPitchBendTargetFrequencyLowBytes:: ; c0ae
+ ds 8
+
+wChannelNoteDelayCounters:: ; c0b6
+; Note delays are stored as 16-bit fixed-point numbers where the integer part
+; is 8 bits and the fractional part is 8 bits.
+ ds 8
+
+wChannelLoopCounters:: ; c0be
+ ds 8
+
+wChannelNoteSpeeds:: ; c0c6
+ ds 8
+
+wChannelNoteDelayCountersFractionalPart:: ; c0ce
+ ds 8
+
+wChannelOctaves:: ; c0d6
+ ds 8
+
+wChannelVolumes:: ; c0de
+; also includes fade for hardware channels that support it
+ ds 8
+
+wMusicWaveInstrument::
+ ds 1
+
+wSfxWaveInstrument::
+ ds 1
+
+wMusicTempo:: ; c0e8
+ ds 2
+
+wSfxTempo:: ; c0ea
+ ds 2
+
+wSfxHeaderPointer:: ; c0ec
+ ds 2
+
+wNewSoundID:: ; c0ee
+ ds 1
+
+wAudioROMBank:: ; c0ef
+ ds 1
+
+wAudioSavedROMBank:: ; c0f0
+ ds 1
+
+wFrequencyModifier:: ; c0f1
+ ds 1
+
+wTempoModifier:: ; c0f2
+ ds 1
+
wc0f3:: ds 1
wc0f4:: ds 1
wc0f5:: ds 11
-
SECTION "Sprite State Data", WRAM0[$c100]
+wSpriteDataStart::
+
wSpriteStateData1:: ; c100
; data for all sprites on the current map
; holds info for 16 sprites with $10 bytes each
@@ -151,7 +231,7 @@ wSpriteStateData1:: ; c100
ds $10 * $10
-SECTION "Sprite State Data 2", WRAM0[$c200]
+;SECTION "Sprite State Data 2", WRAM0[$c200]
wSpriteStateData2:: ; c200
; more data for all sprites on the current map
@@ -175,6 +255,8 @@ wSpriteStateData2:: ; c200
; C2xF
ds $10 * $10
+wSpriteDataEnd::
+
SECTION "OAM Buffer", WRAM0[$c300]
@@ -206,9 +288,9 @@ wTempPic::
wOverworldMap:: ; c6e8
ds 1300
-wScreenEdgeTiles:: ; cbfc
-; the tiles of the row or column to be redrawn by RedrawExposedScreenEdge
- ds 20 * 2
+wRedrawRowOrColumnSrcTiles:: ; cbfc
+; the tiles of the row or column to be redrawn by RedrawRowOrColumn
+ ds SCREEN_WIDTH * 2
; coordinates of the position of the cursor for the top menu item (id 0)
wTopMenuItemY:: ; cc24
@@ -239,14 +321,32 @@ wLastMenuItem:: ; cc2a
; id of previously selected menu item
ds 1
-wcc2b:: ds 1 ; used in party menu
-wcc2c:: ds 1 ; used in item related menus (inventory, pc)
-wcc2d:: ds 1 ; also used in inventory, supposed to save an item id
+wPartyAndBillsPCSavedMenuItem:: ; cc2b
+; It is mainly used by the party menu to remember the cursor position while the
+; menu isn't active.
+; It is also used to remember the cursor position of mon lists (for the
+; withdraw/deposit/release actions) in Bill's PC so that it doesn't get lost
+; when you choose a mon from the list and a sub-menu is shown. It's reset when
+; you return to the main Bill's PC menu.
+ ds 1
+
+wBagSavedMenuItem:: ; cc2c
+; It is used by the bag list to remember the cursor position while the menu
+; isn't active.
+ ds 1
+
+wBattleAndStartSavedMenuItem:: ; cc2d
+; It is used by the start menu to remember the cursor position while the menu
+; isn't active.
+; The battle menu uses it so that the cursor position doesn't get lost when
+; a sub-menu is shown. It's reset at the start of each battle.
+ ds 1
wPlayerMoveListIndex:: ; cc2e
ds 1
wPlayerMonNumber:: ; cc2f
+; index in party of currently battling mon
ds 1
wMenuCursorLocation:: ; cc30
@@ -268,15 +368,23 @@ wListScrollOffset:: ; cc36
; keeps track of what section of the list is on screen
ds 1
-wcc37:: ds 1 ; menu related thing, used in pokedex and dialog boxes
+wMenuWatchMovingOutOfBounds:: ; cc37
+; If non-zero, then when wrapping is disabled and the player tries to go past
+; the top or bottom of the menu, return from HandleMenuInput. This is useful for
+; menus that have too many items to display at once on the screen because it
+; allows the caller to scroll the entire menu up or down when this happens.
+ ds 1
wTradeCenterPointerTableIndex:: ; cc38
ds 1
ds 1
-wcc3a:: ds 1 ; both used in home/text.asm
-wcc3b:: ds 1
+wUnusedCC3A:: ; cc3a
+ ds 1
+
+wUnusedCC3B:: ; cc3b
+ ds 1
wDoNotWaitForButtonPressAfterDisplayingText:: ; cc3c
; if non-zero, skip waiting for a button press after displaying text in DisplayTextID
@@ -291,8 +399,7 @@ wSerialExchangeNybbleTempReceiveData:: ; cc3d
wLinkMenuSelectionReceiveBuffer:: ; cc3d
; two byte buffer
; the received menu selection is stored twice
-
-wcc3d:: ds 1 ; not used for anything other than mentioned above
+ ds 1
wSerialExchangeNybbleReceiveData:: ; cc3e
; the final received nybble is stored here by Serial_ExchangeNybble
@@ -315,22 +422,40 @@ wLinkTimeoutCounter:: ; cc47
wUnknownSerialCounter:: ; cc47
; 2 bytes
-wcc47:: ds 1 ; used in text id stuff
-wcc48:: ds 1 ; part of wUnknownSerialCounter
+wEnteringCableClub:: ; cc47
+ ds 1
+
+ ds 1
wWhichTradeMonSelectionMenu:: ; cc49
; $00 = player mons
; $01 = enemy mons
-wcc49:: ds 1 ; used in some pokemon related stuff (some kind of species storage byte)
+wMonDataLocation:: ; cc49
+; 0 = player's party
+; 1 = enemy party
+; 2 = current box
+; 3 = daycare
+; 4 = in-battle mon
+;
+; AddPartyMon uses it slightly differently.
+; If the lower nybble is 0, the mon is added to the player's party, else the enemy's.
+; If the entire value is 0, then the player is allowed to name the mon.
+ ds 1
wMenuWrappingEnabled:: ; cc4a
; set to 1 if you can go from the bottom to the top or top to bottom of a menu
; set to 0 if you can't go past the top or bottom of the menu
ds 1
-wcc4b:: ds 2 ; used as a joypad storage value
-wcc4d:: ds 1 ; used in sprite hiding/showing related operations
+wCheckFor180DegreeTurn:: ; cc4b
+; whether to check for 180-degree turn (0 = don't, 1 = do)
+ ds 1
+
+ ds 1
+
+wMissableObjectIndex:: ; cc4d
+ ds 1
wPredefID:: ; cc4e
ds 1
@@ -353,18 +478,60 @@ wNPCMovementScriptBank:: ; cc58
ds 2
+wUnusedCC5B:: ; cc5b
+
+wVermilionDockTileMapBuffer:: ; cc5b
+; 180 bytes
+
+wOaksAideRewardItemName:: ; cc5b
+
+wDexRatingNumMonsSeen:: ; cc5b
+
+wFilteredBagItems:: ; cc5b
+; List of bag items that has been filtered to a certain type of items,
+; such as drinks or fossils.
+
+wElevatorWarpMaps:: ; cc5b
+
+wMonPartySpritesSavedOAM:: ; cc5b
+; Saved copy of OAM for the first frame of the animation to make it easy to
+; flip back from the second frame.
+; $60 bytes
+
+wTrainerCardBlkPacket:: ; cc5b
+; $40 bytes
+
+wSlotMachineSevenAndBarModeChance:: ; cc5b
+; If a random number greater than this value is generated, then the player is
+; allowed to have three 7 symbols or bar symbols line up.
+; So, this value is actually the chance of NOT entering that mode.
+; If the slot is lucky, it equals 250, giving a 5/256 (~2%) chance.
+; Otherwise, it equals 253, giving a 2/256 (~0.8%) chance.
+
wHallOfFame:: ; cc5b
wBoostExpByExpAll:: ; cc5b
wAnimationType:: ; cc5b
; values between 0-6. Shake screen horizontally, shake screen vertically, blink Pokemon...
-wcc5b:: ds 1 ; these upcoming values below are miscellaneous storage values
-wcc5c:: ds 1 ; used in pokedex evaluation as well
-wcc5d:: ds 1 ; used in pokedex evaluation
-wcc5e:: ds 13 ; as well as used as miscellaneous storage value, this is also used for the game corner slots
+wNPCMovementDirections:: ; cc5b
+ ds 1
-wcc6b:: ds 14 ; doesn't seem to be used for anything, probably just more storage
-wcc79:: ds 30 ; used in battle animations
+wDexRatingNumMonsOwned:: ; cc5c
+ ds 1
+
+wDexRatingText:: ; cc5d
+ ds 1
+
+wSlotMachineSavedROMBank:: ; cc5e
+; ROM back to return to when the player is done with the slot machine
+ ds 1
+
+ ds 26
+
+wAnimPalette:: ; cc79
+ ds 1
+
+ ds 29
wNPCMovementDirections2:: ; cc97
@@ -372,18 +539,33 @@ wSwitchPartyMonTempBuffer:: ; cc97
; temporary buffer when swapping party mon data
ds 10
-wcca1:: ds 49 ; used in overworld npc movement
+wNumStepsToTake:: ; cca1
+; used in Pallet Town scripted movement
+ ds 49
wRLEByteCount:: ; ccd2
ds 1
+wAddedToParty:: ; ccd3
+; 0 = not added
+; 1 = added
+
wSimulatedJoypadStatesEnd:: ; ccd3
; this is the end of the joypad states
; the list starts above this address and extends downwards in memory until here
; overloaded with below labels
-wccd3:: ds 1 ; used in battle, pokemon, PC and game corner stuff
-wccd4:: ds 1 ; used in evolving pokemon and has a direct reference for simulated joypad stuff in vermillion and seafoam
+wParentMenuItem:: ; ccd3
+
+wCanEvolveFlags:: ; ccd3
+; 1 flag for each party member indicating whether it can evolve
+; The purpose of these flags is to track which mons levelled up during the
+; current battle at the end of the battle when evolution occurs.
+; Other methods of evolution simply set it by calling TryEvolvingMon.
+ ds 1
+
+wForceEvolution:: ; ccd4
+ ds 1
; if [ccd5] != 1, the second AI layer is not applied
wAILayer2Encouragement:: ; ccd5
@@ -396,7 +578,12 @@ wPlayerSubstituteHP:: ; ccd7
wEnemySubstituteHP:: ; ccd8
ds 1
-wccd9:: ds 2 ; used in InitBattleVariablesLoop (written to after the loop is finished)
+wTestBattlePlayerSelectedMove:: ; ccd9
+; The player's selected move during a test battle.
+; InitBattleVariables sets it to the move Pound.
+ ds 1
+
+ ds 1
wMoveMenuType:: ; ccdb
; 0=regular, 1=mimic, 2=above message box (relearn, heal pp..)
@@ -419,8 +606,11 @@ wAICount:: ; ccdf
wEnemyMoveListIndex:: ; cce2
ds 1
-wcce3:: ds 1 ; used in battle-related text functions
-wcce4:: ds 1 ; used in battle-related text functions
+wLastSwitchInEnemyMonHP:: ; cce3
+; The enemy mon's HP when it was switched in or when the current player mon
+; was switched in, which was more recent.
+; It's used to determine the message to print when switching out the player mon.
+ ds 2
wTotalPayDayMoney:: ; cce5
; total amount of money made using Pay Day during the current battle
@@ -433,20 +623,23 @@ wSafariBaitFactor:: ; cce9
ds 1
-wcceb:: ds 1 ; used to save the dvs of a mon when it uses transform
-wccec:: ds 1 ; also used with above case
+wTransformedEnemyMonOriginalDVs:: ; cceb
+ ds 2
wMonIsDisobedient:: ds 1 ; cced
wPlayerDisabledMoveNumber:: ds 1 ; ccee
wEnemyDisabledMoveNumber:: ds 1 ; ccef
-wccf0:: ds 1 ; used as a check if a mon fainted
+wInHandlePlayerMonFainted:: ; ccf0
+; When running in the scope of HandlePlayerMonFainted, it equals 1.
+; When running in the scope of HandleEnemyMonFainted, it equals 0.
+ ds 1
wPlayerUsedMove:: ds 1 ; ccf1
wEnemyUsedMove:: ds 1 ; ccf2
-wccf3:: ds 1 ; used with the move minimize
+wEnemyMonMinimized:: ds 1 ; ccf3
wMoveDidntMiss:: ds 1 ; ccf4
@@ -454,10 +647,17 @@ wPartyFoughtCurrentEnemyFlags:: ; ccf5
; flags that indicate which party members have fought the current enemy mon
flag_array 6
-wccf6:: ds 1 ; used in some hp bar thing
-wccf7:: ds 14 ; used with substitute move sliding thing? (not sure)
+wLowHealthAlarmDisabled:: ; ccf6
+; Whether the low health alarm has been disabled due to the player winning the
+; battle.
+ ds 1
-wUnknownSlotVar:: ; cd05
+wPlayerMonMinimized:: ; ccf7
+ ds 1
+
+ ds 13
+
+wLuckySlotHiddenObjectIndex:: ; cd05
wEnemyNumHits:: ; cd05
; number of hits by enemy in attacks like Double Slap, etc.
@@ -465,11 +665,11 @@ wEnemyNumHits:: ; cd05
wEnemyBideAccumulatedDamage:: ; cd05
; the amount of damage accumulated by the enemy while biding (2 bytes)
-ds 10
+ ds 10
wInGameTradeGiveMonSpecies:: ; cd0f
-wPlayerMonUnmodifiedLevel:: ; cd0f
+wPlayerMonUnmodifiedLevel:: ; cd0f
ds 1
wInGameTradeTextPointerTablePointer:: ; cd10
@@ -560,7 +760,11 @@ wInGameTradeReceiveMonSpecies::
wNPCMovementDirections2Index:: ; cd37
-wcd37:: ds 1 ; used in list menus, like the fossil lab menu or drink girl menu. Also used in link menu.
+wUnusedCD37:: ; cd37
+
+wFilteredBagItemsCount:: ; cd37
+; number of items in wFilteredBagItems list
+ ds 1
wSimulatedJoypadStatesIndex:: ; cd38
; the next simulated joypad state is at wSimulatedJoypadStatesEnd plus this value minus 1
@@ -582,6 +786,93 @@ wOverrideSimulatedJoypadStatesMask:: ; cd3b
ds 1
+wFallingObjectsMovementData:: ; cd3d
+; up to 20 bytes (one byte for each falling object)
+
+wSavedY:: ; cd3d
+
+wTempSCX:: ; cd3d
+
+wBattleTransitionCircleScreenQuadrantY:: ; cd3d
+; 0 = upper half (Y < 9)
+; 1 = lower half (Y >= 9)
+
+wBattleTransitionCopyTilesOffset:: ; cd3d
+; 2 bytes
+; after 1 row/column has been copied, the offset to the next one to copy from
+
+wInwardSpiralUpdateScreenCounter:: ; cd3d
+; counts down from 7 so that every time 7 more tiles of the spiral have been
+; placed, the tile map buffer is copied to VRAM so that progress is visible
+
+wHoFTeamIndex:: ; cd3d
+
+wSSAnneSmokeDriftAmount:: ; cd3d
+; multiplied by 16 to get the number of times to go right by 2 pixels
+
+wRivalStarterTemp:: ; cd3d
+
+wBoxMonCounts:: ; cd3d
+; 12 bytes
+; array of the number of mons in each box
+
+wDexMaxSeenMon:: ; cd3d
+
+wPPRestoreItem:: ; cd3d
+
+wWereAnyMonsAsleep:: ; cd3d
+
+wCanPlaySlots:: ; cd3d
+
+wNumShakes:: ; cd3d
+
+wDayCareStartLevel:: ; cd3d
+; the level of the mon at the time it entered day care
+
+wWhichBadge:: ; cd3d
+
+wPriceTemp:: ; cd3d
+; 3-byte BCD number
+
+wTitleMonSpecies:: ; cd3d
+
+wPlayerCharacterOAMTile:: ; cd3d
+
+wMoveDownSmallStarsOAMCount:: ; cd3d
+; the number of small stars OAM entries to move down
+
+wChargeMoveNum:: ; cd3d
+
+wCoordIndex:: ; cd3d
+
+wOptionsTextSpeedCursorX:: ; cd3d
+
+wBoxNumString:: ; cd3d
+
+wTrainerInfoTextBoxWidthPlus1:: ; cd3d
+
+wSwappedMenuItem:: ; cd3d
+
+wHoFMonSpecies:: ; cd3d
+
+wFieldMoves:: ; cd3d
+; 4 bytes
+; the current mon's field moves
+
+wBadgeNumberTile:: ; cd3d
+; tile ID of the badge number being drawn
+
+wRodResponse:: ; cd3d
+; 0 = no bite
+; 1 = bite
+; 2 = no fish on map
+
+wWhichTownMapLocation:: ; cd3d
+
+wStoppingWhichSlotMachineWheel:: ; cd3d
+; which wheel the player is trying to stop
+; 0 = none, 1 = wheel 1, 2 = wheel 2, 3 or greater = wheel 3
+
wTradedPlayerMonSpecies:: ; cd3d
wTradingWhichPlayerMon:: ; cd3d
@@ -598,15 +889,44 @@ wBoxNumString:: ; cd3d
wHiddenObjectFunctionArgument:: ; cd3d
-wSubtrahend:: ; cd3d
-; subtract (BCD) wSubtrahend, wSubtrahend+1, wSubtrahend+2
-
wWhichTrade:: ; cd3d
; which entry from TradeMons to select
wTrainerSpriteOffset:: ; cd3d
+
+wUnusedCD3D:: ; cd3d
ds 1
+wHUDPokeballGfxOffsetX:: ; cd3e
+; difference in X between the next ball and the current one
+
+wBattleTransitionCircleScreenQuadrantX:: ; cd3e
+; 0 = left half (X < 10)
+; 1 = right half (X >= 10)
+
+wSSAnneSmokeX:: ; cd3e
+
+wRivalStarterBallSpriteIndex:: ; cd3e
+
+wDayCareNumLevelsGrown:: ; cd3e
+
+wOptionsBattleAnimCursorX:: ; cd3e
+
+wTrainerInfoTextBoxWidth:: ; cd3e
+
+wHoFPartyMonIndex:: ; cd3e
+
+wNumCreditsMonsDisplayed:: ; cd3e
+; the number of credits mons that have been displayed so far
+
+wBadgeNameTile:: ; cd3e
+; first tile ID of the name being drawn
+
+wFlyLocationsList:: ; cd3e
+; 11 bytes plus $ff sentinel values at each end
+
+wSlotMachineWheel1Offset:: ; cd3e
+
wTradedEnemyMonSpecies:: ; cd3e
wTradingWhichEnemyMon:: ; cd3e
@@ -622,6 +942,27 @@ wHiddenObjectFunctionRomBank:: ; cd3e
wTrainerEngageDistance:: ; cd3e
ds 1
+wHUDGraphicsTiles:: ; cd3f
+; 3 bytes
+
+wDayCareTotalCost:: ; cd3f
+; 2-byte BCD number
+
+wJigglypuffFacingDirections:: ; cd3f
+
+wOptionsBattleStyleCursorX:: ; cd3f
+
+wTrainerInfoTextBoxNextRowOffset:: ; cd3f
+
+wHoFMonLevel:: ; cd3f
+
+wBadgeOrFaceTiles:: ; cd3f
+; 8 bytes
+; a list of the first tile IDs of each badge or face (depending on whether the
+; badge is owned) to be drawn on the trainer screen
+
+wSlotMachineWheel2Offset:: ; cd3f
+
wNameOfPlayerMonToBeTraded:: ; cd3f
wFlyAnimBirdSpriteImageIndex:: ; cd3f
@@ -633,52 +974,161 @@ wPlayerSpinWhileMovingUpOrDownAnimFrameDelay:: ; cd3f
wHiddenObjectIndex:: ; cd3f
wTrainerFacingDirection:: ; cd3f
-
-wcd3f:: ; used with daycare text for money amount
+
ds 1
+wHoFMonOrPlayer:: ; cd40
+; show mon or show player?
+; 0 = mon
+; 1 = player
+
+wSlotMachineWheel3Offset:: ; cd40
+
wPlayerSpinInPlaceAnimSoundID:: ; cd40
wHiddenObjectY:: ; cd40
wTrainerScreenY:: ; cd40
+
+wUnusedCD40:: ; cd40
ds 1
+wDayCarePerLevelCost:: ; cd41
+; 2-byte BCD number (always set to $0100)
+
+wHoFTeamIndex2:: ; cd41
+
+wHiddenItemOrCoinsIndex:: ; cd41
+
wTradedPlayerMonOT:: ; cd41
wHiddenObjectX:: ; cd41
+wSlotMachineWinningSymbol:: ; cd41
+; the OAM tile number of the upper left corner of the winning symbol minus 2
+
+wNumFieldMoves:: ; cd41
+
+wSlotMachineWheel1BottomTile:: ; cd41
+
wTrainerScreenX:: ; cd41
ds 1
; a lot of the uses for these values use more than the said address
-wcd42:: ds 1 ; used in pewter center script, printing field mon moves, slot machines and HoF PC
-wcd43:: ds 1 ; slot machine stuff and GetMonFieldMoves
-wcd44:: ds 1 ; just slot machine
-wcd45:: ds 1 ; slot machine...
-wcd46:: ds 1 ; slot machine...
-wcd47:: ds 1 ; used in slot machine and spinning player sprite
-wcd48:: ds 1 ; same as above
-wcd49:: ds 1 ; used in slot machine, displaying the gym leaders/badges on the trainer card, and displaying the town map
-wcd4a:: ds 1 ; probably used in one of the above mentioned functions
-wcd4b:: ds 1 ; same as above
+wHoFTeamNo:: ; cd42
+
+wSlotMachineWheel1MiddleTile:: ; cd42
+
+wFieldMovesLeftmostXCoord:: ; cd42
+ ds 1
+
+wLastFieldMoveID:: ; cd43
+; unused
+
+wSlotMachineWheel1TopTile:: ; cd43
+ ds 1
+
+wSlotMachineWheel2BottomTile:: ; cd44
+ ds 1
+
+wSlotMachineWheel2MiddleTile:: ; cd45
+ ds 1
+
+wTempCoins1:: ; cd46
+; 2 bytes
+; temporary variable used to add payout amount to the player's coins
+
+wSlotMachineWheel2TopTile:: ; cd46
+ ds 1
+
+wBattleTransitionSpiralDirection:: ; cd47
+; 0 = outward, 1 = inward
+
+wSlotMachineWheel3BottomTile:: ; cd47
+ ds 1
+
+wSlotMachineWheel3MiddleTile:: ; cd48
+
+wFacingDirectionList:: ; cd48
+; 4 bytes (also, the byte before the start of the list (cd47) is used a temp
+; variable when the list is rotated)
+; used when spinning the player's sprite
+ ds 1
+
+wSlotMachineWheel3TopTile:: ; cd49
+
+wTempObtainedBadgesBooleans::
+; 8 bytes
+; temporary list created when displaying the badges on the trainer screen
+; one byte for each badge; 0 = not obtained, 1 = obtained
+ ds 1
+
+wTempCoins2:: ; cd4a
+; 2 bytes
+; temporary variable used to subtract the bet amount from the player's coins
+
+wPayoutCoins:: ; cd4a
+; 2 bytes
+ ds 2
wTradedPlayerMonOTID:: ; cd4c
-wcd4c:: ds 1 ; slot machine and probably other above stuff
-wcd4d:: ds 1 ; used with cut and slot machine
+wSlotMachineFlags:: ; cd4c
+; These flags are set randomly and control when the wheels stop.
+; bit 6: allow the player to win in general
+; bit 7: allow the player to win with 7 or bar (plus the effect of bit 6)
+ ds 1
+
+wSlotMachineWheel1SlipCounter:: ; cd4d
+; wheel 1 can "slip" while this is non-zero
+
+wCutTile:: ; cd4d
+; $3d = tree tile
+; $52 = grass tile
+ ds 1
+
+wSlotMachineWheel2SlipCounter:: ; cd4e
+; wheel 2 can "slip" while this is non-zero
wTradedEnemyMonOT:: ; cd4e
+ ds 1
+
+wSavedPlayerScreenY:: ; cd4f
+
+wSlotMachineRerollCounter:: ; cd4f
+; The remaining number of times wheel 3 will roll down a symbol until a match is
+; found, when winning is enabled. It's initialized to 4 each bet.
+
+wEmotionBubbleSpriteIndex:: ; cd4f
+; the index of the sprite the emotion bubble is to be displayed above
+ ds 1
-wcd4e:: ds 1 ; used with in-game trades and slot machine
-wcd4f:: ds 1 ; used with in-game trades, emotion bubbles, and player animations
-wcd50:: ds 9 ; used with in-game trades, emotion bubbles, and player and miscellaneous sprite animations
+wWhichEmotionBubble:: ; cd50
+
+wSlotMachineBet:: ; cd50
+; how many coins the player bet on the slot machine (1 to 3)
+
+wSavedPlayerFacingDirection:: ; cd50
+
+wWhichAnimationOffsets:: ; cd50
+; 0 = cut animation, 1 = boulder dust animation
+ ds 9
wTradedEnemyMonOTID:: ; cd59
ds 2
-wcd5b:: ds 1 ; used in some sprite stuff, town map and surge gym trash cans
-wcd5c:: ds 1 ; used in town map
+wStandingOnWarpPadOrHole:: ; cd5b
+; 0 = neither
+; 1 = warp pad
+; 2 = hole
+
+wOAMBaseTile:: ; cd5b
+
+wGymTrashCanIndex:: ; cd5b
+ ds 1
+
+wSymmetricSpriteOAMAttributes:: ; cd5c
+ ds 1
wMonPartySpriteSpecies:: ; cd5d
ds 1
@@ -694,25 +1144,49 @@ wRightGBMonSpecies:: ; cd5f
wFlags_0xcd60:: ; cd60
; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaneously)
; bit 1: boulder dust animation (from using Strength) pending
+; bit 3: using generic PC
; bit 5: don't play sound when A or B is pressed in menu
; bit 6: tried pushing against boulder once (you need to push twice before it will move)
ds 1
ds 9
-wcd6a:: ds 1 ; used as the output of the outcome of an item (successful, unsuccessful, can't be used now, etc.)
+wActionResultOrTookBattleTurn:: ; cd6a
+; This has overlapping related uses.
+; When the player tries to use an item or use certain field moves, 0 is stored
+; when the attempt fails and 1 is stored when the attempt succeeds.
+; In addition, some items store 2 for certain types of failures, but this
+; cannot happen in battle.
+; In battle, a non-zero value indicates the player has taken their turn using
+; something other than a move (e.g. using an item or switching pokemon).
+; So, when an item is successfully used in battle, this value becomes non-zero
+; and the player is not allowed to make a move and the two uses are compatible.
+ ds 1
wJoyIgnore:: ; cd6b
; Set buttons are ignored.
ds 1
-; as well as the said function, these values are used as a buffer for PlaceString
-wcd6c:: ds 1 ; used in pokemon status screen and battle stuff
-wcd6d:: ds 4 ; used solely for PlaceString
-wcd71:: ds 1 ; used with pokemon status screen
-wcd72:: ds 5 ; used with restoring PP
-wcd77:: ds 1 ; used as an end terminator for GetMonName: (@ is written to this location)
-wcd78:: ds 9 ; also used with restoring PP
+wDownscaledMonSize:: ; cd6c
+; size of downscaled mon pic used in pokeball entering/exiting animation
+; $00 = 5×5
+; $01 = 3×3
+
+wNumMovesMinusOne:: ; cd6c
+; FormatMovesString stores the number of moves minus one here
+ ds 1
+
+wcd6d:: ds 4 ; buffer for various data
+
+wStatusScreenCurrentPP:: ; cd71
+; temp variable used to print a move's current PP on the status screen
+ ds 1
+
+ ds 6
+
+wNormalMaxPPList:: ; cd78
+; list of normal max PP (without PP up) values
+ ds 9
wSerialOtherGameboyRandomNumberListBlock:: ; cd81
; buffer for transferring the random number list generated by the other gameboy
@@ -721,34 +1195,85 @@ wTileMapBackup2:: ; cd81
; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
ds 20 * 18
+wNamingScreenNameLength:: ; cee9
+
+wEvoOldSpecies:: ; cee9
+
wBuffer:: ; cee9
; Temporary storage area of 30 bytes.
+
+wTownMapCoords:: ; cee9
+; lower nybble is x, upper nybble is y
+
+wLearningMovesFromDayCare:: ; cee9
+; whether WriteMonMoves is being used to make a mon learn moves from day care
+; non-zero if so
+
+wChangeMonPicEnemyTurnSpecies:: ; cee9
+
wHPBarMaxHP:: ; cee9
- ds 2
+ ds 1
+
+wNamingScreenSubmitName:: ; ceea
+; non-zero when the player has chosen to submit the name
+
+wChangeMonPicPlayerTurnSpecies:: ; ceea
+
+wEvoNewSpecies:: ; ceea
+ ds 1
+
+wAlphabetCase:: ; ceeb
+; 0 = upper case
+; 1 = lower case
+
+wEvoMonTileOffset:: ; ceeb
+
wHPBarOldHP:: ; ceeb
- ds 2
+ ds 1
+
+wEvoCancelled:: ; ceec
+ ds 1
+
+wNamingScreenLetter:: ; ceed
+
wHPBarNewHP:: ; ceed
ds 2
wHPBarDelta:: ; ceef
ds 1
-wcef0:: ds 1 ; used with HP bar stuff, probably used with wBuffer too.
-wcef1:: ds 12 ; same case as above
+wHPBarTempHP:: ; cef0
+ ds 2
+
+ ds 11
wHPBarHPDifference:: ; cefd
ds 1
ds 7
-wcf05:: ds 1 ; used with enemy using healing moves
-wcf06:: ds 1 ; used with healing items as a storage value to store wWhichPokemon
+wAIItem:: ; cf05
+; the item that the AI used
+ ds 1
+
+wUsedItemOnWhichPokemon:: ; cf05
+ ds 1
wAnimSoundID:: ; cf07
; sound ID during battle animations
ds 1
-wcf08:: ds 1 ; used as a storage value for the bank to return to after a BankswitchHome (bankswitch in homebank)
-wcf09:: ds 1 ; used as a temp storage value for the bank to switch to
-wcf0a:: ds 1 ; used as flags for Poke Mart
+wBankswitchHomeSavedROMBank:: ; cf08
+; used as a storage value for the bank to return to after a BankswitchHome (bankswitch in homebank)
+ ds 1
+
+wBankswitchHomeTemp:: ; cf09
+; used as a temp storage value for the bank to switch to
+ ds 1
+
+wBoughtOrSoldItemInMart:: ; cf0a
+; 0 = nothing bought or sold in pokemart
+; 1 = bought or sold something in pokemart
+; this value is not used for anything
+ ds 1
wBattleResult:: ; cf0b
; $00 - win
@@ -761,15 +1286,22 @@ wAutoTextBoxDrawingControl:: ; cf0c
ds 1
wcf0d:: ds 1 ; used with some overworld scripts (not exactly sure what it's used for)
-wcf0e:: ds 1 ; used with some overworld collison check
-wcf0f:: ds 1 ; used with moving overworld sprites
+
+wTilePlayerStandingOn:: ; cf0e
+; used in CheckForTilePairCollisions2 to store the tile the player is on
+ ds 1
+
+wNPCNumScriptedSteps:: ds 1 ; cf0f
wNPCMovementScriptFunctionNum:: ; cf10
; which script function within the pointer table indicated by
; wNPCMovementScriptPointerTableNum
ds 1
-wcf11:: ds 1 ; used as a flag if the game needs to switch to the bank which the map is in when displaying a text id (flag is set during predefs)
+wTextPredefFlag:: ; cf11
+; bit 0: set when printing a text predef so that DisplayTextID doesn't switch
+; to the current map's bank
+ ds 1
wPredefParentBank:: ; cf12
ds 1
@@ -786,41 +1318,76 @@ wNPCMovementScriptSpriteOffset:: ; cf17
; sprite offset of sprite being controlled by NPC movement script
ds 1
-wcf18:: ds 2 ; used with overworld movement
+wScriptedNPCWalkCounter:: ; cf18
+ ds 1
+
+ ds 1
wOnSGB:: ; cf1b
; if running on SGB, it's 1, else it's 0
+
+wDefaultPaletteCommand:: ; cf1c
+ ds 1
+
+wPlayerHPBarColor:: ; cf1d
+
+wWholeScreenPaletteMonSpecies:: ; cf1d
+; species of the mon whose palette is used for the whole screen
ds 1
-wcf1c:: ds 1 ; used with sgb palettes
-wcf1d:: ds 1 ; used when displaying palettes for Pokemon
-wcf1e:: ds 1 ; used to display palettes for HP bar
-wcf1f:: ds 6 ; used to display HP bars in Pokemon Menu (probably palettes)
-wcf25:: ds 8 ; used to display HP bar for Pokemon Status Screen (probably palettes too)
-wcf2d:: ds 1 ; also used to display HP bar for Pokemon Menu (something about HP colour)
-wcf2e:: ds 2 ; more HP bar palette stuff.
-wcf30:: ds 7 ; used with palettes (apparently for Pokedex)
-wcf37:: ds 20 ; used with palletes too (used for Party Menu)
-wcf4b:: ds 1 ; storage buffer for various strings
-wcf4c:: ds 1 ; used with displaying EXP value, probably also overflowed with wcf4b
+wEnemyHPBarColor:: ; cf1e
+ ds 1
+
+; 0: green
+; 1: yellow
+; 2: red
+wPartyMenuHPBarColors:: ; cf1f
+ ds 6
+
+wStatusScreenHPBarColor:: ; cf25
+ ds 1
+
+ ds 7
+
+wCopyingSGBTileData:: ; c2fd
+
+wWhichPartyMenuHPBar:: ; cf2d
+
+wPalPacket:: ; cf2d
+ ds 1
+
+wPartyMenuBlkPacket:: ; cf2e
+; $30 bytes
+ ds 29
+
+wExpAmountGained:: ; cf4b
+; 2-byte big-endian number
+; the total amount of exp a mon gained
+
+wcf4b:: ds 2 ; storage buffer for various strings
+
wGainBoostedExp:: ; cf4d
- ds 1
+>>>>>>> 1a987d1e1ab96ca9553d4253c72858057332a03a
+ ds 1
+
ds 17
wGymCityName:: ; cf5f
-wStringBuffer1:: ; cf5f
- ds 16 + 1
+ ds 17
+
wGymLeaderName:: ; cf70
-wStringBuffer2:: ; cf70
- ds 16 + 1
-wStringBuffer3:: ; cf81
- ds 9 + 1
+ ds NAME_LENGTH
+
+wItemList:: ; cf7b
+ ds 16
-wList:: ; cf8b
+wListPointer:: ; cf8b
ds 2
-wcf8d:: ds 1 ; used in GetMonName
-wcf8e:: ds 1 ; also used in GetMonName (probably as a pointer)
+wUnusedCF8D:: ; cf8d
+; 2 bytes
+; used to store pointers, but never read
+ ds 2
wItemPrices:: ; cf8f
ds 2
@@ -831,7 +1398,9 @@ wWhichPokemon:: ; cf92
; which pokemon you selected
ds 1
-wcf93:: ds 1 ; used with lists
+wPrintItemPrices:: ; cf93
+; if non-zero, then print item prices when displaying lists
+ ds 1
wHPBarType:: ; cf94
; type of HP bar
@@ -843,9 +1412,22 @@ wListMenuID:: ; cf94
; ID used by DisplayListMenuID
ds 1
-wcf95:: ds 1 ; used with RemovePokemon (BoxMons, Daycare, Trades, etc.)
-wcf96:: ds 1 ; used with removing items
-wcf97:: ds 1 ; used with printing item quantities?
+wRemoveMonFromBox:: ; cf95
+; if non-zero, RemovePokemon will remove the mon from the current box,
+; else it will remove the mon from the party
+
+wMoveMonType:: ; cf95
+; 0 = move from box to party
+; 1 = move from party to box
+; 2 = move from daycare to party
+; 3 = move from party to daycare
+ ds 1
+
+wItemQuantity:: ; cf96
+ ds 1
+
+wMaxItemQuantity:: ; cf97
+ ds 1
; LoadMonData copies mon data here
wLoadedMon:: party_struct wLoadedMon ; cf98
@@ -865,16 +1447,41 @@ wTileInFrontOfPlayer:: ; cfc6
; background tile number in front of the player (either 1 or 2 steps ahead)
ds 1
-wMusicHeaderPointer:: ; cfc7
-; (the current music channel address - $4000) / 3
+wAudioFadeOutControl:: ; cfc7
+; The desired fade counter reload value is stored here prior to calling
+; PlaySound in order to cause the current music to fade out before the new
+; music begins playing. Storing 0 causes no fade out to occur and the new music
+; to begin immediately.
+; This variable has another use related to fade-out, as well. PlaySound stores
+; the sound ID of the music that should be played after the fade-out is finished
+; in this variable. FadeOutAudio checks if it's non-zero every V-Blank and
+; fades out the current audio if it is. Once it has finished fading out the
+; audio, it zeroes this variable and starts playing the sound ID stored in it.
+ ds 1
+
+wAudioFadeOutCounterReloadValue:: ; cfc8
+ ds 1
+
+wAudioFadeOutCounter:: ; cfc9
ds 1
-wcfc8:: ds 1 ; used with audio
-wcfc9:: ds 1 ; also used with audio
-wcfca:: ds 1 ; also used with audio too
+wLastMusicSoundID:: ; cfca
+; This is used to determine whether the default music is already playing when
+; attempting to play the default music (in order to avoid restarting the same
+; music) and whether the music has already been stopped when attempting to
+; fade out the current music (so that the new music can be begin immediately
+; instead of waiting).
+; It sometimes contains the sound ID of the last music played, but it may also
+; contain $ff (if the music has been stopped) or 0 (because some routines zero
+; it in order to prevent assumptions from being made about the current state of
+; the music).
+ ds 1
wUpdateSpritesEnabled:: ; cfcb
-; $01 enables UpdateSprites; anything else disables it
+; $00 = causes sprites to be hidden and the value to change to $ff
+; $01 = enabled
+; $ff = disabled
+; other values aren't used
ds 1
W_ENEMYMOVENUM:: ; cfcc
@@ -908,7 +1515,7 @@ wEnemyMonSpecies2:: ; cfd8
wBattleMonSpecies2:: ; cfd9
ds 1
-wEnemyMonNick:: ds 11 ; cfda
+wEnemyMonNick:: ds NAME_LENGTH ; cfda
wEnemyMon:: ; cfe5
; The wEnemyMon struct reaches past 0xcfff,
@@ -946,7 +1553,7 @@ wEnemyMonBaseStats:: ds 5
wEnemyMonCatchRate:: ds 1
wEnemyMonBaseExp:: ds 1
-wBattleMonNick:: ds 11 ; d009
+wBattleMonNick:: ds NAME_LENGTH ; d009
wBattleMon:: battle_struct wBattleMon ; d014
@@ -955,14 +1562,25 @@ W_TRAINERCLASS:: ; d031
ds 1
-wTrainerPicPointer:: ; wd033
+wTrainerPicPointer:: ; d033
ds 2
ds 1
-wd036:: ds 16 ; used as a temporary buffer to print "XXX learned YYY"
-wd046:: ds 1 ; used with trainer pointer stuff (not exactly sure, but the label is incremented and loaded with a value, so wd047 is accessed)
-wd047:: ds 1 ; used with unloading trainer data?
-wd048:: ds 2 ; used as a pointer for missable object loop
+wTempMoveNameBuffer:: ; d036
+
+wLearnMoveMonName:: ; d036
+; The name of the mon that is learning a move.
+ ds 16
+
+wTrainerBaseMoney:: ; d046
+; 2-byte BCD number
+; money received after battle = base money × level of highest-level enemy mon
+ ds 2
+
+wMissableObjectCounter:: ; d048
+ ds 1
+
+ ds 1
W_TRAINERNAME:: ; d04a
; 13 bytes for the letters of the opposing trainer
@@ -971,6 +1589,7 @@ W_TRAINERNAME:: ; d04a
ds 13
W_ISINBATTLE:: ; d057
+; lost battle, this is -1
; no battle, this is 0
; wild battle, this is 1
; trainer battle, this is 2
@@ -982,7 +1601,7 @@ wPartyGainExpFlags:: ; d058
W_CUROPPONENT:: ; d059
; in a wild battle, this is the species of pokemon
-; in a trainer battle, this is the trainer class + $C8
+; in a trainer battle, this is the trainer class + 200
ds 1
W_BATTLETYPE:: ; d05a
@@ -1074,7 +1693,7 @@ wPlayerNumAttacksLeft::
; when the player is attacking multiple times, the number of attacks left
ds 1
-W_PLAYERCONFUSEDCOUNTER:: ; wd06b
+W_PLAYERCONFUSEDCOUNTER:: ; d06b
ds 1
W_PLAYERTOXICCOUNTER:: ; d06c
@@ -1090,7 +1709,7 @@ wEnemyNumAttacksLeft:: ; d06f
; when the enemy is attacking multiple times, the number of attacks left
ds 1
-W_ENEMYCONFUSEDCOUNTER:: ; wd070
+W_ENEMYCONFUSEDCOUNTER:: ; d070
ds 1
W_ENEMYTOXICCOUNTER:: ; d071
@@ -1117,17 +1736,35 @@ wEscapedFromBattle::
; non-zero when an item or move that allows escape from battle was used
ds 1
-wAmountMoneyWon:: ; wd079 - wd07b
-wd079:: ds 1 ; used as a value to print the money won from a battle, as well as a misc. value in seafoam
-wd07a:: ds 1 ; same case as above
-wd07b:: ds 1 ; used as a buffer to convert the money won from a battle into BCD
+wAmountMoneyWon:: ; d079
+; 3-byte BCD number
+
+wObjectToHide:: ; d079
+ ds 1
+
+wObjectToShow:: ; d07a
+ ds 1
+
+ ds 1
W_ANIMATIONID:: ; d07c
; ID number of the current battle animation
ds 1
-wd07d:: ds 1 ; used with naming functions and party display type
-wd07e:: ds 3 ; used with mart and inventory
+wNamingScreenType:: ; d07d
+
+wPartyMenuTypeOrMessageID:: ; d07d
+
+wTempTilesetNumTiles:: ; d07d
+; temporary storage for the number of tiles in a tileset
+ ds 1
+
+wSavedListScrollOffset:: ; d07e
+; used by the pokemart code to save the existing value of wListScrollOffset
+; so that it can be restored when the player is done with the pokemart NPC
+ ds 1
+
+ ds 2
; base coordinates of frame block
W_BASECOORDX:: ; d081
@@ -1143,7 +1780,8 @@ W_FBTILECOUNTER:: ; d084
; counts how many tiles of the current frame block have been drawn
ds 1
-wd085:: ds 1 ; used with animating water/flowers
+wMovingBGTilesCounter2:: ; d085
+ ds 1
W_SUBANIMFRAMEDELAY:: ; d086
; duration of each frame of the current subanimation in terms of screen refreshes
@@ -1152,20 +1790,46 @@ W_SUBANIMCOUNTER:: ; d087
; counts the number of subentries left in the current subanimation
ds 1
-wd088:: ds 1 ; savefile checksum (if file is corrupted)
+wSaveFileStatus::
+; 1 = no save file or save file is corrupted
+; 2 = save file exists and no corruption has been detected
+ ds 1
W_NUMFBTILES:: ; d089
; number of tiles in current battle animation frame block
ds 1
+wFlashScreenLongCounter:: ; d08a
+
+wSpiralBallsBaseY:: ; d08a
+
+wFallingObjectMovementByte:: ; d08a
+; bits 0-6: index into FallingObjects_DeltaXs array (0 - 8)
+; bit 7: direction; 0 = right, 1 = left
+
+wNumShootingBalls:: ; d08a
+
wTradedMonMovingRight:: ; d08a
; $01 if mon is moving from left gameboy to right gameboy; $00 if vice versa
-wd08a:: ds 1 ; used with sprites and displaying the option menu on the main menu screen?
+wOptionsInitialized:: ; d08a
+
+wNewSlotMachineBallTile:: ; d08a
+
+wCoordAdjustmentAmount:: ; d08a
+; how much to add to the X/Y coord
+
+wUnusedD08A:: ; d08a
+ ds 1
-wTownMapSpriteBlinkingCounter:: ; d08b
+wSpiralBallsBaseX:: ; d08b
-wPartyMonAnimCounter:: ; d08b
+wNumFallingObjects:: ; d08b
+
+wSlideMonDelay:: ; d08b
+
+wAnimCounter:: ; d08b
+; generic counter variable for various animations
W_SUBANIMTRANSFORM:: ; d08b
; controls what transformations are applied to the subanimation
@@ -1191,19 +1855,30 @@ wEndBattleTextRomBank:: ; d092
W_SUBANIMADDRPTR:: ; d094
; the address _of the address_ of the current subanimation entry
ds 2
+
+wSlotMachineAllowMatchesCounter:: ; d096
+; If non-zero, the allow matches flag is always set.
+; There is a 1/256 (~0.4%) chance that this value will be set to 60, which is
+; the only way it can increase. Winning certain payout amounts will decrement it
+; or zero it.
+
W_SUBANIMSUBENTRYADDR:: ; d096
; the address of the current subentry of the current subanimation
ds 2
ds 2
-wd09a:: ds 1 ; used with the battle transition screen when entering a battle (screen slowly draws into black)
+wOutwardSpiralTileMapPointer:: ; d09a
+ ds 1
+
+wPartyMenuAnimMonEnabled:: ; d09b
wTownMapSpriteBlinkingEnabled:: ; d09b
; non-zero when enabled. causes nest locations to blink on and off.
; the town selection cursor will blink regardless of what this value is
-wd09b:: ds 1 ; also used with battle transition screen and move animations
+wUnusedD09B:: ; d09b
+ ds 1
W_FBDESTADDR:: ; d09c
; current destination address in OAM for frame blocks (big endian)
@@ -1216,15 +1891,31 @@ W_FBMODE:: ; d09e
; 02: move onto the next frame block with no delay and no cleaning OAM buffer
; 03: delay, but don't clean OAM buffer
; 04: delay, without cleaning OAM buffer, and do not advance [W_FBDESTADDR], so that the next frame block will overwrite this one
-; sprite data is written column by column, each byte contains 8 columns (one for ech bit)
-; for 2bpp sprites, pairs of two consecutive bytes (i.e. pairs of consecutive rows of sprite data)
-; contain the upper and lower bit of each of the 8 pixels, respectively
ds 1
+wLinkCableAnimBulgeToggle:: ; d09f
+; 0 = small
+; 1 = big
+
+wIntroNidorinoBaseTile:: ; d09f
+
+wOutwardSpiralCurrentDirection:: ; d09f
+
+wDropletTile:: ; d09f
+
wNewTileBlockID:: ; d09f
-wd09f:: ds 1 ; used with predef ReplaceTileBlock
-wd0a0:: ds 1 ; used in VBlank and ChangeBGPalColor0_4Frames
+wWhichBattleAnimTileset:: ; d09f
+
+wSquishMonCurrentDirection:: ; d09f
+; 0 = left
+; 1 = right
+
+wSlideMonUpBottomRowLeftTile:: ; d09f
+; the tile ID of the leftmost tile in the bottom row in AnimationSlideMonUp_
+ ds 1
+
+wDisableVBlankWYUpdate:: ds 1 ; if non-zero, don't update WY during V-blank
W_SPRITECURPOSX:: ; d0a1
ds 1
@@ -1282,7 +1973,10 @@ wPredefBank:: ; d0b7
ds 1
W_MONHEADER:: ; d0b8
-W_MONHDEXNUM:: ; d0b8
+
+W_MONHINDEX:: ; d0b8
+; In the ROM base stats data stucture, this is the dex number, but it is
+; overwritten with the internal index number after the header is copied to WRAM.
ds 1
W_MONHBASESTATS:: ; d0b9
@@ -1325,7 +2019,11 @@ W_MONHLEARNSET:: ; d0cc
flag_array 50 + 5
ds 1
-wd0d4:: ds 3 ; temp storage for hTilesetType
+wSavedTilesetType:: ; d0d4
+; saved at the start of a battle and then written back at the end of the battle
+ ds 1
+
+ ds 2
W_MONHPADDING:: ; d0d7
@@ -1333,12 +2031,12 @@ W_MONHPADDING:: ; d0d7
W_DAMAGE:: ; d0d7
ds 2
-ds 2
+ ds 2
-wRepelRemainingSteps:: ; wd0db
- ds 1
+wRepelRemainingSteps:: ; d0db
+ ds 1
-wMoves:: ; wd0dc
+wMoves:: ; d0dc
; list of moves for FormatMovesString
ds 4
@@ -1348,25 +2046,67 @@ wMoveNum:: ; d0e0
wMovesString:: ; d0e1
ds 56
-wd119:: ds 1 ; written to from W_CURMAPTILESET but never read
+wUnusedD119:: ; d119
+ ds 1
wWalkBikeSurfStateCopy:: ; d11a
; wWalkBikeSurfState is sometimes copied here, but it doesn't seem to be used for anything
ds 1
-wd11b:: ds 1 ; used with mart text box and cable club
-wd11c:: ds 1 ; temp storage value for catching pokemon
-wd11d:: ds 1 ; used with battle switchout and testing if the enemy mon fainted
+wInitListType:: ; d11b
+; the type of list for InitList to init
+ ds 1
+
+wCapturedMonSpecies:: ; d11c
+; 0 if no mon was captured
+ ds 1
+
+wFirstMonsNotOutYet:: ; d11d
+; Non-zero when the first player mon and enemy mon haven't been sent out yet.
+; It prevents the game from asking if the player wants to choose another mon
+; when the enemy sends out their first mon and suppresses the "no will to fight"
+; message when the game searches for the first non-fainted mon in the party,
+; which will be the first mon sent out.
+ ds 1
+
+; lower nybble: number of shakes
+; upper nybble: number of animations to play
+wPokeBallAnimData:: ; d11e
+
+wUsingPPUp:: ; d11e
+
+wMaxPP:: ; d11e
+
+; 0 for player, non-zero for enemy
+wCalculateWhoseStats:: ; d11e
+
+wTypeEffectiveness:: ; d11e
+
+wMoveType:: ; d11e
+
+wNumSetBits:: ; d11e
+
wd11e:: ds 1 ; used as a Pokemon and Item storage value. Also used as an output value for CountSetBits
-wd11f:: ds 1 ; used when running from battle and PartyMenuInit
+
+wForcePlayerToChooseMon:: ; d11f
+; When this value is non-zero, the player isn't allowed to exit the party menu
+; by pressing B and not choosing a mon.
+ ds 1
wNumRunAttempts::
; number of times the player has tried to run from battle
ds 1
-wd121:: ds 1 ; used with evolving pokemon
-wd122:: ds 2 ; saved ROM bank number for vblank
-wd124:: ds 1 ; used as an output value when determining if an item is a key item
+wEvolutionOccurred:: ; d121
+ ds 1
+
+wVBlankSavedROMBank:: ; d122
+ ds 1
+
+ ds 1
+
+wIsKeyItem:: ; d124
+ ds 1
wTextBoxID:: ; d125
ds 1
@@ -1376,22 +2116,67 @@ wd126:: ds 1 ; not exactly sure what this is used for, but it seems to be used a
W_CURENEMYLVL:: ; d127
ds 1
-wd128:: ds 1 ; used as a pointer to displaying Poke Mart inventory, also used to store the pointer of LoadItemList (pointer to item list initially in hl)
-wd129:: ds 1 ; second half of above mentioned pointer
-wd12a:: ds 1 ; Number of list entries for displaying a list
+wItemListPointer:: ; d128
+; pointer to list of items terminated by $FF
+ ds 2
+
+wListCount::
+; number of entries in a list
+ ds 1
wLinkState:: ; d12b
ds 1
-wTwoOptionMenuID:: ds 1
-wd12d:: ds 1 ; used with item menus and pokemart menu, also used with testing if all Pokemon Fainted?
-wd12e:: ds 1 ; used as an output value to determine if A or B was pressed in a yes/no box
-wd12f:: ds 1 ; used in some coordinatestuff, npc pathstuff, and game corner prize stuff
-wd130:: ds 1 ; saved value of screen Y coord of trainer sprite
-wd131:: ds 1 ; saved value of screen X coord of trainer sprite
-wd132:: ds 1 ; saved value of map Y coordinate of trainer sprite (not sure for purpose)
-wd133:: ds 6 ; saved value of map X coordinate of trainer sprite
-wd139:: ds 1 ; backup of selected menu entry for game corner prizes
+wTwoOptionMenuID:: ; d12c
+ ds 1
+
+wChosenMenuItem:: ; d12d
+; the id of the menu item the player ultimately chose
+
+wOutOfBattleBlackout:: ; d12d
+; non-zero when the whole party has fainted due to out-of-battle poison damage
+ ds 1
+
+wMenuExitMethod:: ; d12e
+; the way the user exited a menu
+; for list menus and the buy/sell/quit menu:
+; $01 = the user pressed A to choose a menu item
+; $02 = the user pressed B to cancel
+; for two-option menus:
+; $01 = the user pressed A with the first menu item selected
+; $02 = the user pressed B or pressed A with the second menu item selected
+ ds 1
+
+wDungeonWarpDataEntrySize:: ; d12f
+; the size is always 6, so they didn't need a variable in RAM for this
+
+wWhichPewterGuy:: ; d12f
+; 0 = museum guy
+; 1 = gym guy
+
+wWhichPrizeWindow:: ; d12f
+; there are 3 windows, from 0 to 2
+
+wGymGateTileBlock:: ; d12f
+; a horizontal or vertical gate block
+ ds 1
+
+wSavedSpriteScreenY:: ; d130
+ ds 1
+
+wSavedSpriteScreenX:: ; d131
+ ds 1
+
+wSavedSpriteMapY:: ; d132
+ ds 1
+
+wSavedSpriteMapX:: ; d133
+ ds 1
+
+ ds 5
+
+wWhichPrize:: ; d139
+ ds 1
wIgnoreInputCounter:: ; d13a
; counts downward each frame
@@ -1418,9 +2203,16 @@ W_PRIZE3:: ; d13f
wSerialRandomNumberListBlock:: ; d141
; the first 7 bytes are the preamble
-wd141:: ds 2 ; prices for prizes
-wd143:: ds 2 ; prices for prizes
-wd145:: ds 3 ; prices for prizes
+wPrize1Price:: ; d141
+ ds 2
+
+wPrize2Price:: ; d143
+ ds 2
+
+wPrize3Price:: ; d145
+ ds 2
+
+ ds 1
wLinkBattleRandomNumberList:: ; d148
; shared list of 9 random numbers, indexed by wLinkBattleRandomNumberListIndex
@@ -1429,13 +2221,29 @@ wLinkBattleRandomNumberList:: ; d148
wSerialPlayerDataBlock:: ; d152
; the first 6 bytes are the preamble
-wd152:: ds 1 ; used as a temporary storage for the item used
-wd153:: ds 3 ; written to during pokedex flag action but doesn't seem to be read from
-wd156:: ds 1 ; evolution stone ID used
-wd157:: ds 1 ; used with oak's lab script (related to npc movement directions), possibly indirectly accessed with values below
+wPseudoItemID:: ; d152
+; When a real item is being used, this is 0.
+; When a move is acting as an item, this is the ID of the item it's acting as.
+; For example, out-of-battle Dig is executed using a fake Escape Rope item. In
+; that case, this would be ESCAPE_ROPE.
+ ds 1
+
+wUnusedD153:: ; d153
+ ds 1
+
+ ds 2
+
+wEvoStoneItemID:: ; d156
+ ds 1
+
+wSavedNPCMovementDirections2Index:: ; d157
+ ds 1
wPlayerName:: ; d158
- ds 11
+ ds NAME_LENGTH
+
+
+wPartyDataStart::
wPartyCount:: ds 1 ; d163
wPartySpecies:: ds PARTY_LENGTH ; d164
@@ -1449,9 +2257,13 @@ wPartyMon4:: party_struct wPartyMon4 ; d1ef
wPartyMon5:: party_struct wPartyMon5 ; d21b
wPartyMon6:: party_struct wPartyMon6 ; d247
-wPartyMonOT:: ds 11 * PARTY_LENGTH ; d273
-wPartyMonNicks:: ds 11 * PARTY_LENGTH ; d2b5
+wPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d273
+wPartyMonNicks:: ds NAME_LENGTH * PARTY_LENGTH ; d2b5
+
+wPartyDataEnd::
+
+wMainDataStart::
wPokedexOwned:: ; d2f7
flag_array NUM_POKEMON
@@ -1473,7 +2285,7 @@ wPlayerMoney:: ; d347
ds 3 ; BCD
W_RIVALNAME:: ; d34a
- ds 11
+ ds NAME_LENGTH
W_OPTIONS:: ; d355
; bit 7 = battle animation
@@ -1493,13 +2305,21 @@ W_OBTAINEDBADGES:: ; d356
ds 1
-wd358:: ds 1 ; bit 0 set = no delay when printing text (W_OPTIONS is still checked though)
+wLetterPrintingDelayFlags:: ; d358
+; bit 0: If 0, limit the delay to 1 frame. Note that this has no effect if
+; the delay has been disabled entirely through bit 1 of this variable
+; or bit 6 of wd730.
+; bit 1: If 0, no delay.
+ ds 1
wPlayerID:: ; d359
ds 2
-wd35b:: ds 1 ; used with audio stuff
-wd35c:: ds 1 ; storage for audio bank for current map?
+wMapMusicSoundID:: ; d35b
+ ds 1
+
+wMapMusicROMBank:: ; d35c
+ ds 1
wMapPalOffset:: ; d35d
; offset subtracted from FadePal4 to get the background and object palettes for the current map
@@ -1530,7 +2350,8 @@ W_XBLOCKCOORD:: ; d364
wLastMap:: ; d365
ds 1
-wd366:: ds 1 ; W_CURMAPWIDTH of the last outdoor map visited when entering an inside map
+wUnusedD366:: ; d366
+ ds 1
W_CURMAPTILESET:: ; d367
ds 1
@@ -1559,58 +2380,98 @@ W_MAPCONNECTIONS:: ; d370
W_MAPCONN1PTR:: ; d371
ds 1
-wd372:: ds 1 ; some connection stuff, too bothered to label it
-wd373:: ds 1
-wd374:: ds 1
-wd375:: ds 1
-wd376:: ds 1
-wd377:: ds 1
-wd378:: ds 1
-wd379:: ds 1
-wd37a:: ds 1
-wd37b:: ds 1
+wNorthConnectionStripSrc:: ; d372
+ ds 2
+
+wNorthConnectionStripDest:: ; d374
+ ds 2
+
+wNorthConnectionStripWidth:: ; d376
+ ds 1
+
+wNorthConnectedMapWidth:: ; d377
+ ds 1
+
+wNorthConnectedMapYAlignment:: ; d378
+ ds 1
+
+wNorthConnectedMapXAlignment:: ; d379
+ ds 1
+
+wNorthConnectedMapViewPointer:: ; d37a
+ ds 2
W_MAPCONN2PTR:: ; d37c
ds 1
-wd37d:: ds 1
-wd37e:: ds 1
-wd37f:: ds 1
-wd380:: ds 1
-wd381:: ds 1
-wd382:: ds 1
-wd383:: ds 1
-wd384:: ds 1
-wd385:: ds 1
-wd386:: ds 1
+wSouthConnectionStripSrc:: ; d37d
+ ds 2
+
+wSouthConnectionStripDest:: ; d37f:
+ ds 2
+
+wSouthConnectionStripWidth:: ; d381
+ ds 1
+
+wSouthConnectedMapWidth:: ; d382
+ ds 1
+
+wSouthConnectedMapYAlignment:: ; d383
+ ds 1
+
+wSouthConnectedMapXAlignment:: ; d384
+ ds 1
+
+wSouthConnectedMapViewPointer:: ; d385
+ ds 2
W_MAPCONN3PTR:: ; d387
ds 1
-wd388:: ds 1
-wd389:: ds 1
-wd38a:: ds 1
-wd38b:: ds 1
-wd38c:: ds 1
-wd38d:: ds 1
-wd38e:: ds 1
-wd38f:: ds 1
-wd390:: ds 1
-wd391:: ds 1
+wWestConnectionStripSrc:: ; d388
+ ds 2
+
+wWestConnectionStripDest:: ; d38a
+ ds 2
+
+wWestConnectionStripHeight:: ; d38c
+ ds 1
+
+wWestConnectedMapWidth:: ; d38d
+ ds 1
+
+wWestConnectedMapYAlignment:: ; d38e
+ ds 1
+
+wWestConnectedMapXAlignment:: ; d38f
+ ds 1
+
+wWestConnectedMapViewPointer:: ; d390
+ ds 2
W_MAPCONN4PTR:: ; d392
ds 1
-wd393:: ds 1
-wd394:: ds 1
-wd395:: ds 1
-wd396:: ds 1
-wd397:: ds 1
-wd398:: ds 1
-wd399:: ds 1
-wd39a:: ds 1
-wd39b:: ds 1
-wd39c:: ds 1
+wEastConnectionStripSrc:: ; d393
+ ds 2
+
+wEastConnectionStripDest:: ; d395
+ ds 2
+
+wEastConnectionStripHeight:: ; d397
+ ds 1
+
+wEastConnectedMapWidth:: ; d398
+ ds 1
+
+wEastConnectedMapYAlignment:: ; d399
+ ds 1
+
+wEastConnectedMapXAlignment:: ; d39a
+ ds 1
+
+wEastConnectedMapViewPointer:: ; d39b
+ ds 2
W_SPRITESET:: ; d39d
; sprite set for the current map (11 sprite picture ID's)
@@ -1620,9 +2481,14 @@ W_SPRITESETID:: ; d3a8
; sprite set ID for the current map
ds 1
-wd3a9:: ds 1 ; used when getting the object data pointer
-wd3aa:: ds 3 ; second part of the pointer
-wd3ad:: ds 1 ; used as the beginning value for copying warp data
+wObjectDataPointerTemp:: ; d3a9
+ ds 2
+
+ ds 2
+
+wMapBackgroundTile:: ; d3ad
+; the tile shown outside the boundaries of the map
+ ds 1
wNumberOfWarps:: ; d3ae
; number of warps in current map
@@ -1675,9 +2541,17 @@ wd49c:: ds 1 ; d49b
ds 19
-wd4b0:: ds 1 ; number of signs on the map
-wd4b1:: ds 32 ; starting address for sign coords
-wd4d1:: ds 16 ; starting address for sign text IDs
+wNumSigns:: ; d4b0
+; number of signs in the current map (up to 16)
+ ds 1
+
+wSignCoords:: ; d4b1
+; 2 bytes each
+; Y, X
+ ds 32
+
+wSignTextIDs:: ; d4d1
+ ds 16
W_NUMSPRITES:: ; d4e1
; number of sprites on the current map
@@ -1698,16 +2572,35 @@ W_MAPSPRITEEXTRADATA:: ; d504
; two bytes per sprite (trainer class/item ID, trainer set ID)
ds 32
-wd524:: ds 1 ; map height in 2x2 metatiles, also used with checking connections
-wd525:: ds 1 ; map width in 2x2 metatiles, also used with checking connections
+wCurrentMapHeight2:: ; d524
+; map height in 2x2 meta-tiles
+ ds 1
+
+wCurrentMapWidth2:: ; d525
+; map width in 2x2 meta-tiles
+ ds 1
wMapViewVRAMPointer:: ; d526
; the address of the upper left corner of the visible portion of the BG tile map in VRAM
ds 2
-wd528:: ds 1 ; additional storage for directions
-wd529:: ds 1 ; same case as above, but used differently
-wd52a:: ds 1 ; same case as above
+; In the comments for the player direction variables below, "moving" refers to
+; both walking and changing facing direction without taking a step.
+
+wPlayerMovingDirection:: ; d528
+; if the player is moving, the current direction
+; if the player is not moving, zero
+; map scripts write to this in order to change the player's facing direction
+ ds 1
+
+wPlayerLastStopDirection:: ; d529
+; the direction in which the player was moving before the player last stopped
+ ds 1
+
+wPlayerDirection:: ; d52a
+; if the player is moving, the current direction
+; if the player is not moving, the last the direction in which the player moved
+ ds 1
W_TILESETBANK:: ; d52b
ds 1
@@ -1738,16 +2631,27 @@ wBoxItems:: ; d53b
ds 50 * 2
ds 1 ; end
-wd5a0:: ds 2 ; current box number
-wd5a2:: ds 1 ; number of HOF teams
-wd5a3:: ds 1 ; unused? (written to when loading map data)
+wCurrentBoxNum:: ; d5a0
+; bits 0-6: box number
+; bit 7: whether the player has changed boxes before
+ ds 2
+
+wNumHoFTeams:: ; d5a2
+; number of HOF teams
+ ds 1
+
+wUnusedD5A3:: ; d5a3
+ ds 1
wPlayerCoins:: ; d5a4
ds 2 ; BCD
W_MISSABLEOBJECTFLAGS:: ; d5a6
; bit array of missable objects. set = removed
- ds 39
+ ds 32
+wMissableObjectFlagsEnd::
+
+ ds 7
wd5cd:: ds 1 ; temp copy of c1x2 (sprite facing/anim)
@@ -1972,10 +2876,16 @@ W_SEAFOAMISLANDS5CURSCRIPT:: ; d668
W_ROUTE18GATECURSCRIPT:: ; d669
ds 1
- ds 134
+ ds 78
+wGameProgressFlagsEnd::
+
+ ds 56
-wd6f0:: ds 14 ; flags for hidden items?
-wd6fe:: ds 2 ; flags for hidden coins?
+wObtainedHiddenItemsFlags::
+ ds 14
+
+wObtainedHiddenCoinsFlags::
+ ds 2
wWalkBikeSurfState:: ; d700
; $00 = walking
@@ -2003,7 +2913,7 @@ W_FOSSILMON:: ; d710
ds 2
W_ENEMYMONORTRAINERCLASS:: ; d713
-; trainer classes start at $c8
+; trainer classes start at 200
ds 1
wPlayerJumpingYScreenCoordsIndex:: ; d714
@@ -2028,7 +2938,8 @@ wDestinationMap:: ; d71a
; destination map (for certain types of special warps, not ordinary walking)
ds 1
-wd71b:: ds 1 ; written to but doesn't seem to be read
+wUnusedD71B:: ; d71b
+ ds 1
wTileInFrontOfBoulderAndBoulderCollisionResult:: ; d71c
; used to store the tile in front of the boulder when trying to push a boulder
@@ -2043,7 +2954,10 @@ wWhichDungeonWarp:: ; d71e
; which dungeon warp within the source map was used
ds 1
-wd71f:: ds 9 ; used with card key
+wUnusedD71F:: ; d71f
+ ds 1
+
+ ds 8
wd728::
; bit 0: using Strength outside of battle
@@ -2051,7 +2965,12 @@ wd728::
ds 1
-wd72a:: ds 2 ; flags for if a gym is beaten, also used to determine whether to display your name on the gym statues
+wBeatGymFlags:: ; d72a
+; redundant because it matches W_OBTAINEDBADGES
+; used to determine whether to show name on statue and in two NPC text scripts
+ ds 1
+
+ ds 1
wd72c:: ; d72c
; bit 0: if not set, the 3 minimum steps between random battles have passed
@@ -2059,13 +2978,16 @@ wd72c:: ; d72c
wd72d:: ds 1 ; misc temp flags? (in some scripts, bit 6 and 7 set after a special battle (e.g. gym leaders) has been won)
; also used as a start menu flag
-wd72e:: ds 2 ; more temp misc flags, used with npc movement, main menu and other stuff
+
+wd72e::
+; bit 7: set if scripted NPC movement has been initialised
+ ds 2 ; more temp misc flags, used with npc movement, main menu and other stuff
wd730::
; bit 0: NPC sprite being moved by script
; bit 5: ignore joypad input
; bit 6: print text with no delay between each letter
-; bit 7: set if joypad states are being simulated in the overworld
+; bit 7: set if joypad states are being simulated in the overworld or an NPC's movement is being scripted
ds 1
ds 1
@@ -2085,17 +3007,22 @@ wd732:: ; d732
ds 1
W_FLAGS_D733:: ; d733
+; bit 0: running a test battle
; bit 4: use variable [W_CURMAPSCRIPT] instead of the provided index for next frame's map script (used to start battle when talking to trainers)
; bit 7: used fly out of battle
ds 1
-wd734:: ds 2 ; flag for indigo plateau and lorelei (not sure what it's for)
+wBeatLorelei:: ; d734
+; bit 1: set when you beat Lorelei and reset in Indigo Plateau lobby
+; the game uses this to tell when Elite 4 events need to be reset
+ ds 2
wd736:: ; d736
; bit 0: check if the player is standing on a door and make him walk down a step if so
; bit 1: the player is currently stepping down from a door
; bit 2: standing on a warp
-; bit 6: jumping down a ledge
+; bit 6: jumping down a ledge / fishing animation
+; bit 7: player sprite spinning due to spin tiles (Rocket hidehout / Viridian Gym)
ds 1
wCompletedInGameTradeFlags:: ; d737
@@ -2103,8 +3030,13 @@ wCompletedInGameTradeFlags:: ; d737
ds 2
-wd73b:: ds 1 ; used with elevator warps
-wd73c:: ds 3 ; also used with elevator warps
+wWarpedFromWhichWarp:: ; d73b
+ ds 1
+
+wWarpedFromWhichMap:: ; d73c
+ ds 1
+
+ ds 2
wCardKeyDoorY:: ; d73f
ds 1
@@ -2114,8 +3046,14 @@ wCardKeyDoorX:: ; d740
ds 2
-wd743:: ds 1 ; used with surge gym trash cans
-wd744:: ds 3 ; also used with surge gym trash cans
+wFirstLockTrashCanIndex:: ; d743
+ ds 1
+
+wSecondLockTrashCanIndex:: ; d744
+ ds 1
+
+ ds 2
+
wd747:: ds 3 ; below here are mostly in game flags
wd74a:: ds 1
@@ -2273,8 +3211,8 @@ wEnemyMon4:: party_struct wEnemyMon4
wEnemyMon5:: party_struct wEnemyMon5
wEnemyMon6:: party_struct wEnemyMon6
-wEnemyMonOT:: ds 11 * PARTY_LENGTH ; d9ac
-wEnemyMonNicks:: ds 11 * PARTY_LENGTH ; d9ee
+wEnemyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d9ac
+wEnemyMonNicks:: ds NAME_LENGTH * PARTY_LENGTH ; d9ee
W_TRAINERHEADERPTR:: ; da30
@@ -2282,7 +3220,12 @@ W_TRAINERHEADERPTR:: ; da30
ds 6
-wda38:: ds 1 ; used with cinnabar gym questions and pokemon tower 7F?
+wOpponentAfterWrongAnswer:: ; da38
+; the trainer the player must face after getting a wrong answer in the Cinnabar
+; gym quiz
+
+wUnusedDA38:: ; da38
+ ds 1
W_CURMAPSCRIPT:: ; da39
; index of current map script, mostly used as index for function pointer array
@@ -2312,11 +3255,15 @@ W_DAYCARE_IN_USE:: ; da48
; 1 if pokemon is in the daycare
ds 1
-W_DAYCAREMONNAME:: ds 11 ; da49
-W_DAYCAREMONOT:: ds 11 ; da54
+W_DAYCAREMONNAME:: ds NAME_LENGTH ; da49
+W_DAYCAREMONOT:: ds NAME_LENGTH ; da54
wDayCareMon:: box_struct wDayCareMon ; da5f
+wMainDataEnd::
+
+
+wBoxDataStart::
W_NUMINBOX:: ds 1 ; da80
wBoxSpecies:: ds MONS_PER_BOX + 1
@@ -2325,9 +3272,10 @@ wBoxMons::
wBoxMon1:: box_struct wBoxMon1 ; da96
wBoxMon2:: ds box_struct_length * (MONS_PER_BOX + -1) ; dab7
-wBoxMonOT:: ds 11 * MONS_PER_BOX ; dd2a
-wBoxMonNicks:: ds 11 * MONS_PER_BOX ; de06
+wBoxMonOT:: ds NAME_LENGTH * MONS_PER_BOX ; dd2a
+wBoxMonNicks:: ds NAME_LENGTH * MONS_PER_BOX ; de06
wBoxMonNicksEnd:: ; dee1
+wBoxDataEnd::
wdee2:: ds 1 ; dee1
wdee3:: ds 1 ; dee2
diff --git a/yellow/main.asm b/yellow/main.asm
index 82c3f2f8..94ba27bd 100755
--- a/yellow/main.asm
+++ b/yellow/main.asm
@@ -1118,13 +1118,13 @@ SECTION "bank1E",ROMX,BANK[$1E]
dr $78000,$78757
AnimationTileset2: ; 78757 (1e:4857)
dr $78757,$79816
-Func_79816: ; 79816 (1e:5816)
+HideSubstituteShowMonAnim: ; 79816 (1e:5816)
dr $79816,$798b2
-Func_798b2: ; 798b2 (1e:58b2)
+ReshowSubstituteAnim: ; 798b2 (1e:58b2)
dr $798b2,$798c8
AnimationTransformMon: ; 798c8 (1e:58c8)
dr $798c8,$798d4
-Func_798d4: ; 798d4 (1e:58d4)
+ChangeMonPic: ; 798d4 (1e:58d4)
dr $798d4,$7a19a
RedFishingTilesFront: INCBIN "gfx/red_fishing_tile_front.2bpp"