diff --git a/.gitignore b/.gitignore index b10f4ccc3..2754191b1 100755 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,6 @@ sound/**/*.bin sound/songs/midi/*.s tools/agbcc *.map -*.ld *.bat *.dump *.sa* diff --git a/Makefile b/Makefile index 16dfe9d29..d97c1c7cb 100755 --- a/Makefile +++ b/Makefile @@ -119,8 +119,6 @@ ifneq ($(MODERN),1) CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef endif -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) @@ -412,19 +410,20 @@ $(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt $(RAMSCRGEN) ewram_data $< ENGLISH > $@ ifeq ($(MODERN),0) -LD_SCRIPT := ld_script.txt +LD_SCRIPT := ld_script.ld LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld else -LD_SCRIPT := ld_script_modern.txt +LD_SCRIPT := ld_script_modern.ld LD_SCRIPT_DEPS := endif $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld +LDFLAGS = -Map ../../$(MAP) $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ " - @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) + @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent $(ROM): $(ELF) diff --git a/gflib/malloc.c b/gflib/malloc.c index d0b949763..7229c20e8 100755 --- a/gflib/malloc.c +++ b/gflib/malloc.c @@ -1,8 +1,11 @@ #include "global.h" +#include "malloc.h" static void *sHeapStart; static u32 sHeapSize; +__attribute__((section("__EWRAM_HEAP"))) u8 gHeap[HEAP_SIZE] = {0}; + #define MALLOC_SYSTEM_ID 0xA3A3 struct MemBlock { diff --git a/gflib/malloc.h b/gflib/malloc.h index 851db83a6..60b6a6b0a 100755 --- a/gflib/malloc.h +++ b/gflib/malloc.h @@ -1,8 +1,6 @@ #ifndef GUARD_ALLOC_H #define GUARD_ALLOC_H -#define HEAP_SIZE 0x1C000 - #define FREE_AND_SET_NULL(ptr) \ { \ Free(ptr); \ @@ -11,6 +9,8 @@ #define TRY_FREE_AND_SET_NULL(ptr) if (ptr != NULL) FREE_AND_SET_NULL(ptr) +// 122 KB. Max size of the heap without running into other data +#define HEAP_SIZE 0x1C000 extern u8 gHeap[]; void *Alloc(u32 size); diff --git a/ld_script.ld b/ld_script.ld new file mode 100755 index 000000000..83e41439f --- /dev/null +++ b/ld_script.ld @@ -0,0 +1,1726 @@ +ENTRY(Start) + +gNumMusicPlayers = 4; +gMaxLines = 0; + +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} + +/* Modify the following load addresses as needed to make more room. Alternately, delete both the + declarations below and their references further down to get rid of the gaps. */ + +SECTIONS { + + ewram 0x2000000 (NOLOAD) : + ALIGN(4) + { + *(__EWRAM_HEAP); + + INCLUDE "sym_ewram.ld" + src/*.o(ewram_data); /**/ + gflib/*.o(ewram_data); /**/ + + *libc.a:impure.o(.data); + *libc.a:locale.o(.data); + *libc.a:mallocr.o(.data); + } > EWRAM + + iwram 0x3000000 (NOLOAD) : + ALIGN(4) + { + /* .bss starts at 0x3000000 */ + INCLUDE "sym_bss.ld" + src/*.o(.bss); + gflib/*.o(.bss); + data/*.o(.bss); + + /* .bss.code starts at 0x3001AA8 */ + src/m4a.o(.bss.code); + + /* COMMON starts at 0x30022A8 */ + INCLUDE "sym_common.ld" + *libc.a:sbrkr.o(COMMON); + } > IWRAM + + /* BEGIN ROM DATA */ + . = 0x8000000; + + .text : + ALIGN(4) + { + src/rom_header.o(.text); + src/rom_header_gf.o(.text.*); + src/crt0.o(.text); + src/main.o(.text); + gflib/malloc.o(.text); + gflib/dma3_manager.o(.text); + gflib/gpu_regs.o(.text); + gflib/bg.o(.text); + gflib/blit.o(.text); + gflib/window.o(.text); + gflib/text.o(.text); + gflib/sprite.o(.text); + gflib/string_util.o(.text); + src/link.o(.text); + src/AgbRfu_LinkManager.o(.text); + src/link_rfu_3.o(.text); + src/link_rfu_2.o(.text); + src/union_room.o(.text); + src/mystery_gift_menu.o(.text); + src/union_room_player_avatar.o(.text); + src/wireless_communication_status_screen.o(.text); + src/union_room_battle.o(.text); + src/mystery_gift.o(.text); + src/mystery_gift_view.o(.text); + src/mystery_gift_server.o(.text); + src/mystery_gift_client.o(.text); + src/mystery_gift_link.o(.text); + src/wonder_news.o(.text); + src/union_room_chat.o(.text); + src/berry_crush.o(.text); + src/berry_powder.o(.text); + src/dodrio_berry_picking.o(.text); + src/pokemon_jump.o(.text); + src/minigame_countdown.o(.text); + src/rtc.o(.text); + src/main_menu.o(.text); + src/battle_controllers.o(.text); + src/decompress.o(.text); + src/digit_obj_util.o(.text); + src/battle_bg.o(.text); + src/battle_main.o(.text); + src/battle_util.o(.text); + src/battle_script_commands.o(.text); + src/battle_util2.o(.text); + src/battle_controller_player.o(.text); + src/battle_gfx_sfx_util.o(.text); + src/battle_controller_opponent.o(.text); + src/battle_ai_switch_items.o(.text); + src/battle_controller_link_opponent.o(.text); + src/pokemon.o(.text); + src/trig.o(.text); + src/random.o(.text); + src/util.o(.text); + src/daycare.o(.text); + src/debug.o(.text); + src/egg_hatch.o(.text); + src/battle_interface.o(.text); + src/battle_anim_smokescreen.o(.text); + src/pokeball.o(.text); + src/load_save.o(.text); + src/trade.o(.text); + src/berry_blender.o(.text); + src/play_time.o(.text); + src/new_game.o(.text); + src/overworld.o(.text); + src/fieldmap.o(.text); + src/metatile_behavior.o(.text); + src/field_camera.o(.text); + src/field_door.o(.text); + src/field_player_avatar.o(.text); + src/event_object_movement.o(.text); + src/follower_helper.o(.text); + src/field_message_box.o(.text); + src/event_object_lock.o(.text); + src/text_window.o(.text); + src/script.o(.text); + src/scrcmd.o(.text); + src/field_control_avatar.o(.text); + src/event_data.o(.text); + src/coord_event_weather.o(.text); + src/field_tasks.o(.text); + src/clock.o(.text); + src/reset_rtc_screen.o(.text); + src/start_menu.o(.text); + src/tileset_anims.o(.text); + src/palette.o(.text); + src/sound.o(.text); + src/battle_anim.o(.text); + src/battle_anim_mons.o(.text); + src/task.o(.text); + src/reshow_battle_screen.o(.text); + src/battle_anim_status_effects.o(.text); + src/title_screen.o(.text); + src/field_weather.o(.text); + src/field_weather_effect.o(.text); + src/field_screen_effect.o(.text); + src/battle_setup.o(.text); + src/cable_club.o(.text); + src/trainer_see.o(.text); + src/wild_encounter.o(.text); + src/field_effect.o(.text); + src/scanline_effect.o(.text); + src/option_menu.o(.text); + src/pokedex.o(.text); + src/trainer_card.o(.text); + src/frontier_pass.o(.text); + src/pokemon_storage_system.o(.text); + src/pokemon_icon.o(.text); + src/script_movement.o(.text); + src/fldeff_cut.o(.text); + src/mail_data.o(.text); + src/map_name_popup.o(.text); + src/item_menu_icons.o(.text); + src/battle_anim_mon_movement.o(.text); + src/item.o(.text); + src/contest.o(.text); + src/shop.o(.text); + src/fldeff_escalator.o(.text); + src/berry.o(.text); + src/script_menu.o(.text); + src/naming_screen.o(.text); + src/money.o(.text); + src/contest_effect.o(.text); + src/record_mixing.o(.text); + src/secret_base.o(.text); + src/tv.o(.text); + src/contest_util.o(.text); + src/script_pokemon_util.o(.text); + src/field_poison.o(.text); + src/pokemon_size_record.o(.text); + src/fldeff_misc.o(.text); + src/field_special_scene.o(.text); + src/rotating_gate.o(.text); + src/safari_zone.o(.text); + src/contest_link.o(.text); + src/item_use.o(.text); + src/battle_anim_effects_1.o(.text); + src/battle_anim_effects_2.o(.text); + src/battle_anim_water.o(.text); + src/battle_anim_fire.o(.text); + src/battle_anim_electric.o(.text); + src/battle_anim_ice.o(.text); + src/battle_anim_fight.o(.text); + src/battle_anim_poison.o(.text); + src/battle_anim_flying.o(.text); + src/battle_anim_psychic.o(.text); + src/battle_anim_bug.o(.text); + src/battle_anim_rock.o(.text); + src/battle_anim_ghost.o(.text); + src/battle_anim_dragon.o(.text); + src/battle_anim_dark.o(.text); + src/battle_anim_ground.o(.text); + src/battle_anim_normal.o(.text); + src/battle_anim_utility_funcs.o(.text); + src/battle_intro.o(.text); + src/bike.o(.text); + src/easy_chat.o(.text); + src/mon_markings.o(.text); + src/mauville_old_man.o(.text); + src/mail.o(.text); + src/menu_helpers.o(.text); + src/dewford_trend.o(.text); + src/heal_location.o(.text); + src/region_map.o(.text); + src/image_processing_effects.o(.text); + src/decoration.o(.text); + src/slot_machine.o(.text); + src/contest_painting.o(.text); + src/battle_ai_script_commands.o(.text); + src/trader.o(.text); + src/starter_choose.o(.text); + src/wallclock.o(.text); + src/fldeff_rocksmash.o(.text); + src/fldeff_dig.o(.text); + src/pokeblock.o(.text); + src/fldeff_flash.o(.text); + src/post_battle_event_funcs.o(.text); + src/time_events.o(.text); + src/birch_pc.o(.text); + src/hof_pc.o(.text); + src/field_specials.o(.text); + src/battle_records.o(.text); + src/pokedex_area_screen.o(.text); + src/evolution_scene.o(.text); + src/roulette.o(.text); + src/pokedex_cry_screen.o(.text); + src/coins.o(.text); + src/landmark.o(.text); + src/fldeff_strength.o(.text); + src/battle_transition.o(.text); + src/battle_controller_link_partner.o(.text); + src/battle_message.o(.text); + src/cable_car.o(.text); + src/math_util.o(.text); + src/palette_util.o(.text); + src/confetti_util.o(.text); + src/save.o(.text); + src/mystery_event_script.o(.text); + src/field_effect_helpers.o(.text); + src/contest_ai.o(.text); + src/battle_anim_sound_tasks.o(.text); + src/battle_controller_safari.o(.text); + src/fldeff_sweetscent.o(.text); + src/battle_anim_effects_3.o(.text); + src/move_relearner.o(.text); + src/fldeff_softboiled.o(.text); + src/decoration_inventory.o(.text); + src/roamer.o(.text); + src/battle_tower.o(.text); + src/use_pokeblock.o(.text); + src/battle_controller_wally.o(.text); + src/player_pc.o(.text); + src/intro.o(.text); + src/reload_save.o(.text); + src/field_region_map.o(.text); + src/battle_anim_throw.o(.text); + src/hall_of_fame.o(.text); + src/credits.o(.text); + src/lottery_corner.o(.text); + src/diploma.o(.text); + src/berry_tag_screen.o(.text); + src/mystery_event_menu.o(.text); + src/save_failed_screen.o(.text); + src/braille_puzzles.o(.text); + src/pokeblock_feed.o(.text); + src/clear_save_data_screen.o(.text); + src/intro_credits_graphics.o(.text); + src/evolution_graphics.o(.text); + src/bard_music.o(.text); + src/fldeff_teleport.o(.text); + src/battle_tv.o(.text); + src/pokemon_animation.o(.text); + src/recorded_battle.o(.text); + src/battle_controller_recorded_opponent.o(.text); + src/battle_controller_recorded_player.o(.text); + src/trainer_pokemon_sprites.o(.text); + src/lilycove_lady.o(.text); + src/battle_dome.o(.text); + src/battle_palace.o(.text); + src/match_call.o(.text); + src/menu.o(.text); + src/battle_factory_screen.o(.text); + src/apprentice.o(.text); + src/frontier_util.o(.text); + src/battle_arena.o(.text); + src/battle_factory.o(.text); + src/battle_pike.o(.text); + src/rotating_tile_puzzle.o(.text); + src/battle_pyramid.o(.text); + src/item_menu.o(.text); + src/list_menu.o(.text); + src/dynamic_placeholder_text_util.o(.text); + src/save_location.o(.text); + src/item_icon.o(.text); + src/party_menu.o(.text); + src/battle_tent.o(.text); + src/braille.o(.text); + src/multiboot.o(.text); + src/berry_fix_graphics.o(.text); + src/battle_controller_player_partner.o(.text); + src/mirage_tower.o(.text); + src/berry_fix_program.o(.text); + src/pokemon_summary_screen.o(.text); + src/pokedex_area_region_map.o(.text); + src/battle_pyramid_bag.o(.text); + src/pokenav.o(.text); + src/pokenav_main_menu.o(.text); + src/pokenav_list.o(.text); + src/pokenav_menu_handler.o(.text); + src/pokenav_menu_handler_gfx.o(.text); + src/pokenav_match_call_list.o(.text); + src/pokenav_match_call_gfx.o(.text); + src/pokenav_region_map.o(.text); + src/pokenav_conditions.o(.text); + src/pokenav_conditions_gfx.o(.text); + src/pokenav_conditions_search_results.o(.text); + src/pokenav_ribbons_list.o(.text); + src/pokenav_ribbons_summary.o(.text); + src/pokenav_match_call_data.o(.text); + src/menu_specialized.o(.text); + src/ereader_helpers.o(.text); + src/faraway_island.o(.text); + src/ereader_screen.o(.text); + src/trainer_hill.o(.text); + src/rayquaza_scene.o(.text); + src/walda_phrase.o(.text); + src/contest_link_util.o(.text); + src/gym_leader_rematch.o(.text); + src/battle_transition_frontier.o(.text); + src/international_string_util.o(.text); + src/tx_rac_menu.o(.text); + src/tx_randomizer_and_challenges.o(.text); + src/sound_check_menu.o(.text); + } > ROM =0 + + script_data : + ALIGN(4) + { + data/event_scripts.o(script_data); + data/battle_anim_scripts.o(script_data); + data/battle_scripts_1.o(script_data); + data/field_effect_scripts.o(script_data); + data/battle_scripts_2.o(script_data); + data/battle_ai_scripts.o(script_data); + data/contest_ai_scripts.o(script_data); + data/mystery_event_script_cmd_table.o(script_data); + } > ROM =0 + + lib_text : + ALIGN(4) + { + src/libgcnmultiboot.o(.text); + src/m4a_1.o(.text); + src/m4a.o(.text); + src/agb_flash.o(.text); + src/agb_flash_1m.o(.text); + src/agb_flash_mx.o(.text); + src/siirtc.o(.text); + src/librfu_stwi.o(.text); + src/librfu_intr.o(.text); + src/librfu_rfu.o(.text); + src/librfu_sio32id.o(.text); + src/libisagbprn.o(.text); + *libagbsyscall.a:ArcTan2.o(.text); + *libagbsyscall.a:BgAffineSet.o(.text); + *libagbsyscall.a:CpuFastSet.o(.text); + *libagbsyscall.a:CpuSet.o(.text); + *libagbsyscall.a:Div.o(.text); + *libagbsyscall.a:LZ77UnCompVram.o(.text); + *libagbsyscall.a:LZ77UnCompWram.o(.text); + *libagbsyscall.a:MultiBoot.o(.text); + *libagbsyscall.a:ObjAffineSet.o(.text); + *libagbsyscall.a:RLUnCompVram.o(.text); + *libagbsyscall.a:RLUnCompWram.o(.text); + *libagbsyscall.a:RegisterRamReset.o(.text); + *libagbsyscall.a:SoftReset.o(.text); + *libagbsyscall.a:Sqrt.o(.text); + *libagbsyscall.a:VBlankIntrWait.o(.text); + *libgcc.a:_call_via_rX.o(.text); + *libgcc.a:_divdi3.o(.text); + *libgcc.a:_divsi3.o(.text); + *libgcc.a:_dvmd_tls.o(.text); + *libgcc.a:_fixunsdfsi.o(.text); + *libgcc.a:_fixunssfsi.o(.text); + *libgcc.a:_modsi3.o(.text); + *libgcc.a:_muldi3.o(.text); + *libgcc.a:_udivdi3.o(.text); + *libgcc.a:_udivsi3.o(.text); + *libgcc.a:_umodsi3.o(.text); + *libgcc.a:dp-bit.o(.text); + *libgcc.a:fp-bit.o(.text); + *libgcc.a:_lshrdi3.o(.text); + *libgcc.a:_negdi2.o(.text); + *libc.a:memcpy.o(.text); + *libc.a:memset.o(.text); + *libc.a:strcmp.o(.text); + *libc.a:strcpy.o(.text); + *libc.a:impure.o(.text); + *libc.a:vsprintf.o(.text); + *libc.a:vfprintf.o(.text); + *libc.a:wsetup.o(.text); + *libc.a:dtoa.o(.text); + *libc.a:fflush.o(.text); + *libc.a:findfp.o(.text); + *libc.a:freer.o(.text); + *libc.a:mtrim.o(.text); + *libc.a:fvwrite.o(.text); + *libc.a:fwalk.o(.text); + *libc.a:locale.o(.text); + *libc.a:makebuf.o(.text); + *libc.a:mallocr.o(.text); + *libc.a:mbtowc_r.o(.text); + *libc.a:memchr.o(.text); + *libc.a:memmove.o(.text); + *libc.a:mlock.o(.text); + *libc.a:mprec.o(.text); + *libc.a:s_isinf.o(.text); + *libc.a:s_isnan.o(.text); + *libc.a:sbrkr.o(.text); + *libc.a:stdio.o(.text); + *libc.a:strlen.o(.text); + *libc.a:syscalls.o(.text); + *libc.a:writer.o(.text); + *libc.a:callocr.o(.text); + *libc.a:closer.o(.text); + *libc.a:errno.o(.text); + *libc.a:fstatr.o(.text); + *libc.a:libcfunc.o(.text); + *libc.a:lseekr.o(.text); + *libc.a:readr.o(.text); + } > ROM =0 + + .rodata : + ALIGN(4) + { + src/rom_header.o(.rodata); + src/rom_header_gf.o(.rodata); + src/main.o(.rodata); + gflib/bg.o(.rodata); + gflib/window.o(.rodata); + gflib/text.o(.rodata); + gflib/sprite.o(.rodata); + gflib/io_reg.o(.rodata); + gflib/string_util.o(.rodata); + src/link.o(.rodata); + src/link.o(.rodata.str1.4); + src/AgbRfu_LinkManager.o(.rodata); + src/link_rfu_3.o(.rodata); + src/link_rfu_2.o(.rodata); + src/link_rfu_2.o(.rodata.str1.4); + src/union_room.o(.rodata); + src/mystery_gift_menu.o(.rodata); + src/union_room_player_avatar.o(.rodata); + src/wireless_communication_status_screen.o(.rodata); + src/union_room_battle.o(.rodata); + src/mystery_gift.o(.rodata); + src/mystery_gift_view.o(.rodata); + src/mystery_gift_server.o(.rodata); + src/mystery_gift_client.o(.rodata); + src/mystery_gift_scripts.o(.rodata); + src/wonder_news.o(.rodata); + src/union_room_chat.o(.rodata); + src/berry_crush.o(.rodata); + src/berry_powder.o(.rodata); + src/dodrio_berry_picking.o(.rodata); + src/pokemon_jump.o(.rodata); + src/minigame_countdown.o(.rodata); + src/rtc.o(.rodata); + src/main_menu.o(.rodata); + src/battle_controllers.o(.rodata); + src/digit_obj_util.o(.rodata); + src/data.o(.rodata); + src/battle_bg.o(.rodata); + src/battle_main.o(.rodata); + src/battle_util.o(.rodata); + src/battle_script_commands.o(.rodata); + src/battle_controller_player.o(.rodata); + src/battle_anim_smokescreen.o(.rodata); + src/battle_controller_opponent.o(.rodata); + src/battle_ai_switch_items.o(.rodata); + src/battle_controller_link_opponent.o(.rodata); + src/pokemon.o(.rodata); + src/trig.o(.rodata); + src/util.o(.rodata); + src/daycare.o(.rodata); + src/debug.o(.rodata); + src/egg_hatch.o(.rodata); + src/battle_gfx_sfx_util.o(.rodata); + src/battle_interface.o(.rodata); + src/pokeball.o(.rodata); + src/trade.o(.rodata); + src/berry_blender.o(.rodata); + src/new_game.o(.rodata); + src/overworld.o(.rodata); + src/tilesets.o(.rodata); + data/maps.o(.rodata); + src/fieldmap.o(.rodata); + src/metatile_behavior.o(.rodata); + src/field_door.o(.rodata); + src/field_player_avatar.o(.rodata); + src/event_object_movement.o(.rodata); + src/follower_helper.o(.rodata); + src/text_window.o(.rodata); + src/scrcmd.o(.rodata); + src/field_control_avatar.o(.rodata); + src/coord_event_weather.o(.rodata); + src/field_tasks.o(.rodata); + src/reset_rtc_screen.o(.rodata); + src/start_menu.o(.rodata); + src/tileset_anims.o(.rodata); + src/palette.o(.rodata); + src/sound.o(.rodata); + src/battle_anim.o(.rodata); + src/battle_anim_mons.o(.rodata); + data/map_events.o(.rodata); + src/reshow_battle_screen.o(.rodata); + src/battle_anim_status_effects.o(.rodata); + src/title_screen.o(.rodata); + src/field_weather.o(.rodata); + src/field_weather_effect.o(.rodata); + src/field_screen_effect.o(.rodata); + src/battle_setup.o(.rodata); + src/cable_club.o(.rodata); + src/trainer_see.o(.rodata); + src/wild_encounter.o(.rodata); + src/field_effect.o(.rodata); + src/scanline_effect.o(.rodata); + src/option_menu.o(.rodata); + src/pokedex.o(.rodata); + src/trainer_card.o(.rodata); + src/frontier_pass.o(.rodata); + src/pokemon_storage_system.o(.rodata); + src/pokemon_icon.o(.rodata); + src/fldeff_cut.o(.rodata); + src/map_name_popup.o(.rodata); + src/item_menu_icons.o(.rodata); + src/battle_anim_mon_movement.o(.rodata); + src/item.o(.rodata); + src/contest.o(.rodata); + src/shop.o(.rodata); + src/fldeff_escalator.o(.rodata); + src/berry.o(.rodata); + src/script_menu.o(.rodata); + src/naming_screen.o(.rodata); + src/money.o(.rodata); + src/contest_effect.o(.rodata); + src/record_mixing.o(.rodata); + src/secret_base.o(.rodata); + src/tv.o(.rodata); + src/contest_util.o(.rodata); + src/script_pokemon_util.o(.rodata); + src/pokemon_size_record.o(.rodata) + src/fldeff_misc.o(.rodata); + src/field_special_scene.o(.rodata); + src/rotating_gate.o(.rodata); + src/contest_link.o(.rodata); + src/item_use.o(.rodata); + src/battle_anim_effects_1.o(.rodata); + src/battle_anim_effects_2.o(.rodata); + src/battle_anim_water.o(.rodata); + src/battle_anim_fire.o(.rodata); + src/battle_anim_electric.o(.rodata); + src/battle_anim_ice.o(.rodata); + src/battle_anim_fight.o(.rodata); + src/battle_anim_poison.o(.rodata); + src/battle_anim_flying.o(.rodata); + src/battle_anim_psychic.o(.rodata); + src/battle_anim_bug.o(.rodata); + src/battle_anim_rock.o(.rodata); + src/battle_anim_ghost.o(.rodata); + src/battle_anim_dragon.o(.rodata); + src/battle_anim_dark.o(.rodata); + src/battle_anim_ground.o(.rodata); + src/battle_anim_normal.o(.rodata); + src/battle_anim_utility_funcs.o(.rodata); + src/battle_intro.o(.rodata); + src/bike.o(.rodata); + src/easy_chat.o(.rodata); + src/mon_markings.o(.rodata); + src/mauville_old_man.o(.rodata); + src/mail.o(.rodata); + src/menu_helpers.o(.rodata); + src/heal_location.o(.rodata); + src/region_map.o(.rodata); + src/image_processing_effects.o(.rodata); + src/decoration.o(.rodata); + src/slot_machine.o(.rodata); + src/contest_painting.o(.rodata); + src/battle_ai_script_commands.o(.rodata); + src/trader.o(.rodata); + src/starter_choose.o(.rodata); + src/event_data.o(.rodata); + src/wallclock.o(.rodata); + src/pokeblock.o(.rodata); + src/fldeff_flash.o(.rodata); + src/time_events.o(.rodata); + src/field_specials.o(.rodata); + src/battle_records.o(.rodata); + src/pokedex_area_screen.o(.rodata); + src/evolution_scene.o(.rodata); + src/roulette.o(.rodata); + src/pokedex_cry_screen.o(.rodata); + src/landmark.o(.rodata); + src/battle_transition.o(.rodata); + src/battle_controller_link_partner.o(.rodata); + src/battle_message.o(.rodata); + src/cable_car.o(.rodata); + src/save.o(.rodata); + src/field_effect_helpers.o(.rodata); + src/contest_ai.o(.rodata); + src/battle_anim_sound_tasks.o(.rodata); + src/battle_controller_safari.o(.rodata); + src/battle_anim_effects_3.o(.rodata); + src/move_relearner.o(.rodata); + src/roamer.o(.rodata); + src/battle_tower.o(.rodata); + src/use_pokeblock.o(.rodata); + src/battle_controller_wally.o(.rodata); + src/player_pc.o(.rodata); + src/intro.o(.rodata); + src/field_region_map.o(.rodata); + src/battle_anim_throw.o(.rodata); + src/hall_of_fame.o(.rodata); + src/credits.o(.rodata); + src/lottery_corner.o(.rodata); + src/diploma.o(.rodata); + src/strings.o(.rodata); + src/berry_tag_screen.o(.rodata); + src/mystery_event_menu.o(.rodata); + src/save_failed_screen.o(.rodata); + src/braille_puzzles.o(.rodata); + src/pokeblock_feed.o(.rodata); + src/clear_save_data_screen.o(.rodata); + src/intro_credits_graphics.o(.rodata); + src/evolution_graphics.o(.rodata); + src/bard_music.o(.rodata); + src/battle_tv.o(.rodata); + src/pokemon_animation.o(.rodata); + src/battle_controller_recorded_opponent.o(.rodata); + src/battle_controller_recorded_player.o(.rodata); + src/trainer_pokemon_sprites.o(.rodata); + src/lilycove_lady.o(.rodata); + src/battle_dome.o(.rodata); + src/battle_palace.o(.rodata); + src/match_call.o(.rodata); + src/menu.o(.rodata); + src/battle_factory_screen.o(.rodata); + src/apprentice.o(.rodata); + src/frontier_util.o(.rodata); + src/battle_arena.o(.rodata); + src/battle_factory.o(.rodata); + src/battle_pike.o(.rodata); + src/rotating_tile_puzzle.o(.rodata); + src/battle_pyramid.o(.rodata); + src/item_menu.o(.rodata); + src/list_menu.o(.rodata); + src/save_location.o(.rodata); + src/item_icon.o(.rodata); + src/party_menu.o(.rodata); + src/battle_tent.o(.rodata); + src/braille.o(.rodata); + src/multiboot.o(.rodata); + src/berry_fix_graphics.o(.rodata); + src/battle_controller_player_partner.o(.rodata); + src/mirage_tower.o(.rodata); + src/berry_fix_program.o(.rodata); + src/pokemon_summary_screen.o(.rodata); + src/pokedex_area_region_map.o(.rodata); + src/battle_pyramid_bag.o(.rodata); + src/pokenav.o(.rodata); + src/pokenav_main_menu.o(.rodata); + src/pokenav_list.o(.rodata); + src/pokenav_menu_handler.o(.rodata); + src/pokenav_menu_handler_gfx.o(.rodata); + src/pokenav_match_call_list.o(.rodata); + src/pokenav_match_call_gfx.o(.rodata); + src/pokenav_region_map.o(.rodata); + src/pokenav_conditions_gfx.o(.rodata); + src/pokenav_conditions_search_results.o(.rodata); + src/pokenav_ribbons_list.o(.rodata); + src/pokenav_ribbons_summary.o(.rodata); + src/pokenav_match_call_data.o(.rodata); + src/menu_specialized.o(.rodata); + src/ereader_helpers.o(.rodata); + src/faraway_island.o(.rodata); + src/ereader_screen.o(.rodata); + src/trainer_hill.o(.rodata); + src/rayquaza_scene.o(.rodata); + src/walda_phrase.o(.rodata); + src/gym_leader_rematch.o(.rodata); + src/battle_transition_frontier.o(.rodata); + src/text_input_strings.o(.rodata); + src/fonts.o(.rodata); + src/international_string_util.o(.rodata); + src/mystery_event_msg.o(.rodata); + data/mystery_gift.o(.rodata); + src/m4a_tables.o(.rodata); + data/sound_data.o(.rodata); + src/tx_rac_menu.o(.rodata); + src/tx_randomizer_and_challenges.o(.rodata); + src/sound_check_menu.o(.rodata); + } > ROM =0 + + song_data : + ALIGN(4) + { + sound/songs/midi/mus_dummy.o(.rodata); + sound/songs/midi/se_use_item.o(.rodata); + sound/songs/midi/se_pc_login.o(.rodata); + sound/songs/midi/se_pc_off.o(.rodata); + sound/songs/midi/se_pc_on.o(.rodata); + sound/songs/midi/se_select.o(.rodata); + sound/songs/se_win_open.o(.rodata); + sound/songs/se_wall_hit.o(.rodata); + sound/songs/midi/se_door.o(.rodata); + sound/songs/midi/se_exit.o(.rodata); + sound/songs/midi/se_ledge.o(.rodata); + sound/songs/midi/se_bike_bell.o(.rodata); + sound/songs/midi/se_not_effective.o(.rodata); + sound/songs/midi/se_effective.o(.rodata); + sound/songs/midi/se_super_effective.o(.rodata); + sound/songs/midi/se_ball_open.o(.rodata); + sound/songs/midi/se_faint.o(.rodata); + sound/songs/midi/se_flee.o(.rodata); + sound/songs/midi/se_sliding_door.o(.rodata); + sound/songs/midi/se_ship.o(.rodata); + sound/songs/midi/se_bang.o(.rodata); + sound/songs/midi/se_pin.o(.rodata); + sound/songs/midi/se_boo.o(.rodata); + sound/songs/midi/se_ball.o(.rodata); + sound/songs/midi/se_contest_place.o(.rodata); + sound/songs/midi/se_a.o(.rodata); + sound/songs/midi/se_i.o(.rodata); + sound/songs/midi/se_u.o(.rodata); + sound/songs/midi/se_e.o(.rodata); + sound/songs/midi/se_o.o(.rodata); + sound/songs/midi/se_n.o(.rodata); + sound/songs/midi/se_success.o(.rodata); + sound/songs/midi/se_failure.o(.rodata); + sound/songs/midi/se_exp.o(.rodata); + sound/songs/midi/se_bike_hop.o(.rodata); + sound/songs/midi/se_switch.o(.rodata); + sound/songs/midi/se_click.o(.rodata); + sound/songs/midi/se_fu_zaku.o(.rodata); + sound/songs/midi/se_contest_condition_lose.o(.rodata); + sound/songs/midi/se_lavaridge_fall_warp.o(.rodata); + sound/songs/midi/se_ice_stairs.o(.rodata); + sound/songs/midi/se_ice_break.o(.rodata); + sound/songs/midi/se_ice_crack.o(.rodata); + sound/songs/midi/se_fall.o(.rodata); + sound/songs/midi/se_unlock.o(.rodata); + sound/songs/midi/se_warp_in.o(.rodata); + sound/songs/midi/se_warp_out.o(.rodata); + sound/songs/midi/se_repel.o(.rodata); + sound/songs/midi/se_rotating_gate.o(.rodata); + sound/songs/midi/se_truck_move.o(.rodata); + sound/songs/midi/se_truck_stop.o(.rodata); + sound/songs/midi/se_truck_unload.o(.rodata); + sound/songs/midi/se_truck_door.o(.rodata); + sound/songs/midi/se_berry_blender.o(.rodata); + sound/songs/midi/se_card.o(.rodata); + sound/songs/midi/se_save.o(.rodata); + sound/songs/midi/se_ball_bounce_1.o(.rodata); + sound/songs/midi/se_ball_bounce_2.o(.rodata); + sound/songs/midi/se_ball_bounce_3.o(.rodata); + sound/songs/midi/se_ball_bounce_4.o(.rodata); + sound/songs/midi/se_ball_trade.o(.rodata); + sound/songs/midi/se_ball_throw.o(.rodata); + sound/songs/midi/se_note_c.o(.rodata); + sound/songs/midi/se_note_d.o(.rodata); + sound/songs/midi/se_note_e.o(.rodata); + sound/songs/midi/se_note_f.o(.rodata); + sound/songs/midi/se_note_g.o(.rodata); + sound/songs/midi/se_note_a.o(.rodata); + sound/songs/midi/se_note_b.o(.rodata); + sound/songs/midi/se_note_c_high.o(.rodata); + sound/songs/midi/se_puddle.o(.rodata); + sound/songs/midi/se_bridge_walk.o(.rodata); + sound/songs/midi/se_itemfinder.o(.rodata); + sound/songs/midi/se_ding_dong.o(.rodata); + sound/songs/midi/se_balloon_red.o(.rodata); + sound/songs/midi/se_balloon_blue.o(.rodata); + sound/songs/midi/se_balloon_yellow.o(.rodata); + sound/songs/midi/se_breakable_door.o(.rodata); + sound/songs/midi/se_mud_ball.o(.rodata); + sound/songs/midi/se_field_poison.o(.rodata); + sound/songs/midi/se_escalator.o(.rodata); + sound/songs/midi/se_thunderstorm.o(.rodata); + sound/songs/midi/se_thunderstorm_stop.o(.rodata); + sound/songs/midi/se_downpour.o(.rodata); + sound/songs/midi/se_downpour_stop.o(.rodata); + sound/songs/midi/se_rain.o(.rodata); + sound/songs/midi/se_rain_stop.o(.rodata); + sound/songs/midi/se_thunder.o(.rodata); + sound/songs/midi/se_thunder2.o(.rodata); + sound/songs/midi/se_elevator.o(.rodata); + sound/songs/midi/se_low_health.o(.rodata); + sound/songs/midi/se_exp_max.o(.rodata); + sound/songs/midi/se_roulette_ball.o(.rodata); + sound/songs/midi/se_roulette_ball2.o(.rodata); + sound/songs/midi/se_taillow_wing_flap.o(.rodata); + sound/songs/midi/se_shop.o(.rodata); + sound/songs/midi/se_contest_heart.o(.rodata); + sound/songs/midi/se_contest_curtain_rise.o(.rodata); + sound/songs/midi/se_contest_curtain_fall.o(.rodata); + sound/songs/midi/se_contest_icon_change.o(.rodata); + sound/songs/midi/se_contest_icon_clear.o(.rodata); + sound/songs/midi/se_contest_mons_turn.o(.rodata); + sound/songs/midi/se_shiny.o(.rodata); + sound/songs/midi/se_intro_blast.o(.rodata); + sound/songs/midi/se_mugshot.o(.rodata); + sound/songs/midi/se_applause.o(.rodata); + sound/songs/midi/se_vend.o(.rodata); + sound/songs/midi/se_orb.o(.rodata); + sound/songs/se_dex_scroll.o(.rodata); + sound/songs/se_dex_page.o(.rodata); + sound/songs/midi/se_pokenav_on.o(.rodata); + sound/songs/midi/se_pokenav_off.o(.rodata); + sound/songs/midi/se_dex_search.o(.rodata); + sound/songs/midi/se_egg_hatch.o(.rodata); + sound/songs/midi/se_ball_tray_enter.o(.rodata); + sound/songs/midi/se_ball_tray_ball.o(.rodata); + sound/songs/midi/se_ball_tray_exit.o(.rodata); + sound/songs/midi/se_glass_flute.o(.rodata); + sound/songs/se_m_thunderbolt.o(.rodata); + sound/songs/se_m_thunderbolt2.o(.rodata); + sound/songs/se_m_harden.o(.rodata); + sound/songs/se_m_nightmare.o(.rodata); + sound/songs/se_m_vital_throw.o(.rodata); + sound/songs/se_m_vital_throw2.o(.rodata); + sound/songs/se_m_bubble.o(.rodata); + sound/songs/se_m_bubble2.o(.rodata); + sound/songs/se_m_bubble3.o(.rodata); + sound/songs/se_m_rain_dance.o(.rodata); + sound/songs/midi/se_m_cut.o(.rodata); + sound/songs/se_m_string_shot.o(.rodata); + sound/songs/se_m_string_shot2.o(.rodata); + sound/songs/se_m_rock_throw.o(.rodata); + sound/songs/midi/se_m_gust.o(.rodata); + sound/songs/midi/se_m_gust2.o(.rodata); + sound/songs/midi/se_m_double_slap.o(.rodata); + sound/songs/se_m_double_team.o(.rodata); + sound/songs/midi/se_m_razor_wind.o(.rodata); + sound/songs/se_m_icy_wind.o(.rodata); + sound/songs/se_m_thunder_wave.o(.rodata); + sound/songs/midi/se_m_comet_punch.o(.rodata); + sound/songs/midi/se_m_mega_kick.o(.rodata); + sound/songs/midi/se_m_mega_kick2.o(.rodata); + sound/songs/se_m_crabhammer.o(.rodata); + sound/songs/midi/se_m_jump_kick.o(.rodata); + sound/songs/se_m_flame_wheel.o(.rodata); + sound/songs/se_m_flame_wheel2.o(.rodata); + sound/songs/se_m_flamethrower.o(.rodata); + sound/songs/midi/se_m_fire_punch.o(.rodata); + sound/songs/se_m_toxic.o(.rodata); + sound/songs/se_m_sacred_fire.o(.rodata); + sound/songs/se_m_sacred_fire2.o(.rodata); + sound/songs/se_m_ember.o(.rodata); + sound/songs/midi/se_m_take_down.o(.rodata); + sound/songs/se_m_blizzard.o(.rodata); + sound/songs/se_m_blizzard2.o(.rodata); + sound/songs/midi/se_m_scratch.o(.rodata); + sound/songs/midi/se_m_vicegrip.o(.rodata); + sound/songs/midi/se_m_wing_attack.o(.rodata); + sound/songs/midi/se_m_fly.o(.rodata); + sound/songs/midi/se_m_sand_attack.o(.rodata); + sound/songs/midi/se_m_razor_wind2.o(.rodata); + sound/songs/se_m_bite.o(.rodata); + sound/songs/midi/se_m_headbutt.o(.rodata); + sound/songs/se_m_surf.o(.rodata); + sound/songs/se_m_hydro_pump.o(.rodata); + sound/songs/se_m_whirlpool.o(.rodata); + sound/songs/midi/se_m_horn_attack.o(.rodata); + sound/songs/midi/se_m_tail_whip.o(.rodata); + sound/songs/se_m_mist.o(.rodata); + sound/songs/se_m_poison_powder.o(.rodata); + sound/songs/midi/se_m_bind.o(.rodata); + sound/songs/se_m_dragon_rage.o(.rodata); + sound/songs/se_m_sing.o(.rodata); + sound/songs/se_m_perish_song.o(.rodata); + sound/songs/midi/se_m_pay_day.o(.rodata); + sound/songs/se_m_dig.o(.rodata); + sound/songs/se_m_dizzy_punch.o(.rodata); + sound/songs/se_m_self_destruct.o(.rodata); + sound/songs/se_m_explosion.o(.rodata); + sound/songs/se_m_absorb_2.o(.rodata); + sound/songs/se_m_absorb.o(.rodata); + sound/songs/se_m_screech.o(.rodata); + sound/songs/se_m_bubble_beam.o(.rodata); + sound/songs/se_m_bubble_beam2.o(.rodata); + sound/songs/se_m_supersonic.o(.rodata); + sound/songs/se_m_belly_drum.o(.rodata); + sound/songs/se_m_metronome.o(.rodata); + sound/songs/se_m_bonemerang.o(.rodata); + sound/songs/se_m_lick.o(.rodata); + sound/songs/se_m_psybeam.o(.rodata); + sound/songs/se_m_faint_attack.o(.rodata); + sound/songs/midi/se_m_swords_dance.o(.rodata); + sound/songs/midi/se_m_leer.o(.rodata); + sound/songs/se_m_swagger.o(.rodata); + sound/songs/se_m_swagger2.o(.rodata); + sound/songs/se_m_heal_bell.o(.rodata); + sound/songs/se_m_confuse_ray.o(.rodata); + sound/songs/se_m_snore.o(.rodata); + sound/songs/se_m_brick_break.o(.rodata); + sound/songs/se_m_giga_drain.o(.rodata); + sound/songs/se_m_psybeam2.o(.rodata); + sound/songs/se_m_solar_beam.o(.rodata); + sound/songs/se_m_petal_dance.o(.rodata); + sound/songs/se_m_teleport.o(.rodata); + sound/songs/se_m_minimize.o(.rodata); + sound/songs/se_m_sketch.o(.rodata); + sound/songs/se_m_swift.o(.rodata); + sound/songs/se_m_reflect.o(.rodata); + sound/songs/se_m_barrier.o(.rodata); + sound/songs/se_m_detect.o(.rodata); + sound/songs/se_m_lock_on.o(.rodata); + sound/songs/se_m_moonlight.o(.rodata); + sound/songs/se_m_charm.o(.rodata); + sound/songs/se_m_charge.o(.rodata); + sound/songs/se_m_strength.o(.rodata); + sound/songs/se_m_hyper_beam.o(.rodata); + sound/songs/se_m_waterfall.o(.rodata); + sound/songs/se_m_reversal.o(.rodata); + sound/songs/se_m_acid_armor.o(.rodata); + sound/songs/se_m_sandstorm.o(.rodata); + sound/songs/se_m_tri_attack.o(.rodata); + sound/songs/se_m_tri_attack2.o(.rodata); + sound/songs/se_m_encore.o(.rodata); + sound/songs/se_m_encore2.o(.rodata); + sound/songs/se_m_baton_pass.o(.rodata); + sound/songs/se_m_milk_drink.o(.rodata); + sound/songs/se_m_attract.o(.rodata); + sound/songs/se_m_attract2.o(.rodata); + sound/songs/se_m_morning_sun.o(.rodata); + sound/songs/se_m_flatter.o(.rodata); + sound/songs/se_m_sand_tomb.o(.rodata); + sound/songs/se_m_grasswhistle.o(.rodata); + sound/songs/se_m_spit_up.o(.rodata); + sound/songs/se_m_dive.o(.rodata); + sound/songs/se_m_earthquake.o(.rodata); + sound/songs/se_m_twister.o(.rodata); + sound/songs/se_m_sweet_scent.o(.rodata); + sound/songs/se_m_yawn.o(.rodata); + sound/songs/se_m_sky_uppercut.o(.rodata); + sound/songs/se_m_stat_increase.o(.rodata); + sound/songs/se_m_heat_wave.o(.rodata); + sound/songs/se_m_uproar.o(.rodata); + sound/songs/se_m_hail.o(.rodata); + sound/songs/se_m_cosmic_power.o(.rodata); + sound/songs/se_m_teeter_dance.o(.rodata); + sound/songs/se_m_stat_decrease.o(.rodata); + sound/songs/se_m_haze.o(.rodata); + sound/songs/se_m_hyper_beam2.o(.rodata); + sound/songs/midi/se_rg_door.o(.rodata); + sound/songs/midi/se_rg_card_flip.o(.rodata); + sound/songs/midi/se_rg_card_flipping.o(.rodata); + sound/songs/midi/se_rg_card_open.o(.rodata); + sound/songs/midi/se_rg_bag_cursor.o(.rodata); + sound/songs/midi/se_rg_bag_pocket.o(.rodata); + sound/songs/midi/se_rg_ball_click.o(.rodata); + sound/songs/midi/se_rg_shop.o(.rodata); + sound/songs/midi/se_rg_ss_anne_horn.o(.rodata); + sound/songs/midi/se_rg_help_open.o(.rodata); + sound/songs/midi/se_rg_help_close.o(.rodata); + sound/songs/midi/se_rg_help_error.o(.rodata); + sound/songs/midi/se_rg_deoxys_move.o(.rodata); + sound/songs/midi/se_rg_poke_jump_success.o(.rodata); + sound/songs/midi/se_rg_poke_jump_failure.o(.rodata); + sound/songs/midi/se_pokenav_call.o(.rodata); + sound/songs/midi/se_pokenav_hang_up.o(.rodata); + sound/songs/midi/se_arena_timeup1.o(.rodata); + sound/songs/midi/se_arena_timeup2.o(.rodata); + sound/songs/midi/se_pike_curtain_close.o(.rodata); + sound/songs/midi/se_pike_curtain_open.o(.rodata); + sound/songs/midi/se_sudowoodo_shake.o(.rodata); + sound/songs/midi/ph_trap_blend.o(.rodata); + sound/songs/midi/ph_trap_held.o(.rodata); + sound/songs/midi/ph_trap_solo.o(.rodata); + sound/songs/midi/ph_face_blend.o(.rodata); + sound/songs/midi/ph_face_held.o(.rodata); + sound/songs/midi/ph_face_solo.o(.rodata); + sound/songs/midi/ph_cloth_blend.o(.rodata); + sound/songs/midi/ph_cloth_held.o(.rodata); + sound/songs/midi/ph_cloth_solo.o(.rodata); + sound/songs/midi/ph_dress_blend.o(.rodata); + sound/songs/midi/ph_dress_held.o(.rodata); + sound/songs/midi/ph_dress_solo.o(.rodata); + sound/songs/midi/ph_fleece_blend.o(.rodata); + sound/songs/midi/ph_fleece_held.o(.rodata); + sound/songs/midi/ph_fleece_solo.o(.rodata); + sound/songs/midi/ph_kit_blend.o(.rodata); + sound/songs/midi/ph_kit_held.o(.rodata); + sound/songs/midi/ph_kit_solo.o(.rodata); + sound/songs/midi/ph_price_blend.o(.rodata); + sound/songs/midi/ph_price_held.o(.rodata); + sound/songs/midi/ph_price_solo.o(.rodata); + sound/songs/midi/ph_lot_blend.o(.rodata); + sound/songs/midi/ph_lot_held.o(.rodata); + sound/songs/midi/ph_lot_solo.o(.rodata); + sound/songs/midi/ph_goat_blend.o(.rodata); + sound/songs/midi/ph_goat_held.o(.rodata); + sound/songs/midi/ph_goat_solo.o(.rodata); + sound/songs/midi/ph_thought_blend.o(.rodata); + sound/songs/midi/ph_thought_held.o(.rodata); + sound/songs/midi/ph_thought_solo.o(.rodata); + sound/songs/midi/ph_choice_blend.o(.rodata); + sound/songs/midi/ph_choice_held.o(.rodata); + sound/songs/midi/ph_choice_solo.o(.rodata); + sound/songs/midi/ph_mouth_blend.o(.rodata); + sound/songs/midi/ph_mouth_held.o(.rodata); + sound/songs/midi/ph_mouth_solo.o(.rodata); + sound/songs/midi/ph_foot_blend.o(.rodata); + sound/songs/midi/ph_foot_held.o(.rodata); + sound/songs/midi/ph_foot_solo.o(.rodata); + sound/songs/midi/ph_goose_blend.o(.rodata); + sound/songs/midi/ph_goose_held.o(.rodata); + sound/songs/midi/ph_goose_solo.o(.rodata); + sound/songs/midi/ph_strut_blend.o(.rodata); + sound/songs/midi/ph_strut_held.o(.rodata); + sound/songs/midi/ph_strut_solo.o(.rodata); + sound/songs/midi/ph_cure_blend.o(.rodata); + sound/songs/midi/ph_cure_held.o(.rodata); + sound/songs/midi/ph_cure_solo.o(.rodata); + sound/songs/midi/ph_nurse_blend.o(.rodata); + sound/songs/midi/ph_nurse_held.o(.rodata); + sound/songs/midi/ph_nurse_solo.o(.rodata); + sound/songs/midi/mus_littleroot_test.o(.rodata); + sound/songs/midi/mus_gsc_route38.o(.rodata); + sound/songs/midi/mus_caught.o(.rodata); + sound/songs/midi/mus_victory_wild.o(.rodata); + sound/songs/midi/mus_victory_gym_leader.o(.rodata); + sound/songs/midi/mus_victory_league.o(.rodata); + sound/songs/midi/mus_c_comm_center.o(.rodata); + sound/songs/midi/mus_gsc_pewter.o(.rodata); + sound/songs/midi/mus_c_vs_legend_beast.o(.rodata); + sound/songs/midi/mus_route101.o(.rodata); + sound/songs/midi/mus_route110.o(.rodata); + sound/songs/midi/mus_route120.o(.rodata); + sound/songs/midi/mus_petalburg.o(.rodata); + sound/songs/midi/mus_oldale.o(.rodata); + sound/songs/midi/mus_gym.o(.rodata); + sound/songs/midi/mus_surf.o(.rodata); + sound/songs/midi/mus_petalburg_woods.o(.rodata); + sound/songs/midi/mus_level_up.o(.rodata); + sound/songs/midi/mus_heal.o(.rodata); + sound/songs/midi/mus_obtain_badge.o(.rodata); + sound/songs/midi/mus_obtain_item.o(.rodata); + sound/songs/midi/mus_evolved.o(.rodata); + sound/songs/midi/mus_obtain_tmhm.o(.rodata); + sound/songs/midi/mus_lilycove_museum.o(.rodata); + sound/songs/midi/mus_route122.o(.rodata); + sound/songs/midi/mus_oceanic_museum.o(.rodata); + sound/songs/midi/mus_evolution_intro.o(.rodata); + sound/songs/midi/mus_evolution.o(.rodata); + sound/songs/midi/mus_move_deleted.o(.rodata); + sound/songs/midi/mus_encounter_girl.o(.rodata); + sound/songs/midi/mus_encounter_male.o(.rodata); + sound/songs/midi/mus_abandoned_ship.o(.rodata); + sound/songs/midi/mus_fortree.o(.rodata); + sound/songs/midi/mus_birch_lab.o(.rodata); + sound/songs/midi/mus_b_tower_rs.o(.rodata); + sound/songs/midi/mus_encounter_swimmer.o(.rodata); + sound/songs/midi/mus_cave_of_origin.o(.rodata); + sound/songs/midi/mus_obtain_berry.o(.rodata); + sound/songs/midi/mus_awaken_legend.o(.rodata); + sound/songs/midi/mus_slots_jackpot.o(.rodata); + sound/songs/midi/mus_slots_win.o(.rodata); + sound/songs/midi/mus_too_bad.o(.rodata); + sound/songs/midi/mus_roulette.o(.rodata); + sound/songs/midi/mus_link_contest_p1.o(.rodata); + sound/songs/midi/mus_link_contest_p2.o(.rodata); + sound/songs/midi/mus_link_contest_p3.o(.rodata); + sound/songs/midi/mus_link_contest_p4.o(.rodata); + sound/songs/midi/mus_encounter_rich.o(.rodata); + sound/songs/midi/mus_verdanturf.o(.rodata); + sound/songs/midi/mus_rustboro.o(.rodata); + sound/songs/midi/mus_poke_center.o(.rodata); + sound/songs/midi/mus_route104.o(.rodata); + sound/songs/midi/mus_route119.o(.rodata); + sound/songs/midi/mus_cycling.o(.rodata); + sound/songs/midi/mus_poke_mart.o(.rodata); + sound/songs/midi/mus_littleroot.o(.rodata); + sound/songs/midi/mus_mt_chimney.o(.rodata); + sound/songs/midi/mus_encounter_female.o(.rodata); + sound/songs/midi/mus_lilycove.o(.rodata); + sound/songs/midi/mus_route111.o(.rodata); + sound/songs/midi/mus_help.o(.rodata); + sound/songs/midi/mus_underwater.o(.rodata); + sound/songs/midi/mus_victory_trainer.o(.rodata); + sound/songs/midi/mus_title.o(.rodata); + sound/songs/midi/mus_intro.o(.rodata); + sound/songs/midi/mus_encounter_may.o(.rodata); + sound/songs/midi/mus_encounter_intense.o(.rodata); + sound/songs/midi/mus_encounter_cool.o(.rodata); + sound/songs/midi/mus_route113.o(.rodata); + sound/songs/midi/mus_encounter_aqua.o(.rodata); + sound/songs/midi/mus_follow_me.o(.rodata); + sound/songs/midi/mus_encounter_brendan.o(.rodata); + sound/songs/midi/mus_ever_grande.o(.rodata); + sound/songs/midi/mus_encounter_suspicious.o(.rodata); + sound/songs/midi/mus_victory_aqua_magma.o(.rodata); + sound/songs/midi/mus_cable_car.o(.rodata); + sound/songs/midi/mus_game_corner.o(.rodata); + sound/songs/midi/mus_dewford.o(.rodata); + sound/songs/midi/mus_safari_zone.o(.rodata); + sound/songs/midi/mus_victory_road.o(.rodata); + sound/songs/midi/mus_aqua_magma_hideout.o(.rodata); + sound/songs/midi/mus_sailing.o(.rodata); + sound/songs/midi/mus_mt_pyre.o(.rodata); + sound/songs/midi/mus_slateport.o(.rodata); + sound/songs/midi/mus_mt_pyre_exterior.o(.rodata); + sound/songs/midi/mus_school.o(.rodata); + sound/songs/midi/mus_hall_of_fame.o(.rodata); + sound/songs/midi/mus_fallarbor.o(.rodata); + sound/songs/midi/mus_sealed_chamber.o(.rodata); + sound/songs/midi/mus_contest_winner.o(.rodata); + sound/songs/midi/mus_contest.o(.rodata); + sound/songs/midi/mus_encounter_magma.o(.rodata); + sound/songs/midi/mus_intro_battle.o(.rodata); + sound/songs/mus_weather_kyogre.o(.rodata); + sound/songs/midi/mus_weather_groudon.o(.rodata); + sound/songs/midi/mus_sootopolis.o(.rodata); + sound/songs/midi/mus_contest_results.o(.rodata); + sound/songs/midi/mus_hall_of_fame_room.o(.rodata); + sound/songs/midi/mus_trick_house.o(.rodata); + sound/songs/midi/mus_encounter_twins.o(.rodata); + sound/songs/midi/mus_encounter_elite_four.o(.rodata); + sound/songs/midi/mus_encounter_hiker.o(.rodata); + sound/songs/midi/mus_contest_lobby.o(.rodata); + sound/songs/midi/mus_encounter_interviewer.o(.rodata); + sound/songs/midi/mus_encounter_champion.o(.rodata); + sound/songs/midi/mus_credits.o(.rodata); + sound/songs/midi/mus_end.o(.rodata); + sound/songs/midi/mus_vs_wild.o(.rodata); + sound/songs/midi/mus_vs_aqua_magma.o(.rodata); + sound/songs/midi/mus_vs_trainer.o(.rodata); + sound/songs/midi/mus_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_vs_champion.o(.rodata); + sound/songs/midi/mus_vs_regi.o(.rodata); + sound/songs/midi/mus_vs_kyogre_groudon.o(.rodata); + sound/songs/midi/mus_vs_rival.o(.rodata); + sound/songs/midi/mus_vs_elite_four.o(.rodata); + sound/songs/midi/mus_vs_aqua_magma_leader.o(.rodata); + sound/songs/midi/mus_rg_follow_me.o(.rodata); + sound/songs/midi/mus_rg_game_corner.o(.rodata); + sound/songs/midi/mus_rg_rocket_hideout.o(.rodata); + sound/songs/midi/mus_rg_gym.o(.rodata); + sound/songs/midi/mus_rg_jigglypuff.o(.rodata); + sound/songs/midi/mus_rg_intro_fight.o(.rodata); + sound/songs/midi/mus_rg_title.o(.rodata); + sound/songs/midi/mus_rg_cinnabar.o(.rodata); + sound/songs/midi/mus_rg_lavender.o(.rodata); + sound/songs/midi/mus_rg_heal.o(.rodata); + sound/songs/midi/mus_rg_cycling.o(.rodata); + sound/songs/midi/mus_rg_encounter_rocket.o(.rodata); + sound/songs/midi/mus_rg_encounter_girl.o(.rodata); + sound/songs/midi/mus_rg_encounter_boy.o(.rodata); + sound/songs/midi/mus_rg_hall_of_fame.o(.rodata); + sound/songs/midi/mus_rg_viridian_forest.o(.rodata); + sound/songs/midi/mus_rg_mt_moon.o(.rodata); + sound/songs/midi/mus_rg_poke_mansion.o(.rodata); + sound/songs/midi/mus_rg_credits.o(.rodata); + sound/songs/midi/mus_rg_route1.o(.rodata); + sound/songs/midi/mus_rg_route24.o(.rodata); + sound/songs/midi/mus_rg_route3.o(.rodata); + sound/songs/midi/mus_rg_route11.o(.rodata); + sound/songs/midi/mus_rg_victory_road.o(.rodata); + sound/songs/midi/mus_rg_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_rg_vs_trainer.o(.rodata); + sound/songs/midi/mus_rg_vs_wild.o(.rodata); + sound/songs/midi/mus_rg_vs_champion.o(.rodata); + sound/songs/midi/mus_rg_pallet.o(.rodata); + sound/songs/midi/mus_rg_oak_lab.o(.rodata); + sound/songs/midi/mus_rg_oak.o(.rodata); + sound/songs/midi/mus_rg_poke_center.o(.rodata); + sound/songs/midi/mus_rg_ss_anne.o(.rodata); + sound/songs/midi/mus_rg_surf.o(.rodata); + sound/songs/midi/mus_rg_poke_tower.o(.rodata); + sound/songs/midi/mus_rg_silph.o(.rodata); + sound/songs/midi/mus_rg_fuchsia.o(.rodata); + sound/songs/midi/mus_rg_celadon.o(.rodata); + sound/songs/midi/mus_rg_vermillion.o(.rodata); + sound/songs/midi/mus_rg_pewter.o(.rodata); + sound/songs/midi/mus_rg_encounter_rival.o(.rodata); + sound/songs/midi/mus_rg_rival_exit.o(.rodata); + sound/songs/midi/mus_rg_dex_rating.o(.rodata); + sound/songs/midi/mus_rg_obtain_key_item.o(.rodata); + sound/songs/midi/mus_rg_caught_intro.o(.rodata); + sound/songs/midi/mus_rg_photo.o(.rodata); + sound/songs/midi/mus_rg_game_freak.o(.rodata); + sound/songs/midi/mus_rg_caught.o(.rodata); + sound/songs/midi/mus_rg_new_game_instruct.o(.rodata); + sound/songs/midi/mus_rg_new_game_intro.o(.rodata); + sound/songs/midi/mus_rg_new_game_exit.o(.rodata); + sound/songs/midi/mus_rg_poke_jump.o(.rodata); + sound/songs/midi/mus_rg_union_room.o(.rodata); + sound/songs/midi/mus_rg_net_center.o(.rodata); + sound/songs/midi/mus_rg_mystery_gift.o(.rodata); + sound/songs/midi/mus_rg_berry_pick.o(.rodata); + sound/songs/midi/mus_rg_sevii_route.o(.rodata); + sound/songs/midi/mus_rg_sevii_45.o(.rodata); + sound/songs/midi/mus_rg_sevii_67.o(.rodata); + sound/songs/midi/mus_rg_poke_flute.o(.rodata); + sound/songs/midi/mus_rg_vs_deoxys.o(.rodata); + sound/songs/midi/mus_rg_vs_mewtwo.o(.rodata); + sound/songs/midi/mus_rg_vs_legend.o(.rodata); + sound/songs/midi/mus_rg_encounter_gym_leader.o(.rodata); + sound/songs/midi/mus_rg_encounter_deoxys.o(.rodata); + sound/songs/midi/mus_rg_trainer_tower.o(.rodata); + sound/songs/midi/mus_rg_slow_pallet.o(.rodata); + sound/songs/midi/mus_rg_teachy_tv_menu.o(.rodata); + sound/songs/midi/mus_abnormal_weather.o(.rodata); + sound/songs/midi/mus_b_frontier.o(.rodata); + sound/songs/midi/mus_b_arena.o(.rodata); + sound/songs/midi/mus_obtain_b_points.o(.rodata); + sound/songs/midi/mus_register_match_call.o(.rodata); + sound/songs/midi/mus_b_pyramid.o(.rodata); + sound/songs/midi/mus_b_pyramid_top.o(.rodata); + sound/songs/midi/mus_b_palace.o(.rodata); + sound/songs/midi/mus_rayquaza_appears.o(.rodata); + sound/songs/midi/mus_b_tower.o(.rodata); + sound/songs/midi/mus_obtain_symbol.o(.rodata); + sound/songs/midi/mus_b_dome.o(.rodata); + sound/songs/midi/mus_b_pike.o(.rodata); + sound/songs/midi/mus_b_factory.o(.rodata); + sound/songs/midi/mus_vs_frontier_brain.o(.rodata); + sound/songs/midi/mus_vs_mew.o(.rodata); + sound/songs/midi/mus_b_dome_lobby.o(.rodata); + sound/songs/midi/mus_dp_twinleaf_day.o(.rodata); + sound/songs/midi/mus_dp_sandgem_day.o(.rodata); + sound/songs/midi/mus_dp_floaroma_day.o(.rodata); + sound/songs/midi/mus_dp_solaceon_day.o(.rodata); + sound/songs/midi/mus_dp_route225_day.o(.rodata); + sound/songs/midi/mus_dp_valor_lakefront_day.o(.rodata); + sound/songs/midi/mus_dp_jubilife_day.o(.rodata); + sound/songs/midi/mus_dp_canalave_day.o(.rodata); + sound/songs/midi/mus_dp_oreburgh_day.o(.rodata); + sound/songs/midi/mus_dp_eterna_day.o(.rodata); + sound/songs/midi/mus_dp_hearthome_day.o(.rodata); + sound/songs/midi/mus_dp_veilstone_day.o(.rodata); + sound/songs/midi/mus_dp_sunyshore_day.o(.rodata); + sound/songs/midi/mus_dp_snowpoint_day.o(.rodata); + sound/songs/midi/mus_dp_pokemon_league_day.o(.rodata); + sound/songs/midi/mus_dp_fight_area_day.o(.rodata); + sound/songs/midi/mus_dp_route201_day.o(.rodata); + sound/songs/midi/mus_dp_route203_day.o(.rodata); + sound/songs/midi/mus_dp_route205_day.o(.rodata); + sound/songs/midi/mus_dp_route206_day.o(.rodata); + sound/songs/midi/mus_dp_route209_day.o(.rodata); + sound/songs/midi/mus_dp_route210_day.o(.rodata); + sound/songs/midi/mus_dp_route216_day.o(.rodata); + sound/songs/midi/mus_dp_route228_day.o(.rodata); + sound/songs/midi/mus_dp_rowan.o(.rodata); + sound/songs/midi/mus_dp_tv_broadcast.o(.rodata); + sound/songs/midi/mus_dp_twinleaf_night.o(.rodata); + sound/songs/midi/mus_dp_sandgem_night.o(.rodata); + sound/songs/midi/mus_dp_floaroma_night.o(.rodata); + sound/songs/midi/mus_dp_solaceon_night.o(.rodata); + sound/songs/midi/mus_dp_route225_night.o(.rodata); + sound/songs/midi/mus_dp_valor_lakefront_night.o(.rodata); + sound/songs/midi/mus_dp_jubilife_night.o(.rodata); + sound/songs/midi/mus_dp_canalave_night.o(.rodata); + sound/songs/midi/mus_dp_oreburgh_night.o(.rodata); + sound/songs/midi/mus_dp_eterna_night.o(.rodata); + sound/songs/midi/mus_dp_hearthome_night.o(.rodata); + sound/songs/midi/mus_dp_veilstone_night.o(.rodata); + sound/songs/midi/mus_dp_sunyshore_night.o(.rodata); + sound/songs/midi/mus_dp_snowpoint_night.o(.rodata); + sound/songs/midi/mus_dp_pokemon_league_night.o(.rodata); + sound/songs/midi/mus_dp_fight_area_night.o(.rodata); + sound/songs/midi/mus_dp_route201_night.o(.rodata); + sound/songs/midi/mus_dp_route203_night.o(.rodata); + sound/songs/midi/mus_dp_route205_night.o(.rodata); + sound/songs/midi/mus_dp_route206_night.o(.rodata); + sound/songs/midi/mus_dp_route209_night.o(.rodata); + sound/songs/midi/mus_dp_route210_night.o(.rodata); + sound/songs/midi/mus_dp_route216_night.o(.rodata); + sound/songs/midi/mus_dp_route228_night.o(.rodata); + sound/songs/midi/mus_dp_underground.o(.rodata); + sound/songs/midi/mus_dp_flag_captured.o(.rodata); + sound/songs/midi/mus_dp_victory_road.o(.rodata); + sound/songs/midi/mus_dp_eterna_forest.o(.rodata); + sound/songs/midi/mus_dp_old_chateau.o(.rodata); + sound/songs/midi/mus_dp_lake_caverns.o(.rodata); + sound/songs/midi/mus_dp_amity_square.o(.rodata); + sound/songs/midi/mus_dp_galactic_hq.o(.rodata); + sound/songs/midi/mus_dp_galactic_eterna_building.o(.rodata); + sound/songs/midi/mus_dp_great_marsh.o(.rodata); + sound/songs/midi/mus_dp_lake.o(.rodata); + sound/songs/midi/mus_dp_mt_coronet.o(.rodata); + sound/songs/midi/mus_dp_spear_pillar.o(.rodata); + sound/songs/midi/mus_dp_stark_mountain.o(.rodata); + sound/songs/midi/mus_dp_oreburgh_gate.o(.rodata); + sound/songs/midi/mus_dp_oreburgh_mine.o(.rodata); + sound/songs/midi/mus_dp_inside_pokemon_league.o(.rodata); + sound/songs/midi/mus_dp_hall_of_fame_room.o(.rodata); + sound/songs/midi/mus_dp_poke_center_day.o(.rodata); + sound/songs/midi/mus_dp_poke_center_night.o(.rodata); + sound/songs/midi/mus_dp_gym.o(.rodata); + sound/songs/midi/mus_dp_rowan_lab.o(.rodata); + sound/songs/midi/mus_dp_contest_lobby.o(.rodata); + sound/songs/midi/mus_dp_poke_mart.o(.rodata); + sound/songs/midi/mus_dp_game_corner.o(.rodata); + sound/songs/midi/mus_dp_b_tower.o(.rodata); + sound/songs/midi/mus_dp_tv_station.o(.rodata); + sound/songs/midi/mus_dp_galactic_hq_basement.o(.rodata); + sound/songs/midi/mus_dp_azure_flute.o(.rodata); + sound/songs/midi/mus_dp_hall_of_origin.o(.rodata); + sound/songs/midi/mus_dp_gts.o(.rodata); + sound/songs/midi/mus_dp_encounter_boy.o(.rodata); + sound/songs/midi/mus_dp_encounter_twins.o(.rodata); + sound/songs/midi/mus_dp_encounter_intense.o(.rodata); + sound/songs/midi/mus_dp_encounter_galactic.o(.rodata); + sound/songs/midi/mus_dp_encounter_lady.o(.rodata); + sound/songs/midi/mus_dp_encounter_hiker.o(.rodata); + sound/songs/midi/mus_dp_encounter_rich.o(.rodata); + sound/songs/midi/mus_dp_encounter_sailor.o(.rodata); + sound/songs/midi/mus_dp_encounter_suspicious.o(.rodata); + sound/songs/midi/mus_dp_encounter_ace_trainer.o(.rodata); + sound/songs/midi/mus_dp_encounter_girl.o(.rodata); + sound/songs/midi/mus_dp_encounter_cyclist.o(.rodata); + sound/songs/midi/mus_dp_encounter_artist.o(.rodata); + sound/songs/midi/mus_dp_encounter_elite_four.o(.rodata); + sound/songs/midi/mus_dp_encounter_champion.o(.rodata); + sound/songs/midi/mus_dp_vs_wild.o(.rodata); + sound/songs/midi/mus_dp_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_dp_vs_uxie_mesprit_azelf.o(.rodata); + sound/songs/midi/mus_dp_vs_trainer.o(.rodata); + sound/songs/midi/mus_dp_vs_galactic_boss.o(.rodata); + sound/songs/midi/mus_dp_vs_dialga_palkia.o(.rodata); + sound/songs/midi/mus_dp_vs_champion.o(.rodata); + sound/songs/midi/mus_dp_vs_galactic.o(.rodata); + sound/songs/midi/mus_dp_vs_rival.o(.rodata); + sound/songs/midi/mus_dp_vs_arceus.o(.rodata); + sound/songs/midi/mus_dp_vs_legend.o(.rodata); + sound/songs/midi/mus_dp_victory_wild.o(.rodata); + sound/songs/midi/mus_dp_victory_trainer.o(.rodata); + sound/songs/midi/mus_dp_victory_gym_leader.o(.rodata); + sound/songs/midi/mus_dp_victory_champion.o(.rodata); + sound/songs/midi/mus_dp_victory_galactic.o(.rodata); + sound/songs/midi/mus_dp_victory_elite_four.o(.rodata); + sound/songs/midi/mus_dp_vs_galactic_commander.o(.rodata); + sound/songs/midi/mus_dp_contest.o(.rodata); + sound/songs/midi/mus_dp_vs_elite_four.o(.rodata); + sound/songs/midi/mus_dp_follow_me.o(.rodata); + sound/songs/midi/mus_dp_rival.o(.rodata); + sound/songs/midi/mus_dp_lake_event.o(.rodata); + sound/songs/midi/mus_dp_evolution.o(.rodata); + sound/songs/midi/mus_dp_lucas.o(.rodata); + sound/songs/midi/mus_dp_dawn.o(.rodata); + sound/songs/midi/mus_dp_legend_appears.o(.rodata); + sound/songs/midi/mus_dp_catastrophe.o(.rodata); + sound/songs/midi/mus_dp_poke_radar.o(.rodata); + sound/songs/midi/mus_dp_surf.o(.rodata); + sound/songs/midi/mus_dp_cycling.o(.rodata); + sound/songs/midi/mus_dp_lets_go_together.o(.rodata); + sound/songs/midi/mus_dp_tv_end.o(.rodata); + sound/songs/midi/mus_dp_level_up.o(.rodata); + sound/songs/midi/mus_dp_evolved.o(.rodata); + sound/songs/midi/mus_dp_obtain_key_item.o(.rodata); + sound/songs/midi/mus_dp_obtain_item.o(.rodata); + sound/songs/midi/mus_dp_caught_intro.o(.rodata); + sound/songs/midi/mus_dp_dex_rating.o(.rodata); + sound/songs/midi/mus_dp_obtain_badge.o(.rodata); + sound/songs/midi/mus_dp_poketch.o(.rodata); + sound/songs/midi/mus_dp_obtain_tmhm.o(.rodata); + sound/songs/midi/mus_dp_obtain_accessory.o(.rodata); + sound/songs/midi/mus_dp_move_deleted.o(.rodata); + sound/songs/midi/mus_dp_heal.o(.rodata); + sound/songs/midi/mus_dp_obtain_berry.o(.rodata); + sound/songs/midi/mus_dp_contest_dress_up.o(.rodata); + sound/songs/midi/mus_dp_hall_of_fame.o(.rodata); + sound/songs/midi/mus_dp_intro.o(.rodata); + sound/songs/midi/mus_dp_title.o(.rodata); + sound/songs/midi/mus_dp_mystery_gift.o(.rodata); + sound/songs/midi/mus_dp_wfc.o(.rodata); + sound/songs/midi/mus_dp_dance_easy.o(.rodata); + sound/songs/midi/mus_dp_dance_difficult.o(.rodata); + sound/songs/midi/mus_dp_contest_results.o(.rodata); + sound/songs/midi/mus_dp_contest_winner.o(.rodata); + sound/songs/midi/mus_dp_poffins.o(.rodata); + sound/songs/midi/mus_dp_slots_win.o(.rodata); + sound/songs/midi/mus_dp_slots_jackpot.o(.rodata); + sound/songs/midi/mus_dp_credits.o(.rodata); + sound/songs/midi/mus_dp_slots_unused.o(.rodata); + sound/songs/midi/mus_pl_fight_area_day.o(.rodata); + sound/songs/midi/mus_pl_tv_broadcast.o(.rodata); + sound/songs/midi/mus_pl_tv_end.o(.rodata); + sound/songs/midi/mus_pl_intro.o(.rodata); + sound/songs/midi/mus_pl_title.o(.rodata); + sound/songs/midi/mus_pl_distortion_world.o(.rodata); + sound/songs/midi/mus_pl_b_arcade.o(.rodata); + sound/songs/midi/mus_pl_b_hall.o(.rodata); + sound/songs/midi/mus_pl_b_castle.o(.rodata); + sound/songs/midi/mus_pl_b_factory.o(.rodata); + sound/songs/midi/mus_pl_global_terminal.o(.rodata); + sound/songs/midi/mus_pl_lilycove_bossa_nova.o(.rodata); + sound/songs/midi/mus_pl_looker.o(.rodata); + sound/songs/midi/mus_pl_vs_giratina.o(.rodata); + sound/songs/midi/mus_pl_vs_frontier_brain.o(.rodata); + sound/songs/midi/mus_pl_victory_frontier_brain.o(.rodata); + sound/songs/midi/mus_pl_vs_regi.o(.rodata); + sound/songs/midi/mus_pl_contest_cool.o(.rodata); + sound/songs/midi/mus_pl_contest_smart.o(.rodata); + sound/songs/midi/mus_pl_contest_cute.o(.rodata); + sound/songs/midi/mus_pl_contest_tough.o(.rodata); + sound/songs/midi/mus_pl_contest_beauty.o(.rodata); + sound/songs/midi/mus_pl_spin_trade.o(.rodata); + sound/songs/midi/mus_pl_wifi_minigames.o(.rodata); + sound/songs/midi/mus_pl_wifi_plaza.o(.rodata); + sound/songs/midi/mus_pl_wifi_parade.o(.rodata); + sound/songs/midi/mus_pl_giratina_appears_1.o(.rodata); + sound/songs/midi/mus_pl_giratina_appears_2.o(.rodata); + sound/songs/midi/mus_pl_mystery_gift.o(.rodata); + sound/songs/midi/mus_pl_twinleaf_music_box.o(.rodata); + sound/songs/midi/mus_pl_obtain_arcade_points.o(.rodata); + sound/songs/midi/mus_pl_obtain_castle_points.o(.rodata); + sound/songs/midi/mus_pl_obtain_b_points.o(.rodata); + sound/songs/midi/mus_pl_win_minigame.o(.rodata); + sound/songs/midi/mus_hg_intro.o(.rodata); + sound/songs/midi/mus_hg_title.o(.rodata); + sound/songs/midi/mus_hg_new_game.o(.rodata); + sound/songs/midi/mus_hg_evolution.o(.rodata); + sound/songs/midi/mus_hg_evolution_no_intro.o(.rodata); + sound/songs/midi/mus_hg_cycling.o(.rodata); + sound/songs/midi/mus_hg_surf.o(.rodata); + sound/songs/midi/mus_hg_hall_of_fame.o(.rodata); + sound/songs/midi/mus_hg_credits.o(.rodata); + sound/songs/midi/mus_hg_end.o(.rodata); + sound/songs/midi/mus_hg_new_bark.o(.rodata); + sound/songs/midi/mus_hg_cherrygrove.o(.rodata); + sound/songs/midi/mus_hg_violet.o(.rodata); + sound/songs/midi/mus_hg_azalea.o(.rodata); + sound/songs/midi/mus_hg_goldenrod.o(.rodata); + sound/songs/midi/mus_hg_ecruteak.o(.rodata); + sound/songs/midi/mus_hg_cianwood.o(.rodata); + sound/songs/midi/mus_hg_route29.o(.rodata); + sound/songs/midi/mus_hg_route30.o(.rodata); + sound/songs/midi/mus_hg_route34.o(.rodata); + sound/songs/midi/mus_hg_route38.o(.rodata); + sound/songs/midi/mus_hg_route42.o(.rodata); + sound/songs/midi/mus_hg_vermilion.o(.rodata); + sound/songs/midi/mus_hg_pewter.o(.rodata); + sound/songs/midi/mus_hg_cerulean.o(.rodata); + sound/songs/midi/mus_hg_lavender.o(.rodata); + sound/songs/midi/mus_hg_celadon.o(.rodata); + sound/songs/midi/mus_hg_pallet.o(.rodata); + sound/songs/midi/mus_hg_cinnabar.o(.rodata); + sound/songs/midi/mus_hg_route1.o(.rodata); + sound/songs/midi/mus_hg_route3.o(.rodata); + sound/songs/midi/mus_hg_route11.o(.rodata); + sound/songs/midi/mus_hg_route24.o(.rodata); + sound/songs/midi/mus_hg_route26.o(.rodata); + sound/songs/midi/mus_hg_poke_center.o(.rodata); + sound/songs/midi/mus_hg_poke_mart.o(.rodata); + sound/songs/midi/mus_hg_gym.o(.rodata); + sound/songs/midi/mus_hg_elm_lab.o(.rodata); + sound/songs/midi/mus_hg_oak.o(.rodata); + sound/songs/midi/mus_hg_dance_theater.o(.rodata); + sound/songs/midi/mus_hg_game_corner.o(.rodata); + sound/songs/midi/mus_hg_b_tower.o(.rodata); + sound/songs/midi/mus_hg_b_tower_reception.o(.rodata); + sound/songs/midi/mus_hg_sprout_tower.o(.rodata); + sound/songs/midi/mus_hg_union_cave.o(.rodata); + sound/songs/midi/mus_hg_ruins_of_alph.o(.rodata); + sound/songs/midi/mus_hg_national_park.o(.rodata); + sound/songs/midi/mus_hg_burned_tower.o(.rodata); + sound/songs/midi/mus_hg_bell_tower.o(.rodata); + sound/songs/midi/mus_hg_lighthouse.o(.rodata); + sound/songs/midi/mus_hg_team_rocket_hq.o(.rodata); + sound/songs/midi/mus_hg_ice_path.o(.rodata); + sound/songs/midi/mus_hg_dragons_den.o(.rodata); + sound/songs/midi/mus_hg_rock_tunnel.o(.rodata); + sound/songs/midi/mus_hg_viridian_forest.o(.rodata); + sound/songs/midi/mus_hg_victory_road.o(.rodata); + sound/songs/midi/mus_hg_pokemon_league.o(.rodata); + sound/songs/midi/mus_hg_follow_me_1.o(.rodata); + sound/songs/midi/mus_hg_follow_me_2.o(.rodata); + sound/songs/midi/mus_hg_encounter_rival.o(.rodata); + sound/songs/midi/mus_hg_rival_exit.o(.rodata); + sound/songs/midi/mus_hg_bug_contest_prep.o(.rodata); + sound/songs/midi/mus_hg_bug_catching_contest.o(.rodata); + sound/songs/midi/mus_hg_radio_rocket.o(.rodata); + sound/songs/midi/mus_hg_rocket_takeover.o(.rodata); + sound/songs/midi/mus_hg_magnet_train.o(.rodata); + sound/songs/midi/mus_hg_ss_aqua.o(.rodata); + sound/songs/midi/mus_hg_mt_moon_square.o(.rodata); + sound/songs/midi/mus_hg_radio_jingle.o(.rodata); + sound/songs/midi/mus_hg_radio_lullaby.o(.rodata); + sound/songs/midi/mus_hg_radio_march.o(.rodata); + sound/songs/midi/mus_hg_radio_unown.o(.rodata); + sound/songs/midi/mus_hg_radio_poke_flute.o(.rodata); + sound/songs/midi/mus_hg_radio_oak.o(.rodata); + sound/songs/midi/mus_hg_radio_buena.o(.rodata); + sound/songs/midi/mus_hg_eusine.o(.rodata); + sound/songs/midi/mus_hg_clair.o(.rodata); + sound/songs/midi/mus_hg_encounter_girl_1.o(.rodata); + sound/songs/midi/mus_hg_encounter_boy_1.o(.rodata); + sound/songs/midi/mus_hg_encounter_suspicious_1.o(.rodata); + sound/songs/midi/mus_hg_encounter_sage.o(.rodata); + sound/songs/midi/mus_hg_encounter_kimono_girl.o(.rodata); + sound/songs/midi/mus_hg_encounter_rocket.o(.rodata); + sound/songs/midi/mus_hg_encounter_girl_2.o(.rodata); + sound/songs/midi/mus_hg_encounter_boy_2.o(.rodata); + sound/songs/midi/mus_hg_encounter_suspicious_2.o(.rodata); + sound/songs/midi/mus_hg_vs_wild.o(.rodata); + sound/songs/midi/mus_hg_vs_trainer.o(.rodata); + sound/songs/midi/mus_hg_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_hg_vs_rival.o(.rodata); + sound/songs/midi/mus_hg_vs_rocket.o(.rodata); + sound/songs/midi/mus_hg_vs_suicune.o(.rodata); + sound/songs/midi/mus_hg_vs_entei.o(.rodata); + sound/songs/midi/mus_hg_vs_raikou.o(.rodata); + sound/songs/midi/mus_hg_vs_champion.o(.rodata); + sound/songs/midi/mus_hg_vs_wild_kanto.o(.rodata); + sound/songs/midi/mus_hg_vs_trainer_kanto.o(.rodata); + sound/songs/midi/mus_hg_vs_gym_leader_kanto.o(.rodata); + sound/songs/midi/mus_hg_victory_trainer.o(.rodata); + sound/songs/midi/mus_hg_victory_wild.o(.rodata); + sound/songs/midi/mus_hg_caught.o(.rodata); + sound/songs/midi/mus_hg_victory_gym_leader.o(.rodata); + sound/songs/midi/mus_hg_vs_ho_oh.o(.rodata); + sound/songs/midi/mus_hg_vs_lugia.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_lobby.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_start.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_before.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_event.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_finals.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_results.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_end.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_winner.o(.rodata); + sound/songs/midi/mus_hg_b_factory.o(.rodata); + sound/songs/midi/mus_hg_b_hall.o(.rodata); + sound/songs/midi/mus_hg_b_arcade.o(.rodata); + sound/songs/midi/mus_hg_b_castle.o(.rodata); + sound/songs/midi/mus_hg_vs_frontier_brain.o(.rodata); + sound/songs/midi/mus_hg_victory_frontier_brain.o(.rodata); + sound/songs/midi/mus_hg_wfc.o(.rodata); + sound/songs/midi/mus_hg_mystery_gift.o(.rodata); + sound/songs/midi/mus_hg_wifi_plaza.o(.rodata); + sound/songs/midi/mus_hg_wifi_minigames.o(.rodata); + sound/songs/midi/mus_hg_wifi_parade.o(.rodata); + sound/songs/midi/mus_hg_global_terminal.o(.rodata); + sound/songs/midi/mus_hg_spin_trade.o(.rodata); + sound/songs/midi/mus_hg_gts.o(.rodata); + sound/songs/midi/mus_hg_route47.o(.rodata); + sound/songs/midi/mus_hg_safari_zone_gate.o(.rodata); + sound/songs/midi/mus_hg_safari_zone.o(.rodata); + sound/songs/midi/mus_hg_ethan.o(.rodata); + sound/songs/midi/mus_hg_lyra.o(.rodata); + sound/songs/midi/mus_hg_game_corner_win.o(.rodata); + sound/songs/midi/mus_hg_kimono_girl_dance.o(.rodata); + sound/songs/midi/mus_hg_kimono_girl.o(.rodata); + sound/songs/midi/mus_hg_ho_oh_appears.o(.rodata); + sound/songs/midi/mus_hg_lugia_appears.o(.rodata); + sound/songs/midi/mus_hg_spiky_eared_pichu.o(.rodata); + sound/songs/midi/mus_hg_sinjou_ruins.o(.rodata); + sound/songs/midi/mus_hg_radio_route101.o(.rodata); + sound/songs/midi/mus_hg_radio_route201.o(.rodata); + sound/songs/midi/mus_hg_radio_trainer.o(.rodata); + sound/songs/midi/mus_hg_radio_variety.o(.rodata); + sound/songs/midi/mus_hg_vs_kyogre_groudon.o(.rodata); + sound/songs/midi/mus_hg_pokewalker.o(.rodata); + sound/songs/midi/mus_hg_vs_arceus.o(.rodata); + sound/songs/midi/mus_hg_heal.o(.rodata); + sound/songs/midi/mus_hg_level_up.o(.rodata); + sound/songs/midi/mus_hg_obtain_item.o(.rodata); + sound/songs/midi/mus_hg_obtain_key_item.o(.rodata); + sound/songs/midi/mus_hg_evolved.o(.rodata); + sound/songs/midi/mus_hg_obtain_badge.o(.rodata); + sound/songs/midi/mus_hg_obtain_tmhm.o(.rodata); + sound/songs/midi/mus_hg_obtain_accessory.o(.rodata); + sound/songs/midi/mus_hg_move_deleted.o(.rodata); + sound/songs/midi/mus_hg_obtain_berry.o(.rodata); + sound/songs/midi/mus_hg_dex_rating_1.o(.rodata); + sound/songs/midi/mus_hg_dex_rating_2.o(.rodata); + sound/songs/midi/mus_hg_dex_rating_3.o(.rodata); + sound/songs/midi/mus_hg_dex_rating_4.o(.rodata); + sound/songs/midi/mus_hg_dex_rating_5.o(.rodata); + sound/songs/midi/mus_hg_dex_rating_6.o(.rodata); + sound/songs/midi/mus_hg_obtain_egg.o(.rodata); + sound/songs/midi/mus_hg_bug_contest_1st_place.o(.rodata); + sound/songs/midi/mus_hg_bug_contest_2nd_place.o(.rodata); + sound/songs/midi/mus_hg_bug_contest_3rd_place.o(.rodata); + sound/songs/midi/mus_hg_card_flip.o(.rodata); + sound/songs/midi/mus_hg_card_flip_game_over.o(.rodata); + sound/songs/midi/mus_hg_pokegear_registered.o(.rodata); + sound/songs/midi/mus_hg_lets_go_together.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_ready.o(.rodata); + sound/songs/midi/mus_hg_pokeathlon_1st_place.o(.rodata); + sound/songs/midi/mus_hg_receive_pokemon.o(.rodata); + sound/songs/midi/mus_hg_obtain_arcade_points.o(.rodata); + sound/songs/midi/mus_hg_obtain_castle_points.o(.rodata); + sound/songs/midi/mus_hg_obtain_b_points.o(.rodata); + sound/songs/midi/mus_hg_win_minigame.o(.rodata); + } > ROM =0 + + lib_rodata : + SUBALIGN(4) + { + src/m4a.o(.rodata); + 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); + src/librfu_rfu.o(.rodata); + src/librfu_sio32id.o(.rodata); + *libgcc.a:_divdi3.o(.rodata); + *libgcc.a:_udivdi3.o(.rodata); + *libc.a:memcpy.o(.rodata); + *libc.a:memset.o(.rodata); + *libc.a:strcmp.o(.rodata); + *libc.a:strcpy.o(.rodata); + *libc.a:impure.o(.rodata); + *libc.a:vsprintf.o(.rodata); + *libc.a:vfprintf.o(.rodata); + *libc.a:wsetup.o(.rodata); + *libc.a:dtoa.o(.rodata); + *libc.a:fflush.o(.rodata); + *libc.a:findfp.o(.rodata); + *libc.a:freer.o(.rodata); + *libc.a:mtrim.o(.rodata); + *libc.a:fvwrite.o(.rodata); + *libc.a:fwalk.o(.rodata); + *libc.a:locale.o(.rodata); + *libc.a:makebuf.o(.rodata); + *libc.a:mallocr.o(.rodata); + *libc.a:mbtowc_r.o(.rodata); + *libc.a:memchr.o(.rodata); + *libc.a:memmove.o(.rodata); + *libc.a:mlock.o(.rodata); + *libc.a:mprec.o(.rodata); + *libc.a:s_isinf.o(.rodata); + *libc.a:s_isnan.o(.rodata); + *libc.a:sbrkr.o(.rodata); + *libc.a:stdio.o(.rodata); + *libc.a:strlen.o(.rodata); + *libc.a:syscalls.o(.rodata); + *libc.a:writer.o(.rodata); + *libc.a:callocr.o(.rodata); + *libc.a:closer.o(.rodata); + *libc.a:errno.o(.rodata); + *libc.a:fstatr.o(.rodata); + *libc.a:libcfunc.o(.rodata); + *libc.a:lseekr.o(.rodata); + *libc.a:readr.o(.rodata); + src/libisagbprn.o(.rodata); + } > ROM =0 + + multiboot_data : + ALIGN(4) + { + data/multiboot_ereader.o(.rodata); + data/multiboot_berry_glitch_fix.o(.rodata); + data/multiboot_pokemon_colosseum.o(.rodata); + } > ROM =0 + + anim_mon_front_pic_data : + ALIGN(4) + { + src/anim_mon_front_pics.o(.rodata); + } > ROM =0 + + gfx_data : + ALIGN(4) + { + src/graphics.o(.rodata); + } > ROM =0 + + extra : + ALIGN(4) + { + src/*.o(.text); + gflib/*.o(.text); + src/*.o(.rodata); + gflib/*.o(.rodata); + data/*.o(.rodata); + } = 0 + + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + + /* Discard everything not specifically mentioned above. */ + /DISCARD/ : + { + *(*); + } +} diff --git a/ld_script_modern.ld b/ld_script_modern.ld new file mode 100755 index 000000000..d8bda9c10 --- /dev/null +++ b/ld_script_modern.ld @@ -0,0 +1,167 @@ +ENTRY(Start) + +gNumMusicPlayers = 4; +gMaxLines = 0; + +/* Memory Spaces */ +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} + +SECTIONS { + + ewram 0x2000000 (NOLOAD) : + ALIGN(4) + { + *(__EWRAM_HEAP); + + src/*.o(ewram_data); /**/ + gflib/*.o(ewram_data); /**/ + } > EWRAM + + iwram 0x3000000 (NOLOAD) : + ALIGN(4) + { + src/*.o(.bss); + gflib/*.o(.bss); + data/*.o(.bss); + *libc.a:*.o(.bss*); + *libnosys.a:*.o(.bss*); + + /* .bss.code starts at 0x3001AA8 */ + src/m4a.o(.bss.code); + + /* COMMON starts at 0x30022A8 */ + src/*.o(COMMON); /**/ + gflib/*.o(COMMON); /**/ + *libc.a:*.o(COMMON); + *libnosys.a:*.o(COMMON); + } > IWRAM + + /* BEGIN ROM DATA */ + . = 0x8000000; + + .text : + ALIGN(4) + { + src/rom_header.o(.text*); + src/rom_header_gf.o(.text.*); + src/crt0.o(.text); + src/main.o(.text); + gflib/*.o(.text*); + src/*.o(.text*); + asm/*.o(.text*); + } > ROM =0 + + script_data : + ALIGN(4) + { + data/*.o(script_data); + } > ROM =0 + + lib_text : + ALIGN(4) + { + src/libgcnmultiboot.o(.text); + src/m4a_1.o(.text); + src/m4a.o(.text); + src/agb_flash.o(.text); + src/agb_flash_1m.o(.text); + src/agb_flash_mx.o(.text); + src/siirtc.o(.text); + src/librfu_stwi.o(.text); + src/librfu_intr.o(.text); + src/librfu_rfu.o(.text); + src/librfu_sio32id.o(.text); + *libagbsyscall.a:*.o(.text*); + *libgcc.a:*.o(.text*); + *libc.a:*.o(.text*); + *libnosys.a:*.o(.text*); + src/libisagbprn.o(.text); + } > ROM =0 + + .rodata : + ALIGN(4) + { + src/*.o(.rodata*); + gflib/*.o(.rodata*); + data/*.o(.rodata*); + } > ROM =0 + + song_data : + ALIGN(4) + { + sound/songs/*.o(.rodata); + } > ROM =0 + + lib_rodata : + SUBALIGN(4) + { + src/m4a.o(.rodata); + 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); + src/librfu_rfu.o(.rodata); + src/librfu_sio32id.o(.rodata); + *libgcc.a:*.o(.rodata*); + *libc.a:*.o(.rodata*); + *libc.a:*.o(.data*); + src/libisagbprn.o(.rodata); + } > ROM =0 + + multiboot_data : + ALIGN(4) + { + data/multiboot_ereader.o(.rodata); + data/multiboot_berry_glitch_fix.o(.rodata); + data/multiboot_pokemon_colosseum.o(.rodata); + } > ROM =0 + + anim_mon_front_pic_data : + ALIGN(4) + { + src/anim_mon_front_pics.o(.rodata); + } > ROM =0 + + gfx_data : + ALIGN(4) + { + src/graphics.o(.rodata); + } > ROM =0 + + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + + /* Discard everything not specifically mentioned above. */ + /DISCARD/ : + { + *(*); + } +}