PS4 [Research]PS2 emulator configuration on PS4

I tested all versions of this game (USA, EURO and JAP) on PS4 with different emulators, and in all of them the same problem occurs, to be honest the emulator that I went further in this game on PS4 is KOF98, but the exact same thing happens in the video, the most old ones still happen worse bugs.
Thank you for testing !! looks like this game is only completable using real ps2 for now, or getting an 100% save to drive all vehicles and use all ramps to have fun on stunt constructor

@Stayhye Test Drive USA version has an GX config on the ps3, @mrjaredbeta took a look into it and looks like it's sound related, do you think this fixes the audio issues on the ps4 ?
 
Last edited:
left over debris from my template for 2.0 api

BTW, I need help finding the address that I can use to show FMVs are playing. I want to make a if/then for the VU1 to be at 1 for gameplay and 270 for FMVs..... can you help?

I do not understand. What do these VU1 values mean to begin with? The PS3 config I made uses a hook at 0x12E34C which reads a movie flag from the stack at 0x1FFFBC4 to apply the patch on the fly when the movies are played back. I do not know how it does look on the PS4, but on the PS3 the PAL and 480p video playback is glitched and does lag a lot, because of some timing and VIF related issues. Here are different offsets related to movie playback (for the PAL version) I gathered back then:
Code:
004328E8 write movie pal at 0x54e77c
3eb714 movie playback
12cf40
4102e8
2199f0 - jr ra skip movies or 001997B0 nop
550940 - movie flag?
3b87e8 3b8850 decoding video?
 
Last edited:
I do not understand. What do these VU1 values mean to begin with? The PS3 config I made uses a hook at 0x12E34C which reads a movie flag from the stack at 0x1FFFBC4 to apply the patch on the fly when the movies are played back. I do not know how it does look on the PS4, but on the PS3 the PAL and 480p video playback is glitched and does lag a lot, because of some timing and VIF related issues. Here are different offsets related to movie playback (for the PAL version) I gathered back then:
Code:
004328E8 write movie pal at 0x54e77c
3eb714 movie playback
12cf40
4102e8
2199f0 - jr ra skip movies or 001997B0 nop
550940 - movie flag?
3b87e8 3b8850 decoding video?

On PS4, with "vu1-mpg-cycles" set to 1, eliminates most the crashing symptoms. But, with it set to 1, FMVs play like crap(stuttering). So, I was going to make a if/then for it to be 270 when FMVs are playing, and 1 otherwise.

@Stayhye Test Drive USA version has an GX config on the ps3, @mrjaredbeta took a look into it and looks like it's sound related, do you think this fixes the audio issues on the ps4 ?

It sure does!

Updated original post with @mrjaredbeta speed fix ported to PS4

https://www.psx-place.com/threads/r...nfiguration-on-ps4.16131/page-150#post-330392
 
Last edited:
This is what I ended up with
CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl-up="up2x2skipinterp"

--vif1-instant-xfer=0

--ee-cycle-scalar=1.82
--ee-regalloc-preserve-scalar=LoadStore

--vu0-mpg-cycles=1
--vu1-mpg-cycles=1

--host-vsync=1

#emu used=jakx v2
LUA
Code:
-- Soul Calibur III (SLUS-21216)
-- ported to PS4 lua
-- emu used=jakx v2

apiRequest(1.0)

local gpr       = require("ee-gpr-alias")
local emuObj      = getEmuObject()
local eeObj       = getEEObject()
local gsObj       = getGsObject()

local thresholdArea = 600

--emuObj.SetFormattedCard("soul3.card")
emuObj.PadSetLightBar(0, 10,176,4)
emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(1)

local WS = function()
-- 16:9
eeObj.WriteMem32(0x0012a118,0x3c013f40)
eeObj.WriteMem32(0x0012a11c,0x34210000)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(WS)

Works great so far. Intro FMV and others stutter a bit, but that's all I've seen as a negative.

They can try this configuration.

CLI

Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth

--vif1-instant-xfer=0

--ee-cycle-scalar=1.50
--iop-cycle-scalar=2.10

--vu0-mpg-cycles=1
--vu1-mpg-cycles=1

#emu used=jakx v2

LUA

Code:
-- Soul Calibur III (SLUS-21216)
-- ported to PS4 lua
-- emu used=jakx v2

apiRequest(1.0)

local emuObj    = getEmuObject()
local eeObj       = getEEObject()

local WS = function()

-- 16:9
eeObj.WriteMem32(0x0012a118,0x3c013f40)
eeObj.WriteMem32(0x0012a11c,0x34210000)

-- PS3 Config remove effect (Optional)
eeObj.WriteMem32(0x0012eb3c,0x00000000)
eeObj.WriteMem32(0x0012e96c,0x00000000)
eeObj.WriteMem32(0x0012e9fc,0x10000015)
eeObj.WriteMem32(0x001637b4,0x14430003)
eeObj.WriteMem32(0x001fa4fc,0x10000016)

eeObj.Vu1MpgCycles(1)
eeObj.SetVifDataCycleScalar(1, 0.80)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(WS)

-- Fix Graphics
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } )

LUA
Code:
-- Soul Calibur III (SCES-53312)
-- ported to PS4 lua
-- emu used=jakx v2

apiRequest(2.3)

local emuObj    = getEmuObject()
local eeObj       = getEEObject()

local WS = function()

-- 16:9
eeObj.WriteMem32(0x0012A120,0x3c013f50) --3C013F4D
eeObj.WriteMem32(0x0012A124,0x34210000) --3421B9CC

-- PS3 Config remove effect (Optional)
eeObj.WriteMem32(0x0012E9FC,0x00000000) --E44C011C
eeObj.WriteMem32(0x0012E82C,0x00000000) --1040001B
eeObj.WriteMem32(0x0012E8BC,0x10000015) --12C00015
eeObj.WriteMem32(0x00163894,0x14430003) --10430003
eeObj.WriteMem32(0x001FACCC,0x10000016) --16030016

eeObj.Vu1MpgCycles(1)
eeObj.SetVifDataCycleScalar(1, 0.80)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(WS)

-- Fix Graphics
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } )

Correct Intro FMV and very sharp Graphics. I haven't found any crashes.

Note: PAL version has small problems with SPS in faces (Spikey Polygon Syndrome) at the beginning of some fights, they disappear immediately. Sometimes the characters don't appear in center stage. If someone can help us solve it, it would be great.
 
They can try this configuration.

CLI

Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth

--vif1-instant-xfer=0

--ee-cycle-scalar=1.50
--iop-cycle-scalar=2.10

--vu0-mpg-cycles=1
--vu1-mpg-cycles=1

#emu used=jakx v2

LUA

Code:
-- Soul Calibur III (SLUS-21216)
-- ported to PS4 lua
-- emu used=jakx v2

apiRequest(1.0)

local emuObj    = getEmuObject()
local eeObj       = getEEObject()

local WS = function()

-- 16:9
eeObj.WriteMem32(0x0012a118,0x3c013f40)
eeObj.WriteMem32(0x0012a11c,0x34210000)

-- PS3 Config remove effect (Optional)
eeObj.WriteMem32(0x0012eb3c,0x00000000)
eeObj.WriteMem32(0x0012e96c,0x00000000)
eeObj.WriteMem32(0x0012e9fc,0x10000015)
eeObj.WriteMem32(0x001637b4,0x14430003)
eeObj.WriteMem32(0x001fa4fc,0x10000016)

eeObj.Vu1MpgCycles(1)
eeObj.SetVifDataCycleScalar(1, 0.80)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(WS)

-- Fix Graphics
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } )

LUA
Code:
-- Soul Calibur III (SCES-53312)
-- ported to PS4 lua
-- emu used=jakx v2

apiRequest(2.3)

local emuObj    = getEmuObject()
local eeObj       = getEEObject()

