PS4 [Research]PS2 emulator configuration on PS4

Good find with Widescreen changer in Coraline game! Turn off widescreen (in game and while gameplay) helps too see videos in normal size! As Always big thanks to @Kugozx
VIDEO

Coraline PS2toPS4 Test

One small bad side of game is - loading "forever" sometine on some locations! Just need reboot game, and it will load fine, so better do alot saves!

Kof98 Emu used!
 
Dragon's Lair 3D Special Edition PS2toPS4 Test

Low framerate in some areas! For solve it, just need load last checkpoint!

ADK Emu used!
 
Fix for Battlestar Galactica PAL
CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth

--host-display-mode=16:9
--cdvd-sector-read-cycles=2000

#emu used=rotk v1
LUA
Code:
-- Battlestar Galactica SLES_517.02
-- ported to PS4
-- emu used=rotk v1

apiRequest(0.1)

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

--16:9 A
eeInsnReplace(0x00102354, 0x3c013f99, 0x3c013f66) -- Gameplay
eeInsnReplace(0x00102358, 0x3421999a, 0x34216666)

local patcher = function()
--16:9 B
eeObj.WriteMem32(0x001cb818,0x3c013f66) --menu
eeObj.WriteMem32(0x001cb81c,0x34216666)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

Works great! PCSX2 pnach file had to be split to avoid crashing after PS2 logo.
 
Fix+Cheats for Fight Club NTSC
CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--cdvd-sector-read-cycles=3000

--ee-cycle-scalar=1.10

#--vif1-instant-xfer=0  #fixed title screen, broke most stages(not used in config)

--vu0-mpg-cycles=1

#emu used=aofa
LUA
Code:
-- Fight Club (U)(SLUS-20857)
-- Widescreen Hack by Arapapa
-- ported to PS4
-- emu used=aofa

apiRequest(1.0)

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

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

emuObj.SetDisplayAspectWide()

local widescreen    = function()
--Widescreen hack 16:9
eeObj.WriteMem32(0x0025909c,0x3c013ec0)
--Fred by MadCatz
eeObj.WriteMem32(0x2046E434,0x00000001)
--Halo by MadCatz
eeObj.WriteMem32(0x2046E438,0x00000001)
--Abe by MadCatz
eeObj.WriteMem32(0x2046E43C,0x00000001)
--Chesler by MadCatz
eeObj.WriteMem32(0x2046E440,0x00000001)
--Tyler by MadCatz
eeObj.WriteMem32(0x2046E3D4,0x00000001)
--Jack by MadCatz
eeObj.WriteMem32(0x2046E3D8,0x00000001)
--Bob by MadCatz
eeObj.WriteMem32(0x2046E3DC,0x00000001)
--Angel Face by MadCatz
eeObj.WriteMem32(0x2046E3E0,0x00000001)
--Irvine by MadCatz
eeObj.WriteMem32(0x2046E3E4,0x00000001)
--Mechanic by MadCatz
eeObj.WriteMem32(0x2046E3E8,0x00000001)
--Ricky by MadCatz
eeObj.WriteMem32(0x2046E3EC,0x00000001)
--Lou by MadCatz
eeObj.WriteMem32(0x2046E3F0,0x00000001)
--Raymond by MadCatz
eeObj.WriteMem32(0x2046E3F4,0x00000001)
--Detective Stern by MadCatz
eeObj.WriteMem32(0x2046E3F8,0x00000001)
--Fred by MadCatz
eeObj.WriteMem32(0x2046E3FC,0x00000001)
--Halo by MadCatz
eeObj.WriteMem32(0x2046E400,0x00000001)
--Abe by MadCatz
eeObj.WriteMem32(0x2046E404,0x00000001)
--Chesler by MadCatz
eeObj.WriteMem32(0x2046E408,0x00000001)
-- fixes graphical glitches...still slight flicker. better results than "--vif1-instant-xfer=0" in CLI
eeObj.SchedulerDelayEvent("vif1.dma", 0x6000) -- need to find exact value
eeObj.Vu1MpgCycles(1) -- reduces flicker further

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(widescreen)

99% fixed! Slight flicker. The usage of "eeObj.SchedulerDelayEvent("vif1.dma", 0x????)" may lead to something else all together. In this instance, it was used to replace "--vif1-instant-xfer=0" in CLI, which fixed most things, but severely broke others.
 
Last edited:
Final Fixes for:

Avatar™ The Last Airbender - Into The Inferno® NTSC
CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--host-display-mode=16:9
--cdvd-sector-read-cycles=2000

#emu used=psychonauts v2
LUA
Code:
-- Avatar™ The Last Airbender - Into The Inferno®
-- emu used=psychonauts v2

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

apiRequest(0.1)

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

local patcher = function()
--16:9
eeObj.WriteMem32(0x00148364,0x3c023fe3) -- 3c023faa
eeObj.WriteMem32(0x00148378,0x34428e39) -- 3442aaab

eeObj.SchedulerDelayEvent("vif1.dma", 0x6500) -- "--vif1-instant-xfer=0" replacement
emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

Avatar - The Last Airbender™ The Burning Earth®

CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--host-display-mode=16:9
--cdvd-sector-read-cycles=2000
LUA
Code:
-- Avatar - The Last Airbender™ The Burning Earth®
-- emu used=psychonauts v2

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

apiRequest(0.1)

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

local patcher = function()
--16:9
eeObj.WriteMem32(0x00142f30,0x3c033fe3) -- 3c033faa
eeObj.WriteMem32(0x00142f44,0x34638e39) -- 3463aaab

eeObj.SchedulerDelayEvent("vif1.dma", 0x6500)  -- "--vif1-instant-xfer=0" replacement
emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

Total fix! 100% No more text glitches! Feedback welcome! @Bergolino Gamer
 
Last edited:
Fix for Project - Snowblind (NTSC-U)
CLI
Code:
--gs-uprender=2x2
--gs-upscale=gpu
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
--cdvd-sector-read-cycles=3000
--fpu-no-clamping=0
--fpu-clamp-results=1
--fpu-rsqrt-fast-estimate=0
--vu1-di-bits=0
--vu0-di-bits=0

--ee-cycle-scalar=2.0

#emu used=aofa
LUA
Code:
-- Project - Snowblind (NTSC-U)
-- Widescreen hack by ElHecht
-- emu used=aofa

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

apiRequest(0.1)

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

emuObj.SetDisplayAspectWide()

local patcher = function()
-- 16:9 single player mode
local code_check1 = eeObj.ReadMem16(0x100000)
if code_check1 == 0xff80 then
   eeObj.WriteMem32(0x201d87b8,0x3c013fe3) --3c013faa
   eeObj.WriteMem32(0x201d87bc,0x34218e39) --3421aaab
end
local code_check2 = eeObj.ReadMem16(0x100000)
if code_check2 == 0xffc0 then
   eeObj.WriteMem32(0x203327f0,0x3c013fe3) --3c013faa
   eeObj.WriteMem32(0x203327f4,0x34218e39) --3421aaab
end

eeObj.SchedulerDelayEvent("vif1.dma", 0x6000) -- used as "--vif1-instant-xfer=0" replacement.  fixes graphics

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

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

Works great. Tested a little. Slight stutter during high intense areas
 
Can someone help me get Armored core 3 to run properly? I tried both Jak and Rogue emus which works perfectly for silent line, nexus and last raven, but Armored core 3 crashes when I try the Arena and a few other missions.
 
@Stayhye
Thank you very much.

Also works for Avatar: The Last Airbender

Now Avatar 3 games work fine

CLI


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

--host-display-mode=16:9
--cdvd-sector-read-cycles=2000

LUA
Code:
-- Avatar - The Last Airbender NTSC
-- emu used=psychonauts v2

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

apiRequest(0.1)

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

local patcher = function()
--16:9
eeObj.WriteMem32(0x001426e8,0x3c033fe3) -- 3c033faa
eeObj.WriteMem32(0x001426ec,0x34638e39) -- 3463aaab

eeObj.SchedulerDelayEvent("vif1.dma", 0x6500)
emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)
 
Fix+Cheats for Kessen III NTSC
CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-use-clut-merge=1          
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"
--cdvd-sector-read-cycles=2000

#emu used=aofa
LUA
Code:
-- Kessen 3
-- Widescreen hack + Cheats
-- emu used=aofa
 
local gpr = require("ee-gpr-alias")

apiRequest(0.1)

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

emuObj.SetDisplayAspectWide()

local patcher = function()
--Widescreen hack 16:9
eeObj.WriteMem32(0x0015be08,0x3c023f40) --hor
eeObj.WriteMem32(0x0038f4d8,0x3c023f40)
--Have All Catalogue by Code Master, Sage
eeObj.WriteMem32(0x2040216C,0x24010003)
eeObj.WriteMem32(0x20402170,0xA0411DDC)
eeObj.WriteMem32(0x20402174,0x24020001)

