PS4 [Research]PS2 emulator configuration on PS4

Futurama (all emus) - sound effects and voicelines during gameplay play sporadically (e.g. Fry's lines and his laser gun in second level). KOF2000 & Bully emus have good performance otherwise. Jak/Jak v2 emus have menu and HUD elements stretched beyond the picture frame.
 
Sypro Enter The Dragonfly US SLUS-20315 - Performance and audio crackling fix:

CFG:
--vu1-di-bits=0
--vu0-di-bits=0
--ee-cycle-scalar=0.8

LUA:
apiRequest(1.0)
local eeObj = getEEObject()
local patcher = function()
eeObj.WriteMem32(0x001E71DC,0x24020001)
end

Jak v2 used. There are still some very minor performance issues but way better than original hardware.

Also, would be nice if someone made the conversion of the invisible HUD/menu fix for the NTSC version of Spyro Eternal Night. PAL version works flawlessly with the LUA posted on the dev wiki.
 
Kill Switch (SLUS20706)

FIX

TXT.

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

LUA.
Code:
--gametitle=Kill Switch [SLUS-20706]
--emu used=bully v.2

apiRequest(0.1)

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

local widescreen = function()

--Widescreen hack 16:9

--Force turn on Widescreen
--00 00 00 00 00 00 00 00 04 00 01 00 08 00 02 00 (2nd)
eeObj.WriteMem32(0x203C0E1C,0x00000001)

--Zoom fix
--00a08144 003f013c 00608144
eeObj.WriteMem32(0x0023b594,0x3c013f25) --3c013f00

-----------------------------------------------------------
--4:3 Y-Fov
--eeObj.WriteMem32(0x0023b574,0x3c013fe3) --3c013faa
--eeObj.WriteMem32(0x0023b578,0x34218ef3) --3421a993

--HUD Y-Size
--eeObj.WriteMem32(0x001fefd4,0x3c013bf8) --3c013b08

--HUD X-Size
--eeObj.WriteMem32(0x001fefe8,0x3c013a99) --3c013acc
--eeObj.WriteMem32(0x001fefec,0x34219dcb) --3421cccd

--HUD X-Position
--eeObj.WriteMem32(0x001ff010,0x3c01c254) --3c014220

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(widescreen)

Kill Switch. Short GamePlay!
VIDEO
 
Fix for Castlevania: Curse of Darkness (SLUS-21168)

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

--host-display-mode=16:9
--cdvd-sector-read-cycles=4000
--ee-cycle-scalar=2.0


#emu used=
LUA
Code:
-- Castlevania: Curse of Darkness (SLUS-21168)
-- Widescreen hack by nemesis2000
-- new graphics fix by kozarovv
-- emu used=

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

apiRequest(0.1)

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

local patcher = function()
--gameplay
eeObj.WriteMem32(0x00751384,0x3c013f40) --hor value
eeObj.WriteMem32(0x00751388,0x44810000)
eeObj.WriteMem32(0x00751390,0x4600c602)

--FMV's fix
eeObj.WriteMem32(0x00443eb8,0x00000000)
eeObj.WriteMem32(0x00775398,0x24056e40)
eeObj.WriteMem32(0x007753a4,0x24072380)

-- Clamp value manually. Clamping from emulator change value to FLT_MIN
-- While we need correct lower bits + 1 due to x86 rounding...
eeObj.WriteMem32(0x92FD50, 0xFF7F8001)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)
Castlevania Curse of Darkness|Graphics FiX|PS2toPS4 Test
 
The Lord of the Rings Return of the King (SLES52017)

FIX

LUA.
Code:
-- The Lord of the Rings - The Return of the King SLES-52017
-- emu used=art of fighting anthology

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

apiRequest(0.1)

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

local patcher = function()

-- 16:9
eeObj.WriteMem32(0x0014b13c,0x3c023f40) -- 3c023f80 hor fov

-- Fix hang at start
eeObj.WriteMem32(0x0011891C,0x00000000)

end

emuObj.AddVsyncHook(patcher)

Not played far! Just minor slowdowns noticed (Fog effect)!

The Lord of the Rings The Return of the King. Polska Lang Test!
VIDEO
 
