Post Reply 
 
Thread Rating:
  • 8 Votes - 4.75 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Discussion] 60FPS patches for PSP games that run at 30FPS
06-07-2017, 02:39 PM (This post was last modified: 06-08-2017 09:38 AM by Kabuto_Kun.)
Post: #715
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
Splinter Cell Essentials [USA], ULUS10070.ini
Code:
_S ULUS-10070
_G Splinter Cell Essentials [USA]
_C0 60FPS+ [Ingame change]
_L 0xE0103D08 0x00005C74
_L 0x20003904 0x3C140880
_L 0x20003908 0xAE943900
_L 0x2000390C 0x8FB10050
_L 0x20003910 0x3C123D09
_L 0x20003914 0x26528889
_L 0x20003918 0x16320004
_L 0x2000391C 0x3C133C5A
_L 0x20003920 0x3673740E
_L 0x20003924 0x03E00008
_L 0x20003928 0x4493F000
_L 0x2000392C 0x03E00008
_L 0x20003930 0xC7BE0050
_L 0x20005C74 0x3C053C5A//1/75=0.0.013333
_L 0x20005C78 0x34A5740E
_L 0xE001FFA4 0x0009034C
_L 0x20090368 0x0E200E41//USA
_L 0xE0010880 0x00003902
_L 0x20090368 0xC7BE0050
_C0 30FPS [Default]
_L 0xE0023D08 0x10005C74
_L 0x20005C74 0x3C053D08//1/30=0.033333
_L 0x20005C78 0x34A58889
Splinter Cell Essentials [EUR-v2], ULES00281.ini
Code:
_S ULES-00281
_G Splinter Cell Essentials [EUR-v2]
_C0 60FPS+ [Ingame change]
_L 0xE0103D08 0x00005C74
_L 0x20003904 0x3C140880
_L 0x20003908 0xAE943900
_L 0x2000390C 0x8FB10050
_L 0x20003910 0x3C123D09
_L 0x20003914 0x26528889
_L 0x20003918 0x16320004
_L 0x2000391C 0x3C133C5A
_L 0x20003920 0x3673740E
_L 0x20003924 0x03E00008
_L 0x20003928 0x4493F000
_L 0x2000392C 0x03E00008
_L 0x20003930 0xC7BE0050
_L 0x20005C74 0x3C053C5A//1/75=0.0.013333
_L 0x20005C78 0x34A5740E
_L 0xE001FFA4 0x0009055C
_L 0x20090578 0x0E200E41//EURv2
_L 0xE0010880 0x00003902
_L 0x20090578 0xC7BE0050
_C0 30FPS [Default]
_L 0xE0023D08 0x10005C74
_L 0x20005C74 0x3C053D08//1/30=0.033333
_L 0x20005C78 0x34A58889
*Cheat Status: No issues.
- The cheat runs great on a real PSP and I'm sure it will run even better on a Vita/PSTV. It doesn't use Vsync so its framerate is uncapped until the maximum 60FPS.
- The main uncap code is the same for USA and EUR-v2, but the extra code used to change the FPS while already ingame uses different addresses, that's why each release has its own cheat. The main code should work for the EUR-v1 release (just start the game with it enabled), but I didn't test.


