Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
I think i got 60FPS in Dark Cloud 2
#1
Hello

I opened cheat engine

I add the address 20376C50 (this is responsible of the ingame fps)

Press F5 (find what acssess)

press stop

I lookd for where was writtten "mov [pcsx2.exe+11396A0],eax" (this is responsible for the animation speed)

I press "Show dissasembler" 

I changed "mov [pcsx2.exe+11396A0],eax " to "  mov [01BE96A0],00000004 "

I activated Turbo mode

Set Audio to Async mix

and the game is playable at full speed

Do i really got 60FPS ?
Reply

Sponsored links

#2
At the top of the screen there are some infos about the game you're running.
Look at the top left side which display the fps
of the game, if it show 60 fps it mean you got full speed.
OS: Windows 10 Home 64 BIT 20H2
CPU: AMD R7-3700X 3.6 GHZ
GPU: Asus GeForce GTX 1650 Super
RAM: Corsair 3600 MHZ 2x8GB DDR4
Mainboard: Gigabyte B450 PRO WIFI
Display: Asus VP228
Audio: Creative Sound Blaster Z / GigaWorks T40
Storage: Seagate 1TB HDD, Transcend 1TB SSD
Optical: Asus BW-16D1HT Blu-Ray Writer
Power supply: Corsair CX550M
Reply
#3
(12-14-2019, 10:03 PM)sportster Wrote: At the top of the screen there are some infos about the game you're running.
Look at the top left side which display the fps
of the game, if it show 60 fps it mean you got full speed.

it shows 120 fps
and it is runing in full speed
Reply
#4
Quote:I opened cheat engine

I add the address 20376C50 (this is responsible of the ingame fps)

It's the framerate divisor.
1 = 60 / 1 = 60fps
2 = 60 / 2 = 30fps
3 = 60 / 3 = 20fps
4 = 60 / 4 = 15fps

The game runs at different framerates depending on what's going on (video playing, dungeon, event, etc)

Quote:Press F5 (find what acssess)

press stop

I lookd for where was writtten "mov [pcsx2.exe+11396A0],eax" (this is responsible for the animation speed)

Doing it this way makes what you are doing really hard to follow. I tried as you described but got a different result.
Is there some reason you don't use a proper disassembler + pcsx2 debugger? For example you can watch for a read of mgNowFrameRate or breakpoint in mgGetNowFrameRate and it will be much easier to tell what you are doing.

Quote:I activated Turbo mode

Yeah I don't think it really counts if you do that. You can get 60fps by setting 20376C50 to 1. Of course this will set it to 1 in all cases so you'll have to find where (probably in the main loop) it gets set to 2. Mind you animation and character movement speed will be borked but if anything that's what you should be looking into. Not using turbo mode.

I took a short look and there is a function CharaControl @ 0x001a57b0 which calls mgGetNowFrameRate and divides it by 2f. I found that changing that to 1 will get you the character movement speed boost.
[Image: HkgHT5k.gif]
もっとちゃんと言ってよ
忘れないようメモにしてよ



Reply
#5
(12-15-2019, 02:23 PM)Kojin Wrote: It's the framerate divisor.
1 = 60 / 1 = 60fps
2 = 60 / 2 = 30fps
3 = 60 / 3 = 20fps
4 = 60 / 4 = 15fps

The game runs at different framerates depending on what's going on (video playing, dungeon, event, etc)


Doing it this way makes what you are doing really hard to follow. I tried as you described but got a different result.
Is there some reason you don't use a proper disassembler + pcsx2 debugger? For example you can watch for a read of mgNowFrameRate or breakpoint in mgGetNowFrameRate and it will be much easier to tell what you are doing.


Yeah I don't think it really counts if you do that. You can get 60fps by setting 20376C50 to 1. Of course this will set it to 1 in all cases so you'll have to find where (probably in the main loop) it gets set to 2. Mind you animation and character movement speed will be borked but if anything that's what you should be looking into. Not using turbo mode.