SHIN CONTRA (SLPM-62247)

CONFIG TXT

--gs-uprender=2x2
--gs-upscale=edgesmooth
--host-display-mode=16:9
--host-gamepads=2

LUA

-- Shin Contra NTSC-J
-- Widescreen Hack (16:9) by ElHecht
-- emu used=rogue v2

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

apiRequest(0.1)

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

local patcher = function()

-- 16:9
eeObj.WriteMem32(0x005DBF14,0x3C013F40) --00000000 hor fov
eeObj.WriteMem32(0x005DBF18,0x44810000) --00000000
eeObj.WriteMem32(0x005DBF20,0x4600C602) --00000000
eeObj.WriteMem32(0x00677B74,0x44D8AAAB) -- 44A28000 increase enemy spawn point right
eeObj.WriteMem32(0x00677B78,0xC4D8AAAB) -- C4A28000 increase enemy spawn point left

end

emuObj.AddVsyncHook(patcher)
 
Last edited:
Total FIX for Phantasy Star Universe [SLUS-21194]
Comes with fixed Widescreen patch
Thanks @Stayhye for original config

Config TXT
Code:
--gs-use-clut-merge=1
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"
--cdvd-sector-read-cycles=4000

--fpu-accurate-mul-fast=1
--fpu-accurate-range=0x48cce0,0x49cce0 #fix for Enemies dont move bug (PCSX2 EE Rounding - Nearest)

#emu used=jakx v2

LUA

Code:
-- Phantasy Star Universe (NTSC-U) (SLUS-21194)
-- Widescreen Hack (16:9) by TechieSaru
-- ported to PS4 by Drobovik
-- emu used=jakx v2

local gpr = require("ee-gpr-alias")
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()

--Widescreen 16x9
local code_check = eeObj.ReadMem16(0x277960)
if code_check == 0xFF90 then
eeObj.WriteMem32(0x20277994,0x08030000)
eeObj.WriteMem32(0x200C0000,0x3C023F40)
eeObj.WriteMem32(0x200C0004,0x44820000)
eeObj.WriteMem32(0x200C0008,0xC4810000)
eeObj.WriteMem32(0x200C000C,0x46000842)
eeObj.WriteMem32(0x200C0010,0xE4810000)
eeObj.WriteMem32(0x200C0014,0x0C0A0F4C)
eeObj.WriteMem32(0x200C001C,0x0809DE67)
end
--Battle Cursor Fix
local code_check = eeObj.ReadMem16(0x2ACF80)
if code_check == 0xFF80 then
eeObj.WriteMem32(0x202ACFD4,0x3C02BF40)
end
--Remove Cutscene Letterboxing
--local code_check = eeObj.ReadMem16(0x2D24C0)
--if code_check == 0xFFB0 then
--eeObj.WriteMem32(0x202D2560,0x44801000)
--eeObj.WriteMem32(0x202D2570,0x44802000)
--end

 emuObj.ThrottleMax()

end
emuObj.AddVsyncHook(patcher)

EDIT: Updated the fpu values with smaller range
 
Last edited:
Sypro Enter The Dragonfly US SLUS-20315 - Performance and audio crackling fix:

CFG:
--vu1-di-bits=0
--vu0-di-bits=0
--ee-cycle-scalar=0.8

LUA:
apiRequest(1.0)
local eeObj = getEEObject()
local patcher = function()
eeObj.WriteMem32(0x001E71DC,0x24020001)
end

Jak v2 used. There are still some very minor performance issues but way better than original hardware.

Also, would be nice if someone made the conversion of the invisible HUD/menu fix for the NTSC version of Spyro Eternal Night. PAL version works flawlessly with the LUA posted on the dev wiki.


For

The Legend of Spyro: The Eternal Night NTSC

LUA:

Code:
apiRequest(0.4)

-- The Legend of Spyro: The Eternal Night NTSC (SLUS-21607)

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

eeInsnReplace(0x00173CB8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.

-- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version

emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } ) --texMode=1 ?
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2 } ) --texMode=2 is BILINEAR

Try this code.
 
Last edited:
For

The Legend of Spyro: The Eternal Night NTSC

