mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-29 12:54:15 +01:00
3afcfaf687
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.
312 lines
8.3 KiB
Plaintext
312 lines
8.3 KiB
Plaintext
[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
|
|
|
|
#rodata constants
|
|
|
|
_float1 = 0x1027AB80
|
|
_float3 = 0x100005DC
|
|
|
|
#TestCave
|
|
codeCaveSize = 0x9C
|
|
|
|
_fpsCalc = 0x00000008
|
|
0x00000000 = .float 3 ;edit me
|
|
_lowlimit = 0x00000000
|
|
0x00000004 = .float 6294724
|
|
_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 = lis r12, _float3@ha
|
|
0x00000058 = lfs f12, _float3@l(r12)
|
|
0x0000005C = fdivs f7, f12, f10
|
|
0x00000060 = lis r12, _lowlimit@ha
|
|
0x00000064 = lfs f12, _lowlimit@l(r12)
|
|
0x00000068 = fcmpu cr0, f7, f12
|
|
0x0000006C = bge .+0x0C
|
|
0x00000070 = stfs f7, 0x130(r30)
|
|
0x00000074 = blr
|
|
0x00000078 = stfs f12, 0x130(r30)
|
|
0x0000007C = blr
|
|
|
|
_fullspeed = 0x00000080
|
|
0x00000080 = lis r3, 0x112A
|
|
0x00000084 = lis r12, 0xF634
|
|
0x00000088 = srawi r12, r12, 0x10
|
|
0x0000008c = xoris r12, r12, 0xFFFF
|
|
0x00000090 = or r3, r3, r12
|
|
0x00000094 = lfs f0, 0x0(r3)
|
|
0x00000098 = blr
|
|
|
|
#Branch
|
|
0x03102688 = bla _fpsCalc
|
|
0x03686FA0 = nop
|
|
0x03686FAC = nop
|
|
0x03686FF0 = bla _fullspeed
|
|
0x03313C4C = bla _fullspeed
|
|
|
|
#break all forms of frame limiting
|
|
0x03102808 = nop ;disables gx2 fence
|
|
0x031029DC = nop ;disables wait for vsync
|
|
0x03102A00 = nop ;same
|
|
0x03102E10 = li r0, 1;the original 60FPS hack
|
|
0x03102DCC = li r0, 1; same
|
|
|
|
#experimental
|
|
;0x02FAA8E4 = li r3, 0 ;sets swap interval to 0
|
|
;0x02FAA98C = li r3, 0 ;same
|
|
;0x02FB2E50 = li r7, 1 ;sets GX2SetTVBuffer to 1
|
|
;0x02FB30A0 = li r7, 1 ;same
|
|
|
|
[Botw60fpsv112]
|
|
moduleMatches = 0x6FD41A61
|
|
|
|
#rodata constants
|
|
|
|
_float1 = 0x1026E518
|
|
_float3 = 0x100005D4
|
|
|
|
#TestCave
|
|
codeCaveSize = 0x9C
|
|
|
|
_fpsCalc = 0x00000008
|
|
0x00000000 = .float 3 ;edit me
|
|
_lowlimit = 0x00000000
|
|
0x00000004 = .float 6294724
|
|
_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 = lis r12, _float3@ha
|
|
0x00000058 = lfs f12, _float3@l(r12)
|
|
0x0000005C = fdivs f7, f12, f10
|
|
0x00000060 = lis r12, _lowlimit@ha
|
|
0x00000064 = lfs f12, _lowlimit@l(r12)
|
|
0x00000068 = fcmpu cr0, f7, f12
|
|
0x0000006C = bge .+0x0C
|
|
0x00000070 = stfs f7, 0x130(r30)
|
|
0x00000074 = blr
|
|
0x00000078 = stfs f12, 0x130(r30)
|
|
0x0000007C = blr
|
|
|
|
_fullspeed = 0x00000080
|
|
0x00000080 = lis r3, 0x1126
|
|
0x00000084 = lis r12, 0xB42C
|
|
0x00000088 = srawi r12, r12, 0x10
|
|
0x0000008c = xoris r12, r12, 0xFFFF
|
|
0x00000090 = or r3, r3, r12
|
|
0x00000094 = lfs f0, 0x0(r3)
|
|
0x00000098 = blr
|
|
|
|
#Branch
|
|
0x030D5080 = bla _fpsCalc
|
|
0x03653634 = nop
|
|
0x03653640 = nop
|
|
0x03653684 = bla _fullspeed
|
|
0x032E4130 = bla _fullspeed
|
|
|
|
#break all forms of frame limiting
|
|
0x030D5200 = nop ;comment out this line with ';' at the beginning to disable gpufenceskip
|
|
0x030D53D4 = nop
|
|
0x030D53f8 = nop
|
|
0x030D5808 = li r0, 1
|
|
0x030D57C4 = li r0, 1
|
|
|
|
#experimental
|
|
;0x02F7ECB8 = li r3, 0
|
|
;0x02F7ED60 = li r3, 0
|
|
;0x02F87224 = li r7, 1
|
|
;0x02F87474 = li r7, 1
|
|
|
|
[Botw60fpsv97]
|
|
moduleMatches = 0xD71D859D
|
|
|
|
#rodata constants
|
|
|
|
_float1 = 0x10000660
|
|
_float3 = 0x100031fC
|
|
|
|
#TestCave
|
|
codeCaveSize = 0x9C
|
|
|
|
_fpsCalc = 0x00000008
|
|
0x00000000 = .float 3 ;edit me
|
|
_lowlimit = 0x00000000
|
|
0x00000004 = .float 6294724
|
|
_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 = lis r12, _float3@ha
|
|
0x00000058 = lfs f12, _float3@l(r12)
|
|
0x0000005C = fdivs f7, f12, f10
|
|
0x00000060 = lis r12, _lowlimit@ha
|
|
0x00000064 = lfs f12, _lowlimit@l(r12)
|
|
0x00000068 = fcmpu cr0, f7, f12
|
|
0x0000006C = bge .+0x0C
|
|
0x00000070 = stfs f7, 0x130(r30)
|
|
0x00000074 = blr
|
|
0x00000078 = stfs f12, 0x130(r30)
|
|
0x0000007C = blr
|
|
|
|
_fullspeed = 0x00000080
|
|
0x00000080 = lis r3, 0x1126
|
|
0x00000084 = lis r12, 0xA824
|
|
0x00000088 = srawi r12, r12, 0x10
|
|
0x0000008c = xoris r12, r12, 0xFFFF
|
|
0x00000090 = or r3, r3, r12
|
|
0x00000094 = lfs f0, 0x0(r3)
|
|
0x00000098 = blr
|
|
|
|
#Branch
|
|
0x030D4120 = bla _fpsCalc
|
|
0x03652620 = nop
|
|
0x0365262C = nop
|
|
0x03652670 = bla _fullspeed
|
|
0x032E31D0 = bla _fullspeed
|
|
|
|
#break all forms of frame limiting
|
|
0x030D42A0 = nop ;comment out this line with ';' at the beginning to disable gpufenceskip
|
|
0x030D4474 = nop
|
|
0x030D4498 = nop
|
|
0x030D48A8 = li r0, 1
|
|
0x030D4864 = li r0, 1
|
|
|
|
#experimental
|
|
;0x02F7DD58 = li r3, 0
|
|
;0x02F7DE00 = li r3, 0
|
|
;0x02F862C4 = li r7, 1
|
|
;0x02F86514 = li r7, 1
|