Assassin's Creed: Bloodlines [USA], ULUS10455.ini
Code:
_S ULUS-10455
_G Assassin's Creed: Bloodlines [USA]
_C0 60FPS v2
_L 0xE00C202A 0x000D8990
_L 0x200D8990 0x34040000//VBlank1
_L 0x202A303C 0x3C888889//GameSpeed
_L 0x2029F8A4 0x3D19999A//ClimbingCameraSpeedX
_L 0x2029F8A8 0x3CCCCCCD//ClimbingCameraSpeedY
_L 0x2029F9B4 0x3D19999A//CombatCameraSpeedXY
_L 0x2029F994 0x3D19999A//CombatCenterCameraSpeedXY
_L 0x202A0C4C 0x3D19999A//RunningCameraSpeedXY
_L 0x202A0C20 0x3D99999A//RunningCenterCameraSpeed1
_L 0x202A0C34 0x3E800000//RunningCenterCameraSpeed2
_L 0x200BE9F4 0x3C054270//ScreenFadeOutSpeed
_L 0x200BEA68 0x3C054270//ScreenFadeInSpeed
_L 0x200D8A54 0x3C044270//Something
_C0 30FPS v2 [Default]
_L 0xE00C0000 0x000D8990
_L 0x200D8990 0x0090202A//VBlank1
_L 0x202A303C 0x3D088889//GameSpeed
_L 0x2029F8A4 0x3D99999A//ClimbingCameraSpeedX
_L 0x2029F8A8 0x3D4CCCCD//ClimbingCameraSpeedY
_L 0x2029F9B4 0x3D99999A//CombatCameraSpeedXY
_L 0x2029F994 0x3D99999A//CombatCenterCameraSpeedXY
_L 0x202A0C4C 0x3D99999A//RunningCameraSpeedXY
_L 0x202A0C20 0x3E19999A//RunningCenterCameraSpeed1
_L 0x202A0C34 0x3F000000//RunningCenterCameraSpeed2
_L 0x200BE9F4 0x3C0541F0//ScreenFadeOutSpeed
_L 0x200BEA68 0x3C0541F0//ScreenFadeInSpeed
_L 0x200D8A54 0x3C0441F0//Something
Assassin's Creed: Bloodlines [EUR], ULES01367.ini
Code:
_S ULES-01367
_G Assassin's Creed: Bloodlines [EUR]
_C0 60FPS v2
_L 0xE00C202A 0x000D89D0
_L 0x200D89D0 0x34040000//VBlank1
_L 0x202A313C 0x3C888889//GameSpeed
_L 0x2029F9A4 0x3D19999A//ClimbingCameraSpeedX
_L 0x2029F9A8 0x3CCCCCCD//ClimbingCameraSpeedY
_L 0x2029FAB4 0x3D19999A//CombatCameraSpeedXY
_L 0x2029FA94 0x3D19999A//CombatCenterCameraSpeedXY
_L 0x202A0D4C 0x3D19999A//RunningCameraSpeedXY
_L 0x202A0D20 0x3D99999A//RunningCenterCameraSpeed1
_L 0x202A0D34 0x3E800000//RunningCenterCameraSpeed2
_L 0x200BEA2C 0x3C054270//ScreenFadeOutSpeed
_L 0x200BEAA0 0x3C054270//ScreenFadeInSpeed
_L 0x200D8A94 0x3C044270//Something
_C0 30FPS v2 [Default]
_L 0xE00C0000 0x000D89D0
_L 0x200D89D0 0x0090202A//VBlank1
_L 0x202A313C 0x3D088889//GameSpeed
_L 0x2029F9A4 0x3D99999A//ClimbingCameraSpeedX
_L 0x2029F9A8 0x3D4CCCCD//ClimbingCameraSpeedY
_L 0x2029FAB4 0x3D99999A//CombatCameraSpeedXY
_L 0x2029FA94 0x3D99999A//CombatCenterCameraSpeedXY
_L 0x202A0D4C 0x3D99999A//RunningCameraSpeedXY
_L 0x202A0D20 0x3E19999A//RunningCenterCameraSpeed1
_L 0x202A0D34 0x3F000000//RunningCenterCameraSpeed2
_L 0x200BEA2C 0x3C0541F0//ScreenFadeOutSpeed
_L 0x200BEAA0 0x3C0541F0//ScreenFadeInSpeed
_L 0x200D8A94 0x3C0441F0//Something
*Cheat Status:
- User Lunamoo already posted a cheat for the EUR version of this game here, but while the core gameplay was working at the correct speed, it had some problems: most 2D elements/menus/transitions were running at double speed and the camera movement was also sped up.
- I did some research while making a PPSSPP compatible right analog patch for this game, so I corrected the camera speed, used a different/better gamespeed value and manually fixed some other things. Thanks to all that, this cheat v2 runs a lot better.
- The game has several Vblanks that limit the framerate to 30FPS, but nop'ing all of them causes rendering issues on a real PSP/Vita when the game can't keep a stable 60FPS (looks like every new frame gets rendered above the previous one before it's totally drawn, I'm not sure).

This doesn't happen on PPSSPP but I decided to not disable that problematic Vblank just in case. For this same reason, the cheat will make the game have slowdowns to a fixed 30 FPS on a real PSP/Vita, so just use the cheat on emulators. This is why you MUST set a high PSP CPU speed for it to work as it should on PPSSPP, so go to Settings>System and set it to a fixed value of 666Mhz at least.