LUA:

Code:
apiRequest(0.4)

-- The Legend of Spyro: The Eternal Night NTSC (SLUS-21607)

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

eeInsnReplace(0x00173CB8, 0x44840800, 0x00000000) -- Fixes HUD and menu display.

-- Graphic improvement: removes corrupted lines on screen with uprender enabled, for PAL version

emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } ) --texMode=1 ?
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2 } ) --texMode=2 is BILINEAR

Try this code.

I can confirm this works. Thanks.
 
Hi, I have a problem with a lopnor config. The lopnor seems to be disabled when a lua config is added to the game. Is there any way to get around that?

The game is Star Wars The Force Unleashed PAL version
Without the lopnor I can't see the life bar, QTE Buttons, etc.

I found this lua
-- Star Wars™ The Force Unleashed® PAL
-- ported to PS4
-- emu used=redfaction

apiRequest(1.0)

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

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

local patches = function()
--60FPS
eeObj.WriteMem32(0x20125948,0x28420001)

eeObj.Vu1MpgCycles(1000)
emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patches)

Any help would be nice or an explanation why this lua doesn't work with the lopnor config.
 
How can I get The Godfather NTSC fixed? The Godfather theme song stutters when I see the Paramount logo loads up for the first time of playing the game.
 
KOF 2000 fix it for sure!
So how do I get the KOF 2000 emu? Is there a way I could create or download the KOF 2000 emu just because I am using PS2-FPKG 0.6 by Jabu and I only see JAK v2 emu and Rogue v1 emu. I am trying convert The Godfather NTSC game to a FPKG so I could play on my jailbroken PS4. Thanks!
 
Last edited:
So how do I get the KOF 2000 emu? Is there a way I could create or download the KOF 2000 emu just because I am using PS2-FPKG 0.6 by Jabu and I only see JAK v2 emu and Rogue v1 emu. I am trying convert The Godfather NTSC game to a FPKG so I could play on my jailbroken PS4. Thanks!
Disregard. I found out how to get KOF 2000 emu and the Godfather works great! Now I my trying to get Medal of Honor: Rising Sun NTSC to run fine but I am having issues with the game like the cut scenes being laggy and when you play the game the health bar/ammo icons do not appear on screen. Does any one know how to fix it? I used Jak v2 emu to convert this game.
 
Total FIX (Upgrade) for Phantasy Star Universe and Ambition of the Illuminus Expansion (NTSC-U) [2-Disc]
Comes with completely fixed Widescreen and 60fps patches by TechieSaru for both discs. Graphics and "enemy not moving" bug are fixed. Almost mini-remaster. Another great feature of this config - looks like save transferring (character from EXTRA mode) from original PSU to the expansion works! Widescreen FMV code is being used as well. It might require an iso patch (just google "Phantasy Star Universe + AOTI Remastered Modpack"). FMVs are grainy especially zoomed-in so someone might not like to have this code on.

NOTE: 60fps patches cause some slowdown in cities. Cutscene letterboxing is still on. I like it that way. Can be changed by uncommenting the lines. And ThrottleMax is not on by default. Loading is not too bad in these games but you can still use it by pressing L3+Start (PS4 controller touchscreen right) and holding to speed up loading screen. Controller light will turn red as indicator of frame limiter being unlocked.
Thanks @Stayhye for original config and awesome example of Multi-disc-multi-game lua with Mortal Kombat config.

Config TXT
Code:
--switch-disc-reset=1
--gs-use-clut-merge=1
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"
--cdvd-sector-read-cycles=4000

--fpu-accurate-mul-fast=1
--fpu-accurate-range=0x48cce0,0x49cce0   #fix for Enemies dont move bug (PCSX2 EE Rounding - Nearest)
--gs-adaptive-frameskip=1
--gs-ignore-rect-correction=1     #Fix for the flickering white lines at distance (Thanks @nifengyuexia)

#emu used=jakx v2

LUA

Code:
-- Phantasy Star Universe + Ambition of the Illuminus Expansion (NTSC-U) (MULT-01211)
-- Widescreen Patches by ElHecht (port by sergx12) and 60fps by TechieSaru
-- ported as multi-disc pkg to PS4 by Drobovik
-- emu used=jakx v2

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

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

