perfect_dark/ld/pd.ld

154 lines
3.6 KiB
Plaintext

#include "gamefiles.inc"
#include "libfiles.inc"
#define VERSION_NTSC_BETA 0
#define VERSION_NTSC_1_0 1
#define VERSION_NTSC_FINAL 2
#define VERSION_PAL_BETA 3
#define VERSION_PAL_FINAL 4
#define VERSION_JAP_FINAL 5
#define MPSTRINGS(lang) \
.mpstrings##lang : AT(__rompos) { \
build/ROMID/mpstrings/ROMID/mpstrings##lang.o (.data); \
} \
__rompos += SIZEOF(.mpstrings##lang);
OUTPUT_ARCH (mips)
SECTIONS
{
_gamedataSegmentStart = 0x80059fe0;
_gamedataSegmentRomStart = 0x39850;
_inflateSegmentRomStart = 0x4e850;
_ziplistSegmentRomStart = 0x4fc40;
_textureSegmentRomStart = 0x01ff7ca0;
_textureSegmentRomEnd = 0x01ffea20;
_rspMicrocodeStart = 0x80059fe0;
_rspMicrocodeStartPlusOne = 0x80059fe1;
_rspMicrocodeEnd = 0x8005afe0;
_mpconfigsSegmentRomStart = 0x7d0a40;
_mpstringsESegmentRomStart = 0x007d1c20; _mpstringsESegmentRomEnd = 0x007d5320;
_mpstringsJSegmentRomStart = 0x007d5320; _mpstringsJSegmentRomEnd = 0x007d8a20;
_mpstringsPSegmentRomStart = 0x007d8a20; _mpstringsPSegmentRomEnd = 0x007dc120;
_mpstringsGSegmentRomStart = 0x007dc120; _mpstringsGSegmentRomEnd = 0x007df820;
_mpstringsFSegmentRomStart = 0x007df820; _mpstringsFSegmentRomEnd = 0x007e2f20;
_mpstringsSSegmentRomStart = 0x007e2f20; _mpstringsSSegmentRomEnd = 0x007e6620;
_mpstringsISegmentRomStart = 0x007e6620; _mpstringsISegmentRomEnd = 0x007e9d20;
#if VERSION >= VERSION_NTSC_FINAL
_bssSegmentEnd = 0x7f1b99e0;
_val7f116f34 = 0x0339;
_val7f117634 = 0x0422;
_val7f1183f8 = 0x070a;
_val7f118a44 = 0x0801;
_val7f11a650 = 0x0d9e;
_val7f11a6c8 = 0x0da7;
_val7f11a88c = 0x0e0f;
_val7f11aa14 = 0x0e46;
_val7f11aae4 = 0x0e54;
_val7f11ad0c = 0x0ef5;
_val7f11ae0c = 0x0f19;
_val7f11aef4 = 0x0f31;
_val7f11b124 = 0x0f6c;
_val7f11b6c0 = 0x102c;
_val7f11bb48 = 0x112a;
_val7f11c1d0 = 0x1286;
_val7f11c378 = 0x12c1;
_checksum7f15c9ac = 0x2c7a82c8;
#else
_bssSegmentEnd = 0x7f1b9870;
_val7f116f34 = 0x0336;
_val7f117634 = 0x041f;
_val7f1183f8 = 0x06fc;
_val7f118a44 = 0x07e0;
_val7f11a650 = 0x0cda;
_val7f11a6c8 = 0x0ce3;
_val7f11a88c = 0x0d4b;
_val7f11aa14 = 0x0d83;
_val7f11aae4 = 0x0d91;
_val7f11ad0c = 0x0e32;
_val7f11ae0c = 0x0e56;
_val7f11aef4 = 0x0e6e;
_val7f11b124 = 0x0ea9;
_val7f11b6c0 = 0x0f69;
_val7f11bb48 = 0x1067;
_val7f11c1d0 = 0x11c3;
_val7f11c378 = 0x11fe;
_checksum7f15c9ac = 0x2c7b42f8;
#endif
_addr007e9d20 = 0x007e9d20;
_antipiracyUncloakWriteAddress = 0x7002a324;
osCicId = 0x80000310;
__rompos = 0;
.boot 0x70001000 : AT(__rompos) {
build/ROMID/boot/boot.o (.text);
build/ROMID/boot/boot.o (.data);
}
__rompos += SIZEOF(.boot);
.lib 0x70003050 : AT(__rompos) {
LIBFILES(.text)
LIBFILES(.rodata)
}
__rompos += SIZEOF(.lib);
.gamedata 0x80059fe0 : AT(__rompos) {
GAMEFILES(.data)
}
__rompos += SIZEOF(.gamedata);
.gvars 0x8008ae20 : AT(__rompos) {
build/ROMID/gvars/gvars.o (.data);
}
__rompos += SIZEOF(.gvars);
.game 0x7f000000 : AT(__rompos) {
GAMEFILES(.text)
GAMEFILES(.rodata)
}
__rompos += SIZEOF(.game);
.inflate 0x70200000 : AT(__rompos) {
build/ROMID/inflate/inflate.o (.text);
build/ROMID/inflate/inflate.o (.data);
}
__rompos += SIZEOF(.inflate);
.mpconfigs : AT(__rompos) {
build/ROMID/mpconfigs/mpconfigs.o (.data);
}
__rompos += SIZEOF(.mpconfigs);
MPSTRINGS(E)
MPSTRINGS(J)
MPSTRINGS(P)
MPSTRINGS(G)
MPSTRINGS(F)
MPSTRINGS(S)
MPSTRINGS(I)
__rompos = 0xed83a0;
_filesSegmentRomStart = __rompos;
_filesSegmentRamStart = .;
#include "filesegments.inc"
_filesSegmentRomEnd = __rompos;
/DISCARD/ : {
* (.MIPS.abiflags);
* (.options);
* (.gnu.attributes);
* (.pdr);
* (.mdebug);
* (.gptab.bss);
* (.gptab.data);
* (.reginfo);
}
}