mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-22 01:29:18 +01:00
[Color Splash] Add Improve Performance Pack
Made by Exzap
This commit is contained in:
parent
0a52e5b34d
commit
7a27d2fdc1
80
Mods/ColorSplash_ImprovePerformance/patch_taskmgr.asm
Normal file
80
Mods/ColorSplash_ImprovePerformance/patch_taskmgr.asm
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
[SharedConstants]
|
||||||
|
moduleMatches = 0xca6b9a52, 0x7467d6cf
|
||||||
|
|
||||||
|
TASK_MGR_OBJ_SIZE = 0x3878 ; sys::task::Manager unmodified base size.
|
||||||
|
OS_SEMAPHORE_SIZE = 0x20
|
||||||
|
NEW_TASK_MGR_OBJ_SIZE = TASK_MGR_OBJ_SIZE + OS_SEMAPHORE_SIZE
|
||||||
|
|
||||||
|
[SharedCode]
|
||||||
|
moduleMatches = 0xca6b9a52, 0x7467d6cf
|
||||||
|
|
||||||
|
.origin = codecave
|
||||||
|
|
||||||
|
; Init hook
|
||||||
|
; We initialize the semaphore we append at the end of the class
|
||||||
|
_TaskManagerInitHook:
|
||||||
|
mflr r30
|
||||||
|
li r4, 0 ; initial count for semaphore
|
||||||
|
mr r3, r31
|
||||||
|
addi r3, r3, TASK_MGR_OBJ_SIZE
|
||||||
|
bl import.coreinit.OSInitSemaphore ; OSInitSemaphore(&taskMgr->ourSemaphore, 0)
|
||||||
|
mtlr r30
|
||||||
|
li r9, 0 ; our hook replaces an instruction that sets r9 = 0
|
||||||
|
blr
|
||||||
|
|
||||||
|
|
||||||
|
; Submit hook
|
||||||
|
; We signal the semaphore
|
||||||
|
_TaskManagerSubmitHook:
|
||||||
|
mflr r29
|
||||||
|
mr r3, r31
|
||||||
|
addi r3, r3, TASK_MGR_OBJ_SIZE
|
||||||
|
bl import.coreinit.OSSignalSemaphore ; OSSignalSemaphore(&taskMgr->ourSemaphore)
|
||||||
|
mtlr r29
|
||||||
|
lwz r3, 0x10(r1) ; replaced instruction
|
||||||
|
blr
|
||||||
|
|
||||||
|
; RunQueuedTask hook
|
||||||
|
; We wait for the semaphore before checking if work is available
|
||||||
|
_TaskManagerRunQueuedTask:
|
||||||
|
mr r31, r3 ; replaced instruction
|
||||||
|
|
||||||
|
mflr r29
|
||||||
|
mr r3, r31
|
||||||
|
addi r3, r3, TASK_MGR_OBJ_SIZE
|
||||||
|
bl import.coreinit.OSWaitSemaphore ; OSWaitSemaphore(&taskMgr->ourSemaphore)
|
||||||
|
|
||||||
|
mtlr r29
|
||||||
|
blr
|
||||||
|
|
||||||
|
|
||||||
|
; Todo - Signal semaphore on TaskManager shutdown request
|
||||||
|
|
||||||
|
|
||||||
|
[ColorSplashEUv0]
|
||||||
|
moduleMatches = 0xca6b9a52
|
||||||
|
|
||||||
|
; increase allocated size of sys::task::Manager to fit our appended OSSemaphore
|
||||||
|
0x025E249C = li r3, NEW_TASK_MGR_OBJ_SIZE
|
||||||
|
0x0233D068 = li r3, NEW_TASK_MGR_OBJ_SIZE
|
||||||
|
0x0233D098 = li r3, NEW_TASK_MGR_OBJ_SIZE
|
||||||
|
0x0243C284 = li r3, NEW_TASK_MGR_OBJ_SIZE
|
||||||
|
|
||||||
|
0x025E2588 = bla _TaskManagerInitHook
|
||||||
|
0x025E2AA8 = bla _TaskManagerSubmitHook
|
||||||
|
0x025E1F14 = bla _TaskManagerRunQueuedTask
|
||||||
|
|
||||||
|
|
||||||
|
[ColorSplashUSv0]
|
||||||
|
moduleMatches = 0x7467d6cf
|
||||||
|
|
||||||
|
; subtract 0xDC from EU offsets to get US offsets
|
||||||
|
|
||||||
|
0x025E23C0 = li r3, NEW_TASK_MGR_OBJ_SIZE
|
||||||
|
0x0233CF8C = li r3, NEW_TASK_MGR_OBJ_SIZE
|
||||||
|
0x0233CFBC = li r3, NEW_TASK_MGR_OBJ_SIZE
|
||||||
|
0x0243C1A8 = li r3, NEW_TASK_MGR_OBJ_SIZE
|
||||||
|
|
||||||
|
0x025E24AC = bla _TaskManagerInitHook
|
||||||
|
0x025E29CC = bla _TaskManagerSubmitHook
|
||||||
|
0x025E1E38 = bla _TaskManagerRunQueuedTask
|
6
Mods/ColorSplash_ImprovePerformance/rules.txt
Normal file
6
Mods/ColorSplash_ImprovePerformance/rules.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 000500001F600900,000500001F600A00,000500001F600B00
|
||||||
|
name = Improve Performance
|
||||||
|
path = "Paper Mario: Color Splash/Mods/Improve Performance"
|
||||||
|
description = Substantially lowers CPU requirements of the game.|Can improve performance on some systems.||Needs to be enabled before (and can't be disabled after) running the game, otherwise it'll crash.
|
||||||
|
version = 7
|
Loading…
Reference in New Issue
Block a user