1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-10 17:00:19 +00:00

Merge branch 'master' into audio_load

This commit is contained in:
zelda2774 2021-08-31 15:58:09 +02:00
commit 8987d668da
286 changed files with 1132 additions and 1423 deletions

View file

@ -103,6 +103,8 @@ wordReplace = {
"func_800D20CC": "Matrix_MtxFToYXZRotS",
"func_800D2264": "Matrix_MtxFToZYXRotS",
"func_800D23FC": "Matrix_RotateAxis",
"PLAYER": "GET_PLAYER(globalCtx)",
"ACTIVE_CAM": "GET_ACTIVE_CAM(globalCtx)",
}
# [a-zA-Z0-9_]

View file

@ -377,7 +377,20 @@ static void write_ld_script(void)
fprintf(fout, " _%sSegmentRoDataStart = .;\n", seg->name);
for (j = 0; j < seg->includesCount; j++)
{
fprintf(fout, " %s (.rodata)\n", seg->includes[j]);
// Compilers other than IDO, such as GCC, produce different sections such as
// the ones named directly below. These sections do not contain values that
// need relocating, but we need to ensure that the base .rodata section
// always comes first. The reason this is important is due to relocs assuming
// the base of .rodata being the offset for the relocs and thus needs to remain
// the beginning of the entire rodata area in order to remain consistent.
// Inconsistencies will lead to various .rodata reloc crashes as a result of
// either missing relocs or wrong relocs.
fprintf(fout, " %s (.rodata.str1.4)\n", seg->includes[j]);
fprintf(fout, " %s (.rodata.cst4)\n", seg->includes[j]);
fprintf(fout, " %s (.rodata.cst8)\n", seg->includes[j]);
}
//fprintf(fout, " . = ALIGN(0x10);\n");