PS4 [Research]PS2 emulator configuration on PS4

LUA
Code:
local emuObj = getEmuObject()

emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
--Can also be used for God Of War1, Eliminate color scan lines
 
Last edited:
Ugly hack to remove shadows in God of War (SCUS_973.99 ONLY), on pcsx2 it give me around 10-15 fps more. So is basically deal between speed, or having shadows. Please note it work only with ISO file that match redump MD5.

Code:
--Branch always in renShadowClient::Prep(void) to avoid drawing.
emuMediaPatch(0x1E1, 12 + 0x324, { 0x1060007A }, { 0x1000007A })

Edit: Ignore that patch, i have much more for that game. I have offsets for Shadows (full, not like in patch above), blur, blending, stencil, reflections, etc. So i should be able to create similar patch to one used in PCSX2 Aggressive CRC. Anyway, while i removed blending, somehow return address got corrupted, and.. Here it is, Goat of War (Pro Skater edition).

 
Last edited:
Here is config for GOW - SCUS_973.99 only.
Config include auto widescreen, auto hidden full framebuffer progressive scan (640x448p), some effects removal, most noticeable shadows. CLI is basically one from wiki, with removed few lines that weren't useful.
LUA is my work. Config is untested on PS4

CLI - partially based on config posted on devwiki. I can't verify that all of that is required.

Code:
--vu1-opt-flags=2
--vu1-di-bits=1
--vu1-mpg-cycles=800
--vu1-injection=1
--vu1-opt-vf00=2
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--ee-block-validation=PageProt
--gs-frontend-opt-mode=2
--fpu-rsqrt-fast-estimate=1

LUA
Code:
apiRequest(2.2) -- to assure we run it on latest emu

local emuObj = getEmuObject()

-- Halo removal. Possibly not needed with patches below. But i left it, as should no harm.
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )

-- Force Widescreen on boot, Force hidden Full Framebuffer Progressive Scan at boot,
-- Do similar stuff as PCSX2 aggressive CRC hack, so remove some extensive effects (speedhack)
emuMediaPatch(0x1e1, 12 + 0x40, { 0x27bdfee0 }, { 0x03e00008 })
emuMediaPatch(0x1e1, 12 + 0x44, { 0x7fb300d0 }, { 0x00000000 })
emuMediaPatch(0x28b, 12 + 0x38, { 0x8c86cc90 }, { 0x24060001 })
emuMediaPatch(0x385, 12 + 0x594, { 0x3c013faa }, { 0x3c013fe3 })
emuMediaPatch(0x385, 12 + 0x598, { 0x3421aaab }, { 0x34218e39 })
emuMediaPatch(0x28b, 12 + 0x3c, { 0x8ca7cc94 }, { 0x24070001 })
emuMediaPatch(0x355, 12 + 0x344, { 0xac60cc94 }, { 0xac65cc94 })
emuMediaPatch(0x354, 12 + 0x3e0, { 0x27bdff20 }, { 0x03e00008 })
emuMediaPatch(0x354, 12 + 0x3e4, { 0x3c02002a }, { 0x00000000 })
emuMediaPatch(0x1e8, 12 + 0x1d8, { 0x27bdff40 }, { 0x03e00008 })
emuMediaPatch(0x1e8, 12 + 0x1dc, { 0x00052900 }, { 0x00000000 })
emuMediaPatch(0x1dc, 12 + 0x478, { 0x27bdff50 }, { 0x03e00008 })
emuMediaPatch(0x1dc, 12 + 0x47c, { 0x3c02002a }, { 0x00000000 })
eeInsnReplace(0x29c2b4, 0x00000001, 0x00000000)

If game somehow gonna be slower, then probably this was important (i really doubt it was):

Code:
local gsObj = getGsObject()
gsObj.SetDeinterlaceShift(0)

This config is hacky so there is small chance that some important ingame effect will break somewhere, but tests on pcsx2 shows that something like that shouldn't happen.

---------------------------------------------------------------------------------------------------------------------------

And here is small request to people making patches. Please verify them before posting on wiki.
Few (harsh) words about GOW2 config from wiki. Whoever made it, should verify some stuff that is there. First thing is lua file:
Code:
local fastminEE    = 1600000
This declare variable fastminEE as a value 1600000, ok. But that variable is not used in ANY function in that config. This basically do nothing, because lua can't automagically use it for anything by itself.
Next thing is:
Code:
 require("utils")
