mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2025-01-11 09:19:07 +01:00
Update patches.txt
Updated v1.4.x code to not use a hard coded memory address. This will make it easier to port by anyone and will hopefully preemptively fix any problems caused by 1.11.4's updated rpl loading. I really should back port the 1.4.x code to the older versions but I'm tired and most people are on 1.4.x anyway. But hopefully not too many people will complain about 1.11.4 breaking fps++ when it releases later today.
This commit is contained in:
parent
219799c586
commit
3afcfaf687
@ -1,3 +1,90 @@
|
||||
[BotwFPSv176V192]
|
||||
moduleMatches = 0xFD091F9F,0xD472D8A5
|
||||
|
||||
#rodata constants
|
||||
_float1 = 0x10000670
|
||||
_float30 = 0x101E78F4
|
||||
_convSub = 0x10000BB0
|
||||
|
||||
#TestCave
|
||||
codeCaveSize = 0x9C
|
||||
|
||||
_fpsCalc = 0x00000010
|
||||
0x00000000 = .float 3 ; Don't edit me!
|
||||
_lowlimit = 0x00000000
|
||||
0x00000004 = .float 62156250
|
||||
_busSpeed = 0x00000004
|
||||
_currentFPS = 0x00000008
|
||||
_speedDiv = 0x0000000C
|
||||
|
||||
0x00000010 = stw r0, 0x78(r30)
|
||||
0x00000014 = xoris r12, r12, 0x8000
|
||||
0x00000018 = stw r12, 0x12C(r30)
|
||||
0x0000001C = lis r12, 0x4330
|
||||
0x00000020 = stw r12, 0x128(r30)
|
||||
0x00000024 = lfd f10, 0x128(r30)
|
||||
0x00000028 = lis r12, _convSub@ha
|
||||
0x0000002C = lfd f12, _convSub@l(r12)
|
||||
0x00000030 = fsub f10, f10, f12
|
||||
0x00000034 = frsp f10, f10
|
||||
0x00000038 = lis r12, _float1@ha
|
||||
0x0000003C = lfs f12, _float1@l(r12)
|
||||
0x00000040 = fdivs f10, f12, f10
|
||||
0x00000044 = lis r12, _busSpeed@ha
|
||||
0x00000048 = lfs f12, _busSpeed@l(r12)
|
||||
0x0000004C = fmuls f10, f12, f10
|
||||
0x00000050 = lis r12, _currentFPS@ha
|
||||
0x00000054 = stfs f10, _currentFPS@l(r12)
|
||||
|
||||
0x00000058 = lis r12, _float30@ha
|
||||
0x0000005C = lfs f12, _float30@l(r12)
|
||||
0x00000060 = fdivs f7, f12, f10
|
||||
0x00000064 = lis r12, _lowlimit@ha
|
||||
0x00000068 = lfs f12, _lowlimit@l(r12)
|
||||
0x0000006C = lis r12, _speedDiv@ha
|
||||
0x00000070 = fcmpu cr0, f7, f12
|
||||
0x00000074 = bge .+0x0C
|
||||
|
||||
0x00000078 = stfs f7, _speedDiv@l(r12)
|
||||
0x0000007C = blr
|
||||
0x00000080 = stfs f12, _speedDiv@l(r12)
|
||||
0x00000084 = blr
|
||||
|
||||
_fenceNeg1 = 0x00000084
|
||||
0x00000088 = add r6, r12, r0 #orig instruction we are replacing
|
||||
0x0000008C = cmpwi r6, 500 #check if less than 500 (full sync on those first frames to prevent milk water)
|
||||
0x00000090 = blt .+0x08 #skip subtract if less than
|
||||
0x00000094 = subi r6, r6, 1 #do the subtract
|
||||
0x00000098 = blr #return
|
||||
|
||||
#codeChanges
|
||||
0x031F9E80 = bla _fpsCalc
|
||||
0x03792620 = nop
|
||||
0x0379262C = nop
|
||||
0x03792670 = lis r29, _speedDiv@ha
|
||||
0x03792678 = lfs f0, _speedDiv@L(r29)
|
||||
0x03792684 = nop
|
||||
0x03414EF8 = lis r12, _speedDiv@ha
|
||||
0x03414F00 = lfs f0, _speedDiv@l(r12)
|
||||
0x03414F08 = nop
|
||||
0x02D90790 = lis r10, _currentFPS@ha
|
||||
0x02D90794 = lfs f11, _currentFPS@l(r10)
|
||||
0x02D907EC = lis r10, _currentFPS@ha
|
||||
0x02D907F0 = lfs f11, _currentFPS@l(r10)
|
||||
|
||||
|
||||
#break all forms of frame limiting
|
||||
0x031FA000 = bla _fenceNeg1 ;Best fence (make sure GPU is never more than 1 frame ahead)
|
||||
;0x031F9FEC = li r0, 1 ;Better fence (make sure GPU is never more than 1 second? ahead)
|
||||
;0x031FA004 = nop ; skip fence (no waiting on GPU)
|
||||
0x031FA1D4 = nop ; disable vsync
|
||||
0x031FA1F8 = nop ; disable vsync loop
|
||||
|
||||
#Cheats
|
||||
;0x02D90724 = fmr f29, f1 ;inf stamina
|
||||
;0x02D44D44 = nop ;inf hearts
|
||||
;0x02EB61BC = nop ;inf arrows
|
||||
|
||||
[Botw60fpsv144]
|
||||
moduleMatches = 0x9A2CA0C7
|
||||
|
||||
@ -222,84 +309,3 @@ _fullspeed = 0x00000080
|
||||
;0x02F7DE00 = li r3, 0
|
||||
;0x02F862C4 = li r7, 1
|
||||
;0x02F86514 = li r7, 1
|
||||
|
||||
[BotwFPSv176V192]
|
||||
moduleMatches = 0xFD091F9F,0xD472D8A5
|
||||
|
||||
#rodata constants
|
||||
_float1 = 0x10000670
|
||||
_float30 = 0x101E78F4
|
||||
|
||||
#TestCave
|
||||
codeCaveSize = 0x98
|
||||
|
||||
_fpsCalc = 0x00000008
|
||||
0x00000000 = .float 3 ; Don't edit me!
|
||||
_lowlimit = 0x00000000
|
||||
0x00000004 = .float 62156250
|
||||
_busSpeed = 0x00000004
|
||||
0x00000008 = stw r0, 0x78(r30)
|
||||
0x0000000C = xoris r12, r12, 0x8000
|
||||
0x00000010 = stw r12, 0x12C(r30)
|
||||
0x00000014 = lis r12, 0x4330
|
||||
0x00000018 = stw r12, 0x128(r30)
|
||||
0x0000001C = lfd f10, 0x128(r30)
|
||||
0x00000020 = stw r12, 0x138(r30)
|
||||
0x00000024 = lis r12, 0x8000
|
||||
0x00000028 = stw r12, 0x13C(r30)
|
||||
0x0000002C = lfd f12, 0x138(r30)
|
||||
0x00000030 = fsub f10, f10, f12
|
||||
0x00000034 = frsp f10, f10
|
||||
0x00000038 = lis r12, _float1@ha
|
||||
0x0000003C = lfs f12, _float1@l(r12)
|
||||
0x00000040 = fdivs f10, f12, f10
|
||||
0x00000048 = lis r12, _busSpeed@ha
|
||||
0x0000004C = lfs f12, _busSpeed@l(r12)
|
||||
0x00000050 = fmuls f10, f12, f10
|
||||
0x00000054 = stfs f10, 0x134(r30)
|
||||
0x00000058 = lis r12, _float30@ha
|
||||
0x0000005C = lfs f12, _float30@l(r12)
|
||||
0x00000060 = fdivs f7, f12, f10
|
||||
0x00000064 = lis r12, _lowlimit@ha
|
||||
0x00000068 = lfs f12, _lowlimit@l(r12)
|
||||
0x0000006C = fcmpu cr0, f7, f12
|
||||
0x00000070 = bge .+0x0C
|
||||
0x00000074 = stfs f7, 0x130(r30)
|
||||
0x00000078 = blr
|
||||
0x0000007c = stfs f12, 0x130(r30)
|
||||
0x00000080 = blr
|
||||
|
||||
_fenceNeg1 = 0x00000084
|
||||
0x00000084 = add r6, r12, r0 #orig instruction we are replacing
|
||||
0x00000088 = cmpwi r6, 500 #check if less than 500 (full sync on those first frames to prevent milk water)
|
||||
0x0000008C = blt .+0x08 #skip subtract if less than
|
||||
0x00000090 = subi r6, r6, 1 #do the subtract
|
||||
0x00000094 = blr #return
|
||||
|
||||
#codeChanges
|
||||
0x031F9E80 = bla _fpsCalc
|
||||
0x03792620 = nop
|
||||
0x0379262C = nop
|
||||
0x03792670 = lis r29, 0x1134
|
||||
0x03792678 = lfs f0, 0xFE58@l(r29)
|
||||
0x03792684 = nop
|
||||
0x03414EF8 = lis r12, 0x1134
|
||||
0x03414F00 = lfs f0, 0xFE58@l(r12)
|
||||
0x03414F08 = nop
|
||||
0x02D90790 = lis r10, 0x1134
|
||||
0x02D90794 = lfs f11, 0xFE5C@l(r10)
|
||||
0x02D907EC = lis r10, 0x1134
|
||||
0x02D907F0 = lfs f11, 0xFE5C@l(r10)
|
||||
|
||||
|
||||
#break all forms of frame limiting
|
||||
0x031FA000 = bla _fenceNeg1 ;Best fence (make sure GPU is never more than 1 frame ahead)
|
||||
;0x031F9FEC = li r0, 1 ;Better fence (make sure GPU is never more than 1 second? ahead)
|
||||
;0x031FA004 = nop ; skip fence (no waiting on GPU)
|
||||
0x031FA1D4 = nop ; disable vsync
|
||||
0x031FA1F8 = nop ; disable vsync loop
|
||||
|
||||
#Cheats
|
||||
;0x02D90724 = fmr f29, f1 ;inf stamina
|
||||
;0x02D44D44 = nop ;inf hearts
|
||||
;0x02EB61BC = nop ;inf arrows
|
||||
|
Loading…
x
Reference in New Issue
Block a user