Thread Rating:
  • 10 Vote(s) - 4.5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
60 fps codes
Incomplete code(s)

Grandia III SLUS-21334 0x5B657DAD (Disc1)
60 fps
001EBAD8 0000003C
Theoretically this is preferred, because the games recalculates timings, but in explore mode the character will traverse double distance.
201ACD88 00000000
201EBAE0 3F000000 //speed
This fixes the traverse distance, but as usual probably some things remain double speed.

Sponsored links

Incomplete code(s)

ShellShock: Nam '67 SLUS-20828 0x38BD8D2E
60 fps
202994CC 00000000
Incomplete code(s)

This is for normal missions, I will update the code for driving missions, if I find it.

James Bond 007: Everything or Nothing SLUS-20751 0x6848699B
60 fps
D03891D4 0000000E
203891D4 00000000
Incomplete code(s)

Everything double speed.

Transformers SLUS-20668 0xF40DAE1E
60 fps
2025DF84 080977E5

There is this address 20292E40, it corrects the speed, but game is blurrier, and view perspective changes a little bit.
20292E40 3C043F00
Awesome, I see a lot of progress around here with 60 FPS cheats.

I have a question, how are you checking that you have changed the internal FPS of a game? I mean, PCSX2 doesn't have an internal FPS counter (like PPSSPP), and even when the change should be evident to the eye most of the times, PCSX2 needs more hardware resources than other emulators and some games are just to hard to run at full speed for me (or for everyone with games like Metal Gear Solid).

Some weeks ago I posted THIS on the github issue about the internal FPS counter. It's a crazy workaround to know the internal FPS of emulated games, but with all the games I've tested it works.

Also, I asked a question there and I'll ask again here in case someone know the answer: if there is any way to get the internal time of the emulated PS2? Maybe using a generic syscall or something.

Why I ask? For PSP, sceKernelGetSystemTimeWide function returns the system time as an int64, with every 1,000,000 being one INTERNAL second on the emulated game. Using this function and some generic assembly code, I can inject it on any game and run it once every frame and get the time difference between every rendered frame: if the game is internally running at 30FPS, the difference between the previous returned value of that function and the actual value will be around ~33,333, why? With some calculations: 33333/1000000=0.033333, and 1/0.033333=30.0 FPS

For PPSSPP this is not that useful because it already shows the internal FPS, I have used it to dynamically calculate gamespeed for fixed gamespeed games. But for PS2 games this would be a perfect way to get that needed counter.

As a recommendation, you should check PS2 games with PSP versions or similar/same engines, if their PSP versions have a good working cheat, the same approach should be possible with the PS2 version. Marvel games, GTA stories and pretty much any first party game are good examples. Learning from what has already been done before (or similar) should help with PS2 exclusive games.

In case it's useful, I have posted a 60FPS master list with all the known released cheats for PSP games, just go to the FPS discussion thread at the PPSSPP forum.
Reach me out at Reddit: /u/Kabuto_Kun
1. Checking the fps.
The way I check the internal frame right now is that I record a small video with F12(by default pcsx2 is set to not skip frames) and no matter the emulated speed the final video will be full speed(always @59.94fps even if the gaem is not 60fps) because it will dump every frame rendered. Now if a game is @30fps it means that every frame is displayed twice(2x30=60). If you playback the video using virtualdub (or any other player which can playback frame by frame) using the arrow keys(left,right keys), advancing frame by frame, you will nottice that the graphics advances only every other frame, confirming the 30fps. If the graphics advances every frame it means that is running @60fps. For 20fps games it will update every third frame and so on.

2.Frame counter and vsync counter
You are right, there are integer values in RAM which contains frame counters and vsync counters. You can find them even more quickly by setting a write breakpoint to address 12000090 or 120000A0(these are some GS registers) and search for increased values by 1 or 2 or simply increased value. And ussualy around these values are other addresses with values 0,1,2,0,1,2,0,1,2... and investigating these addresses(I mean the instructions which write,read) you can find the functions for removing the fps limit.
Another usefull address is 12001000, if I understand correctly is has to do something with vsync. A lot of games are reading this address constanly, and that read instruction usually is inside the function which increases the frame count and sometime the same function controls the framerate.

3.Internal time
I don't have a clue about this

4.Games available both for PS2 and PSP
I took a look at The Warriors and Motorstorm games, and while on the PSP you can remove the fps limit in mere seconds, I didn't have any luck with the PS2 versions. The thing is that on the PS2 the middleware and dev tools weren't as standardized like on the PSP, and the PSP has that hypervisor or whatever and I think devs were forced to use system calls. On the PS2 if you look at the elf's sometime you can see sceGSVsync or sceGSVsyncCallback but the game is not using them, or it is looks that way.
There is this game Second Sight, which has some parts @60 and 30, yet I still haven't found a way to unlock 60fps. Maybe you can take a look.
Quote:Also, I asked a question there and I'll ask again here in case someone know the answer: if there is any way to get the internal time of the emulated PS2? Maybe using a generic syscall or something.

I'm not exactly sure on what you're looking for but the real time clock might be useful.
We're supposed to be working as a team, if we aren't helping and suggesting things to each other, we aren't working as a team.
- Refraction
Incomplete code(s)

SOCOM: U.S. Navy SEALs SCUS-97134 0x6F4056DB
60 fps
D048CF64 0000001E
2048CF64 0000003C

2048CF60 0000003C
Incomplete code(s)

Syphon Filter: The Omega Strain SCUS-97264 0xD5605611
60 fps
205383D4 0000003C
Incomplete code(s)

Everything double speed, except animations(or some?).

Steambot Chronicles SLUS-21344 0x9F391882
60 fps
205BC89C 00000001
2055C3CC 42700000 //anim speed

Users browsing this thread: 2 Guest(s)