local eeObj = getEEObject()
local PrecompileAddrs = Queue.new(
   {
0x100000,
0x100004,
...
... many other offsets here
...
0x186BF8,
0x186BFC
})
Again require("utils") mean that utils file need to be included in pkg. Now local PrecompileAddrs = Queue.new() so variable PrecompileAddrs is declared to be Queue.new() (that is in utils file). Until now is fine. But again, variable PrecompileAddrs is not used at all later.

Both of above do the same as comment, nothing. Because they are not used. Is like creating code, throwing it into memory, and let it die there. Because is never called/used.
To use it somewhere you need to create function in lua, in above cases this will be function that hook something. So this is really not working at all.

Code:
-- Disable internal field shift compensation, part of post-process removal feature.
gsObj.SetDeinterlaceShift(0)

I don't see any code that removing post processing here, so kinda hard to tell that will do something. Specially that game can run in progressive scan, so there is no interlace.
Code:
-- Graphic improvement: removes corrupted lines on screen with uprender on for PAL version
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } ) --texMode=1 ?
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2 } ) --texMode=2 is BILINEAR
Do both of that are really needed? Is hard to believe that game cause issues with 2 texture filtering types at one time.
Also few words about cli config.
Code:
--fpu-accurate-muldiv-range=0x186B64,0x186CE4
This is code that make floating points math (multiply/divide) more accurate, i don't recall any issue with that on GOW2. I looked at gow2 executable and range between 0x186B64, and 0x186CE4 have no single floating point operation.
Yep, another time when command is basically doing nothing.
Code:
--ee-hook=0x186B64,AdvanceClock
--ee-hook=0x186CE4,AdvanceClock
This command is used when game have timing issues. Not framerate/speed/pace issues, but internal EE timing between some operations. Is hard to believe that someone was able to find something like that without debugger on ps2ps4 emu. So i feel some randomness here.
Rest of config is hard to be verified without PS4, so i leave it as is. But i bet that some commands can be removed safely there.

All contributions to emu scene are appreciated, testing even weirdest settings can give us sometime usefull knowledge. But please clean configs from not used commands before adding them to wiki. Same goes for commands that we are not sure what to do. Wiki patches should be clean as this is place where someone gonna start learning about them.
AdvanceClock can break stuff with some bad luck, precise math can slow down game even if not hit floats.
I believe that someone spent a lot of time to make config for that game, and respect for that. But lets keep configs that land on wiki clean.
 
Last edited:
@kozarovv

To correct it, the US version of God of War1 should be SCUS_973.99, and the US version of God of War2 should be SCUS_974.81. Should this configuration apply to God of War1 or God of War2?
 
@kozarovv

To correct it, the US version of God of War1 should be SCUS_973.99, and the US version of God of War2 should be SCUS_974.81. Should this configuration apply to God of War1 or God of War2?
Lol, sorry my mistake. I was messing with 2 games at 1 time. Is GOW1 config. I corrected cli according to wiki. LUA won't change. Since patch apply directly to disc, is important to have untouched ISO.

Any way to play a Tony Hawk Games ?
Proving ground
Project 8?
any settings ?
No. Games having issues with MTVU on pcsx2 have similar issue on PS4 (https://github.com/PCSX2/pcsx2/issues/1669)
 
@kozarovv

I applied this configuration, now God of War1 is running at full speed and high quality, but there are still music sound problems: the music will be replayed whenever there are many sounds to play
 
@kozarovv

I applied this configuration, now God of War1 is running at full speed and high quality, but there are still music sound problems: the music will be replayed whenever there are many sounds to play
This is something that i can't fix without PS4 :/ I can try to help only if issue can be somehow reproduced on PCSX2 (any version).

vuRoundMode = 0

How can i do it on Ps2 to Ps4 config ?

Well, if that's for THPS games, then i have this patched without rounding. Problem is what i stated in previous post.
 
God of War2 has the same problem, is it possible to fix it? Can this LUA configuration be ported to the Japanese version of God of War1?I can provide a test
 
God of War2 has the same problem, is it possible to fix it? Can this LUA configuration be ported to the Japanese version of God of War1?I can provide a test
Like i said earlier, i messed IDs because i'm working also on GOW2. So yeah, i plan very similar patch for it.
About porting that GOW1 config, this can be done. But i want to first community test that properly on US version.
 
Does anyone know that issue exist on PS4?

pcsx2 2020-04-17 13-01-10.png

Because removing it can cause other issues, so if yes then i need to try different approach.

Edit:
Ok here is GOW 2 config. LUA is my work, as a cli i decided to use GOW1 cli with minor mods. As it seems to be the same engine, so no reason to try something new.
SCUS_974.81 Only.

Cli
Code:
--vu1-opt-flags=2
--vu1-di-bits=1
--vu1-mpg-cycles=800
--vu1-injection=1
--vu1-opt-vf00=2
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--ee-block-validation=PageProt
--gs-frontend-opt-mode=2
--fpu-rsqrt-fast-estimate=1


LUA
Code:
apiRequest(2.2) --make sure we are running latest emu

local emuObj = getEmuObject()
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )

-- Wide Screen at boot, 640x448p at boot, speedhack by removing some effects
emuMediaPatch(0x1fc, 12 + 0x6e0, { 0x27bdfee0 }, { 0x03e00008 })
emuMediaPatch(0x1fc, 12 + 0x6e4, { 0x7fb300d0 }, { 0x00000000 })
emuMediaPatch(0x1f8, 12 + 0x720, { 0x27bdff50 }, { 0x03e00008 })
emuMediaPatch(0x1f8, 12 + 0x724, { 0x3c02002d }, { 0x00000000 })
emuMediaPatch(0x2e4, 12 + 0x5b4, { 0x3c04002e }, { 0x24040001 })
emuMediaPatch(0x2e4, 12 + 0x5b8, { 0x8c8486d8 }, { 0x00000000 })
emuMediaPatch(0x40d, 12 + 0x14c, { 0x3c013faa }, { 0x3c013fe3 })
emuMediaPatch(0x40d, 12 + 0x150, { 0x3421aaab }, { 0x34218e39 })
emuMediaPatch(0x3d0, 12 + 0x608, { 0xac4086dc }, { 0xa04986dc })
emuMediaPatch(0x2e4, 12 + 0x5d4, { 0x8ca286dc }, { 0x24020001 })

Edit, here is additional fun stuff code. :) This allow to skip movies by pressing X. Even intro, etc.
Code:
-- allow to skip movies
eeInsnReplace(0x1DD8C8, 0x10400005, 0x00000000)
 
Last edited:
Does anyone know that issue exist on PS4?

View attachment 25405

Because removing it can cause other issues, so if yes then i need to try different approach.

Edit:
Ok here is GOW 2 config. LUA is my work, as a cli i decided to use GOW1 cli with minor mods. As it seems to be the same engine, so no reason to try something new.
SCUS_974.81 Only.

Cli
Code:
--vu1-opt-flags=2
--vu1-di-bits=1
--vu1-mpg-cycles=800
--vu1-injection=1
--vu1-opt-vf00=2
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--ee-block-validation=PageProt
--gs-frontend-opt-mode=2
--fpu-rsqrt-fast-estimate=1


LUA
Code:
apiRequest(2.2) --make sure we are running latest emu

local emuObj = getEmuObject()
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )

-- Wide Screen at boot, 640x448p at boot, speedhack by removing some effects
emuMediaPatch(0x1fc, 12 + 0x6e0, { 0x27bdfee0 }, { 0x03e00008 })
emuMediaPatch(0x1fc, 12 + 0x6e4, { 0x7fb300d0 }, { 0x00000000 })
emuMediaPatch(0x1f8, 12 + 0x720, { 0x27bdff50 }, { 0x03e00008 })
emuMediaPatch(0x1f8, 12 + 0x724, { 0x3c02002d }, { 0x00000000 })
emuMediaPatch(0x2e4, 12 + 0x5b4, { 0x3c04002e }, { 0x24040001 })
emuMediaPatch(0x2e4, 12 + 0x5b8, { 0x8c8486d8 }, { 0x00000000 })
emuMediaPatch(0x40d, 12 + 0x14c, { 0x3c013faa }, { 0x3c013fe3 })
emuMediaPatch(0x40d, 12 + 0x150, { 0x3421aaab }, { 0x34218e39 })
emuMediaPatch(0x3d0, 12 + 0x608, { 0xac4086dc }, { 0xa04986dc })
emuMediaPatch(0x2e4, 12 + 0x5d4, { 0x8ca286dc }, { 0x24020001 })

Edit, here is additional fun stuff code. :) This allow to skip movies by pressing X. Even intro, etc.
Code:
-- allow to skip movies
eeInsnReplace(0x1DD8C8, 0x10400005, 0x00000000)

White lines also rarely appear on God of War1. This phantom was discovered for the first time and I will test it immediately
 

The GOD OF WAR II was initially tested using the CLI configuration of the GOD OF WAR1 on the wiki. The effect is very poor and the number of frames is very low. Replacing the CLI configuration of GOD OF WAR II on the wiki can improve the frame rate, but the audio and graphics problems are very serious, and the configuration needs to be continued.
 

Similar threads

Back
Top