ENTRY(Start)

gNumMusicPlayers = 4;
gMaxLines = 0;

SECTIONS {
    . = 0x2000000;

    ewram (NOLOAD) :
    ALIGN(4)
    {
        gHeap = .;

        . = 0x1C000;

<EWRAM>

        . = 0x40000;
}

    . = 0x3000000;

    iwram (NOLOAD) :
    ALIGN(4)
    {
        /* .bss starts at 0x3000000 */
<BSS>

        /* .bss.code starts at 0x3001AA8 */
        src/m4a_2.o(.bss.code);

        /* COMMON starts at 0x30022A8 */
<COMMON>

        . = 0x8000;
    }

    . = 0x8000000;

    .text :
    ALIGN(4)
    {
        asm/crt0.o(.text);
        src/main.o(.text);
        src/malloc.o(.text);
        src/dma3_manager.o(.text);
        src/gpu_regs.o(.text);
        src/bg.o(.text);
        asm/blit.o(.text);
        src/window.o(.text);
        src/text.o(.text);
        src/sprite.o(.text);
        src/string_util.o(.text);
        asm/link.o(.text);
        src/rtc.o(.text);
        asm/main_menu.o(.text);
        asm/rom3.o(.text);
        src/decompress.o(.text);
        asm/battle_1.o(.text);
        src/battle_2.o(.text);
        src/battle_util.o(.text);
        src/battle_script_commands.o(.text);
        asm/battle_5.o(.text);
        asm/battle_controller_player.o(.text);
        asm/battle_7.o(.text);
        asm/battle_controller_opponent.o(.text);
        src/battle_ai_switch_items.o(.text);
        asm/battle_controller_linkopponent.o(.text);
        src/pokemon_1.o(.text);
        asm/pokemon_1.o(.text);
        src/calculate_base_damage.o(.text);
        src/pokemon_2.o(.text);
        asm/pokemon_item_effect.o(.text);
        src/pokemon_3.o(.text);
        asm/pokemon_3.o(.text);
        src/trig.o(.text);
        src/rng.o(.text);
        src/util.o(.text);
        src/blend_palette.o(.text);
        asm/daycare.o(.text);
        src/egg_hatch.o(.text);
        src/battle_interface.o(.text);
        asm/battle_interface.o(.text);
        asm/smokescreen.o(.text);
        asm/pokeball.o(.text);
        src/load_save.o(.text);
        asm/load_save.o(.text);
        asm/trade.o(.text);
        asm/berry_blender.o(.text);
        src/play_time.o(.text);
        src/new_game.o(.text);
        asm/rom4.o(.text);
        asm/fieldmap.o(.text);
        src/metatile_behavior.o(.text);
        asm/field_camera.o(.text);
        asm/field_door.o(.text);
        asm/field_player_avatar.o(.text);
        src/field_map_obj.o(.text);
        asm/field_ground_effect.o(.text);
        asm/map_obj_8097404.o(.text);
        asm/field_message_box.o(.text);
        asm/map_obj_lock.o(.text);
        src/text_window.o(.text);
        src/script.o(.text);
        src/scrcmd.o(.text);
        asm/field_control_avatar.o(.text);
        src/event_data.o(.text);
        asm/coord_event_weather.o(.text);
        asm/field_tasks.o(.text);
        asm/clock.o(.text);
        asm/reset_rtc_screen.o(.text);
        src/start_menu.o(.text);
        asm/start_menu.o(.text);
        src/tileset_anims.o(.text);
        src/palette.o(.text);
        src/sound.o(.text);
        asm/battle_anim.o(.text);
        asm/rom_80A5C6C.o(.text);
        src/task.o(.text);
        src/reshow_battle_screen.o(.text);
        asm/battle_anim_80A9C70.o(.text);
        asm/title_screen.o(.text);
        asm/field_screen.o(.text);
        asm/battle_setup.o(.text);
        asm/cable_club.o(.text);
        asm/trainer_see.o(.text);
        asm/wild_encounter.o(.text);
        asm/field_effect.o(.text);
        asm/unknown_task.o(.text);
        asm/option_menu.o(.text);
        asm/pokedex.o(.text);
        asm/trainer_card.o(.text);
        asm/pokemon_storage_system.o(.text);
        asm/pokemon_icon.o(.text);
        asm/script_movement.o(.text);
        asm/fldeff_cut.o(.text);
        asm/mail_data.o(.text);
        asm/map_name_popup.o(.text);
        asm/item_menu_icons.o(.text);
        asm/battle_anim_80D51AC.o(.text);
        src/item.o(.text);
        asm/item.o(.text);
        asm/contest.o(.text);
        asm/shop.o(.text);
        src/berry.o(.text);
        asm/script_menu.o(.text);
        asm/naming_screen.o(.text);
        src/money.o(.text);
        asm/contest_effect.o(.text);
        asm/record_mixing.o(.text);
        asm/secret_base.o(.text);
        src/tv.o(.text);
        asm/contest_link_80F57C4.o(.text);
        asm/script_pokemon_util_80F87D8.o(.text);
        asm/field_poison.o(.text);
        src/pokemon_size_record.o(.text);
        asm/fldeff_80F9BCC.o(.text);
        src/field_special_scene.o(.text);
        asm/rotating_gate.o(.text);
        src/safari_zone.o(.text);
        asm/contest_link_80FC4F4.o(.text);
        asm/item_use.o(.text);
        asm/battle_anim_80FE840.o(.text);
        asm/bike.o(.text);
        asm/easy_chat.o(.text);
        asm/mon_markings.o(.text);
        asm/mauville_old_man.o(.text);
        asm/mail.o(.text);
        asm/menu_helpers.o(.text);
        asm/dewford_trend.o(.text);
        asm/heal_location.o(.text);
        asm/region_map.o(.text);
        asm/cute_sketch.o(.text);
        asm/decoration.o(.text);
        asm/slot_machine.o(.text);
        asm/contest_painting.o(.text);
        src/battle_ai_script_commands.o(.text);
        asm/trader.o(.text);
        asm/starter_choose.o(.text);
        asm/wallclock.o(.text);
        asm/rom6.o(.text);
        asm/battle_records.o(.text);
        asm/pokedex_area_screen.o(.text);
        asm/evolution_scene.o(.text);
        asm/roulette.o(.text);
        asm/pokedex_cry_screen.o(.text);
        src/coins.o(.text);
        asm/coins.o(.text);
        asm/landmark.o(.text);
        asm/fldeff_strength.o(.text);
        asm/battle_transition.o(.text);
        asm/battle_controller_linkpartner.o(.text);
        src/battle_message.o(.text);
        asm/cable_car.o(.text);
        asm/math_util.o(.text);
        asm/roulette_util.o(.text);
        asm/cable_car_util.o(.text);
        src/save.o(.text);
        asm/mystery_event_script.o(.text);
        asm/field_effect_helpers.o(.text);
        asm/contest_ai.o(.text);
        asm/battle_anim_sound_tasks.o(.text);
        asm/battle_controller_safari.o(.text);
        asm/fldeff_sweetscent.o(.text);
        asm/battle_anim_815A0D4.o(.text);
        asm/learn_move.o(.text);
        asm/fldeff_softboiled.o(.text);
        asm/decoration_inventory.o(.text);
        src/roamer.o(.text);
        asm/battle_tower.o(.text);
        asm/use_pokeblock.o(.text);
        asm/battle_controller_wally.o(.text);
        asm/player_pc.o(.text);
        asm/intro.o(.text);
        src/reset_save_heap.o(.text);
        asm/field_region_map.o(.text);
        asm/battle_anim_8170478.o(.text);
        asm/hall_of_fame.o(.text);
        asm/credits.o(.text);
        src/lottery_corner.o(.text);
        src/diploma.o(.text);
        asm/berry_tag_screen.o(.text);
        asm/mystery_event_menu.o(.text);
        src/save_failed_screen.o(.text);
        src/braille_puzzles.o(.text);
        asm/pokeblock_feed.o(.text);
        asm/clear_save_data_screen.o(.text);
        asm/intro_credits_graphics.o(.text);
        asm/evolution_graphics.o(.text);
        asm/bard_music.o(.text);
        asm/fldeff_teleport.o(.text);
        asm/battle_link_817C95C.o(.text);
        asm/pokemon_animation.o(.text);
        asm/recorded_battle.o(.text);
        asm/battle_controller_recorded_opponent.o(.text);
        asm/battle_controller_recorded_player.o(.text);
        src/battle_dome_cards.o(.text);
        src/lilycove_lady.o(.text);
        asm/battle_frontier_1.o(.text);
        asm/new_menu_helpers.o(.text);
        asm/menu.o(.text);
        asm/battle_frontier_2.o(.text);
        asm/item_menu.o(.text);
        asm/list_menu.o(.text);
        asm/menu_indicators.o(.text);
        asm/unk_text_util.o(.text);
        src/save_location.o(.text);
        asm/item_icon.o(.text);
        asm/party_menu.o(.text);
        asm/battle_tent.o(.text);
        src/unk_text_util_2.o(.text);
        src/multiboot.o(.text);
        asm/unk_81BAD84.o(.text);
        asm/battle_controller_player_partner.o(.text);
        asm/fldeff_groundshake.o(.text);
        asm/fossil_specials.o(.text);
        src/berry_fix_program.o(.text);
        asm/pokemon_summary_screen.o(.text);
        asm/pokenav.o(.text);
        asm/rayquaza_scene.o(.text);
        asm/walda_phrase.o(.text);
        asm/contest_link_81D9DE4.o(.text);
        asm/trainer_rematch.o(.text);
        asm/unk_sprite_file.o(.text);
        asm/unk_transition.o(.text);
        asm/unk_transition_2.o(.text);
        src/international_string_util.o(.text);
        asm/international_string_util.o(.text);
    } =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/script_funcs.o(script_data);
    } =0

    lib_text :
    ALIGN(4)
    {
        asm/libgcnmultiboot.o(.text);
        asm/m4a_1.o(.text);
        src/m4a_2.o(.text);
        asm/m4a_3.o(.text);
        src/m4a_4.o(.text);
        src/agb_flash.o(.text);
        src/agb_flash_1m.o(.text);
        src/agb_flash_mx.o(.text);
        src/siirtc.o(.text);
        asm/librfu.o(.text);
        asm/libagbsyscall.o(.text);
        tools/agbcc/lib/libgcc.a:_call_via_rX.o(.text);
        tools/agbcc/lib/libgcc.a:_divdi3.o(.text);
        tools/agbcc/lib/libgcc.a:_divsi3.o(.text);
        tools/agbcc/lib/libgcc.a:_dvmd_tls.o(.text);
        tools/agbcc/lib/libgcc.a:_fixunsdfsi.o(.text);
        tools/agbcc/lib/libgcc.a:_fixunssfsi.o(.text);
        tools/agbcc/lib/libgcc.a:_modsi3.o(.text);
        tools/agbcc/lib/libgcc.a:_muldi3.o(.text);
        tools/agbcc/lib/libgcc.a:_udivdi3.o(.text);
        tools/agbcc/lib/libgcc.a:_udivsi3.o(.text);
        tools/agbcc/lib/libgcc.a:_umodsi3.o(.text);
        tools/agbcc/lib/libgcc.a:dp-bit.o(.text);
        tools/agbcc/lib/libgcc.a:fp-bit.o(.text);
        tools/agbcc/lib/libgcc.a:_lshrdi3.o(.text);
        tools/agbcc/lib/libgcc.a:_negdi2.o(.text);
        src/libc.o(.text);
    } =0

    .rodata :
    ALIGN(4)
    {
        src/main.o(.rodata);
        src/bg.o(.rodata);
        src/window.o(.rodata);
        src/text.o(.rodata);
        src/sprite.o(.rodata);
        data/io_reg.o(.rodata);
        src/string_util.o(.rodata);
        data/link.o(.rodata);
        src/rtc.o(.rodata);
        data/main_menu.o(.rodata);
        data/battle_1.o(.rodata);
        data/data2b.o(.rodata);
        src/battle_2.o(.rodata);
        src/battle_util.o(.rodata);
        src/battle_script_commands.o(.rodata);
        data/battle_controller_player.o(.rodata);
        data/smokescreen.o(.rodata);
        data/battle_controller_opponent.o(.rodata);
        data/battle_controller_link_opponent.o(.rodata);
        data/data2c.o(.rodata);
        src/trig.o(.rodata);
        src/util.o(.rodata);
        data/daycare.o(.rodata);
        src/egg_hatch.o(.rodata);
        data/battle_7.o(.rodata);
        src/battle_interface.o(.rodata);
        data/battle_interface.o(.rodata);
        data/pokeball.o(.rodata);
        data/trade.o(.rodata);
        data/berry_blender.o(.rodata);
        src/new_game.o(.rodata);
        data/rom4.o(.rodata);
        data/fieldmap.o(.rodata);
        src/metatile_behavior.o(.rodata);
        data/rom_8486FEC.o(.rodata);
        data/field_door.o(.rodata);
        data/field_player_avatar.o(.rodata);
        data/field_map_obj.o(.rodata);
        data/field_ground_effect.o(.rodata);
        data/map_obj_8097404.o(.rodata);
        data/text_window.o(.rodata);
        src/scrcmd.o(.rodata);
        data/coord_event_weather.o(.rodata);
        data/field_tasks.o(.rodata);
        data/reset_rtc_screen.o(.rodata);
        data/start_menu.o(.rodata);
        src/tileset_anims.o(.rodata);
        src/palette.o(.rodata);
        data/fanfares.o(.rodata);
        data/battle_anims.o(.rodata);
        data/title_screen.o(.rodata);
        data/field_screen.o(.rodata);
        data/battle_setup.o(.rodata);
        data/cable_club.o(.rodata);
        data/trainer_see.o(.rodata);
        data/wild_encounter.o(.rodata);
        data/field_effect.o(.rodata);
        data/option_menu.o(.rodata);
        data/pokedex.o(.rodata);
        data/trainer_card.o(.rodata);
        data/pokemon_storage_system.o(.rodata);
        data/pokemon_icon.o(.rodata);
        data/fldeff_cut.o(.rodata);
        data/map_name_popup.o(.rodata);
        data/item_menu_icons.o(.rodata);
        data/contest.o(.rodata);
        data/shop.o(.rodata);
        src/berry.o(.rodata);
        data/script_menu.o(.rodata);
        data/naming_screen.o(.rodata);
        src/money.o(.rodata);
        data/contest_effect.o(.rodata);
        data/record_mixing.o(.rodata);
        data/secret_base.o(.rodata);
        src/tv.o(.rodata);
        data/contest_link_80F57C4.o(.rodata);
        data/script_pokemon_util_80F87D8.o(.rodata);
        src/pokemon_size_record.o(.rodata)
        data/field_effect_misc.o(.rodata);
        data/field_special_scene.o(.rodata);
        data/rotating_gate.o(.rodata);
        data/item_use.o(.rodata);
        data/battle_anim_80FE840.o(.rodata);
        data/bike.o(.rodata);
        data/easy_chat.o(.rodata);
        data/mon_markings.o(.rodata);
        data/mauville_old_man.o(.rodata);
        data/mail.o(.rodata);
        data/menu_helpers.o(.rodata);
        data/heal_location.o(.rodata);
        data/region_map.o(.rodata);
        data/cute_sketch.o(.rodata);
        data/decoration.o(.rodata);
        data/slot_machine.o(.rodata);
        data/contest_painting.o(.rodata);
        src/battle_ai_script_commands.o(.rodata);
        data/data4.o(.rodata);
        data/battle_controller_link_partner.o(.rodata);
        src/battle_message.o(.rodata);
        data/cable_car.o(.rodata);
        data/save.o(.rodata);
        data/field_effect_helpers.o(.rodata);
        data/contest_ai.o(.rodata);
        data/battle_controller_safari.o(.rodata);
        data/battle_anim_815A0D4.o(.rodata);
        data/learn_move.o(.rodata);
        src/roamer.o(.rodata);
        data/battle_tower.o(.rodata);
        data/use_pokeblock.o(.rodata);
        data/battle_controller_wally.o(.rodata);
        data/player_pc.o(.rodata);
        data/intro.o(.rodata);
        data/field_region_map.o(.rodata);
        data/battle_anim_8170478.o(.rodata);
        data/hall_of_fame.o(.rodata);
        data/credits.o(.rodata);
        src/lottery_corner.o(.rodata);
        src/diploma.o(.rodata);
        data/strings.o(.rodata);
        data/berry_tag_screen.o(.rodata);
        data/mystery_event_menu.o(.rodata);
        src/save_failed_screen.o(.rodata);
        data/braille_puzzles.o(.rodata);
        data/pokeblock_feed.o(.rodata);
        data/clear_save_data_screen.o(.rodata);
        data/intro_credits_graphics.o(.rodata);
        data/evolution_graphics.o(.rodata);
        data/bard_music.o(.rodata);
        data/data_860A4AC.o(.rodata);
        data/battle_controller_recorded_opponent.o(.rodata);
        data/battle_controller_recorded_player.o(.rodata);
        src/battle_dome_cards.o(.rodata);
        src/lilycove_lady.o(.rodata);
        data/battle_frontier_1.o(.rodata);
        data/new_menu_helpers.o(.rodata);
        data/battle_frontier_2.o(.rodata);
        data/item_menu.o(.rodata);
        data/menu_indicators.o(.rodata);
        src/save_location.o(.rodata);
        data/item_icon.o(.rodata);
        data/party_menu.o(.rodata);
        data/battle_tent.o(.rodata);
        src/unk_text_util_2.o(.rodata);
        data/unk_81BAD84.o(.rodata);
        data/battle_controller_player_partner.o(.rodata);
        data/fossil_special_fldeff_groundshake.o(.rodata);
        src/berry_fix_program.o(.rodata);
        data/pokemon_summary_screen.o(.rodata);
        data/pokenav.o(.rodata);
        data/rayquaza_scene.o(.rodata);
        data/walda_phrase.o(.rodata);
        data/trainer_rematch.o(.rodata);
        data/unk_sprite_file.o(.rodata);
        data/unk_transition.o(.rodata);
        data/link_strings.o(.rodata);
        data/fonts.o(.rodata);
        data/mystery_event_msg.o(.rodata);
        src/m4a_tables.o(.rodata);
        data/sound_data.o(.rodata);
    } =0

    lib_rodata :
    SUBALIGN(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);
        data/librfu_rodata.o(.rodata);
        tools/agbcc/lib/libgcc.a:_divdi3.o(.rodata);
        tools/agbcc/lib/libgcc.a:_udivdi3.o(.rodata);
    } =0

    other_data :
    ALIGN(4)
    {
        data/unknown_serial_data.o(.rodata);
        data/multiboot_berry_glitch_fix.o(.rodata);
        data/multiboot_pokemon_colosseum.o(.rodata);
    } =0

    gap1 :
    {
        gap1_start = ABSOLUTE(.);
        BYTE(0x00)
        . = 0x8B00000 - gap1_start;
    } =0

    anim_mon_front_pic_data :
    ALIGN(4)
    {
        data/anim_mon_front_pics.o(anim_mon_front_pic_data);
    } =0

    gap2 :
    {
        gap2_start = ABSOLUTE(.);
        BYTE(0x00)
        . = 0x8C00000 - gap2_start;
    } =0

    gfx_data :
    ALIGN(4)
    {
        data/graphics.o(gfx_data);
    } =0

    /* Discard everything not specifically mentioned above. */
    /DISCARD/ :
    {
        *(*);
    }
}
