more patches

This commit is contained in:
Martin Michelsen
2025-01-28 22:56:02 -08:00
parent b7293e7cb0
commit 24722f0a27
16 changed files with 463 additions and 7 deletions
@@ -0,0 +1,32 @@
# 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
@@ -20,7 +20,7 @@ p1_1e:
.data 0x00173A42
.deltaof p1_2s, p1_2e
p1_2s:
fld st0, dword [esp + 0x20]
fld st0, dword [esp + 0x1C]
fadd st0, st0
fchs st0
ret
@@ -20,7 +20,7 @@ p1_1e:
.data 0x00173A52
.deltaof p1_2s, p1_2e
p1_2s:
fld st0, dword [esp + 0x20]
fld st0, dword [esp + 0x1C]
fadd st0, st0
fchs st0
ret
@@ -20,7 +20,7 @@ p1_1e:
.data 0x00173912
.deltaof p1_2s, p1_2e
p1_2s:
fld st0, dword [esp + 0x20]
fld st0, dword [esp + 0x1C]
fadd st0, st0
fchs st0
ret
@@ -20,7 +20,7 @@ p1_1e:
.data 0x00173A02
.deltaof p1_2s, p1_2e
p1_2s:
fld st0, dword [esp + 0x20]
fld st0, dword [esp + 0x1C]
fadd st0, st0
fchs st0
ret
@@ -20,7 +20,7 @@ p1_1e:
.data 0x00173AE2
.deltaof p1_2s, p1_2e
p1_2s:
fld st0, dword [esp + 0x20]
fld st0, dword [esp + 0x1C]
fadd st0, st0
fchs st0
ret
@@ -20,7 +20,7 @@ p1_1e:
.data 0x00173A62
.deltaof p1_2s, p1_2e
p1_2s:
fld st0, dword [esp + 0x20]
fld st0, dword [esp + 0x1C]
fadd st0, st0
fchs st0
ret
@@ -20,7 +20,7 @@ p1_1e:
.data 0x00173A12
.deltaof p1_2s, p1_2e
p1_2s:
fld st0, dword [esp + 0x20]
fld st0, dword [esp + 0x1C]
fadd st0, st0
fchs st0
ret
@@ -1,3 +1,7 @@
# WARNING: FlickeringStatusIcons patch starts immediately after this; if the
# size of this is changed, that patch will have to be changed too
# Replacement for handle_0E (do nothing)
ret
# Call table: 2 functions (on_window_created, on_hp_updated)
@@ -0,0 +1,60 @@
.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 0x00277C0A
.data 5
.binary E897340600
.data 0x002DB0A6
.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
@@ -0,0 +1,60 @@
.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
@@ -0,0 +1,60 @@
.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
@@ -0,0 +1,60 @@
.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
@@ -0,0 +1,60 @@
.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
@@ -0,0 +1,60 @@
.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
@@ -0,0 +1,60 @@
.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