make client functions parameterizable by version

This commit is contained in:
Martin Michelsen
2025-06-01 20:50:48 -07:00
parent 1a6b26e56b
commit bee4c55446
453 changed files with 3636 additions and 21378 deletions
+14 -1
View File
@@ -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);
+155 -81
View File
@@ -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<true>(
label_writes, suffix_data, suffix_size, override_relocations_offset);
return this->generate_client_command_t<true>(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<false>(
label_writes, suffix_data, suffix_size, override_relocations_offset);
return this->generate_client_command_t<false>(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<CompiledFunctionCode> compile_function_code(
static vector<shared_ptr<CompiledFunctionCode>> compile_function_code(
CompiledFunctionCode::Architecture arch,
const string& function_directory,
const string& system_directory,
const string& name,
const string& text) {
auto ret = make_shared<CompiledFunctionCode>();
ret->arch = arch;
ret->short_name = name;
ret->index = 0;
ret->hide_from_patches_menu = false;
unordered_set<string> get_include_stack;
function<string(const string&)> get_include = [&](const string& name) -> string {
const char* arch_name_token;
@@ -177,56 +169,135 @@ shared_ptr<CompiledFunctionCode> 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<uint32_t> 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<const be_uint32_t*>(vers_token.data()));
}
line.clear();
}
}
set<uint32_t> reloc_indexes;
for (const auto& it : ret->label_offsets) {
if (it.first.starts_with("reloc")) {
reloc_indexes.emplace(it.second / 4);
// Preprocess <VERS> tokens in the text if a .versions directive was given
vector<string> version_texts;
if (specific_versions.empty()) {
specific_versions.emplace_back(0);
version_texts.emplace_back(text);
} else {
vector<deque<string>> 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 ");
if (vers_offset == string::npos) {
for (auto& lines : version_lines) {
lines.emplace_back(line);
}
} else {
for (size_t vers_index = 0; vers_index < specific_versions.size(); vers_index++) {
string version_line = line;
size_t vers_offset = line.find("<VERS ");
while (vers_offset != string::npos) {
size_t end_offset = version_line.find('>', vers_offset + 6);
if (end_offset == string::npos) {
throw runtime_error(std::format("(line {}) unterminated <VERS> 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 <VERS> 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("<VERS ");
}
version_lines[vers_index].emplace_back(version_line);
}
}
line_num++;
}
for (const auto& lines : version_lines) {
version_texts.emplace_back(phosg::join(lines, "\n"));
}
}
try {
ret->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<shared_ptr<CompiledFunctionCode>> 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<CompiledFunctionCode>());
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<uint32_t> 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<uint64_t>(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<uint64_t>(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;
}
}
}
+4 -11
View File
@@ -25,15 +25,14 @@ struct CompiledFunctionCode {
std::string code;
std::vector<uint16_t> relocation_deltas;
std::unordered_map<std::string, uint32_t> 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<CompiledFunctionCode> 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);
+3 -2
View File
@@ -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);
}
+1 -1
View File
@@ -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<G_IncrementEnemyDamageThreshold_Extension_6xE4>}, // Extended subcommand; see CommandFormats.hh
/* 6xE5 */ {NONE, NONE, 0xE5, on_invalid},
/* 6xE6 */ {NONE, NONE, 0xE6, on_invalid},
/* 6xE7 */ {NONE, NONE, 0xE7, on_invalid},
+1 -1
View File
@@ -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<bool> send_protected_command(
+14 -25
View File
@@ -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) {
+2
View File
@@ -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,
@@ -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
@@ -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 <VERS 0x0064A642 0x0064A5DE> # Episode 1
.data 1
.binary 01
.data 0x0064A4AC # Episode 2
.data <VERS 0x0064A4AC 0x0064A448> # Episode 2
.data 2
.binary 0100
.data 0x0064A58D # Episode 4
.data <VERS 0x0064A58D 0x0064A529> # Episode 4
.data 1
.binary 01
.data 0x0064A6BC # Non-Normal difficulty check
.data <VERS 0x0064A6BC 0x0064A658> # Non-Normal difficulty check
.data 2
nop
nop
@@ -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
@@ -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, <VERS 0x009F61B0 0x009F81B0>
mov ecx, 0x3C
again:
push 0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 <VERS 0x481AEB11 0x481AEB11 0x481AE725>
.data 0x7FA3EB78
.data <VERS 0x481AEDE0 0x481AEDE0 0x481AE9F4>
.data 0x881F0000
.data 0x28090001
.data 0x4082000C
.data 0x881F0001
.data 0x3BFF0002
.data <VERS 0x48100B68 0x48100B68 0x481008C4>
.data 0x39200000
.data <VERS 0x48100AF9 0x48100AF9 0x48100855>
.data 0x7F43D378
.data 0x7F64DB78
.data 0x7F85E378
.data 0x7FA6EB78
.data 0x7FC7F378
.data 0x7FE8FB78
.data 0x39200001
.data <VERS 0x48100AD9 0x48100AD9 0x48100835>
.data <VERS 0x48102F64 0x48102F64 0x48102CC0>
.data 0x8000B5C8
.data 0x00000014
.data 0x80630098
.data <VERS 0x483D5999 0x483D59F1 0x483D46F5>
.data 0x807F042C
.data 0x809F0430
.data <VERS 0x48178C7C 0x48178C7C 0x481788C0>
.data 0x8000BBD0
.data 0x00000020
.data 0x809F0370
.data 0x3884FC00
.data 0x909F0370
.data 0x807F0014
.data 0x28030000
.data 0x41820008
.data 0x90830060
.data <VERS 0x48165428 0x48165428 0x4816506C>
.data 0x8000C3F8
.data 0x0000007C
.data 0x28040000
.data 0x4D820020
.data 0x9421FFF0
.data <VERS 0x481AD7A0 0x481AD7A0 0x481AD3B4>
.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 <VERS 0x480FED81 0x480FED81 0x480FEADD>
.data 0x7F83E378
.data 0x38800001
.data <VERS 0x480FEEF1 0x480FEEF1 0x480FEC4D>
.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 <VERS 0x4810C938 0x4810C938 0x4810C694>
.data 0x8000C6D0
.data 0x00000020
.data 0x38000001
.data 0x901D0054
.data 0x807D0024
.data <VERS 0x48211244 0x48211244 0x482109C0>
.data 0x38000001
.data 0x901F0378
.data 0x807F0024
.data <VERS 0x482146F4 0x482146F4 0x48165AA0>
.data 0x8000C8A0
.data 0x00000014
.data 0x1C00000A
.data 0x57E407BD
.data 0x41820008
.data 0x7FA00734
.data <VERS 0x4810605C 0x4810605C 0x48105DB8>
.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 <VERS 0x482AE568 0x482AE5AC 0x482ADB24>
.data 0x8000D9A0
.data 0x00000018
.data <VERS 0xC042FC88 0xC042FC88 0xC042FC78>
.data 0x807E0030
.data 0x70630020
.data 0x41820008
.data <VERS 0xC042FCA0 0xC042FCA0 0xC042FC90>
.data <VERS 0x483280A0 0x483280E4 0x483276B0>
.data 0x8000E1E0
.data 0x0000001C
.data 0x7FC802A6
.data 0x38A00000
.data 0x38C0001E
.data 0x38E00040
.data <VERS 0x4807853D 0x4807853D 0x480782B1>
.data 0x7FC803A6
.data 0x4E800020
.data <VERS 0x80013084 0x80013084 0x8001306C>
.data 0x00000004
.data 0x4BFFFCC0
.data <VERS 0x800142F4 0x800142F4 0x800142DC>
.data 0x00000004
.data <VERS 0x4BFF85CD 0x4BFF85CD 0x4BFF85E5>
.data <VERS 0x80015D1C 0x80015D1C 0x80015D04>
.data 0x00000004
.data <VERS 0x4BFF6BA9 0x4BFF6BA9 0x4BFF6BC1>
.data <VERS 0x800917B4 0x800917B4 0x80091528>
.data 0x00000008
.data 0x4800024D
.data 0xB3C3032C
.data <VERS 0x800BC9E8 0x800BC9E8 0x800BC750>
.data 0x00000004
.data 0x48000010
.data <VERS 0x80101EB8 0x80101EB8 0x80101C14>
.data 0x00000004
.data 0x60000000
.data <VERS 0x80104DEC 0x80104DEC 0x80104B48>
.data 0x00000004
.data 0x4182000C
.data <VERS 0x8010771C 0x8010771C 0x80107478>
.data 0x00000004
.data 0x4800000C
.data <VERS 0x80107730 0x80107730 0x8010748C>
.data 0x00000004
.data 0x7C030378
.data <VERS 0x8010BC14 0x8010BC14 0x8010B970>
.data 0x00000004
.data <VERS 0x4BEFF488 0x4BEFF488 0x4BEFF72C>
.data <VERS 0x8010E03C 0x8010E03C 0x8010DD98>
.data 0x00000004
.data <VERS 0x4BEFD078 0x4BEFD078 0x4BEFD31C>
.data <VERS 0x80112908 0x80112908 0x80112664>
.data 0x00000004
.data <VERS 0x4BEF9F98 0x4BEF9F98 0x4BEFA23C>
.data <VERS 0x8011461C 0x8011461C 0x80114378>
.data 0x00000004
.data 0x38000012
.data <VERS 0x80118854 0x80118854 0x801185B0>
.data 0x00000004
.data 0x88040016
.data <VERS 0x80118860 0x80118860 0x801185BC>
.data 0x00000004
.data 0x88040017
.data <VERS 0x80118F84 0x80118F84 0x80118CE0>
.data 0x00000004
.data <VERS 0x4BEF36BC 0x4BEF36BC 0x4BEF3960>
.data <VERS 0x8011CD34 0x8011CD34 0x8011CA90>
.data 0x0000000C
.data 0x7C030378
.data 0x3863FFFF
.data 0x4BFFFFE8
.data <VERS 0x8011CDF0 0x8011CDF0 0x8011CB4C>
.data 0x0000000C
.data 0x7C030378
.data 0x3863FFFF
.data 0x4BFFFFE8
.data <VERS 0x8011CE40 0x8011CE40 0x8011CB9C>
.data 0x0000000C
.data 0x7C040378
.data 0x3884FFFF
.data 0x4BFFFFE8
.data <VERS 0x801666E0 0x801666E0 0x80166324>
.data 0x00000008
.data 0x3C604005
.data 0x4800009C
.data <VERS 0x8016677C 0x8016677C 0x801663C0>
.data 0x00000004
.data 0x4800001C
.data <VERS 0x80171010 0x80171010 0x80170C54>
.data 0x00000004
.data <VERS 0x4BE9ABC0 0x4BE9ABC0 0x4BE9AF7C>
.data <VERS 0x80171030 0x80171030 0x80170C74>
.data 0x00000004
.data 0x60800420
.data <VERS 0x80184250 0x80184250 0x80172188>
.data 0x00000004
.data <VERS 0x4BE87378 0x4BE87378 0x4BE9A558>
.data <VERS 0x80184290 0x80184290 0x80183E94>
.data 0x00000004
.data <VERS 0x60000000 0x60000000 0x4BE87734>
.data <VERS 0x80189E20 0x80189E20 0x80183ED4>
.data 0x00000004
.data 0x60000000
.data <VERS 0x801937A8 0x801937A8 0x80189A54>
.data 0x00000004
.data 0x60000000
.data <VERS 0x801B9BA0 0x801B9BA0 0x801933DC>
.data 0x00000004
.data <VERS 0x4BE52868 0x4BE52868 0x60000000>
.data <VERS 0x801B9E74 0x801B9E74 0x801B97B4>
.data 0x00000004
.data <VERS 0x4BE51214 0x4BE51214 0x4BE52C54>
.data <VERS 0x801C62C0 0x801C62C0 0x801B9A88>
.data 0x00000004
.data <VERS 0x389F02FC 0x389F02FC 0x4BE51600>
.data <VERS 0x801CA610 0x801CA610 0x801C5EA4>
.data 0x00000004
.data <VERS 0x48000010 0x48000010 0x389F02FC>
.data <VERS 0x8021D91C 0x8021D91C 0x801CA1F4>
.data 0x00000004
.data <VERS 0x4BDEEDB4 0x4BDEEDB4 0x48000010>
.data <VERS 0x80220DDC 0x80220DDC 0x8021D098>
.data 0x00000004
.data <VERS 0x4BDEB904 0x4BDEB904 0x4BDEF638>
.data <VERS 0x80229C10 0x80229C10 0x80229354>
.data 0x00000004
.data 0x2C000001
.data <VERS 0x8022A410 0x8022A410 0x80229B54>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x8022A440 0x8022A440 0x80229B84>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x8022A470 0x8022A470 0x80229BB4>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x8022D10C 0x8022D10C 0x8022C850>
.data 0x00000004
.data 0x60000000
.data <VERS 0x8022D840 0x8022D840 0x8022CF84>
.data 0x00000004
.data 0x41810630
.data <VERS 0x8022DB34 0x8022DB34 0x8022D278>
.data 0x00000004
.data 0x4181033C
.data <VERS 0x8022DC28 0x8022DC28 0x8022D36C>
.data 0x00000004
.data 0x41810248
.data <VERS 0x8022EB64 0x8022EB64 0x8022E2A8>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x8022EB94 0x8022EB94 0x8022E2D8>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x8022EBC4 0x8022EBC4 0x8022E308>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x8022F370 0x8022F370 0x8022EAB4>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x8022F3A0 0x8022F3A0 0x8022EAE4>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x8022F3D0 0x8022F3D0 0x8022EB14>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80230974 0x80230974 0x802300B8>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x802309A4 0x802309A4 0x802300E8>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x802309D4 0x802309D4 0x80230118>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x802316E4 0x802316E4 0x80230E08>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80231714 0x80231714 0x80230E38>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80231744 0x80231744 0x80230E68>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80231FD8 0x80231FD8 0x802316FC>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80232010 0x80232010 0x80231734>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80232048 0x80232048 0x8023176C>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80234084 0x80234084 0x802337A8>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x802340B4 0x802340B4 0x802337D8>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x802340E4 0x802340E4 0x80233808>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x802366B0 0x802366B0 0x80235DD4>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x802366EC 0x802366EC 0x80235E10>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80236728 0x80236728 0x80235E4C>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80236E88 0x80236E88 0x802365AC>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80236EB8 0x80236EB8 0x802365DC>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80236EE8 0x80236EE8 0x8023660C>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x8023789C 0x8023789C 0x80236FC0>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x802378CC 0x802378CC 0x80236FF0>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x802378FC 0x802378FC 0x80237020>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80238274 0x80238274 0x80237998>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x802382A4 0x802382A4 0x802379C8>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x802382D4 0x802382D4 0x802379F8>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x8023BBA4 0x8023BBA4 0x8023B2C8>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x8023BBD4 0x8023BBD4 0x8023B2F8>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x8023BC04 0x8023BC04 0x8023B328>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80250AEC 0x80250AEC 0x80250264>
.data 0x00000004
.data 0x60000000
.data <VERS 0x80268788 0x80268788 0x80267DDC>
.data 0x00000004
.data 0x60000000
.data <VERS 0x8026E2D4 0x8026E2D4 0x8026DA74>
.data 0x00000004
.data 0x3884AAFA
.data <VERS 0x8026E3E8 0x8026E3E8 0x8026DB88>
.data 0x00000004
.data 0x3863AAFA
.data <VERS 0x8026E470 0x8026E470 0x8026DC10>
.data 0x00000004
.data 0x3883AAFA
.data <VERS 0x802BBEF4 0x802BBF38 0x802BB4B0>
.data 0x00000004
.data <VERS 0x4BD51A8C 0x4BD51A48 0x4BD524D0>
.data <VERS 0x802FC2F4 0x802FC338 0x802FB99C>
.data 0x00000004
.data 0x2C030001
.data <VERS 0x80301F58 0x80301F9C 0x80301600>
.data 0x0000001C
.data 0x48000020
.data 0x3863A830
.data <VERS 0x800DB9A4 0x800DB9A4 0x800DB98C>
.data 0x2C000023
.data 0x40820008
.data 0x3863FB28
.data 0x4800008C
.data <VERS 0x80301FF8 0x8030203C 0x803016A0>
.data 0x00000004
.data 0x4BFFFF64
.data <VERS 0x80335A50 0x80335A94 0x80335060>
.data 0x00000004
.data <VERS 0x4BCD7F50 0x4BCD7F0C 0x4BCD8940>
.data <VERS 0x80356814 0x80356858 0x80355960>
.data 0x00000004
.data 0x388001E8
.data <VERS 0x80356838 0x8035687C 0x80355984>
.data 0x00000004
.data <VERS 0x4BCB79A9 0x4BCB7965 0x4BCB885D>
.data <VERS 0x803568A8 0x803568EC 0x803559F4>
.data 0x00000004
.data 0x388001E8
.data <VERS 0x803568B8 0x803568FC 0x80355A04>
.data 0x00000004
.data <VERS 0x4BCB7929 0x4BCB78E5 0x4BCB87DD>
.data <VERS 0x804B3EF0 0x804B43D0 0x804B3738>
.data 0x00000008
.data 0x70808080
.data 0x60707070
.data <VERS 0x804C76B4 0x804C7B94 0x804C6EE4>
.data 0x00000004
.data 0x0000001E
.data <VERS 0x804C770C 0x804C7BEC 0x804C6F3C>
.data 0x00000004
.data 0x00000028
.data <VERS 0x804C7738 0x804C7C18 0x804C6F68>
.data 0x00000004
.data 0x00000032
.data <VERS 0x804C7764 0x804C7C44 0x804C6F94>
.data 0x00000004
.data 0x0000003C
.data <VERS 0x804C7774 0x804C7C54 0x804C6FA4>
.data 0x00000004
.data 0x0018003C
.data <VERS 0x804C79CC 0x804C7EAC 0x804C71FC>
.data 0x00000004
.data 0x00000028
.data <VERS 0x804CC310 0x804CC7F0 0x804CBB40>
.data 0x00000004
.data 0xFF0074EE
.data <VERS 0x805CA274 0x805D1294 0x805C996C>
.data 0x00000004
.data 0x435C0000
.data <VERS 0x805CBF10 0x805D2F30 0x805CB608>
.data 0x00000004
.data 0x46AFC800
.data <VERS 0x805CC1B0 0x805D31D0 0x805CB8A8>
.data 0x00000004
.data 0x43480000
.data 0x00000000
.data 0x00000000
@@ -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 <VERS 0x481AECC1 0x481AEB91 0x481B1C09 0x481AEC5D 0x481AF17D>
.data 0x7FA3EB78
.data <VERS 0x481AEF90 0x481AEE60 0x481B1ED8 0x481AEF2C 0x481AF44C>
.data 0x881F0000
.data 0x28090001
.data 0x4082000C
.data 0x881F0001
.data 0x3BFF0002
.data <VERS 0x48100A54 0x48100AC4 0x48100B58 0x48100A44 0x48100C44>
.data 0x39200000
.data <VERS 0x481009E5 0x48100A55 0x48100AE9 0x481009D5 0x48100BD5>
.data 0x7F43D378
.data 0x7F64DB78
.data 0x7F85E378
.data 0x7FA6EB78
.data 0x7FC7F378
.data 0x7FE8FB78
.data 0x39200001
.data <VERS 0x481009C5 0x48100A35 0x48100AC9 0x481009B5 0x48100BB5>
.data <VERS 0x48102E5C 0x48102EC0 0x4810300C 0x48102E4C 0x48103040>
.data 0x8000B5C8
.data 0x00000014
.data 0x80630098
.data <VERS 0x483D90F1 0x483D70D1 0x483D8F71 0x483D8D21 0x483D7BE1>
.data 0x807F042C
.data 0x809F0430
.data <VERS 0x48178DB0 0x48178C88 0x48178DEC 0x48178D4C 0x48179274>
.data 0x8000BBD0
.data 0x00000020
.data 0x809F0370
.data 0x3884FC00
.data 0x909F0370
.data 0x807F0014
.data 0x28030000
.data 0x41820008
.data 0x90830060
.data <VERS 0x48165548 0x48165420 0x48165678 0x481654E4 0x48165A0C>
.data 0x8000C3F8
.data 0x0000007C
.data 0x28040000
.data 0x4D820020
.data 0x9421FFF0
.data <VERS 0x481AD950 0x481AD820 0x481B0898 0x481AD8EC 0x481ADE0C>
.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 <VERS 0x480FEC6D 0x480FECDD 0x480FEDC9 0x480FEC5D 0x480FEE5D>
.data 0x7F83E378
.data 0x38800001
.data <VERS 0x480FEDDD 0x480FEE4D 0x480FEF49 0x480FEDCD 0x480FEFCD>
.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 <VERS 0x4810C858 0x4810C8B0 0x4810C98C 0x4810C848 0x4810CA30>
.data 0x8000C6D0
.data 0x00000020
.data 0x38000001
.data 0x901D0054
.data 0x807D0024
.data <VERS 0x482122F8 0x48211324 0x48212210 0x48211FC4 0x48211B90>
.data 0x38000001
.data 0x901F0378
.data 0x807F0024
.data <VERS 0x482157A8 0x482147D4 0x482156C0 0x48215474 0x48215040>
.data 0x8000C8A0
.data 0x00000014
.data 0x1C00000A
.data 0x57E407BD
.data 0x41820008
.data 0x7FA00734
.data <VERS 0x48105F54 0x48105FB8 0x48106190 0x48105F44 0x48106138>
.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 <VERS 0x482AFAE8 0x482AEA54 0x482AFB9C 0x482AF934 0x482AF27C>
.data 0x8000D9A0
.data 0x00000018
.data <VERS 0xC042FC88 0xC042FC80 0xC042FC80 0xC042FC80 0xC042FC88>
.data 0x807E0030
.data 0x70630020
.data 0x41820008
.data <VERS 0xC042FCA0 0xC042FC98 0xC042FC98 0xC042FC98 0xC042FCA0>
.data <VERS 0x48329BC0 0x4832871C 0x48329C38 0x483299EC 0x48329004>
.data 0x8000E1E0
.data 0x0000001C
.data 0x7FC802A6
.data 0x38A00000
.data 0x38C0001E
.data 0x38E00040
.data <VERS 0x480786D5 0x4807859D 0x48078715 0x480786C5 0x4807869D>
.data 0x7FC803A6
.data 0x4E800020
.data <VERS 0x8001304C 0x8001309C 0x80013364 0x8001304C 0x800130C4>
.data 0x00000004
.data 0x4BFFFCC0
.data <VERS 0x800142BC 0x8001430C 0x800146A4 0x800142BC 0x80014334>
.data 0x00000004
.data <VERS 0x4BFF8605 0x4BFF85B5 0x4BFF821D 0x4BFF8605 0x4BFF858D>
.data <VERS 0x80015CE4 0x80015D34 0x80016174 0x80015CE4 0x80015D5C>
.data 0x00000004
.data <VERS 0x4BFF6BE1 0x4BFF6B91 0x4BFF6751 0x4BFF6BE1 0x4BFF6B69>
.data <VERS 0x8009194C 0x80091814 0x8009198C 0x8009193C 0x80091914>
.data 0x00000008
.data 0x4800024D
.data 0xB3C3032C
.data <VERS 0x800BCB90 0x800BCA58 0x800BCBD0 0x800BCB80 0x800BCB58>
.data 0x00000004
.data 0x48000010
.data <VERS 0x80104CB4 0x80104D24 0x80104DE0 0x80104CA4 0x80104EA4>
.data 0x00000004
.data 0x4182000C
.data <VERS 0x801075E4 0x80107654 0x80107708 0x801075D4 0x801077D4>
.data 0x00000004
.data 0x4800000C
.data <VERS 0x801075F8 0x80107668 0x8010771C 0x801075E8 0x801077E8>
.data 0x00000004
.data 0x7C030378
.data <VERS 0x8010BB00 0x8010BB70 0x8010BC04 0x8010BAF0 0x8010BCF0>
.data 0x00000004
.data <VERS 0x4BEFF59C 0x4BEFF52C 0x4BEFF498 0x4BEFF5AC 0x4BEFF3AC>
.data <VERS 0x8010DF34 0x8010DF98 0x8010E0E4 0x8010DF24 0x8010E118>
.data 0x00000004
.data <VERS 0x4BEFD180 0x4BEFD11C 0x4BEFCFD0 0x4BEFD190 0x4BEFCF9C>
.data <VERS 0x80112800 0x80112864 0x80112A3C 0x801127F0 0x801129E4>
.data 0x00000004
.data <VERS 0x4BEFA0A0 0x4BEFA03C 0x4BEF9E64 0x4BEFA0B0 0x4BEF9EBC>
.data <VERS 0x80114534 0x8011458C 0x80114634 0x80114524 0x8011470C>
.data 0x00000004
.data 0x38000012
.data <VERS 0x80118774 0x801187CC 0x8011885C 0x80118764 0x8011894C>
.data 0x00000004
.data 0x88040016
.data <VERS 0x80118780 0x801187D8 0x80118868 0x80118770 0x80118958>
.data 0x00000004
.data 0x88040017
.data <VERS 0x80118EA4 0x80118EFC 0x80118FD8 0x80118E94 0x8011907C>
.data 0x00000004
.data <VERS 0x4BEF379C 0x4BEF3744 0x4BEF3668 0x4BEF37AC 0x4BEF35C4>
.data <VERS 0x8011CC7C 0x8011CCD4 0x8011CD0C 0x8011CC6C 0x8011CE54>
.data 0x0000000C
.data 0x7C030378
.data 0x3863FFFF
.data 0x4BFFFFE8
.data <VERS 0x8011CD38 0x8011CD90 0x8011CDC8 0x8011CD28 0x8011CF10>
.data 0x0000000C
.data 0x7C030378
.data 0x3863FFFF
.data 0x4BFFFFE8
.data <VERS 0x8011CD88 0x8011CDE0 0x8011CE18 0x8011CD78 0x8011CF60>
.data 0x0000000C
.data 0x7C040378
.data 0x3884FFFF
.data 0x4BFFFFE8
.data <VERS 0x80166800 0x801666D8 0x80166848 0x8016679C 0x80166CC4>
.data 0x00000008
.data 0x3C604005
.data 0x4800009C
.data <VERS 0x8016689C 0x80166774 0x801668E4 0x80166838 0x80166D60>
.data 0x00000004
.data 0x4800001C
.data <VERS 0x80171130 0x80171008 0x80171260 0x801710CC 0x801715F4>
.data 0x00000004
.data <VERS 0x4BE9AAA0 0x4BE9ABC8 0x4BE9A970 0x4BE9AB04 0x4BE9A5DC>
.data <VERS 0x80171150 0x80171028 0x80171280 0x801710EC 0x80171614>
.data 0x00000004
.data 0x60800420
.data <VERS 0x80184384 0x8018425C 0x801843C0 0x80184320 0x80184848>
.data 0x00000004
.data <VERS 0x4BE87244 0x4BE8736C 0x4BE87208 0x4BE872A8 0x4BE86D80>
.data <VERS 0x801843C4 0x8018429C 0x80184400 0x80184360 0x80184888>
.data 0x00000004
.data 0x60000000
.data <VERS 0x80189F54 0x80189E2C 0x80189F90 0x80189EF0 0x8018A418>
.data 0x00000004
.data 0x60000000
.data <VERS 0x801938D8 0x801937B0 0x80193914 0x80193874 0x80193D9C>
.data 0x00000004
.data 0x60000000
.data <VERS 0x801B9D50 0x801B9C20 0x801BCC98 0x801B9CEC 0x801BA20C>
.data 0x00000004
.data <VERS 0x4BE526B8 0x4BE527E8 0x4BE4F770 0x4BE5271C 0x4BE521FC>
.data <VERS 0x801BA024 0x801B9EF4 0x801BCF6C 0x801B9FC0 0x801BA4E0>
.data 0x00000004
.data <VERS 0x4BE51064 0x4BE51194 0x4BE4E11C 0x4BE510C8 0x4BE50BA8>
.data <VERS 0x801C6490 0x801C6360 0x801C6604 0x801C642C 0x801C694C>
.data 0x00000004
.data 0x389F02FC
.data <VERS 0x801CA810 0x801CA6E0 0x801CB5EC 0x801CA7AC 0x801CACCC>
.data 0x00000004
.data 0x48000010
.data <VERS 0x8021E9D0 0x8021D9FC 0x8021E8E8 0x8021E69C 0x8021E268>
.data 0x00000004
.data <VERS 0x4BDEDD00 0x4BDEECD4 0x4BDEDDE8 0x4BDEE034 0x4BDEE468>
.data <VERS 0x80221E90 0x80220EBC 0x80221DA8 0x80221B5C 0x80221728>
.data 0x00000004
.data <VERS 0x4BDEA850 0x4BDEB824 0x4BDEA938 0x4BDEAB84 0x4BDEAFB8>
.data <VERS 0x8022ACC4 0x80229CF0 0x8022ABDC 0x8022A990 0x8022A55C>
.data 0x00000004
.data 0x2C000001
.data <VERS 0x8022B4C4 0x8022A4F0 0x8022B3E0 0x8022B190 0x8022AD5C>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x8022B4F4 0x8022A520 0x8022B410 0x8022B1C0 0x8022AD8C>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x8022B524 0x8022A550 0x8022B440 0x8022B1F0 0x8022ADBC>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x8022E1C0 0x8022D1EC 0x8022E128 0x8022DE8C 0x8022DA58>
.data 0x00000004
.data 0x60000000
.data <VERS 0x8022E8F4 0x8022D920 0x8022E85C 0x8022E5C0 0x8022E18C>
.data 0x00000004
.data 0x41810630
.data <VERS 0x8022FC18 0x8022EC44 0x8022FB30 0x8022F8E4 0x8022F4B0>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x8022FC48 0x8022EC74 0x8022FB60 0x8022F914 0x8022F4E0>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x8022FC78 0x8022ECA4 0x8022FB90 0x8022F944 0x8022F510>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80230424 0x8022F450 0x80230340 0x802300F0 0x8022FCBC>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80230454 0x8022F480 0x80230370 0x80230120 0x8022FCEC>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80230484 0x8022F4B0 0x802303A0 0x80230150 0x8022FD1C>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80231A28 0x80230A54 0x80231940 0x802316F4 0x802312C0>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80231A58 0x80230A84 0x80231970 0x80231724 0x802312F0>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80231A88 0x80230AB4 0x802319A0 0x80231754 0x80231320>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80232798 0x802317C4 0x802326B0 0x80232464 0x80232030>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x802327C8 0x802317F4 0x802326E0 0x80232494 0x80232060>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x802327F8 0x80231824 0x80232710 0x802324C4 0x80232090>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x8023308C 0x802320B8 0x80232FA4 0x80232D58 0x80232924>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x802330C4 0x802320F0 0x80232FDC 0x80232D90 0x8023295C>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x802330FC 0x80232128 0x80233014 0x80232DC8 0x80232994>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80235138 0x80234164 0x80235050 0x80234E04 0x802349D0>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80235168 0x80234194 0x80235080 0x80234E34 0x80234A00>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80235198 0x802341C4 0x802350B0 0x80234E64 0x80234A30>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80237764 0x80236790 0x8023767C 0x80237430 0x80236FFC>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x802377A0 0x802367CC 0x802376B8 0x8023746C 0x80237038>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x802377DC 0x80236808 0x802376F4 0x802374A8 0x80237074>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80237F3C 0x80236F68 0x80237E54 0x80237C08 0x802377D4>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80237F6C 0x80236F98 0x80237E84 0x80237C38 0x80237804>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80237F9C 0x80236FC8 0x80237EB4 0x80237C68 0x80237834>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80238950 0x8023797C 0x80238868 0x8023861C 0x802381E8>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80238980 0x802379AC 0x80238898 0x8023864C 0x80238218>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x802389B0 0x802379DC 0x802388C8 0x8023867C 0x80238248>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80239328 0x80238354 0x80239240 0x80238FF4 0x80238BC0>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x80239358 0x80238384 0x80239270 0x80239024 0x80238BF0>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x80239388 0x802383B4 0x802392A0 0x80239054 0x80238C20>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x8023CC58 0x8023BC84 0x8023CB70 0x8023C924 0x8023C4F0>
.data 0x00000004
.data 0x3880FF00
.data <VERS 0x8023CC88 0x8023BCB4 0x8023CBA0 0x8023C954 0x8023C520>
.data 0x00000004
.data 0x3880FE80
.data <VERS 0x8023CCB8 0x8023BCE4 0x8023CBD0 0x8023C984 0x8023C550>
.data 0x00000004
.data 0x3880FDB0
.data <VERS 0x80251C68 0x80250CB0 0x80251CA4 0x802519A4 0x802514B0>
.data 0x00000004
.data 0x60000000
.data <VERS 0x80269B5C 0x80268A88 0x80269AE4 0x80269898 0x802693A4>
.data 0x00000004
.data 0x60000000
.data <VERS 0x8026F6FC 0x8026E738 0x8026F794 0x8026F548 0x8026EF44>
.data 0x00000004
.data 0x3884AAFA
.data <VERS 0x8026F810 0x8026E84C 0x8026F8A8 0x8026F65C 0x8026F058>
.data 0x00000004
.data 0x3863AAFA
.data <VERS 0x8026F898 0x8026E8D4 0x8026F930 0x8026F6E4 0x8026F0E0>
.data 0x00000004
.data 0x3883AAFA
.data <VERS 0x802BD474 0x802BC3E0 0x802BD528 0x802BD2C0 0x802BCC08>
.data 0x00000004
.data <VERS 0x4BD5050C 0x4BD515A0 0x4BD50458 0x4BD506C0 0x4BD50D78>
.data <VERS 0x802FDD28 0x802FC968 0x802FDE60 0x802FDB6C 0x802FD100>
.data 0x00000004
.data 0x2C030001
.data <VERS 0x8030398C 0x803025CC 0x80303A1C 0x803037D0 0x80302D64>
.data 0x0000001C
.data 0x48000020
.data 0x3863A830
.data <VERS 0x800DB9C4 0x800DB994 0x800DB9B4 0x800DB9B4 0x800DBA04>
.data 0x2C000023
.data 0x40820008
.data 0x3863FB28
.data 0x4800008C
.data <VERS 0x80303A2C 0x8030266C 0x80303ABC 0x80303870 0x80302E04>
.data 0x00000004
.data 0x4BFFFF64
.data <VERS 0x80337570 0x803360CC 0x803375E8 0x8033739C 0x803369B4>
.data 0x00000004
.data <VERS 0x4BCD6430 0x4BCD78D4 0x4BCD63B8 0x4BCD6604 0x4BCD6FEC>
.data <VERS 0x80358440 0x80356D64 0x803582C0 0x80358074 0x80357834>
.data 0x00000004
.data 0x388001E8
.data <VERS 0x80358464 0x80356D88 0x803582E4 0x80358098 0x80357858>
.data 0x00000004
.data <VERS 0x4BCB5D7D 0x4BCB7459 0x4BCB5EFD 0x4BCB6149 0x4BCB6989>
.data <VERS 0x803584D4 0x80356DF8 0x80358354 0x80358108 0x803578C8>
.data 0x00000004
.data 0x388001E8
.data <VERS 0x803584E4 0x80356E08 0x80358364 0x80358118 0x803578D8>
.data 0x00000004
.data <VERS 0x4BCB5CFD 0x4BCB73D9 0x4BCB5E7D 0x4BCB60C9 0x4BCB6909>
.data <VERS 0x804B8990 0x804B6E58 0x804B92F8 0x804B90B8 0x804B8E10>
.data 0x00000008
.data 0x70808080
.data 0x60707070
.data <VERS 0x804CC1E4 0x804CA61C 0x804CCB6C 0x804CC90C 0x804CC5D4>
.data 0x00000004
.data 0x0000001E
.data <VERS 0x804CC23C 0x804CA674 0x804CCBC4 0x804CC964 0x804CC62C>
.data 0x00000004
.data 0x00000028
.data <VERS 0x804CC268 0x804CA6A0 0x804CCBF0 0x804CC990 0x804CC658>
.data 0x00000004
.data 0x00000032
.data <VERS 0x804CC294 0x804CA6CC 0x804CCC1C 0x804CC9BC 0x804CC684>
.data 0x00000004
.data 0x0000003C
.data <VERS 0x804CC2A4 0x804CA6DC 0x804CCC2C 0x804CC9CC 0x804CC694>
.data 0x00000004
.data 0x0018003C
.data <VERS 0x804CC4FC 0x804CA934 0x804CCE84 0x804CCC24 0x804CC8EC>
.data 0x00000004
.data 0x00000028
.data <VERS 0x804D0E58 0x804CF290 0x804D17E0 0x804D1580 0x804D1248>
.data 0x00000004
.data 0xFF0074EE
.data <VERS 0x805DAAB4 0x805D3F6C 0x805DB40C 0x805DB1AC 0x805D6CF4>
.data 0x00000004
.data 0x435C0000
.data <VERS 0x805DC750 0x805D5C08 0x805DD0A8 0x805DCE48 0x805D8990>
.data 0x00000004
.data 0x46AFC800
.data <VERS 0x805DC9F0 0x805D5EA8 0x805DD348 0x805DD0E8 0x805D8C30>
.data 0x00000004
.data 0x43480000
.data 0x00000000
.data 0x00000000
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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 <VERS 0x805C4D58 0x805CF320 0x805D67A0 0x805D6540 0x805C5650 0x805CC630 0x805D5E50 0x805D2090>
.data <VERS 0x801E3B38 0x801E40BC 0x801E4290 0x801E4008 0x801E3F9C 0x801E3F9C 0x801E405C 0x801E4698>
size:
.data 0x00000000
data:
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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:
@@ -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 <VERS 0x0071E8C8 0x0071EF28 0x00726A68 0x00723F68 0x007237E8 0x00723F68 0x007242E8>
.data <VERS 0x002DBBA0 0x002DC720 0x002DDFE0 0x002DDB00 0x002DE000 0x002DDB30 0x002DE030>
size:
.data 0x00000000
data:
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 <VERS 0x8034445C 0x803457AC 0x80346CCC 0x80346A80 0x8034525C 0x803452A0 0x80346E4C 0x8034627C 0x801D9B30 0x801C7CFC 0x801C7D88 0x801C83FC>
.data 0x00000004
.address <VERS 0x8034445C 0x803457AC 0x80346CCC 0x80346A80 0x8034525C 0x803452A0 0x80346E4C 0x8034627C 0x801D9B30 0x801C7CFC 0x801C7D88 0x801C83FC>
li r3, 0
# Chat Log Window LF/TAB Bug Fix
.data <VERS 0x80267DDC 0x80268A88 0x80269AE4 0x80269898 0x80268788 0x80268788 0x80269B5C 0x802693A4 0x8017F434 0x8016FD00 0x8016FBB4 0x80170060>
.data 0x00000004
.address <VERS 0x80267DDC 0x80268A88 0x80269AE4 0x80269898 0x80268788 0x80268788 0x80269B5C 0x802693A4 0x8017F434 0x8016FD00 0x8016FBB4 0x80170060>
nop
# Chat Bubble Window TAB Bug Fix
.data <VERS 0x80250264 0x80250CB0 0x80251CA4 0x802519A4 0x80250AEC 0x80250AEC 0x80251C68 0x802514B0 0x8016A77C 0x8015B1BC 0x8015B0CC 0x8015B578>
.data 0x00000004
.address <VERS 0x80250264 0x80250CB0 0x80251CA4 0x802519A4 0x80250AEC 0x80250AEC 0x80251C68 0x802514B0 0x8016A77C 0x8015B1BC 0x8015B0CC 0x8015B578>
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, <VERS 0x8051 0x8051 0x8051 0x8051 0x8051 0x8051 0x8051 0x8051 0x8048 0x804A 0x804A 0x804A>
lhz r3, [r3 <VERS -0x7530 -0x3A70 -0x1430 -0x1690 -0x6C50 -0x6770 -0x1D90 -0x0D70 +0x1700 -0x08C0 +0x0560 +0x2980>]
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 <VERS 0x80267EC8 0x80268B74 0x80269BD0 0x80269984 0x80268874 0x80268874 0x80269C48 0x80269490 0x8017F51C 0x8016FDE8 0x8016FC9C 0x80170148>
.data 0x00000004
.address <VERS 0x80267EC8 0x80268B74 0x80269BD0 0x80269984 0x80268874 0x80268874 0x80269C48 0x80269490 0x8017F51C 0x8016FDE8 0x8016FC9C 0x80170148>
bl scroll_lock_hook
.data 0x00000000
.data 0x00000000
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 - <VERS 0x7148 0x7148 0x7148 0x7150 0x7150 0x7150 0x7150 0x7148>]
cmplwi r0, 1
bne hook2_skip
lis r4, 0x8051
lhz r4, [r4 - 0x6C50]
lhz r4, [r4 - <VERS 0x6C50 0x6770 0x1D90 0x7530 0x3A70 0x1430 0x1690 0x0D70>]
andi. r0, r4, 0x0002
beq hook2_default_bank
lwz r0, [r13 - 0x46AC]
lwz r0, [r13 - <VERS 0x46AC 0x46AC 0x468C 0x46C4 0x46BC 0x469C 0x469C 0x464C>]
cmplwi r0, 6
beq hook2_default_bank
lwz r3, [r13 - 0x46C8]
lwz r3, [r13 - <VERS 0x46C8 0x46C8 0x46A8 0x46E0 0x46D8 0x46B8 0x46B8 0x4668>]
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 - <VERS 0x7148 0x7148 0x7148 0x7150 0x7150 0x7150 0x7150 0x7148>]
cmplwi r0, 1
bne hook3_skip
lis r3, 0x8001
@@ -62,29 +64,29 @@ hook3_skip:
blr
hooks_end:
.data 0x8021026C
.data <VERS 0x8021026C 0x8021026C 0x802111BC 0x8020F9F8 0x8021034C 0x8021112C 0x80210E88 0x80210BB8>
.data 0x00000004
.address 0x8021026C
.address <VERS 0x8021026C 0x8021026C 0x802111BC 0x8020F9F8 0x8021034C 0x8021112C 0x80210E88 0x80210BB8>
bl hook3
.data 0x802102E0
.data <VERS 0x802102E0 0x802102E0 0x80211230 0x8020FAE4 0x802103C0 0x802111A0 0x80210EFC 0x80210C2C>
.data 0x00000004
.address 0x802102E0
.address <VERS 0x802102E0 0x802102E0 0x80211230 0x8020FAE4 0x802103C0 0x802111A0 0x80210EFC 0x80210C2C>
bl hook2
.data 0x8030B414
.data <VERS 0x8030B414 0x8030B458 0x8030CE60 0x8030AA54 0x8030BAA4 0x8030CEF0 0x8030CCA4 0x8030C228>
.data 0x00000004
.address 0x8030B414
.address <VERS 0x8030B414 0x8030B458 0x8030CE60 0x8030AA54 0x8030BAA4 0x8030CEF0 0x8030CCA4 0x8030C228>
bl hook1
.data 0x8030B46C
.data <VERS 0x8030B46C 0x8030B4B0 0x8030CEB8 0x8030AAAC 0x8030BAFC 0x8030CF48 0x8030CCFC 0x8030C280>
.data 0x00000004
.address 0x8030B46C
.address <VERS 0x8030B46C 0x8030B4B0 0x8030CEB8 0x8030AAAC 0x8030BAFC 0x8030CF48 0x8030CCFC 0x8030C280>
bl hook1
.data 0x8046DC5C
.data <VERS 0x8046DC5C 0x8046E0DC 0x80471ACC 0x8046CECC 0x8046FCEC 0x80471E4C 0x80471C14 0x80471804>
.data 0x00000004
.address 0x8046DC5C
.address <VERS 0x8046DC5C 0x8046E0DC 0x80471ACC 0x8046CECC 0x8046FCEC 0x80471E4C 0x80471C14 0x80471804>
.data 0xFFFFFFFF
.data 0x00000000
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 <VERS 0x803515F4 0x80351638 0x80353220 0x80350740 0x80351B44 0x803530A0 0x80352E54 0x80352614>
.data 0x00000098
.address <VERS 0x803515F4 0x80351638 0x80353220 0x80350740 0x80351B44 0x803530A0 0x80352E54 0x80352614>
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 <VERS 0x4BE64BD9 0x4BE64B95 0x4BE63145 0x4BE656A1 0x4BE646F1 0x4BE654CD 0x4BE634AD 0x4BE6420D>
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 <VERS 0x00184160 0x00184350 0x00184400 0x00184340 0x00184310 0x00184360 0x001842D0>
.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 <VERS 0x00184161 0x00184351 0x00184401 0x00184341 0x00184311 0x00184361 0x001842D1>
.data 0x00000004
.data <VERS 0x001FD3D0 0x001FD530 0x001FD7B0 0x001FD5E0 0x001FD5E0 0x001FD600 0x001FD670>
.data 0x00000000
.data 0x00000000
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 <VERS 0x8C01A454 0x8C01A6D0 0x8C01A414 0x8C01A6C8 0x8C01A6DC 0x8C01B6A4 0x8C01B684 0x8C01B6A4 0x8C01B6A8>
.data 0x00000002
mov r0, 0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 <VERS 0x80134D3C 0x80134FA0 0x80135108 0x80135040 0x80134FE0 0x80134FE0 0x80135050 0x801352D0 0x80092C78 0x8009242C 0x80092380 0x80092588>
.data 0x00000004
li r3, 0
@@ -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

Some files were not shown because too many files have changed in this diff Show More