local ThrottleOn = 3
local lightDef = {0,0,255}
local lightThr = {255,0,0}
emuObj.PadSetLightBar(0, lightDef[1], lightDef[2], lightDef[3])

local WSpatchPSU = function()
--Widescreen 16x9 Patch by TechieSaru
local code_check = eeObj.ReadMem16(0x277960)
if code_check == 0xFF90 then
eeObj.WriteMem32(0x20277994,0x08030000)
eeObj.WriteMem32(0x200C0000,0x3C023F40)
eeObj.WriteMem32(0x200C0004,0x44820000)
eeObj.WriteMem32(0x200C0008,0xC4810000)
eeObj.WriteMem32(0x200C000C,0x46000842)
eeObj.WriteMem32(0x200C0010,0xE4810000)
eeObj.WriteMem32(0x200C0014,0x0C0A0F4C)
eeObj.WriteMem32(0x200C001C,0x0809DE67)
end

--Battle Cursor Fix
local code_check = eeObj.ReadMem16(0x2ACF80)
if code_check == 0xFF80 then
eeObj.WriteMem32(0x202ACFD4,0x3C02BF40)
end

--Remove Cutscene Letterboxing
--local code_check = eeObj.ReadMem16(0x2D24C0)
--if code_check == 0xFFB0 then
--eeObj.WriteMem32(0x202D2560,0x44801000)
--eeObj.WriteMem32(0x202D2570,0x44802000)
--end
end

local WSpatchExpansion = function()
--16:9
local code_check = eeObj.ReadMem16(0x26CE80)
if code_check == 0xFF90 then
eeObj.WriteMem32(0x2026CEB4,0x08030000)
eeObj.WriteMem32(0x200C0000,0x3C023F40)
eeObj.WriteMem32(0x200C0004,0x44820000)
eeObj.WriteMem32(0x200C0008,0xC4810000)
eeObj.WriteMem32(0x200C000C,0x46000842)
eeObj.WriteMem32(0x200C0010,0xE4810000)
eeObj.WriteMem32(0x200C0014,0x0C09E494)
eeObj.WriteMem32(0x200C001C,0x0809B3AF)
end

--Battle Cursor Fix
local code_check = eeObj.ReadMem16(0x2A2520)
if code_check == 0xFF80 then
eeObj.WriteMem32(0x202A2578,0x3C02BF40)
end

--optional cutscenes black bar removal
--local code_check = eeObj.ReadMem16(0x2C86F0)
--if code_check == 0xFFB0 then
--eeObj.WriteMem32(0x202C87A4,0x44801000)
--eeObj.WriteMem32(0x202C87B4,0x44802000)
--end
end

local CheckInputs = function()
  local pad_bits  = emuObj.GetPad()
  local UP  = pad_bits &  0x0010
  local DOWN  = pad_bits &  0x0040
  local LEFT  = pad_bits &  0x0080
  local RIGHT  = pad_bits &  0x0020
  local Triangle  = pad_bits &  0x1000
  local Cross  = pad_bits &  0x4000
  local Square  = pad_bits &  0x8000
  local Circle  = pad_bits &  0x2000
  local L1  = pad_bits &  0x0400
  local L2  = pad_bits &  0x0100
  local L3  = pad_bits &  0x0002
  local R1  = pad_bits &  0x0800
  local R2  = pad_bits &  0x0200
  local R3  = pad_bits &  0x0004
  local Select  = pad_bits &  0x0001
  local Start  = pad_bits &  0x0008
  local Nothing = 1
  local onBtn1 = L3
  local onBtn2 = Start
  local onBtn3 = Nothing
  local offBtn1 = R3
  local offBtn2 = Select
  local offBtn3 = Nothing
 
  if (onBtn1 ~= 0) and (onBtn2 ~= 0) and (onBtn3 ~= 0) and (ThrottleOn == 0) then
     emuObj.ThrottleMax()
     emuObj.PadSetLightBar(0, lightThr[1], lightThr[2], lightThr[3])
     ThrottleOn = 1
  elseif (offBtn1 ~= 0) and (offBtn2 ~= 0) and (offBtn3 ~= 0) and (ThrottleOn == 1) then
     emuObj.ThrottleNorm()
     emuObj.PadSetLightBar(0, lightDef[1], lightDef[2], lightDef[3])
     ThrottleOn = 0
  end
  if (ThrottleOn == 3) then
     if (onBtn1 ~= 0) and (onBtn2 ~= 0) and (onBtn3 ~= 0) then
       emuObj.ThrottleMax()
       emuObj.PadSetLightBar(0, lightThr[1], lightThr[2], lightThr[3])
     else
       emuObj.ThrottleNorm()
       emuObj.PadSetLightBar(0, lightDef[1], lightDef[2], lightDef[3])
     end
  end