local WS = function()

-- 16:9
eeObj.WriteMem32(0x0012A120,0x3c013f50) --3C013F4D
eeObj.WriteMem32(0x0012A124,0x34210000) --3421B9CC

-- PS3 Config remove effect (Optional)
eeObj.WriteMem32(0x0012E9FC,0x00000000) --E44C011C
eeObj.WriteMem32(0x0012E82C,0x00000000) --1040001B
eeObj.WriteMem32(0x0012E8BC,0x10000015) --12C00015
eeObj.WriteMem32(0x00163894,0x14430003) --10430003
eeObj.WriteMem32(0x001FACCC,0x10000016) --16030016

eeObj.Vu1MpgCycles(1)
eeObj.SetVifDataCycleScalar(1, 0.80)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(WS)

-- Fix Graphics
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } )

Correct Intro FMV and very sharp Graphics. I haven't found any crashes.

Note: PAL version has small problems with SPS in faces (Spikey Polygon Syndrome) at the beginning of some fights, they disappear immediately. Sometimes the characters don't appear in center stage. If someone can help us solve it, it would be great.
Gameplay of NTSC version here
 
They can try this configuration.

CLI

Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth

--vif1-instant-xfer=0

--ee-cycle-scalar=1.50
--iop-cycle-scalar=2.10

--vu0-mpg-cycles=1
--vu1-mpg-cycles=1

#emu used=jakx v2

LUA

Code:
-- Soul Calibur III (SLUS-21216)
-- ported to PS4 lua
-- emu used=jakx v2

apiRequest(1.0)

local emuObj    = getEmuObject()
local eeObj       = getEEObject()

local WS = function()

-- 16:9
eeObj.WriteMem32(0x0012a118,0x3c013f40)
eeObj.WriteMem32(0x0012a11c,0x34210000)

-- PS3 Config remove effect (Optional)
eeObj.WriteMem32(0x0012eb3c,0x00000000)
eeObj.WriteMem32(0x0012e96c,0x00000000)
eeObj.WriteMem32(0x0012e9fc,0x10000015)
eeObj.WriteMem32(0x001637b4,0x14430003)
eeObj.WriteMem32(0x001fa4fc,0x10000016)

eeObj.Vu1MpgCycles(1)
eeObj.SetVifDataCycleScalar(1, 0.80)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(WS)

-- Fix Graphics
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } )

LUA
Code:
-- Soul Calibur III (SCES-53312)
-- ported to PS4 lua
-- emu used=jakx v2

apiRequest(2.3)

local emuObj    = getEmuObject()
local eeObj       = getEEObject()

local WS = function()

-- 16:9
eeObj.WriteMem32(0x0012A120,0x3c013f50) --3C013F4D
eeObj.WriteMem32(0x0012A124,0x34210000) --3421B9CC

-- PS3 Config remove effect (Optional)
eeObj.WriteMem32(0x0012E9FC,0x00000000) --E44C011C
eeObj.WriteMem32(0x0012E82C,0x00000000) --1040001B
eeObj.WriteMem32(0x0012E8BC,0x10000015) --12C00015
eeObj.WriteMem32(0x00163894,0x14430003) --10430003
eeObj.WriteMem32(0x001FACCC,0x10000016) --16030016

eeObj.Vu1MpgCycles(1)
eeObj.SetVifDataCycleScalar(1, 0.80)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(WS)

-- Fix Graphics
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } )

Correct Intro FMV and very sharp Graphics. I haven't found any crashes.

Note: PAL version has small problems with SPS in faces (Spikey Polygon Syndrome) at the beginning of some fights, they disappear immediately. Sometimes the characters don't appear in center stage. If someone can help us solve it, it would be great.

Gameplay is fine, but there is still some stutter in the FMVs. I am testing on regular PS4(not pro)

=======================================
Fix for Cars NTSC
CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth

--host-display-mode=16:9

--ee-cycle-scalar=1.1

--vu1-mpg-cycles=333

--cdvd-sector-read-cycles=4500

#emu used=jakx v2
LUA
Code:
-- Cars (U)(SLUS-21151)
-- Widescreen Hack by El_Patas (NTSC-U by Arapapa)
-- ported to PS4
-- emu used= Jakx v2

apiRequest(2.0)

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()
--Gameplay 16:9
eeObj.WriteMem32(0x00116d48,0x3c023fab) --3c023f80
eeObj.WriteMem32(0x00116d50,0x3C033CAE) --3C033C8E
eeObj.WriteMem32(0x00116d54,0x34635555) --3463FA34

--Render fix
eeObj.WriteMem32(0x001d5dc4,0x3c03bfab) --3c03bf80
eeObj.WriteMem32(0x001d5dc8,0x3c023fab) --3c023f80
--60fps
eeObj.WriteMem32(0x201B0F28,0x28630001)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)
60FPS, widescreen. No problems seen.
 
Last edited:
orbis-pub-gen.exe. I still use the old, manual way
Ah, I have no idea how to use that program. I am looking through the vcs folder and can see that the emulator used to perform the conversion is listed as psychonauts v2. I dont know what emulator is being used in PS2ClassicGUI, but for PS2FPKG i have the option of Rogue or JAK.

My question is, how do I add additional emulators to PS2FPKG? I know asking sourcing questions is forbidden but I dont even know how to add other emulators to these programs (not that i can even find them)

Game of these settings here

Wow this works really good. Would someone be able to post the config and lua in text format here?
 
Ah, I have no idea how to use that program. I am looking through the vcs folder and can see that the emulator used to perform the conversion is listed as psychonauts v2. I dont know what emulator is being used in PS2ClassicGUI, but for PS2FPKG i have the option of Rogue or JAK.

My question is, how do I add additional emulators to PS2FPKG? I know asking sourcing questions is forbidden but I dont even know how to add other emulators to these programs (not that i can even find them)



Wow this works really good. Would someone be able to post the config and lua in text format here?

seriously....

https://www.psx-place.com/threads/r...nfiguration-on-ps4.16131/page-103#post-313421

And you literally have the text files already....
 

This is the biggest obstacle i am facing at the moment...

upload_2022-4-25_10-49-32.png


There are a whole bunch of these strangely titled emulators which just dont seem to exist anywhere on the internet. All i have is the Jak and Rogue which were built into Jabu's release...
 

Attachments

  • upload_2022-4-25_10-49-17.png
    upload_2022-4-25_10-49-17.png
    3.3 KB · Views: 41
This is the biggest obstacle i am facing at the moment...

View attachment 37009

There are a whole bunch of these strangely titled emulators which just dont seem to exist anywhere on the internet. All i have is the Jak and Rogue which were built into Jabu's release...

Honestly, in this case, the jak emu should work just fine. There are no commands in that config specific to psychonauts emu. The config was originally made on the jakx v2 emu.
 
Honestly, in this case, the jak emu should work just fine. There are no commands in that config specific to psychonauts emu. The config was originally made on the jakx v2 emu.
OK ill take things back to basics and try again with a fresh conversion and see how i go.
 
Building off of @Vika23 updated fix....

Area 51 PAL final
CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-ignore-dirty-page-border=1
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-h2l-list-opt=1
--gs-h2l-accurate-hash=1
--gs-frontend-opt-mode=2
--gs-adaptive-frameskip=1
--force-frame-blend=1
--ee-cycle-scalar=3.31
--iop-cycle-scalar=0.58

--vu1-mpg-cycles=1650

--host-vsync=1

#emu used=jakx v2
LUA
Code:
-- Area 51 (PAL) SLES-52570
-- Widescreen Hack by ElHecht
-- ported to PS4
-- emu used=jakx v2

apiRequest(2.2)

local gpr       = require("ee-gpr-alias")
local emuObj      = getEmuObject()
local eeObj       = getEEObject()
local gsObj       = getGsObject()
local eeOverlay    = eeObj.getOverlayObject()
local iopObj  = getIOPObject()

emuObj.SetDisplayAspectWide()
-- 16:9
eeInsnReplace(0x00392a10, 0x0000000, 0x3c193f40)
eeInsnReplace(0x00392a28, 0x0000000, 0x4499f000)
eeInsnReplace(0x00392a2c, 0x0000000, 0x461ea502)
eeInsnReplace(0x003930f8, 0x0000000, 0x461ebb03)
eeInsnReplace(0x003930e4, 0x0000000, 0x461eab83)

local WS = function()

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(WS)

Cleaner graphics. 16:9 added. Testers welcome.
 

Here test of PAL version, im not see any stutter in the FMVs, or you mean it can be later game?

opening FMV on NTSC version. Also, don't you have a PS4 Pro? That will have better performance than regular ps4(which is what I am using)

* edit - PAL version also stutters, 60hz video mode
 
Last edited:
OK ill take things back to basics and try again with a fresh conversion and see how i go.

Just wanted to let everyone know, I used the JAK X V2 (USA) emulator to generate the pkg and its working MUCH better. There is some tiny slowdown at certain parts, but its completely playable and looks amazing with the upscaling.

Previously I was just using the standard JAK V2 emu, so I guess that was the issue?
 
On PS4, with "vu1-mpg-cycles" set to 1, eliminates most the crashing symptoms. But, with it set to 1, FMVs play like crap(stuttering). So, I was going to make a if/then for it to be 270 when FMVs are playing, and 1 otherwise.



It sure does!

Updated original post with @mrjaredbeta speed fix ported to PS4

https://www.psx-place.com/threads/r...nfiguration-on-ps4.16131/page-150#post-330392


I've been testing this, and I've come to a conclusion, the stutter in the FMV is not related to "vu1-mpg-cycles" but to the high value in "ee-cycle-scalar", if we put it at 1.20, the stutter disappears , but the game crashes and has graphical problems. But in this game the higher the value in "ee-cycle-scalar", the better it works, but as a side effect, it spoils the FMVs.
 
WIP Fix for Test Drive NTSC
CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth

--host-display-mode=16:9

--vu1-const-prop=0
--vu1-no-clamping=0

#emu used=parappa v1
LUA
Code:
-- Test Drive
-- Speed fix by mrjaredbeta
-- emu used=parappa v1

local gpr = require("ee-gpr-alias")

apiRequest(0.1)

local eeObj = getEEObject()
local emuObj = getEmuObject()

--speed fix from PS3 config
eeInsnReplace(0x00178ad4, 0x0c0639ca, 0x00000000)
eeInsnReplace(0x00178c54, 0x0c05efce, 0x00000000)
eeInsnReplace(0x00178d04, 0x0c063acc, 0x00000000)
eeInsnReplace(0x00178e84, 0x0c05f05a, 0x00000000)

local patcher = function()
--Fix initial loading by looping for some time on EE side. That allow IOP proceed requests correctly.
local code_check = eeObj.ReadMem16(0x308530)
if code_check == 0x2262 then
eeObj.WriteMem32(0x20308530,0x0803fff7)
eeObj.WriteMem32(0x20308534,0x240f2000)
end
eeObj.WriteMem64(0x200fffdc,0x55eeffff0000702d)
eeObj.WriteMem64(0x200fffe4,0x0c0c226225ce0004)
eeObj.WriteMem64(0x200fffec,0x080c214e00000000)

end

emuObj.AddVsyncHook(patcher)

Emu got past loading freeze. Game still needs to be optimized. Still has audio stutter in graphically intense areas. @MadSaint1998

*edit PS3 config fixes remaining stutter
I just tested this game, the config and the emulator make the game work very well, unfortunately if we choose "new game", "quick race", on the track "San Francisco 2", the game freezes exactly always halfway through lap 2, always in the same place, and always on lap 2.
 

Similar threads

Back
Top