diff options
Diffstat (limited to '')
-rw-r--r-- | NewerProject.yaml | 1 | ||||
-rw-r--r-- | actorlog.yaml | 9 | ||||
-rw-r--r-- | src/actorlog.S | 41 |
3 files changed, 51 insertions, 0 deletions
diff --git a/NewerProject.yaml b/NewerProject.yaml index b3248b1..f796ec6 100644 --- a/NewerProject.yaml +++ b/NewerProject.yaml @@ -20,3 +20,4 @@ modules: - processed/levelspecial.yaml
- processed/eventlooper.yaml
- processed/compression.yaml
+# - processed/actorlog.yaml
diff --git a/actorlog.yaml b/actorlog.yaml new file mode 100644 index 0000000..3e4adb2 --- /dev/null +++ b/actorlog.yaml @@ -0,0 +1,9 @@ +--- +source_files: [../src/actorlog.S] +hooks: + - name: ActorLogHook + type: branch_insn + branch_type: bl + src_addr_pal: 0x80162BC0 + target_func: 'ActorLogHook' + diff --git a/src/actorlog.S b/src/actorlog.S new file mode 100644 index 0000000..f4e7205 --- /dev/null +++ b/src/actorlog.S @@ -0,0 +1,41 @@ +.text + +.set sp, 1 + +.align 4 +.extern OSReport + +.global ActorLogHook +ActorLogHook: + stwu sp, -0x20(sp) + mflr r0 + stw r0, 0x24(sp) + stw r3, 0x1C(sp) + stw r4, 0x18(sp) + stw r5, 0x14(sp) + stw r6, 0x10(sp) + + lis r8, 0x8032 + ori r8, r8, 0xB58 + slwi r7, r3, 2 + lwzx r7, r8, r7 + + lis r3, M@h + ori r3, r3, M@l + crclr 4*cr1+eq + bl OSReport + + lwz r6, 0x10(sp) + lwz r5, 0x14(sp) + lwz r4, 0x18(sp) + lwz r3, 0x1C(sp) + lwz r0, 0x24(sp) + mtlr r0 + addi sp, sp, 0x20 + + # Return to __objCreate + clrlslwi r31, r3, 16, 2 + blr + +.data +M: .string "P:%p S:%08x T:%d N:%s\n" |