I took a short look and there is a function CharaControl @ 0x001a57b0 which calls mgGetNowFrameRate and divides it by 2f. I found that changing that to 1 will get you the character movement speed boost.
Thank You for your response 


I set 20376C50 to 2 but i actived Turbo mode

120fps /2=60fps

After that i fixed the animation speed by using cheat engine 

Animation speed = video fps/(30x(the value of 20376C50)) 

I changed it to Animation speed = video fps/(30x4) 

(I didnt set 20376C50 to 4, i used cheat engine to change the Formula) 

So the game is now runing full speed at 60 fps


I didnt set 20376C50 to 1 because I cant fix the walking distance

You can set 20376C50 to 1
And change "mov [pcsx2.exe+11396A0],eax " to "  mov [01BE96A0],00000002 "
You will also get 60fps at full speed
But than your walking distance is low

but with your code i might be able to make to make fully working 60 fps code

Also I will try using PCSX2 Debuger, i just feel more comfortable with cheat engine
Reply
#6
(12-15-2019, 04:43 PM)Red-tv Wrote: Thank You for your response 


I set 20376C50 to 2 but i actived Turbo mode

120fps /2=60fps

After that i fixed the animation speed by using cheat engine 

Animation speed = video fps/(30x(the value of 20376C50)) 

I changed it to Animation speed = video fps/(30x4) 

(I didnt set 20376C50 to 4, i used cheat engine to change the Formula) 

So the game is now runing full speed at 60 fps


I didnt set 20376C50 to 1 because I cant fix the walking distance

You can set 20376C50 to 1
And change "mov [pcsx2.exe+11396A0],eax " to "  mov [01BE96A0],00000002 "
You will also get 60fps at full speed
But than your walking distance is low

but with your code i might be able to make to make fully working 60 fps code

Also I will try using PCSX2 Debuger, i just feel more comfortable with cheat engine

Well not saying you can't use it, but it seems easier to use a disassembler and debugger as you can tell what is going on.
Here's the function I was talking about in ghidra for example:

full version
[Image: Wjm65wc.png]
[Image: HkgHT5k.gif]
もっとちゃんと言ってよ
忘れないようメモにしてよ



Reply
#7
(12-16-2019, 12:18 AM)Kojin Wrote: Well not saying you can't use it, but it seems easier to use a disassembler and debugger as you can tell what is going on.
Here's the function I was talking about in ghidra for example:

full version
[Image: Wjm65wc.png]

Hey i just realized that the thing i am hacking is the EE and not the actual game
So i guess i was wrong 
well thank you for your help and for the 2x movment code

patch=1,EE,001a5858,word,46010d03 //46010503
Reply
#8
(12-19-2019, 08:35 PM)Red_Tv Wrote: Hey i just realized that the thing i am hacking is the EE and not the actual game
So i guess i was wrong 
well thank you for your help and for the 2x movment code

patch=1,EE,001a5858,word,46010d03 //46010503


.zip   dc1_en.zip (Size: 1,3 KB / Downloads: 65)

Here's my current cheat engine table for the game (I'm using v1.0 NTSC-U).

https://ghidra-sre.org/

Here is a link to download ghidra.

https://github.com/beardypig/ghidra-emotionengine

Here's a link to beardypig's plugin for PS2 elfs. (you'll need to extract the elf from the ISO). Disable relocations.
The game has symbols so you can see the names of functions/variables.
[Image: HkgHT5k.gif]
もっとちゃんと言ってよ
忘れないようメモにしてよ



Reply
#9
(12-20-2019, 06:45 AM)Kojin Wrote: Here's my current cheat engine table for the game (I'm using v1.0 NTSC-U).

https://ghidra-sre.org/

Here is a link to download ghidra.

https://github.com/beardypig/ghidra-emotionengine

Here's a link to beardypig's plugin for PS2 elfs. (you'll need to extract the elf from the ISO). Disable relocations.
The game has symbols so you can see the names of functions/variables.

Wow thank you
Reply




Users browsing this thread: 1 Guest(s)