end

local WidescreenFMVPSU = function()
--Widescreen FMVs --Use with Reverie's ISO patch!
local code_check = eeObj.ReadMem16(0x27EEB0)
if code_check == 0xFF10 then
eeObj.WriteMem32(0x2027F198,0x0C030009)
eeObj.WriteMem32(0x200C0024,0x3C014488)
eeObj.WriteMem32(0x200C0028,0x44811000)
eeObj.WriteMem32(0x200C002C,0x46020001)
eeObj.WriteMem32(0x200C0030,0x3C013F30)
eeObj.WriteMem32(0x200C0034,0x44811000)
eeObj.WriteMem32(0x200C0038,0x46020843)
eeObj.WriteMem32(0x200C003C,0x03E00008)
eeObj.WriteMem32(0x200C0040,0xC6420004)
end
end

local WidescreenFMVEXP = function()
--Widescreen FMVs --Use with Reverie's ISO patch!
local code_check = eeObj.ReadMem16(0x2743D0)
if code_check == 0xFF10 then
eeObj.WriteMem32(0x202746B8,0x0C030009)
eeObj.WriteMem32(0x200C0024,0x3C014488)
eeObj.WriteMem32(0x200C0028,0x44811000)
eeObj.WriteMem32(0x200C002C,0x46020001)
eeObj.WriteMem32(0x200C0030,0x3C013F30)
eeObj.WriteMem32(0x200C0034,0x44811000)
eeObj.WriteMem32(0x200C0038,0x46020843)
eeObj.WriteMem32(0x200C003C,0x03E00008)
eeObj.WriteMem32(0x200C0040,0xC6420004)
end
end

local SixtyFPSPSU = function()
--new 60 fps by TechieSaru
local code_check = eeObj.ReadMem16(0x2570B8) --check 002570B8 matches value 0000102D
if code_check == 0x102D then
eeObj.WriteMem32(0x202570C0,0x08030011)
eeObj.WriteMem32(0x200C0044,0x2405003C)
eeObj.WriteMem32(0x200C0048,0xAC850004)
eeObj.WriteMem32(0x200C004C,0xAC65A18C)
eeObj.WriteMem32(0x200C0050,0x3C054270)
eeObj.WriteMem32(0x200C0054,0xAC65A188)
eeObj.WriteMem32(0x200C0058,0x3C053F80)
eeObj.WriteMem32(0x200C005C,0xAC65A190)
eeObj.WriteMem32(0x200C0060,0x3C053F00)
eeObj.WriteMem32(0x200C0064,0xAC65A194)
eeObj.WriteMem32(0x200C0068,0x03E00008)
end
--Crowd Fix for 60FPS
local code_check = eeObj.ReadMem16(0x24BCD0) --Fixes the crowd walking speed at 60fps. Causes miniscule glitches elsewhere.
if code_check == 0xFFA0 then
eeObj.WriteMem32(0x2024BE60,0x0C03001C)
eeObj.WriteMem32(0x200C0070,0x24045517)
eeObj.WriteMem32(0x200C0074,0x54920006)
eeObj.WriteMem32(0x200C007C,0x24040042)
eeObj.WriteMem32(0x200C0080,0x54820003)
eeObj.WriteMem32(0x200C0088,0x24040080)
eeObj.WriteMem32(0x200C008C,0xA284FFFF)
eeObj.WriteMem32(0x200C0090,0x03E00008)
eeObj.WriteMem32(0x200C0094,0x26520001)
end

