mirror of https://github.com/zeldaret/tmc.git
Use ifdefs in linker file
This commit is contained in:
parent
6f54607fbf
commit
cc4c42c54e
3
Makefile
3
Makefile
|
@ -12,8 +12,6 @@ GAME_LANGUAGE := ENGLISH
|
|||
TITLE := GBAZELDA MC
|
||||
MAKER_CODE := 01
|
||||
|
||||
LINKER_FILE = linker.ld
|
||||
|
||||
ifeq ($(GAME_VERSION), USA)
|
||||
GAME_CODE := BZME
|
||||
BUILD_NAME := tmc
|
||||
|
@ -30,7 +28,6 @@ else
|
|||
ifeq ($(GAME_VERSION), EU)
|
||||
GAME_CODE := BZMP
|
||||
BUILD_NAME := tmc_eu
|
||||
LINKER_FILE := linker_EU.ld
|
||||
else
|
||||
$(error unknown version $(GAME_VERSION))
|
||||
endif
|
||||
|
|
|
@ -591,11 +591,7 @@ sub_0808C650: @ 0x0808C650
|
|||
movs r0, #0
|
||||
b _0808C674
|
||||
.align 2, 0
|
||||
.ifdef DEMO
|
||||
_0808C66C: .4byte gUnk_02036BB0
|
||||
.else
|
||||
_0808C66C: .4byte gUnk_02036BB8
|
||||
.endif
|
||||
_0808C670:
|
||||
ldr r1, _0808C678 @ =gUnk_02036BB8
|
||||
movs r0, #1
|
||||
|
@ -603,11 +599,7 @@ _0808C674:
|
|||
str r0, [r1]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.ifdef DEMO
|
||||
_0808C678: .4byte gUnk_02036BB0
|
||||
.else
|
||||
_0808C678: .4byte gUnk_02036BB8
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0808C67C
|
||||
sub_0808C67C: @ 0x0808C67C
|
||||
|
@ -615,11 +607,7 @@ sub_0808C67C: @ 0x0808C67C
|
|||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
.ifdef DEMO
|
||||
_0808C684: .4byte gUnk_02036BB0
|
||||
.else
|
||||
_0808C684: .4byte gUnk_02036BB8
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0808C688
|
||||
sub_0808C688: @ 0x0808C688
|
||||
|
@ -630,8 +618,4 @@ sub_0808C688: @ 0x0808C688
|
|||
str r0, [r1]
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.ifdef DEMO
|
||||
_0808C698: .4byte gUnk_02036BB0
|
||||
.else
|
||||
_0808C698: .4byte gUnk_02036BB8
|
||||
.endif
|
||||
|
|
|
@ -140,11 +140,7 @@ sub_080ADA04: @ 0x080ADA04
|
|||
bl _call_via_r2
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.ifdef EU
|
||||
_080ADA10: .4byte gUnk_030065C8
|
||||
.else
|
||||
_080ADA10: .4byte gUnk_0300659C
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080ADA14
|
||||
sub_080ADA14: @ 0x080ADA14
|
||||
|
|
|
@ -590,11 +590,7 @@ _080B20E0:
|
|||
b _080B20E0
|
||||
.align 2, 0
|
||||
_080B20E4: .4byte 0x0000208C
|
||||
.ifdef EU
|
||||
_080B20E8: .4byte gUnk_030069AC
|
||||
.else
|
||||
_080B20E8: .4byte gUnk_030067E4
|
||||
.endif
|
||||
|
||||
arm_func_start sub_080B20EC
|
||||
sub_080B20EC: @ 0x080B20EC
|
||||
|
|
|
@ -223,11 +223,7 @@ _0808C828:
|
|||
bl sub_0801E49C
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
.ifdef DEMO
|
||||
_0808C83C: .4byte gUnk_02036BB0
|
||||
.else
|
||||
_0808C83C: .4byte gUnk_02036BB8
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0808C840
|
||||
sub_0808C840: @ 0x0808C840
|
||||
|
|
22
linker.ld
22
linker.ld
|
@ -151,17 +151,20 @@ SECTIONS {
|
|||
. = 0x000369F0; gUnk_020369F0 = .;
|
||||
. = 0x00036A38; gCurrentWindow = .;
|
||||
. = 0x00036A40; gNewWindow = .;
|
||||
#ifdef DEMO
|
||||
. = 0x00036A50; gUnk_02036A58 = .;
|
||||
. = 0x00036AD0; gUnk_02036AD8 = .;
|
||||
. = 0x00036BB0; gUnk_02036BB8 = .;
|
||||
. = 0x00036BB8; gMPlayTracks = .;
|
||||
. = 0x00038558; gUnk_02038560 = .;
|
||||
#else
|
||||
. = 0x00036A50; gEEPROMConfig = .;
|
||||
. = 0x00036A50; gUnk_02036A50 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/
|
||||
. = 0x00036A58; gUnk_02036A58 = .;
|
||||
. = 0x00036AD0; gUnk_02036AD0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/
|
||||
. = 0x00036AD8; gUnk_02036AD8 = .;
|
||||
. = 0x00036BB0; gUnk_02036BB0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/
|
||||
. = 0x00036BB8; gUnk_02036BB8 = .;
|
||||
. = 0x00036BB8; gMPlayTracksDEMO = .; /* DEMO is 8 bytes earlier due to missing eeprom*/
|
||||
. = 0x00036BC0; gMPlayTracks = .;
|
||||
. = 0x00038558; gUnk_02038558 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/
|
||||
. = 0x00038560; gUnk_02038560 = .;
|
||||
#endif
|
||||
. = 0x00040000;
|
||||
} >ewram
|
||||
|
||||
|
@ -277,12 +280,21 @@ SECTIONS {
|
|||
. = 0x00005FF0; gUnk_03005FF0 = .;
|
||||
. = 0x000060F0; gUnk_030060F0 = .;
|
||||
. = 0x00006164; gUnk_03006164 = .;
|
||||
#ifdef EU
|
||||
. = 0x000065AC; gUnk_03006580 = .;
|
||||
. = 0x000065C8; gUnk_0300659C = .;
|
||||
. = 0x000069AC; gUnk_030067E4 = .;
|
||||
. = 0x00006A94; gUnk_030068CC = .;
|
||||
. = 0x00006B14; gUnk_0300694C = .;
|
||||
. = 0x00006B24; gUnk_0300695C = .;
|
||||
#else
|
||||
. = 0x00006580; gUnk_03006580 = .;
|
||||
. = 0x0000659C; gUnk_0300659C = .;
|
||||
. = 0x000067E4; gUnk_030067E4 = .;
|
||||
. = 0x000068CC; gUnk_030068CC = .;
|
||||
. = 0x0000694C; gUnk_0300694C = .;
|
||||
. = 0x0000695C; gUnk_0300695C = .;
|
||||
#endif
|
||||
. = 0x00007F00; gUnk_03007F00 = .;
|
||||
. = 0x00007FA0; gUnk_03007FA0 = .;
|
||||
. = 0x00007FFA; gUnk_03007FFA = .;
|
||||
|
|
1731
linker_EU.ld
1731
linker_EU.ld
File diff suppressed because it is too large
Load Diff
41
src/audio.c
41
src/audio.c
|
@ -744,11 +744,7 @@ extern const SongHeader sfx21F;
|
|||
extern const SongHeader sfx220;
|
||||
extern const SongHeader sfx221;
|
||||
|
||||
#ifdef DEMO
|
||||
extern MusicPlayerTrack gMPlayTracksDEMO[];
|
||||
#else
|
||||
extern MusicPlayerTrack gMPlayTracks[];
|
||||
#endif
|
||||
|
||||
extern MusicPlayerInfo gMPlayInfos[0x1C];
|
||||
extern u8 gMPlayMemAccArea[0x10];
|
||||
|
@ -789,42 +785,6 @@ typedef enum {
|
|||
MUSIC_PLAYER_BGM,
|
||||
} MusicPlayerE;
|
||||
|
||||
#ifdef DEMO
|
||||
const MusicPlayer gMusicPlayers[] = {
|
||||
[MUSIC_PLAYER_00] = { &gMPlayInfos[0x08], &gMPlayTracksDEMO[0x00], 2, 1 },
|
||||
[MUSIC_PLAYER_PLY_VO] = { &gMPlayInfos[0x12], &gMPlayTracksDEMO[0x02], 1, 1 },
|
||||
[MUSIC_PLAYER_02] = { &gMPlayInfos[0x13], &gMPlayTracksDEMO[0x03], 1, 1 },
|
||||
[MUSIC_PLAYER_03] = { &gMPlayInfos2[0x2], &gMPlayTracksDEMO[0x04], 2, 1 },
|
||||
[MUSIC_PLAYER_04] = { &gMPlayInfos[0x1B], &gMPlayTracksDEMO[0x06], 2, 1 },
|
||||
[MUSIC_PLAYER_05] = { &gMPlayInfos[0x03], &gMPlayTracksDEMO[0x08], 2, 1 },
|
||||
[MUSIC_PLAYER_06] = { &gMPlayInfos[0x07], &gMPlayTracksDEMO[0x0A], 2, 1 },
|
||||
[MUSIC_PLAYER_07] = { &gMPlayInfos[0x11], &gMPlayTracksDEMO[0x0C], 2, 1 },
|
||||
[MUSIC_PLAYER_08] = { &gMPlayInfos2[0x1], &gMPlayTracksDEMO[0x0E], 2, 1 },
|
||||
[MUSIC_PLAYER_09] = { &gMPlayInfos[0x06], &gMPlayTracksDEMO[0x10], 2, 1 },
|
||||
[MUSIC_PLAYER_0A] = { &gMPlayInfos[0x14], &gMPlayTracksDEMO[0x12], 2, 1 },
|
||||
[MUSIC_PLAYER_0B] = { &gMPlayInfos2[0x3], &gMPlayTracksDEMO[0x14], 2, 1 },
|
||||
[MUSIC_PLAYER_0C] = { &gMPlayInfos[0x19], &gMPlayTracksDEMO[0x16], 2, 1 },
|
||||
[MUSIC_PLAYER_0D] = { &gMPlayInfos[0x02], &gMPlayTracksDEMO[0x18], 2, 1 },
|
||||
[MUSIC_PLAYER_0E] = { &gMPlayInfos[0x0E], &gMPlayTracksDEMO[0x1A], 2, 1 },
|
||||
[MUSIC_PLAYER_0F] = { &gMPlayInfos[0x18], &gMPlayTracksDEMO[0x1C], 2, 1 },
|
||||
[MUSIC_PLAYER_10] = { &gMPlayInfos[0x05], &gMPlayTracksDEMO[0x1E], 2, 1 },
|
||||
[MUSIC_PLAYER_11] = { &gMPlayInfos[0x1A], &gMPlayTracksDEMO[0x20], 2, 1 },
|
||||
[MUSIC_PLAYER_12] = { &gMPlayInfos[0x0D], &gMPlayTracksDEMO[0x22], 2, 1 },
|
||||
[MUSIC_PLAYER_13] = { &gMPlayInfos[0x00], &gMPlayTracksDEMO[0x24], 2, 1 },
|
||||
[MUSIC_PLAYER_14] = { &gMPlayInfos[0x0A], &gMPlayTracksDEMO[0x26], 2, 1 },
|
||||
[MUSIC_PLAYER_15] = { &gMPlayInfos[0x0C], &gMPlayTracksDEMO[0x28], 2, 1 },
|
||||
[MUSIC_PLAYER_16] = { &gMPlayInfos[0x17], &gMPlayTracksDEMO[0x2A], 2, 1 },
|
||||
[MUSIC_PLAYER_17] = { &gMPlayInfos[0x01], &gMPlayTracksDEMO[0x2C], 2, 1 },
|
||||
[MUSIC_PLAYER_18] = { &gMPlayInfos[0x0B], &gMPlayTracksDEMO[0x2E], 2, 1 },
|
||||
[MUSIC_PLAYER_19] = { &gMPlayInfos[0x15], &gMPlayTracksDEMO[0x30], 2, 1 },
|
||||
[MUSIC_PLAYER_1A] = { &gMPlayInfos[0x09], &gMPlayTracksDEMO[0x32], 2, 1 },
|
||||
[MUSIC_PLAYER_1B] = { &gMPlayInfos2[0x0], &gMPlayTracksDEMO[0x34], 2, 1 },
|
||||
[MUSIC_PLAYER_1C] = { &gMPlayInfos[0x0F], &gMPlayTracksDEMO[0x36], 2, 1 },
|
||||
[MUSIC_PLAYER_1D] = { &gMPlayInfos[0x16], &gMPlayTracksDEMO[0x38], 2, 1 },
|
||||
[MUSIC_PLAYER_1E] = { &gMPlayInfos[0x04], &gMPlayTracksDEMO[0x3A], 0xc, 0 },
|
||||
[MUSIC_PLAYER_BGM] = { &gMPlayInfos[0x10], &gMPlayTracksDEMO[0x46], 0xc, 0 },
|
||||
};
|
||||
#else
|
||||
const MusicPlayer gMusicPlayers[] = {
|
||||
[MUSIC_PLAYER_00] = { &gMPlayInfos[0x08], &gMPlayTracks[0x00], 2, 1 },
|
||||
[MUSIC_PLAYER_PLY_VO] = { &gMPlayInfos[0x12], &gMPlayTracks[0x02], 1, 1 },
|
||||
|
@ -859,7 +819,6 @@ const MusicPlayer gMusicPlayers[] = {
|
|||
[MUSIC_PLAYER_1E] = { &gMPlayInfos[0x04], &gMPlayTracks[0x3A], 0xc, 0 },
|
||||
[MUSIC_PLAYER_BGM] = { &gMPlayInfos[0x10], &gMPlayTracks[0x46], 0xc, 0 },
|
||||
};
|
||||
#endif
|
||||
|
||||
const Song gSongTable[] = {
|
||||
[SFX_NONE] = { &sfxNone, MUSIC_PLAYER_BGM, MUSIC_PLAYER_BGM },
|
||||
|
|
|
@ -5,13 +5,8 @@
|
|||
|
||||
extern u16 gUnk_081092D4;
|
||||
extern u8 gUnk_081094CE;
|
||||
#ifdef DEMO
|
||||
extern u8 gUnk_02036AD0;
|
||||
extern u8 gUnk_02036A50;
|
||||
#else
|
||||
extern u8 gUnk_02036AD8;
|
||||
extern u8 gUnk_02036A58;
|
||||
#endif
|
||||
extern void* gUnk_081092AC[];
|
||||
|
||||
typedef struct {
|
||||
|
@ -64,11 +59,7 @@ void sub_0805F820(WStruct* r0, u32* r1) {
|
|||
VStruct* temp3;
|
||||
|
||||
if (r0->unk4 - r0->unk6 > 0) {
|
||||
#ifdef DEMO
|
||||
sub_08002724(r1, &gUnk_02036A50);
|
||||
#else
|
||||
sub_08002724(r1, &gUnk_02036A58);
|
||||
#endif
|
||||
if (r0->unk1 == 0) {
|
||||
u32 tmp = sub_0805F7A0(*r1);
|
||||
uVar6 = tmp & 0xf;
|
||||
|
@ -86,11 +77,7 @@ void sub_0805F820(WStruct* r0, u32* r1) {
|
|||
uVar3 = uVar4;
|
||||
}
|
||||
|
||||
#ifdef DEMO
|
||||
puVar8 = &gUnk_02036A50 + uVar6;
|
||||
#else
|
||||
puVar8 = &gUnk_02036A58 + uVar6;
|
||||
#endif
|
||||
temp2 = r0->unk8;
|
||||
temp = gUnk_0810942E[r0->unk3].filler0[r0->unk2 * 2];
|
||||
uVar7 = r0->unk6;
|
||||
|
@ -133,40 +120,23 @@ void sub_0805F918(u32 idx, u32 idx2, void* dest) {
|
|||
u8* temp;
|
||||
u8* temp2;
|
||||
|
||||
#ifdef DEMO
|
||||
MemFill32(sub_0805F8F8(idx2), &gUnk_02036AD0, 0xe0);
|
||||
#else
|
||||
MemFill32(sub_0805F8F8(idx2), &gUnk_02036AD8, 0xe0);
|
||||
#endif
|
||||
puVar1 = gUnk_081092AC[idx];
|
||||
|
||||
temp = &gUnk_081094CE + idx2 * 0xc0;
|
||||
idx3 = 0;
|
||||
for (i = 0; i < 3; i++) {
|
||||
#ifdef DEMO
|
||||
puVar2 = &gUnk_02036A50;
|
||||
sub_08002724(puVar1, &gUnk_02036A50);
|
||||
#else
|
||||
puVar2 = &gUnk_02036A58;
|
||||
sub_08002724(puVar1, &gUnk_02036A58);
|
||||
#endif
|
||||
puVar1 += 0x40;
|
||||
|
||||
for (j = 0; j < 8; j++) {
|
||||
#ifdef DEMO
|
||||
sub_080026C4(puVar2, &gUnk_02036AD0, temp, idx3);
|
||||
#else
|
||||
sub_080026C4(puVar2, &gUnk_02036AD8, temp, idx3);
|
||||
#endif
|
||||
puVar2++;
|
||||
idx3++;
|
||||
}
|
||||
}
|
||||
#ifdef DEMO
|
||||
LoadResourceAsync((const void*)&gUnk_02036AD0, (u32)dest, 0xe0);
|
||||
#else
|
||||
LoadResourceAsync((const void*)&gUnk_02036AD8, (u32)dest, 0xe0);
|
||||
#endif
|
||||
}
|
||||
|
||||
u32 sub_0805F9A0(u32 r0) {
|
||||
|
|
|
@ -365,7 +365,7 @@ void sub_0802AD54(Entity* this) {
|
|||
#ifdef EU
|
||||
// TODO regalloc in EU version
|
||||
NAKED void sub_0802ADDC(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x02AD48, 0x000004C"); // TODOg disassemble
|
||||
asm(".incbin \"baserom_eu.gba\", 0x02AD48, 0x000004C"); // TODO disassemble
|
||||
}
|
||||
#else
|
||||
void sub_0802ADDC(Entity* this) {
|
||||
|
|
|
@ -92,11 +92,7 @@ void AgbMain(void) {
|
|||
// Interrupt handlers that are loaded into RAM.
|
||||
extern u8 sub_080B197C[];
|
||||
extern u8 gUnk_030056F0[];
|
||||
#ifdef DEMO
|
||||
extern u8 gUnk_02038558[];
|
||||
#else
|
||||
extern u8 gUnk_02038560[];
|
||||
#endif
|
||||
extern u8 gUnk_080B2CD8[];
|
||||
extern u8 gUnk_080B2CD8_2[];
|
||||
extern u8 gUnk_080B2CD8_3[];
|
||||
|
@ -118,11 +114,7 @@ static void sub_08055F70(void) {
|
|||
|
||||
size = (u32)gUnk_080B2CD8_2 - (u32)gUnk_080B2CD8_3;
|
||||
if (size != 0) {
|
||||
#ifdef DEMO
|
||||
MemCopy(gUnk_080B2CD8_3, gUnk_02038558, size);
|
||||
#else
|
||||
MemCopy(gUnk_080B2CD8_3, gUnk_02038560, size);
|
||||
#endif
|
||||
}
|
||||
|
||||
DispReset(0);
|
||||
|
|
|
@ -98,7 +98,7 @@ extern void sub_08080930();
|
|||
|
||||
#ifdef EU
|
||||
NAKED void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x057580, 0x0000078"); // TODOg disassemble
|
||||
asm(".incbin \"baserom_eu.gba\", 0x057580, 0x0000078"); // TODO disassemble
|
||||
}
|
||||
#else
|
||||
void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
|
||||
|
|
|
@ -57,7 +57,7 @@ const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 };
|
|||
|
||||
#ifdef EU
|
||||
NAKED void Manager7_Main(Manager7* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0578A0, 0x00000CC"); // TODOg disassemble
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0578A0, 0x00000CC"); // TODO disassemble
|
||||
}
|
||||
#else
|
||||
void Manager7_Main(Manager7* this) {
|
||||
|
@ -134,7 +134,7 @@ void sub_08057E64() {
|
|||
|
||||
#ifdef EU
|
||||
NAKED void sub_08057E7C(u32 unk1) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0579B8, 0x0000050"); // TODOg disassemble
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0579B8, 0x0000050"); // TODO disassemble
|
||||
}
|
||||
#else
|
||||
void sub_08057E7C(u32 unk1) {
|
||||
|
|
|
@ -27,7 +27,7 @@ ASM_FUNC("asm/non_matching/phonograph/sub_0806E964.inc",
|
|||
|
||||
#ifdef EU
|
||||
NAKED void sub_0806EABC(Entity* this, u32 param) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x06E4F8, 0x000003C"); // TODOg disassemble
|
||||
asm(".incbin \"baserom_eu.gba\", 0x06E4F8, 0x000003C"); // TODO disassemble
|
||||
}
|
||||
#else
|
||||
void sub_0806EABC(Entity* this, u32 param) {
|
||||
|
|
|
@ -125,7 +125,7 @@ void sub_080A9FD0(Entity* this) {
|
|||
|
||||
#ifdef EU
|
||||
NAKED void sub_080AA044(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0A983C, 0x00000C4"); // TODOg disassemble
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0A983C, 0x00000C4"); // TODO disassemble
|
||||
}
|
||||
#else
|
||||
void sub_080AA044(Entity* this) {
|
||||
|
|
Loading…
Reference in New Issue