Syphon Filter: Dark Mirror [USA], UCUS98641.ini
Code:
_S UCUS-98641
_G Syphon Filter: Dark Mirror [USA]
_C0 60FPS [No Vsync]
_L 0xE0030001 0x10003800
_L 0xE0020003 0x004184C4
_L 0x204184CC 0x34020001
_L 0x20003800 0x00000001
_C0 60FPS [Default]
_L 0xE0030002 0x10003800
_L 0xE0020003 0x004184C4
_L 0x204184CC 0x0E3049AA
_L 0x20003800 0x00000002
_C0 30FPS
_L 0xE00B0003 0x10003800
_L 0xE00A0003 0x004184C4
_L 0x204184CC 0x0E200E01//Jal
_L 0x20003804 0x00000003
_L 0x20003804 0x03E08021
_L 0x20003808 0x341B0001
_L 0x2000380C 0x0E36BC35//Vb
_L 0x20003810 0x00000000
_L 0x20003814 0x5760FFFD
_L 0x20003818 0x277BFFFF
_L 0x2000381C 0x02000008
_L 0x20003820 0x34020001
Syphon Filter: Dark Mirror [EUR], UCES00310.ini
Code:
_S UCES-00310
_G Syphon Filter: Dark Mirror [EUR]
_C0 60FPS [No Vsync]
_L 0xE0030001 0x10003800
_L 0xE0020003 0x004227C8
_L 0x204227D0 0x34020001
_L 0x20003800 0x00000001
_C0 60FPS [Default]
_L 0xE0030002 0x10003800
_L 0xE0020003 0x004227C8
_L 0x204227D0 0x0E30726B
_L 0x20003800 0x00000002
_C0 30FPS
_L 0xE00B0003 0x10003800
_L 0xE00A0003 0x004227C8
_L 0x204227D0 0x0E200E01//Jal
_L 0x20003804 0x00000003
_L 0x20003804 0x03E08021
_L 0x20003808 0x341B0001
_L 0x2000380C 0x0E36E982//Vb
_L 0x20003810 0x00000000
_L 0x20003814 0x5760FFFD
_L 0x20003818 0x277BFFFF
_L 0x2000381C 0x02000008
_L 0x20003820 0x34020001
Syphon Filter: Dark Mirror Demo [USA]
Code:
_S HBC3365416
_G Syphon Filter: Dark Mirror Demo [USA]
_C0 60FPS [No Vsync]
_L 0xE0030001 0x10003800
_L 0xE0020003 0x003CC76C
_L 0x203CC774 0x34020001
_L 0x20003800 0x00000001
_C0 60FPS [Default]
_L 0xE0030002 0x10003800
_L 0xE0020003 0x003CC76C
_L 0x203CC774 0x0E2F0C3B
_L 0x20003800 0x00000002
_C0 30FPS
_L 0xE00B0003 0x10003800
_L 0xE00A0003 0x003CC76C
_L 0x203CC774 0x0E200E01//Jal
_L 0x20003804 0x00000003
_L 0x20003804 0x03E08021
_L 0x20003808 0x341B0001
_L 0x2000380C 0x0E3305D6//Vb
_L 0x20003810 0x00000000
_L 0x20003814 0x5760FFFD
_L 0x20003818 0x277BFFFF
_L 0x2000381C 0x02000008
_L 0x20003820 0x34020001

Syphon Filter: Logan's Shadow [USA], UCUS98606.ini
Code:
_S UCUS-98606
_G Syphon Filter: Logan's Shadow [USA]
_C0 60FPS [No Vsync]
_L 0xE0030001 0x10003800
_L 0xE0020003 0x004108BC
_L 0x204108C4 0x34020001
_L 0x20003800 0x00000001
_C0 60FPS [Default]
_L 0xE0030002 0x10003800
_L 0xE0020003 0x004108BC
_L 0x204108C4 0x0E30346E
_L 0x20003800 0x00000002
_C0 30FPS
_L 0xE00B0003 0x10003800
_L 0xE00A0003 0x004108BC
_L 0x204108C4 0x0E200E01//Jal
_L 0x20003804 0x00000003
_L 0x20003804 0x03E08021
_L 0x20003808 0x341B0001
_L 0x2000380C 0x0E373C2F//Vb
_L 0x20003810 0x00000000
_L 0x20003814 0x5760FFFD
_L 0x20003818 0x277BFFFF
_L 0x2000381C 0x02000008
_L 0x20003820 0x34020001
Syphon Filter: Logan's Shadow [EUR], UCES00710.ini
Code:
_S UCES-00710
_G Syphon Filter: Logan's Shadow [EUR]
_C0 60FPS [No Vsync]
_L 0xE0030001 0x10003800
_L 0xE0020003 0x00418638
_L 0x20418640 0x34020001
_L 0x20003800 0x00000001
_C0 60FPS [Default]
_L 0xE0030002 0x10003800
_L 0xE0020003 0x00418638
_L 0x20418640 0x0E3053B8
_L 0x20003800 0x00000002
_C0 30FPS
_L 0xE00B0003 0x10003800
_L 0xE00A0003 0x00418638
_L 0x20418640 0x0E200E01//Jal
_L 0x20003804 0x00000003
_L 0x20003804 0x03E08021
_L 0x20003808 0x341B0001
_L 0x2000380C 0x0E375BE2//Vb
_L 0x20003810 0x00000000
_L 0x20003814 0x5760FFFD
_L 0x20003818 0x277BFFFF
_L 0x2000381C 0x02000008
_L 0x20003820 0x34020001
*Cheat Status:
- Both Syphon Filter games already run at 60FPS by default, but they use an internal Vsync that makes them run at a fixed 30FPS when they can't keep a stable/solid 60FPS. You can use the 60FPS [No Vsync] cheat to disable it, which can make the games run at a practically stable 60FPS if you are running the games on a real PSP (40+,50+ FPS) and PSVita/PSTV (should run even faster than on a PSP). The cheat doesn't make any difference for PPSSPP.
- The 30FPS cheat can be used on PPSSPP (not for real PSP/Vita) to allow low powered devices (Android generally) to run the games at a stable 30FPS, so it's easier to achieve fullspeed. You MUST set a high PSP CPU speed for it to work as it should, so go to PPSSPP Settings>System and set it to a fixed value of 666Mhz at least.
- I posted a similar cheat for Resistace Retribution (same developers, upgraded engine), you can get it here.

