diff options
1184 files changed, 27142 insertions, 22376 deletions
@@ -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) @@ -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 @@ -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 @@ -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 @@ -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 Binary files differindex f5e05464..f5e05464 100644..100755 --- a/pic/ymon/electrode.png +++ b/pic/ymon/electrode.png 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 @@ -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 @@ -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 @@ -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" |