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.