I've also made some silent updates to a few of the already available cheats, and I will update a few more shortly.

And as I mentioned above, I made a list of Right analog patches working for both PPSSPP and Vita/PSTV, see it here. I made some of them and others are linked from there (maybe there are even more). I have a few partially working patches that I will add to that list when I finish/port them.



Now, changing the subject, I took some comparison screenshots of GTA LCS on my PSP3000 with unlocked 4MB of VRAM and using my resolution hacks:

PSP Scene 1.
- PSP at 240x136
- PSP at 480x272
- PSP at 512x320 (Default resolution)
- PSP at 720x408
With lower resolutions the difference is very clear, 720x408 starts showing minor graphic glitches because of the lack of VRAM.

PSP Scene 2.
- PSP at 512x320
- PSP at 720x408

PSP Scene 3.
- PSP at 480x272
- PSP at 512x320 (Default resolution)
- PSP at 960x544 !!
At 960x544 you can't see absolutely nothing in the game screen, but the screenshot showed a little of it. If I test this resolution with 2MB of VRAM the PSP freezes and shuts down, so the extra VRAM surely helps.

Now let's see PPSSPP emulator screenshots while configured at 1x rendering resolution, but using the PSP resolution hacks/cheats:

PPSSPP Scene 1.
- PPSSPP at 512x320 (Default resolution)
- PPSSPP at 960x544
Using the same resolution cheats on the emulator to easily see the difference with no graphic glitches. For some reason, going higher than 512 pixels for Y resolution (544 in this picture) starts to repeat the rendered game screen on the bottom, something that needs a fix.

- PPSSPP GE Debugger 512x320 (Default resolution)
- 720x408
GE debugger from PPSSPP.

PPSSPP Debug Console, showing the adjusted addresses of the game framebuffers. As I said before, I reorganized the game framebuffer addresses, for example:

Framebuffers at 512x320 (Default resolution)
By default, the game uses a maximum of 2,097,152 (2MB) of VRAM:
- From 0x00000000 until 0x00044000 = 0x00044000 of max size, or 278,528 bytes
- From 0x00044000 until 0x00088000 = 0x00044000 of max size, or 278,528 bytes
- From 0x00088000 until 0x00178000 = 0x000F0000 of max size, or 983,040 bytes
- From 0x00178000 until 0x00200000 = 0x00088000 of size, or 557,056 bytes
Summing it all up: 278,528 + 278,528 + 983,040 + 557,056 = 2,097,152 bytes, or 0x00200000 of VRAM.

Framebuffers at 720x408
With framebuffer changes, the game now uses a maximum of 4,194,304 (4MB) of VRAM:
- From 0x00000000 until 0x00088000 = 0x00088000 of max size, or 557,056 bytes
- From 0x00088000 until 0x00110000 = 0x00088000 of max size, or 557,056 bytes
- From 0x00110000 until 0x002DB000 = 0x001CB000 of max size, or 1,880,064 bytes
- From 0x002DB000 until 0x00400000 = 0x00125000 of size, or 1,200,128 bytes
Summing it all up: 557,056 + 557,056 + 1,880,064 + 1,200,128 = 4,194,304 bytes, or 0x00400000 of VRAM.

As a bonus, screenshots from my PSP3000 of Metal Gear Peace Walker running with a hack to use 32Bit color depth (runs at 16Bit by default):
- 16Bit and dither ON
- 32Bit and dither OFF
These color depth hacks also need more VRAM, of course framebuffers at 32bit need more VRAM than 16bit.

The album with all these images is here.

goo.gl/kNOhTz : 60FPS master list, Mar. 2017 ; Reddit /u/Kabuto_Kun
forums.ppsspp.org/showthread.php?tid=4799&pid=105128#pid105128 : Unlock FPS in PSP games ("easy method")
forums.ppsspp.org/showthread.php?tid=4799&pid=123500#pid123500 : Permanently patch a PSP game with CW cheats.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS - Kabuto_Kun - 06-07-2017 02:39 PM
Crash Of The Titans CW ULUS10304 - Mateus - 12-13-2021, 10:59 PM
IRON MEN ULUS10347 - Mateus - 12-18-2021, 12:18 AM

Forum Jump: