gNumMusicPlayers = 4;
gMaxLines = 0;

SECTIONS
{
    . = 0x02000000;
    EWRAM (NOLOAD) :
    ALIGN(4)
    {
        src/lib/m4a/m4a.o(ewram_data);
        src/malloc_ewram.o(ewram_data);
        ewram_end = .;
    }

    . = 0x03000000;
    IWRAM (NOLOAD) :
    ALIGN(4)
    {
        /**** bss ****/
        src/lib/m4a/m4a.o(.bss.code);
        src/multi_boot.o(.bss);
        
        . = 0x00000408;
        src/game/shared/stage/camera.o(.bss);

        . = 0x00000410;
        src/game/shared/stage/terrain_collision.o(.bss);

        src/lib/agb_flash/agb_flash.o(.bss);

        /**** common ****/
        . = ALIGN(16); 
        src/multi_sio.o(.data);
        src/sio32_multi_load.o(COMMON);

        /* engine */
        src/core.o(.data);
        src/input_recorder.o(.data);

        /* game */
        . = ALIGN(32); 
        src/game/globals.o(.data);
        src/game/sa2/stage/input_buffer.o(.data);
        src/game/shared/stage/water_effects.o(.data);
        src/game/sa2/stage/cheese.o(.data);
        src/game/sa2/stage/boost_effect.o(.data);
        src/game/shared/stage/mp_player.o(.data);
        src/game/sa2/stage/mp_attack_2_effect.o(.data);
        src/game/dummy_task.o(.data);
        src/game/shared/stage/stage.o(.data);
        src/game/shared/stage/camera.o(.data);
        src/game/shared/stage/terrain_collision.o(.data);
        src/game/shared/stage/dust_effect_braking.o(.data);
        src/game/shared/stage/rings_scatter.o(.data);
        src/game/shared/stage/player.o(.data);
        src/game/shared/stage/underwater_effects.o(.data);
        src/game/sa2/stage/player_controls.o(.data);
        src/game/sa2/stage/player_super_sonic.o(.data);
        src/game/sa2/stage/stage_ui.o(.data);
        src/game/sa2/stage/debug_text_printer.o(.data);
        src/game/sa2/stage/bosses/common.o(.data);
        src/game/sa2/options_screen.o(.data);
        src/game/sa2/special_stage/utils.o(.data);
        src/game/sa2/save.o(.data);
        src/game/sa2/collect_rings/time_display.o(.data);
        src/game/math.o(.data);
        src/game/sa2/stage/mp_attack_1_effect.o(.data);
        src/game/sa2/bg_palette_effects.o(.data);

        /* libs */
        . = ALIGN(16);
        src/lib/agb_flash/agb_flash.o(.data);

        iwram_end = .;
    }
    
	. = 0x08000000;
    ROM :
	ALIGN(4)
	{
        /* bootstrap */
        src/rom_header.o(.text);
        src/crt0.o(.text);

        /* engine */
        src/multi_sio_asm.o(.text);
        src/multi_sio.o(.text);
        src/multi_boot.o(.text);
        src/sio32_multi_load.o(.text);
        src/core.o(.text);
        src/main.o(.text);
        src/task.o(.text);
        src/background.o(.text);
        src/sprite.o(.text);
        src/bg_triangles.o(.text);
        src/malloc_ewram.o(.text);
        src/malloc_vram.o(.text);
        src/input_recorder.o(.text);

        /* game */
        src/game/shared/stage/rings_manager.o(.text);
        src/game/shared/stage/entities_manager.o(.text);
        src/game/shared/stage/palette_loader.o(.text);
        src/game/shared/menus/unused_level_select.o(.text);
        src/game/shared/stage/spot_light_beam_task.o(.text);
        src/game/shared/stage/enemy_defeat_score.o(.text);
        src/game/shared/stage/demo_manager.o(.text);
        src/game/shared/stage/unused_flash_task.o(.text);
        src/game/sa2/stage/simple_sprite_particle.o(.text);
        src/game/shared/stage/spot_lights_manager.o(.text);
        src/game/shared/stage/pause_menu.o(.text);
        src/game/shared/stage/collect_ring_effect.o(.text);
        src/game/sa2/stage/itembox.o(.text);
        src/game/shared/stage/dust_cloud.o(.text);
        src/game/shared/stage/magnetic_ring.o(.text);
        src/game/shared/stage/music_manager.o(.text);
        src/game/shared/stage/collision_3.o(.text);
        src/game/shared/stage/collision_1.o(.text);
        src/game/shared/stage/collision_2.o(.text);
        src/game/sa2/stage/input_buffer.o(.text);

        src/game/sa2/stage/interactables/spring.o(.text);
        src/game/sa2/stage/interactables/platform.o(.text);
        src/game/sa2/stage/interactables/platform_square.o(.text);
        src/game/sa2/stage/interactables/ramp.o(.text);
        src/game/sa2/stage/interactables/grind_rail.o(.text);
        src/game/sa2/stage/interactables/ceiling_slope.o(.text);
        src/game/sa2/stage/interactables/pipe.o(.text);
        src/game/sa2/stage/interactables/platform_thin.o(.text);
        src/game/sa2/stage/interactables/slidy_ice.o(.text);

        src/game/globals.o(.text);

        src/game/shared/stage/water_effects.o(.text);
        src/game/sa2/stage/player_callbacks.o(.text);
        src/game/sa2/stage/cheese.o(.text);
        src/game/sa2/stage/boost_effect.o(.text);
        src/game/shared/stage/amy_attack_heart_effect.o(.text);

        src/game/shared/stage/mp_player.o(.text);
        src/game/shared/stage/mp_event_mgr.o(.text);
        src/game/shared/stage/mp_event_recv_mgr.o(.text);
        src/game/shared/stage/mp_indicators.o(.text);
        src/game/shared/stage/mp_finish.o(.text);
        src/game/sa2/stage/mp_attack_2_effect.o(.text);

        src/game/game.o(.text);
        src/game/dummy_task.o(.text);
    
        src/game/shared/stage/stage.o(.text);
        src/game/shared/stage/camera.o(.text);
        src/game/shared/stage/terrain_collision.o(.text);
        src/game/shared/stage/mp_sprite_task.o(.text);
        src/game/shared/stage/dust_effect_braking.o(.text);
        src/game/shared/stage/dust_effect_spindash.o(.text);
        src/game/shared/stage/grind_effect_1.o(.text);
        src/game/shared/stage/rings_scatter.o(.text);
        src/game/shared/stage/player.o(.text);
        src/game/shared/stage/item_tasks.o(.text);
        src/game/shared/stage/underwater_effects.o(.text);
        src/game/shared/stage/screen_shake.o(.text);
        src/game/sa2/stage/player_controls.o(.text);
        src/game/sa2/stage/player_super_sonic.o(.text);
        src/game/sa2/stage/stage_ui.o(.text);
        src/game/sa2/stage/debug_text_printer.o(.text);
        src/game/sa2/stage/screen_fade.o(.text);
        src/game/sa2/stage/trapped_animals.o(.text);
        src/game/sa2/stage/screen_mask.o(.text);
        src/game/sa2/stage/boss_results_transition.o(.text);

        src/game/sa2/ui/stage_intro.o(.text);
        src/game/sa2/ui/stage_results.o(.text);
        src/game/sa2/ui/character_select.o(.text);
        src/game/sa2/ui/course_select.o(.text);
        src/game/sa2/ui/countdown.o(.text);
        src/game/sa2/ui/game_over.o(.text);

        src/game/sa2/stage/bosses/final_intro.o(.text);
        src/game/sa2/stage/bosses/explosion_parts.o(.text);
        src/game/sa2/stage/bosses/common.o(.text);
        src/game/sa2/stage/bosses/eggmobile_escape_sequence.o(.text);
        src/game/sa2/stage/bosses/boss_1.o(.text);
        src/game/sa2/stage/bosses/boss_2.o(.text);
        src/game/sa2/stage/bosses/boss_3.o(.text);
        src/game/sa2/stage/bosses/boss_4.o(.text);
        src/game/sa2/stage/bosses/boss_5.o(.text);
        src/game/sa2/stage/bosses/boss_6.o(.text);
        src/game/sa2/stage/bosses/boss_7.o(.text);
        src/game/sa2/stage/bosses/boss_8.o(.text);
        src/game/sa2/stage/bosses/boss_9.o(.text);

        src/game/sa2/stage/enemies/projectiles.o(.text);
        src/game/sa2/stage/enemies/mon.o(.text);
        src/game/sa2/stage/enemies/gohla.o(.text);
        src/game/sa2/stage/enemies/kura_kura.o(.text);
        src/game/sa2/stage/enemies/kubinaga.o(.text);
        src/game/sa2/stage/enemies/buzzer.o(.text);
        src/game/sa2/stage/enemies/kiki.o(.text);
        src/game/sa2/stage/enemies/koura.o(.text);
        src/game/sa2/stage/enemies/bell.o(.text);
        src/game/sa2/stage/enemies/yado.o(.text);
        src/game/sa2/stage/enemies/piko_piko.o(.text);
        src/game/sa2/stage/enemies/circus.o(.text);
        src/game/sa2/stage/enemies/madillo.o(.text);
        src/game/sa2/stage/enemies/straw.o(.text);
        src/game/sa2/stage/enemies/hammerhead.o(.text);
        src/game/sa2/stage/enemies/spinner.o(.text);
        src/game/sa2/stage/enemies/mouse.o(.text);
        src/game/sa2/stage/enemies/pen.o(.text);
        src/game/sa2/stage/enemies/geji_geji.o(.text);
        src/game/sa2/stage/enemies/balloon.o(.text);
        src/game/sa2/stage/enemies/flickey.o(.text);
        src/game/sa2/stage/enemies/kyura.o(.text);
        src/game/sa2/stage/enemies/bullet_buzzer.o(.text);
        src/game/sa2/stage/enemies/star.o(.text);

        /* multiplayer_screens */
        src/game/sa2/multiplayer/mode_select.o(.text);
        src/game/sa2/multiplayer/multipak_connection.o(.text);
        src/game/shared/multiplayer/communication_outcome.o(.text);
        src/game/sa2/multiplayer/results.o(.text);
        src/game/sa2/multiplayer/team_play.o(.text);

        src/game/sa2/stage/interactables/leaf_forest/decoration.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/booster.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/incline_ramp.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/spring_bouncy.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/platform_crumbling.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/toggle_player_layer.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/rotating_handle.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/gapped_loop.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/spikes.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/corkscrew.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/bouncy_bar.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/corkscrew_3d.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/stage_goal.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/checkpoint.o(.text);
        src/game/sa2/stage/interactables/leaf_forest/windmill.o(.text);

        src/game/sa2/options_screen.o(.text);

        src/game/sa2/special_stage/main.o(.text);
        src/game/sa2/special_stage/utils.o(.text);
        src/game/sa2/special_stage/player.o(.text);
        src/game/sa2/special_stage/collectables.o(.text);
        src/game/sa2/special_stage/world.o(.text);
        src/game/sa2/special_stage/physics.o(.text);
        src/game/sa2/special_stage/ui.o(.text);
        src/game/sa2/special_stage/guard_robo.o(.text);

        src/game/sa2/save.o(.text);

        src/game/sa2/stage/interactables/hot_crater/windup_stick.o(.text);
        src/game/sa2/stage/interactables/hot_crater/hook_rail.o(.text);
        src/game/sa2/stage/interactables/hot_crater/turnaround_bar.o(.text);
        src/game/sa2/stage/interactables/hot_crater/crane.o(.text);
        src/game/sa2/stage/interactables/hot_crater/dash_ring.o(.text);
        src/game/sa2/stage/interactables/hot_crater/floating_spring.o(.text);
        src/game/sa2/stage/interactables/music_plant/note_sphere.o(.text);
        src/game/sa2/stage/interactables/music_plant/note_block.o(.text);
        src/game/sa2/stage/interactables/music_plant/chord.o(.text);
        src/game/sa2/stage/interactables/music_plant/keyboard.o(.text);
        src/game/sa2/stage/interactables/music_plant/german_flute.o(.text);
        src/game/sa2/stage/interactables/music_plant/pipe_sequence.o(.text);
        src/game/sa2/stage/interactables/music_plant/pipe_horn.o(.text);
        src/game/sa2/stage/interactables/music_plant/french_horn.o(.text);
        src/game/sa2/stage/interactables/ice_paradise/slowing_snow.o(.text);
        src/game/sa2/stage/interactables/ice_paradise/funnel_sphere.o(.text);
        src/game/sa2/stage/interactables/ice_paradise/half_pipe.o(.text);
        src/game/sa2/stage/interactables/ice_paradise/big_snowball.o(.text);
        src/game/sa2/stage/interactables/techno_base/bounce_block.o(.text);
        src/game/sa2/stage/interactables/techno_base/light_bridge.o(.text);
        src/game/sa2/stage/interactables/techno_base/arrow_platform.o(.text);
        src/game/sa2/stage/interactables/techno_base/spike_platform.o(.text);
        src/game/sa2/stage/interactables/techno_base/light_globe.o(.text);
        src/game/sa2/stage/interactables/sky_canyon/propeller.o(.text);
        src/game/sa2/stage/interactables/sky_canyon/small_windmill.o(.text);
        src/game/sa2/stage/interactables/sky_canyon/propeller_spring.o(.text);
        src/game/sa2/stage/interactables/sky_canyon/whirlwind.o(.text);
        src/game/sa2/stage/interactables/sky_canyon/fan.o(.text);
        src/game/sa2/stage/interactables/egg_utopia/launcher.o(.text);
        src/game/sa2/stage/interactables/egg_utopia/cannon.o(.text);
        src/game/sa2/stage/interactables/egg_utopia/pole.o(.text);
        src/game/sa2/stage/interactables/egg_utopia/iron_ball.o(.text);
        src/game/sa2/stage/interactables/egg_utopia/flying_handle.o(.text);
        src/game/sa2/stage/interactables/egg_utopia/speeding_platform.o(.text);
        src/game/sa2/stage/interactables/egg_utopia/gravity_toggle.o(.text);
        src/game/sa2/stage/interactables/collect_rings_lap_trigger.o(.text);
        src/game/sa2/stage/interactables/sky_canyon_init.o(.text);
        src/game/sa2/stage/interactables/105.o(.text);
        src/game/sa2/stage/interactables/note_particle.o(.text);
        src/game/sa2/stage/interactables/special_ring.o(.text);

        src/game/sa2/collect_rings/singlepak_connection.o(.text);
        src/game/shared/collect_rings/results.o(.text);
        src/game/sa2/collect_rings/time_display.o(.text);

        src/game/math.o(.text);

        src/game/sa2/stage/mystery_itembox.o(.text);
        src/game/sa2/stage/heart_particles_effect.o(.text);
        src/game/sa2/stage/race_progress.o(.text);
        src/game/sa2/stage/mp_attack_1_effect.o(.text);

        src/game/sa2/ui/multiplayer_lobby.o(.text);
        src/game/sa2/ui/time_attack_mode_select.o(.text);
        src/game/sa2/ui/time_attack_lobby.o(.text);
        src/game/sa2/ui/time_attack_results.o(.text);

        src/game/sa2/stage/boost_mode_particles.o(.text);
    
        src/game/sa2/sound_test.o(.text);
        src/game/sa2/title_screen.o(.text);
        src/game/sa2/bg_palette_effects.o(.text);

        src/game/sa2/cutscenes/level_endings.o(.text);
        src/game/sa2/cutscenes/endings.o(.text);
        src/game/sa2/cutscenes/credits.o(.text);
        src/game/sa2/cutscenes/credits_slides.o(.text);
        src/game/sa2/cutscenes/credits_end.o(.text);
        src/game/sa2/cutscenes/extra_ending_fall.o(.text);
        src/game/sa2/cutscenes/extra_ending_slides.o(.text);
        src/game/sa2/cutscenes/final_ending_fall.o(.text);
        src/game/sa2/cutscenes/final_ending_land.o(.text);
        src/game/sa2/cutscenes/missing_emeralds.o(.text);
        
#if (ENABLE_DECOMP_CREDITS == 1)
        src/game/decomp_credits.o(.text);
        src/game/decomp_credits.o(.rodata);
#endif

        /* libs */
        src/lib/m4a/m4a0.o(.text);
        src/lib/m4a/m4a.o(.text);
        src/lib/agb_flash/agb_flash.o(.text);
        src/lib/agb_flash/agb_flash_512k.o(.text);
        src/lib/agb_flash/agb_flash_le_512k.o(.text);
        src/lib/agb_flash/agb_flash_mx_512k.o(.text);
        *libagbsyscall.a:ArcTan2.o(.text);
        *libagbsyscall.a:CpuFastSet.o(.text);
        *libagbsyscall.a:CpuSet.o(.text);
        *libagbsyscall.a:Div.o(.text);
        *libagbsyscall.a:Mod.o(.text);
        *libagbsyscall.a:LZ77UnCompWram.o(.text);
        *libagbsyscall.a:MultiBoot.o(.text);
        *libagbsyscall.a:RLUnCompWram.o(.text);
        *libagbsyscall.a:SoftReset.o(.text);
        *libagbsyscall.a:Sqrt.o(.text);
        *libagbsyscall.a:VBlankIntrWait.o(.text);
        *libagbsyscall.a:SoftResetExram.o(.text);
        *libgcc.a:_ashrdi3.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:_modsi3.o(.text);
        *libgcc.a:_muldi3.o(.text);
        *libgcc.a:_negdi2.o(.text);
        *libgcc.a:_udivsi3.o(.text);
        *libgcc.a:_umodsi3.o(.text);
        *libc.a:memcpy.o(.text);
        *libc.a:memset.o(.text);

        /* Data */
        /* engine Data */
        src/multi_sio.o(.rodata);
        src/sio32_multi_load.o(.rodata);
        src/core.o(.rodata);
        src/background.o(.rodata);
        src/trig.o(.rodata);
        src/sprite.o(.rodata);
        src/bg_triangles.o(.rodata);
        src/malloc_ewram.o(.rodata);
        src/malloc_vram.o(.rodata);
        src/input_recorder.o(.rodata);
    
        /* game Data */
        src/game/sa2/assets/compressed/entities.o(.rodata);
        src/game/sa2/assets/compressed/roms.o(.rodata);
        
        src/game/shared/stage/rings_manager.o(.rodata);
        src/game/shared/stage/entities_manager.o(.rodata);
        src/game/shared/menus/unused_level_select.o(.rodata);
        src/game/shared/stage/unused_flash_task.o(.rodata);
        src/game/shared/stage/pause_menu.o(.rodata);
        src/game/sa2/stage/itembox.o(.rodata);
        src/game/shared/stage/music_manager.o(.rodata);
        src/game/sa2/stage/input_buffer.o(.rodata);
        src/game/sa2/stage/interactables/spring.o(.rodata);
        src/game/sa2/stage/interactables/platform.o(.rodata);
        src/game/sa2/stage/interactables/platform_square.o(.rodata);
        src/game/sa2/stage/interactables/ramp.o(.rodata);
        src/game/sa2/stage/interactables/grind_rail.o(.rodata);
        src/game/sa2/stage/interactables/ceiling_slope.o(.rodata);
        src/game/sa2/stage/interactables/pipe.o(.rodata);
        src/game/sa2/stage/interactables/platform_thin.o(.rodata);
        src/game/sa2/stage/interactables/slidy_ice.o(.rodata);

        src/game/shared/stage/water_effects.o(.rodata);
        src/game/sa2/stage/player_callbacks.o(.rodata);
        src/game/sa2/stage/cheese.o(.rodata);
        src/game/sa2/stage/boost_effect.o(.rodata);
        src/game/shared/stage/amy_attack_heart_effect.o(.rodata);
        src/game/shared/stage/mp_event_mgr.o(.rodata);
        src/game/shared/stage/mp_finish.o(.rodata);

        src/game/shared/stage/stage.o(.rodata);
        src/game/shared/stage/camera.o(.rodata);
        src/game/sa2/stage/tilemap_table.o(.rodata);
        src/game/shared/stage/terrain_collision.o(.rodata);
        src/game/shared/stage/mp_sprite_task.o(.rodata);
        src/game/sa2/stage/spawn_positions.o(.rodata);
        src/game/shared/stage/rings_scatter.o(.rodata);
        src/game/shared/stage/player.o(.rodata);
        src/game/sa2/stage/player_super_sonic.o(.rodata);
        src/game/sa2/stage/stage_ui.o(.rodata);
        src/game/sa2/stage/trapped_animals.o(.rodata);
        src/game/sa2/stage/boss_results_transition.o(.rodata);

        src/game/sa2/ui/stage_intro.o(.rodata);
        src/game/sa2/ui/stage_results.o(.rodata);
        src/game/sa2/ui/character_select.o(.rodata);
        src/game/sa2/ui/course_select.o(.rodata);
        src/game/sa2/ui/countdown.o(.rodata);

        src/game/sa2/stage/bosses/final_intro.o(.rodata);
        src/game/sa2/stage/bosses/common.o(.rodata);
        src/game/sa2/stage/bosses/boss_1.o(.rodata);
        src/game/sa2/stage/bosses/boss_2.o(.rodata);
        src/game/sa2/stage/bosses/boss_3.o(.rodata);
        src/game/sa2/stage/bosses/boss_4.o(.rodata);
        src/game/sa2/stage/bosses/boss_5.o(.rodata);
        src/game/sa2/stage/bosses/boss_6.o(.rodata);
        src/game/sa2/stage/bosses/boss_7.o(.rodata);
        src/game/sa2/stage/bosses/boss_8.o(.rodata);
        src/game/sa2/stage/bosses/boss_9.o(.rodata);
        src/game/sa2/stage/enemies/kubinaga.o(.rodata);
        src/game/sa2/stage/enemies/koura.o(.rodata);
        src/game/sa2/stage/enemies/geji_geji.o(.rodata);
        src/game/sa2/multiplayer/mode_select.o(.rodata);
        src/game/sa2/multiplayer/multipak_connection.o(.rodata);
        src/game/shared/multiplayer/communication_outcome.o(.rodata);
        src/game/sa2/multiplayer/results.o(.rodata);
        src/game/sa2/multiplayer/team_play.o(.rodata);
        src/game/sa2/stage/interactables/leaf_forest/decoration.o(.rodata);
        src/game/sa2/stage/interactables/leaf_forest/booster.o(.rodata);
        src/game/sa2/stage/interactables/leaf_forest/spring_bouncy.o(.rodata);
        src/game/sa2/stage/interactables/leaf_forest/platform_crumbling.o(.rodata);
        src/game/sa2/stage/interactables/leaf_forest/spikes.o(.rodata);
        src/game/sa2/stage/interactables/leaf_forest/bouncy_bar.o(.rodata);
        src/game/sa2/stage/interactables/leaf_forest/checkpoint.o(.rodata);
        src/game/sa2/stage/interactables/leaf_forest/windmill.o(.rodata);
        src/game/sa2/options_screen.o(.rodata);
        src/game/sa2/special_stage/data.o(.rodata);
        src/game/sa2/special_stage/player.o(.rodata);
        src/game/sa2/special_stage/collectables.o(.rodata);
        src/game/sa2/special_stage/world.o(.rodata);
        src/game/sa2/special_stage/physics.o(.rodata);
        src/game/sa2/special_stage/ui.o(.rodata);
        src/game/sa2/special_stage/guard_robo.o(.rodata);
        src/game/sa2/special_stage/tables.o(.rodata);
        src/game/sa2/stage/interactables/hot_crater/dash_ring.o(.rodata);
        src/game/sa2/stage/interactables/music_plant/note_sphere.o(.rodata);
        src/game/sa2/stage/interactables/music_plant/note_block.o(.rodata);
        src/game/sa2/stage/interactables/music_plant/keyboard.o(.rodata);
        src/game/sa2/stage/interactables/music_plant/german_flute.o(.rodata);
        src/game/sa2/stage/interactables/music_plant/pipe_sequence.o(.rodata);
        src/game/sa2/stage/interactables/music_plant/pipe_horn.o(.rodata);
        src/game/sa2/stage/interactables/music_plant/french_horn.o(.rodata);
        src/game/sa2/stage/interactables/techno_base/bounce_block.o(.rodata);
        src/game/sa2/stage/interactables/techno_base/light_bridge.o(.rodata);
        src/game/sa2/stage/interactables/techno_base/spike_platform.o(.rodata);
        src/game/sa2/stage/interactables/sky_canyon/whirlwind.o(.rodata);
        src/game/sa2/stage/interactables/note_particle.o(.rodata);
        src/game/sa2/collect_rings/singlepak_connection.o(.rodata);
        src/game/sa2/collect_rings/time_display.o(.rodata);
        src/game/math.o(.rodata);
        src/game/sa2/stage/mystery_itembox.o(.rodata);
        src/game/sa2/stage/race_progress.o(.rodata);
        src/game/sa2/stage/mp_attack_1_effect.o(.rodata);
        src/game/sa2/ui/multiplayer_lobby.o(.rodata);
        src/game/sa2/ui/time_attack_mode_select.o(.rodata);
        src/game/sa2/ui/time_attack_lobby.o(.rodata);
        src/game/sa2/ui/time_attack_results.o(.rodata);
        src/game/sa2/sound_test.o(.rodata);
        src/game/sa2/title_screen.o(.rodata);
        src/game/sa2/cutscenes/level_endings.o(.rodata);
        src/game/sa2/cutscenes/credits.o(.rodata);
        src/game/sa2/cutscenes/credits_slides.o(.rodata);
        src/game/sa2/cutscenes/credits_end.o(.rodata);
        src/game/sa2/cutscenes/extra_ending_fall.o(.rodata);
        src/game/sa2/cutscenes/final_ending_fall.o(.rodata);
        src/game/sa2/cutscenes/final_ending_land.o(.rodata);
        src/game/sa2/cutscenes/missing_emeralds.o(.rodata);

        src/data/sa2/tilemap_data_old_logos.o(.rodata);

        src/data/sa2/sprite_tables.o(.rodata);
        src/data/sa2/animations/animations.o(.rodata);
        src/data/sa2/animations/animation_table.o(.rodata);
        src/data/sa2/sprite_dimensions.o(.rodata);
        src/data/sa2/sprite_oam_data.o(.rodata);
        src/data/sa2/sprite_palettes.o(.rodata);
        data/sa2/sprite_animation_data.o(.rodata);

        src/data/sa2/tileset_debug_ascii.o(.rodata);
        src/data/sa2/tilemap_data.o(.rodata);

        src/lib/m4a/m4a_tables.o(.rodata);
        data/sa2/sound_data.o(.rodata);

        /* Songs */
        sound/sa2/songs/midi/mus_intro.o(.rodata);
        sound/sa2/songs/midi/mus_title_fanfare.o(.rodata);
        sound/sa2/songs/midi/mus_character_selection.o(.rodata);
        sound/sa2/songs/midi/mus_ta_course_selection.o(.rodata);
        sound/sa2/songs/midi/mus_course_selection_2.o(.rodata);
        sound/sa2/songs/midi/mus_course_selection_3.o(.rodata);
        sound/sa2/songs/midi/mus_time_attack_menu.o(.rodata);
        sound/sa2/songs/midi/mus_options.o(.rodata);
        sound/sa2/songs/midi/mus_leaf_forest__act_1.o(.rodata);
        sound/sa2/songs/midi/mus_leaf_forest__act_2.o(.rodata);
        sound/sa2/songs/midi/mus_hot_crater__act_1.o(.rodata);
        sound/sa2/songs/midi/mus_hot_crater__act_2.o(.rodata);
        sound/sa2/songs/midi/mus_music_plant__act_1.o(.rodata);
        sound/sa2/songs/midi/mus_music_plant__act_2.o(.rodata);
        sound/sa2/songs/midi/mus_ice_paradise__act_1.o(.rodata);
        sound/sa2/songs/midi/mus_ice_paradise__act_2.o(.rodata);
        sound/sa2/songs/midi/mus_sky_canyon__act_1.o(.rodata);
        sound/sa2/songs/midi/mus_sky_canyon__act_2.o(.rodata);
        sound/sa2/songs/midi/mus_techno_base__act_1.o(.rodata);
        sound/sa2/songs/midi/mus_techno_base__act_2.o(.rodata);
        sound/sa2/songs/midi/mus_egg_utopia__act_1.o(.rodata);
        sound/sa2/songs/midi/mus_egg_utopia__act_2.o(.rodata);
        sound/sa2/songs/midi/mus_xx__final_zone.o(.rodata);
        sound/sa2/songs/midi/mus_true_area_53.o(.rodata);
        sound/sa2/songs/midi/mus_invincibility.o(.rodata);
        sound/sa2/songs/midi/mus_drowning.o(.rodata);
        sound/sa2/songs/midi/mus_boss.o(.rodata);
        sound/sa2/songs/midi/mus_boss_pinch.o(.rodata);
        sound/sa2/songs/midi/mus_boss_knuckles.o(.rodata);
        sound/sa2/songs/midi/mus_7_boss.o(.rodata);
        sound/sa2/songs/midi/mus_7_boss_pinch.o(.rodata);
        sound/sa2/songs/midi/mus_final_boss.o(.rodata);
        sound/sa2/songs/midi/mus_final_boss_pinch.o(.rodata);
        sound/sa2/songs/midi/mus_game_over.o(.rodata);
        sound/sa2/songs/midi/mus_final_ending.o(.rodata);
        sound/sa2/songs/midi/mus_extra_ending.o(.rodata);
        sound/sa2/songs/midi/mus_staff_credits.o(.rodata);
        sound/sa2/songs/midi/mus_demo_1.o(.rodata);
        sound/sa2/songs/midi/mus_demo_2.o(.rodata);
        sound/sa2/songs/midi/mus_extra_demo_1.o(.rodata);
        sound/sa2/songs/midi/mus_extra_demo_2.o(.rodata);
        sound/sa2/songs/midi/mus_special_stage_intro.o(.rodata);
        sound/sa2/songs/midi/mus_special_stage.o(.rodata);
        sound/sa2/songs/midi/mus_special_stage_pinch.o(.rodata);
        sound/sa2/songs/midi/mus_achievement.o(.rodata);
        sound/sa2/songs/midi/mus_special_stage_clear.o(.rodata);
        sound/sa2/songs/midi/mus_special_stage_result.o(.rodata);
        sound/sa2/songs/midi/mus_chaos_emerald.o(.rodata);
        sound/sa2/songs/midi/mus_special_stage_result_lose.o(.rodata);
        sound/sa2/songs/midi/mus_vs_2.o(.rodata);
        sound/sa2/songs/midi/mus_vs_3.o(.rodata);
        sound/sa2/songs/midi/mus_connection_pending.o(.rodata);
        sound/sa2/songs/midi/mus_vs_lobby.o(.rodata);
        sound/sa2/songs/midi/mus_vs_select_pak_mode.o(.rodata);
        sound/sa2/songs/midi/se_ring.o(.rodata);
        sound/sa2/songs/midi/se_shift.o(.rodata);
        sound/sa2/songs/midi/se_success.o(.rodata);
        sound/sa2/songs/midi/se_abort.o(.rodata);
        sound/sa2/songs/midi/se_select.o(.rodata);
        sound/sa2/songs/midi/se_return.o(.rodata);
        sound/sa2/songs/midi/se_menu_cursor_move.o(.rodata);
        sound/sa2/songs/midi/se_spin_attack.o(.rodata);
        sound/sa2/songs/midi/se_spin_dash_release.o(.rodata);
        sound/sa2/songs/midi/se_sonic_skid_attack.o(.rodata);
        sound/sa2/songs/midi/se_sonic_midair_somersault.o(.rodata);
        sound/sa2/songs/midi/se_sonic_insta_shield.o(.rodata);
        sound/sa2/songs/midi/se_grinding.o(.rodata);
        sound/sa2/songs/midi/se_brake.o(.rodata);
        sound/sa2/songs/midi/se_jump.o(.rodata);
        sound/sa2/songs/midi/se_ring_copy.o(.rodata);
        sound/sa2/songs/midi/se_rings_lost.o(.rodata);
        sound/sa2/songs/midi/se_life_lost.o(.rodata);
        sound/sa2/songs/midi/se_tails_propeller_flying.o(.rodata);
        sound/sa2/songs/midi/se_tails_tail_swipe.o(.rodata);
        sound/sa2/songs/midi/se_125.o(.rodata);
        sound/sa2/songs/midi/se_126.o(.rodata);
        sound/sa2/songs/midi/se_127.o(.rodata);
        sound/sa2/songs/midi/se_amy_ground_hammer.o(.rodata);
        sound/sa2/songs/midi/se_amy_super_hammer_attack.o(.rodata);
        sound/sa2/songs/midi/se_amy_hammer_swirl.o(.rodata);
        sound/sa2/songs/midi/se_sa1_goal_post.o(.rodata);
        sound/sa2/songs/midi/se_itembox.o(.rodata);
        sound/sa2/songs/midi/se_timer.o(.rodata);
        sound/sa2/songs/midi/se_stage_result_counter.o(.rodata);
        sound/sa2/songs/midi/se_stage_result_counter_done.o(.rodata);
        sound/sa2/songs/midi/se_pause_screen.o(.rodata);
        sound/sa2/songs/midi/se_143.o(.rodata);
        sound/sa2/songs/midi/se_144.o(.rodata);
        sound/sa2/songs/midi/se_145.o(.rodata);
        sound/sa2/songs/midi/se_146.o(.rodata);
        sound/sa2/songs/midi/se_spin.o(.rodata);
        sound/sa2/songs/midi/se_148.o(.rodata);
        sound/sa2/songs/midi/se_time_up.o(.rodata);
        sound/sa2/songs/midi/se_itembox_2.o(.rodata);
        sound/sa2/songs/midi/se_151.o(.rodata);
        sound/sa2/songs/midi/se_checkpoint.o(.rodata);
        sound/sa2/songs/midi/se_spring.o(.rodata);
        sound/sa2/songs/midi/se_spikes.o(.rodata);
        sound/sa2/songs/midi/se_speed_booster.o(.rodata);
        sound/sa2/songs/midi/se_156.o(.rodata);
        sound/sa2/songs/midi/se_157.o(.rodata);
        sound/sa2/songs/midi/se_air_bubble.o(.rodata);
        sound/sa2/songs/midi/se_alarm_1.o(.rodata);
        sound/sa2/songs/midi/se_alarm_2.o(.rodata);
        sound/sa2/songs/midi/se_alarm_3.o(.rodata);
        sound/sa2/songs/midi/se_alarm_4.o(.rodata);
        sound/sa2/songs/midi/se_alarm_5.o(.rodata);
        sound/sa2/songs/midi/se_alarm_6.o(.rodata);
        sound/sa2/songs/midi/se_alarm_7.o(.rodata);
        sound/sa2/songs/midi/se_alarm_8.o(.rodata);
        sound/sa2/songs/midi/se_alarm_9.o(.rodata);
        sound/sa2/songs/midi/se_alarm_10.o(.rodata);
        sound/sa2/songs/midi/se_springy_pole.o(.rodata);
        sound/sa2/songs/midi/se_springy_spring.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__sonic_advance_2.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__sonic.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__tails.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__knuckles.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__amy.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__cream.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__3.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__2.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__1.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__go.o(.rodata);
        sound/sa2/songs/midi/voice__announcer__congratulations.o(.rodata);
        sound/sa2/songs/midi/se_map_move.o(.rodata);
        sound/sa2/songs/midi/se_map_214.o(.rodata);
        sound/sa2/songs/midi/se_map_move_end.o(.rodata);
        sound/sa2/songs/midi/se_216.o(.rodata);
        sound/sa2/songs/midi/se_217.o(.rodata);
        sound/sa2/songs/midi/se_218.o(.rodata);
        sound/sa2/songs/midi/se_219.o(.rodata);
        sound/sa2/songs/midi/se_delete_game_data.o(.rodata);
        sound/sa2/songs/midi/se_221.o(.rodata);
        sound/sa2/songs/midi/se_222.o(.rodata);
        sound/sa2/songs/midi/se_223.o(.rodata);
        sound/sa2/songs/midi/se_224.o(.rodata);
        sound/sa2/songs/midi/se_225.o(.rodata);
        sound/sa2/songs/midi/se_226.o(.rodata);
        sound/sa2/songs/midi/se_cream_flying.o(.rodata);
        sound/sa2/songs/midi/se_228.o(.rodata);
        sound/sa2/songs/midi/se_cream_cheese_attack.o(.rodata);
        sound/sa2/songs/midi/se_230.o(.rodata);
        sound/sa2/songs/midi/se_231.o(.rodata);
        sound/sa2/songs/midi/se_long_brake.o(.rodata);
        sound/sa2/songs/midi/se_234.o(.rodata);
        sound/sa2/songs/midi/se_235.o(.rodata);
        sound/sa2/songs/midi/se_236.o(.rodata);
        sound/sa2/songs/midi/se_237.o(.rodata);
        sound/sa2/songs/midi/se_238.o(.rodata);
        sound/sa2/songs/midi/se_239.o(.rodata);
        sound/sa2/songs/midi/se_241.o(.rodata);
        sound/sa2/songs/midi/se_242.o(.rodata);
        sound/sa2/songs/midi/se_243.o(.rodata);
        sound/sa2/songs/midi/se_244.o(.rodata);
        sound/sa2/songs/midi/se_245.o(.rodata);
        sound/sa2/songs/midi/se_246.o(.rodata);
        sound/sa2/songs/midi/se_248.o(.rodata);
        sound/sa2/songs/midi/se_249.o(.rodata);
        sound/sa2/songs/midi/se_250.o(.rodata);
        sound/sa2/songs/midi/se_251.o(.rodata);
        sound/sa2/songs/midi/se_252.o(.rodata);
        sound/sa2/songs/midi/se_253.o(.rodata);
        sound/sa2/songs/midi/se_254.o(.rodata);
        sound/sa2/songs/midi/se_255.o(.rodata);
        sound/sa2/songs/midi/se_256.o(.rodata);
        sound/sa2/songs/midi/se_257.o(.rodata);
        sound/sa2/songs/midi/se_258.o(.rodata);
        sound/sa2/songs/midi/se_259.o(.rodata);
        sound/sa2/songs/midi/se_260.o(.rodata);
        sound/sa2/songs/midi/se_261.o(.rodata);
        sound/sa2/songs/midi/se_262.o(.rodata);
        sound/sa2/songs/midi/se_263.o(.rodata);
        sound/sa2/songs/midi/se_264.o(.rodata);
        sound/sa2/songs/midi/se_265.o(.rodata);
        sound/sa2/songs/midi/se_266.o(.rodata);
        sound/sa2/songs/midi/se_267.o(.rodata);
        sound/sa2/songs/midi/se_268.o(.rodata);
        sound/sa2/songs/midi/se_269.o(.rodata);
        sound/sa2/songs/midi/se_suction.o(.rodata);
        sound/sa2/songs/midi/se_271.o(.rodata);
        sound/sa2/songs/midi/se_272.o(.rodata);
        sound/sa2/songs/midi/se_273.o(.rodata);
        sound/sa2/songs/midi/se_274.o(.rodata);
        sound/sa2/songs/midi/se_275.o(.rodata);
        sound/sa2/songs/midi/se_276.o(.rodata);
        sound/sa2/songs/midi/se_277.o(.rodata);
        sound/sa2/songs/midi/se_278.o(.rodata);
        sound/sa2/songs/midi/se_279.o(.rodata);
        sound/sa2/songs/midi/se_280.o(.rodata);
        sound/sa2/songs/midi/se_281.o(.rodata);
        sound/sa2/songs/midi/se_282.o(.rodata);
        sound/sa2/songs/midi/se_283.o(.rodata);
        sound/sa2/songs/midi/se_284.o(.rodata);
        sound/sa2/songs/midi/se_285.o(.rodata);
        sound/sa2/songs/midi/se_286.o(.rodata);
        sound/sa2/songs/midi/se_287.o(.rodata);
        sound/sa2/songs/midi/se_288.o(.rodata);
        sound/sa2/songs/midi/se_289.o(.rodata);
        sound/sa2/songs/midi/se_290.o(.rodata);
        sound/sa2/songs/se_291.o(.rodata);
        sound/sa2/songs/midi/se_ice_paradise_slide.o(.rodata);
        sound/sa2/songs/midi/se_293.o(.rodata);
        sound/sa2/songs/midi/se_techno_base_note_block.o(.rodata);
        sound/sa2/songs/midi/se_295.o(.rodata);
        sound/sa2/songs/midi/se_296.o(.rodata);
        sound/sa2/songs/midi/se_297.o(.rodata);
        sound/sa2/songs/midi/se_special_ring.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_spring_1.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_spring_2.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_spring_3.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_spring_4.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_crash_hit.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_notes_1.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_notes_2.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_notes_3.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_notes_4.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_notes_5.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_notes_6.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_notes_7.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_notes_8.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_glockenspiel_1.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_glockenspiel_2.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_glockenspiel_3.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_glockenspiel_4.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_glockenspiel_5.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_glockenspiel_6.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_enter_horn.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_exit_horn.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_enter_horn2.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_exit_horn2.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_horn3.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_chord.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_piano.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_flute_1.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_flute_2.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_flute_3.o(.rodata);
        sound/sa2/songs/midi/se_music_plant_flute_4.o(.rodata);
        sound/sa2/songs/midi/se_331.o(.rodata);
        sound/sa2/songs/midi/se_332.o(.rodata);
        sound/sa2/songs/midi/se_333.o(.rodata);
        sound/sa2/songs/midi/mus_act_clear.o(.rodata);
        sound/sa2/songs/midi/mus_boss_clear.o(.rodata);
        sound/sa2/songs/midi/mus_final_clear.o(.rodata);
        sound/sa2/songs/midi/mus_extra_clear.o(.rodata);
        sound/sa2/songs/midi/mus_time_attack_2.o(.rodata);
        sound/sa2/songs/midi/mus_time_attack_3.o(.rodata);
        sound/sa2/songs/midi/mus_1_up.o(.rodata);
        sound/sa2/songs/midi/mus_message_2.o(.rodata);
        sound/sa2/songs/midi/mus_got_all_chaos_emeralds.o(.rodata);
        sound/sa2/songs/midi/mus_fanfare.o(.rodata);
        sound/sa2/songs/midi/mus_vs_exit.o(.rodata);
        sound/sa2/songs/midi/mus_vs_success.o(.rodata);
        sound/sa2/songs/midi/mus_vs_miss.o(.rodata);
        sound/sa2/songs/midi/mus_message.o(.rodata);
        sound/sa2/songs/midi/mus_504.o(.rodata);
        sound/sa2/songs/midi/mus_505.o(.rodata);
        sound/sa2/songs/midi/mus_506.o(.rodata);

        /* Lib data */
        src/lib/agb_flash/agb_flash.o(.rodata);
        src/lib/agb_flash/agb_flash_512k.o(.rodata);
        src/lib/agb_flash/agb_flash_le_512k.o(.rodata);
        src/lib/agb_flash/agb_flash_mx_512k.o(.rodata);
        *libgcc.a:_divdi3.o(.rodata);

        /* Asset data */
        /* It's possible that all of these were actually
           set in a single asm file, since the order doesnt
           make any logical sense */
        src/data/sa2/input_combos.o(.rodata);
        data/sa2/special_stage_levels.o(.rodata);
        src/data/sa2/handlers_ia_pipe_horn_sequences.o(.rodata);
        src/data/sa2/palettes.o(.rodata);
        src/data/sa2/recordings.o(.rodata);
        data/sa2/multiboot_collect_rings.o(.rodata);
        data/sa2/multiboot_subgame_loader.o(.rodata);
        data/sa2/build_info.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/ :
    {
        *(*);
    }
}
