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
@@ -1,46 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
.data 0x8000B86C
.data 0x00000054
code_start:
mr r3, r0
andi. r0, r31, 2
beqlr
lwz r4, [r3 + 0x0028]
cmplwi r4, 0
beqlr
lwz r4, [r4]
cmplwi r4, 0
beqlr
mulli r0, r31, 12
add r5, r29, r0
lwz r6, [r5 + 0x025C]
cmplwi r6, 450
bge full_intensity
lbz r6, [r4 + 0x002C]
subi r6, r6, 0x0008
cmpwi r6, 0
bge not_full_intensity
full_intensity:
li r6, 0x00FF
not_full_intensity:
stb [r4 + 0x002C], r6
blr
code_end:
.data 0x8026E7F4
.data 4
.data 0x4BD9D079
.data 0
.data 0
@@ -1,46 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
.data 0x8000B86C
.data 0x00000054
code_start:
mr r3, r0
andi. r0, r31, 2
beqlr
lwz r4, [r3 + 0x0028]
cmplwi r4, 0
beqlr
lwz r4, [r4]
cmplwi r4, 0
beqlr
mulli r0, r31, 12
add r5, r29, r0
lwz r6, [r5 + 0x025C]
cmplwi r6, 450
bge full_intensity
lbz r6, [r4 + 0x002C]
subi r6, r6, 0x0008
cmpwi r6, 0
bge not_full_intensity
full_intensity:
li r6, 0x00FF
not_full_intensity:
stb [r4 + 0x002C], r6
blr
code_end:
.data 0x8026FC1C
.data 4
.data 0x4BD9BC51
.data 0
.data 0
@@ -1,46 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
.data 0x8000B86C
.data 0x00000054
code_start:
mr r3, r0
andi. r0, r31, 2
beqlr
lwz r4, [r3 + 0x0028]
cmplwi r4, 0
beqlr
lwz r4, [r4]
cmplwi r4, 0
beqlr
mulli r0, r31, 12
add r5, r29, r0
lwz r6, [r5 + 0x025C]
cmplwi r6, 450
bge full_intensity
lbz r6, [r4 + 0x002C]
subi r6, r6, 0x0008
cmpwi r6, 0
bge not_full_intensity
full_intensity:
li r6, 0x00FF
not_full_intensity:
stb [r4 + 0x002C], r6
blr
code_end:
.data 0x8026DF94
.data 4
.data 0x4BD9D8D9
.data 0
.data 0
@@ -1,46 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
.data 0x8000B86C
.data 0x00000054
code_start:
mr r3, r0
andi. r0, r31, 2
beqlr
lwz r4, [r3 + 0x0028]
cmplwi r4, 0
beqlr
lwz r4, [r4]
cmplwi r4, 0
beqlr
mulli r0, r31, 12
add r5, r29, r0
lwz r6, [r5 + 0x025C]
cmplwi r6, 450
bge full_intensity
lbz r6, [r4 + 0x002C]
subi r6, r6, 0x0008
cmpwi r6, 0
bge not_full_intensity
full_intensity:
li r6, 0x00FF
not_full_intensity:
stb [r4 + 0x002C], r6
blr
code_end:
.data 0x8026EC58
.data 4
.data 0x4BD9CC15
.data 0
.data 0
@@ -1,46 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
.data 0x8000B86C
.data 0x00000054
code_start:
mr r3, r0
andi. r0, r31, 2
beqlr
lwz r4, [r3 + 0x0028]
cmplwi r4, 0
beqlr
lwz r4, [r4]
cmplwi r4, 0
beqlr
mulli r0, r31, 12
add r5, r29, r0
lwz r6, [r5 + 0x025C]
cmplwi r6, 450
bge full_intensity
lbz r6, [r4 + 0x002C]
subi r6, r6, 0x0008
cmpwi r6, 0
bge not_full_intensity
full_intensity:
li r6, 0x00FF
not_full_intensity:
stb [r4 + 0x002C], r6
blr
code_end:
.data 0x8026FCB4
.data 4
.data 0x4BD9BBB9
.data 0
.data 0
@@ -1,46 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
.data 0x8000B86C
.data 0x00000054
code_start:
mr r3, r0
andi. r0, r31, 2
beqlr
lwz r4, [r3 + 0x0028]
cmplwi r4, 0
beqlr
lwz r4, [r4]
cmplwi r4, 0
beqlr
mulli r0, r31, 12
add r5, r29, r0
lwz r6, [r5 + 0x025C]
cmplwi r6, 450
bge full_intensity
lbz r6, [r4 + 0x002C]
subi r6, r6, 0x0008
cmpwi r6, 0
bge not_full_intensity
full_intensity:
li r6, 0x00FF
not_full_intensity:
stb [r4 + 0x002C], r6
blr
code_end:
.data 0x8026FA68
.data 4
.data 0x4BD9BE05
.data 0
.data 0
@@ -1,46 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
.data 0x8000B86C
.data 0x00000054
code_start:
mr r3, r0
andi. r0, r31, 2
beqlr
lwz r4, [r3 + 0x0028]
cmplwi r4, 0
beqlr
lwz r4, [r4]
cmplwi r4, 0
beqlr
mulli r0, r31, 12
add r5, r29, r0
lwz r6, [r5 + 0x025C]
cmplwi r6, 450
bge full_intensity
lbz r6, [r4 + 0x002C]
subi r6, r6, 0x0008
cmpwi r6, 0
bge not_full_intensity
full_intensity:
li r6, 0x00FF
not_full_intensity:
stb [r4 + 0x002C], r6
blr
code_end:
.data 0x8026F464
.data 4
.data 0x4BD9C409
.data 0
.data 0
@@ -4,6 +4,8 @@
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
.versions 3OJ2 3OJ3 3OJ4 3OJ5 3OE0 3OE1 3OE2 3OP0
entry_ptr:
reloc0:
.offsetof start
@@ -12,6 +14,7 @@ start:
.data 0x8000B86C
.data 0x00000054
.address 0x8000B86C
code_start:
mr r3, r0
andi. r0, r31, 2
@@ -38,9 +41,10 @@ not_full_intensity:
blr
code_end:
.data 0x8026E7F4
.data <VERS 0x8026DF94 0x8026EC58 0x8026FCB4 0x8026FA68 0x8026E7F4 0x8026E7F4 0x8026FC1C 0x8026F464>
.data 4
.data 0x4BD9D079
.address <VERS 0x8026DF94 0x8026EC58 0x8026FCB4 0x8026FA68 0x8026E7F4 0x8026E7F4 0x8026FC1C 0x8026F464>
bl code_start
.data 0
.data 0
@@ -1,60 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
# Xbox port by fuzziqersoftware
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksXB
.data 0x00277D2A
.data 5
.binary E877380600
.data 0x002DB5A6
.deltaof code_start, code_end
code_start:
push eax
mov ecx, [esp + 0x20]
test cl, 0x02 # Slot 2 or 3
jz skip
mov eax, [eax + 0x28]
test eax, eax
jz skip
mov eax, [eax]
test eax, eax
jz skip
mov edx, [esp + 0x24] # client ID
mov edx, dword [0x00631B54 + edx * 4]
imul ecx, ecx, 0x0C
mov edx, [edx + ecx + 0x264]
cmp edx, 450
jb decr_alpha
mov byte [eax + 0x002F], 0xFF
jmp skip
decr_alpha:
xor edx, edx
lea ecx, [edx - 1]
mov dl, [eax + 0x002F]
sub edx, 8
cmovl edx, ecx
mov [eax + 0x002F], dl
skip:
pop eax
pop edx
lea ecx, [edx + 0x20]
cmp dword [eax + 0x6C], ebp
cmovz edx, ecx
jmp edx
code_end:
.data 0
.data 0
@@ -1,60 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
# Xbox port by fuzziqersoftware
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksXB
.data 0x0027782A
.data 5
.binary E807190600
.data 0x002D9136
.deltaof code_start, code_end
code_start:
push eax
mov ecx, [esp + 0x20]
test cl, 0x02 # Slot 2 or 3
jz skip
mov eax, [eax + 0x28]
test eax, eax
jz skip
mov eax, [eax]
test eax, eax
jz skip
mov edx, [esp + 0x24] # client ID
mov edx, dword [0x0062CCFC + edx * 4]
imul ecx, ecx, 0x0C
mov edx, [edx + ecx + 0x264]
cmp edx, 450
jb decr_alpha
mov byte [eax + 0x002F], 0xFF
jmp skip
decr_alpha:
xor edx, edx
lea ecx, [edx - 1]
mov dl, [eax + 0x002F]
sub edx, 8
cmovl edx, ecx
mov [eax + 0x002F], dl
skip:
pop eax
pop edx
lea ecx, [edx + 0x20]
cmp dword [eax + 0x6C], ebp
cmovz edx, ecx
jmp edx
code_end:
.data 0
.data 0
@@ -1,60 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
# Xbox port by fuzziqersoftware
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksXB
.data 0x00277ADA
.data 5
.binary E827220600
.data 0x002D9D06
.deltaof code_start, code_end
code_start:
push eax
mov ecx, [esp + 0x20]
test cl, 0x02 # Slot 2 or 3
jz skip
mov eax, [eax + 0x28]
test eax, eax
jz skip
mov eax, [eax]
test eax, eax
jz skip
mov edx, [esp + 0x24] # client ID
mov edx, dword [0x0062D29C + edx * 4]
imul ecx, ecx, 0x0C
mov edx, [edx + ecx + 0x264]
cmp edx, 450
jb decr_alpha
mov byte [eax + 0x002F], 0xFF
jmp skip
decr_alpha:
xor edx, edx
lea ecx, [edx - 1]
mov dl, [eax + 0x002F]
sub edx, 8
cmovl edx, ecx
mov [eax + 0x002F], dl
skip:
pop eax
pop edx
lea ecx, [edx + 0x20]
cmp dword [eax + 0x6C], ebp
cmovz edx, ecx
jmp edx
code_end:
.data 0
.data 0
@@ -1,60 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
# Xbox port by fuzziqersoftware
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksXB
.data 0x00277EEA
.data 5
.binary E8E7360600
.data 0x002DB5D6
.deltaof code_start, code_end
code_start:
push eax
mov ecx, [esp + 0x20]
test cl, 0x02 # Slot 2 or 3
jz skip
mov eax, [eax + 0x28]
test eax, eax
jz skip
mov eax, [eax]
test eax, eax
jz skip
mov edx, [esp + 0x24] # client ID
mov edx, dword [0x00634DD4 + edx * 4]
imul ecx, ecx, 0x0C
mov edx, [edx + ecx + 0x264]
cmp edx, 450
jb decr_alpha
mov byte [eax + 0x002F], 0xFF
jmp skip
decr_alpha:
xor edx, edx
lea ecx, [edx - 1]
mov dl, [eax + 0x002F]
sub edx, 8
cmovl edx, ecx
mov [eax + 0x002F], dl
skip:
pop eax
pop edx
lea ecx, [edx + 0x20]
cmp dword [eax + 0x6C], ebp
cmovz edx, ecx
jmp edx
code_end:
.data 0
.data 0
@@ -1,60 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
# Xbox port by fuzziqersoftware
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksXB
.data 0x00277C2A
.data 5
.binary E8A7340600
.data 0x002DB0D6
.deltaof code_start, code_end
code_start:
push eax
mov ecx, [esp + 0x20]
test cl, 0x02 # Slot 2 or 3
jz skip
mov eax, [eax + 0x28]
test eax, eax
jz skip
mov eax, [eax]
test eax, eax
jz skip
mov edx, [esp + 0x24] # client ID
mov edx, dword [0x006322BC + edx * 4]
imul ecx, ecx, 0x0C
mov edx, [edx + ecx + 0x264]
cmp edx, 450
jb decr_alpha
mov byte [eax + 0x002F], 0xFF
jmp skip
decr_alpha:
xor edx, edx
lea ecx, [edx - 1]
mov dl, [eax + 0x002F]
sub edx, 8
cmovl edx, ecx
mov [eax + 0x002F], dl
skip:
pop eax
pop edx
lea ecx, [edx + 0x20]
cmp dword [eax + 0x6C], ebp
cmovz edx, ecx
jmp edx
code_end:
.data 0
.data 0
@@ -1,60 +0,0 @@
.meta name="Blinking SD"
.meta description="Makes the Shifta\nand Deband status\nicons flicker when\nthey are about\nto run out"
# Original code by Ralf @ GC-Forever and Aleron Ives
# https://www.gc-forever.com/forums/viewtopic.php?t=2050
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
# Xbox port by fuzziqersoftware
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksXB
.data 0x00277DFA
.data 5
.binary E827380600
.data 0x002DB626
.deltaof code_start, code_end
code_start:
push eax
mov ecx, [esp + 0x20]
test cl, 0x02 # Slot 2 or 3
jz skip
mov eax, [eax + 0x28]
test eax, eax
jz skip
mov eax, [eax]
test eax, eax
jz skip
mov edx, [esp + 0x24] # client ID
mov edx, dword [0x00632654 + edx * 4]
imul ecx, ecx, 0x0C
mov edx, [edx + ecx + 0x264]
cmp edx, 450
jb decr_alpha
mov byte [eax + 0x002F], 0xFF
jmp skip
decr_alpha:
xor edx, edx
lea ecx, [edx - 1]
mov dl, [eax + 0x002F]
sub edx, 8
cmovl edx, ecx
mov [eax + 0x002F], dl
skip:
pop eax
pop edx
lea ecx, [edx + 0x20]
cmp dword [eax + 0x6C], ebp
cmovz edx, ecx
jmp edx
code_end:
.data 0
.data 0
@@ -5,17 +5,19 @@
# https://www.gc-forever.com/forums/viewtopic.php?t=2049
# Xbox port by fuzziqersoftware
.versions 4OJB 4OJD 4OJU 4OED 4OEU 4OPD 4OPU
entry_ptr:
reloc0:
.offsetof start
start:
.include WriteCodeBlocksXB
.data 0x00277C0A
.data <VERS 0x0027782A 0x00277ADA 0x00277EEA 0x00277C0A 0x00277D2A 0x00277C2A 0x00277DFA>
.data 5
.binary E897340600
.binary <VERS E807190600 E827220600 E8E7360600 E897340600 E877380600 E8A7340600 E827380600>
.data 0x002DB0A6
.data <VERS 0x002D9136 0x002D9D06 0x002DB5D6 0x002DB0A6 0x002DB5A6 0x002DB0D6 0x002DB626>
.deltaof code_start, code_end
code_start:
push eax
@@ -30,7 +32,7 @@ code_start:
jz skip
mov edx, [esp + 0x24] # client ID
mov edx, dword [0x006322BC + edx * 4]
mov edx, dword [<VERS 0x0062CCFC 0x0062D29C 0x00634DD4 0x006322BC 0x00631B54 0x006322BC 0x00632654> + edx * 4]
imul ecx, ecx, 0x0C
mov edx, [edx + ecx + 0x264]
cmp edx, 450