summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile16
-rw-r--r--asm/macros/event.inc17
-rw-r--r--berry_fix/Makefile203
-rw-r--r--berry_fix/asm/berry_fix_header.inc35
-rw-r--r--berry_fix/asm/loader.s119
-rw-r--r--berry_fix/charmap.txt1067
-rw-r--r--berry_fix/data/data.s4
-rw-r--r--berry_fix/ld_script.sed14
-rw-r--r--berry_fix/ld_script.txt31
-rw-r--r--berry_fix/payload/Makefile209
-rw-r--r--berry_fix/payload/asm/crt0.s82
-rw-r--r--berry_fix/payload/asm/libagbsyscall.s46
-rw-r--r--berry_fix/payload/asm/macros/function.inc29
-rw-r--r--berry_fix/payload/charmap.txt1067
-rw-r--r--berry_fix/payload/common_syms/agb_flash.txt10
-rw-r--r--berry_fix/payload/common_syms/main.txt9
-rw-r--r--berry_fix/payload/common_syms/rtc.txt2
-rw-r--r--berry_fix/payload/constants/gba_constants.inc490
-rw-r--r--berry_fix/payload/graphics/debug_digits.pngbin166 -> 0 bytes
-rw-r--r--berry_fix/payload/graphics/msg_box.pngbin2631 -> 0 bytes
-rw-r--r--berry_fix/payload/graphics/msg_box.tilemapbin8192 -> 0 bytes
-rw-r--r--berry_fix/payload/include/constants/game_stat.h56
-rw-r--r--berry_fix/payload/include/constants/vars.h196
-rw-r--r--berry_fix/payload/include/flash.h55
-rw-r--r--berry_fix/payload/include/gba/defines.h87
-rw-r--r--berry_fix/payload/include/gba/flash_internal.h85
-rw-r--r--berry_fix/payload/include/gba/gba.h12
-rw-r--r--berry_fix/payload/include/gba/io_reg.h770
-rw-r--r--berry_fix/payload/include/gba/isagbprint.h50
-rw-r--r--berry_fix/payload/include/gba/m4a_internal.h467
-rw-r--r--berry_fix/payload/include/gba/macro.h247
-rw-r--r--berry_fix/payload/include/gba/multiboot.h55
-rw-r--r--berry_fix/payload/include/gba/syscall.h57
-rw-r--r--berry_fix/payload/include/gba/types.h146
-rw-r--r--berry_fix/payload/include/global.berry.h62
-rw-r--r--berry_fix/payload/include/global.fieldmap.h310
-rw-r--r--berry_fix/payload/include/global.h876
-rw-r--r--berry_fix/payload/include/main.h45
-rw-r--r--berry_fix/payload/include/pokemon.h154
-rw-r--r--berry_fix/payload/include/rtc.h15
-rw-r--r--berry_fix/payload/include/siirtc.h54
-rw-r--r--berry_fix/payload/ld_script.sed14
-rw-r--r--berry_fix/payload/ld_script.txt107
-rw-r--r--berry_fix/payload/rom.sha11
-rw-r--r--berry_fix/payload/src/agb_flash.c296
-rw-r--r--berry_fix/payload/src/agb_flash_1m.c86
-rw-r--r--berry_fix/payload/src/agb_flash_le.c31
-rw-r--r--berry_fix/payload/src/agb_flash_mx.c193
-rw-r--r--berry_fix/payload/src/flash.c752
-rw-r--r--berry_fix/payload/src/main.c289
-rw-r--r--berry_fix/payload/src/rtc.c346
-rw-r--r--berry_fix/payload/src/siirtc.c432
-rw-r--r--berry_fix/payload/sym_bss.txt5
-rw-r--r--berry_fix/payload/sym_common.txt29
-rw-r--r--berry_fix/payload/sym_ewram.txt3
-rw-r--r--berry_fix/rom.sha11
-rw-r--r--charmap.txt1
-rw-r--r--data/ereader_link_data.s6
-rw-r--r--data/maps/AncientTomb/scripts.inc2
-rw-r--r--data/maps/AquaHideout_B1F/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattlePikeLobby/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_OutsideEast/scripts.inc2
-rw-r--r--data/maps/BirthIsland_Exterior/scripts.inc5
-rw-r--r--data/maps/DesertRuins/scripts.inc2
-rw-r--r--data/maps/FarawayIsland_Interior/scripts.inc5
-rw-r--r--data/maps/IslandCave/scripts.inc2
-rw-r--r--data/maps/LavaridgeTown_Gym_1F/scripts.inc4
-rw-r--r--data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc2
-rw-r--r--data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc18
-rw-r--r--data/maps/MarineCave_End/scripts.inc2
-rw-r--r--data/maps/MossdeepCity_StevensHouse/scripts.inc6
-rw-r--r--data/maps/MtPyre_3F/scripts.inc2
-rw-r--r--data/maps/NavelRock_Bottom/scripts.inc5
-rw-r--r--data/maps/NavelRock_Top/scripts.inc5
-rw-r--r--data/maps/NewMauville_Inside/scripts.inc6
-rw-r--r--data/maps/Route119_WeatherInstitute_2F/scripts.inc4
-rw-r--r--data/maps/Route120/scripts.inc2
-rw-r--r--data/maps/RustboroCity_DevonCorp_2F/scripts.inc12
-rw-r--r--data/maps/SecretBase_BlueCave1/map.json2
-rw-r--r--data/maps/SecretBase_BlueCave2/map.json2
-rw-r--r--data/maps/SecretBase_BlueCave3/map.json2
-rw-r--r--data/maps/SecretBase_BlueCave4/map.json2
-rw-r--r--data/maps/SecretBase_BrownCave1/map.json2
-rw-r--r--data/maps/SecretBase_BrownCave2/map.json2
-rw-r--r--data/maps/SecretBase_BrownCave3/map.json2
-rw-r--r--data/maps/SecretBase_BrownCave4/map.json2
-rw-r--r--data/maps/SecretBase_RedCave1/map.json2
-rw-r--r--data/maps/SecretBase_RedCave2/map.json2
-rw-r--r--data/maps/SecretBase_RedCave3/map.json2
-rw-r--r--data/maps/SecretBase_RedCave4/map.json2
-rw-r--r--data/maps/SecretBase_Shrub1/map.json2
-rw-r--r--data/maps/SecretBase_Shrub2/map.json2
-rw-r--r--data/maps/SecretBase_Shrub3/map.json2
-rw-r--r--data/maps/SecretBase_Shrub4/map.json2
-rw-r--r--data/maps/SecretBase_Tree1/map.json2
-rw-r--r--data/maps/SecretBase_Tree2/map.json2
-rw-r--r--data/maps/SecretBase_Tree3/map.json2
-rw-r--r--data/maps/SecretBase_Tree4/map.json2
-rw-r--r--data/maps/SecretBase_YellowCave1/map.json2
-rw-r--r--data/maps/SecretBase_YellowCave2/map.json2
-rw-r--r--data/maps/SecretBase_YellowCave3/map.json2
-rw-r--r--data/maps/SecretBase_YellowCave4/map.json2
-rw-r--r--data/maps/SkyPillar_Top/scripts.inc2
-rw-r--r--data/maps/SouthernIsland_Interior/scripts.inc12
-rw-r--r--data/maps/TerraCave_End/scripts.inc2
-rwxr-xr-xdata/mb_berry_fix.gbabin0 -> 15348 bytes
-rw-r--r--data/mb_colosseum.gba (renamed from data/pokemon_colosseum.mb)bin163840 -> 163840 bytes
-rw-r--r--data/mb_ereader.gba (renamed from data/ereader_link_data.bin)bin12512 -> 12512 bytes
-rw-r--r--data/multiboot_berry_glitch_fix.s2
-rw-r--r--data/multiboot_ereader.s6
-rw-r--r--data/multiboot_pokemon_colosseum.s2
-rw-r--r--data/script_cmd_table.inc12
-rw-r--r--data/scripts/kecleon.inc2
-rw-r--r--data/scripts/secret_base.inc6
-rw-r--r--gflib/bg.c66
-rw-r--r--gflib/bg.h11
-rw-r--r--graphics/bag/bag.pal (renamed from graphics/misc/bag.pal)0
-rw-r--r--graphics/bag/bag_female.png (renamed from graphics/misc/bag_female.png)bin1460 -> 1460 bytes
-rw-r--r--graphics/bag/bag_male.png (renamed from graphics/misc/bag_male.png)bin1637 -> 1637 bytes
-rw-r--r--graphics/bag/bag_pyramid.pal (renamed from graphics/interface/bag_pyramid.pal)0
-rw-r--r--graphics/bag/bag_pyramid.png (renamed from graphics/interface/bag_pyramid.png)bin778 -> 778 bytes
-rw-r--r--graphics/bag/berry_tag.bin (renamed from graphics/interface/berry_tag.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/bag/berry_tag_screen.pal (renamed from graphics/interface/berry_tag_screen.pal)0
-rw-r--r--graphics/bag/berry_tag_title.bin (renamed from graphics/interface/berry_tag_title.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/bag/check_berry.pal (renamed from graphics/interface/check_berry.pal)0
-rw-r--r--graphics/bag/check_berry.png (renamed from graphics/interface/check_berry.png)bin743 -> 743 bytes
-rw-r--r--graphics/bag/check_berry_circle.png (renamed from graphics/interface/check_berry_circle.png)bin233 -> 233 bytes
-rw-r--r--graphics/bag/hm.png (renamed from graphics/interface/hm.png)bin184 -> 184 bytes
-rw-r--r--graphics/bag/menu.bin (renamed from graphics/interface/bag_screen_tilemap.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/bag/menu.png (renamed from graphics/interface/bag_screen.png)bin548 -> 548 bytes
-rw-r--r--graphics/bag/menu_female.pal (renamed from graphics/interface/bag_screen_female.pal)0
-rw-r--r--graphics/bag/menu_male.pal (renamed from graphics/interface/bag_screen_male.pal)0
-rw-r--r--graphics/bag/menu_pyramid.bin (renamed from graphics/interface/bag_pyramid_tilemap.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/bag/menu_pyramid.pal (renamed from graphics/interface/bag_pyramid_interface.pal)0
-rw-r--r--graphics/bag/rotating_ball.png (renamed from graphics/interface/bag_spinner.png)bin212 -> 212 bytes
-rw-r--r--graphics/bag/select_button.png (renamed from graphics/interface/select_button.png)bin135 -> 135 bytes
-rw-r--r--graphics/balls/dive.png (renamed from graphics/interface/ball/dive.png)bin326 -> 326 bytes
-rw-r--r--graphics/balls/great.png (renamed from graphics/interface/ball/great.png)bin257 -> 257 bytes
-rw-r--r--graphics/balls/luxury.png (renamed from graphics/interface/ball/luxury.png)bin350 -> 350 bytes
-rw-r--r--graphics/balls/master.png (renamed from graphics/interface/ball/master.png)bin260 -> 260 bytes
-rw-r--r--graphics/balls/nest.png (renamed from graphics/interface/ball/nest.png)bin266 -> 266 bytes
-rw-r--r--graphics/balls/net.png (renamed from graphics/interface/ball/net.png)bin246 -> 246 bytes
-rw-r--r--graphics/balls/open.png (renamed from graphics/interface/ball_open.png)bin215 -> 215 bytes
-rw-r--r--graphics/balls/poke.png (renamed from graphics/interface/ball/poke.png)bin249 -> 249 bytes
-rw-r--r--graphics/balls/premier.png (renamed from graphics/interface/ball/premier.png)bin289 -> 289 bytes
-rw-r--r--graphics/balls/repeat.png (renamed from graphics/interface/ball/repeat.png)bin257 -> 257 bytes
-rw-r--r--graphics/balls/safari.png (renamed from graphics/interface/ball/safari.png)bin259 -> 259 bytes
-rw-r--r--graphics/balls/timer.png (renamed from graphics/interface/ball/timer.png)bin296 -> 296 bytes
-rw-r--r--graphics/balls/ultra.png (renamed from graphics/interface/ball/ultra.png)bin245 -> 245 bytes
-rw-r--r--graphics/battle_frontier/tourney_tree.bin (renamed from graphics/battle_frontier/tourney_line_mask_map.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/battle_frontier/tourney_tree.png (renamed from graphics/battle_frontier/tourney_bg.png)bin983 -> 983 bytes
-rw-r--r--graphics/battle_interface/hpbar_anim_unused.png (renamed from graphics/interface/hpbar_anim.png)bin192 -> 192 bytes
-rw-r--r--graphics/battle_interface/hpbar_unused.png (renamed from graphics/interface/party_menu_hpbar.png)bin136 -> 136 bytes
-rw-r--r--graphics/battle_interface/numbers1.png (renamed from graphics/interface/numbers1.png)bin201 -> 201 bytes
-rw-r--r--graphics/battle_interface/numbers2.png (renamed from graphics/interface/numbers2.png)bin215 -> 215 bytes
-rw-r--r--graphics/battle_interface/text_pp.pal (renamed from graphics/battle_frontier/text_pp.pal)0
-rw-r--r--graphics/berry_crush/text_windows.bin (renamed from graphics/berry_crush/crusher.bin)0
-rw-r--r--graphics/birch_speech/unused_beauty.png (renamed from graphics/unused/intro_birch_beauty.png)bin2183 -> 2183 bytes
-rw-r--r--graphics/cave_transition/black.pal (renamed from graphics/misc/cave_transition_black.pal)0
-rw-r--r--graphics/cave_transition/enter.pal (renamed from graphics/misc/cave_transition_enter.pal)0
-rw-r--r--graphics/cave_transition/exit.pal (renamed from graphics/misc/cave_transition_exit.pal)0
-rw-r--r--graphics/cave_transition/tilemap.bin (renamed from graphics/misc/cave_transition_map.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/cave_transition/tiles.png (renamed from graphics/misc/cave_transition.png)bin194 -> 194 bytes
-rw-r--r--graphics/cave_transition/white.pal (renamed from graphics/misc/cave_transition_white.pal)0
-rw-r--r--graphics/decorations/put_away_cursor.png (renamed from graphics/misc/decoration_putting_away_cursor.png)bin87 -> 87 bytes
-rw-r--r--graphics/diploma/hoenn.pal (renamed from graphics/misc/diploma_hoenn.pal)0
-rw-r--r--graphics/diploma/national.pal (renamed from graphics/misc/diploma_national.pal)0
-rw-r--r--graphics/diploma/tilemap.bin (renamed from graphics/misc/diploma_map.bin)bin4096 -> 4096 bytes
-rw-r--r--graphics/diploma/tiles.png (renamed from graphics/misc/diploma.png)bin2064 -> 2064 bytes
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_1.pal (renamed from graphics/misc/deoxys1.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_10.pal (renamed from graphics/misc/deoxys10.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_11.pal (renamed from graphics/misc/deoxys11.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_2.pal (renamed from graphics/misc/deoxys2.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_3.pal (renamed from graphics/misc/deoxys3.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_4.pal (renamed from graphics/misc/deoxys4.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_5.pal (renamed from graphics/misc/deoxys5.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_6.pal (renamed from graphics/misc/deoxys6.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_7.pal (renamed from graphics/misc/deoxys7.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_8.pal (renamed from graphics/misc/deoxys8.pal)0
-rw-r--r--graphics/field_effects/palettes/deoxys_rock_9.pal (renamed from graphics/misc/deoxys9.pal)0
-rw-r--r--graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.pngbin0 -> 155 bytes
-rw-r--r--graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.pngbin0 -> 146 bytes
-rw-r--r--graphics/field_effects/pics/deoxys_rock_fragment_top_left.pngbin0 -> 157 bytes
-rw-r--r--graphics/field_effects/pics/deoxys_rock_fragment_top_right.pngbin0 -> 157 bytes
-rw-r--r--graphics/field_effects/pics/emotion_exclamation.pngbin0 -> 166 bytes
-rw-r--r--graphics/field_effects/pics/emotion_heart.pngbin0 -> 183 bytes
-rw-r--r--graphics/field_effects/pics/emotion_question.pngbin0 -> 175 bytes
-rw-r--r--graphics/field_effects/pics/field_move_streaks.bin (renamed from graphics/misc/field_move_streaks_map.bin)bin640 -> 640 bytes
-rw-r--r--graphics/field_effects/pics/field_move_streaks.png (renamed from graphics/misc/field_move_streaks.png)bin157 -> 157 bytes
-rw-r--r--graphics/field_effects/pics/field_move_streaks_indoors.bin (renamed from graphics/misc/darkness_field_move_streaks_map.bin)bin640 -> 640 bytes
-rw-r--r--graphics/field_effects/pics/field_move_streaks_indoors.png (renamed from graphics/misc/darkness_field_move_streaks.png)bin159 -> 159 bytes
-rw-r--r--graphics/field_effects/pics/hof_monitor_big.pngbin0 -> 189 bytes
-rw-r--r--graphics/field_effects/pics/hof_monitor_small.pngbin0 -> 236 bytes
-rw-r--r--graphics/field_effects/pics/pokeball_glow.pngbin0 -> 155 bytes
-rw-r--r--graphics/field_effects/pics/pokecenter_monitor/0.png (renamed from graphics/misc/pokecenter_monitor/0.png)bin143 -> 143 bytes
-rw-r--r--graphics/field_effects/pics/pokecenter_monitor/1.png (renamed from graphics/misc/pokecenter_monitor/1.png)bin150 -> 150 bytes
-rw-r--r--graphics/field_effects/pics/spotlight.png (renamed from graphics/misc/spotlight.png)bin312 -> 312 bytes
-rw-r--r--graphics/interface/main_menu_bg.pal (renamed from graphics/misc/main_menu_bg.pal)0
-rw-r--r--graphics/interface/main_menu_text.pal (renamed from graphics/misc/main_menu_text.pal)0
-rw-r--r--graphics/interface/mon_markings.png (renamed from graphics/misc/mon_markings.png)bin489 -> 489 bytes
-rw-r--r--graphics/interface/mon_markings_menu.png (renamed from graphics/misc/mon_markings_menu.png)bin353 -> 353 bytes
-rw-r--r--graphics/interface/option_menu_equals_sign.png (renamed from graphics/misc/option_menu_equals_sign.png)bin81 -> 81 bytes
-rw-r--r--graphics/interface/option_menu_text.pal (renamed from graphics/misc/option_menu_text.pal)0
-rw-r--r--graphics/interface/swap_line.png (renamed from graphics/interface/bag_swap.png)bin159 -> 159 bytes
-rw-r--r--graphics/link/321start.png (renamed from graphics/minigame_countdown/321start.png)bin815 -> 815 bytes
-rw-r--r--graphics/link/321start_static.png (renamed from graphics/minigame_countdown/321start_static.png)bin778 -> 778 bytes
-rw-r--r--graphics/link/comm_error_bg.png (renamed from graphics/interface/comm_error_bg.png)bin71 -> 71 bytes
-rw-r--r--graphics/link/test_digits.png (renamed from graphics/interface/link_test_digits.png)bin269 -> 269 bytes
-rw-r--r--graphics/link/wireless_display.bin (renamed from graphics/interface/wireless_link_display.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/link/wireless_display.png (renamed from graphics/interface/wireless_link_display.png)bin904 -> 904 bytes
-rw-r--r--graphics/link/wireless_icon.png (renamed from graphics/interface/wireless_link_icon.png)bin295 -> 295 bytes
-rw-r--r--graphics/link/wireless_info_screen.bin (renamed from graphics/interface/wireless_info_screen.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/link/wireless_info_screen.pal (renamed from graphics/interface/wireless_info_screen.pal)0
-rw-r--r--graphics/link/wireless_info_screen.png (renamed from graphics/interface/wireless_info_screen.png)bin1210 -> 1210 bytes
-rw-r--r--graphics/map_popup/brick.png (renamed from graphics/interface/map_popup/brick.png)bin412 -> 412 bytes
-rw-r--r--graphics/map_popup/brick_outline.png (renamed from graphics/interface/map_popup/brick_outline.png)bin461 -> 461 bytes
-rw-r--r--graphics/map_popup/marble.png (renamed from graphics/interface/map_popup/marble.png)bin509 -> 509 bytes
-rw-r--r--graphics/map_popup/marble_outline.png (renamed from graphics/interface/map_popup/marble_outline.png)bin494 -> 494 bytes
-rw-r--r--graphics/map_popup/stone.png (renamed from graphics/interface/map_popup/stone.png)bin201 -> 201 bytes
-rw-r--r--graphics/map_popup/stone2.png (renamed from graphics/interface/map_popup/stone2.png)bin201 -> 201 bytes
-rw-r--r--graphics/map_popup/stone2_outline.png (renamed from graphics/interface/map_popup/stone2_outline.png)bin407 -> 407 bytes
-rw-r--r--graphics/map_popup/stone_outline.png (renamed from graphics/interface/map_popup/stone_outline.png)bin407 -> 407 bytes
-rw-r--r--graphics/map_popup/underwater.pal (renamed from graphics/interface/map_popup/underwater.pal)0
-rw-r--r--graphics/map_popup/underwater.png (renamed from graphics/interface/map_popup/underwater.png)bin304 -> 304 bytes
-rw-r--r--graphics/map_popup/underwater_outline.png (renamed from graphics/interface/map_popup/underwater_outline.png)bin485 -> 485 bytes
-rw-r--r--graphics/map_popup/wood.png (renamed from graphics/interface/map_popup/wood.png)bin338 -> 338 bytes
-rw-r--r--graphics/map_popup/wood_outline.png (renamed from graphics/interface/map_popup/wood_outline.png)bin391 -> 391 bytes
-rw-r--r--graphics/misc/deoxys_rock_fragment_bottom_left.pngbin100 -> 0 bytes
-rw-r--r--graphics/misc/deoxys_rock_fragment_bottom_right.pngbin91 -> 0 bytes
-rw-r--r--graphics/misc/deoxys_rock_fragment_top_left.pngbin99 -> 0 bytes
-rw-r--r--graphics/misc/deoxys_rock_fragment_top_right.pngbin102 -> 0 bytes
-rw-r--r--graphics/misc/emotion_exclamation.pngbin108 -> 0 bytes
-rw-r--r--graphics/misc/emotion_heart.pngbin126 -> 0 bytes
-rw-r--r--graphics/misc/emotion_question.pngbin117 -> 0 bytes
-rw-r--r--graphics/misc/hof_monitor_big.pngbin184 -> 0 bytes
-rw-r--r--graphics/misc/hof_monitor_small.pngbin177 -> 0 bytes
-rw-r--r--graphics/misc/pokeball_glow.pngbin100 -> 0 bytes
-rw-r--r--graphics/party_menu/bg.bin (renamed from graphics/interface/party_menu_bg.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/party_menu/bg.pal (renamed from graphics/interface/party_menu_bg.pal)0
-rw-r--r--graphics/party_menu/bg.png (renamed from graphics/interface/party_menu_bg.png)bin613 -> 613 bytes
-rw-r--r--graphics/party_menu/cancel_button.bin (renamed from graphics/interface/party_menu_cancel_button.bin)0
-rw-r--r--graphics/party_menu/confirm_button.bin (renamed from graphics/interface/party_menu_confirm_button.bin)0
-rw-r--r--graphics/party_menu/hold_icons.png (renamed from graphics/interface/hold_icons.png)bin177 -> 177 bytes
-rw-r--r--graphics/party_menu/pokeball.png (renamed from graphics/interface/party_menu_pokeball.png)bin330 -> 330 bytes
-rw-r--r--graphics/party_menu/pokeball_small.png (renamed from graphics/interface/party_menu_pokeball_small.png)bin261 -> 261 bytes
-rw-r--r--graphics/pokeblock/device.png (renamed from graphics/interface/pokeblock_device.png)bin530 -> 530 bytes
-rw-r--r--graphics/pokeblock/feeding_bg.bin (renamed from graphics/interface/pokeblock_feeding_bg_map.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/pokeblock/menu.bin (renamed from graphics/interface/pokeblock.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/pokeblock/menu.pal (renamed from graphics/interface/pokeblock_case_frame.pal)0
-rw-r--r--graphics/pokeblock/menu.png (renamed from graphics/interface/pokeblock_case_frame.png)bin426 -> 426 bytes
-rwxr-xr-xgraphics/pokemon_storage/close_box_button.bin1
-rwxr-xr-xgraphics/pokemon_storage/party_slot_empty.bin1
-rwxr-xr-xgraphics/pokemon_storage/party_slot_filled.bin1
-rwxr-xr-xgraphics/pokemon_storage/pkmn_data.bin1
-rw-r--r--graphics/pokemon_storage/text_windows.pal (renamed from graphics/pokemon_storage/unknown.pal)0
-rw-r--r--graphics/rotating_gates/l1.png (renamed from graphics/misc/rotating_gate_1.png)bin119 -> 119 bytes
-rw-r--r--graphics/rotating_gates/l2.png (renamed from graphics/misc/rotating_gate_2.png)bin136 -> 136 bytes
-rw-r--r--graphics/rotating_gates/l3.png (renamed from graphics/misc/rotating_gate_3.png)bin136 -> 136 bytes
-rw-r--r--graphics/rotating_gates/l4.png (renamed from graphics/misc/rotating_gate_4.png)bin136 -> 136 bytes
-rw-r--r--graphics/rotating_gates/t1.png (renamed from graphics/misc/rotating_gate_5.png)bin122 -> 122 bytes
-rw-r--r--graphics/rotating_gates/t2.png (renamed from graphics/misc/rotating_gate_6.png)bin144 -> 144 bytes
-rw-r--r--graphics/rotating_gates/t3.png (renamed from graphics/misc/rotating_gate_7.png)bin144 -> 144 bytes
-rw-r--r--graphics/rotating_gates/t4.png (renamed from graphics/misc/rotating_gate_8.png)bin142 -> 142 bytes
-rw-r--r--graphics/shop/menu.bin (renamed from graphics/interface/mart_frame.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/shop/menu.png (renamed from graphics/interface/mart_frame.png)bin314 -> 314 bytes
-rw-r--r--graphics/shop/money.png (renamed from graphics/interface/money.png)bin210 -> 210 bytes
-rw-r--r--graphics/starter_choose/birch_bag.bin (renamed from graphics/misc/birch_bag_map.bin)bin1280 -> 1280 bytes
-rw-r--r--graphics/starter_choose/birch_bag.png (renamed from graphics/misc/birch_bag.png)bin1304 -> 1304 bytes
-rw-r--r--graphics/starter_choose/birch_grass.bin (renamed from graphics/misc/birch_grass_map.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/starter_choose/birch_grass.png (renamed from graphics/misc/birch_grass.png)bin691 -> 691 bytes
-rw-r--r--graphics/starter_choose/pokeball_selection.png (renamed from graphics/misc/pokeball_selection.png)bin635 -> 635 bytes
-rw-r--r--graphics/starter_choose/starter_circle.png (renamed from graphics/misc/starter_circle.png)bin349 -> 349 bytes
-rw-r--r--graphics/summary_screen/a_button.png (renamed from graphics/interface/summary_a_button.png)bin225 -> 225 bytes
-rw-r--r--graphics/summary_screen/b_button.png (renamed from graphics/interface/summary_b_button.png)bin225 -> 225 bytes
-rw-r--r--graphics/summary_screen/effect_battle.bin (renamed from graphics/interface/powacc_tilemap.bin)bin160 -> 160 bytes
-rw-r--r--graphics/summary_screen/effect_cancel.bin (renamed from graphics/interface/summary.bin)bin128 -> 128 bytes
-rw-r--r--graphics/summary_screen/effect_contest.bin (renamed from graphics/interface/appealjam_tilemap.bin)bin160 -> 160 bytes
-rw-r--r--graphics/summary_screen/markings.pal (renamed from graphics/interface/summary_markings.pal)0
-rw-r--r--graphics/summary_screen/move_select.png (renamed from graphics/interface/summary_frames.png)bin273 -> 273 bytes
-rw-r--r--graphics/summary_screen/page_battle_moves.bin (renamed from graphics/interface/summary_page_battle_moves.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/summary_screen/page_contest_moves.bin (renamed from graphics/interface/summary_page_contest_moves.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/summary_screen/page_info.bin (renamed from graphics/interface/summary_page_info.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/summary_screen/page_info_egg.bin (renamed from graphics/interface/summary_page_info_copy.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/summary_screen/page_skills.bin (renamed from graphics/interface/summary_page_skills.bin)bin2048 -> 2048 bytes
-rw-r--r--graphics/summary_screen/status_tilemap.bin (renamed from graphics/interface/status_tilemap.bin)bin40 -> 40 bytes
-rw-r--r--graphics/summary_screen/tiles.pal (renamed from graphics/interface/summary_screen.pal)0
-rw-r--r--graphics/summary_screen/tiles.png (renamed from graphics/interface/summary_screen.png)bin1633 -> 1633 bytes
-rw-r--r--graphics/trade/gba.png (renamed from graphics/link/gba.png)bin1253 -> 1253 bytes
-rw-r--r--graphics/trade/gba_pal2.pal (renamed from graphics/link/gba_pal2.pal)0
-rw-r--r--graphics/trainer_hill/ereader.pal (renamed from graphics/misc/trainer_hill_ereader.pal)0
-rw-r--r--graphics_file_rules.mk15
-rw-r--r--include/battle.h6
-rw-r--r--include/bike.h10
-rw-r--r--include/constants/flags.h2
-rw-r--r--include/fieldmap.h2
-rw-r--r--include/graphics.h76
-rw-r--r--ld_script.txt4
-rw-r--r--ld_script_modern.txt4
-rw-r--r--src/battle_dome.c4
-rwxr-xr-xsrc/berry_crush.c8
-rw-r--r--src/berry_tag_screen.c2
-rw-r--r--src/bike.c26
-rw-r--r--src/data/graphics/berries.h10
-rw-r--r--src/data/graphics/interface_pokeballs.h37
-rw-r--r--src/data/graphics/pokeballs.h37
-rw-r--r--src/data/party_menu.h36
-rw-r--r--src/decoration.c4
-rw-r--r--src/diploma.c8
-rwxr-xr-xsrc/ereader_screen.c8
-rw-r--r--src/field_control_avatar.c2
-rw-r--r--src/field_effect.c41
-rw-r--r--src/field_player_avatar.c107
-rw-r--r--src/field_specials.c22
-rw-r--r--src/field_tasks.c2
-rw-r--r--src/fldeff_flash.c12
-rw-r--r--src/graphics.c114
-rwxr-xr-xsrc/item_menu.c2
-rw-r--r--src/item_menu_icons.c8
-rw-r--r--src/link.c12
-rw-r--r--src/link_rfu_3.c4
-rw-r--r--src/main_menu.c4
-rw-r--r--src/map_name_popup.c38
-rw-r--r--src/menu_helpers.c4
-rw-r--r--src/minigame_countdown.c8
-rw-r--r--src/mon_markings.c4
-rw-r--r--src/money.c6
-rw-r--r--src/naming_screen.c6
-rw-r--r--src/option_menu.c4
-rw-r--r--src/pokeball.c48
-rw-r--r--src/pokemon_storage_system.c135
-rw-r--r--src/pokemon_summary_screen.c33
-rw-r--r--src/region_map.c37
-rw-r--r--src/rotating_gate.c28
-rw-r--r--src/scrcmd.c12
-rwxr-xr-xsrc/shop.c6
-rw-r--r--src/starter_choose.c18
-rw-r--r--src/trainer_hill.c2
-rw-r--r--src/trainer_see.c6
-rw-r--r--src/wallclock.c84
-rw-r--r--src/wireless_communication_status_screen.c6
342 files changed, 703 insertions, 10522 deletions
diff --git a/.gitignore b/.gitignore
index 23b01d1e0..cac4a07e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
*.i
*.elf
*.gba
+!data/*.gba
*.sgm
*.sa1
*.ss[0-9]
diff --git a/Makefile b/Makefile
index 7b2f79877..6283a87fe 100644
--- a/Makefile
+++ b/Makefile
@@ -150,7 +150,7 @@ MAKEFLAGS += --no-print-directory
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
-.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix libagbsyscall modern tidymodern tidynonmodern
+.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) libagbsyscall modern tidymodern tidynonmodern
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
@@ -158,7 +158,7 @@ infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst
# Disable dependency scanning for clean/tidy/tools
# Use a separate minimal makefile for speed
# Since we don't need to reload most of this makefile
-ifeq (,$(filter-out all rom compare modern berry_fix libagbsyscall syms,$(MAKECMDGOALS)))
+ifeq (,$(filter-out all rom compare modern libagbsyscall syms,$(MAKECMDGOALS)))
$(call infoshell, $(MAKE) -f make_tools.mk)
else
NODEP ?= 1
@@ -169,8 +169,8 @@ ifeq (,$(MAKECMDGOALS))
SCAN_DEPS ?= 1
else
# clean, tidy, tools, mostlyclean, clean-tools, $(TOOLDIRS), tidymodern, tidynonmodern don't even build the ROM
- # berry_fix and libagbsyscall do their own thing
- ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) tidymodern tidynonmodern berry_fix libagbsyscall,$(MAKECMDGOALS)))
+ # libagbsyscall does its own thing
+ ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) tidymodern tidynonmodern libagbsyscall,$(MAKECMDGOALS)))
SCAN_DEPS ?= 0
else
SCAN_DEPS ?= 1
@@ -243,7 +243,6 @@ mostlyclean: tidynonmodern tidymodern
rm -f $(DATA_ASM_SUBDIR)/maps/connections.inc $(DATA_ASM_SUBDIR)/maps/events.inc $(DATA_ASM_SUBDIR)/maps/groups.inc $(DATA_ASM_SUBDIR)/maps/headers.inc
find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} +
rm -f $(AUTO_GEN_TARGETS)
- @$(MAKE) clean -C berry_fix
@$(MAKE) clean -C libagbsyscall
tidy: tidynonmodern tidymodern
@@ -417,7 +416,7 @@ endif
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
-$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) berry_fix libagbsyscall
+$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall
@echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ <objects> <lib>"
@cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
@@ -428,11 +427,6 @@ $(ROM): $(ELF)
modern: all
-berry_fix/berry_fix.gba: berry_fix
-
-berry_fix:
- @$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
-
libagbsyscall:
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index 28f010ef2..58e37d0a6 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -604,9 +604,8 @@
.endm
@ Blocks script execution until the movements being applied to the specified (localId) object finish.
- @ If the specified object is 0, then the command will block script execution until all objects
- @ affected by applymovement finish their movements. If the specified object is not currently being
- @ manipulated with applymovement, then this command does nothing.
+ @ If localId is 0, then the id of the last-moved object will be used instead. If the specified object
+ @ is not currently being manipulated with applymovement, then this command does nothing.
@ If no map is specified, then the current map is used.
.macro waitmovement localId:req, map
.ifb \map
@@ -987,7 +986,7 @@
@ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters.
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
- .macro givemon species:req, level:req, item:req
+ .macro givemon species:req, level:req, item=ITEM_NONE
.byte 0x79
.2byte \species
.byte \level
@@ -1433,7 +1432,7 @@
@ Prepares to start a wild battle against a 'species' at 'level' holding 'item'. Running this command will not affect
@ normal wild battles. You start the prepared battle with dowildbattle.
- .macro setwildbattle species:req, level:req, item:req
+ .macro setwildbattle species:req, level:req, item=ITEM_NONE
.byte 0xb6
.2byte \species
.byte \level
@@ -1932,3 +1931,11 @@
waitbuttonpress
closebraillemessage
.endm
+
+ @ Creates an "event legal" Pokémon for an encounter
+ .macro seteventmon species:req, level:req, item=ITEM_NONE
+ setvar VAR_0x8004, \species
+ setvar VAR_0x8005, \level
+ setvar VAR_0x8006, \item
+ special CreateEventLegalEnemyMon
+ .endm
diff --git a/berry_fix/Makefile b/berry_fix/Makefile
deleted file mode 100644
index 464e5f9e9..000000000
--- a/berry_fix/Makefile
+++ /dev/null
@@ -1,203 +0,0 @@
-TOOLCHAIN := $(DEVKITARM)
-COMPARE ?= 0
-
-# don't use dkP's base_tools anymore
-# because the redefinition of $(CC) conflicts
-# with when we want to use $(CC) to preprocess files
-# thus, manually create the variables for the bin
-# files, or use arm-none-eabi binaries on the system
-# if dkP is not installed on this system
-
-ifneq (,$(TOOLCHAIN))
-ifneq ($(wildcard $(TOOLCHAIN)/bin),)
-export PATH := $(TOOLCHAIN)/bin:$(PATH)
-endif
-endif
-
-PREFIX := arm-none-eabi-
-OBJCOPY := $(PREFIX)objcopy
-AS := $(PREFIX)as
-LD := $(PREFIX)ld
-
-# note: the makefile must be set up so MODERNCC is never called
-# if MODERN=0
-MODERNCC := $(PREFIX)gcc
-
-ifeq ($(OS),Windows_NT)
-EXE := .exe
-else
-EXE :=
-endif
-
-# use arm-none-eabi-cpp for macOS
-# as macOS's default compiler is clang
-# and clang's preprocessor will warn on \u
-# when preprocessing asm files, expecting a unicode literal
-# we can't unconditionally use arm-none-eabi-cpp
-# as installations which install binutils-arm-none-eabi
-# don't come with it
-ifneq ($(MODERN),1)
- ifeq ($(shell uname -s),Darwin)
- CPP := $(PREFIX)cpp
- else
- CPP := $(CC) -E
- endif
-else
- CPP := $(PREFIX)cpp
-endif
-
-GAME_CODE := AGBJ
-MAKER_CODE := 01
-REVISION := 0
-
-SHELL := /bin/bash -o pipefail
-
-CPPFLAGS := -I ../tools/agbcc/include -I ../tools/agbcc -iquote include -nostdinc -undef
-
-ROM := berry_fix.gba
-OBJ_DIR := build
-CC1 := ../tools/agbcc/bin/agbcc$(EXE)
-override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
-
-
-ELF = $(ROM:.gba=.elf)
-MAP = $(ROM:.gba=.map)
-
-C_SUBDIR = src
-ASM_SUBDIR = asm
-DATA_ASM_SUBDIR = data
-
-C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR)
-ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR)
-DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
-
-ASFLAGS := -mcpu=arm7tdmi
-
-LDFLAGS = -Map ../$(MAP)
-
-SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
-GFX := ../tools/gbagfx/gbagfx$(EXE)
-AIF := ../tools/aif2pcm/aif2pcm$(EXE)
-MID := ../tools/mid2agb/mid2agb$(EXE)
-SCANINC := ../tools/scaninc/scaninc$(EXE)
-PREPROC := ../tools/preproc/preproc$(EXE)
-RAMSCRGEN := ../tools/ramscrgen/ramscrgen$(EXE)
-FIX := ../tools/gbafix/gbafix$(EXE)
-
-# Clear the default suffixes
-.SUFFIXES:
-# Don't delete intermediate files
-.SECONDARY:
-# Delete files that weren't built properly
-.DELETE_ON_ERROR:
-
-# Secondary expansion is required for dependency variables in object rules.
-.SECONDEXPANSION:
-
-.PHONY: all rom clean compare tidy payload
-
-C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c)
-C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
-
-ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
-ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS))
-
-DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s)
-DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS))
-
-SONG_SRCS := $(wildcard $(SONG_SUBDIR)/*.s)
-SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS))
-
-MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid)
-MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS))
-
-OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS)
-# OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
-
-SUBDIRS := $(sort $(dir $(OBJS)))
-
-$(shell mkdir -p $(SUBDIRS))
-
-all: payload rom
- @:
-
-rom: $(ROM)
-ifeq ($(COMPARE),1)
- @$(SHA1) rom.sha1
-endif
-
-# For contributors to make sure a change didn't affect the contents of the ROM.
-compare: ; @$(MAKE) COMPARE=1
-
-clean: tidy
- rm -f sound/direct_sound_samples/*.bin
- rm -f $(SONG_OBJS) $(MID_OBJS) $(MID_SUBDIR)/*.s
- find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
- make -C payload clean
-
-tidy:
- rm -f $(ROM) $(ELF) $(MAP)
- rm -r build/*
- make -C payload tidy
-
-%.s: ;
-%.png: ;
-%.pal: ;
-%.aif: ;
-
-%.1bpp: %.png ; $(GFX) $< $@
-%.4bpp: %.png ; $(GFX) $< $@
-%.8bpp: %.png ; $(GFX) $< $@
-%.gbapal: %.pal ; $(GFX) $< $@
-%.gbapal: %.png ; $(GFX) $< $@
-%.lz: % ; $(GFX) $< $@
-%.rl: % ; $(GFX) $< $@
-
-
-ifeq ($(NODEP),1)
-$(C_BUILDDIR)/%.o: c_dep :=
-else
-$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c)
-endif
-
-$(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep)
- @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i
- @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s
- $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s
-
-ifeq ($(NODEP),1)
-$(ASM_BUILDDIR)/%.o: asm_dep :=
-else
-$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) $(ASM_SUBDIR)/$*.s)
-endif
-
-$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep)
- $(AS) $(ASFLAGS) -o $@ $<
-
-ifeq ($(NODEP),1)
-$(DATA_ASM_BUILDDIR)/%.o: data_dep :=
-else
-$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s)
-endif
-
-payload:
- @$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
-
-payload/payload.gba: payload
-
-data/payload.gba.lz: payload/payload.gba
- $(GFX) $< $@ -search 1
-
-$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
- $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@
-
-$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
- $(AS) $(ASFLAGS) -I sound -o $@ $<
-
-$(ELF): ld_script.txt $(OBJS)
- cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ../ld_script.txt -o ../$@
-
-$(ROM): $(ELF)
- $(OBJCOPY) -O binary $< $@
- $(FIX) $@ -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
-
diff --git a/berry_fix/asm/berry_fix_header.inc b/berry_fix/asm/berry_fix_header.inc
deleted file mode 100644
index 5167d2ff0..000000000
--- a/berry_fix/asm/berry_fix_header.inc
+++ /dev/null
@@ -1,35 +0,0 @@
- .global BerryFixMBHeaderNintendoLogo
-BerryFixMBHeaderNintendoLogo:
- .space 156
-
-BerryFixMBHeaderGameTitle:
- .space 12
-
- .global BerryFixMBHeaderGameCode
-BerryFixMBHeaderGameCode:
- .space 4
-
-BerryFixMBHeaderMakerCode:
- .space 2
-
-BerryFixMBHeaderMagic:
- .byte 0
-
-BerryFixMBHeaderMainUnitCode:
- .byte 0
-
-BerryFixMBHeaderDeviceType:
- .byte 0
-
-BerryFixMBHeaderReserved1:
- .space 7
-
- .global BerryFixMBHeaderSoftwareVersion
-BerryFixMBHeaderSoftwareVersion:
- .byte 0
-
-BerryFixMBHeaderChecksum:
- .byte 0
-
-BerryFixMBHeaderReserved2:
- .space 2
diff --git a/berry_fix/asm/loader.s b/berry_fix/asm/loader.s
deleted file mode 100644
index a78014078..000000000
--- a/berry_fix/asm/loader.s
+++ /dev/null
@@ -1,119 +0,0 @@
- .include "../asm/macros/asm.inc"
- .include "../asm/macros/function.inc"
- .include "../constants/gba_constants.inc"
-
- .set SIO_ERROR, 0x0040
- .set SIO_MULTI_BUSY, 0x0080
-
- .set EWRAM_ORIG, 0x02000000
- .set gCode, 0x02010000
- .set PROG_ORIG, 0x00008000
-
- .syntax unified
-
- .text
-
- arm_func_start _start
-_start: @ 0
- b _entry
- arm_func_end _start
-
- .include "asm/berry_fix_header.inc"
-
-@ C0
- .word 0
-
- .global _GPIOPortData
-_GPIOPortData: @ C4
- .2byte 0
-
- .global _GPIOPortDirection
-_GPIOPortDirection: @ C6
- .2byte 0
-
- .global _GPIOPortReadEnable
-_GPIOPortReadEnable: @ C8
- .2byte 0
-
-@ CA
- .2byte 0
-
-@ CC
- .space 0x34
-
- arm_func_start _entry
-_entry: @ 100
- b _send
- arm_func_end _entry
-
- .space 0x1C
-
- arm_func_start _recv
-_recv:
- @ Waits until link cable is no longer busy.
- @ Returns nz if an error has occurred
- @ Otherwise, returns the received short in r1.
- @ Preserves r0
-_120:
- ldrh r1, [r0, 0x8] @ SIOCNT
- tst r1, SIO_MULTI_BUSY
- beq _120
-_12c:
- ldrh r1, [r0, 0x8] @ SIOCNT
- tst r1, SIO_MULTI_BUSY
- bne _12c
- ldrh r1, [r0, 0x8] @ SIOCNT
- tst r1, SIO_ERROR
- bxne lr
- ldrh r1, [r0] @ SIOMULTI0
- bx lr
- arm_func_end _recv
-
- arm_func_start _send
-_send: @ 14c
- ldr r0, =REG_SIOMULTI0
-_150:
- bl _recv
- bne _150
- mov r2, #0
- strh r2, [r0, 0xa] @ SIOMLT_SEND
- cmp r1, #0
- bne _150
- mov r2, 0x8000
-_16c:
- mov r1, #0
-_170:
- strh r1, [r0, 0xa] @ SIOMLT_SEND
- bl _recv
- bne _150
- cmp r1, r2
- bne _16c
- lsr r2, #5
- cmp r1, #0
- bne _170
- ldr r3, =BerryFixMBHeaderGameCode
- ldrh r2, [r3]
- strh r2, [r0, 0xa] @ SIOMLT_SEND
- bl _recv
-_1a0:
- bne _1a0
- cmp r1, r2
- bne _1a0
- ldrh r2, [r3, 0x2]
- strh r2, [r0, 0xa] @ SIOMLT_SEND
- bl _recv
- bne _1a0
- cmp r1, r2
- bne _1a0
- mov r1, #0
- strh r1, [r0, 0xa] @ SIOMLT_SEND
- ldr r0, =_data_2f0
- ldr r1, =gCode
- swi 0x11 << 16
- ldr lr, =gCode
- bx lr
- .pool
- arm_func_end _send
- @ 1f0
-
- .align 2, 0 @ don't pad with nop
diff --git a/berry_fix/charmap.txt b/berry_fix/charmap.txt
deleted file mode 100644
index 1c143ada4..000000000
--- a/berry_fix/charmap.txt
+++ /dev/null
@@ -1,1067 +0,0 @@
-' ' = 00
-'À' = 01
-'Á' = 02
-'Â' = 03
-'Ç' = 04
-'È' = 05
-'É' = 06
-'Ê' = 07
-'Ë' = 08
-'Ì' = 09
-'Î' = 0B
-'Ï' = 0C
-'Ò' = 0D
-'Ó' = 0E
-'Ô' = 0F
-'Œ' = 10
-'Ù' = 11
-'Ú' = 12
-'Û' = 13
-'Ñ' = 14
-'ß' = 15
-'à' = 16
-'á' = 17
-'ç' = 19
-'è' = 1A
-'é' = 1B
-'ê' = 1C
-'ë' = 1D
-'ì' = 1E
-'î' = 20
-'ï' = 21
-'ò' = 22
-'ó' = 23
-'ô' = 24
-'œ' = 25
-'ù' = 26
-'ú' = 27
-'û' = 28
-'ñ' = 29
-'º' = 2A
-'ª' = 2B
-SUPER_ER = 2C
-'&' = 2D
-'+' = 2E
-LV = 34
-'=' = 35
-';' = 36
-'¿' = 51
-'¡' = 52
-PK = 53
-PKMN = 53 54
-POKEBLOCK = 55 56 57 58 59
-'Í' = 5A
-'%' = 5B
-'(' = 5C
-')' = 5D
-'â' = 68
-'í' = 6F
-UNK_SPACER = 77
-UP_ARROW = 79
-DOWN_ARROW = 7A
-LEFT_ARROW = 7B
-RIGHT_ARROW = 7C
-'0' = A1
-'1' = A2
-'2' = A3
-'3' = A4
-'4' = A5
-'5' = A6
-'6' = A7
-'7' = A8
-'8' = A9
-'9' = AA
-'!' = AB
-'?' = AC
-'.' = AD
-'-' = AE
-'·' = AF
-'…' = B0
-'“' = B1
-'”' = B2
-'‘' = B3
-'’' = B4
-'♂' = B5
-'♀' = B6
-'¥' = B7
-',' = B8
-'×' = B9
-'/' = BA
-'A' = BB
-'B' = BC
-'C' = BD
-'D' = BE
-'E' = BF
-'F' = C0
-'G' = C1
-'H' = C2
-'I' = C3
-'J' = C4
-'K' = C5
-'L' = C6
-'M' = C7
-'N' = C8
-'O' = C9
-'P' = CA
-'Q' = CB
-'R' = CC
-'S' = CD
-'T' = CE
-'U' = CF
-'V' = D0
-'W' = D1
-'X' = D2
-'Y' = D3
-'Z' = D4
-'a' = D5
-'b' = D6
-'c' = D7
-'d' = D8
-'e' = D9
-'f' = DA
-'g' = DB
-'h' = DC
-'i' = DD
-'j' = DE
-'k' = DF
-'l' = E0
-'m' = E1
-'n' = E2
-'o' = E3
-'p' = E4
-'q' = E5
-'r' = E6
-'s' = E7
-'t' = E8
-'u' = E9
-'v' = EA
-'w' = EB
-'x' = EC
-'y' = ED
-'z' = EE
-'▶' = EF
-':' = F0
-'Ä' = F1
-'Ö' = F2
-'Ü' = F3
-'ä' = F4
-'ö' = F5
-'ü' = F6
-TALL_PLUS = FC 0C FB
-'$' = FF
-
-@ Hiragana
-'あ' = 01
-'い' = 02
-'う' = 03
-'え' = 04
-'お' = 05
-'か' = 06
-'き' = 07
-'く' = 08
-'け' = 09
-'こ' = 0A
-'さ' = 0B
-'し' = 0C
-'す' = 0D
-'せ' = 0E
-'そ' = 0F
-'た' = 10
-'ち' = 11
-'つ' = 12
-'て' = 13
-'と' = 14
-'な' = 15
-'に' = 16
-'ぬ' = 17
-'ね' = 18
-'の' = 19
-'は' = 1A
-'ひ' = 1B
-'ふ' = 1C
-'へ' = 1D
-'ほ' = 1E
-'ま' = 1F
-'み' = 20
-'む' = 21
-'め' = 22
-'も' = 23
-'や' = 24
-'ゆ' = 25
-'よ' = 26
-'ら' = 27
-'り' = 28
-'る' = 29
-'れ' = 2A
-'ろ' = 2B
-'わ' = 2C
-'を' = 2D
-'ん' = 2E
-'ぁ' = 2F
-'ぃ' = 30
-'ぅ' = 31
-'ぇ' = 32
-'ぉ' = 33
-'ゃ' = 34
-'ゅ' = 35
-'ょ' = 36
-'が' = 37
-'ぎ' = 38
-'ぐ' = 39
-'げ' = 3A
-'ご' = 3B
-'ざ' = 3C
-'じ' = 3D
-'ず' = 3E
-'ぜ' = 3F
-'ぞ' = 40
-'だ' = 41
-'ぢ' = 42
-'づ' = 43
-'で' = 44
-'ど' = 45
-'ば' = 46
-'び' = 47
-'ぶ' = 48
-'べ' = 49
-'ぼ' = 4A
-'ぱ' = 4B
-'ぴ' = 4C
-'ぷ' = 4D
-'ぺ' = 4E
-'ぽ' = 4F
-'っ' = 50
-
-@ Katakana
-'ア' = 51
-'イ' = 52
-'ウ' = 53
-'エ' = 54
-'オ' = 55
-'カ' = 56
-'キ' = 57
-'ク' = 58
-'ケ' = 59
-'コ' = 5A
-'サ' = 5B
-'シ' = 5C
-'ス' = 5D
-'セ' = 5E
-'ソ' = 5F
-'タ' = 60
-'チ' = 61
-'ツ' = 62
-'テ' = 63
-'ト' = 64
-'ナ' = 65
-'ニ' = 66
-'ヌ' = 67
-'ネ' = 68
-'ノ' = 69
-'ハ' = 6A
-'ヒ' = 6B
-'フ' = 6C
-'ヘ' = 6D
-'ホ' = 6E
-'マ' = 6F
-'ミ' = 70
-'ム' = 71
-'メ' = 72
-'モ' = 73
-'ヤ' = 74
-'ユ' = 75
-'ヨ' = 76
-'ラ' = 77
-'リ' = 78
-'ル' = 79
-'レ' = 7A
-'ロ' = 7B
-'ワ' = 7C
-'ヲ' = 7D
-'ン' = 7E
-'ァ' = 7F
-'ィ' = 80
-'ゥ' = 81
-'ェ' = 82
-'ォ' = 83
-'ャ' = 84
-'ュ' = 85
-'ョ' = 86
-'ガ' = 87
-'ギ' = 88
-'グ' = 89
-'ゲ' = 8A
-'ゴ' = 8B
-'ザ' = 8C
-'ジ' = 8D
-'ズ' = 8E
-'ゼ' = 8F
-'ゾ' = 90
-'ダ' = 91
-'ヂ' = 92
-'ヅ' = 93
-'デ' = 94
-'ド' = 95
-'バ' = 96
-'ビ' = 97
-'ブ' = 98
-'ベ' = 99
-'ボ' = 9A
-'パ' = 9B
-'ピ' = 9C
-'プ' = 9D
-'ペ' = 9E
-'ポ' = 9F
-'ッ' = A0
-
-@ Japanese punctuation
-' ' = 00
-'!' = AB
-'?' = AC
-'。' = AD
-'ー' = AE
-'⋯' = B0
-
-STRING = FD
-
-@ string placeholders
-PLAYER = FD 01
-STR_VAR_1 = FD 02
-STR_VAR_2 = FD 03
-STR_VAR_3 = FD 04
-KUN = FD 05
-RIVAL = FD 06
-@ version-dependent strings (originally made for Ruby/Sapphire differences)
-@ Emerald uses the Sapphire strings (except for VERSION).
-VERSION = FD 07 @ "EMERALD"
-AQUA = FD 08
-MAGMA = FD 09
-ARCHIE = FD 0A
-MAXIE = FD 0B
-KYOGRE = FD 0C
-GROUDON = FD 0D
-
-@ battle string placeholders
-
-B_BUFF1 = FD 00
-B_BUFF2 = FD 01
-B_COPY_VAR_1 = FD 02
-B_COPY_VAR_2 = FD 03
-B_COPY_VAR_3 = FD 04
-B_PLAYER_MON1_NAME = FD 05
-B_OPPONENT_MON1_NAME = FD 06
-B_PLAYER_MON2_NAME = FD 07
-B_OPPONENT_MON2_NAME = FD 08
-B_LINK_PLAYER_MON1_NAME = FD 09
-B_LINK_OPPONENT_MON1_NAME = FD 0A
-B_LINK_PLAYER_MON2_NAME = FD 0B
-B_LINK_OPPONENT_MON2_NAME = FD 0C
-B_ATK_NAME_WITH_PREFIX_MON1 = FD 0D
-B_ATK_PARTNER_NAME = FD 0E
-B_ATK_NAME_WITH_PREFIX = FD 0F
-B_DEF_NAME_WITH_PREFIX = FD 10
-B_EFF_NAME_WITH_PREFIX = FD 11 @ EFF = short for gEffectBattler
-B_ACTIVE_NAME_WITH_PREFIX = FD 12
-B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 13
-B_CURRENT_MOVE = FD 14
-B_LAST_MOVE = FD 15
-B_LAST_ITEM = FD 16
-B_LAST_ABILITY = FD 17
-B_ATK_ABILITY = FD 18
-B_DEF_ABILITY = FD 19
-B_SCR_ACTIVE_ABILITY = FD 1A
-B_EFF_ABILITY = FD 1B
-B_TRAINER1_CLASS = FD 1C
-B_TRAINER1_NAME = FD 1D
-B_LINK_PLAYER_NAME = FD 1E
-B_LINK_PARTNER_NAME = FD 1F
-B_LINK_OPPONENT1_NAME = FD 20
-B_LINK_OPPONENT2_NAME = FD 21
-B_LINK_SCR_TRAINER_NAME = FD 22
-B_PLAYER_NAME = FD 23
-B_TRAINER1_LOSE_TEXT = FD 24
-B_TRAINER1_WIN_TEXT = FD 25
-B_26 = FD 26
-B_PC_CREATOR_NAME = FD 27
-B_ATK_PREFIX1 = FD 28
-B_DEF_PREFIX1 = FD 29
-B_ATK_PREFIX2 = FD 2A
-B_DEF_PREFIX2 = FD 2B
-B_ATK_PREFIX3 = FD 2C
-B_DEF_PREFIX3 = FD 2D
-B_TRAINER2_CLASS = FD 2E
-B_TRAINER2_NAME = FD 2F
-B_TRAINER2_LOSE_TEXT = FD 30
-B_TRAINER2_WIN_TEXT = FD 31
-B_PARTNER_CLASS = FD 32
-B_PARTNER_NAME = FD 33
-B_BUFF3 = FD 34
-
-@ indicates the end of a town/city name (before " TOWN" or " CITY")
-NAME_END = FC 00
-
-@ special 0xF7 character
-SPECIAL_F7 = F7
-
-@ more text functions
-
-COLOR = FC 01 @ use a color listed below right after
-HIGHLIGHT = FC 02 @ same as fc 01
-SHADOW = FC 03 @ same as fc 01
-COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 bytes
-PALETTE = FC 05 @ used in credits
-SIZE = FC 06 @ note that anything other than "SMALL" is invalid
-UNKNOWN_7 = FC 07
-PAUSE = FC 08 @ manually print the wait byte after this, havent mapped them
-PAUSE_UNTIL_PRESS = FC 09
-WAIT_SE = FC 0A
-PLAY_BGM = FC 0B
-ESCAPE = FC 0C
-SHIFT_TEXT = FC 0D
-UNKNOWN_E = FC 0E
-UNKNOWN_F = FC 0F
-PLAY_SE = FC 10
-CLEAR = FC 11
-SKIP = FC 12
-CLEAR_TO = FC 13
-UNKNOWN_14 = FC 14
-JPN = FC 15
-ENG = FC 16
-PAUSE_MUSIC = FC 17
-RESUME_MUSIC = FC 18
-
-@ colors
-
-TRANSPARENT = 00
-WHITE = 01
-DARK_GRAY = 02
-LIGHT_GRAY = 03
-RED = 04
-LIGHT_RED = 05
-GREEN = 06
-LIGHT_GREEN = 07
-BLUE = 08
-LIGHT_BLUE = 09
-@ these next colors can be set to anything arbitrary at runtime
-@ usually though they'll have the textbox border colors as described below
-DYNAMIC_COLOR1 = 0A @ white
-DYNAMIC_COLOR2 = 0B @ white with a tinge of green
-DYNAMIC_COLOR3 = 0C @ white 2
-DYNAMIC_COLOR4 = 0D @ aquamarine
-DYNAMIC_COLOR5 = 0E @ blue-green
-DYNAMIC_COLOR6 = 0F @ cerulean
-
-@ sound and music
-
-MUS_DUMMY = 00 00
-SE_USE_ITEM = 01 00
-SE_PC_LOGIN = 02 00
-SE_PC_OFF = 03 00
-SE_PC_ON = 04 00
-SE_SELECT = 05 00
-SE_WIN_OPEN = 06 00
-SE_WALL_HIT = 07 00
-SE_DOOR = 08 00
-SE_EXIT = 09 00
-SE_LEDGE = 0A 00
-SE_BIKE_BELL = 0B 00
-SE_NOT_EFFECTIVE = 0C 00
-SE_EFFECTIVE = 0D 00
-SE_SUPER_EFFECTIVE = 0E 00
-SE_BALL_OPEN = 0F 00
-SE_FAINT = 10 00
-SE_FLEE = 11 00
-SE_SLIDING_DOOR = 12 00
-SE_SHIP = 13 00
-SE_BANG = 14 00
-SE_PIN = 15 00
-SE_BOO = 16 00
-SE_BALL = 17 00
-SE_CONTEST_PLACE = 18 00
-SE_A = 19 00
-SE_I = 1A 00
-SE_U = 1B 00
-SE_E = 1C 00
-SE_O = 1D 00
-SE_N = 1E 00
-SE_SUCCESS = 1F 00
-SE_FAILURE = 20 00
-SE_EXP = 21 00
-SE_BIKE_HOP = 22 00
-SE_SWITCH = 23 00
-SE_CLICK = 24 00
-SE_FU_ZAKU = 25 00
-SE_CONTEST_CONDITION_LOSE = 26 00
-SE_LAVARIDGE_FALL_WARP = 27 00
-SE_ICE_STAIRS = 28 00
-SE_ICE_BREAK = 29 00
-SE_ICE_CRACK = 2A 00
-SE_FALL = 2B 00
-SE_UNLOCK = 2C 00
-SE_WARP_IN = 2D 00
-SE_WARP_OUT = 2E 00
-SE_REPEL = 2F 00
-SE_ROTATING_GATE = 30 00
-SE_TRUCK_MOVE = 31 00
-SE_TRUCK_STOP = 32 00
-SE_TRUCK_UNLOAD = 33 00
-SE_TRUCK_DOOR = 34 00
-SE_BERRY_BLENDER = 35 00
-SE_CARD = 36 00
-SE_SAVE = 37 00
-SE_BALL_BOUNCE_1 = 38 00
-SE_BALL_BOUNCE_2 = 39 00
-SE_BALL_BOUNCE_3 = 3A 00
-SE_BALL_BOUNCE_4 = 3B 00
-SE_BALL_TRADE = 3C 00
-SE_BALL_THROW = 3D 00
-SE_NOTE_C = 3E 00
-SE_NOTE_D = 3F 00
-SE_NOTE_E = 40 00
-SE_NOTE_F = 41 00
-SE_NOTE_G = 42 00
-SE_NOTE_A = 43 00
-SE_NOTE_B = 44 00
-SE_NOTE_C_HIGH = 45 00
-SE_PUDDLE = 46 00
-SE_BRIDGE_WALK = 47 00
-SE_ITEMFINDER = 48 00
-SE_DING_DONG = 49 00
-SE_BALLOON_RED = 4A 00
-SE_BALLOON_BLUE = 4B 00
-SE_BALLOON_YELLOW = 4C 00
-SE_BREAKABLE_DOOR = 4D 00
-SE_MUD_BALL = 4E 00
-SE_FIELD_POISON = 4F 00
-SE_ESCALATOR = 50 00
-SE_THUNDERSTORM = 51 00
-SE_THUNDERSTORM_STOP = 52 00
-SE_DOWNPOUR = 53 00
-SE_DOWNPOUR_STOP = 54 00
-SE_RAIN = 55 00
-SE_RAIN_STOP = 56 00
-SE_THUNDER = 57 00
-SE_THUNDER2 = 58 00
-SE_ELEVATOR = 59 00
-SE_LOW_HEALTH = 5A 00
-SE_EXP_MAX = 5B 00
-SE_ROULETTE_BALL = 5C 00
-SE_ROULETTE_BALL2 = 5D 00
-SE_TAILLOW_WING_FLAP = 5E 00
-SE_SHOP = 5F 00
-SE_CONTEST_HEART = 60 00
-SE_CONTEST_CURTAIN_RISE = 61 00
-SE_CONTEST_CURTAIN_FALL = 62 00
-SE_CONTEST_ICON_CHANGE = 63 00
-SE_CONTEST_ICON_CLEAR = 64 00
-SE_CONTEST_MONS_TURN = 65 00
-SE_SHINY = 66 00
-SE_INTRO_BLAST = 67 00
-SE_MUGSHOT = 68 00
-SE_APPLAUSE = 69 00
-SE_VEND = 6A 00
-SE_ORB = 6B 00
-SE_DEX_SCROLL = 6C 00
-SE_DEX_PAGE = 6D 00
-SE_POKENAV_ON = 6E 00
-SE_POKENAV_OFF = 6F 00
-SE_DEX_SEARCH = 70 00
-SE_EGG_HATCH = 71 00
-SE_BALL_TRAY_ENTER = 72 00
-SE_BALL_TRAY_BALL = 73 00
-SE_BALL_TRAY_EXIT = 74 00
-SE_GLASS_FLUTE = 75 00
-SE_M_THUNDERBOLT = 76 00
-SE_M_THUNDERBOLT2 = 77 00
-SE_M_HARDEN = 78 00
-SE_M_NIGHTMARE = 79 00
-SE_M_VITAL_THROW = 7A 00
-SE_M_VITAL_THROW2 = 7B 00
-SE_M_BUBBLE = 7C 00
-SE_M_BUBBLE2 = 7D 00
-SE_M_BUBBLE3 = 7E 00
-SE_M_RAIN_DANCE = 7F 00
-SE_M_CUT = 80 00
-SE_M_STRING_SHOT = 81 00
-SE_M_STRING_SHOT2 = 82 00
-SE_M_ROCK_THROW = 83 00
-SE_M_GUST = 84 00
-SE_M_GUST2 = 85 00
-SE_M_DOUBLE_SLAP = 86 00
-SE_M_DOUBLE_TEAM = 87 00
-SE_M_RAZOR_WIND = 88 00
-SE_M_ICY_WIND = 89 00
-SE_M_THUNDER_WAVE = 8A 00
-SE_M_COMET_PUNCH = 8B 00
-SE_M_MEGA_KICK = 8C 00
-SE_M_MEGA_KICK2 = 8D 00
-SE_M_CRABHAMMER = 8E 00
-SE_M_JUMP_KICK = 8F 00
-SE_M_FLAME_WHEEL = 90 00
-SE_M_FLAME_WHEEL2 = 91 00
-SE_M_FLAMETHROWER = 92 00
-SE_M_FIRE_PUNCH = 93 00
-SE_M_TOXIC = 94 00
-SE_M_SACRED_FIRE = 95 00
-SE_M_SACRED_FIRE2 = 96 00
-SE_M_EMBER = 97 00
-SE_M_TAKE_DOWN = 98 00
-SE_M_BLIZZARD = 99 00
-SE_M_BLIZZARD2 = 9A 00
-SE_M_SCRATCH = 9B 00
-SE_M_VICEGRIP = 9C 00
-SE_M_WING_ATTACK = 9D 00
-SE_M_FLY = 9E 00
-SE_M_SAND_ATTACK = 9F 00
-SE_M_RAZOR_WIND2 = A0 00
-SE_M_BITE = A1 00
-SE_M_HEADBUTT = A2 00
-SE_M_SURF = A3 00
-SE_M_HYDRO_PUMP = A4 00
-SE_M_WHIRLPOOL = A5 00
-SE_M_HORN_ATTACK = A6 00
-SE_M_TAIL_WHIP = A7 00
-SE_M_MIST = A8 00
-SE_M_POISON_POWDER = A9 00
-SE_M_BIND = AA 00
-SE_M_DRAGON_RAGE = AB 00
-SE_M_SING = AC 00
-SE_M_PERISH_SONG = AD 00
-SE_M_PAY_DAY = AE 00
-SE_M_DIG = AF 00
-SE_M_DIZZY_PUNCH = B0 00
-SE_M_SELF_DESTRUCT = B1 00
-SE_M_EXPLOSION = B2 00
-SE_M_ABSORB_2 = B3 00
-SE_M_ABSORB = B4 00
-SE_M_SCREECH = B5 00
-SE_M_BUBBLE_BEAM = B6 00
-SE_M_BUBBLE_BEAM2 = B7 00
-SE_M_SUPERSONIC = B8 00
-SE_M_BELLY_DRUM = B9 00
-SE_M_METRONOME = BA 00
-SE_M_BONEMERANG = BB 00
-SE_M_LICK = BC 00
-SE_M_PSYBEAM = BD 00
-SE_M_FAINT_ATTACK = BE 00
-SE_M_SWORDS_DANCE = BF 00
-SE_M_LEER = C0 00
-SE_M_SWAGGER = C1 00
-SE_M_SWAGGER2 = C2 00
-SE_M_HEAL_BELL = C3 00
-SE_M_CONFUSE_RAY = C4 00
-SE_M_SNORE = C5 00
-SE_M_BRICK_BREAK = C6 00
-SE_M_GIGA_DRAIN = C7 00
-SE_M_PSYBEAM2 = C8 00
-SE_M_SOLAR_BEAM = C9 00
-SE_M_PETAL_DANCE = CA 00
-SE_M_TELEPORT = CB 00
-SE_M_MINIMIZE = CC 00
-SE_M_SKETCH = CD 00
-SE_M_SWIFT = CE 00
-SE_M_REFLECT = CF 00
-SE_M_BARRIER = D0 00
-SE_M_DETECT = D1 00
-SE_M_LOCK_ON = D2 00
-SE_M_MOONLIGHT = D3 00
-SE_M_CHARM = D4 00
-SE_M_CHARGE = D5 00
-SE_M_STRENGTH = D6 00
-SE_M_HYPER_BEAM = D7 00
-SE_M_WATERFALL = D8 00
-SE_M_REVERSAL = D9 00
-SE_M_ACID_ARMOR = DA 00
-SE_M_SANDSTORM = DB 00
-SE_M_TRI_ATTACK = DC 00
-SE_M_TRI_ATTACK2 = DD 00
-SE_M_ENCORE = DE 00
-SE_M_ENCORE2 = DF 00
-SE_M_BATON_PASS = E0 00
-SE_M_MILK_DRINK = E1 00
-SE_M_ATTRACT = E2 00
-SE_M_ATTRACT2 = E3 00
-SE_M_MORNING_SUN = E4 00
-SE_M_FLATTER = E5 00
-SE_M_SAND_TOMB = E6 00
-SE_M_GRASSWHISTLE = E7 00
-SE_M_SPIT_UP = E8 00
-SE_M_DIVE = E9 00
-SE_M_EARTHQUAKE = EA 00
-SE_M_TWISTER = EB 00
-SE_M_SWEET_SCENT = EC 00
-SE_M_YAWN = ED 00
-SE_M_SKY_UPPERCUT = EE 00
-SE_M_STAT_INCREASE = EF 00
-SE_M_HEAT_WAVE = F0 00
-SE_M_UPROAR = F1 00
-SE_M_HAIL = F2 00
-SE_M_COSMIC_POWER = F3 00
-SE_M_TEETER_DANCE = F4 00
-SE_M_STAT_DECREASE = F5 00
-SE_M_HAZE = F6 00
-SE_M_HYPER_BEAM2 = F7 00
-SE_RG_DOOR = F8 00
-SE_RG_CARD_FLIP = F9 00
-SE_RG_CARD_FLIPPING = FA 00
-SE_RG_CARD_OPEN = FB 00
-SE_RG_BAG_CURSOR = FC 00
-SE_RG_BAG_POCKET = FD 00
-SE_RG_BALL_CLICK = FE 00
-SE_RG_SHOP = FF 00
-SE_RG_SS_ANNE_HORN = 00 01
-SE_RG_HELP_OPEN = 01 01
-SE_RG_HELP_CLOSE = 02 01
-SE_RG_HELP_ERROR = 03 01
-SE_RG_DEOXYS_MOVE = 04 01
-SE_RG_POKE_JUMP_SUCCESS = 05 01
-SE_RG_POKE_JUMP_FAILURE = 06 01
-SE_POKENAV_CALL = 07 01
-SE_POKENAV_HANG_UP = 08 01
-SE_ARENA_TIMEUP1 = 09 01
-SE_ARENA_TIMEUP2 = 0A 01
-SE_PIKE_CURTAIN_CLOSE = 0B 01
-SE_PIKE_CURTAIN_OPEN = 0C 01
-SE_SUDOWOODO_SHAKE = 0D 01
-MUS_LITTLEROOT_TEST = 5E 01
-MUS_GSC_ROUTE38 = 5F 01
-MUS_CAUGHT = 60 01
-MUS_VICTORY_WILD = 61 01
-MUS_VICTORY_GYM_LEADER = 62 01
-MUS_VICTORY_LEAGUE = 63 01
-MUS_C_COMM_CENTER = 64 01
-MUS_GSC_PEWTER = 65 01
-MUS_C_VS_LEGEND_BEAST = 66 01
-MUS_ROUTE101 = 67 01
-MUS_ROUTE110 = 68 01
-MUS_ROUTE120 = 69 01
-MUS_PETALBURG = 6A 01
-MUS_OLDALE = 6B 01
-MUS_GYM = 6C 01
-MUS_SURF = 6D 01
-MUS_PETALBURG_WOODS = 6E 01
-MUS_LEVEL_UP = 6F 01
-MUS_HEAL = 70 01
-MUS_OBTAIN_BADGE = 71 01
-MUS_OBTAIN_ITEM = 72 01
-MUS_EVOLVED = 73 01
-MUS_OBTAIN_TMHM = 74 01
-MUS_LILYCOVE_MUSEUM = 75 01
-MUS_ROUTE122 = 76 01
-MUS_OCEANIC_MUSEUM = 77 01
-MUS_EVOLUTION_INTRO = 78 01
-MUS_EVOLUTION = 79 01
-MUS_MOVE_DELETED = 7A 01
-MUS_ENCOUNTER_GIRL = 7B 01
-MUS_ENCOUNTER_MALE = 7C 01
-MUS_ABANDONED_SHIP = 7D 01
-MUS_FORTREE = 7E 01
-MUS_BIRCH_LAB = 7F 01
-MUS_B_TOWER_RS = 80 01
-MUS_ENCOUNTER_SWIMMER = 81 01
-MUS_CAVE_OF_ORIGIN = 82 01
-MUS_OBTAIN_BERRY = 83 01
-MUS_AWAKEN_LEGEND = 84 01
-MUS_SLOTS_JACKPOT = 85 01
-MUS_SLOTS_WIN = 86 01
-MUS_TOO_BAD = 87 01
-MUS_ROULETTE = 88 01
-MUS_LINK_CONTEST_P1 = 89 01
-MUS_LINK_CONTEST_P2 = 8A 01
-MUS_LINK_CONTEST_P3 = 8B 01
-MUS_LINK_CONTEST_P4 = 8C 01
-MUS_ENCOUNTER_RICH = 8D 01
-MUS_VERDANTURF = 8E 01
-MUS_RUSTBORO = 8F 01
-MUS_POKE_CENTER = 90 01
-MUS_ROUTE104 = 91 01
-MUS_ROUTE119 = 92 01
-MUS_CYCLING = 93 01
-MUS_POKE_MART = 94 01
-MUS_LITTLEROOT = 95 01
-MUS_MT_CHIMNEY = 96 01
-MUS_ENCOUNTER_FEMALE = 97 01
-MUS_LILYCOVE = 98 01
-MUS_ROUTE111 = 99 01
-MUS_HELP = 9A 01
-MUS_UNDERWATER = 9B 01
-MUS_VICTORY_TRAINER = 9C 01
-MUS_TITLE = 9D 01
-MUS_INTRO = 9E 01
-MUS_ENCOUNTER_MAY = 9F 01
-MUS_ENCOUNTER_INTENSE = A0 01
-MUS_ENCOUNTER_COOL = A1 01
-MUS_ROUTE113 = A2 01
-MUS_ENCOUNTER_AQUA = A3 01
-MUS_FOLLOW_ME = A4 01
-MUS_ENCOUNTER_BRENDAN = A5 01
-MUS_EVER_GRANDE = A6 01
-MUS_ENCOUNTER_SUSPICIOUS = A7 01
-MUS_VICTORY_AQUA_MAGMA = A8 01
-MUS_CABLE_CAR = A9 01
-MUS_GAME_CORNER = AA 01
-MUS_DEWFORD = AB 01
-MUS_SAFARI_ZONE = AC 01
-MUS_VICTORY_ROAD = AD 01
-MUS_AQUA_MAGMA_HIDEOUT = AE 01
-MUS_SAILING = AF 01
-MUS_MT_PYRE = B0 01
-MUS_SLATEPORT = B1 01
-MUS_MT_PYRE_EXTERIOR = B2 01
-MUS_SCHOOL = B3 01
-MUS_HALL_OF_FAME = B4 01
-MUS_FALLARBOR = B5 01
-MUS_SEALED_CHAMBER = B6 01
-MUS_CONTEST_WINNER = B7 01
-MUS_CONTEST = B8 01
-MUS_ENCOUNTER_MAGMA = B9 01
-MUS_INTRO_BATTLE = BA 01
-MUS_ABNORMAL_WEATHER = BB 01
-MUS_WEATHER_GROUDON = BC 01
-MUS_SOOTOPOLIS = BD 01
-MUS_CONTEST_RESULTS = BE 01
-MUS_HALL_OF_FAME_ROOM = BF 01
-MUS_TRICK_HOUSE = C0 01
-MUS_ENCOUNTER_TWINS = C1 01
-MUS_ENCOUNTER_ELITE_FOUR = C2 01
-MUS_ENCOUNTER_HIKER = C3 01
-MUS_CONTEST_LOBBY = C4 01
-MUS_ENCOUNTER_INTERVIEWER = C5 01
-MUS_ENCOUNTER_CHAMPION = C6 01
-MUS_CREDITS = C7 01
-MUS_END = C8 01
-MUS_B_FRONTIER = C9 01
-MUS_B_ARENA = CA 01
-MUS_OBTAIN_B_POINTS = CB 01
-MUS_REGISTER_MATCH_CALL = CC 01
-MUS_B_PYRAMID = CD 01
-MUS_B_PYRAMID_TOP = CE 01
-MUS_B_PALACE = CF 01
-MUS_RAYQUAZA_APPEARS = D0 01
-MUS_B_TOWER = D1 01
-MUS_OBTAIN_SYMBOL = D2 01
-MUS_B_DOME = D3 01
-MUS_B_PIKE = D4 01
-MUS_B_FACTORY = D5 01
-MUS_VS_RAYQUAZA = D6 01
-MUS_VS_FRONTIER_BRAIN = D7 01
-MUS_VS_MEW = D8 01
-MUS_B_DOME_LOBBY = D9 01
-MUS_VS_WILD = DA 01
-MUS_VS_AQUA_MAGMA = DB 01
-MUS_VS_TRAINER = DC 01
-MUS_VS_GYM_LEADER = DD 01
-MUS_VS_CHAMPION = DE 01
-MUS_VS_REGI = DF 01
-MUS_VS_KYOGRE_GROUDON = E0 01
-MUS_VS_RIVAL = E1 01
-MUS_VS_ELITE_FOUR = E2 01
-MUS_VS_AQUA_MAGMA_LEADER = E3 01
-MUS_RG_FOLLOW_ME = E4 01
-MUS_RG_GAME_CORNER = E5 01
-MUS_RG_ROCKET_HIDEOUT = E6 01
-MUS_RG_GYM = E7 01
-MUS_RG_JIGGLYPUFF = E8 01
-MUS_RG_INTRO_FIGHT = E9 01
-MUS_RG_TITLE = EA 01
-MUS_RG_CINNABAR = EB 01
-MUS_RG_LAVENDER = EC 01
-MUS_RG_HEAL = ED 01
-MUS_RG_CYCLING = EE 01
-MUS_RG_ENCOUNTER_ROCKET = EF 01
-MUS_RG_ENCOUNTER_GIRL = F0 01
-MUS_RG_ENCOUNTER_BOY = F1 01
-MUS_RG_HALL_OF_FAME = F2 01
-MUS_RG_VIRIDIAN_FOREST = F3 01
-MUS_RG_MT_MOON = F4 01
-MUS_RG_POKE_MANSION = F5 01
-MUS_RG_CREDITS = F6 01
-MUS_RG_ROUTE1 = F7 01
-MUS_RG_ROUTE24 = F8 01
-MUS_RG_ROUTE3 = F9 01
-MUS_RG_ROUTE11 = FA 01
-MUS_RG_VICTORY_ROAD = FB 01
-MUS_RG_VS_GYM_LEADER = FC 01
-MUS_RG_VS_TRAINER = FD 01
-MUS_RG_VS_WILD = FE 01
-MUS_RG_VS_CHAMPION = FF 01
-MUS_RG_PALLET = 00 02
-MUS_RG_OAK_LAB = 01 02
-MUS_RG_OAK = 02 02
-MUS_RG_POKE_CENTER = 03 02
-MUS_RG_SS_ANNE = 04 02
-MUS_RG_SURF = 05 02
-MUS_RG_POKE_TOWER = 06 02
-MUS_RG_SILPH = 07 02
-MUS_RG_FUCHSIA = 08 02
-MUS_RG_CELADON = 09 02
-MUS_RG_VICTORY_TRAINER = 0A 02
-MUS_RG_VICTORY_WILD = 0B 02
-MUS_RG_VICTORY_GYM_LEADER = 0C 02
-MUS_RG_VERMILLION = 0D 02
-MUS_RG_PEWTER = 0E 02
-MUS_RG_ENCOUNTER_RIVAL = 0F 02
-MUS_RG_RIVAL_EXIT = 10 02
-MUS_RG_DEX_RATING = 11 02
-MUS_RG_OBTAIN_KEY_ITEM = 12 02
-MUS_RG_CAUGHT_INTRO = 13 02
-MUS_RG_PHOTO = 14 02
-MUS_RG_GAME_FREAK = 15 02
-MUS_RG_CAUGHT = 16 02
-MUS_RG_NEW_GAME_INSTRUCT = 17 02
-MUS_RG_NEW_GAME_INTRO = 18 02
-MUS_RG_NEW_GAME_EXIT = 19 02
-MUS_RG_POKE_JUMP = 1A 02
-MUS_RG_UNION_ROOM = 1B 02
-MUS_RG_NET_CENTER = 1C 02
-MUS_RG_MYSTERY_GIFT = 1D 02
-MUS_RG_BERRY_PICK = 1E 02
-MUS_RG_SEVII_CAVE = 1F 02
-MUS_RG_TEACHY_TV_SHOW = 20 02
-MUS_RG_SEVII_ROUTE = 21 02
-MUS_RG_SEVII_DUNGEON = 22 02
-MUS_RG_SEVII_123 = 23 02
-MUS_RG_SEVII_45 = 24 02
-MUS_RG_SEVII_67 = 25 02
-MUS_RG_POKE_FLUTE = 26 02
-MUS_RG_VS_DEOXYS = 27 02
-MUS_RG_VS_MEWTWO = 28 02
-MUS_RG_VS_LEGEND = 29 02
-MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02
-MUS_RG_ENCOUNTER_DEOXYS = 2B 02
-MUS_RG_TRAINER_TOWER = 2C 02
-MUS_RG_SLOW_PALLET = 2D 02
-MUS_RG_TEACHY_TV_MENU = 2E 02
-PH_TRAP_BLEND = 2F 02
-PH_TRAP_HELD = 30 02
-PH_TRAP_SOLO = 31 02
-PH_FACE_BLEND = 32 02
-PH_FACE_HELD = 33 02
-PH_FACE_SOLO = 34 02
-PH_CLOTH_BLEND = 35 02
-PH_CLOTH_HELD = 36 02
-PH_CLOTH_SOLO = 37 02
-PH_DRESS_BLEND = 38 02
-PH_DRESS_HELD = 39 02
-PH_DRESS_SOLO = 3A 02
-PH_FLEECE_BLEND = 3B 02
-PH_FLEECE_HELD = 3C 02
-PH_FLEECE_SOLO = 3D 02
-PH_KIT_BLEND = 3E 02
-PH_KIT_HELD = 3F 02
-PH_KIT_SOLO = 40 02
-PH_PRICE_BLEND = 41 02
-PH_PRICE_HELD = 42 02
-PH_PRICE_SOLO = 43 02
-PH_LOT_BLEND = 44 02
-PH_LOT_HELD = 45 02
-PH_LOT_SOLO = 46 02
-PH_GOAT_BLEND = 47 02
-PH_GOAT_HELD = 48 02
-PH_GOAT_SOLO = 49 02
-PH_THOUGHT_BLEND = 4A 02
-PH_THOUGHT_HELD = 4B 02
-PH_THOUGHT_SOLO = 4C 02
-PH_CHOICE_BLEND = 4D 02
-PH_CHOICE_HELD = 4E 02
-PH_CHOICE_SOLO = 4F 02
-PH_MOUTH_BLEND = 50 02
-PH_MOUTH_HELD = 51 02
-PH_MOUTH_SOLO = 52 02
-PH_FOOT_BLEND = 53 02
-PH_FOOT_HELD = 54 02
-PH_FOOT_SOLO = 55 02
-PH_GOOSE_BLEND = 56 02
-PH_GOOSE_HELD = 57 02
-PH_GOOSE_SOLO = 58 02
-PH_STRUT_BLEND = 59 02
-PH_STRUT_HELD = 5A 02
-PH_STRUT_SOLO = 5B 02
-PH_CURE_BLEND = 5C 02
-PH_CURE_HELD = 5D 02
-PH_CURE_SOLO = 5E 02
-PH_NURSE_BLEND = 5F 02
-PH_NURSE_HELD = 60 02
-PH_NURSE_SOLO = 61 02
-
-A_BUTTON = F8 00
-B_BUTTON = F8 01
-DPAD_UPDOWN = F8 0A
-DPAD_NONE = F8 0C
-
-UP_ARROW_2 = F9 00
-DOWN_ARROW_2 = F9 01
-LEFT_ARROW_2 = F9 02
-RIGHT_ARROW_2 = F9 03
-PLUS = F9 04
-LV_2 = F9 05
-PP = F9 06
-ID = F9 07
-NO = F9 08
-UNDERSCORE = F9 09
-CIRCLE_1 = F9 0A
-CIRCLE_2 = F9 0B
-CIRCLE_3 = F9 0C
-CIRCLE_4 = F9 0D
-CIRCLE_5 = F9 0E
-CIRCLE_6 = F9 0F
-CIRCLE_7 = F9 10
-CIRCLE_8 = F9 11
-CIRCLE_9 = F9 12
-ROUND_LEFT_PAREN = F9 13
-ROUND_RIGHT_PAREN = F9 14
-CIRCLE_DOT = F9 15
-TRIANGLE = F9 16
-BIG_MULT_X = F9 17
-
-EMOJI_UNDERSCORE = F9 D0
-EMOJI_PIPE = F9 D1
-EMOJI_HIGHBAR = F9 D2
-EMOJI_TILDE = F9 D3
-EMOJI_LEFT_PAREN = F9 D4
-EMOJI_RIGHT_PAREN = F9 D5
-EMOJI_UNION = F9 D6 @ ⊂
-EMOJI_GREATER_THAN = F9 D7
-EMOJI_LEFT_EYE = F9 D8
-EMOJI_RIGHT_EYE = F9 D9
-EMOJI_AT = F9 DA
-EMOJI_SEMICOLON = F9 DB
-EMOJI_PLUS = F9 DC
-EMOJI_MINUS = F9 DD
-EMOJI_EQUALS = F9 DE
-EMOJI_SPIRAL = F9 DF
-EMOJI_TONGUE = F9 E0
-EMOJI_TRIANGLE_OUTLINE = F9 E1
-EMOJI_ACUTE = F9 E2
-EMOJI_GRAVE = F9 E3
-EMOJI_CIRCLE = F9 E4
-EMOJI_TRIANGLE = F9 E5
-EMOJI_SQUARE = F9 E6
-EMOJI_HEART = F9 E7
-EMOJI_MOON = F9 E8
-EMOJI_NOTE = F9 E9
-EMOJI_BALL = F9 EA
-EMOJI_BOLT = F9 EB
-EMOJI_LEAF = F9 EC
-EMOJI_FIRE = F9 ED
-EMOJI_WATER = F9 EE
-EMOJI_LEFT_FIST = F9 EF
-EMOJI_RIGHT_FIST = F9 F0
-EMOJI_BIGWHEEL = F9 F1
-EMOJI_SMALLWHEEL = F9 F2
-EMOJI_SPHERE = F9 F3
-EMOJI_IRRITATED = F9 F4
-EMOJI_MISCHIEVOUS = F9 F5
-EMOJI_HAPPY = F9 F6
-EMOJI_ANGRY = F9 F7
-EMOJI_SURPRISED = F9 F8
-EMOJI_BIGSMILE = F9 F9
-EMOJI_EVIL = F9 FA
-EMOJI_TIRED = F9 FB
-EMOJI_NEUTRAL = F9 FC
-EMOJI_SHOCKED = F9 FD
-EMOJI_BIGANGER = F9 FE
-
-'\l' = FA @ scroll up window text
-'\p' = FB @ new paragraph
-'\n' = FE @ new line
diff --git a/berry_fix/data/data.s b/berry_fix/data/data.s
deleted file mode 100644
index dbb86b13b..000000000
--- a/berry_fix/data/data.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .section .rodata
-
-_data_2f0::
- .incbin "data/payload.gba.lz"
diff --git a/berry_fix/ld_script.sed b/berry_fix/ld_script.sed
deleted file mode 100644
index b91542b6f..000000000
--- a/berry_fix/ld_script.sed
+++ /dev/null
@@ -1,14 +0,0 @@
-/<EWRAM>/ {
- r sym_ewram.ld
- d
-}
-
-/<BSS>/ {
- r sym_bss.ld
- d
-}
-
-/<COMMON>/ {
- r sym_common.ld
- d
-}
diff --git a/berry_fix/ld_script.txt b/berry_fix/ld_script.txt
deleted file mode 100644
index 2edeaef7c..000000000
--- a/berry_fix/ld_script.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-ENTRY(_start)
-
-SECTIONS {
- . = 0x2000000;
-
- .text :
- ALIGN(4)
- {
- asm/loader.o(.text);
- } =0
-
- . += 0x100;
- .rodata :
- ALIGN(4)
- {
- data/data.o(.rodata);
- } =0
-
- . = 0x2010000;
-
- ewram (NOLOAD) :
- ALIGN(4)
- {
- gCode = .;
- }
-
- /DISCARD/ :
- {
- *(*);
- }
-}
diff --git a/berry_fix/payload/Makefile b/berry_fix/payload/Makefile
deleted file mode 100644
index 2779c43ba..000000000
--- a/berry_fix/payload/Makefile
+++ /dev/null
@@ -1,209 +0,0 @@
-TOOLCHAIN := $(DEVKITARM)
-COMPARE ?= 0
-
-# don't use dkP's base_tools anymore
-# because the redefinition of $(CC) conflicts
-# with when we want to use $(CC) to preprocess files
-# thus, manually create the variables for the bin
-# files, or use arm-none-eabi binaries on the system
-# if dkP is not installed on this system
-
-ifneq (,$(TOOLCHAIN))
-ifneq ($(wildcard $(TOOLCHAIN)/bin),)
-export PATH := $(TOOLCHAIN)/bin:$(PATH)
-endif
-endif
-
-PREFIX := arm-none-eabi-
-OBJCOPY := $(PREFIX)objcopy
-AS := $(PREFIX)as
-LD := $(PREFIX)ld
-
-# note: the makefile must be set up so MODERNCC is never called
-# if MODERN=0
-MODERNCC := $(PREFIX)gcc
-
-ifeq ($(OS),Windows_NT)
-EXE := .exe
-else
-EXE :=
-endif
-
-# use arm-none-eabi-cpp for macOS
-# as macOS's default compiler is clang
-# and clang's preprocessor will warn on \u
-# when preprocessing asm files, expecting a unicode literal
-# we can't unconditionally use arm-none-eabi-cpp
-# as installations which install binutils-arm-none-eabi
-# don't come with it
-ifneq ($(MODERN),1)
- ifeq ($(shell uname -s),Darwin)
- CPP := $(PREFIX)cpp
- else
- CPP := $(CC) -E
- endif
-else
- CPP := $(PREFIX)cpp
-endif
-
-SHELL := /bin/bash -o pipefail
-
-CPPFLAGS := -I ../../tools/agbcc/include -I ../../tools/agbcc -iquote include -nostdinc -undef
-
-ROM := payload.gba
-OBJ_DIR := build
-CC1 := ../../tools/agbcc/bin/agbcc$(EXE)
-override CC1FLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
-
-
-ELF = $(ROM:.gba=.elf)
-MAP = $(ROM:.gba=.map)
-
-C_SUBDIR = src
-ASM_SUBDIR = asm
-DATA_ASM_SUBDIR = data
-
-C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR)
-ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR)
-DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
-
-ASFLAGS := -mcpu=arm7tdmi
-
-LDFLAGS = -Map ../$(MAP)
-
-LIB := -L ../../../tools/agbcc/lib -lgcc
-
-SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
-GFX := ../../tools/gbagfx/gbagfx$(EXE)
-AIF := ../../tools/aif2pcm/aif2pcm$(EXE)
-MID := ../../tools/mid2agb/mid2agb$(EXE)
-SCANINC := ../../tools/scaninc/scaninc$(EXE)
-PREPROC := ../../tools/preproc/preproc$(EXE)
-RAMSCRGEN := ../../tools/ramscrgen/ramscrgen$(EXE)
-FIX := ../../tools/gbafix/gbafix$(EXE)
-
-# Clear the default suffixes
-.SUFFIXES:
-# Don't delete intermediate files
-.SECONDARY:
-# Delete files that weren't built properly
-.DELETE_ON_ERROR:
-
-# Secondary expansion is required for dependency variables in object rules.
-.SECONDEXPANSION:
-
-.PHONY: all rom clean compare tidy
-
-C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c)
-C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
-
-ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
-ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS))
-
-DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s)
-DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS))
-
-SONG_SRCS := $(wildcard $(SONG_SUBDIR)/*.s)
-SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS))
-
-MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid)
-MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS))
-
-OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS)
-# OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
-
-SUBDIRS := $(sort $(dir $(OBJS)))
-
-$(shell mkdir -p $(SUBDIRS))
-
-$(C_BUILDDIR)/siirtc.o: CC1FLAGS := -mthumb-interwork
-$(C_BUILDDIR)/agb_flash.o: CC1FLAGS := -O1 -mthumb-interwork
-$(C_BUILDDIR)/agb_flash_1m.o: CC1FLAGS := -O1 -mthumb-interwork
-$(C_BUILDDIR)/agb_flash_mx.o: CC1FLAGS := -O1 -mthumb-interwork
-$(C_BUILDDIR)/agb_flash_le.o: CC1FLAGS := -O1 -mthumb-interwork
-
-all: rom
- @:
-
-rom: $(ROM)
-ifeq ($(COMPARE),1)
- @$(SHA1) rom.sha1
-endif
-
-# For contributors to make sure a change didn't affect the contents of the ROM.
-compare: ; @$(MAKE) COMPARE=1
-
-clean: tidy
- rm -f sound/direct_sound_samples/*.bin
- rm -f $(SONG_OBJS) $(MID_OBJS) $(MID_SUBDIR)/*.s
- find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
-
-tidy:
- rm -f $(ROM) $(ELF) $(MAP)
- rm -r build/*
-
-%.s: ;
-%.png: ;
-%.pal: ;
-%.aif: ;
-
-%.1bpp: %.png ; $(GFX) $< $@
-%.4bpp: %.png ; $(GFX) $< $@
-%.8bpp: %.png ; $(GFX) $< $@
-%.gbapal: %.pal ; $(GFX) $< $@
-%.gbapal: %.png ; $(GFX) $< $@
-%.lz: % ; $(GFX) $< $@
-%.rl: % ; $(GFX) $< $@
-
-
-ifeq ($(NODEP),1)
-$(C_BUILDDIR)/%.o: c_dep :=
-else
-$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c)
-endif
-
-$(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep)
- @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i
- @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CC1FLAGS) -o $(C_BUILDDIR)/$*.s
- @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s
- $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s
-
-ifeq ($(NODEP),1)
-$(ASM_BUILDDIR)/%.o: asm_dep :=
-else
-$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) $(ASM_SUBDIR)/$*.s)
-endif
-
-$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep)
- $(AS) $(ASFLAGS) -o $@ $<
-
-ifeq ($(NODEP),1)
-$(DATA_ASM_BUILDDIR)/%.o: data_dep :=
-else
-$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s)
-endif
-
-$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
- $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
-
-$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
- $(AS) $(ASFLAGS) -I sound -o $@ $<
-
-$(OBJ_DIR)/sym_bss.ld: sym_bss.txt
- $(RAMSCRGEN) .bss $< ENGLISH > $@
-
-$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
- $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@
-
-$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
- $(RAMSCRGEN) ewram_data $< ENGLISH > $@
-
-$(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
- cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../$< | sed "s#tools/#../tools/#g" > ld_script.ld
-
-$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
- cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../$@ $(LIB)
-
-$(ROM): $(ELF)
- $(OBJCOPY) -O binary $< $@
-
diff --git a/berry_fix/payload/asm/crt0.s b/berry_fix/payload/asm/crt0.s
deleted file mode 100644
index 2bca00636..000000000
--- a/berry_fix/payload/asm/crt0.s
+++ /dev/null
@@ -1,82 +0,0 @@
- .include "asm/macros/function.inc"
- .include "constants/gba_constants.inc"
-
- .syntax unified
-
- .text
-
- .arm
- .align 2, 0
- .global Init
-Init:
- mov r0, #PSR_IRQ_MODE
- msr cpsr_cf, r0
- ldr sp, sp_irq
- mov r0, #PSR_SYS_MODE
- msr cpsr_cf, r0
- ldr sp, sp_sys
- ldr r1, =INTR_VECTOR
- ldr r0, =IntrMain
- str r0, [r1]
- ldr r1, =AgbMain + 1
- mov lr, pc
- bx r1
- b Init
-
- .align 2, 0
-sp_sys: .word IWRAM_END - 0x100
-sp_irq: .word IWRAM_END - 0x60
-
- .pool
- .size Init, .-Init
-
- .arm
- .align 2, 0
- .global IntrMain
-IntrMain: @ 0x2010048
- mov ip, #REG_BASE
- add r3, ip, #OFFSET_REG_IE
- ldr r2, [r3]
- and r1, r2, r2, lsr #16
- mov r2, #0
- ands r0, r1, #0x2000
- strbne r0, [r3, #-0x17c]
-_02010064:
- bne _02010064
- ands r0, r1, #0xc0
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #1
- strhne r0, [ip, #-8]
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #2
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #4
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #0x100
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #0x200
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #0x400
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #0x800
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #0x1000
- bne _020100DC
- add r2, r2, #4
- ands r0, r1, #8
-_020100DC:
- strh r0, [r3, #2]
- ldr r1, =gIntrTable
- add r1, r1, r2
- ldr r0, [r1]
- bx r0
- .pool
- .size IntrMain, .-IntrMain
diff --git a/berry_fix/payload/asm/libagbsyscall.s b/berry_fix/payload/asm/libagbsyscall.s
deleted file mode 100644
index f13d08d76..000000000
--- a/berry_fix/payload/asm/libagbsyscall.s
+++ /dev/null
@@ -1,46 +0,0 @@
- .include "asm/macros/function.inc"
- .include "constants/gba_constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CpuSet
-CpuSet:
- svc 0xB
- bx lr
- thumb_func_end CpuSet
-
- thumb_func_start Div
-Div:
- svc 0x6
- bx lr
- thumb_func_end Div
-
- thumb_func_start Mod
-Mod:
- svc 0x6
- adds r0, r1, 0
- bx lr
- thumb_func_end Mod
-
- thumb_func_start LZ77UnCompVram
-LZ77UnCompVram:
- svc 0x12
- bx lr
- thumb_func_end LZ77UnCompVram
-
- thumb_func_start RegisterRamReset
-RegisterRamReset:
- svc 0x1
- bx lr
- thumb_func_end RegisterRamReset
-
- thumb_func_start VBlankIntrWait
-VBlankIntrWait:
- movs r2, 0
- svc 0x5
- bx lr
- thumb_func_end VBlankIntrWait
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/berry_fix/payload/asm/macros/function.inc b/berry_fix/payload/asm/macros/function.inc
deleted file mode 100644
index 67fb373a8..000000000
--- a/berry_fix/payload/asm/macros/function.inc
+++ /dev/null
@@ -1,29 +0,0 @@
- .macro arm_func_start name
- .align 2, 0
- .global \name
- .arm
- .type \name, function
- .endm
-
- .macro arm_func_end name
- .size \name, .-\name
- .endm
-
- .macro thumb_func_start name
- .align 2, 0
- .global \name
- .thumb
- .thumb_func
- .type \name, function
- .endm
-
- .macro non_word_aligned_thumb_func_start name
- .global \name
- .thumb
- .thumb_func
- .type \name, function
- .endm
-
- .macro thumb_func_end name
- .size \name, .-\name
- .endm
diff --git a/berry_fix/payload/charmap.txt b/berry_fix/payload/charmap.txt
deleted file mode 100644
index 1c143ada4..000000000
--- a/berry_fix/payload/charmap.txt
+++ /dev/null
@@ -1,1067 +0,0 @@
-' ' = 00
-'À' = 01
-'Á' = 02
-'Â' = 03
-'Ç' = 04
-'È' = 05
-'É' = 06
-'Ê' = 07
-'Ë' = 08
-'Ì' = 09
-'Î' = 0B
-'Ï' = 0C
-'Ò' = 0D
-'Ó' = 0E
-'Ô' = 0F
-'Œ' = 10
-'Ù' = 11
-'Ú' = 12
-'Û' = 13
-'Ñ' = 14
-'ß' = 15
-'à' = 16
-'á' = 17
-'ç' = 19
-'è' = 1A
-'é' = 1B
-'ê' = 1C
-'ë' = 1D
-'ì' = 1E
-'î' = 20
-'ï' = 21
-'ò' = 22
-'ó' = 23
-'ô' = 24
-'œ' = 25
-'ù' = 26
-'ú' = 27
-'û' = 28
-'ñ' = 29
-'º' = 2A
-'ª' = 2B
-SUPER_ER = 2C
-'&' = 2D
-'+' = 2E
-LV = 34
-'=' = 35
-';' = 36
-'¿' = 51
-'¡' = 52
-PK = 53
-PKMN = 53 54
-POKEBLOCK = 55 56 57 58 59
-'Í' = 5A
-'%' = 5B
-'(' = 5C
-')' = 5D
-'â' = 68
-'í' = 6F
-UNK_SPACER = 77
-UP_ARROW = 79
-DOWN_ARROW = 7A
-LEFT_ARROW = 7B
-RIGHT_ARROW = 7C
-'0' = A1
-'1' = A2
-'2' = A3
-'3' = A4
-'4' = A5
-'5' = A6
-'6' = A7
-'7' = A8
-'8' = A9
-'9' = AA
-'!' = AB
-'?' = AC
-'.' = AD
-'-' = AE
-'·' = AF
-'…' = B0
-'“' = B1
-'”' = B2
-'‘' = B3
-'’' = B4
-'♂' = B5
-'♀' = B6
-'¥' = B7
-',' = B8
-'×' = B9
-'/' = BA
-'A' = BB
-'B' = BC
-'C' = BD
-'D' = BE
-'E' = BF
-'F' = C0
-'G' = C1
-'H' = C2
-'I' = C3
-'J' = C4
-'K' = C5
-'L' = C6
-'M' = C7
-'N' = C8
-'O' = C9
-'P' = CA
-'Q' = CB
-'R' = CC
-'S' = CD
-'T' = CE
-'U' = CF
-'V' = D0
-'W' = D1
-'X' = D2
-'Y' = D3
-'Z' = D4
-'a' = D5
-'b' = D6
-'c' = D7
-'d' = D8
-'e' = D9
-'f' = DA
-'g' = DB
-'h' = DC
-'i' = DD
-'j' = DE
-'k' = DF
-'l' = E0
-'m' = E1
-'n' = E2
-'o' = E3
-'p' = E4
-'q' = E5
-'r' = E6
-'s' = E7
-'t' = E8
-'u' = E9
-'v' = EA
-'w' = EB
-'x' = EC
-'y' = ED
-'z' = EE
-'▶' = EF
-':' = F0
-'Ä' = F1
-'Ö' = F2
-'Ü' = F3
-'ä' = F4
-'ö' = F5
-'ü' = F6
-TALL_PLUS = FC 0C FB
-'$' = FF
-
-@ Hiragana
-'あ' = 01
-'い' = 02
-'う' = 03
-'え' = 04
-'お' = 05
-'か' = 06
-'き' = 07
-'く' = 08
-'け' = 09
-'こ' = 0A
-'さ' = 0B
-'し' = 0C
-'す' = 0D
-'せ' = 0E
-'そ' = 0F
-'た' = 10
-'ち' = 11
-'つ' = 12
-'て' = 13
-'と' = 14
-'な' = 15
-'に' = 16
-'ぬ' = 17
-'ね' = 18
-'の' = 19
-'は' = 1A
-'ひ' = 1B
-'ふ' = 1C
-'へ' = 1D
-'ほ' = 1E
-'ま' = 1F
-'み' = 20
-'む' = 21
-'め' = 22
-'も' = 23
-'や' = 24
-'ゆ' = 25
-'よ' = 26
-'ら' = 27
-'り' = 28
-'る' = 29
-'れ' = 2A
-'ろ' = 2B
-'わ' = 2C
-'を' = 2D
-'ん' = 2E
-'ぁ' = 2F
-'ぃ' = 30
-'ぅ' = 31
-'ぇ' = 32
-'ぉ' = 33
-'ゃ' = 34
-'ゅ' = 35
-'ょ' = 36
-'が' = 37
-'ぎ' = 38
-'ぐ' = 39
-'げ' = 3A
-'ご' = 3B
-'ざ' = 3C
-'じ' = 3D
-'ず' = 3E
-'ぜ' = 3F
-'ぞ' = 40
-'だ' = 41
-'ぢ' = 42
-'づ' = 43
-'で' = 44
-'ど' = 45
-'ば' = 46
-'び' = 47
-'ぶ' = 48
-'べ' = 49
-'ぼ' = 4A
-'ぱ' = 4B
-'ぴ' = 4C
-'ぷ' = 4D
-'ぺ' = 4E
-'ぽ' = 4F
-'っ' = 50
-
-@ Katakana
-'ア' = 51
-'イ' = 52
-'ウ' = 53
-'エ' = 54
-'オ' = 55
-'カ' = 56
-'キ' = 57
-'ク' = 58
-'ケ' = 59
-'コ' = 5A
-'サ' = 5B
-'シ' = 5C
-'ス' = 5D
-'セ' = 5E
-'ソ' = 5F
-'タ' = 60
-'チ' = 61
-'ツ' = 62
-'テ' = 63
-'ト' = 64
-'ナ' = 65
-'ニ' = 66
-'ヌ' = 67
-'ネ' = 68
-'ノ' = 69
-'ハ' = 6A
-'ヒ' = 6B
-'フ' = 6C
-'ヘ' = 6D
-'ホ' = 6E
-'マ' = 6F
-'ミ' = 70
-'ム' = 71
-'メ' = 72
-'モ' = 73
-'ヤ' = 74
-'ユ' = 75
-'ヨ' = 76
-'ラ' = 77
-'リ' = 78
-'ル' = 79
-'レ' = 7A
-'ロ' = 7B
-'ワ' = 7C
-'ヲ' = 7D
-'ン' = 7E
-'ァ' = 7F
-'ィ' = 80
-'ゥ' = 81
-'ェ' = 82
-'ォ' = 83
-'ャ' = 84
-'ュ' = 85
-'ョ' = 86
-'ガ' = 87
-'ギ' = 88
-'グ' = 89
-'ゲ' = 8A
-'ゴ' = 8B
-'ザ' = 8C
-'ジ' = 8D
-'ズ' = 8E
-'ゼ' = 8F
-'ゾ' = 90
-'ダ' = 91
-'ヂ' = 92
-'ヅ' = 93
-'デ' = 94
-'ド' = 95
-'バ' = 96
-'ビ' = 97
-'ブ' = 98
-'ベ' = 99
-'ボ' = 9A
-'パ' = 9B
-'ピ' = 9C
-'プ' = 9D
-'ペ' = 9E
-'ポ' = 9F
-'ッ' = A0
-
-@ Japanese punctuation
-' ' = 00
-'!' = AB
-'?' = AC
-'。' = AD
-'ー' = AE
-'⋯' = B0
-
-STRING = FD
-
-@ string placeholders
-PLAYER = FD 01
-STR_VAR_1 = FD 02
-STR_VAR_2 = FD 03
-STR_VAR_3 = FD 04
-KUN = FD 05
-RIVAL = FD 06
-@ version-dependent strings (originally made for Ruby/Sapphire differences)
-@ Emerald uses the Sapphire strings (except for VERSION).
-VERSION = FD 07 @ "EMERALD"
-AQUA = FD 08
-MAGMA = FD 09
-ARCHIE = FD 0A
-MAXIE = FD 0B
-KYOGRE = FD 0C
-GROUDON = FD 0D
-
-@ battle string placeholders
-
-B_BUFF1 = FD 00
-B_BUFF2 = FD 01
-B_COPY_VAR_1 = FD 02
-B_COPY_VAR_2 = FD 03
-B_COPY_VAR_3 = FD 04
-B_PLAYER_MON1_NAME = FD 05
-B_OPPONENT_MON1_NAME = FD 06
-B_PLAYER_MON2_NAME = FD 07
-B_OPPONENT_MON2_NAME = FD 08
-B_LINK_PLAYER_MON1_NAME = FD 09
-B_LINK_OPPONENT_MON1_NAME = FD 0A
-B_LINK_PLAYER_MON2_NAME = FD 0B
-B_LINK_OPPONENT_MON2_NAME = FD 0C
-B_ATK_NAME_WITH_PREFIX_MON1 = FD 0D
-B_ATK_PARTNER_NAME = FD 0E
-B_ATK_NAME_WITH_PREFIX = FD 0F
-B_DEF_NAME_WITH_PREFIX = FD 10
-B_EFF_NAME_WITH_PREFIX = FD 11 @ EFF = short for gEffectBattler
-B_ACTIVE_NAME_WITH_PREFIX = FD 12
-B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 13
-B_CURRENT_MOVE = FD 14
-B_LAST_MOVE = FD 15
-B_LAST_ITEM = FD 16
-B_LAST_ABILITY = FD 17
-B_ATK_ABILITY = FD 18
-B_DEF_ABILITY = FD 19
-B_SCR_ACTIVE_ABILITY = FD 1A
-B_EFF_ABILITY = FD 1B
-B_TRAINER1_CLASS = FD 1C
-B_TRAINER1_NAME = FD 1D
-B_LINK_PLAYER_NAME = FD 1E
-B_LINK_PARTNER_NAME = FD 1F
-B_LINK_OPPONENT1_NAME = FD 20
-B_LINK_OPPONENT2_NAME = FD 21
-B_LINK_SCR_TRAINER_NAME = FD 22
-B_PLAYER_NAME = FD 23
-B_TRAINER1_LOSE_TEXT = FD 24
-B_TRAINER1_WIN_TEXT = FD 25
-B_26 = FD 26
-B_PC_CREATOR_NAME = FD 27
-B_ATK_PREFIX1 = FD 28
-B_DEF_PREFIX1 = FD 29
-B_ATK_PREFIX2 = FD 2A
-B_DEF_PREFIX2 = FD 2B
-B_ATK_PREFIX3 = FD 2C
-B_DEF_PREFIX3 = FD 2D
-B_TRAINER2_CLASS = FD 2E
-B_TRAINER2_NAME = FD 2F
-B_TRAINER2_LOSE_TEXT = FD 30
-B_TRAINER2_WIN_TEXT = FD 31
-B_PARTNER_CLASS = FD 32
-B_PARTNER_NAME = FD 33
-B_BUFF3 = FD 34
-
-@ indicates the end of a town/city name (before " TOWN" or " CITY")
-NAME_END = FC 00
-
-@ special 0xF7 character
-SPECIAL_F7 = F7
-
-@ more text functions
-
-COLOR = FC 01 @ use a color listed below right after
-HIGHLIGHT = FC 02 @ same as fc 01
-SHADOW = FC 03 @ same as fc 01
-COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 bytes
-PALETTE = FC 05 @ used in credits
-SIZE = FC 06 @ note that anything other than "SMALL" is invalid
-UNKNOWN_7 = FC 07
-PAUSE = FC 08 @ manually print the wait byte after this, havent mapped them
-PAUSE_UNTIL_PRESS = FC 09
-WAIT_SE = FC 0A
-PLAY_BGM = FC 0B
-ESCAPE = FC 0C
-SHIFT_TEXT = FC 0D
-UNKNOWN_E = FC 0E
-UNKNOWN_F = FC 0F
-PLAY_SE = FC 10
-CLEAR = FC 11
-SKIP = FC 12
-CLEAR_TO = FC 13
-UNKNOWN_14 = FC 14
-JPN = FC 15
-ENG = FC 16
-PAUSE_MUSIC = FC 17
-RESUME_MUSIC = FC 18
-
-@ colors
-
-TRANSPARENT = 00
-WHITE = 01
-DARK_GRAY = 02
-LIGHT_GRAY = 03
-RED = 04
-LIGHT_RED = 05
-GREEN = 06
-LIGHT_GREEN = 07
-BLUE = 08
-LIGHT_BLUE = 09
-@ these next colors can be set to anything arbitrary at runtime
-@ usually though they'll have the textbox border colors as described below
-DYNAMIC_COLOR1 = 0A @ white
-DYNAMIC_COLOR2 = 0B @ white with a tinge of green
-DYNAMIC_COLOR3 = 0C @ white 2
-DYNAMIC_COLOR4 = 0D @ aquamarine
-DYNAMIC_COLOR5 = 0E @ blue-green
-DYNAMIC_COLOR6 = 0F @ cerulean
-
-@ sound and music
-
-MUS_DUMMY = 00 00
-SE_USE_ITEM = 01 00
-SE_PC_LOGIN = 02 00
-SE_PC_OFF = 03 00
-SE_PC_ON = 04 00
-SE_SELECT = 05 00
-SE_WIN_OPEN = 06 00
-SE_WALL_HIT = 07 00
-SE_DOOR = 08 00
-SE_EXIT = 09 00
-SE_LEDGE = 0A 00
-SE_BIKE_BELL = 0B 00
-SE_NOT_EFFECTIVE = 0C 00
-SE_EFFECTIVE = 0D 00
-SE_SUPER_EFFECTIVE = 0E 00
-SE_BALL_OPEN = 0F 00
-SE_FAINT = 10 00
-SE_FLEE = 11 00
-SE_SLIDING_DOOR = 12 00
-SE_SHIP = 13 00
-SE_BANG = 14 00
-SE_PIN = 15 00
-SE_BOO = 16 00
-SE_BALL = 17 00
-SE_CONTEST_PLACE = 18 00
-SE_A = 19 00
-SE_I = 1A 00
-SE_U = 1B 00
-SE_E = 1C 00
-SE_O = 1D 00
-SE_N = 1E 00
-SE_SUCCESS = 1F 00
-SE_FAILURE = 20 00
-SE_EXP = 21 00
-SE_BIKE_HOP = 22 00
-SE_SWITCH = 23 00
-SE_CLICK = 24 00
-SE_FU_ZAKU = 25 00
-SE_CONTEST_CONDITION_LOSE = 26 00
-SE_LAVARIDGE_FALL_WARP = 27 00
-SE_ICE_STAIRS = 28 00
-SE_ICE_BREAK = 29 00
-SE_ICE_CRACK = 2A 00
-SE_FALL = 2B 00
-SE_UNLOCK = 2C 00
-SE_WARP_IN = 2D 00
-SE_WARP_OUT = 2E 00
-SE_REPEL = 2F 00
-SE_ROTATING_GATE = 30 00
-SE_TRUCK_MOVE = 31 00
-SE_TRUCK_STOP = 32 00
-SE_TRUCK_UNLOAD = 33 00
-SE_TRUCK_DOOR = 34 00
-SE_BERRY_BLENDER = 35 00
-SE_CARD = 36 00
-SE_SAVE = 37 00
-SE_BALL_BOUNCE_1 = 38 00
-SE_BALL_BOUNCE_2 = 39 00
-SE_BALL_BOUNCE_3 = 3A 00
-SE_BALL_BOUNCE_4 = 3B 00
-SE_BALL_TRADE = 3C 00
-SE_BALL_THROW = 3D 00
-SE_NOTE_C = 3E 00
-SE_NOTE_D = 3F 00
-SE_NOTE_E = 40 00
-SE_NOTE_F = 41 00
-SE_NOTE_G = 42 00
-SE_NOTE_A = 43 00
-SE_NOTE_B = 44 00
-SE_NOTE_C_HIGH = 45 00
-SE_PUDDLE = 46 00
-SE_BRIDGE_WALK = 47 00
-SE_ITEMFINDER = 48 00
-SE_DING_DONG = 49 00
-SE_BALLOON_RED = 4A 00
-SE_BALLOON_BLUE = 4B 00
-SE_BALLOON_YELLOW = 4C 00
-SE_BREAKABLE_DOOR = 4D 00
-SE_MUD_BALL = 4E 00
-SE_FIELD_POISON = 4F 00
-SE_ESCALATOR = 50 00
-SE_THUNDERSTORM = 51 00
-SE_THUNDERSTORM_STOP = 52 00
-SE_DOWNPOUR = 53 00
-SE_DOWNPOUR_STOP = 54 00
-SE_RAIN = 55 00
-SE_RAIN_STOP = 56 00
-SE_THUNDER = 57 00
-SE_THUNDER2 = 58 00
-SE_ELEVATOR = 59 00
-SE_LOW_HEALTH = 5A 00
-SE_EXP_MAX = 5B 00
-SE_ROULETTE_BALL = 5C 00
-SE_ROULETTE_BALL2 = 5D 00
-SE_TAILLOW_WING_FLAP = 5E 00
-SE_SHOP = 5F 00
-SE_CONTEST_HEART = 60 00
-SE_CONTEST_CURTAIN_RISE = 61 00
-SE_CONTEST_CURTAIN_FALL = 62 00
-SE_CONTEST_ICON_CHANGE = 63 00
-SE_CONTEST_ICON_CLEAR = 64 00
-SE_CONTEST_MONS_TURN = 65 00
-SE_SHINY = 66 00
-SE_INTRO_BLAST = 67 00
-SE_MUGSHOT = 68 00
-SE_APPLAUSE = 69 00
-SE_VEND = 6A 00
-SE_ORB = 6B 00
-SE_DEX_SCROLL = 6C 00
-SE_DEX_PAGE = 6D 00
-SE_POKENAV_ON = 6E 00
-SE_POKENAV_OFF = 6F 00
-SE_DEX_SEARCH = 70 00
-SE_EGG_HATCH = 71 00
-SE_BALL_TRAY_ENTER = 72 00
-SE_BALL_TRAY_BALL = 73 00
-SE_BALL_TRAY_EXIT = 74 00
-SE_GLASS_FLUTE = 75 00
-SE_M_THUNDERBOLT = 76 00
-SE_M_THUNDERBOLT2 = 77 00
-SE_M_HARDEN = 78 00
-SE_M_NIGHTMARE = 79 00
-SE_M_VITAL_THROW = 7A 00
-SE_M_VITAL_THROW2 = 7B 00
-SE_M_BUBBLE = 7C 00
-SE_M_BUBBLE2 = 7D 00
-SE_M_BUBBLE3 = 7E 00
-SE_M_RAIN_DANCE = 7F 00
-SE_M_CUT = 80 00
-SE_M_STRING_SHOT = 81 00
-SE_M_STRING_SHOT2 = 82 00
-SE_M_ROCK_THROW = 83 00
-SE_M_GUST = 84 00
-SE_M_GUST2 = 85 00
-SE_M_DOUBLE_SLAP = 86 00
-SE_M_DOUBLE_TEAM = 87 00
-SE_M_RAZOR_WIND = 88 00
-SE_M_ICY_WIND = 89 00
-SE_M_THUNDER_WAVE = 8A 00
-SE_M_COMET_PUNCH = 8B 00
-SE_M_MEGA_KICK = 8C 00
-SE_M_MEGA_KICK2 = 8D 00
-SE_M_CRABHAMMER = 8E 00
-SE_M_JUMP_KICK = 8F 00
-SE_M_FLAME_WHEEL = 90 00
-SE_M_FLAME_WHEEL2 = 91 00
-SE_M_FLAMETHROWER = 92 00
-SE_M_FIRE_PUNCH = 93 00
-SE_M_TOXIC = 94 00
-SE_M_SACRED_FIRE = 95 00
-SE_M_SACRED_FIRE2 = 96 00
-SE_M_EMBER = 97 00
-SE_M_TAKE_DOWN = 98 00
-SE_M_BLIZZARD = 99 00
-SE_M_BLIZZARD2 = 9A 00
-SE_M_SCRATCH = 9B 00
-SE_M_VICEGRIP = 9C 00
-SE_M_WING_ATTACK = 9D 00
-SE_M_FLY = 9E 00
-SE_M_SAND_ATTACK = 9F 00
-SE_M_RAZOR_WIND2 = A0 00
-SE_M_BITE = A1 00
-SE_M_HEADBUTT = A2 00
-SE_M_SURF = A3 00
-SE_M_HYDRO_PUMP = A4 00
-SE_M_WHIRLPOOL = A5 00
-SE_M_HORN_ATTACK = A6 00
-SE_M_TAIL_WHIP = A7 00
-SE_M_MIST = A8 00
-SE_M_POISON_POWDER = A9 00
-SE_M_BIND = AA 00
-SE_M_DRAGON_RAGE = AB 00
-SE_M_SING = AC 00
-SE_M_PERISH_SONG = AD 00
-SE_M_PAY_DAY = AE 00
-SE_M_DIG = AF 00
-SE_M_DIZZY_PUNCH = B0 00
-SE_M_SELF_DESTRUCT = B1 00
-SE_M_EXPLOSION = B2 00
-SE_M_ABSORB_2 = B3 00
-SE_M_ABSORB = B4 00
-SE_M_SCREECH = B5 00
-SE_M_BUBBLE_BEAM = B6 00
-SE_M_BUBBLE_BEAM2 = B7 00
-SE_M_SUPERSONIC = B8 00
-SE_M_BELLY_DRUM = B9 00
-SE_M_METRONOME = BA 00
-SE_M_BONEMERANG = BB 00
-SE_M_LICK = BC 00
-SE_M_PSYBEAM = BD 00
-SE_M_FAINT_ATTACK = BE 00
-SE_M_SWORDS_DANCE = BF 00
-SE_M_LEER = C0 00
-SE_M_SWAGGER = C1 00
-SE_M_SWAGGER2 = C2 00
-SE_M_HEAL_BELL = C3 00
-SE_M_CONFUSE_RAY = C4 00
-SE_M_SNORE = C5 00
-SE_M_BRICK_BREAK = C6 00
-SE_M_GIGA_DRAIN = C7 00
-SE_M_PSYBEAM2 = C8 00
-SE_M_SOLAR_BEAM = C9 00
-SE_M_PETAL_DANCE = CA 00
-SE_M_TELEPORT = CB 00
-SE_M_MINIMIZE = CC 00
-SE_M_SKETCH = CD 00
-SE_M_SWIFT = CE 00
-SE_M_REFLECT = CF 00
-SE_M_BARRIER = D0 00
-SE_M_DETECT = D1 00
-SE_M_LOCK_ON = D2 00
-SE_M_MOONLIGHT = D3 00
-SE_M_CHARM = D4 00
-SE_M_CHARGE = D5 00
-SE_M_STRENGTH = D6 00
-SE_M_HYPER_BEAM = D7 00
-SE_M_WATERFALL = D8 00
-SE_M_REVERSAL = D9 00
-SE_M_ACID_ARMOR = DA 00
-SE_M_SANDSTORM = DB 00
-SE_M_TRI_ATTACK = DC 00
-SE_M_TRI_ATTACK2 = DD 00
-SE_M_ENCORE = DE 00
-SE_M_ENCORE2 = DF 00
-SE_M_BATON_PASS = E0 00
-SE_M_MILK_DRINK = E1 00
-SE_M_ATTRACT = E2 00
-SE_M_ATTRACT2 = E3 00
-SE_M_MORNING_SUN = E4 00
-SE_M_FLATTER = E5 00
-SE_M_SAND_TOMB = E6 00
-SE_M_GRASSWHISTLE = E7 00
-SE_M_SPIT_UP = E8 00
-SE_M_DIVE = E9 00
-SE_M_EARTHQUAKE = EA 00
-SE_M_TWISTER = EB 00
-SE_M_SWEET_SCENT = EC 00
-SE_M_YAWN = ED 00
-SE_M_SKY_UPPERCUT = EE 00
-SE_M_STAT_INCREASE = EF 00
-SE_M_HEAT_WAVE = F0 00
-SE_M_UPROAR = F1 00
-SE_M_HAIL = F2 00
-SE_M_COSMIC_POWER = F3 00
-SE_M_TEETER_DANCE = F4 00
-SE_M_STAT_DECREASE = F5 00
-SE_M_HAZE = F6 00
-SE_M_HYPER_BEAM2 = F7 00
-SE_RG_DOOR = F8 00
-SE_RG_CARD_FLIP = F9 00
-SE_RG_CARD_FLIPPING = FA 00
-SE_RG_CARD_OPEN = FB 00
-SE_RG_BAG_CURSOR = FC 00
-SE_RG_BAG_POCKET = FD 00
-SE_RG_BALL_CLICK = FE 00
-SE_RG_SHOP = FF 00
-SE_RG_SS_ANNE_HORN = 00 01
-SE_RG_HELP_OPEN = 01 01
-SE_RG_HELP_CLOSE = 02 01
-SE_RG_HELP_ERROR = 03 01
-SE_RG_DEOXYS_MOVE = 04 01
-SE_RG_POKE_JUMP_SUCCESS = 05 01
-SE_RG_POKE_JUMP_FAILURE = 06 01
-SE_POKENAV_CALL = 07 01
-SE_POKENAV_HANG_UP = 08 01
-SE_ARENA_TIMEUP1 = 09 01
-SE_ARENA_TIMEUP2 = 0A 01
-SE_PIKE_CURTAIN_CLOSE = 0B 01
-SE_PIKE_CURTAIN_OPEN = 0C 01
-SE_SUDOWOODO_SHAKE = 0D 01
-MUS_LITTLEROOT_TEST = 5E 01
-MUS_GSC_ROUTE38 = 5F 01
-MUS_CAUGHT = 60 01
-MUS_VICTORY_WILD = 61 01
-MUS_VICTORY_GYM_LEADER = 62 01
-MUS_VICTORY_LEAGUE = 63 01
-MUS_C_COMM_CENTER = 64 01
-MUS_GSC_PEWTER = 65 01
-MUS_C_VS_LEGEND_BEAST = 66 01
-MUS_ROUTE101 = 67 01
-MUS_ROUTE110 = 68 01
-MUS_ROUTE120 = 69 01
-MUS_PETALBURG = 6A 01
-MUS_OLDALE = 6B 01
-MUS_GYM = 6C 01
-MUS_SURF = 6D 01
-MUS_PETALBURG_WOODS = 6E 01
-MUS_LEVEL_UP = 6F 01
-MUS_HEAL = 70 01
-MUS_OBTAIN_BADGE = 71 01
-MUS_OBTAIN_ITEM = 72 01
-MUS_EVOLVED = 73 01
-MUS_OBTAIN_TMHM = 74 01
-MUS_LILYCOVE_MUSEUM = 75 01
-MUS_ROUTE122 = 76 01
-MUS_OCEANIC_MUSEUM = 77 01
-MUS_EVOLUTION_INTRO = 78 01
-MUS_EVOLUTION = 79 01
-MUS_MOVE_DELETED = 7A 01
-MUS_ENCOUNTER_GIRL = 7B 01
-MUS_ENCOUNTER_MALE = 7C 01
-MUS_ABANDONED_SHIP = 7D 01
-MUS_FORTREE = 7E 01
-MUS_BIRCH_LAB = 7F 01
-MUS_B_TOWER_RS = 80 01
-MUS_ENCOUNTER_SWIMMER = 81 01
-MUS_CAVE_OF_ORIGIN = 82 01
-MUS_OBTAIN_BERRY = 83 01
-MUS_AWAKEN_LEGEND = 84 01
-MUS_SLOTS_JACKPOT = 85 01
-MUS_SLOTS_WIN = 86 01
-MUS_TOO_BAD = 87 01
-MUS_ROULETTE = 88 01
-MUS_LINK_CONTEST_P1 = 89 01
-MUS_LINK_CONTEST_P2 = 8A 01
-MUS_LINK_CONTEST_P3 = 8B 01
-MUS_LINK_CONTEST_P4 = 8C 01
-MUS_ENCOUNTER_RICH = 8D 01
-MUS_VERDANTURF = 8E 01
-MUS_RUSTBORO = 8F 01
-MUS_POKE_CENTER = 90 01
-MUS_ROUTE104 = 91 01
-MUS_ROUTE119 = 92 01
-MUS_CYCLING = 93 01
-MUS_POKE_MART = 94 01
-MUS_LITTLEROOT = 95 01
-MUS_MT_CHIMNEY = 96 01
-MUS_ENCOUNTER_FEMALE = 97 01
-MUS_LILYCOVE = 98 01
-MUS_ROUTE111 = 99 01
-MUS_HELP = 9A 01
-MUS_UNDERWATER = 9B 01
-MUS_VICTORY_TRAINER = 9C 01
-MUS_TITLE = 9D 01
-MUS_INTRO = 9E 01
-MUS_ENCOUNTER_MAY = 9F 01
-MUS_ENCOUNTER_INTENSE = A0 01
-MUS_ENCOUNTER_COOL = A1 01
-MUS_ROUTE113 = A2 01
-MUS_ENCOUNTER_AQUA = A3 01
-MUS_FOLLOW_ME = A4 01
-MUS_ENCOUNTER_BRENDAN = A5 01
-MUS_EVER_GRANDE = A6 01
-MUS_ENCOUNTER_SUSPICIOUS = A7 01
-MUS_VICTORY_AQUA_MAGMA = A8 01
-MUS_CABLE_CAR = A9 01
-MUS_GAME_CORNER = AA 01
-MUS_DEWFORD = AB 01
-MUS_SAFARI_ZONE = AC 01
-MUS_VICTORY_ROAD = AD 01
-MUS_AQUA_MAGMA_HIDEOUT = AE 01
-MUS_SAILING = AF 01
-MUS_MT_PYRE = B0 01
-MUS_SLATEPORT = B1 01
-MUS_MT_PYRE_EXTERIOR = B2 01
-MUS_SCHOOL = B3 01
-MUS_HALL_OF_FAME = B4 01
-MUS_FALLARBOR = B5 01
-MUS_SEALED_CHAMBER = B6 01
-MUS_CONTEST_WINNER = B7 01
-MUS_CONTEST = B8 01
-MUS_ENCOUNTER_MAGMA = B9 01
-MUS_INTRO_BATTLE = BA 01
-MUS_ABNORMAL_WEATHER = BB 01
-MUS_WEATHER_GROUDON = BC 01
-MUS_SOOTOPOLIS = BD 01
-MUS_CONTEST_RESULTS = BE 01
-MUS_HALL_OF_FAME_ROOM = BF 01
-MUS_TRICK_HOUSE = C0 01
-MUS_ENCOUNTER_TWINS = C1 01
-MUS_ENCOUNTER_ELITE_FOUR = C2 01
-MUS_ENCOUNTER_HIKER = C3 01
-MUS_CONTEST_LOBBY = C4 01
-MUS_ENCOUNTER_INTERVIEWER = C5 01
-MUS_ENCOUNTER_CHAMPION = C6 01
-MUS_CREDITS = C7 01
-MUS_END = C8 01
-MUS_B_FRONTIER = C9 01
-MUS_B_ARENA = CA 01
-MUS_OBTAIN_B_POINTS = CB 01
-MUS_REGISTER_MATCH_CALL = CC 01
-MUS_B_PYRAMID = CD 01
-MUS_B_PYRAMID_TOP = CE 01
-MUS_B_PALACE = CF 01
-MUS_RAYQUAZA_APPEARS = D0 01
-MUS_B_TOWER = D1 01
-MUS_OBTAIN_SYMBOL = D2 01
-MUS_B_DOME = D3 01
-MUS_B_PIKE = D4 01
-MUS_B_FACTORY = D5 01
-MUS_VS_RAYQUAZA = D6 01
-MUS_VS_FRONTIER_BRAIN = D7 01
-MUS_VS_MEW = D8 01
-MUS_B_DOME_LOBBY = D9 01
-MUS_VS_WILD = DA 01
-MUS_VS_AQUA_MAGMA = DB 01
-MUS_VS_TRAINER = DC 01
-MUS_VS_GYM_LEADER = DD 01
-MUS_VS_CHAMPION = DE 01
-MUS_VS_REGI = DF 01
-MUS_VS_KYOGRE_GROUDON = E0 01
-MUS_VS_RIVAL = E1 01
-MUS_VS_ELITE_FOUR = E2 01
-MUS_VS_AQUA_MAGMA_LEADER = E3 01
-MUS_RG_FOLLOW_ME = E4 01
-MUS_RG_GAME_CORNER = E5 01
-MUS_RG_ROCKET_HIDEOUT = E6 01
-MUS_RG_GYM = E7 01
-MUS_RG_JIGGLYPUFF = E8 01
-MUS_RG_INTRO_FIGHT = E9 01
-MUS_RG_TITLE = EA 01
-MUS_RG_CINNABAR = EB 01
-MUS_RG_LAVENDER = EC 01
-MUS_RG_HEAL = ED 01
-MUS_RG_CYCLING = EE 01
-MUS_RG_ENCOUNTER_ROCKET = EF 01
-MUS_RG_ENCOUNTER_GIRL = F0 01
-MUS_RG_ENCOUNTER_BOY = F1 01
-MUS_RG_HALL_OF_FAME = F2 01
-MUS_RG_VIRIDIAN_FOREST = F3 01
-MUS_RG_MT_MOON = F4 01
-MUS_RG_POKE_MANSION = F5 01
-MUS_RG_CREDITS = F6 01
-MUS_RG_ROUTE1 = F7 01
-MUS_RG_ROUTE24 = F8 01
-MUS_RG_ROUTE3 = F9 01
-MUS_RG_ROUTE11 = FA 01
-MUS_RG_VICTORY_ROAD = FB 01
-MUS_RG_VS_GYM_LEADER = FC 01
-MUS_RG_VS_TRAINER = FD 01
-MUS_RG_VS_WILD = FE 01
-MUS_RG_VS_CHAMPION = FF 01
-MUS_RG_PALLET = 00 02
-MUS_RG_OAK_LAB = 01 02
-MUS_RG_OAK = 02 02
-MUS_RG_POKE_CENTER = 03 02
-MUS_RG_SS_ANNE = 04 02
-MUS_RG_SURF = 05 02
-MUS_RG_POKE_TOWER = 06 02
-MUS_RG_SILPH = 07 02
-MUS_RG_FUCHSIA = 08 02
-MUS_RG_CELADON = 09 02
-MUS_RG_VICTORY_TRAINER = 0A 02
-MUS_RG_VICTORY_WILD = 0B 02
-MUS_RG_VICTORY_GYM_LEADER = 0C 02
-MUS_RG_VERMILLION = 0D 02
-MUS_RG_PEWTER = 0E 02
-MUS_RG_ENCOUNTER_RIVAL = 0F 02
-MUS_RG_RIVAL_EXIT = 10 02
-MUS_RG_DEX_RATING = 11 02
-MUS_RG_OBTAIN_KEY_ITEM = 12 02
-MUS_RG_CAUGHT_INTRO = 13 02
-MUS_RG_PHOTO = 14 02
-MUS_RG_GAME_FREAK = 15 02
-MUS_RG_CAUGHT = 16 02
-MUS_RG_NEW_GAME_INSTRUCT = 17 02
-MUS_RG_NEW_GAME_INTRO = 18 02
-MUS_RG_NEW_GAME_EXIT = 19 02
-MUS_RG_POKE_JUMP = 1A 02
-MUS_RG_UNION_ROOM = 1B 02
-MUS_RG_NET_CENTER = 1C 02
-MUS_RG_MYSTERY_GIFT = 1D 02
-MUS_RG_BERRY_PICK = 1E 02
-MUS_RG_SEVII_CAVE = 1F 02
-MUS_RG_TEACHY_TV_SHOW = 20 02
-MUS_RG_SEVII_ROUTE = 21 02
-MUS_RG_SEVII_DUNGEON = 22 02
-MUS_RG_SEVII_123 = 23 02
-MUS_RG_SEVII_45 = 24 02
-MUS_RG_SEVII_67 = 25 02
-MUS_RG_POKE_FLUTE = 26 02
-MUS_RG_VS_DEOXYS = 27 02
-MUS_RG_VS_MEWTWO = 28 02
-MUS_RG_VS_LEGEND = 29 02
-MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02
-MUS_RG_ENCOUNTER_DEOXYS = 2B 02
-MUS_RG_TRAINER_TOWER = 2C 02
-MUS_RG_SLOW_PALLET = 2D 02
-MUS_RG_TEACHY_TV_MENU = 2E 02
-PH_TRAP_BLEND = 2F 02
-PH_TRAP_HELD = 30 02
-PH_TRAP_SOLO = 31 02
-PH_FACE_BLEND = 32 02
-PH_FACE_HELD = 33 02
-PH_FACE_SOLO = 34 02
-PH_CLOTH_BLEND = 35 02
-PH_CLOTH_HELD = 36 02
-PH_CLOTH_SOLO = 37 02
-PH_DRESS_BLEND = 38 02
-PH_DRESS_HELD = 39 02
-PH_DRESS_SOLO = 3A 02
-PH_FLEECE_BLEND = 3B 02
-PH_FLEECE_HELD = 3C 02
-PH_FLEECE_SOLO = 3D 02
-PH_KIT_BLEND = 3E 02
-PH_KIT_HELD = 3F 02
-PH_KIT_SOLO = 40 02
-PH_PRICE_BLEND = 41 02
-PH_PRICE_HELD = 42 02
-PH_PRICE_SOLO = 43 02
-PH_LOT_BLEND = 44 02
-PH_LOT_HELD = 45 02
-PH_LOT_SOLO = 46 02
-PH_GOAT_BLEND = 47 02
-PH_GOAT_HELD = 48 02
-PH_GOAT_SOLO = 49 02
-PH_THOUGHT_BLEND = 4A 02
-PH_THOUGHT_HELD = 4B 02
-PH_THOUGHT_SOLO = 4C 02
-PH_CHOICE_BLEND = 4D 02
-PH_CHOICE_HELD = 4E 02
-PH_CHOICE_SOLO = 4F 02
-PH_MOUTH_BLEND = 50 02
-PH_MOUTH_HELD = 51 02
-PH_MOUTH_SOLO = 52 02
-PH_FOOT_BLEND = 53 02
-PH_FOOT_HELD = 54 02
-PH_FOOT_SOLO = 55 02
-PH_GOOSE_BLEND = 56 02
-PH_GOOSE_HELD = 57 02
-PH_GOOSE_SOLO = 58 02
-PH_STRUT_BLEND = 59 02
-PH_STRUT_HELD = 5A 02
-PH_STRUT_SOLO = 5B 02
-PH_CURE_BLEND = 5C 02
-PH_CURE_HELD = 5D 02
-PH_CURE_SOLO = 5E 02
-PH_NURSE_BLEND = 5F 02
-PH_NURSE_HELD = 60 02
-PH_NURSE_SOLO = 61 02
-
-A_BUTTON = F8 00
-B_BUTTON = F8 01
-DPAD_UPDOWN = F8 0A
-DPAD_NONE = F8 0C
-
-UP_ARROW_2 = F9 00
-DOWN_ARROW_2 = F9 01
-LEFT_ARROW_2 = F9 02
-RIGHT_ARROW_2 = F9 03
-PLUS = F9 04
-LV_2 = F9 05
-PP = F9 06
-ID = F9 07
-NO = F9 08
-UNDERSCORE = F9 09
-CIRCLE_1 = F9 0A
-CIRCLE_2 = F9 0B
-CIRCLE_3 = F9 0C
-CIRCLE_4 = F9 0D
-CIRCLE_5 = F9 0E
-CIRCLE_6 = F9 0F
-CIRCLE_7 = F9 10
-CIRCLE_8 = F9 11
-CIRCLE_9 = F9 12
-ROUND_LEFT_PAREN = F9 13
-ROUND_RIGHT_PAREN = F9 14
-CIRCLE_DOT = F9 15
-TRIANGLE = F9 16
-BIG_MULT_X = F9 17
-
-EMOJI_UNDERSCORE = F9 D0
-EMOJI_PIPE = F9 D1
-EMOJI_HIGHBAR = F9 D2
-EMOJI_TILDE = F9 D3
-EMOJI_LEFT_PAREN = F9 D4
-EMOJI_RIGHT_PAREN = F9 D5
-EMOJI_UNION = F9 D6 @ ⊂
-EMOJI_GREATER_THAN = F9 D7
-EMOJI_LEFT_EYE = F9 D8
-EMOJI_RIGHT_EYE = F9 D9
-EMOJI_AT = F9 DA
-EMOJI_SEMICOLON = F9 DB
-EMOJI_PLUS = F9 DC
-EMOJI_MINUS = F9 DD
-EMOJI_EQUALS = F9 DE
-EMOJI_SPIRAL = F9 DF
-EMOJI_TONGUE = F9 E0
-EMOJI_TRIANGLE_OUTLINE = F9 E1
-EMOJI_ACUTE = F9 E2
-EMOJI_GRAVE = F9 E3
-EMOJI_CIRCLE = F9 E4
-EMOJI_TRIANGLE = F9 E5
-EMOJI_SQUARE = F9 E6
-EMOJI_HEART = F9 E7
-EMOJI_MOON = F9 E8
-EMOJI_NOTE = F9 E9
-EMOJI_BALL = F9 EA
-EMOJI_BOLT = F9 EB
-EMOJI_LEAF = F9 EC
-EMOJI_FIRE = F9 ED
-EMOJI_WATER = F9 EE
-EMOJI_LEFT_FIST = F9 EF
-EMOJI_RIGHT_FIST = F9 F0
-EMOJI_BIGWHEEL = F9 F1
-EMOJI_SMALLWHEEL = F9 F2
-EMOJI_SPHERE = F9 F3
-EMOJI_IRRITATED = F9 F4
-EMOJI_MISCHIEVOUS = F9 F5
-EMOJI_HAPPY = F9 F6
-EMOJI_ANGRY = F9 F7
-EMOJI_SURPRISED = F9 F8
-EMOJI_BIGSMILE = F9 F9
-EMOJI_EVIL = F9 FA
-EMOJI_TIRED = F9 FB
-EMOJI_NEUTRAL = F9 FC
-EMOJI_SHOCKED = F9 FD
-EMOJI_BIGANGER = F9 FE
-
-'\l' = FA @ scroll up window text
-'\p' = FB @ new paragraph
-'\n' = FE @ new line
diff --git a/berry_fix/payload/common_syms/agb_flash.txt b/berry_fix/payload/common_syms/agb_flash.txt
deleted file mode 100644
index cb421ec80..000000000
--- a/berry_fix/payload/common_syms/agb_flash.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-gFlashTimeoutFlag
-PollFlashStatus
-WaitForFlashWrite
-ProgramFlashSector
-gFlash
-ProgramFlashByte
-gFlashNumRemainingBytes
-EraseFlashChip
-EraseFlashSector
-gFlashMaxTime
diff --git a/berry_fix/payload/common_syms/main.txt b/berry_fix/payload/common_syms/main.txt
deleted file mode 100644
index b62c72124..000000000
--- a/berry_fix/payload/common_syms/main.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-gIntrTable
-gHeldKeys
-gNewKeys
-gIntrVector
-gUpdateSuccessful
-gUnknown_3001194
-gUnknown_30011A0
-gMainCallbackState
-gGameVersion
diff --git a/berry_fix/payload/common_syms/rtc.txt b/berry_fix/payload/common_syms/rtc.txt
deleted file mode 100644
index 7aafbe65d..000000000
--- a/berry_fix/payload/common_syms/rtc.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gTimeSinceBerryUpdate
-gRtcUTCTime
diff --git a/berry_fix/payload/constants/gba_constants.inc b/berry_fix/payload/constants/gba_constants.inc
deleted file mode 100644
index 9d59c8fcd..000000000
--- a/berry_fix/payload/constants/gba_constants.inc
+++ /dev/null
@@ -1,490 +0,0 @@
- .set PSR_USR_MODE, 0x00000010
- .set PSR_FIQ_MODE, 0x00000011
- .set PSR_IRQ_MODE, 0x00000012
- .set PSR_SVC_MODE, 0x00000013
- .set PSR_ABT_MODE, 0x00000017
- .set PSR_UND_MODE, 0x0000001b
- .set PSR_SYS_MODE, 0x0000001f
- .set PSR_MODE_MASK, 0x0000001f
- .set PSR_T_BIT, 0x00000020
- .set PSR_F_BIT, 0x00000040
- .set PSR_I_BIT, 0x00000080
-
- .set EWRAM_START, 0x02000000
- .set EWRAM_END, EWRAM_START + 0x40000
- .set IWRAM_START, 0x03000000
- .set IWRAM_END, IWRAM_START + 0x8000
-
- .set PLTT, 0x5000000
- .set BG_PLTT, PLTT
- .set OBJ_PLTT, PLTT + 0x200
-
- .set VRAM, 0x6000000
- .set BG_VRAM, VRAM
- .set OBJ_VRAM0, VRAM + 0x10000 @ text-mode BG
- .set OBJ_VRAM1, VRAM + 0x14000 @ bitmap-mode BG
-
- .set OAM, 0x7000000
-
- .set SOUND_INFO_PTR, 0x3007FF0
- .set INTR_CHECK, 0x3007FF8
- .set INTR_VECTOR, 0x3007FFC
-
- .set INTR_FLAG_VBLANK, 1 << 0
- .set INTR_FLAG_HBLANK, 1 << 1
- .set INTR_FLAG_VCOUNT, 1 << 2
- .set INTR_FLAG_TIMER0, 1 << 3
- .set INTR_FLAG_TIMER1, 1 << 4
- .set INTR_FLAG_TIMER2, 1 << 5
- .set INTR_FLAG_TIMER3, 1 << 6
- .set INTR_FLAG_SERIAL, 1 << 7
- .set INTR_FLAG_DMA0, 1 << 8
- .set INTR_FLAG_DMA1, 1 << 9
- .set INTR_FLAG_DMA2, 1 << 10
- .set INTR_FLAG_DMA3, 1 << 11
- .set INTR_FLAG_KEYPAD, 1 << 12
- .set INTR_FLAG_GAMEPAK, 1 << 13
-
- .set VCOUNT_VBLANK, 160
- .set TOTAL_SCANLINES, 228
-
- .set REG_BASE, 0x4000000 @ I/O register base address
-
-@ I/O register offsets
- .set OFFSET_REG_DISPCNT, 0x0
- .set OFFSET_REG_DISPSTAT, 0x4
- .set OFFSET_REG_VCOUNT, 0x6
- .set OFFSET_REG_BG0CNT, 0x8
- .set OFFSET_REG_BG1CNT, 0xa
- .set OFFSET_REG_BG2CNT, 0xc
- .set OFFSET_REG_BG3CNT, 0xe
- .set OFFSET_REG_BG0HOFS, 0x10
- .set OFFSET_REG_BG0VOFS, 0x12
- .set OFFSET_REG_BG1HOFS, 0x14
- .set OFFSET_REG_BG1VOFS, 0x16
- .set OFFSET_REG_BG2HOFS, 0x18
- .set OFFSET_REG_BG2VOFS, 0x1a
- .set OFFSET_REG_BG3HOFS, 0x1c
- .set OFFSET_REG_BG3VOFS, 0x1e
- .set OFFSET_REG_BG2PA, 0x20
- .set OFFSET_REG_BG2PB, 0x22
- .set OFFSET_REG_BG2PC, 0x24
- .set OFFSET_REG_BG2PD, 0x26
- .set OFFSET_REG_BG2X_L, 0x28
- .set OFFSET_REG_BG2X_H, 0x2a
- .set OFFSET_REG_BG2Y_L, 0x2c
- .set OFFSET_REG_BG2Y_H, 0x2e
- .set OFFSET_REG_BG3PA, 0x30
- .set OFFSET_REG_BG3PB, 0x32
- .set OFFSET_REG_BG3PC, 0x34
- .set OFFSET_REG_BG3PD, 0x36
- .set OFFSET_REG_BG3X_L, 0x38
- .set OFFSET_REG_BG3X_H, 0x3a
- .set OFFSET_REG_BG3Y_L, 0x3c
- .set OFFSET_REG_BG3Y_H, 0x3e
- .set OFFSET_REG_WIN0H, 0x40
- .set OFFSET_REG_WIN1H, 0x42
- .set OFFSET_REG_WIN0V, 0x44
- .set OFFSET_REG_WIN1V, 0x46
- .set OFFSET_REG_WININ, 0x48
- .set OFFSET_REG_WINOUT, 0x4a
- .set OFFSET_REG_MOSAIC, 0x4c
- .set OFFSET_REG_BLDCNT, 0x50
- .set OFFSET_REG_BLDALPHA, 0x52
- .set OFFSET_REG_BLDY, 0x54
-
- .set OFFSET_REG_SOUND1CNT, 0x60
- .set OFFSET_REG_SOUND1CNT_L, 0x60
- .set OFFSET_REG_NR10, 0x60
- .set OFFSET_REG_SOUND1CNT_H, 0x62
- .set OFFSET_REG_NR11, 0x62
- .set OFFSET_REG_NR12, 0x63
- .set OFFSET_REG_SOUND1CNT_X, 0x64
- .set OFFSET_REG_NR13, 0x64
- .set OFFSET_REG_NR14, 0x65
- .set OFFSET_REG_SOUND2CNT, 0x68
- .set OFFSET_REG_SOUND2CNT_L, 0x68
- .set OFFSET_REG_NR21, 0x68
- .set OFFSET_REG_NR22, 0x69
- .set OFFSET_REG_SOUND2CNT_H, 0x6c
- .set OFFSET_REG_NR23, 0x6c
- .set OFFSET_REG_NR24, 0x6d
- .set OFFSET_REG_SOUND3CNT, 0x70
- .set OFFSET_REG_SOUND3CNT_L, 0x70
- .set OFFSET_REG_NR30, 0x70
- .set OFFSET_REG_SOUND3CNT_H, 0x72
- .set OFFSET_REG_NR31, 0x72
- .set OFFSET_REG_NR32, 0x73
- .set OFFSET_REG_SOUND3CNT_X, 0x74
- .set OFFSET_REG_NR33, 0x74
- .set OFFSET_REG_NR34, 0x75
- .set OFFSET_REG_SOUND4CNT, 0x78
- .set OFFSET_REG_SOUND4CNT_L, 0x78
- .set OFFSET_REG_NR41, 0x78
- .set OFFSET_REG_NR42, 0x79
- .set OFFSET_REG_SOUND4CNT_H, 0x7c
- .set OFFSET_REG_NR43, 0x7c
- .set OFFSET_REG_NR44, 0x7d
- .set OFFSET_REG_SOUNDCNT, 0x80
- .set OFFSET_REG_SOUNDCNT_L, 0x80
- .set OFFSET_REG_NR50, 0x80
- .set OFFSET_REG_NR51, 0x81
- .set OFFSET_REG_SOUNDCNT_H, 0x82
- .set OFFSET_REG_SOUNDCNT_X, 0x84
- .set OFFSET_REG_NR52, 0x84
- .set OFFSET_REG_SOUNDBIAS, 0x88
- .set OFFSET_REG_WAVE_RAM, 0x90
- .set OFFSET_REG_WAVE_RAM0, 0x90
- .set OFFSET_REG_WAVE_RAM0_L, 0x90
- .set OFFSET_REG_WAVE_RAM0_H, 0x92
- .set OFFSET_REG_WAVE_RAM1, 0x94
- .set OFFSET_REG_WAVE_RAM1_L, 0x94
- .set OFFSET_REG_WAVE_RAM1_H, 0x96
- .set OFFSET_REG_WAVE_RAM2, 0x98
- .set OFFSET_REG_WAVE_RAM2_L, 0x98
- .set OFFSET_REG_WAVE_RAM2_H, 0x9a
- .set OFFSET_REG_WAVE_RAM3, 0x9c
- .set OFFSET_REG_WAVE_RAM3_L, 0x9c
- .set OFFSET_REG_WAVE_RAM3_H, 0x9e
- .set OFFSET_REG_FIFO, 0xa0
- .set OFFSET_REG_FIFO_A, 0xa0
- .set OFFSET_REG_FIFO_A_L, 0xa0
- .set OFFSET_REG_FIFO_A_H, 0xa2
- .set OFFSET_REG_FIFO_B, 0xa4
- .set OFFSET_REG_FIFO_B_L, 0xa4
- .set OFFSET_REG_FIFO_B_H, 0xa6
-
- .set OFFSET_REG_DMA0, 0xb0
- .set OFFSET_REG_DMA0SAD, 0xb0
- .set OFFSET_REG_DMA0SAD_L, 0xb0
- .set OFFSET_REG_DMA0SAD_H, 0xb2
- .set OFFSET_REG_DMA0DAD, 0xb4
- .set OFFSET_REG_DMA0DAD_L, 0xb4
- .set OFFSET_REG_DMA0DAD_H, 0xb6
- .set OFFSET_REG_DMA0CNT, 0xb8
- .set OFFSET_REG_DMA0CNT_L, 0xb8
- .set OFFSET_REG_DMA0CNT_H, 0xba
- .set OFFSET_REG_DMA1, 0xbc
- .set OFFSET_REG_DMA1SAD, 0xbc
- .set OFFSET_REG_DMA1SAD_L, 0xbc
- .set OFFSET_REG_DMA1SAD_H, 0xbe
- .set OFFSET_REG_DMA1DAD, 0xc0
- .set OFFSET_REG_DMA1DAD_L, 0xc0
- .set OFFSET_REG_DMA1DAD_H, 0xc2
- .set OFFSET_REG_DMA1CNT, 0xc4
- .set OFFSET_REG_DMA1CNT_L, 0xc4
- .set OFFSET_REG_DMA1CNT_H, 0xc6
- .set OFFSET_REG_DMA2, 0xc8
- .set OFFSET_REG_DMA2SAD, 0xc8
- .set OFFSET_REG_DMA2SAD_L, 0xc8
- .set OFFSET_REG_DMA2SAD_H, 0xca
- .set OFFSET_REG_DMA2DAD, 0xcc
- .set OFFSET_REG_DMA2DAD_L, 0xcc
- .set OFFSET_REG_DMA2DAD_H, 0xce
- .set OFFSET_REG_DMA2CNT, 0xd0
- .set OFFSET_REG_DMA2CNT_L, 0xd0
- .set OFFSET_REG_DMA2CNT_H, 0xd2
- .set OFFSET_REG_DMA3, 0xd4
- .set OFFSET_REG_DMA3SAD, 0xd4
- .set OFFSET_REG_DMA3SAD_L, 0xd4
- .set OFFSET_REG_DMA3SAD_H, 0xd6
- .set OFFSET_REG_DMA3DAD, 0xd8
- .set OFFSET_REG_DMA3DAD_L, 0xd8
- .set OFFSET_REG_DMA3DAD_H, 0xda
- .set OFFSET_REG_DMA3CNT, 0xdc
- .set OFFSET_REG_DMA3CNT_L, 0xdc
- .set OFFSET_REG_DMA3CNT_H, 0xde
-
- .set OFFSET_REG_TM0CNT, 0x100
- .set OFFSET_REG_TM0CNT_L, 0x100
- .set OFFSET_REG_TM0CNT_H, 0x102
- .set OFFSET_REG_TM1CNT, 0x104
- .set OFFSET_REG_TM1CNT_L, 0x104
- .set OFFSET_REG_TM1CNT_H, 0x106
- .set OFFSET_REG_TM2CNT, 0x108
- .set OFFSET_REG_TM2CNT_L, 0x108
- .set OFFSET_REG_TM2CNT_H, 0x10a
- .set OFFSET_REG_TM3CNT, 0x10c
- .set OFFSET_REG_TM3CNT_L, 0x10c
- .set OFFSET_REG_TM3CNT_H, 0x10e
-
- .set OFFSET_REG_SIOCNT, 0x128
- .set OFFSET_REG_SIODATA8, 0x12a
- .set OFFSET_REG_SIODATA32, 0x120
- .set OFFSET_REG_SIOMLT_SEND, 0x12a
- .set OFFSET_REG_SIOMLT_RECV, 0x120
- .set OFFSET_REG_SIOMULTI0, 0x120
- .set OFFSET_REG_SIOMULTI1, 0x122
- .set OFFSET_REG_SIOMULTI2, 0x124
- .set OFFSET_REG_SIOMULTI3, 0x126
-
- .set OFFSET_REG_KEYINPUT, 0x130
- .set OFFSET_REG_KEYCNT, 0x132
-
- .set OFFSET_REG_RCNT, 0x134
-
- .set OFFSET_REG_JOYCNT, 0x140
- .set OFFSET_REG_JOYSTAT, 0x158
- .set OFFSET_REG_JOY_RECV, 0x150
- .set OFFSET_REG_JOY_RECV_L, 0x150
- .set OFFSET_REG_JOY_RECV_H, 0x152
- .set OFFSET_REG_JOY_TRANS, 0x154
- .set OFFSET_REG_JOY_TRANS_L, 0x154
- .set OFFSET_REG_JOY_TRANS_H, 0x156
-
- .set OFFSET_REG_IME, 0x208
- .set OFFSET_REG_IE, 0x200
- .set OFFSET_REG_IF, 0x202
-
- .set OFFSET_REG_WAITCNT, 0x204
-
-@ I/O register addresses
- .set REG_DISPCNT, REG_BASE + OFFSET_REG_DISPCNT
- .set REG_DISPSTAT, REG_BASE + OFFSET_REG_DISPSTAT
- .set REG_VCOUNT, REG_BASE + OFFSET_REG_VCOUNT
- .set REG_BG0CNT, REG_BASE + OFFSET_REG_BG0CNT
- .set REG_BG1CNT, REG_BASE + OFFSET_REG_BG1CNT
- .set REG_BG2CNT, REG_BASE + OFFSET_REG_BG2CNT
- .set REG_BG3CNT, REG_BASE + OFFSET_REG_BG3CNT
- .set REG_BG0HOFS, REG_BASE + OFFSET_REG_BG0HOFS
- .set REG_BG0VOFS, REG_BASE + OFFSET_REG_BG0VOFS
- .set REG_BG1HOFS, REG_BASE + OFFSET_REG_BG1HOFS
- .set REG_BG1VOFS, REG_BASE + OFFSET_REG_BG1VOFS
- .set REG_BG2HOFS, REG_BASE + OFFSET_REG_BG2HOFS
- .set REG_BG2VOFS, REG_BASE + OFFSET_REG_BG2VOFS
- .set REG_BG3HOFS, REG_BASE + OFFSET_REG_BG3HOFS
- .set REG_BG3VOFS, REG_BASE + OFFSET_REG_BG3VOFS
- .set REG_BG2PA, REG_BASE + OFFSET_REG_BG2PA
- .set REG_BG2PB, REG_BASE + OFFSET_REG_BG2PB
- .set REG_BG2PC, REG_BASE + OFFSET_REG_BG2PC
- .set REG_BG2PD, REG_BASE + OFFSET_REG_BG2PD
- .set REG_BG2X_L, REG_BASE + OFFSET_REG_BG2X_L
- .set REG_BG2X_H, REG_BASE + OFFSET_REG_BG2X_H
- .set REG_BG2Y_L, REG_BASE + OFFSET_REG_BG2Y_L
- .set REG_BG2Y_H, REG_BASE + OFFSET_REG_BG2Y_H
- .set REG_BG3PA, REG_BASE + OFFSET_REG_BG3PA
- .set REG_BG3PB, REG_BASE + OFFSET_REG_BG3PB
- .set REG_BG3PC, REG_BASE + OFFSET_REG_BG3PC
- .set REG_BG3PD, REG_BASE + OFFSET_REG_BG3PD
- .set REG_BG3X_L, REG_BASE + OFFSET_REG_BG3X_L
- .set REG_BG3X_H, REG_BASE + OFFSET_REG_BG3X_H
- .set REG_BG3Y_L, REG_BASE + OFFSET_REG_BG3Y_L
- .set REG_BG3Y_H, REG_BASE + OFFSET_REG_BG3Y_H
- .set REG_WIN0H, REG_BASE + OFFSET_REG_WIN0H
- .set REG_WIN1H, REG_BASE + OFFSET_REG_WIN1H
- .set REG_WIN0V, REG_BASE + OFFSET_REG_WIN0V
- .set REG_WIN1V, REG_BASE + OFFSET_REG_WIN1V
- .set REG_WININ, REG_BASE + OFFSET_REG_WININ
- .set REG_WINOUT, REG_BASE + OFFSET_REG_WINOUT
- .set REG_MOSAIC, REG_BASE + OFFSET_REG_MOSAIC
- .set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT
- .set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA
- .set REG_BLDY, REG_BASE + OFFSET_REG_BLDY
-
- .set REG_SOUND1CNT, REG_BASE + OFFSET_REG_SOUND1CNT
- .set REG_SOUND1CNT_L, REG_BASE + OFFSET_REG_SOUND1CNT_L
- .set REG_NR10, REG_BASE + OFFSET_REG_NR10
- .set REG_SOUND1CNT_H, REG_BASE + OFFSET_REG_SOUND1CNT_H
- .set REG_NR11, REG_BASE + OFFSET_REG_NR11
- .set REG_NR12, REG_BASE + OFFSET_REG_NR12
- .set REG_SOUND1CNT_X, REG_BASE + OFFSET_REG_SOUND1CNT_X
- .set REG_NR13, REG_BASE + OFFSET_REG_NR13
- .set REG_NR14, REG_BASE + OFFSET_REG_NR14
- .set REG_SOUND2CNT, REG_BASE + OFFSET_REG_SOUND2CNT
- .set REG_SOUND2CNT_L, REG_BASE + OFFSET_REG_SOUND2CNT_L
- .set REG_NR21, REG_BASE + OFFSET_REG_NR21
- .set REG_NR22, REG_BASE + OFFSET_REG_NR22
- .set REG_SOUND2CNT_H, REG_BASE + OFFSET_REG_SOUND2CNT_H
- .set REG_NR23, REG_BASE + OFFSET_REG_NR23
- .set REG_NR24, REG_BASE + OFFSET_REG_NR24
- .set REG_SOUND3CNT, REG_BASE + OFFSET_REG_SOUND3CNT
- .set REG_SOUND3CNT_L, REG_BASE + OFFSET_REG_SOUND3CNT_L
- .set REG_NR30, REG_BASE + OFFSET_REG_NR30
- .set REG_SOUND3CNT_H, REG_BASE + OFFSET_REG_SOUND3CNT_H
- .set REG_NR31, REG_BASE + OFFSET_REG_NR31
- .set REG_NR32, REG_BASE + OFFSET_REG_NR32
- .set REG_SOUND3CNT_X, REG_BASE + OFFSET_REG_SOUND3CNT_X
- .set REG_NR33, REG_BASE + OFFSET_REG_NR33
- .set REG_NR34, REG_BASE + OFFSET_REG_NR34
- .set REG_SOUND4CNT, REG_BASE + OFFSET_REG_SOUND4CNT
- .set REG_SOUND4CNT_L, REG_BASE + OFFSET_REG_SOUND4CNT_L
- .set REG_NR41, REG_BASE + OFFSET_REG_NR41
- .set REG_NR42, REG_BASE + OFFSET_REG_NR42
- .set REG_SOUND4CNT_H, REG_BASE + OFFSET_REG_SOUND4CNT_H
- .set REG_NR43, REG_BASE + OFFSET_REG_NR43
- .set REG_NR44, REG_BASE + OFFSET_REG_NR44
- .set REG_SOUNDCNT, REG_BASE + OFFSET_REG_SOUNDCNT
- .set REG_SOUNDCNT_L, REG_BASE + OFFSET_REG_SOUNDCNT_L
- .set REG_NR50, REG_BASE + OFFSET_REG_NR50
- .set REG_NR51, REG_BASE + OFFSET_REG_NR51
- .set REG_SOUNDCNT_H, REG_BASE + OFFSET_REG_SOUNDCNT_H
- .set REG_SOUNDCNT_X, REG_BASE + OFFSET_REG_SOUNDCNT_X
- .set REG_NR52, REG_BASE + OFFSET_REG_NR52
- .set REG_SOUNDBIAS, REG_BASE + OFFSET_REG_SOUNDBIAS
- .set REG_WAVE_RAM, REG_BASE + OFFSET_REG_WAVE_RAM
- .set REG_WAVE_RAM0, REG_BASE + OFFSET_REG_WAVE_RAM0
- .set REG_WAVE_RAM0_L, REG_BASE + OFFSET_REG_WAVE_RAM0_L
- .set REG_WAVE_RAM0_H, REG_BASE + OFFSET_REG_WAVE_RAM0_H
- .set REG_WAVE_RAM1, REG_BASE + OFFSET_REG_WAVE_RAM1
- .set REG_WAVE_RAM1_L, REG_BASE + OFFSET_REG_WAVE_RAM1_L
- .set REG_WAVE_RAM1_H, REG_BASE + OFFSET_REG_WAVE_RAM1_H
- .set REG_WAVE_RAM2, REG_BASE + OFFSET_REG_WAVE_RAM2
- .set REG_WAVE_RAM2_L, REG_BASE + OFFSET_REG_WAVE_RAM2_L
- .set REG_WAVE_RAM2_H, REG_BASE + OFFSET_REG_WAVE_RAM2_H
- .set REG_WAVE_RAM3, REG_BASE + OFFSET_REG_WAVE_RAM3
- .set REG_WAVE_RAM3_L, REG_BASE + OFFSET_REG_WAVE_RAM3_L
- .set REG_WAVE_RAM3_H, REG_BASE + OFFSET_REG_WAVE_RAM3_H
- .set REG_FIFO, REG_BASE + OFFSET_REG_FIFO
- .set REG_FIFO_A, REG_BASE + OFFSET_REG_FIFO_A
- .set REG_FIFO_A_L, REG_BASE + OFFSET_REG_FIFO_A_L
- .set REG_FIFO_A_H, REG_BASE + OFFSET_REG_FIFO_A_H
- .set REG_FIFO_B, REG_BASE + OFFSET_REG_FIFO_B
- .set REG_FIFO_B_L, REG_BASE + OFFSET_REG_FIFO_B_L
- .set REG_FIFO_B_H, REG_BASE + OFFSET_REG_FIFO_B_H
-
- .set REG_DMA0, REG_BASE + OFFSET_REG_DMA0
- .set REG_DMA0SAD, REG_BASE + OFFSET_REG_DMA0SAD
- .set REG_DMA0SAD_L, REG_BASE + OFFSET_REG_DMA0SAD_L
- .set REG_DMA0SAD_H, REG_BASE + OFFSET_REG_DMA0SAD_H
- .set REG_DMA0DAD, REG_BASE + OFFSET_REG_DMA0DAD
- .set REG_DMA0DAD_L, REG_BASE + OFFSET_REG_DMA0DAD_L
- .set REG_DMA0DAD_H, REG_BASE + OFFSET_REG_DMA0DAD_H
- .set REG_DMA0CNT, REG_BASE + OFFSET_REG_DMA0CNT
- .set REG_DMA0CNT_L, REG_BASE + OFFSET_REG_DMA0CNT_L
- .set REG_DMA0CNT_H, REG_BASE + OFFSET_REG_DMA0CNT_H
- .set REG_DMA1, REG_BASE + OFFSET_REG_DMA1
- .set REG_DMA1SAD, REG_BASE + OFFSET_REG_DMA1SAD
- .set REG_DMA1SAD_L, REG_BASE + OFFSET_REG_DMA1SAD_L
- .set REG_DMA1SAD_H, REG_BASE + OFFSET_REG_DMA1SAD_H
- .set REG_DMA1DAD, REG_BASE + OFFSET_REG_DMA1DAD
- .set REG_DMA1DAD_L, REG_BASE + OFFSET_REG_DMA1DAD_L
- .set REG_DMA1DAD_H, REG_BASE + OFFSET_REG_DMA1DAD_H
- .set REG_DMA1CNT, REG_BASE + OFFSET_REG_DMA1CNT
- .set REG_DMA1CNT_L, REG_BASE + OFFSET_REG_DMA1CNT_L
- .set REG_DMA1CNT_H, REG_BASE + OFFSET_REG_DMA1CNT_H
- .set REG_DMA2, REG_BASE + OFFSET_REG_DMA2
- .set REG_DMA2SAD, REG_BASE + OFFSET_REG_DMA2SAD
- .set REG_DMA2SAD_L, REG_BASE + OFFSET_REG_DMA2SAD_L
- .set REG_DMA2SAD_H, REG_BASE + OFFSET_REG_DMA2SAD_H
- .set REG_DMA2DAD, REG_BASE + OFFSET_REG_DMA2DAD
- .set REG_DMA2DAD_L, REG_BASE + OFFSET_REG_DMA2DAD_L
- .set REG_DMA2DAD_H, REG_BASE + OFFSET_REG_DMA2DAD_H
- .set REG_DMA2CNT, REG_BASE + OFFSET_REG_DMA2CNT
- .set REG_DMA2CNT_L, REG_BASE + OFFSET_REG_DMA2CNT_L
- .set REG_DMA2CNT_H, REG_BASE + OFFSET_REG_DMA2CNT_H
- .set REG_DMA3, REG_BASE + OFFSET_REG_DMA3
- .set REG_DMA3SAD, REG_BASE + OFFSET_REG_DMA3SAD
- .set REG_DMA3SAD_L, REG_BASE + OFFSET_REG_DMA3SAD_L
- .set REG_DMA3SAD_H, REG_BASE + OFFSET_REG_DMA3SAD_H
- .set REG_DMA3DAD, REG_BASE + OFFSET_REG_DMA3DAD
- .set REG_DMA3DAD_L, REG_BASE + OFFSET_REG_DMA3DAD_L
- .set REG_DMA3DAD_H, REG_BASE + OFFSET_REG_DMA3DAD_H
- .set REG_DMA3CNT, REG_BASE + OFFSET_REG_DMA3CNT
- .set REG_DMA3CNT_L, REG_BASE + OFFSET_REG_DMA3CNT_L
- .set REG_DMA3CNT_H, REG_BASE + OFFSET_REG_DMA3CNT_H
-
- .set REG_TM0CNT, REG_BASE + OFFSET_REG_TM0CNT
- .set REG_TM0CNT_L, REG_BASE + OFFSET_REG_TM0CNT_L
- .set REG_TM0CNT_H, REG_BASE + OFFSET_REG_TM0CNT_H
- .set REG_TM1CNT, REG_BASE + OFFSET_REG_TM1CNT
- .set REG_TM1CNT_L, REG_BASE + OFFSET_REG_TM1CNT_L
- .set REG_TM1CNT_H, REG_BASE + OFFSET_REG_TM1CNT_H
- .set REG_TM2CNT, REG_BASE + OFFSET_REG_TM2CNT
- .set REG_TM2CNT_L, REG_BASE + OFFSET_REG_TM2CNT_L
- .set REG_TM2CNT_H, REG_BASE + OFFSET_REG_TM2CNT_H
- .set REG_TM3CNT, REG_BASE + OFFSET_REG_TM3CNT
- .set REG_TM3CNT_L, REG_BASE + OFFSET_REG_TM3CNT_L
- .set REG_TM3CNT_H, REG_BASE + OFFSET_REG_TM3CNT_H
-
- .set REG_SIOCNT, REG_BASE + OFFSET_REG_SIOCNT
- .set REG_SIODATA8, REG_BASE + OFFSET_REG_SIODATA8
- .set REG_SIODATA32, REG_BASE + OFFSET_REG_SIODATA32
- .set REG_SIOMLT_SEND, REG_BASE + OFFSET_REG_SIOMLT_SEND
- .set REG_SIOMLT_RECV, REG_BASE + OFFSET_REG_SIOMLT_RECV
- .set REG_SIOMULTI0, REG_BASE + OFFSET_REG_SIOMULTI0
- .set REG_SIOMULTI1, REG_BASE + OFFSET_REG_SIOMULTI1
- .set REG_SIOMULTI2, REG_BASE + OFFSET_REG_SIOMULTI2
- .set REG_SIOMULTI3, REG_BASE + OFFSET_REG_SIOMULTI3
-
- .set REG_KEYINPUT, REG_BASE + OFFSET_REG_KEYINPUT
- .set REG_KEYCNT, REG_BASE + OFFSET_REG_KEYCNT
-
- .set REG_RCNT, REG_BASE + OFFSET_REG_RCNT
-
- .set REG_JOYCNT, REG_BASE + OFFSET_REG_JOYCNT
- .set REG_JOYSTAT, REG_BASE + OFFSET_REG_JOYSTAT
- .set REG_JOY_RECV, REG_BASE + OFFSET_REG_JOY_RECV
- .set REG_JOY_RECV_L, REG_BASE + OFFSET_REG_JOY_RECV_L
- .set REG_JOY_RECV_H, REG_BASE + OFFSET_REG_JOY_RECV_H
- .set REG_JOY_TRANS, REG_BASE + OFFSET_REG_JOY_TRANS
- .set REG_JOY_TRANS_L, REG_BASE + OFFSET_REG_JOY_TRANS_L
- .set REG_JOY_TRANS_H, REG_BASE + OFFSET_REG_JOY_TRANS_H
-
- .set REG_IME, REG_BASE + OFFSET_REG_IME
- .set REG_IE, REG_BASE + OFFSET_REG_IE
- .set REG_IF, REG_BASE + OFFSET_REG_IF
-
- .set REG_WAITCNT, REG_BASE + OFFSET_REG_WAITCNT
-
-@ DMA register constants
-
- .set DMA_DEST_INC, 0x0000
- .set DMA_DEST_DEC, 0x0020
- .set DMA_DEST_FIXED, 0x0040
- .set DMA_DEST_RELOAD, 0x0060
- .set DMA_SRC_INC, 0x0000
- .set DMA_SRC_DEC, 0x0080
- .set DMA_SRC_FIXED, 0x0100
- .set DMA_REPEAT, 0x0200
- .set DMA_16BIT, 0x0000
- .set DMA_32BIT, 0x0400
- .set DMA_DREQ_ON, 0x0800
- .set DMA_START_NOW, 0x0000
- .set DMA_START_VBLANK, 0x1000
- .set DMA_START_HBLANK, 0x2000
- .set DMA_START_SPECIAL, 0x3000
- .set DMA_INTR_ENABLE, 0x4000
- .set DMA_ENABLE, 0x8000
-
-@ OAM attribute constants
-
- .set OAM_OBJ_NORMAL, 0x00000000
- .set OAM_OBJ_BLEND, 0x00000400
- .set OAM_OBJ_WINDOW, 0x00000800
-
- .set OAM_AFFINE_NONE, 0x00000000
- .set OAM_AFFINE_NORMAL_SIZE, 0x00000100
- .set OAM_OBJ_DISABLED, 0x00000200
- .set OAM_AFFINE_DOUBLE_SIZE, 0x00000300
-
- .set OAM_MOSAIC_OFF, 0x00000000
- .set OAM_MOSAIC_ON, 0x00001000
-
- .set OAM_4BPP, 0x00000000
- .set OAM_8BPP, 0x00002000
-
- .set OAM_H_FLIP, 0x10000000
- .set OAM_V_FLIP, 0x20000000
-
- .set OAM_SQUARE, 0x00000000
- .set OAM_H_RECTANGLE, 0x00004000
- .set OAM_V_RECTANGLE, 0x00008000
- .set OAM_SIZE_0, 0x00000000
- .set OAM_SIZE_1, 0x40000000
- .set OAM_SIZE_2, 0x80000000
- .set OAM_SIZE_3, 0xc0000000
-
- .set OAM_SIZE_8x8, OAM_SIZE_0 | OAM_SQUARE
- .set OAM_SIZE_16x16, OAM_SIZE_1 | OAM_SQUARE
- .set OAM_SIZE_32x32, OAM_SIZE_2 | OAM_SQUARE
- .set OAM_SIZE_64x64, OAM_SIZE_3 | OAM_SQUARE
-
- .set OAM_SIZE_16x8, OAM_SIZE_0 | OAM_H_RECTANGLE
- .set OAM_SIZE_32x8, OAM_SIZE_1 | OAM_H_RECTANGLE
- .set OAM_SIZE_32x16, OAM_SIZE_2 | OAM_H_RECTANGLE
- .set OAM_SIZE_64x32, OAM_SIZE_3 | OAM_H_RECTANGLE
-
- .set OAM_SIZE_8x16, OAM_SIZE_0 | OAM_V_RECTANGLE
- .set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE
- .set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE
- .set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE
diff --git a/berry_fix/payload/graphics/debug_digits.png b/berry_fix/payload/graphics/debug_digits.png
deleted file mode 100644
index edf0d36c9..000000000
--- a/berry_fix/payload/graphics/debug_digits.png
+++ /dev/null
Binary files differ
diff --git a/berry_fix/payload/graphics/msg_box.png b/berry_fix/payload/graphics/msg_box.png
deleted file mode 100644
index 00d1bbe37..000000000
--- a/berry_fix/payload/graphics/msg_box.png
+++ /dev/null
Binary files differ
diff --git a/berry_fix/payload/graphics/msg_box.tilemap b/berry_fix/payload/graphics/msg_box.tilemap
deleted file mode 100644
index 5b82401ba..000000000
--- a/berry_fix/payload/graphics/msg_box.tilemap
+++ /dev/null
Binary files differ
diff --git a/berry_fix/payload/include/constants/game_stat.h b/berry_fix/payload/include/constants/game_stat.h
deleted file mode 100644
index 47d703d85..000000000
--- a/berry_fix/payload/include/constants/game_stat.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef GUARD_CONSTANTS_GAME_STAT_H
-#define GUARD_CONSTANTS_GAME_STAT_H
-
-#define GAME_STAT_SAVED_GAME 0
-#define GAME_STAT_FIRST_HOF_PLAY_TIME 1
-#define GAME_STAT_STARTED_TRENDS 2
-#define GAME_STAT_PLANTED_BERRIES 3
-#define GAME_STAT_TRADED_BIKES 4
-#define GAME_STAT_STEPS 5
-#define GAME_STAT_GOT_INTERVIEWED 6
-#define GAME_STAT_TOTAL_BATTLES 7
-#define GAME_STAT_WILD_BATTLES 8
-#define GAME_STAT_TRAINER_BATTLES 9
-#define GAME_STAT_ENTERED_HOF 10
-#define GAME_STAT_POKEMON_CAPTURES 11
-#define GAME_STAT_FISHING_CAPTURES 12
-#define GAME_STAT_HATCHED_EGGS 13
-#define GAME_STAT_EVOLVED_POKEMON 14
-#define GAME_STAT_USED_POKECENTER 15
-#define GAME_STAT_RESTED_AT_HOME 16
-#define GAME_STAT_ENTERED_SAFARI_ZONE 17
-#define GAME_STAT_USED_CUT 18
-#define GAME_STAT_USED_ROCK_SMASH 19
-#define GAME_STAT_MOVED_SECRET_BASE 20
-#define GAME_STAT_POKEMON_TRADES 21
-#define GAME_STAT_UNKNOWN_22 22
-#define GAME_STAT_LINK_BATTLE_WINS 23
-#define GAME_STAT_LINK_BATTLE_LOSSES 24
-#define GAME_STAT_LINK_BATTLE_DRAWS 25
-#define GAME_STAT_USED_SPLASH 26
-#define GAME_STAT_USED_STRUGGLE 27
-#define GAME_STAT_SLOT_JACKPOTS 28
-#define GAME_STAT_CONSECUTIVE_ROULETTE_WINS 29
-#define GAME_STAT_ENTERED_BATTLE_TOWER 30
-#define GAME_STAT_UNKNOWN_31 31
-#define GAME_STAT_BATTLE_TOWER_BEST_STREAK 32
-#define GAME_STAT_POKEBLOCKS 33
-#define GAME_STAT_POKEBLOCKS_WITH_FRIENDS 34
-#define GAME_STAT_WON_LINK_CONTEST 35
-#define GAME_STAT_ENTERED_CONTEST 36
-#define GAME_STAT_WON_CONTEST 37
-#define GAME_STAT_SHOPPED 38
-#define GAME_STAT_USED_ITEMFINDER 39
-#define GAME_STAT_GOT_RAINED_ON 40
-#define GAME_STAT_CHECKED_POKEDEX 41
-#define GAME_STAT_RECEIVED_RIBBONS 42
-#define GAME_STAT_JUMPED_DOWN_LEDGES 43
-#define GAME_STAT_WATCHED_TV 44
-#define GAME_STAT_CHECKED_CLOCK 45
-#define GAME_STAT_WON_POKEMON_LOTTERY 46
-#define GAME_STAT_USED_DAYCARE 47
-#define GAME_STAT_RODE_CABLE_CAR 48
-#define GAME_STAT_ENTERED_HOT_SPRINGS 49
-#define NUM_GAME_STATS 50
-
-#endif // GUARD_CONSTANTS_GAME_STAT_H
diff --git a/berry_fix/payload/include/constants/vars.h b/berry_fix/payload/include/constants/vars.h
deleted file mode 100644
index 4b40c1d8c..000000000
--- a/berry_fix/payload/include/constants/vars.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef GUARD_CONSTANTS_VARS_H
-#define GUARD_CONSTANTS_VARS_H
-
-#define VAR_0x3F20 0x3F20
-
-#define VARS_START 0x4000
-
-// temporary vars
-// The first 0x10 vars are are temporary--they are cleared every time a map is loaded.
-#define VAR_TEMP_0 0x4000
-#define VAR_TEMP_1 0x4001
-#define VAR_TEMP_2 0x4002
-#define VAR_TEMP_3 0x4003
-#define VAR_TEMP_4 0x4004
-#define VAR_TEMP_5 0x4005
-#define VAR_TEMP_6 0x4006
-#define VAR_TEMP_7 0x4007
-#define VAR_TEMP_8 0x4008
-#define VAR_TEMP_9 0x4009
-#define VAR_TEMP_A 0x400A
-#define VAR_TEMP_B 0x400B
-#define VAR_TEMP_C 0x400C
-#define VAR_TEMP_D 0x400D
-#define VAR_TEMP_E 0x400E
-#define VAR_TEMP_F 0x400F
-
-// object gfx id vars
-// These 0x10 vars are used to dynamically control a event object's sprite.
-// For example, the rival's sprite id is dynamically set based on the player's gender.
-// See VarGetEventObjectGraphicsId().
-#define VAR_OBJ_GFX_ID_0 0x4010
-#define VAR_OBJ_GFX_ID_1 0x4011
-#define VAR_OBJ_GFX_ID_2 0x4012
-#define VAR_OBJ_GFX_ID_3 0x4013
-#define VAR_OBJ_GFX_ID_4 0x4014
-#define VAR_OBJ_GFX_ID_5 0x4015
-#define VAR_OBJ_GFX_ID_6 0x4016
-#define VAR_OBJ_GFX_ID_7 0x4017
-#define VAR_OBJ_GFX_ID_8 0x4018
-#define VAR_OBJ_GFX_ID_9 0x4019
-#define VAR_OBJ_GFX_ID_A 0x401A
-#define VAR_OBJ_GFX_ID_B 0x401B
-#define VAR_OBJ_GFX_ID_C 0x401C
-#define VAR_OBJ_GFX_ID_D 0x401D
-#define VAR_OBJ_GFX_ID_E 0x401E
-#define VAR_OBJ_GFX_ID_F 0x401F
-
-// general purpose vars
-#define VAR_RECYCLE_GOODS 0x4020
-#define VAR_REPEL_STEP_COUNT 0x4021
-#define VAR_ICE_STEP_COUNT 0x4022
-#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
-#define VAR_MIRAGE_RND_H 0x4024
-#define VAR_MIRAGE_RND_L 0x4025
-#define VAR_SECRET_BASE_MAP 0x4026
-#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027
-#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028
-#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029
-#define VAR_HAPPINESS_STEP_COUNTER 0x402A
-#define VAR_POISON_STEP_COUNTER 0x402B
-#define VAR_RESET_RTC_ENABLE 0x402C
-#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
-
-#define VAR_DAYS 0x4040
-#define VAR_FANCLUB_UNKNOWN_1 0x4041 // TODO: document these two fanclub vars
-#define VAR_FANCLUB_UNKNOWN_2 0x4042
-#define VAR_DEPT_STORE_FLOOR 0x4043
-#define VAR_TRICK_HOUSE_ROOMS_COMPLETED 0x4044
-#define VAR_LOTTERY_PRIZE 0x4045
-#define VAR_NATIONAL_DEX 0x4046
-#define VAR_SHROOMISH_SIZE_RECORD 0x4047
-#define VAR_ASH_GATHER_COUNT 0x4048
-#define VAR_BIRCH_STATE 0x4049
-#define VAR_CRUISE_STEP_COUNT 0x404A
-#define VAR_LOTTERY_RND_L 0x404B
-#define VAR_LOTTERY_RND_H 0x404C
-
-#define VAR_BARBOACH_SIZE_RECORD 0x404F
-#define VAR_LITTLEROOT_STATE 0x4050
-#define VAR_ROUTE102_ACCESSIBLE 0x4051
-
-#define VAR_LAVARIDGE_RIVAL_STATE 0x4053
-#define VAR_CURRENT_SECRET_BASE 0x4054
-
-#define VAR_PETALBURG_STATE 0x4057
-#define VAR_SLATEPORT_STATE 0x4058
-
-#define VAR_RUSTBORO_STATE 0x405A
-
-#define VAR_SOOTOPOLIS_STATE 0x405E
-
-#define VAR_ROUTE101_STATE 0x4060
-
-#define VAR_ROUTE103_STATE 0x4062
-
-#define VAR_ROUTE110_STATE 0x4069
-
-#define VAR_ROUTE116_STATE 0x406F
-
-#define VAR_ROUTE118_STATE 0x4071
-#define VAR_ROUTE119_STATE 0x4072
-
-#define VAR_ROUTE121_STATE 0x4074
-#define VAR_ROUTE128_STATE 0x407B
-
-#define VAR_LITTLEROOT_HOUSES_STATE 0x4082 // TODO: needs more investigation
-
-#define VAR_BIRCH_LAB_STATE 0x4084
-#define VAR_PETALBURG_GYM_STATE 0x4085
-#define VAR_LINK_CONTEST_ROOM_STATE 0x4086
-#define VAR_CABLE_CLUB_STATE 0x4087
-#define VAR_CONTEST_LOCATION 0x4088
-#define VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F 0x4089 // TODO: related to decorations
-#define VAR_CONTEST_PRIZE_PICKUP 0x408A
-
-#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C // TODO: needs more investigation
-#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
-#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E
-#define VAR_DEVON_CORP_3F_STATE 0x408F
-#define VAR_BRINEY_HOUSE_STATE 0x4090
-
-#define VAR_LITTLEROOT_INTRO_STATE 0x4092
-#define VAR_MAUVILLE_GYM_STATE 0x4093
-#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094
-#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
-#define VAR_BRINEY_LOCATION 0x4096
-#define VAR_0x4097 0x4097 // TODO: related to creating new secret base
-#define VAR_PETALBURG_WOODS_STATE 0x4098
-#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099
-#define VAR_RUSTURF_TUNNEL_STATE 0x409a
-#define VAR_CAVE_OF_ORIGIN_B4F_STATE 0x409B
-#define VAR_ELITE_4_STATE 0x409C
-
-#define VAR_SLATEPORT_HARBOR_STATE 0x40A0
-
-#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2
-#define VAR_CABLE_CAR_STATION_STATE 0x40A3
-#define VAR_SAFARI_ZONE_STATE 0x40A4
-#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A5
-#define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6
-#define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7
-
-#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
-#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA
-#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB
-#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC
-#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD
-#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE
-#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF
-#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0
-#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1
-#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2
-#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
-#define VAR_PORTHOLE_STATE 0x40B4
-#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation
-#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6
-#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7
-
-#define VAR_MT_PYRE_STATE 0x40B9
-#define VAR_NEW_MAUVILLE_STATE 0x40BA
-
-#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC
-#define VAR_JAGGED_PASS_VOLCANIC_ASH_WEATHER 0x40BD
-#define VAR_GLASS_WORKSHOP_STATE 0x40BE
-#define VAR_METEOR_FALLS_STATE 0x40BF
-#define VAR_GAME_CORNER_STATE 0x40C0
-#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1
-#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
-#define VAR_VICTORY_ROAD_1F_STATE 0x40C3
-#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4
-#define VAR_WHICH_FOSSIL_REVIVED 0x40C5
-#define VAR_STEVENS_HOUSE_STATE 0x40C6
-#define VAR_OLDALE_STATE 0x40C7
-
-// special vars
-// They are commonly used as parameters to commands, or return values from commands.
-#define VAR_SPECIAL_0 0x8000
-#define VAR_SPECIAL_1 0x8001
-#define VAR_SPECIAL_2 0x8002
-#define VAR_SPECIAL_3 0x8003
-#define VAR_SPECIAL_4 0x8004
-#define VAR_SPECIAL_5 0x8005
-#define VAR_SPECIAL_6 0x8006
-#define VAR_SPECIAL_7 0x8007
-#define VAR_SPECIAL_8 0x8008
-#define VAR_SPECIAL_9 0x8009
-#define VAR_SPECIAL_A 0x800A
-#define VAR_SPECIAL_B 0x800B
-#define FACING 0x800C
-#define RESULT 0x800D
-#define ITEM_ID 0x800E
-#define LAST_TALKED 0x800F
-#define CONTEST_RANK 0x8010
-#define CONTEST_CATEGORY 0x8011
-
-#endif // GUARD_CONSTANTS_VARS_H
diff --git a/berry_fix/payload/include/flash.h b/berry_fix/payload/include/flash.h
deleted file mode 100644
index 7fc35896d..000000000
--- a/berry_fix/payload/include/flash.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef GUARD_FLASH_H
-#define GUARD_FLASH_H
-
-#include "gba/gba.h"
-
-enum
-{
- SECTOR_DAMAGED,
- SECTOR_OK,
- SECTOR_CHECK, // unused
-};
-
-enum MsgBoxUpdateMessage
-{
- MSGBOX_WILL_NOW_UPDATE = 0,
- MSGBOX_HAS_BEEN_UPDATED,
- MSGBOX_UNABLE_TO_UPDATE,
- MSGBOX_NO_NEED_TO_UPDATE,
- MSGBOX_UPDATING
-};
-
-struct SaveSector
-{
- u8 data[0xFF4];
- u16 id;
- u16 checksum;
- u32 signature;
- u32 counter;
-}; // size is 0x1000
-
-// headless save section?
-struct UnkSaveSection
-{
- u8 data[0xFF4];
- u32 signature;
-}; // size is 0xFF8
-
-#define eSaveSection ((struct SaveSector *)0x2020000)
-
-#define NUM_SECTORS_PER_SAVE_SLOT 14 // Number of sectors occupied by a save slot
-#define FILE_SIGNATURE 0x08012025
-
-#define SAVE_STATUS_EMPTY 0
-#define SAVE_STATUS_OK 1
-#define SAVE_STATUS_NO_FLASH 4
-#define SAVE_STATUS_ERROR 0xFF
-
-bool32 flash_maincb_ident_is_valid(void);
-bool8 flash_maincb_read_save(u32);
-void msg_load_gfx(void);
-void msg_display(enum MsgBoxUpdateMessage);
-bool32 flash_maincb_check_need_reset_pacifidlog_tm(void);
-bool32 flash_maincb_reset_pacifidlog_tm(void);
-
-#endif //GUARD_FLASH_H
diff --git a/berry_fix/payload/include/gba/defines.h b/berry_fix/payload/include/gba/defines.h
deleted file mode 100644
index 4037af584..000000000
--- a/berry_fix/payload/include/gba/defines.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef GUARD_GBA_DEFINES_H
-#define GUARD_GBA_DEFINES_H
-
-#include <stddef.h>
-
-#define TRUE 1
-#define FALSE 0
-
-#define BSS_DATA __attribute__((section(".bss")))
-#define IWRAM_DATA __attribute__((section("iwram_data")))
-#define EWRAM_DATA __attribute__((section("ewram_data")))
-#define UNUSED __attribute__((unused))
-#define NAKED __attribute__((naked))
-
-#define ALIGNED(n) __attribute__((aligned(n)))
-
-#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0)
-#define INTR_CHECK (*(u16 *)0x3007FF8)
-#define INTR_VECTOR (*(void **)0x3007FFC)
-
-#define EWRAM_START 0x02000000
-#define EWRAM_END (EWRAM_START + 0x40000)
-#define IWRAM_START 0x03000000
-#define IWRAM_END (IWRAM_START + 0x8000)
-
-#define PLTT 0x5000000
-#define PLTT_SIZE 0x400
-
-#define BG_PLTT PLTT
-#define BG_PLTT_SIZE 0x200
-
-#define OBJ_PLTT (PLTT + 0x200)
-#define OBJ_PLTT_SIZE 0x200
-
-#define VRAM 0x6000000
-#define VRAM_SIZE 0x18000
-
-#define BG_VRAM VRAM
-#define BG_VRAM_SIZE 0x10000
-#define BG_CHAR_SIZE 0x4000
-#define BG_SCREEN_SIZE 0x800
-#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (0x4000 * (n)))
-#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (0x800 * (n)))
-#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n)))
-
-#define BG_TILE_H_FLIP(n) (0x400 + (n))
-#define BG_TILE_V_FLIP(n) (0x800 + (n))
-
-// text-mode BG
-#define OBJ_VRAM0 (void *)(VRAM + 0x10000)
-#define OBJ_VRAM0_SIZE 0x8000
-
-// bitmap-mode BG
-#define OBJ_VRAM1 (void *)(VRAM + 0x14000)
-#define OBJ_VRAM1_SIZE 0x4000
-
-#define OAM 0x7000000
-#define OAM_SIZE 0x400
-
-#define ROM_HEADER_SIZE 0xC0
-
-#define DISPLAY_WIDTH 240
-#define DISPLAY_HEIGHT 160
-
-#define TILE_SIZE_4BPP 32
-#define TILE_SIZE_8BPP 64
-
-#define TILE_OFFSET_4BPP(n) ((n) * TILE_SIZE_4BPP)
-#define TILE_OFFSET_8BPP(n) ((n) * TILE_SIZE_8BPP)
-
-#define TOTAL_OBJ_TILE_COUNT 1024
-
-#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
-#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
-#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
-
-#define RGB_BLACK RGB(0, 0, 0)
-#define RGB_WHITE RGB(31, 31, 31)
-#define RGB_RED RGB(31, 0, 0)
-#define RGB_GREEN RGB(0, 31, 0)
-#define RGB_BLUE RGB(0, 0, 31)
-#define RGB_YELLOW RGB(31, 31, 0)
-#define RGB_MAGENTA RGB(31, 0, 31)
-#define RGB_CYAN RGB(0, 31, 31)
-#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
-
-#endif // GUARD_GBA_DEFINES_H
diff --git a/berry_fix/payload/include/gba/flash_internal.h b/berry_fix/payload/include/gba/flash_internal.h
deleted file mode 100644
index 6fbec31f1..000000000
--- a/berry_fix/payload/include/gba/flash_internal.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef GUARD_GBA_FLASH_INTERNAL_H
-#define GUARD_GBA_FLASH_INTERNAL_H
-
-#include "gba/gba.h"
-
-#define FLASH_BASE ((u8 *)0xE000000)
-
-#define FLASH_WRITE(addr, data) ((*(vu8 *)(FLASH_BASE + (addr))) = (data))
-
-#define FLASH_ROM_SIZE_1M 131072 // 1 megabit ROM
-
-#define SECTORS_PER_BANK 16
-
-struct FlashSector
-{
- u32 size;
- u8 shift;
- u16 count;
- u16 top;
-};
-
-struct FlashType {
- u32 romSize;
- struct FlashSector sector;
- u16 wait[2]; // game pak bus read/write wait
-
- // TODO: add support for anonymous unions/structs if possible
- union {
- struct {
- u8 makerId;
- u8 deviceId;
- } separate;
- u16 joined;
- } ids;
-};
-
-struct FlashSetupInfo
-{
- u16 (*programFlashByte)(u16, u32, u8);
- u16 (*programFlashSector)(u16, void *);
- u16 (*eraseFlashChip)(void);
- u16 (*eraseFlashSector)(u16);
- u16 (*WaitForFlashWrite)(u8, u8 *, u8);
- const u16 *maxTime;
- struct FlashType type;
-};
-
-extern u16 gFlashNumRemainingBytes;
-
-extern u16 (*ProgramFlashByte)(u16, u32, u8);
-extern u16 (*ProgramFlashSector)(u16, void *);
-extern u16 (*EraseFlashChip)(void);
-extern u16 (*EraseFlashSector)(u16);
-extern u16 (*WaitForFlashWrite)(u8, u8 *, u8);
-extern const u16 *gFlashMaxTime;
-extern const struct FlashType *gFlash;
-
-extern u8 (*PollFlashStatus)(u8 *);
-extern u8 gFlashTimeoutFlag;
-
-extern const struct FlashSetupInfo MX29L010;
-extern const struct FlashSetupInfo LE26FV10N1TS;
-extern const struct FlashSetupInfo DefaultFlash;
-
-void SwitchFlashBank(u8 bankNum);
-u16 ReadFlashId(void);
-void StartFlashTimer(u8 phase);
-void SetReadFlash1(u16 *dest);
-void StopFlashTimer(void);
-u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
-u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src);
-void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size);
-u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n);
-
-u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData);
-
-u16 EraseFlashChip_MX(void);
-u16 EraseFlashSector_MX(u16 sectorNum);
-u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data);
-u16 ProgramFlashSector_MX(u16 sectorNum, void *src);
-
-// agb_flash_1m
-u32 IdentifyFlash(void);
-
-#endif // GUARD_GBA_FLASH_INTERNAL_H
diff --git a/berry_fix/payload/include/gba/gba.h b/berry_fix/payload/include/gba/gba.h
deleted file mode 100644
index 349344031..000000000
--- a/berry_fix/payload/include/gba/gba.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef GUARD_GBA_GBA_H
-#define GUARD_GBA_GBA_H
-
-#include "gba/defines.h"
-#include "gba/io_reg.h"
-#include "gba/types.h"
-#include "gba/multiboot.h"
-#include "gba/syscall.h"
-#include "gba/macro.h"
-#include "gba/isagbprint.h"
-
-#endif // GUARD_GBA_GBA_H
diff --git a/berry_fix/payload/include/gba/io_reg.h b/berry_fix/payload/include/gba/io_reg.h
deleted file mode 100644
index df79b084d..000000000
--- a/berry_fix/payload/include/gba/io_reg.h
+++ /dev/null
@@ -1,770 +0,0 @@
-#ifndef GUARD_GBA_IO_REG_H
-#define GUARD_GBA_IO_REG_H
-
-#define REG_BASE 0x4000000 // I/O register base address
-
-// I/O register offsets
-
-#define REG_OFFSET_DISPCNT 0x0
-#define REG_OFFSET_DISPSTAT 0x4
-#define REG_OFFSET_VCOUNT 0x6
-#define REG_OFFSET_BG0CNT 0x8
-#define REG_OFFSET_BG1CNT 0xa
-#define REG_OFFSET_BG2CNT 0xc
-#define REG_OFFSET_BG3CNT 0xe
-#define REG_OFFSET_BG0HOFS 0x10
-#define REG_OFFSET_BG0VOFS 0x12
-#define REG_OFFSET_BG1HOFS 0x14
-#define REG_OFFSET_BG1VOFS 0x16
-#define REG_OFFSET_BG2HOFS 0x18
-#define REG_OFFSET_BG2VOFS 0x1a
-#define REG_OFFSET_BG3HOFS 0x1c
-#define REG_OFFSET_BG3VOFS 0x1e
-#define REG_OFFSET_BG2PA 0x20
-#define REG_OFFSET_BG2PB 0x22
-#define REG_OFFSET_BG2PC 0x24
-#define REG_OFFSET_BG2PD 0x26
-#define REG_OFFSET_BG2X 0x28
-#define REG_OFFSET_BG2X_L 0x28
-#define REG_OFFSET_BG2X_H 0x2a
-#define REG_OFFSET_BG2Y 0x2c
-#define REG_OFFSET_BG2Y_L 0x2c
-#define REG_OFFSET_BG2Y_H 0x2e
-#define REG_OFFSET_BG3PA 0x30
-#define REG_OFFSET_BG3PB 0x32
-#define REG_OFFSET_BG3PC 0x34
-#define REG_OFFSET_BG3PD 0x36
-#define REG_OFFSET_BG3X 0x38
-#define REG_OFFSET_BG3X_L 0x38
-#define REG_OFFSET_BG3X_H 0x3a
-#define REG_OFFSET_BG3Y 0x3c
-#define REG_OFFSET_BG3Y_L 0x3c
-#define REG_OFFSET_BG3Y_H 0x3e
-#define REG_OFFSET_WIN0H 0x40
-#define REG_OFFSET_WIN1H 0x42
-#define REG_OFFSET_WIN0V 0x44
-#define REG_OFFSET_WIN1V 0x46
-#define REG_OFFSET_WININ 0x48
-#define REG_OFFSET_WINOUT 0x4a
-#define REG_OFFSET_MOSAIC 0x4c
-#define REG_OFFSET_BLDCNT 0x50
-#define REG_OFFSET_BLDALPHA 0x52
-#define REG_OFFSET_BLDY 0x54
-
-#define REG_OFFSET_SOUND1CNT_L 0x60
-#define REG_OFFSET_NR10 0x60
-#define REG_OFFSET_SOUND1CNT_H 0x62
-#define REG_OFFSET_NR11 0x62
-#define REG_OFFSET_NR12 0x63
-#define REG_OFFSET_SOUND1CNT_X 0x64
-#define REG_OFFSET_NR13 0x64
-#define REG_OFFSET_NR14 0x65
-#define REG_OFFSET_SOUND2CNT_L 0x68
-#define REG_OFFSET_NR21 0x68
-#define REG_OFFSET_NR22 0x69
-#define REG_OFFSET_SOUND2CNT_H 0x6c
-#define REG_OFFSET_NR23 0x6c
-#define REG_OFFSET_NR24 0x6d
-#define REG_OFFSET_SOUND3CNT_L 0x70
-#define REG_OFFSET_NR30 0x70
-#define REG_OFFSET_SOUND3CNT_H 0x72
-#define REG_OFFSET_NR31 0x72
-#define REG_OFFSET_NR32 0x73
-#define REG_OFFSET_SOUND3CNT_X 0x74
-#define REG_OFFSET_NR33 0x74
-#define REG_OFFSET_NR34 0x75
-#define REG_OFFSET_SOUND4CNT_L 0x78
-#define REG_OFFSET_NR41 0x78
-#define REG_OFFSET_NR42 0x79
-#define REG_OFFSET_SOUND4CNT_H 0x7c
-#define REG_OFFSET_NR43 0x7c
-#define REG_OFFSET_NR44 0x7d
-#define REG_OFFSET_SOUNDCNT_L 0x80
-#define REG_OFFSET_NR50 0x80
-#define REG_OFFSET_NR51 0x81
-#define REG_OFFSET_SOUNDCNT_H 0x82
-#define REG_OFFSET_SOUNDCNT_X 0x84
-#define REG_OFFSET_NR52 0x84
-#define REG_OFFSET_SOUNDBIAS 0x88
-#define REG_OFFSET_SOUNDBIAS_L 0x88
-#define REG_OFFSET_SOUNDBIAS_H 0x89
-#define REG_OFFSET_WAVE_RAM0 0x90
-#define REG_OFFSET_WAVE_RAM1 0x94
-#define REG_OFFSET_WAVE_RAM2 0x98
-#define REG_OFFSET_WAVE_RAM3 0x9c
-#define REG_OFFSET_FIFO_A 0xa0
-#define REG_OFFSET_FIFO_B 0xa4
-
-#define REG_OFFSET_DMA0 0xb0
-#define REG_OFFSET_DMA0SAD 0xb0
-#define REG_OFFSET_DMA0SAD_L 0xb0
-#define REG_OFFSET_DMA0SAD_H 0xb2
-#define REG_OFFSET_DMA0DAD 0xb4
-#define REG_OFFSET_DMA0DAD_L 0xb4
-#define REG_OFFSET_DMA0DAD_H 0xb6
-#define REG_OFFSET_DMA0CNT 0xb8
-#define REG_OFFSET_DMA0CNT_L 0xb8
-#define REG_OFFSET_DMA0CNT_H 0xba
-#define REG_OFFSET_DMA1 0xbc
-#define REG_OFFSET_DMA1SAD 0xbc
-#define REG_OFFSET_DMA1SAD_L 0xbc
-#define REG_OFFSET_DMA1SAD_H 0xbe
-#define REG_OFFSET_DMA1DAD 0xc0
-#define REG_OFFSET_DMA1DAD_L 0xc0
-#define REG_OFFSET_DMA1DAD_H 0xc2
-#define REG_OFFSET_DMA1CNT 0xc4
-#define REG_OFFSET_DMA1CNT_L 0xc4
-#define REG_OFFSET_DMA1CNT_H 0xc6
-#define REG_OFFSET_DMA2 0xc8
-#define REG_OFFSET_DMA2SAD 0xc8
-#define REG_OFFSET_DMA2SAD_L 0xc8
-#define REG_OFFSET_DMA2SAD_H 0xca
-#define REG_OFFSET_DMA2DAD 0xcc
-#define REG_OFFSET_DMA2DAD_L 0xcc
-#define REG_OFFSET_DMA2DAD_H 0xce
-#define REG_OFFSET_DMA2CNT 0xd0
-#define REG_OFFSET_DMA2CNT_L 0xd0
-#define REG_OFFSET_DMA2CNT_H 0xd2
-#define REG_OFFSET_DMA3 0xd4
-#define REG_OFFSET_DMA3SAD 0xd4
-#define REG_OFFSET_DMA3SAD_L 0xd4
-#define REG_OFFSET_DMA3SAD_H 0xd6
-#define REG_OFFSET_DMA3DAD 0xd8
-#define REG_OFFSET_DMA3DAD_L 0xd8
-#define REG_OFFSET_DMA3DAD_H 0xda
-#define REG_OFFSET_DMA3CNT 0xdc
-#define REG_OFFSET_DMA3CNT_L 0xdc
-#define REG_OFFSET_DMA3CNT_H 0xde
-
-#define REG_OFFSET_TMCNT 0x100
-#define REG_OFFSET_TMCNT_L 0x100
-#define REG_OFFSET_TMCNT_H 0x102
-#define REG_OFFSET_TM0CNT 0x100
-#define REG_OFFSET_TM0CNT_L 0x100
-#define REG_OFFSET_TM0CNT_H 0x102
-#define REG_OFFSET_TM1CNT 0x104
-#define REG_OFFSET_TM1CNT_L 0x104
-#define REG_OFFSET_TM1CNT_H 0x106
-#define REG_OFFSET_TM2CNT 0x108
-#define REG_OFFSET_TM2CNT_L 0x108
-#define REG_OFFSET_TM2CNT_H 0x10a
-#define REG_OFFSET_TM3CNT 0x10c
-#define REG_OFFSET_TM3CNT_L 0x10c
-#define REG_OFFSET_TM3CNT_H 0x10e
-
-#define REG_OFFSET_SIOCNT 0x128
-#define REG_OFFSET_SIODATA8 0x12a
-#define REG_OFFSET_SIODATA32 0x120
-#define REG_OFFSET_SIOMLT_SEND 0x12a
-#define REG_OFFSET_SIOMLT_RECV 0x120
-#define REG_OFFSET_SIOMULTI0 0x120
-#define REG_OFFSET_SIOMULTI1 0x122
-#define REG_OFFSET_SIOMULTI2 0x124
-#define REG_OFFSET_SIOMULTI3 0x126
-
-#define REG_OFFSET_KEYINPUT 0x130
-#define REG_OFFSET_KEYCNT 0x132
-
-#define REG_OFFSET_RCNT 0x134
-
-#define REG_OFFSET_JOYCNT 0x140
-#define REG_OFFSET_JOYSTAT 0x158
-#define REG_OFFSET_JOY_RECV 0x150
-#define REG_OFFSET_JOY_RECV_L 0x150
-#define REG_OFFSET_JOY_RECV_H 0x152
-#define REG_OFFSET_JOY_TRANS 0x154
-#define REG_OFFSET_JOY_TRANS_L 0x154
-#define REG_OFFSET_JOY_TRANS_H 0x156
-
-#define REG_OFFSET_IME 0x208
-#define REG_OFFSET_IE 0x200
-#define REG_OFFSET_IF 0x202
-
-#define REG_OFFSET_WAITCNT 0x204
-
-// I/O register addresses
-
-#define REG_ADDR_DISPCNT (REG_BASE + REG_OFFSET_DISPCNT)
-#define REG_ADDR_DISPSTAT (REG_BASE + REG_OFFSET_DISPSTAT)
-#define REG_ADDR_VCOUNT (REG_BASE + REG_OFFSET_VCOUNT)
-#define REG_ADDR_BG0CNT (REG_BASE + REG_OFFSET_BG0CNT)
-#define REG_ADDR_BG1CNT (REG_BASE + REG_OFFSET_BG1CNT)
-#define REG_ADDR_BG2CNT (REG_BASE + REG_OFFSET_BG2CNT)
-#define REG_ADDR_BG3CNT (REG_BASE + REG_OFFSET_BG3CNT)
-#define REG_ADDR_BG0HOFS (REG_BASE + REG_OFFSET_BG0HOFS)
-#define REG_ADDR_BG0VOFS (REG_BASE + REG_OFFSET_BG0VOFS)
-#define REG_ADDR_BG1HOFS (REG_BASE + REG_OFFSET_BG1HOFS)
-#define REG_ADDR_BG1VOFS (REG_BASE + REG_OFFSET_BG1VOFS)
-#define REG_ADDR_BG2HOFS (REG_BASE + REG_OFFSET_BG2HOFS)
-#define REG_ADDR_BG2VOFS (REG_BASE + REG_OFFSET_BG2VOFS)
-#define REG_ADDR_BG3HOFS (REG_BASE + REG_OFFSET_BG3HOFS)
-#define REG_ADDR_BG3VOFS (REG_BASE + REG_OFFSET_BG3VOFS)
-#define REG_ADDR_BG2PA (REG_BASE + REG_OFFSET_BG2PA)
-#define REG_ADDR_BG2PB (REG_BASE + REG_OFFSET_BG2PB)
-#define REG_ADDR_BG2PC (REG_BASE + REG_OFFSET_BG2PC)
-#define REG_ADDR_BG2PD (REG_BASE + REG_OFFSET_BG2PD)
-#define REG_ADDR_BG2X (REG_BASE + REG_OFFSET_BG2X)
-#define REG_ADDR_BG2X_L (REG_BASE + REG_OFFSET_BG2X_L)
-#define REG_ADDR_BG2X_H (REG_BASE + REG_OFFSET_BG2X_H)
-#define REG_ADDR_BG2Y (REG_BASE + REG_OFFSET_BG2Y)
-#define REG_ADDR_BG2Y_L (REG_BASE + REG_OFFSET_BG2Y_L)
-#define REG_ADDR_BG2Y_H (REG_BASE + REG_OFFSET_BG2Y_H)
-#define REG_ADDR_BG3PA (REG_BASE + REG_OFFSET_BG3PA)
-#define REG_ADDR_BG3PB (REG_BASE + REG_OFFSET_BG3PB)
-#define REG_ADDR_BG3PC (REG_BASE + REG_OFFSET_BG3PC)
-#define REG_ADDR_BG3PD (REG_BASE + REG_OFFSET_BG3PD)
-#define REG_ADDR_BG3X (REG_BASE + REG_OFFSET_BG3X)
-#define REG_ADDR_BG3X_L (REG_BASE + REG_OFFSET_BG3X_L)
-#define REG_ADDR_BG3X_H (REG_BASE + REG_OFFSET_BG3X_H)
-#define REG_ADDR_BG3Y (REG_BASE + REG_OFFSET_BG3Y)
-#define REG_ADDR_BG3Y_L (REG_BASE + REG_OFFSET_BG3Y_L)
-#define REG_ADDR_BG3Y_H (REG_BASE + REG_OFFSET_BG3Y_H)
-#define REG_ADDR_WIN0H (REG_BASE + REG_OFFSET_WIN0H)
-#define REG_ADDR_WIN1H (REG_BASE + REG_OFFSET_WIN1H)
-#define REG_ADDR_WIN0V (REG_BASE + REG_OFFSET_WIN0V)
-#define REG_ADDR_WIN1V (REG_BASE + REG_OFFSET_WIN1V)
-#define REG_ADDR_WININ (REG_BASE + REG_OFFSET_WININ)
-#define REG_ADDR_WINOUT (REG_BASE + REG_OFFSET_WINOUT)
-#define REG_ADDR_MOSAIC (REG_BASE + REG_OFFSET_MOSAIC)
-#define REG_ADDR_BLDCNT (REG_BASE + REG_OFFSET_BLDCNT)
-#define REG_ADDR_BLDALPHA (REG_BASE + REG_OFFSET_BLDALPHA)
-#define REG_ADDR_BLDY (REG_BASE + REG_OFFSET_BLDY)
-
-#define REG_ADDR_SOUND1CNT_L (REG_BASE + REG_OFFSET_SOUND1CNT_L)
-#define REG_ADDR_NR10 (REG_BASE + REG_OFFSET_NR10)
-#define REG_ADDR_SOUND1CNT_H (REG_BASE + REG_OFFSET_SOUND1CNT_H)
-#define REG_ADDR_NR11 (REG_BASE + REG_OFFSET_NR11)
-#define REG_ADDR_NR12 (REG_BASE + REG_OFFSET_NR12)
-#define REG_ADDR_SOUND1CNT_X (REG_BASE + REG_OFFSET_SOUND1CNT_X)
-#define REG_ADDR_NR13 (REG_BASE + REG_OFFSET_NR13)
-#define REG_ADDR_NR14 (REG_BASE + REG_OFFSET_NR14)
-#define REG_ADDR_SOUND2CNT_L (REG_BASE + REG_OFFSET_SOUND2CNT_L)
-#define REG_ADDR_NR21 (REG_BASE + REG_OFFSET_NR21)
-#define REG_ADDR_NR22 (REG_BASE + REG_OFFSET_NR22)
-#define REG_ADDR_SOUND2CNT_H (REG_BASE + REG_OFFSET_SOUND2CNT_H)
-#define REG_ADDR_NR23 (REG_BASE + REG_OFFSET_NR23)
-#define REG_ADDR_NR24 (REG_BASE + REG_OFFSET_NR24)
-#define REG_ADDR_SOUND3CNT_L (REG_BASE + REG_OFFSET_SOUND3CNT_L)
-#define REG_ADDR_NR30 (REG_BASE + REG_OFFSET_NR30)
-#define REG_ADDR_SOUND3CNT_H (REG_BASE + REG_OFFSET_SOUND3CNT_H)
-#define REG_ADDR_NR31 (REG_BASE + REG_OFFSET_NR31)
-#define REG_ADDR_NR32 (REG_BASE + REG_OFFSET_NR32)
-#define REG_ADDR_SOUND3CNT_X (REG_BASE + REG_OFFSET_SOUND3CNT_X)
-#define REG_ADDR_NR33 (REG_BASE + REG_OFFSET_NR33)
-#define REG_ADDR_NR34 (REG_BASE + REG_OFFSET_NR34)
-#define REG_ADDR_SOUND4CNT_L (REG_BASE + REG_OFFSET_SOUND4CNT_L)
-#define REG_ADDR_NR41 (REG_BASE + REG_OFFSET_NR41)
-#define REG_ADDR_NR42 (REG_BASE + REG_OFFSET_NR42)
-#define REG_ADDR_SOUND4CNT_H (REG_BASE + REG_OFFSET_SOUND4CNT_H)
-#define REG_ADDR_NR43 (REG_BASE + REG_OFFSET_NR43)
-#define REG_ADDR_NR44 (REG_BASE + REG_OFFSET_NR44)
-#define REG_ADDR_SOUNDCNT_L (REG_BASE + REG_OFFSET_SOUNDCNT_L)
-#define REG_ADDR_NR50 (REG_BASE + REG_OFFSET_NR50)
-#define REG_ADDR_NR51 (REG_BASE + REG_OFFSET_NR51)
-#define REG_ADDR_SOUNDCNT_H (REG_BASE + REG_OFFSET_SOUNDCNT_H)
-#define REG_ADDR_SOUNDCNT_X (REG_BASE + REG_OFFSET_SOUNDCNT_X)
-#define REG_ADDR_NR52 (REG_BASE + REG_OFFSET_NR52)
-#define REG_ADDR_SOUNDBIAS (REG_BASE + REG_OFFSET_SOUNDBIAS)
-#define REG_ADDR_SOUNDBIAS_L (REG_BASE + REG_OFFSET_SOUNDBIAS_L)
-#define REG_ADDR_SOUNDBIAS_H (REG_BASE + REG_OFFSET_SOUNDBIAS_H)
-#define REG_ADDR_WAVE_RAM0 (REG_BASE + REG_OFFSET_WAVE_RAM0)
-#define REG_ADDR_WAVE_RAM1 (REG_BASE + REG_OFFSET_WAVE_RAM1)
-#define REG_ADDR_WAVE_RAM2 (REG_BASE + REG_OFFSET_WAVE_RAM2)
-#define REG_ADDR_WAVE_RAM3 (REG_BASE + REG_OFFSET_WAVE_RAM3)
-#define REG_ADDR_FIFO_A (REG_BASE + REG_OFFSET_FIFO_A)
-#define REG_ADDR_FIFO_B (REG_BASE + REG_OFFSET_FIFO_B)
-
-#define REG_ADDR_DMA0 (REG_BASE + REG_OFFSET_DMA0)
-#define REG_ADDR_DMA0SAD (REG_BASE + REG_OFFSET_DMA0SAD)
-#define REG_ADDR_DMA0DAD (REG_BASE + REG_OFFSET_DMA0DAD)
-#define REG_ADDR_DMA0CNT (REG_BASE + REG_OFFSET_DMA0CNT)
-#define REG_ADDR_DMA0CNT_L (REG_BASE + REG_OFFSET_DMA0CNT_L)
-#define REG_ADDR_DMA0CNT_H (REG_BASE + REG_OFFSET_DMA0CNT_H)
-#define REG_ADDR_DMA1 (REG_BASE + REG_OFFSET_DMA1)
-#define REG_ADDR_DMA1SAD (REG_BASE + REG_OFFSET_DMA1SAD)
-#define REG_ADDR_DMA1DAD (REG_BASE + REG_OFFSET_DMA1DAD)
-#define REG_ADDR_DMA1CNT (REG_BASE + REG_OFFSET_DMA1CNT)
-#define REG_ADDR_DMA1CNT_L (REG_BASE + REG_OFFSET_DMA1CNT_L)
-#define REG_ADDR_DMA1CNT_H (REG_BASE + REG_OFFSET_DMA1CNT_H)
-#define REG_ADDR_DMA2 (REG_BASE + REG_OFFSET_DMA2)
-#define REG_ADDR_DMA2SAD (REG_BASE + REG_OFFSET_DMA2SAD)
-#define REG_ADDR_DMA2DAD (REG_BASE + REG_OFFSET_DMA2DAD)
-#define REG_ADDR_DMA2CNT (REG_BASE + REG_OFFSET_DMA2CNT)
-#define REG_ADDR_DMA2CNT_L (REG_BASE + REG_OFFSET_DMA2CNT_L)
-#define REG_ADDR_DMA2CNT_H (REG_BASE + REG_OFFSET_DMA2CNT_H)
-#define REG_ADDR_DMA3 (REG_BASE + REG_OFFSET_DMA3)
-#define REG_ADDR_DMA3SAD (REG_BASE + REG_OFFSET_DMA3SAD)
-#define REG_ADDR_DMA3DAD (REG_BASE + REG_OFFSET_DMA3DAD)
-#define REG_ADDR_DMA3CNT (REG_BASE + REG_OFFSET_DMA3CNT)
-#define REG_ADDR_DMA3CNT_L (REG_BASE + REG_OFFSET_DMA3CNT_L)
-#define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H)
-
-#define REG_ADDR_TMCNT (REG_BASE + REG_OFFSET_TMCNT)
-#define REG_ADDR_TMCNT_L (REG_BASE + REG_OFFSET_TMCNT_L)
-#define REG_ADDR_TMCNT_H (REG_BASE + REG_OFFSET_TMCNT_H)
-#define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT)
-#define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L)
-#define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H)
-#define REG_ADDR_TM1CNT (REG_BASE + REG_OFFSET_TM1CNT)
-#define REG_ADDR_TM1CNT_L (REG_BASE + REG_OFFSET_TM1CNT_L)
-#define REG_ADDR_TM1CNT_H (REG_BASE + REG_OFFSET_TM1CNT_H)
-#define REG_ADDR_TM2CNT (REG_BASE + REG_OFFSET_TM2CNT)
-#define REG_ADDR_TM2CNT_L (REG_BASE + REG_OFFSET_TM2CNT_L)
-#define REG_ADDR_TM2CNT_H (REG_BASE + REG_OFFSET_TM2CNT_H)
-#define REG_ADDR_TM3CNT (REG_BASE + REG_OFFSET_TM3CNT)
-#define REG_ADDR_TM3CNT_L (REG_BASE + REG_OFFSET_TM3CNT_L)
-#define REG_ADDR_TM3CNT_H (REG_BASE + REG_OFFSET_TM3CNT_H)
-
-#define REG_ADDR_SIOCNT (REG_BASE + REG_OFFSET_SIOCNT)
-#define REG_ADDR_SIODATA8 (REG_BASE + REG_OFFSET_SIODATA8)
-#define REG_ADDR_SIODATA32 (REG_BASE + REG_OFFSET_SIODATA32)
-#define REG_ADDR_SIOMLT_SEND (REG_BASE + REG_OFFSET_SIOMLT_SEND)
-#define REG_ADDR_SIOMLT_RECV (REG_BASE + REG_OFFSET_SIOMLT_RECV)
-#define REG_ADDR_SIOMULTI0 (REG_BASE + REG_OFFSET_SIOMULTI0)
-#define REG_ADDR_SIOMULTI1 (REG_BASE + REG_OFFSET_SIOMULTI1)
-#define REG_ADDR_SIOMULTI2 (REG_BASE + REG_OFFSET_SIOMULTI2)
-#define REG_ADDR_SIOMULTI3 (REG_BASE + REG_OFFSET_SIOMULTI3)
-
-#define REG_ADDR_KEYINPUT (REG_BASE + REG_OFFSET_KEYINPUT)
-#define REG_ADDR_KEYCNT (REG_BASE + REG_OFFSET_KEYCNT)
-
-#define REG_ADDR_RCNT (REG_BASE + REG_OFFSET_RCNT)
-
-#define REG_ADDR_JOYCNT (REG_BASE + REG_OFFSET_JOYCNT)
-#define REG_ADDR_JOYSTAT (REG_BASE + REG_OFFSET_JOYSTAT)
-#define REG_ADDR_JOY_RECV (REG_BASE + REG_OFFSET_JOY_RECV)
-#define REG_ADDR_JOY_RECV_L (REG_BASE + REG_OFFSET_JOY_RECV_L)
-#define REG_ADDR_JOY_RECV_H (REG_BASE + REG_OFFSET_JOY_RECV_H)
-#define REG_ADDR_JOY_TRANS (REG_BASE + REG_OFFSET_JOY_TRANS)
-#define REG_ADDR_JOY_TRANS_L (REG_BASE + REG_OFFSET_JOY_TRANS_L)
-#define REG_ADDR_JOY_TRANS_H (REG_BASE + REG_OFFSET_JOY_TRANS_H)
-
-#define REG_ADDR_IME (REG_BASE + REG_OFFSET_IME)
-#define REG_ADDR_IE (REG_BASE + REG_OFFSET_IE)
-#define REG_ADDR_IF (REG_BASE + REG_OFFSET_IF)
-
-#define REG_ADDR_WAITCNT (REG_BASE + REG_OFFSET_WAITCNT)
-
-// I/O registers
-
-#define REG_DISPCNT (*(vu16 *)REG_ADDR_DISPCNT)
-#define REG_DISPSTAT (*(vu16 *)REG_ADDR_DISPSTAT)
-#define REG_VCOUNT (*(vu16 *)REG_ADDR_VCOUNT)
-#define REG_BG0CNT (*(vu16 *)REG_ADDR_BG0CNT)
-#define REG_BG1CNT (*(vu16 *)REG_ADDR_BG1CNT)
-#define REG_BG2CNT (*(vu16 *)REG_ADDR_BG2CNT)
-#define REG_BG3CNT (*(vu16 *)REG_ADDR_BG3CNT)
-#define REG_BG0HOFS (*(vu16 *)REG_ADDR_BG0HOFS)
-#define REG_BG0VOFS (*(vu16 *)REG_ADDR_BG0VOFS)
-#define REG_BG1HOFS (*(vu16 *)REG_ADDR_BG1HOFS)
-#define REG_BG1VOFS (*(vu16 *)REG_ADDR_BG1VOFS)
-#define REG_BG2HOFS (*(vu16 *)REG_ADDR_BG2HOFS)
-#define REG_BG2VOFS (*(vu16 *)REG_ADDR_BG2VOFS)
-#define REG_BG3HOFS (*(vu16 *)REG_ADDR_BG3HOFS)
-#define REG_BG3VOFS (*(vu16 *)REG_ADDR_BG3VOFS)
-#define REG_BG2PA (*(vu16 *)REG_ADDR_BG2PA)
-#define REG_BG2PB (*(vu16 *)REG_ADDR_BG2PB)
-#define REG_BG2PC (*(vu16 *)REG_ADDR_BG2PC)
-#define REG_BG2PD (*(vu16 *)REG_ADDR_BG2PD)
-#define REG_BG2X (*(vu32 *)REG_ADDR_BG2X)
-#define REG_BG2X_L (*(vu16 *)REG_ADDR_BG2X_L)
-#define REG_BG2X_H (*(vu16 *)REG_ADDR_BG2X_H)
-#define REG_BG2Y (*(vu32 *)REG_ADDR_BG2Y)
-#define REG_BG2Y_L (*(vu16 *)REG_ADDR_BG2Y_L)
-#define REG_BG2Y_H (*(vu16 *)REG_ADDR_BG2Y_H)
-#define REG_BG3PA (*(vu16 *)REG_ADDR_BG3PA)
-#define REG_BG3PB (*(vu16 *)REG_ADDR_BG3PB)
-#define REG_BG3PC (*(vu16 *)REG_ADDR_BG3PC)
-#define REG_BG3PD (*(vu16 *)REG_ADDR_BG3PD)
-#define REG_BG3X (*(vu32 *)REG_ADDR_BG3X)
-#define REG_BG3X_L (*(vu16 *)REG_ADDR_BG3X_L)
-#define REG_BG3X_H (*(vu16 *)REG_ADDR_BG3X_H)
-#define REG_BG3Y (*(vu32 *)REG_ADDR_BG3Y)
-#define REG_BG3Y_L (*(vu16 *)REG_ADDR_BG3Y_L)
-#define REG_BG3Y_H (*(vu16 *)REG_ADDR_BG3Y_H)
-#define REG_WIN0H (*(vu16 *)REG_ADDR_WIN0H)
-#define REG_WIN1H (*(vu16 *)REG_ADDR_WIN1H)
-#define REG_WIN0V (*(vu16 *)REG_ADDR_WIN0V)
-#define REG_WIN1V (*(vu16 *)REG_ADDR_WIN1V)
-#define REG_WININ (*(vu16 *)REG_ADDR_WININ)
-#define REG_WINOUT (*(vu16 *)REG_ADDR_WINOUT)
-#define REG_MOSAIC (*(vu16 *)REG_ADDR_MOSAIC)
-#define REG_BLDCNT (*(vu16 *)REG_ADDR_BLDCNT)
-#define REG_BLDALPHA (*(vu16 *)REG_ADDR_BLDALPHA)
-#define REG_BLDY (*(vu16 *)REG_ADDR_BLDY)
-
-#define REG_SOUND1CNT_L (*(vu16 *)REG_ADDR_SOUND1CNT_L)
-#define REG_NR10 (*(vu8 *)REG_ADDR_NR10)
-#define REG_SOUND1CNT_H (*(vu16 *)REG_ADDR_SOUND1CNT_H)
-#define REG_NR11 (*(vu8 *)REG_ADDR_NR11)
-#define REG_NR12 (*(vu8 *)REG_ADDR_NR12)
-#define REG_SOUND1CNT_X (*(vu16 *)REG_ADDR_SOUND1CNT_X)
-#define REG_NR13 (*(vu8 *)REG_ADDR_NR13)
-#define REG_NR14 (*(vu8 *)REG_ADDR_NR14)
-#define REG_SOUND2CNT_L (*(vu16 *)REG_ADDR_SOUND2CNT_L)
-#define REG_NR21 (*(vu8 *)REG_ADDR_NR21)
-#define REG_NR22 (*(vu8 *)REG_ADDR_NR22)
-#define REG_SOUND2CNT_H (*(vu16 *)REG_ADDR_SOUND2CNT_H)
-#define REG_NR23 (*(vu8 *)REG_ADDR_NR23)
-#define REG_NR24 (*(vu8 *)REG_ADDR_NR24)
-#define REG_SOUND3CNT_L (*(vu16 *)REG_ADDR_SOUND3CNT_L)
-#define REG_NR30 (*(vu8 *)REG_ADDR_NR30)
-#define REG_SOUND3CNT_H (*(vu16 *)REG_ADDR_SOUND3CNT_H)
-#define REG_NR31 (*(vu8 *)REG_ADDR_NR31)
-#define REG_NR32 (*(vu8 *)REG_ADDR_NR32)
-#define REG_SOUND3CNT_X (*(vu16 *)REG_ADDR_SOUND3CNT_X)
-#define REG_NR33 (*(vu8 *)REG_ADDR_NR33)
-#define REG_NR34 (*(vu8 *)REG_ADDR_NR34)
-#define REG_SOUND4CNT_L (*(vu16 *)REG_ADDR_SOUND4CNT_L)
-#define REG_NR41 (*(vu8 *)REG_ADDR_NR41)
-#define REG_NR42 (*(vu8 *)REG_ADDR_NR42)
-#define REG_SOUND4CNT_H (*(vu16 *)REG_ADDR_SOUND4CNT_H)
-#define REG_NR43 (*(vu8 *)REG_ADDR_NR43)
-#define REG_NR44 (*(vu8 *)REG_ADDR_NR44)
-#define REG_SOUNDCNT_L (*(vu16 *)REG_ADDR_SOUNDCNT_L)
-#define REG_NR50 (*(vu8 *)REG_ADDR_NR50)
-#define REG_NR51 (*(vu8 *)REG_ADDR_NR51)
-#define REG_SOUNDCNT_H (*(vu16 *)REG_ADDR_SOUNDCNT_H)
-#define REG_SOUNDCNT_X (*(vu16 *)REG_ADDR_SOUNDCNT_X)
-#define REG_NR52 (*(vu8 *)REG_ADDR_NR52)
-#define REG_SOUNDBIAS (*(vu16 *)REG_ADDR_SOUNDBIAS)
-#define REG_SOUNDBIAS_L (*(vu8 *)REG_ADDR_SOUNDBIAS_L)
-#define REG_SOUNDBIAS_H (*(vu8 *)REG_ADDR_SOUNDBIAS_H)
-#define REG_WAVE_RAM0 (*(vu32 *)REG_ADDR_WAVE_RAM0)
-#define REG_WAVE_RAM1 (*(vu32 *)REG_ADDR_WAVE_RAM1)
-#define REG_WAVE_RAM2 (*(vu32 *)REG_ADDR_WAVE_RAM2)
-#define REG_WAVE_RAM3 (*(vu32 *)REG_ADDR_WAVE_RAM3)
-#define REG_FIFO_A (*(vu32 *)REG_ADDR_FIFO_A)
-#define REG_FIFO_B (*(vu32 *)REG_ADDR_FIFO_B)
-
-#define REG_DMA0SAD (*(vu32 *)REG_ADDR_DMA0SAD)
-#define REG_DMA0DAD (*(vu32 *)REG_ADDR_DMA0DAD)
-#define REG_DMA0CNT (*(vu32 *)REG_ADDR_DMA0CNT)
-#define REG_DMA0CNT_L (*(vu16 *)REG_ADDR_DMA0CNT_L)
-#define REG_DMA0CNT_H (*(vu16 *)REG_ADDR_DMA0CNT_H)
-
-#define REG_DMA1SAD (*(vu32 *)REG_ADDR_DMA1SAD)
-#define REG_DMA1DAD (*(vu32 *)REG_ADDR_DMA1DAD)
-#define REG_DMA1CNT (*(vu32 *)REG_ADDR_DMA1CNT)
-#define REG_DMA1CNT_L (*(vu16 *)REG_ADDR_DMA1CNT_L)
-#define REG_DMA1CNT_H (*(vu16 *)REG_ADDR_DMA1CNT_H)
-
-#define REG_DMA2SAD (*(vu32 *)REG_ADDR_DMA2SAD)
-#define REG_DMA2DAD (*(vu32 *)REG_ADDR_DMA2DAD)
-#define REG_DMA2CNT (*(vu32 *)REG_ADDR_DMA2CNT)
-#define REG_DMA2CNT_L (*(vu16 *)REG_ADDR_DMA2CNT_L)
-#define REG_DMA2CNT_H (*(vu16 *)REG_ADDR_DMA2CNT_H)
-
-#define REG_DMA3SAD (*(vu32 *)REG_ADDR_DMA3SAD)
-#define REG_DMA3DAD (*(vu32 *)REG_ADDR_DMA3DAD)
-#define REG_DMA3CNT (*(vu32 *)REG_ADDR_DMA3CNT)
-#define REG_DMA3CNT_L (*(vu16 *)REG_ADDR_DMA3CNT_L)
-#define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H)
-
-#define REG_TMCNT(n) (*(vu16 *)(REG_ADDR_TMCNT + ((n) * 4)))
-#define REG_TMCNT_L(n) (*(vu16 *)(REG_ADDR_TMCNT_L + ((n) * 4)))
-#define REG_TMCNT_H(n) (*(vu16 *)(REG_ADDR_TMCNT_H + ((n) * 4)))
-#define REG_TM0CNT (*(vu32 *)REG_ADDR_TM0CNT)
-#define REG_TM0CNT_L (*(vu16 *)REG_ADDR_TM0CNT_L)
-#define REG_TM0CNT_H (*(vu16 *)REG_ADDR_TM0CNT_H)
-#define REG_TM1CNT (*(vu32 *)REG_ADDR_TM1CNT)
-#define REG_TM1CNT_L (*(vu16 *)REG_ADDR_TM1CNT_L)
-#define REG_TM1CNT_H (*(vu16 *)REG_ADDR_TM1CNT_H)
-#define REG_TM2CNT (*(vu32 *)REG_ADDR_TM2CNT)
-#define REG_TM2CNT_L (*(vu16 *)REG_ADDR_TM2CNT_L)
-#define REG_TM2CNT_H (*(vu16 *)REG_ADDR_TM2CNT_H)
-#define REG_TM3CNT (*(vu32 *)REG_ADDR_TM3CNT)
-#define REG_TM3CNT_L (*(vu16 *)REG_ADDR_TM3CNT_L)
-#define REG_TM3CNT_H (*(vu16 *)REG_ADDR_TM3CNT_H)
-
-#define REG_SIOCNT (*(vu16 *)REG_ADDR_SIOCNT)
-#define REG_SIODATA8 (*(vu16 *)REG_ADDR_SIODATA8)
-#define REG_SIODATA32 (*(vu32 *)REG_ADDR_SIODATA32)
-#define REG_SIOMLT_SEND (*(vu16 *)REG_ADDR_SIOMLT_SEND)
-#define REG_SIOMLT_RECV (*(vu64 *)REG_ADDR_SIOMLT_RECV)
-#define REG_SIOMULTI0 (*(vu16 *)REG_ADDR_SIOMULTI0)
-#define REG_SIOMULTI1 (*(vu16 *)REG_ADDR_SIOMULTI1)
-#define REG_SIOMULTI2 (*(vu16 *)REG_ADDR_SIOMULTI2)
-#define REG_SIOMULTI3 (*(vu16 *)REG_ADDR_SIOMULTI3)
-
-#define REG_KEYINPUT (*(vu16 *)REG_ADDR_KEYINPUT)
-#define REG_KEYCNT (*(vu16 *)REG_ADDR_KEYCNT)
-
-#define REG_RCNT (*(vu16 *)REG_ADDR_RCNT)
-
-#define REG_IME (*(vu16 *)REG_ADDR_IME)
-#define REG_IE (*(vu16 *)REG_ADDR_IE)
-#define REG_IF (*(vu16 *)REG_ADDR_IF)
-
-#define REG_WAITCNT (*(vu16 *)REG_ADDR_WAITCNT)
-
-// I/O register fields
-
-// DISPCNT
-#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text
-#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off
-#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine
-#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color
-#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette
-#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color
-#define DISPCNT_HBLANK_INTERVAL 0x0020 // Allow access to OAM during H-Blank
-#define DISPCNT_OBJ_1D_MAP 0x0040
-#define DISPCNT_FORCED_BLANK 0x0080
-#define DISPCNT_BG0_ON 0x0100
-#define DISPCNT_BG1_ON 0x0200
-#define DISPCNT_BG2_ON 0x0400
-#define DISPCNT_BG3_ON 0x0800
-#define DISPCNT_BG_ALL_ON 0x0F00
-#define DISPCNT_OBJ_ON 0x1000
-#define DISPCNT_WIN0_ON 0x2000
-#define DISPCNT_WIN1_ON 0x4000
-#define DISPCNT_OBJWIN_ON 0x8000
-
-// DISPSTAT
-#define DISPSTAT_VBLANK 0x0001 // in V-Blank
-#define DISPSTAT_HBLANK 0x0002 // in H-Blank
-#define DISPSTAT_VCOUNT 0x0004 // V-Count match
-#define DISPSTAT_VBLANK_INTR 0x0008 // V-Blank interrupt enabled
-#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled
-#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled
-
-// BGCNT
-#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs.
-#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data.
-#define BGCNT_MOSAIC 0x0040
-#define BGCNT_16COLOR 0x0000 // 4 bits per pixel
-#define BGCNT_256COLOR 0x0080 // 8 bits per pixel
-#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map.
-#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default.
-#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels.
-#define BGCNT_TXT512x256 0x4000
-#define BGCNT_TXT256x512 0x8000
-#define BGCNT_TXT512x512 0xC000
-#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels.
-#define BGCNT_AFF256x256 0x4000
-#define BGCNT_AFF512x512 0x8000
-#define BGCNT_AFF1024x1024 0xC000
-
-// WININ/OUT
-#define WININ_WIN0_BG0 (1 << 0)
-#define WININ_WIN0_BG1 (1 << 1)
-#define WININ_WIN0_BG2 (1 << 2)
-#define WININ_WIN0_BG3 (1 << 3)
-#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
-#define WININ_WIN0_OBJ (1 << 4)
-#define WININ_WIN0_CLR (1 << 5)
-#define WININ_WIN1_BG0 (1 << 8)
-#define WININ_WIN1_BG1 (1 << 9)
-#define WININ_WIN1_BG2 (1 << 10)
-#define WININ_WIN1_BG3 (1 << 11)
-#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
-#define WININ_WIN1_OBJ (1 << 12)
-#define WININ_WIN1_CLR (1 << 13)
-
-#define WINOUT_WIN01_BG0 (1 << 0)
-#define WINOUT_WIN01_BG1 (1 << 1)
-#define WINOUT_WIN01_BG2 (1 << 2)
-#define WINOUT_WIN01_BG3 (1 << 3)
-#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3)
-#define WINOUT_WIN01_OBJ (1 << 4)
-#define WINOUT_WIN01_CLR (1 << 5)
-#define WINOUT_WINOBJ_BG0 (1 << 8)
-#define WINOUT_WINOBJ_BG1 (1 << 9)
-#define WINOUT_WINOBJ_BG2 (1 << 10)
-#define WINOUT_WINOBJ_BG3 (1 << 11)
-#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3)
-#define WINOUT_WINOBJ_OBJ (1 << 12)
-#define WINOUT_WINOBJ_CLR (1 << 13)
-
-#define WIN_RANGE(a, b) (((a) << 8) | (b))
-#define WIN_RANGE2(a, b) ((b) | ((a) << 8))
-
-// BLDCNT
-// Bits 0-5 select layers for the 1st target
-#define BLDCNT_TGT1_BG0 (1 << 0)
-#define BLDCNT_TGT1_BG1 (1 << 1)
-#define BLDCNT_TGT1_BG2 (1 << 2)
-#define BLDCNT_TGT1_BG3 (1 << 3)
-#define BLDCNT_TGT1_OBJ (1 << 4)
-#define BLDCNT_TGT1_BD (1 << 5)
-#define BLDCNT_TGT1_ALL (BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD)
-// Bits 6-7 select the special effect
-#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
-#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
-#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
-#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
-// Bits 8-13 select layers for the 2nd target
-#define BLDCNT_TGT2_BG0 (1 << 8)
-#define BLDCNT_TGT2_BG1 (1 << 9)
-#define BLDCNT_TGT2_BG2 (1 << 10)
-#define BLDCNT_TGT2_BG3 (1 << 11)
-#define BLDCNT_TGT2_OBJ (1 << 12)
-#define BLDCNT_TGT2_BD (1 << 13)
-#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
-
-// BLDALPHA
-#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
-
-// SOUNDCNT_H
-#define SOUND_CGB_MIX_QUARTER 0x0000
-#define SOUND_CGB_MIX_HALF 0x0001
-#define SOUND_CGB_MIX_FULL 0x0002
-#define SOUND_A_MIX_HALF 0x0000
-#define SOUND_A_MIX_FULL 0x0004
-#define SOUND_B_MIX_HALF 0x0000
-#define SOUND_B_MIX_FULL 0x0008
-#define SOUND_ALL_MIX_FULL 0x000E
-#define SOUND_A_RIGHT_OUTPUT 0x0100
-#define SOUND_A_LEFT_OUTPUT 0x0200
-#define SOUND_A_TIMER_0 0x0000
-#define SOUND_A_TIMER_1 0x0400
-#define SOUND_A_FIFO_RESET 0x0800
-#define SOUND_B_RIGHT_OUTPUT 0x1000
-#define SOUND_B_LEFT_OUTPUT 0x2000
-#define SOUND_B_TIMER_0 0x0000
-#define SOUND_B_TIMER_1 0x4000
-#define SOUND_B_FIFO_RESET 0x8000
-
-// SOUNDCNT_X
-#define SOUND_1_ON 0x0001
-#define SOUND_2_ON 0x0002
-#define SOUND_3_ON 0x0004
-#define SOUND_4_ON 0x0008
-#define SOUND_MASTER_ENABLE 0x0080
-
-// DMA
-#define DMA_DEST_INC 0x0000
-#define DMA_DEST_DEC 0x0020
-#define DMA_DEST_FIXED 0x0040
-#define DMA_DEST_RELOAD 0x0060
-#define DMA_SRC_INC 0x0000
-#define DMA_SRC_DEC 0x0080
-#define DMA_SRC_FIXED 0x0100
-#define DMA_REPEAT 0x0200
-#define DMA_16BIT 0x0000
-#define DMA_32BIT 0x0400
-#define DMA_DREQ_ON 0x0800
-#define DMA_START_NOW 0x0000
-#define DMA_START_VBLANK 0x1000
-#define DMA_START_HBLANK 0x2000
-#define DMA_START_SPECIAL 0x3000
-#define DMA_START_MASK 0x3000
-#define DMA_INTR_ENABLE 0x4000
-#define DMA_ENABLE 0x8000
-
-// timer
-#define TIMER_1CLK 0x00
-#define TIMER_64CLK 0x01
-#define TIMER_256CLK 0x02
-#define TIMER_1024CLK 0x03
-#define TIMER_INTR_ENABLE 0x40
-#define TIMER_ENABLE 0x80
-
-// serial
-#define SIO_ID 0x0030 // Communication ID
-
-#define SIO_8BIT_MODE 0x0000 // Normal 8-bit communication mode
-#define SIO_32BIT_MODE 0x1000 // Normal 32-bit communication mode
-#define SIO_MULTI_MODE 0x2000 // Multi-player communication mode
-#define SIO_UART_MODE 0x3000 // UART communication mode
-
-#define SIO_9600_BPS 0x0000 // baud rate 9600 bps
-#define SIO_38400_BPS 0x0001 // 38400 bps
-#define SIO_57600_BPS 0x0002 // 57600 bps
-#define SIO_115200_BPS 0x0003 // 115200 bps
-
-#define SIO_MULTI_SI 0x0004 // Multi-player communication SI terminal
-#define SIO_MULTI_SD 0x0008 // SD terminal
-#define SIO_MULTI_BUSY 0x0080
-
-#define SIO_ERROR 0x0040 // Detect error
-#define SIO_START 0x0080 // Start transfer
-#define SIO_ENABLE 0x0080 // Enable SIO
-
-#define SIO_INTR_ENABLE 0x4000
-
-#define SIO_MULTI_SI_SHIFT 2
-#define SIO_MULTI_SI_MASK 0x1
-#define SIO_MULTI_DI_SHIFT 3
-#define SIO_MULTI_DI_MASK 0x1
-
-// keys
-#define A_BUTTON 0x0001
-#define B_BUTTON 0x0002
-#define SELECT_BUTTON 0x0004
-#define START_BUTTON 0x0008
-#define DPAD_RIGHT 0x0010
-#define DPAD_LEFT 0x0020
-#define DPAD_UP 0x0040
-#define DPAD_DOWN 0x0080
-#define R_BUTTON 0x0100
-#define L_BUTTON 0x0200
-#define KEYS_MASK 0x03FF
-#define KEY_INTR_ENABLE 0x0400
-#define KEY_OR_INTR 0x0000
-#define KEY_AND_INTR 0x8000
-#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN))
-#define JOY_EXCL_DPAD 0x030F
-
-// interrupt flags
-#define INTR_FLAG_VBLANK (1 << 0)
-#define INTR_FLAG_HBLANK (1 << 1)
-#define INTR_FLAG_VCOUNT (1 << 2)
-#define INTR_FLAG_TIMER0 (1 << 3)
-#define INTR_FLAG_TIMER1 (1 << 4)
-#define INTR_FLAG_TIMER2 (1 << 5)
-#define INTR_FLAG_TIMER3 (1 << 6)
-#define INTR_FLAG_SERIAL (1 << 7)
-#define INTR_FLAG_DMA0 (1 << 8)
-#define INTR_FLAG_DMA1 (1 << 9)
-#define INTR_FLAG_DMA2 (1 << 10)
-#define INTR_FLAG_DMA3 (1 << 11)
-#define INTR_FLAG_KEYPAD (1 << 12)
-#define INTR_FLAG_GAMEPAK (1 << 13)
-
-// WAITCNT
-#define WAITCNT_SRAM_4 (0 << 0)
-#define WAITCNT_SRAM_3 (1 << 0)
-#define WAITCNT_SRAM_2 (2 << 0)
-#define WAITCNT_SRAM_8 (3 << 0)
-#define WAITCNT_SRAM_MASK (3 << 0)
-
-#define WAITCNT_WS0_N_4 (0 << 2)
-#define WAITCNT_WS0_N_3 (1 << 2)
-#define WAITCNT_WS0_N_2 (2 << 2)
-#define WAITCNT_WS0_N_8 (3 << 2)
-#define WAITCNT_WS0_N_MASK (3 << 2)
-
-#define WAITCNT_WS0_S_2 (0 << 4)
-#define WAITCNT_WS0_S_1 (1 << 4)
-
-#define WAITCNT_WS1_N_4 (0 << 5)
-#define WAITCNT_WS1_N_3 (1 << 5)
-#define WAITCNT_WS1_N_2 (2 << 5)
-#define WAITCNT_WS1_N_8 (3 << 5)
-#define WAITCNT_WS1_N_MASK (3 << 5)
-
-#define WAITCNT_WS1_S_4 (0 << 7)
-#define WAITCNT_WS1_S_1 (1 << 7)
-
-#define WAITCNT_WS2_N_4 (0 << 8)
-#define WAITCNT_WS2_N_3 (1 << 8)
-#define WAITCNT_WS2_N_2 (2 << 8)
-#define WAITCNT_WS2_N_8 (3 << 8)
-#define WAITCNT_WS2_N_MASK (3 << 8)
-
-#define WAITCNT_WS2_S_8 (0 << 10)
-#define WAITCNT_WS2_S_1 (1 << 10)
-
-#define WAITCNT_PHI_OUT_NONE (0 << 11)
-#define WAITCNT_PHI_OUT_4MHZ (1 << 11)
-#define WAITCNT_PHI_OUT_8MHZ (2 << 11)
-#define WAITCNT_PHI_OUT_16MHZ (3 << 11)
-#define WAITCNT_PHI_OUT_MASK (3 << 11)
-
-#define WAITCNT_PREFETCH_ENABLE (1 << 14)
-
-#define WAITCNT_AGB (0 << 15)
-#define WAITCNT_CGB (1 << 15)
-
-#endif // GUARD_GBA_IO_REG_H
diff --git a/berry_fix/payload/include/gba/isagbprint.h b/berry_fix/payload/include/gba/isagbprint.h
deleted file mode 100644
index c5eb456c3..000000000
--- a/berry_fix/payload/include/gba/isagbprint.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef GUARD_GBA_ISAGBPRINT_H
-#define GUARD_GBA_ISAGBPRINT_H
-
-#ifdef NDEBUG
-#define AGBPrintInit()
-#define AGBPutc(cChr)
-#define AGBPrint(pBuf)
-#define AGBPrintf(pBuf, ...)
-#define AGBPrintFlush1Block()
-#define AGBPrintFlush()
-#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
-#else
-void AGBPrintInit(void);
-void AGBPutc(const char cChr);
-void AGBPrint(const char *pBuf);
-void AGBPrintf(const char *pBuf, ...);
-void AGBPrintFlush1Block(void);
-void AGBPrintFlush(void);
-void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
-#endif
-
-#undef AGB_ASSERT
-#ifdef NDEBUG
-#define AGB_ASSERT(exp)
-#else
-#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
-#endif
-
-#undef AGB_WARNING
-#ifdef NDEBUG
-#define AGB_WARNING(exp)
-#else
-#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
-#endif
-
-// for matching purposes
-
-#ifdef NDEBUG
-#define AGB_ASSERT_EX(exp, file, line)
-#else
-#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
-#endif
-
-#ifdef NDEBUG
-#define AGB_WARNING_EX(exp, file, line)
-#else
-#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
-#endif
-
-#endif // GUARD_GBA_ISAGBPRINT_H
diff --git a/berry_fix/payload/include/gba/m4a_internal.h b/berry_fix/payload/include/gba/m4a_internal.h
deleted file mode 100644
index 1aca67585..000000000
--- a/berry_fix/payload/include/gba/m4a_internal.h
+++ /dev/null
@@ -1,467 +0,0 @@
-#ifndef GUARD_GBA_M4A_INTERNAL_H
-#define GUARD_GBA_M4A_INTERNAL_H
-
-#include "gba/gba.h"
-
-// ASCII encoding of 'Smsh' in reverse
-// This is presumably short for SMASH, the developer of MKS4AGB.
-#define ID_NUMBER 0x68736D53
-
-#define C_V 0x40 // center value for PAN, BEND, and TUNE
-
-#define SOUND_MODE_REVERB_VAL 0x0000007F
-#define SOUND_MODE_REVERB_SET 0x00000080
-#define SOUND_MODE_MAXCHN 0x00000F00
-#define SOUND_MODE_MAXCHN_SHIFT 8
-#define SOUND_MODE_MASVOL 0x0000F000
-#define SOUND_MODE_MASVOL_SHIFT 12
-#define SOUND_MODE_FREQ_05734 0x00010000
-#define SOUND_MODE_FREQ_07884 0x00020000
-#define SOUND_MODE_FREQ_10512 0x00030000
-#define SOUND_MODE_FREQ_13379 0x00040000
-#define SOUND_MODE_FREQ_15768 0x00050000
-#define SOUND_MODE_FREQ_18157 0x00060000
-#define SOUND_MODE_FREQ_21024 0x00070000
-#define SOUND_MODE_FREQ_26758 0x00080000
-#define SOUND_MODE_FREQ_31536 0x00090000
-#define SOUND_MODE_FREQ_36314 0x000A0000
-#define SOUND_MODE_FREQ_40137 0x000B0000
-#define SOUND_MODE_FREQ_42048 0x000C0000
-#define SOUND_MODE_FREQ 0x000F0000
-#define SOUND_MODE_FREQ_SHIFT 16
-#define SOUND_MODE_DA_BIT_9 0x00800000
-#define SOUND_MODE_DA_BIT_8 0x00900000
-#define SOUND_MODE_DA_BIT_7 0x00A00000
-#define SOUND_MODE_DA_BIT_6 0x00B00000
-#define SOUND_MODE_DA_BIT 0x00B00000
-#define SOUND_MODE_DA_BIT_SHIFT 20
-
-struct WaveData
-{
- u16 type;
- u16 status;
- u32 freq;
- u32 loopStart;
- u32 size; // number of samples
- s8 data[1]; // samples
-};
-
-#define TONEDATA_TYPE_CGB 0x07
-#define TONEDATA_TYPE_FIX 0x08
-#define TONEDATA_TYPE_SPL 0x40 // key split
-#define TONEDATA_TYPE_RHY 0x80 // rhythm
-
-#define TONEDATA_P_S_PAN 0xc0
-#define TONEDATA_P_S_PAM TONEDATA_P_S_PAN
-
-struct ToneData
-{
- u8 type;
- u8 key;
- u8 length; // sound length (compatible sound)
- u8 pan_sweep; // pan or sweep (compatible sound ch. 1)
- struct WaveData *wav;
- u8 attack;
- u8 decay;
- u8 sustain;
- u8 release;
-};
-
-struct CgbChannel
-{
- u8 sf;
- u8 ty;
- u8 rightVolume;
- u8 leftVolume;
- u8 at;
- u8 de;
- u8 su;
- u8 re;
- u8 ky;
- u8 ev;
- u8 eg;
- u8 ec;
- u8 echoVolume;
- u8 echoLength;
- u8 d1;
- u8 d2;
- u8 gt;
- u8 mk;
- u8 ve;
- u8 pr;
- u8 rp;
- u8 d3[3];
- u8 d5;
- u8 sg;
- u8 n4;
- u8 pan;
- u8 panMask;
- u8 mo;
- u8 le;
- u8 sw;
- u32 fr;
- u32 wp;
- u32 cp;
- u32 tp;
- u32 pp;
- u32 np;
- u8 d4[8];
-};
-
-struct MusicPlayerTrack;
-
-struct SoundChannel
-{
- u8 status;
- u8 type;
- u8 rightVolume;
- u8 leftVolume;
- u8 attack;
- u8 decay;
- u8 sustain;
- u8 release;
- u8 ky;
- u8 ev;
- u8 er;
- u8 el;
- u8 echoVolume;
- u8 echoLength;
- u8 d1;
- u8 d2;
- u8 gt;
- u8 mk;
- u8 ve;
- u8 pr;
- u8 rp;
- u8 d3[3];
- u32 ct;
- u32 fw;
- u32 freq;
- struct WaveData *wav;
- u32 cp;
- struct MusicPlayerTrack *track;
- u32 pp;
- u32 np;
- u32 d4;
- u16 xpi;
- u16 xpc;
-};
-
-#define MAX_DIRECTSOUND_CHANNELS 12
-
-#define PCM_DMA_BUF_SIZE 1584 // size of Direct Sound buffer
-
-struct SoundInfo
-{
- // This field is normally equal to ID_NUMBER but it is set to other
- // values during sensitive operations for locking purposes.
- // This field should be volatile but isn't. This could potentially cause
- // race conditions.
- u32 ident;
-
- vu8 pcmDmaCounter;
-
- // Direct Sound
- u8 reverb;
- u8 maxChans;
- u8 masterVolume;
- u8 freq;
-
- u8 mode;
- u8 c15;
- u8 pcmDmaPeriod; // number of V-blanks per PCM DMA
- u8 maxLines;
- u8 gap[3];
- s32 pcmSamplesPerVBlank;
- s32 pcmFreq;
- s32 divFreq;
- struct CgbChannel *cgbChans;
- u32 func;
- u32 intp;
- void (*CgbSound)(void);
- void (*CgbOscOff)(u8);
- u32 (*MidiKeyToCgbFreq)(u8, u8, u8);
- u32 MPlayJumpTable;
- u32 plynote;
- u32 ExtVolPit;
- u8 gap2[16];
- struct SoundChannel chans[MAX_DIRECTSOUND_CHANNELS];
- s8 pcmBuffer[PCM_DMA_BUF_SIZE * 2];
-};
-
-struct SongHeader
-{
- u8 trackCount;
- u8 blockCount;
- u8 priority;
- u8 reverb;
- struct ToneData *tone;
- u8 *part[1];
-};
-
-struct PokemonCrySong
-{
- u8 trackCount;
- u8 blockCount;
- u8 priority;
- u8 reverb;
- struct ToneData *tone;
- u8 *part[2];
- u8 gap;
- u8 part0; // 0x11
- u8 tuneValue; // 0x12
- u8 gotoCmd; // 0x13
- u32 gotoTarget; // 0x14
- u8 part1; // 0x18
- u8 tuneValue2; // 0x19
- u8 cont[2]; // 0x1A
- u8 volCmd; // 0x1C
- u8 volumeValue; // 0x1D
- u8 unkCmd0D[2]; // 0x1E
- u32 unkCmd0DParam; // 0x20
- u8 xreleCmd[2]; // 0x24
- u8 releaseValue; // 0x26
- u8 panCmd;
- u8 panValue; // 0x28
- u8 tieCmd; // 0x29
- u8 tieKeyValue; // 0x2A
- u8 tieVelocityValue; // 0x2B
- u8 unkCmd0C[2]; // 0x2C
- u16 unkCmd0CParam; // 0x2E
- u8 end[2]; // 0x30
-};
-
-#define MPT_FLG_VOLSET 0x01
-#define MPT_FLG_VOLCHG 0x03
-#define MPT_FLG_PITSET 0x04
-#define MPT_FLG_PITCHG 0x0C
-#define MPT_FLG_START 0x40
-#define MPT_FLG_EXIST 0x80
-
-struct MusicPlayerTrack
-{
- u8 flags;
- u8 wait;
- u8 patternLevel;
- u8 repN;
- u8 gateTime;
- u8 key;
- u8 velocity;
- u8 runningStatus;
- u8 keyM;
- u8 pitM;
- s8 keyShift;
- s8 keyShiftX;
- s8 tune;
- u8 pitX;
- s8 bend;
- u8 bendRange;
- u8 volMR;
- u8 volML;
- u8 vol;
- u8 volX;
- s8 pan;
- s8 panX;
- s8 modM;
- u8 mod;
- u8 modT;
- u8 lfoSpeed;
- u8 lfoSpeedC;
- u8 lfoDelay;
- u8 lfoDelayC;
- u8 priority;
- u8 echoVolume;
- u8 echoLength;
- struct SoundChannel *chan;
- struct ToneData tone;
- u8 gap[10];
- u16 unk_3A;
- u32 unk_3C;
- u8 *cmdPtr;
- u8 *patternStack[3];
-};
-
-#define MUSICPLAYER_STATUS_TRACK 0x0000ffff
-#define MUSICPLAYER_STATUS_PAUSE 0x80000000
-
-#define MAX_MUSICPLAYER_TRACKS 16
-
-#define TEMPORARY_FADE 0x0001
-#define FADE_IN 0x0002
-#define FADE_VOL_MAX 64
-#define FADE_VOL_SHIFT 2
-
-struct MusicPlayerInfo
-{
- struct SongHeader *songHeader;
- u32 status;
- u8 trackCount;
- u8 priority;
- u8 cmd;
- u8 unk_B;
- u32 clock;
- u8 gap[8];
- u8 *memAccArea;
- u16 tempoD;
- u16 tempoU;
- u16 tempoI;
- u16 tempoC;
- u16 fadeOI;
- u16 fadeOC;
- u16 fadeOV;
- struct MusicPlayerTrack *tracks;
- struct ToneData *tone;
- u32 ident;
- u32 func;
- u32 intp;
-};
-
-struct MusicPlayer
-{
- struct MusicPlayerInfo *info;
- struct MusicPlayerTrack *track;
- u8 unk_8;
- u16 unk_A;
-};
-
-struct Song
-{
- struct SongHeader *header;
- u16 ms;
- u16 me;
-};
-
-extern const struct MusicPlayer gMPlayTable[];
-extern const struct Song gSongTable[];
-
-
-
-extern u8 gMPlayMemAccArea[];
-
-//u8 gPokemonCrySong[52];
-//u8 gPokemonCrySongs[52 * MAX_POKEMON_CRIES];
-
-#define MAX_POKEMON_CRIES 2
-
-extern struct PokemonCrySong gPokemonCrySong;
-extern struct PokemonCrySong gPokemonCrySongs[];
-
-extern struct MusicPlayerInfo gPokemonCryMusicPlayers[];
-extern struct MusicPlayerTrack gPokemonCryTracks[];
-
-extern char SoundMainRAM[];
-
-extern void *gMPlayJumpTable[];
-
-typedef void (*XcmdFunc)(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-extern const XcmdFunc gXcmdTable[];
-
-extern struct CgbChannel gCgbChans[];
-
-extern const u8 gScaleTable[];
-extern const u32 gFreqTable[];
-extern const u16 gPcmSamplesPerVBlankTable[];
-
-extern const u8 gCgbScaleTable[];
-extern const s16 gCgbFreqTable[];
-extern const u8 gNoiseTable[];
-
-extern const struct PokemonCrySong gPokemonCrySongTemplate;
-
-extern const struct ToneData voicegroup000;
-
-extern char gNumMusicPlayers[];
-extern char gMaxLines[];
-
-#define NUM_MUSIC_PLAYERS ((u16)gNumMusicPlayers)
-#define MAX_LINES ((u32)gMaxLines)
-
-u32 umul3232H32(u32 multiplier, u32 multiplicand);
-void SoundMain(void);
-void SoundMainBTM(void);
-void TrackStop(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track);
-void MPlayMain(void);
-void RealClearChain(void *x);
-
-void MPlayContinue(struct MusicPlayerInfo *mplayInfo);
-void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader);
-void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo);
-void FadeOutBody(struct MusicPlayerInfo *mplayInfo);
-void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track);
-void MPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed);
-void ClearChain(void *x);
-void Clear64byte(void *addr);
-void SoundInit(struct SoundInfo *soundInfo);
-void MPlayExtender(struct CgbChannel *cgbChans);
-void m4aSoundMode(u32 mode);
-void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track, u8 a3);
-void CgbSound(void);
-void CgbOscOff(u8);
-u32 MidiKeyToCgbFreq(u8, u8, u8);
-void DummyFunc(void);
-void MPlayJumpTableCopy(void **mplayJumpTable);
-void SampleFreqSet(u32 freq);
-void m4aSoundVSyncOn(void);
-void m4aSoundVSyncOff(void);
-
-void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo);
-void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
-void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch);
-void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan);
-void ClearModM(struct MusicPlayerTrack *track);
-void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth);
-void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed);
-
-struct MusicPlayerInfo *SetPokemonCryTone(struct ToneData *tone);
-void SetPokemonCryVolume(u8 val);
-void SetPokemonCryPanpot(s8 val);
-void SetPokemonCryPitch(s16 val);
-void SetPokemonCryLength(u16 val);
-void SetPokemonCryRelease(u8 val);
-void SetPokemonCryProgress(u32 val);
-bool32 IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo);
-void SetPokemonCryChorus(s8 val);
-void SetPokemonCryStereo(u32 val);
-void SetPokemonCryPriority(u8 val);
-
-// sound command handler functions
-void ply_fine(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_goto(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_patt(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_pend(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_rept(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_memacc(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_prio(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_tempo(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_keysh(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_voice(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_vol(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_pan(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_bend(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_bendr(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_lfos(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_lfodl(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_mod(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_modt(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_tune(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_port(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xcmd(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_endtie(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_note(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-
-// extended sound command handler functions
-void ply_xxx(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xwave(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xtype(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xatta(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xdeca(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xsust(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xrele(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xiecv(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xiecl(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-
-#endif // GUARD_GBA_M4A_INTERNAL_H
diff --git a/berry_fix/payload/include/gba/macro.h b/berry_fix/payload/include/gba/macro.h
deleted file mode 100644
index 6f9c55f2e..000000000
--- a/berry_fix/payload/include/gba/macro.h
+++ /dev/null
@@ -1,247 +0,0 @@
-#ifndef GUARD_GBA_MACRO_H
-#define GUARD_GBA_MACRO_H
-
-#define CPU_FILL(value, dest, size, bit) \
-{ \
- vu##bit tmp = (vu##bit)(value); \
- CpuSet((void *)&tmp, \
- dest, \
- CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size)/(bit/8) & 0x1FFFFF)); \
-}
-
-#define CpuFill16(value, dest, size) CPU_FILL(value, dest, size, 16)
-#define CpuFill32(value, dest, size) CPU_FILL(value, dest, size, 32)
-
-#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size)/(bit/8) & 0x1FFFFF))
-
-#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16)
-#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32)
-
-#define CpuFastFill(value, dest, size) \
-{ \
- vu32 tmp = (vu32)(value); \
- CpuFastSet((void *)&tmp, \
- dest, \
- CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \
-}
-
-#define CpuFastFill16(value, dest, size) CpuFastFill(((value) << 16) | (value), (dest), (size))
-
-#define CpuFastFill8(value, dest, size) CpuFastFill(((value) << 24) | ((value) << 16) | ((value) << 8) | (value), (dest), (size))
-
-#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF))
-
-#define DmaSet(dmaNum, src, dest, control) \
-{ \
- vu32 *dmaRegs = (vu32 *)REG_ADDR_DMA##dmaNum; \
- dmaRegs[0] = (vu32)(src); \
- dmaRegs[1] = (vu32)(dest); \
- dmaRegs[2] = (vu32)(control); \
- dmaRegs[2]; \
-}
-
-#define DMA_FILL(dmaNum, value, dest, size, bit) \
-{ \
- vu##bit tmp = (vu##bit)(value); \
- DmaSet(dmaNum, \
- &tmp, \
- dest, \
- (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_FIXED | DMA_DEST_INC) << 16 \
- | ((size)/(bit/8))); \
-}
-
-#define DmaFill16(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 16)
-#define DmaFill32(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 32)
-
-// Note that the DMA clear macros cause the DMA control value to be calculated
-// at runtime rather than compile time. The size is divided by the DMA transfer
-// unit size (2 or 4 bytes) and then combined with the DMA control flags using a
-// bitwise OR operation.
-
-#define DMA_CLEAR(dmaNum, dest, size, bit) \
-{ \
- vu##bit *_dest = (vu##bit *)(dest); \
- u32 _size = size; \
- DmaFill##bit(dmaNum, 0, _dest, _size); \
-}
-
-#define DmaClear16(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 16)
-#define DmaClear32(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 32)
-
-#define DMA_COPY(dmaNum, src, dest, size, bit) \
- DmaSet(dmaNum, \
- src, \
- dest, \
- (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 \
- | ((size)/(bit/8)))
-
-#define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16)
-#define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32)
-
-#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \
-{ \
- const void *_src = src; \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- while (1) \
- { \
- DmaCopy##bit(dmaNum, _src, _dest, (block)); \
- _src += (block); \
- _dest += (block); \
- _size -= (block); \
- if (_size <= (block)) \
- { \
- DmaCopy##bit(dmaNum, _src, _dest, _size); \
- break; \
- } \
- } \
-}
-
-#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16)
-
-#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32)
-
-#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \
-{ \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- while (1) \
- { \
- DmaFill##bit(dmaNum, value, _dest, (block)); \
- _dest += (block); \
- _size -= (block); \
- if (_size <= (block)) \
- { \
- DmaFill##bit(dmaNum, value, _dest, _size); \
- break; \
- } \
- } \
-}
-
-#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16)
-
-#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32)
-
-#define DmaClearLarge(dmaNum, dest, size, block, bit) \
-{ \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- while (1) \
- { \
- DmaFill##bit(dmaNum, 0, _dest, (block)); \
- _dest += (block); \
- _size -= (block); \
- if (_size <= (block)) \
- { \
- DmaFill##bit(dmaNum, 0, _dest, _size); \
- break; \
- } \
- } \
-}
-
-#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16)
-
-#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32)
-
-#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \
-{ \
- const void *_src = src; \
- void *_dest = (void *)(dest); \
- u32 _size = size; \
- DmaCopy##bit(dmaNum, _src, _dest, _size); \
-}
-
-#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16)
-#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32)
-
-#define DmaFillDefvars(dmaNum, value, dest, size, bit) \
-{ \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- DmaFill##bit(dmaNum, value, _dest, _size); \
-}
-
-#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16)
-#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32)
-
-#define DmaClearDefvars(dmaNum, dest, size, bit) \
-{ \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- DmaClear##bit(dmaNum, _dest, _size); \
-}
-
-#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16)
-#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32)
-
-#define DmaStop(dmaNum) \
-{ \
- vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \
- dmaRegs[5] &= ~(DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT); \
- dmaRegs[5] &= ~DMA_ENABLE; \
- dmaRegs[5]; \
-}
-
-#define IntrEnable(flags) \
-{ \
- u16 imeTemp; \
- \
- imeTemp = REG_IME; \
- REG_IME = 0; \
- REG_IE |= flags; \
- REG_IME = imeTemp; \
-} \
-// from pokeemerald
-// Maximum amount of data we will transfer in one operation
-#define MAX_DMA_BLOCK_SIZE 0x1000
-
-#define MAX_DMA_REQUESTS 128
-
-#define DMA_REQUEST_COPY32 1
-#define DMA_REQUEST_FILL32 2
-#define DMA_REQUEST_COPY16 3
-#define DMA_REQUEST_FILL16 4
-
-#define Dma3CopyLarge_(src, dest, size, bit) \
-{ \
- const void *_src = src; \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- while (1) \
- { \
- if (_size <= MAX_DMA_BLOCK_SIZE) \
- { \
- DmaCopy##bit(3, _src, _dest, _size); \
- break; \
- } \
- DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \
- _src += MAX_DMA_BLOCK_SIZE; \
- _dest += MAX_DMA_BLOCK_SIZE; \
- _size -= MAX_DMA_BLOCK_SIZE; \
- } \
-}
-
-#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16)
-#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32)
-
-#define Dma3FillLarge_(value, dest, size, bit) \
-{ \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- while (1) \
- { \
- if (_size <= MAX_DMA_BLOCK_SIZE) \
- { \
- DmaFill##bit(3, value, _dest, _size); \
- break; \
- } \
- DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \
- _dest += MAX_DMA_BLOCK_SIZE; \
- _size -= MAX_DMA_BLOCK_SIZE; \
- } \
-}
-
-#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
-#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
-
-#endif // GUARD_GBA_MACRO_H
diff --git a/berry_fix/payload/include/gba/multiboot.h b/berry_fix/payload/include/gba/multiboot.h
deleted file mode 100644
index 14b6594b2..000000000
--- a/berry_fix/payload/include/gba/multiboot.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef GUARD_GBA_MULTIBOOT_H
-#define GUARD_GBA_MULTIBOOT_H
-
-#define MULTIBOOT_NCHILD 3 // Maximum number of slaves
-#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size
-#define MULTIBOOT_SEND_SIZE_MIN 0x100 // Minimum transmission size
-#define MULTIBOOT_SEND_SIZE_MAX 0x40000 // Maximum transmission size
-
-struct MultiBootParam
-{
- u32 system_work[5]; // 00
- u8 handshake_data; // 14
- u8 padding; // 15
- u16 handshake_timeout; // 16
- u8 probe_count; // 18
- u8 client_data[MULTIBOOT_NCHILD]; // 19
- u8 palette_data; // 1c
- u8 response_bit; // 1d
- u8 client_bit; // 1e
- u8 reserved1; // 1f
- const u8 *boot_srcp; // 20
- const u8 *boot_endp; // 24
- const u8 *masterp;
- u8 *reserved2[MULTIBOOT_NCHILD];
- u32 system_work2[4];
- u8 sendflag;
- u8 probe_target_bit;
- u8 check_wait;
- u8 server_type;
-};
-
-#define MULTIBOOT_ERROR_04 0x04
-#define MULTIBOOT_ERROR_08 0x08
-#define MULTIBOOT_ERROR_0c 0x0c
-#define MULTIBOOT_ERROR_40 0x40
-#define MULTIBOOT_ERROR_44 0x44
-#define MULTIBOOT_ERROR_48 0x48
-#define MULTIBOOT_ERROR_4c 0x4c
-#define MULTIBOOT_ERROR_80 0x80
-#define MULTIBOOT_ERROR_84 0x84
-#define MULTIBOOT_ERROR_88 0x88
-#define MULTIBOOT_ERROR_8c 0x8c
-#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50
-#define MULTIBOOT_ERROR_NO_DLREADY 0x60
-#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70
-#define MULTIBOOT_ERROR_HANDSHAKE_FAILURE 0x71
-
-#define MULTIBOOT_CONNECTION_CHECK_WAIT 15
-
-#define MULTIBOOT_SERVER_TYPE_NORMAL 0
-#define MULTIBOOT_SERVER_TYPE_QUICK 1
-
-#define MULTIBOOT_HANDSHAKE_TIMEOUT 400
-
-#endif // GUARD_GBA_MULTIBOOT_H
diff --git a/berry_fix/payload/include/gba/syscall.h b/berry_fix/payload/include/gba/syscall.h
deleted file mode 100644
index eb1bd4e20..000000000
--- a/berry_fix/payload/include/gba/syscall.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef GUARD_GBA_SYSCALL_H
-#define GUARD_GBA_SYSCALL_H
-
-#include "gba/types.h"
-
-#define RESET_EWRAM 0x01
-#define RESET_IWRAM 0x02
-#define RESET_PALETTE 0x04
-#define RESET_VRAM 0x08
-#define RESET_OAM 0x10
-#define RESET_SIO_REGS 0x20
-#define RESET_SOUND_REGS 0x40
-#define RESET_REGS 0x80
-#define RESET_ALL 0xFF
-
-void SoftReset(u32 resetFlags);
-
-void RegisterRamReset(u32 resetFlags);
-
-void VBlankIntrWait(void);
-
-u16 Sqrt(u32 num);
-
-u16 ArcTan2(s16 x, s16 y);
-
-#define CPU_SET_SRC_FIXED 0x01000000
-#define CPU_SET_16BIT 0x00000000
-#define CPU_SET_32BIT 0x04000000
-
-void CpuSet(const void *src, void *dest, u32 control);
-
-#define CPU_FAST_SET_SRC_FIXED 0x01000000
-
-void CpuFastSet(const void *src, void *dest, u32 control);
-
-void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count);
-
-void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
-
-void LZ77UnCompWram(const void *src, void *dest);
-
-void LZ77UnCompVram(const void *src, void *dest);
-
-void RLUnCompWram(const void *src, void *dest);
-
-void RLUnCompVram(const void *src, void *dest);
-
-int MultiBoot(struct MultiBootParam *mp);
-
-void SoundBiasReset(void);
-
-void SoundBiasSet(void);
-
-u32 Div(u32 divisor, u32 dividend);
-u32 Mod(u32 divisor, u32 dividend);
-
-#endif // GUARD_GBA_SYSCALL_H
diff --git a/berry_fix/payload/include/gba/types.h b/berry_fix/payload/include/gba/types.h
deleted file mode 100644
index e919abc22..000000000
--- a/berry_fix/payload/include/gba/types.h
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef GUARD_GBA_TYPES_H
-#define GUARD_GBA_TYPES_H
-
-#include <stdint.h>
-
-typedef uint8_t u8;
-typedef uint16_t u16;
-typedef uint32_t u32;
-typedef uint64_t u64;
-typedef int8_t s8;
-typedef int16_t s16;
-typedef int32_t s32;
-typedef int64_t s64;
-
-typedef volatile u8 vu8;
-typedef volatile u16 vu16;
-typedef volatile u32 vu32;
-typedef volatile u64 vu64;
-typedef volatile s8 vs8;
-typedef volatile s16 vs16;
-typedef volatile s32 vs32;
-typedef volatile s64 vs64;
-
-typedef float f32;
-typedef double f64;
-
-typedef u8 bool8;
-typedef u16 bool16;
-typedef u32 bool32;
-
-struct BgCnt
-{
- u16 priority:2;
- u16 charBaseBlock:2;
- u16 dummy:2;
- u16 mosaic:1;
- u16 palettes:1;
- u16 screenBaseBlock:5;
- u16 areaOverflowMode:1;
- u16 screenSize:2;
-};
-typedef volatile struct BgCnt vBgCnt;
-
-struct PlttData
-{
- u16 r:5; // red
- u16 g:5; // green
- u16 b:5; // blue
- u16 unused_15:1;
-};
-
-struct OamData
-{
- /*0x00*/ u32 y:8;
- /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4
- u32 objMode:2; // 0x4, 0x8 -> 0xC
- u32 mosaic:1; // 0x10
- u32 bpp:1; // 0x20
- u32 shape:2; // 0x40, 0x80 -> 0xC0
-
- /*0x02*/ u32 x:9;
- u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode
- u32 size:2;
-
- /*0x04*/ u16 tileNum:10; // 0x3FF
- u16 priority:2; // 0x400, 0x800 -> 0xC00
- u16 paletteNum:4;
- /*0x06*/ u16 affineParam;
-};
-
-#define ST_OAM_OBJ_NORMAL 0
-#define ST_OAM_OBJ_BLEND 1
-#define ST_OAM_OBJ_WINDOW 2
-
-#define ST_OAM_AFFINE_OFF 0
-#define ST_OAM_AFFINE_NORMAL 1
-#define ST_OAM_AFFINE_ERASE 2
-#define ST_OAM_AFFINE_DOUBLE 3
-
-#define ST_OAM_AFFINE_ON_MASK 1
-#define ST_OAM_AFFINE_DOUBLE_MASK 2
-
-#define ST_OAM_4BPP 0
-#define ST_OAM_8BPP 1
-
-#define ST_OAM_SQUARE 0
-#define ST_OAM_H_RECTANGLE 1
-#define ST_OAM_V_RECTANGLE 2
-
-struct BgAffineSrcData
-{
- s32 texX;
- s32 texY;
- s16 scrX;
- s16 scrY;
- s16 sx;
- s16 sy;
- u16 alpha;
-};
-
-struct BgAffineDstData
-{
- s16 pa;
- s16 pb;
- s16 pc;
- s16 pd;
- s32 dx;
- s32 dy;
-};
-
-struct ObjAffineSrcData
-{
- s16 xScale;
- s16 yScale;
- u16 rotation;
-};
-
-// Multi-player SIO Control Structure
-struct SioMultiCnt
-{
- u16 baudRate:2; // baud rate
- u16 si:1; // SI terminal
- u16 sd:1; // SD terminal
- u16 id:2; // ID
- u16 error:1; // error flag
- u16 enable:1; // SIO enable
- u16 unused_11_8:4;
- u16 mode:2; // communication mode (should equal 2)
- u16 intrEnable:1; // IRQ enable
- u16 unused_15:1;
- u16 data; // data
-};
-
-#define ST_SIO_MULTI_MODE 2 // Multi-player communication mode
-
-// baud rate
-#define ST_SIO_9600_BPS 0 // 9600 bps
-#define ST_SIO_38400_BPS 1 // 38400 bps
-#define ST_SIO_57600_BPS 2 // 57600 bps
-#define ST_SIO_115200_BPS 3 // 115200 bps
-
-typedef void (*MainCallback)(void);
-typedef void (*IntrCallback)(void);
-typedef void (*IntrFunc)(void);
-
-#endif // GUARD_GBA_TYPES_H
diff --git a/berry_fix/payload/include/global.berry.h b/berry_fix/payload/include/global.berry.h
deleted file mode 100644
index 8f185c8f9..000000000
--- a/berry_fix/payload/include/global.berry.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef GUARD_GLOBAL_BERRY_H
-#define GUARD_GLOBAL_BERRY_H
-
-struct Berry
-{
- /*0x00*/ u8 name[7];
- /*0x07*/ u8 firmness;
- /*0x08*/ u16 size;
- /*0x0A*/ u8 maxYield;
- /*0x0B*/ u8 minYield;
- /*0x0C*/ const u8 *description1;
- /*0x10*/ const u8 *description2;
- /*0x14*/ u8 stageDuration;
- /*0x15*/ u8 spicy;
- /*0x16*/ u8 dry;
- /*0x17*/ u8 sweet;
- /*0x18*/ u8 bitter;
- /*0x19*/ u8 sour;
- /*0x1A*/ u8 smoothness;
-};
-
-struct EnigmaBerry
-{
- /*0x000*/ struct Berry berry;
- /*0x01B*/ u8 pic[(6 * 6) * TILE_SIZE_4BPP];
- /*0x49C*/ u16 palette[16];
- /*0x4BC*/ u8 description1[45];
- /*0x4E9*/ u8 description2[45];
- /*0x516*/ u8 itemEffect[18];
- /*0x528*/ u8 holdEffect;
- /*0x529*/ u8 holdEffectParam;
- /*0x52C*/ u32 checksum;
-};
-
-struct BattleEnigmaBerry
-{
- /*0x00*/ u8 name[7];
- /*0x07*/ u8 holdEffect;
- /*0x08*/ u8 itemEffect[18];
- /*0x1A*/ u8 holdEffectParam;
-};
-
-struct BerryTree
-{
- /*0x00*/ u8 berry;
- /*0x01*/ u8 stage:7;
- /*
- A berry sparkle is a state that a berry tree
- can be in after growing within the player's
- viewport.
- */
- /*0x01*/ bool8 growthSparkle:1;
- /*0x02*/ u16 minutesUntilNextStage;
- /*0x04*/ u8 berryYield;
- /*0x05*/ u8 regrowthCount:4;
- /*0x05*/ u8 watered1:1;
- /*0x05*/ u8 watered2:1;
- /*0x05*/ u8 watered3:1;
- /*0x05*/ u8 watered4:1;
-};
-
-#endif // GUARD_GLOBAL_BERRY_H
diff --git a/berry_fix/payload/include/global.fieldmap.h b/berry_fix/payload/include/global.fieldmap.h
deleted file mode 100644
index e7150b429..000000000
--- a/berry_fix/payload/include/global.fieldmap.h
+++ /dev/null
@@ -1,310 +0,0 @@
-#ifndef GUARD_GLOBAL_FIELDMAP_H
-#define GUARD_GLOBAL_FIELDMAP_H
-
-enum
-{
- CONNECTION_SOUTH = 1,
- CONNECTION_NORTH,
- CONNECTION_WEST,
- CONNECTION_EAST,
- CONNECTION_DIVE,
- CONNECTION_EMERGE
-};
-
-typedef void (*TilesetCB)(void);
-
-struct Tileset
-{
- /*0x00*/ bool8 isCompressed;
- /*0x01*/ bool8 isSecondary;
- /*0x04*/ void *tiles;
- /*0x08*/ void *palettes;
- /*0x0c*/ void *metatiles;
- /*0x10*/ void *metatileAttributes;
- /*0x14*/ TilesetCB callback;
-};
-
-struct MapLayout
-{
- /*0x00*/ s32 width;
- /*0x04*/ s32 height;
- /*0x08*/ u16 *border;
- /*0x0c*/ u16 *map;
- /*0x10*/ struct Tileset *primaryTileset;
- /*0x14*/ struct Tileset *secondaryTileset;
-};
-
-struct BackupMapLayout
-{
- s32 width;
- s32 height;
- u16 *map;
-};
-
-struct EventObjectTemplate
-{
- /*0x00*/ u8 localId;
- /*0x01*/ u8 graphicsId;
- /*0x02*/ u8 unk2;
- /*0x04*/ s16 x;
- /*0x06*/ s16 y;
- /*0x08*/ u8 elevation;
- /*0x09*/ u8 movementType;
- /*0x0A*/ u8 movementRangeX:4;
- u8 movementRangeY:4;
- /*0x0C*/ u16 trainerType;
- /*0x0E*/ u16 trainerRange_berryTreeId;
- /*0x10*/ u8 *script;
- /*0x14*/ u16 flagId;
-};
-
-struct WarpEvent
-{
- s16 x, y;
- u8 elevation;
- u8 warpId;
- u8 mapNum;
- u8 mapGroup;
-};
-
-struct CoordEvent
-{
- s16 x, y;
- u8 elevation;
- u16 trigger;
- u16 index;
- u8 filler_A[0x2];
- u8 *script;
-};
-
-struct BgEvent
-{
- u16 x, y;
- u8 elevation;
- u8 kind; // The "kind" field determines how to access bgUnion union below.
- union {
- u8 *script;
- struct {
- u16 item;
- u16 hiddenItemId;
- } hiddenItem;
- u32 secretBaseId;
- } bgUnion;
-};
-
-struct MapEvents
-{
- u8 eventObjectCount;
- u8 warpCount;
- u8 coordEventCount;
- u8 bgEventCount;
-
- struct EventObjectTemplate *eventObjects;
- struct WarpEvent *warps;
- struct CoordEvent *coordEvents;
- struct BgEvent *bgEvents;
-};
-
-struct MapConnection
-{
- /*0x00*/ u8 direction;
- /*0x01*/ u32 offset;
- /*0x05*/ u8 mapGroup;
- /*0x06*/ u8 mapNum;
-};
-
-struct MapConnections
-{
- s32 count;
- struct MapConnection *connections;
-};
-
-struct MapHeader
-{
- /* 0x00 */ struct MapLayout *mapLayout;
- /* 0x04 */ struct MapEvents *events;
- /* 0x08 */ u8 *mapScripts;
- /* 0x0C */ struct MapConnections *connections;
- /* 0x10 */ u16 music;
- /* 0x12 */ u16 mapLayoutId;
- /* 0x14 */ u8 regionMapSectionId;
- /* 0x15 */ u8 cave;
- /* 0x16 */ u8 weather;
- /* 0x17 */ u8 mapType;
- /* 0x18 */ u8 filler_18;
- /* 0x19 */ u8 escapeRope;
- /* 0x1A */ u8 flags;
- /* 0x1B */ u8 battleType;
-};
-
-struct EventObject
-{
- /*0x00*/ u32 active:1;
- u32 singleMovementActive:1;
- u32 triggerGroundEffectsOnMove:1;
- u32 triggerGroundEffectsOnStop:1;
- u32 disableCoveringGroundEffects:1; // disables ground effects that cover parts of the object's sprite
- u32 landingJump:1;
- u32 heldMovementActive:1;
- u32 heldMovementFinished:1;
- /*0x01*/ u32 frozen:1;
- u32 facingDirectionLocked:1;
- u32 disableAnim:1; // used to disable forced movement sliding animations (like on ice)
- u32 enableAnim:1;
- u32 inanimate:1;
- u32 invisible:1;
- u32 offScreen:1;
- u32 trackedByCamera:1; // only set for the player object
- /*0x02*/ u32 isPlayer:1;
- u32 hasReflection:1;
- u32 inShortGrass:1;
- u32 inShallowFlowingWater:1;
- u32 inSandPile:1;
- u32 inHotSprings:1;
- u32 hasShadow:1;
- u32 spriteAnimPausedBackup:1;
- /*0x03*/ u32 spriteAffineAnimPausedBackup:1;
- u32 disableJumpLandingGroundEffect:1;
- u32 fixedPriority:1;
- /*0x04*/ u8 spriteId;
- /*0x05*/ u8 graphicsId;
- /*0x06*/ u8 movementType;
- /*0x07*/ u8 trainerType;
- /*0x08*/ u8 localId;
- /*0x09*/ u8 mapNum;
- /*0x0A*/ u8 mapGroup;
- /*0x0B*/ u8 currentElevation:4;
- u8 previousElevation:4;
- /*0x0C*/ struct Coords16 initialCoords;
- /*0x10*/ struct Coords16 currentCoords;
- /*0x14*/ struct Coords16 previousCoords;
- /*0x18*/ u8 facingDirection:4;
- /*0x18*/ u8 movementDirection:4;
- /*0x19*/ union __attribute__((packed)) {
- u8 as_byte;
- struct __attribute__((packed)) {
- u16 x:4;
- u16 y:4;
- } as_nybbles;
- } range;
- /*0x1A*/ u8 fieldEffectSpriteId;
- /*0x1B*/ u8 warpArrowSpriteId;
- /*0x1C*/ u8 movementActionId;
- /*0x1D*/ u8 trainerRange_berryTreeId;
- /*0x1E*/ u8 currentMetatileBehavior;
- /*0x1F*/ u8 previousMetatileBehavior;
- /*0x20*/ u8 previousMovementDirection;
- /*0x21*/ u8 directionSequenceIndex;
- /*0x22*/ u8 playerCopyableMovement; // used as an index to gCopyPlayerMovementFuncs for the "copy player" movement types
- /*size = 0x24*/
-};
-
-struct EventObjectGraphicsInfo
-{
- /*0x00*/ u16 tileTag;
- /*0x02*/ u16 paletteTag;
- /*0x04*/ u16 bridgeReflectionPaletteTag;
- /*0x06*/ u16 size;
- /*0x08*/ s16 width;
- /*0x0A*/ s16 height;
- /*0x0C*/ u8 paletteSlot:4;
- u8 shadowSize:2;
- u8 inanimate:1;
- u8 disableReflectionPaletteLoad:1;
- /*0x0D*/ u8 tracks;
- /*0x10*/ const struct OamData *oam;
- /*0x14*/ const struct SubspriteTable *subspriteTables;
- /*0x18*/ const union AnimCmd *const *anims;
- /*0x1C*/ const struct SpriteFrameImage *images;
- /*0x20*/ const union AffineAnimCmd *const *affineAnims;
-};
-
-#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
-#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
-#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
-#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
-#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
-#define PLAYER_AVATAR_FLAG_CONTROLLABLE (1 << 5)
-#define PLAYER_AVATAR_FLAG_FORCED_MOVE (1 << 6)
-#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
-
-enum
-{
- ACRO_BIKE_NORMAL,
- ACRO_BIKE_TURNING,
- ACRO_BIKE_WHEELIE_STANDING,
- ACRO_BIKE_BUNNY_HOP,
- ACRO_BIKE_WHEELIE_MOVING,
- ACRO_BIKE_STATE5,
- ACRO_BIKE_STATE6,
-};
-
-enum
-{
- DIR_NONE,
- DIR_SOUTH,
- DIR_NORTH,
- DIR_WEST,
- DIR_EAST,
- DIR_SOUTHWEST,
- DIR_SOUTHEAST,
- DIR_NORTHWEST,
- DIR_NORTHEAST,
-};
-
-enum
-{
- COLLISION_LEDGE_JUMP = 6
-};
-
-// player running states
-enum
-{
- NOT_MOVING,
- TURN_DIRECTION, // not the same as turning! turns your avatar without moving. also known as a turn frame in some circles
- MOVING,
-};
-
-// player tile transition states
-enum
-{
- T_NOT_MOVING,
- T_TILE_TRANSITION,
- T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary.
-};
-
-struct PlayerAvatar /* 0x202E858 */
-{
- /*0x00*/ u8 flags;
- /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags
- /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.
- /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.
- /*0x04*/ u8 spriteId;
- /*0x05*/ u8 eventObjectId;
- /*0x06*/ bool8 preventStep;
- /*0x07*/ u8 gender;
- /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie
- /*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here.
- /*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike.
- /*0x0B*/ u8 bikeSpeed;
- // acro bike only
- /*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs.
- /*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only
- // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
- /*0x14*/ u8 dirTimerHistory[8];
- /*0x1C*/ u8 abStartSelectTimerHistory[8];
-};
-
-struct Camera
-{
- bool8 active:1;
- s32 x;
- s32 y;
-};
-
-extern struct EventObject gMapObjects[];
-extern u8 gSelectedEventObject;
-extern struct MapHeader gMapHeader;
-extern struct PlayerAvatar gPlayerAvatar;
-
-#endif // GUARD_GLOBAL_FIELDMAP_H
diff --git a/berry_fix/payload/include/global.h b/berry_fix/payload/include/global.h
deleted file mode 100644
index 4bea138d6..000000000
--- a/berry_fix/payload/include/global.h
+++ /dev/null
@@ -1,876 +0,0 @@
-#ifndef GUARD_GLOBAL_H
-#define GUARD_GLOBAL_H
-
-#include "gba/gba.h"
-
-// global.h from pokemon ruby
-
-// IDE support
-#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__INTELLISENSE__)
-// We define these when using certain IDEs to fool preproc
-#define _(x) (x)
-#define __(x) (x)
-#define INCBIN(...) {0}
-#define INCBIN_U8 INCBIN
-#define INCBIN_U16 INCBIN
-#define INCBIN_U32 INCBIN
-#define INCBIN_S8 INCBIN
-#define INCBIN_S16 INCBIN
-#define INCBIN_S32 INCBIN
-#endif // IDE support
-
-// Prevent cross-jump optimization.
-#define BLOCK_CROSS_JUMP asm("");
-
-// to help in decompiling
-#define asm_comment(x) asm volatile("@ -- " x " -- ")
-
-#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n")
-
-#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
-
-
-#define POKEMON_SLOTS_NUMBER 412
-#define POKEMON_NAME_LENGTH 10
-#define OT_NAME_LENGTH 7
-
-#define min(a, b) ((a) < (b) ? (a) : (b))
-#define max(a, b) ((a) >= (b) ? (a) : (b))
-
-// why does GF hate 2d arrays
-#define MULTI_DIM_ARR(x, dim, y) ((x) * dim + (y))
-
-// dim access enums
-enum
-{
- B_8 = 1,
- B_16 = 2,
- B_32 = 4
-};
-
-// There are many quirks in the source code which have overarching behavioral differences from
-// a number of other files. For example, diploma.c seems to declare rodata before each use while
-// other files declare out of order and must be at the beginning. There are also a number of
-// macros which differ from one file to the next due to the method of obtaining the result, such
-// as these below. Because of this, there is a theory (Two Team Theory) that states that these
-// programming projects had more than 1 "programming team" which utilized different macros for
-// each of the files that were worked on.
-#define T1_READ_8(ptr) ((ptr)[0])
-#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
-#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24))
-#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr)
-
-// T2_READ_8 is a duplicate to remain consistent with each group.
-#define T2_READ_8(ptr) ((ptr)[0])
-#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
-#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
-#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
-
-// Credits to Made (dolphin emoji)
-#define S16TOPOSFLOAT(val) \
-({ \
- s16 v = (val); \
- float f = (float)v; \
- if(v < 0) f += 65536.0f; \
- f; \
-})
-
-enum
-{
- VERSION_SAPPHIRE = 1,
- VERSION_RUBY = 2,
- VERSION_EMERALD = 3,
-};
-
-enum LanguageId
-{
- LANGUAGE_JAPANESE = 1,
- LANGUAGE_ENGLISH = 2,
- LANGUAGE_GERMAN = 5,
-};
-
-// capacities of various saveblock objects
-#define DAYCARE_MON_COUNT 2
-#define POKEBLOCKS_COUNT 40
-#define PARTY_SIZE 6
-#define EVENT_OBJECTS_COUNT 16
-#define BERRY_TREES_COUNT 128
-#define FLAGS_COUNT 288
-#define VARS_COUNT 256
-#define MAIL_COUNT 16
-#define SECRET_BASES_COUNT 20
-#define TV_SHOWS_COUNT 25
-#define POKE_NEWS_COUNT 16
-#define PC_ITEMS_COUNT 50
-#define BAG_ITEMS_COUNT 20
-#define BAG_KEYITEMS_COUNT 20
-#define BAG_POKEBALLS_COUNT 16
-#define BAG_TMHM_COUNT 64
-#define BAG_BERRIES_COUNT 46
-
-enum
-{
- MALE,
- FEMALE
-};
-
-enum
-{
- OPTIONS_BUTTON_MODE_NORMAL,
- OPTIONS_BUTTON_MODE_LR,
- OPTIONS_BUTTON_MODE_L_EQUALS_A
-};
-
-enum
-{
- OPTIONS_TEXT_SPEED_SLOW,
- OPTIONS_TEXT_SPEED_MID,
- OPTIONS_TEXT_SPEED_FAST
-};
-
-enum
-{
- OPTIONS_SOUND_MONO,
- OPTIONS_SOUND_STEREO
-};
-
-enum
-{
- OPTIONS_BATTLE_STYLE_SHIFT,
- OPTIONS_BATTLE_STYLE_SET
-};
-
-enum
-{
- BAG_ITEMS = 1,
- BAG_POKEBALLS,
- BAG_TMsHMs,
- BAG_BERRIES,
- BAG_KEYITEMS
-};
-
-struct Coords16
-{
- s16 x;
- s16 y;
-};
-
-struct UCoords16
-{
- u16 x;
- u16 y;
-};
-
-struct SecretBaseRecord
-{
- /*0x1A08*/ u8 secretBaseId;
- /*0x1A09*/ u8 sbr_field_1_0:4;
- /*0x1A09*/ u8 gender:1;
- /*0x1A09*/ u8 sbr_field_1_5:1;
- /*0x1A09*/ u8 sbr_field_1_6:2;
- /*0x1A0A*/ u8 playerName[OT_NAME_LENGTH];
- /*0x1A11*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
- /*0x1A16*/ u16 sbr_field_e;
- /*0x1A18*/ u8 sbr_field_10;
- /*0x1A19*/ u8 sbr_field_11;
- /*0x1A1A*/ u8 decorations[16];
- /*0x1A2A*/ u8 decorationPos[16];
- /*0x1A3C*/ u32 partyPersonality[6];
- /*0x1A54*/ u16 partyMoves[6 * 4];
- /*0x1A84*/ u16 partySpecies[6];
- /*0x1A90*/ u16 partyHeldItems[6];
- /*0x1A9C*/ u8 partyLevels[6];
- /*0x1AA2*/ u8 partyEVs[6];
-};
-
-#include "constants/game_stat.h"
-#include "global.fieldmap.h"
-#include "global.berry.h"
-#include "pokemon.h"
-
-struct WarpData
-{
- s8 mapGroup;
- s8 mapNum;
- s8 warpId;
- s16 x, y;
-};
-
-struct ItemSlot
-{
- u16 itemId;
- u16 quantity;
-};
-
-struct Pokeblock
-{
- u8 color;
- u8 spicy;
- u8 dry;
- u8 sweet;
- u8 bitter;
- u8 sour;
- u8 feel;
-};
-
-struct Roamer
-{
- /*0x00*/ u32 ivs;
- /*0x04*/ u32 personality;
- /*0x08*/ u16 species;
- /*0x0A*/ u16 hp;
- /*0x0C*/ u8 level;
- /*0x0D*/ u8 status;
- /*0x0E*/ u8 cool;
- /*0x0F*/ u8 beauty;
- /*0x10*/ u8 cute;
- /*0x11*/ u8 smart;
- /*0x12*/ u8 tough;
- /*0x13*/ bool8 active;
- /*0x14*/ u8 filler[0x8];
-};
-
-struct RamScriptData
-{
- u8 magic;
- u8 mapGroup;
- u8 mapNum;
- u8 objectId;
- u8 script[995];
-};
-
-struct RamScript
-{
- u32 checksum;
- struct RamScriptData data;
-};
-
-struct EasyChatPair
-{
- u16 unk0_0:7;
- u16 unk0_7:7;
- u16 unk1_6:1;
- u16 unk2;
- u16 words[2];
-}; /*size = 0x8*/
-
-struct TVShowCommon
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u8 pad02[20];
- /*0x16*/ u16 var16[3];
- /*0x1C*/ u8 srcTrainerId3Lo;
- /*0x1D*/ u8 srcTrainerId3Hi;
- /*0x1E*/ u8 srcTrainerId2Lo;
- /*0x1F*/ u8 srcTrainerId2Hi;
- /*0x20*/ u8 srcTrainerIdLo;
- /*0x21*/ u8 srcTrainerIdHi;
- /*0x22*/ u8 trainerIdLo;
- /*0x23*/ u8 trainerIdHi;
-};
-
-struct TVShowFanClubLetter
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u16 species;
- /*0x04*/ u16 pad04[6];
- /*0x10*/ u8 playerName[8];
- /*0x18*/ u8 language;
-};
-
-struct TVShowRecentHappenings
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u16 var02;
- /*0x04*/ u16 var04[6];
- /*0x10*/ u8 playerName[8];
- /*0x18*/ u8 language;
- /*0x19*/ u8 pad19[10];
-};
-
-struct TVShowFanclubOpinions
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u16 var02;
- /*0x04*/ u8 var04A:4;
- /*0x04*/ u8 var04B:4;
- /*0x05*/ u8 playerName[8];
- /*0x0D*/ u8 language;
- /*0x0E*/ u8 var0E;
- /*0x0F*/ u8 var0F;
- /*0x10*/ u8 var10[8];
- /*0x18*/ u16 var18[2];
- /*0x1C*/ u16 var1C[4];
-};
-
-struct TVShowUnknownType04
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u8 pad02[4];
- /*0x06*/ u16 var06;
-};
-
-struct TVShowNameRaterShow
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u16 species;
- /*0x04*/ u8 pokemonName[11];
- /*0x0F*/ u8 trainerName[11];
- /*0x1A*/ u8 random;
- /*0x1B*/ u8 random2;
- /*0x1C*/ u16 var1C;
- /*0x1E*/ u8 language;
- /*0x1F*/ u8 pokemonNameLanguage;
-};
-
-struct TVShowBravoTrainerPokemonProfiles
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u16 species;
- /*0x04*/ u16 var04[2];
- /*0x08*/ u8 pokemonNickname[11];
- /*0x13*/ u8 contestCategory:3;
- /*0x13*/ u8 contestRank:2;
- /*0x13*/ u8 contestResult:2;
- /*0x13*/ u8 var13_7:1;
- /*0x14*/ u16 var14;
- /*0x16*/ u8 playerName[8];
- /*0x1E*/ u8 language;
- /*0x1F*/ u8 var1f;
-};
-
-struct TVShowBravoTrainerBattleTowerSpotlight
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u8 trainerName[8];
- /*0x0A*/ u16 species;
- /*0x0C*/ u8 enemyTrainerName[8];
- /*0x14*/ u16 defeatedSpecies;
- /*0x16*/ u16 var16;
- /*0x18*/ u16 var18[1];
- /*0x1A*/ u8 btLevel;
- /*0x1B*/ u8 var1b;
- /*0x1C*/ u8 var1c;
- /*0x1D*/ u8 language;
-};
-
-struct TVShowPokemonToday
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u8 language;
- /*0x03*/ u8 language2;
- /*0x04*/ u8 nickname[11];
- /*0x0F*/ u8 ball;
- /*0x10*/ u16 species;
- /*0x12*/ u8 var12;
- /*0x13*/ u8 playerName[8];
-};
-
-struct TVShowSmartShopper
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u8 priceReduced;
- /*0x03*/ u8 language;
- /*0x04*/ u8 pad04[2];
- /*0x06*/ u16 itemIds[3];
- /*0x0C*/ u16 itemAmounts[3];
- /*0x12*/ u8 shopLocation;
- /*0x13*/ u8 playerName[8];
-};
-
-struct TVShowPokemonTodayFailed
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u8 language;
- /*0x03*/ u8 pad03[9];
- /*0x0c*/ u16 species;
- /*0x0e*/ u16 species2;
- /*0x10*/ u8 var10;
- /*0x11*/ u8 var11;
- /*0x12*/ u8 var12;
- /*0x13*/ u8 playerName[8];
-};
-
-struct TVShowPokemonAngler
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u8 var02;
- /*0x03*/ u8 var03;
- /*0x04*/ u16 var04;
- /*0x06*/ u8 language;
- u8 pad07[12];
- /*0x13*/ u8 playerName[8];
-};
-
-struct TVShowWorldOfMasters
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u16 var02;
- /*0x04*/ u16 var04;
- /*0x06*/ u16 var06;
- /*0x08*/ u16 var08;
- /*0x0a*/ u8 var0a;
- /*0x0b*/ u8 language;
- u8 pad0c[7];
- /*0x13*/ u8 playerName[8];
-};
-
-struct TVShowMassOutbreak
-{
- /*0x00*/ u8 kind;
- /*0x01*/ bool8 active;
- /*0x02*/ u8 var02;
- /*0x03*/ u8 var03;
- /*0x04*/ u16 moves[4];
- /*0x0C*/ u16 species;
- /*0x0E*/ u16 var0E;
- /*0x10*/ u8 locationMapNum;
- /*0x11*/ u8 locationMapGroup;
- /*0x12*/ u8 var12;
- /*0x13*/ u8 probability;
- /*0x14*/ u8 level;
- /*0x15*/ u8 var15;
- /*0x16*/ u16 daysLeft;
- /*0x18*/ u8 language;
- u8 pad19[11];
-};
-
-typedef union TVShow
-{
- struct TVShowCommon common;
- struct TVShowFanClubLetter fanclubLetter;
- struct TVShowRecentHappenings recentHappenings;
- struct TVShowFanclubOpinions fanclubOpinions;
- struct TVShowUnknownType04 unkShow04;
- struct TVShowNameRaterShow nameRaterShow;
- struct TVShowBravoTrainerPokemonProfiles bravoTrainer;
- struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower;
- struct TVShowPokemonToday pokemonToday;
- struct TVShowSmartShopper smartshopperShow;
- struct TVShowPokemonTodayFailed pokemonTodayFailed;
- struct TVShowPokemonAngler pokemonAngler;
- struct TVShowWorldOfMasters worldOfMasters;
- struct TVShowMassOutbreak massOutbreak;
-} TVShow;
-
-struct MailStruct
-{
- /*0x00*/ u16 words[9];
- /*0x12*/ u8 playerName[8];
- /*0x1A*/ u8 trainerId[4];
- /*0x1E*/ u16 species;
- /*0x20*/ u16 itemId;
-};
-
-
-// Mauville Pokemon Center men
-
-struct MauvilleManCommon
-{
- u8 id;
-};
-
-struct MauvilleManBard
-{
- /*0x00*/ u8 id;
- /*0x02*/ u16 songLyrics[6];
- /*0x0E*/ u16 temporaryLyrics[6];
- /*0x1A*/ u8 playerName[8];
- /*0x22*/ u8 filler_2DB6[0x3];
- /*0x25*/ u8 playerTrainerId[4];
- /*0x29*/ bool8 hasChangedSong;
-}; /*size = 0x2C*/
-
-struct MauvilleManHipster
-{
- u8 id;
- bool8 alreadySpoken;
-};
-
-struct MauvilleManTrader
-{
- u8 id;
- u8 unk1[4];
- u8 unk5[4][11];
- bool8 alreadyTraded;
-};
-
-struct MauvilleManStoryteller
-{
- u8 id;
- bool8 alreadyRecorded;
- u8 filler2[2];
- u8 gameStatIDs[4];
- u8 trainerNames[4][7];
- u8 statValues[4][4];
-};
-
-struct MauvilleManGiddy
-{
- /*0x00*/ u8 id;
- /*0x01*/ u8 taleCounter;
- /*0x02*/ u8 questionNum;
- /*0x04*/ u16 randomWords[10];
- /*0x18*/ u8 questionList[12];
-}; /*size = 0x2C*/
-
-
-union MauvilleMan
-{
- struct MauvilleManCommon common;
- struct MauvilleManBard bard;
- struct MauvilleManHipster hipster;
- struct MauvilleManTrader trader;
- struct MauvilleManStoryteller storyteller;
- struct MauvilleManGiddy giddy;
- u8 filler[0x40]; // needed to pad out the struct
-};
-
-struct PokeNews
-{
- u8 kind;
- u8 state;
- u16 days;
-};
-
-struct GabbyAndTyData
-{
- /*2b10*/ u16 mon1;
- /*2b12*/ u16 mon2;
- /*2b14*/ u16 lastMove;
- /*2b16*/ u16 quote;
- /*2b18*/ u8 mapnum;
- /*2b19*/ u8 battleNum;
- /*2b1a*/ u8 valA_0:1;
- /*2b1a*/ u8 valA_1:1;
- /*2b1a*/ u8 valA_2:1;
- /*2b1a*/ u8 valA_3:1;
- /*2b1a*/ u8 valA_4:1;
- /*2b1a*/ u8 valA_5:3;
- /*2b1b*/ u8 valB_0:1;
- /*2b1b*/ u8 valB_1:1;
- /*2b1b*/ u8 valB_2:1;
- /*2b1b*/ u8 valB_3:1;
- /*2b1b*/ u8 valB_4:1;
- /*2b1b*/ u8 valB_5:3;
-};
-
-struct DayCareMail
-{
- /*0x00*/ struct MailStruct message;
- /*0x24*/ u8 names[19];
-};
-
-struct DayCareStepCountersEtc {
- u32 steps[DAYCARE_MON_COUNT];
- u16 pendingEggPersonality;
- u8 eggCycleStepsRemaining;
-};
-
-struct RecordMixingDayCareMail
-{
- struct DayCareMail mail[DAYCARE_MON_COUNT];
- u32 numDaycareMons;
- u16 itemsHeld[DAYCARE_MON_COUNT]; // marks whether or not each daycare mon is currently holding an item.
-};
-
-struct DayCareMisc
-{
- struct DayCareMail mail[DAYCARE_MON_COUNT];
- struct DayCareStepCountersEtc countersEtc;
-};
-
-struct DayCare {
- struct BoxPokemon mons[DAYCARE_MON_COUNT];
- struct DayCareMisc misc;
-};
-
-struct LinkBattleRecord
-{
- u8 name[8];
- u16 trainerId;
- u16 wins;
- u16 losses;
- u16 draws;
-};
-
-struct RecordMixingGiftData
-{
- u8 unk0;
- u8 quantity;
- u16 itemId;
- u8 filler4[8];
-};
-
-struct RecordMixingGift
-{
- int checksum;
- struct RecordMixingGiftData data;
-};
-
-struct ContestWinner
-{
- /*0x00*/ u32 personality; // personality
- /*0x04*/ u32 otId; // otId
- /*0x08*/ u16 species; // species
- /*0x0A*/ u8 contestCategory;
- /*0x0B*/ u8 nickname[11];
- /*0x16*/ u8 trainerName[8];
-};
-
-// there should be enough flags for all 412 slots
-// each slot takes up 8 flags
-// if the value is not divisible by 8, we need to account for the reminder as well
-#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0))
-
-struct SaveBlock1 /* 0x02025734 */
-{
- /*0x00*/ struct Coords16 pos;
- /*0x04*/ struct WarpData location;
- /*0x0C*/ struct WarpData warp1;
- /*0x14*/ struct WarpData warp2;
- /*0x1C*/ struct WarpData lastHealLocation;
- /*0x24*/ struct WarpData warp4;
- /*0x2C*/ u16 savedMusic;
- /*0x2E*/ u8 weather;
- /*0x2F*/ u8 weatherCycleStage;
- /*0x30*/ u8 flashLevel; // flash level on current map, 0 being normal and 4 being the darkest
- /*0x32*/ u16 mapLayoutId;
- /*0x34*/ u16 mapView[0x100];
- /*0x234*/ u8 playerPartyCount;
- /*0x238*/ struct Pokemon playerParty[6];
- /*0x490*/ u32 money;
- /*0x494*/ u16 coins;
- /*0x496*/ u16 registeredItem; // registered for use with SELECT button
- /*0x498*/ struct ItemSlot pcItems[PC_ITEMS_COUNT];
- /*0x560*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT];
- /*0x5B0*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
- /*0x600*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT];
- /*0x640*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
- /*0x740*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT];
- /*0x7F8*/ struct Pokeblock pokeblocks[POKEBLOCKS_COUNT];
- /*0x938*/ u8 dexSeen2[DEX_FLAGS_NO];
- /*0x96C*/ u16 berryBlenderRecords[3];
- /*0x972*/ u8 filler_972[0x6];
- /*0x978*/ u16 trainerRematchStepCounter;
- /*0x97A*/ u8 trainerRematches[100];
- /*0x9E0*/ struct EventObject eventObjects[EVENT_OBJECTS_COUNT];
- /*0xC20*/ struct EventObjectTemplate eventObjectTemplates[64];
- /*0x1220*/ u8 flags[FLAGS_COUNT];
- /*0x1340*/ u16 vars[VARS_COUNT];
- /*0x1540*/ u32 gameStats[NUM_GAME_STATS];
- /*0x1608*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
- /*0x1A08*/ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT];
- /*0x2688*/ u8 playerRoomDecor[12];
- /*0x2694*/ u8 playerRoomDecorPos[12];
- /*0x26A0*/ u8 decorDesk[10];
- /*0x26AA*/ u8 decorChair[10];
- /*0x26B4*/ u8 decorPlant[10];
- /*0x26BE*/ u8 decorOrnament[30];
- /*0x26DC*/ u8 decorMat[30];
- /*0x26FA*/ u8 decorPoster[10];
- /*0x2704*/ u8 decorDoll[40];
- /*0x272C*/ u8 decorCushion[10];
- /*0x2736*/ u8 padding_2736[2];
- /*0x2738*/ TVShow tvShows[TV_SHOWS_COUNT];
- /*0x2ABC*/ struct PokeNews pokeNews[POKE_NEWS_COUNT];
- /*0x2AFC*/ u16 outbreakPokemonSpecies;
- /*0x2AFE*/ u8 outbreakLocationMapNum;
- /*0x2AFF*/ u8 outbreakLocationMapGroup;
- /*0x2B00*/ u8 outbreakPokemonLevel;
- /*0x2B01*/ u8 outbreakUnk1;
- /*0x2B02*/ u16 outbreakUnk2;
- /*0x2B04*/ u16 outbreakPokemonMoves[4];
- /*0x2B0C*/ u8 outbreakUnk4;
- /*0x2B0D*/ u8 outbreakPokemonProbability;
- /*0x2B0E*/ u16 outbreakUnk5;
- /*0x2B10*/ struct GabbyAndTyData gabbyAndTyData;
- /*0x2B1C*/ struct {
- /*0x2B1C*/ u16 unk2B1C[6];
- /*0x2B28*/ u16 unk2B28[6];
- /*0x2B34*/ u16 unk2B34[6];
- /*0x2B40*/ u16 unk2B40[6];
- } easyChats;
- /*0x2B4C*/ struct MailStruct mail[MAIL_COUNT];
- /*0x2D8C*/ u8 unk2D8C[4]; // What is this? Apparently it's supposed to be 64 bytes in size.
- /*0x2D90*/ u8 filler_2D90[0x4];
- /*0x2D94*/ union MauvilleMan mauvilleMan;
- /*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
- /*0x2DFC*/ struct ContestWinner contestWinners[8];
- /*0x2EFC*/ struct ContestWinner museumPortraits[5];
- /*0x2F9C*/ struct DayCare daycare;
- /*0x30B8*/ struct LinkBattleRecord linkBattleRecords[5];
- struct {
- /*0x3108*/ u8 unknown1[8];
- /*0x3110*/ u8 giftRibbons[11];
- /*0x311B*/ u8 unknown2[8];
- /*0x3123*/ u32 currentPokeCoupons;
- /*0x3127*/ u32 totalEarnedPokeCoupons;
- /*0x312B*/ u8 unknown3[6];
- /*0x3131*/ u8 receivedWishmakerJirachi;
- /*0x3132*/ u8 unknown4[18];
- } __attribute__((packed)) externalReservedData;
- /*0x3144*/ struct Roamer roamer;
- /*0x3160*/ struct EnigmaBerry enigmaBerry;
- /*0x3690*/ struct RamScript ramScript;
- /*0x3A7C*/ struct RecordMixingGift recordMixingGift;
- /*0x3A8C*/ u8 dexSeen3[DEX_FLAGS_NO];
-};
-
-extern struct SaveBlock1 gSaveBlock1;
-
-struct Time
-{
- /*0x00*/ s16 days;
- /*0x02*/ s8 hours;
- /*0x03*/ s8 minutes;
- /*0x04*/ s8 seconds;
-};
-
-struct Pokedex
-{
- /*0x00*/ u8 order;
- /*0x01*/ u8 unknown1;
- /*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode
- /*0x03*/ u8 unknown2;
- /*0x04*/ u32 unownPersonality; // set when you first see Unown
- /*0x08*/ u32 spindaPersonality; // set when you first see Spinda
- /*0x0C*/ u32 unknown3;
- /*0x10*/ u8 owned[DEX_FLAGS_NO];
- /*0x44*/ u8 seen[DEX_FLAGS_NO];
-};
-
-struct BattleTowerTrainer
-{
- /*0x00*/ u8 trainerClass;
- /*0x01*/ u8 name[8];
- /*0x09*/ u8 teamFlags;
- u8 filler0A[2];
- /*0x0C*/ u16 greeting[6];
-};
-
-struct BattleTowerRecord // record mixing
-{
- /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
- /*0x01*/ u8 trainerClass;
- /*0x02*/ u16 winStreak;
- /*0x04*/ u8 name[8];
- /*0x0C*/ u8 trainerId[4];
- /*0x10*/ u16 greeting[6];
- /*0x1C*/ struct BattleTowerPokemon party[3];
- /*0xA0*/ u32 checksum;
-};
-
-struct BattleTowerEReaderTrainer
-{
- /*0x00*/ u8 unk0;
- /*0x01*/ u8 trainerClass;
- /*0x02*/ u16 winStreak;
- /*0x04*/ u8 name[8];
- /*0x0C*/ u8 trainerId[4];
- /*0x10*/ u16 greeting[6];
- /*0x1C*/ u16 farewellPlayerLost[6];
- /*0x28*/ u16 farewellPlayerWon[6];
- /*0x34*/ struct BattleTowerPokemon party[3];
- /*0xB8*/ u32 checksum;
-};
-
-struct BattleTowerData
-{
- /*0x0000, 0x00A8*/ struct BattleTowerRecord playerRecord;
- /*0x00A4, 0x014C*/ struct BattleTowerRecord records[5]; // from record mixing
- /*0x03D8, 0x0480*/ u16 firstMonSpecies; // species of the first pokemon in the player's battle tower party
- /*0x03DA, 0x0482*/ u16 defeatedBySpecies; // species of the pokemon that defated the player
- /*0x03DC, 0x0484*/ u8 defeatedByTrainerName[8];
- /*0x03E4, 0x048C*/ u8 firstMonNickname[POKEMON_NAME_LENGTH]; // nickname of the first pokemon in the player's battle tower party
- /*0x03F0, 0x0498*/ struct BattleTowerEReaderTrainer ereaderTrainer;
- /*0x04AC, 0x0554*/ u8 battleTowerLevelType:1; // 0 = level 50; 1 = level 100
- /*0x04AC, 0x0554*/ u8 unk_554:1;
- /*0x04AD, 0x0555*/ u8 battleOutcome;
- /*0x04AE, 0x0556*/ u8 var_4AE[2];
- /*0x04B0, 0x0558*/ u16 curChallengeBattleNum[2]; // 1-based index of battle in the current challenge. (challenges consist of 7 battles)
- /*0x04B4, 0x055C*/ u16 curStreakChallengesNum[2]; // 1-based index of the current challenge in the current streak.
- /*0x04B8, 0x0560*/ u16 recordWinStreaks[2];
- /*0x04BC, 0x0564*/ u8 battleTowerTrainerId; // index for gBattleTowerTrainers table
- /*0x04BD, 0x0565*/ u8 selectedPartyMons[0x3]; // indices of the 3 selected player party mons.
- /*0x04C0, 0x0568*/ u16 prizeItem;
- /*0x04C2, 0x056A*/ u8 battledTrainerIds[6];
- /*0x04C8, 0x0570*/ u16 totalBattleTowerWins;
- /*0x04CA, 0x0572*/ u16 bestBattleTowerWinStreak;
- /*0x04CC, 0x0574*/ u16 currentWinStreaks[2];
- /*0x04D0, 0x0578*/ u8 lastStreakLevelType; // 0 = level 50, 1 = level 100. level type of the last streak. Used by tv to report the level mode.
- /*0x04D1, 0x0579*/ u8 filler_4D1[0x317];
-};
-
-struct SaveBlock2 /* 0x02024EA4 */
-{
- /*0x00*/ u8 playerName[8];
- /*0x08*/ u8 playerGender; // MALE, FEMALE
- /*0x09*/ u8 specialSaveWarp;
- /*0x0A*/ u8 playerTrainerId[4];
- /*0x0E*/ u16 playTimeHours;
- /*0x10*/ u8 playTimeMinutes;
- /*0x11*/ u8 playTimeSeconds;
- /*0x12*/ u8 playTimeVBlanks;
- /*0x13*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]
- /*0x14*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
- u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes
- u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
- u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
- u16 optionsBattleSceneOff:1; // whether battle animations are disabled
- u16 regionMapZoom:1; // whether the map is zoomed in
- /*0x18*/ struct Pokedex pokedex;
- /*0x90*/ u8 filler_90[0x8];
- /*0x98*/ struct Time localTimeOffset;
- /*0xA0*/ struct Time lastBerryTreeUpdate;
- /*0xA8*/ struct BattleTowerData battleTower;
-};
-
-struct MapPosition
-{
- s16 x;
- s16 y;
- s8 height;
-};
-
-struct UnkStruct_8054FF8
-{
- u8 a;
- u8 b;
- u8 c;
- u8 d;
- struct MapPosition sub;
- u16 field_C;
-};
-
-// wasnt defined so I had to define it
-struct HallOfFame
-{
- u8 filler[0x1F00];
-};
-
-extern struct SaveBlock2 gSaveBlock2;
-
-#define RomHeaderGameTitle ((const char *)0x080000A0)
-#define RomHeaderGameCode ((const char *)0x080000AC)
-#define RomHeaderMakerCode ((const char *)0x080000B0)
-#define RomHeaderMagic ((const u8 *) 0x080000B2)
-#define RomHeaderSoftwareVersion ((const u8 *) 0x080000BC)
-
-#define LocalTimeOffset ((struct Time *)0x02028098)
-#define LastBerryTreeUpdate ((struct Time *)0x020280A0)
-
-#endif //GUARD_GLOBAL_H
diff --git a/berry_fix/payload/include/main.h b/berry_fix/payload/include/main.h
deleted file mode 100644
index cb58d5982..000000000
--- a/berry_fix/payload/include/main.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef GUARD_MAIN_H
-#define GUARD_MAIN_H
-
-#include "gba/gba.h"
-
-enum RomHeaderValidationResult
-{
- SAPPHIRE_UPDATABLE = 2,
- RUBY_UPDATABLE,
- SAPPHIRE_NONEED,
- RUBY_NONEED,
- INVALID
-};
-
-enum MainCallbackState
-{
- MAINCB_INIT = 0,
- MAINCB_CHECK_RTC,
- MAINCB_CHECK_FLASH,
- MAINCB_READ_SAVE,
- MAINCB_CHECK_TIME,
- MAINCB_FIX_DATE,
- MAINCB_NO_NEED_TO_FIX,
- MAINCB_YEAR_MAKES_NO_SENSE,
- MAINCB_FINISHED,
- MAINCB_CHECK_PACIFIDLOG_TM,
- MAINCB_FIX_PACIFIDLOG_TM,
- MAINCB_ERROR
-};
-
-extern IntrFunc gIntrTable[];
-extern u16 gHeldKeys;
-extern u16 gNewKeys;
-extern u8 gIntrVector[];
-extern u32 gUpdateSuccessful;
-extern u32 gUnknown_3001194;
-extern u32 gUnknown_30011A0[];
-extern u32 gMainCallbackState;
-extern u32 gGameVersion;
-
-extern u8 gSharedMem[0x8000];
-
-extern const IntrFunc gIntrFuncPointers[];
-
-#endif //GUARD_MAIN_H
diff --git a/berry_fix/payload/include/pokemon.h b/berry_fix/payload/include/pokemon.h
deleted file mode 100644
index d3a14ffff..000000000
--- a/berry_fix/payload/include/pokemon.h
+++ /dev/null
@@ -1,154 +0,0 @@
-#ifndef GUARD_POKEMON_H
-#define GUARD_POKEMON_H
-
-struct PokemonSubstruct0
-{
- u16 species;
- u16 heldItem;
- u32 experience;
- u8 ppBonuses;
- u8 friendship;
-};
-
-struct PokemonSubstruct1
-{
- u16 moves[4];
- u8 pp[4];
-};
-
-struct PokemonSubstruct2
-{
- u8 hpEV;
- u8 attackEV;
- u8 defenseEV;
- u8 speedEV;
- u8 spAttackEV;
- u8 spDefenseEV;
- u8 cool;
- u8 beauty;
- u8 cute;
- u8 smart;
- u8 tough;
- u8 sheen;
-};
-
-struct PokemonSubstruct3
-{
- /*0x00*/ u8 pokerus;
- /*0x01*/ u8 metLocation;
-
- /*0x02*/ u16 metLevel:7;
- /*0x02*/ u16 metGame:4;
- /*0x03*/ u16 pokeball:4;
- /*0x03*/ u16 otGender:1;
-
- /*0x04*/ u32 hpIV:5;
- /*0x04*/ u32 attackIV:5;
- /*0x05*/ u32 defenseIV:5;
- /*0x05*/ u32 speedIV:5;
- /*0x05*/ u32 spAttackIV:5;
- /*0x06*/ u32 spDefenseIV:5;
- /*0x07*/ u32 isEgg:1;
- /*0x07*/ u32 altAbility:1;
-
- /*0x08*/ u32 coolRibbon:3;
- /*0x08*/ u32 beautyRibbon:3;
- /*0x08*/ u32 cuteRibbon:3;
- /*0x09*/ u32 smartRibbon:3;
- /*0x09*/ u32 toughRibbon:3;
- /*0x09*/ u32 championRibbon:1;
- /*0x0A*/ u32 winningRibbon:1;
- /*0x0A*/ u32 victoryRibbon:1;
- /*0x0A*/ u32 artistRibbon:1;
- /*0x0A*/ u32 effortRibbon:1;
- /*0x0A*/ u32 giftRibbon1:1;
- /*0x0A*/ u32 giftRibbon2:1;
- /*0x0A*/ u32 giftRibbon3:1;
- /*0x0A*/ u32 giftRibbon4:1;
- /*0x0B*/ u32 giftRibbon5:1;
- /*0x0B*/ u32 giftRibbon6:1;
- /*0x0B*/ u32 giftRibbon7:1;
- /*0x0B*/ u32 fatefulEncounter:5; // unused in Ruby/Sapphire, but the high bit must be set for Mew/Deoxys to obey in FR/LG/Emerald
-};
-
-union PokemonSubstruct
-{
- struct PokemonSubstruct0 type0;
- struct PokemonSubstruct1 type1;
- struct PokemonSubstruct2 type2;
- struct PokemonSubstruct3 type3;
- u16 raw[6];
-};
-
-struct BoxPokemon
-{
- /*0x00*/ u32 personality;
- /*0x04*/ u32 otId;
- /*0x08*/ u8 nickname[POKEMON_NAME_LENGTH];
- /*0x12*/ u8 language;
- /*0x13*/ u8 isBadEgg:1;
- u8 hasSpecies:1;
- u8 isEgg:1;
- /*0x14*/ u8 otName[OT_NAME_LENGTH];
- /*0x1B*/ u8 markings;
- /*0x1C*/ u16 checksum;
- /*0x1E*/ u16 unknown;
-
- union
- {
- u32 raw[12];
- union PokemonSubstruct substructs[4];
- } secure;
-}; /*size = 0x50*/
-
-struct Pokemon
-{
- /*0x00*/ struct BoxPokemon box;
- /*0x50*/ u32 status;
- /*0x54*/ u8 level;
- /*0x55*/ u8 mail;
- /*0x56*/ u16 hp;
- /*0x58*/ u16 maxHP;
- /*0x5A*/ u16 attack;
- /*0x5C*/ u16 defense;
- /*0x5E*/ u16 speed;
- /*0x60*/ u16 spAttack;
- /*0x62*/ u16 spDefense;
-};
-
-struct BattleTowerPokemon
-{
- /*0x00*/u16 species;
- /*0x02*/u16 heldItem;
- /*0x04*/u16 moves[4];
- /*0x0C*/u8 level;
- /*0x0D*/u8 ppBonuses;
- /*0x0E*/u8 hpEV;
- /*0x0F*/u8 attackEV;
- /*0x10*/u8 defenseEV;
- /*0x11*/u8 speedEV;
- /*0x12*/u8 spAttackEV;
- /*0x13*/u8 spDefenseEV;
- /*0x14*/u32 otId;
- /*0x18*/u32 hpIV:5;
- /*0x18*/u32 attackIV:5;
- /*0x19*/u32 defenseIV:5;
- /*0x19*/u32 speedIV:5;
- /*0x1A*/u32 spAttackIV:5;
- /*0x1A*/u32 spDefenseIV:5;
- /*0x1B*/u32 gap:1;
- /*0x1B*/u32 altAbility:1;
- /*0x1C*/u32 personality;
- /*0x20*/u8 nickname[POKEMON_NAME_LENGTH + 1];
- /*0x2B*/u8 friendship;
-};
-
-struct PokemonStorage
-{
- /*0x0000*/ u8 currentBox;
- /*0x0004*/ struct BoxPokemon boxes[14][30];
- /*0x8344*/ u8 boxNames[14][9];
- /*0x83c2*/ u8 wallpaper[14];
-};
-
-#endif // GUARD_POKEMON_H
diff --git a/berry_fix/payload/include/rtc.h b/berry_fix/payload/include/rtc.h
deleted file mode 100644
index 35654d866..000000000
--- a/berry_fix/payload/include/rtc.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef GUARD_RTC_H
-#define GUARD_RTC_H
-
-#include "gba/gba.h"
-#include "siirtc.h"
-#include "global.h"
-
-extern struct Time gTimeSinceBerryUpdate;
-extern struct Time gRtcUTCTime;
-
-bool32 rtc_maincb_is_rtc_working(void);
-bool32 rtc_maincb_is_time_since_last_berry_update_positive(u8 *);
-void rtc_maincb_fix_date(void);
-
-#endif //GUARD_RTC_H
diff --git a/berry_fix/payload/include/siirtc.h b/berry_fix/payload/include/siirtc.h
deleted file mode 100644
index de4fd634d..000000000
--- a/berry_fix/payload/include/siirtc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef GUARD_RTC_H
-#define GUARD_RTC_H
-
-#include "gba/gba.h"
-
-#define SIIRTCINFO_INTFE 0x01 // frequency interrupt enable
-#define SIIRTCINFO_INTME 0x02 // per-minute interrupt enable
-#define SIIRTCINFO_INTAE 0x04 // alarm interrupt enable
-#define SIIRTCINFO_24HOUR 0x40 // 0: 12-hour mode, 1: 24-hour mode
-#define SIIRTCINFO_POWER 0x80 // power on or power failure occurred
-
-enum
-{
- MONTH_JAN = 1,
- MONTH_FEB,
- MONTH_MAR,
- MONTH_APR,
- MONTH_MAY,
- MONTH_JUN,
- MONTH_JUL,
- MONTH_AUG,
- MONTH_SEP,
- MONTH_OCT,
- MONTH_NOV,
- MONTH_DEC
-};
-
-struct SiiRtcInfo
-{
- u8 year;
- u8 month;
- u8 day;
- u8 dayOfWeek;
- u8 hour;
- u8 minute;
- u8 second;
- u8 status;
- u8 alarmHour;
- u8 alarmMinute;
-};
-
-void SiiRtcUnprotect(void);
-void SiiRtcProtect(void);
-u8 SiiRtcProbe(void);
-bool8 SiiRtcReset(void);
-bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc);
-bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc);
-bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc);
-bool8 SiiRtcSetDateTime(struct SiiRtcInfo *rtc);
-bool8 SiiRtcGetTime(struct SiiRtcInfo *rtc);
-bool8 SiiRtcSetTime(struct SiiRtcInfo *rtc);
-bool8 SiiRtcSetAlarm(struct SiiRtcInfo *rtc);
-
-#endif // GUARD_RTC_H
diff --git a/berry_fix/payload/ld_script.sed b/berry_fix/payload/ld_script.sed
deleted file mode 100644
index b91542b6f..000000000
--- a/berry_fix/payload/ld_script.sed
+++ /dev/null
@@ -1,14 +0,0 @@
-/<EWRAM>/ {
- r sym_ewram.ld
- d
-}
-
-/<BSS>/ {
- r sym_bss.ld
- d
-}
-
-/<COMMON>/ {
- r sym_common.ld
- d
-}
diff --git a/berry_fix/payload/ld_script.txt b/berry_fix/payload/ld_script.txt
deleted file mode 100644
index d0a0af9ed..000000000
--- a/berry_fix/payload/ld_script.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-ENTRY(Init)
-
-SECTIONS {
- . = 0x2010000;
-
- .text :
- ALIGN(4)
- {
- asm/crt0.o(.text);
- src/main.o(.text);
- src/rtc.o(.text);
- src/flash.o(.text);
- } =0
-
- lib_text :
- ALIGN(4)
- {
- src/agb_flash.o(.text);
- src/agb_flash_1m.o(.text);
- src/agb_flash_mx.o(.text);
- asm/libagbsyscall.o(.text);
- src/siirtc.o(.text);
- *libgcc.a:_call_via_rX.o(.text);
- *libgcc.a:_modsi3.o(.text);
- *libgcc.a:_umodsi3.o(.text);
- *libgcc.a:_dvmd_tls.o(.text);
- } =0
-
- .rodata :
- ALIGN(4)
- {
- src/main.o(.rodata);
- src/rtc.o(.rodata);
- src/flash.o(.rodata);
- } =0
-
- lib_rodata :
- ALIGN(4)
- {
- src/agb_flash.o(.rodata);
- src/agb_flash_1m.o(.rodata);
- src/agb_flash_mx.o(.rodata);
- src/agb_flash_le.o(.rodata);
- src/siirtc.o(.rodata);
- }
-
- . = 0x2020000;
-
- ewram (NOLOAD) :
- ALIGN(4)
- {
-<EWRAM>
- }
-
- . = 0x3001000;
-
- iwram (NOLOAD) :
- ALIGN(4)
- {
-<BSS>
- . = 0x40;
-<COMMON>
- end = .;
- }
-
- . = 0x8000000;
-
- RS_Rom (NOLOAD) :
- ALIGN(4)
- {
- _start = .;
- . += 4;
- RomHeaderNintendoLogo = .;
- . += 156;
- RS_RomHeader = .;
- RomHeaderGameTitle = .;
- . += 12;
- RomHeaderGameCode = .;
- . += 4;
- RomHeaderMakerCode = .;
- . += 2;
- RomHeaderMagic = .;
- . += 1;
- RomHeaderMainUnitCode = .;
- . += 1;
- RomHeaderDeviceType = .;
- . += 1;
- RomHeaderReserved1 = .;
- . += 7;
- RomHeaderSoftwareVersion = .;
- . += 1;
- RomHeaderChecksum = .;
- . += 1;
- RomHeaderReserved2 = .;
- . += 6;
- GPIOPortData = .;
- . += 2;
- GPIOPortDirection = .;
- . += 2;
- GPIOPortReadEnable = .;
- } =0
-
- /DISCARD/ :
- {
- *(*);
- }
-}
diff --git a/berry_fix/payload/rom.sha1 b/berry_fix/payload/rom.sha1
deleted file mode 100644
index 92eee7e87..000000000
--- a/berry_fix/payload/rom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-866991e2b5a8de02d12f53abe0ee9af03a2b6e01 payload.gba
diff --git a/berry_fix/payload/src/agb_flash.c b/berry_fix/payload/src/agb_flash.c
deleted file mode 100644
index 2c2c96e6e..000000000
--- a/berry_fix/payload/src/agb_flash.c
+++ /dev/null
@@ -1,296 +0,0 @@
-#include "gba/gba.h"
-#include "gba/flash_internal.h"
-
-static u8 sTimerNum;
-static u16 sTimerCount;
-static vu16 *sTimerReg;
-static u16 sSavedIme;
-
-u8 gFlashTimeoutFlag;
-u8 (*PollFlashStatus)(u8 *);
-const struct FlashType *gFlash;
-u16 gFlashNumRemainingBytes;
-const u16 *gFlashMaxTime;
-
-u16 (*ProgramFlashByte)(u16, u32, u8);
-u16 (*ProgramFlashSector)(u16, void *);
-u16 (*EraseFlashChip)(void);
-u16 (*EraseFlashSector)(u16);
-u16 (*WaitForFlashWrite)(u8, u8 *, u8);
-
-void SetReadFlash1(u16 *dest);
-
-void SwitchFlashBank(u8 bankNum)
-{
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- FLASH_WRITE(0x5555, 0xB0);
- FLASH_WRITE(0x0000, bankNum);
-}
-
-#define DELAY() \
-do { \
- vu16 i; \
- for (i = 20000; i != 0; i--) \
- ; \
-} while (0)
-
-u16 ReadFlashId(void)
-{
- u16 flashId;
- u16 readFlash1Buffer[0x20];
- u8 (*readFlash1)(u8 *);
-
- SetReadFlash1(readFlash1Buffer);
- readFlash1 = (u8 (*)(u8 *))((s32)readFlash1Buffer + 1);
-
- // Enter ID mode.
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- FLASH_WRITE(0x5555, 0x90);
- DELAY();
-
- flashId = readFlash1(FLASH_BASE + 1) << 8;
- flashId |= readFlash1(FLASH_BASE);
-
- // Leave ID mode.
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- FLASH_WRITE(0x5555, 0xF0);
- FLASH_WRITE(0x5555, 0xF0);
- DELAY();
-
- return flashId;
-}
-
-void FlashTimerIntr(void)
-{
- if (sTimerCount != 0 && --sTimerCount == 0)
- gFlashTimeoutFlag = 1;
-}
-
-u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void))
-{
- if (timerNum >= 4)
- return 1;
-
- sTimerNum = timerNum;
- sTimerReg = &REG_TMCNT(sTimerNum);
- *intrFunc = FlashTimerIntr;
- return 0;
-}
-
-void StartFlashTimer(u8 phase)
-{
- const u16 *maxTime = &gFlashMaxTime[phase * 3];
- sSavedIme = REG_IME;
- REG_IME = 0;
- sTimerReg[1] = 0;
- REG_IE |= (INTR_FLAG_TIMER0 << sTimerNum);
- gFlashTimeoutFlag = 0;
- sTimerCount = *maxTime++;
- *sTimerReg++ = *maxTime++;
- *sTimerReg-- = *maxTime++;
- REG_IF = (INTR_FLAG_TIMER0 << sTimerNum);
- REG_IME = 1;
-}
-
-void StopFlashTimer(void)
-{
- REG_IME = 0;
- *sTimerReg++ = 0;
- *sTimerReg-- = 0;
- REG_IE &= ~(INTR_FLAG_TIMER0 << sTimerNum);
- REG_IME = sSavedIme;
-}
-
-u8 ReadFlash1(u8 *addr)
-{
- return *addr;
-}
-
-void SetReadFlash1(u16 *dest)
-{
- u16 *src;
- u16 i;
-
- PollFlashStatus = (u8 (*)(u8 *))((s32)dest + 1);
-
- src = (u16 *)ReadFlash1;
- src = (u16 *)((s32)src ^ 1);
-
- i = ((s32)SetReadFlash1 - (s32)ReadFlash1) >> 1;
-
- while (i != 0)
- {
- *dest++ = *src++;
- i--;
- }
-}
-
-void ReadFlash_Core(u8 *src, u8 *dest, u32 size)
-{
- while (size-- != 0)
- {
- *dest++ = *src++;
- }
-}
-
-void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size)
-{
- u8 *src;
- u16 i;
- u16 readFlash_Core_Buffer[0x40];
- u16 *funcSrc;
- u16 *funcDest;
- void (*readFlash_Core)(u8 *, u8 *, u32);
-
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8;
-
- if (gFlash->romSize == FLASH_ROM_SIZE_1M)
- {
- SwitchFlashBank(sectorNum / SECTORS_PER_BANK);
- sectorNum %= SECTORS_PER_BANK;
- }
-
- funcSrc = (u16 *)ReadFlash_Core;
- funcSrc = (u16 *)((s32)funcSrc ^ 1);
- funcDest = readFlash_Core_Buffer;
-
- i = ((s32)ReadFlash - (s32)ReadFlash_Core) >> 1;
-
- while (i != 0)
- {
- *funcDest++ = *funcSrc++;
- i--;
- }
-
- readFlash_Core = (void (*)(u8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1);
-
- src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset;
-
- readFlash_Core(src, dest, size);
-}
-
-u32 VerifyFlashSector_Core(u8 *src, u8 *tgt, u32 size)
-{
- while (size-- != 0)
- {
- if (*tgt++ != *src++)
- return (u32)(tgt - 1);
- }
-
- return 0;
-}
-
-u32 VerifyFlashSector(u16 sectorNum, u8 *src)
-{
- u16 i;
- u16 verifyFlashSector_Core_Buffer[0x80];
- u16 *funcSrc;
- u16 *funcDest;
- u8 *tgt;
- u16 size;
- u32 (*verifyFlashSector_Core)(u8 *, u8 *, u32);
-
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8;
-
- if (gFlash->romSize == FLASH_ROM_SIZE_1M)
- {
- SwitchFlashBank(sectorNum / SECTORS_PER_BANK);
- sectorNum %= SECTORS_PER_BANK;
- }
-
- funcSrc = (u16 *)VerifyFlashSector_Core;
- funcSrc = (u16 *)((s32)funcSrc ^ 1);
- funcDest = verifyFlashSector_Core_Buffer;
-
- i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1;
-
- while (i != 0)
- {
- *funcDest++ = *funcSrc++;
- i--;
- }
-
- verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1);
-
- tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift);
- size = gFlash->sector.size;
-
- return verifyFlashSector_Core(src, tgt, size);
-}
-
-u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n)
-{
- u16 i;
- u16 verifyFlashSector_Core_Buffer[0x80];
- u16 *funcSrc;
- u16 *funcDest;
- u8 *tgt;
- u32 (*verifyFlashSector_Core)(u8 *, u8 *, u32);
-
- if (gFlash->romSize == FLASH_ROM_SIZE_1M)
- {
- SwitchFlashBank(sectorNum / SECTORS_PER_BANK);
- sectorNum %= SECTORS_PER_BANK;
- }
-
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8;
-
- funcSrc = (u16 *)VerifyFlashSector_Core;
- funcSrc = (u16 *)((s32)funcSrc ^ 1);
- funcDest = verifyFlashSector_Core_Buffer;
-
- i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1;
-
- while (i != 0)
- {
- *funcDest++ = *funcSrc++;
- i--;
- }
-
- verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1);
-
- tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift);
-
- return verifyFlashSector_Core(src, tgt, n);
-}
-
-u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src)
-{
- u8 i;
- u32 result;
-
- for (i = 0; i < 3; i++)
- {
- result = ProgramFlashSector(sectorNum, src);
- if (result != 0)
- continue;
-
- result = VerifyFlashSector(sectorNum, src);
- if (result == 0)
- break;
- }
-
- return result;
-}
-
-u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *src, u32 n)
-{
- u8 i;
- u32 result;
-
- for (i = 0; i < 3; i++)
- {
- result = ProgramFlashSector(sectorNum, src);
- if (result != 0)
- continue;
-
- result = VerifyFlashSectorNBytes(sectorNum, src, n);
- if (result == 0)
- break;
- }
-
- return result;
-}
diff --git a/berry_fix/payload/src/agb_flash_1m.c b/berry_fix/payload/src/agb_flash_1m.c
deleted file mode 100644
index 7f8bdeb5f..000000000
--- a/berry_fix/payload/src/agb_flash_1m.c
+++ /dev/null
@@ -1,86 +0,0 @@
-#include "gba/gba.h"
-#include "gba/flash_internal.h"
-
-static const char AgbLibFlashVersion[] = "FLASH1M_V103";
-
-const struct FlashSetupInfo * const sSetupInfos[] =
-{
- &MX29L010,
- &LE26FV10N1TS,
- &DefaultFlash
-};
-
-u32 IdentifyFlash(void)
-{
- u16 result;
- u16 flashId;
- const struct FlashSetupInfo * const *setupInfo;
-
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8;
-
- flashId = ReadFlashId();
-
- setupInfo = sSetupInfos;
- result = 1;
-
- for (;;)
- {
- if ((*setupInfo)->type.ids.separate.makerId == 0)
- break;
-
- if (flashId == (*setupInfo)->type.ids.joined)
- {
- result = 0;
- break;
- }
-
- setupInfo++;
- }
-
- ProgramFlashByte = (*setupInfo)->programFlashByte;
- ProgramFlashSector = (*setupInfo)->programFlashSector;
- EraseFlashChip = (*setupInfo)->eraseFlashChip;
- EraseFlashSector = (*setupInfo)->eraseFlashSector;
- WaitForFlashWrite = (*setupInfo)->WaitForFlashWrite;
- gFlashMaxTime = (*setupInfo)->maxTime;
- gFlash = &(*setupInfo)->type;
-
- return result;
-}
-
-u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData)
-{
- u16 result = 0;
- u8 status;
-
- StartFlashTimer(phase);
-
- while ((status = PollFlashStatus(addr)) != lastData)
- {
- if (status & 0x20)
- {
- // The write operation exceeded the flash chip's time limit.
-
- if (PollFlashStatus(addr) == lastData)
- break;
-
- FLASH_WRITE(0x5555, 0xF0);
- result = phase | 0xA000u;
- break;
- }
-
- if (gFlashTimeoutFlag)
- {
- if (PollFlashStatus(addr) == lastData)
- break;
-
- FLASH_WRITE(0x5555, 0xF0);
- result = phase | 0xC000u;
- break;
- }
- }
-
- StopFlashTimer();
-
- return result;
-}
diff --git a/berry_fix/payload/src/agb_flash_le.c b/berry_fix/payload/src/agb_flash_le.c
deleted file mode 100644
index 39d956e27..000000000
--- a/berry_fix/payload/src/agb_flash_le.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "gba/gba.h"
-#include "gba/flash_internal.h"
-
-const u16 leMaxTime[] =
-{
- 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK,
- 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK,
- 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK,
- 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK,
-};
-
-const struct FlashSetupInfo LE26FV10N1TS =
-{
- ProgramFlashByte_MX,
- ProgramFlashSector_MX,
- EraseFlashChip_MX,
- EraseFlashSector_MX,
- WaitForFlashWrite_Common,
- leMaxTime,
- {
- 131072, // ROM size
- {
- 4096, // sector size
- 12, // bit shift to multiply by sector size (4096 == 1 << 12)
- 32, // number of sectors
- 0 // appears to be unused
- },
- { 3, 1 }, // wait state setup data
- { { 0x62, 0x13 } } // ID
- }
-};
diff --git a/berry_fix/payload/src/agb_flash_mx.c b/berry_fix/payload/src/agb_flash_mx.c
deleted file mode 100644
index 68eb00cd8..000000000
--- a/berry_fix/payload/src/agb_flash_mx.c
+++ /dev/null
@@ -1,193 +0,0 @@
-#include "gba/gba.h"
-#include "gba/flash_internal.h"
-
-const u16 mxMaxTime[] =
-{
- 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK,
- 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK,
- 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK,
- 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK,
-};
-
-const struct FlashSetupInfo MX29L010 =
-{
- ProgramFlashByte_MX,
- ProgramFlashSector_MX,
- EraseFlashChip_MX,
- EraseFlashSector_MX,
- WaitForFlashWrite_Common,
- mxMaxTime,
- {
- 131072, // ROM size
- {
- 4096, // sector size
- 12, // bit shift to multiply by sector size (4096 == 1 << 12)
- 32, // number of sectors
- 0 // appears to be unused
- },
- { 3, 1 }, // wait state setup data
- { { 0xC2, 0x09 } } // ID
- }
-};
-
-const struct FlashSetupInfo DefaultFlash =
-{
- ProgramFlashByte_MX,
- ProgramFlashSector_MX,
- EraseFlashChip_MX,
- EraseFlashSector_MX,
- WaitForFlashWrite_Common,
- mxMaxTime,
- {
- 131072, // ROM size
- {
- 4096, // sector size
- 12, // bit shift to multiply by sector size (4096 == 1 << 12)
- 32, // number of sectors
- 0 // appears to be unused
- },
- { 3, 1 }, // wait state setup data
- { { 0x00, 0x00 } } // ID of 0
- }
-};
-
-u16 EraseFlashChip_MX(void)
-{
- u16 result;
- u16 readFlash1Buffer[0x20];
-
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0];
-
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- FLASH_WRITE(0x5555, 0x80);
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- FLASH_WRITE(0x5555, 0x10);
-
- SetReadFlash1(readFlash1Buffer);
-
- result = WaitForFlashWrite(3, FLASH_BASE, 0xFF);
-
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8;
-
- return result;
-}
-
-u16 EraseFlashSector_MX(u16 sectorNum)
-{
- u16 numTries;
- u16 result;
- u8 *addr;
- u16 readFlash1Buffer[0x20];
-
- if (sectorNum >= gFlash->sector.count)
- return 0x80FF;
-
- SwitchFlashBank(sectorNum / SECTORS_PER_BANK);
- sectorNum %= SECTORS_PER_BANK;
-
- numTries = 0;
-
-try_erase:
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0];
-
- addr = FLASH_BASE + (sectorNum << gFlash->sector.shift);
-
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- FLASH_WRITE(0x5555, 0x80);
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- *addr = 0x30;
-
- SetReadFlash1(readFlash1Buffer);
-
- result = WaitForFlashWrite(2, addr, 0xFF);
-
- if (!(result & 0xA000) || numTries > 3)
- goto done;
-
- numTries++;
-
- goto try_erase;
-
-done:
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8;
-
- return result;
-}
-
-u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data)
-{
- u8 *addr;
- u16 readFlash1Buffer[0x20];
-
- if (offset >= gFlash->sector.size)
- return 0x8000;
-
- SwitchFlashBank(sectorNum / SECTORS_PER_BANK);
- sectorNum %= SECTORS_PER_BANK;
-
- addr = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset;
-
- SetReadFlash1(readFlash1Buffer);
-
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0];
-
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- FLASH_WRITE(0x5555, 0xA0);
- *addr = data;
-
- return WaitForFlashWrite(1, addr, data);
-}
-
-static u16 ProgramByte(u8 *src, u8 *dest)
-{
- FLASH_WRITE(0x5555, 0xAA);
- FLASH_WRITE(0x2AAA, 0x55);
- FLASH_WRITE(0x5555, 0xA0);
- *dest = *src;
-
- return WaitForFlashWrite(1, dest, *src);
-}
-
-u16 ProgramFlashSector_MX(u16 sectorNum, void *src)
-{
- u16 result;
- u8 *dest;
- u16 readFlash1Buffer[0x20];
-
- if (sectorNum >= gFlash->sector.count)
- return 0x80FF;
-
- result = EraseFlashSector_MX(sectorNum);
-
- if (result != 0)
- return result;
-
- SwitchFlashBank(sectorNum / SECTORS_PER_BANK);
- sectorNum %= SECTORS_PER_BANK;
-
- SetReadFlash1(readFlash1Buffer);
-
- REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0];
-
- gFlashNumRemainingBytes = gFlash->sector.size;
- dest = FLASH_BASE + (sectorNum << gFlash->sector.shift);
-
- while (gFlashNumRemainingBytes > 0)
- {
- result = ProgramByte(src, dest);
-
- if (result != 0)
- break;
-
- gFlashNumRemainingBytes--;
- src++;
- dest++;
- }
-
- return result;
-}
diff --git a/berry_fix/payload/src/flash.c b/berry_fix/payload/src/flash.c
deleted file mode 100644
index 1f09d0b8f..000000000
--- a/berry_fix/payload/src/flash.c
+++ /dev/null
@@ -1,752 +0,0 @@
-#include "gba/gba.h"
-#include "gba/flash_internal.h"
-#include "constants/vars.h"
-#include "global.h"
-#include "main.h"
-#include "flash.h"
-#include "rtc.h"
-
-struct SaveBlockChunk
-{
- u8 * data;
- u16 size;
-};
-
-u8 WriteSaveBlockChunks(u16 a0, const struct SaveBlockChunk * a1);
-u8 WriteSingleChunk(u16 a0, const struct SaveBlockChunk * a1);
-u8 TryWriteSector(u8, u8 *);
-u8 EraseCurrentChunk(u16 a0, const struct SaveBlockChunk * a1);
-u8 TryReadAllSaveSectorsCurrentSlot(u16 a0, const struct SaveBlockChunk * a1);
-u8 ReadAllSaveSectorsCurrentSlot(u16 a0, const struct SaveBlockChunk * a1);
-u8 GetSaveValidStatus(const struct SaveBlockChunk * a1);
-u32 DoReadFlashWholeSection(u8 a0, struct SaveSector * a1);
-u16 CalculateChecksum(const void *, u16);
-
-u16 gFirstSaveSector;
-u32 gPrevSaveCounter;
-u16 gLastKnownGoodSector;
-u32 gDamagedSaveSectors;
-u32 gSaveCounter;
-struct SaveSector * gFastSaveSection;
-u16 gCurSaveChunk;
-bool32 gFlashIdentIsValid;
-
-EWRAM_DATA struct SaveBlock2 gSaveBlock2 = {};
-EWRAM_DATA struct SaveBlock1 gSaveBlock1 = {};
-EWRAM_DATA struct PokemonStorage gPokemonStorage = {};
-
-// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer
-#define SECTOR_DATA_SIZE 3968
-#define SECTOR_FOOTER_SIZE 128
-
-#define SAVEBLOCK_CHUNK(structure, chunkNum) \
-{ \
- (u8 *)&structure + chunkNum * SECTOR_DATA_SIZE, \
- min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
-} \
-
-static const struct SaveBlockChunk sSaveBlockChunks[] =
-{
- SAVEBLOCK_CHUNK(gSaveBlock2, 0),
-
- SAVEBLOCK_CHUNK(gSaveBlock1, 0),
- SAVEBLOCK_CHUNK(gSaveBlock1, 1),
- SAVEBLOCK_CHUNK(gSaveBlock1, 2),
- SAVEBLOCK_CHUNK(gSaveBlock1, 3),
-
- SAVEBLOCK_CHUNK(gPokemonStorage, 0),
- SAVEBLOCK_CHUNK(gPokemonStorage, 1),
- SAVEBLOCK_CHUNK(gPokemonStorage, 2),
- SAVEBLOCK_CHUNK(gPokemonStorage, 3),
- SAVEBLOCK_CHUNK(gPokemonStorage, 4),
- SAVEBLOCK_CHUNK(gPokemonStorage, 5),
- SAVEBLOCK_CHUNK(gPokemonStorage, 6),
- SAVEBLOCK_CHUNK(gPokemonStorage, 7),
- SAVEBLOCK_CHUNK(gPokemonStorage, 8),
-};
-
-const u16 gInfoMessagesPal[] = INCBIN_U16("graphics/msg_box.gbapal");
-const u8 gInfoMessagesTilemap[] = INCBIN_U8("graphics/msg_box.tilemap.lz");
-const u8 gInfoMessagesGfx[] = INCBIN_U8("graphics/msg_box.4bpp.lz");
-
-bool32 flash_maincb_ident_is_valid(void)
-{
- gFlashIdentIsValid = TRUE;
- if (!IdentifyFlash())
- {
- SetFlashTimerIntr(0, &((IntrFunc *)gIntrFuncPointers)[9]);
- return TRUE;
- }
- gFlashIdentIsValid = FALSE;
- return FALSE;
-}
-
-void Call_ReadFlash(u16 sectorNum, ptrdiff_t offset, void * dest, size_t size)
-{
- ReadFlash(sectorNum, offset, dest, size);
-}
-
-u8 Call_WriteSaveBlockChunks(u16 a0, const struct SaveBlockChunk * a1)
-{
- return WriteSaveBlockChunks(a0, a1);
-}
-
-u8 Call_TryReadAllSaveSectorsCurrentSlot(u16 a0, const struct SaveBlockChunk * a1)
-{
- return TryReadAllSaveSectorsCurrentSlot(a0, a1);
-}
-
-u32 * GetDamagedSaveSectorsPtr(void)
-{
- return &gDamagedSaveSectors;
-}
-
-s32 flash_write_save_block_chunks(u8 a0)
-{
- u8 i;
-
- switch (a0)
- {
- case 0:
- default:
- Call_WriteSaveBlockChunks(0xFFFF, sSaveBlockChunks);
- break;
- case 1:
- for (i = 0; i < 5; i++)
- {
- Call_WriteSaveBlockChunks(i, sSaveBlockChunks);
- }
- break;
- case 2:
- Call_WriteSaveBlockChunks(0, sSaveBlockChunks);
- break;
- }
-
- return 0;
-}
-
-u8 flash_write_save_block_chunks_check_damage(u8 a0)
-{
- flash_write_save_block_chunks(a0);
- if (*GetDamagedSaveSectorsPtr() == 0)
- return 1;
- return 0xFF;
-}
-
-u8 flash_maincb_read_save(u32 unused)
-{
- return Call_TryReadAllSaveSectorsCurrentSlot(0xFFFF, sSaveBlockChunks);
-}
-
-void msg_load_gfx(void)
-{
- REG_DISPCNT = 0;
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- REG_BLDCNT = 0;
- LZ77UnCompVram(gInfoMessagesGfx, (void *)BG_VRAM);
- LZ77UnCompVram(gInfoMessagesTilemap, (void *)BG_SCREEN_ADDR(28));
- CpuCopy16(gInfoMessagesPal, (void *)BG_PLTT, 0x200);
- REG_BG0CNT = BGCNT_SCREENBASE(28) | BGCNT_TXT512x512;
- REG_DISPCNT = DISPCNT_BG0_ON;
-}
-
-void msg_display(enum MsgBoxUpdateMessage a0)
-{
- switch (a0)
- {
- case MSGBOX_WILL_NOW_UPDATE:
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- break;
- case MSGBOX_HAS_BEEN_UPDATED:
- REG_BG0HOFS = 0x100;
- REG_BG0VOFS = 0;
- break;
- case MSGBOX_UNABLE_TO_UPDATE:
- REG_BG0HOFS = 0x100;
- REG_BG0VOFS = 0xB0;
- break;
- case MSGBOX_NO_NEED_TO_UPDATE:
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0xB0;
- break;
- case MSGBOX_UPDATING:
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0x160;
- break;
- }
-}
-
-void Save_EraseAllData(void)
-{
- u16 i;
- for (i = 0; i < 32; i++)
- EraseFlashSector(i);
-}
-
-void Save_ResetSaveCounters(void)
-{
- gSaveCounter = 0;
- gFirstSaveSector = 0;
- gDamagedSaveSectors = 0;
-}
-
-bool32 SetSectorDamagedStatus(u8 op, u8 sectorNum)
-{
- bool32 retVal = FALSE;
-
- switch (op)
- {
- case SECTOR_DAMAGED:
- gDamagedSaveSectors |= (1 << sectorNum);
- break;
- case SECTOR_OK:
- gDamagedSaveSectors &= ~(1 << sectorNum);
- break;
- case SECTOR_CHECK: // unused
- if (gDamagedSaveSectors & (1 << sectorNum))
- retVal = TRUE;
- break;
- }
-
- return retVal;
-}
-
-u8 WriteSaveBlockChunks(u16 chunkId, const struct SaveBlockChunk *chunks)
-{
- u32 retVal;
- u16 i;
-
- gFastSaveSection = eSaveSection;
-
- if (chunkId != 0xFFFF) // write single chunk
- {
- retVal = WriteSingleChunk(chunkId, chunks);
- }
- else // write all chunks
- {
- gLastKnownGoodSector = gFirstSaveSector;
- gPrevSaveCounter = gSaveCounter;
- gFirstSaveSector++;
- gFirstSaveSector %= NUM_SECTORS_PER_SAVE_SLOT;
- gSaveCounter++;
- retVal = SAVE_STATUS_OK;
-
- for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT; i++)
- WriteSingleChunk(i, chunks);
-
- // Check for any bad sectors
- if (gDamagedSaveSectors != 0) // skip the damaged sector.
- {
- retVal = SAVE_STATUS_ERROR;
- gFirstSaveSector = gLastKnownGoodSector;
- gSaveCounter = gPrevSaveCounter;
- }
- }
-
- return retVal;
-}
-
-u8 WriteSingleChunk(u16 chunkId, const struct SaveBlockChunk * chunks)
-{
- u16 i;
- u16 sectorNum;
- u8 *chunkData;
- u16 chunkSize;
-
- // select sector number
- sectorNum = chunkId + gFirstSaveSector;
- sectorNum %= NUM_SECTORS_PER_SAVE_SLOT;
- // select save slot
- sectorNum += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
-
- chunkData = chunks[chunkId].data;
- chunkSize = chunks[chunkId].size;
-
- // clear save section.
- for (i = 0; i < sizeof(struct SaveSector); i++)
- ((u8 *)gFastSaveSection)[i] = 0;
-
- gFastSaveSection->id = chunkId;
- gFastSaveSection->signature = FILE_SIGNATURE;
- gFastSaveSection->counter = gSaveCounter;
- for (i = 0; i < chunkSize; i++)
- gFastSaveSection->data[i] = chunkData[i];
- gFastSaveSection->checksum = CalculateChecksum(chunkData, chunkSize);
-
- return TryWriteSector(sectorNum, gFastSaveSection->data);
-}
-
-u8 HandleWriteSectorNBytes(u8 sectorNum, u8 *data, u16 size)
-{
- u16 i;
- struct SaveSector *section = eSaveSection;
-
- for (i = 0; i < sizeof(struct SaveSector); i++)
- ((char *)section)[i] = 0;
-
- section->signature = FILE_SIGNATURE;
- for (i = 0; i < size; i++)
- section->data[i] = data[i];
- section->id = CalculateChecksum(data, size); // though this appears to be incorrect, it might be some sector checksum instead of a whole save checksum and only appears to be relevent to HOF data, if used.
-
- return TryWriteSector(sectorNum, section->data);
-}
-
-u8 TryWriteSector(u8 sectorNum, u8 *data)
-{
- if (ProgramFlashSectorAndVerify(sectorNum, data) != 0) // is damaged?
- {
- SetSectorDamagedStatus(SECTOR_DAMAGED, sectorNum); // set damaged sector bits.
- return SAVE_STATUS_ERROR;
- }
- else
- {
- SetSectorDamagedStatus(SECTOR_OK, sectorNum); // unset damaged sector bits. it's safe now.
- return SAVE_STATUS_OK;
- }
-}
-
-u32 RestoreSaveBackupVarsAndIncrement(const struct SaveBlockChunk *chunk) // chunk is unused
-{
- gFastSaveSection = eSaveSection;
- gLastKnownGoodSector = gFirstSaveSector;
- gPrevSaveCounter = gSaveCounter;
- gFirstSaveSector++;
- gFirstSaveSector %= NUM_SECTORS_PER_SAVE_SLOT;
- gSaveCounter++;
- gCurSaveChunk = 0;
- gDamagedSaveSectors = 0;
- return 0;
-}
-
-u32 RestoreSaveBackupVars(const struct SaveBlockChunk *chunk)
-{
- gFastSaveSection = eSaveSection;
- gLastKnownGoodSector = gFirstSaveSector;
- gPrevSaveCounter = gSaveCounter;
- gCurSaveChunk = 0;
- gDamagedSaveSectors = 0;
- return 0;
-}
-
-u8 WriteSingleChunkAndIncrement(u16 a1, const struct SaveBlockChunk * chunk)
-{
- u8 retVal;
-
- if (gCurSaveChunk < a1 - 1)
- {
- retVal = SAVE_STATUS_OK;
- WriteSingleChunk(gCurSaveChunk, chunk);
- gCurSaveChunk++;
- if (gDamagedSaveSectors)
- {
- retVal = SAVE_STATUS_ERROR;
- gFirstSaveSector = gLastKnownGoodSector;
- gSaveCounter = gPrevSaveCounter;
- }
- }
- else
- {
- retVal = SAVE_STATUS_ERROR;
- }
-
- return retVal;
-}
-
-u8 ErasePreviousChunk(u16 a1, const struct SaveBlockChunk *chunk)
-{
- u8 retVal = SAVE_STATUS_OK;
-
- EraseCurrentChunk(a1 - 1, chunk);
-
- if (gDamagedSaveSectors)
- {
- retVal = SAVE_STATUS_ERROR;
- gFirstSaveSector = gLastKnownGoodSector;
- gSaveCounter = gPrevSaveCounter;
- }
- return retVal;
-}
-
-u8 EraseCurrentChunk(u16 chunkId, const struct SaveBlockChunk *chunks)
-{
- u16 i;
- u16 sector;
- u8 *data;
- u16 size;
- u8 status;
-
- // select sector number
- sector = chunkId + gFirstSaveSector;
- sector %= NUM_SECTORS_PER_SAVE_SLOT;
- // select save slot
- sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
-
- data = chunks[chunkId].data;
- size = chunks[chunkId].size;
-
- // clear temp save section.
- for (i = 0; i < sizeof(struct SaveSector); i++)
- ((char *)gFastSaveSection)[i] = 0;
-
- gFastSaveSection->id = chunkId;
- gFastSaveSection->signature = FILE_SIGNATURE;
- gFastSaveSection->counter = gSaveCounter;
-
- // set temp section's data.
- for (i = 0; i < size; i++)
- gFastSaveSection->data[i] = data[i];
-
- // calculate checksum.
- gFastSaveSection->checksum = CalculateChecksum(data, size);
-
- EraseFlashSector(sector);
-
- status = SAVE_STATUS_OK;
-
- for (i = 0; i < sizeof(struct UnkSaveSection); i++)
- {
- if (ProgramFlashByte(sector, i, gFastSaveSection->data[i]))
- {
- status = SAVE_STATUS_ERROR;
- break;
- }
- }
-
- if (status == SAVE_STATUS_ERROR)
- {
- SetSectorDamagedStatus(SECTOR_DAMAGED, sector);
- return SAVE_STATUS_ERROR;
- }
- else
- {
- status = SAVE_STATUS_OK;
-
- for (i = 0; i < 7; i++)
- {
- if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gFastSaveSection)[0xFF9 + i]))
- {
- status = SAVE_STATUS_ERROR;
- break;
- }
- }
-
- if (status == SAVE_STATUS_ERROR)
- {
- SetSectorDamagedStatus(SECTOR_DAMAGED, sector);
- return SAVE_STATUS_ERROR;
- }
- else
- {
- SetSectorDamagedStatus(SECTOR_OK, sector);
- return SAVE_STATUS_OK;
- }
- }
-}
-
-u8 WriteSomeFlashByteToPrevSector(u16 a1, const struct SaveBlockChunk *chunk)
-{
- u16 sector;
-
- // select sector number
- sector = a1 + gFirstSaveSector - 1;
- sector %= NUM_SECTORS_PER_SAVE_SLOT;
- // select save slot
- sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
-
- if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), ((u8 *)gFastSaveSection)[sizeof(struct UnkSaveSection)]))
- {
- // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
- SetSectorDamagedStatus(SECTOR_DAMAGED, sector);
- gFirstSaveSector = gLastKnownGoodSector;
- gSaveCounter = gPrevSaveCounter;
- return SAVE_STATUS_ERROR;
- }
- else
- {
- SetSectorDamagedStatus(SECTOR_OK, sector);
- return SAVE_STATUS_OK;
- }
-}
-
-u8 WriteSomeFlashByte0x25ToPrevSector(u16 a1, const struct SaveBlockChunk *chunk)
-{
- u16 sector;
-
- sector = a1 + gFirstSaveSector - 1;
- sector %= NUM_SECTORS_PER_SAVE_SLOT;
- sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
-
- if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), 0x25))
- {
- // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
- SetSectorDamagedStatus(SECTOR_DAMAGED, sector);
- gFirstSaveSector = gLastKnownGoodSector;
- gSaveCounter = gPrevSaveCounter;
- return SAVE_STATUS_ERROR;
- }
- else
- {
- SetSectorDamagedStatus(SECTOR_OK, sector);
- return SAVE_STATUS_OK;
- }
-}
-
-u8 TryReadAllSaveSectorsCurrentSlot(u16 a1, const struct SaveBlockChunk *chunk)
-{
- u8 retVal;
- gFastSaveSection = eSaveSection;
- if (a1 != 0xFFFF)
- {
- retVal = SAVE_STATUS_ERROR;
- }
- else
- {
- retVal = GetSaveValidStatus(chunk);
- ReadAllSaveSectorsCurrentSlot(0xFFFF, chunk);
- }
-
- return retVal;
-}
-
-u8 ReadAllSaveSectorsCurrentSlot(u16 a1, const struct SaveBlockChunk *chunks)
-{
- u16 i;
- u16 checksum;
- u16 sector = NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
- u16 id;
-
- for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT; i++)
- {
- DoReadFlashWholeSection(i + sector, gFastSaveSection);
- id = gFastSaveSection->id;
- if (id == 0)
- gFirstSaveSector = i;
- checksum = CalculateChecksum(gFastSaveSection->data, chunks[id].size);
- if (gFastSaveSection->signature == FILE_SIGNATURE
- && gFastSaveSection->checksum == checksum)
- {
- u16 j;
- for (j = 0; j < chunks[id].size; j++)
- chunks[id].data[j] = gFastSaveSection->data[j];
- }
- }
-
- return 1;
-}
-
-u8 GetSaveValidStatus(const struct SaveBlockChunk *chunks)
-{
- u16 sector;
- bool8 signatureValid;
- u16 checksum;
- u32 slot1saveCounter = 0;
- u32 slot2saveCounter = 0;
- u8 slot1Status;
- u8 slot2Status;
- u32 validSectors;
- const u32 ALL_SECTORS = (1 << NUM_SECTORS_PER_SAVE_SLOT) - 1; // bitmask of all saveblock sectors
-
- // check save slot 1.
- validSectors = 0;
- signatureValid = FALSE;
- for (sector = 0; sector < NUM_SECTORS_PER_SAVE_SLOT; sector++)
- {
- DoReadFlashWholeSection(sector, gFastSaveSection);
- if (gFastSaveSection->signature == FILE_SIGNATURE)
- {
- signatureValid = TRUE;
- checksum = CalculateChecksum(gFastSaveSection->data, chunks[gFastSaveSection->id].size);
- if (gFastSaveSection->checksum == checksum)
- {
- slot1saveCounter = gFastSaveSection->counter;
- validSectors |= 1 << gFastSaveSection->id;
- }
- }
- }
-
- if (signatureValid)
- {
- if (validSectors == ALL_SECTORS)
- slot1Status = SAVE_STATUS_OK;
- else
- slot1Status = SAVE_STATUS_ERROR;
- }
- else
- {
- slot1Status = SAVE_STATUS_EMPTY;
- }
-
- // check save slot 2.
- validSectors = 0;
- signatureValid = FALSE;
- for (sector = 0; sector < NUM_SECTORS_PER_SAVE_SLOT; sector++)
- {
- DoReadFlashWholeSection(NUM_SECTORS_PER_SAVE_SLOT + sector, gFastSaveSection);
- if (gFastSaveSection->signature == FILE_SIGNATURE)
- {
- signatureValid = TRUE;
- checksum = CalculateChecksum(gFastSaveSection->data, chunks[gFastSaveSection->id].size);
- if (gFastSaveSection->checksum == checksum)
- {
- slot2saveCounter = gFastSaveSection->counter;
- validSectors |= 1 << gFastSaveSection->id;
- }
- }
- }
-
- if (signatureValid)
- {
- if (validSectors == ALL_SECTORS)
- slot2Status = SAVE_STATUS_OK;
- else
- slot2Status = SAVE_STATUS_ERROR;
- }
- else
- {
- slot2Status = SAVE_STATUS_EMPTY;
- }
-
- if (slot1Status == SAVE_STATUS_OK && slot2Status == SAVE_STATUS_OK)
- {
- // Choose counter of the most recent save file
- if ((slot1saveCounter == -1 && slot2saveCounter == 0) || (slot1saveCounter == 0 && slot2saveCounter == -1))
- {
- if ((unsigned)(slot1saveCounter + 1) < (unsigned)(slot2saveCounter + 1))
- gSaveCounter = slot2saveCounter;
- else
- gSaveCounter = slot1saveCounter;
- }
- else
- {
- if (slot1saveCounter < slot2saveCounter)
- gSaveCounter = slot2saveCounter;
- else
- gSaveCounter = slot1saveCounter;
- }
- return SAVE_STATUS_OK;
- }
-
- if (slot1Status == SAVE_STATUS_OK)
- {
- gSaveCounter = slot1saveCounter;
- if (slot2Status == SAVE_STATUS_ERROR)
- return SAVE_STATUS_ERROR;
- else
- return SAVE_STATUS_OK;
- }
-
- if (slot2Status == SAVE_STATUS_OK)
- {
- gSaveCounter = slot2saveCounter;
- if (slot1Status == SAVE_STATUS_ERROR)
- return SAVE_STATUS_ERROR;
- else
- return SAVE_STATUS_OK;
- }
-
- if (slot1Status == SAVE_STATUS_EMPTY && slot2Status == SAVE_STATUS_EMPTY)
- {
- gSaveCounter = 0;
- gFirstSaveSector = 0;
- return SAVE_STATUS_EMPTY;
- }
-
- gSaveCounter = 0;
- gFirstSaveSector = 0;
- return 2;
-}
-
-u8 ReadSomeUnknownSectorAndVerify(u8 sector, u8 *data, u16 size)
-{
- u16 i;
- struct SaveSector *section = eSaveSection;
-
- DoReadFlashWholeSection(sector, section);
- if (section->signature == FILE_SIGNATURE)
- {
- u16 checksum = CalculateChecksum(section->data, size);
- if (section->id == checksum)
- {
- for (i = 0; i < size; i++)
- data[i] = section->data[i];
- return SAVE_STATUS_OK;
- }
- else
- {
- return 2;
- }
- }
- else
- {
- return SAVE_STATUS_EMPTY;
- }
-}
-
-u32 DoReadFlashWholeSection(u8 sector, struct SaveSector *section)
-{
- ReadFlash(sector, 0, section->data, sizeof(struct SaveSector));
- return 1;
-}
-
-u16 CalculateChecksum(const void *data, u16 size)
-{
- u16 i;
- u32 checksum = 0;
-
- for (i = 0; i < (size / 4); i++)
- {
- checksum += *((u32 *)data);
- data += sizeof(u32);
- }
-
- return ((checksum >> 16) + checksum);
-}
-
-void nullsub_0201182C()
-{
-}
-
-void nullsub_02011830()
-{
-}
-
-void nullsub_02011834()
-{
-}
-
-u16 * get_var_addr(u16 a0)
-{
- if (a0 < VARS_START)
- return NULL;
- if (a0 < VAR_SPECIAL_0)
- return &gSaveBlock1.vars[a0 - VARS_START];
- return NULL;
-}
-
-bool32 flash_maincb_check_need_reset_pacifidlog_tm(void)
-{
- u8 sp0;
- u16 * data = get_var_addr(VAR_PACIFIDLOG_TM_RECEIVED_DAY);
- rtc_maincb_is_time_since_last_berry_update_positive(&sp0);
- if (*data <= gRtcUTCTime.days)
- return TRUE;
- else
- return FALSE;
-}
-
-bool32 flash_maincb_reset_pacifidlog_tm(void)
-{
- u8 sp0;
- if (flash_maincb_check_need_reset_pacifidlog_tm() == TRUE)
- return TRUE;
- rtc_maincb_is_time_since_last_berry_update_positive(&sp0);
- if (gRtcUTCTime.days < 0)
- return FALSE;
- *get_var_addr(VAR_PACIFIDLOG_TM_RECEIVED_DAY) = 1;
- if (flash_write_save_block_chunks_check_damage(0) != TRUE)
- return FALSE;
- return TRUE;
-}
diff --git a/berry_fix/payload/src/main.c b/berry_fix/payload/src/main.c
deleted file mode 100644
index 32d90f9c1..000000000
--- a/berry_fix/payload/src/main.c
+++ /dev/null
@@ -1,289 +0,0 @@
-#include "gba/gba.h"
-#include "global.h"
-#include "main.h"
-#include "rtc.h"
-#include "flash.h"
-
-static s32 gInitialWaitTimer;
-IntrFunc gIntrTable[16];
-u16 gHeldKeys;
-u16 gNewKeys;
-u8 gIntrVector[0x100];
-u32 gUpdateSuccessful;
-u32 gUnknown_3001194;
-u32 gUnknown_30011A0[0x19];
-u32 gMainCallbackState;
-u32 gGameVersion;
-
-EWRAM_DATA u8 gSharedMem[0x8000] = {};
-
-void IntrMain(void);
-void ReadKeys(void);
-void dummy_intr_0(void);
-void dummy_intr_1(void);
-void main_callback(u32 *, void *, void *);
-
-
-const char gBerryFixGameCode[] = "AGBJ";
-const IntrFunc gIntrFuncPointers[] = {
- dummy_intr_0,
- dummy_intr_1,
- dummy_intr_0,
- dummy_intr_0,
- dummy_intr_0,
- dummy_intr_0,
- dummy_intr_0,
- dummy_intr_0,
- dummy_intr_0,
- dummy_intr_0,
- NULL,
- NULL,
- NULL
-};
-const char gVersionData[][2] = {
- {'J', 1},
- {'E', 2},
- {'D', 1},
- {'F', 1},
- {'I', 1},
- {'S', 1}
-};
-const char gRubyTitleAndCode[] = "POKEMON RUBYAXV";
-const char gSapphireTitleAndCode[] = "POKEMON SAPPAXP";
-const u16 sDebugPals[20] = {
- RGB(00, 00, 00),
- RGB(31, 00, 00),
- RGB(00, 31, 00),
- RGB(00, 00, 31)
-};
-const u16 sDebugDigitsGfx[] = INCBIN_U16("graphics/debug_digits.4bpp");
-
-void AgbMain(void)
-{
- RegisterRamReset(0x1E);
- DmaCopy32(3, gIntrFuncPointers, gIntrTable, sizeof gIntrFuncPointers);
- DmaCopy32(3, IntrMain, gIntrVector, sizeof(gIntrVector));
- INTR_VECTOR = gIntrVector;
- REG_IE = INTR_FLAG_VBLANK;
- if (*RomHeaderMagic == 0x96 && *(u32 *)RomHeaderGameCode == *(u32 *)gBerryFixGameCode)
- REG_IE |= INTR_FLAG_GAMEPAK;
- REG_DISPSTAT = DISPSTAT_VBLANK_INTR;
- REG_IME = INTR_FLAG_VBLANK;
- msg_load_gfx();
- gMainCallbackState = MAINCB_INIT;
- gUnknown_3001194 = 0;
- for (;;)
- {
- VBlankIntrWait();
- ReadKeys();
- main_callback(&gMainCallbackState, gUnknown_30011A0, gSharedMem);
- }
-}
-
-void dummy_intr_1(void)
-{}
-
-void dummy_intr_0(void)
-{}
-
-void ReadKeys(void)
-{
- u16 keyInput = REG_KEYINPUT ^ KEYS_MASK;
- gNewKeys = keyInput & ~gHeldKeys;
- gHeldKeys = keyInput;
-}
-
-void fill_palette(const u8 * src, u16 * dest, u8 value)
-{
- s32 i;
- for (i = 0; src[i] != 0; i++)
- dest[i] = src[i] | value << 12;
-}
-
-bool32 berry_fix_memcmp(const char * src1, const char * src2, size_t size)
-{
- s32 i;
- for (i = 0; i < size; i++)
- {
- if (src1[i] != src2[i])
- return FALSE;
- }
- return TRUE;
-}
-
-s32 validate_rom_header_internal(void)
-{
- char languageCode = *(RomHeaderGameCode + 3);
- s32 softwareVersion = *RomHeaderSoftwareVersion;
- s32 shouldUpdate = -1;
- s32 i;
- for (i = 0; i < ARRAY_COUNT(gVersionData); i++)
- {
- if (languageCode == gVersionData[i][0])
- {
- if (softwareVersion >= gVersionData[i][1])
- {
- shouldUpdate = 0;
- }
- else
- {
- shouldUpdate = 1;
- }
- break;
- }
- }
- if (shouldUpdate != -1)
- {
- if (berry_fix_memcmp(RomHeaderGameTitle, gRubyTitleAndCode, 15) == TRUE)
- {
- if (shouldUpdate == 0)
- return RUBY_NONEED;
- else
- {
- gGameVersion = VERSION_RUBY;
- return RUBY_UPDATABLE;
- }
- }
- else if (berry_fix_memcmp(RomHeaderGameTitle, gSapphireTitleAndCode, 15) == TRUE)
- {
- if (shouldUpdate == 0)
- return SAPPHIRE_NONEED;
- else
- {
- gGameVersion = VERSION_SAPPHIRE;
- return SAPPHIRE_UPDATABLE;
- }
- }
- }
- return INVALID;
-}
-
-s32 validate_rom_header(void)
-{
- if (*RomHeaderMakerCode == '0' && *(RomHeaderMakerCode + 1) == '1' && *RomHeaderMagic == 0x96)
- return validate_rom_header_internal();
- else
- return INVALID;
-}
-
-void main_callback(u32 * state, void * unused1, void * unused2)
-{
- u8 year;
- switch (*state)
- {
- case MAINCB_INIT:
- msg_display(MSGBOX_WILL_NOW_UPDATE);
- if (++gInitialWaitTimer >= 180)
- {
- gInitialWaitTimer = 0;
- gUpdateSuccessful = 0;
- switch (validate_rom_header())
- {
- case SAPPHIRE_UPDATABLE:
- case RUBY_UPDATABLE: // Should Update Ruby
- ++(*state); // MAINCB_CHECK_RTC
- break;
- case INVALID: // Invalid header
- *state = MAINCB_ERROR;
- break;
- case SAPPHIRE_NONEED: // Should not update Sapphire
- case RUBY_NONEED: // Should not update Ruby
- *state = MAINCB_NO_NEED_TO_FIX;
- break;
- }
- }
- break;
- case MAINCB_CHECK_RTC:
- if (!rtc_maincb_is_rtc_working())
- *state = MAINCB_ERROR;
- else
- ++(*state); // MAINCB_CHECK_FLASH
- break;
- case MAINCB_CHECK_FLASH:
- if (flash_maincb_ident_is_valid() == TRUE)
- ++(*state); // MAINCB_READ_SAVE
- else
- *state = MAINCB_ERROR;
- break;
- case MAINCB_READ_SAVE:
- if (flash_maincb_read_save(0) == SAVE_STATUS_OK)
- ++(*state); // MAINCB_CHECK_TIME
- else
- *state = MAINCB_ERROR;
- break;
- case MAINCB_CHECK_TIME:
- if (rtc_maincb_is_time_since_last_berry_update_positive(&year) == TRUE)
- {
- if (year == 0)
- ++(*state); // MAINCB_FIX_DATE
- else
- *state = MAINCB_CHECK_PACIFIDLOG_TM;
- }
- else
- {
- if (year != 1)
- *state = MAINCB_YEAR_MAKES_NO_SENSE;
- else
- ++(*state); // MAINCB_FIX_DATE
- }
- break;
- case MAINCB_FIX_DATE:
- rtc_maincb_fix_date();
- gUpdateSuccessful |= 1;
- *state = MAINCB_CHECK_PACIFIDLOG_TM;
- break;
- case MAINCB_CHECK_PACIFIDLOG_TM:
- if (flash_maincb_check_need_reset_pacifidlog_tm() == TRUE)
- *state = MAINCB_FINISHED;
- else
- *state = MAINCB_FIX_PACIFIDLOG_TM;
- break;
- case MAINCB_FIX_PACIFIDLOG_TM:
- msg_display(MSGBOX_UPDATING);
- if (flash_maincb_reset_pacifidlog_tm() == TRUE)
- {
- gUpdateSuccessful |= 1;
- *state = MAINCB_FINISHED;
- }
- else
- *state = MAINCB_ERROR;
- break;
- case MAINCB_FINISHED:
- if (gUpdateSuccessful == 0)
- *state = MAINCB_NO_NEED_TO_FIX;
- else
- msg_display(MSGBOX_HAS_BEEN_UPDATED);
- break;
- case MAINCB_NO_NEED_TO_FIX:
- msg_display(MSGBOX_NO_NEED_TO_UPDATE);
- break;
- case MAINCB_YEAR_MAKES_NO_SENSE:
- msg_display(MSGBOX_UNABLE_TO_UPDATE);
- break;
- case MAINCB_ERROR:
- msg_display(MSGBOX_UNABLE_TO_UPDATE);
- break;
- }
-}
-
-void DBG_LoadDigitsPal(void)
-{
- s32 i;
- const u16 * src;
- vu16 * dest = (vu16 *)BG_PLTT + 1;
- DmaFill16(3, RGB(31, 31, 31), (vu16 *)BG_PLTT, BG_PLTT_SIZE);
- src = sDebugPals;
- for (i = 0; i < 4; i++)
- {
- *dest = *src;
- dest += 16;
- src++;
- }
-}
-
-void DBG_LoadDigits(void)
-{
- DmaFill16(3, 0x1111, (void *)VRAM + 0x8420, 0x1800);
- DmaCopy32(3, sDebugDigitsGfx, (void *)VRAM + 0x8600, 0x200);
- DBG_LoadDigitsPal();
-}
diff --git a/berry_fix/payload/src/rtc.c b/berry_fix/payload/src/rtc.c
deleted file mode 100644
index e73f522aa..000000000
--- a/berry_fix/payload/src/rtc.c
+++ /dev/null
@@ -1,346 +0,0 @@
-#include "gba/gba.h"
-#include "siirtc.h"
-#include "global.h"
-#include "main.h"
-
-struct Time gTimeSinceBerryUpdate;
-struct Time gRtcUTCTime;
-
-static u16 sRtcProbeStatus;
-static struct SiiRtcInfo sRtcInfoBuffer;
-static u8 sRtcProbeCode;
-static u16 sImeBak;
-static struct SiiRtcInfo sRtcInfoWork;
-
-const struct SiiRtcInfo sDefaultRTC = {
- .year = 0, // 2000
- .month = 1, // January
- .day = 1, // 01
- .dayOfWeek = 0,
- .hour = 0,
- .minute = 0,
- .second = 0,
- .status = 0,
- .alarmHour = 0,
- .alarmMinute = 0
-};
-const s32 sDaysPerMonth[] = {
- 31,
- 28,
- 31,
- 30,
- 31,
- 30,
- 31,
- 31,
- 30,
- 31,
- 30,
- 31
-};
-
-void rtc_get_status_and_datetime(struct SiiRtcInfo *);
-u16 rtc_validate_datetime(struct SiiRtcInfo *);
-
-
-void rtc_intr_disable(void)
-{
- sImeBak = REG_IME;
- REG_IME = 0;
-}
-
-void rtc_intr_enable(void)
-{
- REG_IME = sImeBak;
-}
-
-s32 bcd_to_hex(u8 a0)
-{
- if (a0 >= 0xa0 || (a0 & 0xF) >= 10)
- return 0xFF;
- return ((a0 >> 4) & 0xF) * 10 + (a0 & 0xF);
-}
-
-bool8 is_leap_year(u8 year)
-{
- if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
- return TRUE;
- return FALSE;
-}
-
-u16 rtc_count_days_parameterized(u8 year, u8 month, u8 day)
-{
- u16 numDays = 0;
- s32 i;
- for (i = year - 1; i > 0; i--)
- {
- numDays += 365;
- if (is_leap_year(i) == TRUE)
- numDays++;
- }
- for (i = 0; i < month - 1; i++)
- numDays += sDaysPerMonth[i];
- if (month > MONTH_FEB && is_leap_year(year) == TRUE)
- numDays++;
- numDays += day;
- return numDays;
-}
-
-u16 rtc_count_days_from_info(struct SiiRtcInfo *info)
-{
- return rtc_count_days_parameterized(bcd_to_hex(info->year), bcd_to_hex(info->month), bcd_to_hex(info->day));
-}
-
-static void rtc_probe_status(void)
-{
- sRtcProbeStatus = 0;
- rtc_intr_disable();
- SiiRtcUnprotect();
- sRtcProbeCode = SiiRtcProbe();
- rtc_intr_enable();
- if ((sRtcProbeCode & 0xF) != 1)
- sRtcProbeStatus = 1;
- else
- {
- if (sRtcProbeCode & 0xF0)
- sRtcProbeStatus = 2;
- else
- sRtcProbeStatus = 0;
- rtc_get_status_and_datetime(&sRtcInfoBuffer);
- sRtcProbeStatus = rtc_validate_datetime(&sRtcInfoBuffer);
- }
-}
-
-u16 rtc_get_probe_status(void)
-{
- return sRtcProbeStatus;
-}
-
-void sub_020106EC(struct SiiRtcInfo * info)
-{
- if (sRtcProbeStatus & 0xFF0)
- *info = sDefaultRTC;
- else
- rtc_get_status_and_datetime(info);
-}
-
-void rtc_get_datetime(struct SiiRtcInfo * info)
-{
- rtc_intr_disable();
- SiiRtcGetDateTime(info);
- rtc_intr_enable();
-}
-
-void rtc_get_status(struct SiiRtcInfo * info)
-{
- rtc_intr_disable();
- SiiRtcGetStatus(info);
- rtc_intr_enable();
-}
-
-void rtc_get_status_and_datetime(struct SiiRtcInfo * info)
-{
- rtc_get_status(info);
- rtc_get_datetime(info);
-}
-
-u16 rtc_validate_datetime(struct SiiRtcInfo * info)
-{
- s32 year, month, day;
- u16 r4 = (info->status & SIIRTCINFO_POWER) ? 0x20 : 0;
- if (!(info->status & SIIRTCINFO_24HOUR))
- r4 |= 0x10;
- year = bcd_to_hex(info->year);
- if (year == 0xFF)
- r4 |= 0x40;
- month = bcd_to_hex(info->month);
- if (month == 0xFF || month == 0 || month > 12)
- r4 |= 0x80;
- day = bcd_to_hex(info->day);
- if (day == 0xFF)
- r4 |= 0x100;
- if (month == MONTH_FEB)
- {
- if (day > is_leap_year(year) + sDaysPerMonth[1])
- r4 |= 0x100;
- }
- else
- {
- if (day > sDaysPerMonth[month - 1])
- r4 |= 0x100;
- }
- day = bcd_to_hex(info->hour);
- if (day > 24)
- r4 |= 0x200;
- day = bcd_to_hex(info->minute);
- if (day > 60)
- r4 |= 0x400;
- day = bcd_to_hex(info->second);
- if (day > 60)
- r4 |= 0x800;
- return r4;
-}
-
-void rtc_reset(void)
-{
- rtc_intr_disable();
- SiiRtcReset();
- rtc_intr_enable();
-}
-
-void rtc_sub_time_from_datetime(struct SiiRtcInfo * datetime, struct Time * dest, struct Time * timediff)
-{
- u16 r4 = rtc_count_days_from_info(datetime);
- dest->seconds = bcd_to_hex(datetime->second) - timediff->seconds;
- dest->minutes = bcd_to_hex(datetime->minute) - timediff->minutes;
- dest->hours = bcd_to_hex(datetime->hour) - timediff->hours;
- dest->days = r4 - timediff->days;
- if (dest->seconds < 0)
- {
- dest->seconds += 60;
- dest->minutes--;
- }
- if (dest->minutes < 0)
- {
- dest->minutes += 60;
- dest->hours--;
- }
- if (dest->hours < 0)
- {
- dest->hours += 24;
- dest->days--;
- }
-}
-
-void rtc_sub_time_from_time(struct Time * dest, struct Time * diff, struct Time * src)
-{
- dest->seconds = src->seconds - diff->seconds;
- dest->minutes = src->minutes - diff->minutes;
- dest->hours = src->hours - diff->hours;
- dest->days = src->days - diff->days;
- if (dest->seconds < 0)
- {
- dest->seconds += 60;
- dest->minutes--;
- }
- if (dest->minutes < 0)
- {
- dest->minutes += 60;
- dest->hours--;
- }
- if (dest->hours < 0)
- {
- dest->hours += 24;
- dest->days--;
- }
-}
-
-bool32 rtc_maincb_is_rtc_working(void)
-{
- rtc_probe_status();
- if (rtc_get_probe_status() & 0xFF0)
- return FALSE;
- return TRUE;
-}
-
-void rtc_set_datetime(struct SiiRtcInfo * info)
-{
- vu16 imeBak = REG_IME;
- REG_IME = 0;
- SiiRtcSetDateTime(info);
- REG_IME = imeBak;
-}
-
-bool32 rtc_maincb_is_time_since_last_berry_update_positive(u8 * a0)
-{
- rtc_get_status_and_datetime(&sRtcInfoWork);
- *a0 = bcd_to_hex(sRtcInfoWork.year);
- rtc_sub_time_from_datetime(&sRtcInfoWork, &gRtcUTCTime, LocalTimeOffset);
- rtc_sub_time_from_time(&gTimeSinceBerryUpdate, LastBerryTreeUpdate, &gRtcUTCTime);
- if (gTimeSinceBerryUpdate.days * 1440 + gTimeSinceBerryUpdate.hours * 60 + gTimeSinceBerryUpdate.minutes >= 0)
- return TRUE;
- return FALSE;
-}
-
-u32 hex_to_bcd(u8 a0)
-{
- u32 r4;
- if (a0 > 99)
- return 0xFF;
- r4 = Div(a0, 10) << 4;
- r4 |= Mod(a0, 10);
- return r4;
-}
-
-void sii_rtc_inc(u8 * a0)
-{
- *a0 = hex_to_bcd(bcd_to_hex(*a0) + 1);
-}
-
-void sii_rtc_inc_month(struct SiiRtcInfo * a0)
-{
- sii_rtc_inc(&a0->month);
- if (bcd_to_hex(a0->month) > 12)
- {
- sii_rtc_inc(&a0->year);
- a0->month = MONTH_JAN;
- }
-}
-
-void sii_rtc_inc_day(struct SiiRtcInfo * a0)
-{
- sii_rtc_inc(&a0->day);
- if (bcd_to_hex(a0->day) > sDaysPerMonth[bcd_to_hex(a0->month) - 1])
- {
- if (!is_leap_year(bcd_to_hex(a0->year)) || bcd_to_hex(a0->month) != MONTH_FEB || bcd_to_hex(a0->day) != 29)
- {
- a0->day = 1;
- sii_rtc_inc_month(a0);
- }
- }
-}
-
-bool32 rtc_is_past_feb_28_2000(struct SiiRtcInfo * a0)
-{
- if (bcd_to_hex(a0->year) == 0)
- {
- if (bcd_to_hex(a0->month) == MONTH_JAN)
- return FALSE;
- if (bcd_to_hex(a0->month) > MONTH_FEB)
- return TRUE;
- if (bcd_to_hex(a0->day) == 29)
- return TRUE;
- return FALSE;
- }
- if (bcd_to_hex(a0->year) == 1)
- return TRUE;
- return FALSE;
-}
-
-void rtc_maincb_fix_date(void)
-{
- rtc_get_status_and_datetime(&sRtcInfoWork);
- if (bcd_to_hex(sRtcInfoWork.year) == 0 || bcd_to_hex(sRtcInfoWork.year) == 1)
- {
- if (bcd_to_hex(sRtcInfoWork.year) == 1)
- {
- sRtcInfoWork.year = 2;
- sRtcInfoWork.month = MONTH_JAN;
- sRtcInfoWork.day = 2;
- rtc_set_datetime(&sRtcInfoWork);
- }
- else
- {
- if (rtc_is_past_feb_28_2000(&sRtcInfoWork) == TRUE)
- {
- sii_rtc_inc_day(&sRtcInfoWork);
- sii_rtc_inc(&sRtcInfoWork.year);
- }
- else
- {
- sii_rtc_inc(&sRtcInfoWork.year);
- }
- rtc_set_datetime(&sRtcInfoWork);
- }
- }
-}
diff --git a/berry_fix/payload/src/siirtc.c b/berry_fix/payload/src/siirtc.c
deleted file mode 100644
index 965a068f1..000000000
--- a/berry_fix/payload/src/siirtc.c
+++ /dev/null
@@ -1,432 +0,0 @@
-// Ruby/Sapphire/Emerald cartridges contain a Seiko Instruments Inc. (SII)
-// S-3511A real-time clock (RTC). This library ("SIIRTC_V001") is for
-// communicating with the RTC.
-
-#include "gba/gba.h"
-#include "siirtc.h"
-
-#define STATUS_INTFE 0x02 // frequency interrupt enable
-#define STATUS_INTME 0x08 // per-minute interrupt enable
-#define STATUS_INTAE 0x20 // alarm interrupt enable
-#define STATUS_24HOUR 0x40 // 0: 12-hour mode, 1: 24-hour mode
-#define STATUS_POWER 0x80 // power on or power failure occurred
-
-#define TEST_MODE 0x80 // flag in the "second" byte
-
-#define ALARM_AM 0x00
-#define ALARM_PM 0x80
-
-#define OFFSET_YEAR offsetof(struct SiiRtcInfo, year)
-#define OFFSET_MONTH offsetof(struct SiiRtcInfo, month)
-#define OFFSET_DAY offsetof(struct SiiRtcInfo, day)
-#define OFFSET_DAY_OF_WEEK offsetof(struct SiiRtcInfo, dayOfWeek)
-#define OFFSET_HOUR offsetof(struct SiiRtcInfo, hour)
-#define OFFSET_MINUTE offsetof(struct SiiRtcInfo, minute)
-#define OFFSET_SECOND offsetof(struct SiiRtcInfo, second)
-#define OFFSET_STATUS offsetof(struct SiiRtcInfo, status)
-#define OFFSET_ALARM_HOUR offsetof(struct SiiRtcInfo, alarmHour)
-#define OFFSET_ALARM_MINUTE offsetof(struct SiiRtcInfo, alarmMinute)
-
-#define INFO_BUF(info, index) (*((u8 *)(info) + (index)))
-
-#define DATETIME_BUF(info, index) INFO_BUF(info, OFFSET_YEAR + index)
-#define DATETIME_BUF_LEN (OFFSET_SECOND - OFFSET_YEAR + 1)
-
-#define TIME_BUF(info, index) INFO_BUF(info, OFFSET_HOUR + index)
-#define TIME_BUF_LEN (OFFSET_SECOND - OFFSET_HOUR + 1)
-
-#define WR 0 // command for writing data
-#define RD 1 // command for reading data
-
-#define CMD(n) (0x60 | (n << 1))
-
-#define CMD_RESET CMD(0)
-#define CMD_STATUS CMD(1)
-#define CMD_DATETIME CMD(2)
-#define CMD_TIME CMD(3)
-#define CMD_ALARM CMD(4)
-
-#define GPIO_PORT_DATA (*(vu16 *)0x80000C4)
-#define GPIO_PORT_DIRECTION (*(vu16 *)0x80000C6)
-#define GPIO_PORT_READ_ENABLE (*(vu16 *)0x80000C8)
-
-extern vu16 GPIOPortDirection;
-
-static u16 sDummy; // unused variable
-static bool8 sLocked;
-
-static int WriteCommand(u8 value);
-static int WriteData(u8 value);
-static u8 ReadData();
-static void EnableGpioPortRead();
-static void DisableGpioPortRead();
-
-static const char AgbLibRtcVersion[] = "SIIRTC_V001";
-
-void SiiRtcUnprotect()
-{
- EnableGpioPortRead();
- sLocked = FALSE;
-}
-
-void SiiRtcProtect()
-{
- DisableGpioPortRead();
- sLocked = TRUE;
-}
-
-u8 SiiRtcProbe()
-{
- u8 errorCode;
- struct SiiRtcInfo rtc;
-
- if (!SiiRtcGetStatus(&rtc))
- return 0;
-
- errorCode = 0;
-
- if ((rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == SIIRTCINFO_POWER
- || (rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == 0)
- {
- // The RTC is in 12-hour mode. Reset it and switch to 24-hour mode.
-
- // Note that the conditions are redundant and equivalent to simply
- // "(rtc.status & SIIRTCINFO_24HOUR) == 0". It's possible that this
- // was also intended to handle resetting the clock after power failure
- // but a mistake was made.
-
- if (!SiiRtcReset())
- return 0;
-
- errorCode++;
- }
-
- SiiRtcGetTime(&rtc);
-
- if (rtc.second & TEST_MODE)
- {
- // The RTC is in test mode. Reset it to leave test mode.
-
- if (!SiiRtcReset())
- return (errorCode << 4) & 0xF0;
-
- errorCode++;
- }
-
- return (errorCode << 4) | 1;
-}
-
-bool8 SiiRtcReset()
-{
- u8 result;
- struct SiiRtcInfo rtc;
-
- if (sLocked == TRUE)
- return FALSE;
-
- sLocked = TRUE;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 5;
-
- GPIO_PORT_DIRECTION = 7;
-
- WriteCommand(CMD_RESET | WR);
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 1;
-
- sLocked = FALSE;
-
- rtc.status = SIIRTCINFO_24HOUR;
-
- result = SiiRtcSetStatus(&rtc);
-
- return result;
-}
-
-bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc)
-{
- u8 statusData;
-
- if (sLocked == TRUE)
- return FALSE;
-
- sLocked = TRUE;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 5;
-
- GPIO_PORT_DIRECTION = 7;
-
- WriteCommand(CMD_STATUS | RD);
-
- GPIO_PORT_DIRECTION = 5;
-
- statusData = ReadData();
-
- rtc->status = (statusData & (STATUS_POWER | STATUS_24HOUR))
- | ((statusData & STATUS_INTAE) >> 3)
- | ((statusData & STATUS_INTME) >> 2)
- | ((statusData & STATUS_INTFE) >> 1);
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 1;
-
- sLocked = FALSE;
-
- return TRUE;
-}
-
-bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc)
-{
- u8 statusData;
-
- if (sLocked == TRUE)
- return FALSE;
-
- sLocked = TRUE;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 5;
-
- statusData = STATUS_24HOUR
- | ((rtc->status & SIIRTCINFO_INTAE) << 3)
- | ((rtc->status & SIIRTCINFO_INTME) << 2)
- | ((rtc->status & SIIRTCINFO_INTFE) << 1);
-
- GPIO_PORT_DIRECTION = 7;
-
- WriteCommand(CMD_STATUS | WR);
-
- WriteData(statusData);
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 1;
-
- sLocked = FALSE;
-
- return TRUE;
-}
-
-bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc)
-{
- u8 i;
-
- if (sLocked == TRUE)
- return FALSE;
-
- sLocked = TRUE;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 5;
-
- GPIO_PORT_DIRECTION = 7;
-
- WriteCommand(CMD_DATETIME | RD);
-
- GPIO_PORT_DIRECTION = 5;
-
- for (i = 0; i < DATETIME_BUF_LEN; i++)
- DATETIME_BUF(rtc, i) = ReadData();
-
- INFO_BUF(rtc, OFFSET_HOUR) &= 0x7F;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 1;
-
- sLocked = FALSE;
-
- return TRUE;
-}
-
-bool8 SiiRtcSetDateTime(struct SiiRtcInfo *rtc)
-{
- u8 i;
-
- if (sLocked == TRUE)
- return FALSE;
-
- sLocked = TRUE;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 5;
-
- GPIO_PORT_DIRECTION = 7;
-
- WriteCommand(CMD_DATETIME | WR);
-
- for (i = 0; i < DATETIME_BUF_LEN; i++)
- WriteData(DATETIME_BUF(rtc, i));
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 1;
-
- sLocked = FALSE;
-
- return TRUE;
-}
-
-bool8 SiiRtcGetTime(struct SiiRtcInfo *rtc)
-{
- u8 i;
-
- if (sLocked == TRUE)
- return FALSE;
-
- sLocked = TRUE;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 5;
-
- GPIO_PORT_DIRECTION = 7;
-
- WriteCommand(CMD_TIME | RD);
-
- GPIO_PORT_DIRECTION = 5;
-
- for (i = 0; i < TIME_BUF_LEN; i++)
- TIME_BUF(rtc, i) = ReadData();
-
- INFO_BUF(rtc, OFFSET_HOUR) &= 0x7F;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 1;
-
- sLocked = FALSE;
-
- return TRUE;
-}
-
-bool8 SiiRtcSetTime(struct SiiRtcInfo *rtc)
-{
- u8 i;
-
- if (sLocked == TRUE)
- return FALSE;
-
- sLocked = TRUE;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 5;
-
- GPIO_PORT_DIRECTION = 7;
-
- WriteCommand(CMD_TIME | WR);
-
- for (i = 0; i < TIME_BUF_LEN; i++)
- WriteData(TIME_BUF(rtc, i));
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 1;
-
- sLocked = FALSE;
-
- return TRUE;
-}
-
-bool8 SiiRtcSetAlarm(struct SiiRtcInfo *rtc)
-{
- u8 i;
- u8 alarmData[2];
-
- if (sLocked == TRUE)
- return FALSE;
-
- sLocked = TRUE;
-
- // Decode BCD.
- alarmData[0] = (rtc->alarmHour & 0xF) + 10 * ((rtc->alarmHour >> 4) & 0xF);
-
- // The AM/PM flag must be set correctly even in 24-hour mode.
-
- if (alarmData[0] < 12)
- alarmData[0] = rtc->alarmHour | ALARM_AM;
- else
- alarmData[0] = rtc->alarmHour | ALARM_PM;
-
- alarmData[1] = rtc->alarmMinute;
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 5;
-
- GPIOPortDirection = 7; // Why is this the only instance that uses a symbol?
-
- WriteCommand(CMD_ALARM | WR);
-
- for (i = 0; i < 2; i++)
- WriteData(alarmData[i]);
-
- GPIO_PORT_DATA = 1;
- GPIO_PORT_DATA = 1;
-
- sLocked = FALSE;
-
- return TRUE;
-}
-
-static int WriteCommand(u8 value)
-{
- u8 i;
- u8 temp;
-
- for (i = 0; i < 8; i++)
- {
- temp = ((value >> (7 - i)) & 1);
- GPIO_PORT_DATA = (temp << 1) | 4;
- GPIO_PORT_DATA = (temp << 1) | 4;
- GPIO_PORT_DATA = (temp << 1) | 4;
- GPIO_PORT_DATA = (temp << 1) | 5;
- }
-
- // control reaches end of non-void function
-}
-
-static int WriteData(u8 value)
-{
- u8 i;
- u8 temp;
-
- for (i = 0; i < 8; i++)
- {
- temp = ((value >> i) & 1);
- GPIO_PORT_DATA = (temp << 1) | 4;
- GPIO_PORT_DATA = (temp << 1) | 4;
- GPIO_PORT_DATA = (temp << 1) | 4;
- GPIO_PORT_DATA = (temp << 1) | 5;
- }
-
- // control reaches end of non-void function
-}
-
-static u8 ReadData()
-{
- u8 i;
- u8 temp;
- u8 value;
-
- for (i = 0; i < 8; i++)
- {
- GPIO_PORT_DATA = 4;
- GPIO_PORT_DATA = 4;
- GPIO_PORT_DATA = 4;
- GPIO_PORT_DATA = 4;
- GPIO_PORT_DATA = 4;
- GPIO_PORT_DATA = 5;
-
- temp = ((GPIO_PORT_DATA & 2) >> 1);
- value = (value >> 1) | (temp << 7); // UB: accessing uninitialized var
- }
-
- return value;
-}
-
-static void EnableGpioPortRead()
-{
- GPIO_PORT_READ_ENABLE = 1;
-}
-
-static void DisableGpioPortRead()
-{
- GPIO_PORT_READ_ENABLE = 0;
-}
diff --git a/berry_fix/payload/sym_bss.txt b/berry_fix/payload/sym_bss.txt
deleted file mode 100644
index 3b1c62ae9..000000000
--- a/berry_fix/payload/sym_bss.txt
+++ /dev/null
@@ -1,5 +0,0 @@
- .include "src/main.o"
- .include "src/rtc.o"
- .include "src/flash.o"
- .include "src/agb_flash.o"
- .include "src/siirtc.o"
diff --git a/berry_fix/payload/sym_common.txt b/berry_fix/payload/sym_common.txt
deleted file mode 100644
index 28b47f52e..000000000
--- a/berry_fix/payload/sym_common.txt
+++ /dev/null
@@ -1,29 +0,0 @@
- .include "main.o"
- .include "rtc.o"
-
- .align 4
-gFirstSaveSector: @ 0x03001220
- .space 0x4
-
-gPrevSaveCounter: @ 0x03001224
- .space 0x4
-
-gLastKnownGoodSector: @ 0x03001228
- .space 0x4
-
-gDamagedSaveSectors: @ 0x0300122C
- .space 0x4
-
-gSaveCounter: @ 0x03001230
- .space 0x4
-
-gFastSaveSection: @ 0x03001234
- .space 0x4
-
-gCurSaveChunk:
- .space 0x4
-
-gFlashIdentIsValid: @ 0x0300123C
- .space 0x4
-
- .include "agb_flash.o"
diff --git a/berry_fix/payload/sym_ewram.txt b/berry_fix/payload/sym_ewram.txt
deleted file mode 100644
index 2c61f5e7e..000000000
--- a/berry_fix/payload/sym_ewram.txt
+++ /dev/null
@@ -1,3 +0,0 @@
- .include "src/main.o"
- .include "src/rtc.o"
- .include "src/flash.o"
diff --git a/berry_fix/rom.sha1 b/berry_fix/rom.sha1
deleted file mode 100644
index 145b083b2..000000000
--- a/berry_fix/rom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2eb0a94a913bebfb4cb59ceb57f3f965da55ef6d berry_fix.gba
diff --git a/charmap.txt b/charmap.txt
index 4c01451c8..260607678 100644
--- a/charmap.txt
+++ b/charmap.txt
@@ -84,6 +84,7 @@ SUPER_RE = A0
'“' = B1
'”' = B2
'‘' = B3
+'’' = B4
'\'' = B4
'♂' = B5
'♀' = B6
diff --git a/data/ereader_link_data.s b/data/ereader_link_data.s
deleted file mode 100644
index d3269ebfe..000000000
--- a/data/ereader_link_data.s
+++ /dev/null
@@ -1,6 +0,0 @@
- .section .rodata
-
- .align 2
-gEReaderLinkData_Start::
- .incbin "data/ereader_link_data.bin"
-gEReaderLinkData_End::
diff --git a/data/maps/AncientTomb/scripts.inc b/data/maps/AncientTomb/scripts.inc
index d28ac7bc3..dd2235955 100644
--- a/data/maps/AncientTomb/scripts.inc
+++ b/data/maps/AncientTomb/scripts.inc
@@ -61,7 +61,7 @@ AncientTomb_EventScript_Registeel::
playmoncry SPECIES_REGISTEEL, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
- setwildbattle SPECIES_REGISTEEL, 40, ITEM_NONE
+ setwildbattle SPECIES_REGISTEEL, 40
setflag FLAG_SYS_CTRL_OBJ_DELETE
special StartRegiBattle
waitstate
diff --git a/data/maps/AquaHideout_B1F/scripts.inc b/data/maps/AquaHideout_B1F/scripts.inc
index 4f2eb836f..f644f6ae5 100644
--- a/data/maps/AquaHideout_B1F/scripts.inc
+++ b/data/maps/AquaHideout_B1F/scripts.inc
@@ -29,7 +29,7 @@ AquaHideout_B1F_EventScript_ShowElectrode2::
AquaHideout_B1F_EventScript_Electrode1::
lock
faceplayer
- setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE
+ setwildbattle SPECIES_ELECTRODE, 30
waitse
playmoncry SPECIES_ELECTRODE, CRY_MODE_ENCOUNTER
delay 40
@@ -53,7 +53,7 @@ AquaHideout_B1F_EventScript_DefeatedElectrode1::
AquaHideout_B1F_EventScript_Electrode2::
lock
faceplayer
- setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE
+ setwildbattle SPECIES_ELECTRODE, 30
waitse
playmoncry SPECIES_ELECTRODE, CRY_MODE_ENCOUNTER
delay 40
diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
index fb91ee752..320e12d99 100644
--- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
@@ -31,7 +31,7 @@ BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving::
lockall
msgbox BattleFrontier_BattlePikeLobby_Text_FailedToSaveBeforeQuitting, MSGBOX_DEFAULT
closemessage
- pike_set PIKE_DATA_WIN_STREAK 0
+ pike_set PIKE_DATA_WIN_STREAK, 0
pike_set PIKE_DATA_WIN_STREAK_ACTIVE, FALSE
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
setvar VAR_TEMP_0, 255
diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc
index 9d060214d..45f042e4f 100644
--- a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc
@@ -193,7 +193,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy::
waitmovement 0
pike_get PIKE_DATA_WIN_STREAK
addvar VAR_RESULT, 1
- pike_set PIKE_DATA_WIN_STREAK VAR_RESULT
+ pike_set PIKE_DATA_WIN_STREAK, VAR_RESULT
call BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom
waitstate
end
diff --git a/data/maps/BattleFrontier_OutsideEast/scripts.inc b/data/maps/BattleFrontier_OutsideEast/scripts.inc
index f34373480..e8eec6f16 100644
--- a/data/maps/BattleFrontier_OutsideEast/scripts.inc
+++ b/data/maps/BattleFrontier_OutsideEast/scripts.inc
@@ -129,7 +129,7 @@ BattleFrontier_OutsideEast_EventScript_WaterSudowoodo::
delay 40
waitmoncry
setvar VAR_LAST_TALKED, LOCALID_SUDOWOODO
- setwildbattle SPECIES_SUDOWOODO, 40, ITEM_NONE
+ setwildbattle SPECIES_SUDOWOODO, 40
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc
index 57d54d6fd..68d3124d9 100644
--- a/data/maps/BirthIsland_Exterior/scripts.inc
+++ b/data/maps/BirthIsland_Exterior/scripts.inc
@@ -82,10 +82,7 @@ BirthIsland_Exterior_EventScript_Deoxys::
delay 40
waitmoncry
setvar VAR_LAST_TALKED, LOCALID_DEOXYS
- setvar VAR_0x8004, SPECIES_DEOXYS
- setvar VAR_0x8005, 30 @ level
- setvar VAR_0x8006, ITEM_NONE
- special CreateEventLegalEnemyMon
+ seteventmon SPECIES_DEOXYS, 30
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/DesertRuins/scripts.inc b/data/maps/DesertRuins/scripts.inc
index 2aaa61ebb..21473e87a 100644
--- a/data/maps/DesertRuins/scripts.inc
+++ b/data/maps/DesertRuins/scripts.inc
@@ -61,7 +61,7 @@ DesertRuins_EventScript_Regirock::
playmoncry SPECIES_REGIROCK, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
- setwildbattle SPECIES_REGIROCK, 40, ITEM_NONE
+ setwildbattle SPECIES_REGIROCK, 40
setflag FLAG_SYS_CTRL_OBJ_DELETE
special StartRegiBattle
waitstate
diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc
index 983b4709a..d3d519ed1 100644
--- a/data/maps/FarawayIsland_Interior/scripts.inc
+++ b/data/maps/FarawayIsland_Interior/scripts.inc
@@ -129,10 +129,7 @@ FarawayIsland_Interior_EventScript_Mew::
special DestroyMewEmergingGrassSprite
delay 40
waitmoncry
- setvar VAR_0x8004, SPECIES_MEW
- setvar VAR_0x8005, 30 @ level
- setvar VAR_0x8006, ITEM_NONE
- special CreateEventLegalEnemyMon
+ seteventmon SPECIES_MEW, 30
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/IslandCave/scripts.inc b/data/maps/IslandCave/scripts.inc
index 8f8236a5c..d15802aaa 100644
--- a/data/maps/IslandCave/scripts.inc
+++ b/data/maps/IslandCave/scripts.inc
@@ -94,7 +94,7 @@ IslandCave_EventScript_Regice::
playmoncry SPECIES_REGICE, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
- setwildbattle SPECIES_REGICE, 40, ITEM_NONE
+ setwildbattle SPECIES_REGICE, 40
setflag FLAG_SYS_CTRL_OBJ_DELETE
special StartRegiBattle
waitstate
diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc
index 6628360c1..530d6e959 100644
--- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc
+++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc
@@ -19,7 +19,7 @@ LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars::
setvar VAR_TEMP_D, 0
setvar VAR_TEMP_E, 0
setvar VAR_TEMP_F, 0
- goto_if_defeated TRAINER_COLE LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar
+ goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar
setvar VAR_TEMP_B, 1
LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar::
goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_SetAxleTempVar
@@ -105,7 +105,7 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryRematch::
LavaridgeTown_Gym_1F_EventScript_Cole::
trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_COLE, LOCALID_COLE, LavaridgeTown_Gym_1F_Text_ColeIntro, LavaridgeTown_Gym_1F_Text_ColeDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript
- msgbox LavaridgeTown_Gym_1F_Text_ColePostBattle MSGBOX_AUTOCLOSE
+ msgbox LavaridgeTown_Gym_1F_Text_ColePostBattle, MSGBOX_AUTOCLOSE
end
LavaridgeTown_Gym_EventScript_CheckTrainerScript::
diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
index 993172683..901940ab8 100644
--- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
+++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
@@ -22,7 +22,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos::
checkplayergender
goto_if_eq VAR_RESULT, MALE, LittlerootTown_BrendansHouse_2F_EventScript_Ret
@ Odd that the MaysHouse equivalent was used below instead
- goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 LittlerootTown_MaysHouse_2F_EventScript_Ret
+ goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_MaysHouse_2F_EventScript_Ret
setobjectxyperm LOCALID_RIVAL, 0, 2
setobjectmovementtype LOCALID_RIVAL, MOVEMENT_TYPE_FACE_UP
return
diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
index 7c7f47d2e..acf80f0e4 100644
--- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
+++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
@@ -340,9 +340,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime::
LittlerootTown_ProfessorBirchsLab_EventScript_GiveCyndaquil::
bufferspeciesname STR_VAR_1, SPECIES_CYNDAQUIL
setvar VAR_TEMP_1, SPECIES_CYNDAQUIL
- givemon SPECIES_CYNDAQUIL, 5, ITEM_NONE
- goto_if_eq VAR_RESULT, 0, LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty
- goto_if_eq VAR_RESULT, 1, LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC
+ givemon SPECIES_CYNDAQUIL, 5
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC
hidemonpic
goto Common_EventScript_NoMoreRoomForPokemon
end
@@ -381,9 +381,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil::
LittlerootTown_ProfessorBirchsLab_EventScript_GiveTotodile::
bufferspeciesname STR_VAR_1, SPECIES_TOTODILE
setvar VAR_TEMP_1, SPECIES_TOTODILE
- givemon SPECIES_TOTODILE, 5, ITEM_NONE
- goto_if_eq VAR_RESULT, 0, LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty
- goto_if_eq VAR_RESULT, 1, LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC
+ givemon SPECIES_TOTODILE, 5
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC
hidemonpic
goto Common_EventScript_NoMoreRoomForPokemon
end
@@ -422,9 +422,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile::
LittlerootTown_ProfessorBirchsLab_EventScript_GiveChikorita::
bufferspeciesname STR_VAR_1, SPECIES_CHIKORITA
setvar VAR_TEMP_1, SPECIES_CHIKORITA
- givemon SPECIES_CHIKORITA, 5, ITEM_NONE
- goto_if_eq VAR_RESULT, 0, LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty
- goto_if_eq VAR_RESULT, 1, LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC
+ givemon SPECIES_CHIKORITA, 5
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC
hidemonpic
goto Common_EventScript_NoMoreRoomForPokemon
end
diff --git a/data/maps/MarineCave_End/scripts.inc b/data/maps/MarineCave_End/scripts.inc
index 1d988a444..a7ff58369 100644
--- a/data/maps/MarineCave_End/scripts.inc
+++ b/data/maps/MarineCave_End/scripts.inc
@@ -35,7 +35,7 @@ MarineCave_End_EventScript_Kyogre::
delay 40
waitmoncry
setvar VAR_LAST_TALKED, LOCALID_KYOGRE
- setwildbattle SPECIES_KYOGRE, 70, ITEM_NONE
+ setwildbattle SPECIES_KYOGRE, 70
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/MossdeepCity_StevensHouse/scripts.inc b/data/maps/MossdeepCity_StevensHouse/scripts.inc
index aac12ec2a..0470e977a 100644
--- a/data/maps/MossdeepCity_StevensHouse/scripts.inc
+++ b/data/maps/MossdeepCity_StevensHouse/scripts.inc
@@ -86,9 +86,9 @@ MossdeepCity_StevensHouse_EventScript_LeaveBeldum::
MossdeepCity_StevensHouse_EventScript_GiveBeldum::
setvar VAR_TEMP_1, SPECIES_BELDUM
- givemon SPECIES_BELDUM, 5, ITEM_NONE
- goto_if_eq VAR_RESULT, 0, MossdeepCity_StevensHouse_EventScript_SendBeldumParty
- goto_if_eq VAR_RESULT, 1, MossdeepCity_StevensHouse_EventScript_SendBeldumPC
+ givemon SPECIES_BELDUM, 5
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, MossdeepCity_StevensHouse_EventScript_SendBeldumParty
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, MossdeepCity_StevensHouse_EventScript_SendBeldumPC
goto Common_EventScript_NoMoreRoomForPokemon
end
diff --git a/data/maps/MtPyre_3F/scripts.inc b/data/maps/MtPyre_3F/scripts.inc
index ff15f9939..3c79e807a 100644
--- a/data/maps/MtPyre_3F/scripts.inc
+++ b/data/maps/MtPyre_3F/scripts.inc
@@ -7,7 +7,7 @@ MtPyre_3F_EventScript_William::
end
MtPyre_3F_EventScript_Kayla::
- trainerbattle_single TRAINER_KAYLA, MtPyre_3F_Text_KaylaIntro MtPyre_3F_Text_KaylaDefeat
+ trainerbattle_single TRAINER_KAYLA, MtPyre_3F_Text_KaylaIntro, MtPyre_3F_Text_KaylaDefeat
msgbox MtPyre_3F_Text_KaylaPostBattle, MSGBOX_AUTOCLOSE
end
diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc
index f6687a36f..90cc22989 100644
--- a/data/maps/NavelRock_Bottom/scripts.inc
+++ b/data/maps/NavelRock_Bottom/scripts.inc
@@ -53,10 +53,7 @@ NavelRock_Bottom_EventScript_Lugia::
playmoncry SPECIES_LUGIA, CRY_MODE_ENCOUNTER
waitmoncry
delay 20
- setvar VAR_0x8004, SPECIES_LUGIA
- setvar VAR_0x8005, 70 @ level
- setvar VAR_0x8006, ITEM_NONE
- special CreateEventLegalEnemyMon
+ seteventmon SPECIES_LUGIA, 70
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc
index 2805f5677..10969367a 100644
--- a/data/maps/NavelRock_Top/scripts.inc
+++ b/data/maps/NavelRock_Top/scripts.inc
@@ -57,10 +57,7 @@ NavelRock_Top_EventScript_HoOh::
applymovement LOCALID_HO_OH, NavelRock_Top_Movement_HoOhApproach
waitmovement 0
special RemoveCameraObject
- setvar VAR_0x8004, SPECIES_HO_OH
- setvar VAR_0x8005, 70 @ level
- setvar VAR_0x8006, ITEM_NONE
- special CreateEventLegalEnemyMon
+ seteventmon SPECIES_HO_OH, 70
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/NewMauville_Inside/scripts.inc b/data/maps/NewMauville_Inside/scripts.inc
index 51748380a..244eea436 100644
--- a/data/maps/NewMauville_Inside/scripts.inc
+++ b/data/maps/NewMauville_Inside/scripts.inc
@@ -176,7 +176,7 @@ NewMauville_Inside_EventScript_GeneratorOff::
NewMauville_Inside_EventScript_Voltorb1::
lock
faceplayer
- setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
+ setwildbattle SPECIES_VOLTORB, 25
waitse
playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER
delay 40
@@ -200,7 +200,7 @@ NewMauville_Inside_EventScript_DefeatedVoltorb1::
NewMauville_Inside_EventScript_Voltorb2::
lock
faceplayer
- setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
+ setwildbattle SPECIES_VOLTORB, 25
waitse
playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER
delay 40
@@ -224,7 +224,7 @@ NewMauville_Inside_EventScript_DefeatedVoltorb2::
NewMauville_Inside_EventScript_Voltorb3::
lock
faceplayer
- setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
+ setwildbattle SPECIES_VOLTORB, 25
waitse
playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER
delay 40
diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc
index 0b2227e8b..2060cb03c 100644
--- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc
+++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc
@@ -90,8 +90,8 @@ Route119_WeatherInstitute_2F_EventScript_ReceiveCastform::
msgbox Route119_WeatherInstitute_2F_Text_ThanksPleaseTakePokemon, MSGBOX_DEFAULT
setvar VAR_TEMP_1, SPECIES_CASTFORM
givemon SPECIES_CASTFORM, 25, ITEM_MYSTIC_WATER
- goto_if_eq VAR_RESULT, 0, Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty
- goto_if_eq VAR_RESULT, 1, Route119_WeatherInstitute_2F_EventScript_ReceiveCastformPC
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, Route119_WeatherInstitute_2F_EventScript_ReceiveCastformPC
goto Common_EventScript_NoMoreRoomForPokemon
end
diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc
index baf721a5c..a0bfbc60c 100644
--- a/data/maps/Route120/scripts.inc
+++ b/data/maps/Route120/scripts.inc
@@ -193,7 +193,7 @@ Route120_EventScript_StevenBattleKecleon::
playmoncry SPECIES_KECLEON, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
- setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
+ setwildbattle SPECIES_KECLEON, 30
setvar VAR_0x8009, 0
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
diff --git a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc
index 987828a29..747070645 100644
--- a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc
+++ b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc
@@ -145,9 +145,9 @@ RustboroCity_DevonCorp_2F_EventScript_AnorithReady::
RustboroCity_DevonCorp_2F_EventScript_ReceiveLileep::
setvar VAR_TEMP_1, SPECIES_LILEEP
- givemon SPECIES_LILEEP, 20, ITEM_NONE
- goto_if_eq VAR_RESULT, 0, RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty
- goto_if_eq VAR_RESULT, 1, RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepPC
+ givemon SPECIES_LILEEP, 20
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepPC
goto Common_EventScript_NoMoreRoomForPokemon
end
@@ -190,9 +190,9 @@ RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep::
RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorith::
setvar VAR_TEMP_1, SPECIES_ANORITH
- givemon SPECIES_ANORITH, 20, ITEM_NONE
- goto_if_eq VAR_RESULT, 0, RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty
- goto_if_eq VAR_RESULT, 1, RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithPC
+ givemon SPECIES_ANORITH, 20
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty
+ goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithPC
goto Common_EventScript_NoMoreRoomForPokemon
end
diff --git a/data/maps/SecretBase_BlueCave1/map.json b/data/maps/SecretBase_BlueCave1/map.json
index 3fb6157cc..066cfb385 100644
--- a/data/maps/SecretBase_BlueCave1/map.json
+++ b/data/maps/SecretBase_BlueCave1/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_BlueCave2/map.json b/data/maps/SecretBase_BlueCave2/map.json
index ca15e39f1..b74fa5afb 100644
--- a/data/maps/SecretBase_BlueCave2/map.json
+++ b/data/maps/SecretBase_BlueCave2/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_BlueCave3/map.json b/data/maps/SecretBase_BlueCave3/map.json
index 356b4894d..dd67e2d54 100644
--- a/data/maps/SecretBase_BlueCave3/map.json
+++ b/data/maps/SecretBase_BlueCave3/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_BlueCave4/map.json b/data/maps/SecretBase_BlueCave4/map.json
index 078bada8e..3c97371f5 100644
--- a/data/maps/SecretBase_BlueCave4/map.json
+++ b/data/maps/SecretBase_BlueCave4/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_BrownCave1/map.json b/data/maps/SecretBase_BrownCave1/map.json
index 6f2dc92f2..062eac9f4 100644
--- a/data/maps/SecretBase_BrownCave1/map.json
+++ b/data/maps/SecretBase_BrownCave1/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_BrownCave2/map.json b/data/maps/SecretBase_BrownCave2/map.json
index 11559c12f..eb04f2a8d 100644
--- a/data/maps/SecretBase_BrownCave2/map.json
+++ b/data/maps/SecretBase_BrownCave2/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_BrownCave3/map.json b/data/maps/SecretBase_BrownCave3/map.json
index c2dbb7fc4..1d00ee139 100644
--- a/data/maps/SecretBase_BrownCave3/map.json
+++ b/data/maps/SecretBase_BrownCave3/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_BrownCave4/map.json b/data/maps/SecretBase_BrownCave4/map.json
index e7147ae85..f1fb82eb4 100644
--- a/data/maps/SecretBase_BrownCave4/map.json
+++ b/data/maps/SecretBase_BrownCave4/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_RedCave1/map.json b/data/maps/SecretBase_RedCave1/map.json
index fd264fc6c..e83458a87 100644
--- a/data/maps/SecretBase_RedCave1/map.json
+++ b/data/maps/SecretBase_RedCave1/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_RedCave2/map.json b/data/maps/SecretBase_RedCave2/map.json
index b60b3bbff..9a0ac210f 100644
--- a/data/maps/SecretBase_RedCave2/map.json
+++ b/data/maps/SecretBase_RedCave2/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_RedCave3/map.json b/data/maps/SecretBase_RedCave3/map.json
index 079837a62..ce405a40a 100644
--- a/data/maps/SecretBase_RedCave3/map.json
+++ b/data/maps/SecretBase_RedCave3/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_RedCave4/map.json b/data/maps/SecretBase_RedCave4/map.json
index 10fbbfeb0..2b1ad8c2c 100644
--- a/data/maps/SecretBase_RedCave4/map.json
+++ b/data/maps/SecretBase_RedCave4/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_Shrub1/map.json b/data/maps/SecretBase_Shrub1/map.json
index e0d1015cb..a028cbe62 100644
--- a/data/maps/SecretBase_Shrub1/map.json
+++ b/data/maps/SecretBase_Shrub1/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_Shrub2/map.json b/data/maps/SecretBase_Shrub2/map.json
index 879b7464e..60977e70d 100644
--- a/data/maps/SecretBase_Shrub2/map.json
+++ b/data/maps/SecretBase_Shrub2/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_Shrub3/map.json b/data/maps/SecretBase_Shrub3/map.json
index 6751a7414..a513b0bd2 100644
--- a/data/maps/SecretBase_Shrub3/map.json
+++ b/data/maps/SecretBase_Shrub3/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_Shrub4/map.json b/data/maps/SecretBase_Shrub4/map.json
index c193b8348..6aded553b 100644
--- a/data/maps/SecretBase_Shrub4/map.json
+++ b/data/maps/SecretBase_Shrub4/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_Tree1/map.json b/data/maps/SecretBase_Tree1/map.json
index cd0cad5f0..cd6a0b33a 100644
--- a/data/maps/SecretBase_Tree1/map.json
+++ b/data/maps/SecretBase_Tree1/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_Tree2/map.json b/data/maps/SecretBase_Tree2/map.json
index 1ac393a15..3aad151ff 100644
--- a/data/maps/SecretBase_Tree2/map.json
+++ b/data/maps/SecretBase_Tree2/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_Tree3/map.json b/data/maps/SecretBase_Tree3/map.json
index b7eec2244..498852c02 100644
--- a/data/maps/SecretBase_Tree3/map.json
+++ b/data/maps/SecretBase_Tree3/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_Tree4/map.json b/data/maps/SecretBase_Tree4/map.json
index 0e068ec94..b24d1d8a9 100644
--- a/data/maps/SecretBase_Tree4/map.json
+++ b/data/maps/SecretBase_Tree4/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_YellowCave1/map.json b/data/maps/SecretBase_YellowCave1/map.json
index 1d873bfe2..54916fda3 100644
--- a/data/maps/SecretBase_YellowCave1/map.json
+++ b/data/maps/SecretBase_YellowCave1/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_YellowCave2/map.json b/data/maps/SecretBase_YellowCave2/map.json
index af2e957bc..f9d9a572b 100644
--- a/data/maps/SecretBase_YellowCave2/map.json
+++ b/data/maps/SecretBase_YellowCave2/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_YellowCave3/map.json b/data/maps/SecretBase_YellowCave3/map.json
index d78aa2862..fdcc94c18 100644
--- a/data/maps/SecretBase_YellowCave3/map.json
+++ b/data/maps/SecretBase_YellowCave3/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SecretBase_YellowCave4/map.json b/data/maps/SecretBase_YellowCave4/map.json
index 0ca4bc4d3..246974eaa 100644
--- a/data/maps/SecretBase_YellowCave4/map.json
+++ b/data/maps/SecretBase_YellowCave4/map.json
@@ -26,7 +26,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SecretBase_EventScript_RecordMixTrainer",
- "flag": "FLAG_DECORATION_0"
+ "flag": "FLAG_HIDE_SECRET_BASE_TRAINER"
},
{
"graphics_id": "OBJ_EVENT_GFX_VAR_0",
diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc
index 5c71bbe4b..7b65d9e25 100644
--- a/data/maps/SkyPillar_Top/scripts.inc
+++ b/data/maps/SkyPillar_Top/scripts.inc
@@ -48,7 +48,7 @@ SkyPillar_Top_EventScript_Rayquaza::
playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
- setwildbattle SPECIES_RAYQUAZA, 70, ITEM_NONE
+ setwildbattle SPECIES_RAYQUAZA, 70
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc
index c46cefefc..8486739d9 100644
--- a/data/maps/SouthernIsland_Interior/scripts.inc
+++ b/data/maps/SouthernIsland_Interior/scripts.inc
@@ -47,7 +47,7 @@ SouthernIsland_Interior_EventScript_SetMayGfx::
SouthernIsland_Interior_EventScript_TryLatiEncounter::
lockall
- setvar VAR_0x8008, 12
+ setvar VAR_0x8008, 12 @ Player's Y coordinate. Not read
goto SouthernIsland_Interior_EventScript_Lati
end
@@ -105,17 +105,11 @@ SouthernIsland_Interior_EventScript_Sign::
end
SouthernIsland_Interior_EventScript_SetLatiosBattleVars::
- setvar VAR_0x8004, SPECIES_LATIOS
- setvar VAR_0x8005, 50 @ level
- setvar VAR_0x8006, ITEM_SOUL_DEW
- special CreateEventLegalEnemyMon
+ seteventmon SPECIES_LATIOS, 50, ITEM_SOUL_DEW
return
SouthernIsland_Interior_EventScript_SetLatiasBattleVars::
- setvar VAR_0x8004, SPECIES_LATIAS
- setvar VAR_0x8005, 50 @ level
- setvar VAR_0x8006, ITEM_SOUL_DEW
- special CreateEventLegalEnemyMon
+ seteventmon SPECIES_LATIAS, 50, ITEM_SOUL_DEW
return
SouthernIsland_Interior_Movement_CameraPanUp:
diff --git a/data/maps/TerraCave_End/scripts.inc b/data/maps/TerraCave_End/scripts.inc
index 5f0051bec..8b2732d45 100644
--- a/data/maps/TerraCave_End/scripts.inc
+++ b/data/maps/TerraCave_End/scripts.inc
@@ -35,7 +35,7 @@ TerraCave_End_EventScript_Groudon::
delay 40
waitmoncry
setvar VAR_LAST_TALKED, LOCALID_GROUDON
- setwildbattle SPECIES_GROUDON, 70, ITEM_NONE
+ setwildbattle SPECIES_GROUDON, 70
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
diff --git a/data/mb_berry_fix.gba b/data/mb_berry_fix.gba
new file mode 100755
index 000000000..0afff07f5
--- /dev/null
+++ b/data/mb_berry_fix.gba
Binary files differ
diff --git a/data/pokemon_colosseum.mb b/data/mb_colosseum.gba
index fdeb854a0..fdeb854a0 100644
--- a/data/pokemon_colosseum.mb
+++ b/data/mb_colosseum.gba
Binary files differ
diff --git a/data/ereader_link_data.bin b/data/mb_ereader.gba
index 85057cf4e..85057cf4e 100644
--- a/data/ereader_link_data.bin
+++ b/data/mb_ereader.gba
Binary files differ
diff --git a/data/multiboot_berry_glitch_fix.s b/data/multiboot_berry_glitch_fix.s
index 7d65c0d4d..d0d54d550 100644
--- a/data/multiboot_berry_glitch_fix.s
+++ b/data/multiboot_berry_glitch_fix.s
@@ -1,5 +1,5 @@
.section .rodata
gMultiBootProgram_BerryGlitchFix_Start::
- .incbin "berry_fix/berry_fix.gba"
+ .incbin "data/mb_berry_fix.gba"
gMultiBootProgram_BerryGlitchFix_End::
diff --git a/data/multiboot_ereader.s b/data/multiboot_ereader.s
new file mode 100644
index 000000000..ab97f7279
--- /dev/null
+++ b/data/multiboot_ereader.s
@@ -0,0 +1,6 @@
+ .section .rodata
+
+ .align 2
+gMultiBootProgram_EReader_Start::
+ .incbin "data/mb_ereader.gba"
+gMultiBootProgram_EReader_End::
diff --git a/data/multiboot_pokemon_colosseum.s b/data/multiboot_pokemon_colosseum.s
index 179f8a067..a5f894908 100644
--- a/data/multiboot_pokemon_colosseum.s
+++ b/data/multiboot_pokemon_colosseum.s
@@ -1,5 +1,5 @@
.section .rodata
gMultiBootProgram_PokemonColosseum_Start::
- .incbin "data/pokemon_colosseum.mb"
+ .incbin "data/mb_colosseum.gba"
gMultiBootProgram_PokemonColosseum_End::
diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc
index 48ec7918a..51b7f966e 100644
--- a/data/script_cmd_table.inc
+++ b/data/script_cmd_table.inc
@@ -80,16 +80,16 @@ gScriptCmdTable::
.4byte ScrCmd_checkdecor @ 0x4d
.4byte ScrCmd_checkdecorspace @ 0x4e
.4byte ScrCmd_applymovement @ 0x4f
- .4byte ScrCmd_applymovement_at @ 0x50
+ .4byte ScrCmd_applymovementat @ 0x50
.4byte ScrCmd_waitmovement @ 0x51
- .4byte ScrCmd_waitmovement_at @ 0x52
+ .4byte ScrCmd_waitmovementat @ 0x52
.4byte ScrCmd_removeobject @ 0x53
- .4byte ScrCmd_removeobject_at @ 0x54
+ .4byte ScrCmd_removeobjectat @ 0x54
.4byte ScrCmd_addobject @ 0x55
- .4byte ScrCmd_addobject_at @ 0x56
+ .4byte ScrCmd_addobjectat @ 0x56
.4byte ScrCmd_setobjectxy @ 0x57
- .4byte ScrCmd_showobject_at @ 0x58
- .4byte ScrCmd_hideobject_at @ 0x59
+ .4byte ScrCmd_showobjectat @ 0x58
+ .4byte ScrCmd_hideobjectat @ 0x59
.4byte ScrCmd_faceplayer @ 0x5a
.4byte ScrCmd_turnobject @ 0x5b
.4byte ScrCmd_trainerbattle @ 0x5c
diff --git a/data/scripts/kecleon.inc b/data/scripts/kecleon.inc
index f51dc2fbd..634551902 100644
--- a/data/scripts/kecleon.inc
+++ b/data/scripts/kecleon.inc
@@ -71,7 +71,7 @@ EventScript_BattleKecleon::
playmoncry SPECIES_KECLEON, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
- setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
+ setwildbattle SPECIES_KECLEON, 30
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc
index d21bb9aab..918a9d630 100644
--- a/data/scripts/secret_base.inc
+++ b/data/scripts/secret_base.inc
@@ -133,7 +133,7 @@ SecretBase_EventScript_InitSecretBase::
closemessage
playse SE_EXIT
setvar VAR_INIT_SECRET_BASE, 0
- setflag FLAG_DECORATION_0
+ setflag FLAG_HIDE_SECRET_BASE_TRAINER
special SetPlayerSecretBase
special EnterSecretBase
setvar VAR_0x8004, 0
@@ -172,14 +172,14 @@ SecretBase_EventScript_Enter::
playse SE_EXIT
special IsCurSecretBaseOwnedByAnotherPlayer
goto_if_eq VAR_RESULT, FALSE, SecretBase_EventScript_EnterPlayersBase
- clearflag FLAG_DECORATION_0
+ clearflag FLAG_HIDE_SECRET_BASE_TRAINER
special EnterSecretBase
setvar VAR_SECRET_BASE_INITIALIZED, 0
waitstate
end
SecretBase_EventScript_EnterPlayersBase::
- setflag FLAG_DECORATION_0
+ setflag FLAG_HIDE_SECRET_BASE_TRAINER
special EnterSecretBase
setvar VAR_SECRET_BASE_INITIALIZED, 0
waitstate
diff --git a/gflib/bg.c b/gflib/bg.c
index c3a4be1d4..c96bcbc23 100644
--- a/gflib/bg.c
+++ b/gflib/bg.c
@@ -776,75 +776,75 @@ void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dis
SetBgAffineInternal(bg, srcCenterX, srcCenterY, dispCenterX, dispCenterY, scaleX, scaleY, rotationAngle);
}
-u8 Unused_AdjustBgMosaic(u8 a1, u8 a2)
+u8 Unused_AdjustBgMosaic(u8 val, u8 mode)
{
- u16 result = GetGpuReg(REG_OFFSET_MOSAIC);
- s16 test1 = result & 0xF;
- s16 test2 = (result >> 4) & 0xF;
+ u16 mosaic = GetGpuReg(REG_OFFSET_MOSAIC);
+ s16 bgH = mosaic & 0xF;
+ s16 bgV = (mosaic >> 4) & 0xF;
- result &= 0xFF00;
+ mosaic &= 0xFF00; // clear background mosaic sizes
- switch (a2)
+ switch (mode)
{
- case 0:
+ case BG_MOSAIC_SET_HV:
default:
- test1 = a1 & 0xF;
- test2 = a1 >> 0x4;
+ bgH = val & 0xF;
+ bgV = val >> 0x4;
break;
- case 1:
- test1 = a1 & 0xF;
+ case BG_MOSAIC_SET_H:
+ bgH = val & 0xF;
break;
- case 2:
- if ((test1 + a1) > 0xF)
+ case BG_MOSAIC_ADD_H:
+ if ((bgH + val) > 0xF)
{
- test1 = 0xF;
+ bgH = 0xF;
}
else
{
- test1 += a1;
+ bgH += val;
}
break;
- case 3:
- if ((test1 - a1) < 0)
+ case BG_MOSAIC_SUB_H:
+ if ((bgH - val) < 0)
{
- test1 = 0x0;
+ bgH = 0x0;
}
else
{
- test1 -= a1;
+ bgH -= val;
}
break;
- case 4:
- test2 = a1 & 0xF;
+ case BG_MOSAIC_SET_V:
+ bgV = val & 0xF;
break;
- case 5:
- if ((test2 + a1) > 0xF)
+ case BG_MOSAIC_ADD_V:
+ if ((bgV + val) > 0xF)
{
- test2 = 0xF;
+ bgV = 0xF;
}
else
{
- test2 += a1;
+ bgV += val;
}
break;
- case 6:
- if ((test2 - a1) < 0)
+ case BG_MOSAIC_SUB_V:
+ if ((bgV - val) < 0)
{
- test2 = 0x0;
+ bgV = 0x0;
}
else
{
- test2 -= a1;
+ bgV -= val;
}
break;
}
- result |= ((test2 << 0x4) & 0xF0);
- result |= (test1 & 0xF);
+ mosaic |= ((bgV << 0x4) & 0xF0);
+ mosaic |= (bgH & 0xF);
- SetGpuReg(REG_OFFSET_MOSAIC, result);
+ SetGpuReg(REG_OFFSET_MOSAIC, mosaic);
- return result;
+ return mosaic;
}
void SetBgTilemapBuffer(u8 bg, void *tilemap)
diff --git a/gflib/bg.h b/gflib/bg.h
index 3a0bf3bf9..d8b5a5404 100644
--- a/gflib/bg.h
+++ b/gflib/bg.h
@@ -28,6 +28,17 @@ enum {
BG_COORD_SUB,
};
+// Modes for Unused_AdjustBgMosaic
+enum {
+ BG_MOSAIC_SET_HV,
+ BG_MOSAIC_SET_H,
+ BG_MOSAIC_ADD_H,
+ BG_MOSAIC_SUB_H,
+ BG_MOSAIC_SET_V,
+ BG_MOSAIC_ADD_V,
+ BG_MOSAIC_SUB_V,
+};
+
struct BgTemplate
{
u16 bg:2; // 0x1, 0x2 -> 0x3
diff --git a/graphics/misc/bag.pal b/graphics/bag/bag.pal
index 3c7c2370a..3c7c2370a 100644
--- a/graphics/misc/bag.pal
+++ b/graphics/bag/bag.pal
diff --git a/graphics/misc/bag_female.png b/graphics/bag/bag_female.png
index 65446e269..65446e269 100644
--- a/graphics/misc/bag_female.png
+++ b/graphics/bag/bag_female.png
Binary files differ
diff --git a/graphics/misc/bag_male.png b/graphics/bag/bag_male.png
index a12c66f39..a12c66f39 100644
--- a/graphics/misc/bag_male.png
+++ b/graphics/bag/bag_male.png
Binary files differ
diff --git a/graphics/interface/bag_pyramid.pal b/graphics/bag/bag_pyramid.pal
index 200b001b5..200b001b5 100644
--- a/graphics/interface/bag_pyramid.pal
+++ b/graphics/bag/bag_pyramid.pal
diff --git a/graphics/interface/bag_pyramid.png b/graphics/bag/bag_pyramid.png
index 42b709057..42b709057 100644
--- a/graphics/interface/bag_pyramid.png
+++ b/graphics/bag/bag_pyramid.png
Binary files differ
diff --git a/graphics/interface/berry_tag.bin b/graphics/bag/berry_tag.bin
index fc809d6a7..fc809d6a7 100644
--- a/graphics/interface/berry_tag.bin
+++ b/graphics/bag/berry_tag.bin
Binary files differ
diff --git a/graphics/interface/berry_tag_screen.pal b/graphics/bag/berry_tag_screen.pal
index a55550e8f..a55550e8f 100644
--- a/graphics/interface/berry_tag_screen.pal
+++ b/graphics/bag/berry_tag_screen.pal
diff --git a/graphics/interface/berry_tag_title.bin b/graphics/bag/berry_tag_title.bin
index 560eb6cfa..560eb6cfa 100644
--- a/graphics/interface/berry_tag_title.bin
+++ b/graphics/bag/berry_tag_title.bin
Binary files differ
diff --git a/graphics/interface/check_berry.pal b/graphics/bag/check_berry.pal
index f4f6cb4e3..f4f6cb4e3 100644
--- a/graphics/interface/check_berry.pal
+++ b/graphics/bag/check_berry.pal
diff --git a/graphics/interface/check_berry.png b/graphics/bag/check_berry.png
index 56fc2966b..56fc2966b 100644
--- a/graphics/interface/check_berry.png
+++ b/graphics/bag/check_berry.png
Binary files differ
diff --git a/graphics/interface/check_berry_circle.png b/graphics/bag/check_berry_circle.png
index 4d66237e5..4d66237e5 100644
--- a/graphics/interface/check_berry_circle.png
+++ b/graphics/bag/check_berry_circle.png
Binary files differ
diff --git a/graphics/interface/hm.png b/graphics/bag/hm.png
index d6c7e8de9..d6c7e8de9 100644
--- a/graphics/interface/hm.png
+++ b/graphics/bag/hm.png
Binary files differ
diff --git a/graphics/interface/bag_screen_tilemap.bin b/graphics/bag/menu.bin
index c2ceaf139..c2ceaf139 100644
--- a/graphics/interface/bag_screen_tilemap.bin
+++ b/graphics/bag/menu.bin
Binary files differ
diff --git a/graphics/interface/bag_screen.png b/graphics/bag/menu.png
index e634cdb27..e634cdb27 100644
--- a/graphics/interface/bag_screen.png
+++ b/graphics/bag/menu.png
Binary files differ
diff --git a/graphics/interface/bag_screen_female.pal b/graphics/bag/menu_female.pal
index 07057ec9a..07057ec9a 100644
--- a/graphics/interface/bag_screen_female.pal
+++ b/graphics/bag/menu_female.pal
diff --git a/graphics/interface/bag_screen_male.pal b/graphics/bag/menu_male.pal
index e773c384c..e773c384c 100644
--- a/graphics/interface/bag_screen_male.pal
+++ b/graphics/bag/menu_male.pal
diff --git a/graphics/interface/bag_pyramid_tilemap.bin b/graphics/bag/menu_pyramid.bin
index 28ad3f927..28ad3f927 100644
--- a/graphics/interface/bag_pyramid_tilemap.bin
+++ b/graphics/bag/menu_pyramid.bin
Binary files differ
diff --git a/graphics/interface/bag_pyramid_interface.pal b/graphics/bag/menu_pyramid.pal
index dcfdcf2ef..dcfdcf2ef 100644
--- a/graphics/interface/bag_pyramid_interface.pal
+++ b/graphics/bag/menu_pyramid.pal
diff --git a/graphics/interface/bag_spinner.png b/graphics/bag/rotating_ball.png
index 4302bd77a..4302bd77a 100644
--- a/graphics/interface/bag_spinner.png
+++ b/graphics/bag/rotating_ball.png
Binary files differ
diff --git a/graphics/interface/select_button.png b/graphics/bag/select_button.png
index bded587fd..bded587fd 100644
--- a/graphics/interface/select_button.png
+++ b/graphics/bag/select_button.png
Binary files differ
diff --git a/graphics/interface/ball/dive.png b/graphics/balls/dive.png
index 5be9b1ed6..5be9b1ed6 100644
--- a/graphics/interface/ball/dive.png
+++ b/graphics/balls/dive.png
Binary files differ
diff --git a/graphics/interface/ball/great.png b/graphics/balls/great.png
index 0c054d7d3..0c054d7d3 100644
--- a/graphics/interface/ball/great.png
+++ b/graphics/balls/great.png
Binary files differ
diff --git a/graphics/interface/ball/luxury.png b/graphics/balls/luxury.png
index 8056416b2..8056416b2 100644
--- a/graphics/interface/ball/luxury.png
+++ b/graphics/balls/luxury.png
Binary files differ
diff --git a/graphics/interface/ball/master.png b/graphics/balls/master.png
index 9787a8896..9787a8896 100644
--- a/graphics/interface/ball/master.png
+++ b/graphics/balls/master.png
Binary files differ
diff --git a/graphics/interface/ball/nest.png b/graphics/balls/nest.png
index a2fa81c1e..a2fa81c1e 100644
--- a/graphics/interface/ball/nest.png
+++ b/graphics/balls/nest.png
Binary files differ
diff --git a/graphics/interface/ball/net.png b/graphics/balls/net.png
index 6fef48101..6fef48101 100644
--- a/graphics/interface/ball/net.png
+++ b/graphics/balls/net.png
Binary files differ
diff --git a/graphics/interface/ball_open.png b/graphics/balls/open.png
index 1030f4942..1030f4942 100644
--- a/graphics/interface/ball_open.png
+++ b/graphics/balls/open.png
Binary files differ
diff --git a/graphics/interface/ball/poke.png b/graphics/balls/poke.png
index 1e4aba669..1e4aba669 100644
--- a/graphics/interface/ball/poke.png
+++ b/graphics/balls/poke.png
Binary files differ
diff --git a/graphics/interface/ball/premier.png b/graphics/balls/premier.png
index f5aaadbaf..f5aaadbaf 100644
--- a/graphics/interface/ball/premier.png
+++ b/graphics/balls/premier.png
Binary files differ
diff --git a/graphics/interface/ball/repeat.png b/graphics/balls/repeat.png
index 5abe789a2..5abe789a2 100644
--- a/graphics/interface/ball/repeat.png
+++ b/graphics/balls/repeat.png
Binary files differ
diff --git a/graphics/interface/ball/safari.png b/graphics/balls/safari.png
index 0dd49aef9..0dd49aef9 100644
--- a/graphics/interface/ball/safari.png
+++ b/graphics/balls/safari.png
Binary files differ
diff --git a/graphics/interface/ball/timer.png b/graphics/balls/timer.png
index 2b63f6795..2b63f6795 100644
--- a/graphics/interface/ball/timer.png
+++ b/graphics/balls/timer.png
Binary files differ
diff --git a/graphics/interface/ball/ultra.png b/graphics/balls/ultra.png
index 1221cec4e..1221cec4e 100644
--- a/graphics/interface/ball/ultra.png
+++ b/graphics/balls/ultra.png
Binary files differ
diff --git a/graphics/battle_frontier/tourney_line_mask_map.bin b/graphics/battle_frontier/tourney_tree.bin
index 7f3e36737..7f3e36737 100644
--- a/graphics/battle_frontier/tourney_line_mask_map.bin
+++ b/graphics/battle_frontier/tourney_tree.bin
Binary files differ
diff --git a/graphics/battle_frontier/tourney_bg.png b/graphics/battle_frontier/tourney_tree.png
index f60dd49d3..f60dd49d3 100644
--- a/graphics/battle_frontier/tourney_bg.png
+++ b/graphics/battle_frontier/tourney_tree.png
Binary files differ
diff --git a/graphics/interface/hpbar_anim.png b/graphics/battle_interface/hpbar_anim_unused.png
index d4e79fdae..d4e79fdae 100644
--- a/graphics/interface/hpbar_anim.png
+++ b/graphics/battle_interface/hpbar_anim_unused.png
Binary files differ
diff --git a/graphics/interface/party_menu_hpbar.png b/graphics/battle_interface/hpbar_unused.png
index 763b91210..763b91210 100644
--- a/graphics/interface/party_menu_hpbar.png
+++ b/graphics/battle_interface/hpbar_unused.png
Binary files differ
diff --git a/graphics/interface/numbers1.png b/graphics/battle_interface/numbers1.png
index f15757958..f15757958 100644
--- a/graphics/interface/numbers1.png
+++ b/graphics/battle_interface/numbers1.png
Binary files differ
diff --git a/graphics/interface/numbers2.png b/graphics/battle_interface/numbers2.png
index 4ddf364bf..4ddf364bf 100644
--- a/graphics/interface/numbers2.png
+++ b/graphics/battle_interface/numbers2.png
Binary files differ
diff --git a/graphics/battle_frontier/text_pp.pal b/graphics/battle_interface/text_pp.pal
index 8c2a27418..8c2a27418 100644
--- a/graphics/battle_frontier/text_pp.pal
+++ b/graphics/battle_interface/text_pp.pal
diff --git a/graphics/berry_crush/crusher.bin b/graphics/berry_crush/text_windows.bin
index c6cc0edb1..c6cc0edb1 100644
--- a/graphics/berry_crush/crusher.bin
+++ b/graphics/berry_crush/text_windows.bin
diff --git a/graphics/unused/intro_birch_beauty.png b/graphics/birch_speech/unused_beauty.png
index f13221cf5..f13221cf5 100644
--- a/graphics/unused/intro_birch_beauty.png
+++ b/graphics/birch_speech/unused_beauty.png
Binary files differ
diff --git a/graphics/misc/cave_transition_black.pal b/graphics/cave_transition/black.pal
index 4b0812f09..4b0812f09 100644
--- a/graphics/misc/cave_transition_black.pal
+++ b/graphics/cave_transition/black.pal
diff --git a/graphics/misc/cave_transition_enter.pal b/graphics/cave_transition/enter.pal
index fea15a176..fea15a176 100644
--- a/graphics/misc/cave_transition_enter.pal
+++ b/graphics/cave_transition/enter.pal
diff --git a/graphics/misc/cave_transition_exit.pal b/graphics/cave_transition/exit.pal
index 09eb37624..09eb37624 100644
--- a/graphics/misc/cave_transition_exit.pal
+++ b/graphics/cave_transition/exit.pal
diff --git a/graphics/misc/cave_transition_map.bin b/graphics/cave_transition/tilemap.bin
index 4293bfd1c..4293bfd1c 100644
--- a/graphics/misc/cave_transition_map.bin
+++ b/graphics/cave_transition/tilemap.bin
Binary files differ
diff --git a/graphics/misc/cave_transition.png b/graphics/cave_transition/tiles.png
index dd265149f..dd265149f 100644
--- a/graphics/misc/cave_transition.png
+++ b/graphics/cave_transition/tiles.png
Binary files differ
diff --git a/graphics/misc/cave_transition_white.pal b/graphics/cave_transition/white.pal
index 98a1fb3c8..98a1fb3c8 100644
--- a/graphics/misc/cave_transition_white.pal
+++ b/graphics/cave_transition/white.pal
diff --git a/graphics/misc/decoration_putting_away_cursor.png b/graphics/decorations/put_away_cursor.png
index 2dc8ed604..2dc8ed604 100644
--- a/graphics/misc/decoration_putting_away_cursor.png
+++ b/graphics/decorations/put_away_cursor.png
Binary files differ
diff --git a/graphics/misc/diploma_hoenn.pal b/graphics/diploma/hoenn.pal
index 2890eb24a..2890eb24a 100644
--- a/graphics/misc/diploma_hoenn.pal
+++ b/graphics/diploma/hoenn.pal
diff --git a/graphics/misc/diploma_national.pal b/graphics/diploma/national.pal
index 03c37bf22..03c37bf22 100644
--- a/graphics/misc/diploma_national.pal
+++ b/graphics/diploma/national.pal
diff --git a/graphics/misc/diploma_map.bin b/graphics/diploma/tilemap.bin
index e9a47fa44..e9a47fa44 100644
--- a/graphics/misc/diploma_map.bin
+++ b/graphics/diploma/tilemap.bin
Binary files differ
diff --git a/graphics/misc/diploma.png b/graphics/diploma/tiles.png
index d9607dce6..d9607dce6 100644
--- a/graphics/misc/diploma.png
+++ b/graphics/diploma/tiles.png
Binary files differ
diff --git a/graphics/misc/deoxys1.pal b/graphics/field_effects/palettes/deoxys_rock_1.pal
index d90c4cb38..d90c4cb38 100644
--- a/graphics/misc/deoxys1.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_1.pal
diff --git a/graphics/misc/deoxys10.pal b/graphics/field_effects/palettes/deoxys_rock_10.pal
index 8bdd860fb..8bdd860fb 100644
--- a/graphics/misc/deoxys10.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_10.pal
diff --git a/graphics/misc/deoxys11.pal b/graphics/field_effects/palettes/deoxys_rock_11.pal
index 9a9ee2530..9a9ee2530 100644
--- a/graphics/misc/deoxys11.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_11.pal
diff --git a/graphics/misc/deoxys2.pal b/graphics/field_effects/palettes/deoxys_rock_2.pal
index 38806db0f..38806db0f 100644
--- a/graphics/misc/deoxys2.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_2.pal
diff --git a/graphics/misc/deoxys3.pal b/graphics/field_effects/palettes/deoxys_rock_3.pal
index 24db0e343..24db0e343 100644
--- a/graphics/misc/deoxys3.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_3.pal
diff --git a/graphics/misc/deoxys4.pal b/graphics/field_effects/palettes/deoxys_rock_4.pal
index 5db08f366..5db08f366 100644
--- a/graphics/misc/deoxys4.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_4.pal
diff --git a/graphics/misc/deoxys5.pal b/graphics/field_effects/palettes/deoxys_rock_5.pal
index 25a62aae6..25a62aae6 100644
--- a/graphics/misc/deoxys5.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_5.pal
diff --git a/graphics/misc/deoxys6.pal b/graphics/field_effects/palettes/deoxys_rock_6.pal
index 0f636873e..0f636873e 100644
--- a/graphics/misc/deoxys6.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_6.pal
diff --git a/graphics/misc/deoxys7.pal b/graphics/field_effects/palettes/deoxys_rock_7.pal
index 2dba57eef..2dba57eef 100644
--- a/graphics/misc/deoxys7.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_7.pal
diff --git a/graphics/misc/deoxys8.pal b/graphics/field_effects/palettes/deoxys_rock_8.pal
index d46c26996..d46c26996 100644
--- a/graphics/misc/deoxys8.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_8.pal
diff --git a/graphics/misc/deoxys9.pal b/graphics/field_effects/palettes/deoxys_rock_9.pal
index f65fee065..f65fee065 100644
--- a/graphics/misc/deoxys9.pal
+++ b/graphics/field_effects/palettes/deoxys_rock_9.pal
diff --git a/graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.png b/graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.png
new file mode 100644
index 000000000..bc4f27a40
--- /dev/null
+++ b/graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.png
Binary files differ
diff --git a/graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.png b/graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.png
new file mode 100644
index 000000000..48cd43d97
--- /dev/null
+++ b/graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.png
Binary files differ
diff --git a/graphics/field_effects/pics/deoxys_rock_fragment_top_left.png b/graphics/field_effects/pics/deoxys_rock_fragment_top_left.png
new file mode 100644
index 000000000..f0eb9c0cb
--- /dev/null
+++ b/graphics/field_effects/pics/deoxys_rock_fragment_top_left.png
Binary files differ
diff --git a/graphics/field_effects/pics/deoxys_rock_fragment_top_right.png b/graphics/field_effects/pics/deoxys_rock_fragment_top_right.png
new file mode 100644
index 000000000..1fac486c9
--- /dev/null
+++ b/graphics/field_effects/pics/deoxys_rock_fragment_top_right.png
Binary files differ
diff --git a/graphics/field_effects/pics/emotion_exclamation.png b/graphics/field_effects/pics/emotion_exclamation.png
new file mode 100644
index 000000000..798b83092
--- /dev/null
+++ b/graphics/field_effects/pics/emotion_exclamation.png
Binary files differ
diff --git a/graphics/field_effects/pics/emotion_heart.png b/graphics/field_effects/pics/emotion_heart.png
new file mode 100644
index 000000000..783a1e3bd
--- /dev/null
+++ b/graphics/field_effects/pics/emotion_heart.png
Binary files differ
diff --git a/graphics/field_effects/pics/emotion_question.png b/graphics/field_effects/pics/emotion_question.png
new file mode 100644
index 000000000..4907f14b7
--- /dev/null
+++ b/graphics/field_effects/pics/emotion_question.png
Binary files differ
diff --git a/graphics/misc/field_move_streaks_map.bin b/graphics/field_effects/pics/field_move_streaks.bin
index 466f456be..466f456be 100644
--- a/graphics/misc/field_move_streaks_map.bin
+++ b/graphics/field_effects/pics/field_move_streaks.bin
Binary files differ
diff --git a/graphics/misc/field_move_streaks.png b/graphics/field_effects/pics/field_move_streaks.png
index 8becc4413..8becc4413 100644
--- a/graphics/misc/field_move_streaks.png
+++ b/graphics/field_effects/pics/field_move_streaks.png
Binary files differ
diff --git a/graphics/misc/darkness_field_move_streaks_map.bin b/graphics/field_effects/pics/field_move_streaks_indoors.bin
index f7c2f2142..f7c2f2142 100644
--- a/graphics/misc/darkness_field_move_streaks_map.bin
+++ b/graphics/field_effects/pics/field_move_streaks_indoors.bin
Binary files differ
diff --git a/graphics/misc/darkness_field_move_streaks.png b/graphics/field_effects/pics/field_move_streaks_indoors.png
index 825d695eb..825d695eb 100644
--- a/graphics/misc/darkness_field_move_streaks.png
+++ b/graphics/field_effects/pics/field_move_streaks_indoors.png
Binary files differ
diff --git a/graphics/field_effects/pics/hof_monitor_big.png b/graphics/field_effects/pics/hof_monitor_big.png
new file mode 100644
index 000000000..c70046ad7
--- /dev/null
+++ b/graphics/field_effects/pics/hof_monitor_big.png
Binary files differ
diff --git a/graphics/field_effects/pics/hof_monitor_small.png b/graphics/field_effects/pics/hof_monitor_small.png
new file mode 100644
index 000000000..368bbfce4
--- /dev/null
+++ b/graphics/field_effects/pics/hof_monitor_small.png
Binary files differ
diff --git a/graphics/field_effects/pics/pokeball_glow.png b/graphics/field_effects/pics/pokeball_glow.png
new file mode 100644
index 000000000..6e074afc3
--- /dev/null
+++ b/graphics/field_effects/pics/pokeball_glow.png
Binary files differ
diff --git a/graphics/misc/pokecenter_monitor/0.png b/graphics/field_effects/pics/pokecenter_monitor/0.png
index 474883908..474883908 100644
--- a/graphics/misc/pokecenter_monitor/0.png
+++ b/graphics/field_effects/pics/pokecenter_monitor/0.png
Binary files differ
diff --git a/graphics/misc/pokecenter_monitor/1.png b/graphics/field_effects/pics/pokecenter_monitor/1.png
index 1a2606011..1a2606011 100644
--- a/graphics/misc/pokecenter_monitor/1.png
+++ b/graphics/field_effects/pics/pokecenter_monitor/1.png
Binary files differ
diff --git a/graphics/misc/spotlight.png b/graphics/field_effects/pics/spotlight.png
index 62e21e411..62e21e411 100644
--- a/graphics/misc/spotlight.png
+++ b/graphics/field_effects/pics/spotlight.png
Binary files differ
diff --git a/graphics/misc/main_menu_bg.pal b/graphics/interface/main_menu_bg.pal
index 7aca54c52..7aca54c52 100644
--- a/graphics/misc/main_menu_bg.pal
+++ b/graphics/interface/main_menu_bg.pal
diff --git a/graphics/misc/main_menu_text.pal b/graphics/interface/main_menu_text.pal
index 25a3ac1d2..25a3ac1d2 100644
--- a/graphics/misc/main_menu_text.pal
+++ b/graphics/interface/main_menu_text.pal
diff --git a/graphics/misc/mon_markings.png b/graphics/interface/mon_markings.png
index 013173292..013173292 100644
--- a/graphics/misc/mon_markings.png
+++ b/graphics/interface/mon_markings.png
Binary files differ
diff --git a/graphics/misc/mon_markings_menu.png b/graphics/interface/mon_markings_menu.png
index 818446557..818446557 100644
--- a/graphics/misc/mon_markings_menu.png
+++ b/graphics/interface/mon_markings_menu.png
Binary files differ
diff --git a/graphics/misc/option_menu_equals_sign.png b/graphics/interface/option_menu_equals_sign.png
index 7e56e3cc3..7e56e3cc3 100644
--- a/graphics/misc/option_menu_equals_sign.png
+++ b/graphics/interface/option_menu_equals_sign.png
Binary files differ
diff --git a/graphics/misc/option_menu_text.pal b/graphics/interface/option_menu_text.pal
index e7d6c330a..e7d6c330a 100644
--- a/graphics/misc/option_menu_text.pal
+++ b/graphics/interface/option_menu_text.pal
diff --git a/graphics/interface/bag_swap.png b/graphics/interface/swap_line.png
index a9bed1e8a..a9bed1e8a 100644
--- a/graphics/interface/bag_swap.png
+++ b/graphics/interface/swap_line.png
Binary files differ
diff --git a/graphics/minigame_countdown/321start.png b/graphics/link/321start.png
index 2823feb81..2823feb81 100644
--- a/graphics/minigame_countdown/321start.png
+++ b/graphics/link/321start.png
Binary files differ
diff --git a/graphics/minigame_countdown/321start_static.png b/graphics/link/321start_static.png
index 343fd3e7d..343fd3e7d 100644
--- a/graphics/minigame_countdown/321start_static.png
+++ b/graphics/link/321start_static.png
Binary files differ
diff --git a/graphics/interface/comm_error_bg.png b/graphics/link/comm_error_bg.png
index 83ba13d11..83ba13d11 100644
--- a/graphics/interface/comm_error_bg.png
+++ b/graphics/link/comm_error_bg.png
Binary files differ
diff --git a/graphics/interface/link_test_digits.png b/graphics/link/test_digits.png
index fe71d3387..fe71d3387 100644
--- a/graphics/interface/link_test_digits.png
+++ b/graphics/link/test_digits.png
Binary files differ
diff --git a/graphics/interface/wireless_link_display.bin b/graphics/link/wireless_display.bin
index 1832ae850..1832ae850 100644
--- a/graphics/interface/wireless_link_display.bin
+++ b/graphics/link/wireless_display.bin
Binary files differ
diff --git a/graphics/interface/wireless_link_display.png b/graphics/link/wireless_display.png
index 3946b9b22..3946b9b22 100644
--- a/graphics/interface/wireless_link_display.png
+++ b/graphics/link/wireless_display.png
Binary files differ
diff --git a/graphics/interface/wireless_link_icon.png b/graphics/link/wireless_icon.png
index 62c9c0ef7..62c9c0ef7 100644
--- a/graphics/interface/wireless_link_icon.png
+++ b/graphics/link/wireless_icon.png
Binary files differ
diff --git a/graphics/interface/wireless_info_screen.bin b/graphics/link/wireless_info_screen.bin
index 7cd8123c2..7cd8123c2 100644
--- a/graphics/interface/wireless_info_screen.bin
+++ b/graphics/link/wireless_info_screen.bin
Binary files differ
diff --git a/graphics/interface/wireless_info_screen.pal b/graphics/link/wireless_info_screen.pal
index 8e0bc0581..8e0bc0581 100644
--- a/graphics/interface/wireless_info_screen.pal
+++ b/graphics/link/wireless_info_screen.pal
diff --git a/graphics/interface/wireless_info_screen.png b/graphics/link/wireless_info_screen.png
index 796b2771a..796b2771a 100644
--- a/graphics/interface/wireless_info_screen.png
+++ b/graphics/link/wireless_info_screen.png
Binary files differ
diff --git a/graphics/interface/map_popup/brick.png b/graphics/map_popup/brick.png
index 8fef0a1c2..8fef0a1c2 100644
--- a/graphics/interface/map_popup/brick.png
+++ b/graphics/map_popup/brick.png
Binary files differ
diff --git a/graphics/interface/map_popup/brick_outline.png b/graphics/map_popup/brick_outline.png
index be4b6f95a..be4b6f95a 100644
--- a/graphics/interface/map_popup/brick_outline.png
+++ b/graphics/map_popup/brick_outline.png
Binary files differ
diff --git a/graphics/interface/map_popup/marble.png b/graphics/map_popup/marble.png
index d79b9ec34..d79b9ec34 100644
--- a/graphics/interface/map_popup/marble.png
+++ b/graphics/map_popup/marble.png
Binary files differ
diff --git a/graphics/interface/map_popup/marble_outline.png b/graphics/map_popup/marble_outline.png
index 54f3021ea..54f3021ea 100644
--- a/graphics/interface/map_popup/marble_outline.png
+++ b/graphics/map_popup/marble_outline.png
Binary files differ
diff --git a/graphics/interface/map_popup/stone.png b/graphics/map_popup/stone.png
index fe3b7e29d..fe3b7e29d 100644
--- a/graphics/interface/map_popup/stone.png
+++ b/graphics/map_popup/stone.png
Binary files differ
diff --git a/graphics/interface/map_popup/stone2.png b/graphics/map_popup/stone2.png
index 261c3184a..261c3184a 100644
--- a/graphics/interface/map_popup/stone2.png
+++ b/graphics/map_popup/stone2.png
Binary files differ
diff --git a/graphics/interface/map_popup/stone2_outline.png b/graphics/map_popup/stone2_outline.png
index b0c0748df..b0c0748df 100644
--- a/graphics/interface/map_popup/stone2_outline.png
+++ b/graphics/map_popup/stone2_outline.png
Binary files differ
diff --git a/graphics/interface/map_popup/stone_outline.png b/graphics/map_popup/stone_outline.png
index 7c014d05e..7c014d05e 100644
--- a/graphics/interface/map_popup/stone_outline.png
+++ b/graphics/map_popup/stone_outline.png
Binary files differ
diff --git a/graphics/interface/map_popup/underwater.pal b/graphics/map_popup/underwater.pal
index 19b8cf9c4..19b8cf9c4 100644
--- a/graphics/interface/map_popup/underwater.pal
+++ b/graphics/map_popup/underwater.pal
diff --git a/graphics/interface/map_popup/underwater.png b/graphics/map_popup/underwater.png
index e6cf2b6c8..e6cf2b6c8 100644
--- a/graphics/interface/map_popup/underwater.png
+++ b/graphics/map_popup/underwater.png
Binary files differ
diff --git a/graphics/interface/map_popup/underwater_outline.png b/graphics/map_popup/underwater_outline.png
index 2ffe3cb75..2ffe3cb75 100644
--- a/graphics/interface/map_popup/underwater_outline.png
+++ b/graphics/map_popup/underwater_outline.png
Binary files differ
diff --git a/graphics/interface/map_popup/wood.png b/graphics/map_popup/wood.png
index e846a6bcd..e846a6bcd 100644
--- a/graphics/interface/map_popup/wood.png
+++ b/graphics/map_popup/wood.png
Binary files differ
diff --git a/graphics/interface/map_popup/wood_outline.png b/graphics/map_popup/wood_outline.png
index d143dbc2f..d143dbc2f 100644
--- a/graphics/interface/map_popup/wood_outline.png
+++ b/graphics/map_popup/wood_outline.png
Binary files differ
diff --git a/graphics/misc/deoxys_rock_fragment_bottom_left.png b/graphics/misc/deoxys_rock_fragment_bottom_left.png
deleted file mode 100644
index 3f5b8d5c3..000000000
--- a/graphics/misc/deoxys_rock_fragment_bottom_left.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/deoxys_rock_fragment_bottom_right.png b/graphics/misc/deoxys_rock_fragment_bottom_right.png
deleted file mode 100644
index 7684451e4..000000000
--- a/graphics/misc/deoxys_rock_fragment_bottom_right.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/deoxys_rock_fragment_top_left.png b/graphics/misc/deoxys_rock_fragment_top_left.png
deleted file mode 100644
index d601cb6e5..000000000
--- a/graphics/misc/deoxys_rock_fragment_top_left.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/deoxys_rock_fragment_top_right.png b/graphics/misc/deoxys_rock_fragment_top_right.png
deleted file mode 100644
index 01f10cd07..000000000
--- a/graphics/misc/deoxys_rock_fragment_top_right.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/emotion_exclamation.png b/graphics/misc/emotion_exclamation.png
deleted file mode 100644
index 595566d2f..000000000
--- a/graphics/misc/emotion_exclamation.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/emotion_heart.png b/graphics/misc/emotion_heart.png
deleted file mode 100644
index 9995984b4..000000000
--- a/graphics/misc/emotion_heart.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/emotion_question.png b/graphics/misc/emotion_question.png
deleted file mode 100644
index 7376fd058..000000000
--- a/graphics/misc/emotion_question.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/hof_monitor_big.png b/graphics/misc/hof_monitor_big.png
deleted file mode 100644
index 510e6a232..000000000
--- a/graphics/misc/hof_monitor_big.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/hof_monitor_small.png b/graphics/misc/hof_monitor_small.png
deleted file mode 100644
index dcff33095..000000000
--- a/graphics/misc/hof_monitor_small.png
+++ /dev/null
Binary files differ
diff --git a/graphics/misc/pokeball_glow.png b/graphics/misc/pokeball_glow.png
deleted file mode 100644
index 1c1133b76..000000000
--- a/graphics/misc/pokeball_glow.png
+++ /dev/null
Binary files differ
diff --git a/graphics/interface/party_menu_bg.bin b/graphics/party_menu/bg.bin
index d6ff1114d..d6ff1114d 100644
--- a/graphics/interface/party_menu_bg.bin
+++ b/graphics/party_menu/bg.bin
Binary files differ
diff --git a/graphics/interface/party_menu_bg.pal b/graphics/party_menu/bg.pal
index 0b4b30f81..0b4b30f81 100644
--- a/graphics/interface/party_menu_bg.pal
+++ b/graphics/party_menu/bg.pal
diff --git a/graphics/interface/party_menu_bg.png b/graphics/party_menu/bg.png
index c58f3aae9..c58f3aae9 100644
--- a/graphics/interface/party_menu_bg.png
+++ b/graphics/party_menu/bg.png
Binary files differ
diff --git a/graphics/interface/party_menu_cancel_button.bin b/graphics/party_menu/cancel_button.bin
index 7f11aaf4e..7f11aaf4e 100644
--- a/graphics/interface/party_menu_cancel_button.bin
+++ b/graphics/party_menu/cancel_button.bin
diff --git a/graphics/interface/party_menu_confirm_button.bin b/graphics/party_menu/confirm_button.bin
index 8c3c1be3d..8c3c1be3d 100644
--- a/graphics/interface/party_menu_confirm_button.bin
+++ b/graphics/party_menu/confirm_button.bin
diff --git a/graphics/interface/hold_icons.png b/graphics/party_menu/hold_icons.png
index 53eeedde3..53eeedde3 100644
--- a/graphics/interface/hold_icons.png
+++ b/graphics/party_menu/hold_icons.png
Binary files differ
diff --git a/graphics/interface/party_menu_pokeball.png b/graphics/party_menu/pokeball.png
index 2aad54de8..2aad54de8 100644
--- a/graphics/interface/party_menu_pokeball.png
+++ b/graphics/party_menu/pokeball.png
Binary files differ
diff --git a/graphics/interface/party_menu_pokeball_small.png b/graphics/party_menu/pokeball_small.png
index d2eec4d45..d2eec4d45 100644
--- a/graphics/interface/party_menu_pokeball_small.png
+++ b/graphics/party_menu/pokeball_small.png
Binary files differ
diff --git a/graphics/interface/pokeblock_device.png b/graphics/pokeblock/device.png
index 65b29a8b3..65b29a8b3 100644
--- a/graphics/interface/pokeblock_device.png
+++ b/graphics/pokeblock/device.png
Binary files differ
diff --git a/graphics/interface/pokeblock_feeding_bg_map.bin b/graphics/pokeblock/feeding_bg.bin
index 9feebf8bc..9feebf8bc 100644
--- a/graphics/interface/pokeblock_feeding_bg_map.bin
+++ b/graphics/pokeblock/feeding_bg.bin
Binary files differ
diff --git a/graphics/interface/pokeblock.bin b/graphics/pokeblock/menu.bin
index 1719bb5a6..1719bb5a6 100644
--- a/graphics/interface/pokeblock.bin
+++ b/graphics/pokeblock/menu.bin
Binary files differ
diff --git a/graphics/interface/pokeblock_case_frame.pal b/graphics/pokeblock/menu.pal
index ef58ae778..ef58ae778 100644
--- a/graphics/interface/pokeblock_case_frame.pal
+++ b/graphics/pokeblock/menu.pal
diff --git a/graphics/interface/pokeblock_case_frame.png b/graphics/pokeblock/menu.png
index ffc658821..ffc658821 100644
--- a/graphics/interface/pokeblock_case_frame.png
+++ b/graphics/pokeblock/menu.png
Binary files differ
diff --git a/graphics/pokemon_storage/close_box_button.bin b/graphics/pokemon_storage/close_box_button.bin
new file mode 100755
index 000000000..8b130a481
--- /dev/null
+++ b/graphics/pokemon_storage/close_box_button.bin
@@ -0,0 +1 @@
+LMNOpqrst\]^_uvwxyz{|} \ No newline at end of file
diff --git a/graphics/pokemon_storage/party_slot_empty.bin b/graphics/pokemon_storage/party_slot_empty.bin
new file mode 100755
index 000000000..991c232f7
--- /dev/null
+++ b/graphics/pokemon_storage/party_slot_empty.bin
@@ -0,0 +1 @@
+CDDESTTUcdde \ No newline at end of file
diff --git a/graphics/pokemon_storage/party_slot_filled.bin b/graphics/pokemon_storage/party_slot_filled.bin
new file mode 100755
index 000000000..c0b93bf14
--- /dev/null
+++ b/graphics/pokemon_storage/party_slot_filled.bin
@@ -0,0 +1 @@
+@AABPQQR`aab \ No newline at end of file
diff --git a/graphics/pokemon_storage/pkmn_data.bin b/graphics/pokemon_storage/pkmn_data.bin
new file mode 100755
index 000000000..3336797aa
--- /dev/null
+++ b/graphics/pokemon_storage/pkmn_data.bin
@@ -0,0 +1 @@
+!!!!!!!!!!!!!!!! \ No newline at end of file
diff --git a/graphics/pokemon_storage/unknown.pal b/graphics/pokemon_storage/text_windows.pal
index b9c6f46de..b9c6f46de 100644
--- a/graphics/pokemon_storage/unknown.pal
+++ b/graphics/pokemon_storage/text_windows.pal
diff --git a/graphics/misc/rotating_gate_1.png b/graphics/rotating_gates/l1.png
index 93680dbfb..93680dbfb 100644
--- a/graphics/misc/rotating_gate_1.png
+++ b/graphics/rotating_gates/l1.png
Binary files differ
diff --git a/graphics/misc/rotating_gate_2.png b/graphics/rotating_gates/l2.png
index 1d320ed77..1d320ed77 100644
--- a/graphics/misc/rotating_gate_2.png
+++ b/graphics/rotating_gates/l2.png
Binary files differ
diff --git a/graphics/misc/rotating_gate_3.png b/graphics/rotating_gates/l3.png
index 6e43079d0..6e43079d0 100644
--- a/graphics/misc/rotating_gate_3.png
+++ b/graphics/rotating_gates/l3.png
Binary files differ
diff --git a/graphics/misc/rotating_gate_4.png b/graphics/rotating_gates/l4.png
index 77c269dc5..77c269dc5 100644
--- a/graphics/misc/rotating_gate_4.png
+++ b/graphics/rotating_gates/l4.png
Binary files differ
diff --git a/graphics/misc/rotating_gate_5.png b/graphics/rotating_gates/t1.png
index d8a0889b1..d8a0889b1 100644
--- a/graphics/misc/rotating_gate_5.png
+++ b/graphics/rotating_gates/t1.png
Binary files differ
diff --git a/graphics/misc/rotating_gate_6.png b/graphics/rotating_gates/t2.png
index 668feebfb..668feebfb 100644
--- a/graphics/misc/rotating_gate_6.png
+++ b/graphics/rotating_gates/t2.png
Binary files differ
diff --git a/graphics/misc/rotating_gate_7.png b/graphics/rotating_gates/t3.png
index d92ae872c..d92ae872c 100644
--- a/graphics/misc/rotating_gate_7.png
+++ b/graphics/rotating_gates/t3.png
Binary files differ
diff --git a/graphics/misc/rotating_gate_8.png b/graphics/rotating_gates/t4.png
index 5e3a947c5..5e3a947c5 100644
--- a/graphics/misc/rotating_gate_8.png
+++ b/graphics/rotating_gates/t4.png
Binary files differ
diff --git a/graphics/interface/mart_frame.bin b/graphics/shop/menu.bin
index 63156b8d5..63156b8d5 100644
--- a/graphics/interface/mart_frame.bin
+++ b/graphics/shop/menu.bin
Binary files differ
diff --git a/graphics/interface/mart_frame.png b/graphics/shop/menu.png
index ece93b7c7..ece93b7c7 100644
--- a/graphics/interface/mart_frame.png
+++ b/graphics/shop/menu.png
Binary files differ
diff --git a/graphics/interface/money.png b/graphics/shop/money.png
index d11fe06d1..d11fe06d1 100644
--- a/graphics/interface/money.png
+++ b/graphics/shop/money.png
Binary files differ
diff --git a/graphics/misc/birch_bag_map.bin b/graphics/starter_choose/birch_bag.bin
index ddfad5ec9..ddfad5ec9 100644
--- a/graphics/misc/birch_bag_map.bin
+++ b/graphics/starter_choose/birch_bag.bin
Binary files differ
diff --git a/graphics/misc/birch_bag.png b/graphics/starter_choose/birch_bag.png
index 86bfbbbc0..86bfbbbc0 100644
--- a/graphics/misc/birch_bag.png
+++ b/graphics/starter_choose/birch_bag.png
Binary files differ
diff --git a/graphics/misc/birch_grass_map.bin b/graphics/starter_choose/birch_grass.bin
index b7332940c..b7332940c 100644
--- a/graphics/misc/birch_grass_map.bin
+++ b/graphics/starter_choose/birch_grass.bin
Binary files differ
diff --git a/graphics/misc/birch_grass.png b/graphics/starter_choose/birch_grass.png
index 838fa5f4c..838fa5f4c 100644
--- a/graphics/misc/birch_grass.png
+++ b/graphics/starter_choose/birch_grass.png
Binary files differ
diff --git a/graphics/misc/pokeball_selection.png b/graphics/starter_choose/pokeball_selection.png
index d2f0a3d97..d2f0a3d97 100644
--- a/graphics/misc/pokeball_selection.png
+++ b/graphics/starter_choose/pokeball_selection.png
Binary files differ
diff --git a/graphics/misc/starter_circle.png b/graphics/starter_choose/starter_circle.png
index 3501dfec4..3501dfec4 100644
--- a/graphics/misc/starter_circle.png
+++ b/graphics/starter_choose/starter_circle.png
Binary files differ
diff --git a/graphics/interface/summary_a_button.png b/graphics/summary_screen/a_button.png
index 4607ca9da..4607ca9da 100644
--- a/graphics/interface/summary_a_button.png
+++ b/graphics/summary_screen/a_button.png
Binary files differ
diff --git a/graphics/interface/summary_b_button.png b/graphics/summary_screen/b_button.png
index 32ce28e04..32ce28e04 100644
--- a/graphics/interface/summary_b_button.png
+++ b/graphics/summary_screen/b_button.png
Binary files differ
diff --git a/graphics/interface/powacc_tilemap.bin b/graphics/summary_screen/effect_battle.bin
index 5b492db68..5b492db68 100644
--- a/graphics/interface/powacc_tilemap.bin
+++ b/graphics/summary_screen/effect_battle.bin
Binary files differ
diff --git a/graphics/interface/summary.bin b/graphics/summary_screen/effect_cancel.bin
index 0a19222a3..0a19222a3 100644
--- a/graphics/interface/summary.bin
+++ b/graphics/summary_screen/effect_cancel.bin
Binary files differ
diff --git a/graphics/interface/appealjam_tilemap.bin b/graphics/summary_screen/effect_contest.bin
index 0b3837ae2..0b3837ae2 100644
--- a/graphics/interface/appealjam_tilemap.bin
+++ b/graphics/summary_screen/effect_contest.bin
Binary files differ
diff --git a/graphics/interface/summary_markings.pal b/graphics/summary_screen/markings.pal
index 08124207d..08124207d 100644
--- a/graphics/interface/summary_markings.pal
+++ b/graphics/summary_screen/markings.pal
diff --git a/graphics/interface/summary_frames.png b/graphics/summary_screen/move_select.png
index 2a579b012..2a579b012 100644
--- a/graphics/interface/summary_frames.png
+++ b/graphics/summary_screen/move_select.png
Binary files differ
diff --git a/graphics/interface/summary_page_battle_moves.bin b/graphics/summary_screen/page_battle_moves.bin
index f835047d1..f835047d1 100644
--- a/graphics/interface/summary_page_battle_moves.bin
+++ b/graphics/summary_screen/page_battle_moves.bin
Binary files differ
diff --git a/graphics/interface/summary_page_contest_moves.bin b/graphics/summary_screen/page_contest_moves.bin
index 9c11ccc4f..9c11ccc4f 100644
--- a/graphics/interface/summary_page_contest_moves.bin
+++ b/graphics/summary_screen/page_contest_moves.bin
Binary files differ
diff --git a/graphics/interface/summary_page_info.bin b/graphics/summary_screen/page_info.bin
index 771d4db93..771d4db93 100644
--- a/graphics/interface/summary_page_info.bin
+++ b/graphics/summary_screen/page_info.bin
Binary files differ
diff --git a/graphics/interface/summary_page_info_copy.bin b/graphics/summary_screen/page_info_egg.bin
index a869a9d03..a869a9d03 100644
--- a/graphics/interface/summary_page_info_copy.bin
+++ b/graphics/summary_screen/page_info_egg.bin
Binary files differ
diff --git a/graphics/interface/summary_page_skills.bin b/graphics/summary_screen/page_skills.bin
index 19cb94637..19cb94637 100644
--- a/graphics/interface/summary_page_skills.bin
+++ b/graphics/summary_screen/page_skills.bin
Binary files differ
diff --git a/graphics/interface/status_tilemap.bin b/graphics/summary_screen/status_tilemap.bin
index 961d7a329..961d7a329 100644
--- a/graphics/interface/status_tilemap.bin
+++ b/graphics/summary_screen/status_tilemap.bin
Binary files differ
diff --git a/graphics/interface/summary_screen.pal b/graphics/summary_screen/tiles.pal
index badbfe53b..badbfe53b 100644
--- a/graphics/interface/summary_screen.pal
+++ b/graphics/summary_screen/tiles.pal
diff --git a/graphics/interface/summary_screen.png b/graphics/summary_screen/tiles.png
index 2f9f8db85..2f9f8db85 100644
--- a/graphics/interface/summary_screen.png
+++ b/graphics/summary_screen/tiles.png
Binary files differ
diff --git a/graphics/link/gba.png b/graphics/trade/gba.png
index 1a0909468..1a0909468 100644
--- a/graphics/link/gba.png
+++ b/graphics/trade/gba.png
Binary files differ
diff --git a/graphics/link/gba_pal2.pal b/graphics/trade/gba_pal2.pal
index e2fb95b4a..e2fb95b4a 100644
--- a/graphics/link/gba_pal2.pal
+++ b/graphics/trade/gba_pal2.pal
diff --git a/graphics/misc/trainer_hill_ereader.pal b/graphics/trainer_hill/ereader.pal
index 4b0812f09..4b0812f09 100644
--- a/graphics/misc/trainer_hill_ereader.pal
+++ b/graphics/trainer_hill/ereader.pal
diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk
index 7a37c5e4f..9e5c19193 100644
--- a/graphics_file_rules.mk
+++ b/graphics_file_rules.mk
@@ -19,6 +19,7 @@ OBJEVENTGFXDIR := graphics/object_events
MISCGFXDIR := graphics/misc
JPCONTESTGFXDIR := graphics/contest/japanese
POKEDEXGFXDIR := graphics/pokedex
+STARTERGFXDIR := graphics/starter_choose
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark
contest_types := cool beauty cute smart tough
@@ -371,9 +372,9 @@ $(UNUSEDGFXDIR)/obi2.4bpp: $(UNUSEDGFXDIR)/old_bulbasaur2.4bpp \
$(UNUSEDGFXDIR)/old_battle_interface_3.4bpp
@cat $^ >$@
-$(INTERFACEGFXDIR)/battle_bar.4bpp: $(INTERFACEGFXDIR)/hpbar_anim.4bpp \
- $(INTERFACEGFXDIR)/numbers1.4bpp \
- $(INTERFACEGFXDIR)/numbers2.4bpp
+$(BATINTGFXDIR)/battle_bar.4bpp: $(BATINTGFXDIR)/hpbar_anim_unused.4bpp \
+ $(BATINTGFXDIR)/numbers1.4bpp \
+ $(BATINTGFXDIR)/numbers2.4bpp
@cat $^ >$@
$(UNUSEDGFXDIR)/redyellowgreen_frame.bin: $(UNUSEDGFXDIR)/red_frame.bin \
@@ -429,7 +430,7 @@ $(MASKSGFXDIR)/unused_level_up.4bpp: %.4bpp: %.png
$(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 16
-$(INTERFACEGFXDIR)/party_menu_bg.4bpp: %.4bpp: %.png
+graphics/party_menu/bg.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 62
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@@ -440,7 +441,7 @@ $(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \
$(TYPESGFXDIR)/move_types_3.gbapal
@cat $^ >$@
-$(INTERFACEGFXDIR)/bag_screen.4bpp: %.4bpp: %.png
+graphics/bag/menu.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53
$(RAYQUAZAGFXDIR)/scene_2/rayquaza.8bpp: %.8bpp: %.png
@@ -501,7 +502,7 @@ $(SLOTMACHINEGFXDIR)/reel_time_gfx.4bpp: $(SLOTMACHINEGFXDIR)/reel_time_pikachu.
$(SLOTMACHINEGFXDIR)/reel_time_machine.4bpp
@cat $^ >$@
-$(UNUSEDGFXDIR)/intro_birch_beauty.4bpp: %.4bpp: %.png
+graphics/birch_speech/unused_beauty.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 822
@@ -707,5 +708,5 @@ $(POKEDEXGFXDIR)/region_map.8bpp: %.8bpp: %.png
$(POKEDEXGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png
$(GFX) $< $@ -num_tiles 233
-$(MISCGFXDIR)/birch_help.4bpp: $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp
+$(STARTERGFXDIR)/birch_help.4bpp: $(STARTERGFXDIR)/birch_bag.4bpp $(STARTERGFXDIR)/birch_grass.4bpp
@cat $^ >$@
diff --git a/include/battle.h b/include/battle.h
index 9434b9aa8..9656bab8d 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -57,7 +57,7 @@
struct ResourceFlags
{
- u32 flags[4];
+ u32 flags[MAX_BATTLERS_COUNT];
};
#define RESOURCE_FLAG_FLASH_FIRE 1
@@ -590,8 +590,8 @@ struct MonSpritesGfx
{
void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon
union {
- void* ptr[MAX_BATTLERS_COUNT];
- u8* byte[MAX_BATTLERS_COUNT];
+ void* ptr[MAX_BATTLERS_COUNT];
+ u8* byte[MAX_BATTLERS_COUNT];
} sprites;
struct SpriteTemplate templates[MAX_BATTLERS_COUNT];
struct SpriteFrameImage frameImages[MAX_BATTLERS_COUNT][4];
diff --git a/include/bike.h b/include/bike.h
index afe773d42..00f11aefe 100644
--- a/include/bike.h
+++ b/include/bike.h
@@ -17,11 +17,11 @@ struct BikeHistoryInputInfo
// Player speeds
enum
{
- BIKE_SPEED_STANDING,
- BIKE_SPEED_NORMAL,
- BIKE_SPEED_FAST,
- BIKE_SPEED_FASTER,
- BIKE_SPEED_FASTEST,
+ PLAYER_SPEED_STANDING,
+ PLAYER_SPEED_NORMAL,
+ PLAYER_SPEED_FAST,
+ PLAYER_SPEED_FASTER,
+ PLAYER_SPEED_FASTEST,
};
// mach bike transitions enum
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 793fe1135..eacb2426d 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -190,7 +190,7 @@
#define FLAG_RECEIVED_TM40 0xAA
#define FLAG_RECEIVED_TM04 0xAB
#define FLAG_RECEIVED_TM03 0xAC
-#define FLAG_DECORATION_0 0xAD
+#define FLAG_HIDE_SECRET_BASE_TRAINER 0xAD
#define FLAG_DECORATION_1 0xAE
#define FLAG_DECORATION_2 0xAF
#define FLAG_DECORATION_3 0xB0
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 28da8da2a..aabfce461 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -7,7 +7,7 @@
#define NUM_METATILES_TOTAL 1024
#define NUM_PALS_IN_PRIMARY 6
#define NUM_PALS_TOTAL 13
-#define MAX_MAP_DATA_SIZE 0x2800
+#define MAX_MAP_DATA_SIZE 10240
// Map coordinates are offset by 7 when using the map
// buffer because it needs to load sufficient border
diff --git a/include/graphics.h b/include/graphics.h
index e2fe5cf77..0972743c5 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -5,31 +5,31 @@
extern const u32 gMessageBox_Gfx[];
extern const u16 gMessageBox_Pal[];
-// interface pokeballs
-extern const u32 gInterfaceGfx_PokeBall[];
-extern const u32 gInterfacePal_PokeBall[];
-extern const u32 gInterfaceGfx_GreatBall[];
-extern const u32 gInterfacePal_GreatBall[];
-extern const u32 gInterfaceGfx_SafariBall[];
-extern const u32 gInterfacePal_SafariBall[];
-extern const u32 gInterfaceGfx_UltraBall[];
-extern const u32 gInterfacePal_UltraBall[];
-extern const u32 gInterfaceGfx_MasterBall[];
-extern const u32 gInterfacePal_MasterBall[];
-extern const u32 gInterfaceGfx_NetBall[];
-extern const u32 gInterfacePal_NetBall[];
-extern const u32 gInterfaceGfx_DiveBall[];
-extern const u32 gInterfacePal_DiveBall[];
-extern const u32 gInterfaceGfx_NestBall[];
-extern const u32 gInterfacePal_NestBall[];
-extern const u32 gInterfaceGfx_RepeatBall[];
-extern const u32 gInterfacePal_RepeatBall[];
-extern const u32 gInterfaceGfx_TimerBall[];
-extern const u32 gInterfacePal_TimerBall[];
-extern const u32 gInterfaceGfx_LuxuryBall[];
-extern const u32 gInterfacePal_LuxuryBall[];
-extern const u32 gInterfaceGfx_PremierBall[];
-extern const u32 gInterfacePal_PremierBall[];
+// pokeballs
+extern const u32 gBallGfx_Poke[];
+extern const u32 gBallPal_Poke[];
+extern const u32 gBallGfx_Great[];
+extern const u32 gBallPal_Great[];
+extern const u32 gBallGfx_Safari[];
+extern const u32 gBallPal_Safari[];
+extern const u32 gBallGfx_Ultra[];
+extern const u32 gBallPal_Ultra[];
+extern const u32 gBallGfx_Master[];
+extern const u32 gBallPal_Master[];
+extern const u32 gBallGfx_Net[];
+extern const u32 gBallPal_Net[];
+extern const u32 gBallGfx_Dive[];
+extern const u32 gBallPal_Dive[];
+extern const u32 gBallGfx_Nest[];
+extern const u32 gBallPal_Nest[];
+extern const u32 gBallGfx_Repeat[];
+extern const u32 gBallPal_Repeat[];
+extern const u32 gBallGfx_Timer[];
+extern const u32 gBallPal_Timer[];
+extern const u32 gBallGfx_Luxury[];
+extern const u32 gBallPal_Luxury[];
+extern const u32 gBallGfx_Premier[];
+extern const u32 gBallPal_Premier[];
extern const u32 gOpenPokeballGfx[];
// pokemon gfx
@@ -4035,16 +4035,16 @@ extern const u32 gPokenavRibbonsSummaryBg_Tilemap[];
extern const u32 gSummaryScreen_Gfx[];
extern const u32 gSummaryScreen_Pal[];
extern const u32 gSummaryPage_Info_Tilemap[];
-extern const u32 gSummaryPage_InfoCopy_Tilemap[];
+extern const u32 gSummaryPage_InfoEgg_Tilemap[];
extern const u32 gSummaryPage_Skills_Tilemap[];
extern const u32 gSummaryPage_BattleMoves_Tilemap[];
extern const u32 gSummaryPage_ContestMoves_Tilemap[];
extern const u16 gPPTextPalette[];
-extern const u16 gSummaryScreenWindow_Tilemap[];
extern const u32 gMoveTypes_Pal[];
-extern const u16 gSummaryScreenPowAcc_Tilemap[];
-extern const u16 gSummaryScreenAppealJam_Tilemap[];
+extern const u16 gSummaryScreen_MoveEffect_Battle_Tilemap[];
+extern const u16 gSummaryScreen_MoveEffect_Contest_Tilemap[];
+extern const u16 gSummaryScreen_MoveEffect_Cancel_Tilemap[];
extern const u32 gMoveTypes_Gfx[];
extern const u32 gSummaryMoveSelect_Gfx[];
@@ -4052,10 +4052,10 @@ extern const u32 gSummaryMoveSelect_Pal[];
extern const u32 gStatusGfx_Icons[];
extern const u32 gStatusPal_Icons[];
-extern const u32 gBuyMenuFrame_Gfx[];
-extern const u32 gBuyMenuFrame_Tilemap[];
-extern const u32 gMenuMoneyGfx[];
-extern const u32 gMenuMoneyPal[];
+extern const u32 gShopMenu_Gfx[];
+extern const u32 gShopMenu_Tilemap[];
+extern const u32 gShopMenu_Pal[];
+extern const u32 gShopMenuMoney_Gfx[];
extern const u32 gBattleInterface_BallStatusBarGfx[];
extern const u8 gBattleInterface_BallDisplayGfx[];
@@ -4094,8 +4094,8 @@ extern const u32 gBlankGfxCompressed[];
extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[];
-extern const u32 gBagSwapLineGfx[];
-extern const u32 gBagSwapLinePal[];
+extern const u32 gSwapLineGfx[];
+extern const u32 gSwapLinePal[];
extern const u32 gBattlePyramidBag_Gfx[];
extern const u32 gBattlePyramidBag_Pal[];
@@ -4121,11 +4121,11 @@ extern const u32 gDomeTourneyInfoCardBg_Tilemap[];
extern const u32 gDomeTourneyTree_Pal[];
extern const u32 gDomeTourneyTreeButtons_Pal[];
extern const u32 gDomeTourneyMatchCardBg_Pal[];
-extern const u32 gDomeTourneyBg_Gfx[];
+extern const u32 gDomeTourneyTree_Gfx[];
extern const u32 gDomeTourneyLine_Gfx[];
extern const u32 gDomeTourneyLineDown_Tilemap[];
extern const u32 gDomeTourneyLineUp_Tilemap[];
-extern const u32 gDomeTourneyLineMask_Tilemap[];
+extern const u32 gDomeTourneyTree_Tilemap[];
extern const u32 gDomeTourneyTreeButtons_Gfx[];
extern const u16 gTilesetAnims_BattleDomePals0_0[];
extern const u16 gTilesetAnims_BattleDomePals0_1[];
@@ -5002,7 +5002,7 @@ extern const u16 gUsePokeblockCondition_Pal[];
// Berry Crush
extern const u32 gBerryCrush_Crusher_Gfx[];
extern const u16 gBerryCrush_Crusher_Pal[];
-extern const u32 gBerryCrush_Crusher_Tilemap[];
+extern const u32 gBerryCrush_TextWindows_Tilemap[];
// Pokenav
extern const u32 gPokenavMessageBox_Gfx[];
diff --git a/ld_script.txt b/ld_script.txt
index 61f61ab86..d68498a8b 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -1251,10 +1251,10 @@ SECTIONS {
src/libisagbprn.o(.rodata);
} =0
- other_data :
+ multiboot_data :
ALIGN(4)
{
- data/ereader_link_data.o(.rodata);
+ data/multiboot_ereader.o(.rodata);
data/multiboot_berry_glitch_fix.o(.rodata);
data/multiboot_pokemon_colosseum.o(.rodata);
} =0
diff --git a/ld_script_modern.txt b/ld_script_modern.txt
index ac62abe27..092ff26c6 100644
--- a/ld_script_modern.txt
+++ b/ld_script_modern.txt
@@ -111,10 +111,10 @@ SECTIONS {
src/libisagbprn.o(.rodata);
} =0
- other_data :
+ multiboot_data :
ALIGN(4)
{
- data/ereader_link_data.o(.rodata);
+ data/multiboot_ereader.o(.rodata);
data/multiboot_berry_glitch_fix.o(.rodata);
data/multiboot_pokemon_colosseum.o(.rodata);
} =0
diff --git a/src/battle_dome.c b/src/battle_dome.c
index 2f77491c9..aadd85afd 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -5304,10 +5304,10 @@ static void Task_ShowTourneyTree(u8 taskId)
break;
case 2:
sTilemapBuffer = AllocZeroed(BG_SCREEN_SIZE);
- LZDecompressWram(gDomeTourneyLineMask_Tilemap, sTilemapBuffer);
+ LZDecompressWram(gDomeTourneyTree_Tilemap, sTilemapBuffer);
SetBgTilemapBuffer(1, sTilemapBuffer);
CopyBgTilemapBufferToVram(1);
- DecompressAndLoadBgGfxUsingHeap(1, gDomeTourneyBg_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(1, gDomeTourneyTree_Gfx, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLine_Gfx, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLineDown_Tilemap, 0x2000, 0, 1);
DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyLineUp_Tilemap, 0x2000, 0, 1);
diff --git a/src/berry_crush.c b/src/berry_crush.c
index 9b8323e2d..e7a5df951 100755
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -1947,15 +1947,15 @@ static void DrawPlayerNameWindows(struct BerryCrushGame *game)
static void CopyPlayerNameWindowGfxToBg(struct BerryCrushGame *game)
{
u8 i = 0;
- u8 * crusherGfx;
+ u8 * windowGfx;
- LZ77UnCompWram(gBerryCrush_Crusher_Tilemap, gDecompressionBuffer);
+ LZ77UnCompWram(gBerryCrush_TextWindows_Tilemap, gDecompressionBuffer);
- for (crusherGfx = gDecompressionBuffer; i < game->playerCount; i++)
+ for (windowGfx = gDecompressionBuffer; i < game->playerCount; i++)
{
CopyToBgTilemapBufferRect(
3,
- &crusherGfx[game->gfx.playerCoords[i]->playerId * 40],
+ &windowGfx[game->gfx.playerCoords[i]->playerId * 40],
game->gfx.playerCoords[i]->windowGfxX,
game->gfx.playerCoords[i]->windowGfxY,
10,
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 92b1f65d1..219454ab2 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -92,7 +92,7 @@ static const struct BgTemplate sBackgroundTemplates[] =
}
};
-static const u16 sFontPalette[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal");
+static const u16 sFontPalette[] = INCBIN_U16("graphics/bag/berry_tag_screen.gbapal");
static const u8 sTextColors[2][3] =
{
diff --git a/src/bike.c b/src/bike.c
index 20166392e..c99d514cb 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -108,7 +108,7 @@ static u8 (*const sAcroBikeInputHandlers[])(u8 *, u16, u16) =
};
// used with bikeFrameCounter from mach bike
-static const u16 sMachBikeSpeeds[] = {BIKE_SPEED_NORMAL, BIKE_SPEED_FAST, BIKE_SPEED_FASTEST};
+static const u16 sMachBikeSpeeds[] = {PLAYER_SPEED_NORMAL, PLAYER_SPEED_FAST, PLAYER_SPEED_FASTEST};
// this is a list of timers to compare against later, terminated with 0. the only timer being compared against is 4 frames in this list.
static const u8 sAcroBikeJumpTimerList[] = {4, 0};
@@ -147,7 +147,7 @@ static u8 GetMachBikeTransition(u8 *dirTraveling)
if (*dirTraveling == 0)
{
*dirTraveling = direction; // update the direction, since below we either faced a direction or we started moving.
- if (gPlayerAvatar.bikeSpeed == BIKE_SPEED_STANDING)
+ if (gPlayerAvatar.bikeSpeed == PLAYER_SPEED_STANDING)
{
gPlayerAvatar.runningState = NOT_MOVING;
return MACH_TRANS_FACE_DIRECTION;
@@ -159,7 +159,7 @@ static u8 GetMachBikeTransition(u8 *dirTraveling)
// we need to check if the last traveled direction changed from the new direction as well as ensuring that we dont update the state while the player is moving: see the else check.
if (*dirTraveling != direction && gPlayerAvatar.runningState != MOVING)
{
- if (gPlayerAvatar.bikeSpeed != BIKE_SPEED_STANDING)
+ if (gPlayerAvatar.bikeSpeed != PLAYER_SPEED_STANDING)
{
*dirTraveling = direction; // implement the new direction
gPlayerAvatar.runningState = MOVING;
@@ -246,7 +246,7 @@ static void MachBikeTransition_TrySlowDown(u8 direction)
{
u8 collision;
- if (gPlayerAvatar.bikeSpeed != BIKE_SPEED_STANDING)
+ if (gPlayerAvatar.bikeSpeed != PLAYER_SPEED_STANDING)
gPlayerAvatar.bikeFrameCounter = --gPlayerAvatar.bikeSpeed;
collision = GetBikeCollision(direction);
@@ -306,7 +306,7 @@ static u8 AcroBikeHandleInputNormal(u8 *newDirection, u16 newKeys, u16 heldKeys)
return ACRO_TRANS_FACE_DIRECTION;
}
}
- if (*newDirection == direction && (heldKeys & B_BUTTON) && gPlayerAvatar.bikeSpeed == BIKE_SPEED_STANDING)
+ if (*newDirection == direction && (heldKeys & B_BUTTON) && gPlayerAvatar.bikeSpeed == PLAYER_SPEED_STANDING)
{
gPlayerAvatar.bikeSpeed++;
gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_MOVING;
@@ -342,7 +342,7 @@ static u8 AcroBikeHandleInputTurning(u8 *newDirection, u16 newKeys, u16 heldKeys
if (*newDirection == AcroBike_GetJumpDirection())
{
Bike_SetBikeStill(); // Bike_SetBikeStill sets speed to standing, but the next line immediately overrides it. could have just reset acroBikeState to 0 here instead of wasting a jump.
- gPlayerAvatar.bikeSpeed = BIKE_SPEED_NORMAL;
+ gPlayerAvatar.bikeSpeed = PLAYER_SPEED_NORMAL;
if (*newDirection == GetOppositeDirection(direction))
{
// do a turn jump.
@@ -775,7 +775,7 @@ static void AcroBike_TryHistoryUpdate(u16 newKeys, u16 heldKeys) // newKeys is u
else
{
Bike_UpdateDirTimerHistory(direction);
- gPlayerAvatar.bikeSpeed = BIKE_SPEED_STANDING;
+ gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING;
}
direction = heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON); // directions is reused for some reason.
@@ -787,7 +787,7 @@ static void AcroBike_TryHistoryUpdate(u16 newKeys, u16 heldKeys) // newKeys is u
else
{
Bike_UpdateABStartSelectHistory(direction);
- gPlayerAvatar.bikeSpeed = BIKE_SPEED_STANDING;
+ gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING;
}
}
@@ -994,7 +994,7 @@ void BikeClearState(int newDirHistory, int newAbStartHistory)
gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
gPlayerAvatar.newDirBackup = DIR_NONE;
gPlayerAvatar.bikeFrameCounter = 0;
- gPlayerAvatar.bikeSpeed = BIKE_SPEED_STANDING;
+ gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING;
gPlayerAvatar.directionHistory = newDirHistory;
gPlayerAvatar.abStartSelectHistory = newAbStartHistory;
@@ -1014,7 +1014,7 @@ void Bike_UpdateBikeCounterSpeed(u8 counter)
static void Bike_SetBikeStill(void)
{
gPlayerAvatar.bikeFrameCounter = 0;
- gPlayerAvatar.bikeSpeed = BIKE_SPEED_STANDING;
+ gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING;
}
s16 GetPlayerSpeed(void)
@@ -1027,11 +1027,11 @@ s16 GetPlayerSpeed(void)
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE)
return machSpeeds[gPlayerAvatar.bikeFrameCounter];
else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE)
- return BIKE_SPEED_FASTER;
+ return PLAYER_SPEED_FASTER;
else if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_DASH))
- return BIKE_SPEED_FAST;
+ return PLAYER_SPEED_FAST;
else
- return BIKE_SPEED_NORMAL;
+ return PLAYER_SPEED_NORMAL;
}
void Bike_HandleBumpySlopeJump(void)
diff --git a/src/data/graphics/berries.h b/src/data/graphics/berries.h
index eb3f9f4dc..e33384a84 100644
--- a/src/data/graphics/berries.h
+++ b/src/data/graphics/berries.h
@@ -1,10 +1,10 @@
-const u32 gBerryCheck_Gfx[] = INCBIN_U32("graphics/interface/check_berry.4bpp.lz");
-const u32 gBerryCheck_Pal[] = INCBIN_U32("graphics/interface/check_berry.gbapal.lz");
+const u32 gBerryCheck_Gfx[] = INCBIN_U32("graphics/bag/check_berry.4bpp.lz");
+const u32 gBerryCheck_Pal[] = INCBIN_U32("graphics/bag/check_berry.gbapal.lz");
-const u32 gBerryTag_Gfx[] = INCBIN_U32("graphics/interface/berry_tag.bin.lz");
-const u32 gBerryTag_Pal[] = INCBIN_U32("graphics/interface/berry_tag_title.bin.lz");
+const u32 gBerryTag_Gfx[] = INCBIN_U32("graphics/bag/berry_tag.bin.lz");
+const u32 gBerryTag_Pal[] = INCBIN_U32("graphics/bag/berry_tag_title.bin.lz");
-const u32 gBerryCheckCircle_Gfx[] = INCBIN_U32("graphics/interface/check_berry_circle.4bpp.lz");
+const u32 gBerryCheckCircle_Gfx[] = INCBIN_U32("graphics/bag/check_berry_circle.4bpp.lz");
const u32 gBerryPic_Cheri[] = INCBIN_U32("graphics/berries/cheri.4bpp.lz");
const u32 gBerryPic_Oran[] = INCBIN_U32("graphics/berries/oran.4bpp.lz");
diff --git a/src/data/graphics/interface_pokeballs.h b/src/data/graphics/interface_pokeballs.h
deleted file mode 100644
index fe9a4e5be..000000000
--- a/src/data/graphics/interface_pokeballs.h
+++ /dev/null
@@ -1,37 +0,0 @@
-const u32 gInterfaceGfx_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.4bpp.lz");
-const u32 gInterfacePal_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.gbapal.lz");
-
-const u32 gInterfaceGfx_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.4bpp.lz");
-const u32 gInterfacePal_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.gbapal.lz");
-
-const u32 gInterfaceGfx_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.4bpp.lz");
-const u32 gInterfacePal_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.gbapal.lz");
-
-const u32 gInterfaceGfx_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.4bpp.lz");
-const u32 gInterfacePal_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.gbapal.lz");
-
-const u32 gInterfaceGfx_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.4bpp.lz");
-const u32 gInterfacePal_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.gbapal.lz");
-
-const u32 gInterfaceGfx_NetBall[] = INCBIN_U32("graphics/interface/ball/net.4bpp.lz");
-const u32 gInterfacePal_NetBall[] = INCBIN_U32("graphics/interface/ball/net.gbapal.lz");
-
-const u32 gInterfaceGfx_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.4bpp.lz");
-const u32 gInterfacePal_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.gbapal.lz");
-
-const u32 gInterfaceGfx_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.4bpp.lz");
-const u32 gInterfacePal_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.gbapal.lz");
-
-const u32 gInterfaceGfx_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.4bpp.lz");
-const u32 gInterfacePal_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.gbapal.lz");
-
-const u32 gInterfaceGfx_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.4bpp.lz");
-const u32 gInterfacePal_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.gbapal.lz");
-
-const u32 gInterfaceGfx_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.4bpp.lz");
-const u32 gInterfacePal_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.gbapal.lz");
-
-const u32 gInterfaceGfx_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.4bpp.lz");
-const u32 gInterfacePal_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.gbapal.lz");
-
-const u32 gOpenPokeballGfx[] = INCBIN_U32("graphics/interface/ball_open.4bpp.lz");
diff --git a/src/data/graphics/pokeballs.h b/src/data/graphics/pokeballs.h
new file mode 100644
index 000000000..8203fca53
--- /dev/null
+++ b/src/data/graphics/pokeballs.h
@@ -0,0 +1,37 @@
+const u32 gBallGfx_Poke[] = INCBIN_U32("graphics/balls/poke.4bpp.lz");
+const u32 gBallPal_Poke[] = INCBIN_U32("graphics/balls/poke.gbapal.lz");
+
+const u32 gBallGfx_Great[] = INCBIN_U32("graphics/balls/great.4bpp.lz");
+const u32 gBallPal_Great[] = INCBIN_U32("graphics/balls/great.gbapal.lz");
+
+const u32 gBallGfx_Safari[] = INCBIN_U32("graphics/balls/safari.4bpp.lz");
+const u32 gBallPal_Safari[] = INCBIN_U32("graphics/balls/safari.gbapal.lz");
+
+const u32 gBallGfx_Ultra[] = INCBIN_U32("graphics/balls/ultra.4bpp.lz");
+const u32 gBallPal_Ultra[] = INCBIN_U32("graphics/balls/ultra.gbapal.lz");
+
+const u32 gBallGfx_Master[] = INCBIN_U32("graphics/balls/master.4bpp.lz");
+const u32 gBallPal_Master[] = INCBIN_U32("graphics/balls/master.gbapal.lz");
+
+const u32 gBallGfx_Net[] = INCBIN_U32("graphics/balls/net.4bpp.lz");
+const u32 gBallPal_Net[] = INCBIN_U32("graphics/balls/net.gbapal.lz");
+
+const u32 gBallGfx_Dive[] = INCBIN_U32("graphics/balls/dive.4bpp.lz");
+const u32 gBallPal_Dive[] = INCBIN_U32("graphics/balls/dive.gbapal.lz");
+
+const u32 gBallGfx_Nest[] = INCBIN_U32("graphics/balls/nest.4bpp.lz");
+const u32 gBallPal_Nest[] = INCBIN_U32("graphics/balls/nest.gbapal.lz");
+
+const u32 gBallGfx_Repeat[] = INCBIN_U32("graphics/balls/repeat.4bpp.lz");
+const u32 gBallPal_Repeat[] = INCBIN_U32("graphics/balls/repeat.gbapal.lz");
+
+const u32 gBallGfx_Timer[] = INCBIN_U32("graphics/balls/timer.4bpp.lz");
+const u32 gBallPal_Timer[] = INCBIN_U32("graphics/balls/timer.gbapal.lz");
+
+const u32 gBallGfx_Luxury[] = INCBIN_U32("graphics/balls/luxury.4bpp.lz");
+const u32 gBallPal_Luxury[] = INCBIN_U32("graphics/balls/luxury.gbapal.lz");
+
+const u32 gBallGfx_Premier[] = INCBIN_U32("graphics/balls/premier.4bpp.lz");
+const u32 gBallPal_Premier[] = INCBIN_U32("graphics/balls/premier.gbapal.lz");
+
+const u32 gOpenPokeballGfx[] = INCBIN_U32("graphics/balls/open.4bpp.lz");
diff --git a/src/data/party_menu.h b/src/data/party_menu.h
index f3a8a50ec..f8093a9b6 100644
--- a/src/data/party_menu.h
+++ b/src/data/party_menu.h
@@ -1,3 +1,9 @@
+enum {
+ TAG_POKEBALL = 1200,
+ TAG_POKEBALL_SMALL,
+ TAG_STATUS_ICONS,
+};
+
static const struct BgTemplate sPartyMenuBgTemplates[] =
{
{
@@ -112,8 +118,8 @@ static const u8 sPartyMenuSpriteCoords[PARTY_LAYOUT_COUNT][PARTY_SIZE][4 * 2] =
};
// Used only when both Cancel and Confirm are present
-static const u32 sConfirmButton_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_confirm_button.bin");
-static const u32 sCancelButton_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_cancel_button.bin");
+static const u32 sConfirmButton_Tilemap[] = INCBIN_U32("graphics/party_menu/confirm_button.bin");
+static const u32 sCancelButton_Tilemap[] = INCBIN_U32("graphics/party_menu/cancel_button.bin");
// Text colors for BG, FG, and Shadow in that order
static const u8 sFontColorTable[][3] =
@@ -873,8 +879,8 @@ static const u8 *const sUnionRoomTradeMessages[] =
[UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_2 - 1] = gText_CantTradeWithTrainer,
};
-static const u32 sHeldItemGfx[] = INCBIN_U32("graphics/interface/hold_icons.4bpp");
-static const u16 sHeldItemPalette[] = INCBIN_U16("graphics/interface/hold_icons.gbapal");
+static const u32 sHeldItemGfx[] = INCBIN_U32("graphics/party_menu/hold_icons.4bpp");
+static const u16 sHeldItemPalette[] = INCBIN_U16("graphics/party_menu/hold_icons.gbapal");
static const struct OamData sOamData_HeldItem =
{
@@ -969,19 +975,19 @@ static const union AnimCmd *const sSpriteAnimTable_MenuPokeball[] =
static const struct CompressedSpriteSheet sSpriteSheet_MenuPokeball =
{
- gPartyMenuPokeball_Gfx, 0x400, 0x04b0
+ gPartyMenuPokeball_Gfx, 0x400, TAG_POKEBALL
};
static const struct CompressedSpritePalette sSpritePalette_MenuPokeball =
{
- gPartyMenuPokeball_Pal, 0x04b0
+ gPartyMenuPokeball_Pal, TAG_POKEBALL
};
// Used for the pokeball sprite on each party slot / Cancel button
static const struct SpriteTemplate sSpriteTemplate_MenuPokeball =
{
- .tileTag = 0x04b0,
- .paletteTag = 0x04b0,
+ .tileTag = TAG_POKEBALL,
+ .paletteTag = TAG_POKEBALL,
.oam = &sOamData_MenuPokeball,
.anims = sSpriteAnimTable_MenuPokeball,
.images = NULL,
@@ -1055,14 +1061,14 @@ static const union AnimCmd *const sSpriteAnimTable_MenuPokeballSmall[] =
static const struct CompressedSpriteSheet sSpriteSheet_MenuPokeballSmall =
{
- gPartyMenuPokeballSmall_Gfx, 0x0300, 0x04b1
+ gPartyMenuPokeballSmall_Gfx, 0x0300, TAG_POKEBALL_SMALL
};
// Used for the pokeball sprite next to Cancel and Confirm when both are present, otherwise sSpriteTemplate_MenuPokeball is used
static const struct SpriteTemplate sSpriteTemplate_MenuPokeballSmall =
{
- .tileTag = 1201,
- .paletteTag = 1200,
+ .tileTag = TAG_POKEBALL_SMALL,
+ .paletteTag = TAG_POKEBALL,
.oam = &sOamData_MenuPokeballSmall,
.anims = sSpriteAnimTable_MenuPokeballSmall,
.images = NULL,
@@ -1149,18 +1155,18 @@ static const union AnimCmd *const sSpriteTemplate_StatusCondition[] =
static const struct CompressedSpriteSheet sSpriteSheet_StatusIcons =
{
- gStatusGfx_Icons, 0x400, 1202
+ gStatusGfx_Icons, 0x400, TAG_STATUS_ICONS
};
static const struct CompressedSpritePalette sSpritePalette_StatusIcons =
{
- gStatusPal_Icons, 1202
+ gStatusPal_Icons, TAG_STATUS_ICONS
};
static const struct SpriteTemplate sSpriteTemplate_StatusIcons =
{
- .tileTag = 1202,
- .paletteTag = 1202,
+ .tileTag = TAG_STATUS_ICONS,
+ .paletteTag = TAG_STATUS_ICONS,
.oam = &sOamData_StatusCondition,
.anims = sSpriteTemplate_StatusCondition,
.images = NULL,
diff --git a/src/decoration.c b/src/decoration.c
index 118b4918e..85a74ed9d 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -41,7 +41,7 @@
#define PLACE_DECORATION_SELECTOR_TAG 0xbe5
#define PLACE_DECORATION_PLAYER_TAG 0x008
-#define NUM_DECORATION_FLAGS (FLAG_DECORATION_14 - FLAG_DECORATION_0)
+#define NUM_DECORATION_FLAGS (FLAG_DECORATION_14 - FLAG_DECORATION_1 + 1)
#define tCursorX data[0]
#define tCursorY data[1]
@@ -440,7 +440,7 @@ static const struct YesNoFuncTable sStopPuttingAwayDecorationsYesNoFunctions =
.noFunc = ContinuePuttingAwayDecorations,
};
-static const u8 sDecorationPuttingAwayCursor[] = INCBIN_U8("graphics/misc/decoration_putting_away_cursor.4bpp");
+static const u8 sDecorationPuttingAwayCursor[] = INCBIN_U8("graphics/decorations/put_away_cursor.4bpp");
static const struct SpritePalette sSpritePal_PuttingAwayCursorBrendan =
{
diff --git a/src/diploma.c b/src/diploma.c
index 76b4ae65c..ce31578dc 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -40,12 +40,12 @@ static void VBlankCB(void)
static const u16 sDiplomaPalettes[][16] =
{
- INCBIN_U16("graphics/misc/diploma_national.gbapal"),
- INCBIN_U16("graphics/misc/diploma_hoenn.gbapal"),
+ INCBIN_U16("graphics/diploma/national.gbapal"),
+ INCBIN_U16("graphics/diploma/hoenn.gbapal"),
};
-static const u32 sDiplomaTilemap[] = INCBIN_U32("graphics/misc/diploma_map.bin.lz");
-static const u32 sDiplomaTiles[] = INCBIN_U32("graphics/misc/diploma.4bpp.lz");
+static const u32 sDiplomaTilemap[] = INCBIN_U32("graphics/diploma/tilemap.bin.lz");
+static const u32 sDiplomaTiles[] = INCBIN_U32("graphics/diploma/tiles.4bpp.lz");
void CB2_ShowDiploma(void)
{
diff --git a/src/ereader_screen.c b/src/ereader_screen.c
index f98a0247d..a22b85bab 100755
--- a/src/ereader_screen.c
+++ b/src/ereader_screen.c
@@ -41,8 +41,8 @@ static void Task_EReader(u8);
struct EReaderData gEReaderData;
-extern const u8 gEReaderLinkData_Start[];
-extern const u8 gEReaderLinkData_End[];
+extern const u8 gMultiBootProgram_EReader_Start[];
+extern const u8 gMultiBootProgram_EReader_End[];
static void EReader_Load(struct EReaderData *eReader, int size, u32 *data)
{
@@ -397,8 +397,8 @@ static void Task_EReader(u8 taskId)
break;
case ER_STATE_CONNECTING:
AddTextPrinterToWindow1(gJPText_Connecting);
- // XXX: This (u32*) cast is discarding the const qualifier from gEReaderLinkData_Start
- EReader_Load(&gEReaderData, gEReaderLinkData_End - gEReaderLinkData_Start, (u32*)gEReaderLinkData_Start);
+ // XXX: This (u32*) cast is discarding the const qualifier from gMultiBootProgram_EReader_Start
+ EReader_Load(&gEReaderData, gMultiBootProgram_EReader_End - gMultiBootProgram_EReader_Start, (u32*)gMultiBootProgram_EReader_Start);
data->state = ER_STATE_TRANSFER;
break;
case ER_STATE_TRANSFER:
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 8d6b564d2..b5fcfdadf 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -94,7 +94,7 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
if ((tileTransitionState == T_TILE_CENTER && forcedMove == FALSE) || tileTransitionState == T_NOT_MOVING)
{
- if (GetPlayerSpeed() != 4)
+ if (GetPlayerSpeed() != PLAYER_SPEED_FASTEST)
{
if (newKeys & START_BUTTON)
input->pressedStartButton = TRUE;
diff --git a/src/field_effect.c b/src/field_effect.c
index 3f0ba2455..f57ce8cdd 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -243,32 +243,33 @@ extern u8 *gFieldEffectScriptPointers[];
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
static const u32 sNewGameBirch_Gfx[] = INCBIN_U32("graphics/birch_speech/birch.4bpp");
-static const u32 sUnusedBirchBeauty[] = INCBIN_U32("graphics/unused/intro_birch_beauty.4bpp");
+static const u32 sUnusedBirchBeauty[] = INCBIN_U32("graphics/birch_speech/unused_beauty.4bpp");
static const u16 sNewGameBirch_Pal[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal");
-static const u32 sPokeballGlow_Gfx[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp");
+
+static const u32 sPokeballGlow_Gfx[] = INCBIN_U32("graphics/field_effects/pics/pokeball_glow.4bpp");
static const u16 sPokeballGlow_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/pokeball_glow.gbapal");
-static const u32 sPokecenterMonitor0_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp");
-static const u32 sPokecenterMonitor1_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp");
-static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/misc/hof_monitor_big.4bpp");
-static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/misc/hof_monitor_small.4bpp");
+static const u32 sPokecenterMonitor0_Gfx[] = INCBIN_U32("graphics/field_effects/pics/pokecenter_monitor/0.4bpp");
+static const u32 sPokecenterMonitor1_Gfx[] = INCBIN_U32("graphics/field_effects/pics/pokecenter_monitor/1.4bpp");
+static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/field_effects/pics/hof_monitor_big.4bpp");
+static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/field_effects/pics/hof_monitor_small.4bpp");
static const u16 sHofMonitor_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/hof_monitor.gbapal");
// Graphics for the lights streaking past your Pokemon when it uses a field move.
-static const u32 sFieldMoveStreaksOutdoors_Gfx[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp");
-static const u16 sFieldMoveStreaksOutdoors_Pal[16] = INCBIN_U16("graphics/misc/field_move_streaks.gbapal");
-static const u16 sFieldMoveStreaksOutdoors_Tilemap[320] = INCBIN_U16("graphics/misc/field_move_streaks_map.bin");
+static const u32 sFieldMoveStreaksOutdoors_Gfx[] = INCBIN_U32("graphics/field_effects/pics/field_move_streaks.4bpp");
+static const u16 sFieldMoveStreaksOutdoors_Pal[16] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks.gbapal");
+static const u16 sFieldMoveStreaksOutdoors_Tilemap[320] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks.bin");
// The following light streaks effect is used when the map is indoors
-static const u32 sFieldMoveStreaksIndoors_Gfx[] = INCBIN_U32("graphics/misc/darkness_field_move_streaks.4bpp");
-static const u16 sFieldMoveStreaksIndoors_Pal[16] = INCBIN_U16("graphics/misc/darkness_field_move_streaks.gbapal");
-static const u16 sFieldMoveStreaksIndoors_Tilemap[320] = INCBIN_U16("graphics/misc/darkness_field_move_streaks_map.bin");
+static const u32 sFieldMoveStreaksIndoors_Gfx[] = INCBIN_U32("graphics/field_effects/pics/field_move_streaks_indoors.4bpp");
+static const u16 sFieldMoveStreaksIndoors_Pal[16] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks_indoors.gbapal");
+static const u16 sFieldMoveStreaksIndoors_Tilemap[320] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks_indoors.bin");
-static const u16 sSpotlight_Pal[16] = INCBIN_U16("graphics/misc/spotlight.gbapal");
-static const u8 sSpotlight_Gfx[] = INCBIN_U8("graphics/misc/spotlight.4bpp");
-static const u8 sRockFragment_TopLeft[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_top_left.4bpp");
-static const u8 sRockFragment_TopRight[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_top_right.4bpp");
-static const u8 sRockFragment_BottomLeft[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_bottom_left.4bpp");
-static const u8 sRockFragment_BottomRight[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_bottom_right.4bpp");
+static const u16 sSpotlight_Pal[16] = INCBIN_U16("graphics/field_effects/pics/spotlight.gbapal");
+static const u8 sSpotlight_Gfx[] = INCBIN_U8("graphics/field_effects/pics/spotlight.4bpp");
+static const u8 sRockFragment_TopLeft[] = INCBIN_U8("graphics/field_effects/pics/deoxys_rock_fragment_top_left.4bpp");
+static const u8 sRockFragment_TopRight[] = INCBIN_U8("graphics/field_effects/pics/deoxys_rock_fragment_top_right.4bpp");
+static const u8 sRockFragment_BottomLeft[] = INCBIN_U8("graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.4bpp");
+static const u8 sRockFragment_BottomRight[] = INCBIN_U8("graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.4bpp");
bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) =
{
@@ -2619,7 +2620,7 @@ static void FieldMoveShowMonOutdoorsEffect_LoadGfx(struct Task *task)
u16 delta = ((REG_BG0CNT >> 8) << 11);
CpuCopy16(sFieldMoveStreaksOutdoors_Gfx, (void *)(VRAM + offset), 0x200);
CpuFill32(0, (void *)(VRAM + delta), 0x800);
- LoadPalette(sFieldMoveStreaksOutdoors_Pal, 0xf0, 0x20);
+ LoadPalette(sFieldMoveStreaksOutdoors_Pal, 0xf0, sizeof(sFieldMoveStreaksOutdoors_Pal));
LoadFieldMoveOutdoorStreaksTilemap(delta);
task->tState++;
}
@@ -2782,7 +2783,7 @@ static void FieldMoveShowMonIndoorsEffect_LoadGfx(struct Task *task)
task->data[12] = delta;
CpuCopy16(sFieldMoveStreaksIndoors_Gfx, (void *)(VRAM + offset), 0x80);
CpuFill32(0, (void *)(VRAM + delta), 0x800);
- LoadPalette(sFieldMoveStreaksIndoors_Pal, 0xf0, 0x20);
+ LoadPalette(sFieldMoveStreaksIndoors_Pal, 0xf0, sizeof(sFieldMoveStreaksIndoors_Pal));
task->tState++;
}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index 3c0276a27..150c352fc 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -30,6 +30,9 @@
#include "constants/songs.h"
#include "constants/trainer_types.h"
+#define NUM_FORCED_MOVEMENTS 18
+#define NUM_ACRO_BIKE_COLLISIONS 5
+
static EWRAM_DATA u8 sSpinStartFacingDir = 0;
EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {};
EWRAM_DATA struct PlayerAvatar gPlayerAvatar = {};
@@ -139,9 +142,7 @@ static void AlignFishingAnimationFrames(void);
static u8 TrySpinPlayerForWarp(struct ObjectEvent *object, s16 *a1);
-// .rodata
-
-static bool8 (*const sForcedMovementTestFuncs[])(u8) =
+static bool8 (*const sForcedMovementTestFuncs[NUM_FORCED_MOVEMENTS])(u8) =
{
MetatileBehavior_IsTrickHouseSlipperyFloor,
MetatileBehavior_IsIce_2,
@@ -163,7 +164,8 @@ static bool8 (*const sForcedMovementTestFuncs[])(u8) =
MetatileBehavior_IsMuddySlope,
};
-static bool8 (*const sForcedMovementFuncs[])(void) =
+// + 1 for ForcedMovement_None, which is excluded above
+static bool8 (*const sForcedMovementFuncs[NUM_FORCED_MOVEMENTS + 1])(void) =
{
ForcedMovement_None,
ForcedMovement_Slip,
@@ -188,12 +190,12 @@ static bool8 (*const sForcedMovementFuncs[])(void) =
static void (*const sPlayerNotOnBikeFuncs[])(u8, u16) =
{
- PlayerNotOnBikeNotMoving,
- PlayerNotOnBikeTurningInPlace,
- PlayerNotOnBikeMoving,
+ [NOT_MOVING] = PlayerNotOnBikeNotMoving,
+ [TURN_DIRECTION] = PlayerNotOnBikeTurningInPlace,
+ [MOVING] = PlayerNotOnBikeMoving,
};
-static bool8 (*const sAcroBikeTrickMetatiles[])(u8) =
+static bool8 (*const sAcroBikeTrickMetatiles[NUM_ACRO_BIKE_COLLISIONS])(u8) =
{
MetatileBehavior_IsBumpySlope,
MetatileBehavior_IsIsolatedVerticalRail,
@@ -202,7 +204,7 @@ static bool8 (*const sAcroBikeTrickMetatiles[])(u8) =
MetatileBehavior_IsHorizontalRail,
};
-static const u8 sAcroBikeTrickCollisionTypes[] = {
+static const u8 sAcroBikeTrickCollisionTypes[NUM_ACRO_BIKE_COLLISIONS] = {
COLLISION_WHEELIE_HOP,
COLLISION_ISOLATED_VERTICAL_RAIL,
COLLISION_ISOLATED_HORIZONTAL_RAIL,
@@ -232,33 +234,41 @@ static bool8 (*const sArrowWarpMetatileBehaviorChecks[])(u8) =
static const u8 sRivalAvatarGfxIds[][2] =
{
- {OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL},
- {OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE, OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE},
- {OBJ_EVENT_GFX_RIVAL_BRENDAN_ACRO_BIKE, OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE},
- {OBJ_EVENT_GFX_RIVAL_BRENDAN_SURFING, OBJ_EVENT_GFX_RIVAL_MAY_SURFING},
- {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER},
- {OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE},
- {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING},
- {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING}
+ [PLAYER_AVATAR_STATE_NORMAL] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL},
+ [PLAYER_AVATAR_STATE_MACH_BIKE] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE, OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE},
+ [PLAYER_AVATAR_STATE_ACRO_BIKE] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_ACRO_BIKE, OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE},
+ [PLAYER_AVATAR_STATE_SURFING] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_SURFING, OBJ_EVENT_GFX_RIVAL_MAY_SURFING},
+ [PLAYER_AVATAR_STATE_UNDERWATER] = {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER},
+ [PLAYER_AVATAR_STATE_FIELD_MOVE] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE},
+ [PLAYER_AVATAR_STATE_FISHING] = {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING},
+ [PLAYER_AVATAR_STATE_WATERING] = {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING}
};
static const u8 sPlayerAvatarGfxIds[][2] =
{
- {OBJ_EVENT_GFX_BRENDAN_NORMAL, OBJ_EVENT_GFX_MAY_NORMAL},
- {OBJ_EVENT_GFX_BRENDAN_MACH_BIKE, OBJ_EVENT_GFX_MAY_MACH_BIKE},
- {OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE, OBJ_EVENT_GFX_MAY_ACRO_BIKE},
- {OBJ_EVENT_GFX_BRENDAN_SURFING, OBJ_EVENT_GFX_MAY_SURFING},
- {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER},
- {OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_MAY_FIELD_MOVE},
- {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING},
- {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING},
+ [PLAYER_AVATAR_STATE_NORMAL] = {OBJ_EVENT_GFX_BRENDAN_NORMAL, OBJ_EVENT_GFX_MAY_NORMAL},
+ [PLAYER_AVATAR_STATE_MACH_BIKE] = {OBJ_EVENT_GFX_BRENDAN_MACH_BIKE, OBJ_EVENT_GFX_MAY_MACH_BIKE},
+ [PLAYER_AVATAR_STATE_ACRO_BIKE] = {OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE, OBJ_EVENT_GFX_MAY_ACRO_BIKE},
+ [PLAYER_AVATAR_STATE_SURFING] = {OBJ_EVENT_GFX_BRENDAN_SURFING, OBJ_EVENT_GFX_MAY_SURFING},
+ [PLAYER_AVATAR_STATE_UNDERWATER] = {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER},
+ [PLAYER_AVATAR_STATE_FIELD_MOVE] = {OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_MAY_FIELD_MOVE},
+ [PLAYER_AVATAR_STATE_FISHING] = {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING},
+ [PLAYER_AVATAR_STATE_WATERING] = {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING},
};
-static const u8 sFRLGAvatarGfxIds[] = {OBJ_EVENT_GFX_RED, OBJ_EVENT_GFX_LEAF};
+static const u8 sFRLGAvatarGfxIds[GENDER_COUNT] =
+{
+ [MALE] = OBJ_EVENT_GFX_RED,
+ [FEMALE] = OBJ_EVENT_GFX_LEAF
+};
-static const u8 sRSAvatarGfxIds[] = {OBJ_EVENT_GFX_LINK_RS_BRENDAN, OBJ_EVENT_GFX_LINK_RS_MAY};
+static const u8 sRSAvatarGfxIds[GENDER_COUNT] =
+{
+ [MALE] = OBJ_EVENT_GFX_LINK_RS_BRENDAN,
+ [FEMALE] = OBJ_EVENT_GFX_LINK_RS_MAY
+};
-static const u8 sPlayerAvatarGfxToStateFlag[2][5][2] =
+static const u8 sPlayerAvatarGfxToStateFlag[GENDER_COUNT][5][2] =
{
[MALE] =
{
@@ -306,8 +316,6 @@ static bool8 (*const sPlayerAvatarSecretBaseMatSpin[])(struct Task *, struct Obj
PlayerAvatar_SecretBaseMatSpinStep3,
};
-// .text
-
void MovementType_Player(struct Sprite *sprite)
{
UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, ObjectEventCB2_NoMovement2);
@@ -406,7 +414,7 @@ static u8 GetForcedMovementByMetatileBehavior(void)
{
u8 metatileBehavior = gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior;
- for (i = 0; i < 18; i++)
+ for (i = 0; i < NUM_FORCED_MOVEMENTS; i++)
{
if (sForcedMovementTestFuncs[i](metatileBehavior))
return i + 1;
@@ -429,7 +437,7 @@ static bool8 ForcedMovement_None(void)
return FALSE;
}
-static u8 DoForcedMovement(u8 direction, void (*b)(u8))
+static bool8 DoForcedMovement(u8 direction, void (*moveFunc)(u8))
{
struct PlayerAvatar *playerAvatar = &gPlayerAvatar;
u8 collision = CheckForPlayerAvatarCollision(direction);
@@ -440,7 +448,7 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8))
ForcedMovement_None();
if (collision < COLLISION_STOP_SURFING)
{
- return 0;
+ return FALSE;
}
else
{
@@ -448,23 +456,23 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8))
PlayerJumpLedge(direction);
playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED_MOVE;
playerAvatar->runningState = MOVING;
- return 1;
+ return TRUE;
}
}
else
{
playerAvatar->runningState = MOVING;
- b(direction);
- return 1;
+ moveFunc(direction);
+ return TRUE;
}
}
-static u8 DoForcedMovementInCurrentDirection(void (*a)(u8))
+static bool8 DoForcedMovementInCurrentDirection(void (*moveFunc)(u8))
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
playerObjEvent->disableAnim = TRUE;
- return DoForcedMovement(playerObjEvent->movementDirection, a);
+ return DoForcedMovement(playerObjEvent->movementDirection, moveFunc);
}
static bool8 ForcedMovement_Slip(void)
@@ -512,13 +520,13 @@ static bool8 ForcedMovement_PushedEastByCurrent(void)
return DoForcedMovement(DIR_EAST, PlayerRideWaterCurrent);
}
-static u8 ForcedMovement_Slide(u8 direction, void (*b)(u8))
+static bool8 ForcedMovement_Slide(u8 direction, void (*moveFunc)(u8))
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
playerObjEvent->disableAnim = TRUE;
playerObjEvent->facingDirectionLocked = TRUE;
- return DoForcedMovement(direction, b);
+ return DoForcedMovement(direction, moveFunc);
}
static bool8 ForcedMovement_SlideSouth(void)
@@ -557,7 +565,7 @@ static bool8 ForcedMovement_MuddySlope(void)
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
- if (playerObjEvent->movementDirection != DIR_NORTH || GetPlayerSpeed() <= 3)
+ if (playerObjEvent->movementDirection != DIR_NORTH || GetPlayerSpeed() < PLAYER_SPEED_FASTEST)
{
Bike_UpdateBikeCounterSpeed(0);
playerObjEvent->facingDirectionLocked = TRUE;
@@ -577,20 +585,11 @@ static void MovePlayerNotOnBike(u8 direction, u16 heldKeys)
static u8 CheckMovementInputNotOnBike(u8 direction)
{
if (direction == DIR_NONE)
- {
- gPlayerAvatar.runningState = NOT_MOVING;
- return 0;
- }
+ return gPlayerAvatar.runningState = NOT_MOVING;
else if (direction != GetPlayerMovementDirection() && gPlayerAvatar.runningState != MOVING)
- {
- gPlayerAvatar.runningState = TURN_DIRECTION;
- return 1;
- }
+ return gPlayerAvatar.runningState = TURN_DIRECTION;
else
- {
- gPlayerAvatar.runningState = MOVING;
- return 2;
- }
+ return gPlayerAvatar.runningState = MOVING;
}
static void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys)
@@ -755,7 +754,7 @@ static void CheckAcroBikeCollision(s16 x, s16 y, u8 metatileBehavior, u8 *collis
{
u8 i;
- for (i = 0; i < ARRAY_COUNT(sAcroBikeTrickMetatiles); i++)
+ for (i = 0; i < NUM_ACRO_BIKE_COLLISIONS; i++)
{
if (sAcroBikeTrickMetatiles[i](metatileBehavior))
{
diff --git a/src/field_specials.c b/src/field_specials.c
index 0a7236913..45585bcd3 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -3194,17 +3194,17 @@ void DoDeoxysRockInteraction(void)
}
static const u16 sDeoxysRockPalettes[][16] = {
- INCBIN_U16("graphics/misc/deoxys1.gbapal"),
- INCBIN_U16("graphics/misc/deoxys2.gbapal"),
- INCBIN_U16("graphics/misc/deoxys3.gbapal"),
- INCBIN_U16("graphics/misc/deoxys4.gbapal"),
- INCBIN_U16("graphics/misc/deoxys5.gbapal"),
- INCBIN_U16("graphics/misc/deoxys6.gbapal"),
- INCBIN_U16("graphics/misc/deoxys7.gbapal"),
- INCBIN_U16("graphics/misc/deoxys8.gbapal"),
- INCBIN_U16("graphics/misc/deoxys9.gbapal"),
- INCBIN_U16("graphics/misc/deoxys10.gbapal"),
- INCBIN_U16("graphics/misc/deoxys11.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_1.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_2.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_3.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_4.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_5.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_6.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_7.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_8.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_9.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_10.gbapal"),
+ INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_11.gbapal"),
};
static const u8 sDeoxysRockCoords[][2] = {
diff --git a/src/field_tasks.c b/src/field_tasks.c
index 760d85369..244036471 100644
--- a/src/field_tasks.c
+++ b/src/field_tasks.c
@@ -820,7 +820,7 @@ static void CrackedFloorPerStepCallback(u8 taskId)
tPrevY = y;
if (MetatileBehavior_IsCrackedFloor(behavior))
{
- if (GetPlayerSpeed() != BIKE_SPEED_FASTEST)
+ if (GetPlayerSpeed() != PLAYER_SPEED_FASTEST)
VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty
if (tFloor1Delay == 0)
diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c
index 9c166d008..a303b8423 100644
--- a/src/fldeff_flash.c
+++ b/src/fldeff_flash.c
@@ -61,13 +61,13 @@ static const struct FlashStruct sTransitionTypes[] =
{},
};
-static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/misc/cave_transition_white.gbapal");
-static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/misc/cave_transition_black.gbapal");
+static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/cave_transition/white.gbapal");
+static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/cave_transition/black.gbapal");
-static const u16 sCaveTransitionPalette_Enter[] = INCBIN_U16("graphics/misc/cave_transition_enter.gbapal");
-static const u16 sCaveTransitionPalette_Exit[] = INCBIN_U16("graphics/misc/cave_transition_exit.gbapal");
-static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/misc/cave_transition_map.bin.lz");
-static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/misc/cave_transition.4bpp.lz");
+static const u16 sCaveTransitionPalette_Enter[] = INCBIN_U16("graphics/cave_transition/enter.gbapal");
+static const u16 sCaveTransitionPalette_Exit[] = INCBIN_U16("graphics/cave_transition/exit.gbapal");
+static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/cave_transition/tilemap.bin.lz");
+static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/cave_transition/tiles.4bpp.lz");
bool8 SetUpFieldMove_Flash(void)
{
diff --git a/src/graphics.c b/src/graphics.c
index 47b82b6b7..9f708f18b 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -16,7 +16,7 @@ const u32 gUnusedPal_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.gbap
const u32 gSmokescreenImpactTiles[] = INCBIN_U32("graphics/battle_anims/sprites/smokescreen_impact.4bpp.lz");
const u32 gSmokescreenImpactPalette[] = INCBIN_U32("graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz");
-#include "data/graphics/interface_pokeballs.h"
+#include "data/graphics/pokeballs.h"
const u32 gBlankGfxCompressed[] = INCBIN_U32("graphics/interface/blank.4bpp.lz");
@@ -147,7 +147,7 @@ const u32 gBattleAnimSpriteGfx_ClawSlash[] = INCBIN_U32("graphics/battle_anims/s
const u32 gBattleAnimSpriteGfx_Scratch3[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_3.4bpp.lz");
const u32 gBattleAnimSpriteGfx_Scratch2[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_2.4bpp.lz");
-const u32 gPartyMenuHpBar_Gfx[] = INCBIN_U32("graphics/interface/party_menu_hpbar.4bpp.lz");
+const u32 gUnusedHpBar_Gfx[] = INCBIN_U32("graphics/battle_interface/hpbar_unused.4bpp.lz");
const u32 gBattleAnimSpriteGfx_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.4bpp.lz");
@@ -165,7 +165,7 @@ const u32 gBattleAnimSpriteGfx_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/
const u32 gBattleInterfaceGfx_UnusedWindow1[] = INCBIN_U32("graphics/battle_interface/unused_window.4bpp.lz");
const u32 gBattleInterfacePal_UnusedWindow1[] = INCBIN_U32("graphics/battle_interface/unused_window.gbapal.lz");
-const u32 gBattleInterfaceGfx_BattleBar[] = INCBIN_U32("graphics/interface/battle_bar.4bpp.lz");
+const u32 gBattleInterfaceGfx_BattleBar[] = INCBIN_U32("graphics/battle_interface/battle_bar.4bpp.lz");
const u32 gBattleAnimSpriteGfx_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.4bpp.lz");
const u32 gBattleAnimSpritePal_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.gbapal.lz");
@@ -950,9 +950,9 @@ const u32 gVsLettersGfx[] = INCBIN_U32("graphics/battle_transitions/vs.4bpp.lz")
#include "data/graphics/battle_terrain.h"
// Battle Dome
-const u32 gDomeTourneyBg_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz");
+const u32 gDomeTourneyTree_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_tree.4bpp.lz");
const u32 gDomeTourneyLine_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines
-const u32 gDomeTourneyLineMask_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_mask_map.bin.lz");
+const u32 gDomeTourneyTree_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_tree.bin.lz");
const u32 gDomeTourneyLineDown_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_down_map.bin.lz");
const u32 gDomeTourneyLineUp_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_up_map.bin.lz");
const u32 gDomeTourneyInfoCard_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card.4bpp.lz");
@@ -967,7 +967,7 @@ const u32 gBattleArenaJudgementSymbolsGfx[] = INCBIN_U32("graphics/battle_fronti
const u32 gBattleArenaJudgementSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.gbapal.lz");
const u32 gBattleWindowTextPalette[] = INCBIN_U32("graphics/battle_interface/text.gbapal.lz");
-const u16 gPPTextPalette[] = INCBIN_U16("graphics/battle_frontier/text_pp.gbapal");
+const u16 gPPTextPalette[] = INCBIN_U16("graphics/battle_interface/text_pp.gbapal");
const u16 gTilesetAnims_BattleDomePals0_0[] = INCBIN_U16("graphics/battle_frontier/dome_anim1.gbapal");
const u16 gTilesetAnims_BattleDomePals0_1[] = INCBIN_U16("graphics/battle_frontier/dome_anim2.gbapal");
@@ -1112,13 +1112,13 @@ const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/spri
const u32 gBattleAnimSpriteGfx_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz");
const u32 gBattleAnimSpritePal_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz");
-const u32 gPartyMenuBg_Gfx[] = INCBIN_U32("graphics/interface/party_menu_bg.4bpp.lz");
-const u32 gPartyMenuBg_Pal[] = INCBIN_U32("graphics/interface/party_menu_bg.gbapal.lz");
-const u32 gPartyMenuBg_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_bg.bin.lz");
+const u32 gPartyMenuBg_Gfx[] = INCBIN_U32("graphics/party_menu/bg.4bpp.lz");
+const u32 gPartyMenuBg_Pal[] = INCBIN_U32("graphics/party_menu/bg.gbapal.lz");
+const u32 gPartyMenuBg_Tilemap[] = INCBIN_U32("graphics/party_menu/bg.bin.lz");
-const u32 gPartyMenuPokeball_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball.4bpp.lz");
-const u32 gPartyMenuPokeballSmall_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball_small.4bpp.lz"); //unused
-const u32 gPartyMenuPokeball_Pal[] = INCBIN_U32("graphics/interface/party_menu_pokeball.gbapal.lz");
+const u32 gPartyMenuPokeball_Gfx[] = INCBIN_U32("graphics/party_menu/pokeball.4bpp.lz");
+const u32 gPartyMenuPokeballSmall_Gfx[] = INCBIN_U32("graphics/party_menu/pokeball_small.4bpp.lz"); //unused
+const u32 gPartyMenuPokeball_Pal[] = INCBIN_U32("graphics/party_menu/pokeball.gbapal.lz");
const u32 gStatusGfx_Icons[] = INCBIN_U32("graphics/interface/status_icons.4bpp.lz");
const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapal.lz");
@@ -1126,50 +1126,50 @@ const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapa
const u32 gMoveTypes_Gfx[] = INCBIN_U32("graphics/types/move_types.4bpp.lz");
const u32 gMoveTypes_Pal[] = INCBIN_U32("graphics/types/move_types.gbapal.lz");
-const u32 gSummaryMoveSelect_Gfx[] = INCBIN_U32("graphics/interface/summary_frames.4bpp.lz");
-const u32 gSummaryMoveSelect_Pal[] = INCBIN_U32("graphics/interface/summary_frames.gbapal.lz");
+const u32 gSummaryMoveSelect_Gfx[] = INCBIN_U32("graphics/summary_screen/move_select.4bpp.lz");
+const u32 gSummaryMoveSelect_Pal[] = INCBIN_U32("graphics/summary_screen/move_select.gbapal.lz");
-const u32 gSummaryScreen_Gfx[] = INCBIN_U32("graphics/interface/summary_screen.4bpp.lz");
-const u32 gSummaryScreen_Pal[] = INCBIN_U32("graphics/interface/summary_screen.gbapal.lz");
-const u32 gSummaryPage_Info_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_info.bin.lz");
-const u32 gSummaryPage_Skills_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_skills.bin.lz");
-const u32 gSummaryPage_BattleMoves_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_battle_moves.bin.lz");
-const u32 gSummaryPage_ContestMoves_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_contest_moves.bin.lz");
-const u32 gSummaryPage_InfoCopy_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_info_copy.bin.lz");
+const u32 gSummaryScreen_Gfx[] = INCBIN_U32("graphics/summary_screen/tiles.4bpp.lz");
+const u32 gSummaryScreen_Pal[] = INCBIN_U32("graphics/summary_screen/tiles.gbapal.lz");
+const u32 gSummaryPage_Info_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_info.bin.lz");
+const u32 gSummaryPage_Skills_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_skills.bin.lz");
+const u32 gSummaryPage_BattleMoves_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_battle_moves.bin.lz");
+const u32 gSummaryPage_ContestMoves_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_contest_moves.bin.lz");
+const u32 gSummaryPage_InfoEgg_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_info_egg.bin.lz");
-const u32 gBagMaleTiles[] = INCBIN_U32("graphics/misc/bag_male.4bpp.lz");
-const u32 gBagFemaleTiles[] = INCBIN_U32("graphics/misc/bag_female.4bpp.lz");
-const u32 gBagPalette[] = INCBIN_U32("graphics/misc/bag.gbapal.lz");
+const u32 gBagMaleTiles[] = INCBIN_U32("graphics/bag/bag_male.4bpp.lz");
+const u32 gBagFemaleTiles[] = INCBIN_U32("graphics/bag/bag_female.4bpp.lz");
+const u32 gBagPalette[] = INCBIN_U32("graphics/bag/bag.gbapal.lz");
-const u32 gBagScreenMale_Pal[] = INCBIN_U32("graphics/interface/bag_screen_male.gbapal.lz");
-const u32 gBagScreenFemale_Pal[] = INCBIN_U32("graphics/interface/bag_screen_female.gbapal.lz");
+const u32 gBagScreenMale_Pal[] = INCBIN_U32("graphics/bag/menu_male.gbapal.lz");
+const u32 gBagScreenFemale_Pal[] = INCBIN_U32("graphics/bag/menu_female.gbapal.lz");
-const u32 gBagScreen_Gfx[] = INCBIN_U32("graphics/interface/bag_screen.4bpp.lz");
-const u32 gBagScreen_GfxTileMap[] = INCBIN_U32("graphics/interface/bag_screen_tilemap.bin.lz");
+const u32 gBagScreen_Gfx[] = INCBIN_U32("graphics/bag/menu.4bpp.lz");
+const u32 gBagScreen_GfxTileMap[] = INCBIN_U32("graphics/bag/menu.bin.lz");
-const u32 gBattlePyramidBag_Gfx[] = INCBIN_U32("graphics/interface/bag_pyramid.4bpp.lz");
-const u32 gBattlePyramidBag_Pal[] = INCBIN_U32("graphics/interface/bag_pyramid.gbapal.lz"); // female palette is first and male is second.
-const u32 gBattlePyramidBagTilemap[] = INCBIN_U32("graphics/interface/bag_pyramid_tilemap.bin.lz");
-const u32 gBattlePyramidBagInterface_Pal[] = INCBIN_U32("graphics/interface/bag_pyramid_interface.gbapal.lz");
+const u32 gBattlePyramidBag_Gfx[] = INCBIN_U32("graphics/bag/bag_pyramid.4bpp.lz");
+const u32 gBattlePyramidBag_Pal[] = INCBIN_U32("graphics/bag/bag_pyramid.gbapal.lz"); // female palette is first and male is second.
+const u32 gBattlePyramidBagTilemap[] = INCBIN_U32("graphics/bag/menu_pyramid.bin.lz");
+const u32 gBattlePyramidBagInterface_Pal[] = INCBIN_U32("graphics/bag/menu_pyramid.gbapal.lz");
-const u32 gBagSwapLineGfx[] = INCBIN_U32("graphics/interface/bag_swap.4bpp.lz");
-const u32 gBagSwapLinePal[] = INCBIN_U32("graphics/interface/bag_swap.gbapal.lz");
+const u32 gSwapLineGfx[] = INCBIN_U32("graphics/interface/swap_line.4bpp.lz");
+const u32 gSwapLinePal[] = INCBIN_U32("graphics/interface/swap_line.gbapal.lz");
-const u32 gBuyMenuFrame_Gfx[] = INCBIN_U32("graphics/interface/mart_frame.4bpp.lz");
-const u32 gMenuMoneyPal[] = INCBIN_U32("graphics/interface/mart_frame.gbapal.lz");
-const u32 gBuyMenuFrame_Tilemap[] = INCBIN_U32("graphics/interface/mart_frame.bin.lz");
-
-const u32 gMenuMoneyGfx[] = INCBIN_U32("graphics/interface/money.4bpp.lz");
+const u32 gShopMenu_Gfx[] = INCBIN_U32("graphics/shop/menu.4bpp.lz");
+const u32 gShopMenu_Pal[] = INCBIN_U32("graphics/shop/menu.gbapal.lz");
+const u32 gShopMenu_Tilemap[] = INCBIN_U32("graphics/shop/menu.bin.lz");
+const u32 gShopMenuMoney_Gfx[] = INCBIN_U32("graphics/shop/money.4bpp.lz");
// Pokeblock
-const u32 gMenuPokeblock_Gfx[] = INCBIN_U32("graphics/interface/pokeblock_case_frame.4bpp.lz");
-const u32 gMenuPokeblock_Pal[] = INCBIN_U32("graphics/interface/pokeblock_case_frame.gbapal.lz");
+const u32 gMenuPokeblock_Gfx[] = INCBIN_U32("graphics/pokeblock/menu.4bpp.lz");
+const u32 gMenuPokeblock_Pal[] = INCBIN_U32("graphics/pokeblock/menu.gbapal.lz");
+
+const u32 gMenuPokeblockDevice_Gfx[] = INCBIN_U32("graphics/pokeblock/device.4bpp.lz");
+const u32 gMenuPokeblockDevice_Pal[] = INCBIN_U32("graphics/pokeblock/device.gbapal.lz");
-const u32 gMenuPokeblockDevice_Gfx[] = INCBIN_U32("graphics/interface/pokeblock_device.4bpp.lz");
-const u32 gMenuPokeblockDevice_Pal[] = INCBIN_U32("graphics/interface/pokeblock_device.gbapal.lz");
+const u32 gMenuPokeblock_Tilemap[] = INCBIN_U32("graphics/pokeblock/menu.bin.lz");
-const u32 gMenuPokeblock_Tilemap[] = INCBIN_U32("graphics/interface/pokeblock.bin.lz");
const u32 gPokeblock_Gfx[] = INCBIN_U32("graphics/pokeblock/pokeblock.4bpp.lz");
const u32 gPokeblockRed_Pal[] = INCBIN_U32("graphics/pokeblock/red.gbapal.lz");
const u32 gPokeblockBlue_Pal[] = INCBIN_U32("graphics/pokeblock/blue.gbapal.lz");
@@ -1186,7 +1186,7 @@ const u32 gPokeblockBlack_Pal[] = INCBIN_U32("graphics/pokeblock/black.gbapal.lz
const u32 gPokeblockWhite_Pal[] = INCBIN_U32("graphics/pokeblock/white.gbapal.lz");
const u32 gPokeblockGold_Pal[] = INCBIN_U32("graphics/pokeblock/gold.gbapal.lz");
-const u32 gPokeblockFeedBg_Tilemap[] = INCBIN_U32("graphics/interface/pokeblock_feeding_bg_map.bin.lz");
+const u32 gPokeblockFeedBg_Tilemap[] = INCBIN_U32("graphics/pokeblock/feeding_bg.bin.lz");
#include "data/graphics/berries.h"
#include "data/graphics/rayquaza_scene.h"
@@ -1259,9 +1259,9 @@ const u32 gPokedexSearchMenu_Gfx[] = INCBIN_U32("graphics/pokedex/search_menu.4b
const u32 gPokedexSearchMenuNational_Tilemap[] = INCBIN_U32("graphics/pokedex/search_menu_national.bin.lz");
const u32 gPokedexSearchMenuHoenn_Tilemap[] = INCBIN_U32("graphics/pokedex/search_menu_hoenn.bin.lz");
-const u16 gSummaryScreenPowAcc_Tilemap[] = INCBIN_U16("graphics/interface/powacc_tilemap.bin");
-const u16 gSummaryScreenAppealJam_Tilemap[] = INCBIN_U16("graphics/interface/appealjam_tilemap.bin");
-const u16 gSummaryScreenWindow_Tilemap[] = INCBIN_U16("graphics/interface/summary.bin");
+const u16 gSummaryScreen_MoveEffect_Battle_Tilemap[] = INCBIN_U16("graphics/summary_screen/effect_battle.bin");
+const u16 gSummaryScreen_MoveEffect_Contest_Tilemap[] = INCBIN_U16("graphics/summary_screen/effect_contest.bin");
+const u16 gSummaryScreen_MoveEffect_Cancel_Tilemap[] = INCBIN_U16("graphics/summary_screen/effect_cancel.bin");
const u16 gIntroCopyright_Pal[] = INCBIN_U16("graphics/intro/copyright.gbapal");
const u32 gIntroCopyright_Gfx[] = INCBIN_U32("graphics/intro/copyright.4bpp.lz");
@@ -1270,14 +1270,12 @@ const u32 gIntroCopyright_Tilemap[] = INCBIN_U32("graphics/intro/copyright.bin.l
const u16 gPokedexAreaScreenAreaUnknown_Pal[] = INCBIN_U16("graphics/pokedex/area_unknown.gbapal");
const u32 gPokedexAreaScreenAreaUnknown_Gfx[] = INCBIN_U32("graphics/pokedex/area_unknown.4bpp.lz");
-// seems to be fire red leftovers, but the menu elements is reused in the item menu for TM descriptions.
-
const u16 gMenuInfoElements1_Pal[] = INCBIN_U16("graphics/interface/menu_info1.gbapal");
const u16 gMenuInfoElements2_Pal[] = INCBIN_U16("graphics/interface/menu_info2.gbapal");
const u16 gMenuInfoElements3_Pal[] = INCBIN_U16("graphics/interface/menu_info3.gbapal");
-const u8 gMenuInfoElements_Gfx[] = INCBIN_U8("graphics/interface/menu_info.4bpp"); //the types are reused for item menu
+const u8 gMenuInfoElements_Gfx[] = INCBIN_U8("graphics/interface/menu_info.4bpp");
-const u8 gBagMenuHMIcon_Gfx[] = INCBIN_U8("graphics/interface/hm.4bpp");
+const u8 gBagMenuHMIcon_Gfx[] = INCBIN_U8("graphics/bag/hm.4bpp");
// contest results screen
@@ -1331,8 +1329,8 @@ const u32 gRegionMapCityZoomText_Gfx[] = INCBIN_U32("graphics/pokenav/city_zoom_
const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/condition/cancel.gbapal");
const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/condition/cancel.4bpp");
-const u16 gMonMarkingsMenu_Pal[] = INCBIN_U16("graphics/misc/mon_markings_menu.gbapal");
-const u8 gMonMarkingsMenu_Gfx[] = INCBIN_U8("graphics/misc/mon_markings_menu.4bpp");
+const u16 gMonMarkingsMenu_Pal[] = INCBIN_U16("graphics/interface/mon_markings_menu.gbapal");
+const u8 gMonMarkingsMenu_Gfx[] = INCBIN_U8("graphics/interface/mon_markings_menu.4bpp");
const u16 gBerryBlenderMiscPalette[] = INCBIN_U16("graphics/berry_blender/misc.gbapal");
const u16 gBerryBlenderArrowPalette[] = INCBIN_U16("graphics/berry_blender/arrow.gbapal");
@@ -1449,9 +1447,9 @@ const u32 gTilesetTiles_General[] = INCBIN_U32("data/tilesets/primary/general/ti
// trade/egg hatch
-const u16 gTradeGba_Pal[] = INCBIN_U16("graphics/link/gba.gbapal");
-const u16 gTradeGba2_Pal[] = INCBIN_U16("graphics/link/gba_pal2.gbapal");
-const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/link/gba.4bpp");
+const u16 gTradeGba_Pal[] = INCBIN_U16("graphics/trade/gba.gbapal");
+const u16 gTradeGba2_Pal[] = INCBIN_U16("graphics/trade/gba_pal2.gbapal");
+const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/trade/gba.4bpp");
static const u16 sEmptyPal[16] = {0};
@@ -1523,7 +1521,7 @@ const u16 gFrontierPassCancelButtonHighlighted_Tilemap[] = INCBIN_U16("graphics/
// Berry Crush
const u16 gBerryCrush_Crusher_Pal[] = INCBIN_U16("graphics/berry_crush/crusher.gbapal");
const u32 gBerryCrush_Crusher_Gfx[] = INCBIN_U32("graphics/berry_crush/crusher.4bpp.lz");
-const u32 gBerryCrush_Crusher_Tilemap[] = INCBIN_U32("graphics/berry_crush/crusher.bin.lz");
+const u32 gBerryCrush_TextWindows_Tilemap[] = INCBIN_U32("graphics/berry_crush/text_windows.bin.lz");
// random garbage at the end.
static const u8 sEmpty3[0x54BAC] = {0};
diff --git a/src/item_menu.c b/src/item_menu.c
index 56ef3cba3..9eaca9597 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -372,7 +372,7 @@ static const struct ScrollArrowsTemplate sBagScrollArrowsTemplate = {
.palNum = 0,
};
-static const u8 sRegisteredSelect_Gfx[] = INCBIN_U8("graphics/interface/select_button.4bpp");
+static const u8 sRegisteredSelect_Gfx[] = INCBIN_U8("graphics/bag/select_button.4bpp");
enum {
COLORID_NORMAL,
diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c
index 60de132b0..a5c265f90 100644
--- a/src/item_menu_icons.c
+++ b/src/item_menu_icons.c
@@ -33,8 +33,8 @@ static void SpriteCB_SwitchPocketRotatingBallInit(struct Sprite *sprite);
static void SpriteCB_SwitchPocketRotatingBallContinue(struct Sprite *sprite);
// static const rom data
-static const u16 gRotatingBall_Pal[] = INCBIN_U16("graphics/interface/bag_spinner.gbapal");
-static const u8 gRotatingBall[] = INCBIN_U8("graphics/interface/bag_spinner.4bpp");
+static const u16 sRotatingBall_Pal[] = INCBIN_U16("graphics/bag/rotating_ball.gbapal");
+static const u8 sRotatingBall_Gfx[] = INCBIN_U8("graphics/bag/rotating_ball.4bpp");
static const u8 gCherryUnused[] = INCBIN_U8("graphics/unused/cherry.4bpp");
static const u16 gCherryUnused_Pal[] = INCBIN_U16("graphics/unused/cherry.gbapal");
@@ -200,12 +200,12 @@ static const union AffineAnimCmd *const sRotatingBallAnimCmds_FullRotation[] =
static const struct SpriteSheet sRotatingBallTable =
{
- gRotatingBall, 0x80, TAG_ROTATING_BALL_GFX
+ sRotatingBall_Gfx, 0x80, TAG_ROTATING_BALL_GFX
};
static const struct SpritePalette sRotatingBallPaletteTable =
{
- gRotatingBall_Pal, TAG_ROTATING_BALL_GFX
+ sRotatingBall_Pal, TAG_ROTATING_BALL_GFX
};
static const struct SpriteTemplate sRotatingBallSpriteTemplate =
diff --git a/src/link.c b/src/link.c
index 1084d4a6d..aa9a0d73d 100644
--- a/src/link.c
+++ b/src/link.c
@@ -158,13 +158,13 @@ static void DoSend(void);
static void StopTimer(void);
static void SendRecvDone(void);
-static const u16 sWirelessLinkDisplayPal[] = INCBIN_U16("graphics/interface/wireless_link_display.gbapal");
-static const u32 sWirelessLinkDisplayGfx[] = INCBIN_U32("graphics/interface/wireless_link_display.4bpp.lz");
-static const u32 sWirelessLinkDisplayTilemap[] = INCBIN_U32("graphics/interface/wireless_link_display.bin.lz");
-static const u16 sLinkTestDigitsPal[] = INCBIN_U16("graphics/interface/link_test_digits.gbapal");
-static const u16 sLinkTestDigitsGfx[] = INCBIN_U16("graphics/interface/link_test_digits.4bpp");
+static const u16 sWirelessLinkDisplayPal[] = INCBIN_U16("graphics/link/wireless_display.gbapal");
+static const u32 sWirelessLinkDisplayGfx[] = INCBIN_U32("graphics/link/wireless_display.4bpp.lz");
+static const u32 sWirelessLinkDisplayTilemap[] = INCBIN_U32("graphics/link/wireless_display.bin.lz");
+static const u16 sLinkTestDigitsPal[] = INCBIN_U16("graphics/link/test_digits.gbapal");
+static const u16 sLinkTestDigitsGfx[] = INCBIN_U16("graphics/link/test_digits.4bpp");
static const u8 sUnusedTransparentWhite[] = _("{HIGHLIGHT TRANSPARENT}{COLOR WHITE}");
-static const u16 sCommErrorBg_Gfx[] = INCBIN_U16("graphics/interface/comm_error_bg.4bpp");
+static const u16 sCommErrorBg_Gfx[] = INCBIN_U16("graphics/link/comm_error_bg.4bpp");
static const struct BlockRequest sBlockRequests[] = {
[BLOCK_REQ_SIZE_NONE] = {gBlockSendBuffer, 200},
[BLOCK_REQ_SIZE_200] = {gBlockSendBuffer, 200},
diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c
index 571f305d0..1e1fe5b34 100644
--- a/src/link_rfu_3.c
+++ b/src/link_rfu_3.c
@@ -34,8 +34,8 @@ EWRAM_DATA u8 gWirelessStatusIndicatorSpriteId = 0;
static u8 sSequenceArrayValOffset;
-static const u16 sWirelessLinkIconPalette[] = INCBIN_U16("graphics/interface/wireless_link_icon.gbapal");
-static const u32 sWirelessLinkIconPic[] = INCBIN_U32("graphics/interface/wireless_link_icon.4bpp.lz");
+static const u16 sWirelessLinkIconPalette[] = INCBIN_U16("graphics/link/wireless_icon.gbapal");
+static const u32 sWirelessLinkIconPic[] = INCBIN_U32("graphics/link/wireless_icon.4bpp.lz");
// Most of the below two tables won't make sense with ASCII encoding.
static const u8 sWireless_ASCIItoRSETable[256] = {
diff --git a/src/main_menu.c b/src/main_menu.c
index e7802b1e7..54a4f6891 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -403,8 +403,8 @@ static const struct WindowTemplate gNewGameBirchSpeechTextWindows[] =
DUMMY_WIN_TEMPLATE
};
-static const u16 sMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal");
-static const u16 sMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal");
+static const u16 sMainMenuBgPal[] = INCBIN_U16("graphics/interface/main_menu_bg.gbapal");
+static const u16 sMainMenuTextPal[] = INCBIN_U16("graphics/interface/main_menu_text.gbapal");
static const u8 sTextColor_Headers[] = {TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3};
static const u8 sTextColor_MenuInfo[] = {TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_WHITE, TEXT_DYNAMIC_COLOR_3};
diff --git a/src/map_name_popup.c b/src/map_name_popup.c
index e44fb3383..8cf1a6bab 100644
--- a/src/map_name_popup.c
+++ b/src/map_name_popup.c
@@ -38,35 +38,35 @@ static EWRAM_DATA u8 sPopupTaskId = 0;
// .rodata
static const u8 sMapPopUp_Table[][960] =
{
- [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/interface/map_popup/wood.4bpp"),
- [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/interface/map_popup/marble.4bpp"),
- [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/interface/map_popup/stone.4bpp"),
- [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/interface/map_popup/brick.4bpp"),
- [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/interface/map_popup/underwater.4bpp"),
- [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/interface/map_popup/stone2.4bpp"),
+ [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/map_popup/wood.4bpp"),
+ [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/map_popup/marble.4bpp"),
+ [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/map_popup/stone.4bpp"),
+ [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/map_popup/brick.4bpp"),
+ [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/map_popup/underwater.4bpp"),
+ [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/map_popup/stone2.4bpp"),
};
static const u8 sMapPopUp_OutlineTable[][960] =
{
- [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/interface/map_popup/wood_outline.4bpp"),
- [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/interface/map_popup/marble_outline.4bpp"),
- [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/interface/map_popup/stone_outline.4bpp"),
- [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/interface/map_popup/brick_outline.4bpp"),
- [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/interface/map_popup/underwater_outline.4bpp"),
- [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/interface/map_popup/stone2_outline.4bpp"),
+ [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/map_popup/wood_outline.4bpp"),
+ [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/map_popup/marble_outline.4bpp"),
+ [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/map_popup/stone_outline.4bpp"),
+ [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/map_popup/brick_outline.4bpp"),
+ [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/map_popup/underwater_outline.4bpp"),
+ [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/map_popup/stone2_outline.4bpp"),
};
static const u16 sMapPopUp_PaletteTable[][16] =
{
- [MAPPOPUP_THEME_WOOD] = INCBIN_U16("graphics/interface/map_popup/wood.gbapal"),
- [MAPPOPUP_THEME_MARBLE] = INCBIN_U16("graphics/interface/map_popup/marble_outline.gbapal"),
- [MAPPOPUP_THEME_STONE] = INCBIN_U16("graphics/interface/map_popup/stone_outline.gbapal"),
- [MAPPOPUP_THEME_BRICK] = INCBIN_U16("graphics/interface/map_popup/brick_outline.gbapal"),
- [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U16("graphics/interface/map_popup/underwater_outline.gbapal"),
- [MAPPOPUP_THEME_STONE2] = INCBIN_U16("graphics/interface/map_popup/stone2_outline.gbapal"),
+ [MAPPOPUP_THEME_WOOD] = INCBIN_U16("graphics/map_popup/wood.gbapal"),
+ [MAPPOPUP_THEME_MARBLE] = INCBIN_U16("graphics/map_popup/marble_outline.gbapal"),
+ [MAPPOPUP_THEME_STONE] = INCBIN_U16("graphics/map_popup/stone_outline.gbapal"),
+ [MAPPOPUP_THEME_BRICK] = INCBIN_U16("graphics/map_popup/brick_outline.gbapal"),
+ [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U16("graphics/map_popup/underwater_outline.gbapal"),
+ [MAPPOPUP_THEME_STONE2] = INCBIN_U16("graphics/map_popup/stone2_outline.gbapal"),
};
-static const u16 sMapPopUp_Palette_Underwater[16] = INCBIN_U16("graphics/interface/map_popup/underwater.gbapal");
+static const u16 sMapPopUp_Palette_Underwater[16] = INCBIN_U16("graphics/map_popup/underwater.gbapal");
static const u8 sRegionMapSectionId_To_PopUpThemeIdMapping[] =
{
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index d5cf83bd2..e9f3e571f 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -71,12 +71,12 @@ static const union AnimCmd *const sAnims_SwapLine[] =
static const struct CompressedSpriteSheet sSpriteSheet_SwapLine =
{
- gBagSwapLineGfx, 0x100, TAG_SWAP_LINE
+ gSwapLineGfx, 0x100, TAG_SWAP_LINE
};
static const struct CompressedSpritePalette sSpritePalette_SwapLine =
{
- gBagSwapLinePal, TAG_SWAP_LINE
+ gSwapLinePal, TAG_SWAP_LINE
};
static const struct SpriteTemplate sSpriteTemplate_SwapLine =
diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c
index 178b6d5b7..4c72136d4 100644
--- a/src/minigame_countdown.c
+++ b/src/minigame_countdown.c
@@ -48,8 +48,8 @@ static void Task_StaticCountdown_Free(u8 taskId);
static void Task_StaticCountdown_Start(u8 taskId);
static void Task_StaticCountdown_Run(u8 taskId);
-static const u16 s321Start_Static_Pal[] = INCBIN_U16("graphics/minigame_countdown/321start_static.gbapal");
-static const u32 s321Start_Static_Gfx[] = INCBIN_U32("graphics/minigame_countdown/321start_static.4bpp.lz");
+static const u16 s321Start_Static_Pal[] = INCBIN_U16("graphics/link/321start_static.gbapal");
+static const u32 s321Start_Static_Gfx[] = INCBIN_U32("graphics/link/321start_static.4bpp.lz");
static const struct CompressedSpriteSheet sSpriteSheet_321Start_Static[] =
{
@@ -374,8 +374,8 @@ static void CreateStartSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subprior
static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3);
static void SpriteCB_Start(struct Sprite *sprite);
-static const u16 s321Start_Pal[] = INCBIN_U16("graphics/minigame_countdown/321start.gbapal");
-static const u32 s321Start_Gfx[] = INCBIN_U32("graphics/minigame_countdown/321start.4bpp.lz");
+static const u16 s321Start_Pal[] = INCBIN_U16("graphics/link/321start.gbapal");
+static const u32 s321Start_Gfx[] = INCBIN_U32("graphics/link/321start.4bpp.lz");
#define tState data[0]
#define tTilesTag data[2]
diff --git a/src/mon_markings.c b/src/mon_markings.c
index dbd5a2fa8..1e03179e9 100644
--- a/src/mon_markings.c
+++ b/src/mon_markings.c
@@ -22,8 +22,8 @@ static void SpriteCB_Marking(struct Sprite *);
static void SpriteCB_Cursor(struct Sprite *);
static struct Sprite *CreateMarkingComboSprite(u16, u16, const u16 *, u16);
-static const u16 sMonMarkings_Pal[] = INCBIN_U16("graphics/misc/mon_markings.gbapal");
-static const u8 sMonMarkings_Gfx[] = INCBIN_U8("graphics/misc/mon_markings.4bpp");
+static const u16 sMonMarkings_Pal[] = INCBIN_U16("graphics/interface/mon_markings.gbapal");
+static const u8 sMonMarkings_Gfx[] = INCBIN_U8("graphics/interface/mon_markings.4bpp");
static const struct OamData sOamData_MenuWindow =
{
diff --git a/src/money.c b/src/money.c
index c331462d4..592ce9f75 100644
--- a/src/money.c
+++ b/src/money.c
@@ -58,14 +58,14 @@ static const struct SpriteTemplate sSpriteTemplate_MoneyLabel =
static const struct CompressedSpriteSheet sSpriteSheet_MoneyLabel =
{
- .data = gMenuMoneyGfx,
+ .data = gShopMenuMoney_Gfx,
.size = 256,
.tag = MONEY_LABEL_TAG,
};
static const struct CompressedSpritePalette sSpritePalette_MoneyLabel =
{
- .data = gMenuMoneyPal,
+ .data = gShopMenu_Pal,
.tag = MONEY_LABEL_TAG
};
@@ -146,7 +146,7 @@ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed)
txtPtr = gStringVar4;
while (strLength-- > 0)
- *(txtPtr++) = 0x77;
+ *(txtPtr++) = CHAR_SPACER;
StringExpandPlaceholders(txtPtr, gText_PokedollarVar1);
AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, x, y, speed, NULL);
diff --git a/src/naming_screen.c b/src/naming_screen.c
index 5aef44f14..0019a51b1 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -1408,10 +1408,10 @@ static void NamingScreen_CreatePlayerIcon(void)
u8 rivalGfxId;
u8 spriteId;
- rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, sNamingScreen->monSpecies);
+ rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, sNamingScreen->monSpecies);
spriteId = CreateObjectGraphicsSprite(rivalGfxId, SpriteCallbackDummy, 56, 37, 0);
gSprites[spriteId].oam.priority = 3;
- StartSpriteAnim(&gSprites[spriteId], 4);
+ StartSpriteAnim(&gSprites[spriteId], ANIM_STD_GO_SOUTH);
}
static void NamingScreen_CreatePCIcon(void)
@@ -1438,7 +1438,7 @@ static void NamingScreen_CreateWaldaDadIcon(void)
spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_MAN_1, SpriteCallbackDummy, 56, 37, 0);
gSprites[spriteId].oam.priority = 3;
- StartSpriteAnim(&gSprites[spriteId], 4);
+ StartSpriteAnim(&gSprites[spriteId], ANIM_STD_GO_SOUTH);
}
//--------------------------------------------------
diff --git a/src/option_menu.c b/src/option_menu.c
index e66bddd7f..2991913d7 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -79,9 +79,9 @@ static void DrawBgWindowFrames(void);
EWRAM_DATA static bool8 sArrowPressed = FALSE;
-static const u16 sOptionMenuText_Pal[] = INCBIN_U16("graphics/misc/option_menu_text.gbapal");
+static const u16 sOptionMenuText_Pal[] = INCBIN_U16("graphics/interface/option_menu_text.gbapal");
// note: this is only used in the Japanese release
-static const u8 sEqualSignGfx[] = INCBIN_U8("graphics/misc/option_menu_equals_sign.4bpp");
+static const u8 sEqualSignGfx[] = INCBIN_U8("graphics/interface/option_menu_equals_sign.4bpp");
static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] =
{
diff --git a/src/pokeball.c b/src/pokeball.c
index cb68d6883..0250a0c5b 100644
--- a/src/pokeball.c
+++ b/src/pokeball.c
@@ -59,34 +59,34 @@ static u16 GetBattlerPokeballItemId(u8 battlerId);
const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] =
{
- [BALL_POKE] = {gInterfaceGfx_PokeBall, 384, GFX_TAG_POKEBALL},
- [BALL_GREAT] = {gInterfaceGfx_GreatBall, 384, GFX_TAG_GREATBALL},
- [BALL_SAFARI] = {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARIBALL},
- [BALL_ULTRA] = {gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRABALL},
- [BALL_MASTER] = {gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTERBALL},
- [BALL_NET] = {gInterfaceGfx_NetBall, 384, GFX_TAG_NETBALL},
- [BALL_DIVE] = {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVEBALL},
- [BALL_NEST] = {gInterfaceGfx_NestBall, 384, GFX_TAG_NESTBALL},
- [BALL_REPEAT] = {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEATBALL},
- [BALL_TIMER] = {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMERBALL},
- [BALL_LUXURY] = {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURYBALL},
- [BALL_PREMIER] = {gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIERBALL},
+ [BALL_POKE] = {gBallGfx_Poke, 384, GFX_TAG_POKEBALL},
+ [BALL_GREAT] = {gBallGfx_Great, 384, GFX_TAG_GREATBALL},
+ [BALL_SAFARI] = {gBallGfx_Safari, 384, GFX_TAG_SAFARIBALL},
+ [BALL_ULTRA] = {gBallGfx_Ultra, 384, GFX_TAG_ULTRABALL},
+ [BALL_MASTER] = {gBallGfx_Master, 384, GFX_TAG_MASTERBALL},
+ [BALL_NET] = {gBallGfx_Net, 384, GFX_TAG_NETBALL},
+ [BALL_DIVE] = {gBallGfx_Dive, 384, GFX_TAG_DIVEBALL},
+ [BALL_NEST] = {gBallGfx_Nest, 384, GFX_TAG_NESTBALL},
+ [BALL_REPEAT] = {gBallGfx_Repeat, 384, GFX_TAG_REPEATBALL},
+ [BALL_TIMER] = {gBallGfx_Timer, 384, GFX_TAG_TIMERBALL},
+ [BALL_LUXURY] = {gBallGfx_Luxury, 384, GFX_TAG_LUXURYBALL},
+ [BALL_PREMIER] = {gBallGfx_Premier, 384, GFX_TAG_PREMIERBALL},
};
const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] =
{
- [BALL_POKE] = {gInterfacePal_PokeBall, GFX_TAG_POKEBALL},
- [BALL_GREAT] = {gInterfacePal_GreatBall, GFX_TAG_GREATBALL},
- [BALL_SAFARI] = {gInterfacePal_SafariBall, GFX_TAG_SAFARIBALL},
- [BALL_ULTRA] = {gInterfacePal_UltraBall, GFX_TAG_ULTRABALL},
- [BALL_MASTER] = {gInterfacePal_MasterBall, GFX_TAG_MASTERBALL},
- [BALL_NET] = {gInterfacePal_NetBall, GFX_TAG_NETBALL},
- [BALL_DIVE] = {gInterfacePal_DiveBall, GFX_TAG_DIVEBALL},
- [BALL_NEST] = {gInterfacePal_NestBall, GFX_TAG_NESTBALL},
- [BALL_REPEAT] = {gInterfacePal_RepeatBall, GFX_TAG_REPEATBALL},
- [BALL_TIMER] = {gInterfacePal_TimerBall, GFX_TAG_TIMERBALL},
- [BALL_LUXURY] = {gInterfacePal_LuxuryBall, GFX_TAG_LUXURYBALL},
- [BALL_PREMIER] = {gInterfacePal_PremierBall, GFX_TAG_PREMIERBALL},
+ [BALL_POKE] = {gBallPal_Poke, GFX_TAG_POKEBALL},
+ [BALL_GREAT] = {gBallPal_Great, GFX_TAG_GREATBALL},
+ [BALL_SAFARI] = {gBallPal_Safari, GFX_TAG_SAFARIBALL},
+ [BALL_ULTRA] = {gBallPal_Ultra, GFX_TAG_ULTRABALL},
+ [BALL_MASTER] = {gBallPal_Master, GFX_TAG_MASTERBALL},
+ [BALL_NET] = {gBallPal_Net, GFX_TAG_NETBALL},
+ [BALL_DIVE] = {gBallPal_Dive, GFX_TAG_DIVEBALL},
+ [BALL_NEST] = {gBallPal_Nest, GFX_TAG_NESTBALL},
+ [BALL_REPEAT] = {gBallPal_Repeat, GFX_TAG_REPEATBALL},
+ [BALL_TIMER] = {gBallPal_Timer, GFX_TAG_TIMERBALL},
+ [BALL_LUXURY] = {gBallPal_Luxury, GFX_TAG_LUXURYBALL},
+ [BALL_PREMIER] = {gBallPal_Premier, GFX_TAG_PREMIERBALL},
};
static const struct OamData sBallOamData =
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index 755cc7de0..8bf12c2bd 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -331,6 +331,13 @@ enum {
TILEMAPID_COUNT
};
+// Window IDs for sWindowTemplates
+enum {
+ WIN_DISPLAY_INFO,
+ WIN_MESSAGE,
+ WIN_ITEM_DESC,
+};
+
struct Wallpaper
{
const u32 *tiles;
@@ -939,49 +946,31 @@ static const union AffineAnimCmd *const sAffineAnims_ChooseBoxMenu[] =
static const u8 sChooseBoxMenu_TextColors[] = {TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5};
static const u8 sText_OutOf30[] = _("/30");
-static const u16 sChooseBoxMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/box_selection_popup.gbapal");
-static const u8 sChooseBoxMenuCenter_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp");
-static const u8 sChooseBoxMenuSides_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp");
-static const u32 sScrollingBg_Gfx[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.4bpp.lz");
-static const u32 sScrollingBg_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.bin.lz");
-static const u16 sDisplayMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/display_menu.gbapal"); // Unused
-static const u32 sDisplayMenu_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/display_menu.bin.lz");
-
-static const u16 sPkmnData_Tilemap[] =
-{
- 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x0108, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116, 0x0117, 0x0118,
- 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107, 0x2108, 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117, 0x2118,
-};
-
+static const u16 sChooseBoxMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/box_selection_popup.gbapal");
+static const u8 sChooseBoxMenuCenter_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp");
+static const u8 sChooseBoxMenuSides_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp");
+static const u32 sScrollingBg_Gfx[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.4bpp.lz");
+static const u32 sScrollingBg_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.bin.lz");
+static const u16 sDisplayMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/display_menu.gbapal"); // Unused
+static const u32 sDisplayMenu_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/display_menu.bin.lz");
+static const u16 sPkmnData_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/pkmn_data.bin");
// sInterface_Pal - parts of the display frame, "PkmnData"'s normal color, Close Box
-static const u16 sInterface_Pal[] = INCBIN_U16("graphics/pokemon_storage/interface.gbapal");
-static const u16 sPkmnDataGray_Pal[] = INCBIN_U16("graphics/pokemon_storage/pkmn_data_gray.gbapal");
-static const u16 sBg_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg.gbapal");
-static const u16 sBgMoveItems_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg_move_items.gbapal");
-
-static const u16 sCloseBoxButton_Tilemap[] =
-{
- 0x014c, 0x014d, 0x014e, 0x014f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x015c, 0x015d, 0x015e, 0x015f, 0x0180, 0x0181, 0x0182,
- 0x0183, 0x0184, 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189,
- 0x018a, 0x018b, 0x018c, 0x018d
-};
-static const u16 sPartySlotFilled_Tilemap[] =
-{
- 0x1140, 0x1141, 0x1141, 0x1142, 0x1150, 0x1151, 0x1151, 0x1152, 0x1160, 0x1161, 0x1161, 0x1162,
-};
-static const u16 sPartySlotEmpty_Tilemap[] =
-{
- 0x1143, 0x1144, 0x1144, 0x1145, 0x1153, 0x1154, 0x1154, 0x1155, 0x1163, 0x1164, 0x1164, 0x1165,
-};
-
-static const u16 sWaveform_Pal[] = INCBIN_U16("graphics/pokemon_storage/waveform.gbapal");
-static const u32 sWaveform_Gfx[] = INCBIN_U32("graphics/pokemon_storage/waveform.4bpp");
-static const u16 sUnused_Pal[] = INCBIN_U16("graphics/pokemon_storage/unused.gbapal");
-static const u16 sUnknown_Pal[] = INCBIN_U16("graphics/pokemon_storage/unknown.gbapal");
+static const u16 sInterface_Pal[] = INCBIN_U16("graphics/pokemon_storage/interface.gbapal");
+static const u16 sPkmnDataGray_Pal[] = INCBIN_U16("graphics/pokemon_storage/pkmn_data_gray.gbapal");
+static const u16 sBg_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg.gbapal");
+static const u16 sBgMoveItems_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg_move_items.gbapal");
+static const u16 sCloseBoxButton_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/close_box_button.bin");
+static const u16 sPartySlotFilled_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/party_slot_filled.bin");
+static const u16 sPartySlotEmpty_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/party_slot_empty.bin");
+static const u16 sWaveform_Pal[] = INCBIN_U16("graphics/pokemon_storage/waveform.gbapal");
+static const u32 sWaveform_Gfx[] = INCBIN_U32("graphics/pokemon_storage/waveform.4bpp");
+static const u16 sUnused_Pal[] = INCBIN_U16("graphics/pokemon_storage/unused.gbapal");
+static const u16 sTextWindows_Pal[] = INCBIN_U16("graphics/pokemon_storage/text_windows.gbapal");
static const struct WindowTemplate sWindowTemplates[] =
{
- {
+ // The panel below the currently displayed Pokémon
+ [WIN_DISPLAY_INFO] = {
.bg = 1,
.tilemapLeft = 0,
.tilemapTop = 11,
@@ -990,7 +979,7 @@ static const struct WindowTemplate sWindowTemplates[] =
.paletteNum = 3,
.baseBlock = 0xC0,
},
- {
+ [WIN_MESSAGE] = {
.bg = 0,
.tilemapLeft = 11,
.tilemapTop = 17,
@@ -999,7 +988,7 @@ static const struct WindowTemplate sWindowTemplates[] =
.paletteNum = 15,
.baseBlock = 0x14,
},
- {
+ [WIN_ITEM_DESC] = {
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 13,
@@ -1349,7 +1338,7 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero
windowId = AddWindow(&winTemplate);
FillWindowPixelBuffer(windowId, PIXEL_FILL(zero2));
tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA);
- tileData2 = (winTemplate.width * 32) + tileData1;
+ tileData2 = (winTemplate.width * TILE_SIZE_4BPP) + tileData1;
if (!zero1)
txtColor[0] = TEXT_COLOR_TRANSPARENT;
@@ -1385,7 +1374,7 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero
// Unused
static void UnusedDrawTextWindow(const u8 *string, void *dst, u16 offset, u8 bgColor, u8 fgColor, u8 shadowColor)
{
- u32 tileSize;
+ u32 tilesSize;
u8 windowId;
u8 txtColor[3];
u8 *tileData1, *tileData2;
@@ -1393,17 +1382,17 @@ static void UnusedDrawTextWindow(const u8 *string, void *dst, u16 offset, u8 bgC
winTemplate.width = StringLength_Multibyte(string);
winTemplate.height = 2;
- tileSize = winTemplate.width * 32;
+ tilesSize = winTemplate.width * TILE_SIZE_4BPP;
windowId = AddWindow(&winTemplate);
FillWindowPixelBuffer(windowId, PIXEL_FILL(bgColor));
tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA);
- tileData2 = (winTemplate.width * 32) + tileData1;
+ tileData2 = (winTemplate.width * TILE_SIZE_4BPP) + tileData1;
txtColor[0] = bgColor;
txtColor[1] = fgColor;
txtColor[2] = shadowColor;
AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 2, 0, 0, txtColor, TEXT_SKIP_DRAW, string);
- CpuCopy16(tileData1, dst, tileSize);
- CpuCopy16(tileData2, dst + offset, tileSize);
+ CpuCopy16(tileData1, dst, tilesSize);
+ CpuCopy16(tileData2, dst + offset, tilesSize);
RemoveWindow(windowId);
}
@@ -2136,10 +2125,10 @@ static void Task_InitPokeStorage(u8 taskId)
}
break;
case 2:
- PutWindowTilemap(0);
- ClearWindowTilemap(1);
+ PutWindowTilemap(WIN_DISPLAY_INFO);
+ ClearWindowTilemap(WIN_MESSAGE);
CpuFill32(0, (void *)VRAM, 0x200);
- LoadUserWindowBorderGfx(1, 0xB, 0xE0);
+ LoadUserWindowBorderGfx(WIN_MESSAGE, 0xB, 0xE0);
break;
case 3:
ResetAllBgCoords();
@@ -3862,7 +3851,7 @@ static void InitPalettesAndSprites(void)
{
LoadPalette(sInterface_Pal, 0, sizeof(sInterface_Pal));
LoadPalette(sPkmnDataGray_Pal, 0x20, sizeof(sPkmnDataGray_Pal));
- LoadPalette(sUnknown_Pal, 0xF0, sizeof(sUnknown_Pal));
+ LoadPalette(sTextWindows_Pal, 0xF0, sizeof(sTextWindows_Pal));
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
LoadPalette(sBg_Pal, 0x30, sizeof(sBg_Pal));
else
@@ -3970,7 +3959,7 @@ static void CreateDisplayMonSprite(void)
sStorage->displayMonSprite = &gSprites[spriteId];
sStorage->displayMonPalOffset = palSlot * 16 + 0x100;
- sStorage->displayMonTilePtr = (void*) OBJ_VRAM0 + tileStart * 32;
+ sStorage->displayMonTilePtr = (void*) OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP;
} while (0);
if (sStorage->displayMonSprite == NULL)
@@ -4001,23 +3990,23 @@ static void LoadDisplayMonGfx(u16 species, u32 pid)
static void PrintDisplayMonInfo(void)
{
- FillWindowPixelBuffer(0, PIXEL_FILL(1));
+ FillWindowPixelBuffer(WIN_DISPLAY_INFO, PIXEL_FILL(1));
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
{
- AddTextPrinterParameterized(0, FONT_NORMAL, sStorage->displayMonNameText, 6, 0, TEXT_SKIP_DRAW, NULL);
- AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 15, TEXT_SKIP_DRAW, NULL);
- AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 29, TEXT_SKIP_DRAW, NULL);
- AddTextPrinterParameterized(0, FONT_SMALL, sStorage->displayMonItemName, 6, 43, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_NORMAL, sStorage->displayMonNameText, 6, 0, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 15, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 29, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SMALL, sStorage->displayMonItemName, 6, 43, TEXT_SKIP_DRAW, NULL);
}
else
{
- AddTextPrinterParameterized(0, FONT_SMALL, sStorage->displayMonItemName, 6, 0, TEXT_SKIP_DRAW, NULL);
- AddTextPrinterParameterized(0, FONT_NORMAL, sStorage->displayMonNameText, 6, 13, TEXT_SKIP_DRAW, NULL);
- AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 28, TEXT_SKIP_DRAW, NULL);
- AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 42, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SMALL, sStorage->displayMonItemName, 6, 0, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_NORMAL, sStorage->displayMonNameText, 6, 13, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 28, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 42, TEXT_SKIP_DRAW, NULL);
}
- CopyWindowToVram(0, COPYWIN_GFX);
+ CopyWindowToVram(WIN_DISPLAY_INFO, COPYWIN_GFX);
if (sStorage->displayMonSpecies != SPECIES_NONE)
{
UpdateMonMarkingTiles(sStorage->displayMonMarkings, sStorage->markingComboTilesPtr);
@@ -4278,7 +4267,7 @@ static void UpdateBoxToSendMons(void)
static void InitPokeStorageBg0(void)
{
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29));
- LoadUserWindowBorderGfx(1, 2, 208);
+ LoadUserWindowBorderGfx(WIN_MESSAGE, 2, 208);
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17);
CopyBgTilemapBufferToVram(0);
}
@@ -4317,11 +4306,11 @@ static void PrintMessage(u8 id)
}
DynamicPlaceholderTextUtil_ExpandPlaceholders(sStorage->messageText, sMessages[id].text);
- FillWindowPixelBuffer(1, PIXEL_FILL(1));
- AddTextPrinterParameterized(1, FONT_NORMAL, sStorage->messageText, 0, 1, TEXT_SKIP_DRAW, NULL);
- DrawTextBorderOuter(1, 2, 14);
- PutWindowTilemap(1);
- CopyWindowToVram(1, COPYWIN_GFX);
+ FillWindowPixelBuffer(WIN_MESSAGE, PIXEL_FILL(1));
+ AddTextPrinterParameterized(WIN_MESSAGE, FONT_NORMAL, sStorage->messageText, 0, 1, TEXT_SKIP_DRAW, NULL);
+ DrawTextBorderOuter(WIN_MESSAGE, 2, 14);
+ PutWindowTilemap(WIN_MESSAGE);
+ CopyWindowToVram(WIN_MESSAGE, COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(0);
}
@@ -4333,7 +4322,7 @@ static void ShowYesNoWindow(s8 cursorPos)
static void ClearBottomWindow(void)
{
- ClearStdWindowAndFrameToTransparent(1, FALSE);
+ ClearStdWindowAndFrameToTransparent(WIN_MESSAGE, FALSE);
ScheduleBgCopyTilemapToVram(0);
}
@@ -5130,7 +5119,7 @@ static u16 TryLoadMonIconTiles(u16 species)
sStorage->iconSpeciesList[i] = species;
sStorage->numIconsPerSpecies[i]++;
offset = 16 * i;
- CpuCopy32(GetMonIconTiles(species, TRUE), (void*)(OBJ_VRAM0) + offset * 32, 0x200);
+ CpuCopy32(GetMonIconTiles(species, TRUE), (void*)(OBJ_VRAM0) + offset * TILE_SIZE_4BPP, 0x200);
return offset;
}
@@ -8755,7 +8744,7 @@ static void CreateItemIconSprites(void)
{
spriteSheet.tag = GFXTAG_ITEM_ICON_0 + i;
LoadCompressedSpriteSheet(&spriteSheet);
- sStorage->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * 32 + (void*)(OBJ_VRAM0);
+ sStorage->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * TILE_SIZE_4BPP + (void*)(OBJ_VRAM0);
sStorage->itemIcons[i].palIndex = AllocSpritePalette(PALTAG_ITEM_ICON_0 + i);
sStorage->itemIcons[i].palIndex *= 16;
sStorage->itemIcons[i].palIndex += 0x100;
@@ -9201,8 +9190,8 @@ static void PrintItemDescription(void)
else
description = ItemId_GetDescription(sStorage->displayMonItemId);
- FillWindowPixelBuffer(2, PIXEL_FILL(1));
- AddTextPrinterParameterized5(2, FONT_NORMAL, description, 4, 0, 0, NULL, 0, 1);
+ FillWindowPixelBuffer(WIN_ITEM_DESC, PIXEL_FILL(1));
+ AddTextPrinterParameterized5(WIN_ITEM_DESC, FONT_NORMAL, description, 4, 0, 0, NULL, 0, 1);
}
static void InitItemInfoWindow(void)
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index c5aeb6b47..10c69a422 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -365,7 +365,7 @@ struct TilemapCtrl
u8 field_9;
};
-static const u16 sStatusTilemap[] = INCBIN_U16("graphics/interface/status_tilemap.bin");
+static const u16 sStatusTilemap[] = INCBIN_U16("graphics/summary_screen/status_tilemap.bin");
static const struct TilemapCtrl sStatusTilemapCtrl1 =
{
sStatusTilemap, 1, 10, 2, 0, 18
@@ -376,11 +376,11 @@ static const struct TilemapCtrl sStatusTilemapCtrl2 =
};
static const struct TilemapCtrl sBattleMoveTilemapCtrl =
{
- gSummaryScreenPowAcc_Tilemap, 0, 10, 7, 0, 45
+ gSummaryScreen_MoveEffect_Battle_Tilemap, 0, 10, 7, 0, 45
};
static const struct TilemapCtrl sContestMoveTilemapCtrl =
{
- gSummaryScreenAppealJam_Tilemap, 0, 10, 7, 0, 45
+ gSummaryScreen_MoveEffect_Contest_Tilemap, 0, 10, 7, 0, 45
};
static const s8 sMultiBattleOrder[] = {0, 2, 3, 1, 4, 5};
static const struct WindowTemplate sSummaryTemplate[] =
@@ -701,8 +701,8 @@ static const u8 sTextColors[][3] =
{0, 7, 8}
};
-static const u8 sSummaryAButtonBitmap[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp");
-static const u8 sSummaryBButtonBitmap[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp");
+static const u8 sAButton_Gfx[] = INCBIN_U8("graphics/summary_screen/a_button.4bpp");
+static const u8 sBButton_Gfx[] = INCBIN_U8("graphics/summary_screen/b_button.4bpp");
static void (*const sTextPrinterFunctions[])(void) =
{
@@ -1071,7 +1071,7 @@ static const struct SpriteTemplate sSpriteTemplate_StatusCondition =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-static const u16 sSummaryMarkingsPalette[] = INCBIN_U16("graphics/interface/summary_markings.gbapal");
+static const u16 sMarkings_Pal[] = INCBIN_U16("graphics/summary_screen/markings.gbapal");
// code
void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void))
@@ -1312,7 +1312,7 @@ static bool8 DecompressGraphics(void)
}
break;
case 2:
- LZDecompressWram(gSummaryPage_InfoCopy_Tilemap, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][1]);
+ LZDecompressWram(gSummaryPage_InfoEgg_Tilemap, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][1]);
sMonSummaryScreen->switchCounter++;
break;
case 3:
@@ -2551,6 +2551,7 @@ static void Task_ShowStatusWindow(u8 taskId)
}
}
+// Toggles the "Cancel" window that appears when selecting a move
static void TilemapFiveMovesDisplay(u16 *dst, u16 palette, bool8 remove)
{
u16 i, id;
@@ -2561,18 +2562,18 @@ static void TilemapFiveMovesDisplay(u16 *dst, u16 palette, bool8 remove)
{
for (i = 0; i < 20; i++)
{
- dst[id + i] = gSummaryScreenWindow_Tilemap[i] + palette;
- dst[id + i + 0x20] = gSummaryScreenWindow_Tilemap[i] + palette;
- dst[id + i + 0x40] = gSummaryScreenWindow_Tilemap[i + 20] + palette;
+ dst[id + i] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i] + palette;
+ dst[id + i + 0x20] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i] + palette;
+ dst[id + i + 0x40] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i + 20] + palette;
}
}
else // Remove
{
for (i = 0; i < 20; i++)
{
- dst[id + i] = gSummaryScreenWindow_Tilemap[i + 20] + palette;
- dst[id + i + 0x20] = gSummaryScreenWindow_Tilemap[i + 40] + palette;
- dst[id + i + 0x40] = gSummaryScreenWindow_Tilemap[i + 40] + palette;
+ dst[id + i] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i + 20] + palette;
+ dst[id + i + 0x20] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i + 40] + palette;
+ dst[id + i + 0x40] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i + 40] + palette;
}
}
}
@@ -2788,8 +2789,8 @@ static void PrintGenderSymbol(struct Pokemon *mon, u16 species)
static void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x)
{
- // sSummaryBButtonBitmap - 0x80 = sSummaryAButtonBitmap
- BlitBitmapToWindow(windowId, (bButton) ? sSummaryBButtonBitmap : sSummaryBButtonBitmap - 0x80, x, 0, 16, 16);
+ // sBButton_Gfx - sizeof(sBButton_Gfx) = sAButton_Gfx
+ BlitBitmapToWindow(windowId, (bButton) ? sBButton_Gfx : sBButton_Gfx - sizeof(sBButton_Gfx), x, 0, 16, 16);
}
static void PrintPageNamesAndStats(void)
@@ -4011,7 +4012,7 @@ static void StopPokemonAnimations(void) // A subtle effect, this function stops
static void CreateMonMarkingsSprite(struct Pokemon *mon)
{
- struct Sprite *sprite = CreateMonMarkingAllCombosSprite(TAG_MON_MARKINGS, TAG_MON_MARKINGS, sSummaryMarkingsPalette);
+ struct Sprite *sprite = CreateMonMarkingAllCombosSprite(TAG_MON_MARKINGS, TAG_MON_MARKINGS, sMarkings_Pal);
sMonSummaryScreen->markingsSprite = sprite;
if (sprite != NULL)
diff --git a/src/region_map.c b/src/region_map.c
index 0dc902674..09e2d69bf 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -1516,28 +1516,26 @@ static void UnhideRegionMapPlayerIcon(void)
}
}
+#define sY data[0]
+#define sX data[1]
+#define sVisible data[2]
+#define sTimer data[7]
+
static void SpriteCB_PlayerIconMapZoomed(struct Sprite *sprite)
{
sprite->x2 = -2 * gRegionMap->scrollX;
sprite->y2 = -2 * gRegionMap->scrollY;
- sprite->data[0] = sprite->y + sprite->y2 + sprite->centerToCornerVecY;
- sprite->data[1] = sprite->x + sprite->x2 + sprite->centerToCornerVecX;
- if (sprite->data[0] < -8 || sprite->data[0] > 0xa8 || sprite->data[1] < -8 || sprite->data[1] > 0xf8)
- {
- sprite->data[2] = FALSE;
- }
+ sprite->sY = sprite->y + sprite->y2 + sprite->centerToCornerVecY;
+ sprite->sX = sprite->x + sprite->x2 + sprite->centerToCornerVecX;
+ if (sprite->sY < -8 || sprite->sY > DISPLAY_HEIGHT + 8 || sprite->sX < -8 || sprite->sX > DISPLAY_WIDTH + 8)
+ sprite->sVisible = FALSE;
else
- {
- sprite->data[2] = TRUE;
- }
- if (sprite->data[2] == TRUE)
- {
+ sprite->sVisible = TRUE;
+
+ if (sprite->sVisible == TRUE)
SpriteCB_PlayerIcon(sprite);
- }
else
- {
sprite->invisible = TRUE;
- }
}
static void SpriteCB_PlayerIconMapFull(struct Sprite *sprite)
@@ -1549,9 +1547,9 @@ static void SpriteCB_PlayerIcon(struct Sprite *sprite)
{
if (gRegionMap->blinkPlayerIcon)
{
- if (++sprite->data[7] > 16)
+ if (++sprite->sTimer > 16)
{
- sprite->data[7] = 0;
+ sprite->sTimer = 0;
sprite->invisible = sprite->invisible ? FALSE : TRUE;
}
}
@@ -1567,6 +1565,11 @@ void TrySetPlayerIconBlink(void)
gRegionMap->blinkPlayerIcon = TRUE;
}
+#undef sY
+#undef sX
+#undef sVisible
+#undef sTimer
+
u8 *GetMapName(u8 *dest, u16 regionMapId, u16 padLength)
{
u8 *str;
@@ -1709,7 +1712,7 @@ void CB2_OpenFlyMap(void)
gMain.state++;
break;
case 7:
- LoadPalette(sRegionMapFramePal, 0x10, 0x20);
+ LoadPalette(sRegionMapFramePal, 0x10, sizeof(sRegionMapFramePal));
PutWindowTilemap(2);
FillWindowPixelBuffer(2, PIXEL_FILL(0));
AddTextPrinterParameterized(2, FONT_NORMAL, gText_FlyToWhere, 0, 1, 0, NULL);
diff --git a/src/rotating_gate.c b/src/rotating_gate.c
index 23fbb3e1d..f839d22c3 100644
--- a/src/rotating_gate.c
+++ b/src/rotating_gate.c
@@ -219,14 +219,14 @@ static const struct RotatingGatePuzzle sRotatingGate_TrickHousePuzzleConfig[] =
{10, 19, GATE_SHAPE_L3, GATE_ORIENTATION_180},
};
-static const u8 sRotatingGateTiles_1[] = INCBIN_U8("graphics/misc/rotating_gate_1.4bpp");
-static const u8 sRotatingGateTiles_2[] = INCBIN_U8("graphics/misc/rotating_gate_2.4bpp");
-static const u8 sRotatingGateTiles_3[] = INCBIN_U8("graphics/misc/rotating_gate_3.4bpp");
-static const u8 sRotatingGateTiles_4[] = INCBIN_U8("graphics/misc/rotating_gate_4.4bpp");
-static const u8 sRotatingGateTiles_5[] = INCBIN_U8("graphics/misc/rotating_gate_5.4bpp");
-static const u8 sRotatingGateTiles_6[] = INCBIN_U8("graphics/misc/rotating_gate_6.4bpp");
-static const u8 sRotatingGateTiles_7[] = INCBIN_U8("graphics/misc/rotating_gate_7.4bpp");
-static const u8 sRotatingGateTiles_8[] = INCBIN_U8("graphics/misc/rotating_gate_8.4bpp");
+static const u8 sRotatingGateTiles_1[] = INCBIN_U8("graphics/rotating_gates/l1.4bpp");
+static const u8 sRotatingGateTiles_2[] = INCBIN_U8("graphics/rotating_gates/l2.4bpp");
+static const u8 sRotatingGateTiles_3[] = INCBIN_U8("graphics/rotating_gates/l3.4bpp");
+static const u8 sRotatingGateTiles_4[] = INCBIN_U8("graphics/rotating_gates/l4.4bpp");
+static const u8 sRotatingGateTiles_5[] = INCBIN_U8("graphics/rotating_gates/t1.4bpp");
+static const u8 sRotatingGateTiles_6[] = INCBIN_U8("graphics/rotating_gates/t2.4bpp");
+static const u8 sRotatingGateTiles_7[] = INCBIN_U8("graphics/rotating_gates/t3.4bpp");
+static const u8 sRotatingGateTiles_8[] = INCBIN_U8("graphics/rotating_gates/t4.4bpp");
static const struct OamData sOamData_RotatingGateLarge =
{
@@ -684,13 +684,11 @@ static void RotatingGate_LoadPuzzleConfig(void)
{
case PUZZLE_FORTREE_CITY_GYM:
gRotatingGate_PuzzleConfig = sRotatingGate_FortreePuzzleConfig;
- gRotatingGate_PuzzleCount =
- sizeof(sRotatingGate_FortreePuzzleConfig) / sizeof(struct RotatingGatePuzzle);
+ gRotatingGate_PuzzleCount = ARRAY_COUNT(sRotatingGate_FortreePuzzleConfig);
break;
case PUZZLE_ROUTE110_TRICK_HOUSE_PUZZLE6:
gRotatingGate_PuzzleConfig = sRotatingGate_TrickHousePuzzleConfig;
- gRotatingGate_PuzzleCount =
- sizeof(sRotatingGate_TrickHousePuzzleConfig) / sizeof(struct RotatingGatePuzzle);
+ gRotatingGate_PuzzleCount = ARRAY_COUNT(sRotatingGate_TrickHousePuzzleConfig);
break;
case PUZZLE_NONE:
default:
@@ -698,9 +696,7 @@ static void RotatingGate_LoadPuzzleConfig(void)
}
for (i = 0; i < ROTATING_GATE_PUZZLE_MAX - 1; i++)
- {
gRotatingGate_GateSpriteIds[i] = MAX_SPRITES;
- }
}
static void RotatingGate_CreateGatesWithinViewport(s16 deltaX, s16 deltaY)
@@ -773,7 +769,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite)
{
affineAnimation = orientation + 4;
- if (GetPlayerSpeed() != 1)
+ if (GetPlayerSpeed() != PLAYER_SPEED_NORMAL)
affineAnimation += 8;
PlaySE(SE_ROTATING_GATE);
@@ -783,7 +779,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite)
{
affineAnimation = orientation + 8;
- if (GetPlayerSpeed() != 1)
+ if (GetPlayerSpeed() != PLAYER_SPEED_NORMAL)
affineAnimation += 8;
PlaySE(SE_ROTATING_GATE);
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 2c18cb565..4b7477fe1 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -999,7 +999,7 @@ bool8 ScrCmd_applymovement(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx)
+bool8 ScrCmd_applymovementat(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
const void *movementScript = (const void *)ScriptReadWord(ctx);
@@ -1028,7 +1028,7 @@ bool8 ScrCmd_waitmovement(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_waitmovement_at(struct ScriptContext *ctx)
+bool8 ScrCmd_waitmovementat(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup;
@@ -1052,7 +1052,7 @@ bool8 ScrCmd_removeobject(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_removeobject_at(struct ScriptContext *ctx)
+bool8 ScrCmd_removeobjectat(struct ScriptContext *ctx)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@@ -1070,7 +1070,7 @@ bool8 ScrCmd_addobject(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_addobject_at(struct ScriptContext *ctx)
+bool8 ScrCmd_addobjectat(struct ScriptContext *ctx)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@@ -1108,7 +1108,7 @@ bool8 ScrCmd_copyobjectxytoperm(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_showobject_at(struct ScriptContext *ctx)
+bool8 ScrCmd_showobjectat(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@@ -1118,7 +1118,7 @@ bool8 ScrCmd_showobject_at(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_hideobject_at(struct ScriptContext *ctx)
+bool8 ScrCmd_hideobjectat(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
diff --git a/src/shop.c b/src/shop.c
index f41ae315f..b65cace09 100755
--- a/src/shop.c
+++ b/src/shop.c
@@ -674,9 +674,9 @@ static void BuyMenuInitBgs(void)
static void BuyMenuDecompressBgGraphics(void)
{
- DecompressAndCopyTileDataToVram(1, gBuyMenuFrame_Gfx, 0x3A0, 0x3E3, 0);
- LZDecompressWram(gBuyMenuFrame_Tilemap, sShopData->tilemapBuffers[0]);
- LoadCompressedPalette(gMenuMoneyPal, 0xC0, 0x20);
+ DecompressAndCopyTileDataToVram(1, gShopMenu_Gfx, 0x3A0, 0x3E3, 0);
+ LZDecompressWram(gShopMenu_Tilemap, sShopData->tilemapBuffers[0]);
+ LoadCompressedPalette(gShopMenu_Pal, 0xC0, 0x20);
}
static void BuyMenuInitWindows(void)
diff --git a/src/starter_choose.c b/src/starter_choose.c
index ca393c4d8..81a88e771 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -53,17 +53,17 @@ static u16 sStarterLabelWindowId;
const u16 gBirchBagGrassPal[][16] =
{
- INCBIN_U16("graphics/misc/birch_bag.gbapal"),
- INCBIN_U16("graphics/misc/birch_grass.gbapal"),
+ INCBIN_U16("graphics/starter_choose/birch_bag.gbapal"),
+ INCBIN_U16("graphics/starter_choose/birch_grass.gbapal"),
};
-static const u16 sPokeballSelection_Pal[] = INCBIN_U16("graphics/misc/pokeball_selection.gbapal");
-static const u16 sStarterCircle_Pal[] = INCBIN_U16("graphics/misc/starter_circle.gbapal");
-const u32 gBirchBagTilemap[] = INCBIN_U32("graphics/misc/birch_bag_map.bin.lz");
-const u32 gBirchGrassTilemap[] = INCBIN_U32("graphics/misc/birch_grass_map.bin.lz");
-const u32 gBirchHelpGfx[] = INCBIN_U32("graphics/misc/birch_help.4bpp.lz"); // Birch bag and grass combined
-const u32 gPokeballSelection_Gfx[] = INCBIN_U32("graphics/misc/pokeball_selection.4bpp.lz");
-static const u32 sStarterCircle_Gfx[] = INCBIN_U32("graphics/misc/starter_circle.4bpp.lz");
+static const u16 sPokeballSelection_Pal[] = INCBIN_U16("graphics/starter_choose/pokeball_selection.gbapal");
+static const u16 sStarterCircle_Pal[] = INCBIN_U16("graphics/starter_choose/starter_circle.gbapal");
+const u32 gBirchBagTilemap[] = INCBIN_U32("graphics/starter_choose/birch_bag.bin.lz");
+const u32 gBirchGrassTilemap[] = INCBIN_U32("graphics/starter_choose/birch_grass.bin.lz");
+const u32 gBirchHelpGfx[] = INCBIN_U32("graphics/starter_choose/birch_help.4bpp.lz"); // Birch bag and grass combined
+const u32 gPokeballSelection_Gfx[] = INCBIN_U32("graphics/starter_choose/pokeball_selection.4bpp.lz");
+static const u32 sStarterCircle_Gfx[] = INCBIN_U32("graphics/starter_choose/starter_circle.4bpp.lz");
static const struct WindowTemplate sWindowTemplates[] =
{
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index 3ada262e5..8d5be0116 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -199,7 +199,7 @@ static const u16 *const *const sPrizeListSets[] =
sPrizeLists2
};
-static const u16 sEReader_Pal[] = INCBIN_U16("graphics/misc/trainer_hill_ereader.gbapal");
+static const u16 sEReader_Pal[] = INCBIN_U16("graphics/trainer_hill/ereader.gbapal");
static const u8 sRecordWinColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY};
static const struct TrHillTag *const sDataPerTag[] =
diff --git a/src/trainer_see.c b/src/trainer_see.c
index ce06c5e9c..07021a316 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -59,9 +59,9 @@ bool8 gTrainerApproachedPlayer;
EWRAM_DATA u8 gApproachingTrainerId = 0;
// const rom data
-static const u8 sEmotion_ExclamationMarkGfx[] = INCBIN_U8("graphics/misc/emotion_exclamation.4bpp");
-static const u8 sEmotion_QuestionMarkGfx[] = INCBIN_U8("graphics/misc/emotion_question.4bpp");
-static const u8 sEmotion_HeartGfx[] = INCBIN_U8("graphics/misc/emotion_heart.4bpp");
+static const u8 sEmotion_ExclamationMarkGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_exclamation.4bpp");
+static const u8 sEmotion_QuestionMarkGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_question.4bpp");
+static const u8 sEmotion_HeartGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_heart.4bpp");
static u8 (*const sDirectionalApproachDistanceFuncs[])(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y) =
{
diff --git a/src/wallclock.c b/src/wallclock.c
index 759b1d11f..5e0fae3a1 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -41,6 +41,8 @@ static void SpriteCB_HourHand(struct Sprite *sprite);
static void SpriteCB_PMIndicator(struct Sprite *sprite);
static void SpriteCB_AMIndicator(struct Sprite *sprite);
+#define sTaskId data[0]
+
#define tMinuteHandAngle data[0]
#define tHourHandAngle data[1]
#define tHours data[2]
@@ -696,21 +698,21 @@ void CB2_StartWallClock(void)
gTasks[taskId].tHourHandAngle = 300;
spriteId = CreateSprite(&sSpriteTemplate_MinuteHand, 120, 80, 1);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 0;
spriteId = CreateSprite(&sSpriteTemplate_HourHand, 120, 80, 0);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
spriteId = CreateSprite(&sSpriteTemplate_PM, 120, 80, 2);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].data[1] = 45;
spriteId = CreateSprite(&sSpriteTemplate_AM, 120, 80, 2);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].data[1] = 90;
WallClockInit();
@@ -744,21 +746,21 @@ void CB2_ViewWallClock(void)
}
spriteId = CreateSprite(&sSpriteTemplate_MinuteHand, 120, 80, 1);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 0;
spriteId = CreateSprite(&sSpriteTemplate_HourHand, 120, 80, 0);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
spriteId = CreateSprite(&sSpriteTemplate_PM, 120, 80, 2);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].data[1] = angle1;
spriteId = CreateSprite(&sSpriteTemplate_AM, 120, 80, 2);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].data[1] = angle2;
WallClockInit();
@@ -1015,7 +1017,7 @@ static void InitClockWithRtc(u8 taskId)
static void SpriteCB_MinuteHand(struct Sprite *sprite)
{
- u16 angle = gTasks[sprite->data[0]].tMinuteHandAngle;
+ u16 angle = gTasks[sprite->sTaskId].tMinuteHandAngle;
s16 sin = Sin2(angle) / 16;
s16 cos = Cos2(angle) / 16;
u16 x, y;
@@ -1035,7 +1037,7 @@ static void SpriteCB_MinuteHand(struct Sprite *sprite)
static void SpriteCB_HourHand(struct Sprite *sprite)
{
- u16 angle = gTasks[sprite->data[0]].tHourHandAngle;
+ u16 angle = gTasks[sprite->sTaskId].tHourHandAngle;
s16 sin = Sin2(angle) / 16;
s16 cos = Cos2(angle) / 16;
u16 x, y;
@@ -1053,58 +1055,44 @@ static void SpriteCB_HourHand(struct Sprite *sprite)
sprite->y2 = y;
}
+#define sAngle data[1]
+
static void SpriteCB_PMIndicator(struct Sprite *sprite)
{
- if (gTasks[sprite->data[0]].tPeriod != PERIOD_AM)
+ if (gTasks[sprite->sTaskId].tPeriod != PERIOD_AM)
{
- if (sprite->data[1] >= 60 && sprite->data[1] < 90)
- {
- sprite->data[1] += 5;
- }
- if (sprite->data[1] < 60)
- {
- sprite->data[1]++;
- }
+ if (sprite->sAngle >= 60 && sprite->sAngle < 90)
+ sprite->sAngle += 5;
+ if (sprite->sAngle < 60)
+ sprite->sAngle++;
}
else
{
- if (sprite->data[1] >= 46 && sprite->data[1] < 76)
- {
- sprite->data[1] -= 5;
- }
- if (sprite->data[1] > 75)
- {
- sprite->data[1]--;
- }
+ if (sprite->sAngle >= 46 && sprite->sAngle < 76)
+ sprite->sAngle -= 5;
+ if (sprite->sAngle > 75)
+ sprite->sAngle--;
}
- sprite->x2 = Cos2(sprite->data[1]) * 30 / 0x1000;
- sprite->y2 = Sin2(sprite->data[1]) * 30 / 0x1000;
+ sprite->x2 = Cos2(sprite->sAngle) * 30 / 0x1000;
+ sprite->y2 = Sin2(sprite->sAngle) * 30 / 0x1000;
}
static void SpriteCB_AMIndicator(struct Sprite *sprite)
{
- if (gTasks[sprite->data[0]].tPeriod != PERIOD_AM)
+ if (gTasks[sprite->sTaskId].tPeriod != PERIOD_AM)
{
- if (sprite->data[1] >= 105 && sprite->data[1] < 135)
- {
- sprite->data[1] += 5;
- }
- if (sprite->data[1] < 105)
- {
- sprite->data[1]++;
- }
+ if (sprite->sAngle >= 105 && sprite->sAngle < 135)
+ sprite->sAngle += 5;
+ if (sprite->sAngle < 105)
+ sprite->sAngle++;
}
else
{
- if (sprite->data[1] >= 91 && sprite->data[1] < 121)
- {
- sprite->data[1] -= 5;
- }
- if (sprite->data[1] > 120)
- {
- sprite->data[1]--;
- }
+ if (sprite->sAngle >= 91 && sprite->sAngle < 121)
+ sprite->sAngle -= 5;
+ if (sprite->sAngle > 120)
+ sprite->sAngle--;
}
- sprite->x2 = Cos2(sprite->data[1]) * 30 / 0x1000;
- sprite->y2 = Sin2(sprite->data[1]) * 30 / 0x1000;
+ sprite->x2 = Cos2(sprite->sAngle) * 30 / 0x1000;
+ sprite->y2 = Sin2(sprite->sAngle) * 30 / 0x1000;
}
diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c
index ffb86488a..1fbd83fcd 100644
--- a/src/wireless_communication_status_screen.c
+++ b/src/wireless_communication_status_screen.c
@@ -51,9 +51,9 @@ static void Task_WirelessCommunicationScreen(u8);
static void WCSS_AddTextPrinterParameterized(u8, u8, const u8 *, u8, u8, u8);
static bool32 UpdateCommunicationCounts(u32 *, u32 *, u32 *, u8);
-static const u16 sBgTiles_Pal[] = INCBIN_U16("graphics/interface/wireless_info_screen.gbapal");
-static const u32 sBgTiles_Gfx[] = INCBIN_U32("graphics/interface/wireless_info_screen.4bpp.lz");
-static const u32 sBgTiles_Tilemap[] = INCBIN_U32("graphics/interface/wireless_info_screen.bin.lz");
+static const u16 sBgTiles_Pal[] = INCBIN_U16("graphics/link/wireless_info_screen.gbapal");
+static const u32 sBgTiles_Gfx[] = INCBIN_U32("graphics/link/wireless_info_screen.4bpp.lz");
+static const u32 sBgTiles_Tilemap[] = INCBIN_U32("graphics/link/wireless_info_screen.bin.lz");
static const struct BgTemplate sBgTemplates[] = {
{