update enemy HP bars patch

This commit is contained in:
Martin Michelsen
2024-06-28 19:24:39 -07:00
parent 2ff9df19c8
commit c250a2dbc4
18 changed files with 665 additions and 106 deletions
@@ -0,0 +1,30 @@
ret
# Call table: 2 functions (on_window_created, on_hp_updated)
jmp on_window_created
on_hp_updated:
call rewrite_string
movsx ecx, word [ebp + 0x02BC] # Replaced opcode at callsite
ret
on_window_created:
mov [0x00010C08], eax # prev_desc
push ebp
mov ebp, ebx
call rewrite_string
pop ebp
mov dword [esp + 4], 0x00010C1C # Change first argument to desc_buf
jmp [0x00010C04] # Call original function
rewrite_string:
movsx eax, word [ebp + 0x02BC] # max HP
push eax
movsx eax, word [ebp + 0x0330] # current HP
push eax
push dword [0x00010C08] # prev_desc
push 0x00010C0C # desc_template
push 0x00010C1C # desc_buf
call [0x00010C00] # sprintf
add esp, 0x14
ret
@@ -9,30 +9,68 @@ reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
# region @ 8000B650 (108 bytes)
.data 0x8000B650 # address
.data 0x0000006C # size
.data 0x3CA08001 # 8000B650 => lis r5, 0x8001
.data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944]
.data 0x7FFEFB78 # 8000B658 => mr r30, r31
.data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C]
.data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */
.data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8]
.data 0x3CA08001 # 8000B668 => lis r5, 0x8001
.data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3
.data 0x7C0802A6 # 8000B670 => mflr r0
.data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0
.data 0x7C651B78 # 8000B678 => mr r5, r3
.data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8]
.data 0x3C808000 # 8000B680 => lis r4, 0x8000
.data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC
.data 0x38640018 # 8000B688 => addi r3, r4, 0x0018
.data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6
.data 0x4838BB3D # 8000B690 => bl +0x0038BB3C /* 803971CC */
.data 0x3C808000 # 8000B694 => lis r4, 0x8000
.data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4
.data 0x7F83E378 # 8000B69C => mr r3, r28
.data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004]
.data 0x7C0803A6 # 8000B6A4 => mtlr r0
.data 0x4E800020 # 8000B6A8 => blr
.data 0x25730A0A # 8000B6AC => .invalid
.data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */
.data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564
.data 0x00000000 # 8000B6B8 => .invalid
# region @ 80261B38 (4 bytes)
.data 0x80261B38 # address
.data 0x00000004 # size
.data 0x4BDA9B19 # 80261B38 => bl -0x002564E8 /* 8000B650 */
# region @ 80261B9C (4 bytes)
.data 0x80261B9C # address
.data 0x00000004 # size
.data 0x4BFE1545 # 80261B9C => bl -0x0001EABC /* 802430E0 */
# region @ 80261CF8 (4 bytes)
.data 0x80261CF8 # address
.data 0x00000004 # size
.data 0x4BDA996D # 80261CF8 => bl -0x00256694 /* 8000B664 */
# region @ 804CB610 (4 bytes)
.data 0x804CB610 # address
.data 0x00000004 # size
.data 0x42640000 # 804CB610 => bc 19, 4, +0x00000000 /* 804CB610 */
.data 0x42960000 # 804CB610 => bc 20, 22, +0x00000000 /* 804CB610 */
# region @ 804CB61C (4 bytes)
.data 0x804CB61C # address
.data 0x00000004 # size
.data 0x42640000 # 804CB61C => bc 19, 4, +0x00000000 /* 804CB61C */
.data 0x42960000 # 804CB61C => bc 20, 22, +0x00000000 /* 804CB61C */
# region @ 804CB628 (4 bytes)
.data 0x804CB628 # address
.data 0x00000004 # size
.data 0x42640000 # 804CB628 => bc 19, 4, +0x00000000 /* 804CB628 */
.data 0x42960000 # 804CB628 => bc 20, 22, +0x00000000 /* 804CB628 */
# region @ 804CB634 (4 bytes)
.data 0x804CB634 # address
.data 0x00000004 # size
.data 0x42640000 # 804CB634 => bc 19, 4, +0x00000000 /* 804CB634 */
.data 0x42960000 # 804CB634 => bc 20, 22, +0x00000000 /* 804CB634 */
# region @ 804CB6D0 (4 bytes)
.data 0x804CB6D0 # address
.data 0x00000004 # size
.data 0x42300000 # 804CB6D0 => bdnz cr4, +0x00000000 /* 804CB6D0 */
.data 0x42780000 # 804CB6D0 => bc 19, 24, +0x00000000 /* 804CB6D0 */
# region @ 804CB6EC (4 bytes)
.data 0x804CB6EC # address
.data 0x00000004 # size
@@ -40,7 +78,7 @@ start:
# region @ 805CC8C4 (4 bytes)
.data 0x805CC8C4 # address
.data 0x00000004 # size
.data 0x42A00000 # 805CC8C4 => b +0x00000000 /* 805CC8C4 */
.data 0x42C00000 # 805CC8C4 => b +0x00000000 /* 805CC8C4 */
# end sentinel
.data 0x00000000 # address
.data 0x00000000 # size
@@ -9,30 +9,68 @@ reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
# region @ 8000B650 (108 bytes)
.data 0x8000B650 # address
.data 0x0000006C # size
.data 0x3CA08001 # 8000B650 => lis r5, 0x8001
.data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944]
.data 0x7FFEFB78 # 8000B658 => mr r30, r31
.data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C]
.data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */
.data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8]
.data 0x3CA08001 # 8000B668 => lis r5, 0x8001
.data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3
.data 0x7C0802A6 # 8000B670 => mflr r0
.data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0
.data 0x7C651B78 # 8000B678 => mr r5, r3
.data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8]
.data 0x3C808000 # 8000B680 => lis r4, 0x8000
.data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC
.data 0x38640018 # 8000B688 => addi r3, r4, 0x0018
.data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6
.data 0x4838BB95 # 8000B690 => bl +0x0038BB94 /* 80397224 */
.data 0x3C808000 # 8000B694 => lis r4, 0x8000
.data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4
.data 0x7F83E378 # 8000B69C => mr r3, r28
.data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004]
.data 0x7C0803A6 # 8000B6A4 => mtlr r0
.data 0x4E800020 # 8000B6A8 => blr
.data 0x25730A0A # 8000B6AC => .invalid
.data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */
.data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564
.data 0x00000000 # 8000B6B8 => .invalid
# region @ 80261B38 (4 bytes)
.data 0x80261B38 # address
.data 0x00000004 # size
.data 0x4BDA9B19 # 80261B38 => bl -0x002564E8 /* 8000B650 */
# region @ 80261B9C (4 bytes)
.data 0x80261B9C # address
.data 0x00000004 # size
.data 0x4BFE1545 # 80261B9C => bl -0x0001EABC /* 802430E0 */
# region @ 80261CF8 (4 bytes)
.data 0x80261CF8 # address
.data 0x00000004 # size
.data 0x4BDA996D # 80261CF8 => bl -0x00256694 /* 8000B664 */
# region @ 804CBAF0 (4 bytes)
.data 0x804CBAF0 # address
.data 0x00000004 # size
.data 0x42640000 # 804CBAF0 => bc 19, 4, +0x00000000 /* 804CBAF0 */
.data 0x42960000 # 804CBAF0 => bc 20, 22, +0x00000000 /* 804CBAF0 */
# region @ 804CBAFC (4 bytes)
.data 0x804CBAFC # address
.data 0x00000004 # size
.data 0x42640000 # 804CBAFC => bc 19, 4, +0x00000000 /* 804CBAFC */
.data 0x42960000 # 804CBAFC => bc 20, 22, +0x00000000 /* 804CBAFC */
# region @ 804CBB08 (4 bytes)
.data 0x804CBB08 # address
.data 0x00000004 # size
.data 0x42640000 # 804CBB08 => bc 19, 4, +0x00000000 /* 804CBB08 */
.data 0x42960000 # 804CBB08 => bc 20, 22, +0x00000000 /* 804CBB08 */
# region @ 804CBB14 (4 bytes)
.data 0x804CBB14 # address
.data 0x00000004 # size
.data 0x42640000 # 804CBB14 => bc 19, 4, +0x00000000 /* 804CBB14 */
.data 0x42960000 # 804CBB14 => bc 20, 22, +0x00000000 /* 804CBB14 */
# region @ 804CBBB0 (4 bytes)
.data 0x804CBBB0 # address
.data 0x00000004 # size
.data 0x42300000 # 804CBBB0 => bdnz cr4, +0x00000000 /* 804CBBB0 */
.data 0x42780000 # 804CBBB0 => bc 19, 24, +0x00000000 /* 804CBBB0 */
# region @ 804CBBCC (4 bytes)
.data 0x804CBBCC # address
.data 0x00000004 # size
@@ -40,7 +78,7 @@ start:
# region @ 805D38E4 (4 bytes)
.data 0x805D38E4 # address
.data 0x00000004 # size
.data 0x42A00000 # 805D38E4 => b +0x00000000 /* 805D38E4 */
.data 0x42C00000 # 805D38E4 => b +0x00000000 /* 805D38E4 */
# end sentinel
.data 0x00000000 # address
.data 0x00000000 # size
@@ -9,30 +9,68 @@ reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
# region @ 8000B650 (108 bytes)
.data 0x8000B650 # address
.data 0x0000006C # size
.data 0x3CA08001 # 8000B650 => lis r5, 0x8001
.data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944]
.data 0x7FFEFB78 # 8000B658 => mr r30, r31
.data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C]
.data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */
.data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8]
.data 0x3CA08001 # 8000B668 => lis r5, 0x8001
.data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3
.data 0x7C0802A6 # 8000B670 => mflr r0
.data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0
.data 0x7C651B78 # 8000B678 => mr r5, r3
.data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8]
.data 0x3C808000 # 8000B680 => lis r4, 0x8000
.data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC
.data 0x38640018 # 8000B688 => addi r3, r4, 0x0018
.data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6
.data 0x4838F295 # 8000B690 => bl +0x0038F294 /* 8039A924 */
.data 0x3C808000 # 8000B694 => lis r4, 0x8000
.data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4
.data 0x7F83E378 # 8000B69C => mr r3, r28
.data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004]
.data 0x7C0803A6 # 8000B6A4 => mtlr r0
.data 0x4E800020 # 8000B6A8 => blr
.data 0x25730A0A # 8000B6AC => .invalid
.data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */
.data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564
.data 0x00000000 # 8000B6B8 => .invalid
# region @ 80262EF8 (4 bytes)
.data 0x80262EF8 # address
.data 0x00000004 # size
.data 0x4BDA8759 # 80262EF8 => bl -0x002578A8 /* 8000B650 */
# region @ 80262F5C (4 bytes)
.data 0x80262F5C # address
.data 0x00000004 # size
.data 0x4BFE12B1 # 80262F5C => bl -0x0001ED50 /* 8024420C */
# region @ 802630B8 (4 bytes)
.data 0x802630B8 # address
.data 0x00000004 # size
.data 0x4BDA85AD # 802630B8 => bl -0x00257A54 /* 8000B664 */
# region @ 804D0158 (4 bytes)
.data 0x804D0158 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0158 => bc 19, 4, +0x00000000 /* 804D0158 */
.data 0x42960000 # 804D0158 => bc 20, 22, +0x00000000 /* 804D0158 */
# region @ 804D0164 (4 bytes)
.data 0x804D0164 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0164 => bc 19, 4, +0x00000000 /* 804D0164 */
.data 0x42960000 # 804D0164 => bc 20, 22, +0x00000000 /* 804D0164 */
# region @ 804D0170 (4 bytes)
.data 0x804D0170 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0170 => bc 19, 4, +0x00000000 /* 804D0170 */
.data 0x42960000 # 804D0170 => bc 20, 22, +0x00000000 /* 804D0170 */
# region @ 804D017C (4 bytes)
.data 0x804D017C # address
.data 0x00000004 # size
.data 0x42640000 # 804D017C => bc 19, 4, +0x00000000 /* 804D017C */
.data 0x42960000 # 804D017C => bc 20, 22, +0x00000000 /* 804D017C */
# region @ 804D0218 (4 bytes)
.data 0x804D0218 # address
.data 0x00000004 # size
.data 0x42300000 # 804D0218 => bdnz cr4, +0x00000000 /* 804D0218 */
.data 0x42780000 # 804D0218 => bc 19, 24, +0x00000000 /* 804D0218 */
# region @ 804D0234 (4 bytes)
.data 0x804D0234 # address
.data 0x00000004 # size
@@ -40,7 +78,7 @@ start:
# region @ 805DD104 (4 bytes)
.data 0x805DD104 # address
.data 0x00000004 # size
.data 0x42A00000 # 805DD104 => b +0x00000000 /* 805DD104 */
.data 0x42C00000 # 805DD104 => b +0x00000000 /* 805DD104 */
# end sentinel
.data 0x00000000 # address
.data 0x00000000 # size
@@ -9,30 +9,68 @@ reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
# region @ 8000B650 (108 bytes)
.data 0x8000B650 # address
.data 0x0000006C # size
.data 0x3CA08001 # 8000B650 => lis r5, 0x8001
.data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944]
.data 0x7FFEFB78 # 8000B658 => mr r30, r31
.data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C]
.data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */
.data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8]
.data 0x3CA08001 # 8000B668 => lis r5, 0x8001
.data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3
.data 0x7C0802A6 # 8000B670 => mflr r0
.data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0
.data 0x7C651B78 # 8000B678 => mr r5, r3
.data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8]
.data 0x3C808000 # 8000B680 => lis r4, 0x8000
.data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC
.data 0x38640018 # 8000B688 => addi r3, r4, 0x0018
.data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6
.data 0x4838A86D # 8000B690 => bl +0x0038A86C /* 80395EFC */
.data 0x3C808000 # 8000B694 => lis r4, 0x8000
.data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4
.data 0x7F83E378 # 8000B69C => mr r3, r28
.data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004]
.data 0x7C0803A6 # 8000B6A4 => mtlr r0
.data 0x4E800020 # 8000B6A8 => blr
.data 0x25730A0A # 8000B6AC => .invalid
.data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */
.data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564
.data 0x00000000 # 8000B6B8 => .invalid
# region @ 80261260 (4 bytes)
.data 0x80261260 # address
.data 0x00000004 # size
.data 0x4BDAA3F1 # 80261260 => bl -0x00255C10 /* 8000B650 */
# region @ 802612C4 (4 bytes)
.data 0x802612C4 # address
.data 0x00000004 # size
.data 0x4BFE1541 # 802612C4 => bl -0x0001EAC0 /* 80242804 */
# region @ 80261420 (4 bytes)
.data 0x80261420 # address
.data 0x00000004 # size
.data 0x4BDAA245 # 80261420 => bl -0x00255DBC /* 8000B664 */
# region @ 804CAE40 (4 bytes)
.data 0x804CAE40 # address
.data 0x00000004 # size
.data 0x42640000 # 804CAE40 => bc 19, 4, +0x00000000 /* 804CAE40 */
.data 0x42960000 # 804CAE40 => bc 20, 22, +0x00000000 /* 804CAE40 */
# region @ 804CAE4C (4 bytes)
.data 0x804CAE4C # address
.data 0x00000004 # size
.data 0x42640000 # 804CAE4C => bc 19, 4, +0x00000000 /* 804CAE4C */
.data 0x42960000 # 804CAE4C => bc 20, 22, +0x00000000 /* 804CAE4C */
# region @ 804CAE58 (4 bytes)
.data 0x804CAE58 # address
.data 0x00000004 # size
.data 0x42640000 # 804CAE58 => bc 19, 4, +0x00000000 /* 804CAE58 */
.data 0x42960000 # 804CAE58 => bc 20, 22, +0x00000000 /* 804CAE58 */
# region @ 804CAE64 (4 bytes)
.data 0x804CAE64 # address
.data 0x00000004 # size
.data 0x42640000 # 804CAE64 => bc 19, 4, +0x00000000 /* 804CAE64 */
.data 0x42960000 # 804CAE64 => bc 20, 22, +0x00000000 /* 804CAE64 */
# region @ 804CAF00 (4 bytes)
.data 0x804CAF00 # address
.data 0x00000004 # size
.data 0x42300000 # 804CAF00 => bdnz cr4, +0x00000000 /* 804CAF00 */
.data 0x42780000 # 804CAF00 => bc 19, 24, +0x00000000 /* 804CAF00 */
# region @ 804CAF1C (4 bytes)
.data 0x804CAF1C # address
.data 0x00000004 # size
@@ -40,7 +78,7 @@ start:
# region @ 805CBFBC (4 bytes)
.data 0x805CBFBC # address
.data 0x00000004 # size
.data 0x42A00000 # 805CBFBC => b +0x00000000 /* 805CBFBC */
.data 0x42C00000 # 805CBFBC => b +0x00000000 /* 805CBFBC */
# end sentinel
.data 0x00000000 # address
.data 0x00000000 # size
@@ -9,30 +9,68 @@ reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
# region @ 8000B650 (108 bytes)
.data 0x8000B650 # address
.data 0x0000006C # size
.data 0x3CA08001 # 8000B650 => lis r5, 0x8001
.data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944]
.data 0x7FFEFB78 # 8000B658 => mr r30, r31
.data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C]
.data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */
.data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8]
.data 0x3CA08001 # 8000B668 => lis r5, 0x8001
.data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3
.data 0x7C0802A6 # 8000B670 => mflr r0
.data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0
.data 0x7C651B78 # 8000B678 => mr r5, r3
.data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8]
.data 0x3C808000 # 8000B680 => lis r4, 0x8000
.data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC
.data 0x38640018 # 8000B688 => addi r3, r4, 0x0018
.data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6
.data 0x4838D275 # 8000B690 => bl +0x0038D274 /* 80398904 */
.data 0x3C808000 # 8000B694 => lis r4, 0x8000
.data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4
.data 0x7F83E378 # 8000B69C => mr r3, r28
.data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004]
.data 0x7C0803A6 # 8000B6A4 => mtlr r0
.data 0x4E800020 # 8000B6A8 => blr
.data 0x25730A0A # 8000B6AC => .invalid
.data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */
.data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564
.data 0x00000000 # 8000B6B8 => .invalid
# region @ 80261E38 (4 bytes)
.data 0x80261E38 # address
.data 0x00000004 # size
.data 0x4BDA9819 # 80261E38 => bl -0x002567E8 /* 8000B650 */
# region @ 80261E9C (4 bytes)
.data 0x80261E9C # address
.data 0x00000004 # size
.data 0x4BFE1349 # 80261E9C => bl -0x0001ECB8 /* 802431E4 */
# region @ 80261FF8 (4 bytes)
.data 0x80261FF8 # address
.data 0x00000004 # size
.data 0x4BDA966D # 80261FF8 => bl -0x00256994 /* 8000B664 */
# region @ 804CE590 (4 bytes)
.data 0x804CE590 # address
.data 0x00000004 # size
.data 0x42640000 # 804CE590 => bc 19, 4, +0x00000000 /* 804CE590 */
.data 0x42960000 # 804CE590 => bc 20, 22, +0x00000000 /* 804CE590 */
# region @ 804CE59C (4 bytes)
.data 0x804CE59C # address
.data 0x00000004 # size
.data 0x42640000 # 804CE59C => bc 19, 4, +0x00000000 /* 804CE59C */
.data 0x42960000 # 804CE59C => bc 20, 22, +0x00000000 /* 804CE59C */
# region @ 804CE5A8 (4 bytes)
.data 0x804CE5A8 # address
.data 0x00000004 # size
.data 0x42640000 # 804CE5A8 => bc 19, 4, +0x00000000 /* 804CE5A8 */
.data 0x42960000 # 804CE5A8 => bc 20, 22, +0x00000000 /* 804CE5A8 */
# region @ 804CE5B4 (4 bytes)
.data 0x804CE5B4 # address
.data 0x00000004 # size
.data 0x42640000 # 804CE5B4 => bc 19, 4, +0x00000000 /* 804CE5B4 */
.data 0x42960000 # 804CE5B4 => bc 20, 22, +0x00000000 /* 804CE5B4 */
# region @ 804CE650 (4 bytes)
.data 0x804CE650 # address
.data 0x00000004 # size
.data 0x42300000 # 804CE650 => bdnz cr4, +0x00000000 /* 804CE650 */
.data 0x42780000 # 804CE650 => bc 19, 24, +0x00000000 /* 804CE650 */
# region @ 804CE66C (4 bytes)
.data 0x804CE66C # address
.data 0x00000004 # size
@@ -40,7 +78,7 @@ start:
# region @ 805D65BC (4 bytes)
.data 0x805D65BC # address
.data 0x00000004 # size
.data 0x42A00000 # 805D65BC => b +0x00000000 /* 805D65BC */
.data 0x42C00000 # 805D65BC => b +0x00000000 /* 805D65BC */
# end sentinel
.data 0x00000000 # address
.data 0x00000000 # size
@@ -9,30 +9,68 @@ reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
# region @ 8000B650 (108 bytes)
.data 0x8000B650 # address
.data 0x0000006C # size
.data 0x3CA08001 # 8000B650 => lis r5, 0x8001
.data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944]
.data 0x7FFEFB78 # 8000B658 => mr r30, r31
.data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C]
.data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */
.data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8]
.data 0x3CA08001 # 8000B668 => lis r5, 0x8001
.data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3
.data 0x7C0802A6 # 8000B670 => mflr r0
.data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0
.data 0x7C651B78 # 8000B678 => mr r5, r3
.data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8]
.data 0x3C808000 # 8000B680 => lis r4, 0x8000
.data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC
.data 0x38640018 # 8000B688 => addi r3, r4, 0x0018
.data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6
.data 0x4838F115 # 8000B690 => bl +0x0038F114 /* 8039A7A4 */
.data 0x3C808000 # 8000B694 => lis r4, 0x8000
.data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4
.data 0x7F83E378 # 8000B69C => mr r3, r28
.data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004]
.data 0x7C0803A6 # 8000B6A4 => mtlr r0
.data 0x4E800020 # 8000B6A8 => blr
.data 0x25730A0A # 8000B6AC => .invalid
.data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */
.data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564
.data 0x00000000 # 8000B6B8 => .invalid
# region @ 80262E80 (4 bytes)
.data 0x80262E80 # address
.data 0x00000004 # size
.data 0x4BDA87D1 # 80262E80 => bl -0x00257830 /* 8000B650 */
# region @ 80262EE4 (4 bytes)
.data 0x80262EE4 # address
.data 0x00000004 # size
.data 0x4BFE0665 # 80262EE4 => bl -0x0001F99C /* 80243548 */
# region @ 80263040 (4 bytes)
.data 0x80263040 # address
.data 0x00000004 # size
.data 0x4BDA8625 # 80263040 => bl -0x002579DC /* 8000B664 */
# region @ 804D0AE0 (4 bytes)
.data 0x804D0AE0 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0AE0 => bc 19, 4, +0x00000000 /* 804D0AE0 */
.data 0x42960000 # 804D0AE0 => bc 20, 22, +0x00000000 /* 804D0AE0 */
# region @ 804D0AEC (4 bytes)
.data 0x804D0AEC # address
.data 0x00000004 # size
.data 0x42640000 # 804D0AEC => bc 19, 4, +0x00000000 /* 804D0AEC */
.data 0x42960000 # 804D0AEC => bc 20, 22, +0x00000000 /* 804D0AEC */
# region @ 804D0AF8 (4 bytes)
.data 0x804D0AF8 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0AF8 => bc 19, 4, +0x00000000 /* 804D0AF8 */
.data 0x42960000 # 804D0AF8 => bc 20, 22, +0x00000000 /* 804D0AF8 */
# region @ 804D0B04 (4 bytes)
.data 0x804D0B04 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0B04 => bc 19, 4, +0x00000000 /* 804D0B04 */
.data 0x42960000 # 804D0B04 => bc 20, 22, +0x00000000 /* 804D0B04 */
# region @ 804D0BA0 (4 bytes)
.data 0x804D0BA0 # address
.data 0x00000004 # size
.data 0x42300000 # 804D0BA0 => bdnz cr4, +0x00000000 /* 804D0BA0 */
.data 0x42780000 # 804D0BA0 => bc 19, 24, +0x00000000 /* 804D0BA0 */
# region @ 804D0BBC (4 bytes)
.data 0x804D0BBC # address
.data 0x00000004 # size
@@ -40,7 +78,7 @@ start:
# region @ 805DDA5C (4 bytes)
.data 0x805DDA5C # address
.data 0x00000004 # size
.data 0x42A00000 # 805DDA5C => b +0x00000000 /* 805DDA5C */
.data 0x42C00000 # 805DDA5C => b +0x00000000 /* 805DDA5C */
# end sentinel
.data 0x00000000 # address
.data 0x00000000 # size
@@ -9,30 +9,68 @@ reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
# region @ 8000B650 (108 bytes)
.data 0x8000B650 # address
.data 0x0000006C # size
.data 0x3CA08001 # 8000B650 => lis r5, 0x8001
.data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944]
.data 0x7FFEFB78 # 8000B658 => mr r30, r31
.data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C]
.data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */
.data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8]
.data 0x3CA08001 # 8000B668 => lis r5, 0x8001
.data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3
.data 0x7C0802A6 # 8000B670 => mflr r0
.data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0
.data 0x7C651B78 # 8000B678 => mr r5, r3
.data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8]
.data 0x3C808000 # 8000B680 => lis r4, 0x8000
.data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC
.data 0x38640018 # 8000B688 => addi r3, r4, 0x0018
.data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6
.data 0x4838EEC5 # 8000B690 => bl +0x0038EEC4 /* 8039A554 */
.data 0x3C808000 # 8000B694 => lis r4, 0x8000
.data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4
.data 0x7F83E378 # 8000B69C => mr r3, r28
.data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004]
.data 0x7C0803A6 # 8000B6A4 => mtlr r0
.data 0x4E800020 # 8000B6A8 => blr
.data 0x25730A0A # 8000B6AC => .invalid
.data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */
.data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564
.data 0x00000000 # 8000B6B8 => .invalid
# region @ 80262C34 (4 bytes)
.data 0x80262C34 # address
.data 0x00000004 # size
.data 0x4BDA8A1D # 80262C34 => bl -0x002575E4 /* 8000B650 */
# region @ 80262C98 (4 bytes)
.data 0x80262C98 # address
.data 0x00000004 # size
.data 0x4BFE1241 # 80262C98 => bl -0x0001EDC0 /* 80243ED8 */
# region @ 80262DF4 (4 bytes)
.data 0x80262DF4 # address
.data 0x00000004 # size
.data 0x4BDA8871 # 80262DF4 => bl -0x00257790 /* 8000B664 */
# region @ 804D0880 (4 bytes)
.data 0x804D0880 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0880 => bc 19, 4, +0x00000000 /* 804D0880 */
.data 0x42960000 # 804D0880 => bc 20, 22, +0x00000000 /* 804D0880 */
# region @ 804D088C (4 bytes)
.data 0x804D088C # address
.data 0x00000004 # size
.data 0x42640000 # 804D088C => bc 19, 4, +0x00000000 /* 804D088C */
.data 0x42960000 # 804D088C => bc 20, 22, +0x00000000 /* 804D088C */
# region @ 804D0898 (4 bytes)
.data 0x804D0898 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0898 => bc 19, 4, +0x00000000 /* 804D0898 */
.data 0x42960000 # 804D0898 => bc 20, 22, +0x00000000 /* 804D0898 */
# region @ 804D08A4 (4 bytes)
.data 0x804D08A4 # address
.data 0x00000004 # size
.data 0x42640000 # 804D08A4 => bc 19, 4, +0x00000000 /* 804D08A4 */
.data 0x42960000 # 804D08A4 => bc 20, 22, +0x00000000 /* 804D08A4 */
# region @ 804D0940 (4 bytes)
.data 0x804D0940 # address
.data 0x00000004 # size
.data 0x42300000 # 804D0940 => bdnz cr4, +0x00000000 /* 804D0940 */
.data 0x42780000 # 804D0940 => bc 19, 24, +0x00000000 /* 804D0940 */
# region @ 804D095C (4 bytes)
.data 0x804D095C # address
.data 0x00000004 # size
@@ -40,7 +78,7 @@ start:
# region @ 805DD7FC (4 bytes)
.data 0x805DD7FC # address
.data 0x00000004 # size
.data 0x42A00000 # 805DD7FC => b +0x00000000 /* 805DD7FC */
.data 0x42C00000 # 805DD7FC => b +0x00000000 /* 805DD7FC */
# end sentinel
.data 0x00000000 # address
.data 0x00000000 # size
@@ -9,30 +9,68 @@ reloc0:
.offsetof start
start:
.include WriteCodeBlocksGC
# region @ 8000B650 (108 bytes)
.data 0x8000B650 # address
.data 0x0000006C # size
.data 0x3CA08001 # 8000B650 => lis r5, 0x8001
.data 0x8065B6BC # 8000B654 => lwz r3, [r5 - 0x4944]
.data 0x7FFEFB78 # 8000B658 => mr r30, r31
.data 0xA8DE032C # 8000B65C => lha r6, [r30 + 0x032C]
.data 0x48000010 # 8000B660 => b +0x00000010 /* 8000B670 */
.data 0xA8DE02B8 # 8000B664 => lha r6, [r30 + 0x02B8]
.data 0x3CA08001 # 8000B668 => lis r5, 0x8001
.data 0x9065B6BC # 8000B66C => stw [r5 - 0x4944], r3
.data 0x7C0802A6 # 8000B670 => mflr r0
.data 0x9005B6C0 # 8000B674 => stw [r5 - 0x4940], r0
.data 0x7C651B78 # 8000B678 => mr r5, r3
.data 0xA8FE02B8 # 8000B67C => lha r7, [r30 + 0x02B8]
.data 0x3C808000 # 8000B680 => lis r4, 0x8000
.data 0x6084B6AC # 8000B684 => ori r4, r4, 0xB6AC
.data 0x38640018 # 8000B688 => addi r3, r4, 0x0018
.data 0x4CC63182 # 8000B68C => crxor crb6, crb6, crb6
.data 0x4838DD85 # 8000B690 => bl +0x0038DD84 /* 80399414 */
.data 0x3C808000 # 8000B694 => lis r4, 0x8000
.data 0x6084B6C4 # 8000B698 => ori r4, r4, 0xB6C4
.data 0x7F83E378 # 8000B69C => mr r3, r28
.data 0x8004FFFC # 8000B6A0 => lwz r0, [r4 - 0x0004]
.data 0x7C0803A6 # 8000B6A4 => mtlr r0
.data 0x4E800020 # 8000B6A8 => blr
.data 0x25730A0A # 8000B6AC => .invalid
.data 0x48503A25 # 8000B6B0 => bl +0x00503A24 /* 8050F0D4 */
.data 0x642F2564 # 8000B6B4 => oris r15, r1, 0x2564
.data 0x00000000 # 8000B6B8 => .invalid
# region @ 80262740 (4 bytes)
.data 0x80262740 # address
.data 0x00000004 # size
.data 0x4BDA8F11 # 80262740 => bl -0x002570F0 /* 8000B650 */
# region @ 802627A4 (4 bytes)
.data 0x802627A4 # address
.data 0x00000004 # size
.data 0x4BFE12B1 # 802627A4 => bl -0x0001ED50 /* 80243A54 */
# region @ 80262900 (4 bytes)
.data 0x80262900 # address
.data 0x00000004 # size
.data 0x4BDA8D65 # 80262900 => bl -0x0025729C /* 8000B664 */
# region @ 804D0548 (4 bytes)
.data 0x804D0548 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0548 => bc 19, 4, +0x00000000 /* 804D0548 */
.data 0x42960000 # 804D0548 => bc 20, 22, +0x00000000 /* 804D0548 */
# region @ 804D0554 (4 bytes)
.data 0x804D0554 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0554 => bc 19, 4, +0x00000000 /* 804D0554 */
.data 0x42960000 # 804D0554 => bc 20, 22, +0x00000000 /* 804D0554 */
# region @ 804D0560 (4 bytes)
.data 0x804D0560 # address
.data 0x00000004 # size
.data 0x42640000 # 804D0560 => bc 19, 4, +0x00000000 /* 804D0560 */
.data 0x42960000 # 804D0560 => bc 20, 22, +0x00000000 /* 804D0560 */
# region @ 804D056C (4 bytes)
.data 0x804D056C # address
.data 0x00000004 # size
.data 0x42640000 # 804D056C => bc 19, 4, +0x00000000 /* 804D056C */
.data 0x42960000 # 804D056C => bc 20, 22, +0x00000000 /* 804D056C */
# region @ 804D0608 (4 bytes)
.data 0x804D0608 # address
.data 0x00000004 # size
.data 0x42300000 # 804D0608 => bdnz cr4, +0x00000000 /* 804D0608 */
.data 0x42780000 # 804D0608 => bc 19, 24, +0x00000000 /* 804D0608 */
# region @ 804D0624 (4 bytes)
.data 0x804D0624 # address
.data 0x00000004 # size
@@ -40,7 +78,7 @@ start:
# region @ 805D9344 (4 bytes)
.data 0x805D9344 # address
.data 0x00000004 # size
.data 0x42A00000 # 805D9344 => b +0x00000000 /* 805D9344 */
.data 0x42C00000 # 805D9344 => b +0x00000000 /* 805D9344 */
# end sentinel
.data 0x00000000 # address
.data 0x00000000 # size
@@ -12,30 +12,58 @@ start:
.include WriteCodeBlocksXB
.data 0x0026B063
.data 0x00000001
.binary A0
.binary C0
.data 0x0026B06C
.data 0x00000001
.binary DA
.binary FA
.data 0x0026B266
.data 0x00000004
.binary 836004FD
.data 0x0054A92C
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A938
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A944
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A950
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A9EC
.data 0x00000004
.data 0x42300000
.data 0x42780000
.data 0x0054AA08
.data 0x00000004
.data 0xFF00FF15
.data 0x00010C00
.deltaof str_data_start, str_data_end
str_data_start:
.data 0x00318308 # sprintf
.data 0x00264E80 # Original function for on_window_created callsite
.data 0x00000000
.binary "%s\n\nHP:%d/%d"
.data 0x00000000
.data 0x00000000
str_data_end:
.data 0x002DB050
.deltaof new_code_start, new_code_end
new_code_start:
.include EnemyHPBars-TextHandlerXB
new_code_end:
.data 0x0026B241
.data 0x00000007
nop
nop
.binary E80BFE0600 # call 002DB053 (on_hp_updated)
.data 0x0026B028
.data 0x00000005
.binary E824000700 # call 002DB051 (on_window_created)
.data 0x00000000
.data 0x00000000
@@ -12,30 +12,58 @@ start:
.include WriteCodeBlocksXB
.data 0x0026B193
.data 0x00000001
.binary A0
.binary C0
.data 0x0026B19C
.data 0x00000001
.binary DA
.binary FA
.data 0x0026B396
.data 0x00000004
.binary 836004FD
.data 0x0054A1CC
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A1D8
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A1E4
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A1F0
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A28C
.data 0x00000004
.data 0x42300000
.data 0x42780000
.data 0x0054A2A8
.data 0x00000004
.data 0xFF00FF15
.data 0x00010C00
.deltaof str_data_start, str_data_end
str_data_start:
.data 0x00317D7A # sprintf
.data 0x00264F80 # Original function for on_window_created callsite
.data 0x00000000
.binary "%s\n\nHP:%d/%d"
.data 0x00000000
.data 0x00000000
str_data_end:
.data 0x002DB550
.deltaof new_code_start, new_code_end
new_code_start:
.include EnemyHPBars-TextHandlerXB
new_code_end:
.data 0x0026B371
.data 0x00000007
nop
nop
.binary E8DB010700 # call 002DB553 (on_hp_updated)
.data 0x0026B158
.data 0x00000005
.binary E8F4030700 # call 002DB551 (on_window_created)
.data 0x00000000
.data 0x00000000
@@ -12,30 +12,58 @@ start:
.include WriteCodeBlocksXB
.data 0x0026ABA3
.data 0x00000001
.binary A0
.binary C0
.data 0x0026ABAC
.data 0x00000001
.binary DA
.binary FA
.data 0x0026ADA6
.data 0x00000004
.binary 836004FD
.data 0x00545334
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x00545340
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054534C
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x00545358
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x005453F4
.data 0x00000004
.data 0x42300000
.data 0x42780000
.data 0x00545410
.data 0x00000004
.data 0xFF00FF15
.data 0x00010C00
.deltaof str_data_start, str_data_end
str_data_start:
.data 0x00313B22 # sprintf
.data 0x002649C0 # Original function for on_window_created callsite
.data 0x00000000
.binary "%s\n\nHP:%d/%d"
.data 0x00000000
.data 0x00000000
str_data_end:
.data 0x002D90E0
.deltaof new_code_start, new_code_end
new_code_start:
.include EnemyHPBars-TextHandlerXB
new_code_end:
.data 0x0026AD81
.data 0x00000007
nop
nop
.binary E85BE30600 # call 002D90E3 (on_hp_updated)
.data 0x0026AB68
.data 0x00000005
.binary E874E50600 # call 002D90E1 (on_window_created)
.data 0x00000000
.data 0x00000000
@@ -12,30 +12,58 @@ start:
.include WriteCodeBlocksXB
.data 0x0026AF13
.data 0x00000001
.binary A0
.binary C0
.data 0x0026AF1C
.data 0x00000001
.binary DA
.binary FA
.data 0x0026B116
.data 0x00000004
.binary 836004FD
.data 0x005459C4
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x005459D0
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x005459DC
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x005459E8
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x00545A84
.data 0x00000004
.data 0x42300000
.data 0x42780000
.data 0x00545AA0
.data 0x00000004
.data 0xFF00FF15
.data 0x00010C00
.deltaof str_data_start, str_data_end
str_data_start:
.data 0x00314722 # sprintf
.data 0x00264D80 # Original function for on_window_created callsite
.data 0x00000000
.binary "%s\n\nHP:%d/%d"
.data 0x00000000
.data 0x00000000
str_data_end:
.data 0x002D9CB0
.deltaof new_code_start, new_code_end
new_code_start:
.include EnemyHPBars-TextHandlerXB
new_code_end:
.data 0x0026B0F1
.data 0x00000007
nop
nop
.binary E8BBEB0600 # call 002D9CB3 (on_hp_updated)
.data 0x0026AED8
.data 0x00000005
.binary E8D4ED0600 # call 002D9CB1 (on_window_created)
.data 0x00000000
.data 0x00000000
@@ -12,30 +12,58 @@ start:
.include WriteCodeBlocksXB
.data 0x0026B2F3
.data 0x00000001
.binary A0
.binary C0
.data 0x0026B2FC
.data 0x00000001
.binary DA
.binary FA
.data 0x0026B4F6
.data 0x00000004
.binary 836004FD
.data 0x0054D4AC
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054D4B8
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054D4C4
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054D4D0
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054D56C
.data 0x00000004
.data 0x42300000
.data 0x42780000
.data 0x0054D588
.data 0x00000004
.data 0xFF00FF15
.data 0x00010C00
.deltaof str_data_start, str_data_end
str_data_start:
.data 0x00317D7A # sprintf
.data 0x00265130 # Original function for on_window_created callsite
.data 0x00000000
.binary "%s\n\nHP:%d/%d"
.data 0x00000000
.data 0x00000000
str_data_end:
.data 0x002DB580
.deltaof new_code_start, new_code_end
new_code_start:
.include EnemyHPBars-TextHandlerXB
new_code_end:
.data 0x0026B4D1
.data 0x00000007
nop
nop
.binary E8AB000700 # call 002DB583 (on_hp_updated)
.data 0x0026B2B8
.data 0x00000005
.binary E8C4020700 # call 002DB581 (on_window_created)
.data 0x00000000
.data 0x00000000
@@ -12,30 +12,58 @@ start:
.include WriteCodeBlocksXB
.data 0x0026B083
.data 0x00000001
.binary A0
.binary C0
.data 0x0026B08C
.data 0x00000001
.binary DA
.binary FA
.data 0x0026B286
.data 0x00000004
.binary 836004FD
.data 0x0054A92C
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A938
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A944
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A950
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054A9EC
.data 0x00000004
.data 0x42300000
.data 0x42780000
.data 0x0054AA08
.data 0x00000004
.data 0xFF00FF15
.data 0x00010C00
.deltaof str_data_start, str_data_end
str_data_start:
.data 0x00318338 # sprintf
.data 0x00264EA0 # Original function for on_window_created callsite
.data 0x00000000
.binary "%s\n\nHP:%d/%d"
.data 0x00000000
.data 0x00000000
str_data_end:
.data 0x002DB080
.deltaof new_code_start, new_code_end
new_code_start:
.include EnemyHPBars-TextHandlerXB
new_code_end:
.data 0x0026B261
.data 0x00000007
nop
nop
.binary E81BFE0600 # call 002DB083 (on_hp_updated)
.data 0x0026B048
.data 0x00000005
.binary E834000700 # call 002DB081 (on_window_created)
.data 0x00000000
.data 0x00000000
@@ -12,30 +12,58 @@ start:
.include WriteCodeBlocksXB
.data 0x0026B193
.data 0x00000001
.binary A0
.binary C0
.data 0x0026B19C
.data 0x00000001
.binary DA
.binary FA
.data 0x0026B396
.data 0x00000004
.binary 836004FD
.data 0x0054ACCC
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054ACD8
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054ACE4
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054ACF0
.data 0x00000004
.data 0x42640000
.data 0x42960000
.data 0x0054AD8C
.data 0x00000004
.data 0x42300000
.data 0x42780000
.data 0x0054ADA8
.data 0x00000004
.data 0xFF00FF15
.data 0x00010C00
.deltaof str_data_start, str_data_end
str_data_start:
.data 0x00318858 # sprintf
.data 0x00264FD0 # Original function for on_window_created callsite
.data 0x00000000
.binary "%s\n\nHP:%d/%d"
.data 0x00000000
.data 0x00000000
str_data_end:
.data 0x002DB5D0
.deltaof new_code_start, new_code_end
new_code_start:
.include EnemyHPBars-TextHandlerXB
new_code_end:
.data 0x0026B371
.data 0x00000007
nop
nop
.binary E85B020700 # call 002DB5D3 (on_hp_updated)
.data 0x0026B158
.data 0x00000005
.binary E874040700 # call 002DB5D1 (on_window_created)
.data 0x00000000
.data 0x00000000
@@ -1,5 +1,5 @@
# Returns the client specific_version in eax and the address of the
# MmSetAddressProtect function pointer in ecx, which is immediately followed by
# MmSetAddressProtect function pointer in edx, which is immediately followed by
# the MmQueryAddressProtect function pointer.
start: