diff --git a/src/AddressTranslator.cc b/src/AddressTranslator.cc index 7aec23f4..925eda8c 100644 --- a/src/AddressTranslator.cc +++ b/src/AddressTranslator.cc @@ -435,6 +435,127 @@ public: } } + uint32_t find_be_to_le_data_match( + shared_ptr dest_mem, + uint32_t src_addr, + uint32_t src_size) const { + if (src_size == 0) { + src_size = 4; + } + + pair src_section = make_pair(0, 0); + for (const auto& sec : this->src_mem->allocated_blocks()) { + if (src_addr >= sec.first && src_addr + src_size <= sec.first + sec.second) { + src_section = sec; + break; + } + } + if (!src_section.second) { + throw runtime_error("source address not within any section"); + } + + size_t src_offset = src_addr - src_section.first; + size_t src_bytes_available_before = src_offset; + size_t src_bytes_available_after = src_section.second - src_offset - 4; + + size_t match_bytes_before = 0; + size_t match_bytes_after = 0; + while (match_bytes_before + match_bytes_after + 4 < 0x100) { + size_t num_matches = 0; + size_t last_match_address = 0; + size_t match_length = match_bytes_before + match_bytes_after + 4; + uint32_t src_addr = src_section.first + src_offset - match_bytes_before; + phosg::StringReader src_r = this->src_mem->reader(src_addr, match_length); + for (const auto& dest_section : dest_mem->allocated_blocks()) { + for (size_t dest_match_offset = 0; + dest_match_offset + match_length < dest_section.second; + dest_match_offset += 4) { + src_r.go(0); + phosg::StringReader dest_r = dest_mem->reader(dest_section.first + dest_match_offset, match_length); + size_t z; + for (z = 0; z < match_length; z += 4) { + uint32_t src_v = src_r.get_u32b(); + uint32_t dest_v = dest_r.get_u32l(); + bool src_is_addr = ((src_v & 0xFE000003) == 0x80000000); + bool dest_is_addr = ((dest_v >= 0x00010000) && (dest_v <= 0x00800000)); + if (src_is_addr != dest_is_addr) { + break; + } else if (src_v != dest_v) { + break; + } + } + if (z == match_length) { + num_matches++; + last_match_address = dest_section.first + dest_match_offset + match_bytes_before; + } + } + } + this->log.info("... For match length %zX, %zu matches found", match_length, num_matches); + if (num_matches == 1) { + return last_match_address; + } else if (num_matches == 0) { + throw runtime_error("did not find exactly one match"); + } + bool can_expand_backward = (src_bytes_available_before >= match_bytes_before + 4); + bool can_expand_forward = (src_bytes_available_after >= match_bytes_after + 4); + if (!can_expand_backward && !can_expand_forward) { + throw runtime_error("no further expansion is allowed"); + } + if (can_expand_backward) { + match_bytes_before += 4; + } + if (can_expand_forward) { + match_bytes_after += 4; + } + } + throw runtime_error("scan field too long; too many matches"); + } + + void find_all_be_to_le_data_matches(uint32_t src_addr, uint32_t src_size) const { + if (!this->src_mem) { + throw runtime_error("no source file selected"); + } + + map results; + for (const auto& it : this->mems) { + if (it.second == this->src_mem) { + log.info("(%s) %08" PRIX32 " (from source)", it.first.c_str(), src_addr); + results.emplace(it.first, src_addr); + + } else { + uint32_t ret = 0; + try { + ret = this->find_be_to_le_data_match(it.second, src_addr, src_size); + log.info("(%s) %08" PRIX32, it.first.c_str(), ret); + } catch (const exception& e) { + log.error("(%s) failed: %s", it.first.c_str(), e.what()); + } + + if (ret == 0) { + log.error("(%s) no match found", it.first.c_str()); + } else { + results.emplace(it.first, ret); + } + } + } + for (const auto& it : results) { + fprintf(stdout, "%s => %08" PRIX32 "\n", it.first.c_str(), it.second); + } + } + + void find_data(const std::string& data) const { + for (const auto& [name, mem] : this->mems) { + for (const auto& [sec_addr, sec_size] : mem->allocated_blocks()) { + uint32_t last_addr = sec_addr + sec_size - data.size(); + for (uint32_t addr = sec_addr; addr < last_addr; addr++) { + if (!mem->memcmp(addr, data.data(), data.size())) { + fprintf(stderr, "%s => %08" PRIX32 "\n", name.c_str(), addr); + } + } + } + } + } + void handle_command(const string& command) { auto tokens = phosg::split(command, ' '); if (tokens.empty()) { @@ -444,10 +565,16 @@ public: if (tokens[0] == "use") { this->set_source_file(tokens.at(1)); + } else if (tokens[0] == "find") { + this->find_data(phosg::parse_data_string(tokens.at(1))); } else if (tokens[0] == "match") { this->find_all_matches( stoul(tokens.at(1), nullptr, 16), tokens.size() >= 3 ? stoul(tokens[2], nullptr, 16) : 0); + } else if (tokens[0] == "match-be-le") { + this->find_all_be_to_le_data_matches( + stoul(tokens.at(1), nullptr, 16), + tokens.size() >= 3 ? stoul(tokens[2], nullptr, 16) : 0); } else if (tokens[0] == "find-ppc-globals") { this->find_ppc_rtoc_global_regs(); } else if (!tokens[0].empty()) { diff --git a/system/client-functions/DrawDistance/DrawDistance.3OE0.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OE0.patch.s index 6394f629..36fa2b04 100644 --- a/system/client-functions/DrawDistance/DrawDistance.3OE0.patch.s +++ b/system/client-functions/DrawDistance/DrawDistance.3OE0.patch.s @@ -9,69 +9,58 @@ reloc0: .offsetof start start: .include WriteCodeBlocksGC - # region @ 8000DFA0 (64 bytes) - .data 0x8000DFA0 # address - .data 0x00000040 # size - .data 0xC3C2C200 # 8000DFA0 => lfs f30, [r2 - 0x3E00] - .data 0xEFDE0072 # 8000DFA4 => fmuls f30, f30, f1 - .data 0x4E800020 # 8000DFA8 => blr - .data 0xC042C200 # 8000DFAC => lfs f2, [r2 - 0x3E00] - .data 0xC01E001C # 8000DFB0 => lfs f0, [r30 + 0x001C] - .data 0xEC0000B2 # 8000DFB4 => fmuls f0, f0, f2 - .data 0x4E800020 # 8000DFB8 => blr - .data 0xC382C200 # 8000DFBC => lfs f28, [r2 - 0x3E00] - .data 0xEF9C00B2 # 8000DFC0 => fmuls f28, f28, f2 - .data 0x4E800020 # 8000DFC4 => blr - .data 0xC002C200 # 8000DFC8 => lfs f0, [r2 - 0x3E00] - .data 0xC023000C # 8000DFCC => lfs f1, [r3 + 0x000C] - .data 0xEC000072 # 8000DFD0 => fmuls f0, f0, f1 - .data 0xD003000C # 8000DFD4 => stfs [r3 + 0x000C], f0 - .data 0x3C60804C # 8000DFD8 => lis r3, 0x804C - .data 0x4E800020 # 8000DFDC => blr - # region @ 80100B8C (4 bytes) - .data 0x80100B8C # address - .data 0x00000004 # size - .data 0x4BF0D415 # 80100B8C => bl -0x000F2BEC /* 8000DFA0 */ - # region @ 801570BC (4 bytes) - .data 0x801570BC # address - .data 0x00000004 # size - .data 0x4BEB6EF1 # 801570BC => bl -0x00149110 /* 8000DFAC */ - # region @ 801A2040 (4 bytes) - .data 0x801A2040 # address - .data 0x00000004 # size - .data 0x4BE6BF7D # 801A2040 => bl -0x00194084 /* 8000DFBC */ - # region @ 801A2240 (4 bytes) - .data 0x801A2240 # address - .data 0x00000004 # size - .data 0x4BE6BD61 # 801A2240 => bl -0x001942A0 /* 8000DFA0 */ - # region @ 80205840 (4 bytes) - .data 0x80205840 # address - .data 0x00000004 # size - .data 0x4BE08789 # 80205840 => bl -0x001F7878 /* 8000DFC8 */ - # region @ 80205FE4 (4 bytes) - .data 0x80205FE4 # address - .data 0x00000004 # size - .data 0x4BE07FE5 # 80205FE4 => bl -0x001F801C /* 8000DFC8 */ - # region @ 805C8CB0 (4 bytes) - .data 0x805C8CB0 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805C8CB0 => .invalid sc - # region @ 805C9B5C (4 bytes) - .data 0x805C9B5C # address - .data 0x00000004 # size - .data 0x47742400 # 805C9B5C => .invalid sc - # region @ 805CA184 (4 bytes) - .data 0x805CA184 # address - .data 0x00000004 # size - .data 0x491C4000 # 805CA184 => b +0x011C4000 /* 8178E184 */ - # region @ 805CB010 (4 bytes) - .data 0x805CB010 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805CB010 => .invalid sc - # region @ 805CB5A0 (4 bytes) - .data 0x805CB5A0 # address - .data 0x00000004 # size - .data 0x44AF0000 # 805CB5A0 => .invalid sc - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size + .binary 804D87080000000443C80000 + .binary 804D87200000000443FA0000 + .binary 804D87380000000443FA0000 + .binary 804D87500000000443C80000 + .binary 805C8CB00000000447AFC800 + .binary 805C9B5C0000000447EF4200 + .binary 805CA18400000004491C4000 + .binary 805CA2400000000443C80000 + .binary 805CA3900000000444480000 + .binary 805CA4680000000444480000 + .binary 805CA97C000000084448000044160000 + .binary 805CAAA00000000444160000 + .binary 805CABD00000000444480000 + .binary 805CABF00000000444480000 + .binary 805CAC100000000444480000 + .binary 805CAD900000000444160000 + .binary 805CADD40000000444160000 + .binary 805CADE40000000444160000 + .binary 805CADF40000000444160000 + .binary 805CAE040000000444160000 + .binary 805CAE5C0000000443C80000 + .binary 805CAEB00000000444160000 + .binary 805CAED00000000444160000 + .binary 805CAEEC0000000444160000 + .binary 805CAF0C0000000444160000 + .binary 805CAF300000000444160000 + .binary 805CAF540000000444160000 + .binary 805CB0100000000447AFC800 + .binary 805CB2780000000444160000 + .binary 805CB2900000000443FA0000 + .binary 805CB4400000000444480000 + .binary 805CB49C0000000444160000 + .binary 805CB4C00000000444160000 + .binary 805CB4C80000000443FA0000 + .binary 805CB4FC0000000443C80000 + .binary 805CB52C0000000444160000 + .binary 805CB5740000000444480000 + .binary 805CB5A00000000444480000 + .binary 805CB5C00000000444160000 + .binary 805CB61C0000000444160000 + .binary 805CB6300000000444160000 + .binary 805CB63C00000004442F0000 + .binary 805CB6500000000444160000 + .binary 805CB6900000000443FA0000 + .binary 805CB7600000000443FA0000 + .binary 805CB7680000000443FA0000 + .binary 805CB7940000000444160000 + .binary 805CB7CC0000000444160000 + .binary 805CB8000000000444228000 + .binary 805CB8200000000444480000 + .binary 805CBA900000000444480000 + .binary 805CBD240000000448742400 + .binary 805CD4F00000000443FA0000 + .binary 805CE6E00000000443FA0000 + .binary 0000000000000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OE1.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OE1.patch.s index b905f8e6..89c9fe2f 100644 --- a/system/client-functions/DrawDistance/DrawDistance.3OE1.patch.s +++ b/system/client-functions/DrawDistance/DrawDistance.3OE1.patch.s @@ -9,69 +9,58 @@ reloc0: .offsetof start start: .include WriteCodeBlocksGC - # region @ 8000DFA0 (64 bytes) - .data 0x8000DFA0 # address - .data 0x00000040 # size - .data 0xC3C2C200 # 8000DFA0 => lfs f30, [r2 - 0x3E00] - .data 0xEFDE0072 # 8000DFA4 => fmuls f30, f30, f1 - .data 0x4E800020 # 8000DFA8 => blr - .data 0xC042C200 # 8000DFAC => lfs f2, [r2 - 0x3E00] - .data 0xC01E001C # 8000DFB0 => lfs f0, [r30 + 0x001C] - .data 0xEC0000B2 # 8000DFB4 => fmuls f0, f0, f2 - .data 0x4E800020 # 8000DFB8 => blr - .data 0xC382C200 # 8000DFBC => lfs f28, [r2 - 0x3E00] - .data 0xEF9C00B2 # 8000DFC0 => fmuls f28, f28, f2 - .data 0x4E800020 # 8000DFC4 => blr - .data 0xC002C200 # 8000DFC8 => lfs f0, [r2 - 0x3E00] - .data 0xC023000C # 8000DFCC => lfs f1, [r3 + 0x000C] - .data 0xEC000072 # 8000DFD0 => fmuls f0, f0, f1 - .data 0xD003000C # 8000DFD4 => stfs [r3 + 0x000C], f0 - .data 0x3C60804C # 8000DFD8 => lis r3, 0x804C - .data 0x4E800020 # 8000DFDC => blr - # region @ 80100B8C (4 bytes) - .data 0x80100B8C # address - .data 0x00000004 # size - .data 0x4BF0D415 # 80100B8C => bl -0x000F2BEC /* 8000DFA0 */ - # region @ 801570BC (4 bytes) - .data 0x801570BC # address - .data 0x00000004 # size - .data 0x4BEB6EF1 # 801570BC => bl -0x00149110 /* 8000DFAC */ - # region @ 801A2040 (4 bytes) - .data 0x801A2040 # address - .data 0x00000004 # size - .data 0x4BE6BF7D # 801A2040 => bl -0x00194084 /* 8000DFBC */ - # region @ 801A2240 (4 bytes) - .data 0x801A2240 # address - .data 0x00000004 # size - .data 0x4BE6BD61 # 801A2240 => bl -0x001942A0 /* 8000DFA0 */ - # region @ 80205840 (4 bytes) - .data 0x80205840 # address - .data 0x00000004 # size - .data 0x4BE08789 # 80205840 => bl -0x001F7878 /* 8000DFC8 */ - # region @ 80205FE4 (4 bytes) - .data 0x80205FE4 # address - .data 0x00000004 # size - .data 0x4BE07FE5 # 80205FE4 => bl -0x001F801C /* 8000DFC8 */ - # region @ 805CFCD0 (4 bytes) - .data 0x805CFCD0 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805CFCD0 => .invalid sc - # region @ 805D0B7C (4 bytes) - .data 0x805D0B7C # address - .data 0x00000004 # size - .data 0x47742400 # 805D0B7C => .invalid sc - # region @ 805D11A4 (4 bytes) - .data 0x805D11A4 # address - .data 0x00000004 # size - .data 0x491C4000 # 805D11A4 => b +0x011C4000 /* 817951A4 */ - # region @ 805D2030 (4 bytes) - .data 0x805D2030 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805D2030 => .invalid sc - # region @ 805D25C0 (4 bytes) - .data 0x805D25C0 # address - .data 0x00000004 # size - .data 0x44AF0000 # 805D25C0 => .invalid sc - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size + .binary 804D8BE80000000443C80000 + .binary 804D8C000000000443FA0000 + .binary 804D8C180000000443FA0000 + .binary 804D8C300000000443C80000 + .binary 805CFCD00000000447AFC800 + .binary 805D0B7C0000000447EF4200 + .binary 805D11A400000004491C4000 + .binary 805D12600000000443C80000 + .binary 805D13B00000000444480000 + .binary 805D14880000000444480000 + .binary 805D199C000000084448000044160000 + .binary 805D1AC00000000444160000 + .binary 805D1BF00000000444480000 + .binary 805D1C100000000444480000 + .binary 805D1C300000000444480000 + .binary 805D1DB00000000444160000 + .binary 805D1DF40000000444160000 + .binary 805D1E040000000444160000 + .binary 805D1E140000000444160000 + .binary 805D1E240000000444160000 + .binary 805D1E7C0000000443C80000 + .binary 805D1ED00000000444160000 + .binary 805D1EF00000000444160000 + .binary 805D1F0C0000000444160000 + .binary 805D1F2C0000000444160000 + .binary 805D1F500000000444160000 + .binary 805D1F740000000444160000 + .binary 805D20300000000447AFC800 + .binary 805D22980000000444160000 + .binary 805D22B00000000443FA0000 + .binary 805D24600000000444480000 + .binary 805D24BC0000000444160000 + .binary 805D24E00000000444160000 + .binary 805D24E80000000443FA0000 + .binary 805D251C0000000443C80000 + .binary 805D254C0000000444160000 + .binary 805D25940000000444480000 + .binary 805D25C00000000444480000 + .binary 805D25E00000000444160000 + .binary 805D263C0000000444160000 + .binary 805D26500000000444160000 + .binary 805D265C00000004442F0000 + .binary 805D26700000000444160000 + .binary 805D26B00000000443FA0000 + .binary 805D27800000000443FA0000 + .binary 805D27880000000443FA0000 + .binary 805D27B40000000444160000 + .binary 805D27EC0000000444160000 + .binary 805D28200000000444228000 + .binary 805D28400000000444480000 + .binary 805D2AB00000000444480000 + .binary 805D2D440000000448742400 + .binary 805D45100000000443FA0000 + .binary 805D57000000000443FA0000 + .binary 0000000000000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OE2.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OE2.patch.s index ae10bc85..553cb1fa 100644 --- a/system/client-functions/DrawDistance/DrawDistance.3OE2.patch.s +++ b/system/client-functions/DrawDistance/DrawDistance.3OE2.patch.s @@ -9,69 +9,58 @@ reloc0: .offsetof start start: .include WriteCodeBlocksGC - # region @ 8000DFA0 (64 bytes) - .data 0x8000DFA0 # address - .data 0x00000040 # size - .data 0xC3C2C200 # 8000DFA0 => lfs f30, [r2 - 0x3E00] - .data 0xEFDE0072 # 8000DFA4 => fmuls f30, f30, f1 - .data 0x4E800020 # 8000DFA8 => blr - .data 0xC042C200 # 8000DFAC => lfs f2, [r2 - 0x3E00] - .data 0xC01E001C # 8000DFB0 => lfs f0, [r30 + 0x001C] - .data 0xEC0000B2 # 8000DFB4 => fmuls f0, f0, f2 - .data 0x4E800020 # 8000DFB8 => blr - .data 0xC382C200 # 8000DFBC => lfs f28, [r2 - 0x3E00] - .data 0xEF9C00B2 # 8000DFC0 => fmuls f28, f28, f2 - .data 0x4E800020 # 8000DFC4 => blr - .data 0xC002C200 # 8000DFC8 => lfs f0, [r2 - 0x3E00] - .data 0xC023000C # 8000DFCC => lfs f1, [r3 + 0x000C] - .data 0xEC000072 # 8000DFD0 => fmuls f0, f0, f1 - .data 0xD003000C # 8000DFD4 => stfs [r3 + 0x000C], f0 - .data 0x3C60804D # 8000DFD8 => lis r3, 0x804D - .data 0x4E800020 # 8000DFDC => blr - # region @ 80100A60 (4 bytes) - .data 0x80100A60 # address - .data 0x00000004 # size - .data 0x4BF0D541 # 80100A60 => bl -0x000F2AC0 /* 8000DFA0 */ - # region @ 801571DC (4 bytes) - .data 0x801571DC # address - .data 0x00000004 # size - .data 0x4BEB6DD1 # 801571DC => bl -0x00149230 /* 8000DFAC */ - # region @ 801A2164 (4 bytes) - .data 0x801A2164 # address - .data 0x00000004 # size - .data 0x4BE6BE59 # 801A2164 => bl -0x001941A8 /* 8000DFBC */ - # region @ 801A2364 (4 bytes) - .data 0x801A2364 # address - .data 0x00000004 # size - .data 0x4BE6BC3D # 801A2364 => bl -0x001943C4 /* 8000DFA0 */ - # region @ 80206728 (4 bytes) - .data 0x80206728 # address - .data 0x00000004 # size - .data 0x4BE078A1 # 80206728 => bl -0x001F8760 /* 8000DFC8 */ - # region @ 80206ECC (4 bytes) - .data 0x80206ECC # address - .data 0x00000004 # size - .data 0x4BE070FD # 80206ECC => bl -0x001F8F04 /* 8000DFC8 */ - # region @ 805D94F0 (4 bytes) - .data 0x805D94F0 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805D94F0 => .invalid sc - # region @ 805DA39C (4 bytes) - .data 0x805DA39C # address - .data 0x00000004 # size - .data 0x47742400 # 805DA39C => .invalid sc - # region @ 805DA9C4 (4 bytes) - .data 0x805DA9C4 # address - .data 0x00000004 # size - .data 0x491C4000 # 805DA9C4 => b +0x011C4000 /* 8179E9C4 */ - # region @ 805DB850 (4 bytes) - .data 0x805DB850 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805DB850 => .invalid sc - # region @ 805DBDE0 (4 bytes) - .data 0x805DBDE0 # address - .data 0x00000004 # size - .data 0x44AF0000 # 805DBDE0 => .invalid sc - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size + .binary 804DD2880000000443C80000 + .binary 804DD2A00000000443FA0000 + .binary 804DD2B80000000443FA0000 + .binary 804DD2D00000000443C80000 + .binary 805D94F00000000447AFC800 + .binary 805DA39C0000000447EF4200 + .binary 805DA9C400000004491C4000 + .binary 805DAA800000000443C80000 + .binary 805DABD00000000444480000 + .binary 805DACA80000000444480000 + .binary 805DB1BC000000084448000044160000 + .binary 805DB2E00000000444160000 + .binary 805DB4100000000444480000 + .binary 805DB4300000000444480000 + .binary 805DB4500000000444480000 + .binary 805DB5D00000000444160000 + .binary 805DB6140000000444160000 + .binary 805DB6240000000444160000 + .binary 805DB6340000000444160000 + .binary 805DB6440000000444160000 + .binary 805DB69C0000000443C80000 + .binary 805DB6F00000000444160000 + .binary 805DB7100000000444160000 + .binary 805DB72C0000000444160000 + .binary 805DB74C0000000444160000 + .binary 805DB7700000000444160000 + .binary 805DB7940000000444160000 + .binary 805DB8500000000447AFC800 + .binary 805DBAB80000000444160000 + .binary 805DBAD00000000443FA0000 + .binary 805DBC800000000444480000 + .binary 805DBCDC0000000444160000 + .binary 805DBD000000000444160000 + .binary 805DBD080000000443FA0000 + .binary 805DBD3C0000000443C80000 + .binary 805DBD6C0000000444160000 + .binary 805DBDB40000000444480000 + .binary 805DBDE00000000444480000 + .binary 805DBE000000000444160000 + .binary 805DBE5C0000000444160000 + .binary 805DBE700000000444160000 + .binary 805DBE7C00000004442F0000 + .binary 805DBE900000000444160000 + .binary 805DBED00000000443FA0000 + .binary 805DBFA00000000443FA0000 + .binary 805DBFA80000000443FA0000 + .binary 805DBFD40000000444160000 + .binary 805DC00C0000000444160000 + .binary 805DC0400000000444228000 + .binary 805DC0600000000444480000 + .binary 805DC2D00000000444480000 + .binary 805DC5640000000448742400 + .binary 805DDD300000000443FA0000 + .binary 805DEF200000000443FA0000 + .binary 0000000000000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OJ2.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OJ2.patch.s index 03779c4d..68fd3024 100644 --- a/system/client-functions/DrawDistance/DrawDistance.3OJ2.patch.s +++ b/system/client-functions/DrawDistance/DrawDistance.3OJ2.patch.s @@ -9,69 +9,58 @@ reloc0: .offsetof start start: .include WriteCodeBlocksGC - # region @ 8000DFA0 (64 bytes) - .data 0x8000DFA0 # address - .data 0x00000040 # size - .data 0xC3C2C1F8 # 8000DFA0 => lfs f30, [r2 - 0x3E08] - .data 0xEFDE0072 # 8000DFA4 => fmuls f30, f30, f1 - .data 0x4E800020 # 8000DFA8 => blr - .data 0xC042C1F8 # 8000DFAC => lfs f2, [r2 - 0x3E08] - .data 0xC01E001C # 8000DFB0 => lfs f0, [r30 + 0x001C] - .data 0xEC0000B2 # 8000DFB4 => fmuls f0, f0, f2 - .data 0x4E800020 # 8000DFB8 => blr - .data 0xC382C1F8 # 8000DFBC => lfs f28, [r2 - 0x3E08] - .data 0xEF9C00B2 # 8000DFC0 => fmuls f28, f28, f2 - .data 0x4E800020 # 8000DFC4 => blr - .data 0xC002C1F8 # 8000DFC8 => lfs f0, [r2 - 0x3E08] - .data 0xC023000C # 8000DFCC => lfs f1, [r3 + 0x000C] - .data 0xEC000072 # 8000DFD0 => fmuls f0, f0, f1 - .data 0xD003000C # 8000DFD4 => stfs [r3 + 0x000C], f0 - .data 0x3C60804C # 8000DFD8 => lis r3, 0x804C - .data 0x4E800020 # 8000DFDC => blr - # region @ 801008E8 (4 bytes) - .data 0x801008E8 # address - .data 0x00000004 # size - .data 0x4BF0D6B9 # 801008E8 => bl -0x000F2948 /* 8000DFA0 */ - # region @ 80156D00 (4 bytes) - .data 0x80156D00 # address - .data 0x00000004 # size - .data 0x4BEB72AD # 80156D00 => bl -0x00148D54 /* 8000DFAC */ - # region @ 801A1C64 (4 bytes) - .data 0x801A1C64 # address - .data 0x00000004 # size - .data 0x4BE6C359 # 801A1C64 => bl -0x00193CA8 /* 8000DFBC */ - # region @ 801A1E64 (4 bytes) - .data 0x801A1E64 # address - .data 0x00000004 # size - .data 0x4BE6C13D # 801A1E64 => bl -0x00193EC4 /* 8000DFA0 */ - # region @ 80205044 (4 bytes) - .data 0x80205044 # address - .data 0x00000004 # size - .data 0x4BE08F85 # 80205044 => bl -0x001F707C /* 8000DFC8 */ - # region @ 802057E8 (4 bytes) - .data 0x802057E8 # address - .data 0x00000004 # size - .data 0x4BE087E1 # 802057E8 => bl -0x001F7820 /* 8000DFC8 */ - # region @ 805C83A8 (4 bytes) - .data 0x805C83A8 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805C83A8 => .invalid sc - # region @ 805C9254 (4 bytes) - .data 0x805C9254 # address - .data 0x00000004 # size - .data 0x47742400 # 805C9254 => .invalid sc - # region @ 805C987C (4 bytes) - .data 0x805C987C # address - .data 0x00000004 # size - .data 0x491C4000 # 805C987C => b +0x011C4000 /* 8178D87C */ - # region @ 805CA708 (4 bytes) - .data 0x805CA708 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805CA708 => .invalid sc - # region @ 805CAC98 (4 bytes) - .data 0x805CAC98 # address - .data 0x00000004 # size - .data 0x44AF0000 # 805CAC98 => .invalid sc - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size + .binary 804D7F600000000443C80000 + .binary 804D7F780000000443FA0000 + .binary 804D7F900000000443FA0000 + .binary 804D7FA80000000443C80000 + .binary 805C83A80000000447AFC800 + .binary 805C92540000000447EF4200 + .binary 805C987C00000004491C4000 + .binary 805C99380000000443C80000 + .binary 805C9A880000000444480000 + .binary 805C9B600000000444480000 + .binary 805CA074000000084448000044160000 + .binary 805CA1980000000444160000 + .binary 805CA2C80000000444480000 + .binary 805CA2E80000000444480000 + .binary 805CA3080000000444480000 + .binary 805CA4880000000444160000 + .binary 805CA4CC0000000444160000 + .binary 805CA4DC0000000444160000 + .binary 805CA4EC0000000444160000 + .binary 805CA4FC0000000444160000 + .binary 805CA5540000000443C80000 + .binary 805CA5A80000000444160000 + .binary 805CA5C80000000444160000 + .binary 805CA5E40000000444160000 + .binary 805CA6040000000444160000 + .binary 805CA6280000000444160000 + .binary 805CA64C0000000444160000 + .binary 805CA7080000000447AFC800 + .binary 805CA9700000000444160000 + .binary 805CA9880000000443FA0000 + .binary 805CAB380000000444480000 + .binary 805CAB940000000444160000 + .binary 805CABB80000000444160000 + .binary 805CABC00000000443FA0000 + .binary 805CABF40000000443C80000 + .binary 805CAC240000000444160000 + .binary 805CAC6C0000000444480000 + .binary 805CAC980000000444480000 + .binary 805CACB80000000444160000 + .binary 805CAD140000000444160000 + .binary 805CAD280000000444160000 + .binary 805CAD3400000004442F0000 + .binary 805CAD480000000444160000 + .binary 805CAD880000000443FA0000 + .binary 805CAE580000000443FA0000 + .binary 805CAE600000000443FA0000 + .binary 805CAE8C0000000444160000 + .binary 805CAEC40000000444160000 + .binary 805CAEF80000000444228000 + .binary 805CAF180000000444480000 + .binary 805CB1880000000444480000 + .binary 805CB41C0000000448742400 + .binary 805CCBE00000000443FA0000 + .binary 805CDDD00000000443FA0000 + .binary 0000000000000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OJ3.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OJ3.patch.s index 31f00bd0..9dfc55e4 100644 --- a/system/client-functions/DrawDistance/DrawDistance.3OJ3.patch.s +++ b/system/client-functions/DrawDistance/DrawDistance.3OJ3.patch.s @@ -9,69 +9,58 @@ reloc0: .offsetof start start: .include WriteCodeBlocksGC - # region @ 8000DFA0 (64 bytes) - .data 0x8000DFA0 # address - .data 0x00000040 # size - .data 0xC3C2C1F8 # 8000DFA0 => lfs f30, [r2 - 0x3E08] - .data 0xEFDE0072 # 8000DFA4 => fmuls f30, f30, f1 - .data 0x4E800020 # 8000DFA8 => blr - .data 0xC042C1F8 # 8000DFAC => lfs f2, [r2 - 0x3E08] - .data 0xC01E001C # 8000DFB0 => lfs f0, [r30 + 0x001C] - .data 0xEC0000B2 # 8000DFB4 => fmuls f0, f0, f2 - .data 0x4E800020 # 8000DFB8 => blr - .data 0xC382C1F8 # 8000DFBC => lfs f28, [r2 - 0x3E08] - .data 0xEF9C00B2 # 8000DFC0 => fmuls f28, f28, f2 - .data 0x4E800020 # 8000DFC4 => blr - .data 0xC002C1F8 # 8000DFC8 => lfs f0, [r2 - 0x3E08] - .data 0xC023000C # 8000DFCC => lfs f1, [r3 + 0x000C] - .data 0xEC000072 # 8000DFD0 => fmuls f0, f0, f1 - .data 0xD003000C # 8000DFD4 => stfs [r3 + 0x000C], f0 - .data 0x3C60804C # 8000DFD8 => lis r3, 0x804C - .data 0x4E800020 # 8000DFDC => blr - # region @ 80100AD0 (4 bytes) - .data 0x80100AD0 # address - .data 0x00000004 # size - .data 0x4BF0D4D1 # 80100AD0 => bl -0x000F2B30 /* 8000DFA0 */ - # region @ 801570B4 (4 bytes) - .data 0x801570B4 # address - .data 0x00000004 # size - .data 0x4BEB6EF9 # 801570B4 => bl -0x00149108 /* 8000DFAC */ - # region @ 801A203C (4 bytes) - .data 0x801A203C # address - .data 0x00000004 # size - .data 0x4BE6BF81 # 801A203C => bl -0x00194080 /* 8000DFBC */ - # region @ 801A223C (4 bytes) - .data 0x801A223C # address - .data 0x00000004 # size - .data 0x4BE6BD65 # 801A223C => bl -0x0019429C /* 8000DFA0 */ - # region @ 802058B8 (4 bytes) - .data 0x802058B8 # address - .data 0x00000004 # size - .data 0x4BE08711 # 802058B8 => bl -0x001F78F0 /* 8000DFC8 */ - # region @ 8020605C (4 bytes) - .data 0x8020605C # address - .data 0x00000004 # size - .data 0x4BE07F6D # 8020605C => bl -0x001F8094 /* 8000DFC8 */ - # region @ 805D29A8 (4 bytes) - .data 0x805D29A8 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805D29A8 => .invalid sc - # region @ 805D3854 (4 bytes) - .data 0x805D3854 # address - .data 0x00000004 # size - .data 0x47742400 # 805D3854 => .invalid sc - # region @ 805D3E7C (4 bytes) - .data 0x805D3E7C # address - .data 0x00000004 # size - .data 0x491C4000 # 805D3E7C => b +0x011C4000 /* 81797E7C */ - # region @ 805D4D08 (4 bytes) - .data 0x805D4D08 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805D4D08 => .invalid sc - # region @ 805D5298 (4 bytes) - .data 0x805D5298 # address - .data 0x00000004 # size - .data 0x44AF0000 # 805D5298 => .invalid sc - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size + .binary 804DB6B00000000443C80000 + .binary 804DB6C80000000443FA0000 + .binary 804DB6E00000000443FA0000 + .binary 804DB6F80000000443C80000 + .binary 805D29A80000000447AFC800 + .binary 805D38540000000447EF4200 + .binary 805D3E7C00000004491C4000 + .binary 805D3F380000000443C80000 + .binary 805D40880000000444480000 + .binary 805D41600000000444480000 + .binary 805D4674000000084448000044160000 + .binary 805D47980000000444160000 + .binary 805D48C80000000444480000 + .binary 805D48E80000000444480000 + .binary 805D49080000000444480000 + .binary 805D4A880000000444160000 + .binary 805D4ACC0000000444160000 + .binary 805D4ADC0000000444160000 + .binary 805D4AEC0000000444160000 + .binary 805D4AFC0000000444160000 + .binary 805D4B540000000443C80000 + .binary 805D4BA80000000444160000 + .binary 805D4BC80000000444160000 + .binary 805D4BE40000000444160000 + .binary 805D4C040000000444160000 + .binary 805D4C280000000444160000 + .binary 805D4C4C0000000444160000 + .binary 805D4D080000000447AFC800 + .binary 805D4F700000000444160000 + .binary 805D4F880000000443FA0000 + .binary 805D51380000000444480000 + .binary 805D51940000000444160000 + .binary 805D51B80000000444160000 + .binary 805D51C00000000443FA0000 + .binary 805D51F40000000443C80000 + .binary 805D52240000000444160000 + .binary 805D526C0000000444480000 + .binary 805D52980000000444480000 + .binary 805D52B80000000444160000 + .binary 805D53140000000444160000 + .binary 805D53280000000444160000 + .binary 805D533400000004442F0000 + .binary 805D53480000000444160000 + .binary 805D53880000000443FA0000 + .binary 805D54580000000443FA0000 + .binary 805D54600000000443FA0000 + .binary 805D548C0000000444160000 + .binary 805D54C40000000444160000 + .binary 805D54F80000000444228000 + .binary 805D55180000000444480000 + .binary 805D57880000000444480000 + .binary 805D5A1C0000000448742400 + .binary 805D71E80000000443FA0000 + .binary 805D83D80000000443FA0000 + .binary 0000000000000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OJ4.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OJ4.patch.s index 1cb8bcf5..cc8acb2a 100644 --- a/system/client-functions/DrawDistance/DrawDistance.3OJ4.patch.s +++ b/system/client-functions/DrawDistance/DrawDistance.3OJ4.patch.s @@ -9,69 +9,58 @@ reloc0: .offsetof start start: .include WriteCodeBlocksGC - # region @ 8000DFA0 (64 bytes) - .data 0x8000DFA0 # address - .data 0x00000040 # size - .data 0xC3C2C1F8 # 8000DFA0 => lfs f30, [r2 - 0x3E08] - .data 0xEFDE0072 # 8000DFA4 => fmuls f30, f30, f1 - .data 0x4E800020 # 8000DFA8 => blr - .data 0xC042C1F8 # 8000DFAC => lfs f2, [r2 - 0x3E08] - .data 0xC01E001C # 8000DFB0 => lfs f0, [r30 + 0x001C] - .data 0xEC0000B2 # 8000DFB4 => fmuls f0, f0, f2 - .data 0x4E800020 # 8000DFB8 => blr - .data 0xC382C1F8 # 8000DFBC => lfs f28, [r2 - 0x3E08] - .data 0xEF9C00B2 # 8000DFC0 => fmuls f28, f28, f2 - .data 0x4E800020 # 8000DFC4 => blr - .data 0xC002C1F8 # 8000DFC8 => lfs f0, [r2 - 0x3E08] - .data 0xC023000C # 8000DFCC => lfs f1, [r3 + 0x000C] - .data 0xEC000072 # 8000DFD0 => fmuls f0, f0, f1 - .data 0xD003000C # 8000DFD4 => stfs [r3 + 0x000C], f0 - .data 0x3C60804D # 8000DFD8 => lis r3, 0x804D - .data 0x4E800020 # 8000DFDC => blr - # region @ 80100B74 (4 bytes) - .data 0x80100B74 # address - .data 0x00000004 # size - .data 0x4BF0D42D # 80100B74 => bl -0x000F2BD4 /* 8000DFA0 */ - # region @ 80157218 (4 bytes) - .data 0x80157218 # address - .data 0x00000004 # size - .data 0x4BEB6D95 # 80157218 => bl -0x0014926C /* 8000DFAC */ - # region @ 801A21A0 (4 bytes) - .data 0x801A21A0 # address - .data 0x00000004 # size - .data 0x4BE6BE1D # 801A21A0 => bl -0x001941E4 /* 8000DFBC */ - # region @ 801A23A0 (4 bytes) - .data 0x801A23A0 # address - .data 0x00000004 # size - .data 0x4BE6BC01 # 801A23A0 => bl -0x00194400 /* 8000DFA0 */ - # region @ 80206640 (4 bytes) - .data 0x80206640 # address - .data 0x00000004 # size - .data 0x4BE07989 # 80206640 => bl -0x001F8678 /* 8000DFC8 */ - # region @ 80206DE4 (4 bytes) - .data 0x80206DE4 # address - .data 0x00000004 # size - .data 0x4BE071E5 # 80206DE4 => bl -0x001F8E1C /* 8000DFC8 */ - # region @ 805D9E48 (4 bytes) - .data 0x805D9E48 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805D9E48 => .invalid sc - # region @ 805DACF4 (4 bytes) - .data 0x805DACF4 # address - .data 0x00000004 # size - .data 0x47742400 # 805DACF4 => .invalid sc - # region @ 805DB31C (4 bytes) - .data 0x805DB31C # address - .data 0x00000004 # size - .data 0x491C4000 # 805DB31C => b +0x011C4000 /* 8179F31C */ - # region @ 805DC1A8 (4 bytes) - .data 0x805DC1A8 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805DC1A8 => .invalid sc - # region @ 805DC738 (4 bytes) - .data 0x805DC738 # address - .data 0x00000004 # size - .data 0x44AF0000 # 805DC738 => .invalid sc - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size + .binary 804DDC380000000443C80000 + .binary 804DDC500000000443FA0000 + .binary 804DDC680000000443FA0000 + .binary 804DDC800000000443C80000 + .binary 805D9E480000000447AFC800 + .binary 805DACF40000000447EF4200 + .binary 805DB31C00000004491C4000 + .binary 805DB3D80000000443C80000 + .binary 805DB5280000000444480000 + .binary 805DB6000000000444480000 + .binary 805DBB14000000084448000044160000 + .binary 805DBC380000000444160000 + .binary 805DBD680000000444480000 + .binary 805DBD880000000444480000 + .binary 805DBDA80000000444480000 + .binary 805DBF280000000444160000 + .binary 805DBF6C0000000444160000 + .binary 805DBF7C0000000444160000 + .binary 805DBF8C0000000444160000 + .binary 805DBF9C0000000444160000 + .binary 805DBFF40000000443C80000 + .binary 805DC0480000000444160000 + .binary 805DC0680000000444160000 + .binary 805DC0840000000444160000 + .binary 805DC0A40000000444160000 + .binary 805DC0C80000000444160000 + .binary 805DC0EC0000000444160000 + .binary 805DC1A80000000447AFC800 + .binary 805DC4100000000444160000 + .binary 805DC4280000000443FA0000 + .binary 805DC5D80000000444480000 + .binary 805DC6340000000444160000 + .binary 805DC6580000000444160000 + .binary 805DC6600000000443FA0000 + .binary 805DC6940000000443C80000 + .binary 805DC6C40000000444160000 + .binary 805DC70C0000000444480000 + .binary 805DC7380000000444480000 + .binary 805DC7580000000444160000 + .binary 805DC7B40000000444160000 + .binary 805DC7C80000000444160000 + .binary 805DC7D400000004442F0000 + .binary 805DC7E80000000444160000 + .binary 805DC8280000000443FA0000 + .binary 805DC8F80000000443FA0000 + .binary 805DC9000000000443FA0000 + .binary 805DC92C0000000444160000 + .binary 805DC9640000000444160000 + .binary 805DC9980000000444228000 + .binary 805DC9B80000000444480000 + .binary 805DCC280000000444480000 + .binary 805DCEBC0000000448742400 + .binary 805DE6880000000443FA0000 + .binary 805DF8780000000443FA0000 + .binary 0000000000000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OJ5.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OJ5.patch.s index c18accfd..2d6ab881 100644 --- a/system/client-functions/DrawDistance/DrawDistance.3OJ5.patch.s +++ b/system/client-functions/DrawDistance/DrawDistance.3OJ5.patch.s @@ -9,69 +9,58 @@ reloc0: .offsetof start start: .include WriteCodeBlocksGC - # region @ 8000DFA0 (64 bytes) - .data 0x8000DFA0 # address - .data 0x00000040 # size - .data 0xC3C2C1F8 # 8000DFA0 => lfs f30, [r2 - 0x3E08] - .data 0xEFDE0072 # 8000DFA4 => fmuls f30, f30, f1 - .data 0x4E800020 # 8000DFA8 => blr - .data 0xC042C1F8 # 8000DFAC => lfs f2, [r2 - 0x3E08] - .data 0xC01E001C # 8000DFB0 => lfs f0, [r30 + 0x001C] - .data 0xEC0000B2 # 8000DFB4 => fmuls f0, f0, f2 - .data 0x4E800020 # 8000DFB8 => blr - .data 0xC382C1F8 # 8000DFBC => lfs f28, [r2 - 0x3E08] - .data 0xEF9C00B2 # 8000DFC0 => fmuls f28, f28, f2 - .data 0x4E800020 # 8000DFC4 => blr - .data 0xC002C1F8 # 8000DFC8 => lfs f0, [r2 - 0x3E08] - .data 0xC023000C # 8000DFCC => lfs f1, [r3 + 0x000C] - .data 0xEC000072 # 8000DFD0 => fmuls f0, f0, f1 - .data 0xD003000C # 8000DFD4 => stfs [r3 + 0x000C], f0 - .data 0x3C60804D # 8000DFD8 => lis r3, 0x804D - .data 0x4E800020 # 8000DFDC => blr - # region @ 80100A50 (4 bytes) - .data 0x80100A50 # address - .data 0x00000004 # size - .data 0x4BF0D551 # 80100A50 => bl -0x000F2AB0 /* 8000DFA0 */ - # region @ 80157178 (4 bytes) - .data 0x80157178 # address - .data 0x00000004 # size - .data 0x4BEB6E35 # 80157178 => bl -0x001491CC /* 8000DFAC */ - # region @ 801A2100 (4 bytes) - .data 0x801A2100 # address - .data 0x00000004 # size - .data 0x4BE6BEBD # 801A2100 => bl -0x00194144 /* 8000DFBC */ - # region @ 801A2300 (4 bytes) - .data 0x801A2300 # address - .data 0x00000004 # size - .data 0x4BE6BCA1 # 801A2300 => bl -0x00194360 /* 8000DFA0 */ - # region @ 802063F4 (4 bytes) - .data 0x802063F4 # address - .data 0x00000004 # size - .data 0x4BE07BD5 # 802063F4 => bl -0x001F842C /* 8000DFC8 */ - # region @ 80206B98 (4 bytes) - .data 0x80206B98 # address - .data 0x00000004 # size - .data 0x4BE07431 # 80206B98 => bl -0x001F8BD0 /* 8000DFC8 */ - # region @ 805D9BE8 (4 bytes) - .data 0x805D9BE8 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805D9BE8 => .invalid sc - # region @ 805DAA94 (4 bytes) - .data 0x805DAA94 # address - .data 0x00000004 # size - .data 0x47742400 # 805DAA94 => .invalid sc - # region @ 805DB0BC (4 bytes) - .data 0x805DB0BC # address - .data 0x00000004 # size - .data 0x491C4000 # 805DB0BC => b +0x011C4000 /* 8179F0BC */ - # region @ 805DBF48 (4 bytes) - .data 0x805DBF48 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805DBF48 => .invalid sc - # region @ 805DC4D8 (4 bytes) - .data 0x805DC4D8 # address - .data 0x00000004 # size - .data 0x44AF0000 # 805DC4D8 => .invalid sc - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size + .binary 804DD9D80000000443C80000 + .binary 804DD9F00000000443FA0000 + .binary 804DDA080000000443FA0000 + .binary 804DDA200000000443C80000 + .binary 805D9BE80000000447AFC800 + .binary 805DAA940000000447EF4200 + .binary 805DB0BC00000004491C4000 + .binary 805DB1780000000443C80000 + .binary 805DB2C80000000444480000 + .binary 805DB3A00000000444480000 + .binary 805DB8B4000000084448000044160000 + .binary 805DB9D80000000444160000 + .binary 805DBB080000000444480000 + .binary 805DBB280000000444480000 + .binary 805DBB480000000444480000 + .binary 805DBCC80000000444160000 + .binary 805DBD0C0000000444160000 + .binary 805DBD1C0000000444160000 + .binary 805DBD2C0000000444160000 + .binary 805DBD3C0000000444160000 + .binary 805DBD940000000443C80000 + .binary 805DBDE80000000444160000 + .binary 805DBE080000000444160000 + .binary 805DBE240000000444160000 + .binary 805DBE440000000444160000 + .binary 805DBE680000000444160000 + .binary 805DBE8C0000000444160000 + .binary 805DBF480000000447AFC800 + .binary 805DC1B00000000444160000 + .binary 805DC1C80000000443FA0000 + .binary 805DC3780000000444480000 + .binary 805DC3D40000000444160000 + .binary 805DC3F80000000444160000 + .binary 805DC4000000000443FA0000 + .binary 805DC4340000000443C80000 + .binary 805DC4640000000444160000 + .binary 805DC4AC0000000444480000 + .binary 805DC4D80000000444480000 + .binary 805DC4F80000000444160000 + .binary 805DC5540000000444160000 + .binary 805DC5680000000444160000 + .binary 805DC57400000004442F0000 + .binary 805DC5880000000444160000 + .binary 805DC5C80000000443FA0000 + .binary 805DC6980000000443FA0000 + .binary 805DC6A00000000443FA0000 + .binary 805DC6CC0000000444160000 + .binary 805DC7040000000444160000 + .binary 805DC7380000000444228000 + .binary 805DC7580000000444480000 + .binary 805DC9C80000000444480000 + .binary 805DCC5C0000000448742400 + .binary 805DE4280000000443FA0000 + .binary 805DF6180000000443FA0000 + .binary 0000000000000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OP0.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OP0.patch.s index 76a0f568..6c863bda 100644 --- a/system/client-functions/DrawDistance/DrawDistance.3OP0.patch.s +++ b/system/client-functions/DrawDistance/DrawDistance.3OP0.patch.s @@ -9,69 +9,58 @@ reloc0: .offsetof start start: .include WriteCodeBlocksGC - # region @ 8000DFA0 (64 bytes) - .data 0x8000DFA0 # address - .data 0x00000040 # size - .data 0xC3C2C200 # 8000DFA0 => lfs f30, [r2 - 0x3E00] - .data 0xEFDE0072 # 8000DFA4 => fmuls f30, f30, f1 - .data 0x4E800020 # 8000DFA8 => blr - .data 0xC042C200 # 8000DFAC => lfs f2, [r2 - 0x3E00] - .data 0xC01E001C # 8000DFB0 => lfs f0, [r30 + 0x001C] - .data 0xEC0000B2 # 8000DFB4 => fmuls f0, f0, f2 - .data 0x4E800020 # 8000DFB8 => blr - .data 0xC382C200 # 8000DFBC => lfs f28, [r2 - 0x3E00] - .data 0xEF9C00B2 # 8000DFC0 => fmuls f28, f28, f2 - .data 0x4E800020 # 8000DFC4 => blr - .data 0xC002C200 # 8000DFC8 => lfs f0, [r2 - 0x3E00] - .data 0xC023000C # 8000DFCC => lfs f1, [r3 + 0x000C] - .data 0xEC000072 # 8000DFD0 => fmuls f0, f0, f1 - .data 0xD003000C # 8000DFD4 => stfs [r3 + 0x000C], f0 - .data 0x3C60804D # 8000DFD8 => lis r3, 0x804D - .data 0x4E800020 # 8000DFDC => blr - # region @ 80100C50 (4 bytes) - .data 0x80100C50 # address - .data 0x00000004 # size - .data 0x4BF0D351 # 80100C50 => bl -0x000F2CB0 /* 8000DFA0 */ - # region @ 801576A0 (4 bytes) - .data 0x801576A0 # address - .data 0x00000004 # size - .data 0x4BEB690D # 801576A0 => bl -0x001496F4 /* 8000DFAC */ - # region @ 801A2628 (4 bytes) - .data 0x801A2628 # address - .data 0x00000004 # size - .data 0x4BE6B995 # 801A2628 => bl -0x0019466C /* 8000DFBC */ - # region @ 801A2828 (4 bytes) - .data 0x801A2828 # address - .data 0x00000004 # size - .data 0x4BE6B779 # 801A2828 => bl -0x00194888 /* 8000DFA0 */ - # region @ 80206124 (4 bytes) - .data 0x80206124 # address - .data 0x00000004 # size - .data 0x4BE07EA5 # 80206124 => bl -0x001F815C /* 8000DFC8 */ - # region @ 802068C8 (4 bytes) - .data 0x802068C8 # address - .data 0x00000004 # size - .data 0x4BE07701 # 802068C8 => bl -0x001F8900 /* 8000DFC8 */ - # region @ 805D5730 (4 bytes) - .data 0x805D5730 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805D5730 => .invalid sc - # region @ 805D65DC (4 bytes) - .data 0x805D65DC # address - .data 0x00000004 # size - .data 0x47742400 # 805D65DC => .invalid sc - # region @ 805D6C04 (4 bytes) - .data 0x805D6C04 # address - .data 0x00000004 # size - .data 0x491C4000 # 805D6C04 => b +0x011C4000 /* 8179AC04 */ - # region @ 805D7A90 (4 bytes) - .data 0x805D7A90 # address - .data 0x00000004 # size - .data 0x47AFC800 # 805D7A90 => .invalid sc - # region @ 805D8020 (4 bytes) - .data 0x805D8020 # address - .data 0x00000004 # size - .data 0x44AF0000 # 805D8020 => .invalid sc - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size + .binary 804DE1D80000000443C80000 + .binary 804DE1F00000000443FA0000 + .binary 804DE2080000000443FA0000 + .binary 804DE2200000000443C80000 + .binary 805D57300000000447AFC800 + .binary 805D65DC0000000447EF4200 + .binary 805D6C0400000004491C4000 + .binary 805D6CC00000000443C80000 + .binary 805D6E100000000444480000 + .binary 805D6EE80000000444480000 + .binary 805D73FC000000084448000044160000 + .binary 805D75200000000444160000 + .binary 805D76500000000444480000 + .binary 805D76700000000444480000 + .binary 805D76900000000444480000 + .binary 805D78100000000444160000 + .binary 805D78540000000444160000 + .binary 805D78640000000444160000 + .binary 805D78740000000444160000 + .binary 805D78840000000444160000 + .binary 805D78DC0000000443C80000 + .binary 805D79300000000444160000 + .binary 805D79500000000444160000 + .binary 805D796C0000000444160000 + .binary 805D798C0000000444160000 + .binary 805D79B00000000444160000 + .binary 805D79D40000000444160000 + .binary 805D7A900000000447AFC800 + .binary 805D7CF80000000444160000 + .binary 805D7D100000000443FA0000 + .binary 805D7EC00000000444480000 + .binary 805D7F1C0000000444160000 + .binary 805D7F400000000444160000 + .binary 805D7F480000000443FA0000 + .binary 805D7F7C0000000443C80000 + .binary 805D7FAC0000000444160000 + .binary 805D7FF40000000444480000 + .binary 805D80200000000444480000 + .binary 805D80400000000444160000 + .binary 805D809C0000000444160000 + .binary 805D80B00000000444160000 + .binary 805D80BC00000004442F0000 + .binary 805D80D00000000444160000 + .binary 805D81100000000443FA0000 + .binary 805D81E00000000443FA0000 + .binary 805D81E80000000443FA0000 + .binary 805D82140000000444160000 + .binary 805D824C0000000444160000 + .binary 805D82800000000444228000 + .binary 805D82A00000000444480000 + .binary 805D85100000000444480000 + .binary 805D87A40000000448742400 + .binary 805D9F700000000443FA0000 + .binary 805DB1600000000443FA0000 + .binary 0000000000000000