Posts: 953
Threads: 16
Joined: Feb 2013
Reputation:
15
(10-09-2013, 04:58 AM)[Unknown] Wrote: Unfortunately, Narikiri Dungeon X isn't very friendly to the same sort of trick, it'll just go at double speed. Would need to replace 088EF39C with 0, and then figure out where the game's timing is handled, which is probably a lot of work.
-[Unknown] What about games that the game speed code is known? Like Crisis Core?
Posts: 3,228
Threads: 25
Joined: Nov 2012
Reputation:
98
Crisis Core looks legit. Replace 0x08806644 with 0 (nop.) It should be a bne instruction shortly after a jal sceDisplayWaitVblankStart. I can see the game uses a sane variable to time things, so this shouldn't break any timing.
-[Unknown]
Posts: 1,795
Threads: 17
Joined: Sep 2013
Reputation:
158
10-09-2013, 07:11 AM
(This post was last modified: 10-09-2013, 07:26 AM by LunaMoo.)
Based on those findings:
Code: _S ULUS-10408
_G Mana Khemia Student Alliance
_C1 60 FPS
_L 0x2001C238 0x0E26C5AB
and
Code: _S ULUS-10336
_G Final Fantasy Crisis Core
_C1 60 FPS
_L 0x20006644 0x00000000
Both have to be activated before running the game in PPSSPP (unless there's other way to deal with clearing jit) and from what I saw FPS goes very jumpy between 30-60 fps even through speed constantly shows 100%. Also in Mana Khemia it doesn't work at all in some cutscenes when we don't have control over character.
Edit: Strange, but if you set alternate speed to 100% and then use it, it'll be constant 60/60(only in places it works ofc).
http://forums.ppsspp.org/showthread.php?tid=6594 - Custom PPSSPP Shaders!
http://forums.ppsspp.org/showthread.php?tid=3590&pid=117172#pid117172 - simple CE scripts to help creating CWCheats,
https://github.com/LunaMoo/PPSSPP_workarounds - CWCheat workarounds.
Posts: 953
Threads: 16
Joined: Feb 2013
Reputation:
15
Are you sure it works? I mean the counter displays 60/60 but the image feels like 30-ish.
Posts: 1,795
Threads: 17
Joined: Sep 2013
Reputation:
158
Well for FFCC no clue since I checked only by running around, fraps shows 60 fps as well through(or variable between 30 and 60 when not using alternate speed trick) it rather for sure renders more frames, character animations and stuff can just be made like that and will not smooth out so the difference if any might be more visible on some post processing effects or faster scenes.
In Mana Khemia the difference is easily noticeable since originally it runs at 20fps.
http://forums.ppsspp.org/showthread.php?tid=6594 - Custom PPSSPP Shaders!
http://forums.ppsspp.org/showthread.php?tid=3590&pid=117172#pid117172 - simple CE scripts to help creating CWCheats,
https://github.com/LunaMoo/PPSSPP_workarounds - CWCheat workarounds.
Posts: 953
Threads: 16
Joined: Feb 2013
Reputation:
15
10-09-2013, 09:34 PM
(This post was last modified: 10-09-2013, 09:36 PM by VIRGIN KLM.)
Mana Khemia seems perfect but I don't see a difference in FFCC, it's exactly the same as 30FPS and I can easily tell the difference between 30FPS and 60FPS. I will update the OP once it gets fixed.
How can I check on which address sceCtrlReadBufferPositive is written?
Posts: 3,228
Threads: 25
Joined: Nov 2012
Reputation:
98
In the Disassembly, you can search for "sceCtrlReadBufferPositive" by pressing Ctrl-S iirc. It searches downward.
For Crisis Core, well, there could be another thread controlling the animation to muck with. It's probably based on the frame counter variable, then.
-[Unknown]
Posts: 953
Threads: 16
Joined: Feb 2013
Reputation:
15
10-10-2013, 03:30 AM
(This post was last modified: 10-10-2013, 03:49 AM by VIRGIN KLM.)
Seems to work on other games too but in an intresting way:
On Digimon World Re  igitize (It's caped on 20FPS everywhere no 30FPS mode at all) it gives 60FPS on the intro and 30FPS on gameplay (that's a huge improvement btw)
Code: _S NPJH-50588
_G Digimon World ReDigitize
_C1 30 FPS
_L 0x2032BE34 0x00000000
It seems to mess up input on alot of games, controls seem to not work at all.
Posts: 3,228
Threads: 25
Joined: Nov 2012
Reputation:
98
Oh, you don't want to replace sceCtrlReadBufferPositive with nop, that's bad. Peek is maybe fine, although it could add input lag.
-[Unknown]
Posts: 953
Threads: 16
Joined: Feb 2013
Reputation:
15
10-10-2013, 05:10 AM
(This post was last modified: 10-10-2013, 05:34 AM by VIRGIN KLM.)
Wait, you mean replace sceCtrlReadBufferPositive with sceCtrlPeekBufferPositive? Most games will simply have no input at all or will go crazy like digital up will get stuck except of Digimon World ReDigitize that seems ok in this weird result of 60/30FPS hybrid mode.
Also what was that value you modified in Where's My Heart? I checked the dissasembler and it looks intresting.
Can it be done on other games?
Posts: 3,228
Threads: 25
Joined: Nov 2012
Reputation:
98
In Where is My Heart, I determined it was using that value to decide for how long to spin in a clock() loop. The value I suggested makes it never use the clock() loop. I think the developers of this game were not familiar with the PSP's built in timing functions.
Hmm. It's strange that Peek would give no output at all. Note that not all games even import it though, and it can be anywhere (it's not always 8 after Read.)
-[Unknown]
Posts: 953
Threads: 16
Joined: Feb 2013
Reputation:
15
I had no success with any other game than Digimon World ReDigitized (except Digimon Adventures but it messes up constrols) which results into the intro being 60FPS and the rest gameplay at 30FPS.
Posts: 215
Threads: 14
Joined: Mar 2013
Reputation:
3
I hope this hasn't been ask here before but I tried searching so hoping that give me brownie points. Could you construct a code for Final Fantasy Type 0?
Posts: 3,228
Threads: 25
Joined: Nov 2012
Reputation:
98
I don't have that game, but the demo has something at 088086BC that could be replaced with a nop.
Should look like:
jal zz_sceDisplayWaitVblankStartCB
nop
lw a0,0x700(s0)
slt a0,a0,s3
bne zero,a0,0x088086AC
The last one is 088086BC. Of course, this might not make it 60 fps, but it should make it at least run its frame code every frame not every other.
-[Unknown]
Posts: 1,795
Threads: 17
Joined: Sep 2013
Reputation:
158
10-11-2013, 08:05 PM
(This post was last modified: 10-11-2013, 09:11 PM by LunaMoo.)
Code: _S NPJH-50443
_G Final Fantasy Type 0(Disc1)
_C1 60 FPS
_L 0x20008868 0x00000000
Code: _S NPJH-50444
_G Final Fantasy Type 0(Disc2)
_C1 60 FPS
_L 0x20008868 0x00000000
Testing now  shows 60fps.
I think this ones works fine ~ it seems like true 60fps at least to me looking at some heavy battles when running around like an idiot, but I don't hide the fact if the game isn't mouse controlled FPS anything above 30fps doesn't matter for my eyes. Anyway nice job again [Unknown]  .
http://forums.ppsspp.org/showthread.php?tid=6594 - Custom PPSSPP Shaders!
http://forums.ppsspp.org/showthread.php?tid=3590&pid=117172#pid117172 - simple CE scripts to help creating CWCheats,
https://github.com/LunaMoo/PPSSPP_workarounds - CWCheat workarounds.
|