summaryrefslogtreecommitdiff
path: root/ld_script.txt
blob: 9ba5755c9ad4395955b68a88b323cf8c8271c815 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
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);
        asm/battle_2.o(.text);
        src/battle_3.o(.text);
        src/battle_4.o(.text);
        asm/battle_4.o(.text);
        asm/battle_5.o(.text);
        asm/battle_controller_player.o(.text);
        asm/battle_7.o(.text);
        asm/battle_controller_opponent.o(.text);
        asm/battle_9.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_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);
        asm/egg_hatch.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);
        asm/metatile_behavior.o(.text);
        asm/field_camera.o(.text);
        asm/field_door.o(.text);
        asm/field_player_avatar.o(.text);
        asm/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);
        asm/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);
        asm/tileset.o(.text);
        src/palette.o(.text);
        src/sound.o(.text);
        asm/battle_anim.o(.text);
        asm/rom_80A5C6C.o(.text);
        src/task.o(.text);
        asm/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/fldeff_emotion.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/money.o(.text);
        asm/contest_effect.o(.text);
        asm/record_mixing.o(.text);
        asm/secret_base.o(.text);
        asm/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);
        asm/truck_scene.o(.text);
        asm/porthole.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.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);
        asm/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/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);
        asm/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);
        asm/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);
        asm/diploma.o(.text);
        asm/berry_tag_screen.o(.text);
        asm/mystery_event_menu.o(.text);
        asm/save_failed_screen.o(.text);
        asm/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);
        asm/battle_dome_cards.o(.text);
        asm/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);
        asm/save_location.o(.text);
        asm/item_icon.o(.text);
        asm/party_menu.o(.text);
        asm/battle_tent.o(.text);
        asm/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);
        asm/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);
        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/data2b.o(.rodata);
        src/battle_4.o(.rodata);
        data/battle_4.o(.rodata);
        data/battle_controller_player.o(.rodata);
        data/data2b_2.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/data3.o(.rodata);
        src/berry.o(.rodata);
        data/data3_a1.o(.rodata);
        src/pokemon_size_record.o(.rodata)
        data/data3b.o(.rodata);
        src/battle_ai.o(.rodata);
        data/data4.o(.rodata);
        data/battle_controller_link_partner.o(.rodata);
        data/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/rom_8158B30.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);
        data/diploma.o(.rodata);
        data/strings.o(.rodata);
        data/berry_tag_screen.o(.rodata);
        data/mystery_event_menu.o(.rodata);
        data/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);
        data/data_emerald.o(.rodata);
        data/battle_controller_player_partner.o(.rodata);
        data/data_emerald2.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/ :
    {
        *(*);
    }
}