diff --git a/tools/psyq-obj-parser/psyq-obj-parser.cc b/tools/psyq-obj-parser/psyq-obj-parser.cc index 418012b10..869b7613f 100644 --- a/tools/psyq-obj-parser/psyq-obj-parser.cc +++ b/tools/psyq-obj-parser/psyq-obj-parser.cc @@ -1338,6 +1338,10 @@ bool PsyqLnkFile::Relocation::generateElf(ElfRelocationPass pass, const std::str uint8_t* sectionData = (uint8_t*)malloc(size); memcpy(sectionData, section->section->get_data(), size); fmt::print(" :: Altering bytestream to account for HI symbol+addend relocation\n"); + if (addend < 0) { + fmt::print(" :: Adjusting for negative addend\n"); + addend += 0x10000; + } addend >>= 16; sectionData[offset + 0] = addend & 0xff; addend >>= 8;