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:
Xalphenos 2018-01-30 04:09:30 -06:00 committed by GitHub
parent 219799c586
commit 3afcfaf687
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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