diff --git a/src/CommandFormats.hh b/src/CommandFormats.hh index 28e7facd..60988865 100644 --- a/src/CommandFormats.hh +++ b/src/CommandFormats.hh @@ -6364,7 +6364,7 @@ struct G_SetMesetaSlotPrizeResult_BB_6xE3 { ItemData item; } __packed_ws__(G_SetMesetaSlotPrizeResult_BB_6xE3, 0x18); -// 6xE4: Invalid subcommand +// 6xE4: Invalid subcommand (but used as an extension; see end of this file) // 6xE5: Invalid subcommand // 6xE6: Invalid subcommand // 6xE7: Invalid subcommand @@ -7430,3 +7430,16 @@ struct G_RejectBattleStartRequest_Ep3_6xB4x53 { // DC v2: PSODCV2CharacterFile // GC v3: PSOGCCharacterFile::Character // XB v3: PSOXBCharacterFileCharacter + +// 6xE4: Increment enemy damage threshold +// This command increments or decrements the minimum amount of damage an enemy +// has sustained. This threshold is used to mitigate the effects of damage +// cancellation due to the original game's 6x0A implementation. + +struct G_IncrementEnemyDamageThreshold_Extension_6xE4 { + G_EntityIDHeader header = {0xE4, sizeof(G_IncrementEnemyDamageThreshold_Extension_6xE4) / 4, 0x0000}; + le_int16_t hit_amount = 0; + le_uint16_t total_damage_before_hit = 0; + le_uint16_t current_hp_before_hit = 0; + le_uint16_t max_hp = 0; +} __packed_ws__(G_IncrementEnemyDamageThreshold_Extension_6xE4, 0x0C); diff --git a/src/FunctionCompiler.cc b/src/FunctionCompiler.cc index 7e829eef..ece1b766 100644 --- a/src/FunctionCompiler.cc +++ b/src/FunctionCompiler.cc @@ -96,11 +96,9 @@ string CompiledFunctionCode::generate_client_command( size_t suffix_size, uint32_t override_relocations_offset) const { if (this->arch == Architecture::POWERPC) { - return this->generate_client_command_t( - label_writes, suffix_data, suffix_size, override_relocations_offset); + return this->generate_client_command_t(label_writes, suffix_data, suffix_size, override_relocations_offset); } else if ((this->arch == Architecture::X86) || (this->arch == Architecture::SH4)) { - return this->generate_client_command_t( - label_writes, suffix_data, suffix_size, override_relocations_offset); + return this->generate_client_command_t(label_writes, suffix_data, suffix_size, override_relocations_offset); } else { throw logic_error("invalid architecture"); } @@ -110,18 +108,12 @@ bool CompiledFunctionCode::is_big_endian() const { return this->arch == Architecture::POWERPC; } -shared_ptr compile_function_code( +static vector> compile_function_code( CompiledFunctionCode::Architecture arch, const string& function_directory, const string& system_directory, const string& name, const string& text) { - auto ret = make_shared(); - ret->arch = arch; - ret->short_name = name; - ret->index = 0; - ret->hide_from_patches_menu = false; - unordered_set get_include_stack; function get_include = [&](const string& name) -> string { const char* arch_name_token; @@ -177,56 +169,135 @@ shared_ptr compile_function_code( throw runtime_error("data not found for include: " + name + " (from " + asm_filename + " or " + bin_filename + ")"); }; - ResourceDASM::EmulatorBase::AssembleResult assembled; - if (arch == CompiledFunctionCode::Architecture::POWERPC) { - assembled = ResourceDASM::PPC32Emulator::assemble(text, get_include); - } else if (arch == CompiledFunctionCode::Architecture::X86) { - assembled = ResourceDASM::X86Emulator::assemble(text, get_include); - } else if (arch == CompiledFunctionCode::Architecture::SH4) { - assembled = ResourceDASM::SH4Emulator::assemble(text, get_include); - } else { - throw runtime_error("invalid architecture"); - } - ret->code = std::move(assembled.code); - ret->label_offsets = std::move(assembled.label_offsets); - for (const auto& it : assembled.metadata_keys) { - if (it.first == "hide_from_patches_menu") { - ret->hide_from_patches_menu = true; - } else if (it.first == "index") { - if (it.second.size() != 1) { - throw runtime_error("invalid index value in .meta directive"); + // Handle VERS tokens + vector specific_versions; + auto lines = phosg::split(text, '\n'); + for (auto& line : lines) { + if (line.starts_with(".versions ")) { + if (!specific_versions.empty()) { + throw std::runtime_error("multiple .versions directives in file"); } - ret->index = it.second[0]; - } else if (it.first == "name") { - ret->long_name = it.second; - } else if (it.first == "description") { - ret->description = it.second; - } else { - throw runtime_error("unknown metadata key: " + it.first); + for (auto& vers_token : phosg::split(line.substr(10), ' ')) { + phosg::strip_whitespace(vers_token); + if (vers_token.empty()) { + continue; + } + if (vers_token.size() != 4) { + throw std::runtime_error("invalid token in .version directive: " + vers_token); + } + specific_versions.emplace_back(*reinterpret_cast(vers_token.data())); + } + line.clear(); } } - set reloc_indexes; - for (const auto& it : ret->label_offsets) { - if (it.first.starts_with("reloc")) { - reloc_indexes.emplace(it.second / 4); + // Preprocess tokens in the text if a .versions directive was given + vector version_texts; + if (specific_versions.empty()) { + specific_versions.emplace_back(0); + version_texts.emplace_back(text); + + } else { + vector> version_lines; + version_lines.resize(specific_versions.size()); + + size_t line_num = 1; + for (const auto& line : lines) { + size_t vers_offset = line.find("', vers_offset + 6); + if (end_offset == string::npos) { + throw runtime_error(std::format("(line {}) unterminated replacement", line_num)); + } + auto tokens = phosg::split(version_line.substr(vers_offset + 6, end_offset - vers_offset - 6), ' '); + if (tokens.size() != specific_versions.size()) { + throw runtime_error(std::format("(line {}) invalid replacement", line_num)); + } + version_line = version_line.substr(0, vers_offset) + tokens.at(vers_index) + version_line.substr(end_offset + 1); + vers_offset = version_line.find("entrypoint_offset_offset = ret->label_offsets.at("entry_ptr"); - } catch (const out_of_range&) { - throw runtime_error("code does not contain entry_ptr label"); - } + vector> ret; + for (size_t vers_index = 0; vers_index < specific_versions.size(); vers_index++) { + uint32_t specific_version = specific_versions[vers_index]; + const auto& version_text = version_texts.at(vers_index); - uint32_t prev_index = 0; - for (const auto& it : reloc_indexes) { - uint32_t delta = it - prev_index; - if (delta > 0xFFFF) { - throw runtime_error("relocation delta too far away"); + try { + ResourceDASM::EmulatorBase::AssembleResult assembled; + if (arch == CompiledFunctionCode::Architecture::POWERPC) { + assembled = ResourceDASM::PPC32Emulator::assemble(version_text, get_include); + } else if (arch == CompiledFunctionCode::Architecture::X86) { + assembled = ResourceDASM::X86Emulator::assemble(version_text, get_include); + } else if (arch == CompiledFunctionCode::Architecture::SH4) { + assembled = ResourceDASM::SH4Emulator::assemble(version_text, get_include); + } else { + throw runtime_error("invalid architecture"); + } + + auto compiled = ret.emplace_back(make_shared()); + compiled->arch = arch; + compiled->short_name = name; + compiled->specific_version = specific_version; + compiled->code = std::move(assembled.code); + compiled->label_offsets = std::move(assembled.label_offsets); + for (const auto& it : assembled.metadata_keys) { + if (it.first == "hide_from_patches_menu") { + compiled->hide_from_patches_menu = true; + } else if (it.first == "name") { + compiled->long_name = it.second; + } else if (it.first == "description") { + compiled->description = it.second; + } else { + throw runtime_error("unknown metadata key: " + it.first); + } + } + + set reloc_indexes; + for (const auto& it : compiled->label_offsets) { + if (it.first.starts_with("reloc")) { + reloc_indexes.emplace(it.second / 4); + } + } + + try { + compiled->entrypoint_offset_offset = compiled->label_offsets.at("entry_ptr"); + } catch (const out_of_range&) { + throw runtime_error("code does not contain entry_ptr label"); + } + + uint32_t prev_index = 0; + for (const auto& it : reloc_indexes) { + uint32_t delta = it - prev_index; + if (delta > 0xFFFF) { + throw runtime_error("relocation delta too far away"); + } + compiled->relocation_deltas.emplace_back(delta); + prev_index = it; + } + + } catch (const exception& e) { + string version_str = specific_version ? (" (" + str_for_specific_version(specific_version) + ")") : ""; + function_compiler_log.warning_f("Failed to compile function {}{}: {}", name, version_str, e.what()); } - ret->relocation_deltas.emplace_back(delta); - prev_index = it; } return ret; @@ -239,21 +310,16 @@ FunctionCodeIndex::FunctionCodeIndex(const string& directory) { for (const auto& item : std::filesystem::directory_iterator(directory)) { string subdir_name = item.path().filename().string(); string subdir_path = directory.ends_with("/") ? (directory + subdir_name) : (directory + "/" + subdir_name); - if (!std::filesystem::is_directory(subdir_path)) { - function_compiler_log.warning_f("Skipping {} (not a directory)", subdir_name); - continue; - } - for (const auto& item : std::filesystem::directory_iterator(subdir_path)) { - string filename = item.path().filename().string(); + auto add_file = [&](string filename) -> void { try { if (!filename.ends_with(".s")) { - continue; + return; } string name = filename.substr(0, filename.size() - 2); if (name.ends_with(".inc")) { - continue; + return; } bool is_patch = name.ends_with(".patch"); @@ -299,33 +365,41 @@ FunctionCodeIndex::FunctionCodeIndex(const string& directory) { string path = subdir_path + "/" + filename; string text = phosg::load_file(path); - auto code = compile_function_code(arch, subdir_path, system_dir_path, name, text); - if (code->index != 0) { - if (!this->index_to_function.emplace(code->index, code).second) { - throw runtime_error(std::format( - "duplicate function index: {:08X}", code->index)); + for (auto code : compile_function_code(arch, subdir_path, system_dir_path, name, text)) { + if (code->specific_version == 0) { + code->specific_version = specific_version; + } + code->source_path = path; + code->short_name = short_name; + this->name_to_function.emplace(name, code); + if (is_patch) { + code->menu_item_id = next_menu_item_id++; + this->menu_item_id_and_specific_version_to_patch_function.emplace( + static_cast(code->menu_item_id) << 32 | code->specific_version, code); + this->name_and_specific_version_to_patch_function.emplace( + std::format("{}-{:08X}", code->short_name, code->specific_version), code); } - } - code->specific_version = specific_version; - code->source_path = path; - code->short_name = short_name; - this->name_to_function.emplace(name, code); - if (is_patch) { - code->menu_item_id = next_menu_item_id++; - this->menu_item_id_and_specific_version_to_patch_function.emplace( - static_cast(code->menu_item_id) << 32 | specific_version, code); - this->name_and_specific_version_to_patch_function.emplace( - std::format("{}-{:08X}", short_name, specific_version), code); - } - string index_prefix = code->index ? std::format("{:02X} => ", code->index) : ""; - string patch_prefix = is_patch ? std::format("[{:08X}/{:08X}] ", code->menu_item_id, code->specific_version) : ""; - function_compiler_log.debug_f("Compiled function {}{}{} ({})", - index_prefix, patch_prefix, name, name_for_architecture(code->arch)); + string patch_prefix = is_patch ? std::format("[{:08X}] ", code->menu_item_id) : ""; + function_compiler_log.debug_f("Compiled function {}{} ({}; {})", + patch_prefix, name, str_for_specific_version(code->specific_version), name_for_architecture(code->arch)); + } } catch (const exception& e) { function_compiler_log.warning_f("Failed to compile function {}: {}", filename, e.what()); } + }; + + if (std::filesystem::is_regular_file(subdir_path)) { + add_file(subdir_path); + } else if (std::filesystem::is_directory(subdir_path)) { + for (const auto& item : std::filesystem::directory_iterator(subdir_path)) { + string filename = item.path().filename().string(); + add_file(filename); + } + } else { + function_compiler_log.warning_f("Skipping {} (unknown file type)", subdir_name); + continue; } } } diff --git a/src/FunctionCompiler.hh b/src/FunctionCompiler.hh index 553b4236..c4277c7f 100644 --- a/src/FunctionCompiler.hh +++ b/src/FunctionCompiler.hh @@ -25,15 +25,14 @@ struct CompiledFunctionCode { std::string code; std::vector relocation_deltas; std::unordered_map label_offsets; - uint32_t entrypoint_offset_offset; + uint32_t entrypoint_offset_offset = 0; std::string source_path; // Path to source file from newserv root std::string short_name; // Based on filename std::string long_name; // From .meta name directive std::string description; // From .meta description directive - uint8_t index; // 0 = unused (not registered in index_to_function) - uint32_t menu_item_id; - bool hide_from_patches_menu; - uint32_t specific_version; + uint32_t menu_item_id = 0; + bool hide_from_patches_menu = false; + uint32_t specific_version = 0; // 0 = not a client-selectable patch bool is_big_endian() const; @@ -52,12 +51,6 @@ struct CompiledFunctionCode { const char* name_for_architecture(CompiledFunctionCode::Architecture arch); -std::shared_ptr compile_function_code( - CompiledFunctionCode::Architecture arch, - const std::string& directory, - const std::string& name, - const std::string& text); - struct FunctionCodeIndex { FunctionCodeIndex() = default; explicit FunctionCodeIndex(const std::string& directory); diff --git a/src/Main.cc b/src/Main.cc index 2ddf874b..18656722 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -1660,9 +1660,10 @@ Action a_assemble_all_patches( phosg::StringWriter w; string data = prepare_send_function_call_data( code, {}, nullptr, 0, checksum_addr, checksum_size, override_start_addr, encrypted); - w.put(PSOCommandHeaderDCV3{.command = 0xB2, .flag = code->index, .size = data.size() + 4}); + w.put(PSOCommandHeaderDCV3{.command = 0xB2, .flag = 0x00, .size = data.size() + 4}); w.write(data); - string out_path = code->source_path + (encrypted ? ".enc.bin" : ".std.bin"); + string out_path = std::format("{}.{}.{}.bin", + code->source_path, str_for_specific_version(code->specific_version), (encrypted ? "enc" : "std")); phosg::save_file(out_path, w.str()); phosg::fwrite_fmt(stderr, "... {}\n", out_path); } diff --git a/src/ReceiveSubcommands.cc b/src/ReceiveSubcommands.cc index 379371c4..0f4d0c97 100644 --- a/src/ReceiveSubcommands.cc +++ b/src/ReceiveSubcommands.cc @@ -5408,7 +5408,7 @@ const SubcommandDefinition subcommand_definitions[0x100] = { /* 6xE1 */ {NONE, NONE, 0xE1, on_quest_F95F_result_bb}, /* 6xE2 */ {NONE, NONE, 0xE2, on_quest_F960_result_bb}, /* 6xE3 */ {NONE, NONE, 0xE3, on_invalid}, - /* 6xE4 */ {NONE, NONE, 0xE4, on_invalid}, + /* 6xE4 */ {NONE, NONE, 0xE4, forward_subcommand_with_entity_id_transcode_t}, // Extended subcommand; see CommandFormats.hh /* 6xE5 */ {NONE, NONE, 0xE5, on_invalid}, /* 6xE6 */ {NONE, NONE, 0xE6, on_invalid}, /* 6xE7 */ {NONE, NONE, 0xE7, on_invalid}, diff --git a/src/SendCommands.cc b/src/SendCommands.cc index 5b8228ab..4f51165c 100644 --- a/src/SendCommands.cc +++ b/src/SendCommands.cc @@ -496,7 +496,7 @@ void send_function_call( code, label_writes, suffix_data, suffix_size, checksum_addr, checksum_size, override_relocations_offset, Client::check_flag(client_enabled_flags, Client::Flag::ENCRYPTED_SEND_FUNCTION_CALL)); - ch->send(0xB2, code ? code->index : 0x00, data); + ch->send(0xB2, 0x00, data); } asio::awaitable send_protected_command( diff --git a/src/Version.cc b/src/Version.cc index 7cadf5f5..2a39ea70 100644 --- a/src/Version.cc +++ b/src/Version.cc @@ -228,38 +228,27 @@ bool specific_version_is_pc_v2(uint32_t specific_version) { } bool specific_version_is_gc(uint32_t specific_version) { - // GC specific_versions are 3GRV, where G is [OS], R is [JEP], V is [0-9T] - if ((specific_version & 0xFF000000) != 0x33000000) { - return false; - } - char game = specific_version >> 16; - if ((game != 'O') && (game != 'S')) { - return false; - } - char region = specific_version >> 8; - if ((region != 'J') && (region != 'E') && (region != 'P')) { - return false; - } - char revision = specific_version; - return (isdigit(revision) || (revision == 'T')); + // GC specific_versions are 3___ + return ((specific_version & 0xFF000000) == 0x33000000); } bool specific_version_is_xb(uint32_t specific_version) { - // XB specific_versions are 4ORV, where R is [JEP], V is [BDU] - if ((specific_version & 0xFFFF0000) != 0x344F0000) { - return false; - } - char region = specific_version >> 8; - if ((region != 'J') && (region != 'E') && (region != 'P')) { - return false; - } - char revision = specific_version; - return ((revision == 'B') || (revision == 'D') || (revision == 'U')); + // XB specific_versions are 4O__ + return ((specific_version & 0xFF000000) == 0x34000000); } bool specific_version_is_bb(uint32_t specific_version) { // BB specific_versions are 5XXX, where X is an encoding of the revision number - return (specific_version & 0xFF000000) == 0x35000000; + return ((specific_version & 0xFF000000) == 0x35000000); +} + +string str_for_specific_version(uint32_t specific_version) { + string ret; + for (size_t z = 0; z < 4; z++) { + char ch = specific_version >> (24 - (z << 3)); + ret.push_back(isalnum(ch) ? ch : '_'); + } + return ret; } const char* file_path_token_for_version(Version version) { diff --git a/src/Version.hh b/src/Version.hh index 3a084b56..0a769eba 100644 --- a/src/Version.hh +++ b/src/Version.hh @@ -218,6 +218,8 @@ bool specific_version_is_gc(uint32_t specific_version); bool specific_version_is_xb(uint32_t specific_version); bool specific_version_is_bb(uint32_t specific_version); +std::string str_for_specific_version(uint32_t specific_version); + enum class ServerBehavior { PC_CONSOLE_DETECT = 0, GAME_SERVER, diff --git a/system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.59NL.patch.s b/system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.59NL.patch.s deleted file mode 100644 index d86bfb14..00000000 --- a/system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.59NL.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -# This patch disables the logic that causes all unlockable areas to be open by -# default for all players, instead restoring the logic that checks quest flags -# to open areas (as previous PSO versions used). - -# This patch is intended to be used in the BBRequiredPatches field in -# config.json if you want the classic behavior, hence the presence of the -# hide_from_patches_menu directive here. - -.meta name="Classic main warp behavior" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksBB - .data 0x0064A5DE # Episode 1 - .data 1 - .binary 01 - .data 0x0064A448 # Episode 2 - .data 2 - .binary 0100 - .data 0x0064A529 # Episode 4 - .data 1 - .binary 01 - .data 0x0064A658 # Non-Normal difficulty check - .data 2 - nop - nop - .data 0 - .data 0 diff --git a/system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.59NJ.patch.s b/system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.5___.patch.s similarity index 73% rename from system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.59NJ.patch.s rename to system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.5___.patch.s index 46249af6..5740cb79 100644 --- a/system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.59NJ.patch.s +++ b/system/client-functions/BlueBurstExclusive/ClassicMainWarpBehavior.5___.patch.s @@ -10,21 +10,23 @@ .meta description="" .meta hide_from_patches_menu +.versions 59NJ 59NL + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksBB - .data 0x0064A642 # Episode 1 + .data # Episode 1 .data 1 .binary 01 - .data 0x0064A4AC # Episode 2 + .data # Episode 2 .data 2 .binary 0100 - .data 0x0064A58D # Episode 4 + .data # Episode 4 .data 1 .binary 01 - .data 0x0064A6BC # Non-Normal difficulty check + .data # Non-Normal difficulty check .data 2 nop nop diff --git a/system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.59NL.patch.s b/system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.59NL.patch.s deleted file mode 100644 index 18827f71..00000000 --- a/system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.59NL.patch.s +++ /dev/null @@ -1,26 +0,0 @@ -# It would be a bad idea to remove `.meta hide_from_patches_menu` to make this -# patch an option for players to be able to select; either all players on the -# server should have this patch, or none should have it. - -# This patch clears the list of unreleased items on the client, so the client -# never creates buggy items when the server generates an item that wasn't -# released on the official servers. - -.meta name="Clear unreleased item list" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start -start: - xor eax, eax - mov edx, esp - mov esp, 0x009F81B0 - mov ecx, 0x3C -again: - push 0 - dec ecx - jnz again - mov esp, edx - ret diff --git a/system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.59NJ.patch.s b/system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.5___.patch.s similarity index 91% rename from system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.59NJ.patch.s rename to system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.5___.patch.s index 8b7f09b0..e5ebc9fe 100644 --- a/system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.59NJ.patch.s +++ b/system/client-functions/BlueBurstExclusive/ClearUnreleasedItemList.5___.patch.s @@ -10,13 +10,15 @@ .meta description="" .meta hide_from_patches_menu +.versions 59NJ 59NL + entry_ptr: reloc0: .offsetof start start: xor eax, eax mov edx, esp - mov esp, 0x009F61B0 + mov esp, mov ecx, 0x3C again: push 0 diff --git a/system/client-functions/BugFixes/BugFixes.3OE0.patch.s b/system/client-functions/BugFixes/BugFixes.3OE0.patch.s deleted file mode 100644 index f60ebd19..00000000 --- a/system/client-functions/BugFixes/BugFixes.3OE0.patch.s +++ /dev/null @@ -1,564 +0,0 @@ -.meta name="Bug fixes" -.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B088 (88 bytes) - .data 0x8000B088 # address - .data 0x00000058 # size - .data 0x7FA3EB78 # 8000B088 => mr r3, r29 - .data 0x38800000 # 8000B08C => li r4, 0x0000 - .data 0x481AEB11 # 8000B090 => bl +0x001AEB10 /* 801B9BA0 */ - .data 0x7FA3EB78 # 8000B094 => mr r3, r29 - .data 0x481AEDE0 # 8000B098 => b +0x001AEDE0 /* 801B9E78 */ - .data 0x881F0000 # 8000B09C => lbz r0, [r31] - .data 0x28090001 # 8000B0A0 => cmplwi r9, 1 - .data 0x4082000C # 8000B0A4 => bne +0x0000000C /* 8000B0B0 */ - .data 0x881F0001 # 8000B0A8 => lbz r0, [r31 + 0x0001] - .data 0x3BFF0002 # 8000B0AC => addi r31, r31, 0x0002 - .data 0x48100B68 # 8000B0B0 => b +0x00100B68 /* 8010BC18 */ - .data 0x39200000 # 8000B0B4 => li r9, 0x0000 - .data 0x48100AF9 # 8000B0B8 => bl +0x00100AF8 /* 8010BBB0 */ - .data 0x7F43D378 # 8000B0BC => mr r3, r26 - .data 0x7F64DB78 # 8000B0C0 => mr r4, r27 - .data 0x7F85E378 # 8000B0C4 => mr r5, r28 - .data 0x7FA6EB78 # 8000B0C8 => mr r6, r29 - .data 0x7FC7F378 # 8000B0CC => mr r7, r30 - .data 0x7FE8FB78 # 8000B0D0 => mr r8, r31 - .data 0x39200001 # 8000B0D4 => li r9, 0x0001 - .data 0x48100AD9 # 8000B0D8 => bl +0x00100AD8 /* 8010BBB0 */ - .data 0x48102F64 # 8000B0DC => b +0x00102F64 /* 8010E040 */ - # region @ 8000B5C8 (20 bytes) - .data 0x8000B5C8 # address - .data 0x00000014 # size - .data 0x80630098 # 8000B5C8 => lwz r3, [r3 + 0x0098] - .data 0x483D5999 # 8000B5CC => bl +0x003D5998 /* 803E0F64 */ - .data 0x807F042C # 8000B5D0 => lwz r3, [r31 + 0x042C] - .data 0x809F0430 # 8000B5D4 => lwz r4, [r31 + 0x0430] - .data 0x48178C7C # 8000B5D8 => b +0x00178C7C /* 80184254 */ - # region @ 8000BBD0 (32 bytes) - .data 0x8000BBD0 # address - .data 0x00000020 # size - .data 0x809F0370 # 8000BBD0 => lwz r4, [r31 + 0x0370] - .data 0x3884FC00 # 8000BBD4 => subi r4, r4, 0x0400 - .data 0x909F0370 # 8000BBD8 => stw [r31 + 0x0370], r4 - .data 0x807F0014 # 8000BBDC => lwz r3, [r31 + 0x0014] - .data 0x28030000 # 8000BBE0 => cmplwi r3, 0 - .data 0x41820008 # 8000BBE4 => beq +0x00000008 /* 8000BBEC */ - .data 0x90830060 # 8000BBE8 => stw [r3 + 0x0060], r4 - .data 0x48165428 # 8000BBEC => b +0x00165428 /* 80171014 */ - # region @ 8000C3F8 (124 bytes) - .data 0x8000C3F8 # address - .data 0x0000007C # size - .data 0x28040000 # 8000C3F8 => cmplwi r4, 0 - .data 0x4D820020 # 8000C3FC => beqlr - .data 0x9421FFF0 # 8000C400 => stwu [r1 - 0x0010], r1 - .data 0x481AD7A0 # 8000C404 => b +0x001AD7A0 /* 801B9BA4 */ - .data 0x9421FFE0 # 8000C408 => stwu [r1 - 0x0020], r1 - .data 0x7C0802A6 # 8000C40C => mflr r0 - .data 0x90010024 # 8000C410 => stw [r1 + 0x0024], r0 - .data 0xBF410008 # 8000C414 => stmw [r1 + 0x0008], r26 - .data 0x7C7F1B78 # 8000C418 => mr r31, r3 - .data 0x4BFFFFDD # 8000C41C => bl -0x00000024 /* 8000C3F8 */ - .data 0x3BC00000 # 8000C420 => li r30, 0x0000 - .data 0x3BBF0D04 # 8000C424 => addi r29, r31, 0x0D04 - .data 0x837F032C # 8000C428 => lwz r27, [r31 + 0x032C] - .data 0x839D0000 # 8000C42C => lwz r28, [r29] - .data 0x7F83E379 # 8000C430 => mr. r3, r28 - .data 0x41820018 # 8000C434 => beq +0x00000018 /* 8000C44C */ - .data 0x38800001 # 8000C438 => li r4, 0x0001 - .data 0x480FED81 # 8000C43C => bl +0x000FED80 /* 8010B1BC */ - .data 0x7F83E378 # 8000C440 => mr r3, r28 - .data 0x38800001 # 8000C444 => li r4, 0x0001 - .data 0x480FEEF1 # 8000C448 => bl +0x000FEEF0 /* 8010B338 */ - .data 0x3BBD0004 # 8000C44C => addi r29, r29, 0x0004 - .data 0x3BDE0001 # 8000C450 => addi r30, r30, 0x0001 - .data 0x2C1E000D # 8000C454 => cmpwi r30, 13 - .data 0x4180FFD4 # 8000C458 => blt -0x0000002C /* 8000C42C */ - .data 0x937F032C # 8000C45C => stw [r31 + 0x032C], r27 - .data 0xBB410008 # 8000C460 => lmw r26, [r1 + 0x0008] - .data 0x80010024 # 8000C464 => lwz r0, [r1 + 0x0024] - .data 0x7C0803A6 # 8000C468 => mtlr r0 - .data 0x38210020 # 8000C46C => addi r1, r1, 0x0020 - .data 0x4E800020 # 8000C470 => blr - # region @ 8000C640 (20 bytes) - .data 0x8000C640 # address - .data 0x00000014 # size - .data 0x54800673 # 8000C640 => rlwinm. r0, r4, 0, 25, 25 - .data 0x41820008 # 8000C644 => beq +0x00000008 /* 8000C64C */ - .data 0x38800000 # 8000C648 => li r4, 0x0000 - .data 0x38040009 # 8000C64C => addi r0, r4, 0x0009 - .data 0x4810C938 # 8000C650 => b +0x0010C938 /* 80118F88 */ - # region @ 8000C6D0 (32 bytes) - .data 0x8000C6D0 # address - .data 0x00000020 # size - .data 0x38000001 # 8000C6D0 => li r0, 0x0001 - .data 0x901D0054 # 8000C6D4 => stw [r29 + 0x0054], r0 - .data 0x807D0024 # 8000C6D8 => lwz r3, [r29 + 0x0024] - .data 0x48211244 # 8000C6DC => b +0x00211244 /* 8021D920 */ - .data 0x38000001 # 8000C6E0 => li r0, 0x0001 - .data 0x901F0378 # 8000C6E4 => stw [r31 + 0x0378], r0 - .data 0x807F0024 # 8000C6E8 => lwz r3, [r31 + 0x0024] - .data 0x482146F4 # 8000C6EC => b +0x002146F4 /* 80220DE0 */ - # region @ 8000C8A0 (20 bytes) - .data 0x8000C8A0 # address - .data 0x00000014 # size - .data 0x1C00000A # 8000C8A0 => mulli r0, r0, 10 - .data 0x57E407BD # 8000C8A4 => rlwinm. r4, r31, 0, 30, 30 - .data 0x41820008 # 8000C8A8 => beq +0x00000008 /* 8000C8B0 */ - .data 0x7FA00734 # 8000C8AC => extsh r0, r29 - .data 0x4810605C # 8000C8B0 => b +0x0010605C /* 8011290C */ - # region @ 8000C8C0 (16 bytes) - .data 0x8000C8C0 # address - .data 0x00000010 # size - .data 0x7000000F # 8000C8C0 => andi. r0, r0, 0x000F - .data 0x7000004F # 8000C8C4 => andi. r0, r0, 0x004F - .data 0x2C000004 # 8000C8C8 => cmpwi r0, 4 - .data 0x4E800020 # 8000C8CC => blr - # region @ 8000D980 (20 bytes) - .data 0x8000D980 # address - .data 0x00000014 # size - .data 0x807C0000 # 8000D980 => lwz r3, [r28] - .data 0x2C030013 # 8000D984 => cmpwi r3, 19 - .data 0x40820008 # 8000D988 => bne +0x00000008 /* 8000D990 */ - .data 0x38600002 # 8000D98C => li r3, 0x0002 - .data 0x482AE568 # 8000D990 => b +0x002AE568 /* 802BBEF8 */ - # region @ 8000D9A0 (24 bytes) - .data 0x8000D9A0 # address - .data 0x00000018 # size - .data 0xC042FC88 # 8000D9A0 => lfs f2, [r2 - 0x0378] - .data 0x807E0030 # 8000D9A4 => lwz r3, [r30 + 0x0030] - .data 0x70630020 # 8000D9A8 => andi. r3, r3, 0x0020 - .data 0x41820008 # 8000D9AC => beq +0x00000008 /* 8000D9B4 */ - .data 0xC042FCA0 # 8000D9B0 => lfs f2, [r2 - 0x0360] - .data 0x483280A0 # 8000D9B4 => b +0x003280A0 /* 80335A54 */ - # region @ 8000E1E0 (28 bytes) - .data 0x8000E1E0 # address - .data 0x0000001C # size - .data 0x7FC802A6 # 8000E1E0 => mflr r30 - .data 0x38A00000 # 8000E1E4 => li r5, 0x0000 - .data 0x38C0001E # 8000E1E8 => li r6, 0x001E - .data 0x38E00040 # 8000E1EC => li r7, 0x0040 - .data 0x4807853D # 8000E1F0 => bl +0x0007853C /* 8008672C */ - .data 0x7FC803A6 # 8000E1F4 => mtlr r30 - .data 0x4E800020 # 8000E1F8 => blr - # region @ 80013084 (4 bytes) - .data 0x80013084 # address - .data 0x00000004 # size - .data 0x4BFFFCC0 # 80013084 => b -0x00000340 /* 80012D44 */ - # region @ 800142F4 (4 bytes) - .data 0x800142F4 # address - .data 0x00000004 # size - .data 0x4BFF85CD # 800142F4 => bl -0x00007A34 /* 8000C8C0 */ - # region @ 80015D1C (4 bytes) - .data 0x80015D1C # address - .data 0x00000004 # size - .data 0x4BFF6BA9 # 80015D1C => bl -0x00009458 /* 8000C8C4 */ - # region @ 800917B4 (8 bytes) - .data 0x800917B4 # address - .data 0x00000008 # size - .data 0x4800024D # 800917B4 => bl +0x0000024C /* 80091A00 */ - .data 0xB3C3032C # 800917B8 => sth [r3 + 0x032C], r30 - # region @ 800BC9E8 (4 bytes) - .data 0x800BC9E8 # address - .data 0x00000004 # size - .data 0x48000010 # 800BC9E8 => b +0x00000010 /* 800BC9F8 */ - # region @ 80101EB8 (4 bytes) - .data 0x80101EB8 # address - .data 0x00000004 # size - .data 0x60000000 # 80101EB8 => nop - # region @ 80104DEC (4 bytes) - .data 0x80104DEC # address - .data 0x00000004 # size - .data 0x4182000C # 80104DEC => beq +0x0000000C /* 80104DF8 */ - # region @ 8010771C (4 bytes) - .data 0x8010771C # address - .data 0x00000004 # size - .data 0x4800000C # 8010771C => b +0x0000000C /* 80107728 */ - # region @ 80107730 (4 bytes) - .data 0x80107730 # address - .data 0x00000004 # size - .data 0x7C030378 # 80107730 => mr r3, r0 - # region @ 8010BC14 (4 bytes) - .data 0x8010BC14 # address - .data 0x00000004 # size - .data 0x4BEFF488 # 8010BC14 => b -0x00100B78 /* 8000B09C */ - # region @ 8010E03C (4 bytes) - .data 0x8010E03C # address - .data 0x00000004 # size - .data 0x4BEFD078 # 8010E03C => b -0x00102F88 /* 8000B0B4 */ - # region @ 80112908 (4 bytes) - .data 0x80112908 # address - .data 0x00000004 # size - .data 0x4BEF9F98 # 80112908 => b -0x00106068 /* 8000C8A0 */ - # region @ 8011461C (4 bytes) - .data 0x8011461C # address - .data 0x00000004 # size - .data 0x38000012 # 8011461C => li r0, 0x0012 - # region @ 80118854 (4 bytes) - .data 0x80118854 # address - .data 0x00000004 # size - .data 0x88040016 # 80118854 => lbz r0, [r4 + 0x0016] - # region @ 80118860 (4 bytes) - .data 0x80118860 # address - .data 0x00000004 # size - .data 0x88040017 # 80118860 => lbz r0, [r4 + 0x0017] - # region @ 80118F84 (4 bytes) - .data 0x80118F84 # address - .data 0x00000004 # size - .data 0x4BEF36BC # 80118F84 => b -0x0010C944 /* 8000C640 */ - # region @ 8011CD34 (12 bytes) - .data 0x8011CD34 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CD34 => mr r3, r0 - .data 0x3863FFFF # 8011CD38 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CD3C => b -0x00000018 /* 8011CD24 */ - # region @ 8011CDF0 (12 bytes) - .data 0x8011CDF0 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CDF0 => mr r3, r0 - .data 0x3863FFFF # 8011CDF4 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CDF8 => b -0x00000018 /* 8011CDE0 */ - # region @ 8011CE40 (12 bytes) - .data 0x8011CE40 # address - .data 0x0000000C # size - .data 0x7C040378 # 8011CE40 => mr r4, r0 - .data 0x3884FFFF # 8011CE44 => subi r4, r4, 0x0001 - .data 0x4BFFFFE8 # 8011CE48 => b -0x00000018 /* 8011CE30 */ - # region @ 801666E0 (8 bytes) - .data 0x801666E0 # address - .data 0x00000008 # size - .data 0x3C604005 # 801666E0 => lis r3, 0x4005 - .data 0x4800009C # 801666E4 => b +0x0000009C /* 80166780 */ - # region @ 8016677C (4 bytes) - .data 0x8016677C # address - .data 0x00000004 # size - .data 0x4800001C # 8016677C => b +0x0000001C /* 80166798 */ - # region @ 80171010 (4 bytes) - .data 0x80171010 # address - .data 0x00000004 # size - .data 0x4BE9ABC0 # 80171010 => b -0x00165440 /* 8000BBD0 */ - # region @ 80171030 (4 bytes) - .data 0x80171030 # address - .data 0x00000004 # size - .data 0x60800420 # 80171030 => ori r0, r4, 0x0420 - # region @ 80184250 (4 bytes) - .data 0x80184250 # address - .data 0x00000004 # size - .data 0x4BE87378 # 80184250 => b -0x00178C88 /* 8000B5C8 */ - # region @ 80184290 (4 bytes) - .data 0x80184290 # address - .data 0x00000004 # size - .data 0x60000000 # 80184290 => nop - # region @ 80189E20 (4 bytes) - .data 0x80189E20 # address - .data 0x00000004 # size - .data 0x60000000 # 80189E20 => nop - # region @ 801937A8 (4 bytes) - .data 0x801937A8 # address - .data 0x00000004 # size - .data 0x60000000 # 801937A8 => nop - # region @ 801B9BA0 (4 bytes) - .data 0x801B9BA0 # address - .data 0x00000004 # size - .data 0x4BE52868 # 801B9BA0 => b -0x001AD798 /* 8000C408 */ - # region @ 801B9E74 (4 bytes) - .data 0x801B9E74 # address - .data 0x00000004 # size - .data 0x4BE51214 # 801B9E74 => b -0x001AEDEC /* 8000B088 */ - # region @ 801C62C0 (4 bytes) - .data 0x801C62C0 # address - .data 0x00000004 # size - .data 0x389F02FC # 801C62C0 => addi r4, r31, 0x02FC - # region @ 801CA610 (4 bytes) - .data 0x801CA610 # address - .data 0x00000004 # size - .data 0x48000010 # 801CA610 => b +0x00000010 /* 801CA620 */ - # region @ 8021D91C (4 bytes) - .data 0x8021D91C # address - .data 0x00000004 # size - .data 0x4BDEEDB4 # 8021D91C => b -0x0021124C /* 8000C6D0 */ - # region @ 80220DDC (4 bytes) - .data 0x80220DDC # address - .data 0x00000004 # size - .data 0x4BDEB904 # 80220DDC => b -0x002146FC /* 8000C6E0 */ - # region @ 80229C10 (4 bytes) - .data 0x80229C10 # address - .data 0x00000004 # size - .data 0x2C000001 # 80229C10 => cmpwi r0, 1 - # region @ 8022A410 (4 bytes) - .data 0x8022A410 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022A410 => li r4, 0xFFFFFF00 - # region @ 8022A440 (4 bytes) - .data 0x8022A440 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022A440 => li r4, 0xFFFFFE80 - # region @ 8022A470 (4 bytes) - .data 0x8022A470 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022A470 => li r4, 0xFFFFFDB0 - # region @ 8022D10C (4 bytes) - .data 0x8022D10C # address - .data 0x00000004 # size - .data 0x60000000 # 8022D10C => nop - # region @ 8022D840 (4 bytes) - .data 0x8022D840 # address - .data 0x00000004 # size - .data 0x41810630 # 8022D840 => bgt +0x00000630 /* 8022DE70 */ - # region @ 8022DB34 (4 bytes) - .data 0x8022DB34 # address - .data 0x00000004 # size - .data 0x4181033C # 8022DB34 => bgt +0x0000033C /* 8022DE70 */ - # region @ 8022DC28 (4 bytes) - .data 0x8022DC28 # address - .data 0x00000004 # size - .data 0x41810248 # 8022DC28 => bgt +0x00000248 /* 8022DE70 */ - # region @ 8022EB64 (4 bytes) - .data 0x8022EB64 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022EB64 => li r4, 0xFFFFFF00 - # region @ 8022EB94 (4 bytes) - .data 0x8022EB94 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022EB94 => li r4, 0xFFFFFE80 - # region @ 8022EBC4 (4 bytes) - .data 0x8022EBC4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022EBC4 => li r4, 0xFFFFFDB0 - # region @ 8022F370 (4 bytes) - .data 0x8022F370 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022F370 => li r4, 0xFFFFFF00 - # region @ 8022F3A0 (4 bytes) - .data 0x8022F3A0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022F3A0 => li r4, 0xFFFFFE80 - # region @ 8022F3D0 (4 bytes) - .data 0x8022F3D0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022F3D0 => li r4, 0xFFFFFDB0 - # region @ 80230974 (4 bytes) - .data 0x80230974 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80230974 => li r4, 0xFFFFFF00 - # region @ 802309A4 (4 bytes) - .data 0x802309A4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802309A4 => li r4, 0xFFFFFE80 - # region @ 802309D4 (4 bytes) - .data 0x802309D4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802309D4 => li r4, 0xFFFFFDB0 - # region @ 802316E4 (4 bytes) - .data 0x802316E4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802316E4 => li r4, 0xFFFFFF00 - # region @ 80231714 (4 bytes) - .data 0x80231714 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80231714 => li r4, 0xFFFFFE80 - # region @ 80231744 (4 bytes) - .data 0x80231744 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80231744 => li r4, 0xFFFFFDB0 - # region @ 80231FD8 (4 bytes) - .data 0x80231FD8 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80231FD8 => li r4, 0xFFFFFF00 - # region @ 80232010 (4 bytes) - .data 0x80232010 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80232010 => li r4, 0xFFFFFE80 - # region @ 80232048 (4 bytes) - .data 0x80232048 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80232048 => li r4, 0xFFFFFDB0 - # region @ 80234084 (4 bytes) - .data 0x80234084 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80234084 => li r4, 0xFFFFFF00 - # region @ 802340B4 (4 bytes) - .data 0x802340B4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802340B4 => li r4, 0xFFFFFE80 - # region @ 802340E4 (4 bytes) - .data 0x802340E4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802340E4 => li r4, 0xFFFFFDB0 - # region @ 802366B0 (4 bytes) - .data 0x802366B0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802366B0 => li r4, 0xFFFFFF00 - # region @ 802366EC (4 bytes) - .data 0x802366EC # address - .data 0x00000004 # size - .data 0x3880FE80 # 802366EC => li r4, 0xFFFFFE80 - # region @ 80236728 (4 bytes) - .data 0x80236728 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80236728 => li r4, 0xFFFFFDB0 - # region @ 80236E88 (4 bytes) - .data 0x80236E88 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80236E88 => li r4, 0xFFFFFF00 - # region @ 80236EB8 (4 bytes) - .data 0x80236EB8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80236EB8 => li r4, 0xFFFFFE80 - # region @ 80236EE8 (4 bytes) - .data 0x80236EE8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80236EE8 => li r4, 0xFFFFFDB0 - # region @ 8023789C (4 bytes) - .data 0x8023789C # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023789C => li r4, 0xFFFFFF00 - # region @ 802378CC (4 bytes) - .data 0x802378CC # address - .data 0x00000004 # size - .data 0x3880FE80 # 802378CC => li r4, 0xFFFFFE80 - # region @ 802378FC (4 bytes) - .data 0x802378FC # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802378FC => li r4, 0xFFFFFDB0 - # region @ 80238274 (4 bytes) - .data 0x80238274 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80238274 => li r4, 0xFFFFFF00 - # region @ 802382A4 (4 bytes) - .data 0x802382A4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802382A4 => li r4, 0xFFFFFE80 - # region @ 802382D4 (4 bytes) - .data 0x802382D4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802382D4 => li r4, 0xFFFFFDB0 - # region @ 8023BBA4 (4 bytes) - .data 0x8023BBA4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023BBA4 => li r4, 0xFFFFFF00 - # region @ 8023BBD4 (4 bytes) - .data 0x8023BBD4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023BBD4 => li r4, 0xFFFFFE80 - # region @ 8023BC04 (4 bytes) - .data 0x8023BC04 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023BC04 => li r4, 0xFFFFFDB0 - # region @ 80250AEC (4 bytes) - .data 0x80250AEC # address - .data 0x00000004 # size - .data 0x60000000 # 80250AEC => nop - # region @ 80268788 (4 bytes) - .data 0x80268788 # address - .data 0x00000004 # size - .data 0x60000000 # 80268788 => nop - # region @ 8026E2D4 (4 bytes) - .data 0x8026E2D4 # address - .data 0x00000004 # size - .data 0x3884AAFA # 8026E2D4 => subi r4, r4, 0x5506 - # region @ 8026E3E8 (4 bytes) - .data 0x8026E3E8 # address - .data 0x00000004 # size - .data 0x3863AAFA # 8026E3E8 => subi r3, r3, 0x5506 - # region @ 8026E470 (4 bytes) - .data 0x8026E470 # address - .data 0x00000004 # size - .data 0x3883AAFA # 8026E470 => subi r4, r3, 0x5506 - # region @ 802BBEF4 (4 bytes) - .data 0x802BBEF4 # address - .data 0x00000004 # size - .data 0x4BD51A8C # 802BBEF4 => b -0x002AE574 /* 8000D980 */ - # region @ 802FC2F4 (4 bytes) - .data 0x802FC2F4 # address - .data 0x00000004 # size - .data 0x2C030001 # 802FC2F4 => cmpwi r3, 1 - # region @ 80301F58 (28 bytes) - .data 0x80301F58 # address - .data 0x0000001C # size - .data 0x48000020 # 80301F58 => b +0x00000020 /* 80301F78 */ - .data 0x3863A830 # 80301F5C => subi r3, r3, 0x57D0 - .data 0x800DB9A4 # 80301F60 => lwz r0, [r13 - 0x465C] - .data 0x2C000023 # 80301F64 => cmpwi r0, 35 - .data 0x40820008 # 80301F68 => bne +0x00000008 /* 80301F70 */ - .data 0x3863FB28 # 80301F6C => subi r3, r3, 0x04D8 - .data 0x4800008C # 80301F70 => b +0x0000008C /* 80301FFC */ - # region @ 80301FF8 (4 bytes) - .data 0x80301FF8 # address - .data 0x00000004 # size - .data 0x4BFFFF64 # 80301FF8 => b -0x0000009C /* 80301F5C */ - # region @ 80335A50 (4 bytes) - .data 0x80335A50 # address - .data 0x00000004 # size - .data 0x4BCD7F50 # 80335A50 => b -0x003280B0 /* 8000D9A0 */ - # region @ 80356814 (4 bytes) - .data 0x80356814 # address - .data 0x00000004 # size - .data 0x388001E8 # 80356814 => li r4, 0x01E8 - # region @ 80356838 (4 bytes) - .data 0x80356838 # address - .data 0x00000004 # size - .data 0x4BCB79A9 # 80356838 => bl -0x00348658 /* 8000E1E0 */ - # region @ 803568A8 (4 bytes) - .data 0x803568A8 # address - .data 0x00000004 # size - .data 0x388001E8 # 803568A8 => li r4, 0x01E8 - # region @ 803568B8 (4 bytes) - .data 0x803568B8 # address - .data 0x00000004 # size - .data 0x4BCB7929 # 803568B8 => bl -0x003486D8 /* 8000E1E0 */ - # region @ 804B3EF0 (8 bytes) - .data 0x804B3EF0 # address - .data 0x00000008 # size - .data 0x70808080 # 804B3EF0 => andi. r0, r4, 0x8080 - .data 0x60707070 # 804B3EF4 => ori r16, r3, 0x7070 - # region @ 804C76B4 (4 bytes) - .data 0x804C76B4 # address - .data 0x00000004 # size - .data 0x0000001E # 804C76B4 => .invalid - # region @ 804C770C (4 bytes) - .data 0x804C770C # address - .data 0x00000004 # size - .data 0x00000028 # 804C770C => .invalid - # region @ 804C7738 (4 bytes) - .data 0x804C7738 # address - .data 0x00000004 # size - .data 0x00000032 # 804C7738 => .invalid - # region @ 804C7764 (4 bytes) - .data 0x804C7764 # address - .data 0x00000004 # size - .data 0x0000003C # 804C7764 => .invalid - # region @ 804C7774 (4 bytes) - .data 0x804C7774 # address - .data 0x00000004 # size - .data 0x0018003C # 804C7774 => .invalid - # region @ 804C79CC (4 bytes) - .data 0x804C79CC # address - .data 0x00000004 # size - .data 0x00000028 # 804C79CC => .invalid - # region @ 804CC310 (4 bytes) - .data 0x804CC310 # address - .data 0x00000004 # size - .data 0xFF0074EE # 804CC310 => fsel f24, f0, f14, f19 - # region @ 805CA274 (4 bytes) - .data 0x805CA274 # address - .data 0x00000004 # size - .data 0x435C0000 # 805CA274 => bc 26, 28, +0x00000000 /* 805CA274 */ - # region @ 805CBF10 (4 bytes) - .data 0x805CBF10 # address - .data 0x00000004 # size - .data 0x46AFC800 # 805CBF10 => .invalid sc - # region @ 805CC1B0 (4 bytes) - .data 0x805CC1B0 # address - .data 0x00000004 # size - .data 0x43480000 # 805CC1B0 => bc 26, 8, +0x00000000 /* 805CC1B0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/BugFixes/BugFixes.3OE1.patch.s b/system/client-functions/BugFixes/BugFixes.3OE1.patch.s deleted file mode 100644 index ccf1f4d5..00000000 --- a/system/client-functions/BugFixes/BugFixes.3OE1.patch.s +++ /dev/null @@ -1,564 +0,0 @@ -.meta name="Bug fixes" -.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B088 (88 bytes) - .data 0x8000B088 # address - .data 0x00000058 # size - .data 0x7FA3EB78 # 8000B088 => mr r3, r29 - .data 0x38800000 # 8000B08C => li r4, 0x0000 - .data 0x481AEB11 # 8000B090 => bl +0x001AEB10 /* 801B9BA0 */ - .data 0x7FA3EB78 # 8000B094 => mr r3, r29 - .data 0x481AEDE0 # 8000B098 => b +0x001AEDE0 /* 801B9E78 */ - .data 0x881F0000 # 8000B09C => lbz r0, [r31] - .data 0x28090001 # 8000B0A0 => cmplwi r9, 1 - .data 0x4082000C # 8000B0A4 => bne +0x0000000C /* 8000B0B0 */ - .data 0x881F0001 # 8000B0A8 => lbz r0, [r31 + 0x0001] - .data 0x3BFF0002 # 8000B0AC => addi r31, r31, 0x0002 - .data 0x48100B68 # 8000B0B0 => b +0x00100B68 /* 8010BC18 */ - .data 0x39200000 # 8000B0B4 => li r9, 0x0000 - .data 0x48100AF9 # 8000B0B8 => bl +0x00100AF8 /* 8010BBB0 */ - .data 0x7F43D378 # 8000B0BC => mr r3, r26 - .data 0x7F64DB78 # 8000B0C0 => mr r4, r27 - .data 0x7F85E378 # 8000B0C4 => mr r5, r28 - .data 0x7FA6EB78 # 8000B0C8 => mr r6, r29 - .data 0x7FC7F378 # 8000B0CC => mr r7, r30 - .data 0x7FE8FB78 # 8000B0D0 => mr r8, r31 - .data 0x39200001 # 8000B0D4 => li r9, 0x0001 - .data 0x48100AD9 # 8000B0D8 => bl +0x00100AD8 /* 8010BBB0 */ - .data 0x48102F64 # 8000B0DC => b +0x00102F64 /* 8010E040 */ - # region @ 8000B5C8 (20 bytes) - .data 0x8000B5C8 # address - .data 0x00000014 # size - .data 0x80630098 # 8000B5C8 => lwz r3, [r3 + 0x0098] - .data 0x483D59F1 # 8000B5CC => bl +0x003D59F0 /* 803E0FBC */ - .data 0x807F042C # 8000B5D0 => lwz r3, [r31 + 0x042C] - .data 0x809F0430 # 8000B5D4 => lwz r4, [r31 + 0x0430] - .data 0x48178C7C # 8000B5D8 => b +0x00178C7C /* 80184254 */ - # region @ 8000BBD0 (32 bytes) - .data 0x8000BBD0 # address - .data 0x00000020 # size - .data 0x809F0370 # 8000BBD0 => lwz r4, [r31 + 0x0370] - .data 0x3884FC00 # 8000BBD4 => subi r4, r4, 0x0400 - .data 0x909F0370 # 8000BBD8 => stw [r31 + 0x0370], r4 - .data 0x807F0014 # 8000BBDC => lwz r3, [r31 + 0x0014] - .data 0x28030000 # 8000BBE0 => cmplwi r3, 0 - .data 0x41820008 # 8000BBE4 => beq +0x00000008 /* 8000BBEC */ - .data 0x90830060 # 8000BBE8 => stw [r3 + 0x0060], r4 - .data 0x48165428 # 8000BBEC => b +0x00165428 /* 80171014 */ - # region @ 8000C3F8 (124 bytes) - .data 0x8000C3F8 # address - .data 0x0000007C # size - .data 0x28040000 # 8000C3F8 => cmplwi r4, 0 - .data 0x4D820020 # 8000C3FC => beqlr - .data 0x9421FFF0 # 8000C400 => stwu [r1 - 0x0010], r1 - .data 0x481AD7A0 # 8000C404 => b +0x001AD7A0 /* 801B9BA4 */ - .data 0x9421FFE0 # 8000C408 => stwu [r1 - 0x0020], r1 - .data 0x7C0802A6 # 8000C40C => mflr r0 - .data 0x90010024 # 8000C410 => stw [r1 + 0x0024], r0 - .data 0xBF410008 # 8000C414 => stmw [r1 + 0x0008], r26 - .data 0x7C7F1B78 # 8000C418 => mr r31, r3 - .data 0x4BFFFFDD # 8000C41C => bl -0x00000024 /* 8000C3F8 */ - .data 0x3BC00000 # 8000C420 => li r30, 0x0000 - .data 0x3BBF0D04 # 8000C424 => addi r29, r31, 0x0D04 - .data 0x837F032C # 8000C428 => lwz r27, [r31 + 0x032C] - .data 0x839D0000 # 8000C42C => lwz r28, [r29] - .data 0x7F83E379 # 8000C430 => mr. r3, r28 - .data 0x41820018 # 8000C434 => beq +0x00000018 /* 8000C44C */ - .data 0x38800001 # 8000C438 => li r4, 0x0001 - .data 0x480FED81 # 8000C43C => bl +0x000FED80 /* 8010B1BC */ - .data 0x7F83E378 # 8000C440 => mr r3, r28 - .data 0x38800001 # 8000C444 => li r4, 0x0001 - .data 0x480FEEF1 # 8000C448 => bl +0x000FEEF0 /* 8010B338 */ - .data 0x3BBD0004 # 8000C44C => addi r29, r29, 0x0004 - .data 0x3BDE0001 # 8000C450 => addi r30, r30, 0x0001 - .data 0x2C1E000D # 8000C454 => cmpwi r30, 13 - .data 0x4180FFD4 # 8000C458 => blt -0x0000002C /* 8000C42C */ - .data 0x937F032C # 8000C45C => stw [r31 + 0x032C], r27 - .data 0xBB410008 # 8000C460 => lmw r26, [r1 + 0x0008] - .data 0x80010024 # 8000C464 => lwz r0, [r1 + 0x0024] - .data 0x7C0803A6 # 8000C468 => mtlr r0 - .data 0x38210020 # 8000C46C => addi r1, r1, 0x0020 - .data 0x4E800020 # 8000C470 => blr - # region @ 8000C640 (20 bytes) - .data 0x8000C640 # address - .data 0x00000014 # size - .data 0x54800673 # 8000C640 => rlwinm. r0, r4, 0, 25, 25 - .data 0x41820008 # 8000C644 => beq +0x00000008 /* 8000C64C */ - .data 0x38800000 # 8000C648 => li r4, 0x0000 - .data 0x38040009 # 8000C64C => addi r0, r4, 0x0009 - .data 0x4810C938 # 8000C650 => b +0x0010C938 /* 80118F88 */ - # region @ 8000C6D0 (32 bytes) - .data 0x8000C6D0 # address - .data 0x00000020 # size - .data 0x38000001 # 8000C6D0 => li r0, 0x0001 - .data 0x901D0054 # 8000C6D4 => stw [r29 + 0x0054], r0 - .data 0x807D0024 # 8000C6D8 => lwz r3, [r29 + 0x0024] - .data 0x48211244 # 8000C6DC => b +0x00211244 /* 8021D920 */ - .data 0x38000001 # 8000C6E0 => li r0, 0x0001 - .data 0x901F0378 # 8000C6E4 => stw [r31 + 0x0378], r0 - .data 0x807F0024 # 8000C6E8 => lwz r3, [r31 + 0x0024] - .data 0x482146F4 # 8000C6EC => b +0x002146F4 /* 80220DE0 */ - # region @ 8000C8A0 (20 bytes) - .data 0x8000C8A0 # address - .data 0x00000014 # size - .data 0x1C00000A # 8000C8A0 => mulli r0, r0, 10 - .data 0x57E407BD # 8000C8A4 => rlwinm. r4, r31, 0, 30, 30 - .data 0x41820008 # 8000C8A8 => beq +0x00000008 /* 8000C8B0 */ - .data 0x7FA00734 # 8000C8AC => extsh r0, r29 - .data 0x4810605C # 8000C8B0 => b +0x0010605C /* 8011290C */ - # region @ 8000C8C0 (16 bytes) - .data 0x8000C8C0 # address - .data 0x00000010 # size - .data 0x7000000F # 8000C8C0 => andi. r0, r0, 0x000F - .data 0x7000004F # 8000C8C4 => andi. r0, r0, 0x004F - .data 0x2C000004 # 8000C8C8 => cmpwi r0, 4 - .data 0x4E800020 # 8000C8CC => blr - # region @ 8000D980 (20 bytes) - .data 0x8000D980 # address - .data 0x00000014 # size - .data 0x807C0000 # 8000D980 => lwz r3, [r28] - .data 0x2C030013 # 8000D984 => cmpwi r3, 19 - .data 0x40820008 # 8000D988 => bne +0x00000008 /* 8000D990 */ - .data 0x38600002 # 8000D98C => li r3, 0x0002 - .data 0x482AE5AC # 8000D990 => b +0x002AE5AC /* 802BBF3C */ - # region @ 8000D9A0 (24 bytes) - .data 0x8000D9A0 # address - .data 0x00000018 # size - .data 0xC042FC88 # 8000D9A0 => lfs f2, [r2 - 0x0378] - .data 0x807E0030 # 8000D9A4 => lwz r3, [r30 + 0x0030] - .data 0x70630020 # 8000D9A8 => andi. r3, r3, 0x0020 - .data 0x41820008 # 8000D9AC => beq +0x00000008 /* 8000D9B4 */ - .data 0xC042FCA0 # 8000D9B0 => lfs f2, [r2 - 0x0360] - .data 0x483280E4 # 8000D9B4 => b +0x003280E4 /* 80335A98 */ - # region @ 8000E1E0 (28 bytes) - .data 0x8000E1E0 # address - .data 0x0000001C # size - .data 0x7FC802A6 # 8000E1E0 => mflr r30 - .data 0x38A00000 # 8000E1E4 => li r5, 0x0000 - .data 0x38C0001E # 8000E1E8 => li r6, 0x001E - .data 0x38E00040 # 8000E1EC => li r7, 0x0040 - .data 0x4807853D # 8000E1F0 => bl +0x0007853C /* 8008672C */ - .data 0x7FC803A6 # 8000E1F4 => mtlr r30 - .data 0x4E800020 # 8000E1F8 => blr - # region @ 80013084 (4 bytes) - .data 0x80013084 # address - .data 0x00000004 # size - .data 0x4BFFFCC0 # 80013084 => b -0x00000340 /* 80012D44 */ - # region @ 800142F4 (4 bytes) - .data 0x800142F4 # address - .data 0x00000004 # size - .data 0x4BFF85CD # 800142F4 => bl -0x00007A34 /* 8000C8C0 */ - # region @ 80015D1C (4 bytes) - .data 0x80015D1C # address - .data 0x00000004 # size - .data 0x4BFF6BA9 # 80015D1C => bl -0x00009458 /* 8000C8C4 */ - # region @ 800917B4 (8 bytes) - .data 0x800917B4 # address - .data 0x00000008 # size - .data 0x4800024D # 800917B4 => bl +0x0000024C /* 80091A00 */ - .data 0xB3C3032C # 800917B8 => sth [r3 + 0x032C], r30 - # region @ 800BC9E8 (4 bytes) - .data 0x800BC9E8 # address - .data 0x00000004 # size - .data 0x48000010 # 800BC9E8 => b +0x00000010 /* 800BC9F8 */ - # region @ 80101EB8 (4 bytes) - .data 0x80101EB8 # address - .data 0x00000004 # size - .data 0x60000000 # 80101EB8 => nop - # region @ 80104DEC (4 bytes) - .data 0x80104DEC # address - .data 0x00000004 # size - .data 0x4182000C # 80104DEC => beq +0x0000000C /* 80104DF8 */ - # region @ 8010771C (4 bytes) - .data 0x8010771C # address - .data 0x00000004 # size - .data 0x4800000C # 8010771C => b +0x0000000C /* 80107728 */ - # region @ 80107730 (4 bytes) - .data 0x80107730 # address - .data 0x00000004 # size - .data 0x7C030378 # 80107730 => mr r3, r0 - # region @ 8010BC14 (4 bytes) - .data 0x8010BC14 # address - .data 0x00000004 # size - .data 0x4BEFF488 # 8010BC14 => b -0x00100B78 /* 8000B09C */ - # region @ 8010E03C (4 bytes) - .data 0x8010E03C # address - .data 0x00000004 # size - .data 0x4BEFD078 # 8010E03C => b -0x00102F88 /* 8000B0B4 */ - # region @ 80112908 (4 bytes) - .data 0x80112908 # address - .data 0x00000004 # size - .data 0x4BEF9F98 # 80112908 => b -0x00106068 /* 8000C8A0 */ - # region @ 8011461C (4 bytes) - .data 0x8011461C # address - .data 0x00000004 # size - .data 0x38000012 # 8011461C => li r0, 0x0012 - # region @ 80118854 (4 bytes) - .data 0x80118854 # address - .data 0x00000004 # size - .data 0x88040016 # 80118854 => lbz r0, [r4 + 0x0016] - # region @ 80118860 (4 bytes) - .data 0x80118860 # address - .data 0x00000004 # size - .data 0x88040017 # 80118860 => lbz r0, [r4 + 0x0017] - # region @ 80118F84 (4 bytes) - .data 0x80118F84 # address - .data 0x00000004 # size - .data 0x4BEF36BC # 80118F84 => b -0x0010C944 /* 8000C640 */ - # region @ 8011CD34 (12 bytes) - .data 0x8011CD34 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CD34 => mr r3, r0 - .data 0x3863FFFF # 8011CD38 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CD3C => b -0x00000018 /* 8011CD24 */ - # region @ 8011CDF0 (12 bytes) - .data 0x8011CDF0 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CDF0 => mr r3, r0 - .data 0x3863FFFF # 8011CDF4 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CDF8 => b -0x00000018 /* 8011CDE0 */ - # region @ 8011CE40 (12 bytes) - .data 0x8011CE40 # address - .data 0x0000000C # size - .data 0x7C040378 # 8011CE40 => mr r4, r0 - .data 0x3884FFFF # 8011CE44 => subi r4, r4, 0x0001 - .data 0x4BFFFFE8 # 8011CE48 => b -0x00000018 /* 8011CE30 */ - # region @ 801666E0 (8 bytes) - .data 0x801666E0 # address - .data 0x00000008 # size - .data 0x3C604005 # 801666E0 => lis r3, 0x4005 - .data 0x4800009C # 801666E4 => b +0x0000009C /* 80166780 */ - # region @ 8016677C (4 bytes) - .data 0x8016677C # address - .data 0x00000004 # size - .data 0x4800001C # 8016677C => b +0x0000001C /* 80166798 */ - # region @ 80171010 (4 bytes) - .data 0x80171010 # address - .data 0x00000004 # size - .data 0x4BE9ABC0 # 80171010 => b -0x00165440 /* 8000BBD0 */ - # region @ 80171030 (4 bytes) - .data 0x80171030 # address - .data 0x00000004 # size - .data 0x60800420 # 80171030 => ori r0, r4, 0x0420 - # region @ 80184250 (4 bytes) - .data 0x80184250 # address - .data 0x00000004 # size - .data 0x4BE87378 # 80184250 => b -0x00178C88 /* 8000B5C8 */ - # region @ 80184290 (4 bytes) - .data 0x80184290 # address - .data 0x00000004 # size - .data 0x60000000 # 80184290 => nop - # region @ 80189E20 (4 bytes) - .data 0x80189E20 # address - .data 0x00000004 # size - .data 0x60000000 # 80189E20 => nop - # region @ 801937A8 (4 bytes) - .data 0x801937A8 # address - .data 0x00000004 # size - .data 0x60000000 # 801937A8 => nop - # region @ 801B9BA0 (4 bytes) - .data 0x801B9BA0 # address - .data 0x00000004 # size - .data 0x4BE52868 # 801B9BA0 => b -0x001AD798 /* 8000C408 */ - # region @ 801B9E74 (4 bytes) - .data 0x801B9E74 # address - .data 0x00000004 # size - .data 0x4BE51214 # 801B9E74 => b -0x001AEDEC /* 8000B088 */ - # region @ 801C62C0 (4 bytes) - .data 0x801C62C0 # address - .data 0x00000004 # size - .data 0x389F02FC # 801C62C0 => addi r4, r31, 0x02FC - # region @ 801CA610 (4 bytes) - .data 0x801CA610 # address - .data 0x00000004 # size - .data 0x48000010 # 801CA610 => b +0x00000010 /* 801CA620 */ - # region @ 8021D91C (4 bytes) - .data 0x8021D91C # address - .data 0x00000004 # size - .data 0x4BDEEDB4 # 8021D91C => b -0x0021124C /* 8000C6D0 */ - # region @ 80220DDC (4 bytes) - .data 0x80220DDC # address - .data 0x00000004 # size - .data 0x4BDEB904 # 80220DDC => b -0x002146FC /* 8000C6E0 */ - # region @ 80229C10 (4 bytes) - .data 0x80229C10 # address - .data 0x00000004 # size - .data 0x2C000001 # 80229C10 => cmpwi r0, 1 - # region @ 8022A410 (4 bytes) - .data 0x8022A410 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022A410 => li r4, 0xFFFFFF00 - # region @ 8022A440 (4 bytes) - .data 0x8022A440 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022A440 => li r4, 0xFFFFFE80 - # region @ 8022A470 (4 bytes) - .data 0x8022A470 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022A470 => li r4, 0xFFFFFDB0 - # region @ 8022D10C (4 bytes) - .data 0x8022D10C # address - .data 0x00000004 # size - .data 0x60000000 # 8022D10C => nop - # region @ 8022D840 (4 bytes) - .data 0x8022D840 # address - .data 0x00000004 # size - .data 0x41810630 # 8022D840 => bgt +0x00000630 /* 8022DE70 */ - # region @ 8022DB34 (4 bytes) - .data 0x8022DB34 # address - .data 0x00000004 # size - .data 0x4181033C # 8022DB34 => bgt +0x0000033C /* 8022DE70 */ - # region @ 8022DC28 (4 bytes) - .data 0x8022DC28 # address - .data 0x00000004 # size - .data 0x41810248 # 8022DC28 => bgt +0x00000248 /* 8022DE70 */ - # region @ 8022EB64 (4 bytes) - .data 0x8022EB64 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022EB64 => li r4, 0xFFFFFF00 - # region @ 8022EB94 (4 bytes) - .data 0x8022EB94 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022EB94 => li r4, 0xFFFFFE80 - # region @ 8022EBC4 (4 bytes) - .data 0x8022EBC4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022EBC4 => li r4, 0xFFFFFDB0 - # region @ 8022F370 (4 bytes) - .data 0x8022F370 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022F370 => li r4, 0xFFFFFF00 - # region @ 8022F3A0 (4 bytes) - .data 0x8022F3A0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022F3A0 => li r4, 0xFFFFFE80 - # region @ 8022F3D0 (4 bytes) - .data 0x8022F3D0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022F3D0 => li r4, 0xFFFFFDB0 - # region @ 80230974 (4 bytes) - .data 0x80230974 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80230974 => li r4, 0xFFFFFF00 - # region @ 802309A4 (4 bytes) - .data 0x802309A4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802309A4 => li r4, 0xFFFFFE80 - # region @ 802309D4 (4 bytes) - .data 0x802309D4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802309D4 => li r4, 0xFFFFFDB0 - # region @ 802316E4 (4 bytes) - .data 0x802316E4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802316E4 => li r4, 0xFFFFFF00 - # region @ 80231714 (4 bytes) - .data 0x80231714 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80231714 => li r4, 0xFFFFFE80 - # region @ 80231744 (4 bytes) - .data 0x80231744 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80231744 => li r4, 0xFFFFFDB0 - # region @ 80231FD8 (4 bytes) - .data 0x80231FD8 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80231FD8 => li r4, 0xFFFFFF00 - # region @ 80232010 (4 bytes) - .data 0x80232010 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80232010 => li r4, 0xFFFFFE80 - # region @ 80232048 (4 bytes) - .data 0x80232048 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80232048 => li r4, 0xFFFFFDB0 - # region @ 80234084 (4 bytes) - .data 0x80234084 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80234084 => li r4, 0xFFFFFF00 - # region @ 802340B4 (4 bytes) - .data 0x802340B4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802340B4 => li r4, 0xFFFFFE80 - # region @ 802340E4 (4 bytes) - .data 0x802340E4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802340E4 => li r4, 0xFFFFFDB0 - # region @ 802366B0 (4 bytes) - .data 0x802366B0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802366B0 => li r4, 0xFFFFFF00 - # region @ 802366EC (4 bytes) - .data 0x802366EC # address - .data 0x00000004 # size - .data 0x3880FE80 # 802366EC => li r4, 0xFFFFFE80 - # region @ 80236728 (4 bytes) - .data 0x80236728 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80236728 => li r4, 0xFFFFFDB0 - # region @ 80236E88 (4 bytes) - .data 0x80236E88 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80236E88 => li r4, 0xFFFFFF00 - # region @ 80236EB8 (4 bytes) - .data 0x80236EB8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80236EB8 => li r4, 0xFFFFFE80 - # region @ 80236EE8 (4 bytes) - .data 0x80236EE8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80236EE8 => li r4, 0xFFFFFDB0 - # region @ 8023789C (4 bytes) - .data 0x8023789C # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023789C => li r4, 0xFFFFFF00 - # region @ 802378CC (4 bytes) - .data 0x802378CC # address - .data 0x00000004 # size - .data 0x3880FE80 # 802378CC => li r4, 0xFFFFFE80 - # region @ 802378FC (4 bytes) - .data 0x802378FC # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802378FC => li r4, 0xFFFFFDB0 - # region @ 80238274 (4 bytes) - .data 0x80238274 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80238274 => li r4, 0xFFFFFF00 - # region @ 802382A4 (4 bytes) - .data 0x802382A4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802382A4 => li r4, 0xFFFFFE80 - # region @ 802382D4 (4 bytes) - .data 0x802382D4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802382D4 => li r4, 0xFFFFFDB0 - # region @ 8023BBA4 (4 bytes) - .data 0x8023BBA4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023BBA4 => li r4, 0xFFFFFF00 - # region @ 8023BBD4 (4 bytes) - .data 0x8023BBD4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023BBD4 => li r4, 0xFFFFFE80 - # region @ 8023BC04 (4 bytes) - .data 0x8023BC04 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023BC04 => li r4, 0xFFFFFDB0 - # region @ 80250AEC (4 bytes) - .data 0x80250AEC # address - .data 0x00000004 # size - .data 0x60000000 # 80250AEC => nop - # region @ 80268788 (4 bytes) - .data 0x80268788 # address - .data 0x00000004 # size - .data 0x60000000 # 80268788 => nop - # region @ 8026E2D4 (4 bytes) - .data 0x8026E2D4 # address - .data 0x00000004 # size - .data 0x3884AAFA # 8026E2D4 => subi r4, r4, 0x5506 - # region @ 8026E3E8 (4 bytes) - .data 0x8026E3E8 # address - .data 0x00000004 # size - .data 0x3863AAFA # 8026E3E8 => subi r3, r3, 0x5506 - # region @ 8026E470 (4 bytes) - .data 0x8026E470 # address - .data 0x00000004 # size - .data 0x3883AAFA # 8026E470 => subi r4, r3, 0x5506 - # region @ 802BBF38 (4 bytes) - .data 0x802BBF38 # address - .data 0x00000004 # size - .data 0x4BD51A48 # 802BBF38 => b -0x002AE5B8 /* 8000D980 */ - # region @ 802FC338 (4 bytes) - .data 0x802FC338 # address - .data 0x00000004 # size - .data 0x2C030001 # 802FC338 => cmpwi r3, 1 - # region @ 80301F9C (28 bytes) - .data 0x80301F9C # address - .data 0x0000001C # size - .data 0x48000020 # 80301F9C => b +0x00000020 /* 80301FBC */ - .data 0x3863A830 # 80301FA0 => subi r3, r3, 0x57D0 - .data 0x800DB9A4 # 80301FA4 => lwz r0, [r13 - 0x465C] - .data 0x2C000023 # 80301FA8 => cmpwi r0, 35 - .data 0x40820008 # 80301FAC => bne +0x00000008 /* 80301FB4 */ - .data 0x3863FB28 # 80301FB0 => subi r3, r3, 0x04D8 - .data 0x4800008C # 80301FB4 => b +0x0000008C /* 80302040 */ - # region @ 8030203C (4 bytes) - .data 0x8030203C # address - .data 0x00000004 # size - .data 0x4BFFFF64 # 8030203C => b -0x0000009C /* 80301FA0 */ - # region @ 80335A94 (4 bytes) - .data 0x80335A94 # address - .data 0x00000004 # size - .data 0x4BCD7F0C # 80335A94 => b -0x003280F4 /* 8000D9A0 */ - # region @ 80356858 (4 bytes) - .data 0x80356858 # address - .data 0x00000004 # size - .data 0x388001E8 # 80356858 => li r4, 0x01E8 - # region @ 8035687C (4 bytes) - .data 0x8035687C # address - .data 0x00000004 # size - .data 0x4BCB7965 # 8035687C => bl -0x0034869C /* 8000E1E0 */ - # region @ 803568EC (4 bytes) - .data 0x803568EC # address - .data 0x00000004 # size - .data 0x388001E8 # 803568EC => li r4, 0x01E8 - # region @ 803568FC (4 bytes) - .data 0x803568FC # address - .data 0x00000004 # size - .data 0x4BCB78E5 # 803568FC => bl -0x0034871C /* 8000E1E0 */ - # region @ 804B43D0 (8 bytes) - .data 0x804B43D0 # address - .data 0x00000008 # size - .data 0x70808080 # 804B43D0 => andi. r0, r4, 0x8080 - .data 0x60707070 # 804B43D4 => ori r16, r3, 0x7070 - # region @ 804C7B94 (4 bytes) - .data 0x804C7B94 # address - .data 0x00000004 # size - .data 0x0000001E # 804C7B94 => .invalid - # region @ 804C7BEC (4 bytes) - .data 0x804C7BEC # address - .data 0x00000004 # size - .data 0x00000028 # 804C7BEC => .invalid - # region @ 804C7C18 (4 bytes) - .data 0x804C7C18 # address - .data 0x00000004 # size - .data 0x00000032 # 804C7C18 => .invalid - # region @ 804C7C44 (4 bytes) - .data 0x804C7C44 # address - .data 0x00000004 # size - .data 0x0000003C # 804C7C44 => .invalid - # region @ 804C7C54 (4 bytes) - .data 0x804C7C54 # address - .data 0x00000004 # size - .data 0x0018003C # 804C7C54 => .invalid - # region @ 804C7EAC (4 bytes) - .data 0x804C7EAC # address - .data 0x00000004 # size - .data 0x00000028 # 804C7EAC => .invalid - # region @ 804CC7F0 (4 bytes) - .data 0x804CC7F0 # address - .data 0x00000004 # size - .data 0xFF0074EE # 804CC7F0 => fsel f24, f0, f14, f19 - # region @ 805D1294 (4 bytes) - .data 0x805D1294 # address - .data 0x00000004 # size - .data 0x435C0000 # 805D1294 => bc 26, 28, +0x00000000 /* 805D1294 */ - # region @ 805D2F30 (4 bytes) - .data 0x805D2F30 # address - .data 0x00000004 # size - .data 0x46AFC800 # 805D2F30 => .invalid sc - # region @ 805D31D0 (4 bytes) - .data 0x805D31D0 # address - .data 0x00000004 # size - .data 0x43480000 # 805D31D0 => bc 26, 8, +0x00000000 /* 805D31D0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/BugFixes/BugFixes.3OE2.patch.s b/system/client-functions/BugFixes/BugFixes.3OE2.patch.s deleted file mode 100644 index 351ed08b..00000000 --- a/system/client-functions/BugFixes/BugFixes.3OE2.patch.s +++ /dev/null @@ -1,552 +0,0 @@ -.meta name="Bug fixes" -.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B088 (88 bytes) - .data 0x8000B088 # address - .data 0x00000058 # size - .data 0x7FA3EB78 # 8000B088 => mr r3, r29 - .data 0x38800000 # 8000B08C => li r4, 0x0000 - .data 0x481AECC1 # 8000B090 => bl +0x001AECC0 /* 801B9D50 */ - .data 0x7FA3EB78 # 8000B094 => mr r3, r29 - .data 0x481AEF90 # 8000B098 => b +0x001AEF90 /* 801BA028 */ - .data 0x881F0000 # 8000B09C => lbz r0, [r31] - .data 0x28090001 # 8000B0A0 => cmplwi r9, 1 - .data 0x4082000C # 8000B0A4 => bne +0x0000000C /* 8000B0B0 */ - .data 0x881F0001 # 8000B0A8 => lbz r0, [r31 + 0x0001] - .data 0x3BFF0002 # 8000B0AC => addi r31, r31, 0x0002 - .data 0x48100A54 # 8000B0B0 => b +0x00100A54 /* 8010BB04 */ - .data 0x39200000 # 8000B0B4 => li r9, 0x0000 - .data 0x481009E5 # 8000B0B8 => bl +0x001009E4 /* 8010BA9C */ - .data 0x7F43D378 # 8000B0BC => mr r3, r26 - .data 0x7F64DB78 # 8000B0C0 => mr r4, r27 - .data 0x7F85E378 # 8000B0C4 => mr r5, r28 - .data 0x7FA6EB78 # 8000B0C8 => mr r6, r29 - .data 0x7FC7F378 # 8000B0CC => mr r7, r30 - .data 0x7FE8FB78 # 8000B0D0 => mr r8, r31 - .data 0x39200001 # 8000B0D4 => li r9, 0x0001 - .data 0x481009C5 # 8000B0D8 => bl +0x001009C4 /* 8010BA9C */ - .data 0x48102E5C # 8000B0DC => b +0x00102E5C /* 8010DF38 */ - # region @ 8000B5C8 (20 bytes) - .data 0x8000B5C8 # address - .data 0x00000014 # size - .data 0x80630098 # 8000B5C8 => lwz r3, [r3 + 0x0098] - .data 0x483D90F1 # 8000B5CC => bl +0x003D90F0 /* 803E46BC */ - .data 0x807F042C # 8000B5D0 => lwz r3, [r31 + 0x042C] - .data 0x809F0430 # 8000B5D4 => lwz r4, [r31 + 0x0430] - .data 0x48178DB0 # 8000B5D8 => b +0x00178DB0 /* 80184388 */ - # region @ 8000BBD0 (32 bytes) - .data 0x8000BBD0 # address - .data 0x00000020 # size - .data 0x809F0370 # 8000BBD0 => lwz r4, [r31 + 0x0370] - .data 0x3884FC00 # 8000BBD4 => subi r4, r4, 0x0400 - .data 0x909F0370 # 8000BBD8 => stw [r31 + 0x0370], r4 - .data 0x807F0014 # 8000BBDC => lwz r3, [r31 + 0x0014] - .data 0x28030000 # 8000BBE0 => cmplwi r3, 0 - .data 0x41820008 # 8000BBE4 => beq +0x00000008 /* 8000BBEC */ - .data 0x90830060 # 8000BBE8 => stw [r3 + 0x0060], r4 - .data 0x48165548 # 8000BBEC => b +0x00165548 /* 80171134 */ - # region @ 8000C3F8 (124 bytes) - .data 0x8000C3F8 # address - .data 0x0000007C # size - .data 0x28040000 # 8000C3F8 => cmplwi r4, 0 - .data 0x4D820020 # 8000C3FC => beqlr - .data 0x9421FFF0 # 8000C400 => stwu [r1 - 0x0010], r1 - .data 0x481AD950 # 8000C404 => b +0x001AD950 /* 801B9D54 */ - .data 0x9421FFE0 # 8000C408 => stwu [r1 - 0x0020], r1 - .data 0x7C0802A6 # 8000C40C => mflr r0 - .data 0x90010024 # 8000C410 => stw [r1 + 0x0024], r0 - .data 0xBF410008 # 8000C414 => stmw [r1 + 0x0008], r26 - .data 0x7C7F1B78 # 8000C418 => mr r31, r3 - .data 0x4BFFFFDD # 8000C41C => bl -0x00000024 /* 8000C3F8 */ - .data 0x3BC00000 # 8000C420 => li r30, 0x0000 - .data 0x3BBF0D04 # 8000C424 => addi r29, r31, 0x0D04 - .data 0x837F032C # 8000C428 => lwz r27, [r31 + 0x032C] - .data 0x839D0000 # 8000C42C => lwz r28, [r29] - .data 0x7F83E379 # 8000C430 => mr. r3, r28 - .data 0x41820018 # 8000C434 => beq +0x00000018 /* 8000C44C */ - .data 0x38800001 # 8000C438 => li r4, 0x0001 - .data 0x480FEC6D # 8000C43C => bl +0x000FEC6C /* 8010B0A8 */ - .data 0x7F83E378 # 8000C440 => mr r3, r28 - .data 0x38800001 # 8000C444 => li r4, 0x0001 - .data 0x480FEDDD # 8000C448 => bl +0x000FEDDC /* 8010B224 */ - .data 0x3BBD0004 # 8000C44C => addi r29, r29, 0x0004 - .data 0x3BDE0001 # 8000C450 => addi r30, r30, 0x0001 - .data 0x2C1E000D # 8000C454 => cmpwi r30, 13 - .data 0x4180FFD4 # 8000C458 => blt -0x0000002C /* 8000C42C */ - .data 0x937F032C # 8000C45C => stw [r31 + 0x032C], r27 - .data 0xBB410008 # 8000C460 => lmw r26, [r1 + 0x0008] - .data 0x80010024 # 8000C464 => lwz r0, [r1 + 0x0024] - .data 0x7C0803A6 # 8000C468 => mtlr r0 - .data 0x38210020 # 8000C46C => addi r1, r1, 0x0020 - .data 0x4E800020 # 8000C470 => blr - # region @ 8000C640 (20 bytes) - .data 0x8000C640 # address - .data 0x00000014 # size - .data 0x54800673 # 8000C640 => rlwinm. r0, r4, 0, 25, 25 - .data 0x41820008 # 8000C644 => beq +0x00000008 /* 8000C64C */ - .data 0x38800000 # 8000C648 => li r4, 0x0000 - .data 0x38040009 # 8000C64C => addi r0, r4, 0x0009 - .data 0x4810C858 # 8000C650 => b +0x0010C858 /* 80118EA8 */ - # region @ 8000C6D0 (32 bytes) - .data 0x8000C6D0 # address - .data 0x00000020 # size - .data 0x38000001 # 8000C6D0 => li r0, 0x0001 - .data 0x901D0054 # 8000C6D4 => stw [r29 + 0x0054], r0 - .data 0x807D0024 # 8000C6D8 => lwz r3, [r29 + 0x0024] - .data 0x482122F8 # 8000C6DC => b +0x002122F8 /* 8021E9D4 */ - .data 0x38000001 # 8000C6E0 => li r0, 0x0001 - .data 0x901F0378 # 8000C6E4 => stw [r31 + 0x0378], r0 - .data 0x807F0024 # 8000C6E8 => lwz r3, [r31 + 0x0024] - .data 0x482157A8 # 8000C6EC => b +0x002157A8 /* 80221E94 */ - # region @ 8000C8A0 (20 bytes) - .data 0x8000C8A0 # address - .data 0x00000014 # size - .data 0x1C00000A # 8000C8A0 => mulli r0, r0, 10 - .data 0x57E407BD # 8000C8A4 => rlwinm. r4, r31, 0, 30, 30 - .data 0x41820008 # 8000C8A8 => beq +0x00000008 /* 8000C8B0 */ - .data 0x7FA00734 # 8000C8AC => extsh r0, r29 - .data 0x48105F54 # 8000C8B0 => b +0x00105F54 /* 80112804 */ - # region @ 8000C8C0 (16 bytes) - .data 0x8000C8C0 # address - .data 0x00000010 # size - .data 0x7000000F # 8000C8C0 => andi. r0, r0, 0x000F - .data 0x7000004F # 8000C8C4 => andi. r0, r0, 0x004F - .data 0x2C000004 # 8000C8C8 => cmpwi r0, 4 - .data 0x4E800020 # 8000C8CC => blr - # region @ 8000D980 (20 bytes) - .data 0x8000D980 # address - .data 0x00000014 # size - .data 0x807C0000 # 8000D980 => lwz r3, [r28] - .data 0x2C030013 # 8000D984 => cmpwi r3, 19 - .data 0x40820008 # 8000D988 => bne +0x00000008 /* 8000D990 */ - .data 0x38600002 # 8000D98C => li r3, 0x0002 - .data 0x482AFAE8 # 8000D990 => b +0x002AFAE8 /* 802BD478 */ - # region @ 8000D9A0 (24 bytes) - .data 0x8000D9A0 # address - .data 0x00000018 # size - .data 0xC042FC88 # 8000D9A0 => lfs f2, [r2 - 0x0378] - .data 0x807E0030 # 8000D9A4 => lwz r3, [r30 + 0x0030] - .data 0x70630020 # 8000D9A8 => andi. r3, r3, 0x0020 - .data 0x41820008 # 8000D9AC => beq +0x00000008 /* 8000D9B4 */ - .data 0xC042FCA0 # 8000D9B0 => lfs f2, [r2 - 0x0360] - .data 0x48329BC0 # 8000D9B4 => b +0x00329BC0 /* 80337574 */ - # region @ 8000E1E0 (28 bytes) - .data 0x8000E1E0 # address - .data 0x0000001C # size - .data 0x7FC802A6 # 8000E1E0 => mflr r30 - .data 0x38A00000 # 8000E1E4 => li r5, 0x0000 - .data 0x38C0001E # 8000E1E8 => li r6, 0x001E - .data 0x38E00040 # 8000E1EC => li r7, 0x0040 - .data 0x480786D5 # 8000E1F0 => bl +0x000786D4 /* 800868C4 */ - .data 0x7FC803A6 # 8000E1F4 => mtlr r30 - .data 0x4E800020 # 8000E1F8 => blr - # region @ 8001304C (4 bytes) - .data 0x8001304C # address - .data 0x00000004 # size - .data 0x4BFFFCC0 # 8001304C => b -0x00000340 /* 80012D0C */ - # region @ 800142BC (4 bytes) - .data 0x800142BC # address - .data 0x00000004 # size - .data 0x4BFF8605 # 800142BC => bl -0x000079FC /* 8000C8C0 */ - # region @ 80015CE4 (4 bytes) - .data 0x80015CE4 # address - .data 0x00000004 # size - .data 0x4BFF6BE1 # 80015CE4 => bl -0x00009420 /* 8000C8C4 */ - # region @ 8009194C (8 bytes) - .data 0x8009194C # address - .data 0x00000008 # size - .data 0x4800024D # 8009194C => bl +0x0000024C /* 80091B98 */ - .data 0xB3C3032C # 80091950 => sth [r3 + 0x032C], r30 - # region @ 800BCB90 (4 bytes) - .data 0x800BCB90 # address - .data 0x00000004 # size - .data 0x48000010 # 800BCB90 => b +0x00000010 /* 800BCBA0 */ - # region @ 80104CB4 (4 bytes) - .data 0x80104CB4 # address - .data 0x00000004 # size - .data 0x4182000C # 80104CB4 => beq +0x0000000C /* 80104CC0 */ - # region @ 801075E4 (4 bytes) - .data 0x801075E4 # address - .data 0x00000004 # size - .data 0x4800000C # 801075E4 => b +0x0000000C /* 801075F0 */ - # region @ 801075F8 (4 bytes) - .data 0x801075F8 # address - .data 0x00000004 # size - .data 0x7C030378 # 801075F8 => mr r3, r0 - # region @ 8010BB00 (4 bytes) - .data 0x8010BB00 # address - .data 0x00000004 # size - .data 0x4BEFF59C # 8010BB00 => b -0x00100A64 /* 8000B09C */ - # region @ 8010DF34 (4 bytes) - .data 0x8010DF34 # address - .data 0x00000004 # size - .data 0x4BEFD180 # 8010DF34 => b -0x00102E80 /* 8000B0B4 */ - # region @ 80112800 (4 bytes) - .data 0x80112800 # address - .data 0x00000004 # size - .data 0x4BEFA0A0 # 80112800 => b -0x00105F60 /* 8000C8A0 */ - # region @ 80114534 (4 bytes) - .data 0x80114534 # address - .data 0x00000004 # size - .data 0x38000012 # 80114534 => li r0, 0x0012 - # region @ 80118774 (4 bytes) - .data 0x80118774 # address - .data 0x00000004 # size - .data 0x88040016 # 80118774 => lbz r0, [r4 + 0x0016] - # region @ 80118780 (4 bytes) - .data 0x80118780 # address - .data 0x00000004 # size - .data 0x88040017 # 80118780 => lbz r0, [r4 + 0x0017] - # region @ 80118EA4 (4 bytes) - .data 0x80118EA4 # address - .data 0x00000004 # size - .data 0x4BEF379C # 80118EA4 => b -0x0010C864 /* 8000C640 */ - # region @ 8011CC7C (12 bytes) - .data 0x8011CC7C # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CC7C => mr r3, r0 - .data 0x3863FFFF # 8011CC80 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CC84 => b -0x00000018 /* 8011CC6C */ - # region @ 8011CD38 (12 bytes) - .data 0x8011CD38 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CD38 => mr r3, r0 - .data 0x3863FFFF # 8011CD3C => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CD40 => b -0x00000018 /* 8011CD28 */ - # region @ 8011CD88 (12 bytes) - .data 0x8011CD88 # address - .data 0x0000000C # size - .data 0x7C040378 # 8011CD88 => mr r4, r0 - .data 0x3884FFFF # 8011CD8C => subi r4, r4, 0x0001 - .data 0x4BFFFFE8 # 8011CD90 => b -0x00000018 /* 8011CD78 */ - # region @ 80166800 (8 bytes) - .data 0x80166800 # address - .data 0x00000008 # size - .data 0x3C604005 # 80166800 => lis r3, 0x4005 - .data 0x4800009C # 80166804 => b +0x0000009C /* 801668A0 */ - # region @ 8016689C (4 bytes) - .data 0x8016689C # address - .data 0x00000004 # size - .data 0x4800001C # 8016689C => b +0x0000001C /* 801668B8 */ - # region @ 80171130 (4 bytes) - .data 0x80171130 # address - .data 0x00000004 # size - .data 0x4BE9AAA0 # 80171130 => b -0x00165560 /* 8000BBD0 */ - # region @ 80171150 (4 bytes) - .data 0x80171150 # address - .data 0x00000004 # size - .data 0x60800420 # 80171150 => ori r0, r4, 0x0420 - # region @ 80184384 (4 bytes) - .data 0x80184384 # address - .data 0x00000004 # size - .data 0x4BE87244 # 80184384 => b -0x00178DBC /* 8000B5C8 */ - # region @ 801843C4 (4 bytes) - .data 0x801843C4 # address - .data 0x00000004 # size - .data 0x60000000 # 801843C4 => nop - # region @ 80189F54 (4 bytes) - .data 0x80189F54 # address - .data 0x00000004 # size - .data 0x60000000 # 80189F54 => nop - # region @ 801938D8 (4 bytes) - .data 0x801938D8 # address - .data 0x00000004 # size - .data 0x60000000 # 801938D8 => nop - # region @ 801B9D50 (4 bytes) - .data 0x801B9D50 # address - .data 0x00000004 # size - .data 0x4BE526B8 # 801B9D50 => b -0x001AD948 /* 8000C408 */ - # region @ 801BA024 (4 bytes) - .data 0x801BA024 # address - .data 0x00000004 # size - .data 0x4BE51064 # 801BA024 => b -0x001AEF9C /* 8000B088 */ - # region @ 801C6490 (4 bytes) - .data 0x801C6490 # address - .data 0x00000004 # size - .data 0x389F02FC # 801C6490 => addi r4, r31, 0x02FC - # region @ 801CA810 (4 bytes) - .data 0x801CA810 # address - .data 0x00000004 # size - .data 0x48000010 # 801CA810 => b +0x00000010 /* 801CA820 */ - # region @ 8021E9D0 (4 bytes) - .data 0x8021E9D0 # address - .data 0x00000004 # size - .data 0x4BDEDD00 # 8021E9D0 => b -0x00212300 /* 8000C6D0 */ - # region @ 80221E90 (4 bytes) - .data 0x80221E90 # address - .data 0x00000004 # size - .data 0x4BDEA850 # 80221E90 => b -0x002157B0 /* 8000C6E0 */ - # region @ 8022ACC4 (4 bytes) - .data 0x8022ACC4 # address - .data 0x00000004 # size - .data 0x2C000001 # 8022ACC4 => cmpwi r0, 1 - # region @ 8022B4C4 (4 bytes) - .data 0x8022B4C4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022B4C4 => li r4, 0xFFFFFF00 - # region @ 8022B4F4 (4 bytes) - .data 0x8022B4F4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022B4F4 => li r4, 0xFFFFFE80 - # region @ 8022B524 (4 bytes) - .data 0x8022B524 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022B524 => li r4, 0xFFFFFDB0 - # region @ 8022E1C0 (4 bytes) - .data 0x8022E1C0 # address - .data 0x00000004 # size - .data 0x60000000 # 8022E1C0 => nop - # region @ 8022E8F4 (4 bytes) - .data 0x8022E8F4 # address - .data 0x00000004 # size - .data 0x41810630 # 8022E8F4 => bgt +0x00000630 /* 8022EF24 */ - # region @ 8022FC18 (4 bytes) - .data 0x8022FC18 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022FC18 => li r4, 0xFFFFFF00 - # region @ 8022FC48 (4 bytes) - .data 0x8022FC48 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022FC48 => li r4, 0xFFFFFE80 - # region @ 8022FC78 (4 bytes) - .data 0x8022FC78 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022FC78 => li r4, 0xFFFFFDB0 - # region @ 80230424 (4 bytes) - .data 0x80230424 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80230424 => li r4, 0xFFFFFF00 - # region @ 80230454 (4 bytes) - .data 0x80230454 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80230454 => li r4, 0xFFFFFE80 - # region @ 80230484 (4 bytes) - .data 0x80230484 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80230484 => li r4, 0xFFFFFDB0 - # region @ 80231A28 (4 bytes) - .data 0x80231A28 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80231A28 => li r4, 0xFFFFFF00 - # region @ 80231A58 (4 bytes) - .data 0x80231A58 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80231A58 => li r4, 0xFFFFFE80 - # region @ 80231A88 (4 bytes) - .data 0x80231A88 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80231A88 => li r4, 0xFFFFFDB0 - # region @ 80232798 (4 bytes) - .data 0x80232798 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80232798 => li r4, 0xFFFFFF00 - # region @ 802327C8 (4 bytes) - .data 0x802327C8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802327C8 => li r4, 0xFFFFFE80 - # region @ 802327F8 (4 bytes) - .data 0x802327F8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802327F8 => li r4, 0xFFFFFDB0 - # region @ 8023308C (4 bytes) - .data 0x8023308C # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023308C => li r4, 0xFFFFFF00 - # region @ 802330C4 (4 bytes) - .data 0x802330C4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802330C4 => li r4, 0xFFFFFE80 - # region @ 802330FC (4 bytes) - .data 0x802330FC # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802330FC => li r4, 0xFFFFFDB0 - # region @ 80235138 (4 bytes) - .data 0x80235138 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80235138 => li r4, 0xFFFFFF00 - # region @ 80235168 (4 bytes) - .data 0x80235168 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80235168 => li r4, 0xFFFFFE80 - # region @ 80235198 (4 bytes) - .data 0x80235198 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80235198 => li r4, 0xFFFFFDB0 - # region @ 80237764 (4 bytes) - .data 0x80237764 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80237764 => li r4, 0xFFFFFF00 - # region @ 802377A0 (4 bytes) - .data 0x802377A0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802377A0 => li r4, 0xFFFFFE80 - # region @ 802377DC (4 bytes) - .data 0x802377DC # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802377DC => li r4, 0xFFFFFDB0 - # region @ 80237F3C (4 bytes) - .data 0x80237F3C # address - .data 0x00000004 # size - .data 0x3880FF00 # 80237F3C => li r4, 0xFFFFFF00 - # region @ 80237F6C (4 bytes) - .data 0x80237F6C # address - .data 0x00000004 # size - .data 0x3880FE80 # 80237F6C => li r4, 0xFFFFFE80 - # region @ 80237F9C (4 bytes) - .data 0x80237F9C # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80237F9C => li r4, 0xFFFFFDB0 - # region @ 80238950 (4 bytes) - .data 0x80238950 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80238950 => li r4, 0xFFFFFF00 - # region @ 80238980 (4 bytes) - .data 0x80238980 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80238980 => li r4, 0xFFFFFE80 - # region @ 802389B0 (4 bytes) - .data 0x802389B0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802389B0 => li r4, 0xFFFFFDB0 - # region @ 80239328 (4 bytes) - .data 0x80239328 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80239328 => li r4, 0xFFFFFF00 - # region @ 80239358 (4 bytes) - .data 0x80239358 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80239358 => li r4, 0xFFFFFE80 - # region @ 80239388 (4 bytes) - .data 0x80239388 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80239388 => li r4, 0xFFFFFDB0 - # region @ 8023CC58 (4 bytes) - .data 0x8023CC58 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023CC58 => li r4, 0xFFFFFF00 - # region @ 8023CC88 (4 bytes) - .data 0x8023CC88 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023CC88 => li r4, 0xFFFFFE80 - # region @ 8023CCB8 (4 bytes) - .data 0x8023CCB8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023CCB8 => li r4, 0xFFFFFDB0 - # region @ 80251C68 (4 bytes) - .data 0x80251C68 # address - .data 0x00000004 # size - .data 0x60000000 # 80251C68 => nop - # region @ 80269B5C (4 bytes) - .data 0x80269B5C # address - .data 0x00000004 # size - .data 0x60000000 # 80269B5C => nop - # region @ 8026F6FC (4 bytes) - .data 0x8026F6FC # address - .data 0x00000004 # size - .data 0x3884AAFA # 8026F6FC => subi r4, r4, 0x5506 - # region @ 8026F810 (4 bytes) - .data 0x8026F810 # address - .data 0x00000004 # size - .data 0x3863AAFA # 8026F810 => subi r3, r3, 0x5506 - # region @ 8026F898 (4 bytes) - .data 0x8026F898 # address - .data 0x00000004 # size - .data 0x3883AAFA # 8026F898 => subi r4, r3, 0x5506 - # region @ 802BD474 (4 bytes) - .data 0x802BD474 # address - .data 0x00000004 # size - .data 0x4BD5050C # 802BD474 => b -0x002AFAF4 /* 8000D980 */ - # region @ 802FDD28 (4 bytes) - .data 0x802FDD28 # address - .data 0x00000004 # size - .data 0x2C030001 # 802FDD28 => cmpwi r3, 1 - # region @ 8030398C (28 bytes) - .data 0x8030398C # address - .data 0x0000001C # size - .data 0x48000020 # 8030398C => b +0x00000020 /* 803039AC */ - .data 0x3863A830 # 80303990 => subi r3, r3, 0x57D0 - .data 0x800DB9C4 # 80303994 => lwz r0, [r13 - 0x463C] - .data 0x2C000023 # 80303998 => cmpwi r0, 35 - .data 0x40820008 # 8030399C => bne +0x00000008 /* 803039A4 */ - .data 0x3863FB28 # 803039A0 => subi r3, r3, 0x04D8 - .data 0x4800008C # 803039A4 => b +0x0000008C /* 80303A30 */ - # region @ 80303A2C (4 bytes) - .data 0x80303A2C # address - .data 0x00000004 # size - .data 0x4BFFFF64 # 80303A2C => b -0x0000009C /* 80303990 */ - # region @ 80337570 (4 bytes) - .data 0x80337570 # address - .data 0x00000004 # size - .data 0x4BCD6430 # 80337570 => b -0x00329BD0 /* 8000D9A0 */ - # region @ 80358440 (4 bytes) - .data 0x80358440 # address - .data 0x00000004 # size - .data 0x388001E8 # 80358440 => li r4, 0x01E8 - # region @ 80358464 (4 bytes) - .data 0x80358464 # address - .data 0x00000004 # size - .data 0x4BCB5D7D # 80358464 => bl -0x0034A284 /* 8000E1E0 */ - # region @ 803584D4 (4 bytes) - .data 0x803584D4 # address - .data 0x00000004 # size - .data 0x388001E8 # 803584D4 => li r4, 0x01E8 - # region @ 803584E4 (4 bytes) - .data 0x803584E4 # address - .data 0x00000004 # size - .data 0x4BCB5CFD # 803584E4 => bl -0x0034A304 /* 8000E1E0 */ - # region @ 804B8990 (8 bytes) - .data 0x804B8990 # address - .data 0x00000008 # size - .data 0x70808080 # 804B8990 => andi. r0, r4, 0x8080 - .data 0x60707070 # 804B8994 => ori r16, r3, 0x7070 - # region @ 804CC1E4 (4 bytes) - .data 0x804CC1E4 # address - .data 0x00000004 # size - .data 0x0000001E # 804CC1E4 => .invalid - # region @ 804CC23C (4 bytes) - .data 0x804CC23C # address - .data 0x00000004 # size - .data 0x00000028 # 804CC23C => .invalid - # region @ 804CC268 (4 bytes) - .data 0x804CC268 # address - .data 0x00000004 # size - .data 0x00000032 # 804CC268 => .invalid - # region @ 804CC294 (4 bytes) - .data 0x804CC294 # address - .data 0x00000004 # size - .data 0x0000003C # 804CC294 => .invalid - # region @ 804CC2A4 (4 bytes) - .data 0x804CC2A4 # address - .data 0x00000004 # size - .data 0x0018003C # 804CC2A4 => .invalid - # region @ 804CC4FC (4 bytes) - .data 0x804CC4FC # address - .data 0x00000004 # size - .data 0x00000028 # 804CC4FC => .invalid - # region @ 804D0E58 (4 bytes) - .data 0x804D0E58 # address - .data 0x00000004 # size - .data 0xFF0074EE # 804D0E58 => fsel f24, f0, f14, f19 - # region @ 805DAAB4 (4 bytes) - .data 0x805DAAB4 # address - .data 0x00000004 # size - .data 0x435C0000 # 805DAAB4 => bc 26, 28, +0x00000000 /* 805DAAB4 */ - # region @ 805DC750 (4 bytes) - .data 0x805DC750 # address - .data 0x00000004 # size - .data 0x46AFC800 # 805DC750 => .invalid sc - # region @ 805DC9F0 (4 bytes) - .data 0x805DC9F0 # address - .data 0x00000004 # size - .data 0x43480000 # 805DC9F0 => bc 26, 8, +0x00000000 /* 805DC9F0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/BugFixes/BugFixes.3OJ2.patch.s b/system/client-functions/BugFixes/BugFixes.3OJ2.patch.s deleted file mode 100644 index 8fe91d85..00000000 --- a/system/client-functions/BugFixes/BugFixes.3OJ2.patch.s +++ /dev/null @@ -1,564 +0,0 @@ -.meta name="Bug fixes" -.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B088 (88 bytes) - .data 0x8000B088 # address - .data 0x00000058 # size - .data 0x7FA3EB78 # 8000B088 => mr r3, r29 - .data 0x38800000 # 8000B08C => li r4, 0x0000 - .data 0x481AE725 # 8000B090 => bl +0x001AE724 /* 801B97B4 */ - .data 0x7FA3EB78 # 8000B094 => mr r3, r29 - .data 0x481AE9F4 # 8000B098 => b +0x001AE9F4 /* 801B9A8C */ - .data 0x881F0000 # 8000B09C => lbz r0, [r31] - .data 0x28090001 # 8000B0A0 => cmplwi r9, 1 - .data 0x4082000C # 8000B0A4 => bne +0x0000000C /* 8000B0B0 */ - .data 0x881F0001 # 8000B0A8 => lbz r0, [r31 + 0x0001] - .data 0x3BFF0002 # 8000B0AC => addi r31, r31, 0x0002 - .data 0x481008C4 # 8000B0B0 => b +0x001008C4 /* 8010B974 */ - .data 0x39200000 # 8000B0B4 => li r9, 0x0000 - .data 0x48100855 # 8000B0B8 => bl +0x00100854 /* 8010B90C */ - .data 0x7F43D378 # 8000B0BC => mr r3, r26 - .data 0x7F64DB78 # 8000B0C0 => mr r4, r27 - .data 0x7F85E378 # 8000B0C4 => mr r5, r28 - .data 0x7FA6EB78 # 8000B0C8 => mr r6, r29 - .data 0x7FC7F378 # 8000B0CC => mr r7, r30 - .data 0x7FE8FB78 # 8000B0D0 => mr r8, r31 - .data 0x39200001 # 8000B0D4 => li r9, 0x0001 - .data 0x48100835 # 8000B0D8 => bl +0x00100834 /* 8010B90C */ - .data 0x48102CC0 # 8000B0DC => b +0x00102CC0 /* 8010DD9C */ - # region @ 8000B5C8 (20 bytes) - .data 0x8000B5C8 # address - .data 0x00000014 # size - .data 0x80630098 # 8000B5C8 => lwz r3, [r3 + 0x0098] - .data 0x483D46F5 # 8000B5CC => bl +0x003D46F4 /* 803DFCC0 */ - .data 0x807F042C # 8000B5D0 => lwz r3, [r31 + 0x042C] - .data 0x809F0430 # 8000B5D4 => lwz r4, [r31 + 0x0430] - .data 0x481788C0 # 8000B5D8 => b +0x001788C0 /* 80183E98 */ - # region @ 8000BBD0 (32 bytes) - .data 0x8000BBD0 # address - .data 0x00000020 # size - .data 0x809F0370 # 8000BBD0 => lwz r4, [r31 + 0x0370] - .data 0x3884FC00 # 8000BBD4 => subi r4, r4, 0x0400 - .data 0x909F0370 # 8000BBD8 => stw [r31 + 0x0370], r4 - .data 0x807F0014 # 8000BBDC => lwz r3, [r31 + 0x0014] - .data 0x28030000 # 8000BBE0 => cmplwi r3, 0 - .data 0x41820008 # 8000BBE4 => beq +0x00000008 /* 8000BBEC */ - .data 0x90830060 # 8000BBE8 => stw [r3 + 0x0060], r4 - .data 0x4816506C # 8000BBEC => b +0x0016506C /* 80170C58 */ - # region @ 8000C3F8 (124 bytes) - .data 0x8000C3F8 # address - .data 0x0000007C # size - .data 0x28040000 # 8000C3F8 => cmplwi r4, 0 - .data 0x4D820020 # 8000C3FC => beqlr - .data 0x9421FFF0 # 8000C400 => stwu [r1 - 0x0010], r1 - .data 0x481AD3B4 # 8000C404 => b +0x001AD3B4 /* 801B97B8 */ - .data 0x9421FFE0 # 8000C408 => stwu [r1 - 0x0020], r1 - .data 0x7C0802A6 # 8000C40C => mflr r0 - .data 0x90010024 # 8000C410 => stw [r1 + 0x0024], r0 - .data 0xBF410008 # 8000C414 => stmw [r1 + 0x0008], r26 - .data 0x7C7F1B78 # 8000C418 => mr r31, r3 - .data 0x4BFFFFDD # 8000C41C => bl -0x00000024 /* 8000C3F8 */ - .data 0x3BC00000 # 8000C420 => li r30, 0x0000 - .data 0x3BBF0D04 # 8000C424 => addi r29, r31, 0x0D04 - .data 0x837F032C # 8000C428 => lwz r27, [r31 + 0x032C] - .data 0x839D0000 # 8000C42C => lwz r28, [r29] - .data 0x7F83E379 # 8000C430 => mr. r3, r28 - .data 0x41820018 # 8000C434 => beq +0x00000018 /* 8000C44C */ - .data 0x38800001 # 8000C438 => li r4, 0x0001 - .data 0x480FEADD # 8000C43C => bl +0x000FEADC /* 8010AF18 */ - .data 0x7F83E378 # 8000C440 => mr r3, r28 - .data 0x38800001 # 8000C444 => li r4, 0x0001 - .data 0x480FEC4D # 8000C448 => bl +0x000FEC4C /* 8010B094 */ - .data 0x3BBD0004 # 8000C44C => addi r29, r29, 0x0004 - .data 0x3BDE0001 # 8000C450 => addi r30, r30, 0x0001 - .data 0x2C1E000D # 8000C454 => cmpwi r30, 13 - .data 0x4180FFD4 # 8000C458 => blt -0x0000002C /* 8000C42C */ - .data 0x937F032C # 8000C45C => stw [r31 + 0x032C], r27 - .data 0xBB410008 # 8000C460 => lmw r26, [r1 + 0x0008] - .data 0x80010024 # 8000C464 => lwz r0, [r1 + 0x0024] - .data 0x7C0803A6 # 8000C468 => mtlr r0 - .data 0x38210020 # 8000C46C => addi r1, r1, 0x0020 - .data 0x4E800020 # 8000C470 => blr - # region @ 8000C640 (20 bytes) - .data 0x8000C640 # address - .data 0x00000014 # size - .data 0x54800673 # 8000C640 => rlwinm. r0, r4, 0, 25, 25 - .data 0x41820008 # 8000C644 => beq +0x00000008 /* 8000C64C */ - .data 0x38800000 # 8000C648 => li r4, 0x0000 - .data 0x38040009 # 8000C64C => addi r0, r4, 0x0009 - .data 0x4810C694 # 8000C650 => b +0x0010C694 /* 80118CE4 */ - # region @ 8000C6D0 (32 bytes) - .data 0x8000C6D0 # address - .data 0x00000020 # size - .data 0x38000001 # 8000C6D0 => li r0, 0x0001 - .data 0x901D0054 # 8000C6D4 => stw [r29 + 0x0054], r0 - .data 0x807D0024 # 8000C6D8 => lwz r3, [r29 + 0x0024] - .data 0x482109C0 # 8000C6DC => b +0x002109C0 /* 8021D09C */ - .data 0x38000001 # 8000C6E0 => li r0, 0x0001 - .data 0x901F0378 # 8000C6E4 => stw [r31 + 0x0378], r0 - .data 0x807F0024 # 8000C6E8 => lwz r3, [r31 + 0x0024] - .data 0x48165AA0 # 8000C6EC => b +0x00165AA0 /* 8017218C */ - # region @ 8000C8A0 (20 bytes) - .data 0x8000C8A0 # address - .data 0x00000014 # size - .data 0x1C00000A # 8000C8A0 => mulli r0, r0, 10 - .data 0x57E407BD # 8000C8A4 => rlwinm. r4, r31, 0, 30, 30 - .data 0x41820008 # 8000C8A8 => beq +0x00000008 /* 8000C8B0 */ - .data 0x7FA00734 # 8000C8AC => extsh r0, r29 - .data 0x48105DB8 # 8000C8B0 => b +0x00105DB8 /* 80112668 */ - # region @ 8000C8C0 (16 bytes) - .data 0x8000C8C0 # address - .data 0x00000010 # size - .data 0x7000000F # 8000C8C0 => andi. r0, r0, 0x000F - .data 0x7000004F # 8000C8C4 => andi. r0, r0, 0x004F - .data 0x2C000004 # 8000C8C8 => cmpwi r0, 4 - .data 0x4E800020 # 8000C8CC => blr - # region @ 8000D980 (20 bytes) - .data 0x8000D980 # address - .data 0x00000014 # size - .data 0x807C0000 # 8000D980 => lwz r3, [r28] - .data 0x2C030013 # 8000D984 => cmpwi r3, 19 - .data 0x40820008 # 8000D988 => bne +0x00000008 /* 8000D990 */ - .data 0x38600002 # 8000D98C => li r3, 0x0002 - .data 0x482ADB24 # 8000D990 => b +0x002ADB24 /* 802BB4B4 */ - # region @ 8000D9A0 (24 bytes) - .data 0x8000D9A0 # address - .data 0x00000018 # size - .data 0xC042FC78 # 8000D9A0 => lfs f2, [r2 - 0x0388] - .data 0x807E0030 # 8000D9A4 => lwz r3, [r30 + 0x0030] - .data 0x70630020 # 8000D9A8 => andi. r3, r3, 0x0020 - .data 0x41820008 # 8000D9AC => beq +0x00000008 /* 8000D9B4 */ - .data 0xC042FC90 # 8000D9B0 => lfs f2, [r2 - 0x0370] - .data 0x483276B0 # 8000D9B4 => b +0x003276B0 /* 80335064 */ - # region @ 8000E1E0 (28 bytes) - .data 0x8000E1E0 # address - .data 0x0000001C # size - .data 0x7FC802A6 # 8000E1E0 => mflr r30 - .data 0x38A00000 # 8000E1E4 => li r5, 0x0000 - .data 0x38C0001E # 8000E1E8 => li r6, 0x001E - .data 0x38E00040 # 8000E1EC => li r7, 0x0040 - .data 0x480782B1 # 8000E1F0 => bl +0x000782B0 /* 800864A0 */ - .data 0x7FC803A6 # 8000E1F4 => mtlr r30 - .data 0x4E800020 # 8000E1F8 => blr - # region @ 8001306C (4 bytes) - .data 0x8001306C # address - .data 0x00000004 # size - .data 0x4BFFFCC0 # 8001306C => b -0x00000340 /* 80012D2C */ - # region @ 800142DC (4 bytes) - .data 0x800142DC # address - .data 0x00000004 # size - .data 0x4BFF85E5 # 800142DC => bl -0x00007A1C /* 8000C8C0 */ - # region @ 80015D04 (4 bytes) - .data 0x80015D04 # address - .data 0x00000004 # size - .data 0x4BFF6BC1 # 80015D04 => bl -0x00009440 /* 8000C8C4 */ - # region @ 80091528 (8 bytes) - .data 0x80091528 # address - .data 0x00000008 # size - .data 0x4800024D # 80091528 => bl +0x0000024C /* 80091774 */ - .data 0xB3C3032C # 8009152C => sth [r3 + 0x032C], r30 - # region @ 800BC750 (4 bytes) - .data 0x800BC750 # address - .data 0x00000004 # size - .data 0x48000010 # 800BC750 => b +0x00000010 /* 800BC760 */ - # region @ 80101C14 (4 bytes) - .data 0x80101C14 # address - .data 0x00000004 # size - .data 0x60000000 # 80101C14 => nop - # region @ 80104B48 (4 bytes) - .data 0x80104B48 # address - .data 0x00000004 # size - .data 0x4182000C # 80104B48 => beq +0x0000000C /* 80104B54 */ - # region @ 80107478 (4 bytes) - .data 0x80107478 # address - .data 0x00000004 # size - .data 0x4800000C # 80107478 => b +0x0000000C /* 80107484 */ - # region @ 8010748C (4 bytes) - .data 0x8010748C # address - .data 0x00000004 # size - .data 0x7C030378 # 8010748C => mr r3, r0 - # region @ 8010B970 (4 bytes) - .data 0x8010B970 # address - .data 0x00000004 # size - .data 0x4BEFF72C # 8010B970 => b -0x001008D4 /* 8000B09C */ - # region @ 8010DD98 (4 bytes) - .data 0x8010DD98 # address - .data 0x00000004 # size - .data 0x4BEFD31C # 8010DD98 => b -0x00102CE4 /* 8000B0B4 */ - # region @ 80112664 (4 bytes) - .data 0x80112664 # address - .data 0x00000004 # size - .data 0x4BEFA23C # 80112664 => b -0x00105DC4 /* 8000C8A0 */ - # region @ 80114378 (4 bytes) - .data 0x80114378 # address - .data 0x00000004 # size - .data 0x38000012 # 80114378 => li r0, 0x0012 - # region @ 801185B0 (4 bytes) - .data 0x801185B0 # address - .data 0x00000004 # size - .data 0x88040016 # 801185B0 => lbz r0, [r4 + 0x0016] - # region @ 801185BC (4 bytes) - .data 0x801185BC # address - .data 0x00000004 # size - .data 0x88040017 # 801185BC => lbz r0, [r4 + 0x0017] - # region @ 80118CE0 (4 bytes) - .data 0x80118CE0 # address - .data 0x00000004 # size - .data 0x4BEF3960 # 80118CE0 => b -0x0010C6A0 /* 8000C640 */ - # region @ 8011CA90 (12 bytes) - .data 0x8011CA90 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CA90 => mr r3, r0 - .data 0x3863FFFF # 8011CA94 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CA98 => b -0x00000018 /* 8011CA80 */ - # region @ 8011CB4C (12 bytes) - .data 0x8011CB4C # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CB4C => mr r3, r0 - .data 0x3863FFFF # 8011CB50 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CB54 => b -0x00000018 /* 8011CB3C */ - # region @ 8011CB9C (12 bytes) - .data 0x8011CB9C # address - .data 0x0000000C # size - .data 0x7C040378 # 8011CB9C => mr r4, r0 - .data 0x3884FFFF # 8011CBA0 => subi r4, r4, 0x0001 - .data 0x4BFFFFE8 # 8011CBA4 => b -0x00000018 /* 8011CB8C */ - # region @ 80166324 (8 bytes) - .data 0x80166324 # address - .data 0x00000008 # size - .data 0x3C604005 # 80166324 => lis r3, 0x4005 - .data 0x4800009C # 80166328 => b +0x0000009C /* 801663C4 */ - # region @ 801663C0 (4 bytes) - .data 0x801663C0 # address - .data 0x00000004 # size - .data 0x4800001C # 801663C0 => b +0x0000001C /* 801663DC */ - # region @ 80170C54 (4 bytes) - .data 0x80170C54 # address - .data 0x00000004 # size - .data 0x4BE9AF7C # 80170C54 => b -0x00165084 /* 8000BBD0 */ - # region @ 80170C74 (4 bytes) - .data 0x80170C74 # address - .data 0x00000004 # size - .data 0x60800420 # 80170C74 => ori r0, r4, 0x0420 - # region @ 80172188 (4 bytes) - .data 0x80172188 # address - .data 0x00000004 # size - .data 0x4BE9A558 # 80172188 => b -0x00165AA8 /* 8000C6E0 */ - # region @ 80183E94 (4 bytes) - .data 0x80183E94 # address - .data 0x00000004 # size - .data 0x4BE87734 # 80183E94 => b -0x001788CC /* 8000B5C8 */ - # region @ 80183ED4 (4 bytes) - .data 0x80183ED4 # address - .data 0x00000004 # size - .data 0x60000000 # 80183ED4 => nop - # region @ 80189A54 (4 bytes) - .data 0x80189A54 # address - .data 0x00000004 # size - .data 0x60000000 # 80189A54 => nop - # region @ 801933DC (4 bytes) - .data 0x801933DC # address - .data 0x00000004 # size - .data 0x60000000 # 801933DC => nop - # region @ 801B97B4 (4 bytes) - .data 0x801B97B4 # address - .data 0x00000004 # size - .data 0x4BE52C54 # 801B97B4 => b -0x001AD3AC /* 8000C408 */ - # region @ 801B9A88 (4 bytes) - .data 0x801B9A88 # address - .data 0x00000004 # size - .data 0x4BE51600 # 801B9A88 => b -0x001AEA00 /* 8000B088 */ - # region @ 801C5EA4 (4 bytes) - .data 0x801C5EA4 # address - .data 0x00000004 # size - .data 0x389F02FC # 801C5EA4 => addi r4, r31, 0x02FC - # region @ 801CA1F4 (4 bytes) - .data 0x801CA1F4 # address - .data 0x00000004 # size - .data 0x48000010 # 801CA1F4 => b +0x00000010 /* 801CA204 */ - # region @ 8021D098 (4 bytes) - .data 0x8021D098 # address - .data 0x00000004 # size - .data 0x4BDEF638 # 8021D098 => b -0x002109C8 /* 8000C6D0 */ - # region @ 80229354 (4 bytes) - .data 0x80229354 # address - .data 0x00000004 # size - .data 0x2C000001 # 80229354 => cmpwi r0, 1 - # region @ 80229B54 (4 bytes) - .data 0x80229B54 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80229B54 => li r4, 0xFFFFFF00 - # region @ 80229B84 (4 bytes) - .data 0x80229B84 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80229B84 => li r4, 0xFFFFFE80 - # region @ 80229BB4 (4 bytes) - .data 0x80229BB4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80229BB4 => li r4, 0xFFFFFDB0 - # region @ 8022C850 (4 bytes) - .data 0x8022C850 # address - .data 0x00000004 # size - .data 0x60000000 # 8022C850 => nop - # region @ 8022CF84 (4 bytes) - .data 0x8022CF84 # address - .data 0x00000004 # size - .data 0x41810630 # 8022CF84 => bgt +0x00000630 /* 8022D5B4 */ - # region @ 8022D278 (4 bytes) - .data 0x8022D278 # address - .data 0x00000004 # size - .data 0x4181033C # 8022D278 => bgt +0x0000033C /* 8022D5B4 */ - # region @ 8022D36C (4 bytes) - .data 0x8022D36C # address - .data 0x00000004 # size - .data 0x41810248 # 8022D36C => bgt +0x00000248 /* 8022D5B4 */ - # region @ 8022E2A8 (4 bytes) - .data 0x8022E2A8 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022E2A8 => li r4, 0xFFFFFF00 - # region @ 8022E2D8 (4 bytes) - .data 0x8022E2D8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022E2D8 => li r4, 0xFFFFFE80 - # region @ 8022E308 (4 bytes) - .data 0x8022E308 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022E308 => li r4, 0xFFFFFDB0 - # region @ 8022EAB4 (4 bytes) - .data 0x8022EAB4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022EAB4 => li r4, 0xFFFFFF00 - # region @ 8022EAE4 (4 bytes) - .data 0x8022EAE4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022EAE4 => li r4, 0xFFFFFE80 - # region @ 8022EB14 (4 bytes) - .data 0x8022EB14 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022EB14 => li r4, 0xFFFFFDB0 - # region @ 802300B8 (4 bytes) - .data 0x802300B8 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802300B8 => li r4, 0xFFFFFF00 - # region @ 802300E8 (4 bytes) - .data 0x802300E8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802300E8 => li r4, 0xFFFFFE80 - # region @ 80230118 (4 bytes) - .data 0x80230118 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80230118 => li r4, 0xFFFFFDB0 - # region @ 80230E08 (4 bytes) - .data 0x80230E08 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80230E08 => li r4, 0xFFFFFF00 - # region @ 80230E38 (4 bytes) - .data 0x80230E38 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80230E38 => li r4, 0xFFFFFE80 - # region @ 80230E68 (4 bytes) - .data 0x80230E68 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80230E68 => li r4, 0xFFFFFDB0 - # region @ 802316FC (4 bytes) - .data 0x802316FC # address - .data 0x00000004 # size - .data 0x3880FF00 # 802316FC => li r4, 0xFFFFFF00 - # region @ 80231734 (4 bytes) - .data 0x80231734 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80231734 => li r4, 0xFFFFFE80 - # region @ 8023176C (4 bytes) - .data 0x8023176C # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023176C => li r4, 0xFFFFFDB0 - # region @ 802337A8 (4 bytes) - .data 0x802337A8 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802337A8 => li r4, 0xFFFFFF00 - # region @ 802337D8 (4 bytes) - .data 0x802337D8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802337D8 => li r4, 0xFFFFFE80 - # region @ 80233808 (4 bytes) - .data 0x80233808 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80233808 => li r4, 0xFFFFFDB0 - # region @ 80235DD4 (4 bytes) - .data 0x80235DD4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80235DD4 => li r4, 0xFFFFFF00 - # region @ 80235E10 (4 bytes) - .data 0x80235E10 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80235E10 => li r4, 0xFFFFFE80 - # region @ 80235E4C (4 bytes) - .data 0x80235E4C # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80235E4C => li r4, 0xFFFFFDB0 - # region @ 802365AC (4 bytes) - .data 0x802365AC # address - .data 0x00000004 # size - .data 0x3880FF00 # 802365AC => li r4, 0xFFFFFF00 - # region @ 802365DC (4 bytes) - .data 0x802365DC # address - .data 0x00000004 # size - .data 0x3880FE80 # 802365DC => li r4, 0xFFFFFE80 - # region @ 8023660C (4 bytes) - .data 0x8023660C # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023660C => li r4, 0xFFFFFDB0 - # region @ 80236FC0 (4 bytes) - .data 0x80236FC0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80236FC0 => li r4, 0xFFFFFF00 - # region @ 80236FF0 (4 bytes) - .data 0x80236FF0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80236FF0 => li r4, 0xFFFFFE80 - # region @ 80237020 (4 bytes) - .data 0x80237020 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80237020 => li r4, 0xFFFFFDB0 - # region @ 80237998 (4 bytes) - .data 0x80237998 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80237998 => li r4, 0xFFFFFF00 - # region @ 802379C8 (4 bytes) - .data 0x802379C8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802379C8 => li r4, 0xFFFFFE80 - # region @ 802379F8 (4 bytes) - .data 0x802379F8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802379F8 => li r4, 0xFFFFFDB0 - # region @ 8023B2C8 (4 bytes) - .data 0x8023B2C8 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023B2C8 => li r4, 0xFFFFFF00 - # region @ 8023B2F8 (4 bytes) - .data 0x8023B2F8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023B2F8 => li r4, 0xFFFFFE80 - # region @ 8023B328 (4 bytes) - .data 0x8023B328 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023B328 => li r4, 0xFFFFFDB0 - # region @ 80250264 (4 bytes) - .data 0x80250264 # address - .data 0x00000004 # size - .data 0x60000000 # 80250264 => nop - # region @ 80267DDC (4 bytes) - .data 0x80267DDC # address - .data 0x00000004 # size - .data 0x60000000 # 80267DDC => nop - # region @ 8026DA74 (4 bytes) - .data 0x8026DA74 # address - .data 0x00000004 # size - .data 0x3884AAFA # 8026DA74 => subi r4, r4, 0x5506 - # region @ 8026DB88 (4 bytes) - .data 0x8026DB88 # address - .data 0x00000004 # size - .data 0x3863AAFA # 8026DB88 => subi r3, r3, 0x5506 - # region @ 8026DC10 (4 bytes) - .data 0x8026DC10 # address - .data 0x00000004 # size - .data 0x3883AAFA # 8026DC10 => subi r4, r3, 0x5506 - # region @ 802BB4B0 (4 bytes) - .data 0x802BB4B0 # address - .data 0x00000004 # size - .data 0x4BD524D0 # 802BB4B0 => b -0x002ADB30 /* 8000D980 */ - # region @ 802FB99C (4 bytes) - .data 0x802FB99C # address - .data 0x00000004 # size - .data 0x2C030001 # 802FB99C => cmpwi r3, 1 - # region @ 80301600 (28 bytes) - .data 0x80301600 # address - .data 0x0000001C # size - .data 0x48000020 # 80301600 => b +0x00000020 /* 80301620 */ - .data 0x3863A830 # 80301604 => subi r3, r3, 0x57D0 - .data 0x800DB98C # 80301608 => lwz r0, [r13 - 0x4674] - .data 0x2C000023 # 8030160C => cmpwi r0, 35 - .data 0x40820008 # 80301610 => bne +0x00000008 /* 80301618 */ - .data 0x3863FB28 # 80301614 => subi r3, r3, 0x04D8 - .data 0x4800008C # 80301618 => b +0x0000008C /* 803016A4 */ - # region @ 803016A0 (4 bytes) - .data 0x803016A0 # address - .data 0x00000004 # size - .data 0x4BFFFF64 # 803016A0 => b -0x0000009C /* 80301604 */ - # region @ 80335060 (4 bytes) - .data 0x80335060 # address - .data 0x00000004 # size - .data 0x4BCD8940 # 80335060 => b -0x003276C0 /* 8000D9A0 */ - # region @ 80355960 (4 bytes) - .data 0x80355960 # address - .data 0x00000004 # size - .data 0x388001E8 # 80355960 => li r4, 0x01E8 - # region @ 80355984 (4 bytes) - .data 0x80355984 # address - .data 0x00000004 # size - .data 0x4BCB885D # 80355984 => bl -0x003477A4 /* 8000E1E0 */ - # region @ 803559F4 (4 bytes) - .data 0x803559F4 # address - .data 0x00000004 # size - .data 0x388001E8 # 803559F4 => li r4, 0x01E8 - # region @ 80355A04 (4 bytes) - .data 0x80355A04 # address - .data 0x00000004 # size - .data 0x4BCB87DD # 80355A04 => bl -0x00347824 /* 8000E1E0 */ - # region @ 804B3738 (8 bytes) - .data 0x804B3738 # address - .data 0x00000008 # size - .data 0x70808080 # 804B3738 => andi. r0, r4, 0x8080 - .data 0x60707070 # 804B373C => ori r16, r3, 0x7070 - # region @ 804C6EE4 (4 bytes) - .data 0x804C6EE4 # address - .data 0x00000004 # size - .data 0x0000001E # 804C6EE4 => .invalid - # region @ 804C6F3C (4 bytes) - .data 0x804C6F3C # address - .data 0x00000004 # size - .data 0x00000028 # 804C6F3C => .invalid - # region @ 804C6F68 (4 bytes) - .data 0x804C6F68 # address - .data 0x00000004 # size - .data 0x00000032 # 804C6F68 => .invalid - # region @ 804C6F94 (4 bytes) - .data 0x804C6F94 # address - .data 0x00000004 # size - .data 0x0000003C # 804C6F94 => .invalid - # region @ 804C6FA4 (4 bytes) - .data 0x804C6FA4 # address - .data 0x00000004 # size - .data 0x0018003C # 804C6FA4 => .invalid - # region @ 804C71FC (4 bytes) - .data 0x804C71FC # address - .data 0x00000004 # size - .data 0x00000028 # 804C71FC => .invalid - # region @ 804CBB40 (4 bytes) - .data 0x804CBB40 # address - .data 0x00000004 # size - .data 0xFF0074EE # 804CBB40 => fsel f24, f0, f14, f19 - # region @ 805C996C (4 bytes) - .data 0x805C996C # address - .data 0x00000004 # size - .data 0x435C0000 # 805C996C => bc 26, 28, +0x00000000 /* 805C996C */ - # region @ 805CB608 (4 bytes) - .data 0x805CB608 # address - .data 0x00000004 # size - .data 0x46AFC800 # 805CB608 => .invalid sc - # region @ 805CB8A8 (4 bytes) - .data 0x805CB8A8 # address - .data 0x00000004 # size - .data 0x43480000 # 805CB8A8 => bc 26, 8, +0x00000000 /* 805CB8A8 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/BugFixes/BugFixes.3OJ3.patch.s b/system/client-functions/BugFixes/BugFixes.3OJ3.patch.s deleted file mode 100644 index 5914f1e3..00000000 --- a/system/client-functions/BugFixes/BugFixes.3OJ3.patch.s +++ /dev/null @@ -1,552 +0,0 @@ -.meta name="Bug fixes" -.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B088 (88 bytes) - .data 0x8000B088 # address - .data 0x00000058 # size - .data 0x7FA3EB78 # 8000B088 => mr r3, r29 - .data 0x38800000 # 8000B08C => li r4, 0x0000 - .data 0x481AEB91 # 8000B090 => bl +0x001AEB90 /* 801B9C20 */ - .data 0x7FA3EB78 # 8000B094 => mr r3, r29 - .data 0x481AEE60 # 8000B098 => b +0x001AEE60 /* 801B9EF8 */ - .data 0x881F0000 # 8000B09C => lbz r0, [r31] - .data 0x28090001 # 8000B0A0 => cmplwi r9, 1 - .data 0x4082000C # 8000B0A4 => bne +0x0000000C /* 8000B0B0 */ - .data 0x881F0001 # 8000B0A8 => lbz r0, [r31 + 0x0001] - .data 0x3BFF0002 # 8000B0AC => addi r31, r31, 0x0002 - .data 0x48100AC4 # 8000B0B0 => b +0x00100AC4 /* 8010BB74 */ - .data 0x39200000 # 8000B0B4 => li r9, 0x0000 - .data 0x48100A55 # 8000B0B8 => bl +0x00100A54 /* 8010BB0C */ - .data 0x7F43D378 # 8000B0BC => mr r3, r26 - .data 0x7F64DB78 # 8000B0C0 => mr r4, r27 - .data 0x7F85E378 # 8000B0C4 => mr r5, r28 - .data 0x7FA6EB78 # 8000B0C8 => mr r6, r29 - .data 0x7FC7F378 # 8000B0CC => mr r7, r30 - .data 0x7FE8FB78 # 8000B0D0 => mr r8, r31 - .data 0x39200001 # 8000B0D4 => li r9, 0x0001 - .data 0x48100A35 # 8000B0D8 => bl +0x00100A34 /* 8010BB0C */ - .data 0x48102EC0 # 8000B0DC => b +0x00102EC0 /* 8010DF9C */ - # region @ 8000B5C8 (20 bytes) - .data 0x8000B5C8 # address - .data 0x00000014 # size - .data 0x80630098 # 8000B5C8 => lwz r3, [r3 + 0x0098] - .data 0x483D70D1 # 8000B5CC => bl +0x003D70D0 /* 803E269C */ - .data 0x807F042C # 8000B5D0 => lwz r3, [r31 + 0x042C] - .data 0x809F0430 # 8000B5D4 => lwz r4, [r31 + 0x0430] - .data 0x48178C88 # 8000B5D8 => b +0x00178C88 /* 80184260 */ - # region @ 8000BBD0 (32 bytes) - .data 0x8000BBD0 # address - .data 0x00000020 # size - .data 0x809F0370 # 8000BBD0 => lwz r4, [r31 + 0x0370] - .data 0x3884FC00 # 8000BBD4 => subi r4, r4, 0x0400 - .data 0x909F0370 # 8000BBD8 => stw [r31 + 0x0370], r4 - .data 0x807F0014 # 8000BBDC => lwz r3, [r31 + 0x0014] - .data 0x28030000 # 8000BBE0 => cmplwi r3, 0 - .data 0x41820008 # 8000BBE4 => beq +0x00000008 /* 8000BBEC */ - .data 0x90830060 # 8000BBE8 => stw [r3 + 0x0060], r4 - .data 0x48165420 # 8000BBEC => b +0x00165420 /* 8017100C */ - # region @ 8000C3F8 (124 bytes) - .data 0x8000C3F8 # address - .data 0x0000007C # size - .data 0x28040000 # 8000C3F8 => cmplwi r4, 0 - .data 0x4D820020 # 8000C3FC => beqlr - .data 0x9421FFF0 # 8000C400 => stwu [r1 - 0x0010], r1 - .data 0x481AD820 # 8000C404 => b +0x001AD820 /* 801B9C24 */ - .data 0x9421FFE0 # 8000C408 => stwu [r1 - 0x0020], r1 - .data 0x7C0802A6 # 8000C40C => mflr r0 - .data 0x90010024 # 8000C410 => stw [r1 + 0x0024], r0 - .data 0xBF410008 # 8000C414 => stmw [r1 + 0x0008], r26 - .data 0x7C7F1B78 # 8000C418 => mr r31, r3 - .data 0x4BFFFFDD # 8000C41C => bl -0x00000024 /* 8000C3F8 */ - .data 0x3BC00000 # 8000C420 => li r30, 0x0000 - .data 0x3BBF0D04 # 8000C424 => addi r29, r31, 0x0D04 - .data 0x837F032C # 8000C428 => lwz r27, [r31 + 0x032C] - .data 0x839D0000 # 8000C42C => lwz r28, [r29] - .data 0x7F83E379 # 8000C430 => mr. r3, r28 - .data 0x41820018 # 8000C434 => beq +0x00000018 /* 8000C44C */ - .data 0x38800001 # 8000C438 => li r4, 0x0001 - .data 0x480FECDD # 8000C43C => bl +0x000FECDC /* 8010B118 */ - .data 0x7F83E378 # 8000C440 => mr r3, r28 - .data 0x38800001 # 8000C444 => li r4, 0x0001 - .data 0x480FEE4D # 8000C448 => bl +0x000FEE4C /* 8010B294 */ - .data 0x3BBD0004 # 8000C44C => addi r29, r29, 0x0004 - .data 0x3BDE0001 # 8000C450 => addi r30, r30, 0x0001 - .data 0x2C1E000D # 8000C454 => cmpwi r30, 13 - .data 0x4180FFD4 # 8000C458 => blt -0x0000002C /* 8000C42C */ - .data 0x937F032C # 8000C45C => stw [r31 + 0x032C], r27 - .data 0xBB410008 # 8000C460 => lmw r26, [r1 + 0x0008] - .data 0x80010024 # 8000C464 => lwz r0, [r1 + 0x0024] - .data 0x7C0803A6 # 8000C468 => mtlr r0 - .data 0x38210020 # 8000C46C => addi r1, r1, 0x0020 - .data 0x4E800020 # 8000C470 => blr - # region @ 8000C640 (20 bytes) - .data 0x8000C640 # address - .data 0x00000014 # size - .data 0x54800673 # 8000C640 => rlwinm. r0, r4, 0, 25, 25 - .data 0x41820008 # 8000C644 => beq +0x00000008 /* 8000C64C */ - .data 0x38800000 # 8000C648 => li r4, 0x0000 - .data 0x38040009 # 8000C64C => addi r0, r4, 0x0009 - .data 0x4810C8B0 # 8000C650 => b +0x0010C8B0 /* 80118F00 */ - # region @ 8000C6D0 (32 bytes) - .data 0x8000C6D0 # address - .data 0x00000020 # size - .data 0x38000001 # 8000C6D0 => li r0, 0x0001 - .data 0x901D0054 # 8000C6D4 => stw [r29 + 0x0054], r0 - .data 0x807D0024 # 8000C6D8 => lwz r3, [r29 + 0x0024] - .data 0x48211324 # 8000C6DC => b +0x00211324 /* 8021DA00 */ - .data 0x38000001 # 8000C6E0 => li r0, 0x0001 - .data 0x901F0378 # 8000C6E4 => stw [r31 + 0x0378], r0 - .data 0x807F0024 # 8000C6E8 => lwz r3, [r31 + 0x0024] - .data 0x482147D4 # 8000C6EC => b +0x002147D4 /* 80220EC0 */ - # region @ 8000C8A0 (20 bytes) - .data 0x8000C8A0 # address - .data 0x00000014 # size - .data 0x1C00000A # 8000C8A0 => mulli r0, r0, 10 - .data 0x57E407BD # 8000C8A4 => rlwinm. r4, r31, 0, 30, 30 - .data 0x41820008 # 8000C8A8 => beq +0x00000008 /* 8000C8B0 */ - .data 0x7FA00734 # 8000C8AC => extsh r0, r29 - .data 0x48105FB8 # 8000C8B0 => b +0x00105FB8 /* 80112868 */ - # region @ 8000C8C0 (16 bytes) - .data 0x8000C8C0 # address - .data 0x00000010 # size - .data 0x7000000F # 8000C8C0 => andi. r0, r0, 0x000F - .data 0x7000004F # 8000C8C4 => andi. r0, r0, 0x004F - .data 0x2C000004 # 8000C8C8 => cmpwi r0, 4 - .data 0x4E800020 # 8000C8CC => blr - # region @ 8000D980 (20 bytes) - .data 0x8000D980 # address - .data 0x00000014 # size - .data 0x807C0000 # 8000D980 => lwz r3, [r28] - .data 0x2C030013 # 8000D984 => cmpwi r3, 19 - .data 0x40820008 # 8000D988 => bne +0x00000008 /* 8000D990 */ - .data 0x38600002 # 8000D98C => li r3, 0x0002 - .data 0x482AEA54 # 8000D990 => b +0x002AEA54 /* 802BC3E4 */ - # region @ 8000D9A0 (24 bytes) - .data 0x8000D9A0 # address - .data 0x00000018 # size - .data 0xC042FC80 # 8000D9A0 => lfs f2, [r2 - 0x0380] - .data 0x807E0030 # 8000D9A4 => lwz r3, [r30 + 0x0030] - .data 0x70630020 # 8000D9A8 => andi. r3, r3, 0x0020 - .data 0x41820008 # 8000D9AC => beq +0x00000008 /* 8000D9B4 */ - .data 0xC042FC98 # 8000D9B0 => lfs f2, [r2 - 0x0368] - .data 0x4832871C # 8000D9B4 => b +0x0032871C /* 803360D0 */ - # region @ 8000E1E0 (28 bytes) - .data 0x8000E1E0 # address - .data 0x0000001C # size - .data 0x7FC802A6 # 8000E1E0 => mflr r30 - .data 0x38A00000 # 8000E1E4 => li r5, 0x0000 - .data 0x38C0001E # 8000E1E8 => li r6, 0x001E - .data 0x38E00040 # 8000E1EC => li r7, 0x0040 - .data 0x4807859D # 8000E1F0 => bl +0x0007859C /* 8008678C */ - .data 0x7FC803A6 # 8000E1F4 => mtlr r30 - .data 0x4E800020 # 8000E1F8 => blr - # region @ 8001309C (4 bytes) - .data 0x8001309C # address - .data 0x00000004 # size - .data 0x4BFFFCC0 # 8001309C => b -0x00000340 /* 80012D5C */ - # region @ 8001430C (4 bytes) - .data 0x8001430C # address - .data 0x00000004 # size - .data 0x4BFF85B5 # 8001430C => bl -0x00007A4C /* 8000C8C0 */ - # region @ 80015D34 (4 bytes) - .data 0x80015D34 # address - .data 0x00000004 # size - .data 0x4BFF6B91 # 80015D34 => bl -0x00009470 /* 8000C8C4 */ - # region @ 80091814 (8 bytes) - .data 0x80091814 # address - .data 0x00000008 # size - .data 0x4800024D # 80091814 => bl +0x0000024C /* 80091A60 */ - .data 0xB3C3032C # 80091818 => sth [r3 + 0x032C], r30 - # region @ 800BCA58 (4 bytes) - .data 0x800BCA58 # address - .data 0x00000004 # size - .data 0x48000010 # 800BCA58 => b +0x00000010 /* 800BCA68 */ - # region @ 80104D24 (4 bytes) - .data 0x80104D24 # address - .data 0x00000004 # size - .data 0x4182000C # 80104D24 => beq +0x0000000C /* 80104D30 */ - # region @ 80107654 (4 bytes) - .data 0x80107654 # address - .data 0x00000004 # size - .data 0x4800000C # 80107654 => b +0x0000000C /* 80107660 */ - # region @ 80107668 (4 bytes) - .data 0x80107668 # address - .data 0x00000004 # size - .data 0x7C030378 # 80107668 => mr r3, r0 - # region @ 8010BB70 (4 bytes) - .data 0x8010BB70 # address - .data 0x00000004 # size - .data 0x4BEFF52C # 8010BB70 => b -0x00100AD4 /* 8000B09C */ - # region @ 8010DF98 (4 bytes) - .data 0x8010DF98 # address - .data 0x00000004 # size - .data 0x4BEFD11C # 8010DF98 => b -0x00102EE4 /* 8000B0B4 */ - # region @ 80112864 (4 bytes) - .data 0x80112864 # address - .data 0x00000004 # size - .data 0x4BEFA03C # 80112864 => b -0x00105FC4 /* 8000C8A0 */ - # region @ 8011458C (4 bytes) - .data 0x8011458C # address - .data 0x00000004 # size - .data 0x38000012 # 8011458C => li r0, 0x0012 - # region @ 801187CC (4 bytes) - .data 0x801187CC # address - .data 0x00000004 # size - .data 0x88040016 # 801187CC => lbz r0, [r4 + 0x0016] - # region @ 801187D8 (4 bytes) - .data 0x801187D8 # address - .data 0x00000004 # size - .data 0x88040017 # 801187D8 => lbz r0, [r4 + 0x0017] - # region @ 80118EFC (4 bytes) - .data 0x80118EFC # address - .data 0x00000004 # size - .data 0x4BEF3744 # 80118EFC => b -0x0010C8BC /* 8000C640 */ - # region @ 8011CCD4 (12 bytes) - .data 0x8011CCD4 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CCD4 => mr r3, r0 - .data 0x3863FFFF # 8011CCD8 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CCDC => b -0x00000018 /* 8011CCC4 */ - # region @ 8011CD90 (12 bytes) - .data 0x8011CD90 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CD90 => mr r3, r0 - .data 0x3863FFFF # 8011CD94 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CD98 => b -0x00000018 /* 8011CD80 */ - # region @ 8011CDE0 (12 bytes) - .data 0x8011CDE0 # address - .data 0x0000000C # size - .data 0x7C040378 # 8011CDE0 => mr r4, r0 - .data 0x3884FFFF # 8011CDE4 => subi r4, r4, 0x0001 - .data 0x4BFFFFE8 # 8011CDE8 => b -0x00000018 /* 8011CDD0 */ - # region @ 801666D8 (8 bytes) - .data 0x801666D8 # address - .data 0x00000008 # size - .data 0x3C604005 # 801666D8 => lis r3, 0x4005 - .data 0x4800009C # 801666DC => b +0x0000009C /* 80166778 */ - # region @ 80166774 (4 bytes) - .data 0x80166774 # address - .data 0x00000004 # size - .data 0x4800001C # 80166774 => b +0x0000001C /* 80166790 */ - # region @ 80171008 (4 bytes) - .data 0x80171008 # address - .data 0x00000004 # size - .data 0x4BE9ABC8 # 80171008 => b -0x00165438 /* 8000BBD0 */ - # region @ 80171028 (4 bytes) - .data 0x80171028 # address - .data 0x00000004 # size - .data 0x60800420 # 80171028 => ori r0, r4, 0x0420 - # region @ 8018425C (4 bytes) - .data 0x8018425C # address - .data 0x00000004 # size - .data 0x4BE8736C # 8018425C => b -0x00178C94 /* 8000B5C8 */ - # region @ 8018429C (4 bytes) - .data 0x8018429C # address - .data 0x00000004 # size - .data 0x60000000 # 8018429C => nop - # region @ 80189E2C (4 bytes) - .data 0x80189E2C # address - .data 0x00000004 # size - .data 0x60000000 # 80189E2C => nop - # region @ 801937B0 (4 bytes) - .data 0x801937B0 # address - .data 0x00000004 # size - .data 0x60000000 # 801937B0 => nop - # region @ 801B9C20 (4 bytes) - .data 0x801B9C20 # address - .data 0x00000004 # size - .data 0x4BE527E8 # 801B9C20 => b -0x001AD818 /* 8000C408 */ - # region @ 801B9EF4 (4 bytes) - .data 0x801B9EF4 # address - .data 0x00000004 # size - .data 0x4BE51194 # 801B9EF4 => b -0x001AEE6C /* 8000B088 */ - # region @ 801C6360 (4 bytes) - .data 0x801C6360 # address - .data 0x00000004 # size - .data 0x389F02FC # 801C6360 => addi r4, r31, 0x02FC - # region @ 801CA6E0 (4 bytes) - .data 0x801CA6E0 # address - .data 0x00000004 # size - .data 0x48000010 # 801CA6E0 => b +0x00000010 /* 801CA6F0 */ - # region @ 8021D9FC (4 bytes) - .data 0x8021D9FC # address - .data 0x00000004 # size - .data 0x4BDEECD4 # 8021D9FC => b -0x0021132C /* 8000C6D0 */ - # region @ 80220EBC (4 bytes) - .data 0x80220EBC # address - .data 0x00000004 # size - .data 0x4BDEB824 # 80220EBC => b -0x002147DC /* 8000C6E0 */ - # region @ 80229CF0 (4 bytes) - .data 0x80229CF0 # address - .data 0x00000004 # size - .data 0x2C000001 # 80229CF0 => cmpwi r0, 1 - # region @ 8022A4F0 (4 bytes) - .data 0x8022A4F0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022A4F0 => li r4, 0xFFFFFF00 - # region @ 8022A520 (4 bytes) - .data 0x8022A520 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022A520 => li r4, 0xFFFFFE80 - # region @ 8022A550 (4 bytes) - .data 0x8022A550 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022A550 => li r4, 0xFFFFFDB0 - # region @ 8022D1EC (4 bytes) - .data 0x8022D1EC # address - .data 0x00000004 # size - .data 0x60000000 # 8022D1EC => nop - # region @ 8022D920 (4 bytes) - .data 0x8022D920 # address - .data 0x00000004 # size - .data 0x41810630 # 8022D920 => bgt +0x00000630 /* 8022DF50 */ - # region @ 8022EC44 (4 bytes) - .data 0x8022EC44 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022EC44 => li r4, 0xFFFFFF00 - # region @ 8022EC74 (4 bytes) - .data 0x8022EC74 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022EC74 => li r4, 0xFFFFFE80 - # region @ 8022ECA4 (4 bytes) - .data 0x8022ECA4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022ECA4 => li r4, 0xFFFFFDB0 - # region @ 8022F450 (4 bytes) - .data 0x8022F450 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022F450 => li r4, 0xFFFFFF00 - # region @ 8022F480 (4 bytes) - .data 0x8022F480 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022F480 => li r4, 0xFFFFFE80 - # region @ 8022F4B0 (4 bytes) - .data 0x8022F4B0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022F4B0 => li r4, 0xFFFFFDB0 - # region @ 80230A54 (4 bytes) - .data 0x80230A54 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80230A54 => li r4, 0xFFFFFF00 - # region @ 80230A84 (4 bytes) - .data 0x80230A84 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80230A84 => li r4, 0xFFFFFE80 - # region @ 80230AB4 (4 bytes) - .data 0x80230AB4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80230AB4 => li r4, 0xFFFFFDB0 - # region @ 802317C4 (4 bytes) - .data 0x802317C4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802317C4 => li r4, 0xFFFFFF00 - # region @ 802317F4 (4 bytes) - .data 0x802317F4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802317F4 => li r4, 0xFFFFFE80 - # region @ 80231824 (4 bytes) - .data 0x80231824 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80231824 => li r4, 0xFFFFFDB0 - # region @ 802320B8 (4 bytes) - .data 0x802320B8 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802320B8 => li r4, 0xFFFFFF00 - # region @ 802320F0 (4 bytes) - .data 0x802320F0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802320F0 => li r4, 0xFFFFFE80 - # region @ 80232128 (4 bytes) - .data 0x80232128 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80232128 => li r4, 0xFFFFFDB0 - # region @ 80234164 (4 bytes) - .data 0x80234164 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80234164 => li r4, 0xFFFFFF00 - # region @ 80234194 (4 bytes) - .data 0x80234194 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80234194 => li r4, 0xFFFFFE80 - # region @ 802341C4 (4 bytes) - .data 0x802341C4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802341C4 => li r4, 0xFFFFFDB0 - # region @ 80236790 (4 bytes) - .data 0x80236790 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80236790 => li r4, 0xFFFFFF00 - # region @ 802367CC (4 bytes) - .data 0x802367CC # address - .data 0x00000004 # size - .data 0x3880FE80 # 802367CC => li r4, 0xFFFFFE80 - # region @ 80236808 (4 bytes) - .data 0x80236808 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80236808 => li r4, 0xFFFFFDB0 - # region @ 80236F68 (4 bytes) - .data 0x80236F68 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80236F68 => li r4, 0xFFFFFF00 - # region @ 80236F98 (4 bytes) - .data 0x80236F98 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80236F98 => li r4, 0xFFFFFE80 - # region @ 80236FC8 (4 bytes) - .data 0x80236FC8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80236FC8 => li r4, 0xFFFFFDB0 - # region @ 8023797C (4 bytes) - .data 0x8023797C # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023797C => li r4, 0xFFFFFF00 - # region @ 802379AC (4 bytes) - .data 0x802379AC # address - .data 0x00000004 # size - .data 0x3880FE80 # 802379AC => li r4, 0xFFFFFE80 - # region @ 802379DC (4 bytes) - .data 0x802379DC # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802379DC => li r4, 0xFFFFFDB0 - # region @ 80238354 (4 bytes) - .data 0x80238354 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80238354 => li r4, 0xFFFFFF00 - # region @ 80238384 (4 bytes) - .data 0x80238384 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80238384 => li r4, 0xFFFFFE80 - # region @ 802383B4 (4 bytes) - .data 0x802383B4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802383B4 => li r4, 0xFFFFFDB0 - # region @ 8023BC84 (4 bytes) - .data 0x8023BC84 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023BC84 => li r4, 0xFFFFFF00 - # region @ 8023BCB4 (4 bytes) - .data 0x8023BCB4 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023BCB4 => li r4, 0xFFFFFE80 - # region @ 8023BCE4 (4 bytes) - .data 0x8023BCE4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023BCE4 => li r4, 0xFFFFFDB0 - # region @ 80250CB0 (4 bytes) - .data 0x80250CB0 # address - .data 0x00000004 # size - .data 0x60000000 # 80250CB0 => nop - # region @ 80268A88 (4 bytes) - .data 0x80268A88 # address - .data 0x00000004 # size - .data 0x60000000 # 80268A88 => nop - # region @ 8026E738 (4 bytes) - .data 0x8026E738 # address - .data 0x00000004 # size - .data 0x3884AAFA # 8026E738 => subi r4, r4, 0x5506 - # region @ 8026E84C (4 bytes) - .data 0x8026E84C # address - .data 0x00000004 # size - .data 0x3863AAFA # 8026E84C => subi r3, r3, 0x5506 - # region @ 8026E8D4 (4 bytes) - .data 0x8026E8D4 # address - .data 0x00000004 # size - .data 0x3883AAFA # 8026E8D4 => subi r4, r3, 0x5506 - # region @ 802BC3E0 (4 bytes) - .data 0x802BC3E0 # address - .data 0x00000004 # size - .data 0x4BD515A0 # 802BC3E0 => b -0x002AEA60 /* 8000D980 */ - # region @ 802FC968 (4 bytes) - .data 0x802FC968 # address - .data 0x00000004 # size - .data 0x2C030001 # 802FC968 => cmpwi r3, 1 - # region @ 803025CC (28 bytes) - .data 0x803025CC # address - .data 0x0000001C # size - .data 0x48000020 # 803025CC => b +0x00000020 /* 803025EC */ - .data 0x3863A830 # 803025D0 => subi r3, r3, 0x57D0 - .data 0x800DB994 # 803025D4 => lwz r0, [r13 - 0x466C] - .data 0x2C000023 # 803025D8 => cmpwi r0, 35 - .data 0x40820008 # 803025DC => bne +0x00000008 /* 803025E4 */ - .data 0x3863FB28 # 803025E0 => subi r3, r3, 0x04D8 - .data 0x4800008C # 803025E4 => b +0x0000008C /* 80302670 */ - # region @ 8030266C (4 bytes) - .data 0x8030266C # address - .data 0x00000004 # size - .data 0x4BFFFF64 # 8030266C => b -0x0000009C /* 803025D0 */ - # region @ 803360CC (4 bytes) - .data 0x803360CC # address - .data 0x00000004 # size - .data 0x4BCD78D4 # 803360CC => b -0x0032872C /* 8000D9A0 */ - # region @ 80356D64 (4 bytes) - .data 0x80356D64 # address - .data 0x00000004 # size - .data 0x388001E8 # 80356D64 => li r4, 0x01E8 - # region @ 80356D88 (4 bytes) - .data 0x80356D88 # address - .data 0x00000004 # size - .data 0x4BCB7459 # 80356D88 => bl -0x00348BA8 /* 8000E1E0 */ - # region @ 80356DF8 (4 bytes) - .data 0x80356DF8 # address - .data 0x00000004 # size - .data 0x388001E8 # 80356DF8 => li r4, 0x01E8 - # region @ 80356E08 (4 bytes) - .data 0x80356E08 # address - .data 0x00000004 # size - .data 0x4BCB73D9 # 80356E08 => bl -0x00348C28 /* 8000E1E0 */ - # region @ 804B6E58 (8 bytes) - .data 0x804B6E58 # address - .data 0x00000008 # size - .data 0x70808080 # 804B6E58 => andi. r0, r4, 0x8080 - .data 0x60707070 # 804B6E5C => ori r16, r3, 0x7070 - # region @ 804CA61C (4 bytes) - .data 0x804CA61C # address - .data 0x00000004 # size - .data 0x0000001E # 804CA61C => .invalid - # region @ 804CA674 (4 bytes) - .data 0x804CA674 # address - .data 0x00000004 # size - .data 0x00000028 # 804CA674 => .invalid - # region @ 804CA6A0 (4 bytes) - .data 0x804CA6A0 # address - .data 0x00000004 # size - .data 0x00000032 # 804CA6A0 => .invalid - # region @ 804CA6CC (4 bytes) - .data 0x804CA6CC # address - .data 0x00000004 # size - .data 0x0000003C # 804CA6CC => .invalid - # region @ 804CA6DC (4 bytes) - .data 0x804CA6DC # address - .data 0x00000004 # size - .data 0x0018003C # 804CA6DC => .invalid - # region @ 804CA934 (4 bytes) - .data 0x804CA934 # address - .data 0x00000004 # size - .data 0x00000028 # 804CA934 => .invalid - # region @ 804CF290 (4 bytes) - .data 0x804CF290 # address - .data 0x00000004 # size - .data 0xFF0074EE # 804CF290 => fsel f24, f0, f14, f19 - # region @ 805D3F6C (4 bytes) - .data 0x805D3F6C # address - .data 0x00000004 # size - .data 0x435C0000 # 805D3F6C => bc 26, 28, +0x00000000 /* 805D3F6C */ - # region @ 805D5C08 (4 bytes) - .data 0x805D5C08 # address - .data 0x00000004 # size - .data 0x46AFC800 # 805D5C08 => .invalid sc - # region @ 805D5EA8 (4 bytes) - .data 0x805D5EA8 # address - .data 0x00000004 # size - .data 0x43480000 # 805D5EA8 => bc 26, 8, +0x00000000 /* 805D5EA8 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/BugFixes/BugFixes.3OJ4.patch.s b/system/client-functions/BugFixes/BugFixes.3OJ4.patch.s deleted file mode 100644 index 7667677d..00000000 --- a/system/client-functions/BugFixes/BugFixes.3OJ4.patch.s +++ /dev/null @@ -1,552 +0,0 @@ -.meta name="Bug fixes" -.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B088 (88 bytes) - .data 0x8000B088 # address - .data 0x00000058 # size - .data 0x7FA3EB78 # 8000B088 => mr r3, r29 - .data 0x38800000 # 8000B08C => li r4, 0x0000 - .data 0x481B1C09 # 8000B090 => bl +0x001B1C08 /* 801BCC98 */ - .data 0x7FA3EB78 # 8000B094 => mr r3, r29 - .data 0x481B1ED8 # 8000B098 => b +0x001B1ED8 /* 801BCF70 */ - .data 0x881F0000 # 8000B09C => lbz r0, [r31] - .data 0x28090001 # 8000B0A0 => cmplwi r9, 1 - .data 0x4082000C # 8000B0A4 => bne +0x0000000C /* 8000B0B0 */ - .data 0x881F0001 # 8000B0A8 => lbz r0, [r31 + 0x0001] - .data 0x3BFF0002 # 8000B0AC => addi r31, r31, 0x0002 - .data 0x48100B58 # 8000B0B0 => b +0x00100B58 /* 8010BC08 */ - .data 0x39200000 # 8000B0B4 => li r9, 0x0000 - .data 0x48100AE9 # 8000B0B8 => bl +0x00100AE8 /* 8010BBA0 */ - .data 0x7F43D378 # 8000B0BC => mr r3, r26 - .data 0x7F64DB78 # 8000B0C0 => mr r4, r27 - .data 0x7F85E378 # 8000B0C4 => mr r5, r28 - .data 0x7FA6EB78 # 8000B0C8 => mr r6, r29 - .data 0x7FC7F378 # 8000B0CC => mr r7, r30 - .data 0x7FE8FB78 # 8000B0D0 => mr r8, r31 - .data 0x39200001 # 8000B0D4 => li r9, 0x0001 - .data 0x48100AC9 # 8000B0D8 => bl +0x00100AC8 /* 8010BBA0 */ - .data 0x4810300C # 8000B0DC => b +0x0010300C /* 8010E0E8 */ - # region @ 8000B5C8 (20 bytes) - .data 0x8000B5C8 # address - .data 0x00000014 # size - .data 0x80630098 # 8000B5C8 => lwz r3, [r3 + 0x0098] - .data 0x483D8F71 # 8000B5CC => bl +0x003D8F70 /* 803E453C */ - .data 0x807F042C # 8000B5D0 => lwz r3, [r31 + 0x042C] - .data 0x809F0430 # 8000B5D4 => lwz r4, [r31 + 0x0430] - .data 0x48178DEC # 8000B5D8 => b +0x00178DEC /* 801843C4 */ - # region @ 8000BBD0 (32 bytes) - .data 0x8000BBD0 # address - .data 0x00000020 # size - .data 0x809F0370 # 8000BBD0 => lwz r4, [r31 + 0x0370] - .data 0x3884FC00 # 8000BBD4 => subi r4, r4, 0x0400 - .data 0x909F0370 # 8000BBD8 => stw [r31 + 0x0370], r4 - .data 0x807F0014 # 8000BBDC => lwz r3, [r31 + 0x0014] - .data 0x28030000 # 8000BBE0 => cmplwi r3, 0 - .data 0x41820008 # 8000BBE4 => beq +0x00000008 /* 8000BBEC */ - .data 0x90830060 # 8000BBE8 => stw [r3 + 0x0060], r4 - .data 0x48165678 # 8000BBEC => b +0x00165678 /* 80171264 */ - # region @ 8000C3F8 (124 bytes) - .data 0x8000C3F8 # address - .data 0x0000007C # size - .data 0x28040000 # 8000C3F8 => cmplwi r4, 0 - .data 0x4D820020 # 8000C3FC => beqlr - .data 0x9421FFF0 # 8000C400 => stwu [r1 - 0x0010], r1 - .data 0x481B0898 # 8000C404 => b +0x001B0898 /* 801BCC9C */ - .data 0x9421FFE0 # 8000C408 => stwu [r1 - 0x0020], r1 - .data 0x7C0802A6 # 8000C40C => mflr r0 - .data 0x90010024 # 8000C410 => stw [r1 + 0x0024], r0 - .data 0xBF410008 # 8000C414 => stmw [r1 + 0x0008], r26 - .data 0x7C7F1B78 # 8000C418 => mr r31, r3 - .data 0x4BFFFFDD # 8000C41C => bl -0x00000024 /* 8000C3F8 */ - .data 0x3BC00000 # 8000C420 => li r30, 0x0000 - .data 0x3BBF0D04 # 8000C424 => addi r29, r31, 0x0D04 - .data 0x837F032C # 8000C428 => lwz r27, [r31 + 0x032C] - .data 0x839D0000 # 8000C42C => lwz r28, [r29] - .data 0x7F83E379 # 8000C430 => mr. r3, r28 - .data 0x41820018 # 8000C434 => beq +0x00000018 /* 8000C44C */ - .data 0x38800001 # 8000C438 => li r4, 0x0001 - .data 0x480FEDC9 # 8000C43C => bl +0x000FEDC8 /* 8010B204 */ - .data 0x7F83E378 # 8000C440 => mr r3, r28 - .data 0x38800001 # 8000C444 => li r4, 0x0001 - .data 0x480FEF49 # 8000C448 => bl +0x000FEF48 /* 8010B390 */ - .data 0x3BBD0004 # 8000C44C => addi r29, r29, 0x0004 - .data 0x3BDE0001 # 8000C450 => addi r30, r30, 0x0001 - .data 0x2C1E000D # 8000C454 => cmpwi r30, 13 - .data 0x4180FFD4 # 8000C458 => blt -0x0000002C /* 8000C42C */ - .data 0x937F032C # 8000C45C => stw [r31 + 0x032C], r27 - .data 0xBB410008 # 8000C460 => lmw r26, [r1 + 0x0008] - .data 0x80010024 # 8000C464 => lwz r0, [r1 + 0x0024] - .data 0x7C0803A6 # 8000C468 => mtlr r0 - .data 0x38210020 # 8000C46C => addi r1, r1, 0x0020 - .data 0x4E800020 # 8000C470 => blr - # region @ 8000C640 (20 bytes) - .data 0x8000C640 # address - .data 0x00000014 # size - .data 0x54800673 # 8000C640 => rlwinm. r0, r4, 0, 25, 25 - .data 0x41820008 # 8000C644 => beq +0x00000008 /* 8000C64C */ - .data 0x38800000 # 8000C648 => li r4, 0x0000 - .data 0x38040009 # 8000C64C => addi r0, r4, 0x0009 - .data 0x4810C98C # 8000C650 => b +0x0010C98C /* 80118FDC */ - # region @ 8000C6D0 (32 bytes) - .data 0x8000C6D0 # address - .data 0x00000020 # size - .data 0x38000001 # 8000C6D0 => li r0, 0x0001 - .data 0x901D0054 # 8000C6D4 => stw [r29 + 0x0054], r0 - .data 0x807D0024 # 8000C6D8 => lwz r3, [r29 + 0x0024] - .data 0x48212210 # 8000C6DC => b +0x00212210 /* 8021E8EC */ - .data 0x38000001 # 8000C6E0 => li r0, 0x0001 - .data 0x901F0378 # 8000C6E4 => stw [r31 + 0x0378], r0 - .data 0x807F0024 # 8000C6E8 => lwz r3, [r31 + 0x0024] - .data 0x482156C0 # 8000C6EC => b +0x002156C0 /* 80221DAC */ - # region @ 8000C8A0 (20 bytes) - .data 0x8000C8A0 # address - .data 0x00000014 # size - .data 0x1C00000A # 8000C8A0 => mulli r0, r0, 10 - .data 0x57E407BD # 8000C8A4 => rlwinm. r4, r31, 0, 30, 30 - .data 0x41820008 # 8000C8A8 => beq +0x00000008 /* 8000C8B0 */ - .data 0x7FA00734 # 8000C8AC => extsh r0, r29 - .data 0x48106190 # 8000C8B0 => b +0x00106190 /* 80112A40 */ - # region @ 8000C8C0 (16 bytes) - .data 0x8000C8C0 # address - .data 0x00000010 # size - .data 0x7000000F # 8000C8C0 => andi. r0, r0, 0x000F - .data 0x7000004F # 8000C8C4 => andi. r0, r0, 0x004F - .data 0x2C000004 # 8000C8C8 => cmpwi r0, 4 - .data 0x4E800020 # 8000C8CC => blr - # region @ 8000D980 (20 bytes) - .data 0x8000D980 # address - .data 0x00000014 # size - .data 0x807C0000 # 8000D980 => lwz r3, [r28] - .data 0x2C030013 # 8000D984 => cmpwi r3, 19 - .data 0x40820008 # 8000D988 => bne +0x00000008 /* 8000D990 */ - .data 0x38600002 # 8000D98C => li r3, 0x0002 - .data 0x482AFB9C # 8000D990 => b +0x002AFB9C /* 802BD52C */ - # region @ 8000D9A0 (24 bytes) - .data 0x8000D9A0 # address - .data 0x00000018 # size - .data 0xC042FC80 # 8000D9A0 => lfs f2, [r2 - 0x0380] - .data 0x807E0030 # 8000D9A4 => lwz r3, [r30 + 0x0030] - .data 0x70630020 # 8000D9A8 => andi. r3, r3, 0x0020 - .data 0x41820008 # 8000D9AC => beq +0x00000008 /* 8000D9B4 */ - .data 0xC042FC98 # 8000D9B0 => lfs f2, [r2 - 0x0368] - .data 0x48329C38 # 8000D9B4 => b +0x00329C38 /* 803375EC */ - # region @ 8000E1E0 (28 bytes) - .data 0x8000E1E0 # address - .data 0x0000001C # size - .data 0x7FC802A6 # 8000E1E0 => mflr r30 - .data 0x38A00000 # 8000E1E4 => li r5, 0x0000 - .data 0x38C0001E # 8000E1E8 => li r6, 0x001E - .data 0x38E00040 # 8000E1EC => li r7, 0x0040 - .data 0x48078715 # 8000E1F0 => bl +0x00078714 /* 80086904 */ - .data 0x7FC803A6 # 8000E1F4 => mtlr r30 - .data 0x4E800020 # 8000E1F8 => blr - # region @ 80013364 (4 bytes) - .data 0x80013364 # address - .data 0x00000004 # size - .data 0x4BFFFCC0 # 80013364 => b -0x00000340 /* 80013024 */ - # region @ 800146A4 (4 bytes) - .data 0x800146A4 # address - .data 0x00000004 # size - .data 0x4BFF821D # 800146A4 => bl -0x00007DE4 /* 8000C8C0 */ - # region @ 80016174 (4 bytes) - .data 0x80016174 # address - .data 0x00000004 # size - .data 0x4BFF6751 # 80016174 => bl -0x000098B0 /* 8000C8C4 */ - # region @ 8009198C (8 bytes) - .data 0x8009198C # address - .data 0x00000008 # size - .data 0x4800024D # 8009198C => bl +0x0000024C /* 80091BD8 */ - .data 0xB3C3032C # 80091990 => sth [r3 + 0x032C], r30 - # region @ 800BCBD0 (4 bytes) - .data 0x800BCBD0 # address - .data 0x00000004 # size - .data 0x48000010 # 800BCBD0 => b +0x00000010 /* 800BCBE0 */ - # region @ 80104DE0 (4 bytes) - .data 0x80104DE0 # address - .data 0x00000004 # size - .data 0x4182000C # 80104DE0 => beq +0x0000000C /* 80104DEC */ - # region @ 80107708 (4 bytes) - .data 0x80107708 # address - .data 0x00000004 # size - .data 0x4800000C # 80107708 => b +0x0000000C /* 80107714 */ - # region @ 8010771C (4 bytes) - .data 0x8010771C # address - .data 0x00000004 # size - .data 0x7C030378 # 8010771C => mr r3, r0 - # region @ 8010BC04 (4 bytes) - .data 0x8010BC04 # address - .data 0x00000004 # size - .data 0x4BEFF498 # 8010BC04 => b -0x00100B68 /* 8000B09C */ - # region @ 8010E0E4 (4 bytes) - .data 0x8010E0E4 # address - .data 0x00000004 # size - .data 0x4BEFCFD0 # 8010E0E4 => b -0x00103030 /* 8000B0B4 */ - # region @ 80112A3C (4 bytes) - .data 0x80112A3C # address - .data 0x00000004 # size - .data 0x4BEF9E64 # 80112A3C => b -0x0010619C /* 8000C8A0 */ - # region @ 80114634 (4 bytes) - .data 0x80114634 # address - .data 0x00000004 # size - .data 0x38000012 # 80114634 => li r0, 0x0012 - # region @ 8011885C (4 bytes) - .data 0x8011885C # address - .data 0x00000004 # size - .data 0x88040016 # 8011885C => lbz r0, [r4 + 0x0016] - # region @ 80118868 (4 bytes) - .data 0x80118868 # address - .data 0x00000004 # size - .data 0x88040017 # 80118868 => lbz r0, [r4 + 0x0017] - # region @ 80118FD8 (4 bytes) - .data 0x80118FD8 # address - .data 0x00000004 # size - .data 0x4BEF3668 # 80118FD8 => b -0x0010C998 /* 8000C640 */ - # region @ 8011CD0C (12 bytes) - .data 0x8011CD0C # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CD0C => mr r3, r0 - .data 0x3863FFFF # 8011CD10 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CD14 => b -0x00000018 /* 8011CCFC */ - # region @ 8011CDC8 (12 bytes) - .data 0x8011CDC8 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CDC8 => mr r3, r0 - .data 0x3863FFFF # 8011CDCC => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CDD0 => b -0x00000018 /* 8011CDB8 */ - # region @ 8011CE18 (12 bytes) - .data 0x8011CE18 # address - .data 0x0000000C # size - .data 0x7C040378 # 8011CE18 => mr r4, r0 - .data 0x3884FFFF # 8011CE1C => subi r4, r4, 0x0001 - .data 0x4BFFFFE8 # 8011CE20 => b -0x00000018 /* 8011CE08 */ - # region @ 80166848 (8 bytes) - .data 0x80166848 # address - .data 0x00000008 # size - .data 0x3C604005 # 80166848 => lis r3, 0x4005 - .data 0x4800009C # 8016684C => b +0x0000009C /* 801668E8 */ - # region @ 801668E4 (4 bytes) - .data 0x801668E4 # address - .data 0x00000004 # size - .data 0x4800001C # 801668E4 => b +0x0000001C /* 80166900 */ - # region @ 80171260 (4 bytes) - .data 0x80171260 # address - .data 0x00000004 # size - .data 0x4BE9A970 # 80171260 => b -0x00165690 /* 8000BBD0 */ - # region @ 80171280 (4 bytes) - .data 0x80171280 # address - .data 0x00000004 # size - .data 0x60800420 # 80171280 => ori r0, r4, 0x0420 - # region @ 801843C0 (4 bytes) - .data 0x801843C0 # address - .data 0x00000004 # size - .data 0x4BE87208 # 801843C0 => b -0x00178DF8 /* 8000B5C8 */ - # region @ 80184400 (4 bytes) - .data 0x80184400 # address - .data 0x00000004 # size - .data 0x60000000 # 80184400 => nop - # region @ 80189F90 (4 bytes) - .data 0x80189F90 # address - .data 0x00000004 # size - .data 0x60000000 # 80189F90 => nop - # region @ 80193914 (4 bytes) - .data 0x80193914 # address - .data 0x00000004 # size - .data 0x60000000 # 80193914 => nop - # region @ 801BCC98 (4 bytes) - .data 0x801BCC98 # address - .data 0x00000004 # size - .data 0x4BE4F770 # 801BCC98 => b -0x001B0890 /* 8000C408 */ - # region @ 801BCF6C (4 bytes) - .data 0x801BCF6C # address - .data 0x00000004 # size - .data 0x4BE4E11C # 801BCF6C => b -0x001B1EE4 /* 8000B088 */ - # region @ 801C6604 (4 bytes) - .data 0x801C6604 # address - .data 0x00000004 # size - .data 0x389F02FC # 801C6604 => addi r4, r31, 0x02FC - # region @ 801CB5EC (4 bytes) - .data 0x801CB5EC # address - .data 0x00000004 # size - .data 0x48000010 # 801CB5EC => b +0x00000010 /* 801CB5FC */ - # region @ 8021E8E8 (4 bytes) - .data 0x8021E8E8 # address - .data 0x00000004 # size - .data 0x4BDEDDE8 # 8021E8E8 => b -0x00212218 /* 8000C6D0 */ - # region @ 80221DA8 (4 bytes) - .data 0x80221DA8 # address - .data 0x00000004 # size - .data 0x4BDEA938 # 80221DA8 => b -0x002156C8 /* 8000C6E0 */ - # region @ 8022ABDC (4 bytes) - .data 0x8022ABDC # address - .data 0x00000004 # size - .data 0x2C000001 # 8022ABDC => cmpwi r0, 1 - # region @ 8022B3E0 (4 bytes) - .data 0x8022B3E0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022B3E0 => li r4, 0xFFFFFF00 - # region @ 8022B410 (4 bytes) - .data 0x8022B410 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022B410 => li r4, 0xFFFFFE80 - # region @ 8022B440 (4 bytes) - .data 0x8022B440 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022B440 => li r4, 0xFFFFFDB0 - # region @ 8022E128 (4 bytes) - .data 0x8022E128 # address - .data 0x00000004 # size - .data 0x60000000 # 8022E128 => nop - # region @ 8022E85C (4 bytes) - .data 0x8022E85C # address - .data 0x00000004 # size - .data 0x41810630 # 8022E85C => bgt +0x00000630 /* 8022EE8C */ - # region @ 8022FB30 (4 bytes) - .data 0x8022FB30 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022FB30 => li r4, 0xFFFFFF00 - # region @ 8022FB60 (4 bytes) - .data 0x8022FB60 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022FB60 => li r4, 0xFFFFFE80 - # region @ 8022FB90 (4 bytes) - .data 0x8022FB90 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022FB90 => li r4, 0xFFFFFDB0 - # region @ 80230340 (4 bytes) - .data 0x80230340 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80230340 => li r4, 0xFFFFFF00 - # region @ 80230370 (4 bytes) - .data 0x80230370 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80230370 => li r4, 0xFFFFFE80 - # region @ 802303A0 (4 bytes) - .data 0x802303A0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802303A0 => li r4, 0xFFFFFDB0 - # region @ 80231940 (4 bytes) - .data 0x80231940 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80231940 => li r4, 0xFFFFFF00 - # region @ 80231970 (4 bytes) - .data 0x80231970 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80231970 => li r4, 0xFFFFFE80 - # region @ 802319A0 (4 bytes) - .data 0x802319A0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802319A0 => li r4, 0xFFFFFDB0 - # region @ 802326B0 (4 bytes) - .data 0x802326B0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802326B0 => li r4, 0xFFFFFF00 - # region @ 802326E0 (4 bytes) - .data 0x802326E0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802326E0 => li r4, 0xFFFFFE80 - # region @ 80232710 (4 bytes) - .data 0x80232710 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80232710 => li r4, 0xFFFFFDB0 - # region @ 80232FA4 (4 bytes) - .data 0x80232FA4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80232FA4 => li r4, 0xFFFFFF00 - # region @ 80232FDC (4 bytes) - .data 0x80232FDC # address - .data 0x00000004 # size - .data 0x3880FE80 # 80232FDC => li r4, 0xFFFFFE80 - # region @ 80233014 (4 bytes) - .data 0x80233014 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80233014 => li r4, 0xFFFFFDB0 - # region @ 80235050 (4 bytes) - .data 0x80235050 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80235050 => li r4, 0xFFFFFF00 - # region @ 80235080 (4 bytes) - .data 0x80235080 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80235080 => li r4, 0xFFFFFE80 - # region @ 802350B0 (4 bytes) - .data 0x802350B0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802350B0 => li r4, 0xFFFFFDB0 - # region @ 8023767C (4 bytes) - .data 0x8023767C # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023767C => li r4, 0xFFFFFF00 - # region @ 802376B8 (4 bytes) - .data 0x802376B8 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802376B8 => li r4, 0xFFFFFE80 - # region @ 802376F4 (4 bytes) - .data 0x802376F4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802376F4 => li r4, 0xFFFFFDB0 - # region @ 80237E54 (4 bytes) - .data 0x80237E54 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80237E54 => li r4, 0xFFFFFF00 - # region @ 80237E84 (4 bytes) - .data 0x80237E84 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80237E84 => li r4, 0xFFFFFE80 - # region @ 80237EB4 (4 bytes) - .data 0x80237EB4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80237EB4 => li r4, 0xFFFFFDB0 - # region @ 80238868 (4 bytes) - .data 0x80238868 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80238868 => li r4, 0xFFFFFF00 - # region @ 80238898 (4 bytes) - .data 0x80238898 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80238898 => li r4, 0xFFFFFE80 - # region @ 802388C8 (4 bytes) - .data 0x802388C8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802388C8 => li r4, 0xFFFFFDB0 - # region @ 80239240 (4 bytes) - .data 0x80239240 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80239240 => li r4, 0xFFFFFF00 - # region @ 80239270 (4 bytes) - .data 0x80239270 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80239270 => li r4, 0xFFFFFE80 - # region @ 802392A0 (4 bytes) - .data 0x802392A0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802392A0 => li r4, 0xFFFFFDB0 - # region @ 8023CB70 (4 bytes) - .data 0x8023CB70 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023CB70 => li r4, 0xFFFFFF00 - # region @ 8023CBA0 (4 bytes) - .data 0x8023CBA0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023CBA0 => li r4, 0xFFFFFE80 - # region @ 8023CBD0 (4 bytes) - .data 0x8023CBD0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023CBD0 => li r4, 0xFFFFFDB0 - # region @ 80251CA4 (4 bytes) - .data 0x80251CA4 # address - .data 0x00000004 # size - .data 0x60000000 # 80251CA4 => nop - # region @ 80269AE4 (4 bytes) - .data 0x80269AE4 # address - .data 0x00000004 # size - .data 0x60000000 # 80269AE4 => nop - # region @ 8026F794 (4 bytes) - .data 0x8026F794 # address - .data 0x00000004 # size - .data 0x3884AAFA # 8026F794 => subi r4, r4, 0x5506 - # region @ 8026F8A8 (4 bytes) - .data 0x8026F8A8 # address - .data 0x00000004 # size - .data 0x3863AAFA # 8026F8A8 => subi r3, r3, 0x5506 - # region @ 8026F930 (4 bytes) - .data 0x8026F930 # address - .data 0x00000004 # size - .data 0x3883AAFA # 8026F930 => subi r4, r3, 0x5506 - # region @ 802BD528 (4 bytes) - .data 0x802BD528 # address - .data 0x00000004 # size - .data 0x4BD50458 # 802BD528 => b -0x002AFBA8 /* 8000D980 */ - # region @ 802FDE60 (4 bytes) - .data 0x802FDE60 # address - .data 0x00000004 # size - .data 0x2C030001 # 802FDE60 => cmpwi r3, 1 - # region @ 80303A1C (28 bytes) - .data 0x80303A1C # address - .data 0x0000001C # size - .data 0x48000020 # 80303A1C => b +0x00000020 /* 80303A3C */ - .data 0x3863A830 # 80303A20 => subi r3, r3, 0x57D0 - .data 0x800DB9B4 # 80303A24 => lwz r0, [r13 - 0x464C] - .data 0x2C000023 # 80303A28 => cmpwi r0, 35 - .data 0x40820008 # 80303A2C => bne +0x00000008 /* 80303A34 */ - .data 0x3863FB28 # 80303A30 => subi r3, r3, 0x04D8 - .data 0x4800008C # 80303A34 => b +0x0000008C /* 80303AC0 */ - # region @ 80303ABC (4 bytes) - .data 0x80303ABC # address - .data 0x00000004 # size - .data 0x4BFFFF64 # 80303ABC => b -0x0000009C /* 80303A20 */ - # region @ 803375E8 (4 bytes) - .data 0x803375E8 # address - .data 0x00000004 # size - .data 0x4BCD63B8 # 803375E8 => b -0x00329C48 /* 8000D9A0 */ - # region @ 803582C0 (4 bytes) - .data 0x803582C0 # address - .data 0x00000004 # size - .data 0x388001E8 # 803582C0 => li r4, 0x01E8 - # region @ 803582E4 (4 bytes) - .data 0x803582E4 # address - .data 0x00000004 # size - .data 0x4BCB5EFD # 803582E4 => bl -0x0034A104 /* 8000E1E0 */ - # region @ 80358354 (4 bytes) - .data 0x80358354 # address - .data 0x00000004 # size - .data 0x388001E8 # 80358354 => li r4, 0x01E8 - # region @ 80358364 (4 bytes) - .data 0x80358364 # address - .data 0x00000004 # size - .data 0x4BCB5E7D # 80358364 => bl -0x0034A184 /* 8000E1E0 */ - # region @ 804B92F8 (8 bytes) - .data 0x804B92F8 # address - .data 0x00000008 # size - .data 0x70808080 # 804B92F8 => andi. r0, r4, 0x8080 - .data 0x60707070 # 804B92FC => ori r16, r3, 0x7070 - # region @ 804CCB6C (4 bytes) - .data 0x804CCB6C # address - .data 0x00000004 # size - .data 0x0000001E # 804CCB6C => .invalid - # region @ 804CCBC4 (4 bytes) - .data 0x804CCBC4 # address - .data 0x00000004 # size - .data 0x00000028 # 804CCBC4 => .invalid - # region @ 804CCBF0 (4 bytes) - .data 0x804CCBF0 # address - .data 0x00000004 # size - .data 0x00000032 # 804CCBF0 => .invalid - # region @ 804CCC1C (4 bytes) - .data 0x804CCC1C # address - .data 0x00000004 # size - .data 0x0000003C # 804CCC1C => .invalid - # region @ 804CCC2C (4 bytes) - .data 0x804CCC2C # address - .data 0x00000004 # size - .data 0x0018003C # 804CCC2C => .invalid - # region @ 804CCE84 (4 bytes) - .data 0x804CCE84 # address - .data 0x00000004 # size - .data 0x00000028 # 804CCE84 => .invalid - # region @ 804D17E0 (4 bytes) - .data 0x804D17E0 # address - .data 0x00000004 # size - .data 0xFF0074EE # 804D17E0 => fsel f24, f0, f14, f19 - # region @ 805DB40C (4 bytes) - .data 0x805DB40C # address - .data 0x00000004 # size - .data 0x435C0000 # 805DB40C => bc 26, 28, +0x00000000 /* 805DB40C */ - # region @ 805DD0A8 (4 bytes) - .data 0x805DD0A8 # address - .data 0x00000004 # size - .data 0x46AFC800 # 805DD0A8 => .invalid sc - # region @ 805DD348 (4 bytes) - .data 0x805DD348 # address - .data 0x00000004 # size - .data 0x43480000 # 805DD348 => bc 26, 8, +0x00000000 /* 805DD348 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/BugFixes/BugFixes.3OJ5.patch.s b/system/client-functions/BugFixes/BugFixes.3OJ5.patch.s deleted file mode 100644 index 4d40238a..00000000 --- a/system/client-functions/BugFixes/BugFixes.3OJ5.patch.s +++ /dev/null @@ -1,552 +0,0 @@ -.meta name="Bug fixes" -.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B088 (88 bytes) - .data 0x8000B088 # address - .data 0x00000058 # size - .data 0x7FA3EB78 # 8000B088 => mr r3, r29 - .data 0x38800000 # 8000B08C => li r4, 0x0000 - .data 0x481AEC5D # 8000B090 => bl +0x001AEC5C /* 801B9CEC */ - .data 0x7FA3EB78 # 8000B094 => mr r3, r29 - .data 0x481AEF2C # 8000B098 => b +0x001AEF2C /* 801B9FC4 */ - .data 0x881F0000 # 8000B09C => lbz r0, [r31] - .data 0x28090001 # 8000B0A0 => cmplwi r9, 1 - .data 0x4082000C # 8000B0A4 => bne +0x0000000C /* 8000B0B0 */ - .data 0x881F0001 # 8000B0A8 => lbz r0, [r31 + 0x0001] - .data 0x3BFF0002 # 8000B0AC => addi r31, r31, 0x0002 - .data 0x48100A44 # 8000B0B0 => b +0x00100A44 /* 8010BAF4 */ - .data 0x39200000 # 8000B0B4 => li r9, 0x0000 - .data 0x481009D5 # 8000B0B8 => bl +0x001009D4 /* 8010BA8C */ - .data 0x7F43D378 # 8000B0BC => mr r3, r26 - .data 0x7F64DB78 # 8000B0C0 => mr r4, r27 - .data 0x7F85E378 # 8000B0C4 => mr r5, r28 - .data 0x7FA6EB78 # 8000B0C8 => mr r6, r29 - .data 0x7FC7F378 # 8000B0CC => mr r7, r30 - .data 0x7FE8FB78 # 8000B0D0 => mr r8, r31 - .data 0x39200001 # 8000B0D4 => li r9, 0x0001 - .data 0x481009B5 # 8000B0D8 => bl +0x001009B4 /* 8010BA8C */ - .data 0x48102E4C # 8000B0DC => b +0x00102E4C /* 8010DF28 */ - # region @ 8000B5C8 (20 bytes) - .data 0x8000B5C8 # address - .data 0x00000014 # size - .data 0x80630098 # 8000B5C8 => lwz r3, [r3 + 0x0098] - .data 0x483D8D21 # 8000B5CC => bl +0x003D8D20 /* 803E42EC */ - .data 0x807F042C # 8000B5D0 => lwz r3, [r31 + 0x042C] - .data 0x809F0430 # 8000B5D4 => lwz r4, [r31 + 0x0430] - .data 0x48178D4C # 8000B5D8 => b +0x00178D4C /* 80184324 */ - # region @ 8000BBD0 (32 bytes) - .data 0x8000BBD0 # address - .data 0x00000020 # size - .data 0x809F0370 # 8000BBD0 => lwz r4, [r31 + 0x0370] - .data 0x3884FC00 # 8000BBD4 => subi r4, r4, 0x0400 - .data 0x909F0370 # 8000BBD8 => stw [r31 + 0x0370], r4 - .data 0x807F0014 # 8000BBDC => lwz r3, [r31 + 0x0014] - .data 0x28030000 # 8000BBE0 => cmplwi r3, 0 - .data 0x41820008 # 8000BBE4 => beq +0x00000008 /* 8000BBEC */ - .data 0x90830060 # 8000BBE8 => stw [r3 + 0x0060], r4 - .data 0x481654E4 # 8000BBEC => b +0x001654E4 /* 801710D0 */ - # region @ 8000C3F8 (124 bytes) - .data 0x8000C3F8 # address - .data 0x0000007C # size - .data 0x28040000 # 8000C3F8 => cmplwi r4, 0 - .data 0x4D820020 # 8000C3FC => beqlr - .data 0x9421FFF0 # 8000C400 => stwu [r1 - 0x0010], r1 - .data 0x481AD8EC # 8000C404 => b +0x001AD8EC /* 801B9CF0 */ - .data 0x9421FFE0 # 8000C408 => stwu [r1 - 0x0020], r1 - .data 0x7C0802A6 # 8000C40C => mflr r0 - .data 0x90010024 # 8000C410 => stw [r1 + 0x0024], r0 - .data 0xBF410008 # 8000C414 => stmw [r1 + 0x0008], r26 - .data 0x7C7F1B78 # 8000C418 => mr r31, r3 - .data 0x4BFFFFDD # 8000C41C => bl -0x00000024 /* 8000C3F8 */ - .data 0x3BC00000 # 8000C420 => li r30, 0x0000 - .data 0x3BBF0D04 # 8000C424 => addi r29, r31, 0x0D04 - .data 0x837F032C # 8000C428 => lwz r27, [r31 + 0x032C] - .data 0x839D0000 # 8000C42C => lwz r28, [r29] - .data 0x7F83E379 # 8000C430 => mr. r3, r28 - .data 0x41820018 # 8000C434 => beq +0x00000018 /* 8000C44C */ - .data 0x38800001 # 8000C438 => li r4, 0x0001 - .data 0x480FEC5D # 8000C43C => bl +0x000FEC5C /* 8010B098 */ - .data 0x7F83E378 # 8000C440 => mr r3, r28 - .data 0x38800001 # 8000C444 => li r4, 0x0001 - .data 0x480FEDCD # 8000C448 => bl +0x000FEDCC /* 8010B214 */ - .data 0x3BBD0004 # 8000C44C => addi r29, r29, 0x0004 - .data 0x3BDE0001 # 8000C450 => addi r30, r30, 0x0001 - .data 0x2C1E000D # 8000C454 => cmpwi r30, 13 - .data 0x4180FFD4 # 8000C458 => blt -0x0000002C /* 8000C42C */ - .data 0x937F032C # 8000C45C => stw [r31 + 0x032C], r27 - .data 0xBB410008 # 8000C460 => lmw r26, [r1 + 0x0008] - .data 0x80010024 # 8000C464 => lwz r0, [r1 + 0x0024] - .data 0x7C0803A6 # 8000C468 => mtlr r0 - .data 0x38210020 # 8000C46C => addi r1, r1, 0x0020 - .data 0x4E800020 # 8000C470 => blr - # region @ 8000C640 (20 bytes) - .data 0x8000C640 # address - .data 0x00000014 # size - .data 0x54800673 # 8000C640 => rlwinm. r0, r4, 0, 25, 25 - .data 0x41820008 # 8000C644 => beq +0x00000008 /* 8000C64C */ - .data 0x38800000 # 8000C648 => li r4, 0x0000 - .data 0x38040009 # 8000C64C => addi r0, r4, 0x0009 - .data 0x4810C848 # 8000C650 => b +0x0010C848 /* 80118E98 */ - # region @ 8000C6D0 (32 bytes) - .data 0x8000C6D0 # address - .data 0x00000020 # size - .data 0x38000001 # 8000C6D0 => li r0, 0x0001 - .data 0x901D0054 # 8000C6D4 => stw [r29 + 0x0054], r0 - .data 0x807D0024 # 8000C6D8 => lwz r3, [r29 + 0x0024] - .data 0x48211FC4 # 8000C6DC => b +0x00211FC4 /* 8021E6A0 */ - .data 0x38000001 # 8000C6E0 => li r0, 0x0001 - .data 0x901F0378 # 8000C6E4 => stw [r31 + 0x0378], r0 - .data 0x807F0024 # 8000C6E8 => lwz r3, [r31 + 0x0024] - .data 0x48215474 # 8000C6EC => b +0x00215474 /* 80221B60 */ - # region @ 8000C8A0 (20 bytes) - .data 0x8000C8A0 # address - .data 0x00000014 # size - .data 0x1C00000A # 8000C8A0 => mulli r0, r0, 10 - .data 0x57E407BD # 8000C8A4 => rlwinm. r4, r31, 0, 30, 30 - .data 0x41820008 # 8000C8A8 => beq +0x00000008 /* 8000C8B0 */ - .data 0x7FA00734 # 8000C8AC => extsh r0, r29 - .data 0x48105F44 # 8000C8B0 => b +0x00105F44 /* 801127F4 */ - # region @ 8000C8C0 (16 bytes) - .data 0x8000C8C0 # address - .data 0x00000010 # size - .data 0x7000000F # 8000C8C0 => andi. r0, r0, 0x000F - .data 0x7000004F # 8000C8C4 => andi. r0, r0, 0x004F - .data 0x2C000004 # 8000C8C8 => cmpwi r0, 4 - .data 0x4E800020 # 8000C8CC => blr - # region @ 8000D980 (20 bytes) - .data 0x8000D980 # address - .data 0x00000014 # size - .data 0x807C0000 # 8000D980 => lwz r3, [r28] - .data 0x2C030013 # 8000D984 => cmpwi r3, 19 - .data 0x40820008 # 8000D988 => bne +0x00000008 /* 8000D990 */ - .data 0x38600002 # 8000D98C => li r3, 0x0002 - .data 0x482AF934 # 8000D990 => b +0x002AF934 /* 802BD2C4 */ - # region @ 8000D9A0 (24 bytes) - .data 0x8000D9A0 # address - .data 0x00000018 # size - .data 0xC042FC80 # 8000D9A0 => lfs f2, [r2 - 0x0380] - .data 0x807E0030 # 8000D9A4 => lwz r3, [r30 + 0x0030] - .data 0x70630020 # 8000D9A8 => andi. r3, r3, 0x0020 - .data 0x41820008 # 8000D9AC => beq +0x00000008 /* 8000D9B4 */ - .data 0xC042FC98 # 8000D9B0 => lfs f2, [r2 - 0x0368] - .data 0x483299EC # 8000D9B4 => b +0x003299EC /* 803373A0 */ - # region @ 8000E1E0 (28 bytes) - .data 0x8000E1E0 # address - .data 0x0000001C # size - .data 0x7FC802A6 # 8000E1E0 => mflr r30 - .data 0x38A00000 # 8000E1E4 => li r5, 0x0000 - .data 0x38C0001E # 8000E1E8 => li r6, 0x001E - .data 0x38E00040 # 8000E1EC => li r7, 0x0040 - .data 0x480786C5 # 8000E1F0 => bl +0x000786C4 /* 800868B4 */ - .data 0x7FC803A6 # 8000E1F4 => mtlr r30 - .data 0x4E800020 # 8000E1F8 => blr - # region @ 8001304C (4 bytes) - .data 0x8001304C # address - .data 0x00000004 # size - .data 0x4BFFFCC0 # 8001304C => b -0x00000340 /* 80012D0C */ - # region @ 800142BC (4 bytes) - .data 0x800142BC # address - .data 0x00000004 # size - .data 0x4BFF8605 # 800142BC => bl -0x000079FC /* 8000C8C0 */ - # region @ 80015CE4 (4 bytes) - .data 0x80015CE4 # address - .data 0x00000004 # size - .data 0x4BFF6BE1 # 80015CE4 => bl -0x00009420 /* 8000C8C4 */ - # region @ 8009193C (8 bytes) - .data 0x8009193C # address - .data 0x00000008 # size - .data 0x4800024D # 8009193C => bl +0x0000024C /* 80091B88 */ - .data 0xB3C3032C # 80091940 => sth [r3 + 0x032C], r30 - # region @ 800BCB80 (4 bytes) - .data 0x800BCB80 # address - .data 0x00000004 # size - .data 0x48000010 # 800BCB80 => b +0x00000010 /* 800BCB90 */ - # region @ 80104CA4 (4 bytes) - .data 0x80104CA4 # address - .data 0x00000004 # size - .data 0x4182000C # 80104CA4 => beq +0x0000000C /* 80104CB0 */ - # region @ 801075D4 (4 bytes) - .data 0x801075D4 # address - .data 0x00000004 # size - .data 0x4800000C # 801075D4 => b +0x0000000C /* 801075E0 */ - # region @ 801075E8 (4 bytes) - .data 0x801075E8 # address - .data 0x00000004 # size - .data 0x7C030378 # 801075E8 => mr r3, r0 - # region @ 8010BAF0 (4 bytes) - .data 0x8010BAF0 # address - .data 0x00000004 # size - .data 0x4BEFF5AC # 8010BAF0 => b -0x00100A54 /* 8000B09C */ - # region @ 8010DF24 (4 bytes) - .data 0x8010DF24 # address - .data 0x00000004 # size - .data 0x4BEFD190 # 8010DF24 => b -0x00102E70 /* 8000B0B4 */ - # region @ 801127F0 (4 bytes) - .data 0x801127F0 # address - .data 0x00000004 # size - .data 0x4BEFA0B0 # 801127F0 => b -0x00105F50 /* 8000C8A0 */ - # region @ 80114524 (4 bytes) - .data 0x80114524 # address - .data 0x00000004 # size - .data 0x38000012 # 80114524 => li r0, 0x0012 - # region @ 80118764 (4 bytes) - .data 0x80118764 # address - .data 0x00000004 # size - .data 0x88040016 # 80118764 => lbz r0, [r4 + 0x0016] - # region @ 80118770 (4 bytes) - .data 0x80118770 # address - .data 0x00000004 # size - .data 0x88040017 # 80118770 => lbz r0, [r4 + 0x0017] - # region @ 80118E94 (4 bytes) - .data 0x80118E94 # address - .data 0x00000004 # size - .data 0x4BEF37AC # 80118E94 => b -0x0010C854 /* 8000C640 */ - # region @ 8011CC6C (12 bytes) - .data 0x8011CC6C # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CC6C => mr r3, r0 - .data 0x3863FFFF # 8011CC70 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CC74 => b -0x00000018 /* 8011CC5C */ - # region @ 8011CD28 (12 bytes) - .data 0x8011CD28 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CD28 => mr r3, r0 - .data 0x3863FFFF # 8011CD2C => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CD30 => b -0x00000018 /* 8011CD18 */ - # region @ 8011CD78 (12 bytes) - .data 0x8011CD78 # address - .data 0x0000000C # size - .data 0x7C040378 # 8011CD78 => mr r4, r0 - .data 0x3884FFFF # 8011CD7C => subi r4, r4, 0x0001 - .data 0x4BFFFFE8 # 8011CD80 => b -0x00000018 /* 8011CD68 */ - # region @ 8016679C (8 bytes) - .data 0x8016679C # address - .data 0x00000008 # size - .data 0x3C604005 # 8016679C => lis r3, 0x4005 - .data 0x4800009C # 801667A0 => b +0x0000009C /* 8016683C */ - # region @ 80166838 (4 bytes) - .data 0x80166838 # address - .data 0x00000004 # size - .data 0x4800001C # 80166838 => b +0x0000001C /* 80166854 */ - # region @ 801710CC (4 bytes) - .data 0x801710CC # address - .data 0x00000004 # size - .data 0x4BE9AB04 # 801710CC => b -0x001654FC /* 8000BBD0 */ - # region @ 801710EC (4 bytes) - .data 0x801710EC # address - .data 0x00000004 # size - .data 0x60800420 # 801710EC => ori r0, r4, 0x0420 - # region @ 80184320 (4 bytes) - .data 0x80184320 # address - .data 0x00000004 # size - .data 0x4BE872A8 # 80184320 => b -0x00178D58 /* 8000B5C8 */ - # region @ 80184360 (4 bytes) - .data 0x80184360 # address - .data 0x00000004 # size - .data 0x60000000 # 80184360 => nop - # region @ 80189EF0 (4 bytes) - .data 0x80189EF0 # address - .data 0x00000004 # size - .data 0x60000000 # 80189EF0 => nop - # region @ 80193874 (4 bytes) - .data 0x80193874 # address - .data 0x00000004 # size - .data 0x60000000 # 80193874 => nop - # region @ 801B9CEC (4 bytes) - .data 0x801B9CEC # address - .data 0x00000004 # size - .data 0x4BE5271C # 801B9CEC => b -0x001AD8E4 /* 8000C408 */ - # region @ 801B9FC0 (4 bytes) - .data 0x801B9FC0 # address - .data 0x00000004 # size - .data 0x4BE510C8 # 801B9FC0 => b -0x001AEF38 /* 8000B088 */ - # region @ 801C642C (4 bytes) - .data 0x801C642C # address - .data 0x00000004 # size - .data 0x389F02FC # 801C642C => addi r4, r31, 0x02FC - # region @ 801CA7AC (4 bytes) - .data 0x801CA7AC # address - .data 0x00000004 # size - .data 0x48000010 # 801CA7AC => b +0x00000010 /* 801CA7BC */ - # region @ 8021E69C (4 bytes) - .data 0x8021E69C # address - .data 0x00000004 # size - .data 0x4BDEE034 # 8021E69C => b -0x00211FCC /* 8000C6D0 */ - # region @ 80221B5C (4 bytes) - .data 0x80221B5C # address - .data 0x00000004 # size - .data 0x4BDEAB84 # 80221B5C => b -0x0021547C /* 8000C6E0 */ - # region @ 8022A990 (4 bytes) - .data 0x8022A990 # address - .data 0x00000004 # size - .data 0x2C000001 # 8022A990 => cmpwi r0, 1 - # region @ 8022B190 (4 bytes) - .data 0x8022B190 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022B190 => li r4, 0xFFFFFF00 - # region @ 8022B1C0 (4 bytes) - .data 0x8022B1C0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022B1C0 => li r4, 0xFFFFFE80 - # region @ 8022B1F0 (4 bytes) - .data 0x8022B1F0 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022B1F0 => li r4, 0xFFFFFDB0 - # region @ 8022DE8C (4 bytes) - .data 0x8022DE8C # address - .data 0x00000004 # size - .data 0x60000000 # 8022DE8C => nop - # region @ 8022E5C0 (4 bytes) - .data 0x8022E5C0 # address - .data 0x00000004 # size - .data 0x41810630 # 8022E5C0 => bgt +0x00000630 /* 8022EBF0 */ - # region @ 8022F8E4 (4 bytes) - .data 0x8022F8E4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022F8E4 => li r4, 0xFFFFFF00 - # region @ 8022F914 (4 bytes) - .data 0x8022F914 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022F914 => li r4, 0xFFFFFE80 - # region @ 8022F944 (4 bytes) - .data 0x8022F944 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022F944 => li r4, 0xFFFFFDB0 - # region @ 802300F0 (4 bytes) - .data 0x802300F0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802300F0 => li r4, 0xFFFFFF00 - # region @ 80230120 (4 bytes) - .data 0x80230120 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80230120 => li r4, 0xFFFFFE80 - # region @ 80230150 (4 bytes) - .data 0x80230150 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80230150 => li r4, 0xFFFFFDB0 - # region @ 802316F4 (4 bytes) - .data 0x802316F4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802316F4 => li r4, 0xFFFFFF00 - # region @ 80231724 (4 bytes) - .data 0x80231724 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80231724 => li r4, 0xFFFFFE80 - # region @ 80231754 (4 bytes) - .data 0x80231754 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80231754 => li r4, 0xFFFFFDB0 - # region @ 80232464 (4 bytes) - .data 0x80232464 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80232464 => li r4, 0xFFFFFF00 - # region @ 80232494 (4 bytes) - .data 0x80232494 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80232494 => li r4, 0xFFFFFE80 - # region @ 802324C4 (4 bytes) - .data 0x802324C4 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802324C4 => li r4, 0xFFFFFDB0 - # region @ 80232D58 (4 bytes) - .data 0x80232D58 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80232D58 => li r4, 0xFFFFFF00 - # region @ 80232D90 (4 bytes) - .data 0x80232D90 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80232D90 => li r4, 0xFFFFFE80 - # region @ 80232DC8 (4 bytes) - .data 0x80232DC8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80232DC8 => li r4, 0xFFFFFDB0 - # region @ 80234E04 (4 bytes) - .data 0x80234E04 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80234E04 => li r4, 0xFFFFFF00 - # region @ 80234E34 (4 bytes) - .data 0x80234E34 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80234E34 => li r4, 0xFFFFFE80 - # region @ 80234E64 (4 bytes) - .data 0x80234E64 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80234E64 => li r4, 0xFFFFFDB0 - # region @ 80237430 (4 bytes) - .data 0x80237430 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80237430 => li r4, 0xFFFFFF00 - # region @ 8023746C (4 bytes) - .data 0x8023746C # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023746C => li r4, 0xFFFFFE80 - # region @ 802374A8 (4 bytes) - .data 0x802374A8 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 802374A8 => li r4, 0xFFFFFDB0 - # region @ 80237C08 (4 bytes) - .data 0x80237C08 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80237C08 => li r4, 0xFFFFFF00 - # region @ 80237C38 (4 bytes) - .data 0x80237C38 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80237C38 => li r4, 0xFFFFFE80 - # region @ 80237C68 (4 bytes) - .data 0x80237C68 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80237C68 => li r4, 0xFFFFFDB0 - # region @ 8023861C (4 bytes) - .data 0x8023861C # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023861C => li r4, 0xFFFFFF00 - # region @ 8023864C (4 bytes) - .data 0x8023864C # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023864C => li r4, 0xFFFFFE80 - # region @ 8023867C (4 bytes) - .data 0x8023867C # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023867C => li r4, 0xFFFFFDB0 - # region @ 80238FF4 (4 bytes) - .data 0x80238FF4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80238FF4 => li r4, 0xFFFFFF00 - # region @ 80239024 (4 bytes) - .data 0x80239024 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80239024 => li r4, 0xFFFFFE80 - # region @ 80239054 (4 bytes) - .data 0x80239054 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80239054 => li r4, 0xFFFFFDB0 - # region @ 8023C924 (4 bytes) - .data 0x8023C924 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023C924 => li r4, 0xFFFFFF00 - # region @ 8023C954 (4 bytes) - .data 0x8023C954 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023C954 => li r4, 0xFFFFFE80 - # region @ 8023C984 (4 bytes) - .data 0x8023C984 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023C984 => li r4, 0xFFFFFDB0 - # region @ 802519A4 (4 bytes) - .data 0x802519A4 # address - .data 0x00000004 # size - .data 0x60000000 # 802519A4 => nop - # region @ 80269898 (4 bytes) - .data 0x80269898 # address - .data 0x00000004 # size - .data 0x60000000 # 80269898 => nop - # region @ 8026F548 (4 bytes) - .data 0x8026F548 # address - .data 0x00000004 # size - .data 0x3884AAFA # 8026F548 => subi r4, r4, 0x5506 - # region @ 8026F65C (4 bytes) - .data 0x8026F65C # address - .data 0x00000004 # size - .data 0x3863AAFA # 8026F65C => subi r3, r3, 0x5506 - # region @ 8026F6E4 (4 bytes) - .data 0x8026F6E4 # address - .data 0x00000004 # size - .data 0x3883AAFA # 8026F6E4 => subi r4, r3, 0x5506 - # region @ 802BD2C0 (4 bytes) - .data 0x802BD2C0 # address - .data 0x00000004 # size - .data 0x4BD506C0 # 802BD2C0 => b -0x002AF940 /* 8000D980 */ - # region @ 802FDB6C (4 bytes) - .data 0x802FDB6C # address - .data 0x00000004 # size - .data 0x2C030001 # 802FDB6C => cmpwi r3, 1 - # region @ 803037D0 (28 bytes) - .data 0x803037D0 # address - .data 0x0000001C # size - .data 0x48000020 # 803037D0 => b +0x00000020 /* 803037F0 */ - .data 0x3863A830 # 803037D4 => subi r3, r3, 0x57D0 - .data 0x800DB9B4 # 803037D8 => lwz r0, [r13 - 0x464C] - .data 0x2C000023 # 803037DC => cmpwi r0, 35 - .data 0x40820008 # 803037E0 => bne +0x00000008 /* 803037E8 */ - .data 0x3863FB28 # 803037E4 => subi r3, r3, 0x04D8 - .data 0x4800008C # 803037E8 => b +0x0000008C /* 80303874 */ - # region @ 80303870 (4 bytes) - .data 0x80303870 # address - .data 0x00000004 # size - .data 0x4BFFFF64 # 80303870 => b -0x0000009C /* 803037D4 */ - # region @ 8033739C (4 bytes) - .data 0x8033739C # address - .data 0x00000004 # size - .data 0x4BCD6604 # 8033739C => b -0x003299FC /* 8000D9A0 */ - # region @ 80358074 (4 bytes) - .data 0x80358074 # address - .data 0x00000004 # size - .data 0x388001E8 # 80358074 => li r4, 0x01E8 - # region @ 80358098 (4 bytes) - .data 0x80358098 # address - .data 0x00000004 # size - .data 0x4BCB6149 # 80358098 => bl -0x00349EB8 /* 8000E1E0 */ - # region @ 80358108 (4 bytes) - .data 0x80358108 # address - .data 0x00000004 # size - .data 0x388001E8 # 80358108 => li r4, 0x01E8 - # region @ 80358118 (4 bytes) - .data 0x80358118 # address - .data 0x00000004 # size - .data 0x4BCB60C9 # 80358118 => bl -0x00349F38 /* 8000E1E0 */ - # region @ 804B90B8 (8 bytes) - .data 0x804B90B8 # address - .data 0x00000008 # size - .data 0x70808080 # 804B90B8 => andi. r0, r4, 0x8080 - .data 0x60707070 # 804B90BC => ori r16, r3, 0x7070 - # region @ 804CC90C (4 bytes) - .data 0x804CC90C # address - .data 0x00000004 # size - .data 0x0000001E # 804CC90C => .invalid - # region @ 804CC964 (4 bytes) - .data 0x804CC964 # address - .data 0x00000004 # size - .data 0x00000028 # 804CC964 => .invalid - # region @ 804CC990 (4 bytes) - .data 0x804CC990 # address - .data 0x00000004 # size - .data 0x00000032 # 804CC990 => .invalid - # region @ 804CC9BC (4 bytes) - .data 0x804CC9BC # address - .data 0x00000004 # size - .data 0x0000003C # 804CC9BC => .invalid - # region @ 804CC9CC (4 bytes) - .data 0x804CC9CC # address - .data 0x00000004 # size - .data 0x0018003C # 804CC9CC => .invalid - # region @ 804CCC24 (4 bytes) - .data 0x804CCC24 # address - .data 0x00000004 # size - .data 0x00000028 # 804CCC24 => .invalid - # region @ 804D1580 (4 bytes) - .data 0x804D1580 # address - .data 0x00000004 # size - .data 0xFF0074EE # 804D1580 => fsel f24, f0, f14, f19 - # region @ 805DB1AC (4 bytes) - .data 0x805DB1AC # address - .data 0x00000004 # size - .data 0x435C0000 # 805DB1AC => bc 26, 28, +0x00000000 /* 805DB1AC */ - # region @ 805DCE48 (4 bytes) - .data 0x805DCE48 # address - .data 0x00000004 # size - .data 0x46AFC800 # 805DCE48 => .invalid sc - # region @ 805DD0E8 (4 bytes) - .data 0x805DD0E8 # address - .data 0x00000004 # size - .data 0x43480000 # 805DD0E8 => bc 26, 8, +0x00000000 /* 805DD0E8 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/BugFixes/BugFixes.3OP0.patch.s b/system/client-functions/BugFixes/BugFixes.3OP0.patch.s deleted file mode 100644 index 377136c1..00000000 --- a/system/client-functions/BugFixes/BugFixes.3OP0.patch.s +++ /dev/null @@ -1,552 +0,0 @@ -.meta name="Bug fixes" -.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B088 (88 bytes) - .data 0x8000B088 # address - .data 0x00000058 # size - .data 0x7FA3EB78 # 8000B088 => mr r3, r29 - .data 0x38800000 # 8000B08C => li r4, 0x0000 - .data 0x481AF17D # 8000B090 => bl +0x001AF17C /* 801BA20C */ - .data 0x7FA3EB78 # 8000B094 => mr r3, r29 - .data 0x481AF44C # 8000B098 => b +0x001AF44C /* 801BA4E4 */ - .data 0x881F0000 # 8000B09C => lbz r0, [r31] - .data 0x28090001 # 8000B0A0 => cmplwi r9, 1 - .data 0x4082000C # 8000B0A4 => bne +0x0000000C /* 8000B0B0 */ - .data 0x881F0001 # 8000B0A8 => lbz r0, [r31 + 0x0001] - .data 0x3BFF0002 # 8000B0AC => addi r31, r31, 0x0002 - .data 0x48100C44 # 8000B0B0 => b +0x00100C44 /* 8010BCF4 */ - .data 0x39200000 # 8000B0B4 => li r9, 0x0000 - .data 0x48100BD5 # 8000B0B8 => bl +0x00100BD4 /* 8010BC8C */ - .data 0x7F43D378 # 8000B0BC => mr r3, r26 - .data 0x7F64DB78 # 8000B0C0 => mr r4, r27 - .data 0x7F85E378 # 8000B0C4 => mr r5, r28 - .data 0x7FA6EB78 # 8000B0C8 => mr r6, r29 - .data 0x7FC7F378 # 8000B0CC => mr r7, r30 - .data 0x7FE8FB78 # 8000B0D0 => mr r8, r31 - .data 0x39200001 # 8000B0D4 => li r9, 0x0001 - .data 0x48100BB5 # 8000B0D8 => bl +0x00100BB4 /* 8010BC8C */ - .data 0x48103040 # 8000B0DC => b +0x00103040 /* 8010E11C */ - # region @ 8000B5C8 (20 bytes) - .data 0x8000B5C8 # address - .data 0x00000014 # size - .data 0x80630098 # 8000B5C8 => lwz r3, [r3 + 0x0098] - .data 0x483D7BE1 # 8000B5CC => bl +0x003D7BE0 /* 803E31AC */ - .data 0x807F042C # 8000B5D0 => lwz r3, [r31 + 0x042C] - .data 0x809F0430 # 8000B5D4 => lwz r4, [r31 + 0x0430] - .data 0x48179274 # 8000B5D8 => b +0x00179274 /* 8018484C */ - # region @ 8000BBD0 (32 bytes) - .data 0x8000BBD0 # address - .data 0x00000020 # size - .data 0x809F0370 # 8000BBD0 => lwz r4, [r31 + 0x0370] - .data 0x3884FC00 # 8000BBD4 => subi r4, r4, 0x0400 - .data 0x909F0370 # 8000BBD8 => stw [r31 + 0x0370], r4 - .data 0x807F0014 # 8000BBDC => lwz r3, [r31 + 0x0014] - .data 0x28030000 # 8000BBE0 => cmplwi r3, 0 - .data 0x41820008 # 8000BBE4 => beq +0x00000008 /* 8000BBEC */ - .data 0x90830060 # 8000BBE8 => stw [r3 + 0x0060], r4 - .data 0x48165A0C # 8000BBEC => b +0x00165A0C /* 801715F8 */ - # region @ 8000C3F8 (124 bytes) - .data 0x8000C3F8 # address - .data 0x0000007C # size - .data 0x28040000 # 8000C3F8 => cmplwi r4, 0 - .data 0x4D820020 # 8000C3FC => beqlr - .data 0x9421FFF0 # 8000C400 => stwu [r1 - 0x0010], r1 - .data 0x481ADE0C # 8000C404 => b +0x001ADE0C /* 801BA210 */ - .data 0x9421FFE0 # 8000C408 => stwu [r1 - 0x0020], r1 - .data 0x7C0802A6 # 8000C40C => mflr r0 - .data 0x90010024 # 8000C410 => stw [r1 + 0x0024], r0 - .data 0xBF410008 # 8000C414 => stmw [r1 + 0x0008], r26 - .data 0x7C7F1B78 # 8000C418 => mr r31, r3 - .data 0x4BFFFFDD # 8000C41C => bl -0x00000024 /* 8000C3F8 */ - .data 0x3BC00000 # 8000C420 => li r30, 0x0000 - .data 0x3BBF0D04 # 8000C424 => addi r29, r31, 0x0D04 - .data 0x837F032C # 8000C428 => lwz r27, [r31 + 0x032C] - .data 0x839D0000 # 8000C42C => lwz r28, [r29] - .data 0x7F83E379 # 8000C430 => mr. r3, r28 - .data 0x41820018 # 8000C434 => beq +0x00000018 /* 8000C44C */ - .data 0x38800001 # 8000C438 => li r4, 0x0001 - .data 0x480FEE5D # 8000C43C => bl +0x000FEE5C /* 8010B298 */ - .data 0x7F83E378 # 8000C440 => mr r3, r28 - .data 0x38800001 # 8000C444 => li r4, 0x0001 - .data 0x480FEFCD # 8000C448 => bl +0x000FEFCC /* 8010B414 */ - .data 0x3BBD0004 # 8000C44C => addi r29, r29, 0x0004 - .data 0x3BDE0001 # 8000C450 => addi r30, r30, 0x0001 - .data 0x2C1E000D # 8000C454 => cmpwi r30, 13 - .data 0x4180FFD4 # 8000C458 => blt -0x0000002C /* 8000C42C */ - .data 0x937F032C # 8000C45C => stw [r31 + 0x032C], r27 - .data 0xBB410008 # 8000C460 => lmw r26, [r1 + 0x0008] - .data 0x80010024 # 8000C464 => lwz r0, [r1 + 0x0024] - .data 0x7C0803A6 # 8000C468 => mtlr r0 - .data 0x38210020 # 8000C46C => addi r1, r1, 0x0020 - .data 0x4E800020 # 8000C470 => blr - # region @ 8000C640 (20 bytes) - .data 0x8000C640 # address - .data 0x00000014 # size - .data 0x54800673 # 8000C640 => rlwinm. r0, r4, 0, 25, 25 - .data 0x41820008 # 8000C644 => beq +0x00000008 /* 8000C64C */ - .data 0x38800000 # 8000C648 => li r4, 0x0000 - .data 0x38040009 # 8000C64C => addi r0, r4, 0x0009 - .data 0x4810CA30 # 8000C650 => b +0x0010CA30 /* 80119080 */ - # region @ 8000C6D0 (32 bytes) - .data 0x8000C6D0 # address - .data 0x00000020 # size - .data 0x38000001 # 8000C6D0 => li r0, 0x0001 - .data 0x901D0054 # 8000C6D4 => stw [r29 + 0x0054], r0 - .data 0x807D0024 # 8000C6D8 => lwz r3, [r29 + 0x0024] - .data 0x48211B90 # 8000C6DC => b +0x00211B90 /* 8021E26C */ - .data 0x38000001 # 8000C6E0 => li r0, 0x0001 - .data 0x901F0378 # 8000C6E4 => stw [r31 + 0x0378], r0 - .data 0x807F0024 # 8000C6E8 => lwz r3, [r31 + 0x0024] - .data 0x48215040 # 8000C6EC => b +0x00215040 /* 8022172C */ - # region @ 8000C8A0 (20 bytes) - .data 0x8000C8A0 # address - .data 0x00000014 # size - .data 0x1C00000A # 8000C8A0 => mulli r0, r0, 10 - .data 0x57E407BD # 8000C8A4 => rlwinm. r4, r31, 0, 30, 30 - .data 0x41820008 # 8000C8A8 => beq +0x00000008 /* 8000C8B0 */ - .data 0x7FA00734 # 8000C8AC => extsh r0, r29 - .data 0x48106138 # 8000C8B0 => b +0x00106138 /* 801129E8 */ - # region @ 8000C8C0 (16 bytes) - .data 0x8000C8C0 # address - .data 0x00000010 # size - .data 0x7000000F # 8000C8C0 => andi. r0, r0, 0x000F - .data 0x7000004F # 8000C8C4 => andi. r0, r0, 0x004F - .data 0x2C000004 # 8000C8C8 => cmpwi r0, 4 - .data 0x4E800020 # 8000C8CC => blr - # region @ 8000D980 (20 bytes) - .data 0x8000D980 # address - .data 0x00000014 # size - .data 0x807C0000 # 8000D980 => lwz r3, [r28] - .data 0x2C030013 # 8000D984 => cmpwi r3, 19 - .data 0x40820008 # 8000D988 => bne +0x00000008 /* 8000D990 */ - .data 0x38600002 # 8000D98C => li r3, 0x0002 - .data 0x482AF27C # 8000D990 => b +0x002AF27C /* 802BCC0C */ - # region @ 8000D9A0 (24 bytes) - .data 0x8000D9A0 # address - .data 0x00000018 # size - .data 0xC042FC88 # 8000D9A0 => lfs f2, [r2 - 0x0378] - .data 0x807E0030 # 8000D9A4 => lwz r3, [r30 + 0x0030] - .data 0x70630020 # 8000D9A8 => andi. r3, r3, 0x0020 - .data 0x41820008 # 8000D9AC => beq +0x00000008 /* 8000D9B4 */ - .data 0xC042FCA0 # 8000D9B0 => lfs f2, [r2 - 0x0360] - .data 0x48329004 # 8000D9B4 => b +0x00329004 /* 803369B8 */ - # region @ 8000E1E0 (28 bytes) - .data 0x8000E1E0 # address - .data 0x0000001C # size - .data 0x7FC802A6 # 8000E1E0 => mflr r30 - .data 0x38A00000 # 8000E1E4 => li r5, 0x0000 - .data 0x38C0001E # 8000E1E8 => li r6, 0x001E - .data 0x38E00040 # 8000E1EC => li r7, 0x0040 - .data 0x4807869D # 8000E1F0 => bl +0x0007869C /* 8008688C */ - .data 0x7FC803A6 # 8000E1F4 => mtlr r30 - .data 0x4E800020 # 8000E1F8 => blr - # region @ 800130C4 (4 bytes) - .data 0x800130C4 # address - .data 0x00000004 # size - .data 0x4BFFFCC0 # 800130C4 => b -0x00000340 /* 80012D84 */ - # region @ 80014334 (4 bytes) - .data 0x80014334 # address - .data 0x00000004 # size - .data 0x4BFF858D # 80014334 => bl -0x00007A74 /* 8000C8C0 */ - # region @ 80015D5C (4 bytes) - .data 0x80015D5C # address - .data 0x00000004 # size - .data 0x4BFF6B69 # 80015D5C => bl -0x00009498 /* 8000C8C4 */ - # region @ 80091914 (8 bytes) - .data 0x80091914 # address - .data 0x00000008 # size - .data 0x4800024D # 80091914 => bl +0x0000024C /* 80091B60 */ - .data 0xB3C3032C # 80091918 => sth [r3 + 0x032C], r30 - # region @ 800BCB58 (4 bytes) - .data 0x800BCB58 # address - .data 0x00000004 # size - .data 0x48000010 # 800BCB58 => b +0x00000010 /* 800BCB68 */ - # region @ 80104EA4 (4 bytes) - .data 0x80104EA4 # address - .data 0x00000004 # size - .data 0x4182000C # 80104EA4 => beq +0x0000000C /* 80104EB0 */ - # region @ 801077D4 (4 bytes) - .data 0x801077D4 # address - .data 0x00000004 # size - .data 0x4800000C # 801077D4 => b +0x0000000C /* 801077E0 */ - # region @ 801077E8 (4 bytes) - .data 0x801077E8 # address - .data 0x00000004 # size - .data 0x7C030378 # 801077E8 => mr r3, r0 - # region @ 8010BCF0 (4 bytes) - .data 0x8010BCF0 # address - .data 0x00000004 # size - .data 0x4BEFF3AC # 8010BCF0 => b -0x00100C54 /* 8000B09C */ - # region @ 8010E118 (4 bytes) - .data 0x8010E118 # address - .data 0x00000004 # size - .data 0x4BEFCF9C # 8010E118 => b -0x00103064 /* 8000B0B4 */ - # region @ 801129E4 (4 bytes) - .data 0x801129E4 # address - .data 0x00000004 # size - .data 0x4BEF9EBC # 801129E4 => b -0x00106144 /* 8000C8A0 */ - # region @ 8011470C (4 bytes) - .data 0x8011470C # address - .data 0x00000004 # size - .data 0x38000012 # 8011470C => li r0, 0x0012 - # region @ 8011894C (4 bytes) - .data 0x8011894C # address - .data 0x00000004 # size - .data 0x88040016 # 8011894C => lbz r0, [r4 + 0x0016] - # region @ 80118958 (4 bytes) - .data 0x80118958 # address - .data 0x00000004 # size - .data 0x88040017 # 80118958 => lbz r0, [r4 + 0x0017] - # region @ 8011907C (4 bytes) - .data 0x8011907C # address - .data 0x00000004 # size - .data 0x4BEF35C4 # 8011907C => b -0x0010CA3C /* 8000C640 */ - # region @ 8011CE54 (12 bytes) - .data 0x8011CE54 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CE54 => mr r3, r0 - .data 0x3863FFFF # 8011CE58 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CE5C => b -0x00000018 /* 8011CE44 */ - # region @ 8011CF10 (12 bytes) - .data 0x8011CF10 # address - .data 0x0000000C # size - .data 0x7C030378 # 8011CF10 => mr r3, r0 - .data 0x3863FFFF # 8011CF14 => subi r3, r3, 0x0001 - .data 0x4BFFFFE8 # 8011CF18 => b -0x00000018 /* 8011CF00 */ - # region @ 8011CF60 (12 bytes) - .data 0x8011CF60 # address - .data 0x0000000C # size - .data 0x7C040378 # 8011CF60 => mr r4, r0 - .data 0x3884FFFF # 8011CF64 => subi r4, r4, 0x0001 - .data 0x4BFFFFE8 # 8011CF68 => b -0x00000018 /* 8011CF50 */ - # region @ 80166CC4 (8 bytes) - .data 0x80166CC4 # address - .data 0x00000008 # size - .data 0x3C604005 # 80166CC4 => lis r3, 0x4005 - .data 0x4800009C # 80166CC8 => b +0x0000009C /* 80166D64 */ - # region @ 80166D60 (4 bytes) - .data 0x80166D60 # address - .data 0x00000004 # size - .data 0x4800001C # 80166D60 => b +0x0000001C /* 80166D7C */ - # region @ 801715F4 (4 bytes) - .data 0x801715F4 # address - .data 0x00000004 # size - .data 0x4BE9A5DC # 801715F4 => b -0x00165A24 /* 8000BBD0 */ - # region @ 80171614 (4 bytes) - .data 0x80171614 # address - .data 0x00000004 # size - .data 0x60800420 # 80171614 => ori r0, r4, 0x0420 - # region @ 80184848 (4 bytes) - .data 0x80184848 # address - .data 0x00000004 # size - .data 0x4BE86D80 # 80184848 => b -0x00179280 /* 8000B5C8 */ - # region @ 80184888 (4 bytes) - .data 0x80184888 # address - .data 0x00000004 # size - .data 0x60000000 # 80184888 => nop - # region @ 8018A418 (4 bytes) - .data 0x8018A418 # address - .data 0x00000004 # size - .data 0x60000000 # 8018A418 => nop - # region @ 80193D9C (4 bytes) - .data 0x80193D9C # address - .data 0x00000004 # size - .data 0x60000000 # 80193D9C => nop - # region @ 801BA20C (4 bytes) - .data 0x801BA20C # address - .data 0x00000004 # size - .data 0x4BE521FC # 801BA20C => b -0x001ADE04 /* 8000C408 */ - # region @ 801BA4E0 (4 bytes) - .data 0x801BA4E0 # address - .data 0x00000004 # size - .data 0x4BE50BA8 # 801BA4E0 => b -0x001AF458 /* 8000B088 */ - # region @ 801C694C (4 bytes) - .data 0x801C694C # address - .data 0x00000004 # size - .data 0x389F02FC # 801C694C => addi r4, r31, 0x02FC - # region @ 801CACCC (4 bytes) - .data 0x801CACCC # address - .data 0x00000004 # size - .data 0x48000010 # 801CACCC => b +0x00000010 /* 801CACDC */ - # region @ 8021E268 (4 bytes) - .data 0x8021E268 # address - .data 0x00000004 # size - .data 0x4BDEE468 # 8021E268 => b -0x00211B98 /* 8000C6D0 */ - # region @ 80221728 (4 bytes) - .data 0x80221728 # address - .data 0x00000004 # size - .data 0x4BDEAFB8 # 80221728 => b -0x00215048 /* 8000C6E0 */ - # region @ 8022A55C (4 bytes) - .data 0x8022A55C # address - .data 0x00000004 # size - .data 0x2C000001 # 8022A55C => cmpwi r0, 1 - # region @ 8022AD5C (4 bytes) - .data 0x8022AD5C # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022AD5C => li r4, 0xFFFFFF00 - # region @ 8022AD8C (4 bytes) - .data 0x8022AD8C # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022AD8C => li r4, 0xFFFFFE80 - # region @ 8022ADBC (4 bytes) - .data 0x8022ADBC # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022ADBC => li r4, 0xFFFFFDB0 - # region @ 8022DA58 (4 bytes) - .data 0x8022DA58 # address - .data 0x00000004 # size - .data 0x60000000 # 8022DA58 => nop - # region @ 8022E18C (4 bytes) - .data 0x8022E18C # address - .data 0x00000004 # size - .data 0x41810630 # 8022E18C => bgt +0x00000630 /* 8022E7BC */ - # region @ 8022F4B0 (4 bytes) - .data 0x8022F4B0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022F4B0 => li r4, 0xFFFFFF00 - # region @ 8022F4E0 (4 bytes) - .data 0x8022F4E0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022F4E0 => li r4, 0xFFFFFE80 - # region @ 8022F510 (4 bytes) - .data 0x8022F510 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022F510 => li r4, 0xFFFFFDB0 - # region @ 8022FCBC (4 bytes) - .data 0x8022FCBC # address - .data 0x00000004 # size - .data 0x3880FF00 # 8022FCBC => li r4, 0xFFFFFF00 - # region @ 8022FCEC (4 bytes) - .data 0x8022FCEC # address - .data 0x00000004 # size - .data 0x3880FE80 # 8022FCEC => li r4, 0xFFFFFE80 - # region @ 8022FD1C (4 bytes) - .data 0x8022FD1C # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8022FD1C => li r4, 0xFFFFFDB0 - # region @ 802312C0 (4 bytes) - .data 0x802312C0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802312C0 => li r4, 0xFFFFFF00 - # region @ 802312F0 (4 bytes) - .data 0x802312F0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 802312F0 => li r4, 0xFFFFFE80 - # region @ 80231320 (4 bytes) - .data 0x80231320 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80231320 => li r4, 0xFFFFFDB0 - # region @ 80232030 (4 bytes) - .data 0x80232030 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80232030 => li r4, 0xFFFFFF00 - # region @ 80232060 (4 bytes) - .data 0x80232060 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80232060 => li r4, 0xFFFFFE80 - # region @ 80232090 (4 bytes) - .data 0x80232090 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80232090 => li r4, 0xFFFFFDB0 - # region @ 80232924 (4 bytes) - .data 0x80232924 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80232924 => li r4, 0xFFFFFF00 - # region @ 8023295C (4 bytes) - .data 0x8023295C # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023295C => li r4, 0xFFFFFE80 - # region @ 80232994 (4 bytes) - .data 0x80232994 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80232994 => li r4, 0xFFFFFDB0 - # region @ 802349D0 (4 bytes) - .data 0x802349D0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802349D0 => li r4, 0xFFFFFF00 - # region @ 80234A00 (4 bytes) - .data 0x80234A00 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80234A00 => li r4, 0xFFFFFE80 - # region @ 80234A30 (4 bytes) - .data 0x80234A30 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80234A30 => li r4, 0xFFFFFDB0 - # region @ 80236FFC (4 bytes) - .data 0x80236FFC # address - .data 0x00000004 # size - .data 0x3880FF00 # 80236FFC => li r4, 0xFFFFFF00 - # region @ 80237038 (4 bytes) - .data 0x80237038 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80237038 => li r4, 0xFFFFFE80 - # region @ 80237074 (4 bytes) - .data 0x80237074 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80237074 => li r4, 0xFFFFFDB0 - # region @ 802377D4 (4 bytes) - .data 0x802377D4 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802377D4 => li r4, 0xFFFFFF00 - # region @ 80237804 (4 bytes) - .data 0x80237804 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80237804 => li r4, 0xFFFFFE80 - # region @ 80237834 (4 bytes) - .data 0x80237834 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80237834 => li r4, 0xFFFFFDB0 - # region @ 802381E8 (4 bytes) - .data 0x802381E8 # address - .data 0x00000004 # size - .data 0x3880FF00 # 802381E8 => li r4, 0xFFFFFF00 - # region @ 80238218 (4 bytes) - .data 0x80238218 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80238218 => li r4, 0xFFFFFE80 - # region @ 80238248 (4 bytes) - .data 0x80238248 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80238248 => li r4, 0xFFFFFDB0 - # region @ 80238BC0 (4 bytes) - .data 0x80238BC0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 80238BC0 => li r4, 0xFFFFFF00 - # region @ 80238BF0 (4 bytes) - .data 0x80238BF0 # address - .data 0x00000004 # size - .data 0x3880FE80 # 80238BF0 => li r4, 0xFFFFFE80 - # region @ 80238C20 (4 bytes) - .data 0x80238C20 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 80238C20 => li r4, 0xFFFFFDB0 - # region @ 8023C4F0 (4 bytes) - .data 0x8023C4F0 # address - .data 0x00000004 # size - .data 0x3880FF00 # 8023C4F0 => li r4, 0xFFFFFF00 - # region @ 8023C520 (4 bytes) - .data 0x8023C520 # address - .data 0x00000004 # size - .data 0x3880FE80 # 8023C520 => li r4, 0xFFFFFE80 - # region @ 8023C550 (4 bytes) - .data 0x8023C550 # address - .data 0x00000004 # size - .data 0x3880FDB0 # 8023C550 => li r4, 0xFFFFFDB0 - # region @ 802514B0 (4 bytes) - .data 0x802514B0 # address - .data 0x00000004 # size - .data 0x60000000 # 802514B0 => nop - # region @ 802693A4 (4 bytes) - .data 0x802693A4 # address - .data 0x00000004 # size - .data 0x60000000 # 802693A4 => nop - # region @ 8026EF44 (4 bytes) - .data 0x8026EF44 # address - .data 0x00000004 # size - .data 0x3884AAFA # 8026EF44 => subi r4, r4, 0x5506 - # region @ 8026F058 (4 bytes) - .data 0x8026F058 # address - .data 0x00000004 # size - .data 0x3863AAFA # 8026F058 => subi r3, r3, 0x5506 - # region @ 8026F0E0 (4 bytes) - .data 0x8026F0E0 # address - .data 0x00000004 # size - .data 0x3883AAFA # 8026F0E0 => subi r4, r3, 0x5506 - # region @ 802BCC08 (4 bytes) - .data 0x802BCC08 # address - .data 0x00000004 # size - .data 0x4BD50D78 # 802BCC08 => b -0x002AF288 /* 8000D980 */ - # region @ 802FD100 (4 bytes) - .data 0x802FD100 # address - .data 0x00000004 # size - .data 0x2C030001 # 802FD100 => cmpwi r3, 1 - # region @ 80302D64 (28 bytes) - .data 0x80302D64 # address - .data 0x0000001C # size - .data 0x48000020 # 80302D64 => b +0x00000020 /* 80302D84 */ - .data 0x3863A830 # 80302D68 => subi r3, r3, 0x57D0 - .data 0x800DBA04 # 80302D6C => lwz r0, [r13 - 0x45FC] - .data 0x2C000023 # 80302D70 => cmpwi r0, 35 - .data 0x40820008 # 80302D74 => bne +0x00000008 /* 80302D7C */ - .data 0x3863FB28 # 80302D78 => subi r3, r3, 0x04D8 - .data 0x4800008C # 80302D7C => b +0x0000008C /* 80302E08 */ - # region @ 80302E04 (4 bytes) - .data 0x80302E04 # address - .data 0x00000004 # size - .data 0x4BFFFF64 # 80302E04 => b -0x0000009C /* 80302D68 */ - # region @ 803369B4 (4 bytes) - .data 0x803369B4 # address - .data 0x00000004 # size - .data 0x4BCD6FEC # 803369B4 => b -0x00329014 /* 8000D9A0 */ - # region @ 80357834 (4 bytes) - .data 0x80357834 # address - .data 0x00000004 # size - .data 0x388001E8 # 80357834 => li r4, 0x01E8 - # region @ 80357858 (4 bytes) - .data 0x80357858 # address - .data 0x00000004 # size - .data 0x4BCB6989 # 80357858 => bl -0x00349678 /* 8000E1E0 */ - # region @ 803578C8 (4 bytes) - .data 0x803578C8 # address - .data 0x00000004 # size - .data 0x388001E8 # 803578C8 => li r4, 0x01E8 - # region @ 803578D8 (4 bytes) - .data 0x803578D8 # address - .data 0x00000004 # size - .data 0x4BCB6909 # 803578D8 => bl -0x003496F8 /* 8000E1E0 */ - # region @ 804B8E10 (8 bytes) - .data 0x804B8E10 # address - .data 0x00000008 # size - .data 0x70808080 # 804B8E10 => andi. r0, r4, 0x8080 - .data 0x60707070 # 804B8E14 => ori r16, r3, 0x7070 - # region @ 804CC5D4 (4 bytes) - .data 0x804CC5D4 # address - .data 0x00000004 # size - .data 0x0000001E # 804CC5D4 => .invalid - # region @ 804CC62C (4 bytes) - .data 0x804CC62C # address - .data 0x00000004 # size - .data 0x00000028 # 804CC62C => .invalid - # region @ 804CC658 (4 bytes) - .data 0x804CC658 # address - .data 0x00000004 # size - .data 0x00000032 # 804CC658 => .invalid - # region @ 804CC684 (4 bytes) - .data 0x804CC684 # address - .data 0x00000004 # size - .data 0x0000003C # 804CC684 => .invalid - # region @ 804CC694 (4 bytes) - .data 0x804CC694 # address - .data 0x00000004 # size - .data 0x0018003C # 804CC694 => .invalid - # region @ 804CC8EC (4 bytes) - .data 0x804CC8EC # address - .data 0x00000004 # size - .data 0x00000028 # 804CC8EC => .invalid - # region @ 804D1248 (4 bytes) - .data 0x804D1248 # address - .data 0x00000004 # size - .data 0xFF0074EE # 804D1248 => fsel f24, f0, f14, f19 - # region @ 805D6CF4 (4 bytes) - .data 0x805D6CF4 # address - .data 0x00000004 # size - .data 0x435C0000 # 805D6CF4 => bc 26, 28, +0x00000000 /* 805D6CF4 */ - # region @ 805D8990 (4 bytes) - .data 0x805D8990 # address - .data 0x00000004 # size - .data 0x46AFC800 # 805D8990 => .invalid sc - # region @ 805D8C30 (4 bytes) - .data 0x805D8C30 # address - .data 0x00000004 # size - .data 0x43480000 # 805D8C30 => bc 26, 8, +0x00000000 /* 805D8C30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/BugFixes/BugFixes.3__0.patch.s b/system/client-functions/BugFixes/BugFixes.3__0.patch.s new file mode 100644 index 00000000..cd53b240 --- /dev/null +++ b/system/client-functions/BugFixes/BugFixes.3__0.patch.s @@ -0,0 +1,566 @@ +.meta name="Bug fixes" +.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OJ2 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B088 + .data 0x00000058 + .data 0x7FA3EB78 + .data 0x38800000 + .data + .data 0x7FA3EB78 + .data + .data 0x881F0000 + .data 0x28090001 + .data 0x4082000C + .data 0x881F0001 + .data 0x3BFF0002 + .data + .data 0x39200000 + .data + .data 0x7F43D378 + .data 0x7F64DB78 + .data 0x7F85E378 + .data 0x7FA6EB78 + .data 0x7FC7F378 + .data 0x7FE8FB78 + .data 0x39200001 + .data + .data + + .data 0x8000B5C8 + .data 0x00000014 + .data 0x80630098 + .data + .data 0x807F042C + .data 0x809F0430 + .data + + .data 0x8000BBD0 + .data 0x00000020 + .data 0x809F0370 + .data 0x3884FC00 + .data 0x909F0370 + .data 0x807F0014 + .data 0x28030000 + .data 0x41820008 + .data 0x90830060 + .data + + .data 0x8000C3F8 + .data 0x0000007C + .data 0x28040000 + .data 0x4D820020 + .data 0x9421FFF0 + .data + .data 0x9421FFE0 + .data 0x7C0802A6 + .data 0x90010024 + .data 0xBF410008 + .data 0x7C7F1B78 + .data 0x4BFFFFDD + .data 0x3BC00000 + .data 0x3BBF0D04 + .data 0x837F032C + .data 0x839D0000 + .data 0x7F83E379 + .data 0x41820018 + .data 0x38800001 + .data + .data 0x7F83E378 + .data 0x38800001 + .data + .data 0x3BBD0004 + .data 0x3BDE0001 + .data 0x2C1E000D + .data 0x4180FFD4 + .data 0x937F032C + .data 0xBB410008 + .data 0x80010024 + .data 0x7C0803A6 + .data 0x38210020 + .data 0x4E800020 + + .data 0x8000C640 + .data 0x00000014 + .data 0x54800673 + .data 0x41820008 + .data 0x38800000 + .data 0x38040009 + .data + + .data 0x8000C6D0 + .data 0x00000020 + .data 0x38000001 + .data 0x901D0054 + .data 0x807D0024 + .data + .data 0x38000001 + .data 0x901F0378 + .data 0x807F0024 + .data + + .data 0x8000C8A0 + .data 0x00000014 + .data 0x1C00000A + .data 0x57E407BD + .data 0x41820008 + .data 0x7FA00734 + .data + + .data 0x8000C8C0 + .data 0x00000010 + .data 0x7000000F + .data 0x7000004F + .data 0x2C000004 + .data 0x4E800020 + + .data 0x8000D980 + .data 0x00000014 + .data 0x807C0000 + .data 0x2C030013 + .data 0x40820008 + .data 0x38600002 + .data + + .data 0x8000D9A0 + .data 0x00000018 + .data + .data 0x807E0030 + .data 0x70630020 + .data 0x41820008 + .data + .data + + .data 0x8000E1E0 + .data 0x0000001C + .data 0x7FC802A6 + .data 0x38A00000 + .data 0x38C0001E + .data 0x38E00040 + .data + .data 0x7FC803A6 + .data 0x4E800020 + + .data + .data 0x00000004 + .data 0x4BFFFCC0 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000008 + .data 0x4800024D + .data 0xB3C3032C + + .data + .data 0x00000004 + .data 0x48000010 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x4182000C + + .data + .data 0x00000004 + .data 0x4800000C + + .data + .data 0x00000004 + .data 0x7C030378 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x38000012 + + .data + .data 0x00000004 + .data 0x88040016 + + .data + .data 0x00000004 + .data 0x88040017 + + .data + .data 0x00000004 + .data + + .data + .data 0x0000000C + .data 0x7C030378 + .data 0x3863FFFF + .data 0x4BFFFFE8 + + .data + .data 0x0000000C + .data 0x7C030378 + .data 0x3863FFFF + .data 0x4BFFFFE8 + + .data + .data 0x0000000C + .data 0x7C040378 + .data 0x3884FFFF + .data 0x4BFFFFE8 + + .data + .data 0x00000008 + .data 0x3C604005 + .data 0x4800009C + + .data + .data 0x00000004 + .data 0x4800001C + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x60800420 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x2C000001 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x41810630 + + .data + .data 0x00000004 + .data 0x4181033C + + .data + .data 0x00000004 + .data 0x41810248 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x3884AAFA + + .data + .data 0x00000004 + .data 0x3863AAFA + + .data + .data 0x00000004 + .data 0x3883AAFA + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x2C030001 + + .data + .data 0x0000001C + .data 0x48000020 + .data 0x3863A830 + .data + .data 0x2C000023 + .data 0x40820008 + .data 0x3863FB28 + .data 0x4800008C + + .data + .data 0x00000004 + .data 0x4BFFFF64 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x388001E8 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x388001E8 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000008 + .data 0x70808080 + .data 0x60707070 + + .data + .data 0x00000004 + .data 0x0000001E + + .data + .data 0x00000004 + .data 0x00000028 + + .data + .data 0x00000004 + .data 0x00000032 + + .data + .data 0x00000004 + .data 0x0000003C + + .data + .data 0x00000004 + .data 0x0018003C + + .data + .data 0x00000004 + .data 0x00000028 + + .data + .data 0x00000004 + .data 0xFF0074EE + + .data + .data 0x00000004 + .data 0x435C0000 + + .data + .data 0x00000004 + .data 0x46AFC800 + + .data + .data 0x00000004 + .data 0x43480000 + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/BugFixes/BugFixes.3__1.patch.s b/system/client-functions/BugFixes/BugFixes.3__1.patch.s new file mode 100644 index 00000000..0f10175f --- /dev/null +++ b/system/client-functions/BugFixes/BugFixes.3__1.patch.s @@ -0,0 +1,554 @@ +.meta name="Bug fixes" +.meta description="Fixes many minor\ngameplay, sound,\nand graphical bugs" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B088 + .data 0x00000058 + .data 0x7FA3EB78 + .data 0x38800000 + .data + .data 0x7FA3EB78 + .data + .data 0x881F0000 + .data 0x28090001 + .data 0x4082000C + .data 0x881F0001 + .data 0x3BFF0002 + .data + .data 0x39200000 + .data + .data 0x7F43D378 + .data 0x7F64DB78 + .data 0x7F85E378 + .data 0x7FA6EB78 + .data 0x7FC7F378 + .data 0x7FE8FB78 + .data 0x39200001 + .data + .data + + .data 0x8000B5C8 + .data 0x00000014 + .data 0x80630098 + .data + .data 0x807F042C + .data 0x809F0430 + .data + + .data 0x8000BBD0 + .data 0x00000020 + .data 0x809F0370 + .data 0x3884FC00 + .data 0x909F0370 + .data 0x807F0014 + .data 0x28030000 + .data 0x41820008 + .data 0x90830060 + .data + + .data 0x8000C3F8 + .data 0x0000007C + .data 0x28040000 + .data 0x4D820020 + .data 0x9421FFF0 + .data + .data 0x9421FFE0 + .data 0x7C0802A6 + .data 0x90010024 + .data 0xBF410008 + .data 0x7C7F1B78 + .data 0x4BFFFFDD + .data 0x3BC00000 + .data 0x3BBF0D04 + .data 0x837F032C + .data 0x839D0000 + .data 0x7F83E379 + .data 0x41820018 + .data 0x38800001 + .data + .data 0x7F83E378 + .data 0x38800001 + .data + .data 0x3BBD0004 + .data 0x3BDE0001 + .data 0x2C1E000D + .data 0x4180FFD4 + .data 0x937F032C + .data 0xBB410008 + .data 0x80010024 + .data 0x7C0803A6 + .data 0x38210020 + .data 0x4E800020 + + .data 0x8000C640 + .data 0x00000014 + .data 0x54800673 + .data 0x41820008 + .data 0x38800000 + .data 0x38040009 + .data + + .data 0x8000C6D0 + .data 0x00000020 + .data 0x38000001 + .data 0x901D0054 + .data 0x807D0024 + .data + .data 0x38000001 + .data 0x901F0378 + .data 0x807F0024 + .data + + .data 0x8000C8A0 + .data 0x00000014 + .data 0x1C00000A + .data 0x57E407BD + .data 0x41820008 + .data 0x7FA00734 + .data + + .data 0x8000C8C0 + .data 0x00000010 + .data 0x7000000F + .data 0x7000004F + .data 0x2C000004 + .data 0x4E800020 + + .data 0x8000D980 + .data 0x00000014 + .data 0x807C0000 + .data 0x2C030013 + .data 0x40820008 + .data 0x38600002 + .data + + .data 0x8000D9A0 + .data 0x00000018 + .data + .data 0x807E0030 + .data 0x70630020 + .data 0x41820008 + .data + .data + + .data 0x8000E1E0 + .data 0x0000001C + .data 0x7FC802A6 + .data 0x38A00000 + .data 0x38C0001E + .data 0x38E00040 + .data + .data 0x7FC803A6 + .data 0x4E800020 + + .data + .data 0x00000004 + .data 0x4BFFFCC0 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000008 + .data 0x4800024D + .data 0xB3C3032C + + .data + .data 0x00000004 + .data 0x48000010 + + .data + .data 0x00000004 + .data 0x4182000C + + .data + .data 0x00000004 + .data 0x4800000C + + .data + .data 0x00000004 + .data 0x7C030378 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x38000012 + + .data + .data 0x00000004 + .data 0x88040016 + + .data + .data 0x00000004 + .data 0x88040017 + + .data + .data 0x00000004 + .data + + .data + .data 0x0000000C + .data 0x7C030378 + .data 0x3863FFFF + .data 0x4BFFFFE8 + + .data + .data 0x0000000C + .data 0x7C030378 + .data 0x3863FFFF + .data 0x4BFFFFE8 + + .data + .data 0x0000000C + .data 0x7C040378 + .data 0x3884FFFF + .data 0x4BFFFFE8 + + .data + .data 0x00000008 + .data 0x3C604005 + .data 0x4800009C + + .data + .data 0x00000004 + .data 0x4800001C + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x60800420 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x389F02FC + + .data + .data 0x00000004 + .data 0x48000010 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x2C000001 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x41810630 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x3880FF00 + + .data + .data 0x00000004 + .data 0x3880FE80 + + .data + .data 0x00000004 + .data 0x3880FDB0 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x60000000 + + .data + .data 0x00000004 + .data 0x3884AAFA + + .data + .data 0x00000004 + .data 0x3863AAFA + + .data + .data 0x00000004 + .data 0x3883AAFA + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x2C030001 + + .data + .data 0x0000001C + .data 0x48000020 + .data 0x3863A830 + .data + .data 0x2C000023 + .data 0x40820008 + .data 0x3863FB28 + .data 0x4800008C + + .data + .data 0x00000004 + .data 0x4BFFFF64 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x388001E8 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data 0x388001E8 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000008 + .data 0x70808080 + .data 0x60707070 + + .data + .data 0x00000004 + .data 0x0000001E + + .data + .data 0x00000004 + .data 0x00000028 + + .data + .data 0x00000004 + .data 0x00000032 + + .data + .data 0x00000004 + .data 0x0000003C + + .data + .data 0x00000004 + .data 0x0018003C + + .data + .data 0x00000004 + .data 0x00000028 + + .data + .data 0x00000004 + .data 0xFF0074EE + + .data + .data 0x00000004 + .data 0x435C0000 + + .data + .data 0x00000004 + .data 0x46AFC800 + + .data + .data 0x00000004 + .data 0x43480000 + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE0.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE0.patch.s deleted file mode 100644 index 47d6a71a..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE0.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerGC - .data 0x805C5650 - .data 0x801E3F9C -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE1.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE1.patch.s deleted file mode 100644 index 99b30969..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE1.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerGC - .data 0x805CC630 - .data 0x801E3F9C -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE2.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE2.patch.s deleted file mode 100644 index a9cdd563..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OE2.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerGC - .data 0x805D5E50 - .data 0x801E405C -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ2.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ2.patch.s deleted file mode 100644 index fe10948a..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ2.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerGC - .data 0x805C4D58 - .data 0x801E3B38 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ3.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ3.patch.s deleted file mode 100644 index 934f9d5c..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ3.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerGC - .data 0x805CF320 - .data 0x801E40BC -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ4.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ4.patch.s deleted file mode 100644 index 99617000..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ4.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerGC - .data 0x805D67A0 - .data 0x801E4290 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ5.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ5.patch.s deleted file mode 100644 index 23da6d5b..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OJ5.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerGC - .data 0x805D6540 - .data 0x801E4008 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OP0.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OP0.patch.s deleted file mode 100644 index 9cb290b2..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.3OP0.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerGC - .data 0x805D2090 - .data 0x801E4698 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandlerGC.ppc.inc.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3___.patch.s similarity index 55% rename from system/client-functions/CallProtectedHandler/CallProtectedHandlerGC.ppc.inc.s rename to system/client-functions/CallProtectedHandler/CallProtectedHandler.3___.patch.s index ab405124..e729bd36 100644 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandlerGC.ppc.inc.s +++ b/system/client-functions/CallProtectedHandler/CallProtectedHandler.3___.patch.s @@ -1,3 +1,13 @@ +.meta hide_from_patches_menu +.meta name="CallProtectedHandler" +.meta description="" + +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: stwu [r1 - 0x10], r1 mflr r0 stw [r1 + 0x14], r0 @@ -30,3 +40,9 @@ resume: get_data_addr: bl resume + .data + .data + +size: + .data 0x00000000 +data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OED.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OED.patch.s deleted file mode 100644 index e000cd66..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OED.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerXB - .data 0x00723F68 - .data 0x002DDB00 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OEU.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OEU.patch.s deleted file mode 100644 index a09729c8..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OEU.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerXB - .data 0x007237E8 # should_allow_protected_commands - .data 0x002DE000 # handle_6x(void* data @ ecx, uint32_t size @ eax) -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJB.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJB.patch.s deleted file mode 100644 index 069b619d..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJB.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerXB - .data 0x0071E8C8 - .data 0x002DBBA0 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJD.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJD.patch.s deleted file mode 100644 index ab23e427..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJD.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerXB - .data 0x0071EF28 - .data 0x002DC720 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJU.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJU.patch.s deleted file mode 100644 index f1af4f3a..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OJU.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerXB - .data 0x00726A68 - .data 0x002DDFE0 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OPD.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OPD.patch.s deleted file mode 100644 index 57af46bc..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OPD.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerXB - .data 0x00723F68 - .data 0x002DDB30 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OPU.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OPU.patch.s deleted file mode 100644 index 2f0fb949..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4OPU.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta hide_from_patches_menu -.meta name="CallProtectedHandler" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include CallProtectedHandlerXB - .data 0x007242E8 - .data 0x002DE030 -size: - .data 0x00000000 -data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandler.4___.patch.s b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4___.patch.s new file mode 100644 index 00000000..35ce2cf9 --- /dev/null +++ b/system/client-functions/CallProtectedHandler/CallProtectedHandler.4___.patch.s @@ -0,0 +1,36 @@ +.meta hide_from_patches_menu +.meta name="CallProtectedHandler" +.meta description="" + +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start +start: + jmp get_data_addr +resume: + xchg ebx, [esp] + + mov edx, [ebx] + mov dword [edx], 1 + + mov edx, [ebx + 4] + lea ecx, [ebx + 0x0C] + mov eax, [ebx + 8] + call edx + + mov edx, [ebx] + mov dword [edx], 0 + + pop ebx + ret + +get_data_addr: + call resume + .data + .data + +size: + .data 0x00000000 +data: diff --git a/system/client-functions/CallProtectedHandler/CallProtectedHandlerXB.x86.inc.s b/system/client-functions/CallProtectedHandler/CallProtectedHandlerXB.x86.inc.s deleted file mode 100644 index a9e773a9..00000000 --- a/system/client-functions/CallProtectedHandler/CallProtectedHandlerXB.x86.inc.s +++ /dev/null @@ -1,20 +0,0 @@ - jmp get_data_addr -resume: - xchg ebx, [esp] - - mov edx, [ebx] - mov dword [edx], 1 - - mov edx, [ebx + 4] - lea ecx, [ebx + 0x0C] - mov eax, [ebx + 8] - call edx - - mov edx, [ebx] - mov dword [edx], 0 - - pop ebx - ret - -get_data_addr: - call resume diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3OE0.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3OE0.patch.s deleted file mode 100644 index b2b9054d..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3OE0.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8034525C # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x8034525C - li r3, 0 - - .data 0x80268788 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x80268788 - nop - - .data 0x80250AEC # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x80250AEC - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8051 - lhz r3, [r3 - 0x6C50] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80268874 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80268874 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3OE1.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3OE1.patch.s deleted file mode 100644 index 30f10fd3..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3OE1.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x803452A0 # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x803452A0 - li r3, 0 - - .data 0x80268788 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x80268788 - nop - - .data 0x80250AEC # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x80250AEC - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8051 - lhz r3, [r3 - 0x6770] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80268874 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80268874 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3OE2.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3OE2.patch.s deleted file mode 100644 index 6f068bed..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3OE2.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80346E4C # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x80346E4C - li r3, 0 - - .data 0x80269B5C # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x80269B5C - nop - - .data 0x80251C68 # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x80251C68 - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8051 - lhz r3, [r3 - 0x1D90] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80269C48 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80269C48 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3OJ2.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3OJ2.patch.s deleted file mode 100644 index df1e738c..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3OJ2.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8034445C # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x8034445C - li r3, 0 - - .data 0x80267DDC # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x80267DDC - nop - - .data 0x80250264 # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x80250264 - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8051 - lhz r3, [r3 - 0x7530] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80267EC8 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80267EC8 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3OJ3.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3OJ3.patch.s deleted file mode 100644 index 5904391a..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3OJ3.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x803457AC # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x803457AC - li r3, 0 - - .data 0x80268A88 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x80268A88 - nop - - .data 0x80250CB0 # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x80250CB0 - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8051 - lhz r3, [r3 - 0x3A70] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80268B74 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80268B74 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3OJ4.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3OJ4.patch.s deleted file mode 100644 index fac1ead9..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3OJ4.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80346CCC # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x80346CCC - li r3, 0 - - .data 0x80269AE4 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x80269AE4 - nop - - .data 0x80251CA4 # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x80251CA4 - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8051 - lhz r3, [r3 - 0x1430] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80269BD0 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80269BD0 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3OJ5.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3OJ5.patch.s deleted file mode 100644 index 26279d23..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3OJ5.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80346A80 # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x80346A80 - li r3, 0 - - .data 0x80269898 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x80269898 - nop - - .data 0x802519A4 # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x802519A4 - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8051 - lhz r3, [r3 - 0x1690] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80269984 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80269984 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3OP0.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3OP0.patch.s deleted file mode 100644 index 4335cf8e..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3OP0.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8034627C # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x8034627C - li r3, 0 - - .data 0x802693A4 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x802693A4 - nop - - .data 0x802514B0 # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x802514B0 - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8051 - lhz r3, [r3 - 0x0D70] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80269490 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80269490 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3SE0.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3SE0.patch.s deleted file mode 100644 index d5de2e9c..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3SE0.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x801C7D88 # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x801C7D88 - li r3, 0 - - .data 0x8016FBB4 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x8016FBB4 - nop - - .data 0x8015B0CC # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x8015B0CC - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x804A - lhz r3, [r3 + 0x0560] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x8016FC9C # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x8016FC9C - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3SJ0.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3SJ0.patch.s deleted file mode 100644 index 14925a03..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3SJ0.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x801C7CFC # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x801C7CFC - li r3, 0 - - .data 0x8016FD00 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x8016FD00 - nop - - .data 0x8015B1BC # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x8015B1BC - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x804A - lhz r3, [r3 - 0x08C0] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x8016FDE8 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x8016FDE8 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3SJT.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3SJT.patch.s deleted file mode 100644 index 922ba493..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3SJT.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x801D9B30 # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x801D9B30 - li r3, 0 - - .data 0x8017F434 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x8017F434 - nop - - .data 0x8016A77C # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x8016A77C - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x8048 - lhz r3, [r3 + 0x1700] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x8017F51C # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x8017F51C - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3SP0.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3SP0.patch.s deleted file mode 100644 index 31f5543e..00000000 --- a/system/client-functions/ChatFeatures/ChatFeatures.3SP0.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -.meta name="Chat" -.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" -# Original codes by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x801C83FC # Extended Word Select Menu (PSO PCv2 Style) - .data 0x00000004 - .address 0x801C83FC - li r3, 0 - - .data 0x80170060 # Chat Log Window LF/TAB Bug Fix - .data 0x00000004 - .address 0x80170060 - nop - - .data 0x8015B578 # Chat Bubble Window TAB Bug Fix - .data 0x00000004 - .address 0x8015B578 - nop - - .data 0x8000D6A0 # Chat Log Window: Scroll Lock (Hold L+R) - .deltaof scroll_lock_hook, scroll_lock_hook_end - .address 0x8000D6A0 -scroll_lock_hook: - lis r3, 0x804A - lhz r3, [r3 + 0x2980] - andi. r0, r3, 0x0003 - cmplwi r0, 3 - beqlr - stfs [r28 + 0x0084], f1 - blr -scroll_lock_hook_end: - - .data 0x80170148 # Chat Log Window: Scroll Lock (Hold L+R) - .data 0x00000004 - .address 0x80170148 - bl scroll_lock_hook - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ChatFeatures/ChatFeatures.3___.patch.s b/system/client-functions/ChatFeatures/ChatFeatures.3___.patch.s new file mode 100644 index 00000000..40dbd6ac --- /dev/null +++ b/system/client-functions/ChatFeatures/ChatFeatures.3___.patch.s @@ -0,0 +1,54 @@ +.meta name="Chat" +.meta description="Enables extended\nWord Select and\nstops the Log\nWindow from\nscrolling with L+R" +# Original codes by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 3SJT 3SJ0 3SE0 3SP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + # Extended Word Select Menu (PSO PCv2 Style) + .data + .data 0x00000004 + .address + li r3, 0 + + # Chat Log Window LF/TAB Bug Fix + .data + .data 0x00000004 + .address + nop + + # Chat Bubble Window TAB Bug Fix + .data + .data 0x00000004 + .address + nop + + # Chat Log Window: Scroll Lock (Hold L+R) + .data 0x8000D6A0 + .deltaof scroll_lock_hook, scroll_lock_hook_end + .address 0x8000D6A0 +scroll_lock_hook: + lis r3, + lhz r3, [r3 ] + andi. r0, r3, 0x0003 + cmplwi r0, 3 + beqlr + stfs [r28 + 0x0084], f1 + blr +scroll_lock_hook_end: + + # Chat Log Window: Scroll Lock (Hold L+R) + .data + .data 0x00000004 + .address + bl scroll_lock_hook + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/CommonBank/CommonBank.3OE1.patch.s b/system/client-functions/CommonBank/CommonBank.3OE1.patch.s deleted file mode 100644 index b8450430..00000000 --- a/system/client-functions/CommonBank/CommonBank.3OE1.patch.s +++ /dev/null @@ -1,91 +0,0 @@ -.meta name="Common bank" -.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" -# Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)") -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000BAB4 - .deltaof hook1, hooks_end - .address 0x8000BAB4 - -hook1: - cmplwi r27, 2 - bne hook1_skip - lis r0, 0x8000 - ori r0, r0, 0xBAD8 - stw [r3 + 0x0004], r0 - li r0, 0x0000 - stw [r3 + 0x0008], r0 -hook1_skip: - lwz r3, [r31 + 0x0040] - blr - .binary 434F4D4D4F4E2042414E4B00 - -hook2: - lwz r0, [r13 - 0x7148] - cmplwi r0, 1 - bne hook2_skip - lis r4, 0x8051 - lhz r4, [r4 - 0x6770] - andi. r0, r4, 0x0002 - beq hook2_default_bank - lwz r0, [r13 - 0x46AC] - cmplwi r0, 6 - beq hook2_default_bank - lwz r3, [r13 - 0x46C8] - cmplwi r3, 0 - beq hook2_default_bank - li r0, 0x0000 - ori r0, r0, 0xF1B0 - add r3, r3, r0 -hook2_default_bank: - lis r4, 0x8001 - stw [r4 - 0x3CD4], r3 -hook2_skip: - cmplwi r3, 0 - blr - -hook3: - lwz r0, [r13 - 0x7148] - cmplwi r0, 1 - bne hook3_skip - lis r3, 0x8001 - lwz r3, [r3 - 0x3CD4] -hook3_skip: - mr. r8, r3 - blr -hooks_end: - - .data 0x8021026C - .data 0x00000004 - .address 0x8021026C - bl hook3 - - .data 0x802102E0 - .data 0x00000004 - .address 0x802102E0 - bl hook2 - - .data 0x8030B458 - .data 0x00000004 - .address 0x8030B458 - bl hook1 - - .data 0x8030B4B0 - .data 0x00000004 - .address 0x8030B4B0 - bl hook1 - - .data 0x8046E0DC - .data 0x00000004 - .address 0x8046E0DC - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/CommonBank/CommonBank.3OE2.patch.s b/system/client-functions/CommonBank/CommonBank.3OE2.patch.s deleted file mode 100644 index dad87b69..00000000 --- a/system/client-functions/CommonBank/CommonBank.3OE2.patch.s +++ /dev/null @@ -1,91 +0,0 @@ -.meta name="Common bank" -.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" -# Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)") -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000BAB4 - .deltaof hook1, hooks_end - .address 0x8000BAB4 - -hook1: - cmplwi r27, 2 - bne hook1_skip - lis r0, 0x8000 - ori r0, r0, 0xBAD8 - stw [r3 + 0x0004], r0 - li r0, 0x0000 - stw [r3 + 0x0008], r0 -hook1_skip: - lwz r3, [r31 + 0x0040] - blr - .binary 434F4D4D4F4E2042414E4B00 - -hook2: - lwz r0, [r13 - 0x7148] - cmplwi r0, 1 - bne hook2_skip - lis r4, 0x8051 - lhz r4, [r4 - 0x1D90] - andi. r0, r4, 0x0002 - beq hook2_default_bank - lwz r0, [r13 - 0x468C] - cmplwi r0, 6 - beq hook2_default_bank - lwz r3, [r13 - 0x46A8] - cmplwi r3, 0 - beq hook2_default_bank - li r0, 0x0000 - ori r0, r0, 0xF1B0 - add r3, r3, r0 -hook2_default_bank: - lis r4, 0x8001 - stw [r4 - 0x3CD4], r3 -hook2_skip: - cmplwi r3, 0 - blr - -hook3: - lwz r0, [r13 - 0x7148] - cmplwi r0, 1 - bne hook3_skip - lis r3, 0x8001 - lwz r3, [r3 - 0x3CD4] -hook3_skip: - mr. r8, r3 - blr -hooks_end: - - .data 0x802111BC - .data 0x00000004 - .address 0x802111BC - bl hook3 - - .data 0x80211230 - .data 0x00000004 - .address 0x80211230 - bl hook2 - - .data 0x8030CE60 - .data 0x00000004 - .address 0x8030CE60 - bl hook1 - - .data 0x8030CEB8 - .data 0x00000004 - .address 0x8030CEB8 - bl hook1 - - .data 0x80471ACC - .data 0x00000004 - .address 0x80471ACC - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/CommonBank/CommonBank.3OJ2.patch.s b/system/client-functions/CommonBank/CommonBank.3OJ2.patch.s deleted file mode 100644 index 56fb0c25..00000000 --- a/system/client-functions/CommonBank/CommonBank.3OJ2.patch.s +++ /dev/null @@ -1,91 +0,0 @@ -.meta name="Common bank" -.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" -# Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)") -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000BAB4 - .deltaof hook1, hooks_end - .address 0x8000BAB4 - -hook1: - cmplwi r27, 2 - bne hook1_skip - lis r0, 0x8000 - ori r0, r0, 0xBAD8 - stw [r3 + 0x0004], r0 - li r0, 0x0000 - stw [r3 + 0x0008], r0 -hook1_skip: - lwz r3, [r31 + 0x0040] - blr - .binary 434F4D4D4F4E2042414E4B00 - -hook2: - lwz r0, [r13 - 0x7150] - cmplwi r0, 1 - bne hook2_skip - lis r4, 0x8051 - lhz r4, [r4 - 0x7530] - andi. r0, r4, 0x0002 - beq hook2_default_bank - lwz r0, [r13 - 0x46C4] - cmplwi r0, 6 - beq hook2_default_bank - lwz r3, [r13 - 0x46E0] - cmplwi r3, 0 - beq hook2_default_bank - li r0, 0x0000 - ori r0, r0, 0xF1B0 - add r3, r3, r0 -hook2_default_bank: - lis r4, 0x8001 - stw [r4 - 0x3CD4], r3 -hook2_skip: - cmplwi r3, 0 - blr - -hook3: - lwz r0, [r13 - 0x7150] - cmplwi r0, 1 - bne hook3_skip - lis r3, 0x8001 - lwz r3, [r3 - 0x3CD4] -hook3_skip: - mr. r8, r3 - blr -hooks_end: - - .data 0x8020F9F8 - .data 0x00000004 - .address 0x8020F9F8 - bl hook3 - - .data 0x8020FAE4 - .data 0x00000004 - .address 0x8020FAE4 - bl hook2 - - .data 0x8030AA54 - .data 0x00000004 - .address 0x8030AA54 - bl hook1 - - .data 0x8030AAAC - .data 0x00000004 - .address 0x8030AAAC - bl hook1 - - .data 0x8046CECC - .data 0x00000004 - .address 0x8046CECC - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/CommonBank/CommonBank.3OJ3.patch.s b/system/client-functions/CommonBank/CommonBank.3OJ3.patch.s deleted file mode 100644 index 29b2d632..00000000 --- a/system/client-functions/CommonBank/CommonBank.3OJ3.patch.s +++ /dev/null @@ -1,91 +0,0 @@ -.meta name="Common bank" -.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" -# Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)") -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000BAB4 - .deltaof hook1, hooks_end - .address 0x8000BAB4 - -hook1: - cmplwi r27, 2 - bne hook1_skip - lis r0, 0x8000 - ori r0, r0, 0xBAD8 - stw [r3 + 0x0004], r0 - li r0, 0x0000 - stw [r3 + 0x0008], r0 -hook1_skip: - lwz r3, [r31 + 0x0040] - blr - .binary 434F4D4D4F4E2042414E4B00 - -hook2: - lwz r0, [r13 - 0x7150] - cmplwi r0, 1 - bne hook2_skip - lis r4, 0x8051 - lhz r4, [r4 - 0x3A70] - andi. r0, r4, 0x0002 - beq hook2_default_bank - lwz r0, [r13 - 0x46BC] - cmplwi r0, 6 - beq hook2_default_bank - lwz r3, [r13 - 0x46D8] - cmplwi r3, 0 - beq hook2_default_bank - li r0, 0x0000 - ori r0, r0, 0xF1B0 - add r3, r3, r0 -hook2_default_bank: - lis r4, 0x8001 - stw [r4 - 0x3CD4], r3 -hook2_skip: - cmplwi r3, 0 - blr - -hook3: - lwz r0, [r13 - 0x7150] - cmplwi r0, 1 - bne hook3_skip - lis r3, 0x8001 - lwz r3, [r3 - 0x3CD4] -hook3_skip: - mr. r8, r3 - blr -hooks_end: - - .data 0x8021034C - .data 0x00000004 - .address 0x8021034C - bl hook3 - - .data 0x802103C0 - .data 0x00000004 - .address 0x802103C0 - bl hook2 - - .data 0x8030BAA4 - .data 0x00000004 - .address 0x8030BAA4 - bl hook1 - - .data 0x8030BAFC - .data 0x00000004 - .address 0x8030BAFC - bl hook1 - - .data 0x8046FCEC - .data 0x00000004 - .address 0x8046FCEC - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/CommonBank/CommonBank.3OJ4.patch.s b/system/client-functions/CommonBank/CommonBank.3OJ4.patch.s deleted file mode 100644 index dd4519b3..00000000 --- a/system/client-functions/CommonBank/CommonBank.3OJ4.patch.s +++ /dev/null @@ -1,91 +0,0 @@ -.meta name="Common bank" -.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" -# Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)") -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000BAB4 - .deltaof hook1, hooks_end - .address 0x8000BAB4 - -hook1: - cmplwi r27, 2 - bne hook1_skip - lis r0, 0x8000 - ori r0, r0, 0xBAD8 - stw [r3 + 0x0004], r0 - li r0, 0x0000 - stw [r3 + 0x0008], r0 -hook1_skip: - lwz r3, [r31 + 0x0040] - blr - .binary 434F4D4D4F4E2042414E4B00 - -hook2: - lwz r0, [r13 - 0x7150] - cmplwi r0, 1 - bne hook2_skip - lis r4, 0x8051 - lhz r4, [r4 - 0x1430] - andi. r0, r4, 0x0002 - beq hook2_default_bank - lwz r0, [r13 - 0x469C] - cmplwi r0, 6 - beq hook2_default_bank - lwz r3, [r13 - 0x46B8] - cmplwi r3, 0 - beq hook2_default_bank - li r0, 0x0000 - ori r0, r0, 0xF1B0 - add r3, r3, r0 -hook2_default_bank: - lis r4, 0x8001 - stw [r4 - 0x3CD4], r3 -hook2_skip: - cmplwi r3, 0 - blr - -hook3: - lwz r0, [r13 - 0x7150] - cmplwi r0, 1 - bne hook3_skip - lis r3, 0x8001 - lwz r3, [r3 - 0x3CD4] -hook3_skip: - mr. r8, r3 - blr -hooks_end: - - .data 0x8021112C - .data 0x00000004 - .address 0x8021112C - bl hook3 - - .data 0x802111A0 - .data 0x00000004 - .address 0x802111A0 - bl hook2 - - .data 0x8030CEF0 - .data 0x00000004 - .address 0x8030CEF0 - bl hook1 - - .data 0x8030CF48 - .data 0x00000004 - .address 0x8030CF48 - bl hook1 - - .data 0x80471E4C - .data 0x00000004 - .address 0x80471E4C - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/CommonBank/CommonBank.3OJ5.patch.s b/system/client-functions/CommonBank/CommonBank.3OJ5.patch.s deleted file mode 100644 index da53d210..00000000 --- a/system/client-functions/CommonBank/CommonBank.3OJ5.patch.s +++ /dev/null @@ -1,91 +0,0 @@ -.meta name="Common bank" -.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" -# Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)") -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000BAB4 - .deltaof hook1, hooks_end - .address 0x8000BAB4 - -hook1: - cmplwi r27, 2 - bne hook1_skip - lis r0, 0x8000 - ori r0, r0, 0xBAD8 - stw [r3 + 0x0004], r0 - li r0, 0x0000 - stw [r3 + 0x0008], r0 -hook1_skip: - lwz r3, [r31 + 0x0040] - blr - .binary 434F4D4D4F4E2042414E4B00 - -hook2: - lwz r0, [r13 - 0x7150] - cmplwi r0, 1 - bne hook2_skip - lis r4, 0x8051 - lhz r4, [r4 - 0x1690] - andi. r0, r4, 0x0002 - beq hook2_default_bank - lwz r0, [r13 - 0x469C] - cmplwi r0, 6 - beq hook2_default_bank - lwz r3, [r13 - 0x46B8] - cmplwi r3, 0 - beq hook2_default_bank - li r0, 0x0000 - ori r0, r0, 0xF1B0 - add r3, r3, r0 -hook2_default_bank: - lis r4, 0x8001 - stw [r4 - 0x3CD4], r3 -hook2_skip: - cmplwi r3, 0 - blr - -hook3: - lwz r0, [r13 - 0x7150] - cmplwi r0, 1 - bne hook3_skip - lis r3, 0x8001 - lwz r3, [r3 - 0x3CD4] -hook3_skip: - mr. r8, r3 - blr -hooks_end: - - .data 0x80210E88 - .data 0x00000004 - .address 0x80210E88 - bl hook3 - - .data 0x80210EFC - .data 0x00000004 - .address 0x80210EFC - bl hook2 - - .data 0x8030CCA4 - .data 0x00000004 - .address 0x8030CCA4 - bl hook1 - - .data 0x8030CCFC - .data 0x00000004 - .address 0x8030CCFC - bl hook1 - - .data 0x80471C14 - .data 0x00000004 - .address 0x80471C14 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/CommonBank/CommonBank.3OP0.patch.s b/system/client-functions/CommonBank/CommonBank.3OP0.patch.s deleted file mode 100644 index 6f3bc0fd..00000000 --- a/system/client-functions/CommonBank/CommonBank.3OP0.patch.s +++ /dev/null @@ -1,91 +0,0 @@ -.meta name="Common bank" -.meta description="Hold L and open\nthe bank to use a\ncommon bank stored\nin temp character\n3's data" -# Original code by Ralf @ GC-Forever ("Common Bank (Hold L And Open Bank)") -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000BAB4 - .deltaof hook1, hooks_end - .address 0x8000BAB4 - -hook1: - cmplwi r27, 2 - bne hook1_skip - lis r0, 0x8000 - ori r0, r0, 0xBAD8 - stw [r3 + 0x0004], r0 - li r0, 0x0000 - stw [r3 + 0x0008], r0 -hook1_skip: - lwz r3, [r31 + 0x0040] - blr - .binary 434F4D4D4F4E2042414E4B00 - -hook2: - lwz r0, [r13 - 0x7148] - cmplwi r0, 1 - bne hook2_skip - lis r4, 0x8051 - lhz r4, [r4 - 0x0D70] - andi. r0, r4, 0x0002 - beq hook2_default_bank - lwz r0, [r13 - 0x464C] - cmplwi r0, 6 - beq hook2_default_bank - lwz r3, [r13 - 0x4668] - cmplwi r3, 0 - beq hook2_default_bank - li r0, 0x0000 - ori r0, r0, 0xF1B0 - add r3, r3, r0 -hook2_default_bank: - lis r4, 0x8001 - stw [r4 - 0x3CD4], r3 -hook2_skip: - cmplwi r3, 0 - blr - -hook3: - lwz r0, [r13 - 0x7148] - cmplwi r0, 1 - bne hook3_skip - lis r3, 0x8001 - lwz r3, [r3 - 0x3CD4] -hook3_skip: - mr. r8, r3 - blr -hooks_end: - - .data 0x80210BB8 - .data 0x00000004 - .address 0x80210BB8 - bl hook3 - - .data 0x80210C2C - .data 0x00000004 - .address 0x80210C2C - bl hook2 - - .data 0x8030C228 - .data 0x00000004 - .address 0x8030C228 - bl hook1 - - .data 0x8030C280 - .data 0x00000004 - .address 0x8030C280 - bl hook1 - - .data 0x80471804 - .data 0x00000004 - .address 0x80471804 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/CommonBank/CommonBank.3OE0.patch.s b/system/client-functions/CommonBank/CommonBank.3___.patch.s similarity index 50% rename from system/client-functions/CommonBank/CommonBank.3OE0.patch.s rename to system/client-functions/CommonBank/CommonBank.3___.patch.s index 1190a32d..9bd4eead 100644 --- a/system/client-functions/CommonBank/CommonBank.3OE0.patch.s +++ b/system/client-functions/CommonBank/CommonBank.3___.patch.s @@ -4,6 +4,8 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2049 +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + entry_ptr: reloc0: .offsetof start @@ -28,17 +30,17 @@ hook1_skip: .binary 434F4D4D4F4E2042414E4B00 hook2: - lwz r0, [r13 - 0x7148] + lwz r0, [r13 - ] cmplwi r0, 1 bne hook2_skip lis r4, 0x8051 - lhz r4, [r4 - 0x6C50] + lhz r4, [r4 - ] andi. r0, r4, 0x0002 beq hook2_default_bank - lwz r0, [r13 - 0x46AC] + lwz r0, [r13 - ] cmplwi r0, 6 beq hook2_default_bank - lwz r3, [r13 - 0x46C8] + lwz r3, [r13 - ] cmplwi r3, 0 beq hook2_default_bank li r0, 0x0000 @@ -52,7 +54,7 @@ hook2_skip: blr hook3: - lwz r0, [r13 - 0x7148] + lwz r0, [r13 - ] cmplwi r0, 1 bne hook3_skip lis r3, 0x8001 @@ -62,29 +64,29 @@ hook3_skip: blr hooks_end: - .data 0x8021026C + .data .data 0x00000004 - .address 0x8021026C + .address bl hook3 - .data 0x802102E0 + .data .data 0x00000004 - .address 0x802102E0 + .address bl hook2 - .data 0x8030B414 + .data .data 0x00000004 - .address 0x8030B414 + .address bl hook1 - .data 0x8030B46C + .data .data 0x00000004 - .address 0x8030B46C + .address bl hook1 - .data 0x8046DC5C + .data .data 0x00000004 - .address 0x8046DC5C + .address .data 0xFFFFFFFF .data 0x00000000 diff --git a/system/client-functions/Decoction/Decoction.3OE0.patch.s b/system/client-functions/Decoction/Decoction.3OE0.patch.s deleted file mode 100644 index 9aec8cf3..00000000 --- a/system/client-functions/Decoction/Decoction.3OE0.patch.s +++ /dev/null @@ -1,55 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 803515F4 (152 bytes) - .data 0x803515F4 # address - .data 0x00000098 # size - .data 0x880300EE # 803515F4 => lbz r0, [r3 + 0x00EE] - .data 0x2800000B # 803515F8 => cmplwi r0, 11 - .data 0x40820144 # 803515FC => bne +0x00000144 /* 80351740 */ - .data 0x83E300F0 # 80351600 => lwz r31, [r3 + 0x00F0] - .data 0x38000000 # 80351604 => li r0, 0x0000 - .data 0x60000000 # 80351608 => nop - .data 0x38800374 # 8035160C => li r4, 0x0374 - .data 0x38A00D38 # 80351610 => li r5, 0x0D38 - .data 0x48000059 # 80351614 => bl +0x00000058 /* 8035166C */ - .data 0x38A00D3A # 80351618 => li r5, 0x0D3A - .data 0x48000051 # 8035161C => bl +0x00000050 /* 8035166C */ - .data 0x38A00D3C # 80351620 => li r5, 0x0D3C - .data 0x48000049 # 80351624 => bl +0x00000048 /* 8035166C */ - .data 0x38A00D40 # 80351628 => li r5, 0x0D40 - .data 0x48000041 # 8035162C => bl +0x00000040 /* 8035166C */ - .data 0x38A00D44 # 80351630 => li r5, 0x0D44 - .data 0x48000039 # 80351634 => bl +0x00000038 /* 8035166C */ - .data 0x7FE3FB78 # 80351638 => mr r3, r31 - .data 0x4BE64BD9 # 8035163C => bl -0x0019B428 /* 801B6214 */ - .data 0xA01F032C # 80351640 => lhz r0, [r31 + 0x032C] - .data 0xA07F02B8 # 80351644 => lhz r3, [r31 + 0x02B8] - .data 0x7C001840 # 80351648 => cmpl r0, r3 - .data 0x40810008 # 8035164C => ble +0x00000008 /* 80351654 */ - .data 0xB07F032C # 80351650 => sth [r31 + 0x032C], r3 - .data 0xA01F032E # 80351654 => lhz r0, [r31 + 0x032E] - .data 0xA07F02BA # 80351658 => lhz r3, [r31 + 0x02BA] - .data 0x7C001840 # 8035165C => cmpl r0, r3 - .data 0x40810008 # 80351660 => ble +0x00000008 /* 80351668 */ - .data 0xB07F032E # 80351664 => sth [r31 + 0x032E], r3 - .data 0x480000D8 # 80351668 => b +0x000000D8 /* 80351740 */ - .data 0x7CDF20AE # 8035166C => lbzx r6, [r31 + r4] - .data 0x7CFF2A2E # 80351670 => lhzx r7, [r31 + r5] - .data 0x54C6083C # 80351674 => rlwinm r6, r6, 1, 0, 30 - .data 0x7CE63850 # 80351678 => subf r7, r6, r7 - .data 0x7CFF2B2E # 8035167C => sthx [r31 + r5], r7 - .data 0x7C1F21AE # 80351680 => stbx [r31 + r4], r0 - .data 0x38840001 # 80351684 => addi r4, r4, 0x0001 - .data 0x4E800020 # 80351688 => blr - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Decoction/Decoction.3OE1.patch.s b/system/client-functions/Decoction/Decoction.3OE1.patch.s deleted file mode 100644 index ff119726..00000000 --- a/system/client-functions/Decoction/Decoction.3OE1.patch.s +++ /dev/null @@ -1,55 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80351638 (152 bytes) - .data 0x80351638 # address - .data 0x00000098 # size - .data 0x880300EE # 80351638 => lbz r0, [r3 + 0x00EE] # data1_2 - .data 0x2800000B # 8035163C => cmplwi r0, 11 - .data 0x40820144 # 80351640 => bne +0x00000144 /* 80351784 */ - .data 0x83E300F0 # 80351644 => lwz r31, [r3 + 0x00F0] # r31 = owner_player - .data 0x38000000 # 80351648 => li r0, 0x0000 - .data 0x60000000 # 8035164C => nop - .data 0x38800374 # 80351650 => li r4, 0x0374 # material_usage - .data 0x38A00D38 # 80351654 => li r5, 0x0D38 # stats.char_stats.atp - .data 0x48000059 # 80351658 => bl +0x00000058 /* 803516B0 */ - .data 0x38A00D3A # 8035165C => li r5, 0x0D3A # stats.char_stats.mst - .data 0x48000051 # 80351660 => bl +0x00000050 /* 803516B0 */ - .data 0x38A00D3C # 80351664 => li r5, 0x0D3C # stats.char_stats.evp - .data 0x48000049 # 80351668 => bl +0x00000048 /* 803516B0 */ - .data 0x38A00D40 # 8035166C => li r5, 0x0D40 # stats.char_stats.dfp - .data 0x48000041 # 80351670 => bl +0x00000040 /* 803516B0 */ - .data 0x38A00D44 # 80351674 => li r5, 0x0D44 # stats.char_stats.lck - .data 0x48000039 # 80351678 => bl +0x00000038 /* 803516B0 */ - .data 0x7FE3FB78 # 8035167C => mr r3, r31 - .data 0x4BE64B95 # 80351680 => bl -0x0019B46C /* 801B6214 */ - .data 0xA01F032C # 80351684 => lhz r0, [r31 + 0x032C] - .data 0xA07F02B8 # 80351688 => lhz r3, [r31 + 0x02B8] - .data 0x7C001840 # 8035168C => cmpl r0, r3 - .data 0x40810008 # 80351690 => ble +0x00000008 /* 80351698 */ - .data 0xB07F032C # 80351694 => sth [r31 + 0x032C], r3 - .data 0xA01F032E # 80351698 => lhz r0, [r31 + 0x032E] - .data 0xA07F02BA # 8035169C => lhz r3, [r31 + 0x02BA] - .data 0x7C001840 # 803516A0 => cmpl r0, r3 - .data 0x40810008 # 803516A4 => ble +0x00000008 /* 803516AC */ - .data 0xB07F032E # 803516A8 => sth [r31 + 0x032E], r3 - .data 0x480000D8 # 803516AC => b +0x000000D8 /* 80351784 */ - .data 0x7CDF20AE # 803516B0 => lbzx r6, [r31 + r4] - .data 0x7CFF2A2E # 803516B4 => lhzx r7, [r31 + r5] - .data 0x54C6083C # 803516B8 => rlwinm r6, r6, 1, 0, 30 - .data 0x7CE63850 # 803516BC => subf r7, r6, r7 - .data 0x7CFF2B2E # 803516C0 => sthx [r31 + r5], r7 - .data 0x7C1F21AE # 803516C4 => stbx [r31 + r4], r0 - .data 0x38840001 # 803516C8 => addi r4, r4, 0x0001 - .data 0x4E800020 # 803516CC => blr - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Decoction/Decoction.3OE2.patch.s b/system/client-functions/Decoction/Decoction.3OE2.patch.s deleted file mode 100644 index 98392350..00000000 --- a/system/client-functions/Decoction/Decoction.3OE2.patch.s +++ /dev/null @@ -1,55 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80353220 (152 bytes) - .data 0x80353220 # address - .data 0x00000098 # size - .data 0x880300EE # 80353220 => lbz r0, [r3 + 0x00EE] - .data 0x2800000B # 80353224 => cmplwi r0, 11 - .data 0x40820144 # 80353228 => bne +0x00000144 /* 8035336C */ - .data 0x83E300F0 # 8035322C => lwz r31, [r3 + 0x00F0] - .data 0x38000000 # 80353230 => li r0, 0x0000 - .data 0x60000000 # 80353234 => nop - .data 0x38800374 # 80353238 => li r4, 0x0374 - .data 0x38A00D38 # 8035323C => li r5, 0x0D38 - .data 0x48000059 # 80353240 => bl +0x00000058 /* 80353298 */ - .data 0x38A00D3A # 80353244 => li r5, 0x0D3A - .data 0x48000051 # 80353248 => bl +0x00000050 /* 80353298 */ - .data 0x38A00D3C # 8035324C => li r5, 0x0D3C - .data 0x48000049 # 80353250 => bl +0x00000048 /* 80353298 */ - .data 0x38A00D40 # 80353254 => li r5, 0x0D40 - .data 0x48000041 # 80353258 => bl +0x00000040 /* 80353298 */ - .data 0x38A00D44 # 8035325C => li r5, 0x0D44 - .data 0x48000039 # 80353260 => bl +0x00000038 /* 80353298 */ - .data 0x7FE3FB78 # 80353264 => mr r3, r31 - .data 0x4BE63145 # 80353268 => bl -0x0019CEBC /* 801B63AC */ - .data 0xA01F032C # 8035326C => lhz r0, [r31 + 0x032C] - .data 0xA07F02B8 # 80353270 => lhz r3, [r31 + 0x02B8] - .data 0x7C001840 # 80353274 => cmpl r0, r3 - .data 0x40810008 # 80353278 => ble +0x00000008 /* 80353280 */ - .data 0xB07F032C # 8035327C => sth [r31 + 0x032C], r3 - .data 0xA01F032E # 80353280 => lhz r0, [r31 + 0x032E] - .data 0xA07F02BA # 80353284 => lhz r3, [r31 + 0x02BA] - .data 0x7C001840 # 80353288 => cmpl r0, r3 - .data 0x40810008 # 8035328C => ble +0x00000008 /* 80353294 */ - .data 0xB07F032E # 80353290 => sth [r31 + 0x032E], r3 - .data 0x480000D8 # 80353294 => b +0x000000D8 /* 8035336C */ - .data 0x7CDF20AE # 80353298 => lbzx r6, [r31 + r4] - .data 0x7CFF2A2E # 8035329C => lhzx r7, [r31 + r5] - .data 0x54C6083C # 803532A0 => rlwinm r6, r6, 1, 0, 30 - .data 0x7CE63850 # 803532A4 => subf r7, r6, r7 - .data 0x7CFF2B2E # 803532A8 => sthx [r31 + r5], r7 - .data 0x7C1F21AE # 803532AC => stbx [r31 + r4], r0 - .data 0x38840001 # 803532B0 => addi r4, r4, 0x0001 - .data 0x4E800020 # 803532B4 => blr - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Decoction/Decoction.3OJ2.patch.s b/system/client-functions/Decoction/Decoction.3OJ2.patch.s deleted file mode 100644 index cde2bd78..00000000 --- a/system/client-functions/Decoction/Decoction.3OJ2.patch.s +++ /dev/null @@ -1,55 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80350740 (152 bytes) - .data 0x80350740 # address - .data 0x00000098 # size - .data 0x880300EE # 80350740 => lbz r0, [r3 + 0x00EE] - .data 0x2800000B # 80350744 => cmplwi r0, 11 - .data 0x40820144 # 80350748 => bne +0x00000144 /* 8035088C */ - .data 0x83E300F0 # 8035074C => lwz r31, [r3 + 0x00F0] - .data 0x38000000 # 80350750 => li r0, 0x0000 - .data 0x60000000 # 80350754 => nop - .data 0x38800374 # 80350758 => li r4, 0x0374 - .data 0x38A00D38 # 8035075C => li r5, 0x0D38 - .data 0x48000059 # 80350760 => bl +0x00000058 /* 803507B8 */ - .data 0x38A00D3A # 80350764 => li r5, 0x0D3A - .data 0x48000051 # 80350768 => bl +0x00000050 /* 803507B8 */ - .data 0x38A00D3C # 8035076C => li r5, 0x0D3C - .data 0x48000049 # 80350770 => bl +0x00000048 /* 803507B8 */ - .data 0x38A00D40 # 80350774 => li r5, 0x0D40 - .data 0x48000041 # 80350778 => bl +0x00000040 /* 803507B8 */ - .data 0x38A00D44 # 8035077C => li r5, 0x0D44 - .data 0x48000039 # 80350780 => bl +0x00000038 /* 803507B8 */ - .data 0x7FE3FB78 # 80350784 => mr r3, r31 - .data 0x4BE656A1 # 80350788 => bl -0x0019A960 /* 801B5E28 */ - .data 0xA01F032C # 8035078C => lhz r0, [r31 + 0x032C] - .data 0xA07F02B8 # 80350790 => lhz r3, [r31 + 0x02B8] - .data 0x7C001840 # 80350794 => cmpl r0, r3 - .data 0x40810008 # 80350798 => ble +0x00000008 /* 803507A0 */ - .data 0xB07F032C # 8035079C => sth [r31 + 0x032C], r3 - .data 0xA01F032E # 803507A0 => lhz r0, [r31 + 0x032E] - .data 0xA07F02BA # 803507A4 => lhz r3, [r31 + 0x02BA] - .data 0x7C001840 # 803507A8 => cmpl r0, r3 - .data 0x40810008 # 803507AC => ble +0x00000008 /* 803507B4 */ - .data 0xB07F032E # 803507B0 => sth [r31 + 0x032E], r3 - .data 0x480000D8 # 803507B4 => b +0x000000D8 /* 8035088C */ - .data 0x7CDF20AE # 803507B8 => lbzx r6, [r31 + r4] - .data 0x7CFF2A2E # 803507BC => lhzx r7, [r31 + r5] - .data 0x54C6083C # 803507C0 => rlwinm r6, r6, 1, 0, 30 - .data 0x7CE63850 # 803507C4 => subf r7, r6, r7 - .data 0x7CFF2B2E # 803507C8 => sthx [r31 + r5], r7 - .data 0x7C1F21AE # 803507CC => stbx [r31 + r4], r0 - .data 0x38840001 # 803507D0 => addi r4, r4, 0x0001 - .data 0x4E800020 # 803507D4 => blr - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Decoction/Decoction.3OJ3.patch.s b/system/client-functions/Decoction/Decoction.3OJ3.patch.s deleted file mode 100644 index 67fcca80..00000000 --- a/system/client-functions/Decoction/Decoction.3OJ3.patch.s +++ /dev/null @@ -1,55 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80351B44 (152 bytes) - .data 0x80351B44 # address - .data 0x00000098 # size - .data 0x880300EE # 80351B44 => lbz r0, [r3 + 0x00EE] - .data 0x2800000B # 80351B48 => cmplwi r0, 11 - .data 0x40820144 # 80351B4C => bne +0x00000144 /* 80351C90 */ - .data 0x83E300F0 # 80351B50 => lwz r31, [r3 + 0x00F0] - .data 0x38000000 # 80351B54 => li r0, 0x0000 - .data 0x60000000 # 80351B58 => nop - .data 0x38800374 # 80351B5C => li r4, 0x0374 - .data 0x38A00D38 # 80351B60 => li r5, 0x0D38 - .data 0x48000059 # 80351B64 => bl +0x00000058 /* 80351BBC */ - .data 0x38A00D3A # 80351B68 => li r5, 0x0D3A - .data 0x48000051 # 80351B6C => bl +0x00000050 /* 80351BBC */ - .data 0x38A00D3C # 80351B70 => li r5, 0x0D3C - .data 0x48000049 # 80351B74 => bl +0x00000048 /* 80351BBC */ - .data 0x38A00D40 # 80351B78 => li r5, 0x0D40 - .data 0x48000041 # 80351B7C => bl +0x00000040 /* 80351BBC */ - .data 0x38A00D44 # 80351B80 => li r5, 0x0D44 - .data 0x48000039 # 80351B84 => bl +0x00000038 /* 80351BBC */ - .data 0x7FE3FB78 # 80351B88 => mr r3, r31 - .data 0x4BE646F1 # 80351B8C => bl -0x0019B910 /* 801B627C */ - .data 0xA01F032C # 80351B90 => lhz r0, [r31 + 0x032C] - .data 0xA07F02B8 # 80351B94 => lhz r3, [r31 + 0x02B8] - .data 0x7C001840 # 80351B98 => cmpl r0, r3 - .data 0x40810008 # 80351B9C => ble +0x00000008 /* 80351BA4 */ - .data 0xB07F032C # 80351BA0 => sth [r31 + 0x032C], r3 - .data 0xA01F032E # 80351BA4 => lhz r0, [r31 + 0x032E] - .data 0xA07F02BA # 80351BA8 => lhz r3, [r31 + 0x02BA] - .data 0x7C001840 # 80351BAC => cmpl r0, r3 - .data 0x40810008 # 80351BB0 => ble +0x00000008 /* 80351BB8 */ - .data 0xB07F032E # 80351BB4 => sth [r31 + 0x032E], r3 - .data 0x480000D8 # 80351BB8 => b +0x000000D8 /* 80351C90 */ - .data 0x7CDF20AE # 80351BBC => lbzx r6, [r31 + r4] - .data 0x7CFF2A2E # 80351BC0 => lhzx r7, [r31 + r5] - .data 0x54C6083C # 80351BC4 => rlwinm r6, r6, 1, 0, 30 - .data 0x7CE63850 # 80351BC8 => subf r7, r6, r7 - .data 0x7CFF2B2E # 80351BCC => sthx [r31 + r5], r7 - .data 0x7C1F21AE # 80351BD0 => stbx [r31 + r4], r0 - .data 0x38840001 # 80351BD4 => addi r4, r4, 0x0001 - .data 0x4E800020 # 80351BD8 => blr - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Decoction/Decoction.3OJ4.patch.s b/system/client-functions/Decoction/Decoction.3OJ4.patch.s deleted file mode 100644 index 87324461..00000000 --- a/system/client-functions/Decoction/Decoction.3OJ4.patch.s +++ /dev/null @@ -1,55 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 803530A0 (152 bytes) - .data 0x803530A0 # address - .data 0x00000098 # size - .data 0x880300EE # 803530A0 => lbz r0, [r3 + 0x00EE] - .data 0x2800000B # 803530A4 => cmplwi r0, 11 - .data 0x40820144 # 803530A8 => bne +0x00000144 /* 803531EC */ - .data 0x83E300F0 # 803530AC => lwz r31, [r3 + 0x00F0] - .data 0x38000000 # 803530B0 => li r0, 0x0000 - .data 0x60000000 # 803530B4 => nop - .data 0x38800374 # 803530B8 => li r4, 0x0374 - .data 0x38A00D38 # 803530BC => li r5, 0x0D38 - .data 0x48000059 # 803530C0 => bl +0x00000058 /* 80353118 */ - .data 0x38A00D3A # 803530C4 => li r5, 0x0D3A - .data 0x48000051 # 803530C8 => bl +0x00000050 /* 80353118 */ - .data 0x38A00D3C # 803530CC => li r5, 0x0D3C - .data 0x48000049 # 803530D0 => bl +0x00000048 /* 80353118 */ - .data 0x38A00D40 # 803530D4 => li r5, 0x0D40 - .data 0x48000041 # 803530D8 => bl +0x00000040 /* 80353118 */ - .data 0x38A00D44 # 803530DC => li r5, 0x0D44 - .data 0x48000039 # 803530E0 => bl +0x00000038 /* 80353118 */ - .data 0x7FE3FB78 # 803530E4 => mr r3, r31 - .data 0x4BE654CD # 803530E8 => bl -0x0019AB34 /* 801B85B4 */ - .data 0xA01F032C # 803530EC => lhz r0, [r31 + 0x032C] - .data 0xA07F02B8 # 803530F0 => lhz r3, [r31 + 0x02B8] - .data 0x7C001840 # 803530F4 => cmpl r0, r3 - .data 0x40810008 # 803530F8 => ble +0x00000008 /* 80353100 */ - .data 0xB07F032C # 803530FC => sth [r31 + 0x032C], r3 - .data 0xA01F032E # 80353100 => lhz r0, [r31 + 0x032E] - .data 0xA07F02BA # 80353104 => lhz r3, [r31 + 0x02BA] - .data 0x7C001840 # 80353108 => cmpl r0, r3 - .data 0x40810008 # 8035310C => ble +0x00000008 /* 80353114 */ - .data 0xB07F032E # 80353110 => sth [r31 + 0x032E], r3 - .data 0x480000D8 # 80353114 => b +0x000000D8 /* 803531EC */ - .data 0x7CDF20AE # 80353118 => lbzx r6, [r31 + r4] - .data 0x7CFF2A2E # 8035311C => lhzx r7, [r31 + r5] - .data 0x54C6083C # 80353120 => rlwinm r6, r6, 1, 0, 30 - .data 0x7CE63850 # 80353124 => subf r7, r6, r7 - .data 0x7CFF2B2E # 80353128 => sthx [r31 + r5], r7 - .data 0x7C1F21AE # 8035312C => stbx [r31 + r4], r0 - .data 0x38840001 # 80353130 => addi r4, r4, 0x0001 - .data 0x4E800020 # 80353134 => blr - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Decoction/Decoction.3OJ5.patch.s b/system/client-functions/Decoction/Decoction.3OJ5.patch.s deleted file mode 100644 index 020cd1b1..00000000 --- a/system/client-functions/Decoction/Decoction.3OJ5.patch.s +++ /dev/null @@ -1,55 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80352E54 (152 bytes) - .data 0x80352E54 # address - .data 0x00000098 # size - .data 0x880300EE # 80352E54 => lbz r0, [r3 + 0x00EE] - .data 0x2800000B # 80352E58 => cmplwi r0, 11 - .data 0x40820144 # 80352E5C => bne +0x00000144 /* 80352FA0 */ - .data 0x83E300F0 # 80352E60 => lwz r31, [r3 + 0x00F0] - .data 0x38000000 # 80352E64 => li r0, 0x0000 - .data 0x60000000 # 80352E68 => nop - .data 0x38800374 # 80352E6C => li r4, 0x0374 - .data 0x38A00D38 # 80352E70 => li r5, 0x0D38 - .data 0x48000059 # 80352E74 => bl +0x00000058 /* 80352ECC */ - .data 0x38A00D3A # 80352E78 => li r5, 0x0D3A - .data 0x48000051 # 80352E7C => bl +0x00000050 /* 80352ECC */ - .data 0x38A00D3C # 80352E80 => li r5, 0x0D3C - .data 0x48000049 # 80352E84 => bl +0x00000048 /* 80352ECC */ - .data 0x38A00D40 # 80352E88 => li r5, 0x0D40 - .data 0x48000041 # 80352E8C => bl +0x00000040 /* 80352ECC */ - .data 0x38A00D44 # 80352E90 => li r5, 0x0D44 - .data 0x48000039 # 80352E94 => bl +0x00000038 /* 80352ECC */ - .data 0x7FE3FB78 # 80352E98 => mr r3, r31 - .data 0x4BE634AD # 80352E9C => bl -0x0019CB54 /* 801B6348 */ - .data 0xA01F032C # 80352EA0 => lhz r0, [r31 + 0x032C] - .data 0xA07F02B8 # 80352EA4 => lhz r3, [r31 + 0x02B8] - .data 0x7C001840 # 80352EA8 => cmpl r0, r3 - .data 0x40810008 # 80352EAC => ble +0x00000008 /* 80352EB4 */ - .data 0xB07F032C # 80352EB0 => sth [r31 + 0x032C], r3 - .data 0xA01F032E # 80352EB4 => lhz r0, [r31 + 0x032E] - .data 0xA07F02BA # 80352EB8 => lhz r3, [r31 + 0x02BA] - .data 0x7C001840 # 80352EBC => cmpl r0, r3 - .data 0x40810008 # 80352EC0 => ble +0x00000008 /* 80352EC8 */ - .data 0xB07F032E # 80352EC4 => sth [r31 + 0x032E], r3 - .data 0x480000D8 # 80352EC8 => b +0x000000D8 /* 80352FA0 */ - .data 0x7CDF20AE # 80352ECC => lbzx r6, [r31 + r4] - .data 0x7CFF2A2E # 80352ED0 => lhzx r7, [r31 + r5] - .data 0x54C6083C # 80352ED4 => rlwinm r6, r6, 1, 0, 30 - .data 0x7CE63850 # 80352ED8 => subf r7, r6, r7 - .data 0x7CFF2B2E # 80352EDC => sthx [r31 + r5], r7 - .data 0x7C1F21AE # 80352EE0 => stbx [r31 + r4], r0 - .data 0x38840001 # 80352EE4 => addi r4, r4, 0x0001 - .data 0x4E800020 # 80352EE8 => blr - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Decoction/Decoction.3OP0.patch.s b/system/client-functions/Decoction/Decoction.3OP0.patch.s deleted file mode 100644 index dba897dd..00000000 --- a/system/client-functions/Decoction/Decoction.3OP0.patch.s +++ /dev/null @@ -1,55 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80352614 (152 bytes) - .data 0x80352614 # address - .data 0x00000098 # size - .data 0x880300EE # 80352614 => lbz r0, [r3 + 0x00EE] - .data 0x2800000B # 80352618 => cmplwi r0, 11 - .data 0x40820144 # 8035261C => bne +0x00000144 /* 80352760 */ - .data 0x83E300F0 # 80352620 => lwz r31, [r3 + 0x00F0] - .data 0x38000000 # 80352624 => li r0, 0x0000 - .data 0x60000000 # 80352628 => nop - .data 0x38800374 # 8035262C => li r4, 0x0374 - .data 0x38A00D38 # 80352630 => li r5, 0x0D38 - .data 0x48000059 # 80352634 => bl +0x00000058 /* 8035268C */ - .data 0x38A00D3A # 80352638 => li r5, 0x0D3A - .data 0x48000051 # 8035263C => bl +0x00000050 /* 8035268C */ - .data 0x38A00D3C # 80352640 => li r5, 0x0D3C - .data 0x48000049 # 80352644 => bl +0x00000048 /* 8035268C */ - .data 0x38A00D40 # 80352648 => li r5, 0x0D40 - .data 0x48000041 # 8035264C => bl +0x00000040 /* 8035268C */ - .data 0x38A00D44 # 80352650 => li r5, 0x0D44 - .data 0x48000039 # 80352654 => bl +0x00000038 /* 8035268C */ - .data 0x7FE3FB78 # 80352658 => mr r3, r31 - .data 0x4BE6420D # 8035265C => bl -0x0019BDF4 /* 801B6868 */ - .data 0xA01F032C # 80352660 => lhz r0, [r31 + 0x032C] - .data 0xA07F02B8 # 80352664 => lhz r3, [r31 + 0x02B8] - .data 0x7C001840 # 80352668 => cmpl r0, r3 - .data 0x40810008 # 8035266C => ble +0x00000008 /* 80352674 */ - .data 0xB07F032C # 80352670 => sth [r31 + 0x032C], r3 - .data 0xA01F032E # 80352674 => lhz r0, [r31 + 0x032E] - .data 0xA07F02BA # 80352678 => lhz r3, [r31 + 0x02BA] - .data 0x7C001840 # 8035267C => cmpl r0, r3 - .data 0x40810008 # 80352680 => ble +0x00000008 /* 80352688 */ - .data 0xB07F032E # 80352684 => sth [r31 + 0x032E], r3 - .data 0x480000D8 # 80352688 => b +0x000000D8 /* 80352760 */ - .data 0x7CDF20AE # 8035268C => lbzx r6, [r31 + r4] - .data 0x7CFF2A2E # 80352690 => lhzx r7, [r31 + r5] - .data 0x54C6083C # 80352694 => rlwinm r6, r6, 1, 0, 30 - .data 0x7CE63850 # 80352698 => subf r7, r6, r7 - .data 0x7CFF2B2E # 8035269C => sthx [r31 + r5], r7 - .data 0x7C1F21AE # 803526A0 => stbx [r31 + r4], r0 - .data 0x38840001 # 803526A4 => addi r4, r4, 0x0001 - .data 0x4E800020 # 803526A8 => blr - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Decoction/Decoction.3___.patch.s b/system/client-functions/Decoction/Decoction.3___.patch.s new file mode 100644 index 00000000..21dc1126 --- /dev/null +++ b/system/client-functions/Decoction/Decoction.3___.patch.s @@ -0,0 +1,58 @@ +.meta name="Decoction" +.meta description="Makes the Decoction\nitem reset your\nmaterial usage" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data + .data 0x00000098 + .address + lbz r0, [r3 + 0xEE] + cmplwi r0, 11 + bne +0x144 + lwz r31, [r3 + 0xF0] + li r0, 0 + nop + li r4, 0x0374 + li r5, 0x0D38 + bl +0x58 + li r5, 0x0D3A + bl +0x50 + li r5, 0x0D3C + bl +0x48 + li r5, 0x0D40 + bl +0x40 + li r5, 0x0D44 + bl +0x38 + mr r3, r31 + .data + lhz r0, [r31 + 0x032C] + lhz r3, [r31 + 0x02B8] + cmpl r0, r3 + ble +0x08 + sth [r31 + 0x032C], r3 + lhz r0, [r31 + 0x032E] + lhz r3, [r31 + 0x02BA] + cmpl r0, r3 + ble +0x08 + sth [r31 + 0x032E], r3 + b +0xD8 + lbzx r6, [r31 + r4] + lhzx r7, [r31 + r5] + rlwinm r6, r6, 1, 0, 30 + subf r7, r6, r7 + sthx [r31 + r5], r7 + stbx [r31 + r4], r0 + addi r4, r4, 0x0001 + blr + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/Decoction/Decoction.4OED.patch.s b/system/client-functions/Decoction/Decoction.4OED.patch.s deleted file mode 100644 index bd0eb4de..00000000 --- a/system/client-functions/Decoction/Decoction.4OED.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00184340 - .deltaof code_start, code_end -code_start: - .include DecoctionXB -code_end: - .data 0x00184341 - .data 0x00000004 - .data 0x001FD5E0 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Decoction/Decoction.4OEU.patch.s b/system/client-functions/Decoction/Decoction.4OEU.patch.s deleted file mode 100644 index 54f0d218..00000000 --- a/system/client-functions/Decoction/Decoction.4OEU.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00184310 - .deltaof code_start, code_end -code_start: - .include DecoctionXB -code_end: - .data 0x00184311 - .data 0x00000004 - .data 0x001FD5E0 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Decoction/Decoction.4OJB.patch.s b/system/client-functions/Decoction/Decoction.4OJB.patch.s deleted file mode 100644 index 3caf653e..00000000 --- a/system/client-functions/Decoction/Decoction.4OJB.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00184160 - .deltaof code_start, code_end -code_start: - .include DecoctionXB -code_end: - .data 0x00184161 - .data 0x00000004 - .data 0x001FD3D0 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Decoction/Decoction.4OJD.patch.s b/system/client-functions/Decoction/Decoction.4OJD.patch.s deleted file mode 100644 index e37b3c72..00000000 --- a/system/client-functions/Decoction/Decoction.4OJD.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00184350 - .deltaof code_start, code_end -code_start: - .include DecoctionXB -code_end: - .data 0x00184351 - .data 0x00000004 - .data 0x001FD530 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Decoction/Decoction.4OJU.patch.s b/system/client-functions/Decoction/Decoction.4OJU.patch.s deleted file mode 100644 index 4db4c008..00000000 --- a/system/client-functions/Decoction/Decoction.4OJU.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00184400 - .deltaof code_start, code_end -code_start: - .include DecoctionXB -code_end: - .data 0x00184401 - .data 0x00000004 - .data 0x001FD7B0 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Decoction/Decoction.4OPD.patch.s b/system/client-functions/Decoction/Decoction.4OPD.patch.s deleted file mode 100644 index 9f482ff3..00000000 --- a/system/client-functions/Decoction/Decoction.4OPD.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00184360 - .deltaof code_start, code_end -code_start: - .include DecoctionXB -code_end: - .data 0x00184361 - .data 0x00000004 - .data 0x001FD600 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Decoction/Decoction.4OPU.patch.s b/system/client-functions/Decoction/Decoction.4OPU.patch.s deleted file mode 100644 index 32bd3b98..00000000 --- a/system/client-functions/Decoction/Decoction.4OPU.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Decoction" -.meta description="Makes the Decoction\nitem reset your\nmaterial usage" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x001842D0 - .deltaof code_start, code_end -code_start: - .include DecoctionXB -code_end: - .data 0x001842D1 - .data 0x00000004 - .data 0x001FD670 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Decoction/DecoctionXB.x86.inc.s b/system/client-functions/Decoction/Decoction.4___.patch.s similarity index 64% rename from system/client-functions/Decoction/DecoctionXB.x86.inc.s rename to system/client-functions/Decoction/Decoction.4___.patch.s index 38d61c24..233a3e05 100644 --- a/system/client-functions/Decoction/DecoctionXB.x86.inc.s +++ b/system/client-functions/Decoction/Decoction.4___.patch.s @@ -1,4 +1,20 @@ +.meta name="Decoction" +.meta description="Makes the Decoction\nitem reset your\nmaterial usage" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 +# Xbox port by fuzziqersoftware + +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start start: + .include WriteCodeBlocksXB + .data + .deltaof code_start, code_end +code_start: mov eax, 0x88888888 # eax = &player_compute_implied_stats (the value is overwritten by the including patch) lea edx, [ecx + 0x78] cmp byte [edx + 0x76], 11 # this->data1[2] (item+0xEE) ?= 0x0B @@ -44,3 +60,10 @@ next_stat: pop esi skip_all: ret + +code_end: + .data + .data 0x00000004 + .data + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJ3.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJ3.patch.s deleted file mode 100644 index 81ddd9ed..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJ3.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C01A454 - .data 0x00000002 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJ4.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJ4.patch.s deleted file mode 100644 index 9e076b69..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJ4.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C01A6D0 - .data 0x00000002 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJF.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJF.patch.s deleted file mode 100644 index 4e34c524..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OJF.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C01A414 - .data 0x00000002 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OPF.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OPF.patch.s deleted file mode 100644 index 22b38031..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OPF.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C01A6DC - .data 0x00000002 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OEF.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1___.patch.s similarity index 61% rename from system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OEF.patch.s rename to system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1___.patch.s index 93cd88e9..ad5b0c4c 100644 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1OEF.patch.s +++ b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.1___.patch.s @@ -1,6 +1,8 @@ .meta name="Disable idle DC" .meta description="Disables the idle\ndisconnect timeout" +.versions 1OJ3 1OJ4 1OJF 1OEF 1OPF 2OJ5 2OJF 2OEF 2OPF + entry_ptr: reloc0: .offsetof start @@ -8,7 +10,7 @@ start: .include WriteCodeBlocksDC .align 4 - .data 0x8C01A6C8 + .data .data 0x00000002 mov r0, 0 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OEF.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OEF.patch.s deleted file mode 100644 index 26b70c7a..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OEF.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C01B6A4 - .data 0x00000002 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OJ5.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OJ5.patch.s deleted file mode 100644 index 26b70c7a..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OJ5.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C01B6A4 - .data 0x00000002 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OJF.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OJF.patch.s deleted file mode 100644 index 86066a08..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OJF.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C01B684 - .data 0x00000002 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OPF.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OPF.patch.s deleted file mode 100644 index ee80ed15..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.2OPF.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C01B6A8 - .data 0x00000002 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE1.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE1.patch.s deleted file mode 100644 index fd955834..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE1.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80134FE0 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE2.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE2.patch.s deleted file mode 100644 index 439e5f83..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE2.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80135050 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ2.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ2.patch.s deleted file mode 100644 index 88ec45d9..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ2.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80134D3C - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ3.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ3.patch.s deleted file mode 100644 index 118fdd5f..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ3.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80134FA0 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ4.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ4.patch.s deleted file mode 100644 index 2379908a..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ4.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80135108 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ5.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ5.patch.s deleted file mode 100644 index 4f0e5dca..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OJ5.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80135040 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OP0.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OP0.patch.s deleted file mode 100644 index 2e879be3..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OP0.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x801352D0 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SE0.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SE0.patch.s deleted file mode 100644 index 5ef29357..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SE0.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80092380 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SJ0.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SJ0.patch.s deleted file mode 100644 index a024da19..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SJ0.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8009242C - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SJT.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SJT.patch.s deleted file mode 100644 index ffaac06f..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SJT.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80092C78 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SP0.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SP0.patch.s deleted file mode 100644 index 456bf5f0..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3SP0.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x80092588 - .data 0x00000004 - li r3, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE0.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3___.patch.s similarity index 53% rename from system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE0.patch.s rename to system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3___.patch.s index fd955834..0cca3715 100644 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3OE0.patch.s +++ b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.3___.patch.s @@ -1,13 +1,15 @@ .meta name="Disable idle DC" .meta description="Disables the idle\ndisconnect timeout" +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 3SJT 3SJ0 3SE0 3SP0 + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksGC - .data 0x80134FE0 + .data .data 0x00000004 li r3, 0 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OEU.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OEU.patch.s deleted file mode 100644 index 70d4b79b..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OEU.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x002C291E - .data 0x00000004 - .binary 31C9EB03 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJB.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJB.patch.s deleted file mode 100644 index 5e5d06a1..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJB.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x002C0AEE - .data 0x00000004 - .binary 31C9EB03 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJD.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJD.patch.s deleted file mode 100644 index 4bc5f8d9..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJD.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x002C167E - .data 0x00000004 - .binary 31C9EB03 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJU.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJU.patch.s deleted file mode 100644 index 57c859e3..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OJU.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x002C2BEE - .data 0x00000004 - .binary 31C9EB03 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OPD.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OPD.patch.s deleted file mode 100644 index 04a0bb77..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OPD.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x002C275E - .data 0x00000004 - .binary 31C9EB03 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OPU.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OPU.patch.s deleted file mode 100644 index 0865695b..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OPU.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x002C2A7E - .data 0x00000004 - .binary 31C9EB03 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OED.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4___.patch.s similarity index 64% rename from system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OED.patch.s rename to system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4___.patch.s index a97f6fee..d4dd8aac 100644 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4OED.patch.s +++ b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.4___.patch.s @@ -1,13 +1,15 @@ .meta name="Disable idle DC" .meta description="Disables the idle\ndisconnect timeout" +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksXB - .data 0x002C272E + .data .data 0x00000004 .binary 31C9EB03 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.59NL.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.59NL.patch.s deleted file mode 100644 index 2f33bf6e..00000000 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.59NL.patch.s +++ /dev/null @@ -1,15 +0,0 @@ -.meta name="Disable idle DC" -.meta description="Disables the idle\ndisconnect timeout" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksBB - - .data 0x007A03F7 - .data 0x00000005 - mov eax, 0 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.59NJ.patch.s b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.5___.patch.s similarity index 80% rename from system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.59NJ.patch.s rename to system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.5___.patch.s index 13493139..456c5e47 100644 --- a/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.59NJ.patch.s +++ b/system/client-functions/DisableIdleDisconnect/DisableIdleDisconnect.5___.patch.s @@ -1,13 +1,15 @@ .meta name="Disable idle DC" .meta description="Disables the idle\ndisconnect timeout" +.versions 59NJ 59NL + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksBB - .data 0x007A1233 + .data .data 0x00000005 mov eax, 0 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OE0.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OE0.patch.s deleted file mode 100644 index 5c16854e..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.3OE0.patch.s +++ /dev/null @@ -1,77 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -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 @ 80156AD8 (4 bytes) - .data 0x80156AD8 # address - .data 0x00000004 # size - .data 0x4BEB74D5 # 80156AD8 => bl -0x00148B2C /* 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 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OE1.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OE1.patch.s deleted file mode 100644 index 252df007..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.3OE1.patch.s +++ /dev/null @@ -1,77 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -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 @ 80156AD8 (4 bytes) - .data 0x80156AD8 # address - .data 0x00000004 # size - .data 0x4BEB74D5 # 80156AD8 => bl -0x00148B2C /* 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 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OE2.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OE2.patch.s deleted file mode 100644 index c3962cd4..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.3OE2.patch.s +++ /dev/null @@ -1,77 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -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 @ 80156BF8 (4 bytes) - .data 0x80156BF8 # address - .data 0x00000004 # size - .data 0x4BEB73B5 # 80156BF8 => bl -0x00148C4C /* 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 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OJ2.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OJ2.patch.s deleted file mode 100644 index 15faf65b..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.3OJ2.patch.s +++ /dev/null @@ -1,77 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -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 @ 8015671C (4 bytes) - .data 0x8015671C # address - .data 0x00000004 # size - .data 0x4BEB7891 # 8015671C => bl -0x00148770 /* 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 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OJ3.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OJ3.patch.s deleted file mode 100644 index 8d2ba0ea..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.3OJ3.patch.s +++ /dev/null @@ -1,77 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -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 @ 80156AD0 (4 bytes) - .data 0x80156AD0 # address - .data 0x00000004 # size - .data 0x4BEB74DD # 80156AD0 => bl -0x00148B24 /* 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 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OJ4.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OJ4.patch.s deleted file mode 100644 index e2818370..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.3OJ4.patch.s +++ /dev/null @@ -1,77 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -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 @ 80156C34 (4 bytes) - .data 0x80156C34 # address - .data 0x00000004 # size - .data 0x4BEB7379 # 80156C34 => bl -0x00148C88 /* 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 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OJ5.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OJ5.patch.s deleted file mode 100644 index 885830ff..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.3OJ5.patch.s +++ /dev/null @@ -1,77 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -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 @ 80156B94 (4 bytes) - .data 0x80156B94 # address - .data 0x00000004 # size - .data 0x4BEB7419 # 80156B94 => bl -0x00148BE8 /* 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 diff --git a/system/client-functions/DrawDistance/DrawDistance.3OP0.patch.s b/system/client-functions/DrawDistance/DrawDistance.3OP0.patch.s deleted file mode 100644 index 915ffec0..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.3OP0.patch.s +++ /dev/null @@ -1,77 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -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 @ 801570BC (4 bytes) - .data 0x801570BC # address - .data 0x00000004 # size - .data 0x4BEB6EF1 # 801570BC => bl -0x00149110 /* 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 diff --git a/system/client-functions/DrawDistance/DrawDistance.3___.patch.s b/system/client-functions/DrawDistance/DrawDistance.3___.patch.s new file mode 100644 index 00000000..abe18561 --- /dev/null +++ b/system/client-functions/DrawDistance/DrawDistance.3___.patch.s @@ -0,0 +1,90 @@ +.meta name="Draw Distance" +.meta description="Extends the draw\ndistance of many\nobjects" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000DFA0 + .data 0x00000040 + .address 0x8000DFA0 +hook1: + lfs f30, [r2 - ] + fmuls f30, f30, f1 + blr +hook2: + lfs f2, [r2 - ] + lfs f0, [r30 + 0x001C] + fmuls f0, f0, f2 + blr +hook3: + lfs f28, [r2 - ] + fmuls f28, f28, f2 + blr +hook4: + lfs f0, [r2 - ] + lfs f1, [r3 + 0x000C] + fmuls f0, f0, f1 + stfs [r3 + 0x000C], f0 + lis r3, + blr + + .data + .data 0x00000004 + .address + bl hook1 + + .data + .data 0x00000004 + .address + bl hook2 + + .data + .data 0x00000004 + .address + bl hook3 + + .data + .data 0x00000004 + .address + bl hook1 + + .data + .data 0x00000004 + .address + bl hook4 + + .data + .data 0x00000004 + .address + bl hook4 + + .data + .data 0x00000004 + .data 0x47AFC800 + + .data + .data 0x00000004 + .data 0x47742400 + + .data + .data 0x00000004 + .data 0x491C4000 + + .data + .data 0x00000004 + .data 0x47AFC800 + + .data + .data 0x00000004 + .data 0x44AF0000 + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.4OED.patch.s b/system/client-functions/DrawDistance/DrawDistance.4OED.patch.s deleted file mode 100644 index e014f36a..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.4OED.patch.s +++ /dev/null @@ -1,118 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x001737C2 # From 3OE1:80100B8C - .deltaof p1_1s, p1_1e -p1_1s: - .binary E87B020000 # call p1_2s - nop -p1_1e: - .data 0x00173A42 - .deltaof p1_2s, p1_2e -p1_2s: - fld st0, dword [esp + 0x1C] - fadd st0, st0 - fchs st0 - ret -p1_2e: - - .data 0x001A3DEF # From 3OE1:80156AD8 - .deltaof p2_1s, p2_1e -p2_1s: - .binary E844000000 # call p2_2s -p2_1e: - .data 0x001A3E38 - .deltaof p2_2s, p2_2e -p2_2s: - fld st0, dword [ecx + 0x1C] - fadd st0, st0 - fld st0, st1 - ret -p2_2e: - - .data 0x002D2DC8 # From 3OE1:801A2040 - .deltaof p3_1s, p3_1e -p3_1s: - .binary E8DA000000 # call p3_2s - nop -p3_1e: - .data 0x002D2EA7 - .deltaof p3_2s, p3_2e -p3_2s: - fld st0, dword [esp + 0x24] - fadd st0, st0 - fchs st0 - ret -p3_2e: - - .data 0x00156AC8 # From 3OE1:801A2240 - .deltaof p4_1s, p4_1e -p4_1s: - .binary E877010000 # call p4_2s - nop -p4_1e: - .data 0x00156C44 - .deltaof p4_2s, p4_2e -p4_2s: - fld st0, dword [esp + 0x28] - fadd st0, st0 - fchs st0 - ret -p4_2e: - - .data 0x002E2B93 # From 3OE1:80205840 - .deltaof p5_1s, p5_1e -p5_1s: - .binary E8EA000000 # call p5_3s -p5_1e: - .data 0x002E1FD1 # From 3OE1:80205FE4 - .deltaof p5_2s, p5_2e -p5_2s: - .binary E8AC0C0000 # call p5_3s -p5_2e: - .data 0x002E2C82 - .deltaof p5_3s, p5_3e -p5_3s: - fld st0, dword [eax + 0x0C] - fadd st0, st0 - fstp dword [eax + 0x0C], st0 - mov eax, [0x0053A9CC] - ret -p5_3e: - - .data 0x004920A0 # From 3OE1:805CFCD0 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x0042D0A0 # From 3OE1:805D0B7C - .data 0x00000004 - .data 0x437A0000 - - .data 0x0049222C # From 3OE1:805D11A4 - .data 0x00000004 - .data 0x491C4000 - - .data 0x0042B838 # From 3OE1:805D2030 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x001D9736 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x001D9748 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.4OEU.patch.s b/system/client-functions/DrawDistance/DrawDistance.4OEU.patch.s deleted file mode 100644 index e7b67b60..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.4OEU.patch.s +++ /dev/null @@ -1,118 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x001737D2 # From 3OE1:80100B8C - .deltaof p1_1s, p1_1e -p1_1s: - .binary E87B020000 # call p1_2s - nop -p1_1e: - .data 0x00173A52 - .deltaof p1_2s, p1_2e -p1_2s: - fld st0, dword [esp + 0x1C] - fadd st0, st0 - fchs st0 - ret -p1_2e: - - .data 0x001A3EEF # From 3OE1:80156AD8 - .deltaof p2_1s, p2_1e -p2_1s: - .binary E844000000 # call p2_2s -p2_1e: - .data 0x001A3F38 - .deltaof p2_2s, p2_2e -p2_2s: - fld st0, dword [ecx + 0x1C] - fadd st0, st0 - fld st0, st1 - ret -p2_2e: - - .data 0x002D3148 # From 3OE1:801A2040 - .deltaof p3_1s, p3_1e -p3_1s: - .binary E8DA000000 # call p3_2s - nop -p3_1e: - .data 0x002D3227 - .deltaof p3_2s, p3_2e -p3_2s: - fld st0, dword [esp + 0x24] - fadd st0, st0 - fchs st0 - ret -p3_2e: - - .data 0x002D32A8 # From 3OE1:801A2240 - .deltaof p4_1s, p4_1e -p4_1s: - .binary E807010000 # call p4_2s - nop -p4_1e: - .data 0x002D33B4 - .deltaof p4_2s, p4_2e -p4_2s: - fld st0, dword [esp + 0x28] - fadd st0, st0 - fchs st0 - ret -p4_2e: - - .data 0x002E2E8C # From 3OE1:80205840 - .deltaof p5_1s, p5_1e -p5_1s: - .binary E840010000 # call p5_3s -p5_1e: - .data 0x002E2404 # From 3OE1:80205FE4 - .deltaof p5_2s, p5_2e -p5_2s: - .binary E8C80B0000 # call p5_3s -p5_2e: - .data 0x002E2FD1 - .deltaof p5_3s, p5_3e -p5_3s: - fld st0, dword [eax + 0x0C] - fadd st0, st0 - fstp dword [eax + 0x0C], st0 - mov eax, [0x0053A26C] - ret -p5_3e: - - .data 0x00491940 # From 3OE1:805CFCD0 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x0042C940 # From 3OE1:805D0B7C - .data 0x00000004 - .data 0x437A0000 - - .data 0x00491ACC # From 3OE1:805D11A4 - .data 0x00000004 - .data 0x491C4000 - - .data 0x0042B0D8 # From 3OE1:805D2030 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x001D9936 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x001D9948 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.4OJB.patch.s b/system/client-functions/DrawDistance/DrawDistance.4OJB.patch.s deleted file mode 100644 index 7e424dad..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.4OJB.patch.s +++ /dev/null @@ -1,118 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00173692 # From 3OE1:80100B8C - .deltaof p1_1s, p1_1e -p1_1s: - .binary E87B020000 # call p1_2s - nop -p1_1e: - .data 0x00173912 - .deltaof p1_2s, p1_2e -p1_2s: - fld st0, dword [esp + 0x1C] - fadd st0, st0 - fchs st0 - ret -p1_2e: - - .data 0x001A3BBF # From 3OE1:80156AD8 - .deltaof p2_1s, p2_1e -p2_1s: - .binary E844000000 # call p2_2s -p2_1e: - .data 0x001A3C08 - .deltaof p2_2s, p2_2e -p2_2s: - fld st0, dword [ecx + 0x1C] - fadd st0, st0 - fld st0, st1 - ret -p2_2e: - - .data 0x002D0E68 # From 3OE1:801A2040 - .deltaof p3_1s, p3_1e -p3_1s: - .binary E8DA000000 # call p3_2s - nop -p3_1e: - .data 0x002D0F47 - .deltaof p3_2s, p3_2e -p3_2s: - fld st0, dword [esp + 0x24] - fadd st0, st0 - fchs st0 - ret -p3_2e: - - .data 0x001569E8 # From 3OE1:801A2240 - .deltaof p4_1s, p4_1e -p4_1s: - .binary E877010000 # call p4_2s - nop -p4_1e: - .data 0x00156B64 - .deltaof p4_2s, p4_2e -p4_2s: - fld st0, dword [esp + 0x28] - fadd st0, st0 - fchs st0 - ret -p4_2e: - - .data 0x002E0C33 # From 3OE1:80205840 - .deltaof p5_1s, p5_1e -p5_1s: - .binary E8EA000000 # call p5_3s -p5_1e: - .data 0x002E0071 # From 3OE1:80205FE4 - .deltaof p5_2s, p5_2e -p5_2s: - .binary E8AC0C0000 # call p5_3s -p5_2e: - .data 0x002E0D22 - .deltaof p5_3s, p5_3e -p5_3s: - fld st0, dword [eax + 0x0C] - fadd st0, st0 - fstp dword [eax + 0x0C], st0 - mov eax, [0x00535BAC] - ret -p5_3e: - - .data 0x0048D4F0 # From 3OE1:805CFCD0 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x00428DC0 # From 3OE1:805D0B7C - .data 0x00000004 - .data 0x437A0000 - - .data 0x0048D67C # From 3OE1:805D11A4 - .data 0x00000004 - .data 0x491C4000 - - .data 0x00427558 # From 3OE1:805D2030 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x001D95F6 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x001D9608 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.4OJD.patch.s b/system/client-functions/DrawDistance/DrawDistance.4OJD.patch.s deleted file mode 100644 index ea13a938..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.4OJD.patch.s +++ /dev/null @@ -1,118 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00173782 # From 3OE1:80100B8C - .deltaof p1_1s, p1_1e -p1_1s: - .binary E87B020000 # call p1_2s - nop -p1_1e: - .data 0x00173A02 - .deltaof p1_2s, p1_2e -p1_2s: - fld st0, dword [esp + 0x1C] - fadd st0, st0 - fchs st0 - ret -p1_2e: - - .data 0x001A3DBF # From 3OE1:80156AD8 - .deltaof p2_1s, p2_1e -p2_1s: - .binary E844000000 # call p2_2s -p2_1e: - .data 0x001A3E08 - .deltaof p2_2s, p2_2e -p2_2s: - fld st0, dword [ecx + 0x1C] - fadd st0, st0 - fld st0, st1 - ret -p2_2e: - - .data 0x002D1A28 # From 3OE1:801A2040 - .deltaof p3_1s, p3_1e -p3_1s: - .binary E8DA000000 # call p3_2s - nop -p3_1e: - .data 0x002D1B07 - .deltaof p3_2s, p3_2e -p3_2s: - fld st0, dword [esp + 0x24] - fadd st0, st0 - fchs st0 - ret -p3_2e: - - .data 0x00156A78 # From 3OE1:801A2240 - .deltaof p4_1s, p4_1e -p4_1s: - .binary E877010000 # call p4_2s - nop -p4_1e: - .data 0x00156BF4 - .deltaof p4_2s, p4_2e -p4_2s: - fld st0, dword [esp + 0x28] - fadd st0, st0 - fchs st0 - ret -p4_2e: - - .data 0x002E17B3 # From 3OE1:80205840 - .deltaof p5_1s, p5_1e -p5_1s: - .binary E8EA000000 # call p5_3s -p5_1e: - .data 0x002E0BF1 # From 3OE1:80205FE4 - .deltaof p5_2s, p5_2e -p5_2s: - .binary E8AC0C0000 # call p5_3s -p5_2e: - .data 0x002E18A2 - .deltaof p5_3s, p5_3e -p5_3s: - fld st0, dword [eax + 0x0C] - fadd st0, st0 - fstp dword [eax + 0x0C], st0 - mov eax, [0x0053622C] - ret -p5_3e: - - .data 0x0048DC88 # From 3OE1:805CFCD0 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x00429130 # From 3OE1:805D0B7C - .data 0x00000004 - .data 0x437A0000 - - .data 0x0048DE14 # From 3OE1:805D11A4 - .data 0x00000004 - .data 0x491C4000 - - .data 0x004278C8 # From 3OE1:805D2030 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x001D9746 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x001D9758 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.4OJU.patch.s b/system/client-functions/DrawDistance/DrawDistance.4OJU.patch.s deleted file mode 100644 index 29d33488..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.4OJU.patch.s +++ /dev/null @@ -1,118 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00173862 # From 3OE1:80100B8C - .deltaof p1_1s, p1_1e -p1_1s: - .binary E87B020000 # call p1_2s - nop -p1_1e: - .data 0x00173AE2 - .deltaof p1_2s, p1_2e -p1_2s: - fld st0, dword [esp + 0x1C] - fadd st0, st0 - fchs st0 - ret -p1_2e: - - .data 0x001A3FDF # From 3OE1:80156AD8 - .deltaof p2_1s, p2_1e -p2_1s: - .binary E844000000 # call p2_2s -p2_1e: - .data 0x001A4028 - .deltaof p2_2s, p2_2e -p2_2s: - fld st0, dword [ecx + 0x1C] - fadd st0, st0 - fld st0, st1 - ret -p2_2e: - - .data 0x002D32F8 # From 3OE1:801A2040 - .deltaof p3_1s, p3_1e -p3_1s: - .binary E8DA000000 # call p3_2s - nop -p3_1e: - .data 0x002D33D7 - .deltaof p3_2s, p3_2e -p3_2s: - fld st0, dword [esp + 0x24] - fadd st0, st0 - fchs st0 - ret -p3_2e: - - .data 0x00156AB8 # From 3OE1:801A2240 - .deltaof p4_1s, p4_1e -p4_1s: - .binary E877010000 # call p4_2s - nop -p4_1e: - .data 0x00156C34 - .deltaof p4_2s, p4_2e -p4_2s: - fld st0, dword [esp + 0x28] - fadd st0, st0 - fchs st0 - ret -p4_2e: - - .data 0x002E2E6C # From 3OE1:80205840 - .deltaof p5_1s, p5_1e -p5_1s: - .binary E840010000 # call p5_3s -p5_1e: - .data 0x002E23E4 # From 3OE1:80205FE4 - .deltaof p5_2s, p5_2e -p5_2s: - .binary E8C80B0000 # call p5_3s -p5_2e: - .data 0x002E2FB1 - .deltaof p5_3s, p5_3e -p5_3s: - fld st0, dword [eax + 0x0C] - fadd st0, st0 - fstp dword [eax + 0x0C], st0 - mov eax, [0x0053D54C] - ret -p5_3e: - - .data 0x00494C30 # From 3OE1:805CFCD0 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x0042C940 # From 3OE1:805D0B7C - .data 0x00000004 - .data 0x437A0000 - - .data 0x00494DBC # From 3OE1:805D11A4 - .data 0x00000004 - .data 0x491C4000 - - .data 0x0042B0D8 # From 3OE1:805D2030 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x001D9BC6 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x001D9BD8 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.4OPD.patch.s b/system/client-functions/DrawDistance/DrawDistance.4OPD.patch.s deleted file mode 100644 index 9655ba90..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.4OPD.patch.s +++ /dev/null @@ -1,118 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x001737E2 # From 3OE1:80100B8C - .deltaof p1_1s, p1_1e -p1_1s: - .binary E87B020000 # call p1_2s - nop -p1_1e: - .data 0x00173A62 - .deltaof p1_2s, p1_2e -p1_2s: - fld st0, dword [esp + 0x1C] - fadd st0, st0 - fchs st0 - ret -p1_2e: - - .data 0x001A3E0F # From 3OE1:80156AD8 - .deltaof p2_1s, p2_1e -p2_1s: - .binary E844000000 # call p2_2s -p2_1e: - .data 0x001A3E58 - .deltaof p2_2s, p2_2e -p2_2s: - fld st0, dword [ecx + 0x1C] - fadd st0, st0 - fld st0, st1 - ret -p2_2e: - - .data 0x002D2DF8 # From 3OE1:801A2040 - .deltaof p3_1s, p3_1e -p3_1s: - .binary E8DA000000 # call p3_2s - nop -p3_1e: - .data 0x002D2ED7 - .deltaof p3_2s, p3_2e -p3_2s: - fld st0, dword [esp + 0x24] - fadd st0, st0 - fchs st0 - ret -p3_2e: - - .data 0x00156AE8 # From 3OE1:801A2240 - .deltaof p4_1s, p4_1e -p4_1s: - .binary E877010000 # call p4_2s - nop -p4_1e: - .data 0x00156C64 - .deltaof p4_2s, p4_2e -p4_2s: - fld st0, dword [esp + 0x28] - fadd st0, st0 - fchs st0 - ret -p4_2e: - - .data 0x002E2BC3 # From 3OE1:80205840 - .deltaof p5_1s, p5_1e -p5_1s: - .binary E8EA000000 # call p5_3s -p5_1e: - .data 0x002E2001 # From 3OE1:80205FE4 - .deltaof p5_2s, p5_2e -p5_2s: - .binary E8AC0C0000 # call p5_3s -p5_2e: - .data 0x002E2CB2 - .deltaof p5_3s, p5_3e -p5_3s: - fld st0, dword [eax + 0x0C] - fadd st0, st0 - fstp dword [eax + 0x0C], st0 - mov eax, [0x0053A9CC] - ret -p5_3e: - - .data 0x004920A8 # From 3OE1:805CFCD0 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x0042D0C0 # From 3OE1:805D0B7C - .data 0x00000004 - .data 0x437A0000 - - .data 0x00492234 # From 3OE1:805D11A4 - .data 0x00000004 - .data 0x491C4000 - - .data 0x0042B858 # From 3OE1:805D2030 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x001D9756 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x001D9768 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.4OPU.patch.s b/system/client-functions/DrawDistance/DrawDistance.4OPU.patch.s deleted file mode 100644 index 6c057ed7..00000000 --- a/system/client-functions/DrawDistance/DrawDistance.4OPU.patch.s +++ /dev/null @@ -1,118 +0,0 @@ -.meta name="Draw Distance" -.meta description="Extends the draw\ndistance of many\nobjects" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00173792 # From 3OE1:80100B8C - .deltaof p1_1s, p1_1e -p1_1s: - .binary E87B020000 # call p1_2s - nop -p1_1e: - .data 0x00173A12 - .deltaof p1_2s, p1_2e -p1_2s: - fld st0, dword [esp + 0x1C] - fadd st0, st0 - fchs st0 - ret -p1_2e: - - .data 0x001A3ECF # From 3OE1:80156AD8 - .deltaof p2_1s, p2_1e -p2_1s: - .binary E844000000 # call p2_2s -p2_1e: - .data 0x001A3F18 - .deltaof p2_2s, p2_2e -p2_2s: - fld st0, dword [ecx + 0x1C] - fadd st0, st0 - fld st0, st1 - ret -p2_2e: - - .data 0x002D31C8 # From 3OE1:801A2040 - .deltaof p3_1s, p3_1e -p3_1s: - .binary E8DA000000 # call p3_2s - nop -p3_1e: - .data 0x002D32A7 - .deltaof p3_2s, p3_2e -p3_2s: - fld st0, dword [esp + 0x24] - fadd st0, st0 - fchs st0 - ret -p3_2e: - - .data 0x002D3328 # From 3OE1:801A2240 - .deltaof p4_1s, p4_1e -p4_1s: - .binary E807010000 # call p4_2s - nop -p4_1e: - .data 0x002D3434 - .deltaof p4_2s, p4_2e -p4_2s: - fld st0, dword [esp + 0x28] - fadd st0, st0 - fchs st0 - ret -p4_2e: - - .data 0x002E2EBC # From 3OE1:80205840 - .deltaof p5_1s, p5_1e -p5_1s: - .binary E840010000 # call p5_3s -p5_1e: - .data 0x002E2434 # From 3OE1:80205FE4 - .deltaof p5_2s, p5_2e -p5_2s: - .binary E8C80B0000 # call p5_3s -p5_2e: - .data 0x002E3001 - .deltaof p5_3s, p5_3e -p5_3s: - fld st0, dword [eax + 0x0C] - fadd st0, st0 - fstp dword [eax + 0x0C], st0 - mov eax, [0x0053AD6C] - ret -p5_3e: - - .data 0x00492440 # From 3OE1:805CFCD0 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x0042D450 # From 3OE1:805D0B7C - .data 0x00000004 - .data 0x437A0000 - - .data 0x004925CC # From 3OE1:805D11A4 - .data 0x00000004 - .data 0x491C4000 - - .data 0x0042BBE8 # From 3OE1:805D2030 - .data 0x00000004 - .data 0x47AFC800 - - .data 0x001D98A6 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x001D98B8 # From 3OE1:805D25C0 - .data 0x00000004 - .data 0x44AF0000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/DrawDistance/DrawDistance.4___.patch.s b/system/client-functions/DrawDistance/DrawDistance.4___.patch.s new file mode 100644 index 00000000..82a08162 --- /dev/null +++ b/system/client-functions/DrawDistance/DrawDistance.4___.patch.s @@ -0,0 +1,120 @@ +.meta name="Draw Distance" +.meta description="Extends the draw\ndistance of many\nobjects" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 +# Xbox port by fuzziqersoftware + +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksXB + + .data # From 3OE1:80100B8C + .deltaof p1_1s, p1_1e +p1_1s: + .binary E87B020000 # call p1_2s + nop +p1_1e: + .data + .deltaof p1_2s, p1_2e +p1_2s: + fld st0, dword [esp + 0x1C] + fadd st0, st0 + fchs st0 + ret +p1_2e: + + .data # From 3OE1:80156AD8 + .deltaof p2_1s, p2_1e +p2_1s: + .binary E844000000 # call p2_2s +p2_1e: + .data + .deltaof p2_2s, p2_2e +p2_2s: + fld st0, dword [ecx + 0x1C] + fadd st0, st0 + fld st0, st1 + ret +p2_2e: + + .data # From 3OE1:801A2040 + .deltaof p3_1s, p3_1e +p3_1s: + .binary E8DA000000 # call p3_2s + nop +p3_1e: + .data + .deltaof p3_2s, p3_2e +p3_2s: + fld st0, dword [esp + 0x24] + fadd st0, st0 + fchs st0 + ret +p3_2e: + + .data # From 3OE1:801A2240 + .deltaof p4_1s, p4_1e +p4_1s: + .binary # call p4_2s + nop +p4_1e: + .data + .deltaof p4_2s, p4_2e +p4_2s: + fld st0, dword [esp + 0x28] + fadd st0, st0 + fchs st0 + ret +p4_2e: + + .data # From 3OE1:80205840 + .deltaof p5_1s, p5_1e +p5_1s: + .binary # call p5_3s +p5_1e: + .data # From 3OE1:80205FE4 + .deltaof p5_2s, p5_2e +p5_2s: + .binary # call p5_3s +p5_2e: + .data + .deltaof p5_3s, p5_3e +p5_3s: + fld st0, dword [eax + 0x0C] + fadd st0, st0 + fstp dword [eax + 0x0C], st0 + mov eax, [] + ret +p5_3e: + + .data # From 3OE1:805CFCD0 + .data 0x00000004 + .data 0x47AFC800 + + .data # From 3OE1:805D0B7C + .data 0x00000004 + .data 0x437A0000 + + .data # From 3OE1:805D11A4 + .data 0x00000004 + .data 0x491C4000 + + .data # From 3OE1:805D2030 + .data 0x00000004 + .data 0x47AFC800 + + .data # From 3OE1:805D25C0 + .data 0x00000004 + .data 0x44AF0000 + + .data # From 3OE1:805D25C0 + .data 0x00000004 + .data 0x44AF0000 + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/EnemyDamageSyncWIP/EnemyDamageSyncWIP.3___.patch.s b/system/client-functions/EnemyDamageSyncWIP/EnemyDamageSyncWIP.3___.patch.s new file mode 100644 index 00000000..55422ce3 --- /dev/null +++ b/system/client-functions/EnemyDamageSyncWIP/EnemyDamageSyncWIP.3___.patch.s @@ -0,0 +1,349 @@ +.meta hide_from_patches_menu +.meta name="DMC" +.meta description="Mitigates effects\nof enemy health\ndesync" + +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .label TObjectV8047c128_add_hp, + .label TObjectV8047c128_subtract_hp, + .label get_enemy_entity, + .label send_60, + .label send_and_handle_60, + + + + # Change class_flags check to read only low 16 bits + .data + .data 4 + lhz r0, [r28 + 0x2E6] + + + + # Replace 6x09 with 6xE4 in subcommand handler table + .data + .data 8 + .data 0x00E40006 # subcommand=0xE4, flags=6 + .data 0x800041C0 # on_6xE4 + + + + # Hooks in 6x0A handler + .data + .data 4 + .address + bl on_handle_6x0A_set_total_damage + .data + .data 4 + .address + bl on_handle_6x0A_call_object_update_handler + + + + # add_hp callsite in TObjectV8047c128_v17_accept_hit + .data + .data 4 + .address + bl on_TObjectV8047c128_add_hp + + + + # subtract_hp callsites in TObjectV8047c128_subtract_hp_if_in_state_2 + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + # subtract_hp callsites in TObjectV8047c128_v18_handle_hit_special_effects + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + # subtract_hp callsites in TObjectV8047c128_v17_accept_hit + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + # subtract_hp callsites in TObjectV8047c128_v16 + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp + + + + # subtract_hp callsites in TObjectV8047c128_v23_give_poison_damage + .data + .data 4 + .address + bl on_TObjectV8047c128_subtract_hp_without_sync + + + + .data 0x800041C0 + .deltaof code_start, code_end + .address 0x800041C0 +code_start: +on_6xE4: # (G_6xE4* cmd @ r3) -> void + mflr r0 + stw [r1 + 4], r0 + stwu [r1 - 0x20], r1 + stw [r1 + 8], r3 + + li r4, 2 + lhbrx r3, [r3 + r4] + bl get_enemy_entity + + cmplwi r3, 0 + beq on_6xE4_skip + + lwz r4, [r1 + 8] + li r5, 4 + lhbrx r6, [r4 + r5] + extsh r6, r6 + lhz r7, [r3 + 0x2E4] + add r6, r6, r7 + lhz r7, [r3 + 0x2B8] + cmp r6, r7 + bgt on_6xE4_use_r7 + li r7, 0 + cmp r6, r7 + blt on_6xE4_use_r7 + sth [r3 + 0x2E4], r6 + b on_6xE4_skip +on_6xE4_use_r7: + sth [r3 + 0x2E4], r7 + +on_6xE4_skip: + addi r1, r1, 0x20 + lwz r0, [r1 + 4] + mtlr r0 + blr + + + +on_handle_6x0A_set_total_damage: # (G_6x0A* cmd @ r30) -> int16_t @ r3 + # Nonstandard convention (patched callsite is not a call or return); must + # save and restore r0 + mflr r4 + stw [r1 + 0x04], r4 + stwu [r1 - 0x20], r1 + stw [r1 + 0x08], r0 + + lhz r3, [r30 + 2] + bl get_enemy_entity + + cmplwi r3, 0 + beq on_handle_6x0A_set_total_damage_not_loaded + + lhz r4, [r3 + 0x2E4] + lhz r5, [r3 + 0x2B8] + lhz r3, [r30 + 6] + cmp r3, r5 + bgt on_handle_6x0A_set_total_damage_use_r5 + cmp r3, r4 + blt on_handle_6x0A_set_total_damage_use_r4 + b on_handle_6x0A_set_total_damage_return +on_handle_6x0A_set_total_damage_use_r4: + mr r3, r4 + b on_handle_6x0A_set_total_damage_return +on_handle_6x0A_set_total_damage_use_r5: + mr r3, r5 + b on_handle_6x0A_set_total_damage_return + +on_handle_6x0A_set_total_damage_not_loaded: + lhz r3, [r30 + 6] + +on_handle_6x0A_set_total_damage_return: + lwz r0, [r1 + 0x08] + addi r1, r1, 0x20 + lwz r4, [r1 + 4] + mtlr r4 + blr + + + +on_handle_6x0A_call_object_update_handler: # (TObjectV8047c128* this @ r3, EnemyState* ene_st @ r4, void (*vfn)(TObjectV8047c128* this @ r3, EnemyState* ene_st @ r4) @ r12) -> void + mflr r0 + stw [r1 + 4], r0 + stwu [r1 - 0x20], r1 + stw [r1 + 0x08], r3 + stw [r1 + 0x0C], r4 + stw [r1 + 0x10], r12 + + lwz r5, [r3 + 0x30] + lwz r7, [r4] + or r5, r5, r7 + andi. r5, r5, 0x0800 + bne on_handle_6x0A_call_object_update_handler_return + lhz r5, [r4 + 6] + lhz r6, [r3 + 0x2B8] + cmp r5, r6 + blt on_handle_6x0A_call_object_update_handler_return + + ori r7, r7, 0x0800 + stw [r4], r7 + + lwz r11, [r13 - ] + cmplwi r11, 0 + beq on_handle_6x0A_call_object_update_handler_return + + addi r10, r1, 0x14 + li r9, 0x1C + lhbrx r5, [r3 + r9] + oris r5, r5, 0x0A03 + stw [r10], r5 + lhz r5, [r3 + 0x2C] + li r9, 4 + sthbrx [r10 + r9], r5 + lhz r5, [r4 + 6] + li r9, 6 + sthbrx [r10 + r9], r5 + lwz r5, [r4] + stw [r10 + 8], r5 + mr r3, r11 + mr r4, r10 + li r5, 0x0C + bl send_60 + +on_handle_6x0A_call_object_update_handler_return: + lwz r3, [r1 + 0x08] + lwz r4, [r1 + 0x0C] + lwz r12, [r1 + 0x10] + mtctr r12 + addi r1, r1, 0x20 + lwz r0, [r1 + 4] + mtlr r0 + bctr + + + +on_TObjectV8047c128_subtract_hp_without_sync: # (TObjectV8047c128* this @ r3, int16_t amount @ r4) + li r5, 2 + b on_TObjectV8047c128_hp_change +on_TObjectV8047c128_add_hp: # (TObjectV8047c128* this @ r3, int16_t amount @ r4) + li r5, 1 + b on_TObjectV8047c128_hp_change +on_TObjectV8047c128_subtract_hp: # (TObjectV8047c128* this @ r3, int16_t amount @ r4) + li r5, 0 + +on_TObjectV8047c128_hp_change: # (TObjectV8047c128* this @ r3, int16_t amount @ r4, uint8_t flags @ r5) + lhz r7, [r3 + 0x1C] + cmplwi r7, 0x1000 + blt on_TObjectV8047c128_hp_change_skip_send + cmplwi r7, 0x4000 + bge on_TObjectV8047c128_hp_change_skip_send + + mflr r0 + stw [r1 + 4], r0 + stwu [r1 - 0x20], r1 + stw [r1 + 0x08], r3 + stw [r1 + 0x0C], r4 + stw [r1 + 0x10], r5 + + mr r7, r3 + addi r3, r1, 0x10 + li r8, 0x1C + lhbrx r6, [r7 + r8] + oris r6, r6, 0xE403 + stw [r3], r6 # cmd.header + andi. r0, r5, 1 + beq on_TObjectV8047c128_hp_change_skip_negate + neg r4, r4 +on_TObjectV8047c128_hp_change_skip_negate: + li r8, 4 + sthbrx [r3 + r8], r4 # cmd.hit_amount + lhz r4, [r7 + 0x2E4] + li r8, 6 + sthbrx [r3 + r8], r4 # cmd.total_damage_before_hit + lhz r4, [r7 + 0x32C] + li r8, 8 + sthbrx [r3 + r8], r4 # cmd.current_hp_before_hit + lhz r4, [r7 + 0x2B8] + li r8, 0x0A + sthbrx [r3 + r8], r4 # cmd.max_hp + + andi. r0, r5, 2 + bne on_TObjectV8047c128_hp_change_local_only + bl send_and_handle_60 + b on_TObjectV8047c128_hp_change_send_done +on_TObjectV8047c128_hp_change_local_only: + bl on_6xE4 +on_TObjectV8047c128_hp_change_send_done: + + lwz r3, [r1 + 0x08] + lwz r4, [r1 + 0x0C] + lwz r5, [r1 + 0x10] + addi r1, r1, 0x20 + lwz r0, [r1 + 4] + mtlr r0 + +on_TObjectV8047c128_hp_change_skip_send: + andi. r0, r5, 1 + bne on_TObjectV8047c128_hp_change_b_to_add + b TObjectV8047c128_subtract_hp +on_TObjectV8047c128_hp_change_b_to_add: + b TObjectV8047c128_add_hp + + + +code_end: + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/EnemyDamageSyncWIP/EnemyDamageSyncWIP.59NL.patch.s b/system/client-functions/EnemyDamageSyncWIP/EnemyDamageSyncWIP.59NL.patch.s new file mode 100644 index 00000000..f6e0fa83 --- /dev/null +++ b/system/client-functions/EnemyDamageSyncWIP/EnemyDamageSyncWIP.59NL.patch.s @@ -0,0 +1,285 @@ +.meta hide_from_patches_menu +.meta name="DMC" +.meta description="Mitigates effects\nof enemy health\ndesync" + +entry_ptr: +reloc0: + .offsetof start + +write_call_to_code_multi: + .include WriteCallToCodeMulti-59NL +write_address_of_code: + .include WriteAddressOfCode-59NL + +start: + + # Change class_flags check to read only low 16 bits + # This is annoying since the opcode we need is one byte longer than the + # original, so we have to write a call to allocated code here, sigh + push 6 + push 0x00773448 + push 1 + call +4 + .deltaof class_flags_check_start, class_flags_check_end + pop eax + push dword [eax] + call class_flags_check_end +class_flags_check_start: + movzx eax, word [esi + 0x2E8] + ret +class_flags_check_end: + call write_call_to_code_multi + + + + # Replace 6x09 with 6xE4 in subcommand handler table + mov dword [0x00A0FC30], 0x000600E4 # subcommand=0xE4, flags=6 + push 0x00A0FC34 + call +4 + .deltaof on_6xE4_start, on_6xE4_end + pop eax + push dword [eax] + call on_6xE4_end +on_6xE4_start: # (G_6xE4* cmd @ [esp + 4]) + mov edx, [esp + 4] + movzx eax, word [edx + 2] + .include GetEnemyEntity-59NL # eax = get_enemy_entity(cmd->header.entity_id) + test eax, eax + je on_6xE4_no_entity + movzx ecx, word [eax + 0x2EA] + movzx edx, word [edx + 4] + add ecx, edx + xor edx, edx + cmp ecx, 0 + cmovl ecx, edx + movzx edx, word [eax + 0x2BC] + cmp ecx, edx + cmovg ecx, edx + mov [eax + 0x2EA], cx +on_6xE4_no_entity: + ret +on_6xE4_end: + call write_address_of_code + + + + # Write TObjectV00b441c0::add_hp_with_sync + push 5 + push 0x00774448 # TObjectV00b441c0::v18_accept_hit (presumably Resta) + push 1 + call +4 + .deltaof TObjectV00b441c0_add_hp_with_sync_start, TObjectV00b441c0_add_hp_with_sync_end + pop eax + push dword [eax] + call TObjectV00b441c0_add_hp_with_sync_end +TObjectV00b441c0_add_hp_with_sync_start: # (TObjectV00b441c0* this @ ecx, int16_t amount @ [esp + 4]) -> bool @ eax + mov ax, [ecx + 0x1C] + cmp ax, 0x1000 + jl TObjectV00b441c0_add_hp_with_sync_skip_send + cmp ax, 0x4000 + jge TObjectV00b441c0_add_hp_with_sync_skip_send + sub esp, 0x0C + mov word [esp], 0x03E4 + mov [esp + 0x02], ax # cmd.header.entity_id = this->entity_id + mov ax, [esp + 0x10] + neg ax + mov [esp + 0x04], ax # cmd.hit_amount = -amount + mov ax, [ecx + 0x2EA] + mov [esp + 0x06], ax # cmd.total_damage_before_hit = this->total_damage + mov ax, [ecx + 0x334] + mov [esp + 0x08], ax # cmd.current_hp_before_hit = this->current_hp + mov ax, [ecx + 0x2BC] + mov [esp + 0x0A], ax # cmd.max_hp = this->max_hp + push ecx + lea ecx, [esp + 4] + mov eax, 0x008003E0 + call eax # send_and_handle_60(void* data @ ecx) + pop ecx + add esp, 0x0C +TObjectV00b441c0_add_hp_with_sync_skip_send: + mov eax, 0x007773D4 # TObjectV00b441c0::add_hp + jmp eax +TObjectV00b441c0_add_hp_with_sync_end: + call write_call_to_code_multi + + + + # Write TObjectV00b441c0::subtract_hp_with_sync + push 5 + push 0x00777287 # TObjectV00b441c0::subtract_hp_if_in_state_2 + push 5 + push 0x00776CD6 # TObjectV00b441c0::v19_handle_hit_special_effects + push 5 + push 0x00776D4F # TObjectV00b441c0::v19_handle_hit_special_effects + push 5 + push 0x00776E20 # TObjectV00b441c0::v19_handle_hit_special_effects + push 5 + push 0x00776E99 # TObjectV00b441c0::v19_handle_hit_special_effects + push 5 + push 0x00775F51 # TObjectV00b441c0::v19_handle_hit_special_effects + push 5 + push 0x00775BE6 # TObjectV00b441c0::v19_handle_hit_special_effects + push 5 + push 0x00775A60 # TObjectV00b441c0::v19_handle_hit_special_effects + push 5 + push 0x00775726 # TObjectV00b441c0::v19_handle_hit_special_effects + push 5 + push 0x00774D7B # TObjectV00b441c0::v18_accept_hit + push 5 + push 0x00774C47 # TObjectV00b441c0::v18_accept_hit + push 5 + push 0x00774A14 # TObjectV00b441c0::v18_accept_hit + push 5 + push 0x0077482A # TObjectV00b441c0::v18_accept_hit + push 5 + push 0x007746E0 # TObjectV00b441c0::v18_accept_hit + push 5 + push 0x00774061 # TObjectV00b441c0::v18_accept_hit + push 5 + push 0x00773EFA # TObjectV00b441c0::v18_accept_hit + push 5 + push 0x00773937 # TObjectV00b441c0::v17 + push 17 + call +4 + .deltaof TObjectV00b441c0_subtract_hp_with_sync_start, TObjectV00b441c0_subtract_hp_with_sync_end + pop eax + push dword [eax] + call TObjectV00b441c0_subtract_hp_with_sync_end +TObjectV00b441c0_subtract_hp_with_sync_start: # (TObjectV00b441c0* this @ ecx, int16_t amount @ [esp + 4]) -> bool @ eax + mov ax, [ecx + 0x1C] + cmp ax, 0x1000 + jl TObjectV00b441c0_subtract_hp_with_sync_skip_send + cmp ax, 0x4000 + jge TObjectV00b441c0_subtract_hp_with_sync_skip_send + sub esp, 0x0C + mov word [esp], 0x03E4 + mov [esp + 0x02], ax # cmd.header.entity_id = this->entity_id + mov ax, [esp + 0x10] + mov [esp + 0x04], ax # cmd.hit_amount = amount + mov ax, [ecx + 0x2EA] + mov [esp + 0x06], ax # cmd.total_damage_before_hit = this->total_damage + mov ax, [ecx + 0x334] + mov [esp + 0x08], ax # cmd.current_hp_before_hit = this->current_hp + mov ax, [ecx + 0x2BC] + mov [esp + 0x0A], ax # cmd.max_hp = this->max_hp + push ecx + lea ecx, [esp + 4] + mov eax, 0x008003E0 + call eax # send_and_handle_60(void* data @ ecx) + pop ecx + add esp, 0x0C +TObjectV00b441c0_subtract_hp_with_sync_skip_send: + mov eax, 0x00777414 # TObjectV00b441c0::subtract_hp + jmp eax +TObjectV00b441c0_subtract_hp_with_sync_end: + call write_call_to_code_multi + + + + # Write TObjectV00b441c0::subtract_hp_without_sync + push 5 + push 0x00777CBD # TObjectV00b441c0::v25_give_poison_damage + push 1 + call +4 + .deltaof TObjectV00b441c0_subtract_hp_without_sync_start, TObjectV00b441c0_subtract_hp_without_sync_end + pop eax + push dword [eax] + call TObjectV00b441c0_subtract_hp_without_sync_end +TObjectV00b441c0_subtract_hp_without_sync_start: # (TObjectV00b441c0* this @ ecx, int16_t amount @ [esp + 4]) -> bool @ eax + movzx edx, word [ecx + 0x2EA] + movsx eax, word [esp + 2] + add edx, eax + movzx eax, word [ecx + 0x2BC] + cmp edx, eax + cmovg edx, eax + mov [ecx + 0x2EA], dx + mov eax, 0x00777414 # TObjectV00b441c0::subtract_hp + jmp eax +TObjectV00b441c0_subtract_hp_without_sync_end: + call write_call_to_code_multi + + + + # Write handle_6x0A_update_total_damage_hook + push 5 + push 0x0078781F + push 1 + call +4 + .deltaof handle_6x0A_update_total_damage_hook_start, handle_6x0A_update_total_damage_hook_end + pop eax + push dword [eax] + call handle_6x0A_update_total_damage_hook_end +handle_6x0A_update_total_damage_hook_start: # (G_6x0A* cmd @ eax, int16_t cmd_total_damage @ cx) -> void + # Nonstandard calling convention: + # Caller-save: ecx, ebx + # Callee-save: eax, edx, ebp, esi, edi + push eax + movzx eax, word [eax + 2] + .include GetEnemyEntity-59NL # eax = get_enemy_entity(cmd->header.entity_id) + test eax, eax + jz handle_6x0A_update_total_damage_hook_no_entity + mov ebx, [eax + 0x2EA] + cmp ecx, ebx + cmovl ecx, ebx + mov ebx, [eax + 0x2BC] + cmp ecx, ebx + cmovg ecx, ebx +handle_6x0A_update_total_damage_hook_no_entity: + mov [esp + 0x0E], cx # ene_st.total_damage = cx + pop eax + ret +handle_6x0A_update_total_damage_hook_end: + call write_call_to_code_multi + + + + # Write handle_6x0A_call_object_update_vfn + push 6 + push 0x007878CC + push 1 + call +4 + .deltaof handle_6x0A_call_object_update_vfn_start, handle_6x0A_call_object_update_vfn_end + pop eax + push dword [eax] + call handle_6x0A_call_object_update_vfn_end +handle_6x0A_call_object_update_vfn_start: # (TObjectV00b441c0* this @ ecx, EnemyState* ene_st @ [esp + 4]) -> void + # Standard calling conventions + push dword [edx + 0x148] # vfn to call at end (which we do via ret) + push ecx + test dword [ecx + 0x30], 0x800 # this->game_flags & 0x800 + jnz handle_6x0A_call_object_update_vfn_tail_call + mov edx, [esp + 0x0C] + test dword [edx], 0x800 # ene_st->flags & 0x800 + jnz handle_6x0A_call_object_update_vfn_tail_call + mov ax, [edx + 6] + cmp ax, [ecx + 0x2BC] # ene_st->total_damage >= ene->max_hp + jl handle_6x0A_call_object_update_vfn_tail_call + or dword [edx], 0x800 # ene_st->game_flags |= 0x800 (set dead flag) + mov eax, [0x00AAB284] + test eax, eax + jz handle_6x0A_call_object_update_vfn_tail_call + push dword [edx] # cmd.game_flags = ene_st->game_flags + sub esp, 8 + mov ax, [edx + 6] + mov [esp + 0x06], ax # cmd.total_damage = ene_st->total_damage + mov ax, [ecx + 0x2C] + mov [esp + 0x04], ax # cmd.enemy_index = this->enemy_index + mov ax, [ecx + 0x1C] + mov [esp + 0x02], ax # cmd.header.entity_id = this->entity_id + mov word [esp], 0x030A # cmd.header.subommand = 0x0A, cmd.header.size = 0x03 + push 0x0C + lea ecx, [esp + 4] + push ecx + mov ecx, [0x00AAB284] + mov eax, 0x007D3F38 + call eax # send_60(TGameProtocol* this @ ecx, void* data @ [esp + 4], uint32_t size @ [esp + 8]) + add esp, 0x0C +handle_6x0A_call_object_update_vfn_tail_call: + pop ecx + ret +handle_6x0A_call_object_update_vfn_end: + call write_call_to_code_multi + + + + ret diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars-TextHandlerXB.x86.inc.s b/system/client-functions/EnemyHPBars/EnemyHPBars-TextHandlerXB.x86.inc.s deleted file mode 100644 index 02bfd097..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars-TextHandlerXB.x86.inc.s +++ /dev/null @@ -1,34 +0,0 @@ -# WARNING: FlickeringStatusIcons patch starts immediately after this; if the -# size of this is changed, that patch will have to be changed too - - # Replacement for handle_0E (do nothing) - ret - - # Call table: 2 functions (on_window_created, on_hp_updated) - jmp on_window_created - -on_hp_updated: - call rewrite_string - movsx ecx, word [ebp + 0x02BC] # Replaced opcode at callsite - ret - -on_window_created: - mov [0x00010C08], eax # prev_desc - push ebp - mov ebp, ebx - call rewrite_string - pop ebp - mov dword [esp + 4], 0x00010C1C # Change first argument to desc_buf - jmp [0x00010C04] # Call original function - -rewrite_string: - movsx eax, word [ebp + 0x02BC] # max HP - push eax - movsx eax, word [ebp + 0x0330] # current HP - push eax - push dword [0x00010C08] # prev_desc - push 0x00010C0C # desc_template - push 0x00010C1C # desc_buf - call [0x00010C00] # sprintf - add esp, 0x14 - ret diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3OE0.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3OE0.patch.s deleted file mode 100644 index 533b3993..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.3OE0.patch.s +++ /dev/null @@ -1,94 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B650 (108 bytes) - .data 0x8000B650 # address - .data 0x0000006C # size - .data 0x3CA08001 # 8000B650 => lis r5, 0x8001 - .data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944] - .data 0x7FFEFB78 # 8000B658 => mr r30, r31 - .data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C] - .data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */ - .data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8] - .data 0x3CA08001 # 8000B668 => lis r5, 0x8001 - .data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3 - .data 0x7C0802A6 # 8000B670 => mflr r0 - .data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0 - .data 0x7C651B78 # 8000B678 => mr r5, r3 - .data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8] - .data 0x3C808000 # 8000B680 => lis r4, 0x8000 - .data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC - .data 0x38640018 # 8000B688 => addi r3, r4, 0x0018 - .data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6 - .data 0x4838BB3D # 8000B690 => bl +0x0038BB3C /* 803971CC */ - .data 0x3C808000 # 8000B694 => lis r4, 0x8000 - .data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4 - .data 0x7F83E378 # 8000B69C => mr r3, r28 - .data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004] - .data 0x7C0803A6 # 8000B6A4 => mtlr r0 - .data 0x4E800020 # 8000B6A8 => blr - .data 0x25730A0A # 8000B6AC => .invalid - .data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */ - .data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564 - .data 0x00000000 # 8000B6B8 => .invalid - # region @ 80261B38 (4 bytes) - .data 0x80261B38 # address - .data 0x00000004 # size - .data 0x4BDA9B19 # 80261B38 => bl -0x002564E8 /* 8000B650 */ - # region @ 80261B9C (4 bytes) - .data 0x80261B9C # address - .data 0x00000004 # size - .data 0x4BFE1545 # 80261B9C => bl -0x0001EABC /* 802430E0 */ - # region @ 80261CF8 (4 bytes) - .data 0x80261CF8 # address - .data 0x00000004 # size - .data 0x4BDA996D # 80261CF8 => bl -0x00256694 /* 8000B664 */ - # region @ 804CB610 (4 bytes) - .data 0x804CB610 # address - .data 0x00000004 # size - .data 0x42960000 # 804CB610 => bc 20, 22, +0x00000000 /* 804CB610 */ - # region @ 804CB61C (4 bytes) - .data 0x804CB61C # address - .data 0x00000004 # size - .data 0x42960000 # 804CB61C => bc 20, 22, +0x00000000 /* 804CB61C */ - # region @ 804CB628 (4 bytes) - .data 0x804CB628 # address - .data 0x00000004 # size - .data 0x42960000 # 804CB628 => bc 20, 22, +0x00000000 /* 804CB628 */ - # region @ 804CB634 (4 bytes) - .data 0x804CB634 # address - .data 0x00000004 # size - .data 0x42960000 # 804CB634 => bc 20, 22, +0x00000000 /* 804CB634 */ - # region @ 804CB640 (4 bytes) - .data 0x804CB640 # address - .data 0x00000004 # size - .data 0x42960000 # 804CB640 => bc 20, 22, +0x00000000 /* 804CB640 */ - .data 0x804CB670 - .data 0x00000004 - .data 0x42960000 - .data 0x804CB6A0 - .data 0x00000004 - .data 0x42960000 - # region @ 804CB6D0 (4 bytes) - .data 0x804CB6D0 # address - .data 0x00000004 # size - .data 0x42780000 # 804CB6D0 => bc 19, 24, +0x00000000 /* 804CB6D0 */ - # region @ 804CB6EC (4 bytes) - .data 0x804CB6EC # address - .data 0x00000004 # size - .data 0xFF00FF15 # 804CB6EC => .invalid FC, 0 - # region @ 805CC8C4 (4 bytes) - .data 0x805CC8C4 # address - .data 0x00000004 # size - .data 0x42C00000 # 805CC8C4 => b +0x00000000 /* 805CC8C4 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3OE1.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3OE1.patch.s deleted file mode 100644 index df480f54..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.3OE1.patch.s +++ /dev/null @@ -1,94 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B650 (108 bytes) - .data 0x8000B650 # address - .data 0x0000006C # size - .data 0x3CA08001 # 8000B650 => lis r5, 0x8001 - .data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944] - .data 0x7FFEFB78 # 8000B658 => mr r30, r31 - .data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C] - .data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */ - .data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8] - .data 0x3CA08001 # 8000B668 => lis r5, 0x8001 - .data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3 - .data 0x7C0802A6 # 8000B670 => mflr r0 - .data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0 - .data 0x7C651B78 # 8000B678 => mr r5, r3 - .data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8] - .data 0x3C808000 # 8000B680 => lis r4, 0x8000 - .data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC - .data 0x38640018 # 8000B688 => addi r3, r4, 0x0018 - .data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6 - .data 0x4838BB95 # 8000B690 => bl +0x0038BB94 /* 80397224 */ - .data 0x3C808000 # 8000B694 => lis r4, 0x8000 - .data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4 - .data 0x7F83E378 # 8000B69C => mr r3, r28 - .data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004] - .data 0x7C0803A6 # 8000B6A4 => mtlr r0 - .data 0x4E800020 # 8000B6A8 => blr - .data 0x25730A0A # 8000B6AC => .invalid - .data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */ - .data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564 - .data 0x00000000 # 8000B6B8 => .invalid - # region @ 80261B38 (4 bytes) - .data 0x80261B38 # address - .data 0x00000004 # size - .data 0x4BDA9B19 # 80261B38 => bl -0x002564E8 /* 8000B650 */ - # region @ 80261B9C (4 bytes) - .data 0x80261B9C # address - .data 0x00000004 # size - .data 0x4BFE1545 # 80261B9C => bl -0x0001EABC /* 802430E0 */ - # region @ 80261CF8 (4 bytes) - .data 0x80261CF8 # address - .data 0x00000004 # size - .data 0x4BDA996D # 80261CF8 => bl -0x00256694 /* 8000B664 */ - # region @ 804CBAF0 (4 bytes) - .data 0x804CBAF0 # address - .data 0x00000004 # size - .data 0x42960000 # 804CBAF0 => bc 20, 22, +0x00000000 /* 804CBAF0 */ - # region @ 804CBAFC (4 bytes) - .data 0x804CBAFC # address - .data 0x00000004 # size - .data 0x42960000 # 804CBAFC => bc 20, 22, +0x00000000 /* 804CBAFC */ - # region @ 804CBB08 (4 bytes) - .data 0x804CBB08 # address - .data 0x00000004 # size - .data 0x42960000 # 804CBB08 => bc 20, 22, +0x00000000 /* 804CBB08 */ - # region @ 804CBB14 (4 bytes) - .data 0x804CBB14 # address - .data 0x00000004 # size - .data 0x42960000 # 804CBB14 => bc 20, 22, +0x00000000 /* 804CBB14 */ - # region @ 804CBB20 (4 bytes) - .data 0x804CBB20 # address - .data 0x00000004 # size - .data 0x42960000 # 804CBB20 => bc 20, 22, +0x00000000 /* 804CBB20 */ - .data 0x804CBB50 - .data 0x00000004 - .data 0x42960000 - .data 0x804CBB80 - .data 0x00000004 - .data 0x42960000 - # region @ 804CBBB0 (4 bytes) - .data 0x804CBBB0 # address - .data 0x00000004 # size - .data 0x42780000 # 804CBBB0 => bc 19, 24, +0x00000000 /* 804CBBB0 */ - # region @ 804CBBCC (4 bytes) - .data 0x804CBBCC # address - .data 0x00000004 # size - .data 0xFF00FF15 # 804CBBCC => .invalid FC, 0 - # region @ 805D38E4 (4 bytes) - .data 0x805D38E4 # address - .data 0x00000004 # size - .data 0x42C00000 # 805D38E4 => b +0x00000000 /* 805D38E4 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3OE2.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3OE2.patch.s deleted file mode 100644 index e3055c26..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.3OE2.patch.s +++ /dev/null @@ -1,94 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B650 (108 bytes) - .data 0x8000B650 # address - .data 0x0000006C # size - .data 0x3CA08001 # 8000B650 => lis r5, 0x8001 - .data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944] - .data 0x7FFEFB78 # 8000B658 => mr r30, r31 - .data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C] - .data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */ - .data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8] - .data 0x3CA08001 # 8000B668 => lis r5, 0x8001 - .data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3 - .data 0x7C0802A6 # 8000B670 => mflr r0 - .data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0 - .data 0x7C651B78 # 8000B678 => mr r5, r3 - .data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8] - .data 0x3C808000 # 8000B680 => lis r4, 0x8000 - .data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC - .data 0x38640018 # 8000B688 => addi r3, r4, 0x0018 - .data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6 - .data 0x4838F295 # 8000B690 => bl +0x0038F294 /* 8039A924 */ - .data 0x3C808000 # 8000B694 => lis r4, 0x8000 - .data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4 - .data 0x7F83E378 # 8000B69C => mr r3, r28 - .data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004] - .data 0x7C0803A6 # 8000B6A4 => mtlr r0 - .data 0x4E800020 # 8000B6A8 => blr - .data 0x25730A0A # 8000B6AC => .invalid - .data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */ - .data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564 - .data 0x00000000 # 8000B6B8 => .invalid - # region @ 80262EF8 (4 bytes) - .data 0x80262EF8 # address - .data 0x00000004 # size - .data 0x4BDA8759 # 80262EF8 => bl -0x002578A8 /* 8000B650 */ - # region @ 80262F5C (4 bytes) - .data 0x80262F5C # address - .data 0x00000004 # size - .data 0x4BFE12B1 # 80262F5C => bl -0x0001ED50 /* 8024420C */ - # region @ 802630B8 (4 bytes) - .data 0x802630B8 # address - .data 0x00000004 # size - .data 0x4BDA85AD # 802630B8 => bl -0x00257A54 /* 8000B664 */ - # region @ 804D0158 (4 bytes) - .data 0x804D0158 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0158 => bc 20, 22, +0x00000000 /* 804D0158 */ - # region @ 804D0164 (4 bytes) - .data 0x804D0164 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0164 => bc 20, 22, +0x00000000 /* 804D0164 */ - # region @ 804D0170 (4 bytes) - .data 0x804D0170 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0170 => bc 20, 22, +0x00000000 /* 804D0170 */ - # region @ 804D017C (4 bytes) - .data 0x804D017C # address - .data 0x00000004 # size - .data 0x42960000 # 804D017C => bc 20, 22, +0x00000000 /* 804D017C */ - # region @ 804D0188 (4 bytes) - .data 0x804D0188 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0188 => bc 20, 22, +0x00000000 /* 804D0188 */ - .data 0x804D01B8 - .data 0x00000004 - .data 0x42960000 - .data 0x804D01E8 - .data 0x00000004 - .data 0x42960000 - # region @ 804D0218 (4 bytes) - .data 0x804D0218 # address - .data 0x00000004 # size - .data 0x42780000 # 804D0218 => bc 19, 24, +0x00000000 /* 804D0218 */ - # region @ 804D0234 (4 bytes) - .data 0x804D0234 # address - .data 0x00000004 # size - .data 0xFF00FF15 # 804D0234 => .invalid FC, 0 - # region @ 805DD104 (4 bytes) - .data 0x805DD104 # address - .data 0x00000004 # size - .data 0x42C00000 # 805DD104 => b +0x00000000 /* 805DD104 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ2.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ2.patch.s deleted file mode 100644 index 5a2956f9..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ2.patch.s +++ /dev/null @@ -1,94 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B650 (108 bytes) - .data 0x8000B650 # address - .data 0x0000006C # size - .data 0x3CA08001 # 8000B650 => lis r5, 0x8001 - .data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944] - .data 0x7FFEFB78 # 8000B658 => mr r30, r31 - .data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C] - .data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */ - .data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8] - .data 0x3CA08001 # 8000B668 => lis r5, 0x8001 - .data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3 - .data 0x7C0802A6 # 8000B670 => mflr r0 - .data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0 - .data 0x7C651B78 # 8000B678 => mr r5, r3 - .data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8] - .data 0x3C808000 # 8000B680 => lis r4, 0x8000 - .data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC - .data 0x38640018 # 8000B688 => addi r3, r4, 0x0018 - .data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6 - .data 0x4838A86D # 8000B690 => bl +0x0038A86C /* 80395EFC */ - .data 0x3C808000 # 8000B694 => lis r4, 0x8000 - .data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4 - .data 0x7F83E378 # 8000B69C => mr r3, r28 - .data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004] - .data 0x7C0803A6 # 8000B6A4 => mtlr r0 - .data 0x4E800020 # 8000B6A8 => blr - .data 0x25730A0A # 8000B6AC => .invalid - .data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */ - .data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564 - .data 0x00000000 # 8000B6B8 => .invalid - # region @ 80261260 (4 bytes) - .data 0x80261260 # address - .data 0x00000004 # size - .data 0x4BDAA3F1 # 80261260 => bl -0x00255C10 /* 8000B650 */ - # region @ 802612C4 (4 bytes) - .data 0x802612C4 # address - .data 0x00000004 # size - .data 0x4BFE1541 # 802612C4 => bl -0x0001EAC0 /* 80242804 */ - # region @ 80261420 (4 bytes) - .data 0x80261420 # address - .data 0x00000004 # size - .data 0x4BDAA245 # 80261420 => bl -0x00255DBC /* 8000B664 */ - # region @ 804CAE40 (4 bytes) - .data 0x804CAE40 # address - .data 0x00000004 # size - .data 0x42960000 # 804CAE40 => bc 20, 22, +0x00000000 /* 804CAE40 */ - # region @ 804CAE4C (4 bytes) - .data 0x804CAE4C # address - .data 0x00000004 # size - .data 0x42960000 # 804CAE4C => bc 20, 22, +0x00000000 /* 804CAE4C */ - # region @ 804CAE58 (4 bytes) - .data 0x804CAE58 # address - .data 0x00000004 # size - .data 0x42960000 # 804CAE58 => bc 20, 22, +0x00000000 /* 804CAE58 */ - # region @ 804CAE64 (4 bytes) - .data 0x804CAE64 # address - .data 0x00000004 # size - .data 0x42960000 # 804CAE64 => bc 20, 22, +0x00000000 /* 804CAE64 */ - # region @ 804CAE70 (4 bytes) - .data 0x804CAE70 # address - .data 0x00000004 # size - .data 0x42960000 # 804CAE70 => bc 20, 22, +0x00000000 /* 804CAE70 */ - .data 0x804CAEA0 - .data 0x00000004 - .data 0x42960000 - .data 0x804CAED0 - .data 0x00000004 - .data 0x42960000 - # region @ 804CAF00 (4 bytes) - .data 0x804CAF00 # address - .data 0x00000004 # size - .data 0x42780000 # 804CAF00 => bc 19, 24, +0x00000000 /* 804CAF00 */ - # region @ 804CAF1C (4 bytes) - .data 0x804CAF1C # address - .data 0x00000004 # size - .data 0xFF00FF15 # 804CAF1C => .invalid FC, 0 - # region @ 805CBFBC (4 bytes) - .data 0x805CBFBC # address - .data 0x00000004 # size - .data 0x42C00000 # 805CBFBC => b +0x00000000 /* 805CBFBC */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ3.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ3.patch.s deleted file mode 100644 index 4dd9528b..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ3.patch.s +++ /dev/null @@ -1,94 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B650 (108 bytes) - .data 0x8000B650 # address - .data 0x0000006C # size - .data 0x3CA08001 # 8000B650 => lis r5, 0x8001 - .data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944] - .data 0x7FFEFB78 # 8000B658 => mr r30, r31 - .data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C] - .data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */ - .data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8] - .data 0x3CA08001 # 8000B668 => lis r5, 0x8001 - .data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3 - .data 0x7C0802A6 # 8000B670 => mflr r0 - .data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0 - .data 0x7C651B78 # 8000B678 => mr r5, r3 - .data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8] - .data 0x3C808000 # 8000B680 => lis r4, 0x8000 - .data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC - .data 0x38640018 # 8000B688 => addi r3, r4, 0x0018 - .data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6 - .data 0x4838D275 # 8000B690 => bl +0x0038D274 /* 80398904 */ - .data 0x3C808000 # 8000B694 => lis r4, 0x8000 - .data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4 - .data 0x7F83E378 # 8000B69C => mr r3, r28 - .data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004] - .data 0x7C0803A6 # 8000B6A4 => mtlr r0 - .data 0x4E800020 # 8000B6A8 => blr - .data 0x25730A0A # 8000B6AC => .invalid - .data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */ - .data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564 - .data 0x00000000 # 8000B6B8 => .invalid - # region @ 80261E38 (4 bytes) - .data 0x80261E38 # address - .data 0x00000004 # size - .data 0x4BDA9819 # 80261E38 => bl -0x002567E8 /* 8000B650 */ - # region @ 80261E9C (4 bytes) - .data 0x80261E9C # address - .data 0x00000004 # size - .data 0x4BFE1349 # 80261E9C => bl -0x0001ECB8 /* 802431E4 */ - # region @ 80261FF8 (4 bytes) - .data 0x80261FF8 # address - .data 0x00000004 # size - .data 0x4BDA966D # 80261FF8 => bl -0x00256994 /* 8000B664 */ - # region @ 804CE590 (4 bytes) - .data 0x804CE590 # address - .data 0x00000004 # size - .data 0x42960000 # 804CE590 => bc 20, 22, +0x00000000 /* 804CE590 */ - # region @ 804CE59C (4 bytes) - .data 0x804CE59C # address - .data 0x00000004 # size - .data 0x42960000 # 804CE59C => bc 20, 22, +0x00000000 /* 804CE59C */ - # region @ 804CE5A8 (4 bytes) - .data 0x804CE5A8 # address - .data 0x00000004 # size - .data 0x42960000 # 804CE5A8 => bc 20, 22, +0x00000000 /* 804CE5A8 */ - # region @ 804CE5B4 (4 bytes) - .data 0x804CE5B4 # address - .data 0x00000004 # size - .data 0x42960000 # 804CE5B4 => bc 20, 22, +0x00000000 /* 804CE5B4 */ - # region @ 804CE5C0 (4 bytes) - .data 0x804CE5C0 # address - .data 0x00000004 # size - .data 0x42960000 # 804CE5C0 => bc 20, 22, +0x00000000 /* 804CE5C0 */ - .data 0x804CE5F0 - .data 0x00000004 - .data 0x42960000 - .data 0x804CE620 - .data 0x00000004 - .data 0x42960000 - # region @ 804CE650 (4 bytes) - .data 0x804CE650 # address - .data 0x00000004 # size - .data 0x42780000 # 804CE650 => bc 19, 24, +0x00000000 /* 804CE650 */ - # region @ 804CE66C (4 bytes) - .data 0x804CE66C # address - .data 0x00000004 # size - .data 0xFF00FF15 # 804CE66C => .invalid FC, 0 - # region @ 805D65BC (4 bytes) - .data 0x805D65BC # address - .data 0x00000004 # size - .data 0x42C00000 # 805D65BC => b +0x00000000 /* 805D65BC */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ4.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ4.patch.s deleted file mode 100644 index 84546315..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ4.patch.s +++ /dev/null @@ -1,94 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B650 (108 bytes) - .data 0x8000B650 # address - .data 0x0000006C # size - .data 0x3CA08001 # 8000B650 => lis r5, 0x8001 - .data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944] - .data 0x7FFEFB78 # 8000B658 => mr r30, r31 - .data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C] - .data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */ - .data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8] - .data 0x3CA08001 # 8000B668 => lis r5, 0x8001 - .data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3 - .data 0x7C0802A6 # 8000B670 => mflr r0 - .data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0 - .data 0x7C651B78 # 8000B678 => mr r5, r3 - .data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8] - .data 0x3C808000 # 8000B680 => lis r4, 0x8000 - .data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC - .data 0x38640018 # 8000B688 => addi r3, r4, 0x0018 - .data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6 - .data 0x4838F115 # 8000B690 => bl +0x0038F114 /* 8039A7A4 */ - .data 0x3C808000 # 8000B694 => lis r4, 0x8000 - .data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4 - .data 0x7F83E378 # 8000B69C => mr r3, r28 - .data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004] - .data 0x7C0803A6 # 8000B6A4 => mtlr r0 - .data 0x4E800020 # 8000B6A8 => blr - .data 0x25730A0A # 8000B6AC => .invalid - .data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */ - .data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564 - .data 0x00000000 # 8000B6B8 => .invalid - # region @ 80262E80 (4 bytes) - .data 0x80262E80 # address - .data 0x00000004 # size - .data 0x4BDA87D1 # 80262E80 => bl -0x00257830 /* 8000B650 */ - # region @ 80262EE4 (4 bytes) - .data 0x80262EE4 # address - .data 0x00000004 # size - .data 0x4BFE0665 # 80262EE4 => bl -0x0001F99C /* 80243548 */ - # region @ 80263040 (4 bytes) - .data 0x80263040 # address - .data 0x00000004 # size - .data 0x4BDA8625 # 80263040 => bl -0x002579DC /* 8000B664 */ - # region @ 804D0AE0 (4 bytes) - .data 0x804D0AE0 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0AE0 => bc 20, 22, +0x00000000 /* 804D0AE0 */ - # region @ 804D0AEC (4 bytes) - .data 0x804D0AEC # address - .data 0x00000004 # size - .data 0x42960000 # 804D0AEC => bc 20, 22, +0x00000000 /* 804D0AEC */ - # region @ 804D0AF8 (4 bytes) - .data 0x804D0AF8 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0AF8 => bc 20, 22, +0x00000000 /* 804D0AF8 */ - # region @ 804D0B04 (4 bytes) - .data 0x804D0B04 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0B04 => bc 20, 22, +0x00000000 /* 804D0B04 */ - # region @ 804D0B10 (4 bytes) - .data 0x804D0B10 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0B10 => bc 20, 22, +0x00000000 /* 804D0B10 */ - .data 0x804D0B40 - .data 0x00000004 - .data 0x42960000 - .data 0x804D0B70 - .data 0x00000004 - .data 0x42960000 - # region @ 804D0BA0 (4 bytes) - .data 0x804D0BA0 # address - .data 0x00000004 # size - .data 0x42780000 # 804D0BA0 => bc 19, 24, +0x00000000 /* 804D0BA0 */ - # region @ 804D0BBC (4 bytes) - .data 0x804D0BBC # address - .data 0x00000004 # size - .data 0xFF00FF15 # 804D0BBC => .invalid FC, 0 - # region @ 805DDA5C (4 bytes) - .data 0x805DDA5C # address - .data 0x00000004 # size - .data 0x42C00000 # 805DDA5C => b +0x00000000 /* 805DDA5C */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ5.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ5.patch.s deleted file mode 100644 index 99f3193b..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.3OJ5.patch.s +++ /dev/null @@ -1,94 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B650 (108 bytes) - .data 0x8000B650 # address - .data 0x0000006C # size - .data 0x3CA08001 # 8000B650 => lis r5, 0x8001 - .data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944] - .data 0x7FFEFB78 # 8000B658 => mr r30, r31 - .data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C] - .data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */ - .data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8] - .data 0x3CA08001 # 8000B668 => lis r5, 0x8001 - .data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3 - .data 0x7C0802A6 # 8000B670 => mflr r0 - .data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0 - .data 0x7C651B78 # 8000B678 => mr r5, r3 - .data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8] - .data 0x3C808000 # 8000B680 => lis r4, 0x8000 - .data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC - .data 0x38640018 # 8000B688 => addi r3, r4, 0x0018 - .data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6 - .data 0x4838EEC5 # 8000B690 => bl +0x0038EEC4 /* 8039A554 */ - .data 0x3C808000 # 8000B694 => lis r4, 0x8000 - .data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4 - .data 0x7F83E378 # 8000B69C => mr r3, r28 - .data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004] - .data 0x7C0803A6 # 8000B6A4 => mtlr r0 - .data 0x4E800020 # 8000B6A8 => blr - .data 0x25730A0A # 8000B6AC => .invalid - .data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */ - .data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564 - .data 0x00000000 # 8000B6B8 => .invalid - # region @ 80262C34 (4 bytes) - .data 0x80262C34 # address - .data 0x00000004 # size - .data 0x4BDA8A1D # 80262C34 => bl -0x002575E4 /* 8000B650 */ - # region @ 80262C98 (4 bytes) - .data 0x80262C98 # address - .data 0x00000004 # size - .data 0x4BFE1241 # 80262C98 => bl -0x0001EDC0 /* 80243ED8 */ - # region @ 80262DF4 (4 bytes) - .data 0x80262DF4 # address - .data 0x00000004 # size - .data 0x4BDA8871 # 80262DF4 => bl -0x00257790 /* 8000B664 */ - # region @ 804D0880 (4 bytes) - .data 0x804D0880 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0880 => bc 20, 22, +0x00000000 /* 804D0880 */ - # region @ 804D088C (4 bytes) - .data 0x804D088C # address - .data 0x00000004 # size - .data 0x42960000 # 804D088C => bc 20, 22, +0x00000000 /* 804D088C */ - # region @ 804D0898 (4 bytes) - .data 0x804D0898 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0898 => bc 20, 22, +0x00000000 /* 804D0898 */ - # region @ 804D08A4 (4 bytes) - .data 0x804D08A4 # address - .data 0x00000004 # size - .data 0x42960000 # 804D08A4 => bc 20, 22, +0x00000000 /* 804D08A4 */ - # region @ 804D08B0 (4 bytes) - .data 0x804D08B0 # address - .data 0x00000004 # size - .data 0x42960000 # 804D08B0 => bc 20, 22, +0x00000000 /* 804D08B0 */ - .data 0x804D08E0 - .data 0x00000004 - .data 0x42960000 - .data 0x804D0910 - .data 0x00000004 - .data 0x42960000 - # region @ 804D0940 (4 bytes) - .data 0x804D0940 # address - .data 0x00000004 # size - .data 0x42780000 # 804D0940 => bc 19, 24, +0x00000000 /* 804D0940 */ - # region @ 804D095C (4 bytes) - .data 0x804D095C # address - .data 0x00000004 # size - .data 0xFF00FF15 # 804D095C => .invalid FC, 0 - # region @ 805DD7FC (4 bytes) - .data 0x805DD7FC # address - .data 0x00000004 # size - .data 0x42C00000 # 805DD7FC => b +0x00000000 /* 805DD7FC */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3OP0.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3OP0.patch.s deleted file mode 100644 index b4f70477..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.3OP0.patch.s +++ /dev/null @@ -1,94 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000B650 (108 bytes) - .data 0x8000B650 # address - .data 0x0000006C # size - .data 0x3CA08001 # 8000B650 => lis r5, 0x8001 - .data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944] - .data 0x7FFEFB78 # 8000B658 => mr r30, r31 - .data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C] - .data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */ - .data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8] - .data 0x3CA08001 # 8000B668 => lis r5, 0x8001 - .data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3 - .data 0x7C0802A6 # 8000B670 => mflr r0 - .data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0 - .data 0x7C651B78 # 8000B678 => mr r5, r3 - .data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8] - .data 0x3C808000 # 8000B680 => lis r4, 0x8000 - .data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC - .data 0x38640018 # 8000B688 => addi r3, r4, 0x0018 - .data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6 - .data 0x4838DD85 # 8000B690 => bl +0x0038DD84 /* 80399414 */ - .data 0x3C808000 # 8000B694 => lis r4, 0x8000 - .data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4 - .data 0x7F83E378 # 8000B69C => mr r3, r28 - .data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004] - .data 0x7C0803A6 # 8000B6A4 => mtlr r0 - .data 0x4E800020 # 8000B6A8 => blr - .data 0x25730A0A # 8000B6AC => .invalid - .data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */ - .data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564 - .data 0x00000000 # 8000B6B8 => .invalid - # region @ 80262740 (4 bytes) - .data 0x80262740 # address - .data 0x00000004 # size - .data 0x4BDA8F11 # 80262740 => bl -0x002570F0 /* 8000B650 */ - # region @ 802627A4 (4 bytes) - .data 0x802627A4 # address - .data 0x00000004 # size - .data 0x4BFE12B1 # 802627A4 => bl -0x0001ED50 /* 80243A54 */ - # region @ 80262900 (4 bytes) - .data 0x80262900 # address - .data 0x00000004 # size - .data 0x4BDA8D65 # 80262900 => bl -0x0025729C /* 8000B664 */ - # region @ 804D0548 (4 bytes) - .data 0x804D0548 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0548 => bc 20, 22, +0x00000000 /* 804D0548 */ - # region @ 804D0554 (4 bytes) - .data 0x804D0554 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0554 => bc 20, 22, +0x00000000 /* 804D0554 */ - # region @ 804D0560 (4 bytes) - .data 0x804D0560 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0560 => bc 20, 22, +0x00000000 /* 804D0560 */ - # region @ 804D056C (4 bytes) - .data 0x804D056C # address - .data 0x00000004 # size - .data 0x42960000 # 804D056C => bc 20, 22, +0x00000000 /* 804D056C */ - # region @ 804D0578 (4 bytes) - .data 0x804D0578 # address - .data 0x00000004 # size - .data 0x42960000 # 804D0578 => bc 20, 22, +0x00000000 /* 804D0578 */ - .data 0x804D05A8 - .data 0x00000004 - .data 0x42960000 - .data 0x804D05D8 - .data 0x00000004 - .data 0x42960000 - # region @ 804D0608 (4 bytes) - .data 0x804D0608 # address - .data 0x00000004 # size - .data 0x42780000 # 804D0608 => bc 19, 24, +0x00000000 /* 804D0608 */ - # region @ 804D0624 (4 bytes) - .data 0x804D0624 # address - .data 0x00000004 # size - .data 0xFF00FF15 # 804D0624 => .invalid FC, 0 - # region @ 805D9344 (4 bytes) - .data 0x805D9344 # address - .data 0x00000004 # size - .data 0x42C00000 # 805D9344 => b +0x00000000 /* 805D9344 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.3___.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.3___.patch.s new file mode 100644 index 00000000..005c1583 --- /dev/null +++ b/system/client-functions/EnemyHPBars/EnemyHPBars.3___.patch.s @@ -0,0 +1,103 @@ +.meta name="Enemy HP bars" +.meta description="Shows HP bars in\nenemy info windows" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B650 + .data 0x0000006C + .address 0x8000B650 +hook1: + lis r5, 0x8001 + lwz r3, [r5 - 0x4944] + mr r30, r31 + lha r6, [r30 + 0x032C] + b +0x10 +hook2: + lha r6, [r30 + 0x02B8] + lis r5, 0x8001 + stw [r5 - 0x4944], r3 + mflr r0 + stw [r5 - 0x4940], r0 + mr r5, r3 + lha r7, [r30 + 0x02B8] + lis r4, 0x8000 + ori r4, r4, 0xB6AC + addi r3, r4, 0x0018 + crxor crb6, crb6, crb6 + .data + lis r4, 0x8000 + ori r4, r4, 0xB6C4 + mr r3, r28 + lwz r0, [r4 - 0x0004] + mtlr r0 + blr + .data 0x25730A0A + .data 0x48503A25 + .data 0x642F2564 + .data 0x00000000 + + .data + .data 0x00000004 + .address + bl hook1 + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .address + bl hook2 + + .data + .data 0x00000004 + .data 0x42960000 + + .data + .data 0x00000004 + .data 0x42960000 + + .data + .data 0x00000004 + .data 0x42960000 + + .data + .data 0x00000004 + .data 0x42960000 + + .data + .data 0x00000004 + .data 0x42960000 + + .data + .data 0x00000004 + .data 0x42960000 + + .data + .data 0x00000004 + .data 0x42960000 + + .data + .data 0x00000004 + .data 0x42780000 + + .data + .data 0x00000004 + .data 0xFF00FF15 + + .data + .data 0x00000004 + .data 0x42C00000 + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.4OED.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.4OED.patch.s deleted file mode 100644 index 78e0a8e7..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.4OED.patch.s +++ /dev/null @@ -1,69 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x0026B063 - .data 0x00000001 - .binary C0 - .data 0x0026B06C - .data 0x00000001 - .binary FA - .data 0x0026B266 - .data 0x00000004 - .binary 836004FD - .data 0x0054A92C - .data 0x00000004 - .data 0x42960000 - .data 0x0054A95C - .data 0x00000004 - .data 0x42960000 - .data 0x0054A98C - .data 0x00000004 - .data 0x42960000 - .data 0x0054A9BC - .data 0x00000004 - .data 0x42960000 - .data 0x0054A9EC - .data 0x00000004 - .data 0x42780000 - .data 0x0054AA08 - .data 0x00000004 - .data 0xFF00FF15 - - .data 0x00010C00 - .deltaof str_data_start, str_data_end -str_data_start: - .data 0x00318308 # sprintf - .data 0x00264E80 # Original function for on_window_created callsite - .data 0x00000000 - .binary "%s\n\nHP:%d/%d" - .data 0x00000000 - .data 0x00000000 -str_data_end: - - .data 0x002DB050 - .deltaof new_code_start, new_code_end -new_code_start: - .include EnemyHPBars-TextHandlerXB -new_code_end: - - .data 0x0026B241 - .data 0x00000007 - nop - nop - .binary E80BFE0600 # call 002DB053 (on_hp_updated) - - .data 0x0026B028 - .data 0x00000005 - .binary E824000700 # call 002DB051 (on_window_created) - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.4OEU.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.4OEU.patch.s deleted file mode 100644 index 8fac9134..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.4OEU.patch.s +++ /dev/null @@ -1,69 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x0026B193 - .data 0x00000001 - .binary C0 - .data 0x0026B19C - .data 0x00000001 - .binary FA - .data 0x0026B396 - .data 0x00000004 - .binary 836004FD - .data 0x0054A1CC - .data 0x00000004 - .data 0x42960000 - .data 0x0054A1FC - .data 0x00000004 - .data 0x42960000 - .data 0x0054A22C - .data 0x00000004 - .data 0x42960000 - .data 0x0054A25C - .data 0x00000004 - .data 0x42960000 - .data 0x0054A28C - .data 0x00000004 - .data 0x42780000 - .data 0x0054A2A8 - .data 0x00000004 - .data 0xFF00FF15 - - .data 0x00010C00 - .deltaof str_data_start, str_data_end -str_data_start: - .data 0x00317D7A # sprintf - .data 0x00264F80 # Original function for on_window_created callsite - .data 0x00000000 - .binary "%s\n\nHP:%d/%d" - .data 0x00000000 - .data 0x00000000 -str_data_end: - - .data 0x002DB550 - .deltaof new_code_start, new_code_end -new_code_start: - .include EnemyHPBars-TextHandlerXB -new_code_end: - - .data 0x0026B371 - .data 0x00000007 - nop - nop - .binary E8DB010700 # call 002DB553 (on_hp_updated) - - .data 0x0026B158 - .data 0x00000005 - .binary E8F4030700 # call 002DB551 (on_window_created) - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.4OJB.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.4OJB.patch.s deleted file mode 100644 index 3360141b..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.4OJB.patch.s +++ /dev/null @@ -1,69 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x0026ABA3 - .data 0x00000001 - .binary C0 - .data 0x0026ABAC - .data 0x00000001 - .binary FA - .data 0x0026ADA6 - .data 0x00000004 - .binary 836004FD - .data 0x00545334 - .data 0x00000004 - .data 0x42960000 - .data 0x00545364 - .data 0x00000004 - .data 0x42960000 - .data 0x00545394 - .data 0x00000004 - .data 0x42960000 - .data 0x005453C4 - .data 0x00000004 - .data 0x42960000 - .data 0x005453F4 - .data 0x00000004 - .data 0x42780000 - .data 0x00545410 - .data 0x00000004 - .data 0xFF00FF15 - - .data 0x00010C00 - .deltaof str_data_start, str_data_end -str_data_start: - .data 0x00313B22 # sprintf - .data 0x002649C0 # Original function for on_window_created callsite - .data 0x00000000 - .binary "%s\n\nHP:%d/%d" - .data 0x00000000 - .data 0x00000000 -str_data_end: - - .data 0x002D90E0 - .deltaof new_code_start, new_code_end -new_code_start: - .include EnemyHPBars-TextHandlerXB -new_code_end: - - .data 0x0026AD81 - .data 0x00000007 - nop - nop - .binary E85BE30600 # call 002D90E3 (on_hp_updated) - - .data 0x0026AB68 - .data 0x00000005 - .binary E874E50600 # call 002D90E1 (on_window_created) - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.4OJD.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.4OJD.patch.s deleted file mode 100644 index b6de90e0..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.4OJD.patch.s +++ /dev/null @@ -1,69 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x0026AF13 - .data 0x00000001 - .binary C0 - .data 0x0026AF1C - .data 0x00000001 - .binary FA - .data 0x0026B116 - .data 0x00000004 - .binary 836004FD - .data 0x005459C4 - .data 0x00000004 - .data 0x42960000 - .data 0x005459F4 - .data 0x00000004 - .data 0x42960000 - .data 0x00545A24 - .data 0x00000004 - .data 0x42960000 - .data 0x00545A54 - .data 0x00000004 - .data 0x42960000 - .data 0x00545A84 - .data 0x00000004 - .data 0x42780000 - .data 0x00545AA0 - .data 0x00000004 - .data 0xFF00FF15 - - .data 0x00010C00 - .deltaof str_data_start, str_data_end -str_data_start: - .data 0x00314722 # sprintf - .data 0x00264D80 # Original function for on_window_created callsite - .data 0x00000000 - .binary "%s\n\nHP:%d/%d" - .data 0x00000000 - .data 0x00000000 -str_data_end: - - .data 0x002D9CB0 - .deltaof new_code_start, new_code_end -new_code_start: - .include EnemyHPBars-TextHandlerXB -new_code_end: - - .data 0x0026B0F1 - .data 0x00000007 - nop - nop - .binary E8BBEB0600 # call 002D9CB3 (on_hp_updated) - - .data 0x0026AED8 - .data 0x00000005 - .binary E8D4ED0600 # call 002D9CB1 (on_window_created) - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.4OJU.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.4OJU.patch.s deleted file mode 100644 index 3d9884d8..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.4OJU.patch.s +++ /dev/null @@ -1,69 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x0026B2F3 - .data 0x00000001 - .binary C0 - .data 0x0026B2FC - .data 0x00000001 - .binary FA - .data 0x0026B4F6 - .data 0x00000004 - .binary 836004FD - .data 0x0054D4AC - .data 0x00000004 - .data 0x42960000 - .data 0x0054D4DC - .data 0x00000004 - .data 0x42960000 - .data 0x0054D50C - .data 0x00000004 - .data 0x42960000 - .data 0x0054D53C - .data 0x00000004 - .data 0x42960000 - .data 0x0054D56C - .data 0x00000004 - .data 0x42780000 - .data 0x0054D588 - .data 0x00000004 - .data 0xFF00FF15 - - .data 0x00010C00 - .deltaof str_data_start, str_data_end -str_data_start: - .data 0x00317D7A # sprintf - .data 0x00265130 # Original function for on_window_created callsite - .data 0x00000000 - .binary "%s\n\nHP:%d/%d" - .data 0x00000000 - .data 0x00000000 -str_data_end: - - .data 0x002DB580 - .deltaof new_code_start, new_code_end -new_code_start: - .include EnemyHPBars-TextHandlerXB -new_code_end: - - .data 0x0026B4D1 - .data 0x00000007 - nop - nop - .binary E8AB000700 # call 002DB583 (on_hp_updated) - - .data 0x0026B2B8 - .data 0x00000005 - .binary E8C4020700 # call 002DB581 (on_window_created) - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.4OPD.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.4OPD.patch.s deleted file mode 100644 index 664a2939..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.4OPD.patch.s +++ /dev/null @@ -1,69 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x0026B083 - .data 0x00000001 - .binary C0 - .data 0x0026B08C - .data 0x00000001 - .binary FA - .data 0x0026B286 - .data 0x00000004 - .binary 836004FD - .data 0x0054A92C - .data 0x00000004 - .data 0x42960000 - .data 0x0054A95C - .data 0x00000004 - .data 0x42960000 - .data 0x0054A98C - .data 0x00000004 - .data 0x42960000 - .data 0x0054A9BC - .data 0x00000004 - .data 0x42960000 - .data 0x0054A9EC - .data 0x00000004 - .data 0x42780000 - .data 0x0054AA08 - .data 0x00000004 - .data 0xFF00FF15 - - .data 0x00010C00 - .deltaof str_data_start, str_data_end -str_data_start: - .data 0x00318338 # sprintf - .data 0x00264EA0 # Original function for on_window_created callsite - .data 0x00000000 - .binary "%s\n\nHP:%d/%d" - .data 0x00000000 - .data 0x00000000 -str_data_end: - - .data 0x002DB080 - .deltaof new_code_start, new_code_end -new_code_start: - .include EnemyHPBars-TextHandlerXB -new_code_end: - - .data 0x0026B261 - .data 0x00000007 - nop - nop - .binary E81BFE0600 # call 002DB083 (on_hp_updated) - - .data 0x0026B048 - .data 0x00000005 - .binary E834000700 # call 002DB081 (on_window_created) - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.4OPU.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.4OPU.patch.s deleted file mode 100644 index c6c17676..00000000 --- a/system/client-functions/EnemyHPBars/EnemyHPBars.4OPU.patch.s +++ /dev/null @@ -1,69 +0,0 @@ -.meta name="Enemy HP bars" -.meta description="Shows HP bars in\nenemy info windows" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x0026B193 - .data 0x00000001 - .binary C0 - .data 0x0026B19C - .data 0x00000001 - .binary FA - .data 0x0026B396 - .data 0x00000004 - .binary 836004FD - .data 0x0054ACCC - .data 0x00000004 - .data 0x42960000 - .data 0x0054ACFC - .data 0x00000004 - .data 0x42960000 - .data 0x0054AD2C - .data 0x00000004 - .data 0x42960000 - .data 0x0054AD5C - .data 0x00000004 - .data 0x42960000 - .data 0x0054AD8C - .data 0x00000004 - .data 0x42780000 - .data 0x0054ADA8 - .data 0x00000004 - .data 0xFF00FF15 - - .data 0x00010C00 - .deltaof str_data_start, str_data_end -str_data_start: - .data 0x00318858 # sprintf - .data 0x00264FD0 # Original function for on_window_created callsite - .data 0x00000000 - .binary "%s\n\nHP:%d/%d" - .data 0x00000000 - .data 0x00000000 -str_data_end: - - .data 0x002DB5D0 - .deltaof new_code_start, new_code_end -new_code_start: - .include EnemyHPBars-TextHandlerXB -new_code_end: - - .data 0x0026B371 - .data 0x00000007 - nop - nop - .binary E85B020700 # call 002DB5D3 (on_hp_updated) - - .data 0x0026B158 - .data 0x00000005 - .binary E874040700 # call 002DB5D1 (on_window_created) - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.4___.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.4___.patch.s new file mode 100644 index 00000000..7000b726 --- /dev/null +++ b/system/client-functions/EnemyHPBars/EnemyHPBars.4___.patch.s @@ -0,0 +1,103 @@ +.meta name="Enemy HP bars" +.meta description="Shows HP bars in\nenemy info windows" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 +# Xbox port by fuzziqersoftware + +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksXB + .data + .data 0x00000001 + .binary C0 + .data + .data 0x00000001 + .binary FA + .data + .data 0x00000004 + .binary 836004FD + .data + .data 0x00000004 + .data 0x42960000 + .data + .data 0x00000004 + .data 0x42960000 + .data + .data 0x00000004 + .data 0x42960000 + .data + .data 0x00000004 + .data 0x42960000 + .data + .data 0x00000004 + .data 0x42780000 + .data + .data 0x00000004 + .data 0xFF00FF15 + + .data 0x00010C00 + .deltaof str_data_start, str_data_end +str_data_start: + .data # sprintf + .data # Original function for on_window_created callsite + .data 0x00000000 + .binary "%s\n\nHP:%d/%d" + .data 0x00000000 + .data 0x00000000 +str_data_end: + + # WARNING: FlickeringStatusIcons patch starts immediately after this segment; + # if the size of this is changed, that patch will have to be changed too + .data + .deltaof new_code_start, new_code_end +new_code_start: + # Replacement for handle_0E (do nothing) + ret + + # Call table: 2 functions (on_window_created, on_hp_updated) + jmp on_window_created + +on_hp_updated: + call rewrite_string + movsx ecx, word [ebp + 0x02BC] # Replaced opcode at callsite + ret + +on_window_created: + mov [0x00010C08], eax # prev_desc + push ebp + mov ebp, ebx + call rewrite_string + pop ebp + mov dword [esp + 4], 0x00010C1C # Change first argument to desc_buf + jmp [0x00010C04] # Call original function + +rewrite_string: + movsx eax, word [ebp + 0x02BC] # max HP + push eax + movsx eax, word [ebp + 0x0330] # current HP + push eax + push dword [0x00010C08] # prev_desc + push 0x00010C0C # desc_template + push 0x00010C1C # desc_buf + call [0x00010C00] # sprintf + add esp, 0x14 + ret +new_code_end: + + .data + .data 0x00000007 + nop + nop + .binary # call on_hp_updated + + .data + .data 0x00000005 + .binary # call on_window_created + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/Episode3/AllCards.3SE0.patch.s b/system/client-functions/Episode3/AllCards.3SE0.patch.s deleted file mode 100644 index 3d63e40c..00000000 --- a/system/client-functions/Episode3/AllCards.3SE0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This patch gives you the maximum number of each card. It only works if used -# in-game, which means it must be used by running `$patch AllCards`. - -.meta hide_from_patches_menu -.meta name="All cards" -.meta description="Gives you the\nmaximum number of\neach card." - -entry_ptr: -reloc0: - .offsetof start - -start: - .include AllCards - .data 0x802A1BAC # get_player_data_segment - .data 0x802A15BC # decrypt_ep3_player_data_segment - .data 0x802A17AC # Ep3PlayerDataSegment_on_card_obtained - .data 0x802A160C # encrypt_ep3_player_data_segment diff --git a/system/client-functions/Episode3/AllCards.3SJ0.patch.s b/system/client-functions/Episode3/AllCards.3SJ0.patch.s deleted file mode 100644 index dad1c129..00000000 --- a/system/client-functions/Episode3/AllCards.3SJ0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This patch gives you the maximum number of each card. It only works if used -# in-game, which means it must be used by running `$patch AllCards`. - -.meta hide_from_patches_menu -.meta name="All cards" -.meta description="Gives you the\nmaximum number of\neach card." - -entry_ptr: -reloc0: - .offsetof start - -start: - .include AllCards - .data 0x802A1154 # get_player_data_segment - .data 0x802A0B64 # decrypt_ep3_player_data_segment - .data 0x802A0D54 # Ep3PlayerDataSegment_on_card_obtained - .data 0x802A0BB4 # encrypt_ep3_player_data_segment diff --git a/system/client-functions/Episode3/AllCards.3SJT.patch.s b/system/client-functions/Episode3/AllCards.3SJT.patch.s deleted file mode 100644 index ffc45d97..00000000 --- a/system/client-functions/Episode3/AllCards.3SJT.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This patch gives you the maximum number of each card. It only works if used -# in-game, which means it must be used by running `$patch AllCards`. - -.meta hide_from_patches_menu -.meta name="All cards" -.meta description="Gives you the\nmaximum number of\neach card." - -entry_ptr: -reloc0: - .offsetof start - -start: - .include AllCards - .data 0x8029987C # get_player_data_segment - .data 0x802992A4 # decrypt_ep3_player_data_segment - .data 0x802994C0 # Ep3PlayerDataSegment_on_card_obtained - .data 0x802992F8 # encrypt_ep3_player_data_segment diff --git a/system/client-functions/Episode3/AllCards.3SP0.patch.s b/system/client-functions/Episode3/AllCards.3SP0.patch.s deleted file mode 100644 index b903e847..00000000 --- a/system/client-functions/Episode3/AllCards.3SP0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This patch gives you the maximum number of each card. It only works if used -# in-game, which means it must be used by running `$patch AllCards`. - -.meta hide_from_patches_menu -.meta name="All cards" -.meta description="Gives you the\nmaximum number of\neach card." - -entry_ptr: -reloc0: - .offsetof start - -start: - .include AllCards - .data 0x802A25A4 # get_player_data_segment - .data 0x802A1FB4 # decrypt_ep3_player_data_segment - .data 0x802A21A4 # Ep3PlayerDataSegment_on_card_obtained - .data 0x802A2004 # encrypt_ep3_player_data_segment diff --git a/system/client-functions/Episode3/AllCards.ppc.inc.s b/system/client-functions/Episode3/AllCards.3S__.patch.s similarity index 59% rename from system/client-functions/Episode3/AllCards.ppc.inc.s rename to system/client-functions/Episode3/AllCards.3S__.patch.s index e6ecfd8b..ae24f4e7 100644 --- a/system/client-functions/Episode3/AllCards.ppc.inc.s +++ b/system/client-functions/Episode3/AllCards.3S__.patch.s @@ -1,3 +1,16 @@ +# This patch gives you the maximum number of each card. It only works if used +# in-game, which means it must be used by running `$patch AllCards`. + +.meta hide_from_patches_menu +.meta name="All cards" +.meta description="Gives you the\nmaximum number of\neach card." + +.versions 3SJT 3SJ0 3SE0 3SP0 + +entry_ptr: +reloc0: + .offsetof start + start: stwu [r1 - 0x20], r1 mflr r0 @@ -52,3 +65,7 @@ obtain_card_again: get_data: bl get_data_ret + .data # get_player_data_segment + .data # decrypt_ep3_player_data_segment + .data # Ep3PlayerDataSegment_on_card_obtained + .data # encrypt_ep3_player_data_segment diff --git a/system/client-functions/Episode3/PlusPatches.3SJ0.patch.s b/system/client-functions/Episode3/PlusPatches.3SJ0.patch.s deleted file mode 100644 index 36936f7d..00000000 --- a/system/client-functions/Episode3/PlusPatches.3SJ0.patch.s +++ /dev/null @@ -1,140 +0,0 @@ -# Original patch by Gigobooma -# https://docs.google.com/document/d/1zG73l9joEqp_zB-xNgK9g8pXL0RSpmXfxPFQcdAvess/edit - -.meta name="Episode 3 Plus" -.meta description="Enables Episode 3\nPlus features.\nDoes not include\ntext fixes.\n\nOriginally created\nby Gigobooma" - -entry_ptr: -reloc0: - .offsetof start - -start: - .include WriteCodeBlocksGC - - # Disable curse word filter - .data 0x8012FAD0 - .data 0x00000004 - nop - - # 16-bit deckbuilder card IDs - .data 0x80278BC4 - .data 0x00000004 - lhzx r0, [r27 + r29] - .data 0x80278C28 - .data 0x00000004 - addi r29, r29, 2 - .data 0x8027FD60 - .data 0x00000008 - lhzx r0, [r5 + r3] - addi r3, r3, 2 - .data 0x80280308 - .data 0x00000004 - lhzx r17, [r25 + r28] - .data 0x80280520 - .data 0x00000004 - addi r28, r28, 0x0002 - - # Replace deckbuilder card list - .data 0x80580E68 - .data 0x00000004 - .data 0x00000264 - .data 0x80427578 - .deltaof deckbuilder_cards_start, deckbuilder_cards_end -deckbuilder_cards_start: - .binary 0009000F02460247015501530243024401690122015700280164024C024D0158 - .binary 024A024802490168024B016E017A002C0252025101650250015A0159024E0167 - .binary 024F00140015016F015E0029025A025B01660253025400100256002002570255 - .binary 02590258000B025D014F025E0161015B025C01700160000D025F02600177002D - .binary 016C02610179016B016D0267000E02620162026302640172015F017800250266 - .binary 0265015401560012017501760268016A017B0173026A02690174026B001C000A - .binary 0150027002710038026C0186026D026E026F01230034017C027802740277017F - .binary 02790180027302720184027502760181003A0026015C000C027D0151027E0171 - .binary 027C027A027B018200350283017D002102840011028201870039028001850281 - .binary 027F017E018C0285018801890183018B018A0040018D0289028A028801910286 - .binary 001F0287019B01A1004201A0028E018E028B028C0290028F028D001D019C019D - .binary 0190004601990124029200410293018F0294019A019E02910193004501920163 - .binary 0194019701950198019601A3001701A4001E002301A501A90034029701A801A7 - .binary 01AC029501AA002201AB029600240016003001C3003D01AE01AF004901AD01B0 - .binary 01B101B201B301C101B801BA01BB01B901C401BD01B601C001BC01BE01BF01C2 - .binary 01C502A301B401B500560057005801C601C701C80059005A01CD01CE005B0031 - .binary 005C01C901CA01E401F801FA0037005E005D01CB01CC01E501E601E701E8005F - .binary 006001CF01D001E9002A00610062006301D101D201D30064006501D401D50069 - .binary 006A0068006B006C0066001B01D60067003601EA01EB01EE01EC01FB01FC006D - .binary 006E020001D901D70201006F007001DC01DD01F1002701F200710032007201DA - .binary 01DB01EF01F001F301F4007301DE01FF00740075007601DF01E001E100780079 - .binary 007A007C007D007B01E300330077007E01E2007F003B01D801F501F601FE01FD - .binary 01F7008A008B008C008D0093009400950099009A009C008E00B9008F00B200B7 - .binary 009D00AA00B1003C00B800C000F400AC00BA00C1020B020C020D020E020F0210 - .binary 02110212021300900092009100B600A7009E003E00A200A300B400AE00BC0214 - .binary 021602060207021800A000A400B300A100C4020202030204021700A500A60205 - .binary 00AB00BB0208020900C300970098020A00AD00D800D900DA00DB00DC00DD00DE - .binary 00DF00E000E100E200E400E500E600E800EB00E700E900EA00EC00ED00EE00EF - .binary 00F000F100F2021500F300C600C500CB021C023400CA00D2023B00D500CC021A - .binary 021B00D402190298023300D100C7023E00D6023D023C00CF0227003F02260228 - .binary 022A0238021E021F0220022102220223022402300232022F023100D0022C022E - .binary 021D02370239023A022502290043022B0235023600F500F600F700F6010300F9 - .binary 0101010201000242010B00F8014E0129010A01250126012801270108012A0138 - .binary 0139013A00FA00FB013D013E013F01400141014201430144014501460104010E - .binary 00FC012D012E012F014800FD00FE013000FF0132014D01050106012101370241 - .binary 0107010D013C010F013501090136023F013B014A0019010C014B012B001A0131 - .binary 012C0133014C01340240024500130152019F002E01A601B701A202C002C102C2 - .binary 02C302C402C502C6002F01ED01F902BC02BD02C802CA02C902C702CB029A0299 - .binary 02A2002B00440018 -deckbuilder_cards_end: - - # Disable Ep3PlayerDataSegment_remove_invalid_cards - .data 0x802A03DC - .data 0x00000004 - blr - - # Always get 10 cards after any battle - .data 0x802C1380 - .data 0x00000008 - nop - li r5, 10 - - # Disable verify_deck_contents - .data 0x8030979C - .data 0x00000008 - li r3, 0 - blr - - # Add Booooo and Laughter sound chats - .data 0x8030A538 - .data 0x00000004 - cmpwi r3, 41 - .data 0x8030A544 - .data 0x00000004 - rlwinm r0, r3, 1, 0, 30 - .data 0x8030A550 - .data 0x00000004 - lhzx r3, [r3 + r0] - .data 0x8030A6D0 - .data 0x00000004 - li r4, 0x0029 - .data 0x8030A70C - .data 0x00000004 - cmpwi r31, 41 - .data 0x8042A4C8 - .deltaof sound_chat_sound_ids_start, sound_chat_sound_ids_end -sound_chat_sound_ids_start: - .binary 802580268227852D803080318A3F85328A4085338A418A288A388A298A39852E - .binary 802F853D85348535853B85368537852B853A853C853E80448045804680478048 - .binary 8049804A804B804C804D804E804F802A802C0000 -sound_chat_sound_ids_end: - - # Change default starting cards - .data 0x804225B0 - .deltaof starting_cards_start, starting_cards_end -starting_cards_start: - .binary 00090009000A000A000B000C000C00290029002C003500400040004100420042 - .binary 01A301A300170017002800280034003400160151018F02460056005600590059 - .binary 005A005B005B005F005F006400640078007800610061008A008A008C008C00A3 - .binary 0093008E00D800D800DB00DE00C500C500C600C600CC00010007000400080110 - .binary 01160113011700020118000501190006011A0114011B0003011C0111011D0112 - .binary 011E0115011F02B202B302B402B502AA02AB02AC02AD02AE02AF02B002B10050 - .binary 00510052005300470048004A004B004C004D004E004F0000 -starting_cards_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Episode3/PlusPatches.3SP0.patch.s b/system/client-functions/Episode3/PlusPatches.3SP0.patch.s deleted file mode 100644 index 6507b0b7..00000000 --- a/system/client-functions/Episode3/PlusPatches.3SP0.patch.s +++ /dev/null @@ -1,140 +0,0 @@ -# Original patch by Gigobooma -# https://docs.google.com/document/d/1zG73l9joEqp_zB-xNgK9g8pXL0RSpmXfxPFQcdAvess/edit - -.meta name="Episode 3 Plus" -.meta description="Enables Episode 3\nPlus features.\nDoes not include\ntext fixes.\n\nOriginally created\nby Gigobooma" - -entry_ptr: -reloc0: - .offsetof start - -start: - .include WriteCodeBlocksGC - - # Disable curse word filter - .data 0x8012FED8 - .data 0x00000004 - nop - - # 16-bit deckbuilder card IDs - .data 0x80279CC8 - .data 0x00000004 - lhzx r0, [r27 + r29] - .data 0x80279D2C - .data 0x00000004 - addi r29, r29, 2 - .data 0x80280EB4 - .data 0x00000008 - lhzx r0, [r5 + r3] - addi r3, r3, 2 - .data 0x8028145C - .data 0x00000004 - lhzx r17, [r25 + r28] - .data 0x80281674 - .data 0x00000004 - addi r28, r28, 0x0002 - - # Replace deckbuilder card list - .data 0x805840E0 - .data 0x00000004 - .data 0x00000264 - .data 0x8042A228 - .deltaof deckbuilder_cards_start, deckbuilder_cards_end -deckbuilder_cards_start: - .binary 0009000F02460247015501530243024401690122015700280164024C024D0158 - .binary 024A024802490168024B016E017A002C0252025101650250015A0159024E0167 - .binary 024F00140015016F015E0029025A025B01660253025400100256002002570255 - .binary 02590258000B025D014F025E0161015B025C01700160000D025F02600177002D - .binary 016C02610179016B016D0267000E02620162026302640172015F017800250266 - .binary 0265015401560012017501760268016A017B0173026A02690174026B001C000A - .binary 0150027002710038026C0186026D026E026F01230034017C027802740277017F - .binary 02790180027302720184027502760181003A0026015C000C027D0151027E0171 - .binary 027C027A027B018200350283017D002102840011028201870039028001850281 - .binary 027F017E018C0285018801890183018B018A0040018D0289028A028801910286 - .binary 001F0287019B01A1004201A0028E018E028B028C0290028F028D001D019C019D - .binary 0190004601990124029200410293018F0294019A019E02910193004501920163 - .binary 0194019701950198019601A3001701A4001E002301A501A90034029701A801A7 - .binary 01AC029501AA002201AB029600240016003001C3003D01AE01AF004901AD01B0 - .binary 01B101B201B301C101B801BA01BB01B901C401BD01B601C001BC01BE01BF01C2 - .binary 01C502A301B401B500560057005801C601C701C80059005A01CD01CE005B0031 - .binary 005C01C901CA01E401F801FA0037005E005D01CB01CC01E501E601E701E8005F - .binary 006001CF01D001E9002A00610062006301D101D201D30064006501D401D50069 - .binary 006A0068006B006C0066001B01D60067003601EA01EB01EE01EC01FB01FC006D - .binary 006E020001D901D70201006F007001DC01DD01F1002701F200710032007201DA - .binary 01DB01EF01F001F301F4007301DE01FF00740075007601DF01E001E100780079 - .binary 007A007C007D007B01E300330077007E01E2007F003B01D801F501F601FE01FD - .binary 01F7008A008B008C008D0093009400950099009A009C008E00B9008F00B200B7 - .binary 009D00AA00B1003C00B800C000F400AC00BA00C1020B020C020D020E020F0210 - .binary 02110212021300900092009100B600A7009E003E00A200A300B400AE00BC0214 - .binary 021602060207021800A000A400B300A100C4020202030204021700A500A60205 - .binary 00AB00BB0208020900C300970098020A00AD00D800D900DA00DB00DC00DD00DE - .binary 00DF00E000E100E200E400E500E600E800EB00E700E900EA00EC00ED00EE00EF - .binary 00F000F100F2021500F300C600C500CB021C023400CA00D2023B00D500CC021A - .binary 021B00D402190298023300D100C7023E00D6023D023C00CF0227003F02260228 - .binary 022A0238021E021F0220022102220223022402300232022F023100D0022C022E - .binary 021D02370239023A022502290043022B0235023600F500F600F700F6010300F9 - .binary 0101010201000242010B00F8014E0129010A01250126012801270108012A0138 - .binary 0139013A00FA00FB013D013E013F01400141014201430144014501460104010E - .binary 00FC012D012E012F014800FD00FE013000FF0132014D01050106012101370241 - .binary 0107010D013C010F013501090136023F013B014A0019010C014B012B001A0131 - .binary 012C0133014C01340240024500130152019F002E01A601B701A202C002C102C2 - .binary 02C302C402C502C6002F01ED01F902BC02BD02C802CA02C902C702CB029A0299 - .binary 02A2002B00440018 -deckbuilder_cards_end: - - # Disable Ep3PlayerDataSegment_remove_invalid_cards - .data 0x802A182C - .data 0x00000004 - blr - - # Always get 10 cards after any battle - .data 0x802C2C14 - .data 0x00000008 - nop - li r5, 10 - - # Disable verify_deck_contents - .data 0x8030B420 - .data 0x00000008 - li r3, 0 - blr - - # Add Booooo and Laughter sound chats - .data 0x8030C1FC - .data 0x00000004 - cmpwi r3, 41 - .data 0x8030C208 - .data 0x00000004 - rlwinm r0, r3, 1, 0, 30 - .data 0x8030C214 - .data 0x00000004 - lhzx r3, [r3 + r0] - .data 0x8030C394 - .data 0x00000004 - li r4, 0x0029 - .data 0x8030C3D0 - .data 0x00000004 - cmpwi r31, 41 - .data 0x8042D1A8 - .deltaof sound_chat_sound_ids_start, sound_chat_sound_ids_end -sound_chat_sound_ids_start: - .binary 802580268227852D803080318A3F85328A4085338A418A288A388A298A39852E - .binary 802F853D85348535853B85368537852B853A853C853E80448045804680478048 - .binary 8049804A804B804C804D804E804F802A802C0000 -sound_chat_sound_ids_end: - - # Change default starting cards - .data 0x80425260 - .deltaof starting_cards_start, starting_cards_end -starting_cards_start: - .binary 00090009000A000A000B000C000C00290029002C003500400040004100420042 - .binary 01A301A300170017002800280034003400160151018F02460056005600590059 - .binary 005A005B005B005F005F006400640078007800610061008A008A008C008C00A3 - .binary 0093008E00D800D800DB00DE00C500C500C600C600CC00010007000400080110 - .binary 01160113011700020118000501190006011A0114011B0003011C0111011D0112 - .binary 011E0115011F02B202B302B402B502AA02AB02AC02AD02AE02AF02B002B10050 - .binary 00510052005300470048004A004B004C004D004E004F0000 -starting_cards_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Episode3/PlusPatches.3SE0.patch.s b/system/client-functions/Episode3/PlusPatches.3S__.patch.s similarity index 84% rename from system/client-functions/Episode3/PlusPatches.3SE0.patch.s rename to system/client-functions/Episode3/PlusPatches.3S__.patch.s index 48506096..3ce7cf3a 100644 --- a/system/client-functions/Episode3/PlusPatches.3SE0.patch.s +++ b/system/client-functions/Episode3/PlusPatches.3S__.patch.s @@ -4,6 +4,8 @@ .meta name="Episode 3 Plus" .meta description="Enables Episode 3\nPlus features.\nDoes not include\ntext fixes.\n\nOriginally created\nby Gigobooma" +.versions 3SJ0 3SE0 3SP0 + entry_ptr: reloc0: .offsetof start @@ -12,33 +14,33 @@ start: .include WriteCodeBlocksGC # Disable curse word filter - .data 0x8012FA4C + .data .data 0x00000004 nop # 16-bit deckbuilder card IDs - .data 0x8027937C + .data .data 0x00000004 lhzx r0, [r27 + r29] - .data 0x802793E0 + .data .data 0x00000004 addi r29, r29, 2 - .data 0x80280564 + .data .data 0x00000008 lhzx r0, [r5 + r3] addi r3, r3, 2 - .data 0x80280B0C + .data .data 0x00000004 lhzx r17, [r25 + r28] - .data 0x80280D24 + .data .data 0x00000004 addi r28, r28, 0x0002 # Replace deckbuilder card list - .data 0x80581CD0 + .data .data 0x00000004 .data 0x00000264 - .data 0x80428718 + .data .deltaof deckbuilder_cards_start, deckbuilder_cards_end deckbuilder_cards_start: .binary 0009000F02460247015501530243024401690122015700280164024C024D0158 @@ -83,39 +85,39 @@ deckbuilder_cards_start: deckbuilder_cards_end: # Disable Ep3PlayerDataSegment_remove_invalid_cards - .data 0x802A0E34 + .data .data 0x00000004 blr # Always get 10 cards after any battle - .data 0x802C210C + .data .data 0x00000008 nop li r5, 10 # Disable verify_deck_contents - .data 0x8030A7E4 + .data .data 0x00000008 li r3, 0 blr # Add Booooo and Laughter sound chats - .data 0x8030B59C + .data .data 0x00000004 cmpwi r3, 41 - .data 0x8030B5A8 + .data .data 0x00000004 rlwinm r0, r3, 1, 0, 30 - .data 0x8030B5B4 + .data .data 0x00000004 lhzx r3, [r3 + r0] - .data 0x8030B734 + .data .data 0x00000004 li r4, 0x0029 - .data 0x8030B770 + .data .data 0x00000004 cmpwi r31, 41 - .data 0x8042B690 + .data .deltaof sound_chat_sound_ids_start, sound_chat_sound_ids_end sound_chat_sound_ids_start: .binary 802580268227852D803080318A3F85328A4085338A418A288A388A298A39852E @@ -124,7 +126,7 @@ sound_chat_sound_ids_start: sound_chat_sound_ids_end: # Change default starting cards - .data 0x80423750 + .data .deltaof starting_cards_start, starting_cards_end starting_cards_start: .binary 00090009000A000A000B000C000C00290029002C003500400040004100420042 diff --git a/system/client-functions/Episode3/ReplacePinzCards.3SJ0.patch.s b/system/client-functions/Episode3/ReplacePinzCards.3SJ0.patch.s deleted file mode 100644 index 67c9b959..00000000 --- a/system/client-functions/Episode3/ReplacePinzCards.3SJ0.patch.s +++ /dev/null @@ -1,103 +0,0 @@ -# This patch replaces the prices and contents of Pinz's Shop. -# Each entry is structured as follows: -# uint16_t card_id; -# int16_t min_clv; // -1 = limit doesn't apply -# int16_t max_clv; // -1 = limit doesn't apply -# uint16_t relative_chance; -# The values in the patch data below are the defaults. - -.meta name="New Pinz cards" -.meta description="Replaces the cards\navailable in Pinz's\nShop" - -entry_ptr: -reloc0: - .offsetof start - -start: - .include WriteCodeBlocksGC - - # Meseta prices - .data 0x80487140 - .data 0x00000010 - .data 50 - .data 100 - .data 150 - .data 0xFFFFFFFF - - # Card Capsule Machine 1 - .data 0x80487200 - .data 0x00000078 - .binary 017C FFFF FFFF 1B58 - .binary 0173 FFFF FFFF 1B58 - .binary 0176 FFFF FFFF 1F40 - .binary 006A FFFF FFFF 2710 - .binary 01EB FFFF FFFF 1F40 - .binary 01F1 FFFF FFFF 1770 - .binary 020E FFFF FFFF 1770 - .binary 0177 FFFF FFFF 1B58 - .binary 01AE FFFF FFFF 1770 - .binary 028A FFFF FFFF 1770 - .binary 01E8 FFFF FFFF 1770 - .binary 00A6 FFFF FFFF 1770 - .binary 023D FFFF FFFF 1388 - .binary 0208 FFFF FFFF 03E8 - .binary FFFF FFFF FFFF FFFF - - # Card Capsule Machine 2 - .data 0x80487278 - .data 0x00000078 - .binary 017C FFFF FFFF 2710 - .binary 027E FFFF FFFF 1388 - .binary 0075 FFFF FFFF 1388 - .binary 020E FFFF FFFF 1388 - .binary 014D FFFF FFFF 1388 - .binary 000F FFFF FFFF 1770 - .binary 0269 FFFF FFFF 1F40 - .binary 006D FFFF FFFF 1B58 - .binary 0071 FFFF FFFF 1F40 - .binary 00C3 FFFF FFFF 1F40 - .binary 0208 FFFF FFFF 0BB8 - .binary 0138 FFFF FFFF 1F40 - .binary 0235 FFFF FFFF 1770 - .binary 00E6 FFFF FFFF 03E8 - .binary FFFF FFFF FFFF FFFF - - # Card Capsule Machine 3 - .data 0x804872F0 - .data 0x00000078 - .binary 01AE FFFF FFFF 1F40 - .binary 014D FFFF FFFF 2328 - .binary 00BA FFFF FFFF 2328 - .binary 00A5 FFFF FFFF 2710 - .binary 01E8 FFFF FFFF 1F40 - .binary 025D FFFF FFFF 1F40 - .binary 028A FFFF FFFF 1F40 - .binary 0249 FFFF FFFF 2328 - .binary 0071 FFFF FFFF 1F40 - .binary 00B2 FFFF FFFF 1F40 - .binary 0129 FFFF FFFF 1F40 - .binary 01C1 FFFF FFFF 0BB8 - .binary 0132 FFFF FFFF 0BB8 - .binary 0148 FFFF FFFF 0BB8 - .binary FFFF FFFF FFFF FFFF - - # Coin machine - .data 0x80487368 - .data 0x00000070 - .binary 00A6 FFFF FFFF 2710 - .binary 01C1 FFFF FFFF 2710 - .binary 01FA FFFF FFFF 2710 - .binary 0208 FFFF FFFF 2710 - .binary 00E6 FFFF FFFF 2710 - .binary 00FF FFFF FFFF 2710 - .binary 0132 FFFF FFFF 2710 - .binary 013C FFFF FFFF 2710 - .binary 0148 FFFF FFFF 2710 - .binary 0198 FFFF FFFF 2710 - .binary 023D FFFF FFFF 2710 - .binary 00CA FFFF FFFF 2710 - .binary 00CF FFFF FFFF 2710 - .binary FFFF FFFF FFFF FFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Episode3/ReplacePinzCards.3SP0.patch.s b/system/client-functions/Episode3/ReplacePinzCards.3SP0.patch.s deleted file mode 100644 index 8ec8e3c3..00000000 --- a/system/client-functions/Episode3/ReplacePinzCards.3SP0.patch.s +++ /dev/null @@ -1,103 +0,0 @@ -# This patch replaces the prices and contents of Pinz's Shop. -# Each entry is structured as follows: -# uint16_t card_id; -# int16_t min_clv; // -1 = limit doesn't apply -# int16_t max_clv; // -1 = limit doesn't apply -# uint16_t relative_chance; -# The values in the patch data below are the defaults. - -.meta name="New Pinz cards" -.meta description="Replaces the cards\navailable in Pinz's\nShop" - -entry_ptr: -reloc0: - .offsetof start - -start: - .include WriteCodeBlocksGC - - # Meseta prices - .data 0x8048A260 - .data 0x00000010 - .data 50 - .data 100 - .data 150 - .data 0xFFFFFFFF - - # Card Capsule Machine 1 - .data 0x8048A320 - .data 0x00000078 - .binary 017C FFFF FFFF 1B58 - .binary 0173 FFFF FFFF 1B58 - .binary 0176 FFFF FFFF 1F40 - .binary 006A FFFF FFFF 2710 - .binary 01EB FFFF FFFF 1F40 - .binary 01F1 FFFF FFFF 1770 - .binary 020E FFFF FFFF 1770 - .binary 0177 FFFF FFFF 1B58 - .binary 01AE FFFF FFFF 1770 - .binary 028A FFFF FFFF 1770 - .binary 01E8 FFFF FFFF 1770 - .binary 00A6 FFFF FFFF 1770 - .binary 023D FFFF FFFF 1388 - .binary 0208 FFFF FFFF 03E8 - .binary FFFF FFFF FFFF FFFF - - # Card Capsule Machine 2 - .data 0x8048A398 - .data 0x00000078 - .binary 017C FFFF FFFF 2710 - .binary 027E FFFF FFFF 1388 - .binary 0075 FFFF FFFF 1388 - .binary 020E FFFF FFFF 1388 - .binary 014D FFFF FFFF 1388 - .binary 000F FFFF FFFF 1770 - .binary 0269 FFFF FFFF 1F40 - .binary 006D FFFF FFFF 1B58 - .binary 0071 FFFF FFFF 1F40 - .binary 00C3 FFFF FFFF 1F40 - .binary 0208 FFFF FFFF 0BB8 - .binary 0138 FFFF FFFF 1F40 - .binary 0235 FFFF FFFF 1770 - .binary 00E6 FFFF FFFF 03E8 - .binary FFFF FFFF FFFF FFFF - - # Card Capsule Machine 3 - .data 0x8048A410 - .data 0x00000078 - .binary 01AE FFFF FFFF 1F40 - .binary 014D FFFF FFFF 2328 - .binary 00BA FFFF FFFF 2328 - .binary 00A5 FFFF FFFF 2710 - .binary 01E8 FFFF FFFF 1F40 - .binary 025D FFFF FFFF 1F40 - .binary 028A FFFF FFFF 1F40 - .binary 0249 FFFF FFFF 2328 - .binary 0071 FFFF FFFF 1F40 - .binary 00B2 FFFF FFFF 1F40 - .binary 0129 FFFF FFFF 1F40 - .binary 01C1 FFFF FFFF 0BB8 - .binary 0132 FFFF FFFF 0BB8 - .binary 0148 FFFF FFFF 0BB8 - .binary FFFF FFFF FFFF FFFF - - # Coin machine - .data 0x8048A488 - .data 0x00000070 - .binary 00A6 FFFF FFFF 2710 - .binary 01C1 FFFF FFFF 2710 - .binary 01FA FFFF FFFF 2710 - .binary 0208 FFFF FFFF 2710 - .binary 00E6 FFFF FFFF 2710 - .binary 00FF FFFF FFFF 2710 - .binary 0132 FFFF FFFF 2710 - .binary 013C FFFF FFFF 2710 - .binary 0148 FFFF FFFF 2710 - .binary 0198 FFFF FFFF 2710 - .binary 023D FFFF FFFF 2710 - .binary 00CA FFFF FFFF 2710 - .binary 00CF FFFF FFFF 2710 - .binary FFFF FFFF FFFF FFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Episode3/ReplacePinzCards.3SE0.patch.s b/system/client-functions/Episode3/ReplacePinzCards.3S__.patch.s similarity index 90% rename from system/client-functions/Episode3/ReplacePinzCards.3SE0.patch.s rename to system/client-functions/Episode3/ReplacePinzCards.3S__.patch.s index d7095e26..bf476806 100644 --- a/system/client-functions/Episode3/ReplacePinzCards.3SE0.patch.s +++ b/system/client-functions/Episode3/ReplacePinzCards.3S__.patch.s @@ -9,6 +9,8 @@ .meta name="New Pinz cards" .meta description="Replaces the cards\navailable in Pinz's\nShop" +.versions 3SJ0 3SE0 3SP0 + entry_ptr: reloc0: .offsetof start @@ -17,7 +19,7 @@ start: .include WriteCodeBlocksGC # Meseta prices - .data 0x80487E80 + .data .data 0x00000010 .data 50 .data 100 @@ -25,7 +27,7 @@ start: .data 0xFFFFFFFF # Card Capsule Machine 1 - .data 0x80487F40 + .data .data 0x00000078 .binary 017C FFFF FFFF 1B58 .binary 0173 FFFF FFFF 1B58 @@ -44,7 +46,7 @@ start: .binary FFFF FFFF FFFF FFFF # Card Capsule Machine 2 - .data 0x80487FB8 + .data .data 0x00000078 .binary 017C FFFF FFFF 2710 .binary 027E FFFF FFFF 1388 @@ -63,7 +65,7 @@ start: .binary FFFF FFFF FFFF FFFF # Card Capsule Machine 3 - .data 0x80488030 + .data .data 0x00000078 .binary 01AE FFFF FFFF 1F40 .binary 014D FFFF FFFF 2328 @@ -82,7 +84,7 @@ start: .binary FFFF FFFF FFFF FFFF # Coin machine - .data 0x804880A8 + .data .data 0x00000070 .binary 00A6 FFFF FFFF 2710 .binary 01C1 FFFF FFFF 2710 diff --git a/system/client-functions/Episode3/VIPCard.3SJ0.patch.s b/system/client-functions/Episode3/VIPCard.3SJ0.patch.s deleted file mode 100644 index 532c8c95..00000000 --- a/system/client-functions/Episode3/VIPCard.3SJ0.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta name="VIP card" -.meta description="Gives you a VIP card" - -entry_ptr: -reloc0: - .offsetof start - -start: - # Call seq_var_set(7000) - this gives the local player a VIP card - li r3, 7000 - lis r0, 0x8010 - ori r0, r0, 0xBED8 - mtctr r0 - bctr diff --git a/system/client-functions/Episode3/VIPCard.3SJT.patch.s b/system/client-functions/Episode3/VIPCard.3SJT.patch.s deleted file mode 100644 index a8cf6641..00000000 --- a/system/client-functions/Episode3/VIPCard.3SJT.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta name="VIP card" -.meta description="Gives you a VIP card" - -entry_ptr: -reloc0: - .offsetof start - -start: - # Call seq_var_set(7000) - this gives the local player a VIP card - li r3, 7000 - lis r0, 0x8010 - ori r0, r0, 0xF410 - mtctr r0 - bctr diff --git a/system/client-functions/Episode3/VIPCard.3SP0.patch.s b/system/client-functions/Episode3/VIPCard.3SP0.patch.s deleted file mode 100644 index 8664bd87..00000000 --- a/system/client-functions/Episode3/VIPCard.3SP0.patch.s +++ /dev/null @@ -1,14 +0,0 @@ -.meta name="VIP card" -.meta description="Gives you a VIP card" - -entry_ptr: -reloc0: - .offsetof start - -start: - # Call seq_var_set(7000) - this gives the local player a VIP card - li r3, 7000 - lis r0, 0x8010 - ori r0, r0, 0xC1A4 - mtctr r0 - bctr diff --git a/system/client-functions/Episode3/VIPCard.3SE0.patch.s b/system/client-functions/Episode3/VIPCard.3S__.patch.s similarity index 73% rename from system/client-functions/Episode3/VIPCard.3SE0.patch.s rename to system/client-functions/Episode3/VIPCard.3S__.patch.s index e3fbf2d7..31bcfd0a 100644 --- a/system/client-functions/Episode3/VIPCard.3SE0.patch.s +++ b/system/client-functions/Episode3/VIPCard.3S__.patch.s @@ -1,6 +1,8 @@ .meta name="VIP card" .meta description="Gives you a VIP card" +.versions 3SJT 3SJ0 3SE0 3SP0 + entry_ptr: reloc0: .offsetof start @@ -9,6 +11,6 @@ start: # Call seq_var_set(7000) - this gives the local player a VIP card li r3, 7000 lis r0, 0x8010 - ori r0, r0, 0xBD18 + ori r0, r0, mtctr r0 bctr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.2OEF.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.2OEF.patch.s deleted file mode 100644 index cbd5c14c..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.2OEF.patch.s +++ /dev/null @@ -1,26 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - mov r2, 0 - mova r0, [addrs] - mov.l r1, [r0] - mov.l [r1], r2 - mov.l r1, [r0 + 4] - mov.l [r1], r2 - mov r2, 1 - mov.l r1, [r0 + 8] - rets - mov.w [r1], r2 - .align 4 -addrs: - .data 0x8C4ED300 - .data 0x8C4ED344 - .data 0x8C4E8D88 diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.2OJ5.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.2OJ5.patch.s deleted file mode 100644 index cbd5c14c..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.2OJ5.patch.s +++ /dev/null @@ -1,26 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - mov r2, 0 - mova r0, [addrs] - mov.l r1, [r0] - mov.l [r1], r2 - mov.l r1, [r0 + 4] - mov.l [r1], r2 - mov r2, 1 - mov.l r1, [r0 + 8] - rets - mov.w [r1], r2 - .align 4 -addrs: - .data 0x8C4ED300 - .data 0x8C4ED344 - .data 0x8C4E8D88 diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.2OJF.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.2OJF.patch.s deleted file mode 100644 index ebbf67fc..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.2OJF.patch.s +++ /dev/null @@ -1,26 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - mov r2, 0 - mova r0, [addrs] - mov.l r1, [r0] - mov.l [r1], r2 - mov.l r1, [r0 + 4] - mov.l [r1], r2 - mov r2, 1 - mov.l r1, [r0 + 8] - rets - mov.w [r1], r2 - .align 4 -addrs: - .data 0x8C4E6DA0 - .data 0x8C4E6DE4 - .data 0x8C4E2828 diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.2OPF.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.2___.patch.s similarity index 64% rename from system/client-functions/ExitAnywhere/ExitAnywhere.2OPF.patch.s rename to system/client-functions/ExitAnywhere/ExitAnywhere.2___.patch.s index 417e9fe9..a04909eb 100644 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.2OPF.patch.s +++ b/system/client-functions/ExitAnywhere/ExitAnywhere.2___.patch.s @@ -4,6 +4,8 @@ .meta description="" .meta hide_from_patches_menu +.versions 2OJ5 2OJF 2OEF 2OPF + entry_ptr: reloc0: .offsetof start @@ -21,6 +23,6 @@ start: mov.w [r1], r2 .align 4 addrs: - .data 0x8C4DC800 - .data 0x8C4DC844 - .data 0x8C4D8288 + .data + .data + .data diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3OE0.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3OE0.patch.s deleted file mode 100644 index c76f5b51..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.3OE0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - li r0, 0 - stw [r13 - 0x4748], r0 - stw [r13 - 0x4744], r0 - li r0, 1 - sth [r13 - 0x4938], r0 - blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3OE1.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3OE1.patch.s deleted file mode 100644 index c76f5b51..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.3OE1.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - li r0, 0 - stw [r13 - 0x4748], r0 - stw [r13 - 0x4744], r0 - li r0, 1 - sth [r13 - 0x4938], r0 - blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3OE2.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3OE2.patch.s deleted file mode 100644 index dd036e11..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.3OE2.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - li r0, 0 - stw [r13 - 0x4728], r0 - stw [r13 - 0x4724], r0 - li r0, 1 - sth [r13 - 0x4918], r0 - blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ2.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ2.patch.s deleted file mode 100644 index 31d0865b..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ2.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - li r0, 0 - stw [r13 - 0x4760], r0 - stw [r13 - 0x475C], r0 - li r0, 1 - sth [r13 - 0x4950], r0 - blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ3.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ3.patch.s deleted file mode 100644 index 5f582bb5..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ3.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - li r0, 0 - stw [r13 - 0x4758], r0 - stw [r13 - 0x4754], r0 - li r0, 1 - sth [r13 - 0x4948], r0 - blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ4.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ4.patch.s deleted file mode 100644 index e81f26b0..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ4.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - li r0, 0 - stw [r13 - 0x4738], r0 - stw [r13 - 0x4734], r0 - li r0, 1 - sth [r13 - 0x4928], r0 - blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ5.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ5.patch.s deleted file mode 100644 index e81f26b0..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.3OJ5.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - li r0, 0 - stw [r13 - 0x4738], r0 - stw [r13 - 0x4734], r0 - li r0, 1 - sth [r13 - 0x4928], r0 - blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3OP0.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3OP0.patch.s deleted file mode 100644 index 67dab124..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.3OP0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - li r0, 0 - stw [r13 - 0x46E8], r0 - stw [r13 - 0x46E4], r0 - li r0, 1 - sth [r13 - 0x48D8], r0 - blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.3___.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.3___.patch.s new file mode 100644 index 00000000..43b0524b --- /dev/null +++ b/system/client-functions/ExitAnywhere/ExitAnywhere.3___.patch.s @@ -0,0 +1,19 @@ +# This function implements $exit in a game when no quest is loaded. + +.meta name="Exit anywhere" +.meta description="" +.meta hide_from_patches_menu + +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 + +entry_ptr: +reloc0: + .offsetof start + +start: + li r0, 0 + stw [r13 - ], r0 + stw [r13 - ], r0 + li r0, 1 + sth [r13 - ], r0 + blr diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.4OED.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.4OED.patch.s deleted file mode 100644 index 7360aa20..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.4OED.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - xor eax, eax - mov [0x00632934], eax # is_in_quest = false - mov [0x00632930], eax # dat_source_type = NONE - inc eax - mov [0x00723F88], ax # should_leave_game = true - ret diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.4OEU.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.4OEU.patch.s deleted file mode 100644 index 11589c3c..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.4OEU.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - xor eax, eax - mov [0x006321CC], eax # is_in_quest = false - mov [0x006321C8], eax # dat_source_type = NONE - inc eax - mov [0x00723808], ax # should_leave_game = true - ret diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.4OJB.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.4OJB.patch.s deleted file mode 100644 index 3a26df80..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.4OJB.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - xor eax, eax - mov [0x0062D374], eax # is_in_quest = false - mov [0x0062D370], eax # dat_source_type = NONE - inc eax - mov [0x0071E8E8], ax # should_leave_game = true - ret diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.4OJD.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.4OJD.patch.s deleted file mode 100644 index 0a46e991..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.4OJD.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - xor eax, eax - mov [0x0062D914], eax # is_in_quest = false - mov [0x0062D910], eax # dat_source_type = NONE - inc eax - mov [0x0071EF48], ax # should_leave_game = true - ret diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.4OJU.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.4OJU.patch.s deleted file mode 100644 index 1ba76beb..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.4OJU.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - xor eax, eax - mov [0x0063544C], eax # is_in_quest = false - mov [0x00635448], eax # dat_source_type = NONE - inc eax - mov [0x00726A88], ax # should_leave_game = true - ret diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.4OPD.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.4OPD.patch.s deleted file mode 100644 index 7360aa20..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.4OPD.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - xor eax, eax - mov [0x00632934], eax # is_in_quest = false - mov [0x00632930], eax # dat_source_type = NONE - inc eax - mov [0x00723F88], ax # should_leave_game = true - ret diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.4OPU.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.4OPU.patch.s deleted file mode 100644 index 82542961..00000000 --- a/system/client-functions/ExitAnywhere/ExitAnywhere.4OPU.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -# This function implements $exit in a game when no quest is loaded. - -.meta name="Exit anywhere" -.meta description="" -.meta hide_from_patches_menu - -entry_ptr: -reloc0: - .offsetof start - -start: - xor eax, eax - mov [0x00632CCC], eax # is_in_quest = false - mov [0x00632CC8], eax # dat_source_type = NONE - inc eax - mov [0x00724308], ax # should_leave_game = true - ret diff --git a/system/client-functions/ExitAnywhere/ExitAnywhere.4___.patch.s b/system/client-functions/ExitAnywhere/ExitAnywhere.4___.patch.s new file mode 100644 index 00000000..8da8929d --- /dev/null +++ b/system/client-functions/ExitAnywhere/ExitAnywhere.4___.patch.s @@ -0,0 +1,19 @@ +# This function implements $exit in a game when no quest is loaded. + +.meta name="Exit anywhere" +.meta description="" +.meta hide_from_patches_menu + +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start + +start: + xor eax, eax + mov [], eax # is_in_quest = false + mov [], eax # dat_source_type = NONE + inc eax + mov [], ax # should_leave_game = true + ret diff --git a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE0.patch.s b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE0.patch.s deleted file mode 100644 index 8c49890f..00000000 --- a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE0.patch.s +++ /dev/null @@ -1,208 +0,0 @@ -.meta name="Ext item info" -.meta description="Shows more info\nbefore picking up\nan item" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x804CABA8 - .data 0x00000004 - .data 0x00000023 # Set bit 0x20 in TWindowHelpItem::spec.flags to suppress open/close sounds - - .data 0x80262270 - .data 0x00000004 - .address 0x80262270 - bl set_window_state_on_switch_to_item - - .data 0x80262580 - .data 0x00000004 - .address 0x80262580 - b set_window_state_on_lock_on_delete - - .data 0x8026224C - .data 0x00000004 - .address 0x8026224C - bl set_window_state_on_switch_to_player - - .data 0x80262294 - .data 0x00000004 - .address 0x80262294 - bl set_window_state_on_switch_to_enemy - - .data 0x8028747C - .data 0x00000004 - .address 0x8028747C - b on_TWindowMainMenu1P_created - - .data 0x802873E0 - .data 0x00000004 - .address 0x802873E0 - b on_TWindowMainMenu1P_destroyed - - .label is_split_screen, 0x800196C8 - .label malloc7, 0x8022953C - .label TWindow::close, 0x802438E8 - .label TWindowHelpItem::init, 0x80254AF4 - .label TWindowHelpItem::set_displayed_item_by_id, 0x80254678 - .label TWindowLockOn::update_for_enemy, 0x80261C54 - .label TWindowLockOn::update_for_item, 0x80261FB0 - .label TWindowLockOn::update_for_other_player, 0x80262128 - - .data 0x80004000 - .deltaof code_start, code_end - .address 0x80004000 - -code_start: - .data 0x00000000 # Placeholder for active window pointer - .data 0x00000000 # Placeholder for TWindowMainMenu1P object - .data 0x41F00000 # TWindowHelpItem x position - .data 0x43480000 # TWindowHelpItem y position - -on_TWindowMainMenu1P_created: - lis r4, 0x8000 - stw [r4 + 0x4004], r3 - blr - -on_TWindowMainMenu1P_destroyed: - lis r4, 0x8000 - lwz r0, [r4 + 0x4004] - cmpl r0, r3 - bne on_TWindowMainMenu1P_destroyed_different_object - li r0, 0 - stw [r4 + 0x4004], r0 -on_TWindowMainMenu1P_destroyed_different_object: - blr - -set_window_state_on_lock_on_delete: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - b close_window_tail -set_window_state_on_switch_to_player: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_other_player - b close_window_tail -set_window_state_on_switch_to_enemy: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_enemy -close_window_tail: - li r3, 0 - bl set_window_state -skip_close_window: - lwz r0, [r1 + 0x24] - mtlr r0 - addi r1, r1, 0x20 - blr - -set_window_state_on_switch_to_item: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r4 - stw [r1 + 0x0C], r31 - bl TWindowLockOn::update_for_item - - lwz r3, [r1 + 0x08] - bl set_window_state - -skip_all: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -set_window_state: # (TItem* item: r3) -> void - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r3 - stw [r1 + 0x0C], r31 - lis r31, 0x8000 - - # If item is null, hide the window - cmplwi r3, 0 - beq window_should_not_exist - - # Only show the window for weapons, armors, shields, and mags (not for - # units, tools, or meseta) - lhz r4, [r3 + 0xEC] # data[0] and data[1] - cmplwi r4, 0x0103 - beq window_should_not_exist - cmplwi r4, 0x0300 - bge window_should_not_exist - - # Don't show the window in split-screen mode - bl is_split_screen - cmplwi r3, 0 - bne window_should_not_exist - - # If the TWindowMainMenu1P exists and is visible, the TWindowHelpItem should - # not be visible - lis r3, 0x8000 - lwz r3, [r3 + 0x4004] - cmplwi r3, 0 - beq window_should_exist # TWindowMainMenu does not exist - lwz r3, [r3 + 0x4C] - rlwinm. r3, r3, 0, 31, 31 - bne window_should_not_exist # TWindowMainMenu exists and is visible - -window_should_exist: - # Check if the window already exists - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - bne window_already_exists - - # The window does not exist; create it - li r3, 0xBC - bl malloc7 - stw [r31 + 0x4000], r3 - - # Call the constructor if malloc7 succeeded - cmplwi r3, 0 - beq set_window_state_return - ori r3, r31, 0x4008 - mr r4, r3 - lwz r3, [r31 + 0x4000] - lwz r5, [r13 - 0x5280] # local_client_id - bl TWindowHelpItem::init -window_already_exists: - - # Set flag 0x20, which suppresses the open/close sound - lwz r3, [r31 + 0x4000] - lwz r0, [r3 + 0x2C] - ori r0, r0, 0x20 - stw [r3 + 0x2C], r0 - - # Call TWindowHelpItem::set_displayed_item_by_id(window, item->item_id) - lwz r4, [r1 + 0x08] # item - lwz r4, [r4 + 0xD8] # item->item_id - bl TWindowHelpItem::set_displayed_item_by_id - - b set_window_state_return - -window_should_not_exist: - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - beq set_window_state_return - li r0, 0 - stw [r31 + 0x4000], r0 - bl TWindow::close - -set_window_state_return: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -code_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE2.patch.s b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE2.patch.s deleted file mode 100644 index 9676f1f2..00000000 --- a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE2.patch.s +++ /dev/null @@ -1,208 +0,0 @@ -.meta name="Ext item info" -.meta description="Shows more info\nbefore picking up\nan item" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x804CF6F0 - .data 0x00000004 - .data 0x00000023 # Set bit 0x20 in TWindowHelpItem::spec.flags to suppress open/close sounds - - .data 0x80263630 - .data 0x00000004 - .address 0x80263630 - bl set_window_state_on_switch_to_item - - .data 0x80263940 - .data 0x00000004 - .address 0x80263940 - b set_window_state_on_lock_on_delete - - .data 0x8026360C - .data 0x00000004 - .address 0x8026360C - bl set_window_state_on_switch_to_player - - .data 0x80263654 - .data 0x00000004 - .address 0x80263654 - bl set_window_state_on_switch_to_enemy - - .data 0x8028893C - .data 0x00000004 - .address 0x8028893C - b on_TWindowMainMenu1P_created - - .data 0x802888A0 - .data 0x00000004 - .address 0x802888A0 - b on_TWindowMainMenu1P_destroyed - - .label is_split_screen, 0x80019690 - .label malloc7, 0x8022A5F0 - .label TWindow::close, 0x80244A14 - .label TWindowHelpItem::init, 0x80255CCC - .label TWindowHelpItem::set_displayed_item_by_id, 0x80255850 - .label TWindowLockOn::update_for_enemy, 0x80263014 - .label TWindowLockOn::update_for_item, 0x80263370 - .label TWindowLockOn::update_for_other_player, 0x802634E8 - - .data 0x80004000 - .deltaof code_start, code_end - .address 0x80004000 - -code_start: - .data 0x00000000 # Placeholder for active window pointer - .data 0x00000000 # Placeholder for TWindowMainMenu1P object - .data 0x41F00000 # TWindowHelpItem x position - .data 0x43480000 # TWindowHelpItem y position - -on_TWindowMainMenu1P_created: - lis r4, 0x8000 - stw [r4 + 0x4004], r3 - blr - -on_TWindowMainMenu1P_destroyed: - lis r4, 0x8000 - lwz r0, [r4 + 0x4004] - cmpl r0, r3 - bne on_TWindowMainMenu1P_destroyed_different_object - li r0, 0 - stw [r4 + 0x4004], r0 -on_TWindowMainMenu1P_destroyed_different_object: - blr - -set_window_state_on_lock_on_delete: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - b close_window_tail -set_window_state_on_switch_to_player: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_other_player - b close_window_tail -set_window_state_on_switch_to_enemy: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_enemy -close_window_tail: - li r3, 0 - bl set_window_state -skip_close_window: - lwz r0, [r1 + 0x24] - mtlr r0 - addi r1, r1, 0x20 - blr - -set_window_state_on_switch_to_item: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r4 - stw [r1 + 0x0C], r31 - bl TWindowLockOn::update_for_item - - lwz r3, [r1 + 0x08] - bl set_window_state - -skip_all: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -set_window_state: # (TItem* item: r3) -> void - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r3 - stw [r1 + 0x0C], r31 - lis r31, 0x8000 - - # If item is null, hide the window - cmplwi r3, 0 - beq window_should_not_exist - - # Only show the window for weapons, armors, shields, and mags (not for - # units, tools, or meseta) - lhz r4, [r3 + 0xEC] # data[0] and data[1] - cmplwi r4, 0x0103 - beq window_should_not_exist - cmplwi r4, 0x0300 - bge window_should_not_exist - - # Don't show the window in split-screen mode - bl is_split_screen - cmplwi r3, 0 - bne window_should_not_exist - - # If the TWindowMainMenu1P exists and is visible, the TWindowHelpItem should - # not be visible - lis r3, 0x8000 - lwz r3, [r3 + 0x4004] - cmplwi r3, 0 - beq window_should_exist # TWindowMainMenu does not exist - lwz r3, [r3 + 0x4C] - rlwinm. r3, r3, 0, 31, 31 - bne window_should_not_exist # TWindowMainMenu exists and is visible - -window_should_exist: - # Check if the window already exists - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - bne window_already_exists - - # The window does not exist; create it - li r3, 0xBC - bl malloc7 - stw [r31 + 0x4000], r3 - - # Call the constructor if malloc7 succeeded - cmplwi r3, 0 - beq set_window_state_return - ori r3, r31, 0x4008 - mr r4, r3 - lwz r3, [r31 + 0x4000] - lwz r5, [r13 - 0x5260] # local_client_id - bl TWindowHelpItem::init -window_already_exists: - - # Set flag 0x20, which suppresses the open/close sound - lwz r3, [r31 + 0x4000] - lwz r0, [r3 + 0x2C] - ori r0, r0, 0x20 - stw [r3 + 0x2C], r0 - - # Call TWindowHelpItem::set_displayed_item_by_id(window, item->item_id) - lwz r4, [r1 + 0x08] # item - lwz r4, [r4 + 0xD8] # item->item_id - bl TWindowHelpItem::set_displayed_item_by_id - - b set_window_state_return - -window_should_not_exist: - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - beq set_window_state_return - li r0, 0 - stw [r31 + 0x4000], r0 - bl TWindow::close - -set_window_state_return: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -code_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ2.patch.s b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ2.patch.s deleted file mode 100644 index 50ef4d72..00000000 --- a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ2.patch.s +++ /dev/null @@ -1,208 +0,0 @@ -.meta name="Ext item info" -.meta description="Shows more info\nbefore picking up\nan item" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x804CA3D8 - .data 0x00000004 - .data 0x00000023 # Set bit 0x20 in TWindowHelpItem::spec.flags to suppress open/close sounds - - .data 0x80261998 - .data 0x00000004 - .address 0x80261998 - bl set_window_state_on_switch_to_item - - .data 0x80261CA8 - .data 0x00000004 - .address 0x80261CA8 - b set_window_state_on_lock_on_delete - - .data 0x80261974 - .data 0x00000004 - .address 0x80261974 - bl set_window_state_on_switch_to_player - - .data 0x802619BC - .data 0x00000004 - .address 0x802619BC - bl set_window_state_on_switch_to_enemy - - .data 0x80286BB0 - .data 0x00000004 - .address 0x80286BB0 - b on_TWindowMainMenu1P_created - - .data 0x80286B14 - .data 0x00000004 - .address 0x80286B14 - b on_TWindowMainMenu1P_destroyed - - .label is_split_screen, 0x800196B0 - .label malloc7, 0x80228C80 - .label TWindow::close, 0x8024302C - .label TWindowHelpItem::init, 0x8025426C - .label TWindowHelpItem::set_displayed_item_by_id, 0x80253DF0 - .label TWindowLockOn::update_for_enemy, 0x8026137C - .label TWindowLockOn::update_for_item, 0x802616D8 - .label TWindowLockOn::update_for_other_player, 0x80261850 - - .data 0x80004000 - .deltaof code_start, code_end - .address 0x80004000 - -code_start: - .data 0x00000000 # Placeholder for active window pointer - .data 0x00000000 # Placeholder for TWindowMainMenu1P object - .data 0x41F00000 # TWindowHelpItem x position - .data 0x43480000 # TWindowHelpItem y position - -on_TWindowMainMenu1P_created: - lis r4, 0x8000 - stw [r4 + 0x4004], r3 - blr - -on_TWindowMainMenu1P_destroyed: - lis r4, 0x8000 - lwz r0, [r4 + 0x4004] - cmpl r0, r3 - bne on_TWindowMainMenu1P_destroyed_different_object - li r0, 0 - stw [r4 + 0x4004], r0 -on_TWindowMainMenu1P_destroyed_different_object: - blr - -set_window_state_on_lock_on_delete: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - b close_window_tail -set_window_state_on_switch_to_player: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_other_player - b close_window_tail -set_window_state_on_switch_to_enemy: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_enemy -close_window_tail: - li r3, 0 - bl set_window_state -skip_close_window: - lwz r0, [r1 + 0x24] - mtlr r0 - addi r1, r1, 0x20 - blr - -set_window_state_on_switch_to_item: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r4 - stw [r1 + 0x0C], r31 - bl TWindowLockOn::update_for_item - - lwz r3, [r1 + 0x08] - bl set_window_state - -skip_all: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -set_window_state: # (TItem* item: r3) -> void - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r3 - stw [r1 + 0x0C], r31 - lis r31, 0x8000 - - # If item is null, hide the window - cmplwi r3, 0 - beq window_should_not_exist - - # Only show the window for weapons, armors, shields, and mags (not for - # units, tools, or meseta) - lhz r4, [r3 + 0xEC] # data[0] and data[1] - cmplwi r4, 0x0103 - beq window_should_not_exist - cmplwi r4, 0x0300 - bge window_should_not_exist - - # Don't show the window in split-screen mode - bl is_split_screen - cmplwi r3, 0 - bne window_should_not_exist - - # If the TWindowMainMenu1P exists and is visible, the TWindowHelpItem should - # not be visible - lis r3, 0x8000 - lwz r3, [r3 + 0x4004] - cmplwi r3, 0 - beq window_should_exist # TWindowMainMenu does not exist - lwz r3, [r3 + 0x4C] - rlwinm. r3, r3, 0, 31, 31 - bne window_should_not_exist # TWindowMainMenu exists and is visible - -window_should_exist: - # Check if the window already exists - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - bne window_already_exists - - # The window does not exist; create it - li r3, 0xBC - bl malloc7 - stw [r31 + 0x4000], r3 - - # Call the constructor if malloc7 succeeded - cmplwi r3, 0 - beq set_window_state_return - ori r3, r31, 0x4008 - mr r4, r3 - lwz r3, [r31 + 0x4000] - lwz r5, [r13 - 0x5298] # local_client_id - bl TWindowHelpItem::init -window_already_exists: - - # Set flag 0x20, which suppresses the open/close sound - lwz r3, [r31 + 0x4000] - lwz r0, [r3 + 0x2C] - ori r0, r0, 0x20 - stw [r3 + 0x2C], r0 - - # Call TWindowHelpItem::set_displayed_item_by_id(window, item->item_id) - lwz r4, [r1 + 0x08] # item - lwz r4, [r4 + 0xD8] # item->item_id - bl TWindowHelpItem::set_displayed_item_by_id - - b set_window_state_return - -window_should_not_exist: - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - beq set_window_state_return - li r0, 0 - stw [r31 + 0x4000], r0 - bl TWindow::close - -set_window_state_return: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -code_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ3.patch.s b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ3.patch.s deleted file mode 100644 index 455afe0a..00000000 --- a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ3.patch.s +++ /dev/null @@ -1,208 +0,0 @@ -.meta name="Ext item info" -.meta description="Shows more info\nbefore picking up\nan item" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x804CDB28 - .data 0x00000004 - .data 0x00000023 # Set bit 0x20 in TWindowHelpItem::spec.flags to suppress open/close sounds - - .data 0x80262570 - .data 0x00000004 - .address 0x80262570 - bl set_window_state_on_switch_to_item - - .data 0x80262880 - .data 0x00000004 - .address 0x80262880 - b set_window_state_on_lock_on_delete - - .data 0x8026254C - .data 0x00000004 - .address 0x8026254C - bl set_window_state_on_switch_to_player - - .data 0x80262594 - .data 0x00000004 - .address 0x80262594 - bl set_window_state_on_switch_to_enemy - - .data 0x80287924 - .data 0x00000004 - .address 0x80287924 - b on_TWindowMainMenu1P_created - - .data 0x80287888 - .data 0x00000004 - .address 0x80287888 - b on_TWindowMainMenu1P_destroyed - - .label is_split_screen, 0x800196E0 - .label malloc7, 0x8022961C - .label TWindow::close, 0x802439EC - .label TWindowHelpItem::init, 0x80254D14 - .label TWindowHelpItem::set_displayed_item_by_id, 0x80254898 - .label TWindowLockOn::update_for_enemy, 0x80261F54 - .label TWindowLockOn::update_for_item, 0x802622B0 - .label TWindowLockOn::update_for_other_player, 0x80262428 - - .data 0x80004000 - .deltaof code_start, code_end - .address 0x80004000 - -code_start: - .data 0x00000000 # Placeholder for active window pointer - .data 0x00000000 # Placeholder for TWindowMainMenu1P object - .data 0x41F00000 # TWindowHelpItem x position - .data 0x43480000 # TWindowHelpItem y position - -on_TWindowMainMenu1P_created: - lis r4, 0x8000 - stw [r4 + 0x4004], r3 - blr - -on_TWindowMainMenu1P_destroyed: - lis r4, 0x8000 - lwz r0, [r4 + 0x4004] - cmpl r0, r3 - bne on_TWindowMainMenu1P_destroyed_different_object - li r0, 0 - stw [r4 + 0x4004], r0 -on_TWindowMainMenu1P_destroyed_different_object: - blr - -set_window_state_on_lock_on_delete: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - b close_window_tail -set_window_state_on_switch_to_player: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_other_player - b close_window_tail -set_window_state_on_switch_to_enemy: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_enemy -close_window_tail: - li r3, 0 - bl set_window_state -skip_close_window: - lwz r0, [r1 + 0x24] - mtlr r0 - addi r1, r1, 0x20 - blr - -set_window_state_on_switch_to_item: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r4 - stw [r1 + 0x0C], r31 - bl TWindowLockOn::update_for_item - - lwz r3, [r1 + 0x08] - bl set_window_state - -skip_all: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -set_window_state: # (TItem* item: r3) -> void - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r3 - stw [r1 + 0x0C], r31 - lis r31, 0x8000 - - # If item is null, hide the window - cmplwi r3, 0 - beq window_should_not_exist - - # Only show the window for weapons, armors, shields, and mags (not for - # units, tools, or meseta) - lhz r4, [r3 + 0xEC] # data[0] and data[1] - cmplwi r4, 0x0103 - beq window_should_not_exist - cmplwi r4, 0x0300 - bge window_should_not_exist - - # Don't show the window in split-screen mode - bl is_split_screen - cmplwi r3, 0 - bne window_should_not_exist - - # If the TWindowMainMenu1P exists and is visible, the TWindowHelpItem should - # not be visible - lis r3, 0x8000 - lwz r3, [r3 + 0x4004] - cmplwi r3, 0 - beq window_should_exist # TWindowMainMenu does not exist - lwz r3, [r3 + 0x4C] - rlwinm. r3, r3, 0, 31, 31 - bne window_should_not_exist # TWindowMainMenu exists and is visible - -window_should_exist: - # Check if the window already exists - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - bne window_already_exists - - # The window does not exist; create it - li r3, 0xBC - bl malloc7 - stw [r31 + 0x4000], r3 - - # Call the constructor if malloc7 succeeded - cmplwi r3, 0 - beq set_window_state_return - ori r3, r31, 0x4008 - mr r4, r3 - lwz r3, [r31 + 0x4000] - lwz r5, [r13 - 0x5290] # local_client_id - bl TWindowHelpItem::init -window_already_exists: - - # Set flag 0x20, which suppresses the open/close sound - lwz r3, [r31 + 0x4000] - lwz r0, [r3 + 0x2C] - ori r0, r0, 0x20 - stw [r3 + 0x2C], r0 - - # Call TWindowHelpItem::set_displayed_item_by_id(window, item->item_id) - lwz r4, [r1 + 0x08] # item - lwz r4, [r4 + 0xD8] # item->item_id - bl TWindowHelpItem::set_displayed_item_by_id - - b set_window_state_return - -window_should_not_exist: - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - beq set_window_state_return - li r0, 0 - stw [r31 + 0x4000], r0 - bl TWindow::close - -set_window_state_return: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -code_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ4.patch.s b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ4.patch.s deleted file mode 100644 index 12701478..00000000 --- a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ4.patch.s +++ /dev/null @@ -1,208 +0,0 @@ -.meta name="Ext item info" -.meta description="Shows more info\nbefore picking up\nan item" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x804D0078 - .data 0x00000004 - .data 0x00000023 # Set bit 0x20 in TWindowHelpItem::spec.flags to suppress open/close sounds - - .data 0x802635B8 - .data 0x00000004 - .address 0x802635B8 - bl set_window_state_on_switch_to_item - - .data 0x802638C8 - .data 0x00000004 - .address 0x802638C8 - b set_window_state_on_lock_on_delete - - .data 0x80263594 - .data 0x00000004 - .address 0x80263594 - bl set_window_state_on_switch_to_player - - .data 0x802635DC - .data 0x00000004 - .address 0x802635DC - bl set_window_state_on_switch_to_enemy - - .data 0x802889D4 - .data 0x00000004 - .address 0x802889D4 - b on_TWindowMainMenu1P_created - - .data 0x80288938 - .data 0x00000004 - .address 0x80288938 - b on_TWindowMainMenu1P_destroyed - - .label is_split_screen, 0x800111BC - .label malloc7, 0x8022A544 - .label TWindow::close, 0x80244940 - .label TWindowHelpItem::init, 0x80255CC8 - .label TWindowHelpItem::set_displayed_item_by_id, 0x8025584C - .label TWindowLockOn::update_for_enemy, 0x80262F9C - .label TWindowLockOn::update_for_item, 0x802632F8 - .label TWindowLockOn::update_for_other_player, 0x80263470 - - .data 0x80004000 - .deltaof code_start, code_end - .address 0x80004000 - -code_start: - .data 0x00000000 # Placeholder for active window pointer - .data 0x00000000 # Placeholder for TWindowMainMenu1P object - .data 0x41F00000 # TWindowHelpItem x position - .data 0x43480000 # TWindowHelpItem y position - -on_TWindowMainMenu1P_created: - lis r4, 0x8000 - stw [r4 + 0x4004], r3 - blr - -on_TWindowMainMenu1P_destroyed: - lis r4, 0x8000 - lwz r0, [r4 + 0x4004] - cmpl r0, r3 - bne on_TWindowMainMenu1P_destroyed_different_object - li r0, 0 - stw [r4 + 0x4004], r0 -on_TWindowMainMenu1P_destroyed_different_object: - blr - -set_window_state_on_lock_on_delete: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - b close_window_tail -set_window_state_on_switch_to_player: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_other_player - b close_window_tail -set_window_state_on_switch_to_enemy: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_enemy -close_window_tail: - li r3, 0 - bl set_window_state -skip_close_window: - lwz r0, [r1 + 0x24] - mtlr r0 - addi r1, r1, 0x20 - blr - -set_window_state_on_switch_to_item: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r4 - stw [r1 + 0x0C], r31 - bl TWindowLockOn::update_for_item - - lwz r3, [r1 + 0x08] - bl set_window_state - -skip_all: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -set_window_state: # (TItem* item: r3) -> void - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r3 - stw [r1 + 0x0C], r31 - lis r31, 0x8000 - - # If item is null, hide the window - cmplwi r3, 0 - beq window_should_not_exist - - # Only show the window for weapons, armors, shields, and mags (not for - # units, tools, or meseta) - lhz r4, [r3 + 0xEC] # data[0] and data[1] - cmplwi r4, 0x0103 - beq window_should_not_exist - cmplwi r4, 0x0300 - bge window_should_not_exist - - # Don't show the window in split-screen mode - bl is_split_screen - cmplwi r3, 0 - bne window_should_not_exist - - # If the TWindowMainMenu1P exists and is visible, the TWindowHelpItem should - # not be visible - lis r3, 0x8000 - lwz r3, [r3 + 0x4004] - cmplwi r3, 0 - beq window_should_exist # TWindowMainMenu does not exist - lwz r3, [r3 + 0x4C] - rlwinm. r3, r3, 0, 31, 31 - bne window_should_not_exist # TWindowMainMenu exists and is visible - -window_should_exist: - # Check if the window already exists - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - bne window_already_exists - - # The window does not exist; create it - li r3, 0xBC - bl malloc7 - stw [r31 + 0x4000], r3 - - # Call the constructor if malloc7 succeeded - cmplwi r3, 0 - beq set_window_state_return - ori r3, r31, 0x4008 - mr r4, r3 - lwz r3, [r31 + 0x4000] - lwz r5, [r13 - 0x5270] # local_client_id - bl TWindowHelpItem::init -window_already_exists: - - # Set flag 0x20, which suppresses the open/close sound - lwz r3, [r31 + 0x4000] - lwz r0, [r3 + 0x2C] - ori r0, r0, 0x20 - stw [r3 + 0x2C], r0 - - # Call TWindowHelpItem::set_displayed_item_by_id(window, item->item_id) - lwz r4, [r1 + 0x08] # item - lwz r4, [r4 + 0xD8] # item->item_id - bl TWindowHelpItem::set_displayed_item_by_id - - b set_window_state_return - -window_should_not_exist: - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - beq set_window_state_return - li r0, 0 - stw [r31 + 0x4000], r0 - bl TWindow::close - -set_window_state_return: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -code_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ5.patch.s b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ5.patch.s deleted file mode 100644 index 6ae45343..00000000 --- a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OJ5.patch.s +++ /dev/null @@ -1,208 +0,0 @@ -.meta name="Ext item info" -.meta description="Shows more info\nbefore picking up\nan item" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x804CFE18 - .data 0x00000004 - .data 0x00000023 # Set bit 0x20 in TWindowHelpItem::spec.flags to suppress open/close sounds - - .data 0x8026336C - .data 0x00000004 - .address 0x8026336C - bl set_window_state_on_switch_to_item - - .data 0x8026367C - .data 0x00000004 - .address 0x8026367C - b set_window_state_on_lock_on_delete - - .data 0x80263348 - .data 0x00000004 - .address 0x80263348 - bl set_window_state_on_switch_to_player - - .data 0x80263390 - .data 0x00000004 - .address 0x80263390 - bl set_window_state_on_switch_to_enemy - - .data 0x80288788 - .data 0x00000004 - .address 0x80288788 - b on_TWindowMainMenu1P_created - - .data 0x802886EC - .data 0x00000004 - .address 0x802886EC - b on_TWindowMainMenu1P_destroyed - - .label is_split_screen, 0x80019690 - .label malloc7, 0x8022A2BC - .label TWindow::close, 0x802446E0 - .label TWindowHelpItem::init, 0x80255A08 - .label TWindowHelpItem::set_displayed_item_by_id, 0x8025558C - .label TWindowLockOn::update_for_enemy, 0x80262D50 - .label TWindowLockOn::update_for_item, 0x802630AC - .label TWindowLockOn::update_for_other_player, 0x80263224 - - .data 0x80004000 - .deltaof code_start, code_end - .address 0x80004000 - -code_start: - .data 0x00000000 # Placeholder for active window pointer - .data 0x00000000 # Placeholder for TWindowMainMenu1P object - .data 0x41F00000 # TWindowHelpItem x position - .data 0x43480000 # TWindowHelpItem y position - -on_TWindowMainMenu1P_created: - lis r4, 0x8000 - stw [r4 + 0x4004], r3 - blr - -on_TWindowMainMenu1P_destroyed: - lis r4, 0x8000 - lwz r0, [r4 + 0x4004] - cmpl r0, r3 - bne on_TWindowMainMenu1P_destroyed_different_object - li r0, 0 - stw [r4 + 0x4004], r0 -on_TWindowMainMenu1P_destroyed_different_object: - blr - -set_window_state_on_lock_on_delete: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - b close_window_tail -set_window_state_on_switch_to_player: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_other_player - b close_window_tail -set_window_state_on_switch_to_enemy: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_enemy -close_window_tail: - li r3, 0 - bl set_window_state -skip_close_window: - lwz r0, [r1 + 0x24] - mtlr r0 - addi r1, r1, 0x20 - blr - -set_window_state_on_switch_to_item: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r4 - stw [r1 + 0x0C], r31 - bl TWindowLockOn::update_for_item - - lwz r3, [r1 + 0x08] - bl set_window_state - -skip_all: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -set_window_state: # (TItem* item: r3) -> void - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r3 - stw [r1 + 0x0C], r31 - lis r31, 0x8000 - - # If item is null, hide the window - cmplwi r3, 0 - beq window_should_not_exist - - # Only show the window for weapons, armors, shields, and mags (not for - # units, tools, or meseta) - lhz r4, [r3 + 0xEC] # data[0] and data[1] - cmplwi r4, 0x0103 - beq window_should_not_exist - cmplwi r4, 0x0300 - bge window_should_not_exist - - # Don't show the window in split-screen mode - bl is_split_screen - cmplwi r3, 0 - bne window_should_not_exist - - # If the TWindowMainMenu1P exists and is visible, the TWindowHelpItem should - # not be visible - lis r3, 0x8000 - lwz r3, [r3 + 0x4004] - cmplwi r3, 0 - beq window_should_exist # TWindowMainMenu does not exist - lwz r3, [r3 + 0x4C] - rlwinm. r3, r3, 0, 31, 31 - bne window_should_not_exist # TWindowMainMenu exists and is visible - -window_should_exist: - # Check if the window already exists - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - bne window_already_exists - - # The window does not exist; create it - li r3, 0xBC - bl malloc7 - stw [r31 + 0x4000], r3 - - # Call the constructor if malloc7 succeeded - cmplwi r3, 0 - beq set_window_state_return - ori r3, r31, 0x4008 - mr r4, r3 - lwz r3, [r31 + 0x4000] - lwz r5, [r13 - 0x5270] # local_client_id - bl TWindowHelpItem::init -window_already_exists: - - # Set flag 0x20, which suppresses the open/close sound - lwz r3, [r31 + 0x4000] - lwz r0, [r3 + 0x2C] - ori r0, r0, 0x20 - stw [r3 + 0x2C], r0 - - # Call TWindowHelpItem::set_displayed_item_by_id(window, item->item_id) - lwz r4, [r1 + 0x08] # item - lwz r4, [r4 + 0xD8] # item->item_id - bl TWindowHelpItem::set_displayed_item_by_id - - b set_window_state_return - -window_should_not_exist: - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - beq set_window_state_return - li r0, 0 - stw [r31 + 0x4000], r0 - bl TWindow::close - -set_window_state_return: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -code_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OP0.patch.s b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OP0.patch.s deleted file mode 100644 index 6324f262..00000000 --- a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OP0.patch.s +++ /dev/null @@ -1,208 +0,0 @@ -.meta name="Ext item info" -.meta description="Shows more info\nbefore picking up\nan item" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x804CFAE0 - .data 0x00000004 - .data 0x00000023 # Set bit 0x20 in TWindowHelpItem::spec.flags to suppress open/close sounds - - .data 0x80262E78 - .data 0x00000004 - .address 0x80262E78 - bl set_window_state_on_switch_to_item - - .data 0x80263188 - .data 0x00000004 - .address 0x80263188 - b set_window_state_on_lock_on_delete - - .data 0x80262E54 - .data 0x00000004 - .address 0x80262E54 - bl set_window_state_on_switch_to_player - - .data 0x80262E9C - .data 0x00000004 - .address 0x80262E9C - bl set_window_state_on_switch_to_enemy - - .data 0x80288140 - .data 0x00000004 - .address 0x80288140 - b on_TWindowMainMenu1P_created - - .data 0x802880A4 - .data 0x00000004 - .address 0x802880A4 - b on_TWindowMainMenu1P_destroyed - - .label is_split_screen, 0x80019708 - .label malloc7, 0x80229E88 - .label TWindow::close, 0x8024425C - .label TWindowHelpItem::init, 0x80255514 - .label TWindowHelpItem::set_displayed_item_by_id, 0x80255098 - .label TWindowLockOn::update_for_enemy, 0x8026285C - .label TWindowLockOn::update_for_item, 0x80262BB8 - .label TWindowLockOn::update_for_other_player, 0x80262D30 - - .data 0x80004000 - .deltaof code_start, code_end - .address 0x80004000 - -code_start: - .data 0x00000000 # Placeholder for active window pointer - .data 0x00000000 # Placeholder for TWindowMainMenu1P object - .data 0x41F00000 # TWindowHelpItem x position - .data 0x43480000 # TWindowHelpItem y position - -on_TWindowMainMenu1P_created: - lis r4, 0x8000 - stw [r4 + 0x4004], r3 - blr - -on_TWindowMainMenu1P_destroyed: - lis r4, 0x8000 - lwz r0, [r4 + 0x4004] - cmpl r0, r3 - bne on_TWindowMainMenu1P_destroyed_different_object - li r0, 0 - stw [r4 + 0x4004], r0 -on_TWindowMainMenu1P_destroyed_different_object: - blr - -set_window_state_on_lock_on_delete: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - b close_window_tail -set_window_state_on_switch_to_player: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_other_player - b close_window_tail -set_window_state_on_switch_to_enemy: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - bl TWindowLockOn::update_for_enemy -close_window_tail: - li r3, 0 - bl set_window_state -skip_close_window: - lwz r0, [r1 + 0x24] - mtlr r0 - addi r1, r1, 0x20 - blr - -set_window_state_on_switch_to_item: - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r4 - stw [r1 + 0x0C], r31 - bl TWindowLockOn::update_for_item - - lwz r3, [r1 + 0x08] - bl set_window_state - -skip_all: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -set_window_state: # (TItem* item: r3) -> void - stwu [r1 - 0x20], r1 - mflr r0 - stw [r1 + 0x24], r0 - stw [r1 + 0x08], r3 - stw [r1 + 0x0C], r31 - lis r31, 0x8000 - - # If item is null, hide the window - cmplwi r3, 0 - beq window_should_not_exist - - # Only show the window for weapons, armors, shields, and mags (not for - # units, tools, or meseta) - lhz r4, [r3 + 0xEC] # data[0] and data[1] - cmplwi r4, 0x0103 - beq window_should_not_exist - cmplwi r4, 0x0300 - bge window_should_not_exist - - # Don't show the window in split-screen mode - bl is_split_screen - cmplwi r3, 0 - bne window_should_not_exist - - # If the TWindowMainMenu1P exists and is visible, the TWindowHelpItem should - # not be visible - lis r3, 0x8000 - lwz r3, [r3 + 0x4004] - cmplwi r3, 0 - beq window_should_exist # TWindowMainMenu does not exist - lwz r3, [r3 + 0x4C] - rlwinm. r3, r3, 0, 31, 31 - bne window_should_not_exist # TWindowMainMenu exists and is visible - -window_should_exist: - # Check if the window already exists - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - bne window_already_exists - - # The window does not exist; create it - li r3, 0xBC - bl malloc7 - stw [r31 + 0x4000], r3 - - # Call the constructor if malloc7 succeeded - cmplwi r3, 0 - beq set_window_state_return - ori r3, r31, 0x4008 - mr r4, r3 - lwz r3, [r31 + 0x4000] - lwz r5, [r13 - 0x5220] # local_client_id - bl TWindowHelpItem::init -window_already_exists: - - # Set flag 0x20, which suppresses the open/close sound - lwz r3, [r31 + 0x4000] - lwz r0, [r3 + 0x2C] - ori r0, r0, 0x20 - stw [r3 + 0x2C], r0 - - # Call TWindowHelpItem::set_displayed_item_by_id(window, item->item_id) - lwz r4, [r1 + 0x08] # item - lwz r4, [r4 + 0xD8] # item->item_id - bl TWindowHelpItem::set_displayed_item_by_id - - b set_window_state_return - -window_should_not_exist: - lwz r3, [r31 + 0x4000] - cmplwi r3, 0 - beq set_window_state_return - li r0, 0 - stw [r31 + 0x4000], r0 - bl TWindow::close - -set_window_state_return: - lwz r31, [r1 + 0x0C] - lwz r0, [r1 + 0x24] - addi r1, r1, 0x20 - mtlr r0 - blr - -code_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE1.patch.s b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3___.patch.s similarity index 64% rename from system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE1.patch.s rename to system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3___.patch.s index 0762d940..7a392367 100644 --- a/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3OE1.patch.s +++ b/system/client-functions/ExtendedItemInfo/ExtendedItemInfo.3___.patch.s @@ -1,54 +1,56 @@ .meta name="Ext item info" .meta description="Shows more info\nbefore picking up\nan item" +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksGC - .data 0x804CB088 + .data .data 0x00000004 .data 0x00000023 # Set bit 0x20 in TWindowHelpItem::spec.flags to suppress open/close sounds - .data 0x80262270 + .data .data 0x00000004 - .address 0x80262270 + .address bl set_window_state_on_switch_to_item - .data 0x80262580 + .data .data 0x00000004 - .address 0x80262580 + .address b set_window_state_on_lock_on_delete - .data 0x8026224C + .data .data 0x00000004 - .address 0x8026224C + .address bl set_window_state_on_switch_to_player - .data 0x80262294 + .data .data 0x00000004 - .address 0x80262294 + .address bl set_window_state_on_switch_to_enemy - .data 0x802874C0 + .data .data 0x00000004 - .address 0x802874C0 + .address b on_TWindowMainMenu1P_created - .data 0x80287424 + .data .data 0x00000004 - .address 0x80287424 + .address b on_TWindowMainMenu1P_destroyed - .label is_split_screen, 0x800196C8 - .label malloc7, 0x8022953C - .label TWindow::close, 0x802438E8 - .label TWindowHelpItem::init, 0x80254AF4 - .label TWindowHelpItem::set_displayed_item_by_id, 0x80254678 - .label TWindowLockOn::update_for_enemy, 0x80261C54 - .label TWindowLockOn::update_for_item, 0x80261FB0 - .label TWindowLockOn::update_for_other_player, 0x80262128 + .label is_split_screen, + .label malloc7, + .label TWindow::close, + .label TWindowHelpItem::init, + .label TWindowHelpItem::set_displayed_item_by_id, + .label TWindowLockOn::update_for_enemy, + .label TWindowLockOn::update_for_item, + .label TWindowLockOn::update_for_other_player, .data 0x80004000 .deltaof code_start, code_end @@ -170,7 +172,7 @@ window_should_exist: ori r3, r31, 0x4008 mr r4, r3 lwz r3, [r31 + 0x4000] - lwz r5, [r13 - 0x5280] # local_client_id + lwz r5, [r13 - ] # local_client_id bl TWindowHelpItem::init window_already_exists: diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OEF.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OEF.patch.s deleted file mode 100644 index a476f49b..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OEF.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoDC -data: - .data 0x8C379C6A # malloc9 - .data 0x8C4EC4E0 # char_file_part1 (anchor: send_61) - .data 0x8C4EC4E4 # char_file_part2 (anchor: send_61) - .data 0x8C429500 # root_protocol (anchor: send_61) - .data 0x8C379D38 # free9 - .data 0x8C010A1C # TProtocol_wait_send_drain diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OJ5.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OJ5.patch.s deleted file mode 100644 index a476f49b..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OJ5.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoDC -data: - .data 0x8C379C6A # malloc9 - .data 0x8C4EC4E0 # char_file_part1 (anchor: send_61) - .data 0x8C4EC4E4 # char_file_part2 (anchor: send_61) - .data 0x8C429500 # root_protocol (anchor: send_61) - .data 0x8C379D38 # free9 - .data 0x8C010A1C # TProtocol_wait_send_drain diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OJF.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OJF.patch.s deleted file mode 100644 index 05d628f8..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OJF.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoDC -data: - .data 0x8C3772AE # malloc9 - .data 0x8C4E5F80 # char_file_part1 (anchor: send_61) - .data 0x8C4E5F84 # char_file_part2 (anchor: send_61) - .data 0x8C422F80 # root_protocol (anchor: send_61) - .data 0x8C37737C # free9 - .data 0x8C010A1C # TProtocol_wait_send_drain diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OPF.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OPF.patch.s deleted file mode 100644 index e8006882..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2OPF.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoDC -data: - .data 0x8C36CD2A # malloc9 - .data 0x8C4DB9E0 # char_file_part1 (anchor: send_61) - .data 0x8C4DB9E4 # char_file_part2 (anchor: send_61) - .data 0x8C418A00 # root_protocol (anchor: send_61) - .data 0x8C36CDF8 # free9 - .data 0x8C010A1C # TProtocol_wait_send_drain diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoDC.sh4.inc.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2___.patch.s similarity index 76% rename from system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoDC.sh4.inc.s rename to system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2___.patch.s index 576a45fd..b75d1eec 100644 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoDC.sh4.inc.s +++ b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.2___.patch.s @@ -1,3 +1,12 @@ +.meta hide_from_patches_menu +.meta name="GetExtendedPlayerInfo" +.meta description="" + +.versions 2OJ5 2OJF 2OEF 2OPF + +entry_ptr: +reloc0: + .offsetof start start: sts.l -[r15], pr mov.l -[r15], r8 @@ -117,4 +126,11 @@ memcpy_done: nop .align 4 + data: + .data # malloc9 + .data # char_file_part1 (anchor: send_61) + .data # char_file_part2 (anchor: send_61) + .data # root_protocol (anchor: send_61) + .data # free9 + .data # TProtocol_wait_send_drain diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE0.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE0.patch.s deleted file mode 100644 index 3a5b4154..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x803DB0E0 # malloc9 - .data 0x805C5760 # char_file_part1 - .data 0x805C5764 # char_file_part2 - .data 0x805C4D80 # root_protocol (anchor: send_05) - .data 0x803DB138 # free9 - .data 0x800787B0 # TProtocol_wait_send_drain - .data 0x00002370 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE1.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE1.patch.s deleted file mode 100644 index a7265d43..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE1.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x803DB138 # malloc9 - .data 0x805CC740 # char_file_part1 - .data 0x805CC744 # char_file_part2 - .data 0x805CBD60 # root_protocol (anchor: send_05) - .data 0x803DB190 # free9 - .data 0x800787B0 # TProtocol_wait_send_drain - .data 0x00002370 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE2.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE2.patch.s deleted file mode 100644 index d93387f1..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OE2.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x803DE838 # malloc9 - .data 0x805D5F60 # char_file_part1 - .data 0x805D5F64 # char_file_part2 - .data 0x805D5580 # root_protocol (anchor: send_05) - .data 0x803DE890 # free9 - .data 0x8007889C # TProtocol_wait_send_drain - .data 0x00002370 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ2.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ2.patch.s deleted file mode 100644 index c3aea3bc..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ2.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x803D9E38 # malloc9 - .data 0x805C4E68 # char_file_part1 - .data 0x805C4E6C # char_file_part2 - .data 0x805C4488 # root_protocol (anchor: send_05) - .data 0x803D9E90 # free9 - .data 0x8007848C # TProtocol_wait_send_drain - .data 0x00002370 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ3.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ3.patch.s deleted file mode 100644 index fe98f83a..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ3.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x803DC818 # malloc9 - .data 0x805CF430 # char_file_part1 - .data 0x805CF434 # char_file_part2 - .data 0x805CEA50 # root_protocol (anchor: send_05) - .data 0x803DC870 # free9 - .data 0x800785F0 # TProtocol_wait_send_drain - .data 0x00002370 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ4.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ4.patch.s deleted file mode 100644 index 8f484a73..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ4.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x803DE6B8 # malloc9 - .data 0x805D68B0 # char_file_part1 - .data 0x805D68B4 # char_file_part2 - .data 0x805D5ED0 # root_protocol (anchor: send_05) - .data 0x803DE710 # free9 - .data 0x80078748 # TProtocol_wait_send_drain - .data 0x00002370 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ5.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ5.patch.s deleted file mode 100644 index 5864c522..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OJ5.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x803DE468 # malloc9 - .data 0x805D6650 # char_file_part1 - .data 0x805D6654 # char_file_part2 - .data 0x805D5C70 # root_protocol (anchor: send_05) - .data 0x803DE4C0 # free9 - .data 0x800786A0 # TProtocol_wait_send_drain - .data 0x00002370 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OP0.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OP0.patch.s deleted file mode 100644 index 571f3a29..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3OP0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x803DD328 # malloc9 - .data 0x805D21A0 # char_file_part1 - .data 0x805D21A4 # char_file_part2 - .data 0x805D17C0 # root_protocol (anchor: send_05) - .data 0x803DD380 # free9 - .data 0x80078820 # TProtocol_wait_send_drain - .data 0x00002370 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SE0.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SE0.patch.s deleted file mode 100644 index 1a8a1f28..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SE0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x8038C0EC # malloc9 - .data 0x8057A6F0 # char_file_part1 - .data 0x8057A6F4 # char_file_part2 - .data 0x8057A150 # root_protocol (anchor: send_05) - .data 0x8038C144 # free9 - .data 0x80026B88 # TProtocol_wait_send_drain - .data 0x0000358C # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SJ0.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SJ0.patch.s deleted file mode 100644 index b1a5591b..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SJ0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x8038B09C # malloc9 - .data 0x80579880 # char_file_part1 - .data 0x80579884 # char_file_part2 - .data 0x805792E0 # root_protocol (anchor: send_05) - .data 0x8038B0F4 # free9 - .data 0x80026A04 # TProtocol_wait_send_drain - .data 0x0000358C # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SJT.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SJT.patch.s deleted file mode 100644 index bada637e..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SJT.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x80358094 # malloc9 - .data 0x8058B980 # char_file_part1 - .data 0x8058B984 # char_file_part2 - .data 0x8058B3A0 # root_protocol (anchor: send_05) - .data 0x803580EC # free9 - .data 0x80026FE4 # TProtocol_wait_send_drain - .data 0x000041F4 # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SP0.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SP0.patch.s deleted file mode 100644 index a34e3c10..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3SP0.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoGC -data: - .data 0x8038CF94 # malloc9 - .data 0x8057CB10 # char_file_part1 - .data 0x8057CB14 # char_file_part2 - .data 0x8057C570 # root_protocol (anchor: send_05) - .data 0x8038CFEC # free9 - .data 0x80026BB8 # TProtocol_wait_send_drain - .data 0x0000358C # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoGC.ppc.inc.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3___.patch.s similarity index 60% rename from system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoGC.ppc.inc.s rename to system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3___.patch.s index 96599caa..c80f0c44 100644 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoGC.ppc.inc.s +++ b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.3___.patch.s @@ -1,3 +1,13 @@ +.meta hide_from_patches_menu +.meta name="GetExtendedPlayerInfo" +.meta description="" + +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 3SJT 3SJ0 3SE0 3SP0 + +entry_ptr: +reloc0: + .offsetof start +start: stwu [r1 - 0x40], r1 mflr r0 stw [r1 + 0x44], r0 @@ -98,3 +108,11 @@ memcpy: get_data_ptr: bl get_data_ptr_ret +data: + .data # malloc9 + .data # char_file_part1 + .data # char_file_part2 + .data # root_protocol (anchor: send_05) + .data # free9 + .data # TProtocol_wait_send_drain + .data # sizeof(*char_file_part2) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OED.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OED.patch.s deleted file mode 100644 index 1e2b3c71..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OED.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoXB -data: - .data 0x002FE5A0 # malloc9(uint32_t size @ stack) - .data 0x00632E04 # char_file_part1 - .data 0x00632EA8 # char_file_part2 - .data 0x0072459C # root_protocol - .data 0x002FE650 # free9(void* ptr @ stack) - .data 0x002AD870 # TProtocol::wait_send_drain(TProtocol* this @ esi) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OEU.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OEU.patch.s deleted file mode 100644 index 43ae87b0..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OEU.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoXB -data: - .data 0x002FE700 # malloc9(uint32_t size @ stack) - .data 0x0063269C # char_file_part1 - .data 0x00632740 # char_file_part2 - .data 0x00723E20 # root_protocol - .data 0x002FE7B0 # free9(void* ptr @ stack) - .data 0x002ADA50 # TProtocol::wait_send_drain(TProtocol* this @ esi) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJB.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJB.patch.s deleted file mode 100644 index d280346c..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJB.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoXB -data: - .data 0x002FC5C0 # malloc9(uint32_t size @ stack) - .data 0x0062D844 # char_file_part1 - .data 0x0062D8E8 # char_file_part2 - .data 0x0071EEFC # root_protocol - .data 0x002FC670 # free9(void* ptr @ stack) - .data 0x002ABE30 # TProtocol::wait_send_drain(TProtocol* this @ esi) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJD.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJD.patch.s deleted file mode 100644 index 19928aad..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJD.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoXB -data: - .data 0x002FD110 # malloc9(uint32_t size @ stack) - .data 0x0062DDE4 # char_file_part1 - .data 0x0062DE88 # char_file_part2 - .data 0x0071F55C # root_protocol - .data 0x002FD1C0 # free9(void* ptr @ stack) - .data 0x002AC910 # TProtocol::wait_send_drain(TProtocol* this @ esi) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJU.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJU.patch.s deleted file mode 100644 index 45f3e6df..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OJU.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoXB -data: - .data 0x002FE700 # malloc9(uint32_t size @ stack) - .data 0x0063591C # char_file_part1 - .data 0x006359C0 # char_file_part2 - .data 0x007270A0 # root_protocol - .data 0x002FE7B0 # free9(void* ptr @ stack) - .data 0x002ADDE0 # TProtocol::wait_send_drain(TProtocol* this @ esi) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OPD.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OPD.patch.s deleted file mode 100644 index b3dc0015..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OPD.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoXB -data: - .data 0x002FE5D0 # malloc9(uint32_t size @ stack) - .data 0x00632E04 # char_file_part1 - .data 0x00632EA8 # char_file_part2 - .data 0x0072459C # root_protocol - .data 0x002FE680 # free9(void* ptr @ stack) - .data 0x002AD890 # TProtocol::wait_send_drain(TProtocol* this @ esi) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OPU.patch.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OPU.patch.s deleted file mode 100644 index a4083697..00000000 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4OPU.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta hide_from_patches_menu -.meta name="GetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include GetExtendedPlayerInfoXB -data: - .data 0x002FE770 # malloc9(uint32_t size @ stack) - .data 0x0063319C # char_file_part1 - .data 0x00633240 # char_file_part2 - .data 0x00724920 # root_protocol - .data 0x002FE820 # free9(void* ptr @ stack) - .data 0x002ADB10 # TProtocol::wait_send_drain(TProtocol* this @ esi) diff --git a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoXB.x86.inc.s b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4___.patch.s similarity index 66% rename from system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoXB.x86.inc.s rename to system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4___.patch.s index 969bae3f..9df7b140 100644 --- a/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfoXB.x86.inc.s +++ b/system/client-functions/ExtendedPlayerInfo/GetExtendedPlayerInfo.4___.patch.s @@ -1,4 +1,13 @@ - # esp = 0xd0031ce0 +.meta hide_from_patches_menu +.meta name="GetExtendedPlayerInfo" +.meta description="" + +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start +start: push ebx push edi push esi @@ -74,3 +83,11 @@ memcpy: get_data_ptr: call get_data_ptr_ret + +data: + .data # malloc9(uint32_t size @ stack) + .data # char_file_part1 + .data # char_file_part2 + .data # root_protocol + .data # free9(void* ptr @ stack) + .data # TProtocol::wait_send_drain(TProtocol* this @ esi) diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OEF.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OEF.patch.s deleted file mode 100644 index ea85fbe2..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OEF.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoDC -data: - .data 0x8C4EC4E0 # char_file_part1 - .data 0x8C4EC4E4 # char_file_part2 - # Server adds a PSODCV2CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OJ5.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OJ5.patch.s deleted file mode 100644 index ea85fbe2..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OJ5.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoDC -data: - .data 0x8C4EC4E0 # char_file_part1 - .data 0x8C4EC4E4 # char_file_part2 - # Server adds a PSODCV2CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OJF.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OJF.patch.s deleted file mode 100644 index 8369256b..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OJF.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoDC -data: - .data 0x8C4E5F80 # char_file_part1 - .data 0x8C4E5F84 # char_file_part2 - # Server adds a PSODCV2CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OPF.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OPF.patch.s deleted file mode 100644 index cef817bf..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2OPF.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoDC -data: - .data 0x8C4DB9E0 # char_file_part1 - .data 0x8C4DB9E4 # char_file_part2 - # Server adds a PSODCV2CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoDC.sh4.inc.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2___.patch.s similarity index 83% rename from system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoDC.sh4.inc.s rename to system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2___.patch.s index f1e9342e..fc3f2c01 100644 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoDC.sh4.inc.s +++ b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.2___.patch.s @@ -1,3 +1,12 @@ +.meta hide_from_patches_menu +.meta name="SetExtendedPlayerInfo" +.meta description="" + +.versions 2OJ5 2OJF 2OEF 2OPF + +entry_ptr: +reloc0: + .offsetof start start: sts.l -[r15], pr @@ -81,3 +90,6 @@ v2_creds_offset: .align 4 data: + .data # char_file_part1 + .data # char_file_part2 + # Server adds a PSODCV2CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE0.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE0.patch.s deleted file mode 100644 index ddf2a440..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE0.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805C5758 # character_file - .data 0x00002370 # sizeof(part2) - # Server adds a PSOGCCharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE1.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE1.patch.s deleted file mode 100644 index 8c93331b..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE1.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805CC738 # character_file - .data 0x00002370 # sizeof(part2) - # Server adds a PSOGCCharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE2.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE2.patch.s deleted file mode 100644 index 2ba2dc92..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OE2.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805D5F58 # character_file - .data 0x00002370 # sizeof(part2) - # Server adds a PSOGCCharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ2.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ2.patch.s deleted file mode 100644 index 2973285d..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ2.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805C4E60 # character_file - .data 0x00002370 # sizeof(part2) - # Server adds a PSOGCCharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ3.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ3.patch.s deleted file mode 100644 index 49a7c3c2..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ3.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805CF428 # character_file - .data 0x00002370 # sizeof(part2) - # Server adds a PSOGCCharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ4.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ4.patch.s deleted file mode 100644 index 947e0cbc..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ4.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805D68A8 # character_file - .data 0x00002370 # sizeof(part2) - # Server adds a PSOGCCharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ5.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ5.patch.s deleted file mode 100644 index fd893a10..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJ5.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805D6648 # character_file - .data 0x00002370 # sizeof(part2) - # Server adds a PSOGCCharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJT.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJT.patch.s deleted file mode 100644 index 619eb7f5..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OJT.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805CC738 # character_file - .data 0x00002268 # sizeof(part2) - # Server adds a PSOGCNTECharacterFileCharacter here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OP0.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OP0.patch.s deleted file mode 100644 index 60fc753c..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3OP0.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x805D2198 # character_file - .data 0x00002370 # sizeof(part2) - # Server adds a PSOGCCharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SE0.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SE0.patch.s deleted file mode 100644 index 6cd7c790..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SE0.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x8057A6E8 # character_file - .data 0x0000358C # sizeof(*char_file_part2) - # Server adds a PSOGCEp3CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SJ0.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SJ0.patch.s deleted file mode 100644 index 2f5cbe92..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SJ0.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x80579878 # character_file - .data 0x0000358C # sizeof(*char_file_part2) - # Server adds a PSOGCEp3CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SJT.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SJT.patch.s deleted file mode 100644 index ae55bdf8..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SJT.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x8058B978 # character_file - .data 0x0000358C # sizeof(*char_file_part2) - # Server adds a PSOGCEp3CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SP0.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SP0.patch.s deleted file mode 100644 index 0a43606b..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3SP0.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoGC -data: - .data 0x8057CB08 # character_file - .data 0x0000358C # sizeof(*char_file_part2) - # Server adds a PSOGCEp3CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoGC.ppc.inc.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3___.patch.s similarity index 54% rename from system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoGC.ppc.inc.s rename to system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3___.patch.s index 57298193..1d7c0aca 100644 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoGC.ppc.inc.s +++ b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.3___.patch.s @@ -1,3 +1,13 @@ +.meta hide_from_patches_menu +.meta name="SetExtendedPlayerInfo" +.meta description="" + +.versions 3OJT 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 3SJT 3SJ0 3SE0 3SP0 + +entry_ptr: +reloc0: + .offsetof start +start: mflr r12 bl get_data_ptr get_data_ptr_ret: @@ -35,3 +45,8 @@ memcpy: get_data_ptr: bl get_data_ptr_ret +data: + .data # character_file + .data # sizeof(part2) + # Server adds PSOGCCharacterFile::Character, PSOGCNTECharacterFileCharacter, + # or PSOGCEp3CharacterFile::Character here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OED.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OED.patch.s deleted file mode 100644 index c1cd869d..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OED.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoXB -data: - .data 0x00632E04 # char_file_part1 - .data 0x00632EA8 # char_file_part2 - # Server adds a PSOXBCharacterFileCharacter here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OEU.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OEU.patch.s deleted file mode 100644 index 3d0eb8e6..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OEU.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoXB -data: - .data 0x0063269C # char_file_part1 - .data 0x00632740 # char_file_part2 - # Server adds a PSOXBCharacterFileCharacter here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJB.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJB.patch.s deleted file mode 100644 index 73b772ff..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJB.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoXB -data: - .data 0x0062D844 # char_file_part1 - .data 0x0062D8E8 # char_file_part2 - # Server adds a PSOXBCharacterFileCharacter here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJD.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJD.patch.s deleted file mode 100644 index 58d28716..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJD.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoXB -data: - .data 0x0062DDE4 # char_file_part1 - .data 0x0062DE88 # char_file_part2 - # Server adds a PSOXBCharacterFileCharacter here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJU.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJU.patch.s deleted file mode 100644 index 6592d5fc..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OJU.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoXB -data: - .data 0x0063591C # char_file_part1 - .data 0x006359C0 # char_file_part2 - # Server adds a PSOXBCharacterFileCharacter here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OPD.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OPD.patch.s deleted file mode 100644 index c1cd869d..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OPD.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoXB -data: - .data 0x00632E04 # char_file_part1 - .data 0x00632EA8 # char_file_part2 - # Server adds a PSOXBCharacterFileCharacter here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OPU.patch.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OPU.patch.s deleted file mode 100644 index 3c6b4b1a..00000000 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4OPU.patch.s +++ /dev/null @@ -1,13 +0,0 @@ -.meta hide_from_patches_menu -.meta name="SetExtendedPlayerInfo" -.meta description="" - -entry_ptr: -reloc0: - .offsetof start -start: - .include SetExtendedPlayerInfoXB -data: - .data 0x0063319C # char_file_part1 - .data 0x00633240 # char_file_part2 - # Server adds a PSOXBCharacterFileCharacter here diff --git a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoXB.x86.inc.s b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4___.patch.s similarity index 66% rename from system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoXB.x86.inc.s rename to system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4___.patch.s index 7cda7f6f..7232790b 100644 --- a/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfoXB.x86.inc.s +++ b/system/client-functions/ExtendedPlayerInfo/SetExtendedPlayerInfo.4___.patch.s @@ -1,4 +1,14 @@ - push ebx +.meta hide_from_patches_menu +.meta name="SetExtendedPlayerInfo" +.meta description="" + +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start +start: + push ebx jmp get_data_ptr get_data_ptr_ret: @@ -37,3 +47,7 @@ memcpy: get_data_ptr: call get_data_ptr_ret +data: + .data # char_file_part1 + .data # char_file_part2 + # Server adds a PSOXBCharacterFileCharacter here diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE1.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE1.patch.s deleted file mode 100644 index 1bd0e458..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE1.patch.s +++ /dev/null @@ -1,46 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000B86C - .data 0x00000054 -code_start: - mr r3, r0 - andi. r0, r31, 2 - beqlr - lwz r4, [r3 + 0x0028] - cmplwi r4, 0 - beqlr - lwz r4, [r4] - cmplwi r4, 0 - beqlr - mulli r0, r31, 12 - add r5, r29, r0 - lwz r6, [r5 + 0x025C] - cmplwi r6, 450 - bge full_intensity - lbz r6, [r4 + 0x002C] - subi r6, r6, 0x0008 - cmpwi r6, 0 - bge not_full_intensity -full_intensity: - li r6, 0x00FF -not_full_intensity: - stb [r4 + 0x002C], r6 - blr -code_end: - - .data 0x8026E7F4 - .data 4 - .data 0x4BD9D079 - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE2.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE2.patch.s deleted file mode 100644 index aa1c7a61..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE2.patch.s +++ /dev/null @@ -1,46 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000B86C - .data 0x00000054 -code_start: - mr r3, r0 - andi. r0, r31, 2 - beqlr - lwz r4, [r3 + 0x0028] - cmplwi r4, 0 - beqlr - lwz r4, [r4] - cmplwi r4, 0 - beqlr - mulli r0, r31, 12 - add r5, r29, r0 - lwz r6, [r5 + 0x025C] - cmplwi r6, 450 - bge full_intensity - lbz r6, [r4 + 0x002C] - subi r6, r6, 0x0008 - cmpwi r6, 0 - bge not_full_intensity -full_intensity: - li r6, 0x00FF -not_full_intensity: - stb [r4 + 0x002C], r6 - blr -code_end: - - .data 0x8026FC1C - .data 4 - .data 0x4BD9BC51 - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ2.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ2.patch.s deleted file mode 100644 index afe3c65c..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ2.patch.s +++ /dev/null @@ -1,46 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000B86C - .data 0x00000054 -code_start: - mr r3, r0 - andi. r0, r31, 2 - beqlr - lwz r4, [r3 + 0x0028] - cmplwi r4, 0 - beqlr - lwz r4, [r4] - cmplwi r4, 0 - beqlr - mulli r0, r31, 12 - add r5, r29, r0 - lwz r6, [r5 + 0x025C] - cmplwi r6, 450 - bge full_intensity - lbz r6, [r4 + 0x002C] - subi r6, r6, 0x0008 - cmpwi r6, 0 - bge not_full_intensity -full_intensity: - li r6, 0x00FF -not_full_intensity: - stb [r4 + 0x002C], r6 - blr -code_end: - - .data 0x8026DF94 - .data 4 - .data 0x4BD9D8D9 - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ3.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ3.patch.s deleted file mode 100644 index 69bd7d93..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ3.patch.s +++ /dev/null @@ -1,46 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000B86C - .data 0x00000054 -code_start: - mr r3, r0 - andi. r0, r31, 2 - beqlr - lwz r4, [r3 + 0x0028] - cmplwi r4, 0 - beqlr - lwz r4, [r4] - cmplwi r4, 0 - beqlr - mulli r0, r31, 12 - add r5, r29, r0 - lwz r6, [r5 + 0x025C] - cmplwi r6, 450 - bge full_intensity - lbz r6, [r4 + 0x002C] - subi r6, r6, 0x0008 - cmpwi r6, 0 - bge not_full_intensity -full_intensity: - li r6, 0x00FF -not_full_intensity: - stb [r4 + 0x002C], r6 - blr -code_end: - - .data 0x8026EC58 - .data 4 - .data 0x4BD9CC15 - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ4.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ4.patch.s deleted file mode 100644 index c911db8f..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ4.patch.s +++ /dev/null @@ -1,46 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000B86C - .data 0x00000054 -code_start: - mr r3, r0 - andi. r0, r31, 2 - beqlr - lwz r4, [r3 + 0x0028] - cmplwi r4, 0 - beqlr - lwz r4, [r4] - cmplwi r4, 0 - beqlr - mulli r0, r31, 12 - add r5, r29, r0 - lwz r6, [r5 + 0x025C] - cmplwi r6, 450 - bge full_intensity - lbz r6, [r4 + 0x002C] - subi r6, r6, 0x0008 - cmpwi r6, 0 - bge not_full_intensity -full_intensity: - li r6, 0x00FF -not_full_intensity: - stb [r4 + 0x002C], r6 - blr -code_end: - - .data 0x8026FCB4 - .data 4 - .data 0x4BD9BBB9 - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ5.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ5.patch.s deleted file mode 100644 index 5e664c9b..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ5.patch.s +++ /dev/null @@ -1,46 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000B86C - .data 0x00000054 -code_start: - mr r3, r0 - andi. r0, r31, 2 - beqlr - lwz r4, [r3 + 0x0028] - cmplwi r4, 0 - beqlr - lwz r4, [r4] - cmplwi r4, 0 - beqlr - mulli r0, r31, 12 - add r5, r29, r0 - lwz r6, [r5 + 0x025C] - cmplwi r6, 450 - bge full_intensity - lbz r6, [r4 + 0x002C] - subi r6, r6, 0x0008 - cmpwi r6, 0 - bge not_full_intensity -full_intensity: - li r6, 0x00FF -not_full_intensity: - stb [r4 + 0x002C], r6 - blr -code_end: - - .data 0x8026FA68 - .data 4 - .data 0x4BD9BE05 - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OP0.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OP0.patch.s deleted file mode 100644 index a1030aa7..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OP0.patch.s +++ /dev/null @@ -1,46 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .data 0x8000B86C - .data 0x00000054 -code_start: - mr r3, r0 - andi. r0, r31, 2 - beqlr - lwz r4, [r3 + 0x0028] - cmplwi r4, 0 - beqlr - lwz r4, [r4] - cmplwi r4, 0 - beqlr - mulli r0, r31, 12 - add r5, r29, r0 - lwz r6, [r5 + 0x025C] - cmplwi r6, 450 - bge full_intensity - lbz r6, [r4 + 0x002C] - subi r6, r6, 0x0008 - cmpwi r6, 0 - bge not_full_intensity -full_intensity: - li r6, 0x00FF -not_full_intensity: - stb [r4 + 0x002C], r6 - blr -code_end: - - .data 0x8026F464 - .data 4 - .data 0x4BD9C409 - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE0.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3___.patch.s similarity index 75% rename from system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE0.patch.s rename to system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3___.patch.s index 1bd0e458..5e9f6799 100644 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE0.patch.s +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3___.patch.s @@ -4,6 +4,8 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2049 +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 + entry_ptr: reloc0: .offsetof start @@ -12,6 +14,7 @@ start: .data 0x8000B86C .data 0x00000054 + .address 0x8000B86C code_start: mr r3, r0 andi. r0, r31, 2 @@ -38,9 +41,10 @@ not_full_intensity: blr code_end: - .data 0x8026E7F4 + .data .data 4 - .data 0x4BD9D079 + .address + bl code_start .data 0 .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OEU.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OEU.patch.s deleted file mode 100644 index c717f919..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OEU.patch.s +++ /dev/null @@ -1,60 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00277D2A - .data 5 - .binary E877380600 - - .data 0x002DB5A6 - .deltaof code_start, code_end -code_start: - push eax - mov ecx, [esp + 0x20] - test cl, 0x02 # Slot 2 or 3 - jz skip - mov eax, [eax + 0x28] - test eax, eax - jz skip - mov eax, [eax] - test eax, eax - jz skip - - mov edx, [esp + 0x24] # client ID - mov edx, dword [0x00631B54 + edx * 4] - imul ecx, ecx, 0x0C - mov edx, [edx + ecx + 0x264] - cmp edx, 450 - jb decr_alpha - - mov byte [eax + 0x002F], 0xFF - jmp skip - -decr_alpha: - xor edx, edx - lea ecx, [edx - 1] - mov dl, [eax + 0x002F] - sub edx, 8 - cmovl edx, ecx - mov [eax + 0x002F], dl - -skip: - pop eax - pop edx - lea ecx, [edx + 0x20] - cmp dword [eax + 0x6C], ebp - cmovz edx, ecx - jmp edx -code_end: - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJB.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJB.patch.s deleted file mode 100644 index f2190e98..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJB.patch.s +++ /dev/null @@ -1,60 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0027782A - .data 5 - .binary E807190600 - - .data 0x002D9136 - .deltaof code_start, code_end -code_start: - push eax - mov ecx, [esp + 0x20] - test cl, 0x02 # Slot 2 or 3 - jz skip - mov eax, [eax + 0x28] - test eax, eax - jz skip - mov eax, [eax] - test eax, eax - jz skip - - mov edx, [esp + 0x24] # client ID - mov edx, dword [0x0062CCFC + edx * 4] - imul ecx, ecx, 0x0C - mov edx, [edx + ecx + 0x264] - cmp edx, 450 - jb decr_alpha - - mov byte [eax + 0x002F], 0xFF - jmp skip - -decr_alpha: - xor edx, edx - lea ecx, [edx - 1] - mov dl, [eax + 0x002F] - sub edx, 8 - cmovl edx, ecx - mov [eax + 0x002F], dl - -skip: - pop eax - pop edx - lea ecx, [edx + 0x20] - cmp dword [eax + 0x6C], ebp - cmovz edx, ecx - jmp edx -code_end: - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJD.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJD.patch.s deleted file mode 100644 index 2a7fae00..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJD.patch.s +++ /dev/null @@ -1,60 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00277ADA - .data 5 - .binary E827220600 - - .data 0x002D9D06 - .deltaof code_start, code_end -code_start: - push eax - mov ecx, [esp + 0x20] - test cl, 0x02 # Slot 2 or 3 - jz skip - mov eax, [eax + 0x28] - test eax, eax - jz skip - mov eax, [eax] - test eax, eax - jz skip - - mov edx, [esp + 0x24] # client ID - mov edx, dword [0x0062D29C + edx * 4] - imul ecx, ecx, 0x0C - mov edx, [edx + ecx + 0x264] - cmp edx, 450 - jb decr_alpha - - mov byte [eax + 0x002F], 0xFF - jmp skip - -decr_alpha: - xor edx, edx - lea ecx, [edx - 1] - mov dl, [eax + 0x002F] - sub edx, 8 - cmovl edx, ecx - mov [eax + 0x002F], dl - -skip: - pop eax - pop edx - lea ecx, [edx + 0x20] - cmp dword [eax + 0x6C], ebp - cmovz edx, ecx - jmp edx -code_end: - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJU.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJU.patch.s deleted file mode 100644 index 67c3f18c..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OJU.patch.s +++ /dev/null @@ -1,60 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00277EEA - .data 5 - .binary E8E7360600 - - .data 0x002DB5D6 - .deltaof code_start, code_end -code_start: - push eax - mov ecx, [esp + 0x20] - test cl, 0x02 # Slot 2 or 3 - jz skip - mov eax, [eax + 0x28] - test eax, eax - jz skip - mov eax, [eax] - test eax, eax - jz skip - - mov edx, [esp + 0x24] # client ID - mov edx, dword [0x00634DD4 + edx * 4] - imul ecx, ecx, 0x0C - mov edx, [edx + ecx + 0x264] - cmp edx, 450 - jb decr_alpha - - mov byte [eax + 0x002F], 0xFF - jmp skip - -decr_alpha: - xor edx, edx - lea ecx, [edx - 1] - mov dl, [eax + 0x002F] - sub edx, 8 - cmovl edx, ecx - mov [eax + 0x002F], dl - -skip: - pop eax - pop edx - lea ecx, [edx + 0x20] - cmp dword [eax + 0x6C], ebp - cmovz edx, ecx - jmp edx -code_end: - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OPD.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OPD.patch.s deleted file mode 100644 index 95ecea2a..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OPD.patch.s +++ /dev/null @@ -1,60 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00277C2A - .data 5 - .binary E8A7340600 - - .data 0x002DB0D6 - .deltaof code_start, code_end -code_start: - push eax - mov ecx, [esp + 0x20] - test cl, 0x02 # Slot 2 or 3 - jz skip - mov eax, [eax + 0x28] - test eax, eax - jz skip - mov eax, [eax] - test eax, eax - jz skip - - mov edx, [esp + 0x24] # client ID - mov edx, dword [0x006322BC + edx * 4] - imul ecx, ecx, 0x0C - mov edx, [edx + ecx + 0x264] - cmp edx, 450 - jb decr_alpha - - mov byte [eax + 0x002F], 0xFF - jmp skip - -decr_alpha: - xor edx, edx - lea ecx, [edx - 1] - mov dl, [eax + 0x002F] - sub edx, 8 - cmovl edx, ecx - mov [eax + 0x002F], dl - -skip: - pop eax - pop edx - lea ecx, [edx + 0x20] - cmp dword [eax + 0x6C], ebp - cmovz edx, ecx - jmp edx -code_end: - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OPU.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OPU.patch.s deleted file mode 100644 index 4b1387cf..00000000 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OPU.patch.s +++ /dev/null @@ -1,60 +0,0 @@ -.meta name="Blinking SD" -.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00277DFA - .data 5 - .binary E827380600 - - .data 0x002DB626 - .deltaof code_start, code_end -code_start: - push eax - mov ecx, [esp + 0x20] - test cl, 0x02 # Slot 2 or 3 - jz skip - mov eax, [eax + 0x28] - test eax, eax - jz skip - mov eax, [eax] - test eax, eax - jz skip - - mov edx, [esp + 0x24] # client ID - mov edx, dword [0x00632654 + edx * 4] - imul ecx, ecx, 0x0C - mov edx, [edx + ecx + 0x264] - cmp edx, 450 - jb decr_alpha - - mov byte [eax + 0x002F], 0xFF - jmp skip - -decr_alpha: - xor edx, edx - lea ecx, [edx - 1] - mov dl, [eax + 0x002F] - sub edx, 8 - cmovl edx, ecx - mov [eax + 0x002F], dl - -skip: - pop eax - pop edx - lea ecx, [edx + 0x20] - cmp dword [eax + 0x6C], ebp - cmovz edx, ecx - jmp edx -code_end: - - .data 0 - .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OED.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4___.patch.s similarity index 73% rename from system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OED.patch.s rename to system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4___.patch.s index 5f75ac52..7439da75 100644 --- a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4OED.patch.s +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.4___.patch.s @@ -5,17 +5,19 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2049 # Xbox port by fuzziqersoftware +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksXB - .data 0x00277C0A + .data .data 5 - .binary E897340600 + .binary - .data 0x002DB0A6 + .data .deltaof code_start, code_end code_start: push eax @@ -30,7 +32,7 @@ code_start: jz skip mov edx, [esp + 0x24] # client ID - mov edx, dword [0x006322BC + edx * 4] + mov edx, dword [ + edx * 4] imul ecx, ecx, 0x0C mov edx, [edx + ecx + 0x264] cmp edx, 450 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3OE0.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3OE0.patch.s deleted file mode 100644 index 6d562f1a..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.3OE0.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000BF30 (44 bytes) - .data 0x8000BF30 # address - .data 0x0000002C # size - .data 0x9421FFF0 # 8000BF30 => stwu [r1 - 0x0010], r1 - .data 0x7C0802A6 # 8000BF34 => mflr r0 - .data 0x90010014 # 8000BF38 => stw [r1 + 0x0014], r0 - .data 0x3C600002 # 8000BF3C => lis r3, 0x0002 - .data 0x60632825 # 8000BF40 => ori r3, r3, 0x2825 - .data 0x38800000 # 8000BF44 => li r4, 0x0000 - .data 0x48027985 # 8000BF48 => bl +0x00027984 /* 800338CC */ - .data 0x80010014 # 8000BF4C => lwz r0, [r1 + 0x0014] - .data 0x7C0803A6 # 8000BF50 => mtlr r0 - .data 0x38210010 # 8000BF54 => addi r1, r1, 0x0010 - .data 0x4E800020 # 8000BF58 => blr - # region @ 80111038 (4 bytes) - .data 0x80111038 # address - .data 0x00000004 # size - .data 0x4BEFAEF8 # 80111038 => b -0x00105108 /* 8000BF30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3OE1.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3OE1.patch.s deleted file mode 100644 index 6d562f1a..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.3OE1.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000BF30 (44 bytes) - .data 0x8000BF30 # address - .data 0x0000002C # size - .data 0x9421FFF0 # 8000BF30 => stwu [r1 - 0x0010], r1 - .data 0x7C0802A6 # 8000BF34 => mflr r0 - .data 0x90010014 # 8000BF38 => stw [r1 + 0x0014], r0 - .data 0x3C600002 # 8000BF3C => lis r3, 0x0002 - .data 0x60632825 # 8000BF40 => ori r3, r3, 0x2825 - .data 0x38800000 # 8000BF44 => li r4, 0x0000 - .data 0x48027985 # 8000BF48 => bl +0x00027984 /* 800338CC */ - .data 0x80010014 # 8000BF4C => lwz r0, [r1 + 0x0014] - .data 0x7C0803A6 # 8000BF50 => mtlr r0 - .data 0x38210010 # 8000BF54 => addi r1, r1, 0x0010 - .data 0x4E800020 # 8000BF58 => blr - # region @ 80111038 (4 bytes) - .data 0x80111038 # address - .data 0x00000004 # size - .data 0x4BEFAEF8 # 80111038 => b -0x00105108 /* 8000BF30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3OE2.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3OE2.patch.s deleted file mode 100644 index f209a3a2..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.3OE2.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000BF30 (44 bytes) - .data 0x8000BF30 # address - .data 0x0000002C # size - .data 0x9421FFF0 # 8000BF30 => stwu [r1 - 0x0010], r1 - .data 0x7C0802A6 # 8000BF34 => mflr r0 - .data 0x90010014 # 8000BF38 => stw [r1 + 0x0014], r0 - .data 0x3C600002 # 8000BF3C => lis r3, 0x0002 - .data 0x60632825 # 8000BF40 => ori r3, r3, 0x2825 - .data 0x38800000 # 8000BF44 => li r4, 0x0000 - .data 0x4802794D # 8000BF48 => bl +0x0002794C /* 80033894 */ - .data 0x80010014 # 8000BF4C => lwz r0, [r1 + 0x0014] - .data 0x7C0803A6 # 8000BF50 => mtlr r0 - .data 0x38210010 # 8000BF54 => addi r1, r1, 0x0010 - .data 0x4E800020 # 8000BF58 => blr - # region @ 80110F30 (4 bytes) - .data 0x80110F30 # address - .data 0x00000004 # size - .data 0x4BEFB000 # 80110F30 => b -0x00105000 /* 8000BF30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3OJ2.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3OJ2.patch.s deleted file mode 100644 index beac8663..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.3OJ2.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000BF30 (44 bytes) - .data 0x8000BF30 # address - .data 0x0000002C # size - .data 0x9421FFF0 # 8000BF30 => stwu [r1 - 0x0010], r1 - .data 0x7C0802A6 # 8000BF34 => mflr r0 - .data 0x90010014 # 8000BF38 => stw [r1 + 0x0014], r0 - .data 0x3C600002 # 8000BF3C => lis r3, 0x0002 - .data 0x60632825 # 8000BF40 => ori r3, r3, 0x2825 - .data 0x38800000 # 8000BF44 => li r4, 0x0000 - .data 0x48027765 # 8000BF48 => bl +0x00027764 /* 800336AC */ - .data 0x80010014 # 8000BF4C => lwz r0, [r1 + 0x0014] - .data 0x7C0803A6 # 8000BF50 => mtlr r0 - .data 0x38210010 # 8000BF54 => addi r1, r1, 0x0010 - .data 0x4E800020 # 8000BF58 => blr - # region @ 80110D94 (4 bytes) - .data 0x80110D94 # address - .data 0x00000004 # size - .data 0x4BEFB19C # 80110D94 => b -0x00104E64 /* 8000BF30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3OJ3.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3OJ3.patch.s deleted file mode 100644 index 768460c2..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.3OJ3.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000BF30 (44 bytes) - .data 0x8000BF30 # address - .data 0x0000002C # size - .data 0x9421FFF0 # 8000BF30 => stwu [r1 - 0x0010], r1 - .data 0x7C0802A6 # 8000BF34 => mflr r0 - .data 0x90010014 # 8000BF38 => stw [r1 + 0x0014], r0 - .data 0x3C600002 # 8000BF3C => lis r3, 0x0002 - .data 0x60632825 # 8000BF40 => ori r3, r3, 0x2825 - .data 0x38800000 # 8000BF44 => li r4, 0x0000 - .data 0x48027795 # 8000BF48 => bl +0x00027794 /* 800336DC */ - .data 0x80010014 # 8000BF4C => lwz r0, [r1 + 0x0014] - .data 0x7C0803A6 # 8000BF50 => mtlr r0 - .data 0x38210010 # 8000BF54 => addi r1, r1, 0x0010 - .data 0x4E800020 # 8000BF58 => blr - # region @ 80110F94 (4 bytes) - .data 0x80110F94 # address - .data 0x00000004 # size - .data 0x4BEFAF9C # 80110F94 => b -0x00105064 /* 8000BF30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3OJ4.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3OJ4.patch.s deleted file mode 100644 index 4919fe8f..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.3OJ4.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000BF30 (44 bytes) - .data 0x8000BF30 # address - .data 0x0000002C # size - .data 0x9421FFF0 # 8000BF30 => stwu [r1 - 0x0010], r1 - .data 0x7C0802A6 # 8000BF34 => mflr r0 - .data 0x90010014 # 8000BF38 => stw [r1 + 0x0014], r0 - .data 0x3C600002 # 8000BF3C => lis r3, 0x0002 - .data 0x60632825 # 8000BF40 => ori r3, r3, 0x2825 - .data 0x38800000 # 8000BF44 => li r4, 0x0000 - .data 0x480277B1 # 8000BF48 => bl +0x000277B0 /* 800336F8 */ - .data 0x80010014 # 8000BF4C => lwz r0, [r1 + 0x0014] - .data 0x7C0803A6 # 8000BF50 => mtlr r0 - .data 0x38210010 # 8000BF54 => addi r1, r1, 0x0010 - .data 0x4E800020 # 8000BF58 => blr - # region @ 80111080 (4 bytes) - .data 0x80111080 # address - .data 0x00000004 # size - .data 0x4BEFAEB0 # 80111080 => b -0x00105150 /* 8000BF30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3OJ5.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3OJ5.patch.s deleted file mode 100644 index 0d96a1cf..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.3OJ5.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000BF30 (44 bytes) - .data 0x8000BF30 # address - .data 0x0000002C # size - .data 0x9421FFF0 # 8000BF30 => stwu [r1 - 0x0010], r1 - .data 0x7C0802A6 # 8000BF34 => mflr r0 - .data 0x90010014 # 8000BF38 => stw [r1 + 0x0014], r0 - .data 0x3C600002 # 8000BF3C => lis r3, 0x0002 - .data 0x60632825 # 8000BF40 => ori r3, r3, 0x2825 - .data 0x38800000 # 8000BF44 => li r4, 0x0000 - .data 0x48027745 # 8000BF48 => bl +0x00027744 /* 8003368C */ - .data 0x80010014 # 8000BF4C => lwz r0, [r1 + 0x0014] - .data 0x7C0803A6 # 8000BF50 => mtlr r0 - .data 0x38210010 # 8000BF54 => addi r1, r1, 0x0010 - .data 0x4E800020 # 8000BF58 => blr - # region @ 80110F20 (4 bytes) - .data 0x80110F20 # address - .data 0x00000004 # size - .data 0x4BEFB010 # 80110F20 => b -0x00104FF0 /* 8000BF30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3OP0.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3OP0.patch.s deleted file mode 100644 index ee33e899..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.3OP0.patch.s +++ /dev/null @@ -1,32 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000BF30 (44 bytes) - .data 0x8000BF30 # address - .data 0x0000002C # size - .data 0x9421FFF0 # 8000BF30 => stwu [r1 - 0x0010], r1 - .data 0x7C0802A6 # 8000BF34 => mflr r0 - .data 0x90010014 # 8000BF38 => stw [r1 + 0x0014], r0 - .data 0x3C600002 # 8000BF3C => lis r3, 0x0002 - .data 0x60632825 # 8000BF40 => ori r3, r3, 0x2825 - .data 0x38800000 # 8000BF44 => li r4, 0x0000 - .data 0x480279C5 # 8000BF48 => bl +0x000279C4 /* 8003390C */ - .data 0x80010014 # 8000BF4C => lwz r0, [r1 + 0x0014] - .data 0x7C0803A6 # 8000BF50 => mtlr r0 - .data 0x38210010 # 8000BF54 => addi r1, r1, 0x0010 - .data 0x4E800020 # 8000BF58 => blr - # region @ 80111114 (4 bytes) - .data 0x80111114 # address - .data 0x00000004 # size - .data 0x4BEFAE1C # 80111114 => b -0x001051E4 /* 8000BF30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/HungryMagSound/HungryMagSound.3___.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.3___.patch.s new file mode 100644 index 00000000..4f511be3 --- /dev/null +++ b/system/client-functions/HungryMagSound/HungryMagSound.3___.patch.s @@ -0,0 +1,33 @@ +.meta name="Mag alert" +.meta description="Plays a sound when\nyour Mag is hungry" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .label play_sound, + + .data 0x8000BF30 + .deltaof code_start, code_end + .address 0x8000BF30 +code_start: + lis r3, 0x0002 + ori r3, r3, 0x2825 + li r4, 0 + b play_sound +code_end: + + .data + .data 0x00000004 + .address + b code_start + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.4OED.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.4OED.patch.s deleted file mode 100644 index f14739d3..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.4OED.patch.s +++ /dev/null @@ -1,27 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00181065 - .data 0x0000000A - .binary E998010000CCCC83C410 - - .data 0x00181202 - .data 0x0000000D - .binary 31C0898694010000505050EB52 - - .data 0x00181261 - .data 0x0000000F - .binary 048D50BA90B12E00FFD2E9FCFDFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.4OEU.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.4OEU.patch.s deleted file mode 100644 index 3a58eeb2..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.4OEU.patch.s +++ /dev/null @@ -1,27 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00181095 - .data 0x0000000A - .binary E998010000CCCC83C410 - - .data 0x00181232 - .data 0x0000000D - .binary 31C0898694010000505050EB52 - - .data 0x00181291 - .data 0x0000000F - .binary 048D50BAB0B32E00FFD2E9FCFDFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.4OJB.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.4OJB.patch.s deleted file mode 100644 index 616a2f44..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.4OJB.patch.s +++ /dev/null @@ -1,27 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00180EF5 - .data 0x0000000A - .binary E998010000CCCC83C410 - - .data 0x00181092 - .data 0x0000000D - .binary 31C0898694010000505050EB52 - - .data 0x001810F1 - .data 0x0000000F - .binary 048D50BA30922E00FFD2E9FCFDFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.4OJD.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.4OJD.patch.s deleted file mode 100644 index 8badfbd8..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.4OJD.patch.s +++ /dev/null @@ -1,27 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00181075 - .data 0x0000000A - .binary E998010000CCCC83C410 - - .data 0x00181212 - .data 0x0000000D - .binary 31C0898694010000505050EB52 - - .data 0x00181271 - .data 0x0000000F - .binary 048D50BAB09D2E00FFD2E9FCFDFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.4OJU.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.4OJU.patch.s deleted file mode 100644 index c14879b9..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.4OJU.patch.s +++ /dev/null @@ -1,27 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00181125 - .data 0x0000000A - .binary E998010000CCCC83C410 - - .data 0x001812C2 - .data 0x0000000D - .binary 31C0898694010000505050EB52 - - .data 0x00181321 - .data 0x0000000F - .binary 048D50BA90B32E00FFD2E9FCFDFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.4OPD.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.4OPD.patch.s deleted file mode 100644 index d8773b2a..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.4OPD.patch.s +++ /dev/null @@ -1,27 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00181085 - .data 0x0000000A - .binary E998010000CCCC83C410 - - .data 0x00181222 - .data 0x0000000D - .binary 31C0898694010000505050EB52 - - .data 0x00181281 - .data 0x0000000F - .binary 048D50BAC0B12E00FFD2E9FCFDFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.4OPU.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.4OPU.patch.s deleted file mode 100644 index a61ebd6d..00000000 --- a/system/client-functions/HungryMagSound/HungryMagSound.4OPU.patch.s +++ /dev/null @@ -1,27 +0,0 @@ -.meta name="MAG alert" -.meta description="Plays a sound when\nyour MAG is hungry" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00181055 - .data 0x0000000A - .binary E998010000CCCC83C410 - - .data 0x001811F2 - .data 0x0000000D - .binary 31C0898694010000505050EB52 - - .data 0x00181251 - .data 0x0000000F - .binary 048D50BAE0B32E00FFD2E9FCFDFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.4___.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.4___.patch.s new file mode 100644 index 00000000..ad986bb5 --- /dev/null +++ b/system/client-functions/HungryMagSound/HungryMagSound.4___.patch.s @@ -0,0 +1,29 @@ +.meta name="MAG alert" +.meta description="Plays a sound when\nyour MAG is hungry" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 +# Xbox port by fuzziqersoftware + +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksXB + + .data + .data 0x0000000A + .binary E998010000CCCC83C410 + + .data + .data 0x0000000D + .binary 31C0898694010000505050EB52 + + .data + .data 0x0000000F + .binary + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.1OJ2.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.1OJ2.patch.s deleted file mode 100644 index f5ce530a..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.1OJ2.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv1 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1AADD8 - .data 0x00000004 - rets - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.1OJ3.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.1OJ3.patch.s deleted file mode 100644 index f3fad1a1..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.1OJ3.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv1 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1C7408 - .data 0x00000004 - rets - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.1OJF.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.1OJF.patch.s deleted file mode 100644 index a4181933..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.1OJF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv1 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1C75B4 - .data 0x00000004 - rets - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.1OPF.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.1OPF.patch.s deleted file mode 100644 index 92daff4b..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.1OPF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv1 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1CA240 - .data 0x00000004 - rets - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.1OEF.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.1___.patch.s similarity index 65% rename from system/client-functions/InvisibleMag/InvisibleMag.1OEF.patch.s rename to system/client-functions/InvisibleMag/InvisibleMag.1___.patch.s index 3253790d..66a6fec9 100644 --- a/system/client-functions/InvisibleMag/InvisibleMag.1OEF.patch.s +++ b/system/client-functions/InvisibleMag/InvisibleMag.1___.patch.s @@ -3,7 +3,9 @@ # Original code by Ralf @ GC-Forever and Aleron Ives # https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv1 port by fuzziqersoftware +# DC port by fuzziqersoftware + +.versions 1OJ2 1OJ3 1OJ4 1OJF 1OEF 1OPF 2OJ5 2OJF 2OEF 2OPF entry_ptr: reloc0: @@ -12,7 +14,7 @@ start: .include WriteCodeBlocksDC .align 4 - .data 0x8C1CA49C + .data .data 0x00000004 rets nop diff --git a/system/client-functions/InvisibleMag/InvisibleMag.2OEF.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.2OEF.patch.s deleted file mode 100644 index 07e5f6ce..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.2OEF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv2 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1F27E8 - .data 0x00000004 - rets - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.2OJ5.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.2OJ5.patch.s deleted file mode 100644 index 07e5f6ce..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.2OJ5.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv2 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1F27E8 - .data 0x00000004 - rets - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.2OJF.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.2OJF.patch.s deleted file mode 100644 index 808c135d..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.2OJF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv2 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1F17F0 - .data 0x00000004 - rets - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.2OPF.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.2OPF.patch.s deleted file mode 100644 index 51488bcb..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.2OPF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv2 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1F2354 - .data 0x00000004 - rets - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.3OE0.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3OE0.patch.s deleted file mode 100644 index 3811edc4..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.3OE0.patch.s +++ /dev/null @@ -1,18 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801151A8 (4 bytes) - .data 0x801151A8 # address - .data 0x00000004 # size - .data 0x480000D4 # 801151A8 => b +0x000000D4 /* 8011527C */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/InvisibleMag/InvisibleMag.3OE1.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3OE1.patch.s deleted file mode 100644 index 3811edc4..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.3OE1.patch.s +++ /dev/null @@ -1,18 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801151A8 (4 bytes) - .data 0x801151A8 # address - .data 0x00000004 # size - .data 0x480000D4 # 801151A8 => b +0x000000D4 /* 8011527C */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/InvisibleMag/InvisibleMag.3OE2.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3OE2.patch.s deleted file mode 100644 index 29da96a1..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.3OE2.patch.s +++ /dev/null @@ -1,18 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801150C0 (4 bytes) - .data 0x801150C0 # address - .data 0x00000004 # size - .data 0x480000D4 # 801150C0 => b +0x000000D4 /* 80115194 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/InvisibleMag/InvisibleMag.3OJ2.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3OJ2.patch.s deleted file mode 100644 index ac8f7456..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.3OJ2.patch.s +++ /dev/null @@ -1,18 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80114F04 (4 bytes) - .data 0x80114F04 # address - .data 0x00000004 # size - .data 0x480000D4 # 80114F04 => b +0x000000D4 /* 80114FD8 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/InvisibleMag/InvisibleMag.3OJ3.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3OJ3.patch.s deleted file mode 100644 index 2853dce3..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.3OJ3.patch.s +++ /dev/null @@ -1,18 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80115118 (4 bytes) - .data 0x80115118 # address - .data 0x00000004 # size - .data 0x480000D4 # 80115118 => b +0x000000D4 /* 801151EC */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/InvisibleMag/InvisibleMag.3OJ4.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3OJ4.patch.s deleted file mode 100644 index 1726e3d0..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.3OJ4.patch.s +++ /dev/null @@ -1,18 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8011521C (4 bytes) - .data 0x8011521C # address - .data 0x00000004 # size - .data 0x480000D4 # 8011521C => b +0x000000D4 /* 801152F0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/InvisibleMag/InvisibleMag.3OJ5.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3OJ5.patch.s deleted file mode 100644 index 74de8f89..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.3OJ5.patch.s +++ /dev/null @@ -1,18 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801150B0 (4 bytes) - .data 0x801150B0 # address - .data 0x00000004 # size - .data 0x480000D4 # 801150B0 => b +0x000000D4 /* 80115184 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/InvisibleMag/InvisibleMag.3OP0.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3OP0.patch.s deleted file mode 100644 index f2d3628a..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.3OP0.patch.s +++ /dev/null @@ -1,18 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 80115298 (4 bytes) - .data 0x80115298 # address - .data 0x00000004 # size - .data 0x480000D4 # 80115298 => b +0x000000D4 /* 8011536C */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/InvisibleMag/InvisibleMag.1OJ4.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.3___.patch.s similarity index 62% rename from system/client-functions/InvisibleMag/InvisibleMag.1OJ4.patch.s rename to system/client-functions/InvisibleMag/InvisibleMag.3___.patch.s index 0747b464..2ae5874a 100644 --- a/system/client-functions/InvisibleMag/InvisibleMag.1OJ4.patch.s +++ b/system/client-functions/InvisibleMag/InvisibleMag.3___.patch.s @@ -3,20 +3,18 @@ # Original code by Ralf @ GC-Forever and Aleron Ives # https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv1 port by fuzziqersoftware + +.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0 entry_ptr: reloc0: .offsetof start start: - .include WriteCodeBlocksDC + .include WriteCodeBlocksGC - .align 4 - .data 0x8C1C9E9C + .data .data 0x00000004 - rets - nop + .data 0x480000D4 - .align 4 .data 0x00000000 .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.4OEU.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.4OEU.patch.s deleted file mode 100644 index 796a6cba..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.4OEU.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00183971 - .data 0x00000002 - .binary 90E9 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.4OJB.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.4OJB.patch.s deleted file mode 100644 index 901b9f50..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.4OJB.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x001837C1 - .data 0x00000002 - .binary 90E9 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.4OJD.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.4OJD.patch.s deleted file mode 100644 index 3da895fa..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.4OJD.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00183951 - .data 0x00000002 - .binary 90E9 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.4OJU.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.4OJU.patch.s deleted file mode 100644 index 027e0e12..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.4OJU.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00183A01 - .data 0x00000002 - .binary 90E9 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.4OPD.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.4OPD.patch.s deleted file mode 100644 index 21a34bb0..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.4OPD.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00183961 - .data 0x00000002 - .binary 90E9 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.4OPU.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.4OPU.patch.s deleted file mode 100644 index b9fb3ecb..00000000 --- a/system/client-functions/InvisibleMag/InvisibleMag.4OPU.patch.s +++ /dev/null @@ -1,17 +0,0 @@ -.meta name="Invisible MAG" -.meta description="Makes MAGs invisible" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x00183931 - .data 0x00000002 - .binary 90E9 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/InvisibleMag/InvisibleMag.4OED.patch.s b/system/client-functions/InvisibleMag/InvisibleMag.4___.patch.s similarity index 75% rename from system/client-functions/InvisibleMag/InvisibleMag.4OED.patch.s rename to system/client-functions/InvisibleMag/InvisibleMag.4___.patch.s index f74ea849..7d1d34a8 100644 --- a/system/client-functions/InvisibleMag/InvisibleMag.4OED.patch.s +++ b/system/client-functions/InvisibleMag/InvisibleMag.4___.patch.s @@ -5,12 +5,14 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2049 # Xbox port by fuzziqersoftware +.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksXB - .data 0x00183941 + .data .data 0x00000002 .binary 90E9 .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.1OJ4.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.1OJ4.patch.s deleted file mode 100644 index 18ab24fa..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.1OJ4.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C0254B2 - .data 4 - bs +0x38 - nop - - .align 4 - .data 0x8C150B2C - .data 2 - sett - - .align 4 - .data 0x8C15F346 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C16053A - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C1617DA - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C15F3BA - .data 2 - nop - - .align 4 - .data 0x8C1605A6 - .data 2 - nop - - .align 4 - .data 0x8C161808 - .data 2 - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.1OPF.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.1OPF.patch.s deleted file mode 100644 index 677c074c..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.1OPF.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C0254D2 - .data 4 - bs +0x38 - nop - - .align 4 - .data 0x8C150D58 - .data 2 - sett - - .align 4 - .data 0x8C15F612 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C160806 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C161B26 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C15F686 - .data 2 - nop - - .align 4 - .data 0x8C160872 - .data 2 - nop - - .align 4 - .data 0x8C161B54 - .data 2 - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.1OEF.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.1___.patch.s similarity index 57% rename from system/client-functions/ItemLossPrevention/ItemLossPrevention.1OEF.patch.s rename to system/client-functions/ItemLossPrevention/ItemLossPrevention.1___.patch.s index 3ef7deb0..30d611fb 100644 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.1OEF.patch.s +++ b/system/client-functions/ItemLossPrevention/ItemLossPrevention.1___.patch.s @@ -1,6 +1,8 @@ .meta name="No item loss" .meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" +.versions 1OJ4 1OEF 1OPF + entry_ptr: reloc0: .offsetof start @@ -8,43 +10,43 @@ start: .include WriteCodeBlocksDC .align 4 - .data 0x8C0254BE + .data .data 4 bs +0x38 nop .align 4 - .data 0x8C150F9C + .data .data 2 sett .align 4 - .data 0x8C15F856 + .data .data 2 and r0, 0xFE .align 4 - .data 0x8C160A4A + .data .data 2 and r0, 0xFE .align 4 - .data 0x8C161D6A + .data .data 2 and r0, 0xFE .align 4 - .data 0x8C15F8CA + .data .data 2 nop .align 4 - .data 0x8C160AB6 + .data .data 2 nop .align 4 - .data 0x8C161D98 + .data .data 2 nop diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OJ5.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OJ5.patch.s deleted file mode 100644 index d9bec347..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OJ5.patch.s +++ /dev/null @@ -1,73 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv2 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C0280AA - .data 6 - nop - bs +0x2C - nop - - .align 4 - .data 0x8C16BDFE - .data 2 - sett - - .align 4 - .data 0x8C17F1DC - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C17F2BA - .data 2 - nop - - .align 4 - .data 0x8C180D0A - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C180DB0 - .data 2 - nop - - .align 4 - .data 0x8C181BC4 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C181C92 - .data 2 - nop - - .align 4 - .data 0x8C182BC6 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C182BF4 - .data 2 - nop - - .align 4 - .data 0x8C1834D0 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OJF.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OJF.patch.s deleted file mode 100644 index fe24c436..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OJF.patch.s +++ /dev/null @@ -1,73 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv2 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C028276 - .data 6 - nop - bs +0x2C - nop - - .align 4 - .data 0x8C16B50A - .data 2 - sett - - .align 4 - .data 0x8C17E738 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C17E816 - .data 2 - nop - - .align 4 - .data 0x8C18005A - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C180100 - .data 2 - nop - - .align 4 - .data 0x8C180EC8 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C180F96 - .data 2 - nop - - .align 4 - .data 0x8C181DBE - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C181DEC - .data 2 - nop - - .align 4 - .data 0x8C1825F0 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OPF.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OPF.patch.s deleted file mode 100644 index 8eff7d3b..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OPF.patch.s +++ /dev/null @@ -1,73 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# DCv2 port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C0280AA - .data 6 - nop - bs +0x2C - nop - - .align 4 - .data 0x8C16BA22 - .data 2 - sett - - .align 4 - .data 0x8C17EC74 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C17ED52 - .data 2 - nop - - .align 4 - .data 0x8C1807A2 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C180848 - .data 2 - nop - - .align 4 - .data 0x8C18165C - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C18172A - .data 2 - nop - - .align 4 - .data 0x8C18265E - .data 2 - and r0, 0xFE - - .align 4 - .data 0x8C18268C - .data 2 - nop - - .align 4 - .data 0x8C182F68 - .data 2 - and r0, 0xFE - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OEF.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.2___.patch.s similarity index 56% rename from system/client-functions/ItemLossPrevention/ItemLossPrevention.2OEF.patch.s rename to system/client-functions/ItemLossPrevention/ItemLossPrevention.2___.patch.s index d9bec347..4b7b49cc 100644 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.2OEF.patch.s +++ b/system/client-functions/ItemLossPrevention/ItemLossPrevention.2___.patch.s @@ -5,6 +5,8 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2049 # DCv2 port by fuzziqersoftware +.versions 2OEF 2OJ5 2OJF 2OPF + entry_ptr: reloc0: .offsetof start @@ -12,59 +14,59 @@ start: .include WriteCodeBlocksDC .align 4 - .data 0x8C0280AA + .data .data 6 nop bs +0x2C nop .align 4 - .data 0x8C16BDFE + .data .data 2 sett .align 4 - .data 0x8C17F1DC + .data .data 2 and r0, 0xFE .align 4 - .data 0x8C17F2BA + .data .data 2 nop .align 4 - .data 0x8C180D0A + .data .data 2 and r0, 0xFE .align 4 - .data 0x8C180DB0 + .data .data 2 nop .align 4 - .data 0x8C181BC4 + .data .data 2 and r0, 0xFE .align 4 - .data 0x8C181C92 + .data .data 2 nop .align 4 - .data 0x8C182BC6 + .data .data 2 and r0, 0xFE .align 4 - .data 0x8C182BF4 + .data .data 2 nop .align 4 - .data 0x8C1834D0 + .data .data 2 and r0, 0xFE diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE0.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE0.patch.s deleted file mode 100644 index 654f2efc..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE0.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D381C (4 bytes) - .data 0x801D381C # address - .data 0x00000004 # size - .data 0x4800004C # 801D381C => b +0x0000004C /* 801D3868 */ - # region @ 801FF0FC (4 bytes) - .data 0x801FF0FC # address - .data 0x00000004 # size - .data 0x60000000 # 801FF0FC => nop - # region @ 80200658 (4 bytes) - .data 0x80200658 # address - .data 0x00000004 # size - .data 0x60000000 # 80200658 => nop - # region @ 802021C4 (4 bytes) - .data 0x802021C4 # address - .data 0x00000004 # size - .data 0x38000000 # 802021C4 => li r0, 0x0000 - # region @ 802C2A40 (4 bytes) - .data 0x802C2A40 # address - .data 0x00000004 # size - .data 0x4800004C # 802C2A40 => b +0x0000004C /* 802C2A8C */ - # region @ 802D1480 (4 bytes) - .data 0x802D1480 # address - .data 0x00000004 # size - .data 0x48000020 # 802D1480 => b +0x00000020 /* 802D14A0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE1.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE1.patch.s deleted file mode 100644 index b22ea3aa..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE1.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D381C (4 bytes) - .data 0x801D381C # address - .data 0x00000004 # size - .data 0x4800004C # 801D381C => b +0x0000004C /* 801D3868 */ - # region @ 801FF0FC (4 bytes) - .data 0x801FF0FC # address - .data 0x00000004 # size - .data 0x60000000 # 801FF0FC => nop - # region @ 80200658 (4 bytes) - .data 0x80200658 # address - .data 0x00000004 # size - .data 0x60000000 # 80200658 => nop - # region @ 802021C4 (4 bytes) - .data 0x802021C4 # address - .data 0x00000004 # size - .data 0x38000000 # 802021C4 => li r0, 0x0000 - # region @ 802C2A84 (4 bytes) - .data 0x802C2A84 # address - .data 0x00000004 # size - .data 0x4800004C # 802C2A84 => b +0x0000004C /* 802C2AD0 */ - # region @ 802D14C4 (4 bytes) - .data 0x802D14C4 # address - .data 0x00000004 # size - .data 0x48000020 # 802D14C4 => b +0x00000020 /* 802D14E4 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE2.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE2.patch.s deleted file mode 100644 index 973081c5..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OE2.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D3A1C (4 bytes) - .data 0x801D3A1C # address - .data 0x00000004 # size - .data 0x4800004C # 801D3A1C => b +0x0000004C /* 801D3A68 */ - # region @ 801FFA44 (4 bytes) - .data 0x801FFA44 # address - .data 0x00000004 # size - .data 0x60000000 # 801FFA44 => nop - # region @ 80200FD0 (4 bytes) - .data 0x80200FD0 # address - .data 0x00000004 # size - .data 0x60000000 # 80200FD0 => nop - # region @ 80202B94 (4 bytes) - .data 0x80202B94 # address - .data 0x00000004 # size - .data 0x38000000 # 80202B94 => li r0, 0x0000 - # region @ 802C402C (4 bytes) - .data 0x802C402C # address - .data 0x00000004 # size - .data 0x4800004C # 802C402C => b +0x0000004C /* 802C4078 */ - # region @ 802D2AEC (4 bytes) - .data 0x802D2AEC # address - .data 0x00000004 # size - .data 0x48000020 # 802D2AEC => b +0x00000020 /* 802D2B0C */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ2.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ2.patch.s deleted file mode 100644 index 0beef600..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ2.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D33E4 (4 bytes) - .data 0x801D33E4 # address - .data 0x00000004 # size - .data 0x4800004C # 801D33E4 => b +0x0000004C /* 801D3430 */ - # region @ 801FE900 (4 bytes) - .data 0x801FE900 # address - .data 0x00000004 # size - .data 0x60000000 # 801FE900 => nop - # region @ 801FFE5C (4 bytes) - .data 0x801FFE5C # address - .data 0x00000004 # size - .data 0x60000000 # 801FFE5C => nop - # region @ 802019C8 (4 bytes) - .data 0x802019C8 # address - .data 0x00000004 # size - .data 0x38000000 # 802019C8 => li r0, 0x0000 - # region @ 802C2060 (4 bytes) - .data 0x802C2060 # address - .data 0x00000004 # size - .data 0x4800004C # 802C2060 => b +0x0000004C /* 802C20AC */ - # region @ 802D0AA0 (4 bytes) - .data 0x802D0AA0 # address - .data 0x00000004 # size - .data 0x48000020 # 802D0AA0 => b +0x00000020 /* 802D0AC0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ3.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ3.patch.s deleted file mode 100644 index de4e22a6..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ3.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D38EC (4 bytes) - .data 0x801D38EC # address - .data 0x00000004 # size - .data 0x4800004C # 801D38EC => b +0x0000004C /* 801D3938 */ - # region @ 801FF174 (4 bytes) - .data 0x801FF174 # address - .data 0x00000004 # size - .data 0x60000000 # 801FF174 => nop - # region @ 802006D0 (4 bytes) - .data 0x802006D0 # address - .data 0x00000004 # size - .data 0x60000000 # 802006D0 => nop - # region @ 8020223C (4 bytes) - .data 0x8020223C # address - .data 0x00000004 # size - .data 0x38000000 # 8020223C => li r0, 0x0000 - # region @ 802C2F98 (4 bytes) - .data 0x802C2F98 # address - .data 0x00000004 # size - .data 0x4800004C # 802C2F98 => b +0x0000004C /* 802C2FE4 */ - # region @ 802D1A58 (4 bytes) - .data 0x802D1A58 # address - .data 0x00000004 # size - .data 0x48000020 # 802D1A58 => b +0x00000020 /* 802D1A78 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ4.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ4.patch.s deleted file mode 100644 index b4c0024a..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ4.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D3CC4 (4 bytes) - .data 0x801D3CC4 # address - .data 0x00000004 # size - .data 0x4800004C # 801D3CC4 => b +0x0000004C /* 801D3D10 */ - # region @ 801FD944 (4 bytes) - .data 0x801FD944 # address - .data 0x00000004 # size - .data 0x38000000 # 801FD944 => li r0, 0x0000 - # region @ 8020010C (4 bytes) - .data 0x8020010C # address - .data 0x00000004 # size - .data 0x60000000 # 8020010C => nop - # region @ 802016CC (4 bytes) - .data 0x802016CC # address - .data 0x00000004 # size - .data 0x60000000 # 802016CC => nop - # region @ 802C42E4 (4 bytes) - .data 0x802C42E4 # address - .data 0x00000004 # size - .data 0x4800004C # 802C42E4 => b +0x0000004C /* 802C4330 */ - # region @ 802D2C10 (4 bytes) - .data 0x802D2C10 # address - .data 0x00000004 # size - .data 0x48000020 # 802D2C10 => b +0x00000020 /* 802D2C30 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ5.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ5.patch.s deleted file mode 100644 index 343bb37f..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OJ5.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D39B8 (4 bytes) - .data 0x801D39B8 # address - .data 0x00000004 # size - .data 0x4800004C # 801D39B8 => b +0x0000004C /* 801D3A04 */ - # region @ 801FF710 (4 bytes) - .data 0x801FF710 # address - .data 0x00000004 # size - .data 0x60000000 # 801FF710 => nop - # region @ 80200C9C (4 bytes) - .data 0x80200C9C # address - .data 0x00000004 # size - .data 0x60000000 # 80200C9C => nop - # region @ 80202860 (4 bytes) - .data 0x80202860 # address - .data 0x00000004 # size - .data 0x38000000 # 80202860 => li r0, 0x0000 - # region @ 802C3E78 (4 bytes) - .data 0x802C3E78 # address - .data 0x00000004 # size - .data 0x4800004C # 802C3E78 => b +0x0000004C /* 802C3EC4 */ - # region @ 802D2938 (4 bytes) - .data 0x802D2938 # address - .data 0x00000004 # size - .data 0x48000020 # 802D2938 => b +0x00000020 /* 802D2958 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OP0.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OP0.patch.s deleted file mode 100644 index 0f07ca41..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3OP0.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D3ED8 (4 bytes) - .data 0x801D3ED8 # address - .data 0x00000004 # size - .data 0x4800004C # 801D3ED8 => b +0x0000004C /* 801D3F24 */ - # region @ 801FF9E0 (4 bytes) - .data 0x801FF9E0 # address - .data 0x00000004 # size - .data 0x60000000 # 801FF9E0 => nop - # region @ 80200F3C (4 bytes) - .data 0x80200F3C # address - .data 0x00000004 # size - .data 0x60000000 # 80200F3C => nop - # region @ 80202AA8 (4 bytes) - .data 0x80202AA8 # address - .data 0x00000004 # size - .data 0x38000000 # 80202AA8 => li r0, 0x0000 - # region @ 802C37C0 (4 bytes) - .data 0x802C37C0 # address - .data 0x00000004 # size - .data 0x4800004C # 802C37C0 => b +0x0000004C /* 802C380C */ - # region @ 802D2280 (4 bytes) - .data 0x802D2280 # address - .data 0x00000004 # size - .data 0x48000020 # 802D2280 => b +0x00000020 /* 802D22A0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.3___.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3___.patch.s new file mode 100644 index 00000000..dc83bc93 --- /dev/null +++ b/system/client-functions/ItemLossPrevention/ItemLossPrevention.3___.patch.s @@ -0,0 +1,40 @@ +.meta name="No item loss" +.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data + .data 0x00000004 + b +0x4C + + .data + .data 0x00000004 + nop + + .data + .data 0x00000004 + nop + + .data + .data 0x00000004 + li r0, 0 + + .data + .data 0x00000004 + b +0x4C + + .data + .data 0x00000004 + b +0x20 + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OED.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OED.patch.s deleted file mode 100644 index 84435aed..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OED.patch.s +++ /dev/null @@ -1,68 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x000D1B85 - .data 0x00000001 - .binary 00 - .data 0x000D1BFC - .data 0x00000002 - .binary EB08 - .data 0x0020E805 - .data 0x00000001 - .binary EB - .data 0x002119CA - .data 0x00000002 - .binary EB74 - .data 0x002291B5 - .data 0x00000002 - .binary 9090 - .data 0x00229237 - .data 0x00000002 - .binary EB08 - .data 0x0022A222 - .data 0x00000002 - .binary 9090 - .data 0x0022A29B - .data 0x00000002 - .binary EB08 - .data 0x0022BF35 - .data 0x00000001 - .binary 00 - .data 0x0022BF6E - .data 0x00000002 - .binary EB08 - .data 0x0022C2E6 - .data 0x00000001 - .binary 00 - .data 0x002418E8 - .data 0x00000001 - .binary 00 - .data 0x0024195C - .data 0x00000002 - .binary EB08 - .data 0x002A2904 - .data 0x00000001 - .binary 00 - .data 0x002A297C - .data 0x00000002 - .binary EB08 - .data 0x002D677A - .data 0x00000001 - .binary 00 - .data 0x002D67ED - .data 0x00000002 - .binary EB08 - .data 0x002F0E1E - .data 0x00000001 - .binary EB - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OEU.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OEU.patch.s deleted file mode 100644 index 7be69bd1..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OEU.patch.s +++ /dev/null @@ -1,68 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x000D1BD5 - .data 0x00000001 - .binary 00 - .data 0x000D1C4C - .data 0x00000002 - .binary EB08 - .data 0x0020E805 - .data 0x00000001 - .binary EB - .data 0x00211A2A - .data 0x00000002 - .binary EB74 - .data 0x00229255 - .data 0x00000002 - .binary 9090 - .data 0x002292D7 - .data 0x00000002 - .binary EB08 - .data 0x0022A2C2 - .data 0x00000002 - .binary 9090 - .data 0x0022A33B - .data 0x00000002 - .binary EB08 - .data 0x0022BFD5 - .data 0x00000001 - .binary 00 - .data 0x0022C00E - .data 0x00000002 - .binary EB08 - .data 0x0022C386 - .data 0x00000001 - .binary 00 - .data 0x00241A78 - .data 0x00000001 - .binary 00 - .data 0x00241AEC - .data 0x00000002 - .binary EB08 - .data 0x002A2B34 - .data 0x00000001 - .binary 00 - .data 0x002A2BAC - .data 0x00000002 - .binary EB08 - .data 0x002D6C8A - .data 0x00000001 - .binary 00 - .data 0x002D6CFD - .data 0x00000002 - .binary EB08 - .data 0x002F0FCE - .data 0x00000001 - .binary EB - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJB.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJB.patch.s deleted file mode 100644 index 17142221..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJB.patch.s +++ /dev/null @@ -1,68 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x000D1A35 - .data 0x00000001 - .binary 00 - .data 0x000D1AAC - .data 0x00000002 - .binary EB08 - .data 0x0020E5D5 - .data 0x00000001 - .binary EB - .data 0x0021170A - .data 0x00000002 - .binary EB74 - .data 0x00228F15 - .data 0x00000002 - .binary 9090 - .data 0x00228F97 - .data 0x00000002 - .binary EB08 - .data 0x00229F82 - .data 0x00000002 - .binary 9090 - .data 0x00229FFB - .data 0x00000002 - .binary EB08 - .data 0x0022BC95 - .data 0x00000001 - .binary 00 - .data 0x0022BCCE - .data 0x00000002 - .binary EB08 - .data 0x0022C046 - .data 0x00000001 - .binary 00 - .data 0x00241608 - .data 0x00000001 - .binary 00 - .data 0x0024167C - .data 0x00000002 - .binary EB08 - .data 0x002A0FA4 - .data 0x00000001 - .binary 00 - .data 0x002A101C - .data 0x00000002 - .binary EB08 - .data 0x002D481A - .data 0x00000001 - .binary 00 - .data 0x002D488D - .data 0x00000002 - .binary EB08 - .data 0x002EEEBE - .data 0x00000001 - .binary EB - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJD.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJD.patch.s deleted file mode 100644 index d927d40a..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJD.patch.s +++ /dev/null @@ -1,68 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x000D1B05 - .data 0x00000001 - .binary 00 - .data 0x000D1B7C - .data 0x00000002 - .binary EB08 - .data 0x0020E755 - .data 0x00000001 - .binary EB - .data 0x0021197A - .data 0x00000002 - .binary EB74 - .data 0x00229125 - .data 0x00000002 - .binary 9090 - .data 0x002291A7 - .data 0x00000002 - .binary EB08 - .data 0x0022A192 - .data 0x00000002 - .binary 9090 - .data 0x0022A20B - .data 0x00000002 - .binary EB08 - .data 0x0022BEA5 - .data 0x00000001 - .binary 00 - .data 0x0022BEDE - .data 0x00000002 - .binary EB08 - .data 0x0022C256 - .data 0x00000001 - .binary 00 - .data 0x00241858 - .data 0x00000001 - .binary 00 - .data 0x002418CC - .data 0x00000002 - .binary EB08 - .data 0x002A19F4 - .data 0x00000001 - .binary 00 - .data 0x002A1A6C - .data 0x00000002 - .binary EB08 - .data 0x002D53DA - .data 0x00000001 - .binary 00 - .data 0x002D544D - .data 0x00000002 - .binary EB08 - .data 0x002EF9CE - .data 0x00000001 - .binary EB - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJU.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJU.patch.s deleted file mode 100644 index 1e494620..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OJU.patch.s +++ /dev/null @@ -1,68 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x000D1AF5 - .data 0x00000001 - .binary 00 - .data 0x000D1B6C - .data 0x00000002 - .binary EB08 - .data 0x0020E9D5 - .data 0x00000001 - .binary EB - .data 0x00211BFA - .data 0x00000002 - .binary EB74 - .data 0x00229415 - .data 0x00000002 - .binary 9090 - .data 0x00229497 - .data 0x00000002 - .binary EB08 - .data 0x0022A482 - .data 0x00000002 - .binary 9090 - .data 0x0022A4FB - .data 0x00000002 - .binary EB08 - .data 0x0022C195 - .data 0x00000001 - .binary 00 - .data 0x0022C1CE - .data 0x00000002 - .binary EB08 - .data 0x0022C546 - .data 0x00000001 - .binary 00 - .data 0x00241BD8 - .data 0x00000001 - .binary 00 - .data 0x00241C4C - .data 0x00000002 - .binary EB08 - .data 0x002A2EC4 - .data 0x00000001 - .binary 00 - .data 0x002A2F3C - .data 0x00000002 - .binary EB08 - .data 0x002D6CBA - .data 0x00000001 - .binary 00 - .data 0x002D6D2D - .data 0x00000002 - .binary EB08 - .data 0x002F0FCE - .data 0x00000001 - .binary EB - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OPD.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OPD.patch.s deleted file mode 100644 index 328b35b2..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OPD.patch.s +++ /dev/null @@ -1,68 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x000D1BA5 - .data 0x00000001 - .binary 00 - .data 0x000D1C1C - .data 0x00000002 - .binary EB08 - .data 0x0020E825 - .data 0x00000001 - .binary EB - .data 0x002119EA - .data 0x00000002 - .binary EB74 - .data 0x002291D5 - .data 0x00000002 - .binary 9090 - .data 0x00229257 - .data 0x00000002 - .binary EB08 - .data 0x0022A242 - .data 0x00000002 - .binary 9090 - .data 0x0022A2BB - .data 0x00000002 - .binary EB08 - .data 0x0022BF55 - .data 0x00000001 - .binary 00 - .data 0x0022BF8E - .data 0x00000002 - .binary EB08 - .data 0x0022C306 - .data 0x00000001 - .binary 00 - .data 0x00241908 - .data 0x00000001 - .binary 00 - .data 0x0024197C - .data 0x00000002 - .binary EB08 - .data 0x002A2924 - .data 0x00000001 - .binary 00 - .data 0x002A299C - .data 0x00000002 - .binary EB08 - .data 0x002D67AA - .data 0x00000001 - .binary 00 - .data 0x002D681D - .data 0x00000002 - .binary EB08 - .data 0x002F0E4E - .data 0x00000001 - .binary EB - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OPU.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OPU.patch.s deleted file mode 100644 index f0a56628..00000000 --- a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4OPU.patch.s +++ /dev/null @@ -1,68 +0,0 @@ -.meta name="No item loss" -.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x000D1BD5 - .data 0x00000001 - .binary 00 - .data 0x000D1C4C - .data 0x00000002 - .binary EB08 - .data 0x0020E895 - .data 0x00000001 - .binary EB - .data 0x00211ABA - .data 0x00000002 - .binary EB74 - .data 0x002292E5 - .data 0x00000002 - .binary 9090 - .data 0x00229367 - .data 0x00000002 - .binary EB08 - .data 0x0022A352 - .data 0x00000002 - .binary 9090 - .data 0x0022A3CB - .data 0x00000002 - .binary EB08 - .data 0x0022C065 - .data 0x00000001 - .binary 00 - .data 0x0022C09E - .data 0x00000002 - .binary EB08 - .data 0x0022C416 - .data 0x00000001 - .binary 00 - .data 0x00241B08 - .data 0x00000001 - .binary 00 - .data 0x00241B7C - .data 0x00000002 - .binary EB08 - .data 0x002A2BF4 - .data 0x00000001 - .binary 00 - .data 0x002A2C6C - .data 0x00000002 - .binary EB08 - .data 0x002D6D0A - .data 0x00000001 - .binary 00 - .data 0x002D6D7D - .data 0x00000002 - .binary EB08 - .data 0x002F103E - .data 0x00000001 - .binary EB - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemLossPrevention/ItemLossPrevention.4___.patch.s b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4___.patch.s new file mode 100644 index 00000000..6367b735 --- /dev/null +++ b/system/client-functions/ItemLossPrevention/ItemLossPrevention.4___.patch.s @@ -0,0 +1,70 @@ +.meta name="No item loss" +.meta description="Disables logic that\ndeletes items if\nyou don't log off\nnormally" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 +# Xbox port by fuzziqersoftware + +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksXB + .data + .data 0x00000001 + .binary 00 + .data + .data 0x00000002 + .binary EB08 + .data + .data 0x00000001 + .binary EB + .data + .data 0x00000002 + .binary EB74 + .data + .data 0x00000002 + .binary 9090 + .data + .data 0x00000002 + .binary EB08 + .data + .data 0x00000002 + .binary 9090 + .data + .data 0x00000002 + .binary EB08 + .data + .data 0x00000001 + .binary 00 + .data + .data 0x00000002 + .binary EB08 + .data + .data 0x00000001 + .binary 00 + .data + .data 0x00000001 + .binary 00 + .data + .data 0x00000002 + .binary EB08 + .data + .data 0x00000001 + .binary 00 + .data + .data 0x00000002 + .binary EB08 + .data + .data 0x00000001 + .binary 00 + .data + .data 0x00000002 + .binary EB08 + .data + .data 0x00000001 + .binary EB + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3OE0.patch.s b/system/client-functions/ItemPickup/ItemPickup.3OE0.patch.s deleted file mode 100644 index c93aae89..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.3OE0.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the Z button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - .data 0x8000B938 - .data 0x00000020 - .data 0x387C0550 - .data 0x38800100 - .data 0x4834428D - .data 0x2C030000 - .data 0x4182000C - .data 0x7F83E378 - .data 0x481AA150 - .data 0x481AA15C - .data 0x801B5A9C - .data 0x00000004 - .data 0x4BE55E9C - .data 0x8024CC0C - .data 0x00000004 - .data 0x38800008 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3OE1.patch.s b/system/client-functions/ItemPickup/ItemPickup.3OE1.patch.s deleted file mode 100644 index 7c79dffa..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.3OE1.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the Z button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - .data 0x8000B938 - .data 0x00000020 - .data 0x387C0550 - .data 0x38800100 - .data 0x483442D1 - .data 0x2C030000 - .data 0x4182000C - .data 0x7F83E378 - .data 0x481AA150 - .data 0x481AA15C - .data 0x801B5A9C - .data 0x00000004 - .data 0x4BE55E9C - .data 0x8024CC0C - .data 0x00000004 - .data 0x38800008 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3OE2.patch.s b/system/client-functions/ItemPickup/ItemPickup.3OE2.patch.s deleted file mode 100644 index a8b0e9f0..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.3OE2.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the Z button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - .data 0x8000B938 - .data 0x00000020 - .data 0x387C0550 - .data 0x38800100 - .data 0x48345EB9 - .data 0x2C030000 - .data 0x4182000C - .data 0x7F83E378 - .data 0x481AA2E8 - .data 0x481AA2F4 - .data 0x801B5C34 - .data 0x00000004 - .data 0x4BE55D04 - .data 0x8024DD88 - .data 0x00000004 - .data 0x38800008 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3OJ2.patch.s b/system/client-functions/ItemPickup/ItemPickup.3OJ2.patch.s deleted file mode 100644 index ff1105f7..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.3OJ2.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the Z button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - .data 0x8000B938 - .data 0x00000020 - .data 0x387C0550 - .data 0x38800100 - .data 0x483433D9 - .data 0x2C030000 - .data 0x4182000C - .data 0x7F83E378 - .data 0x481A9D64 - .data 0x481A9D70 - .data 0x801B56B0 - .data 0x00000004 - .data 0x4BE56288 - .data 0x8024C384 - .data 0x00000004 - .data 0x38800008 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3OJ3.patch.s b/system/client-functions/ItemPickup/ItemPickup.3OJ3.patch.s deleted file mode 100644 index 14f42734..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.3OJ3.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the Z button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - .data 0x8000B938 - .data 0x00000020 - .data 0x387C0550 - .data 0x38800100 - .data 0x483447DD - .data 0x2C030000 - .data 0x4182000C - .data 0x7F83E378 - .data 0x481AA1B8 - .data 0x481AA1C4 - .data 0x801B5B04 - .data 0x00000004 - .data 0x4BE55E34 - .data 0x8024CDD0 - .data 0x00000004 - .data 0x38800008 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3OJ4.patch.s b/system/client-functions/ItemPickup/ItemPickup.3OJ4.patch.s deleted file mode 100644 index 6dfd48a5..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.3OJ4.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the Z button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - .data 0x8000B938 - .data 0x00000020 - .data 0x387C0550 - .data 0x38800100 - .data 0x48345D45 - .data 0x2C030000 - .data 0x4182000C - .data 0x7F83E378 - .data 0x481AC370 - .data 0x481AC37C - .data 0x801B7CBC - .data 0x00000004 - .data 0x4BE53C7C - .data 0x8024DD28 - .data 0x00000004 - .data 0x38800008 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3OJ5.patch.s b/system/client-functions/ItemPickup/ItemPickup.3OJ5.patch.s deleted file mode 100644 index 1a7e080f..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.3OJ5.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the Z button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - .data 0x8000B938 - .data 0x00000020 - .data 0x387C0550 - .data 0x38800100 - .data 0x48345AED - .data 0x2C030000 - .data 0x4182000C - .data 0x7F83E378 - .data 0x481AA284 - .data 0x481AA290 - .data 0x801B5BD0 - .data 0x00000004 - .data 0x4BE55D68 - .data 0x8024DAC4 - .data 0x00000004 - .data 0x38800008 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3OP0.patch.s b/system/client-functions/ItemPickup/ItemPickup.3OP0.patch.s deleted file mode 100644 index a77bdb46..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.3OP0.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the Z button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - .data 0x8000B938 - .data 0x00000020 - .data 0x387C0550 - .data 0x38800100 - .data 0x483452AD - .data 0x2C030000 - .data 0x4182000C - .data 0x7F83E378 - .data 0x481AA7A4 - .data 0x481AA7B0 - .data 0x801B60F0 - .data 0x00000004 - .data 0x4BE55848 - .data 0x8024D5D0 - .data 0x00000004 - .data 0x38800008 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.3___.patch.s b/system/client-functions/ItemPickup/ItemPickup.3___.patch.s new file mode 100644 index 00000000..5724ba37 --- /dev/null +++ b/system/client-functions/ItemPickup/ItemPickup.3___.patch.s @@ -0,0 +1,31 @@ +.meta name="Item pickup" +.meta description="Prevents picking\nup items unless you\nhold the Z button" +# Original code by Ralf @ GC-Forever +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + .data 0x8000B938 + .data 0x00000020 + .data 0x387C0550 + .data 0x38800100 + .data + .data 0x2C030000 + .data 0x4182000C + .data 0x7F83E378 + .data + .data + .data + .data 0x00000004 + .data + .data + .data 0x00000004 + .data 0x38800008 + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.4OEU.patch.s b/system/client-functions/ItemPickup/ItemPickup.4OEU.patch.s deleted file mode 100644 index 107b261b..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.4OEU.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the white or\nblack button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x001FDC99 - .data 0x07 - .binary E8880100009090 - .data 0x001FDE26 - .data 0x0A - .binary 8B866C05000085C0EB46 - .data 0x001FDE76 - .data 0x09 - .binary 74038A40013408EB46 - .data 0x001FDEC5 - .data 0x0A - .binary 7507F68624030000E0C3 - .data 0x0025AEED - .data 0x01 - .binary 00 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.4OJB.patch.s b/system/client-functions/ItemPickup/ItemPickup.4OJB.patch.s deleted file mode 100644 index e991aaf2..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.4OJB.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the white or\nblack button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x001FDA89 - .data 0x07 - .binary E8880100009090 - .data 0x001FDC16 - .data 0x0A - .binary 8B866C05000085C0EB46 - .data 0x001FDC66 - .data 0x09 - .binary 74038A40013408EB46 - .data 0x001FDCB5 - .data 0x0A - .binary 7507F68624030000E0C3 - .data 0x0025A94D - .data 0x01 - .binary 00 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.4OJD.patch.s b/system/client-functions/ItemPickup/ItemPickup.4OJD.patch.s deleted file mode 100644 index fd86c8b5..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.4OJD.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the white or\nblack button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x001FDBE9 - .data 0x07 - .binary E8880100009090 - .data 0x001FDD76 - .data 0x0A - .binary 8B866C05000085C0EB46 - .data 0x001FDDC6 - .data 0x09 - .binary 74038A40013408EB46 - .data 0x001FDE15 - .data 0x0A - .binary 7507F68624030000E0C3 - .data 0x0025ACCD - .data 0x01 - .binary 00 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.4OJU.patch.s b/system/client-functions/ItemPickup/ItemPickup.4OJU.patch.s deleted file mode 100644 index 8542b8c2..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.4OJU.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the white or\nblack button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x001FDE69 - .data 0x07 - .binary E8880100009090 - .data 0x001FDFF6 - .data 0x0A - .binary 8B866C05000085C0EB46 - .data 0x001FE046 - .data 0x09 - .binary 74038A40013408EB46 - .data 0x001FE095 - .data 0x0A - .binary 7507F68624030000E0C3 - .data 0x0025B07D - .data 0x01 - .binary 00 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.4OPD.patch.s b/system/client-functions/ItemPickup/ItemPickup.4OPD.patch.s deleted file mode 100644 index f4bc0155..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.4OPD.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the white or\nblack button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x001FDCB9 - .data 0x07 - .binary E8880100009090 - .data 0x001FDE46 - .data 0x0A - .binary 8B866C05000085C0EB46 - .data 0x001FDE96 - .data 0x09 - .binary 74038A40013408EB46 - .data 0x001FDEE5 - .data 0x0A - .binary 7507F68624030000E0C3 - .data 0x0025ADCD - .data 0x01 - .binary 00 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.4OPU.patch.s b/system/client-functions/ItemPickup/ItemPickup.4OPU.patch.s deleted file mode 100644 index 06781d2c..00000000 --- a/system/client-functions/ItemPickup/ItemPickup.4OPU.patch.s +++ /dev/null @@ -1,29 +0,0 @@ -.meta name="Item pickup" -.meta description="Prevents picking\nup items unless you\nhold the white or\nblack button" -# Original code by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - .data 0x001FDD29 - .data 0x07 - .binary E8880100009090 - .data 0x001FDEB6 - .data 0x0A - .binary 8B866C05000085C0EB46 - .data 0x001FDF06 - .data 0x09 - .binary 74038A40013408EB46 - .data 0x001FDF55 - .data 0x0A - .binary 7507F68624030000E0C3 - .data 0x0025AF1D - .data 0x01 - .binary 00 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ItemPickup/ItemPickup.4OED.patch.s b/system/client-functions/ItemPickup/ItemPickup.4___.patch.s similarity index 55% rename from system/client-functions/ItemPickup/ItemPickup.4OED.patch.s rename to system/client-functions/ItemPickup/ItemPickup.4___.patch.s index 85a97e53..904e0ee3 100644 --- a/system/client-functions/ItemPickup/ItemPickup.4OED.patch.s +++ b/system/client-functions/ItemPickup/ItemPickup.4___.patch.s @@ -5,24 +5,26 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2049 # Xbox port by fuzziqersoftware +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksXB - .data 0x001FDC99 + .data .data 0x07 .binary E8880100009090 - .data 0x001FDE26 + .data .data 0x0A .binary 8B866C05000085C0EB46 - .data 0x001FDE76 + .data .data 0x09 .binary 74038A40013408EB46 - .data 0x001FDEC5 + .data .data 0x0A .binary 7507F68624030000E0C3 - .data 0x0025ADAD + .data .data 0x01 .binary 00 .data 0x00000000 diff --git a/system/client-functions/Movement/Movement.3OE0.patch.s b/system/client-functions/Movement/Movement.3OE0.patch.s deleted file mode 100644 index 342a09b1..00000000 --- a/system/client-functions/Movement/Movement.3OE0.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Movement" -.meta description="Allow backsteps and\nmovement when\nenemies are nearby" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801CEBF0 (4 bytes) - .data 0x801CEBF0 # address - .data 0x00000004 # size - .data 0x4800000C # 801CEBF0 => b +0x0000000C /* 801CEBFC */ - # region @ 801CFAE0 (4 bytes) - .data 0x801CFAE0 # address - .data 0x00000004 # size - .data 0x48000014 # 801CFAE0 => b +0x00000014 /* 801CFAF4 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Movement/Movement.3OE1.patch.s b/system/client-functions/Movement/Movement.3OE1.patch.s deleted file mode 100644 index 342a09b1..00000000 --- a/system/client-functions/Movement/Movement.3OE1.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Movement" -.meta description="Allow backsteps and\nmovement when\nenemies are nearby" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801CEBF0 (4 bytes) - .data 0x801CEBF0 # address - .data 0x00000004 # size - .data 0x4800000C # 801CEBF0 => b +0x0000000C /* 801CEBFC */ - # region @ 801CFAE0 (4 bytes) - .data 0x801CFAE0 # address - .data 0x00000004 # size - .data 0x48000014 # 801CFAE0 => b +0x00000014 /* 801CFAF4 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Movement/Movement.3OE2.patch.s b/system/client-functions/Movement/Movement.3OE2.patch.s deleted file mode 100644 index aa8a8ead..00000000 --- a/system/client-functions/Movement/Movement.3OE2.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Movement" -.meta description="Allow backsteps and\nmovement when\nenemies are nearby" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801CEDF0 (4 bytes) - .data 0x801CEDF0 # address - .data 0x00000004 # size - .data 0x4800000C # 801CEDF0 => b +0x0000000C /* 801CEDFC */ - # region @ 801CFCE0 (4 bytes) - .data 0x801CFCE0 # address - .data 0x00000004 # size - .data 0x48000014 # 801CFCE0 => b +0x00000014 /* 801CFCF4 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Movement/Movement.3OJ2.patch.s b/system/client-functions/Movement/Movement.3OJ2.patch.s deleted file mode 100644 index cb1c50b0..00000000 --- a/system/client-functions/Movement/Movement.3OJ2.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Movement" -.meta description="Allow backsteps and\nmovement when\nenemies are nearby" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801CE7AC (4 bytes) - .data 0x801CE7AC # address - .data 0x00000004 # size - .data 0x4800000C # 801CE7AC => b +0x0000000C /* 801CE7B8 */ - # region @ 801CF69C (4 bytes) - .data 0x801CF69C # address - .data 0x00000004 # size - .data 0x48000014 # 801CF69C => b +0x00000014 /* 801CF6B0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Movement/Movement.3OJ3.patch.s b/system/client-functions/Movement/Movement.3OJ3.patch.s deleted file mode 100644 index 44c79e8d..00000000 --- a/system/client-functions/Movement/Movement.3OJ3.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Movement" -.meta description="Allow backsteps and\nmovement when\nenemies are nearby" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801CECC0 (4 bytes) - .data 0x801CECC0 # address - .data 0x00000004 # size - .data 0x4800000C # 801CECC0 => b +0x0000000C /* 801CECCC */ - # region @ 801CFBB0 (4 bytes) - .data 0x801CFBB0 # address - .data 0x00000004 # size - .data 0x48000014 # 801CFBB0 => b +0x00000014 /* 801CFBC4 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Movement/Movement.3OJ4.patch.s b/system/client-functions/Movement/Movement.3OJ4.patch.s deleted file mode 100644 index db836c8c..00000000 --- a/system/client-functions/Movement/Movement.3OJ4.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Movement" -.meta description="Allow backsteps and\nmovement when\nenemies are nearby" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801D0D10 (4 bytes) - .data 0x801D0D10 # address - .data 0x00000004 # size - .data 0x4800000C # 801D0D10 => b +0x0000000C /* 801D0D1C */ - # region @ 801D1CEC (4 bytes) - .data 0x801D1CEC # address - .data 0x00000004 # size - .data 0x48000014 # 801D1CEC => b +0x00000014 /* 801D1D00 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Movement/Movement.3OJ5.patch.s b/system/client-functions/Movement/Movement.3OJ5.patch.s deleted file mode 100644 index 8996e3e7..00000000 --- a/system/client-functions/Movement/Movement.3OJ5.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Movement" -.meta description="Allow backsteps and\nmovement when\nenemies are nearby" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801CED8C (4 bytes) - .data 0x801CED8C # address - .data 0x00000004 # size - .data 0x4800000C # 801CED8C => b +0x0000000C /* 801CED98 */ - # region @ 801CFC7C (4 bytes) - .data 0x801CFC7C # address - .data 0x00000004 # size - .data 0x48000014 # 801CFC7C => b +0x00000014 /* 801CFC90 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Movement/Movement.3OP0.patch.s b/system/client-functions/Movement/Movement.3OP0.patch.s deleted file mode 100644 index 352d7664..00000000 --- a/system/client-functions/Movement/Movement.3OP0.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Movement" -.meta description="Allow backsteps and\nmovement when\nenemies are nearby" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 801CF2AC (4 bytes) - .data 0x801CF2AC # address - .data 0x00000004 # size - .data 0x4800000C # 801CF2AC => b +0x0000000C /* 801CF2B8 */ - # region @ 801D019C (4 bytes) - .data 0x801D019C # address - .data 0x00000004 # size - .data 0x48000014 # 801D019C => b +0x00000014 /* 801D01B0 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/Movement/Movement.3___.patch.s b/system/client-functions/Movement/Movement.3___.patch.s new file mode 100644 index 00000000..0db3310e --- /dev/null +++ b/system/client-functions/Movement/Movement.3___.patch.s @@ -0,0 +1,24 @@ +.meta name="Movement" +.meta description="Allow backsteps and\nmovement when\nenemies are nearby" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data + .data 0x00000004 + b +0x0C + + .data + .data 0x00000004 + b +0x14 + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/Movement/Movement.4OED.patch.s b/system/client-functions/Movement/Movement.4OED.patch.s deleted file mode 100644 index 07b7beab..00000000 --- a/system/client-functions/Movement/Movement.4OED.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta name="Movement" -.meta description="Fixes movement dead\nzone thresholds" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00308E88 - .deltaof code_start, code_end -code_start: - .include MovementXB -code_end: - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Movement/Movement.4OEU.patch.s b/system/client-functions/Movement/Movement.4OEU.patch.s deleted file mode 100644 index 3f82e280..00000000 --- a/system/client-functions/Movement/Movement.4OEU.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta name="Movement" -.meta description="Fixes movement dead\nzone thresholds" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00308F08 - .deltaof code_start, code_end -code_start: - .include MovementXB -code_end: - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Movement/Movement.4OJB.patch.s b/system/client-functions/Movement/Movement.4OJB.patch.s deleted file mode 100644 index 66a56678..00000000 --- a/system/client-functions/Movement/Movement.4OJB.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta name="Movement" -.meta description="Fixes movement dead\nzone thresholds" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x003067D8 - .deltaof code_start, code_end -code_start: - .include MovementXB -code_end: - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Movement/Movement.4OJD.patch.s b/system/client-functions/Movement/Movement.4OJD.patch.s deleted file mode 100644 index 8e9f70ad..00000000 --- a/system/client-functions/Movement/Movement.4OJD.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta name="Movement" -.meta description="Fixes movement dead\nzone thresholds" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x003073D8 - .deltaof code_start, code_end -code_start: - .include MovementXB -code_end: - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Movement/Movement.4OJU.patch.s b/system/client-functions/Movement/Movement.4OJU.patch.s deleted file mode 100644 index 3f82e280..00000000 --- a/system/client-functions/Movement/Movement.4OJU.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta name="Movement" -.meta description="Fixes movement dead\nzone thresholds" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00308F08 - .deltaof code_start, code_end -code_start: - .include MovementXB -code_end: - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Movement/Movement.4OPD.patch.s b/system/client-functions/Movement/Movement.4OPD.patch.s deleted file mode 100644 index b5e92db8..00000000 --- a/system/client-functions/Movement/Movement.4OPD.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta name="Movement" -.meta description="Fixes movement dead\nzone thresholds" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00308EB8 - .deltaof code_start, code_end -code_start: - .include MovementXB -code_end: - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Movement/Movement.4OPU.patch.s b/system/client-functions/Movement/Movement.4OPU.patch.s deleted file mode 100644 index 5c2a4381..00000000 --- a/system/client-functions/Movement/Movement.4OPU.patch.s +++ /dev/null @@ -1,16 +0,0 @@ -.meta name="Movement" -.meta description="Fixes movement dead\nzone thresholds" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x00309078 - .deltaof code_start, code_end -code_start: - .include MovementXB -code_end: - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Movement/MovementXB.x86.inc.s b/system/client-functions/Movement/Movement.4___.patch.s similarity index 77% rename from system/client-functions/Movement/MovementXB.x86.inc.s rename to system/client-functions/Movement/Movement.4___.patch.s index 2efcc07d..4ba39f82 100644 --- a/system/client-functions/Movement/MovementXB.x86.inc.s +++ b/system/client-functions/Movement/Movement.4___.patch.s @@ -1,10 +1,23 @@ +.meta name="Movement" +.meta description="Fixes movement dead\nzone thresholds" + +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + +entry_ptr: +reloc0: + .offsetof start start: + .include WriteCodeBlocksXB + + .data + .deltaof code_start, code_end +code_start: call process_stick_value push esi sub esi, 4 call process_stick_value pop esi - jmp end + jmp code_end process_stick_value: mov ax, [esp + 0x3C] # ax = stick val y @@ -36,4 +49,6 @@ process_stick_value: ret .zero 0x56 -end: +code_end: + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.3OE1.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.3OE1.patch.s deleted file mode 100644 index 39fe7393..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.3OE1.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# GC port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x8010E114 # Rare weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E100 # Unidentified weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E248 # Rare armors - .data 0x00000004 - li r29, 0 - - .data 0x800041A0 - .deltaof tool_check_start, tool_check_end - .address 0x800041A0 -tool_check_start: - lwz r29, [r3 + 0x10] # Flags - xori r29, r29, 0x0080 - andi. r29, r29, 0x0080 - beq is_rare_tool - lwz r29, [r3 + 0x0C] # Cost -is_rare_tool: - blr -tool_check_end: - - .data 0x8010E3BC - .data 0x00000004 - .address 0x8010E3BC - bl tool_check_start - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.3OE2.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.3OE2.patch.s deleted file mode 100644 index 55d3376f..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.3OE2.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# GC port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x8010E00C # Rare weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010DFF8 # Unidentified weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E140 # Rare armors - .data 0x00000004 - li r29, 0 - - .data 0x800041A0 - .deltaof tool_check_start, tool_check_end - .address 0x800041A0 -tool_check_start: - lwz r29, [r3 + 0x10] # Flags - xori r29, r29, 0x0080 - andi. r29, r29, 0x0080 - beq is_rare_tool - lwz r29, [r3 + 0x0C] # Cost -is_rare_tool: - blr -tool_check_end: - - .data 0x8010E2B4 - .data 0x00000004 - .address 0x8010E2B4 - bl tool_check_start - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.3OJ2.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.3OJ2.patch.s deleted file mode 100644 index 3513825a..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.3OJ2.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# GC port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x8010DE70 # Rare weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010DE5C # Unidentified weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010DFA4 # Rare armors - .data 0x00000004 - li r29, 0 - - .data 0x800041A0 - .deltaof tool_check_start, tool_check_end - .address 0x800041A0 -tool_check_start: - lwz r29, [r3 + 0x10] # Flags - xori r29, r29, 0x0080 - andi. r29, r29, 0x0080 - beq is_rare_tool - lwz r29, [r3 + 0x0C] # Cost -is_rare_tool: - blr -tool_check_end: - - .data 0x8010E118 - .data 0x00000004 - .address 0x8010E118 - bl tool_check_start - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.3OJ3.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.3OJ3.patch.s deleted file mode 100644 index 81aeacc0..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.3OJ3.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# GC port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x8010E070 # Rare weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E05C # Unidentified weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E1A4 # Rare armors - .data 0x00000004 - li r29, 0 - - .data 0x800041A0 - .deltaof tool_check_start, tool_check_end - .address 0x800041A0 -tool_check_start: - lwz r29, [r3 + 0x10] # Flags - xori r29, r29, 0x0080 - andi. r29, r29, 0x0080 - beq is_rare_tool - lwz r29, [r3 + 0x0C] # Cost -is_rare_tool: - blr -tool_check_end: - - .data 0x8010E318 - .data 0x00000004 - .address 0x8010E318 - bl tool_check_start - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.3OJ4.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.3OJ4.patch.s deleted file mode 100644 index 165dc426..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.3OJ4.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# GC port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x8010E1BC # Rare weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E1A8 # Unidentified weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E2F0 # Rare armors - .data 0x00000004 - li r29, 0 - - .data 0x800041A0 - .deltaof tool_check_start, tool_check_end - .address 0x800041A0 -tool_check_start: - lwz r29, [r3 + 0x10] # Flags - xori r29, r29, 0x0080 - andi. r29, r29, 0x0080 - beq is_rare_tool - lwz r29, [r3 + 0x0C] # Cost -is_rare_tool: - blr -tool_check_end: - - .data 0x8010E464 - .data 0x00000004 - .address 0x8010E464 - bl tool_check_start - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.3OJ5.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.3OJ5.patch.s deleted file mode 100644 index d5d9c91f..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.3OJ5.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# GC port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x8010DFFC # Rare weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010DFE8 # Unidentified weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E130 # Rare armors - .data 0x00000004 - li r29, 0 - - .data 0x800041A0 - .deltaof tool_check_start, tool_check_end - .address 0x800041A0 -tool_check_start: - lwz r29, [r3 + 0x10] # Flags - xori r29, r29, 0x0080 - andi. r29, r29, 0x0080 - beq is_rare_tool - lwz r29, [r3 + 0x0C] # Cost -is_rare_tool: - blr -tool_check_end: - - .data 0x8010E2A4 - .data 0x00000004 - .address 0x8010E2A4 - bl tool_check_start - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.3OP0.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.3OP0.patch.s deleted file mode 100644 index c674217e..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.3OP0.patch.s +++ /dev/null @@ -1,47 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# GC port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x8010E1F0 # Rare weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E1DC # Unidentified weapons - .data 0x00000004 - li r29, 0 - - .data 0x8010E324 # Rare armors - .data 0x00000004 - li r29, 0 - - .data 0x800041A0 - .deltaof tool_check_start, tool_check_end - .address 0x800041A0 -tool_check_start: - lwz r29, [r3 + 0x10] # Flags - xori r29, r29, 0x0080 - andi. r29, r29, 0x0080 - beq is_rare_tool - lwz r29, [r3 + 0x0C] # Cost -is_rare_tool: - blr -tool_check_end: - - .data 0x8010E498 - .data 0x00000004 - .address 0x8010E498 - bl tool_check_start - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.3OE0.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.3___.patch.s similarity index 60% rename from system/client-functions/NoRareSelling/NoRareSelling.3OE0.patch.s rename to system/client-functions/NoRareSelling/NoRareSelling.3___.patch.s index 39fe7393..3a017ee4 100644 --- a/system/client-functions/NoRareSelling/NoRareSelling.3OE0.patch.s +++ b/system/client-functions/NoRareSelling/NoRareSelling.3___.patch.s @@ -2,8 +2,10 @@ # https://github.com/Solybum/Blue-Burst-Patch-Project # GC port by fuzziqersoftware +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + .meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" +.meta description="Stops you from\naccidentally\nselling rares\nto shops" entry_ptr: reloc0: @@ -13,15 +15,15 @@ start: # See comments in the 59NL version of this patch for details on how it works. - .data 0x8010E114 # Rare weapons + .data .data 0x00000004 li r29, 0 - .data 0x8010E100 # Unidentified weapons + .data .data 0x00000004 li r29, 0 - .data 0x8010E248 # Rare armors + .data .data 0x00000004 li r29, 0 @@ -38,9 +40,9 @@ is_rare_tool: blr tool_check_end: - .data 0x8010E3BC + .data .data 0x00000004 - .address 0x8010E3BC + .address bl tool_check_start .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.4OEU.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.4OEU.patch.s deleted file mode 100644 index f67ad24a..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.4OEU.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# Xbox port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x0017DED6 # Rare weapons and armors - .data 0x00000004 - .data 0x00000000 - - .data 0x0017DEBC # Unidentified weapons - .data 0x00000004 - .data 0x00000000 - - .data 0x0017E07E - .data 0x00000005 - .binary E98E0C0000 # jmp tool_check_start - - .data 0x0017ED11 - .deltaof tool_check_start, tool_check_end -tool_check_start: - xor edi, edi - test byte [eax + 0x10], 0x80 - cmovz edi, [eax + 0x0C] - .binary E995F3FFFF # jmp tool_check_ret -tool_check_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.4OJB.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.4OJB.patch.s deleted file mode 100644 index c839ccfb..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.4OJB.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# Xbox port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x0017DD36 # Rare weapons and armors - .data 0x00000004 - .data 0x00000000 - - .data 0x0017DD1C # Unidentified weapons - .data 0x00000004 - .data 0x00000000 - - .data 0x0017DEDE - .data 0x00000005 - .binary E98E0C0000 # jmp tool_check_start - - .data 0x0017EB71 - .deltaof tool_check_start, tool_check_end -tool_check_start: - xor edi, edi - test byte [eax + 0x10], 0x80 - cmovz edi, [eax + 0x0C] - .binary E995F3FFFF # jmp tool_check_ret -tool_check_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.4OJD.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.4OJD.patch.s deleted file mode 100644 index d02cf8e6..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.4OJD.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# Xbox port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x0017DEB6 # Rare weapons and armors - .data 0x00000004 - .data 0x00000000 - - .data 0x0017DE9C # Unidentified weapons - .data 0x00000004 - .data 0x00000000 - - .data 0x0017E05E - .data 0x00000005 - .binary E98E0C0000 # jmp tool_check_start - - .data 0x0017ECF1 - .deltaof tool_check_start, tool_check_end -tool_check_start: - xor edi, edi - test byte [eax + 0x10], 0x80 - cmovz edi, [eax + 0x0C] - .binary E995F3FFFF # jmp tool_check_ret -tool_check_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.4OJU.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.4OJU.patch.s deleted file mode 100644 index 8c88360f..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.4OJU.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# Xbox port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x0017DF66 # Rare weapons and armors - .data 0x00000004 - .data 0x00000000 - - .data 0x0017DF4C # Unidentified weapons - .data 0x00000004 - .data 0x00000000 - - .data 0x0017E10E - .data 0x00000005 - .binary E98E0C0000 # jmp tool_check_start - - .data 0x0017EDA1 - .deltaof tool_check_start, tool_check_end -tool_check_start: - xor edi, edi - test byte [eax + 0x10], 0x80 - cmovz edi, [eax + 0x0C] - .binary E995F3FFFF # jmp tool_check_ret -tool_check_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.4OPD.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.4OPD.patch.s deleted file mode 100644 index c9bd4bb5..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.4OPD.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# Xbox port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x0017DEC6 # Rare weapons and armors - .data 0x00000004 - .data 0x00000000 - - .data 0x0017DEAC # Unidentified weapons - .data 0x00000004 - .data 0x00000000 - - .data 0x0017E06E - .data 0x00000005 - .binary E98E0C0000 # jmp tool_check_start - - .data 0x0017ED01 - .deltaof tool_check_start, tool_check_end -tool_check_start: - xor edi, edi - test byte [eax + 0x10], 0x80 - cmovz edi, [eax + 0x0C] - .binary E995F3FFFF # jmp tool_check_ret -tool_check_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.4OPU.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.4OPU.patch.s deleted file mode 100644 index 5ed08ea3..00000000 --- a/system/client-functions/NoRareSelling/NoRareSelling.4OPU.patch.s +++ /dev/null @@ -1,38 +0,0 @@ -# Original patch by Soly, in Blue Burst Patch Project -# https://github.com/Solybum/Blue-Burst-Patch-Project -# Xbox port by fuzziqersoftware - -.meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - # See comments in the 59NL version of this patch for details on how it works. - - .data 0x0017DE96 # Rare weapons and armors - .data 0x00000004 - .data 0x00000000 - - .data 0x0017DE7C # Unidentified weapons - .data 0x00000004 - .data 0x00000000 - - .data 0x0017E03E - .data 0x00000005 - .binary E98E0C0000 # jmp tool_check_start - - .data 0x0017ECD1 - .deltaof tool_check_start, tool_check_end -tool_check_start: - xor edi, edi - test byte [eax + 0x10], 0x80 - cmovz edi, [eax + 0x0C] - .binary E995F3FFFF # jmp tool_check_ret -tool_check_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/NoRareSelling/NoRareSelling.4OED.patch.s b/system/client-functions/NoRareSelling/NoRareSelling.4___.patch.s similarity index 59% rename from system/client-functions/NoRareSelling/NoRareSelling.4OED.patch.s rename to system/client-functions/NoRareSelling/NoRareSelling.4___.patch.s index 4cfd5943..6fe2727a 100644 --- a/system/client-functions/NoRareSelling/NoRareSelling.4OED.patch.s +++ b/system/client-functions/NoRareSelling/NoRareSelling.4___.patch.s @@ -2,8 +2,10 @@ # https://github.com/Solybum/Blue-Burst-Patch-Project # Xbox port by fuzziqersoftware +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + .meta name="No rare selling" -.meta description="Stops you from\naccidentally\nselling rares\nto vendors" +.meta description="Stops you from\naccidentally\nselling rares\nto shops" entry_ptr: reloc0: @@ -13,25 +15,25 @@ start: # See comments in the 59NL version of this patch for details on how it works. - .data 0x0017DEA6 # Rare weapons and armors + .data .data 0x00000004 .data 0x00000000 - .data 0x0017DE8C # Unidentified weapons + .data .data 0x00000004 .data 0x00000000 - .data 0x0017E04E + .data .data 0x00000005 - .binary E98E0C0000 # jmp tool_check_start + .binary E98E0C0000 - .data 0x0017ECE1 + .data .deltaof tool_check_start, tool_check_end tool_check_start: xor edi, edi test byte [eax + 0x10], 0x80 cmovz edi, [eax + 0x0C] - .binary E995F3FFFF # jmp tool_check_ret + .binary E995F3FFFF tool_check_end: .data 0x00000000 diff --git a/system/client-functions/Palette/Palette.3OE0.patch.s b/system/client-functions/Palette/Palette.3OE0.patch.s deleted file mode 100644 index e606dca4..00000000 --- a/system/client-functions/Palette/Palette.3OE0.patch.s +++ /dev/null @@ -1,257 +0,0 @@ -.meta name="Palette" -.meta description="Use C stick to\nuse 4 customize\nconfigurations\ninstead of just one" -# Original codes by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -# This code will let you have up to four different palettes of action buttons. -# Battle Screen Control Keys -# C-Stick/D-Pad Left = Select Palette 1 -# C-Stick/D-Pad Down = Select Palette 2 -# C-Stick/D-Pad Right = Select Palette 3 -# C-Stick/D-Pad Up = Select Palette 4 -# Customize Menu Control Keys -# C-Stick/D-Pad Left = Load Palette 1 As Active Button Selection -# C-Stick/D-Pad Down = Load Palette 2 As Active Button Selection -# C-Stick/D-Pad Right = Load Palette 3 As Active Button Selection -# C-Stick/D-Pad Up = Load Palette 4 As Active Button Selection -# Hold L+R and press ... -# C-Stick/D-Pad Left = Save Active Button Selection As Palette 1 -# C-Stick/D-Pad Down = Save Active Button Selection As Palette 2 -# C-Stick/D-Pad Right = Save Active Button Selection As Palette 3 -# C-Stick/D-Pad Up = Save Active Button Selection As Palette 4 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .label memcpy, 0x8000E41C - .label memset, 0x8000E334 - .label get_main_phase, 0x8000F948 - - .data 0x8000B958 # Save Extra Palettes To Memory Card (Temp Slot 3) - .deltaof save_to_memcard_hook1, save_to_memcard_end - .address 0x8000B958 -save_to_memcard_hook1: - stw [r13 - 0x46AC], r3 - mulli r3, r3, 60 - lwz r4, [r13 - 0x46C8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r4, r4, r3 - lis r3, 0x8000 - ori r3, r3, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook2: - stw [r4], r3 - lwz r3, [r13 - 0x46AC] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46C8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - lis r4, 0x8000 - ori r4, r4, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook3: - lwz r3, [r13 - 0x46AC] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46C8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - li r4, 0x0000 - li r5, 0x003C - bl memset - bl get_main_phase - b [801FF034] -save_to_memcard_end: - - .data 0x8000CA40 # Full Action List (Incl. Photon Blasts & Traps) - .deltaof full_action_list_hook1, full_action_list_end - .address 0x8000CA40 -full_action_list_hook1: - cmplwi r3, 0 - bne full_action_list_hook1_r3_nonzero - li r31, 0x0000 -full_action_list_hook1_r3_nonzero: - cmp r0, r31 - blr -full_action_list_hook2: - li r0, 0x0003 - mtctr r0 - ori r4, r30, 0x0500 - addi r5, r31, 0x0538 -full_action_list_hook2_next: - lhzu r0, [r5 + 0x0004] - cmp r4, r0 - beq full_action_list_hook2_ret - bdnz full_action_list_hook2_next - li r3, 0x0000 -full_action_list_hook2_ret: - cmpwi r3, 0 - blr -full_action_list_end: - - .data 0x8000CD00 # Have Four Action Button Palettes - .deltaof four_palettes_hook1, four_palettes_end - .address 0x8000CD00 -four_palettes_hook1: - lis r4, 0x8000 - ori r4, r4, 0xCF3E - li r31, 0x0000 - lhz r6, [r4 + 0x003A] - cmpwi r6, 0 - beqlr - sth [r4 + 0x003A], r31 - lis r3, 0x8051 - lhz r0, [r3 - 0x6C4C] # D-pad version: lhz r0, [r3 - 0x6C4A] - lhz r5, [r3 - 0x6C50] - and r5, r5, r6 - andi. r0, r0, 0x3C00 # D-pad version: andi. r0, r0, 0x00F0 - beqlr - rlwinm. r3, r0, 0, 21, 21 # D-pad version: rlwinm. r3, r0, 0, 27, 27 - beq four_palettes_hook1_control_check1 - li r30, 0x002A -four_palettes_hook1_control_check1: - rlwinm. r3, r0, 0, 18, 18 # D-pad version: rlwinm. r3, r0, 0, 24, 24 - beq four_palettes_hook1_control_check2 - li r30, 0x001C -four_palettes_hook1_control_check2: - rlwinm. r3, r0, 0, 20, 20 # D-pad version: rlwinm. r3, r0, 0, 26, 26 - beq four_palettes_hook1_control_check3 - li r30, 0x000E -four_palettes_hook1_control_check3: - add r4, r4, r30 - li r0, 0x0007 - mtctr r0 - addi r3, r28, 0x0504 -four_palettes_hook1_again: - cmpwi r5, 3 - bne four_palettes_hook1_skip - lhz r0, [r3 + 0x0004] - sth [r4 + 0x0002], r0 -four_palettes_hook1_skip: - lhzu r0, [r4 + 0x0002] - sthu [r3 + 0x0004], r0 - bdnz four_palettes_hook1_again - li r30, 0x0000 - blr -four_palettes_hook2: - li r3, 0x0003 - lis r4, 0x8001 - sth [r4 - 0x3088], r3 - mr r3, r30 - blr -four_palettes_hook3: - lis r12, 0x8044 - ori r12, r12, 0xA858 - lwz r4, [r3] - cmp r4, r12 - rlwinm r3, r0, 0, 29, 29 # Original opcode - bnelr - cmpwi r0, 0 - bnelr - li r4, 0x0001 - lis r12, 0x8001 - sth [r12 - 0x3088], r4 - blr -four_palettes_hook4: - lis r3, 0x8000 - ori r3, r3, 0xCF3C - li r0, 0x000E - mtctr r0 - li r0, 0 -four_palettes_hook4_again: - stwu [r3 + 4], r0 - bdnz four_palettes_hook4_again - blr -four_palettes_end: - - .data 0x801B59E4 # Disable Photon Blast Palette Switching - .data 0x00000004 - .address 0x801B59E4 - li r3, 0x0000 - - .data 0x801D8230 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801D8230 - bl full_action_list_hook1 - .data 0x801CC038 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801CC038 - bl full_action_list_hook2 - - .data 0x801FC2D8 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FC2D8 - bl save_to_memcard_hook1 - .data 0x801FFB14 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FFB14 - bl save_to_memcard_hook2 - .data 0x801FF030 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FF030 - b save_to_memcard_hook3 - - .data 0x801D7A78 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x801D7A78 - bl four_palettes_hook1 - .data 0x802758C8 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x802758C8 - bl four_palettes_hook2 - .data 0x8024B440 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8024B440 - b four_palettes_hook3 - .data 0x80334C3C # Have Four Action Button Palettes - .data 0x00000004 - .address 0x80334C3C - bl four_palettes_hook4 - - .data 0x802462C8 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x802462C8 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80275928 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80275928 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x802766F8 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x802766F8 - subi r0, r3, 0x07E8 - - .data 0x8044BB3C # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000034 - .data 0x0004000D - .data 0x0004000E - .data 0x00000000 - .data 0x0004000F - .data 0x00040010 - .data 0x00000000 - .data 0x00050000 - .data 0x00050001 - .data 0x00050002 - .data 0x00050003 - .data 0x00050004 - .data 0x00050005 - .data 0x00080000 - - .data 0x8046DC5C # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Palette/Palette.3OE1.patch.s b/system/client-functions/Palette/Palette.3OE1.patch.s deleted file mode 100644 index e8f7c6f8..00000000 --- a/system/client-functions/Palette/Palette.3OE1.patch.s +++ /dev/null @@ -1,257 +0,0 @@ -.meta name="Palette" -.meta description="Use C stick to\nuse 4 customize\nconfigurations\ninstead of just one" -# Original codes by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -# This code will let you have up to four different palettes of action buttons. -# Battle Screen Control Keys -# C-Stick/D-Pad Left = Select Palette 1 -# C-Stick/D-Pad Down = Select Palette 2 -# C-Stick/D-Pad Right = Select Palette 3 -# C-Stick/D-Pad Up = Select Palette 4 -# Customize Menu Control Keys -# C-Stick/D-Pad Left = Load Palette 1 As Active Button Selection -# C-Stick/D-Pad Down = Load Palette 2 As Active Button Selection -# C-Stick/D-Pad Right = Load Palette 3 As Active Button Selection -# C-Stick/D-Pad Up = Load Palette 4 As Active Button Selection -# Hold L+R and press ... -# C-Stick/D-Pad Left = Save Active Button Selection As Palette 1 -# C-Stick/D-Pad Down = Save Active Button Selection As Palette 2 -# C-Stick/D-Pad Right = Save Active Button Selection As Palette 3 -# C-Stick/D-Pad Up = Save Active Button Selection As Palette 4 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .label memcpy, 0x8000E41C - .label memset, 0x8000E334 - .label get_main_phase, 0x8000F948 - - .data 0x8000B958 # Save Extra Palettes To Memory Card (Temp Slot 3) - .deltaof save_to_memcard_hook1, save_to_memcard_end - .address 0x8000B958 -save_to_memcard_hook1: - stw [r13 - 0x46AC], r3 - mulli r3, r3, 60 - lwz r4, [r13 - 0x46C8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r4, r4, r3 - lis r3, 0x8000 - ori r3, r3, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook2: - stw [r4], r3 - lwz r3, [r13 - 0x46AC] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46C8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - lis r4, 0x8000 - ori r4, r4, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook3: - lwz r3, [r13 - 0x46AC] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46C8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - li r4, 0x0000 - li r5, 0x003C - bl memset - bl get_main_phase - b [801FF034] -save_to_memcard_end: - - .data 0x8000CA40 # Full Action List (Incl. Photon Blasts & Traps) - .deltaof full_action_list_hook1, full_action_list_end - .address 0x8000CA40 -full_action_list_hook1: - cmplwi r3, 0 - bne full_action_list_hook1_r3_nonzero - li r31, 0x0000 -full_action_list_hook1_r3_nonzero: - cmp r0, r31 - blr -full_action_list_hook2: - li r0, 0x0003 - mtctr r0 - ori r4, r30, 0x0500 - addi r5, r31, 0x0538 -full_action_list_hook2_next: - lhzu r0, [r5 + 0x0004] - cmp r4, r0 - beq full_action_list_hook2_ret - bdnz full_action_list_hook2_next - li r3, 0x0000 -full_action_list_hook2_ret: - cmpwi r3, 0 - blr -full_action_list_end: - - .data 0x8000CD00 # Have Four Action Button Palettes - .deltaof four_palettes_hook1, four_palettes_end - .address 0x8000CD00 -four_palettes_hook1: - lis r4, 0x8000 - ori r4, r4, 0xCF3E - li r31, 0x0000 - lhz r6, [r4 + 0x003A] - cmpwi r6, 0 - beqlr - sth [r4 + 0x003A], r31 - lis r3, 0x8051 - lhz r0, [r3 - 0x676C] # D-pad version: lhz r0, [r3 - 0x676A] - lhz r5, [r3 - 0x6770] - and r5, r5, r6 - andi. r0, r0, 0x3C00 # D-pad version: andi. r0, r0, 0x00F0 - beqlr - rlwinm. r3, r0, 0, 21, 21 # D-pad version: rlwinm. r3, r0, 0, 27, 27 - beq four_palettes_hook1_control_check1 - li r30, 0x002A -four_palettes_hook1_control_check1: - rlwinm. r3, r0, 0, 18, 18 # D-pad version: rlwinm. r3, r0, 0, 24, 24 - beq four_palettes_hook1_control_check2 - li r30, 0x001C -four_palettes_hook1_control_check2: - rlwinm. r3, r0, 0, 20, 20 # D-pad version: rlwinm. r3, r0, 0, 26, 26 - beq four_palettes_hook1_control_check3 - li r30, 0x000E -four_palettes_hook1_control_check3: - add r4, r4, r30 - li r0, 0x0007 - mtctr r0 - addi r3, r28, 0x0504 -four_palettes_hook1_again: - cmpwi r5, 3 - bne four_palettes_hook1_skip - lhz r0, [r3 + 0x0004] - sth [r4 + 0x0002], r0 -four_palettes_hook1_skip: - lhzu r0, [r4 + 0x0002] - sthu [r3 + 0x0004], r0 - bdnz four_palettes_hook1_again - li r30, 0x0000 - blr -four_palettes_hook2: - li r3, 0x0003 - lis r4, 0x8001 - sth [r4 - 0x3088], r3 - mr r3, r30 - blr -four_palettes_hook3: - lis r12, 0x8044 - ori r12, r12, 0xACD8 - lwz r4, [r3] - cmp r4, r12 - rlwinm r3, r0, 0, 29, 29 # Original opcode - bnelr - cmpwi r0, 0 - bnelr - li r4, 0x0001 - lis r12, 0x8001 - sth [r12 - 0x3088], r4 - blr -four_palettes_hook4: - lis r3, 0x8000 - ori r3, r3, 0xCF3C - li r0, 0x000E - mtctr r0 - li r0, 0 -four_palettes_hook4_again: - stwu [r3 + 4], r0 - bdnz four_palettes_hook4_again - blr -four_palettes_end: - - .data 0x801B59E4 # Disable Photon Blast Palette Switching - .data 0x00000004 - .address 0x801B59E4 - li r3, 0x0000 - - .data 0x801D8230 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801D8230 - bl full_action_list_hook1 - .data 0x801CC038 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801CC038 - bl full_action_list_hook2 - - .data 0x801FC2D8 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FC2D8 - bl save_to_memcard_hook1 - .data 0x801FFB14 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FFB14 - bl save_to_memcard_hook2 - .data 0x801FF030 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FF030 - b save_to_memcard_hook3 - - .data 0x801D7A78 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x801D7A78 - bl four_palettes_hook1 - .data 0x8027590C # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8027590C - bl four_palettes_hook2 - .data 0x8024B440 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8024B440 - b four_palettes_hook3 - .data 0x80334C80 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x80334C80 - bl four_palettes_hook4 - - .data 0x802462C8 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x802462C8 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x8027596C # Have Four Action Button Palettes - .data 0x00000008 - .address 0x8027596C - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x8027673C # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x8027673C - subi r0, r3, 0x07E8 - - .data 0x8044BFBC # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000034 - .data 0x0004000D - .data 0x0004000E - .data 0x00000000 - .data 0x0004000F - .data 0x00040010 - .data 0x00000000 - .data 0x00050000 - .data 0x00050001 - .data 0x00050002 - .data 0x00050003 - .data 0x00050004 - .data 0x00050005 - .data 0x00080000 - - .data 0x8046E0DC # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Palette/Palette.3OE2.patch.s b/system/client-functions/Palette/Palette.3OE2.patch.s deleted file mode 100644 index e24acba3..00000000 --- a/system/client-functions/Palette/Palette.3OE2.patch.s +++ /dev/null @@ -1,257 +0,0 @@ -.meta name="Palette" -.meta description="Use C stick to\nuse 4 customize\nconfigurations\ninstead of just one" -# Original codes by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -# This code will let you have up to four different palettes of action buttons. -# Battle Screen Control Keys -# C-Stick/D-Pad Left = Select Palette 1 -# C-Stick/D-Pad Down = Select Palette 2 -# C-Stick/D-Pad Right = Select Palette 3 -# C-Stick/D-Pad Up = Select Palette 4 -# Customize Menu Control Keys -# C-Stick/D-Pad Left = Load Palette 1 As Active Button Selection -# C-Stick/D-Pad Down = Load Palette 2 As Active Button Selection -# C-Stick/D-Pad Right = Load Palette 3 As Active Button Selection -# C-Stick/D-Pad Up = Load Palette 4 As Active Button Selection -# Hold L+R and press ... -# C-Stick/D-Pad Left = Save Active Button Selection As Palette 1 -# C-Stick/D-Pad Down = Save Active Button Selection As Palette 2 -# C-Stick/D-Pad Right = Save Active Button Selection As Palette 3 -# C-Stick/D-Pad Up = Save Active Button Selection As Palette 4 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .label memcpy, 0x8000E41C - .label memset, 0x8000E334 - .label get_main_phase, 0x8000F8FC - - .data 0x8000B958 # Save Extra Palettes To Memory Card (Temp Slot 3) - .deltaof save_to_memcard_hook1, save_to_memcard_end - .address 0x8000B958 -save_to_memcard_hook1: - stw [r13 - 0x468C], r3 - mulli r3, r3, 60 - lwz r4, [r13 - 0x46A8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r4, r4, r3 - lis r3, 0x8000 - ori r3, r3, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook2: - stw [r4], r3 - lwz r3, [r13 - 0x468C] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46A8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - lis r4, 0x8000 - ori r4, r4, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook3: - lwz r3, [r13 - 0x468C] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46A8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - li r4, 0x0000 - li r5, 0x003C - bl memset - bl get_main_phase - b [801FF97C] -save_to_memcard_end: - - .data 0x8000CA40 # Full Action List (Incl. Photon Blasts & Traps) - .deltaof full_action_list_hook1, full_action_list_end - .address 0x8000CA40 -full_action_list_hook1: - cmplwi r3, 0 - bne full_action_list_hook1_r3_nonzero - li r31, 0x0000 -full_action_list_hook1_r3_nonzero: - cmp r0, r31 - blr -full_action_list_hook2: - li r0, 0x0003 - mtctr r0 - ori r4, r30, 0x0500 - addi r5, r31, 0x0538 -full_action_list_hook2_next: - lhzu r0, [r5 + 0x0004] - cmp r4, r0 - beq full_action_list_hook2_ret - bdnz full_action_list_hook2_next - li r3, 0x0000 -full_action_list_hook2_ret: - cmpwi r3, 0 - blr -full_action_list_end: - - .data 0x8000CD00 # Have Four Action Button Palettes - .deltaof four_palettes_hook1, four_palettes_end - .address 0x8000CD00 -four_palettes_hook1: - lis r4, 0x8000 - ori r4, r4, 0xCF3E - li r31, 0x0000 - lhz r6, [r4 + 0x003A] - cmpwi r6, 0 - beqlr - sth [r4 + 0x003A], r31 - lis r3, 0x8051 - lhz r0, [r3 - 0x1D8C] # D-pad version: lhz r0, [r3 - 0x1D8A] - lhz r5, [r3 - 0x1D90] - and r5, r5, r6 - andi. r0, r0, 0x3C00 # D-pad version: andi. r0, r0, 0x00F0 - beqlr - rlwinm. r3, r0, 0, 21, 21 # D-pad version: rlwinm. r3, r0, 0, 27, 27 - beq four_palettes_hook1_control_check1 - li r30, 0x002A -four_palettes_hook1_control_check1: - rlwinm. r3, r0, 0, 18, 18 # D-pad version: rlwinm. r3, r0, 0, 24, 24 - beq four_palettes_hook1_control_check2 - li r30, 0x001C -four_palettes_hook1_control_check2: - rlwinm. r3, r0, 0, 20, 20 # D-pad version: rlwinm. r3, r0, 0, 26, 26 - beq four_palettes_hook1_control_check3 - li r30, 0x000E -four_palettes_hook1_control_check3: - add r4, r4, r30 - li r0, 0x0007 - mtctr r0 - addi r3, r28, 0x0504 -four_palettes_hook1_again: - cmpwi r5, 3 - bne four_palettes_hook1_skip - lhz r0, [r3 + 0x0004] - sth [r4 + 0x0002], r0 -four_palettes_hook1_skip: - lhzu r0, [r4 + 0x0002] - sthu [r3 + 0x0004], r0 - bdnz four_palettes_hook1_again - li r30, 0x0000 - blr -four_palettes_hook2: - li r3, 0x0003 - lis r4, 0x8001 - sth [r4 - 0x3088], r3 - mr r3, r30 - blr -four_palettes_hook3: - lis r12, 0x8044 - ori r12, r12, 0xE5D0 - lwz r4, [r3] - cmp r4, r12 - rlwinm r3, r0, 0, 29, 29 # Original opcode - bnelr - cmpwi r0, 0 - bnelr - li r4, 0x0001 - lis r12, 0x8001 - sth [r12 - 0x3088], r4 - blr -four_palettes_hook4: - lis r3, 0x8000 - ori r3, r3, 0xCF3C - li r0, 0x000E - mtctr r0 - li r0, 0 -four_palettes_hook4_again: - stwu [r3 + 4], r0 - bdnz four_palettes_hook4_again - blr -four_palettes_end: - - .data 0x801B5B7C # Disable Photon Blast Palette Switching - .data 0x00000004 - .address 0x801B5B7C - li r3, 0x0000 - - .data 0x801D8430 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801D8430 - bl full_action_list_hook1 - .data 0x801CC238 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801CC238 - bl full_action_list_hook2 - - .data 0x801FCB58 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FCB58 - bl save_to_memcard_hook1 - .data 0x8020048C # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x8020048C - bl save_to_memcard_hook2 - .data 0x801FF978 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FF978 - b save_to_memcard_hook3 - - .data 0x801D7C78 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x801D7C78 - bl four_palettes_hook1 - .data 0x80276D44 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x80276D44 - bl four_palettes_hook2 - .data 0x8024C59C # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8024C59C - b four_palettes_hook3 - .data 0x8033675C # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8033675C - bl four_palettes_hook4 - - .data 0x802473F4 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x802473F4 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80276DA4 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80276DA4 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80277B74 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x80277B74 - subi r0, r3, 0x07E8 - - .data 0x8044F8B4 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000034 - .data 0x0004000D - .data 0x0004000E - .data 0x00000000 - .data 0x0004000F - .data 0x00040010 - .data 0x00000000 - .data 0x00050000 - .data 0x00050001 - .data 0x00050002 - .data 0x00050003 - .data 0x00050004 - .data 0x00050005 - .data 0x00080000 - - .data 0x80471ACC # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Palette/Palette.3OJ2.patch.s b/system/client-functions/Palette/Palette.3OJ2.patch.s deleted file mode 100644 index 00357d83..00000000 --- a/system/client-functions/Palette/Palette.3OJ2.patch.s +++ /dev/null @@ -1,257 +0,0 @@ -.meta name="Palette" -.meta description="Use C stick to\nuse 4 customize\nconfigurations\ninstead of just one" -# Original codes by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -# This code will let you have up to four different palettes of action buttons. -# Battle Screen Control Keys -# C-Stick/D-Pad Left = Select Palette 1 -# C-Stick/D-Pad Down = Select Palette 2 -# C-Stick/D-Pad Right = Select Palette 3 -# C-Stick/D-Pad Up = Select Palette 4 -# Customize Menu Control Keys -# C-Stick/D-Pad Left = Load Palette 1 As Active Button Selection -# C-Stick/D-Pad Down = Load Palette 2 As Active Button Selection -# C-Stick/D-Pad Right = Load Palette 3 As Active Button Selection -# C-Stick/D-Pad Up = Load Palette 4 As Active Button Selection -# Hold L+R and press ... -# C-Stick/D-Pad Left = Save Active Button Selection As Palette 1 -# C-Stick/D-Pad Down = Save Active Button Selection As Palette 2 -# C-Stick/D-Pad Right = Save Active Button Selection As Palette 3 -# C-Stick/D-Pad Up = Save Active Button Selection As Palette 4 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .label memcpy, 0x8000E41C - .label memset, 0x8000E334 - .label get_main_phase, 0x8000F948 - - .data 0x8000B958 # Save Extra Palettes To Memory Card (Temp Slot 3) - .deltaof save_to_memcard_hook1, save_to_memcard_end - .address 0x8000B958 -save_to_memcard_hook1: - stw [r13 - 0x46C4], r3 - mulli r3, r3, 60 - lwz r4, [r13 - 0x46E0] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r4, r4, r3 - lis r3, 0x8000 - ori r3, r3, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook2: - stw [r4], r3 - lwz r3, [r13 - 0x46C4] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46E0] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - lis r4, 0x8000 - ori r4, r4, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook3: - lwz r3, [r13 - 0x46C4] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46E0] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - li r4, 0x0000 - li r5, 0x003C - bl memset - bl get_main_phase - b [801FE838] -save_to_memcard_end: - - .data 0x8000CA40 # Full Action List (Incl. Photon Blasts & Traps) - .deltaof full_action_list_hook1, full_action_list_end - .address 0x8000CA40 -full_action_list_hook1: - cmplwi r3, 0 - bne full_action_list_hook1_r3_nonzero - li r31, 0x0000 -full_action_list_hook1_r3_nonzero: - cmp r0, r31 - blr -full_action_list_hook2: - li r0, 0x0003 - mtctr r0 - ori r4, r30, 0x0500 - addi r5, r31, 0x0538 -full_action_list_hook2_next: - lhzu r0, [r5 + 0x0004] - cmp r4, r0 - beq full_action_list_hook2_ret - bdnz full_action_list_hook2_next - li r3, 0x0000 -full_action_list_hook2_ret: - cmpwi r3, 0 - blr -full_action_list_end: - - .data 0x8000CD00 # Have Four Action Button Palettes - .deltaof four_palettes_hook1, four_palettes_end - .address 0x8000CD00 -four_palettes_hook1: - lis r4, 0x8000 - ori r4, r4, 0xCF3E - li r31, 0x0000 - lhz r6, [r4 + 0x003A] - cmpwi r6, 0 - beqlr - sth [r4 + 0x003A], r31 - lis r3, 0x8051 - lhz r0, [r3 - 0x752C] # D-pad version: lhz r0, [r3 - 0x752A] - lhz r5, [r3 - 0x7530] - and r5, r5, r6 - andi. r0, r0, 0x3C00 # D-pad version: andi. r0, r0, 0x00F0 - beqlr - rlwinm. r3, r0, 0, 21, 21 # D-pad version: rlwinm. r3, r0, 0, 27, 27 - beq four_palettes_hook1_control_check1 - li r30, 0x002A -four_palettes_hook1_control_check1: - rlwinm. r3, r0, 0, 18, 18 # D-pad version: rlwinm. r3, r0, 0, 24, 24 - beq four_palettes_hook1_control_check2 - li r30, 0x001C -four_palettes_hook1_control_check2: - rlwinm. r3, r0, 0, 20, 20 # D-pad version: rlwinm. r3, r0, 0, 26, 26 - beq four_palettes_hook1_control_check3 - li r30, 0x000E -four_palettes_hook1_control_check3: - add r4, r4, r30 - li r0, 0x0007 - mtctr r0 - addi r3, r28, 0x0504 -four_palettes_hook1_again: - cmpwi r5, 3 - bne four_palettes_hook1_skip - lhz r0, [r3 + 0x0004] - sth [r4 + 0x0002], r0 -four_palettes_hook1_skip: - lhzu r0, [r4 + 0x0002] - sthu [r3 + 0x0004], r0 - bdnz four_palettes_hook1_again - li r30, 0x0000 - blr -four_palettes_hook2: - li r3, 0x0003 - lis r4, 0x8001 - sth [r4 - 0x3088], r3 - mr r3, r30 - blr -four_palettes_hook3: - lis r12, 0x8044 - ori r12, r12, 0x9AB8 - lwz r4, [r3] - cmp r4, r12 - rlwinm r3, r0, 0, 29, 29 # Original opcode - bnelr - cmpwi r0, 0 - bnelr - li r4, 0x0001 - lis r12, 0x8001 - sth [r12 - 0x3088], r4 - blr -four_palettes_hook4: - lis r3, 0x8000 - ori r3, r3, 0xCF3C - li r0, 0x000E - mtctr r0 - li r0, 0 -four_palettes_hook4_again: - stwu [r3 + 4], r0 - bdnz four_palettes_hook4_again - blr -four_palettes_end: - - .data 0x801B55F8 # Disable Photon Blast Palette Switching - .data 0x00000004 - .address 0x801B55F8 - li r3, 0x0000 - - .data 0x801D7DF8 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801D7DF8 - bl full_action_list_hook1 - .data 0x801CBC1C # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801CBC1C - bl full_action_list_hook2 - - .data 0x801FBC74 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FBC74 - bl save_to_memcard_hook1 - .data 0x801FF318 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FF318 - bl save_to_memcard_hook2 - .data 0x801FE834 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FE834 - b save_to_memcard_hook3 - - .data 0x801D7640 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x801D7640 - bl four_palettes_hook1 - .data 0x80275034 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x80275034 - bl four_palettes_hook2 - .data 0x8024ABB8 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8024ABB8 - b four_palettes_hook3 - .data 0x8033424C # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8033424C - bl four_palettes_hook4 - - .data 0x80245A7C # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80245A7C - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80275094 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80275094 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80275E64 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x80275E64 - subi r0, r3, 0x07E8 - - .data 0x8044ADAC # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000034 - .data 0x0004000D - .data 0x0004000E - .data 0x00000000 - .data 0x0004000F - .data 0x00040010 - .data 0x00000000 - .data 0x00050000 - .data 0x00050001 - .data 0x00050002 - .data 0x00050003 - .data 0x00050004 - .data 0x00050005 - .data 0x00080000 - - .data 0x8046CECC # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Palette/Palette.3OJ3.patch.s b/system/client-functions/Palette/Palette.3OJ3.patch.s deleted file mode 100644 index c666ba44..00000000 --- a/system/client-functions/Palette/Palette.3OJ3.patch.s +++ /dev/null @@ -1,257 +0,0 @@ -.meta name="Palette" -.meta description="Use C stick to\nuse 4 customize\nconfigurations\ninstead of just one" -# Original codes by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -# This code will let you have up to four different palettes of action buttons. -# Battle Screen Control Keys -# C-Stick/D-Pad Left = Select Palette 1 -# C-Stick/D-Pad Down = Select Palette 2 -# C-Stick/D-Pad Right = Select Palette 3 -# C-Stick/D-Pad Up = Select Palette 4 -# Customize Menu Control Keys -# C-Stick/D-Pad Left = Load Palette 1 As Active Button Selection -# C-Stick/D-Pad Down = Load Palette 2 As Active Button Selection -# C-Stick/D-Pad Right = Load Palette 3 As Active Button Selection -# C-Stick/D-Pad Up = Load Palette 4 As Active Button Selection -# Hold L+R and press ... -# C-Stick/D-Pad Left = Save Active Button Selection As Palette 1 -# C-Stick/D-Pad Down = Save Active Button Selection As Palette 2 -# C-Stick/D-Pad Right = Save Active Button Selection As Palette 3 -# C-Stick/D-Pad Up = Save Active Button Selection As Palette 4 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .label memcpy, 0x8000E41C - .label memset, 0x8000E334 - .label get_main_phase, 0x8000F94C - - .data 0x8000B958 # Save Extra Palettes To Memory Card (Temp Slot 3) - .deltaof save_to_memcard_hook1, save_to_memcard_end - .address 0x8000B958 -save_to_memcard_hook1: - stw [r13 - 0x46BC], r3 - mulli r3, r3, 60 - lwz r4, [r13 - 0x46D8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r4, r4, r3 - lis r3, 0x8000 - ori r3, r3, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook2: - stw [r4], r3 - lwz r3, [r13 - 0x46BC] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46D8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - lis r4, 0x8000 - ori r4, r4, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook3: - lwz r3, [r13 - 0x46BC] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46D8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - li r4, 0x0000 - li r5, 0x003C - bl memset - bl get_main_phase - b [801FF0AC] -save_to_memcard_end: - - .data 0x8000CA40 # Full Action List (Incl. Photon Blasts & Traps) - .deltaof full_action_list_hook1, full_action_list_end - .address 0x8000CA40 -full_action_list_hook1: - cmplwi r3, 0 - bne full_action_list_hook1_r3_nonzero - li r31, 0x0000 -full_action_list_hook1_r3_nonzero: - cmp r0, r31 - blr -full_action_list_hook2: - li r0, 0x0003 - mtctr r0 - ori r4, r30, 0x0500 - addi r5, r31, 0x0538 -full_action_list_hook2_next: - lhzu r0, [r5 + 0x0004] - cmp r4, r0 - beq full_action_list_hook2_ret - bdnz full_action_list_hook2_next - li r3, 0x0000 -full_action_list_hook2_ret: - cmpwi r3, 0 - blr -full_action_list_end: - - .data 0x8000CD00 # Have Four Action Button Palettes - .deltaof four_palettes_hook1, four_palettes_end - .address 0x8000CD00 -four_palettes_hook1: - lis r4, 0x8000 - ori r4, r4, 0xCF3E - li r31, 0x0000 - lhz r6, [r4 + 0x003A] - cmpwi r6, 0 - beqlr - sth [r4 + 0x003A], r31 - lis r3, 0x8051 - lhz r0, [r3 - 0x3A6C] # D-pad version: lhz r0, [r3 - 0x3A6A] - lhz r5, [r3 - 0x3A70] - and r5, r5, r6 - andi. r0, r0, 0x3C00 # D-pad version: andi. r0, r0, 0x00F0 - beqlr - rlwinm. r3, r0, 0, 21, 21 # D-pad version: rlwinm. r3, r0, 0, 27, 27 - beq four_palettes_hook1_control_check1 - li r30, 0x002A -four_palettes_hook1_control_check1: - rlwinm. r3, r0, 0, 18, 18 # D-pad version: rlwinm. r3, r0, 0, 24, 24 - beq four_palettes_hook1_control_check2 - li r30, 0x001C -four_palettes_hook1_control_check2: - rlwinm. r3, r0, 0, 20, 20 # D-pad version: rlwinm. r3, r0, 0, 26, 26 - beq four_palettes_hook1_control_check3 - li r30, 0x000E -four_palettes_hook1_control_check3: - add r4, r4, r30 - li r0, 0x0007 - mtctr r0 - addi r3, r28, 0x0504 -four_palettes_hook1_again: - cmpwi r5, 3 - bne four_palettes_hook1_skip - lhz r0, [r3 + 0x0004] - sth [r4 + 0x0002], r0 -four_palettes_hook1_skip: - lhzu r0, [r4 + 0x0002] - sthu [r3 + 0x0004], r0 - bdnz four_palettes_hook1_again - li r30, 0x0000 - blr -four_palettes_hook2: - li r3, 0x0003 - lis r4, 0x8001 - sth [r4 - 0x3088], r3 - mr r3, r30 - blr -four_palettes_hook3: - lis r12, 0x8044 - ori r12, r12, 0xC8D8 - lwz r4, [r3] - cmp r4, r12 - rlwinm r3, r0, 0, 29, 29 # Original opcode - bnelr - cmpwi r0, 0 - bnelr - li r4, 0x0001 - lis r12, 0x8001 - sth [r12 - 0x3088], r4 - blr -four_palettes_hook4: - lis r3, 0x8000 - ori r3, r3, 0xCF3C - li r0, 0x000E - mtctr r0 - li r0, 0 -four_palettes_hook4_again: - stwu [r3 + 4], r0 - bdnz four_palettes_hook4_again - blr -four_palettes_end: - - .data 0x801B5A4C # Disable Photon Blast Palette Switching - .data 0x00000004 - .address 0x801B5A4C - li r3, 0x0000 - - .data 0x801D8300 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801D8300 - bl full_action_list_hook1 - .data 0x801CC108 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801CC108 - bl full_action_list_hook2 - - .data 0x801FC380 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FC380 - bl save_to_memcard_hook1 - .data 0x801FFB8C # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FFB8C - bl save_to_memcard_hook2 - .data 0x801FF0A8 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FF0A8 - b save_to_memcard_hook3 - - .data 0x801D7B48 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x801D7B48 - bl four_palettes_hook1 - .data 0x80275D70 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x80275D70 - bl four_palettes_hook2 - .data 0x8024B5E4 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8024B5E4 - b four_palettes_hook3 - .data 0x803352B8 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x803352B8 - bl four_palettes_hook4 - - .data 0x8024643C # Have Four Action Button Palettes - .data 0x00000008 - .address 0x8024643C - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80275DD0 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80275DD0 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80276BA0 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x80276BA0 - subi r0, r3, 0x07E8 - - .data 0x8044DBCC # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000034 - .data 0x0004000D - .data 0x0004000E - .data 0x00000000 - .data 0x0004000F - .data 0x00040010 - .data 0x00000000 - .data 0x00050000 - .data 0x00050001 - .data 0x00050002 - .data 0x00050003 - .data 0x00050004 - .data 0x00050005 - .data 0x00080000 - - .data 0x8046FCEC # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Palette/Palette.3OJ4.patch.s b/system/client-functions/Palette/Palette.3OJ4.patch.s deleted file mode 100644 index 751123f7..00000000 --- a/system/client-functions/Palette/Palette.3OJ4.patch.s +++ /dev/null @@ -1,257 +0,0 @@ -.meta name="Palette" -.meta description="Use C stick to\nuse 4 customize\nconfigurations\ninstead of just one" -# Original codes by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -# This code will let you have up to four different palettes of action buttons. -# Battle Screen Control Keys -# C-Stick/D-Pad Left = Select Palette 1 -# C-Stick/D-Pad Down = Select Palette 2 -# C-Stick/D-Pad Right = Select Palette 3 -# C-Stick/D-Pad Up = Select Palette 4 -# Customize Menu Control Keys -# C-Stick/D-Pad Left = Load Palette 1 As Active Button Selection -# C-Stick/D-Pad Down = Load Palette 2 As Active Button Selection -# C-Stick/D-Pad Right = Load Palette 3 As Active Button Selection -# C-Stick/D-Pad Up = Load Palette 4 As Active Button Selection -# Hold L+R and press ... -# C-Stick/D-Pad Left = Save Active Button Selection As Palette 1 -# C-Stick/D-Pad Down = Save Active Button Selection As Palette 2 -# C-Stick/D-Pad Right = Save Active Button Selection As Palette 3 -# C-Stick/D-Pad Up = Save Active Button Selection As Palette 4 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .label memcpy, 0x8000E41C - .label memset, 0x8000E334 - .label get_main_phase, 0x8000F94C - - .data 0x8000B958 # Save Extra Palettes To Memory Card (Temp Slot 3) - .deltaof save_to_memcard_hook1, save_to_memcard_end - .address 0x8000B958 -save_to_memcard_hook1: - stw [r13 - 0x469C], r3 - mulli r3, r3, 60 - lwz r4, [r13 - 0x46B8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r4, r4, r3 - lis r3, 0x8000 - ori r3, r3, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook2: - stw [r4], r3 - lwz r3, [r13 - 0x469C] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46B8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - lis r4, 0x8000 - ori r4, r4, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook3: - lwz r3, [r13 - 0x469C] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46B8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - li r4, 0x0000 - li r5, 0x003C - bl memset - bl get_main_phase - b [80200044] -save_to_memcard_end: - - .data 0x8000CA40 # Full Action List (Incl. Photon Blasts & Traps) - .deltaof full_action_list_hook1, full_action_list_end - .address 0x8000CA40 -full_action_list_hook1: - cmplwi r3, 0 - bne full_action_list_hook1_r3_nonzero - li r31, 0x0000 -full_action_list_hook1_r3_nonzero: - cmp r0, r31 - blr -full_action_list_hook2: - li r0, 0x0003 - mtctr r0 - ori r4, r30, 0x0500 - addi r5, r31, 0x0538 -full_action_list_hook2_next: - lhzu r0, [r5 + 0x0004] - cmp r4, r0 - beq full_action_list_hook2_ret - bdnz full_action_list_hook2_next - li r3, 0x0000 -full_action_list_hook2_ret: - cmpwi r3, 0 - blr -full_action_list_end: - - .data 0x8000CD00 # Have Four Action Button Palettes - .deltaof four_palettes_hook1, four_palettes_end - .address 0x8000CD00 -four_palettes_hook1: - lis r4, 0x8000 - ori r4, r4, 0xCF3E - li r31, 0x0000 - lhz r6, [r4 + 0x003A] - cmpwi r6, 0 - beqlr - sth [r4 + 0x003A], r31 - lis r3, 0x8051 - lhz r0, [r3 - 0x142C] # D-pad version: lhz r0, [r3 - 0x142A] - lhz r5, [r3 - 0x1430] - and r5, r5, r6 - andi. r0, r0, 0x3C00 # D-pad version: andi. r0, r0, 0x00F0 - beqlr - rlwinm. r3, r0, 0, 21, 21 # D-pad version: rlwinm. r3, r0, 0, 27, 27 - beq four_palettes_hook1_control_check1 - li r30, 0x002A -four_palettes_hook1_control_check1: - rlwinm. r3, r0, 0, 18, 18 # D-pad version: rlwinm. r3, r0, 0, 24, 24 - beq four_palettes_hook1_control_check2 - li r30, 0x001C -four_palettes_hook1_control_check2: - rlwinm. r3, r0, 0, 20, 20 # D-pad version: rlwinm. r3, r0, 0, 26, 26 - beq four_palettes_hook1_control_check3 - li r30, 0x000E -four_palettes_hook1_control_check3: - add r4, r4, r30 - li r0, 0x0007 - mtctr r0 - addi r3, r28, 0x0504 -four_palettes_hook1_again: - cmpwi r5, 3 - bne four_palettes_hook1_skip - lhz r0, [r3 + 0x0004] - sth [r4 + 0x0002], r0 -four_palettes_hook1_skip: - lhzu r0, [r4 + 0x0002] - sthu [r3 + 0x0004], r0 - bdnz four_palettes_hook1_again - li r30, 0x0000 - blr -four_palettes_hook2: - li r3, 0x0003 - lis r4, 0x8001 - sth [r4 - 0x3088], r3 - mr r3, r30 - blr -four_palettes_hook3: - lis r12, 0x8044 - ori r12, r12, 0xE940 - lwz r4, [r3] - cmp r4, r12 - rlwinm r3, r0, 0, 29, 29 # Original opcode - bnelr - cmpwi r0, 0 - bnelr - li r4, 0x0001 - lis r12, 0x8001 - sth [r12 - 0x3088], r4 - blr -four_palettes_hook4: - lis r3, 0x8000 - ori r3, r3, 0xCF3C - li r0, 0x000E - mtctr r0 - li r0, 0 -four_palettes_hook4_again: - stwu [r3 + 4], r0 - bdnz four_palettes_hook4_again - blr -four_palettes_end: - - .data 0x801B7BB8 # Disable Photon Blast Palette Switching - .data 0x00000004 - .address 0x801B7BB8 - li r3, 0x0000 - - .data 0x801D84BC # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801D84BC - bl full_action_list_hook1 - .data 0x801CD5FC # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801CD5FC - bl full_action_list_hook2 - - .data 0x801FD268 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FD268 - bl save_to_memcard_hook1 - .data 0x80200B88 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x80200B88 - bl save_to_memcard_hook2 - .data 0x80200040 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x80200040 - b save_to_memcard_hook3 - - .data 0x801D7CC4 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x801D7CC4 - bl four_palettes_hook1 - .data 0x80276DDC # Have Four Action Button Palettes - .data 0x00000004 - .address 0x80276DDC - bl four_palettes_hook2 - .data 0x8024C1B0 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8024C1B0 - b four_palettes_hook3 - .data 0x803367E0 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x803367E0 - bl four_palettes_hook4 - - .data 0x80247510 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80247510 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80276E3C # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80276E3C - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80277C0C # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x80277C0C - subi r0, r3, 0x07E8 - - .data 0x8044FC34 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000034 - .data 0x0004000D - .data 0x0004000E - .data 0x00000000 - .data 0x0004000F - .data 0x00040010 - .data 0x00000000 - .data 0x00050000 - .data 0x00050001 - .data 0x00050002 - .data 0x00050003 - .data 0x00050004 - .data 0x00050005 - .data 0x00080000 - - .data 0x80471E4C # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Palette/Palette.3OJ5.patch.s b/system/client-functions/Palette/Palette.3OJ5.patch.s deleted file mode 100644 index 7147db1b..00000000 --- a/system/client-functions/Palette/Palette.3OJ5.patch.s +++ /dev/null @@ -1,257 +0,0 @@ -.meta name="Palette" -.meta description="Use C stick to\nuse 4 customize\nconfigurations\ninstead of just one" -# Original codes by Ralf @ GC-Forever -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -# This code will let you have up to four different palettes of action buttons. -# Battle Screen Control Keys -# C-Stick/D-Pad Left = Select Palette 1 -# C-Stick/D-Pad Down = Select Palette 2 -# C-Stick/D-Pad Right = Select Palette 3 -# C-Stick/D-Pad Up = Select Palette 4 -# Customize Menu Control Keys -# C-Stick/D-Pad Left = Load Palette 1 As Active Button Selection -# C-Stick/D-Pad Down = Load Palette 2 As Active Button Selection -# C-Stick/D-Pad Right = Load Palette 3 As Active Button Selection -# C-Stick/D-Pad Up = Load Palette 4 As Active Button Selection -# Hold L+R and press ... -# C-Stick/D-Pad Left = Save Active Button Selection As Palette 1 -# C-Stick/D-Pad Down = Save Active Button Selection As Palette 2 -# C-Stick/D-Pad Right = Save Active Button Selection As Palette 3 -# C-Stick/D-Pad Up = Save Active Button Selection As Palette 4 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - - .label memcpy, 0x8000E41C - .label memset, 0x8000E334 - .label get_main_phase, 0x8000F8FC - - .data 0x8000B958 # Save Extra Palettes To Memory Card (Temp Slot 3) - .deltaof save_to_memcard_hook1, save_to_memcard_end - .address 0x8000B958 -save_to_memcard_hook1: - stw [r13 - 0x469C], r3 - mulli r3, r3, 60 - lwz r4, [r13 - 0x46B8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r4, r4, r3 - lis r3, 0x8000 - ori r3, r3, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook2: - stw [r4], r3 - lwz r3, [r13 - 0x469C] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46B8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - lis r4, 0x8000 - ori r4, r4, 0xCF40 - li r5, 0x003C - b memcpy -save_to_memcard_hook3: - lwz r3, [r13 - 0x469C] - mulli r3, r3, 60 - lwz r4, [r13 - 0x46B8] - addis r4, r4, 0x0001 - addi r4, r4, 0x0B80 - add r3, r4, r3 - li r4, 0x0000 - li r5, 0x003C - bl memset - bl get_main_phase - b [801FF648] -save_to_memcard_end: - - .data 0x8000CA40 # Full Action List (Incl. Photon Blasts & Traps) - .deltaof full_action_list_hook1, full_action_list_end - .address 0x8000CA40 -full_action_list_hook1: - cmplwi r3, 0 - bne full_action_list_hook1_r3_nonzero - li r31, 0x0000 -full_action_list_hook1_r3_nonzero: - cmp r0, r31 - blr -full_action_list_hook2: - li r0, 0x0003 - mtctr r0 - ori r4, r30, 0x0500 - addi r5, r31, 0x0538 -full_action_list_hook2_next: - lhzu r0, [r5 + 0x0004] - cmp r4, r0 - beq full_action_list_hook2_ret - bdnz full_action_list_hook2_next - li r3, 0x0000 -full_action_list_hook2_ret: - cmpwi r3, 0 - blr -full_action_list_end: - - .data 0x8000CD00 # Have Four Action Button Palettes - .deltaof four_palettes_hook1, four_palettes_end - .address 0x8000CD00 -four_palettes_hook1: - lis r4, 0x8000 - ori r4, r4, 0xCF3E - li r31, 0x0000 - lhz r6, [r4 + 0x003A] - cmpwi r6, 0 - beqlr - sth [r4 + 0x003A], r31 - lis r3, 0x8051 - lhz r0, [r3 - 0x168C] # D-pad version: lhz r0, [r3 - 0x168A] - lhz r5, [r3 - 0x1690] - and r5, r5, r6 - andi. r0, r0, 0x3C00 # D-pad version: andi. r0, r0, 0x00F0 - beqlr - rlwinm. r3, r0, 0, 21, 21 # D-pad version: rlwinm. r3, r0, 0, 27, 27 - beq four_palettes_hook1_control_check1 - li r30, 0x002A -four_palettes_hook1_control_check1: - rlwinm. r3, r0, 0, 18, 18 # D-pad version: rlwinm. r3, r0, 0, 24, 24 - beq four_palettes_hook1_control_check2 - li r30, 0x001C -four_palettes_hook1_control_check2: - rlwinm. r3, r0, 0, 20, 20 # D-pad version: rlwinm. r3, r0, 0, 26, 26 - beq four_palettes_hook1_control_check3 - li r30, 0x000E -four_palettes_hook1_control_check3: - add r4, r4, r30 - li r0, 0x0007 - mtctr r0 - addi r3, r28, 0x0504 -four_palettes_hook1_again: - cmpwi r5, 3 - bne four_palettes_hook1_skip - lhz r0, [r3 + 0x0004] - sth [r4 + 0x0002], r0 -four_palettes_hook1_skip: - lhzu r0, [r4 + 0x0002] - sthu [r3 + 0x0004], r0 - bdnz four_palettes_hook1_again - li r30, 0x0000 - blr -four_palettes_hook2: - li r3, 0x0003 - lis r4, 0x8001 - sth [r4 - 0x3088], r3 - mr r3, r30 - blr -four_palettes_hook3: - lis r12, 0x8044 - ori r12, r12, 0xE708 - lwz r4, [r3] - cmp r4, r12 - rlwinm r3, r0, 0, 29, 29 # Original opcode - bnelr - cmpwi r0, 0 - bnelr - li r4, 0x0001 - lis r12, 0x8001 - sth [r12 - 0x3088], r4 - blr -four_palettes_hook4: - lis r3, 0x8000 - ori r3, r3, 0xCF3C - li r0, 0x000E - mtctr r0 - li r0, 0 -four_palettes_hook4_again: - stwu [r3 + 4], r0 - bdnz four_palettes_hook4_again - blr -four_palettes_end: - - .data 0x801B5B18 # Disable Photon Blast Palette Switching - .data 0x00000004 - .address 0x801B5B18 - li r3, 0x0000 - - .data 0x801D83CC # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801D83CC - bl full_action_list_hook1 - .data 0x801CC1D4 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x801CC1D4 - bl full_action_list_hook2 - - .data 0x801FC8EC # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FC8EC - bl save_to_memcard_hook1 - .data 0x80200158 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x80200158 - bl save_to_memcard_hook2 - .data 0x801FF644 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .address 0x801FF644 - b save_to_memcard_hook3 - - .data 0x801D7C14 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x801D7C14 - bl four_palettes_hook1 - .data 0x80276B90 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x80276B90 - bl four_palettes_hook2 - .data 0x8024C2D8 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x8024C2D8 - b four_palettes_hook3 - .data 0x80336588 # Have Four Action Button Palettes - .data 0x00000004 - .address 0x80336588 - bl four_palettes_hook4 - - .data 0x80247130 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80247130 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x80276BF0 # Have Four Action Button Palettes - .data 0x00000008 - .address 0x80276BF0 - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x802779C0 # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000004 - .address 0x802779C0 - subi r0, r3, 0x07E8 - - .data 0x8044F9FC # Full Action List (Incl. Photon Blasts & Traps) - .data 0x00000034 - .data 0x0004000D - .data 0x0004000E - .data 0x00000000 - .data 0x0004000F - .data 0x00040010 - .data 0x00000000 - .data 0x00050000 - .data 0x00050001 - .data 0x00050002 - .data 0x00050003 - .data 0x00050004 - .data 0x00050005 - .data 0x00080000 - - .data 0x80471C14 # Save Extra Palettes To Memory Card (Temp Slot 3) - .data 0x00000004 - .data 0xFFFFFFFF - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/Palette/Palette.3OP0.patch.s b/system/client-functions/Palette/Palette.3___.patch.s similarity index 59% rename from system/client-functions/Palette/Palette.3OP0.patch.s rename to system/client-functions/Palette/Palette.3___.patch.s index e0812bd5..386cb587 100644 --- a/system/client-functions/Palette/Palette.3OP0.patch.s +++ b/system/client-functions/Palette/Palette.3___.patch.s @@ -4,6 +4,8 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2049 +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + # This code will let you have up to four different palettes of action buttons. # Battle Screen Control Keys # C-Stick/D-Pad Left = Select Palette 1 @@ -29,15 +31,15 @@ start: .label memcpy, 0x8000E41C .label memset, 0x8000E334 - .label get_main_phase, 0x8000F970 + .label get_main_phase, .data 0x8000B958 # Save Extra Palettes To Memory Card (Temp Slot 3) .deltaof save_to_memcard_hook1, save_to_memcard_end .address 0x8000B958 save_to_memcard_hook1: - stw [r13 - 0x464C], r3 + stw [r13 - ], r3 mulli r3, r3, 60 - lwz r4, [r13 - 0x4668] + lwz r4, [r13 - ] addis r4, r4, 0x0001 addi r4, r4, 0x0B80 add r4, r4, r3 @@ -47,9 +49,9 @@ save_to_memcard_hook1: b memcpy save_to_memcard_hook2: stw [r4], r3 - lwz r3, [r13 - 0x464C] + lwz r3, [r13 - ] mulli r3, r3, 60 - lwz r4, [r13 - 0x4668] + lwz r4, [r13 - ] addis r4, r4, 0x0001 addi r4, r4, 0x0B80 add r3, r4, r3 @@ -58,9 +60,9 @@ save_to_memcard_hook2: li r5, 0x003C b memcpy save_to_memcard_hook3: - lwz r3, [r13 - 0x464C] + lwz r3, [r13 - ] mulli r3, r3, 60 - lwz r4, [r13 - 0x4668] + lwz r4, [r13 - ] addis r4, r4, 0x0001 addi r4, r4, 0x0B80 add r3, r4, r3 @@ -68,7 +70,7 @@ save_to_memcard_hook3: li r5, 0x003C bl memset bl get_main_phase - b [801FF918] + b [] save_to_memcard_end: .data 0x8000CA40 # Full Action List (Incl. Photon Blasts & Traps) @@ -109,8 +111,9 @@ four_palettes_hook1: beqlr sth [r4 + 0x003A], r31 lis r3, 0x8051 - lhz r0, [r3 - 0x0D6C] # D-pad version: lhz r0, [r3 - 0x0D6A] - lhz r5, [r3 - 0x0D70] + # D-pad version: lhz r0, [r3 - ] + lhz r0, [r3 - ] + lhz r5, [r3 - ] and r5, r5, r6 andi. r0, r0, 0x3C00 # D-pad version: andi. r0, r0, 0x00F0 beqlr @@ -149,7 +152,7 @@ four_palettes_hook2: blr four_palettes_hook3: lis r12, 0x8044 - ori r12, r12, 0xE3D0 + ori r12, r12, lwz r4, [r3] cmp r4, r12 rlwinm r3, r0, 0, 29, 29 # Original opcode @@ -172,68 +175,70 @@ four_palettes_hook4_again: blr four_palettes_end: - .data 0x801B6038 # Disable Photon Blast Palette Switching + # Disable Photon Blast Palette Switching + .data .data 0x00000004 - .address 0x801B6038 + .address li r3, 0x0000 - .data 0x801D88EC # Full Action List (Incl. Photon Blasts & Traps) + # Full Action List (Incl. Photon Blasts & Traps) + .data .data 0x00000004 - .address 0x801D88EC + .address bl full_action_list_hook1 - .data 0x801CC6F4 # Full Action List (Incl. Photon Blasts & Traps) + .data .data 0x00000004 - .address 0x801CC6F4 + .address bl full_action_list_hook2 - .data 0x801FCA54 # Save Extra Palettes To Memory Card (Temp Slot 3) + # Save Extra Palettes To Memory Card (Temp Slot 3) + .data .data 0x00000004 - .address 0x801FCA54 + .address bl save_to_memcard_hook1 - .data 0x802003F8 # Save Extra Palettes To Memory Card (Temp Slot 3) + .data .data 0x00000004 - .address 0x802003F8 + .address bl save_to_memcard_hook2 - .data 0x801FF914 # Save Extra Palettes To Memory Card (Temp Slot 3) + .data .data 0x00000004 - .address 0x801FF914 + .address b save_to_memcard_hook3 - .data 0x801D8134 # Have Four Action Button Palettes + # Have Four Action Button Palettes + .data .data 0x00000004 - .address 0x801D8134 + .address bl four_palettes_hook1 - .data 0x8027658C # Have Four Action Button Palettes + .data .data 0x00000004 - .address 0x8027658C + .address bl four_palettes_hook2 - .data 0x8024BDE4 # Have Four Action Button Palettes + .data .data 0x00000004 - .address 0x8024BDE4 + .address b four_palettes_hook3 - .data 0x80335BA0 # Have Four Action Button Palettes + .data .data 0x00000004 - .address 0x80335BA0 + .address bl four_palettes_hook4 - - .data 0x80246C3C # Have Four Action Button Palettes + .data .data 0x00000008 - .address 0x80246C3C + .address + lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] + rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 + .data + .data 0x00000008 + .address lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - .data 0x802765EC # Have Four Action Button Palettes - .data 0x00000008 - .address 0x802765EC - lhz r0, [r31 + 0x004A] # D-pad version: lhz r0, [r31 + 0x0048] - rlwinm. r3, r0, 0, 24, 27 # D-pad version: rlwinm. r3, r0, 0, 18, 21 - - .data 0x802773BC # Full Action List (Incl. Photon Blasts & Traps) + # Full Action List (Incl. Photon Blasts & Traps) + .data .data 0x00000004 - .address 0x802773BC + .address subi r0, r3, 0x07E8 - - .data 0x8044F6B4 # Full Action List (Incl. Photon Blasts & Traps) + .data .data 0x00000034 .data 0x0004000D .data 0x0004000E @@ -249,7 +254,8 @@ four_palettes_end: .data 0x00050005 .data 0x00080000 - .data 0x80471804 # Save Extra Palettes To Memory Card (Temp Slot 3) + # Save Extra Palettes To Memory Card (Temp Slot 3) + .data .data 0x00000004 .data 0xFFFFFFFF diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3OE0.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3OE0.patch.s deleted file mode 100644 index 498fa8b4..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.3OE0.patch.s +++ /dev/null @@ -1,49 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000C660 (40 bytes) - .data 0x8000C660 # address - .data 0x00000028 # size - .data 0x881F00EF # 8000C660 => lbz r0, [r31 + 0x00EF] - .data 0x28000004 # 8000C664 => cmplwi r0, 4 - .data 0x40820018 # 8000C668 => bne +0x00000018 /* 8000C680 */ - .data 0x387F0038 # 8000C66C => addi r3, r31, 0x0038 - .data 0x3C80FFFF # 8000C670 => lis r4, 0xFFFF - .data 0x38A00001 # 8000C674 => li r5, 0x0001 - .data 0x38C00000 # 8000C678 => li r6, 0x0000 - .data 0x481ED381 # 8000C67C => bl +0x001ED380 /* 801F99FC */ - .data 0x7FE3FB78 # 8000C680 => mr r3, r31 - .data 0x480F6240 # 8000C684 => b +0x000F6240 /* 801028C4 */ - # region @ 8000C690 (44 bytes) - .data 0x8000C690 # address - .data 0x0000002C # size - .data 0x28030000 # 8000C690 => cmplwi r3, 0 - .data 0x41820020 # 8000C694 => beq +0x00000020 /* 8000C6B4 */ - .data 0x880300EF # 8000C698 => lbz r0, [r3 + 0x00EF] - .data 0x28000004 # 8000C69C => cmplwi r0, 4 - .data 0x40820014 # 8000C6A0 => bne +0x00000014 /* 8000C6B4 */ - .data 0x3C600005 # 8000C6A4 => lis r3, 0x0005 - .data 0x60632813 # 8000C6A8 => ori r3, r3, 0x2813 - .data 0x38800000 # 8000C6AC => li r4, 0x0000 - .data 0x4802721D # 8000C6B0 => bl +0x0002721C /* 800338CC */ - .data 0x80010024 # 8000C6B4 => lwz r0, [r1 + 0x0024] - .data 0x4810E8F0 # 8000C6B8 => b +0x0010E8F0 /* 8011AFA8 */ - # region @ 801028C0 (4 bytes) - .data 0x801028C0 # address - .data 0x00000004 # size - .data 0x4BF09DA0 # 801028C0 => b -0x000F6260 /* 8000C660 */ - # region @ 8011AFA4 (4 bytes) - .data 0x8011AFA4 # address - .data 0x00000004 # size - .data 0x4BEF16EC # 8011AFA4 => b -0x0010E914 /* 8000C690 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3OE1.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3OE1.patch.s deleted file mode 100644 index 498fa8b4..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.3OE1.patch.s +++ /dev/null @@ -1,49 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000C660 (40 bytes) - .data 0x8000C660 # address - .data 0x00000028 # size - .data 0x881F00EF # 8000C660 => lbz r0, [r31 + 0x00EF] - .data 0x28000004 # 8000C664 => cmplwi r0, 4 - .data 0x40820018 # 8000C668 => bne +0x00000018 /* 8000C680 */ - .data 0x387F0038 # 8000C66C => addi r3, r31, 0x0038 - .data 0x3C80FFFF # 8000C670 => lis r4, 0xFFFF - .data 0x38A00001 # 8000C674 => li r5, 0x0001 - .data 0x38C00000 # 8000C678 => li r6, 0x0000 - .data 0x481ED381 # 8000C67C => bl +0x001ED380 /* 801F99FC */ - .data 0x7FE3FB78 # 8000C680 => mr r3, r31 - .data 0x480F6240 # 8000C684 => b +0x000F6240 /* 801028C4 */ - # region @ 8000C690 (44 bytes) - .data 0x8000C690 # address - .data 0x0000002C # size - .data 0x28030000 # 8000C690 => cmplwi r3, 0 - .data 0x41820020 # 8000C694 => beq +0x00000020 /* 8000C6B4 */ - .data 0x880300EF # 8000C698 => lbz r0, [r3 + 0x00EF] - .data 0x28000004 # 8000C69C => cmplwi r0, 4 - .data 0x40820014 # 8000C6A0 => bne +0x00000014 /* 8000C6B4 */ - .data 0x3C600005 # 8000C6A4 => lis r3, 0x0005 - .data 0x60632813 # 8000C6A8 => ori r3, r3, 0x2813 - .data 0x38800000 # 8000C6AC => li r4, 0x0000 - .data 0x4802721D # 8000C6B0 => bl +0x0002721C /* 800338CC */ - .data 0x80010024 # 8000C6B4 => lwz r0, [r1 + 0x0024] - .data 0x4810E8F0 # 8000C6B8 => b +0x0010E8F0 /* 8011AFA8 */ - # region @ 801028C0 (4 bytes) - .data 0x801028C0 # address - .data 0x00000004 # size - .data 0x4BF09DA0 # 801028C0 => b -0x000F6260 /* 8000C660 */ - # region @ 8011AFA4 (4 bytes) - .data 0x8011AFA4 # address - .data 0x00000004 # size - .data 0x4BEF16EC # 8011AFA4 => b -0x0010E914 /* 8000C690 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3OE2.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3OE2.patch.s deleted file mode 100644 index d963d4f2..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.3OE2.patch.s +++ /dev/null @@ -1,49 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000C660 (40 bytes) - .data 0x8000C660 # address - .data 0x00000028 # size - .data 0x881F00EF # 8000C660 => lbz r0, [r31 + 0x00EF] - .data 0x28000004 # 8000C664 => cmplwi r0, 4 - .data 0x40820018 # 8000C668 => bne +0x00000018 /* 8000C680 */ - .data 0x387F0038 # 8000C66C => addi r3, r31, 0x0038 - .data 0x3C80FFFF # 8000C670 => lis r4, 0xFFFF - .data 0x38A00001 # 8000C674 => li r5, 0x0001 - .data 0x38C00000 # 8000C678 => li r6, 0x0000 - .data 0x481ED511 # 8000C67C => bl +0x001ED510 /* 801F9B8C */ - .data 0x7FE3FB78 # 8000C680 => mr r3, r31 - .data 0x480F6108 # 8000C684 => b +0x000F6108 /* 8010278C */ - # region @ 8000C690 (44 bytes) - .data 0x8000C690 # address - .data 0x0000002C # size - .data 0x28030000 # 8000C690 => cmplwi r3, 0 - .data 0x41820020 # 8000C694 => beq +0x00000020 /* 8000C6B4 */ - .data 0x880300EF # 8000C698 => lbz r0, [r3 + 0x00EF] - .data 0x28000004 # 8000C69C => cmplwi r0, 4 - .data 0x40820014 # 8000C6A0 => bne +0x00000014 /* 8000C6B4 */ - .data 0x3C600005 # 8000C6A4 => lis r3, 0x0005 - .data 0x60632813 # 8000C6A8 => ori r3, r3, 0x2813 - .data 0x38800000 # 8000C6AC => li r4, 0x0000 - .data 0x480271E5 # 8000C6B0 => bl +0x000271E4 /* 80033894 */ - .data 0x80010024 # 8000C6B4 => lwz r0, [r1 + 0x0024] - .data 0x4810E810 # 8000C6B8 => b +0x0010E810 /* 8011AEC8 */ - # region @ 80102788 (4 bytes) - .data 0x80102788 # address - .data 0x00000004 # size - .data 0x4BF09ED8 # 80102788 => b -0x000F6128 /* 8000C660 */ - # region @ 8011AEC4 (4 bytes) - .data 0x8011AEC4 # address - .data 0x00000004 # size - .data 0x4BEF17CC # 8011AEC4 => b -0x0010E834 /* 8000C690 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ2.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ2.patch.s deleted file mode 100644 index 45002966..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ2.patch.s +++ /dev/null @@ -1,49 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000C660 (40 bytes) - .data 0x8000C660 # address - .data 0x00000028 # size - .data 0x881F00EF # 8000C660 => lbz r0, [r31 + 0x00EF] - .data 0x28000004 # 8000C664 => cmplwi r0, 4 - .data 0x40820018 # 8000C668 => bne +0x00000018 /* 8000C680 */ - .data 0x387F0038 # 8000C66C => addi r3, r31, 0x0038 - .data 0x3C80FFFF # 8000C670 => lis r4, 0xFFFF - .data 0x38A00001 # 8000C674 => li r5, 0x0001 - .data 0x38C00000 # 8000C678 => li r6, 0x0000 - .data 0x481ECE15 # 8000C67C => bl +0x001ECE14 /* 801F9490 */ - .data 0x7FE3FB78 # 8000C680 => mr r3, r31 - .data 0x480F5F9C # 8000C684 => b +0x000F5F9C /* 80102620 */ - # region @ 8000C690 (44 bytes) - .data 0x8000C690 # address - .data 0x0000002C # size - .data 0x28030000 # 8000C690 => cmplwi r3, 0 - .data 0x41820020 # 8000C694 => beq +0x00000020 /* 8000C6B4 */ - .data 0x880300EF # 8000C698 => lbz r0, [r3 + 0x00EF] - .data 0x28000004 # 8000C69C => cmplwi r0, 4 - .data 0x40820014 # 8000C6A0 => bne +0x00000014 /* 8000C6B4 */ - .data 0x3C600005 # 8000C6A4 => lis r3, 0x0005 - .data 0x60632813 # 8000C6A8 => ori r3, r3, 0x2813 - .data 0x38800000 # 8000C6AC => li r4, 0x0000 - .data 0x48026FFD # 8000C6B0 => bl +0x00026FFC /* 800336AC */ - .data 0x80010024 # 8000C6B4 => lwz r0, [r1 + 0x0024] - .data 0x4810E64C # 8000C6B8 => b +0x0010E64C /* 8011AD04 */ - # region @ 8010261C (4 bytes) - .data 0x8010261C # address - .data 0x00000004 # size - .data 0x4BF0A044 # 8010261C => b -0x000F5FBC /* 8000C660 */ - # region @ 8011AD00 (4 bytes) - .data 0x8011AD00 # address - .data 0x00000004 # size - .data 0x4BEF1990 # 8011AD00 => b -0x0010E670 /* 8000C690 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ3.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ3.patch.s deleted file mode 100644 index a42c0fc0..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ3.patch.s +++ /dev/null @@ -1,49 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000C660 (40 bytes) - .data 0x8000C660 # address - .data 0x00000028 # size - .data 0x881F00EF # 8000C660 => lbz r0, [r31 + 0x00EF] - .data 0x28000004 # 8000C664 => cmplwi r0, 4 - .data 0x40820018 # 8000C668 => bne +0x00000018 /* 8000C680 */ - .data 0x387F0038 # 8000C66C => addi r3, r31, 0x0038 - .data 0x3C80FFFF # 8000C670 => lis r4, 0xFFFF - .data 0x38A00001 # 8000C674 => li r5, 0x0001 - .data 0x38C00000 # 8000C678 => li r6, 0x0000 - .data 0x481ED4B1 # 8000C67C => bl +0x001ED4B0 /* 801F9B2C */ - .data 0x7FE3FB78 # 8000C680 => mr r3, r31 - .data 0x480F6178 # 8000C684 => b +0x000F6178 /* 801027FC */ - # region @ 8000C690 (44 bytes) - .data 0x8000C690 # address - .data 0x0000002C # size - .data 0x28030000 # 8000C690 => cmplwi r3, 0 - .data 0x41820020 # 8000C694 => beq +0x00000020 /* 8000C6B4 */ - .data 0x880300EF # 8000C698 => lbz r0, [r3 + 0x00EF] - .data 0x28000004 # 8000C69C => cmplwi r0, 4 - .data 0x40820014 # 8000C6A0 => bne +0x00000014 /* 8000C6B4 */ - .data 0x3C600005 # 8000C6A4 => lis r3, 0x0005 - .data 0x60632813 # 8000C6A8 => ori r3, r3, 0x2813 - .data 0x38800000 # 8000C6AC => li r4, 0x0000 - .data 0x4802702D # 8000C6B0 => bl +0x0002702C /* 800336DC */ - .data 0x80010024 # 8000C6B4 => lwz r0, [r1 + 0x0024] - .data 0x4810E868 # 8000C6B8 => b +0x0010E868 /* 8011AF20 */ - # region @ 801027F8 (4 bytes) - .data 0x801027F8 # address - .data 0x00000004 # size - .data 0x4BF09E68 # 801027F8 => b -0x000F6198 /* 8000C660 */ - # region @ 8011AF1C (4 bytes) - .data 0x8011AF1C # address - .data 0x00000004 # size - .data 0x4BEF1774 # 8011AF1C => b -0x0010E88C /* 8000C690 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ4.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ4.patch.s deleted file mode 100644 index f58a4704..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ4.patch.s +++ /dev/null @@ -1,49 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000C660 (40 bytes) - .data 0x8000C660 # address - .data 0x00000028 # size - .data 0x881F00EF # 8000C660 => lbz r0, [r31 + 0x00EF] - .data 0x28000004 # 8000C664 => cmplwi r0, 4 - .data 0x40820018 # 8000C668 => bne +0x00000018 /* 8000C680 */ - .data 0x387F0038 # 8000C66C => addi r3, r31, 0x0038 - .data 0x3C80FFFF # 8000C670 => lis r4, 0xFFFF - .data 0x38A00001 # 8000C674 => li r5, 0x0001 - .data 0x38C00000 # 8000C678 => li r6, 0x0000 - .data 0x481ED709 # 8000C67C => bl +0x001ED708 /* 801F9D84 */ - .data 0x7FE3FB78 # 8000C680 => mr r3, r31 - .data 0x480F6788 # 8000C684 => b +0x000F6788 /* 80102E0C */ - # region @ 8000C690 (44 bytes) - .data 0x8000C690 # address - .data 0x0000002C # size - .data 0x28030000 # 8000C690 => cmplwi r3, 0 - .data 0x41820020 # 8000C694 => beq +0x00000020 /* 8000C6B4 */ - .data 0x880300EF # 8000C698 => lbz r0, [r3 + 0x00EF] - .data 0x28000004 # 8000C69C => cmplwi r0, 4 - .data 0x40820014 # 8000C6A0 => bne +0x00000014 /* 8000C6B4 */ - .data 0x3C600005 # 8000C6A4 => lis r3, 0x0005 - .data 0x60632813 # 8000C6A8 => ori r3, r3, 0x2813 - .data 0x38800000 # 8000C6AC => li r4, 0x0000 - .data 0x48027049 # 8000C6B0 => bl +0x00027048 /* 800336F8 */ - .data 0x80010024 # 8000C6B4 => lwz r0, [r1 + 0x0024] - .data 0x4810EA38 # 8000C6B8 => b +0x0010EA38 /* 8011B0F0 */ - # region @ 80102E08 (4 bytes) - .data 0x80102E08 # address - .data 0x00000004 # size - .data 0x4BF09858 # 80102E08 => b -0x000F67A8 /* 8000C660 */ - # region @ 8011B0EC (4 bytes) - .data 0x8011B0EC # address - .data 0x00000004 # size - .data 0x4BEF15A4 # 8011B0EC => b -0x0010EA5C /* 8000C690 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ5.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ5.patch.s deleted file mode 100644 index 2cc2440f..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.3OJ5.patch.s +++ /dev/null @@ -1,49 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000C660 (40 bytes) - .data 0x8000C660 # address - .data 0x00000028 # size - .data 0x881F00EF # 8000C660 => lbz r0, [r31 + 0x00EF] - .data 0x28000004 # 8000C664 => cmplwi r0, 4 - .data 0x40820018 # 8000C668 => bne +0x00000018 /* 8000C680 */ - .data 0x387F0038 # 8000C66C => addi r3, r31, 0x0038 - .data 0x3C80FFFF # 8000C670 => lis r4, 0xFFFF - .data 0x38A00001 # 8000C674 => li r5, 0x0001 - .data 0x38C00000 # 8000C678 => li r6, 0x0000 - .data 0x481ED4BD # 8000C67C => bl +0x001ED4BC /* 801F9B38 */ - .data 0x7FE3FB78 # 8000C680 => mr r3, r31 - .data 0x480F60F8 # 8000C684 => b +0x000F60F8 /* 8010277C */ - # region @ 8000C690 (44 bytes) - .data 0x8000C690 # address - .data 0x0000002C # size - .data 0x28030000 # 8000C690 => cmplwi r3, 0 - .data 0x41820020 # 8000C694 => beq +0x00000020 /* 8000C6B4 */ - .data 0x880300EF # 8000C698 => lbz r0, [r3 + 0x00EF] - .data 0x28000004 # 8000C69C => cmplwi r0, 4 - .data 0x40820014 # 8000C6A0 => bne +0x00000014 /* 8000C6B4 */ - .data 0x3C600005 # 8000C6A4 => lis r3, 0x0005 - .data 0x60632813 # 8000C6A8 => ori r3, r3, 0x2813 - .data 0x38800000 # 8000C6AC => li r4, 0x0000 - .data 0x48026FDD # 8000C6B0 => bl +0x00026FDC /* 8003368C */ - .data 0x80010024 # 8000C6B4 => lwz r0, [r1 + 0x0024] - .data 0x4810E800 # 8000C6B8 => b +0x0010E800 /* 8011AEB8 */ - # region @ 80102778 (4 bytes) - .data 0x80102778 # address - .data 0x00000004 # size - .data 0x4BF09EE8 # 80102778 => b -0x000F6118 /* 8000C660 */ - # region @ 8011AEB4 (4 bytes) - .data 0x8011AEB4 # address - .data 0x00000004 # size - .data 0x4BEF17DC # 8011AEB4 => b -0x0010E824 /* 8000C690 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3OP0.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3OP0.patch.s deleted file mode 100644 index 518821d7..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.3OP0.patch.s +++ /dev/null @@ -1,49 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 8000C660 (40 bytes) - .data 0x8000C660 # address - .data 0x00000028 # size - .data 0x881F00EF # 8000C660 => lbz r0, [r31 + 0x00EF] - .data 0x28000004 # 8000C664 => cmplwi r0, 4 - .data 0x40820018 # 8000C668 => bne +0x00000018 /* 8000C680 */ - .data 0x387F0038 # 8000C66C => addi r3, r31, 0x0038 - .data 0x3C80FFFF # 8000C670 => lis r4, 0xFFFF - .data 0x38A00001 # 8000C674 => li r5, 0x0001 - .data 0x38C00000 # 8000C678 => li r6, 0x0000 - .data 0x481EDA8D # 8000C67C => bl +0x001EDA8C /* 801FA108 */ - .data 0x7FE3FB78 # 8000C680 => mr r3, r31 - .data 0x480F62F8 # 8000C684 => b +0x000F62F8 /* 8010297C */ - # region @ 8000C690 (44 bytes) - .data 0x8000C690 # address - .data 0x0000002C # size - .data 0x28030000 # 8000C690 => cmplwi r3, 0 - .data 0x41820020 # 8000C694 => beq +0x00000020 /* 8000C6B4 */ - .data 0x880300EF # 8000C698 => lbz r0, [r3 + 0x00EF] - .data 0x28000004 # 8000C69C => cmplwi r0, 4 - .data 0x40820014 # 8000C6A0 => bne +0x00000014 /* 8000C6B4 */ - .data 0x3C600005 # 8000C6A4 => lis r3, 0x0005 - .data 0x60632813 # 8000C6A8 => ori r3, r3, 0x2813 - .data 0x38800000 # 8000C6AC => li r4, 0x0000 - .data 0x4802725D # 8000C6B0 => bl +0x0002725C /* 8003390C */ - .data 0x80010024 # 8000C6B4 => lwz r0, [r1 + 0x0024] - .data 0x4810E9E8 # 8000C6B8 => b +0x0010E9E8 /* 8011B0A0 */ - # region @ 80102978 (4 bytes) - .data 0x80102978 # address - .data 0x00000004 # size - .data 0x4BF09CE8 # 80102978 => b -0x000F6318 /* 8000C660 */ - # region @ 8011B09C (4 bytes) - .data 0x8011B09C # address - .data 0x00000004 # size - .data 0x4BEF15F4 # 8011B09C => b -0x0010EA0C /* 8000C690 */ - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.3___.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.3___.patch.s new file mode 100644 index 00000000..05c9a3c2 --- /dev/null +++ b/system/client-functions/RareDropNotifications/RareDropNotifications.3___.patch.s @@ -0,0 +1,51 @@ +.meta name="Rare alerts" +.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000C660 + .data 0x00000028 + .data 0x881F00EF + .data 0x28000004 + .data 0x40820018 + .data 0x387F0038 + .data 0x3C80FFFF + .data 0x38A00001 + .data 0x38C00000 + .data + .data 0x7FE3FB78 + .data + + .data 0x8000C690 + .data 0x0000002C + .data 0x28030000 + .data 0x41820020 + .data 0x880300EF + .data 0x28000004 + .data 0x40820014 + .data 0x3C600005 + .data 0x60632813 + .data 0x38800000 + .data + .data 0x80010024 + .data + + .data + .data 0x00000004 + .data + + .data + .data 0x00000004 + .data + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.4OEU.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.4OEU.patch.s deleted file mode 100644 index 1dfe3e1f..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.4OEU.patch.s +++ /dev/null @@ -1,86 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - - - # Map dot render hook - - .data 0x00172360 - .deltaof dot1_start, dot1_end -dot1_start: - cmp byte [esi + 0x000000EF], 0x4 - jne +0x280 # skip_dot - jmp +0x16 # dot2_start -dot1_end: - - .data 0x00172385 - .deltaof dot2_start, dot2_end -dot2_start: - push 0x00 - push 0x01 - push 0xFFFFFFFF # White - jmp +0x252 # dot3_start -dot2_end: - - .data 0x001725E2 - .deltaof dot3_start, dot3_end -dot3_start: - lea edx, [esi + 0x38] - call +0x16ED86 # 002E1370 = minimap_render_dot - add esp, 0xC -skip_dot: - mov eax, esi - pop esi - # Falls through to the original tail-call-optimized target (001725F0) -dot3_end: - - - - # Notification sound hook - - .data 0x00188578 - .deltaof sound1_start, sound1_end -sound1_start: - pop edi # From original function; shorter replacement for add esp, 4 - pop edi # From original function - pop esi # From original function - add esp, 0xC # From original function - test eax, eax - je fail # Item does not exist (was on a different floor) - cmp byte [eax + 0xEF], 0x4 - je +0x503 # sound2_start -fail: - ret -sound1_end: - - .data 0x00188A92 - .deltaof sound2_start, sound2_end -sound2_start: - xor ecx, ecx - push ecx - push ecx - push ecx - push 0x0000055E - jmp +0x33 # sound3_start -sound2_end: - - .data 0x00188AD1 - .deltaof sound3_start, sound3_end -sound3_start: - call +0x1628DA # 002EB3B0 => play_sound(0x55E, nullptr, 0, 0); - add esp, 0x10 - ret -sound3_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.4OJB.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.4OJB.patch.s deleted file mode 100644 index 1e5afad2..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.4OJB.patch.s +++ /dev/null @@ -1,86 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - - - # Map dot render hook - - .data 0x00172220 - .deltaof dot1_start, dot1_end -dot1_start: - cmp byte [esi + 0x000000EF], 0x4 - jne +0x280 # skip_dot - jmp +0x16 # dot2_start -dot1_end: - - .data 0x00172245 - .deltaof dot2_start, dot2_end -dot2_start: - push 0x00 - push 0x01 - push 0xFFFFFFFF # White - jmp +0x252 # dot3_start -dot2_end: - - .data 0x001724A2 - .deltaof dot3_start, dot3_end -dot3_start: - lea edx, [esi + 0x38] - call +0x16CA96 # 002DEF40 = minimap_render_dot - add esp, 0xC -skip_dot: - mov eax, esi - pop esi - # Falls through to the original tail-call-optimized target (001724B0) -dot3_end: - - - - # Notification sound hook - - .data 0x00188388 - .deltaof sound1_start, sound1_end -sound1_start: - pop edi # From original function; shorter replacement for add esp, 4 - pop edi # From original function - pop esi # From original function - add esp, 0xC # From original function - test eax, eax - je fail # Item does not exist (was on a different floor) - cmp byte [eax + 0xEF], 0x4 - je +0x503 # sound2_start -fail: - ret -sound1_end: - - .data 0x001888A2 - .deltaof sound2_start, sound2_end -sound2_start: - xor ecx, ecx - push ecx - push ecx - push ecx - push 0x0000055E - jmp +0x33 # sound3_start -sound2_end: - - .data 0x001888E1 - .deltaof sound3_start, sound3_end -sound3_start: - call +0x16094A # 002E9230 => play_sound(0x55E, nullptr, 0, 0); - add esp, 0x10 - ret -sound3_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.4OJD.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.4OJD.patch.s deleted file mode 100644 index 58abd02e..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.4OJD.patch.s +++ /dev/null @@ -1,86 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - - - # Map dot render hook - - .data 0x00172310 - .deltaof dot1_start, dot1_end -dot1_start: - cmp byte [esi + 0x000000EF], 0x4 - jne +0x280 # skip_dot - jmp +0x16 # dot2_start -dot1_end: - - .data 0x00172335 - .deltaof dot2_start, dot2_end -dot2_start: - push 0x00 - push 0x01 - push 0xFFFFFFFF # White - jmp +0x252 # dot3_start -dot2_end: - - .data 0x00172592 - .deltaof dot3_start, dot3_end -dot3_start: - lea edx, [esi + 0x38] - call +0x16D526 # 002DFAC0 = minimap_render_dot - add esp, 0xC -skip_dot: - mov eax, esi - pop esi - # Falls through to the original tail-call-optimized target (001725A0) -dot3_end: - - - - # Notification sound hook - - .data 0x00188548 - .deltaof sound1_start, sound1_end -sound1_start: - pop edi # From original function; shorter replacement for add esp, 4 - pop edi # From original function - pop esi # From original function - add esp, 0xC # From original function - test eax, eax - je fail # Item does not exist (was on a different floor) - cmp byte [eax + 0xEF], 0x4 - je +0x503 # sound2_start -fail: - ret -sound1_end: - - .data 0x00188A62 - .deltaof sound2_start, sound2_end -sound2_start: - xor ecx, ecx - push ecx - push ecx - push ecx - push 0x0000055E - jmp +0x33 # sound3_start -sound2_end: - - .data 0x00188AA1 - .deltaof sound3_start, sound3_end -sound3_start: - call +0x16130A # 002E9DB0 => play_sound(0x55E, nullptr, 0, 0); - add esp, 0x10 - ret -sound3_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.4OJU.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.4OJU.patch.s deleted file mode 100644 index 81d21fdc..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.4OJU.patch.s +++ /dev/null @@ -1,86 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - - - # Map dot render hook - - .data 0x001723F0 - .deltaof dot1_start, dot1_end -dot1_start: - cmp byte [esi + 0x000000EF], 0x4 - jne +0x280 # skip_dot - jmp +0x16 # dot2_start -dot1_end: - - .data 0x00172415 - .deltaof dot2_start, dot2_end -dot2_start: - push 0x00 - push 0x01 - push 0xFFFFFFFF # White - jmp +0x252 # dot3_start -dot2_end: - - .data 0x00172672 - .deltaof dot3_start, dot3_end -dot3_start: - lea edx, [esi + 0x38] - call +0x16ECD6 # 002E1350 = minimap_render_dot - add esp, 0xC -skip_dot: - mov eax, esi - pop esi - # Falls through to the original tail-call-optimized target (00172680) -dot3_end: - - - - # Notification sound hook - - .data 0x00188648 - .deltaof sound1_start, sound1_end -sound1_start: - pop edi # From original function; shorter replacement for add esp, 4 - pop edi # From original function - pop esi # From original function - add esp, 0xC # From original function - test eax, eax - je fail # Item does not exist (was on a different floor) - cmp byte [eax + 0xEF], 0x4 - je +0x503 # sound2_start -fail: - ret -sound1_end: - - .data 0x00188B62 - .deltaof sound2_start, sound2_end -sound2_start: - xor ecx, ecx - push ecx - push ecx - push ecx - push 0x0000055E - jmp +0x33 # sound3_start -sound2_end: - - .data 0x00188BA1 - .deltaof sound3_start, sound3_end -sound3_start: - call +0x1627EA # 002EB390 => play_sound(0x55E, nullptr, 0, 0); - add esp, 0x10 - ret -sound3_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.4OPD.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.4OPD.patch.s deleted file mode 100644 index d2f98e21..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.4OPD.patch.s +++ /dev/null @@ -1,86 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - - - # Map dot render hook - - .data 0x00172370 - .deltaof dot1_start, dot1_end -dot1_start: - cmp byte [esi + 0x000000EF], 0x4 - jne +0x280 # skip_dot - jmp +0x16 # dot2_start -dot1_end: - - .data 0x00172395 - .deltaof dot2_start, dot2_end -dot2_start: - push 0x00 - push 0x01 - push 0xFFFFFFFF # White - jmp +0x252 # dot3_start -dot2_end: - - .data 0x001725F2 - .deltaof dot3_start, dot3_end -dot3_start: - lea edx, [esi + 0x38] - call +0x16E8D6 # 002E0ED0 = minimap_render_dot - add esp, 0xC -skip_dot: - mov eax, esi - pop esi - # Falls through to the original tail-call-optimized target (00172600) -dot3_end: - - - - # Notification sound hook - - .data 0x00188558 - .deltaof sound1_start, sound1_end -sound1_start: - pop edi # From original function; shorter replacement for add esp, 4 - pop edi # From original function - pop esi # From original function - add esp, 0xC # From original function - test eax, eax - je fail # Item does not exist (was on a different floor) - cmp byte [eax + 0xEF], 0x4 - je +0x503 # sound2_start -fail: - ret -sound1_end: - - .data 0x00188A72 - .deltaof sound2_start, sound2_end -sound2_start: - xor ecx, ecx - push ecx - push ecx - push ecx - push 0x0000055E - jmp +0x33 # sound3_start -sound2_end: - - .data 0x00188AB1 - .deltaof sound3_start, sound3_end -sound3_start: - call +0x16270A # 002EB1C0 => play_sound(0x55E, nullptr, 0, 0); - add esp, 0x10 - ret -sound3_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.4OPU.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.4OPU.patch.s deleted file mode 100644 index b9db132a..00000000 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.4OPU.patch.s +++ /dev/null @@ -1,86 +0,0 @@ -.meta name="Rare alerts" -.meta description="Shows rare items on\nthe map and plays a\nsound when a rare\nitem drops" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 -# Xbox port by fuzziqersoftware - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - - - # Map dot render hook - - .data 0x00172320 - .deltaof dot1_start, dot1_end -dot1_start: - cmp byte [esi + 0x000000EF], 0x4 - jne +0x280 # skip_dot - jmp +0x16 # dot2_start -dot1_end: - - .data 0x00172345 - .deltaof dot2_start, dot2_end -dot2_start: - push 0x00 - push 0x01 - push 0xFFFFFFFF # White - jmp +0x252 # dot3_start -dot2_end: - - .data 0x001725A2 - .deltaof dot3_start, dot3_end -dot3_start: - lea edx, [esi + 0x38] - call +0x16EDF6 # 002E13A0 = minimap_render_dot - add esp, 0xC -skip_dot: - mov eax, esi - pop esi - # Falls through to the original tail-call-optimized target (001725B0) -dot3_end: - - - - # Notification sound hook - - .data 0x00188538 - .deltaof sound1_start, sound1_end -sound1_start: - pop edi # From original function; shorter replacement for add esp, 4 - pop edi # From original function - pop esi # From original function - add esp, 0xC # From original function - test eax, eax - je fail # Item does not exist (was on a different floor) - cmp byte [eax + 0xEF], 0x4 - je +0x503 # sound2_start -fail: - ret -sound1_end: - - .data 0x00188A52 - .deltaof sound2_start, sound2_end -sound2_start: - xor ecx, ecx - push ecx - push ecx - push ecx - push 0x0000055E - jmp +0x33 # sound3_start -sound2_end: - - .data 0x00188A91 - .deltaof sound3_start, sound3_end -sound3_start: - call +0x16294A # 002EB3E0 => play_sound(0x55E, nullptr, 0, 0); - add esp, 0x10 - ret -sound3_end: - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RareDropNotifications/RareDropNotifications.4OED.patch.s b/system/client-functions/RareDropNotifications/RareDropNotifications.4___.patch.s similarity index 64% rename from system/client-functions/RareDropNotifications/RareDropNotifications.4OED.patch.s rename to system/client-functions/RareDropNotifications/RareDropNotifications.4___.patch.s index 456fe1a0..0c010798 100644 --- a/system/client-functions/RareDropNotifications/RareDropNotifications.4OED.patch.s +++ b/system/client-functions/RareDropNotifications/RareDropNotifications.4___.patch.s @@ -5,6 +5,8 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2049 # Xbox port by fuzziqersoftware +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + entry_ptr: reloc0: .offsetof start @@ -15,7 +17,7 @@ start: # Map dot render hook - .data 0x00172350 + .data .deltaof dot1_start, dot1_end dot1_start: cmp byte [esi + 0x000000EF], 0x4 @@ -23,7 +25,7 @@ dot1_start: jmp +0x16 # dot2_start dot1_end: - .data 0x00172375 + .data .deltaof dot2_start, dot2_end dot2_start: push 0x00 @@ -32,23 +34,23 @@ dot2_start: jmp +0x252 # dot3_start dot2_end: - .data 0x001725D2 + .data .deltaof dot3_start, dot3_end dot3_start: lea edx, [esi + 0x38] - call +0x16E8C6 # 002E0EA0 = minimap_render_dot + call # minimap_render_dot add esp, 0xC skip_dot: mov eax, esi pop esi - # Falls through to the original tail-call-optimized target (001725E0) + # Falls through to the original tail-call-optimized target dot3_end: # Notification sound hook - .data 0x00188538 + .data .deltaof sound1_start, sound1_end sound1_start: pop edi # From original function; shorter replacement for add esp, 4 @@ -63,7 +65,7 @@ fail: ret sound1_end: - .data 0x00188A52 + .data .deltaof sound2_start, sound2_end sound2_start: xor ecx, ecx @@ -74,10 +76,10 @@ sound2_start: jmp +0x33 # sound3_start sound2_end: - .data 0x00188A91 + .data .deltaof sound3_start, sound3_end sound3_start: - call +0x1626FA # 002EB190 => play_sound(0x55E, nullptr, 0, 0); + call # play_sound(0x55E, nullptr, 0, 0); add esp, 0x10 ret sound3_end: diff --git a/system/client-functions/RaresInQuests/RaresInQuests.1OJ3.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.1OJ3.patch.s deleted file mode 100644 index 9bcd26f1..00000000 --- a/system/client-functions/RaresInQuests/RaresInQuests.1OJ3.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Rares in quests" -.meta description="Disables logic that\nprevents items\nabove 8 stars and\nrares from dropping\nin quests." - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1EE044 - .data 2 - mov r0, 0 - - .align 4 - .data 0x8C1EDFB6 - .data 2 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RaresInQuests/RaresInQuests.1OJ4.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.1OJ4.patch.s deleted file mode 100644 index 672a5470..00000000 --- a/system/client-functions/RaresInQuests/RaresInQuests.1OJ4.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Rares in quests" -.meta description="Disables logic that\nprevents items\nabove 8 stars and\nrares from dropping\nin quests." - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1F0C10 - .data 2 - mov r0, 0 - - .align 4 - .data 0x8C1F0B82 - .data 2 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RaresInQuests/RaresInQuests.1OJF.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.1OJF.patch.s deleted file mode 100644 index 733f8ad1..00000000 --- a/system/client-functions/RaresInQuests/RaresInQuests.1OJF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Rares in quests" -.meta description="Disables logic that\nprevents items\nabove 8 stars and\nrares from dropping\nin quests." - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1EE1F0 - .data 2 - mov r0, 0 - - .align 4 - .data 0x8C1EE162 - .data 2 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RaresInQuests/RaresInQuests.1OPF.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.1OPF.patch.s deleted file mode 100644 index 4ae7e51e..00000000 --- a/system/client-functions/RaresInQuests/RaresInQuests.1OPF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Rares in quests" -.meta description="Disables logic that\nprevents items\nabove 8 stars and\nrares from dropping\nin quests." - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C1F0FB4 - .data 2 - mov r0, 0 - - .align 4 - .data 0x8C1F0F26 - .data 2 - mov r0, 0 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RaresInQuests/RaresInQuests.1OEF.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.1___.patch.s similarity index 66% rename from system/client-functions/RaresInQuests/RaresInQuests.1OEF.patch.s rename to system/client-functions/RaresInQuests/RaresInQuests.1___.patch.s index e63c8128..49d9b9e3 100644 --- a/system/client-functions/RaresInQuests/RaresInQuests.1OEF.patch.s +++ b/system/client-functions/RaresInQuests/RaresInQuests.1___.patch.s @@ -1,6 +1,8 @@ .meta name="Rares in quests" .meta description="Disables logic that\nprevents items\nabove 8 stars and\nrares from dropping\nin quests." +.versions 1OEF 1OJ3 1OJ4 1OJF 1OPF + entry_ptr: reloc0: .offsetof start @@ -8,12 +10,12 @@ start: .include WriteCodeBlocksDC .align 4 - .data 0x8C1F1210 + .data .data 2 mov r0, 0 .align 4 - .data 0x8C1F1182 + .data .data 2 mov r0, 0 diff --git a/system/client-functions/RaresInQuests/RaresInQuests.2OJF.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.2OJF.patch.s deleted file mode 100644 index 6075b4df..00000000 --- a/system/client-functions/RaresInQuests/RaresInQuests.2OJF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Rares in quests" -.meta description="Disables logic that\nprevents items\nabove 8 stars and\nrares from dropping\nin quests." - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C2192C8 - .data 2 - nop - - .align 4 - .data 0x8C219254 - .data 2 - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RaresInQuests/RaresInQuests.2OEF.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.2OJW.patch.s similarity index 69% rename from system/client-functions/RaresInQuests/RaresInQuests.2OEF.patch.s rename to system/client-functions/RaresInQuests/RaresInQuests.2OJW.patch.s index 246af54c..9fedb05c 100644 --- a/system/client-functions/RaresInQuests/RaresInQuests.2OEF.patch.s +++ b/system/client-functions/RaresInQuests/RaresInQuests.2OJW.patch.s @@ -5,18 +5,17 @@ entry_ptr: reloc0: .offsetof start start: - .include WriteCodeBlocksDC + .include WriteCodeBlocksBB - .align 4 - .data 0x8C21A28C + .data 0x004DFC9A + .data 2 + nop + nop + + .data 0x004E03F4 .data 2 nop - - .align 4 - .data 0x8C21A300 - .data 2 nop - .align 4 .data 0x00000000 .data 0x00000000 diff --git a/system/client-functions/RaresInQuests/RaresInQuests.2OPF.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.2OPF.patch.s deleted file mode 100644 index b30a2f62..00000000 --- a/system/client-functions/RaresInQuests/RaresInQuests.2OPF.patch.s +++ /dev/null @@ -1,22 +0,0 @@ -.meta name="Rares in quests" -.meta description="Disables logic that\nprevents items\nabove 8 stars and\nrares from dropping\nin quests." - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - - .align 4 - .data 0x8C219E6C - .data 2 - nop - - .align 4 - .data 0x8C219DF8 - .data 2 - nop - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/RaresInQuests/RaresInQuests.2OJ5.patch.s b/system/client-functions/RaresInQuests/RaresInQuests.2___.patch.s similarity index 68% rename from system/client-functions/RaresInQuests/RaresInQuests.2OJ5.patch.s rename to system/client-functions/RaresInQuests/RaresInQuests.2___.patch.s index 246af54c..59bd6758 100644 --- a/system/client-functions/RaresInQuests/RaresInQuests.2OJ5.patch.s +++ b/system/client-functions/RaresInQuests/RaresInQuests.2___.patch.s @@ -1,6 +1,8 @@ .meta name="Rares in quests" .meta description="Disables logic that\nprevents items\nabove 8 stars and\nrares from dropping\nin quests." +.versions 2OEF 2OJ5 2OJF 2OPF + entry_ptr: reloc0: .offsetof start @@ -8,12 +10,12 @@ start: .include WriteCodeBlocksDC .align 4 - .data 0x8C21A28C + .data .data 2 nop .align 4 - .data 0x8C21A300 + .data .data 2 nop diff --git a/system/client-functions/ReticleColors/DCReticleColors.3OE0.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3OE0.patch.s deleted file mode 100644 index 0ba098ed..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.3OE0.patch.s +++ /dev/null @@ -1,56 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802ABDB8 (4 bytes) - .data 0x802ABDB8 # address - .data 0x00000004 # size - .data 0x3C8000FF # 802ABDB8 => lis r4, 0x00FF - # region @ 802ABDCC (4 bytes) - .data 0x802ABDCC # address - .data 0x00000004 # size - .data 0x388000FF # 802ABDCC => li r4, 0x00FF - # region @ 802ABDE0 (4 bytes) - .data 0x802ABDE0 # address - .data 0x00000004 # size - .data 0x3884FF00 # 802ABDE0 => subi r4, r4, 0x0100 - # region @ 804A26C8 (8 bytes) - .data 0x804A26C8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A26C8 => lis r28, 0x0000 - .data 0x00000000 # 804A26CC => .invalid - # region @ 804A26D8 (8 bytes) - .data 0x804A26D8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A26D8 => lis r28, 0x0000 - .data 0x00000000 # 804A26DC => .invalid - # region @ 804A26E8 (12 bytes) - .data 0x804A26E8 # address - .data 0x0000000C # size - .data 0x3F800000 # 804A26E8 => lis r28, 0x0000 - .data 0x3F800000 # 804A26EC => lis r28, 0x0000 - .data 0x00000000 # 804A26F0 => .invalid - # region @ 804A26F8 (4 bytes) - .data 0x804A26F8 # address - .data 0x00000004 # size - .data 0x00000000 # 804A26F8 => .invalid - # region @ 804A2700 (4 bytes) - .data 0x804A2700 # address - .data 0x00000004 # size - .data 0x3F800000 # 804A2700 => lis r28, 0x0000 - # region @ 804A2708 (12 bytes) - .data 0x804A2708 # address - .data 0x0000000C # size - .data 0x3ECCCCCD # 804A2708 => subis r22, r12, 0x3333 - .data 0x3DCCCCCD # 804A270C => subis r14, r12, 0x3333 - .data 0x3DCCCCCD # 804A2710 => subis r14, r12, 0x3333 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/DCReticleColors.3OE1.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3OE1.patch.s deleted file mode 100644 index 9e59311b..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.3OE1.patch.s +++ /dev/null @@ -1,56 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802ABDFC (4 bytes) - .data 0x802ABDFC # address - .data 0x00000004 # size - .data 0x3C8000FF # 802ABDFC => lis r4, 0x00FF - # region @ 802ABE10 (4 bytes) - .data 0x802ABE10 # address - .data 0x00000004 # size - .data 0x388000FF # 802ABE10 => li r4, 0x00FF - # region @ 802ABE24 (4 bytes) - .data 0x802ABE24 # address - .data 0x00000004 # size - .data 0x3884FF00 # 802ABE24 => subi r4, r4, 0x0100 - # region @ 804A2BA8 (8 bytes) - .data 0x804A2BA8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A2BA8 => lis r28, 0x0000 - .data 0x00000000 # 804A2BAC => .invalid - # region @ 804A2BB8 (8 bytes) - .data 0x804A2BB8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A2BB8 => lis r28, 0x0000 - .data 0x00000000 # 804A2BBC => .invalid - # region @ 804A2BC8 (12 bytes) - .data 0x804A2BC8 # address - .data 0x0000000C # size - .data 0x3F800000 # 804A2BC8 => lis r28, 0x0000 - .data 0x3F800000 # 804A2BCC => lis r28, 0x0000 - .data 0x00000000 # 804A2BD0 => .invalid - # region @ 804A2BD8 (4 bytes) - .data 0x804A2BD8 # address - .data 0x00000004 # size - .data 0x00000000 # 804A2BD8 => .invalid - # region @ 804A2BE0 (4 bytes) - .data 0x804A2BE0 # address - .data 0x00000004 # size - .data 0x3F800000 # 804A2BE0 => lis r28, 0x0000 - # region @ 804A2BE8 (12 bytes) - .data 0x804A2BE8 # address - .data 0x0000000C # size - .data 0x3ECCCCCD # 804A2BE8 => subis r22, r12, 0x3333 - .data 0x3DCCCCCD # 804A2BEC => subis r14, r12, 0x3333 - .data 0x3DCCCCCD # 804A2BF0 => subis r14, r12, 0x3333 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/DCReticleColors.3OE2.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3OE2.patch.s deleted file mode 100644 index d6a5c272..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.3OE2.patch.s +++ /dev/null @@ -1,56 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AD338 (4 bytes) - .data 0x802AD338 # address - .data 0x00000004 # size - .data 0x3C8000FF # 802AD338 => lis r4, 0x00FF - # region @ 802AD34C (4 bytes) - .data 0x802AD34C # address - .data 0x00000004 # size - .data 0x388000FF # 802AD34C => li r4, 0x00FF - # region @ 802AD360 (4 bytes) - .data 0x802AD360 # address - .data 0x00000004 # size - .data 0x3884FF00 # 802AD360 => subi r4, r4, 0x0100 - # region @ 804A7168 (8 bytes) - .data 0x804A7168 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A7168 => lis r28, 0x0000 - .data 0x00000000 # 804A716C => .invalid - # region @ 804A7178 (8 bytes) - .data 0x804A7178 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A7178 => lis r28, 0x0000 - .data 0x00000000 # 804A717C => .invalid - # region @ 804A7188 (12 bytes) - .data 0x804A7188 # address - .data 0x0000000C # size - .data 0x3F800000 # 804A7188 => lis r28, 0x0000 - .data 0x3F800000 # 804A718C => lis r28, 0x0000 - .data 0x00000000 # 804A7190 => .invalid - # region @ 804A7198 (4 bytes) - .data 0x804A7198 # address - .data 0x00000004 # size - .data 0x00000000 # 804A7198 => .invalid - # region @ 804A71A0 (4 bytes) - .data 0x804A71A0 # address - .data 0x00000004 # size - .data 0x3F800000 # 804A71A0 => lis r28, 0x0000 - # region @ 804A71A8 (12 bytes) - .data 0x804A71A8 # address - .data 0x0000000C # size - .data 0x3ECCCCCD # 804A71A8 => subis r22, r12, 0x3333 - .data 0x3DCCCCCD # 804A71AC => subis r14, r12, 0x3333 - .data 0x3DCCCCCD # 804A71B0 => subis r14, r12, 0x3333 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/DCReticleColors.3OJ2.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3OJ2.patch.s deleted file mode 100644 index 34d25ef4..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.3OJ2.patch.s +++ /dev/null @@ -1,56 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AB3FC (4 bytes) - .data 0x802AB3FC # address - .data 0x00000004 # size - .data 0x3C8000FF # 802AB3FC => lis r4, 0x00FF - # region @ 802AB410 (4 bytes) - .data 0x802AB410 # address - .data 0x00000004 # size - .data 0x388000FF # 802AB410 => li r4, 0x00FF - # region @ 802AB424 (4 bytes) - .data 0x802AB424 # address - .data 0x00000004 # size - .data 0x3884FF00 # 802AB424 => subi r4, r4, 0x0100 - # region @ 804A1F18 (8 bytes) - .data 0x804A1F18 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A1F18 => lis r28, 0x0000 - .data 0x00000000 # 804A1F1C => .invalid - # region @ 804A1F28 (8 bytes) - .data 0x804A1F28 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A1F28 => lis r28, 0x0000 - .data 0x00000000 # 804A1F2C => .invalid - # region @ 804A1F38 (12 bytes) - .data 0x804A1F38 # address - .data 0x0000000C # size - .data 0x3F800000 # 804A1F38 => lis r28, 0x0000 - .data 0x3F800000 # 804A1F3C => lis r28, 0x0000 - .data 0x00000000 # 804A1F40 => .invalid - # region @ 804A1F48 (4 bytes) - .data 0x804A1F48 # address - .data 0x00000004 # size - .data 0x00000000 # 804A1F48 => .invalid - # region @ 804A1F50 (4 bytes) - .data 0x804A1F50 # address - .data 0x00000004 # size - .data 0x3F800000 # 804A1F50 => lis r28, 0x0000 - # region @ 804A1F58 (12 bytes) - .data 0x804A1F58 # address - .data 0x0000000C # size - .data 0x3ECCCCCD # 804A1F58 => subis r22, r12, 0x3333 - .data 0x3DCCCCCD # 804A1F5C => subis r14, r12, 0x3333 - .data 0x3DCCCCCD # 804A1F60 => subis r14, r12, 0x3333 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/DCReticleColors.3OJ3.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3OJ3.patch.s deleted file mode 100644 index 7f6d214f..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.3OJ3.patch.s +++ /dev/null @@ -1,56 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AC2A4 (4 bytes) - .data 0x802AC2A4 # address - .data 0x00000004 # size - .data 0x3C8000FF # 802AC2A4 => lis r4, 0x00FF - # region @ 802AC2B8 (4 bytes) - .data 0x802AC2B8 # address - .data 0x00000004 # size - .data 0x388000FF # 802AC2B8 => li r4, 0x00FF - # region @ 802AC2CC (4 bytes) - .data 0x802AC2CC # address - .data 0x00000004 # size - .data 0x3884FF00 # 802AC2CC => subi r4, r4, 0x0100 - # region @ 804A5638 (8 bytes) - .data 0x804A5638 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A5638 => lis r28, 0x0000 - .data 0x00000000 # 804A563C => .invalid - # region @ 804A5648 (8 bytes) - .data 0x804A5648 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A5648 => lis r28, 0x0000 - .data 0x00000000 # 804A564C => .invalid - # region @ 804A5658 (12 bytes) - .data 0x804A5658 # address - .data 0x0000000C # size - .data 0x3F800000 # 804A5658 => lis r28, 0x0000 - .data 0x3F800000 # 804A565C => lis r28, 0x0000 - .data 0x00000000 # 804A5660 => .invalid - # region @ 804A5668 (4 bytes) - .data 0x804A5668 # address - .data 0x00000004 # size - .data 0x00000000 # 804A5668 => .invalid - # region @ 804A5670 (4 bytes) - .data 0x804A5670 # address - .data 0x00000004 # size - .data 0x3F800000 # 804A5670 => lis r28, 0x0000 - # region @ 804A5678 (12 bytes) - .data 0x804A5678 # address - .data 0x0000000C # size - .data 0x3ECCCCCD # 804A5678 => subis r22, r12, 0x3333 - .data 0x3DCCCCCD # 804A567C => subis r14, r12, 0x3333 - .data 0x3DCCCCCD # 804A5680 => subis r14, r12, 0x3333 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/DCReticleColors.3OJ4.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3OJ4.patch.s deleted file mode 100644 index 865a6dc1..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.3OJ4.patch.s +++ /dev/null @@ -1,56 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AD3D0 (4 bytes) - .data 0x802AD3D0 # address - .data 0x00000004 # size - .data 0x3C8000FF # 802AD3D0 => lis r4, 0x00FF - # region @ 802AD3E4 (4 bytes) - .data 0x802AD3E4 # address - .data 0x00000004 # size - .data 0x388000FF # 802AD3E4 => li r4, 0x00FF - # region @ 802AD3F8 (4 bytes) - .data 0x802AD3F8 # address - .data 0x00000004 # size - .data 0x3884FF00 # 802AD3F8 => subi r4, r4, 0x0100 - # region @ 804A7AD8 (8 bytes) - .data 0x804A7AD8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A7AD8 => lis r28, 0x0000 - .data 0x00000000 # 804A7ADC => .invalid - # region @ 804A7AE8 (8 bytes) - .data 0x804A7AE8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A7AE8 => lis r28, 0x0000 - .data 0x00000000 # 804A7AEC => .invalid - # region @ 804A7AF8 (12 bytes) - .data 0x804A7AF8 # address - .data 0x0000000C # size - .data 0x3F800000 # 804A7AF8 => lis r28, 0x0000 - .data 0x3F800000 # 804A7AFC => lis r28, 0x0000 - .data 0x00000000 # 804A7B00 => .invalid - # region @ 804A7B08 (4 bytes) - .data 0x804A7B08 # address - .data 0x00000004 # size - .data 0x00000000 # 804A7B08 => .invalid - # region @ 804A7B10 (4 bytes) - .data 0x804A7B10 # address - .data 0x00000004 # size - .data 0x3F800000 # 804A7B10 => lis r28, 0x0000 - # region @ 804A7B18 (12 bytes) - .data 0x804A7B18 # address - .data 0x0000000C # size - .data 0x3ECCCCCD # 804A7B18 => subis r22, r12, 0x3333 - .data 0x3DCCCCCD # 804A7B1C => subis r14, r12, 0x3333 - .data 0x3DCCCCCD # 804A7B20 => subis r14, r12, 0x3333 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/DCReticleColors.3OJ5.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3OJ5.patch.s deleted file mode 100644 index 3f8e674e..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.3OJ5.patch.s +++ /dev/null @@ -1,56 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AD184 (4 bytes) - .data 0x802AD184 # address - .data 0x00000004 # size - .data 0x3C8000FF # 802AD184 => lis r4, 0x00FF - # region @ 802AD198 (4 bytes) - .data 0x802AD198 # address - .data 0x00000004 # size - .data 0x388000FF # 802AD198 => li r4, 0x00FF - # region @ 802AD1AC (4 bytes) - .data 0x802AD1AC # address - .data 0x00000004 # size - .data 0x3884FF00 # 802AD1AC => subi r4, r4, 0x0100 - # region @ 804A7898 (8 bytes) - .data 0x804A7898 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A7898 => lis r28, 0x0000 - .data 0x00000000 # 804A789C => .invalid - # region @ 804A78A8 (8 bytes) - .data 0x804A78A8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A78A8 => lis r28, 0x0000 - .data 0x00000000 # 804A78AC => .invalid - # region @ 804A78B8 (12 bytes) - .data 0x804A78B8 # address - .data 0x0000000C # size - .data 0x3F800000 # 804A78B8 => lis r28, 0x0000 - .data 0x3F800000 # 804A78BC => lis r28, 0x0000 - .data 0x00000000 # 804A78C0 => .invalid - # region @ 804A78C8 (4 bytes) - .data 0x804A78C8 # address - .data 0x00000004 # size - .data 0x00000000 # 804A78C8 => .invalid - # region @ 804A78D0 (4 bytes) - .data 0x804A78D0 # address - .data 0x00000004 # size - .data 0x3F800000 # 804A78D0 => lis r28, 0x0000 - # region @ 804A78D8 (12 bytes) - .data 0x804A78D8 # address - .data 0x0000000C # size - .data 0x3ECCCCCD # 804A78D8 => subis r22, r12, 0x3333 - .data 0x3DCCCCCD # 804A78DC => subis r14, r12, 0x3333 - .data 0x3DCCCCCD # 804A78E0 => subis r14, r12, 0x3333 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/DCReticleColors.3OP0.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3OP0.patch.s deleted file mode 100644 index 86465cfc..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.3OP0.patch.s +++ /dev/null @@ -1,56 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802ACACC (4 bytes) - .data 0x802ACACC # address - .data 0x00000004 # size - .data 0x3C8000FF # 802ACACC => lis r4, 0x00FF - # region @ 802ACAE0 (4 bytes) - .data 0x802ACAE0 # address - .data 0x00000004 # size - .data 0x388000FF # 802ACAE0 => li r4, 0x00FF - # region @ 802ACAF4 (4 bytes) - .data 0x802ACAF4 # address - .data 0x00000004 # size - .data 0x3884FF00 # 802ACAF4 => subi r4, r4, 0x0100 - # region @ 804A75E8 (8 bytes) - .data 0x804A75E8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A75E8 => lis r28, 0x0000 - .data 0x00000000 # 804A75EC => .invalid - # region @ 804A75F8 (8 bytes) - .data 0x804A75F8 # address - .data 0x00000008 # size - .data 0x3F800000 # 804A75F8 => lis r28, 0x0000 - .data 0x00000000 # 804A75FC => .invalid - # region @ 804A7608 (12 bytes) - .data 0x804A7608 # address - .data 0x0000000C # size - .data 0x3F800000 # 804A7608 => lis r28, 0x0000 - .data 0x3F800000 # 804A760C => lis r28, 0x0000 - .data 0x00000000 # 804A7610 => .invalid - # region @ 804A7618 (4 bytes) - .data 0x804A7618 # address - .data 0x00000004 # size - .data 0x00000000 # 804A7618 => .invalid - # region @ 804A7620 (4 bytes) - .data 0x804A7620 # address - .data 0x00000004 # size - .data 0x3F800000 # 804A7620 => lis r28, 0x0000 - # region @ 804A7628 (12 bytes) - .data 0x804A7628 # address - .data 0x0000000C # size - .data 0x3ECCCCCD # 804A7628 => subis r22, r12, 0x3333 - .data 0x3DCCCCCD # 804A762C => subis r14, r12, 0x3333 - .data 0x3DCCCCCD # 804A7630 => subis r14, r12, 0x3333 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/DCReticleColors.3___.patch.s b/system/client-functions/ReticleColors/DCReticleColors.3___.patch.s new file mode 100644 index 00000000..3992f43f --- /dev/null +++ b/system/client-functions/ReticleColors/DCReticleColors.3___.patch.s @@ -0,0 +1,58 @@ +.meta name="DC targets" +.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data + .data 0x00000004 + .data 0x3C8000FF + + .data + .data 0x00000004 + .data 0x388000FF + + .data + .data 0x00000004 + .data 0x3884FF00 + + .data + .data 0x00000008 + .data 0x3F800000 + .data 0x00000000 + + .data + .data 0x00000008 + .data 0x3F800000 + .data 0x00000000 + + .data + .data 0x0000000C + .data 0x3F800000 + .data 0x3F800000 + .data 0x00000000 + + .data + .data 0x00000004 + .data 0x00000000 + + .data + .data 0x00000004 + .data 0x3F800000 + + .data + .data 0x0000000C + .data 0x3ECCCCCD + .data 0x3DCCCCCD + .data 0x3DCCCCCD + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/ReticleColors/DCReticleColors.4OEU.patch.s b/system/client-functions/ReticleColors/DCReticleColors.4OEU.patch.s deleted file mode 100644 index 1fcf9db2..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.4OEU.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BE29 - .data 0x00000004 - .data 0x00FF0000 - - .data 0x0025BE37 - .data 0x00000004 - .data 0x000000FF - - .data 0x0025BE45 - .data 0x00000004 - .data 0x00FFFF00 - - .data 0x00542040 - .data 0x00000060 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3ECCCCCD - .data 0x3DCCCCCD - .data 0x3DCCCCCD - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/DCReticleColors.4OJB.patch.s b/system/client-functions/ReticleColors/DCReticleColors.4OJB.patch.s deleted file mode 100644 index 3f4333e0..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.4OJB.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025B889 - .data 0x00000004 - .data 0x00FF0000 - - .data 0x0025B897 - .data 0x00000004 - .data 0x000000FF - - .data 0x0025B8A5 - .data 0x00000004 - .data 0x00FFFF00 - - .data 0x0053D788 - .data 0x00000060 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3ECCCCCD - .data 0x3DCCCCCD - .data 0x3DCCCCCD - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/DCReticleColors.4OJD.patch.s b/system/client-functions/ReticleColors/DCReticleColors.4OJD.patch.s deleted file mode 100644 index fdfc64a1..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.4OJD.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BC39 - .data 0x00000004 - .data 0x00FF0000 - - .data 0x0025BC47 - .data 0x00000004 - .data 0x000000FF - - .data 0x0025BC55 - .data 0x00000004 - .data 0x00FFFF00 - - .data 0x0053DE00 - .data 0x00000060 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3ECCCCCD - .data 0x3DCCCCCD - .data 0x3DCCCCCD - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/DCReticleColors.4OJU.patch.s b/system/client-functions/ReticleColors/DCReticleColors.4OJU.patch.s deleted file mode 100644 index 209424e7..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.4OJU.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BFB9 - .data 0x00000004 - .data 0x00FF0000 - - .data 0x0025BFC7 - .data 0x00000004 - .data 0x000000FF - - .data 0x0025BFD5 - .data 0x00000004 - .data 0x00FFFF00 - - .data 0x00545320 - .data 0x00000060 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3ECCCCCD - .data 0x3DCCCCCD - .data 0x3DCCCCCD - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/DCReticleColors.4OPD.patch.s b/system/client-functions/ReticleColors/DCReticleColors.4OPD.patch.s deleted file mode 100644 index 3a53c2b4..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.4OPD.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BD29 - .data 0x00000004 - .data 0x00FF0000 - - .data 0x0025BD37 - .data 0x00000004 - .data 0x000000FF - - .data 0x0025BD45 - .data 0x00000004 - .data 0x00FFFF00 - - .data 0x005427A0 - .data 0x00000060 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3ECCCCCD - .data 0x3DCCCCCD - .data 0x3DCCCCCD - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/DCReticleColors.4OPU.patch.s b/system/client-functions/ReticleColors/DCReticleColors.4OPU.patch.s deleted file mode 100644 index 7ef5991c..00000000 --- a/system/client-functions/ReticleColors/DCReticleColors.4OPU.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="DC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nDreamcast" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BE59 - .data 0x00000004 - .data 0x00FF0000 - - .data 0x0025BE67 - .data 0x00000004 - .data 0x000000FF - - .data 0x0025BE75 - .data 0x00000004 - .data 0x00FFFF00 - - .data 0x00542B40 - .data 0x00000060 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F800000 - .data 0x3ECCCCCD - .data 0x3DCCCCCD - .data 0x3DCCCCCD - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/DCReticleColors.4OED.patch.s b/system/client-functions/ReticleColors/DCReticleColors.4___.patch.s similarity index 72% rename from system/client-functions/ReticleColors/DCReticleColors.4OED.patch.s rename to system/client-functions/ReticleColors/DCReticleColors.4___.patch.s index 4fca53e3..edd56237 100644 --- a/system/client-functions/ReticleColors/DCReticleColors.4OED.patch.s +++ b/system/client-functions/ReticleColors/DCReticleColors.4___.patch.s @@ -4,25 +4,27 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2049 +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksXB - .data 0x0025BD09 + .data .data 0x00000004 .data 0x00FF0000 - .data 0x0025BD17 + .data .data 0x00000004 .data 0x000000FF - .data 0x0025BD25 + .data .data 0x00000004 .data 0x00FFFF00 - .data 0x005427A0 + .data .data 0x00000060 .data 0x3F800000 .data 0x3F800000 diff --git a/system/client-functions/ReticleColors/GCReticleColors.4OEU.patch.s b/system/client-functions/ReticleColors/GCReticleColors.4OEU.patch.s deleted file mode 100644 index acf7d6bc..00000000 --- a/system/client-functions/ReticleColors/GCReticleColors.4OEU.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="GC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nGameCube" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BE29 - .data 0x00000004 - .data 0x0000AA0E - - .data 0x0025BE37 - .data 0x00000004 - .data 0x00FF2417 - - .data 0x0025BE45 - .data 0x00000004 - .data 0x00FFFFFF - - .data 0x00542040 - .data 0x00000060 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3EC7AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/GCReticleColors.4OJB.patch.s b/system/client-functions/ReticleColors/GCReticleColors.4OJB.patch.s deleted file mode 100644 index 428dd004..00000000 --- a/system/client-functions/ReticleColors/GCReticleColors.4OJB.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="GC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nGameCube" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025B889 - .data 0x00000004 - .data 0x0000AA0E - - .data 0x0025B897 - .data 0x00000004 - .data 0x00FF2417 - - .data 0x0025B8A5 - .data 0x00000004 - .data 0x00FFFFFF - - .data 0x0053D788 - .data 0x00000060 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3EC7AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/GCReticleColors.4OJD.patch.s b/system/client-functions/ReticleColors/GCReticleColors.4OJD.patch.s deleted file mode 100644 index ac2759b1..00000000 --- a/system/client-functions/ReticleColors/GCReticleColors.4OJD.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="GC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nGameCube" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BC39 - .data 0x00000004 - .data 0x0000AA0E - - .data 0x0025BC47 - .data 0x00000004 - .data 0x00FF2417 - - .data 0x0025BC55 - .data 0x00000004 - .data 0x00FFFFFF - - .data 0x0053DE00 - .data 0x00000060 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3EC7AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/GCReticleColors.4OJU.patch.s b/system/client-functions/ReticleColors/GCReticleColors.4OJU.patch.s deleted file mode 100644 index 2252bd51..00000000 --- a/system/client-functions/ReticleColors/GCReticleColors.4OJU.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="GC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nGameCube" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BFB9 - .data 0x00000004 - .data 0x0000AA0E - - .data 0x0025BFC7 - .data 0x00000004 - .data 0x00FF2417 - - .data 0x0025BFD5 - .data 0x00000004 - .data 0x00FFFFFF - - .data 0x00545320 - .data 0x00000060 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3EC7AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/GCReticleColors.4OPD.patch.s b/system/client-functions/ReticleColors/GCReticleColors.4OPD.patch.s deleted file mode 100644 index 31e2f530..00000000 --- a/system/client-functions/ReticleColors/GCReticleColors.4OPD.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="GC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nGameCube" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BD29 - .data 0x00000004 - .data 0x0000AA0E - - .data 0x0025BD37 - .data 0x00000004 - .data 0x00FF2417 - - .data 0x0025BD45 - .data 0x00000004 - .data 0x00FFFFFF - - .data 0x005427A0 - .data 0x00000060 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3EC7AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/GCReticleColors.4OPU.patch.s b/system/client-functions/ReticleColors/GCReticleColors.4OPU.patch.s deleted file mode 100644 index 836874d9..00000000 --- a/system/client-functions/ReticleColors/GCReticleColors.4OPU.patch.s +++ /dev/null @@ -1,53 +0,0 @@ -.meta name="GC targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nGameCube" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksXB - - .data 0x0025BE59 - .data 0x00000004 - .data 0x0000AA0E - - .data 0x0025BE67 - .data 0x00000004 - .data 0x00FF2417 - - .data 0x0025BE75 - .data 0x00000004 - .data 0x00FFFFFF - - .data 0x00542B40 - .data 0x00000060 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3F47AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F333333 - .data 0x3F800000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x3EC7AE14 - .data 0x00000000 - .data 0x3F800000 - .data 0x00000000 - .data 0x00000000 - .data 0x00000000 - - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/ReticleColors/GCReticleColors.4OED.patch.s b/system/client-functions/ReticleColors/GCReticleColors.4___.patch.s similarity index 72% rename from system/client-functions/ReticleColors/GCReticleColors.4OED.patch.s rename to system/client-functions/ReticleColors/GCReticleColors.4___.patch.s index 43d66a2b..15b5ce15 100644 --- a/system/client-functions/ReticleColors/GCReticleColors.4OED.patch.s +++ b/system/client-functions/ReticleColors/GCReticleColors.4___.patch.s @@ -4,25 +4,27 @@ # https://www.gc-forever.com/forums/viewtopic.php?t=2050 # https://www.gc-forever.com/forums/viewtopic.php?t=2049 +.versions 4OED 4OEU 4OJB 4OJD 4OJU 4OPD 4OPU + entry_ptr: reloc0: .offsetof start start: .include WriteCodeBlocksXB - .data 0x0025BD09 + .data .data 0x00000004 .data 0x0000AA0E - .data 0x0025BD17 + .data .data 0x00000004 .data 0x00FF2417 - .data 0x0025BD25 + .data .data 0x00000004 .data 0x00FFFFFF - .data 0x005427A0 + .data .data 0x00000060 .data 0x3F800000 .data 0x00000000 diff --git a/system/client-functions/ReticleColors/XBReticleColors.3OE0.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3OE0.patch.s deleted file mode 100644 index 9f46feb9..00000000 --- a/system/client-functions/ReticleColors/XBReticleColors.3OE0.patch.s +++ /dev/null @@ -1,24 +0,0 @@ -.meta name="Xbox/BB targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802ABDE0 (4 bytes) - .data 0x802ABDE0 # address - .data 0x00000004 # size - .data 0x388000FF # 802ABDE0 => li r4, 0x00FF - # region @ 804A26E8 (12 bytes) - .data 0x804A26E8 # address - .data 0x0000000C # size - .data 0x00000000 # 804A26E8 => .invalid - .data 0x00000000 # 804A26EC => .invalid - .data 0x3F800000 # 804A26F0 => lis r28, 0x0000 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/XBReticleColors.3OE1.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3OE1.patch.s deleted file mode 100644 index 633cd8e6..00000000 --- a/system/client-functions/ReticleColors/XBReticleColors.3OE1.patch.s +++ /dev/null @@ -1,24 +0,0 @@ -.meta name="Xbox/BB targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802ABE24 (4 bytes) - .data 0x802ABE24 # address - .data 0x00000004 # size - .data 0x388000FF # 802ABE24 => li r4, 0x00FF - # region @ 804A2BC8 (12 bytes) - .data 0x804A2BC8 # address - .data 0x0000000C # size - .data 0x00000000 # 804A2BC8 => .invalid - .data 0x00000000 # 804A2BCC => .invalid - .data 0x3F800000 # 804A2BD0 => lis r28, 0x0000 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/XBReticleColors.3OE2.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3OE2.patch.s deleted file mode 100644 index dc19db9b..00000000 --- a/system/client-functions/ReticleColors/XBReticleColors.3OE2.patch.s +++ /dev/null @@ -1,24 +0,0 @@ -.meta name="Xbox/BB targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AD360 (4 bytes) - .data 0x802AD360 # address - .data 0x00000004 # size - .data 0x388000FF # 802AD360 => li r4, 0x00FF - # region @ 804A7188 (12 bytes) - .data 0x804A7188 # address - .data 0x0000000C # size - .data 0x00000000 # 804A7188 => .invalid - .data 0x00000000 # 804A718C => .invalid - .data 0x3F800000 # 804A7190 => lis r28, 0x0000 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/XBReticleColors.3OJ2.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3OJ2.patch.s deleted file mode 100644 index 148c5a32..00000000 --- a/system/client-functions/ReticleColors/XBReticleColors.3OJ2.patch.s +++ /dev/null @@ -1,24 +0,0 @@ -.meta name="Xbox/BB targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AB424 (4 bytes) - .data 0x802AB424 # address - .data 0x00000004 # size - .data 0x388000FF # 802AB424 => li r4, 0x00FF - # region @ 804A1F38 (12 bytes) - .data 0x804A1F38 # address - .data 0x0000000C # size - .data 0x00000000 # 804A1F38 => .invalid - .data 0x00000000 # 804A1F3C => .invalid - .data 0x3F800000 # 804A1F40 => lis r28, 0x0000 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/XBReticleColors.3OJ3.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3OJ3.patch.s deleted file mode 100644 index 3b0d5cf2..00000000 --- a/system/client-functions/ReticleColors/XBReticleColors.3OJ3.patch.s +++ /dev/null @@ -1,24 +0,0 @@ -.meta name="Xbox/BB targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AC2CC (4 bytes) - .data 0x802AC2CC # address - .data 0x00000004 # size - .data 0x388000FF # 802AC2CC => li r4, 0x00FF - # region @ 804A5658 (12 bytes) - .data 0x804A5658 # address - .data 0x0000000C # size - .data 0x00000000 # 804A5658 => .invalid - .data 0x00000000 # 804A565C => .invalid - .data 0x3F800000 # 804A5660 => lis r28, 0x0000 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/XBReticleColors.3OJ4.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3OJ4.patch.s deleted file mode 100644 index 83ea730f..00000000 --- a/system/client-functions/ReticleColors/XBReticleColors.3OJ4.patch.s +++ /dev/null @@ -1,24 +0,0 @@ -.meta name="Xbox/BB targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AD3F8 (4 bytes) - .data 0x802AD3F8 # address - .data 0x00000004 # size - .data 0x388000FF # 802AD3F8 => li r4, 0x00FF - # region @ 804A7AF8 (12 bytes) - .data 0x804A7AF8 # address - .data 0x0000000C # size - .data 0x00000000 # 804A7AF8 => .invalid - .data 0x00000000 # 804A7AFC => .invalid - .data 0x3F800000 # 804A7B00 => lis r28, 0x0000 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/XBReticleColors.3OJ5.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3OJ5.patch.s deleted file mode 100644 index 86659985..00000000 --- a/system/client-functions/ReticleColors/XBReticleColors.3OJ5.patch.s +++ /dev/null @@ -1,24 +0,0 @@ -.meta name="Xbox/BB targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802AD1AC (4 bytes) - .data 0x802AD1AC # address - .data 0x00000004 # size - .data 0x388000FF # 802AD1AC => li r4, 0x00FF - # region @ 804A78B8 (12 bytes) - .data 0x804A78B8 # address - .data 0x0000000C # size - .data 0x00000000 # 804A78B8 => .invalid - .data 0x00000000 # 804A78BC => .invalid - .data 0x3F800000 # 804A78C0 => lis r28, 0x0000 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/XBReticleColors.3OP0.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3OP0.patch.s deleted file mode 100644 index aa1655ac..00000000 --- a/system/client-functions/ReticleColors/XBReticleColors.3OP0.patch.s +++ /dev/null @@ -1,24 +0,0 @@ -.meta name="Xbox/BB targets" -.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" -# Original code by Ralf @ GC-Forever and Aleron Ives -# https://www.gc-forever.com/forums/viewtopic.php?t=2050 -# https://www.gc-forever.com/forums/viewtopic.php?t=2049 - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksGC - # region @ 802ACAF4 (4 bytes) - .data 0x802ACAF4 # address - .data 0x00000004 # size - .data 0x388000FF # 802ACAF4 => li r4, 0x00FF - # region @ 804A7608 (12 bytes) - .data 0x804A7608 # address - .data 0x0000000C # size - .data 0x00000000 # 804A7608 => .invalid - .data 0x00000000 # 804A760C => .invalid - .data 0x3F800000 # 804A7610 => lis r28, 0x0000 - # end sentinel - .data 0x00000000 # address - .data 0x00000000 # size diff --git a/system/client-functions/ReticleColors/XBReticleColors.3___.patch.s b/system/client-functions/ReticleColors/XBReticleColors.3___.patch.s new file mode 100644 index 00000000..4b7297de --- /dev/null +++ b/system/client-functions/ReticleColors/XBReticleColors.3___.patch.s @@ -0,0 +1,26 @@ +.meta name="Xbox/BB targets" +.meta description="Changes the target\nreticle colors to\nthose used on the\nXbox and Blue Burst" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +.versions 3OE0 3OE1 3OE2 3OJ2 3OJ3 3OJ4 3OJ5 3OP0 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data + .data 0x00000004 + .data 0x388000FF + + .data + .data 0x0000000C + .data 0x00000000 + .data 0x00000000 + .data 0x3F800000 + + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/System/CallNativeFunctionDC.sh4.s b/system/client-functions/System/CallNativeFunctionDC.sh4.s index a4c7a6ef..22ac2fc2 100644 --- a/system/client-functions/System/CallNativeFunctionDC.sh4.s +++ b/system/client-functions/System/CallNativeFunctionDC.sh4.s @@ -11,7 +11,7 @@ start: mov.l r5, [arg1] mov.l r6, [arg2] mov.l r7, [arg3] - calls r0 + calls [r0] nop lds.l pr, [r15]+ rets @@ -19,12 +19,12 @@ start: .align 4 call_addr: - .zero + .data 0 arg0: - .zero + .data 0 arg1: - .zero + .data 0 arg2: - .zero + .data 0 arg3: - .zero + .data 0 diff --git a/system/client-functions/System/GetEnemyEntity-59NL.x86.inc.s b/system/client-functions/System/GetEnemyEntity-59NL.x86.inc.s new file mode 100644 index 00000000..aefa712f --- /dev/null +++ b/system/client-functions/System/GetEnemyEntity-59NL.x86.inc.s @@ -0,0 +1,44 @@ +# (uint16_t entity_id @ eax) -> TObjectV00b441c0* @ eax +# Preserves all registers except eax +get_enemy_entity: + push esi + push edi + push edx + push ecx + xor edx, edx + xchg edx, eax + cmp edx, 0x1000 + jl done + cmp edx, 0x4000 + jge done + + mov esi, [0x00AAE168] # bs_low = next_player_entity_index + mov edi, [0x00AAE164] + lea edi, [edi + esi - 1] # bs_high = next_player_entity_index + next_enemy_entity_index - 1 +bs_again: + cmp esi, edi + jge bs_done + lea ecx, [esi + edi] + shr ecx, 1 + mov eax, [ecx * 4 + 0x00AAD720] # all_entities[ecx] + cmp [eax + 0x1C], dx + jge bs_not_less + lea esi, [ecx + 1] + jmp bs_again +bs_not_less: + mov edi, ecx + jmp bs_again +bs_done: + + mov eax, [esi * 4 + 0x00AAD720] # all_entities[bs_low] + test eax, eax + je done + xor ecx, ecx + cmp [eax + 0x1C], dx + cmovne eax, ecx + +done: + pop ecx + pop edx + pop edi + pop esi diff --git a/system/client-functions/System/ReadMemoryWordGC.ppc.s b/system/client-functions/System/ReadMemoryWordGC.ppc.s index 44063cca..e456aed3 100644 --- a/system/client-functions/System/ReadMemoryWordGC.ppc.s +++ b/system/client-functions/System/ReadMemoryWordGC.ppc.s @@ -1,8 +1,6 @@ # This function is required for loading DOLs. If it's not present, newserv can't # serve DOL files to GameCube clients. -.meta index=E0 - entry_ptr: reloc0: .offsetof start diff --git a/system/client-functions/System/ReturnTokenX86.x86.s b/system/client-functions/System/ReturnTokenX86.x86.s index 5f40ddf7..c424bc53 100644 --- a/system/client-functions/System/ReturnTokenX86.x86.s +++ b/system/client-functions/System/ReturnTokenX86.x86.s @@ -1,5 +1,3 @@ -.meta index=E5 - entry_ptr: reloc0: .offsetof start diff --git a/system/client-functions/System/RunDOL.ppc.s b/system/client-functions/System/RunDOL.ppc.s index bc16717c..82445bda 100644 --- a/system/client-functions/System/RunDOL.ppc.s +++ b/system/client-functions/System/RunDOL.ppc.s @@ -1,8 +1,6 @@ # This function is required for loading DOLs. If it's not present, newserv can't # serve DOL files to GameCube clients. -.meta index=E2 - entry_ptr: reloc0: .offsetof start diff --git a/system/client-functions/System/WriteAddressOfCode-59NL.x86.inc.s b/system/client-functions/System/WriteAddressOfCode-59NL.x86.inc.s new file mode 100644 index 00000000..82ae6909 --- /dev/null +++ b/system/client-functions/System/WriteAddressOfCode-59NL.x86.inc.s @@ -0,0 +1,42 @@ +# This file defines the following function: +# write_address_of_code( +# const void* patch_code, +# size_t patch_code_size, +# void** ptr_addr); +# This function allocates memory for patch_code, copies patch_code to that +# memory, then writes the address of the allocated code at the specified +# pointer. The allocated memory is never freed. +# This function pops its arguments off the stack before returning. + +write_call_to_code: + # [esp + 0x04] = code ptr + # [esp + 0x08] = code size + # [esp + 0x0C] = ptr addr + + # Allocate memory for the copied code + mov ecx, [0x00AAB404] + push dword [esp + 0x08] + mov eax, 0x007A8A38 + call eax # malloc7 + test eax, eax + je done + + # Copy the code to the newly-allocated memory + # eax = dest pointer (from malloc7 call above) + mov edx, [esp + 0x04] # edx = source pointer + mov ecx, [esp + 0x08] # ecx = source size + push ebx +memcpy_again: + dec ecx + mov bl, [edx + ecx] # Copy one byte from source to dest + mov [eax + ecx], bl + test ecx, ecx + jne memcpy_again + pop ebx + + # Write the address + mov ecx, [esp + 0x0C] + mov [ecx], eax + +done: + ret 0x0C diff --git a/system/client-functions/System/WriteCallToCode-59NL.x86.inc.s b/system/client-functions/System/WriteCallToCode-59NL.x86.inc.s index c3236bb6..f4e9198b 100644 --- a/system/client-functions/System/WriteCallToCode-59NL.x86.inc.s +++ b/system/client-functions/System/WriteCallToCode-59NL.x86.inc.s @@ -49,7 +49,7 @@ memcpy_again: setl al or al, 0xE8 mov [edx], al # Write E8 (call), or E9 (jmp) if size was negative - mov [edx + 1], ecx # Write E8 (call) followed by delta + mov [edx + 1], ecx # Write delta # Write as many nops after the call opcode as necessary mov ecx, 5 diff --git a/system/client-functions/System/WriteCallToCodeMulti-59NL.x86.inc.s b/system/client-functions/System/WriteCallToCodeMulti-59NL.x86.inc.s new file mode 100644 index 00000000..3f47779c --- /dev/null +++ b/system/client-functions/System/WriteCallToCodeMulti-59NL.x86.inc.s @@ -0,0 +1,83 @@ +# This file defines the following function: +# write_call_to_code( +# const void* patch_code, +# size_t patch_code_size, +# size_t call_count, +# void* call_opcode_address, +# ssize_t call_opcode_bytes, +# ...); +# This function allocates memory for patch_code, copies patch_code to that +# memory, then writes a call or jmp opcode to call_opcode_address that calls +# the code in the allocated memory region. The allocated memory is never freed. +# call_opcode_bytes specifies how many bytes at the callsite should be +# overwritten. This value must be at least 5; the first 5 bytes are overwritten +# with the call/jmp opcode itself; the rest are overwritten with nop opcodes. +# This function pops its arguments off the stack before returning (including +# all the varargs). + +write_call_to_code: + # [esp + 0x04] = code ptr + # [esp + 0x08] = code size + # [esp + 0x0C] = callsite count + # [esp + 0x10] = callsite address + # [esp + 0x14] = callsite size + # ... (further callsite address/size pairs) + + # Allocate memory for the copied code + mov ecx, [0x00AAB404] + push dword [esp + 0x08] + mov eax, 0x007A8A38 + call eax # malloc7 + test eax, eax + je done + + # Copy the code to the newly-allocated memory + # eax = dest pointer (from malloc7 call above) + mov edx, [esp + 0x04] # edx = source pointer + mov ecx, [esp + 0x08] # ecx = source size + push ebx +memcpy_again: + dec ecx + mov bl, [edx + ecx] # Copy one byte from source to dest + mov [eax + ecx], bl + test ecx, ecx + jne memcpy_again + pop ebx + + # Write the call opcodes + xchg ebx, [esp + 0x0C] # Save ebx; get callsite count + mov [esp - 0x08], esi + mov [esp - 0x0C], eax + mov esi, 0x10 # Stack offset of first callsite pair + +next_callsite: + mov edx, [esp + esi] # edx = jump callsite + lea ecx, [eax - 5] + sub ecx, edx # ecx = (dest code addr) - (jump callsite) - 5 + mov byte [edx], 0xE8 + mov [edx + 1], ecx # Write E8 (call) followed by delta + + # Write as many nops after the call opcode as necessary + mov ecx, 5 + mov eax, [esp + esi + 4] +write_nop_again: + cmp ecx, eax + jge this_callsite_done + mov byte [edx + ecx], 0x90 + inc ecx + jmp write_nop_again + +this_callsite_done: + mov eax, [esp - 0x0C] + add esi, 8 + dec ebx + jnz next_callsite + + mov ecx, esi + mov ebx, [esp + 0x0C] + mov esi, [esp - 0x08] + +done: + mov eax, [esp] + add esp, ecx + jmp eax diff --git a/system/client-functions/System/WriteMemoryGC.ppc.s b/system/client-functions/System/WriteMemoryGC.ppc.s index 69cb7398..3c843b00 100644 --- a/system/client-functions/System/WriteMemoryGC.ppc.s +++ b/system/client-functions/System/WriteMemoryGC.ppc.s @@ -5,22 +5,22 @@ # functions subsystem. There are three kinds of functions: includes, patches, # and general functions. -# General functions are not version-specific (usually) but are architecture- -# specific. This file, WriteMemoryGC, is a general function for all PowerPC -# versions of PSO, which means all GameCube versions. General functions are -# named like NAME.ARCH.s, where ARCH is sh4, ppc, or x86. +# - General functions are not version-specific (usually) but are architecture- +# specific. This file, WriteMemoryGC, is a general function for all PowerPC +# versions of PSO, which means all GameCube versions. General functions are +# named like NAME.ARCH.s, where ARCH is sh4, ppc, or x86. -# Includes are snippets of code that are intended to be used as part of other -# general functions and patches. Includes are named like NAME.ARCH.inc.s, where -# ARCH has the same meaning as above. These can be used with the .include -# directive; there is an example of this in the code below. +# - Includes are snippets of code that are intended to be used as part of other +# general functions and patches. Includes are named like NAME.ARCH.inc.s, +# where ARCH has the same meaning as above. These can be used with the +# .include directive; there is an example of this in the code below. -# Patches are functions that are available to run upon client request. They can -# be made available in the Patches menu or via the $patch command. Patches -# should be named like PATCHNAME.VERS.patch.s, where VERS denotes which -# specific game version the patch is for. These version codes are listed in -# README.md, and directly correspond to values returned by the VersionDetect -# functions, also in this directory. +# - Patches are functions that are available to run upon client request. They +# can be made available in the Patches menu or via the $patch command. +# Patches should be named like PATCHNAME.VERS.patch.s, where VERS denotes +# which specific game version the patch is for. These version codes are +# listed in README.md, and directly correspond to values returned by the +# VersionDetect functions, also in this directory. # For example, to use this function to write the bytes 38 00 00 05 to the # address 8010521C, send_function_call could be called like this: @@ -38,20 +38,20 @@ # requested by the client, so those features should only be used in general # functions. +# The .versions directive may be used in patches (but not in includes or +# general functions) and enables parameterization. If .version is used, then +# the patch may later use expressions like to generate +# the same patch with different values for different game versions. In each +# expression, the number of values must match the number of versions +# given in the .versions directive. +# .versions VRS1 VRS2 VRS3 ... + # These directives tell newserv what to show to the player in the Patches menu. # Neither of them is required; if the name is omitted, the filename is used # instead. .meta name="Write memory" .meta description="Writes data to any location in memory" -# The .meta index directive tells newserv what value to use in the flag field -# when sending the B2 command. This is needed if the server needs to do -# something when the B3 response is received. If specified, the index must be in -# the range 01-FF. The DOL loading functionality, which this function is a part -# of, uses indexes E0, E1, and E2, but the WriteMemoryGC function can also be -# used for other purposes. -.meta index=E1 - # To hide a patch from the Patches menu (so it can only be used with the $patch # command), this directive can be used. This has no effect if used in includes # or general functions. diff --git a/system/client-functions/UltimateMapFix/UltimateMapFix.2OEF.patch.s b/system/client-functions/UltimateMapFix/UltimateMapFix.2OEF.patch.s deleted file mode 100644 index 2307cfcb..00000000 --- a/system/client-functions/UltimateMapFix/UltimateMapFix.2OEF.patch.s +++ /dev/null @@ -1,66 +0,0 @@ -.meta name="Ultimate map fix" -.meta description="Adds missing maps\nto Ultimate for\ncertain quests" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - -# Modify location of Ultimate Cave 1 map pointer table to 8C008100 and make it have 6 entries - .align 4 - .data 0x8C32FED0 - .data 6 - .binary 0081008C0600 - -# Modify location of Ultimate Cave 3 map pointer table to 8C008130 and make it have 6 entries - .align 4 - .data 0x8C32FEE0 - .data 6 - .binary 3081008C0600 - -# Modify location of Ultimate Mine 1 map pointer table to 8C008160 and make it have 6 entries - .align 4 - .data 0x8C32FEE8 - .data 6 - .binary 6081008C0600 - -# Modify location of Ultimate Mine 2 map pointer table to 8C008190 and make it have 6 entries - .align 4 - .data 0x8C32FEF0 - .data 6 - .binary 9081008C0600 - -# New map pointer table for Cave 1 - .align 4 - .data 0x8C008100 - .data 48 - .binary 5704338C6304338C5704338C7204338C5704338C8104338C5704338C9004338C5704338C9F04338C5704338C0082008C - -# New map pointer table for Cave 3 - .align 4 - .data 0x8C008130 - .data 48 - .binary 0505338C1105338C0505338C4D05338C0505338C2F05338C0505338C3E05338C0505338C4D05338C0505338C0F82008C - -# New map pointer table for Mine 1 - .align 4 - .data 0x8C008160 - .data 48 - .binary 5C05338C6B05338C5C05338C7D05338C5C05338C8F05338C5C05338CA105338C5C05338CB305338C5C05338C1E82008C - -# New map pointer table for Mine 2 - .align 4 - .data 0x8C008190 - .data 48 - .binary C505338CD405338CC505338CE605338CC505338CF805338CC505338C0A06338CC505338C1C06338CC505338C3082008C - -# Add missing map names: map_acave01_05, map_acave03_05, map_amachine01_05, map_amachine02_05 - .align 4 - .data 0x8C008200 - .data 66 - .binary 6D61705F616361766530315F3035006D61705F616361766530335F3035006D61705F616D616368696E6530315F3035006D61705F616D616368696E6530325F303500 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/UltimateMapFix/UltimateMapFix.2OJ5.patch.s b/system/client-functions/UltimateMapFix/UltimateMapFix.2OJ5.patch.s deleted file mode 100644 index 2307cfcb..00000000 --- a/system/client-functions/UltimateMapFix/UltimateMapFix.2OJ5.patch.s +++ /dev/null @@ -1,66 +0,0 @@ -.meta name="Ultimate map fix" -.meta description="Adds missing maps\nto Ultimate for\ncertain quests" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - -# Modify location of Ultimate Cave 1 map pointer table to 8C008100 and make it have 6 entries - .align 4 - .data 0x8C32FED0 - .data 6 - .binary 0081008C0600 - -# Modify location of Ultimate Cave 3 map pointer table to 8C008130 and make it have 6 entries - .align 4 - .data 0x8C32FEE0 - .data 6 - .binary 3081008C0600 - -# Modify location of Ultimate Mine 1 map pointer table to 8C008160 and make it have 6 entries - .align 4 - .data 0x8C32FEE8 - .data 6 - .binary 6081008C0600 - -# Modify location of Ultimate Mine 2 map pointer table to 8C008190 and make it have 6 entries - .align 4 - .data 0x8C32FEF0 - .data 6 - .binary 9081008C0600 - -# New map pointer table for Cave 1 - .align 4 - .data 0x8C008100 - .data 48 - .binary 5704338C6304338C5704338C7204338C5704338C8104338C5704338C9004338C5704338C9F04338C5704338C0082008C - -# New map pointer table for Cave 3 - .align 4 - .data 0x8C008130 - .data 48 - .binary 0505338C1105338C0505338C4D05338C0505338C2F05338C0505338C3E05338C0505338C4D05338C0505338C0F82008C - -# New map pointer table for Mine 1 - .align 4 - .data 0x8C008160 - .data 48 - .binary 5C05338C6B05338C5C05338C7D05338C5C05338C8F05338C5C05338CA105338C5C05338CB305338C5C05338C1E82008C - -# New map pointer table for Mine 2 - .align 4 - .data 0x8C008190 - .data 48 - .binary C505338CD405338CC505338CE605338CC505338CF805338CC505338C0A06338CC505338C1C06338CC505338C3082008C - -# Add missing map names: map_acave01_05, map_acave03_05, map_amachine01_05, map_amachine02_05 - .align 4 - .data 0x8C008200 - .data 66 - .binary 6D61705F616361766530315F3035006D61705F616361766530335F3035006D61705F616D616368696E6530315F3035006D61705F616D616368696E6530325F303500 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/UltimateMapFix/UltimateMapFix.2OJF.patch.s b/system/client-functions/UltimateMapFix/UltimateMapFix.2OJF.patch.s deleted file mode 100644 index ca80e57f..00000000 --- a/system/client-functions/UltimateMapFix/UltimateMapFix.2OJF.patch.s +++ /dev/null @@ -1,66 +0,0 @@ -.meta name="Ultimate map fix" -.meta description="Adds missing maps\nto Ultimate for\ncertain quests" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - -# Modify location of Ultimate Cave 1 map pointer table to 8C008100 and make it have 6 entries - .align 4 - .data 0x8C32D638 - .data 6 - .binary 0081008C0600 - -# Modify location of Ultimate Cave 3 map pointer table to 8C008130 and make it have 6 entries - .align 4 - .data 0x8C32D648 - .data 6 - .binary 3081008C0600 - -# Modify location of Ultimate Mine 1 map pointer table to 8C008160 and make it have 6 entries - .align 4 - .data 0x8C32D650 - .data 6 - .binary 6081008C0600 - -# Modify location of Ultimate Mine 2 map pointer table to 8C008190 and make it have 6 entries - .align 4 - .data 0x8C32D658 - .data 6 - .binary 9081008C0600 - -# New map pointer table for Cave 1 - .align 4 - .data 0x8C008100 - .data 48 - .binary BFDB328CCBDB328CBFDB328CDADB328CBFDB328CE9DB328CBFDB328CF8DB328CBFDB328C07DC328CBFDB328C0082008C - -# New map pointer table for Cave 3 - .align 4 - .data 0x8C008130 - .data 48 - .binary 6DDC328C79DC328C6DDC328C88DC328C6DDC328C97DC328C6DDC328CA6DC328C6DDC328CB5DC328C6DDC328C0F82008C - -# New map pointer table for Mine 1 - .align 4 - .data 0x8C008160 - .data 48 - .binary C4DC328CD3DC328CC4DC328CE5DC328CC4DC328CF7DC328CC4DC328C09DD328CC4DC328C1BDD328CC4DC328C1E82008C - -# New map pointer table for Mine 2 - .align 4 - .data 0x8C008190 - .data 48 - .binary 2DDD328C3CDD328C2DDD328C4EDD328C2DDD328C60DD328C2DDD328C72DD328C2DDD328C84DD328C2DDD328C3082008C - -# Add missing map names: map_acave01_05, map_acave03_05, map_amachine01_05, map_amachine02_05 - .align 4 - .data 0x8C008200 - .data 66 - .binary 6D61705F616361766530315F3035006D61705F616361766530335F3035006D61705F616D616368696E6530315F3035006D61705F616D616368696E6530325F303500 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/UltimateMapFix/UltimateMapFix.2OPF.patch.s b/system/client-functions/UltimateMapFix/UltimateMapFix.2OPF.patch.s deleted file mode 100644 index d202225d..00000000 --- a/system/client-functions/UltimateMapFix/UltimateMapFix.2OPF.patch.s +++ /dev/null @@ -1,66 +0,0 @@ -.meta name="Ultimate map fix" -.meta description="Adds missing maps\nto Ultimate for\ncertain quests" - -entry_ptr: -reloc0: - .offsetof start -start: - .include WriteCodeBlocksDC - -# Modify location of Ultimate Cave 1 map pointer table to 8C008100 and make it have 6 entries - .align 4 - .data 0x8C3244A8 - .data 6 - .binary 0081008C0600 - -# Modify location of Ultimate Cave 3 map pointer table to 8C008130 and make it have 6 entries - .align 4 - .data 0x8C3244B8 - .data 6 - .binary 3081008C0600 - -# Modify location of Ultimate Mine 1 map pointer table to 8C008160 and make it have 6 entries - .align 4 - .data 0x8C3244C0 - .data 6 - .binary 6081008C0600 - -# Modify location of Ultimate Mine 2 map pointer table to 8C008190 and make it have 6 entries - .align 4 - .data 0x8C3244C8 - .data 6 - .binary 9081008C0600 - -# New map pointer table for Cave 1 - .align 4 - .data 0x8C008100 - .data 48 - .binary 2F4A328C3B4A328C2F4A328C4A4A328C2F4A328C594A328C2F4A328C684A328C2F4A328C774A328C2F4A328C0082008C - -# New map pointer table for Cave 3 - .align 4 - .data 0x8C008130 - .data 48 - .binary DD4A328CE94A328CDD4A328CF84A328CDD4A328C074B328CDD4A328C164B328CDD4A328C254B328CDD4A328C0F82008C - -# New map pointer table for Mine 1 - .align 4 - .data 0x8C008160 - .data 48 - .binary 344B328C434B328C344B328C554B328C344B328C674B328C344B328C794B328C344B328C8B4B328C344B328C1E82008C - -# New map pointer table for Mine 2 - .align 4 - .data 0x8C008190 - .data 48 - .binary 9D4B328CAC4B328C9D4B328CBE4B328C9D4B328CD04B328C9D4B328CE24B328C9D4B328CF44B328C9D4B328C3082008C - -# Add missing map names: map_acave01_05, map_acave03_05, map_amachine01_05, map_amachine02_05 - .align 4 - .data 0x8C008200 - .data 66 - .binary 6D61705F616361766530315F3035006D61705F616361766530335F3035006D61705F616D616368696E6530315F3035006D61705F616D616368696E6530325F303500 - - .align 4 - .data 0x00000000 - .data 0x00000000 diff --git a/system/client-functions/UltimateMapFix/UltimateMapFix.2___.patch.s b/system/client-functions/UltimateMapFix/UltimateMapFix.2___.patch.s new file mode 100644 index 00000000..c59ffbcf --- /dev/null +++ b/system/client-functions/UltimateMapFix/UltimateMapFix.2___.patch.s @@ -0,0 +1,69 @@ +.meta name="Ultimate map fix" +.meta description="Adds missing maps\nto Ultimate for\ncertain quests" +# Patch by Matt Swift + +.versions 2OEF 2OJ5 2OJF 2OPF + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksDC + + # Modify location of Ultimate Cave 1 map pointer table to 8C008100 and make it have 6 entries + .align 4 + .data + .data 6 + .binary 0081008C0600 + + # Modify location of Ultimate Cave 3 map pointer table to 8C008130 and make it have 6 entries + .align 4 + .data + .data 6 + .binary 3081008C0600 + + # Modify location of Ultimate Mine 1 map pointer table to 8C008160 and make it have 6 entries + .align 4 + .data + .data 6 + .binary 6081008C0600 + + # Modify location of Ultimate Mine 2 map pointer table to 8C008190 and make it have 6 entries + .align 4 + .data + .data 6 + .binary 9081008C0600 + + # New map pointer table for Cave 1 + .align 4 + .data 0x8C008100 + .data 48 + .binary + + # New map pointer table for Cave 3 + .align 4 + .data 0x8C008130 + .data 48 + .binary + + # New map pointer table for Mine 1 + .align 4 + .data 0x8C008160 + .data 48 + .binary + + # New map pointer table for Mine 2 + .align 4 + .data 0x8C008190 + .data 48 + .binary + + # Add missing map names: map_acave01_05, map_acave03_05, map_amachine01_05, map_amachine02_05 + .align 4 + .data 0x8C008200 + .data 66 + .binary 6D61705F616361766530315F3035006D61705F616361766530335F3035006D61705F616D616368696E6530315F3035006D61705F616D616368696E6530325F303500 + + .align 4 + .data 0x00000000 + .data 0x00000000 diff --git a/system/client-functions/notes.txt b/system/client-functions/notes.txt new file mode 100644 index 00000000..da94847b --- /dev/null +++ b/system/client-functions/notes.txt @@ -0,0 +1,29 @@ +Used regions in PSO GC: + +80004000-80004194 (0194) ExtendedItemInfo (AR code uses 80005000 due to conflict with q8853x) +800041A0-800041B8 (0018) UnsellableRares +800041C0-???????? (????) EnemyDamageSync +8000B088-8000B0E0 (0058) BugFixes +8000B0E0-8000B254 (0174) q8853x send_function_call handler +8000B5C8-8000B5DC (0014) BugFixes +8000B650-8000B6BC (006C) EnemyHPBars +8000B86C-8000B8C0 (0054) FlickeringStatusIcons +8000B938-8000B958 (0020) ItemPickup +8000B958-8000B9D8 (0080) Palette +8000BAB4-8000BB50 (009C) CommonBank +8000BBD0-8000BBF0 (0020) BugFixes +8000BF30-8000BF5C (002C) HungryMagSound +8000C3F8-8000C474 (007C) BugFixes +8000C640-8000C654 (0014) BugFixes +8000C660-8000C688 (0028) RareDropNotifications +8000C690-8000C6BC (002C) RareDropNotifications +8000C6D0-8000C6F0 (0020) BugFixes +8000C8A0-8000C8B4 (0014) BugFixes +8000C8C0-8000C8D0 (0010) BugFixes +8000CA40-8000CA80 (0040) Palette +8000CD00-8000CDF0 (00F0) Palette +8000D6A0-8000D6BC (001C) ChatFeatures +8000D980-8000D994 (0014) BugFixes +8000D9A0-8000D9B8 (0018) BugFixes +8000DFA0-8000DFE0 (0040) DrawDistance +8000E1E0-8000E1FC (001C) BugFixes diff --git a/tests/DCv1-DCv2-PCv2-CrossplayPrivateDrops.test.txt b/tests/DCv1-DCv2-PCv2-CrossplayPrivateDrops.test.txt index a3bddd61..9086bc67 100644 --- a/tests/DCv1-DCv2-PCv2-CrossplayPrivateDrops.test.txt +++ b/tests/DCv1-DCv2-PCv2-CrossplayPrivateDrops.test.txt @@ -61,13 +61,13 @@ I 35932 2025-05-22 21:56:44 - [Commands] Received from C-1 @ ip:10.37.129.2:4962 0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | I 35932 2025-05-22 21:56:44 - [C-1] Login: Account:1705B11E via PC serial number 1705B11E I 35932 2025-05-22 21:56:44 - [Commands] Sending to C-1 @ ip:10.37.129.2:49620 (version=PC_V2 command=B2 flag=E5) -0000 | 48 00 B2 E5 38 00 00 00 00 00 40 00 00 E0 00 00 | H 8 @ +0000 | 48 00 B2 00 38 00 00 00 00 00 40 00 00 E0 00 00 | H 8 @ 0010 | 04 00 00 00 E8 04 00 00 00 1E B1 05 17 58 8B 00 | X 0020 | C3 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 | 0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 0040 | 00 00 00 00 00 00 00 00 | I 35932 2025-05-22 21:56:44 - [Commands] Received from C-1 @ ip:10.37.129.2:49620 (version=PC_V2 command=B3 flag=E5) -0000 | 0C 00 B3 E5 00 00 00 00 4C 02 77 36 | L w6 +0000 | 0C 00 B3 00 00 00 00 00 4C 02 77 36 | L w6 I 35932 2025-05-22 21:56:44 - [C-1] Version detected as 324F4A57 from PE header checksum 3677024C I 35932 2025-05-22 21:56:44 - [Commands] Sending to C-1 @ ip:10.37.129.2:49620 (version=PC_V2 command=04 flag=00) 0000 | 0C 00 04 00 00 00 01 00 1E B1 05 17 | diff --git a/tests/GC-HeartSymbol.test.txt b/tests/GC-HeartSymbol.test.txt index 66141a02..8514a4d6 100644 --- a/tests/GC-HeartSymbol.test.txt +++ b/tests/GC-HeartSymbol.test.txt @@ -404,13 +404,13 @@ I 81779 2025-05-22 20:17:10 - [Commands] Received from C-2 @ ip:10.37.129.2:5549 0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | I 81779 2025-05-22 20:17:10 - [C-2] Login: Account:1705B11E via PC serial number 1705B11E I 81779 2025-05-22 20:17:10 - [Commands] Sending to C-2 @ ip:10.37.129.2:55494 (version=PC_V2 command=B2 flag=E5) -0000 | 48 00 B2 E5 38 00 00 00 00 00 40 00 00 E0 00 00 | H 8 @ +0000 | 48 00 B2 00 38 00 00 00 00 00 40 00 00 E0 00 00 | H 8 @ 0010 | 04 00 00 00 E8 04 00 00 00 1F B1 05 17 58 8B 00 | X 0020 | C3 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 | 0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 0040 | 00 00 00 00 00 00 00 00 | I 81779 2025-05-22 20:17:10 - [Commands] Received from C-2 @ ip:10.37.129.2:55494 (version=PC_V2 command=B3 flag=E5) -0000 | 0C 00 B3 E5 00 00 00 00 4C 02 77 36 | L w6 +0000 | 0C 00 B3 00 00 00 00 00 4C 02 77 36 | L w6 I 81779 2025-05-22 20:17:10 - [C-2] Version detected as 324F4A57 from PE header checksum 3677024C I 81779 2025-05-22 20:17:10 - [Commands] Sending to C-2 @ ip:10.37.129.2:55494 (version=PC_V2 command=04 flag=00) 0000 | 0C 00 04 00 00 00 01 00 1F B1 05 17 |