local code_check = eeObj.ReadMem16(0x610300)
if code_check == 0xFF90 then
eeObj.WriteMem32(0x206104EC,0x0C030026)
eeObj.WriteMem32(0x200C0098,0x3C034280)
eeObj.WriteMem32(0x200C009C,0x44040800)
eeObj.WriteMem32(0x200C00A0,0x14830006)
eeObj.WriteMem32(0x200C00A4,0x46800020)
eeObj.WriteMem32(0x200C00A8,0x3C033F00)
eeObj.WriteMem32(0x200C00AC,0x4483F000)
eeObj.WriteMem32(0x200C00B0,0x56000002)
eeObj.WriteMem32(0x200C00B4,0x461EA501)
eeObj.WriteMem32(0x200C00B8,0x461EA500)
eeObj.WriteMem32(0x200C00BC,0x03E00008)
end
end

local SixtyFPSEXP = function()
--new 60 fps by TechieSaru
local code_check = eeObj.ReadMem16(0x24C258) --check 0024C258 matches value 0000102D
if code_check == 0x102D then
eeObj.WriteMem32(0x2024C260,0x08030011)
eeObj.WriteMem32(0x200C0044,0x2405003C)
eeObj.WriteMem32(0x200C0048,0xAC850004)
eeObj.WriteMem32(0x200C004C,0xAC65B01C)
eeObj.WriteMem32(0x200C0050,0x3C054270)
eeObj.WriteMem32(0x200C0054,0xAC65B018)
eeObj.WriteMem32(0x200C0058,0x3C053F80)
eeObj.WriteMem32(0x200C005C,0xAC65B020)
eeObj.WriteMem32(0x200C0060,0x3C053F00)
eeObj.WriteMem32(0x200C0064,0xAC65B024)
eeObj.WriteMem32(0x200C0068,0x3C053C88)
eeObj.WriteMem32(0x200C006C,0x34A58889)
eeObj.WriteMem32(0x200C0070,0xAC65B028)
eeObj.WriteMem32(0x200C0074,0x03E00008)
end
--Crowd Fix for 60FPS
local code_check = eeObj.ReadMem16(0x240AC0) --Fixes the crowd walking speed at 60fps. Causes miniscule glitches elsewhere.
if code_check == 0xFFA0 then
eeObj.WriteMem32(0x20240C50,0x0C03001F)
eeObj.WriteMem32(0x200C007C,0x24045517)
eeObj.WriteMem32(0x200C0080,0x54920006)
eeObj.WriteMem32(0x200C0088,0x24040042)
eeObj.WriteMem32(0x200C008C,0x54820003)
eeObj.WriteMem32(0x200C0094,0x24040080)
eeObj.WriteMem32(0x200C0098,0xA284FFFF)
eeObj.WriteMem32(0x200C009C,0x03E00008)
eeObj.WriteMem32(0x200C00A0,0x26520001)
end
local code_check = eeObj.ReadMem16(0x6057A0)
if code_check == 0xFF90 then
eeObj.WriteMem32(0x20605988,0x0C030029)
eeObj.WriteMem32(0x200C00A4,0x3C034280)
eeObj.WriteMem32(0x200C00A8,0x44040800)
eeObj.WriteMem32(0x200C00AC,0x14830006)
eeObj.WriteMem32(0x200C00B0,0x46800020)
eeObj.WriteMem32(0x200C00B4,0x3C033F00)
eeObj.WriteMem32(0x200C00B8,0x4483F000)
eeObj.WriteMem32(0x200C00BC,0x56000002)
eeObj.WriteMem32(0x200C00C0,0x461EA501)
eeObj.WriteMem32(0x200C00C4,0x461EA500)
eeObj.WriteMem32(0x200C00C8,0x03E00008)
end
end

local titleid = emuObj.GetDiscTitleId() -- returns string as read from iso img SYSTEM.CNF

if titleid == 'SLUS-21194' then
if true then
emuObj.AddVsyncHook(WSpatchPSU)
emuObj.AddVsyncHook(WidescreenFMVPSU)
emuObj.AddVsyncHook(SixtyFPSPSU)
end
emuObj.AddVsyncHook(CheckInputs)
end

