From b7293e7cb0ad2f27376cd7bb726812f5cf1f388e Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Mon, 27 Jan 2025 21:44:46 -0800 Subject: [PATCH] write more patches --- .../EnemyHPBars/EnemyHPBars.59NL.patch.s | 46 +++++++++++++++++++ .../FlickeringStatusIcons.3OE0.patch.s | 46 +++++++++++++++++++ .../FlickeringStatusIcons.3OE1.patch.s | 46 +++++++++++++++++++ .../FlickeringStatusIcons.3OE2.patch.s | 46 +++++++++++++++++++ .../FlickeringStatusIcons.3OJ2.patch.s | 46 +++++++++++++++++++ .../FlickeringStatusIcons.3OJ3.patch.s | 46 +++++++++++++++++++ .../FlickeringStatusIcons.3OJ4.patch.s | 46 +++++++++++++++++++ .../FlickeringStatusIcons.3OJ5.patch.s | 46 +++++++++++++++++++ .../FlickeringStatusIcons.3OP0.patch.s | 46 +++++++++++++++++++ .../HungryMagSound.59NL.patch.s | 29 ++++++++++++ 10 files changed, 443 insertions(+) create mode 100644 system/client-functions/EnemyHPBars/EnemyHPBars.59NL.patch.s create mode 100644 system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE0.patch.s create mode 100644 system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE1.patch.s create mode 100644 system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE2.patch.s create mode 100644 system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ2.patch.s create mode 100644 system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ3.patch.s create mode 100644 system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ4.patch.s create mode 100644 system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ5.patch.s create mode 100644 system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OP0.patch.s create mode 100644 system/client-functions/HungryMagSound/HungryMagSound.59NL.patch.s diff --git a/system/client-functions/EnemyHPBars/EnemyHPBars.59NL.patch.s b/system/client-functions/EnemyHPBars/EnemyHPBars.59NL.patch.s new file mode 100644 index 00000000..72074452 --- /dev/null +++ b/system/client-functions/EnemyHPBars/EnemyHPBars.59NL.patch.s @@ -0,0 +1,46 @@ +.meta name="Enemy HP bars" +.meta description="Shows HP bars in\nenemy info windows" + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksBB + .data 0x007318DD + .data 6 + .binary 81E2FDFFFFFF + .data 0x00731F2F + .data 1 + .binary FA + .data 0x009F2DA4 + .data 4 + .data 0x42480000 + .data 0x009F2DAC + .data 4 + .data 0x41C00000 + .data 0x009F2DD4 + .data 4 + .data 0x42480000 + .data 0x009F2DDC + .data 4 + .data 0x41C00000 + .data 0x009F2E04 + .data 4 + .data 0x42480000 + .data 0x009F2E0C + .data 4 + .data 0x41C00000 + .data 0x009F2E34 + .data 4 + .data 0x42480000 + .data 0x009F2E3C + .data 4 + .data 0x41C00000 + .data 0x009F2E64 + .data 4 + .data 0x42200000 + .data 0x009F2E80 + .data 4 + .data 0xFF00FF15 + .data 0x00000000 + .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE0.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE0.patch.s new file mode 100644 index 00000000..1bd0e458 --- /dev/null +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE0.patch.s @@ -0,0 +1,46 @@ +.meta name="Blinking SD" +.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B86C + .data 0x00000054 +code_start: + mr r3, r0 + andi. r0, r31, 2 + beqlr + lwz r4, [r3 + 0x0028] + cmplwi r4, 0 + beqlr + lwz r4, [r4] + cmplwi r4, 0 + beqlr + mulli r0, r31, 12 + add r5, r29, r0 + lwz r6, [r5 + 0x025C] + cmplwi r6, 450 + bge full_intensity + lbz r6, [r4 + 0x002C] + subi r6, r6, 0x0008 + cmpwi r6, 0 + bge not_full_intensity +full_intensity: + li r6, 0x00FF +not_full_intensity: + stb [r4 + 0x002C], r6 + blr +code_end: + + .data 0x8026E7F4 + .data 4 + .data 0x4BD9D079 + + .data 0 + .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE1.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE1.patch.s new file mode 100644 index 00000000..1bd0e458 --- /dev/null +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE1.patch.s @@ -0,0 +1,46 @@ +.meta name="Blinking SD" +.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B86C + .data 0x00000054 +code_start: + mr r3, r0 + andi. r0, r31, 2 + beqlr + lwz r4, [r3 + 0x0028] + cmplwi r4, 0 + beqlr + lwz r4, [r4] + cmplwi r4, 0 + beqlr + mulli r0, r31, 12 + add r5, r29, r0 + lwz r6, [r5 + 0x025C] + cmplwi r6, 450 + bge full_intensity + lbz r6, [r4 + 0x002C] + subi r6, r6, 0x0008 + cmpwi r6, 0 + bge not_full_intensity +full_intensity: + li r6, 0x00FF +not_full_intensity: + stb [r4 + 0x002C], r6 + blr +code_end: + + .data 0x8026E7F4 + .data 4 + .data 0x4BD9D079 + + .data 0 + .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE2.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE2.patch.s new file mode 100644 index 00000000..aa1c7a61 --- /dev/null +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OE2.patch.s @@ -0,0 +1,46 @@ +.meta name="Blinking SD" +.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B86C + .data 0x00000054 +code_start: + mr r3, r0 + andi. r0, r31, 2 + beqlr + lwz r4, [r3 + 0x0028] + cmplwi r4, 0 + beqlr + lwz r4, [r4] + cmplwi r4, 0 + beqlr + mulli r0, r31, 12 + add r5, r29, r0 + lwz r6, [r5 + 0x025C] + cmplwi r6, 450 + bge full_intensity + lbz r6, [r4 + 0x002C] + subi r6, r6, 0x0008 + cmpwi r6, 0 + bge not_full_intensity +full_intensity: + li r6, 0x00FF +not_full_intensity: + stb [r4 + 0x002C], r6 + blr +code_end: + + .data 0x8026FC1C + .data 4 + .data 0x4BD9BC51 + + .data 0 + .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ2.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ2.patch.s new file mode 100644 index 00000000..afe3c65c --- /dev/null +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ2.patch.s @@ -0,0 +1,46 @@ +.meta name="Blinking SD" +.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B86C + .data 0x00000054 +code_start: + mr r3, r0 + andi. r0, r31, 2 + beqlr + lwz r4, [r3 + 0x0028] + cmplwi r4, 0 + beqlr + lwz r4, [r4] + cmplwi r4, 0 + beqlr + mulli r0, r31, 12 + add r5, r29, r0 + lwz r6, [r5 + 0x025C] + cmplwi r6, 450 + bge full_intensity + lbz r6, [r4 + 0x002C] + subi r6, r6, 0x0008 + cmpwi r6, 0 + bge not_full_intensity +full_intensity: + li r6, 0x00FF +not_full_intensity: + stb [r4 + 0x002C], r6 + blr +code_end: + + .data 0x8026DF94 + .data 4 + .data 0x4BD9D8D9 + + .data 0 + .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ3.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ3.patch.s new file mode 100644 index 00000000..69bd7d93 --- /dev/null +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ3.patch.s @@ -0,0 +1,46 @@ +.meta name="Blinking SD" +.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B86C + .data 0x00000054 +code_start: + mr r3, r0 + andi. r0, r31, 2 + beqlr + lwz r4, [r3 + 0x0028] + cmplwi r4, 0 + beqlr + lwz r4, [r4] + cmplwi r4, 0 + beqlr + mulli r0, r31, 12 + add r5, r29, r0 + lwz r6, [r5 + 0x025C] + cmplwi r6, 450 + bge full_intensity + lbz r6, [r4 + 0x002C] + subi r6, r6, 0x0008 + cmpwi r6, 0 + bge not_full_intensity +full_intensity: + li r6, 0x00FF +not_full_intensity: + stb [r4 + 0x002C], r6 + blr +code_end: + + .data 0x8026EC58 + .data 4 + .data 0x4BD9CC15 + + .data 0 + .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ4.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ4.patch.s new file mode 100644 index 00000000..c911db8f --- /dev/null +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ4.patch.s @@ -0,0 +1,46 @@ +.meta name="Blinking SD" +.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B86C + .data 0x00000054 +code_start: + mr r3, r0 + andi. r0, r31, 2 + beqlr + lwz r4, [r3 + 0x0028] + cmplwi r4, 0 + beqlr + lwz r4, [r4] + cmplwi r4, 0 + beqlr + mulli r0, r31, 12 + add r5, r29, r0 + lwz r6, [r5 + 0x025C] + cmplwi r6, 450 + bge full_intensity + lbz r6, [r4 + 0x002C] + subi r6, r6, 0x0008 + cmpwi r6, 0 + bge not_full_intensity +full_intensity: + li r6, 0x00FF +not_full_intensity: + stb [r4 + 0x002C], r6 + blr +code_end: + + .data 0x8026FCB4 + .data 4 + .data 0x4BD9BBB9 + + .data 0 + .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ5.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ5.patch.s new file mode 100644 index 00000000..5e664c9b --- /dev/null +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OJ5.patch.s @@ -0,0 +1,46 @@ +.meta name="Blinking SD" +.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B86C + .data 0x00000054 +code_start: + mr r3, r0 + andi. r0, r31, 2 + beqlr + lwz r4, [r3 + 0x0028] + cmplwi r4, 0 + beqlr + lwz r4, [r4] + cmplwi r4, 0 + beqlr + mulli r0, r31, 12 + add r5, r29, r0 + lwz r6, [r5 + 0x025C] + cmplwi r6, 450 + bge full_intensity + lbz r6, [r4 + 0x002C] + subi r6, r6, 0x0008 + cmpwi r6, 0 + bge not_full_intensity +full_intensity: + li r6, 0x00FF +not_full_intensity: + stb [r4 + 0x002C], r6 + blr +code_end: + + .data 0x8026FA68 + .data 4 + .data 0x4BD9BE05 + + .data 0 + .data 0 diff --git a/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OP0.patch.s b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OP0.patch.s new file mode 100644 index 00000000..a1030aa7 --- /dev/null +++ b/system/client-functions/FlickeringStatusIcons/FlickeringStatusIcons.3OP0.patch.s @@ -0,0 +1,46 @@ +.meta name="Blinking SD" +.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out" +# Original code by Ralf @ GC-Forever and Aleron Ives +# https://www.gc-forever.com/forums/viewtopic.php?t=2050 +# https://www.gc-forever.com/forums/viewtopic.php?t=2049 + +entry_ptr: +reloc0: + .offsetof start +start: + .include WriteCodeBlocksGC + + .data 0x8000B86C + .data 0x00000054 +code_start: + mr r3, r0 + andi. r0, r31, 2 + beqlr + lwz r4, [r3 + 0x0028] + cmplwi r4, 0 + beqlr + lwz r4, [r4] + cmplwi r4, 0 + beqlr + mulli r0, r31, 12 + add r5, r29, r0 + lwz r6, [r5 + 0x025C] + cmplwi r6, 450 + bge full_intensity + lbz r6, [r4 + 0x002C] + subi r6, r6, 0x0008 + cmpwi r6, 0 + bge not_full_intensity +full_intensity: + li r6, 0x00FF +not_full_intensity: + stb [r4 + 0x002C], r6 + blr +code_end: + + .data 0x8026F464 + .data 4 + .data 0x4BD9C409 + + .data 0 + .data 0 diff --git a/system/client-functions/HungryMagSound/HungryMagSound.59NL.patch.s b/system/client-functions/HungryMagSound/HungryMagSound.59NL.patch.s new file mode 100644 index 00000000..93bab114 --- /dev/null +++ b/system/client-functions/HungryMagSound/HungryMagSound.59NL.patch.s @@ -0,0 +1,29 @@ +.meta name="MAG alert" +.meta description="Plays a sound when\nyour MAG is hungry" + +entry_ptr: +reloc0: + .offsetof start +start: + pop ecx + push 6 + push 0x005D91E2 + call get_code_size + .deltaof patch_code, patch_code_end +get_code_size: + pop eax + push dword [eax] + call patch_code_end +patch_code: + mov dword [ecx + 0x01B8], eax + push 0 + push 0 + push 0 + push 0x0576 + mov eax, 0x00814298 + call eax + add esp, 0x10 + ret +patch_code_end: + push ecx + .include WriteCallToCode-59NL