--Have All Movie Gallery by Code Master, Sage
eeObj.WriteMem32(0x204020BC,0x24010003)
eeObj.WriteMem32(0x204020C0,0xA0411F46)
eeObj.WriteMem32(0x204020C4,0x24020001)

--Have All Auditorium by Code Master, Sage
eeObj.WriteMem32(0x20401E0C,0x24010003)
eeObj.WriteMem32(0x20401E10,0xA0411FCB)
eeObj.WriteMem32(0x20401E14,0x24020001)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

100% Fix. Tested a little. Feedback welcome.

Also, can anyone explain what this is doing command-wise?
Code:
3D 00 00 00 57 44 00 00 0B 00 00 00 03 00 00 00 
10 76 00 00 BC 07 00 00 10 00 00 00 48 43 88 00 
4B E5 21 AC 30 84 80 00 4B E7 2B 3C 4B E5 21 AC 
30 84 80 00 4B E7 2B 3C 48 43 88 00 64 76 00 00 
10 05 00 00 0C 00 00 00 4B C0 10 9C 4B C0 18 DC 
4A 68 03 BE 4A 68 03 BE 4B C0 10 9C 4B C0 18 DC 
64 76 00 00 C8 06 00 00 0C 00 00 00 4B C0 10 9C 
4B C0 18 DC 4A 68 03 BE 4A 68 03 BE 4B C0 10 9C 
4B C0 18 DC 00 00 00 00 53 4C 55 53 2D 32 30 32 37 35
 
Last edited:
This config is for Kessen II, not III. It is a COP2 rearrangement patch to avoid timing issues caused by the inaccurately emulated pipeline.
Meta: COP2 Timing Issues · Issue #4439 · PCSX2/pcsx2 · GitHub
It is common for all emulators out there. Moreover, the PS3 and PS4 emulators share with each other similar emulation bugs probably.

Thanks. I know what game it is for, I used it to fix it(Kessen 2). What I was asking is what is the file doing, so I could try to translate PS3 config file to PS4 lua, and not actually use the PS3 config file itself. I skipped the PS2onPS3 train, so I don't really know how to read them.
 
Every command is well documented on the wiki page. The PS4's equivalent should be the "emuMediaPatch". Moreover, the Kessen II config has been explained on the official configs page.
 
Every command is well documented on the wiki page. The PS4's equivalent should be the "emuMediaPatch". Moreover, the Kessen II config has been explained on the official configs page.

That is like looking at hieroglyphics for someone that does not understand the language. I've seen all those wiki pages before and don't understand them, hence why I ask for help here. But that seems to be pointless as well, I thought this was a help forum.
 
Last edited:
In layman's terms, the PS3 config basically patches the disc image before loading it to fix some graphical bugs. I am fairly certain this can also be done with eeInsnReplace or WriteMem with the proper addresses (which is patching the EE memory after it is loaded from disc instead of before), and I am almost certain that it is required on PS4 as well.
 
That is like looking at hieroglyphics for someone that does not understand the language. I've seen all those wiki pages before and don't understand them, hence why I ask for help here. But that seems to be pointless as well, I thought this was a help forum.

The point is I do not want to explain everything myself (because English is not my primary language and I am terrible at explaining things), as someone else did it better than I could have ever done. We have all started from the zero level of knowledge here, but we dedicated our own time to learn these, you called, "hieroglyphs" for better understanding. Not to mention, the resources were not as detailed as they are today. That is why I am constantly answering your questions with the links for resources I wanted myself to receive two years ago when I started my adventure with this. And I am doing this only because I see you are spending shitload of your own time trying commands blindly and I want to, guess what, help you.

If you gain the knowledge, you spend less time on blind games and you can start contributing gathered information to the wiki to pass the knowledge later on. That is how it does fucking work!

If you want a precise answer, ask precise questions. Do not bitch around, because everybody here is wanting to help each other.
 
Last edited:
The point is I do not want to explain everything myself (because English is not my primary language and I am terrible at explaining things)

Then don't. I didn't ask you specifically. If all you are going to do is belittle, then kindly shut the F%$# up.
 
Let's try to keep it civil please. :)

i can not close an important thread like this one. i can prevent individual user(s) from posting in this thread for a while to give them time to simmer down.
 

Similar threads

Back
Top