if titleid == 'SLUS-21631' then
if true then
emuObj.AddVsyncHook(WSpatchExpansion)
emuObj.AddVsyncHook(WidescreenFMVEXP)
emuObj.AddVsyncHook(SixtyFPSEXP)
end
emuObj.AddVsyncHook(CheckInputs)
end
 
Last edited:
Okay, I haven't posted configurations on the forum for a long time, but the repair work has never stopped. Maybe more people need these configurations, they just don't want any PKG files derived from any configurations I posted to appear for download.

Nightshade SLUS-20810
lua
Code:
-- Nightshade (SLUS-20810)
-- Total Repair by nifengyuexia
-- emu used=jak v2

apiRequest(1.0)

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

--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x1d1048,0x1000000f)
--Disable shadows to fix square bugs around characters
eeObj.WriteMem32(0x322060,0x03e00008)
eeObj.WriteMem32(0x322064,0x00000000)
--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x30f3f4,0x00000000)
end
emuObj.AddVsyncHook(patcher)

Nightshade SLES-52238
lua
Code:
-- Nightshade(SLES-52238)
-- Total Repair by nifengyuexia
-- emu used=jak v2

apiRequest(1.0)

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

--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x1d1f38,0x1000000f)
--Disable shadows to fix square bugs around characters
eeObj.WriteMem32(0x326370,0x03e00008)
eeObj.WriteMem32(0x326374,0x00000000)
--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x3135f4,0x00000000)
end
emuObj.AddVsyncHook(patcher)

Kunoichi SLAJ-25031
lua
Code:
-- Kunoichi(SLAJ-25031)
-- Total Repair by nifengyuexia
-- emu used=jak v2

apiRequest(1.0)

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

--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x1d10f8,0x1000000f)
--Disable shadows to fix square bugs around characters
eeObj.WriteMem32(0x324450,0x03e00008)
eeObj.WriteMem32(0x324454,0x00000000)
--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x3117f4,0x00000000)
end
emuObj.AddVsyncHook(patcher)

Kunoichi SLPM-65447
lua
Code:
-- Kunoichi(SLPM-65447)
-- Total Repair by nifengyuexia
-- emu used=jak v2

apiRequest(1.0)

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

--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x1d1058,0x1000000f)
--Disable shadows to fix square bugs around characters
eeObj.WriteMem32(0x321c70,0x03e00008)
eeObj.WriteMem32(0x321c74,0x00000000)
--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x30f004,0x00000000)
end
emuObj.AddVsyncHook(patcher)

Disabling haze will cause the charge effect to be lost, but the game is now 100% playable without any frame rate drops.
 
Last edited by a moderator:
Tekken 5

CLI
All versions
Code:
--host-audio-latency=0.75
--iop-cycle-scalar=0.95
--ee-cycle-scalar=0.78

LUA
All versions
Code:
-- Tekken 5
-- Total Repair by nifengyuexia
-- emu used=bully v2


apiRequest(0.1)

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


emuObj.SetGsTitleFix( "ignoreSubBuffCov", "reserved", { } )     --Fix black horizontal lines on screen
emuObj.SetGsTitleFix( "forceSimpleFetch",  "reserved", {psm=0} )    --Fix wrong transparent layers and ghosting
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )    --Fix wrong transparent layers and ghosting
铁拳5_20230704185200.jpg

铁拳5_20230704191147.jpg

铁拳5_20230704182323.jpg

铁拳5_20230704183432.jpg

Now there is no need for any configuration that reduces the image quality. The widescreen patch and 480P Sharp buffer can be optionally added. The arcade mode has no graphics errors and the demon Jin Kazama mode has no errors. It is 100% playable.

Code:
emuObj.SetGsTitleFix( "ignoreSubBuffCov", "reserved", { } )
There are many games that can be repaired by this command, including Valkyrie Profile 2: Silmeria and GT4 Racing. It can fix color graphics errors that appear at the bottom of the screen. It can also help fix black horizontal lines on 2D game characters.
 
Last edited:

Similar threads

Back
Top