[Discussion] 60FPS patches for PSP games that run at 30FPS
|
12-13-2016, 08:12 AM
Post: #676
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
This is an example, there is no universal methods.
I'm guessing you set your breakpoint @sceDisplayWaitVblankStartMultiCB. After the break watch the ra(return address) register on the left. Hit GO button a few times to make sure that ra doesn't get modified(routines(functions) can be called from multiple places). When you press the RA button it just simply takes you to the address which is in the ra register. At this point simply replacing sceDisplayWaitVblankStartMultiCB with sceDisplayWaitVblankStart or simply nop-ing it would unlock the framerate, but I wanted to see if there is an address that controls the framerate. If you look at the registers you notice that a0 has value 02, this is suspicious because (60/2=30), so let's see what happens to a0. @088BB1C0 you see move a0,s0 which means s0 holds that 02(looking at the registers values this is correct). So now we investigate s0. @088BB1A4 we see move s0,a0. But @088BB1B8 there is jal to a routine which could modify s0. Set a breakpoint @088BB1B8, we step trough it but s0 does not get modified, so be are back to @088BB1A4 move s0,a0. Three lines above @088BB198 we see the start of the routine, which means that a0 is already set to 02 before we arrive at this routine, so we set a breakpoint @088BB198. Hit go a few times, because the routine could be called from multiple places. We are lucky, it gets called from a single location so hit the RA button. We arrive @08804698 so again we work backwards and we set a breakpoint @08804690. @08804694 you see li a0,0 but don't get fooled by that because as you probably know MIPS have branch delay slot, which means that an instruction immediately after a branch is executed before the branch is taken. So we break @08804690 and step trough the code with the StepInto button, you will see a small routine and @088BB270 you get lw a0,0x4908(v0). At this point v0 is 08970000 so a0 gets loaded with the value @09874908. We go to this location and see the 02, we modify it to 01 and the frame is 60. Sometime is good to look for these values in RAM because there are rare occasions when they influence the speed too besides the framerate. I think one of the Ape Escapes is like that, in the sense that if you the vsync trick the game runs at double speed, but if you modify the ram value it will run @60 with correct timings. Regarding speed modifiers. 3D graphics involves a lot of math(multiplications, divisions). Modern hardware(including PSP) deals with floating values, older hardware without FPU units we using fixed point values. Anyway, people usually look for 3f800000(1.0 in float) values in RAM cause you know speed x1. Some time you can search for 4000000(2.0 float). Other time you search for 1/30(3d088889) or 1/60(3c888888 or 3c888889). or 30(41f00000),60(42700000). Some times they are integer form in RAM like 30(1E) or 3C(60) and are converted to float. Sometimes they are not in RAM and gets loaded directly in registers, example lui at,3F80 then a mtc1 at,f1, this loads at with 3F800000 and then copy it to float register f1. You should read through the thread, Luna and Kabuto explained these things. In the case of the akuma hunters I found 8950984 holds a 3F80000, if you modify it to 3F000000(0.5 float) the main character will cover(traverse) distances at normal speed(in 60fps mode), but everything else remains double speed. So probably is worth inspecting which instructions loads this value, maybe you can make a working code. Good luck. |
|||
12-13-2016, 03:14 PM
Post: #677
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
Code: _S ULUS-10410 I know that there is a code for PhantasySP2 but the character couldn't run, camera rotation was double speed. The code below works better, the two games beeing similar I found the values quickly for PhantasySP2. Code: _S ULUS-10529 |
|||
12-14-2016, 10:41 AM
Post: #678
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
Code: _S ULUS-10127 |
|||
12-20-2016, 05:01 AM
(This post was last modified: 12-20-2016 05:40 AM by pepodmc.)
Post: #679
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS | |||
12-20-2016, 05:08 AM
Post: #680
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
(12-13-2016 03:14 PM)solitarius Wrote: Phantasy Star Portable 2 has never looked so glorious. This.... This changes everything! PSP2 looks like a completely different game now that you can play 60fps on it. Thank you for the hardwork! |
|||
01-02-2017, 05:59 PM
Post: #681
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
(11-16-2016 03:38 PM)solitarius Wrote: Tested it on real PSP, and it makes the game run at stable 60 fps. All scenes run at double speed, except for the loading ones. I think the game animations and physics might be locked at 30 fps, because this was a port from the PS1, and it was surely programmed to be at 30... Then they programmed the 60 fps loading screens just for psp. I hope i'm wrong. Tonight i'll test the Pac-Man World 3 [USA], on real psp. |
|||
01-13-2017, 11:52 PM
Post: #682
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
Sadly, a few hours parsing through Ace Combat X with Kabuto_Kun's method yielded absolutely nothing. Was unsure about the locking method, so I went through both (6500 entries at Value=1 and 900 at 2), and not even a twitch in the FPS counter, freezes aside. The game appears to only unlock itself during loading screens, so I figured it might not be too difficult to find such a precise entry, but I was wrong.
I will however leave a tip I learned at my own expense, which will probably be obvious to many to perhaps help: start from the bottom of the list, and select a chunk of them by clicking on one entry and Shift+End to select all below - I started manually dragging chunks of 17 entries. |
|||
01-14-2017, 09:50 PM
(This post was last modified: 01-14-2017 09:52 PM by Donel.)
Post: #683
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
Code: _S ULUS-10551 All credits go to: http://www.heroesoflegend.org/forums/vie....php?t=278 |
|||
01-15-2017, 10:22 AM
(This post was last modified: 01-15-2017 10:24 AM by masterotaku.)
Post: #684
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
There is already an Ys Seven 60fps code in the previous thread page (http://forums.ppsspp.org/showthread.php?...id124754). It's longer, so I suppose it covers more things than the shorter code you posted, although I haven't tried yours.
By the way: can someone do the Crisis Core 60fps code to the European version? |
|||
01-15-2017, 07:30 PM
(This post was last modified: 01-15-2017 07:31 PM by Donel.)
Post: #685
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
Hmm, I hadn't seen the code on the last page, my bad.
The creator of the code I've posted said the only remaining issue is the camera animations, which run at double speed, but maybe he missed other issues. It would be interesting if someone could compare both to see wich one is better. |
|||
01-16-2017, 02:21 AM
(This post was last modified: 01-16-2017 02:23 AM by Rageous.)
Post: #686
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
(12-09-2016 04:01 PM)solitarius Wrote: There's probably a lot more work needed for this. I tested it out and simple things like jumping, evading, guarding, switching, and monsters are still double speed. I'm not sure if you have to do it to every monsters too because that would be tons of work. I tried it on the cutscenes as well and everything rendered is double speed and the sounds are out of sync especially the voices overs because they just get piled up and plays (together with the subs) once the scene goes dark. Also for some reason the lines with comments don't work for me so I just delete the words after //. Nevertheless GEB looks really good with 60fps on. Thanks for the work! |
|||
01-16-2017, 07:13 AM
(This post was last modified: 01-26-2017 08:48 AM by Kabuto_Kun.)
Post: #687
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
As promised, I made an updated master list with all the FPS cheats I could find on this forum with links pointing to the original posts/authors, so the users can easily find them, get the latest version and read the cheat issues.
You can see it on my signature. For now it's an external HTML list, but after I finish some corrections it can be posted on the forum or used to update the already available master list. The cheat for MotorStorm isn't new, the user stranno first posted it here for the EUR release of the game. I'm just porting to other regions with permanent assembly codes and a nice bonus below these. MotorStorm - Arctic Edge [USA], UCUS98743.ini Code: _S UCUS-98743 Code: _S UCES-01250 Code: _S UCJS-10104 Code: _S NPUG-80265 The bonus for this game is, a new type of FPS cheat. When a FPS cheat has speed modifiers, it means that the game doesn't automatically adjust its gamespeed based on the actual internal FPS it's running at a given time; in other words, it doesn't have a dynamic gamespeed. With games games like these, we can't use the 60 FPS cheats in real hardware (PSP/Vita) because when it's not possible to keep this fixed internal FPS, the game will slowdown. This is the case with MotorStorm - Arctic Edge, but I coded a special 60 FPS assembly cheat with dynamic gamespeed, this means that if the game is running at any FPS below 60, it will be still running at normal gamespeed. This is nice for a real PSP or Vita if you want to play the game with an uncapped framerate. According to my test with this cheat, the game runs at around 40+ and sometimes 50+ FPS on a REAL PSP; on a Vita I'm sure it runs better. PPSSPP always runs the games at maximum internal framerate, so you must not use this variable/dynamic gamespeed cheat with it (use fixed 60FPS from above instead), this is ONLY for real PSP/Vita. MotorStorm - Arctic Edge [USA], UCUS98743.ini Code: _S UCUS-98743 Code: _S UCES-01250 Code: _S UCJS-10104 Code: _S NPUG-80265 - Same as fixed speed cheats from above. - The game streams the map while you drive (duh) but using this cheat causes a serious IO bottleneck if you play the game as a compressed .CSO and/or using a slow memory stick, sometimes causing the game map to not load properly while driving fast. - Remember, do not use this cheat if you are using an emulator/PPSSPP, this is ONLY for real PSP/Vita. In case you're interested, there is a cheat with dynamic gamespeed for Test Drive Unlimited too, get it here. The cheat for Crisis Core was posted by user solitarius here, I just added it an extra speed I found (game effects/particles) and ported it to other regions. Crisis Core: FFVII [USA], ULUS10336.ini Code: _S ULUS-10336 Code: _S ULES-01044 Code: _S ULES-01048 The same issues posted by solitarius here: - Some 2D elements are double speed (like DMW). - Cutscenes run at "fake" 60FPS and have audio/dialog issues. And now more cheat ports, all originally posted by user LunaMoo. ModNation Racers [USA], UCUS98741.ini Code: _S UCUS-98741 Code: _S NPUG-70097 Chili Con Carnage [USA], ULUS10216.ini Code: _S ULUS-10216 The Warriors [EUR], ULES00483.ini Code: _S ULES-00483 Obscure: The Aftermath [EUR], ULES01340.ini Code: _S ULES-01340 - - - - - @pepodmc Even when it was a bizarre request, I tried to unlock Crash Team Racing (PS1) but nothing came out of it. Older games are just a lot harder to test and those guys at Naughty Dog did crazy things with the PS1. @Broth3r Ace Combat X is already posted, see the updated master list or see it here. @Donel/masterotaku I compared that YS Seven cheat with the one I made and both are very similar: the user just patched the values in a different way and used a different gamespeed that seems to have the same effect according to my limited test. However, I fixed the game play time so that's an advantage. I have been updating and fixing some of the cheats I have posted, Portable Ops and Peace Walker are good examples of games running A LOT better now without annoying game breaking issues: grenades timers, game text, cutscenes, all fixed. They are still far from perfect but can be played at 60FPS now. Also, I've made some FPS unlock progress in some games: Castlevania Dracula X, Ratchet and Clank, DBZ Tag Team... but I'm trying to fix the big issues before posting them here. Wish me luck Remember the updated 60 FPS master list can be found on my signature, for now. 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. |
|||
01-23-2017, 03:47 AM
(This post was last modified: 01-23-2017 03:49 AM by Donel.)
Post: #688
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
@Kabuto_Kun: Do you think it's possible to do a code for Gran Turismo that disables the temporal AA at 60 fps? Or maybe a 60 fps code that doesn't enable the temporal AA, I don't know which one is easier.
|
|||
01-23-2017, 07:47 AM
Post: #689
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
I know you asked Kabuto_Kun, but I made these a while back,and save Kabuto's time. I think I even posted the Tekken code in the game thread
Code: _S UCUS-98632 Code: _S ULUS-10139 |
|||
01-24-2017, 09:52 AM
(This post was last modified: 02-10-2017 10:53 AM by Kabuto_Kun.)
Post: #690
|
|||
|
|||
RE: [Discussion] 60FPS patches for PSP games that run at 30FPS
New FPS cheat
Pursuit Force - Extreme Justice [USA], UCUS98703.ini Code: _S UCUS-98703 Code: _S UCES-00694 Code: _S UCES-00890 @solitarius Interesting cheats you got there mate, I'll post here ports of those to other game regions. Gran Turismo [EUR-v1.01/JAP], UCES01245.ini / UCJS10100.ini Code: _S UCES-01245 / UCJS-10100 Tekken: Dark Resurrection [EUR-v1.0/v2.0?], UCES00356.ini Code: _S UCES-00356 Code: _S ULJS-00048 For the above cheats, all credits go to the user solitarius, who originally posted them in the previous post from last page, here. @Donel If you can provide some feedback about the cheat for Gran Turismo, that would be great. I really like these kind of cheats that fix/remove features and/or behaviors that are only relevant on real hardware and are not very good for playing the games on emulators, or hacks that in some way enhance the gameplay experience. I have a couple of game fixes/cheats/hacks that I haven't posted anywhere: MotorStorm sound/crash fix and performance improvements (migh work for PSVita too), Test Drive Unlimited performance/unbuffered rendering fix, Driver 76 performance improvements/line glitches fix, GTA LCS/VCS unbuffered rendering fix and more. I'm just busy/lazy to spent some time to write all the needed details for them. If there is interest on these I will do my best to post them soon I really got excited when I read that TheFloW was going to implement higher internal resolutions for PSP games on PSVita (on Adrenaline), but at this point I'm not sure if that was a translation error about the graphic filters found on the beta release or if we'll get that with another Adrenaline release. Whatever happens with that, I've been messing with game-specific internal resolution increase hacks and I have managed to get some progress for some games, so I can say this is totally possible on real hardware. I'm running Peace Walker at 32bit (and without dithering too) on my PSP3000 (originally a 16bit game) with only problems on videos for now. I can easily decrease the internal resolution without problems, and even increase it a little, but increasing it too much shows garbage on screen or just freezes the PSP. The problem is that the default 2 MB of VRAM is not enough for these increases in resolution and color depth (you can read here and here for tech details about this from devs). But there is something that is not well known from what I can see from some research: the PSP SLIM and later models actually doubled the PSP1000 VRAM to 4MB, but this additional 2 MB can't be used for games, only for homebrew. This is a confirmed fact and you can read details on how to unlock it here and here (on this one the user Mills seems to have been tried something with this some time ago). The real question is, is it possible to unlock the extra VRAM for retail games using the same process with a kernel module? If the answer is yes, then increasing the internal resolution of some PSP games for PSP SLIM users should be totally possible. EDIT: It works! After reading the linked info, I unlocked the additional 2mb of VRAM on my PSP3000 (now it has 4 mb in total available for retail games) and higher internal resolutions are not showing garbage on screen and the games are not freezing anymore: I was playing GTA LCS at 720x408 on my PSP (1.5x the resolution of 480x272, but the game runs at 512x320 by default). Of course the PSP screen is 480x272, a hardware limitation which can't be fixed via software, so what I did works as some kind of downsampling on PSPs; but for example if someone changes the emulated screen resolution of the PSVita (only if additional VRAM can be unlocked for it too), we might be able to play some games at PSVita native resolution (Vita has double resolution but with quadruple pixels in total, which is too much even with the extra VRAM). TV Out with PSPs could also get resolution benefits from this. This is still based on game-specific hacks, but I'm trying to detect patterns on how the games set their resolution. 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. |
|||
« Next Oldest | Next Newest »
|