PS4 [Research]PS2 emulator configuration on PS4

V.I.P. Featuring Pamela Anderson (SLES50730)

TXT.
Code:
--host-display-mode=16:9
--cdvd-sector-read-cycles=2000
--force-pal-60hz=1
--ee-cycle-scalar=2.1

LUA.
Code:
-- V.I.P. (PAL-M5) (SLES-50730)
-- emu used=ADK

apiRequest(1.0)   

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

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

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

if (LEFT ~= 0 and L1 ~= 0) then
-- All Unlocked
eeObj.WriteMem32(0x203286C8,0x00000008)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patcher = function()

-- 16:9
eeObj.WriteMem32(0x001e46a0,0x3c013f40) --00000000 hor fov
eeObj.WriteMem32(0x001e46a4,0x4481f000) --00000000
eeObj.WriteMem32(0x001e46b8,0x461e0343) --46000346
eeObj.WriteMem32(0x001e46bc,0x46006b07) --46000307
eeObj.WriteMem32(0x0024c810,0x3c02437a) --3c024334 renderfix

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

Whats FiXed:
  • Black screen at start of game (with picked right emu)
  • Performance
V.I.P. Featuring Pamela Anderson. Short GamePlay!
VIDEO
 
Shadow the Hedgehog (SLUS21261)

TXT.
Code:
--host-display-mode=16:9
--ee-cycle-scalar=1.31
--vu1-mpg-cycles=4000
--cop2-di-bits=1
--cdvd-sector-read-cycles=2000

LUA.
Code:
-- Shadow The Hedgehog NTSC
-- emu used=Star Wars Racer's Revenge v1

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

apiRequest(0.4)

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

local patcher = 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

if (R1 ~= 0 and LEFT ~= 0) then -- Normal Screen
   -- original value
   eeObj.WriteMem32(0x207CF188,0x3F9DA591) -- chaos control fov
   eeObj.WriteMem32(0x20845ED8,0x3F800000) -- main fov
end

if (R1 ~= 0 and RIGHT ~= 0) then -- Widescreen Screen
   eeObj.WriteMem32(0x207CF188,0x3F199999) -- 3F9DA591 chaos control fov
   eeObj.WriteMem32(0x20845ED8,0x3FAAAAAA) -- 3F800000 main fov
end

if (R1 ~= 0 and UP ~= 0) then
-- Have 999 Rings
eeObj.WriteMem32(0x209BFF3C,0x000003E7)
end

if (R1 ~= 0 and DOWN ~= 0) then
-- Infinite Ammo
eeObj.WriteMem32(0x209BFF30,0x000003E7)
end

if (L3 ~= 0) then
-- Unlock All Levels
eeObj.WriteMem32(0x209BC058,0x00000001)
eeObj.WriteMem32(0x209BC0AC,0x00000001)
eeObj.WriteMem32(0x209BC100,0x00000001)
eeObj.WriteMem32(0x209BC154,0x00000001)
eeObj.WriteMem32(0x209BC1A8,0x00000001)
eeObj.WriteMem32(0x209BC1FC,0x00000001)
eeObj.WriteMem32(0x209BC250,0x00000001)
eeObj.WriteMem32(0x209BC2A4,0x00000001)
eeObj.WriteMem32(0x209BC2F8,0x00000001)
eeObj.WriteMem32(0x209BC34C,0x00000001)
eeObj.WriteMem32(0x209BC3A0,0x00000001)
eeObj.WriteMem32(0x209BC3F4,0x00000001)
eeObj.WriteMem32(0x209BC448,0x00000001)
eeObj.WriteMem32(0x209BC49C,0x00000001)
eeObj.WriteMem32(0x209BC4F0,0x00000001)
eeObj.WriteMem32(0x209BC544,0x00000001)
eeObj.WriteMem32(0x20A2FF18,0x46ED0661)
eeObj.WriteMem32(0x209BC5EC,0x00000001)
eeObj.WriteMem32(0x209BC640,0x00000001)
eeObj.WriteMem32(0x209BC694,0x00000001)
eeObj.WriteMem32(0x209BC6E8,0x00000001)
eeObj.WriteMem32(0x209BC73C,0x00000001)
end

if (R3 ~= 0) then
-- Infinite Lives
eeObj.WriteMem32(0x209BFF34,0x00000009)
end

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(patcher)

Shadow the Hedgehog. Short GamePay!
VIDEO
 
Sonic Gems Collection (SLPM66074)

TXT.
Code:
--host-display-mode=16:9
--cdvd-sector-read-cycles=2000
--host-gamepads=2
--ps2-lang=Japanese # remove if you want EU Soundtrack in Sonic CD

LUA.
Code:
-- Sonic Gems Collection (JPN)
-- emu used=aofa

apiRequest(2.0)

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

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

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

if (L3 ~= 0) then
-- Unlock Hidden Games (Sonic Gems Collection)
eeObj.WriteMem32(0x01FC5D74,0x00000001)
eeObj.WriteMem32(0x01FC5D78,0x00000001)
eeObj.WriteMem32(0x01FC5D7C,0x00000001)
eeObj.WriteMem32(0x01FC5D70,0x00000001)
eeObj.WriteMem32(0x01FC5D68,0x00000001)
eeObj.WriteMem32(0x01FC5D6C,0x00000001)
end

end

emuObj.AddVsyncHook(CheckInputs)

emuObj.SetDisplayAspectWide()

emuObj.SetPs2Lang(0)
 
local Main = function()

end

emuObj.AddVsyncHook(Main)

Sonic Gems Collection. Short GamePlay!
VIDEO


Sonic CD. Short GamePlay! (Sonic Gems Collection)
VIDEO


Sonic the Fighters (Arcade) (Bad work with current emu)
Sonic R (Sega Saturn) (Bad work with current emu)

Sonic CD and other Game Gear and Mega Drive games works fine!
 
Sonic R (Sonic Gems Collection) (Custom image)

TXT.
Code:
--host-display-mode=16:9
--cop2-di-bits=1
--cdvd-sector-read-cycles=2000

LUA.
Code:
-- Sonic R (SNKR-11103)(Custom image)
-- emu used=Star Wars Racer's Revenge v1

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

apiRequest(0.4)

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

local patcher = function()


emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(patcher)

Sonic R. Short GamePlay! (Sonic Gems Collection)
VIDEO

Game was repacked and loaded separate from Collection!

Works perfect now!
 
Tomb Raider - Legend - bloom fix
by Juano V


SLUS-21203
Code:
--ws
eeObj.WriteMem32(0x20391F70, 0x3F800000)
eeObj.WriteMem32(0x203B8E00, 0x00000001)
eeObj.WriteMem32(0x2046EAE4, 0x3F800000)
eeObj.WriteMem32(0x20963220, 0x00000001)
eeObj.WriteMem32(0x2097AE30, 0x00000001)
--480p
--eeObj.WriteMem32(0x003B8DDC, 0x00000001)  --00000000
--eeObj.WriteMem32(0x20391F88, 0x3f800000)  --00000000
--eeObj.WriteMem32(0x20124A94, 0x240301c0) --240301a0
--black-bars
eeObj.WriteMem32(0x0016C5F0, 0x3C01BF60)
eeObj.WriteMem32(0x0016C5FC, 0x3C013F60)
--disable bloom
eeObj.WriteMem32(0x0011DF20,0x00000000)

SLES-53908
Code:
--disable bloom
eeObj.WriteMem32(0x0011DF20,0x00000000)

Tomb Raider - Underworld

SLUS-21858
Code:
--disable bloom
eeObj.WriteMem32(0x0038E920,0x00000000)

SLES-55442
Code:
--disable bloom
eeObj.WriteMem32(0x0038EA28,0x00000000)

Tomb Raider - Anniversary

SLUS-21555
Code:
--disable bloom
eeObj.WriteMem32(0x0011EB08,0x00000000)

SLES-54674
Code:
--disable bloom
eeObj.WriteMem32(0x0011EAF0,0x00000000)

 
Xena Warrior Princess (SLES54541)

TXT.
Code:
--host-display-mode=16:9
--gs-optimize=60fps
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--cdvd-sector-read-cycles=2000
--ee-cycle-scalar=3.0
--gs-ignore-rect-correction=1

LUA.
Code:
-- Xena Warrior Princess (PAL) (SLES-54541)
-- emu used=ADK

apiRequest(1.0)   

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

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

local patcher = function()

-- 16:9
eeObj.WriteMem32(0x2037C2C8,0x3F88F5C3) --3F4CCCCD

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

Xena Warrior Princess. Short GamePlay!
VIDEO
 
Black (SLES53886)

TXT.
Code:
--host-display-mode=16:9
--host-vsync=1
--framelimit-mode=normal
--cdvd-sector-read-cycles=2000

--gs-progressive=1
--gs-motion-factor=50

--gs-vert-precision=8

--gs-ignore-rect-correction=1

LUA.
Code:
-- Black (PAL-E) SLES-53886
-- emu used=aofa

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

apiRequest(0.1)

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

emuObj.SetDisplayAspectWide()

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

if (L3 ~= 0) then
-- Widescreen 16:9
eeObj.WriteMem32(0x203BE8BC,0x00000001)
eeObj.WriteMem32(0x204BC950,0x00000001)
eeObj.WriteMem32(0x204BD98C,0x00000101)
eeObj.WriteMem32(0x204CAD54,0x3FE38E39)
eeObj.WriteMem32(0x204CADF0,0x3FAAAAAB)
eeObj.WriteMem32(0x204CADF4,0x3FE38E39)
eeObj.WriteMem32(0x204CAD94,0x3FE38E39)
eeObj.WriteMem32(0x205BCB90,0x3F400000)
end
if (Select ~= 0) then
-- Skip FMVs
eeObj.WriteMem32(0x20104B90,0x00000000) --1440000A
end
if (R3 ~= 0) then
-- Infinite Health,Ammo,Grenades
eeObj.WriteMem32(0x205A95A8,0x44960000)
eeObj.WriteMem32(0x005A9B51,0x00000003) --005B0120
eeObj.WriteMem32(0x201FD268,0xA0455CA0)
eeObj.WriteMem32(0x20155260,0x24030009)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patcher = function()

-- COP2 Rearrangement. Fixes broken collisions.
eeObj.WriteMem32(0x0037EBD4,0x4B000460) -- 4AF103BC
eeObj.WriteMem32(0x0037EBD8,0x4AF103BC) -- 4B000460
eeObj.WriteMem32(0x0037EBF0,0x4A800460) -- 4B7103BC
eeObj.WriteMem32(0x0037EBF4,0x4B7103BC) -- 4A800460

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

eeObj.Vu1MpgCycles(1)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(patcher)

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

emuObj.SetGsTitleFix( "forceSimpleFetch",  "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )

-- Graphic improvement: removes corrupted lines on screen with uprender on for PAL/NTSC version
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { ztst=0, texMode=1 } )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { ztst=0, texMode=2 } )

Whats FiXed:

  • Crashes on Level 4 (Possible FiX)
  • Broken collisions on Level 1
  • Graphical bugs (White outline)
  • Performance
  • Speeded up loading screens
Bad sides:

  • Sound is still distorsed, but in general it ok!
  • Random colored visual bugs
  • Game will crashes in end of each level if use Infinite cheats, but game let you do save!
Thanks @Kugozx for help with config!

Black. Short GamePlay!

VIDEO
 
Black (SLES53886)

TXT.
Code:
--host-display-mode=16:9
--host-vsync=1
--framelimit-mode=normal
--cdvd-sector-read-cycles=2000

--gs-progressive=1
--gs-motion-factor=50

--gs-vert-precision=8

--gs-ignore-rect-correction=1

LUA.
Code:
-- Black (PAL-E) SLES-53886
-- emu used=aofa

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

apiRequest(0.1)

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

emuObj.SetDisplayAspectWide()

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

if (L3 ~= 0) then
-- Widescreen 16:9
eeObj.WriteMem32(0x203BE8BC,0x00000001)
eeObj.WriteMem32(0x204BC950,0x00000001)
eeObj.WriteMem32(0x204BD98C,0x00000101)
eeObj.WriteMem32(0x204CAD54,0x3FE38E39)
eeObj.WriteMem32(0x204CADF0,0x3FAAAAAB)
eeObj.WriteMem32(0x204CADF4,0x3FE38E39)
eeObj.WriteMem32(0x204CAD94,0x3FE38E39)
eeObj.WriteMem32(0x205BCB90,0x3F400000)
end
if (Select ~= 0) then
-- Skip FMVs
eeObj.WriteMem32(0x20104B90,0x00000000) --1440000A
end
if (R3 ~= 0) then
-- Infinite Health,Ammo,Grenades
eeObj.WriteMem32(0x205A95A8,0x44960000)
eeObj.WriteMem32(0x005A9B51,0x00000003) --005B0120
eeObj.WriteMem32(0x201FD268,0xA0455CA0)
eeObj.WriteMem32(0x20155260,0x24030009)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patcher = function()

-- COP2 Rearrangement. Fixes broken collisions.
eeObj.WriteMem32(0x0037EBD4,0x4B000460) -- 4AF103BC
eeObj.WriteMem32(0x0037EBD8,0x4AF103BC) -- 4B000460
eeObj.WriteMem32(0x0037EBF0,0x4A800460) -- 4B7103BC
eeObj.WriteMem32(0x0037EBF4,0x4B7103BC) -- 4A800460

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

eeObj.Vu1MpgCycles(1)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(patcher)

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

emuObj.SetGsTitleFix( "forceSimpleFetch",  "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )

-- Graphic improvement: removes corrupted lines on screen with uprender on for PAL/NTSC version
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { ztst=0, texMode=1 } )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { ztst=0, texMode=2 } )

Whats FiXed:



    • Crashes on Level 4 (Possible FiX)
    • Broken collisions on Level 1
    • Graphical bugs (White outline)
    • Performance
    • Speeded up loading screens
Bad sides:



    • Sound is still distorsed, but in general it ok!
    • Random colored visual bugs
    • Game will crashes in end of each level if use Infinite cheats, but game let you do save!
Thanks @Kugozx for help with config!

Black. Short GamePlay!
VIDEO
this maybe help with random colors:
Code:
eeObj.WriteMem32(0x001C6EF8,0x00000000)
 
Black (SLPM-66354)

CONFIG TXT

--host-vsync=1
--framelimit-mode=normal
--cdvd-sector-read-cycles=2000
--gs-progressive=1
--gs-motion-factor=50
--gs-vert-precision=8
--gs-ignore-rect-correction=1

LUA

-- Black NTSC (SLPM-66354)
-- emu used=aofa

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

apiRequest(0.1)

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

local patcher = function()

--60 fps
eeObj.WriteMem32(0x001C5C38,0x24040001)
eeObj.WriteMem32(0x001251B4,0x24040001)
eeObj.WriteMem32(0x00102648,0x2404003C)
eeObj.WriteMem32(0x001251A0,0x2410003C)

--480p
eeObj.WriteMem8(0x003BE924,0x01)

--fixes broken collisions
eeObj.WriteMem32(0x0037ECD4,0x4B000460)
eeObj.WriteMem32(0x0037ECD8,0x4AF103BC)
eeObj.WriteMem32(0x0037ECF0,0x4A800460)
eeObj.WriteMem32(0x0037ECF4,0x4B7103BC)

--fixes random colors
eeObj.WriteMem32(0x001C6F70,0x00000000)

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

eeObj.Vu1MpgCycles(1)

end

emuObj.AddVsyncHook(patcher)

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

emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )

-- Graphic improvement: removes corrupted lines on screen with uprender on for PAL/NTSC version
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { ztst=0, texMode=1 } )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { ztst=0, texMode=2 } )
 
Need for speed - Hot pursuit 2 [SLES-50731]
emu=jak 2

txt:
Code:
--gs-upscale=edgesmooth
--gs-uprender=1
--host-display-mode=16:9
--safe-area-min=0.9
--force-pal=60hz
--vu1-no-clamping=0

lua:
Code:
apiRequest(2.0)

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

local patcher = function()
--ws by nemesis2000
eeObj.WriteMem32(0x0032F6FC, 0x3F400000) 
eeObj.WriteMem32(0x0032F850, 0x3F2AAAAB) 
eeObj.WriteMem32(0x0010E840, 0x3C013F2B) 
--less blur by Felixthecat1970
eeObj.WriteMem32(0x002C7ACC, 0x00000000)
eeObj.WriteMem32(0x002C7B28, 0x00000000)
eeObj.WriteMem32(0x00108274, 0x24020060)
eeObj.WriteMem32(0x002C7AE0, 0x00000000)
eeObj.WriteMem32(0x002C7B3C, 0x00000000)
--disable distant fog by Juano V
eeObj.WriteMem32(0x00118A90, 0x1000002A)
emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)
 
Ford street racing [SLES-53639]
-Fix low frame rate
-Emu used: primal

Code:
--gs-uprender=1
--gs-upscale=smooth
--host-display-mode=16:9
--vu1-mpg-cycles=700
--vu1-jalr-cache-policy=newprog #fix slowdown

lua:
Code:
apiRequest(1.1)
local eeObj  = getEEObject()
local emuObj = getEmuObject()

local patcher   = function()

emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)

emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2  } ) #fix lines on screen?
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } ) #fix bloom?

LUA.
Code:
--Ford Street Racing (PAL-E) (SLES-53639)
--emu used=primal

apiRequest(1.1)

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

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

if (L3 ~= 0) then
-- Fix for ingame Widescreen
eeObj.WriteMem32(0x00318298,0x3CAEFA34) --3c8efa34 fov
end
if (R3 ~= 0) then
-- Max Cash
eeObj.WriteMem32(0x202495EC,0x0803FFC0)
eeObj.WriteMem32(0x200FFF00,0x3C0205F0)
eeObj.WriteMem32(0x200FFF04,0xAC620050)
eeObj.WriteMem32(0x200FFF08,0x03E00008)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patcher   = function()

end
emuObj.AddVsyncHook(patcher)

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

Ford Street Racing. Short GamePlay!
VIDEO
 
Legacy of kain - blood omen 2 [SLES-50772]
emu=kof 2000 v2

Lua:
Code:
local gpr = require("ee-gpr-alias")

apiRequest(0.1)

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

local patcher = function()
--ws
eeObj.WriteMem32(0x00311810,0x3c013fe3)
eeObj.WriteMem32(0x00311814,0x34218e38)
eeObj.WriteMem32(0x002e9ff0,0x240575e0)
eeObj.WriteMem32(0x002ea008,0x240a1440)
--mipmap fix
eeObj.WriteMem32(0x002F30A0,0x10000006)
--no interlace(incomplete) by Juano V
eeObj.WriteMem32(0x00462a14,0x00000000)
eeObj.WriteMem32(0x002F0350,0x00000000)
end
emuObj.AddVsyncHook(patcher)
local fix = function()
--skip debugger hook by Kozarovv
eeObj.WriteMem32(0x2967C0, 0x10000006)
eeObj.WriteMem32(0x2967B8, 0x00000000)
end
emuObj.AddEntryPointHook(fix)
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } ) --optional
emuObj.SetDisplayAspectWide()
 
Last edited:
Devil May Cry 3: Dante's Awakening Special Edition (SLUS21361)

TXT.
Code:
--host-display-mode=16:9
--cdvd-sector-read-cycles=2000
--gs-ignore-rect-correction=1

LUA.
Code:
--gametitle=Devil May Cry 3: Dante's Awakening SE (SLUS_21361)
--comment=Patches/Codes Hacked By Maori-Jigglypuff [Savas Guercebe]
--Jak v2

apiRequest(2.0)

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

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


-- Kozarov fix

eeObj.AddHook(0x20A9F0, 0xF8400030, function()
    local sp  = eeObj.GetGpr(29)
    local val = eeObj.ReadMemFloat(sp + 0x84)
    eeObj.WriteMemFloat(sp + 0x84, val - 0.1)
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

if (R1 ~= 0 and Select ~= 0) then
-- Infinite Health
eeObj.WriteMem32(0x20220E9C,0xC6212AA8)
eeObj.WriteMem32(0x20220EA4,0xE6212AD4)
end
if (R2 ~= 0 and Select ~= 0) then
-- Dante Can Use Devil Trigger From The Start
eeObj.WriteMem32(0x20244BB8,0x24020001)
eeObj.WriteMem32(0x20244BC0,0xA20228AF)
eeObj.WriteMem32(0x20244EC8,0xE60028C8)
eeObj.WriteMem32(0x205F2548,0x00220738)
end
if (L2 ~= 0 and Select ~= 0) then
-- Max & Infinite Devil Trigger Usage
eeObj.WriteMem32(0x20244EA0,0xC60128C8)
eeObj.WriteMem32(0x20244EB0,0xE60128C4)
eeObj.WriteMem32(0x2021ECA0,0x00000000)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patch = function()

--widescreen
eeObj.WriteMem32(0x21D0DEA0,0x3F400000) --horizontal fov

--gameplay
eeObj.WriteMem32(0x001ac7a4,0x3c013f40) --hor val 1
eeObj.WriteMem32(0x001ac7a8,0x4481a000)
eeObj.WriteMem32(0x001ac7ac,0x3c0101d1)
eeObj.WriteMem32(0x001ac7b0,0xe43407a0)
eeObj.WriteMem32(0x001ac7b4,0x46000d03)

eeObj.WriteMem32(0x001ac814,0x3c013f40) --hor val 2
eeObj.WriteMem32(0x001ac818,0x4481a000)
eeObj.WriteMem32(0x001ac81c,0x3c0101d1)
eeObj.WriteMem32(0x001ac820,0xe43407a0)
eeObj.WriteMem32(0x001ac824,0x46000d03)

--FMV's fix
eeObj.WriteMem32(0x00231934,0x24020200) --dolby logo
eeObj.WriteMem32(0x0023279c,0x240301aa) --intro / demo
eeObj.WriteMem32(0x002e52ec,0x240801aa) --cutscenes
eeObj.WriteMem32(0x0030758C,0x24050040) --gallery 1
eeObj.WriteMem32(0x00307594,0x24070180) --gallery 2

--rfix 1
eeObj.WriteMem32(0x001ac844,0x3c0345bf) --val 1
eeObj.WriteMem32(0x001ac96c,0x3c0345bf) --val 2

--rfix 2
eeObj.WriteMem32(0x001acf0c,0x3c013f40) --hor val 2

eeObj.WriteMem32(0x001acf24,0x44812000)
eeObj.WriteMem32(0x001acf28,0x460418c2)
eeObj.WriteMem32(0x001acf2c,0x460018c3)
eeObj.WriteMem32(0x001acf30,0x46001083)
eeObj.WriteMem32(0x001acf34,0x46000803)
eeObj.WriteMem32(0x001acf38,0xe7a30030)
eeObj.WriteMem32(0x001acf3c,0xe7a20034)
                    
eeObj.WriteMem32(0x001acfa0,0x460418c2)
eeObj.WriteMem32(0x001acfa4,0x460018c3)
eeObj.WriteMem32(0x001acfa8,0x46001083)
eeObj.WriteMem32(0x001acfac,0x46000803)
eeObj.WriteMem32(0x001acfb0,0xe7a30030)
eeObj.WriteMem32(0x001acfb4,0xe7a20034)
                    
eeObj.WriteMem32(0x001ad020,0x460418c2)
eeObj.WriteMem32(0x001ad024,0x460018c3)
eeObj.WriteMem32(0x001ad028,0x46001083)
eeObj.WriteMem32(0x001ad02c,0x46000803)
eeObj.WriteMem32(0x001ad030,0xe7a30030)
eeObj.WriteMem32(0x001ad034,0xe7a20034)
                    
eeObj.WriteMem32(0x001ad0a0,0x460418c2)
eeObj.WriteMem32(0x001ad0a4,0x460018c3)
eeObj.WriteMem32(0x001ad0a8,0x46001083)
eeObj.WriteMem32(0x001ad0ac,0x46000803)
eeObj.WriteMem32(0x001ad0b0,0xe7a30030)
eeObj.WriteMem32(0x001ad0b4,0xe7a20034)

--Bypass Interleacing f.
eeObj.WriteMem32(0x0013CCFC,0x30630000)
eeObj.WriteMem32(0x20134B64,0x0804D2FC)

--progressive scan -  224p (is a field renderer game)
eeObj.WriteMem32(0x201029C4,0x3C050000)
eeObj.WriteMem32(0x201029CC,0x3C060050)
eeObj.WriteMem32(0x201029D4,0x3C070001)
eeObj.WriteMem32(0x20102C84,0x3C0700E0)
eeObj.WriteMem8(0x01D0DE42,0x02) --vf

-- Disable Blur Effect (and increase Game Speed to 100%)
eeObj.WriteMem32(0x001c46a4,0x34020004)

-- Complex Control-System for enhanced
-- World and Characters Brightness without any bad additional Lights
-- [Characters true Shape and Skin will be revealed now]
eeObj.WriteMem32(0x001aa4b4,0x64030000)
eeObj.WriteMem32(0x001aa4b8,0x7c800000)
eeObj.WriteMem32(0x001aa4bc,0x24630001)
eeObj.WriteMem32(0x001aa4c0,0x2c620004)
eeObj.WriteMem32(0x001aa4c4,0x1440fffc)
eeObj.WriteMem32(0x001aa4c8,0x24840010)
eeObj.WriteMem32(0x001aa4cc,0x0240202d)
eeObj.WriteMem32(0x001aa4d0,0x27a50080)
eeObj.WriteMem32(0x001aa4d4,0x0c06a8ac)
eeObj.WriteMem32(0x001aa4d8,0x27a60040)
eeObj.WriteMem32(0x001aa4dc,0x3c04439c)
eeObj.WriteMem32(0x001aa4e0,0x3c070000)
eeObj.WriteMem32(0x001aa4e4,0x0004283c)
eeObj.WriteMem32(0x001aa4e8,0x00a42825)
eeObj.WriteMem32(0x001aa4ec,0x0007383c)
eeObj.WriteMem32(0x001aa4f0,0x00e43825)
eeObj.WriteMem32(0x001aa4f4,0x70e54c88)
eeObj.WriteMem32(0x001aa4f8,0x0240202d)
eeObj.WriteMem32(0x001aa4fc,0x8f83aa68)
eeObj.WriteMem32(0x001aa500,0x8063000e)
eeObj.WriteMem32(0x001aa504,0x00031880)
eeObj.WriteMem32(0x001aa508,0x00641821)
eeObj.WriteMem32(0x001aa50c,0x8c630040)
eeObj.WriteMem32(0x001aa510,0x24630140)
eeObj.WriteMem32(0x001aa518,0x10000003)
eeObj.WriteMem32(0x001aa51c,0x7c690000)
eeObj.WriteMem32(0x001aa1a8,0x64050000)
eeObj.WriteMem32(0x001aa1ac,0x7c600000)
eeObj.WriteMem32(0x001aa1b0,0x24a50001)
eeObj.WriteMem32(0x001aa1b4,0x2ca20008)
eeObj.WriteMem32(0x001aa1b8,0x1440fffc)
eeObj.WriteMem32(0x001aa1bc,0x24630010)
eeObj.WriteMem32(0x001aa1c0,0x0240202d)
eeObj.WriteMem32(0x001aa1c4,0x27a50080)
eeObj.WriteMem32(0x001aa1c8,0x0c06a760)
eeObj.WriteMem32(0x001aa1cc,0x27a60040)
eeObj.WriteMem32(0x001aa1d0,0x3c0442e0)
eeObj.WriteMem32(0x001aa1d4,0x3c070000)
eeObj.WriteMem32(0x001aa1d8,0x0004283c)
eeObj.WriteMem32(0x001aa1dc,0x00a42825)
eeObj.WriteMem32(0x001aa1e0,0x0007383c)
eeObj.WriteMem32(0x001aa1e4,0x00e43825)
eeObj.WriteMem32(0x001aa1e8,0x70e54c88)
eeObj.WriteMem32(0x001aa1ec,0x0240202d)
eeObj.WriteMem32(0x001aa1f0,0x8f83aa68)
eeObj.WriteMem32(0x001aa1f4,0x8063000e)
eeObj.WriteMem32(0x001aa1f8,0x000319c0)
eeObj.WriteMem32(0x001aa1fc,0x00831821)
eeObj.WriteMem32(0x001aa200,0x246401c0)
eeObj.WriteMem32(0x001aa204,0x24830030)
eeObj.WriteMem32(0x001aa208,0x7c690000)
eeObj.WriteMem32(0x001aa20c,0x7c800070)
eeObj.WriteMem32(0x001aa210,0x3c033f80)
eeObj.WriteMem32(0x001aa214,0x10000012)
eeObj.WriteMem32(0x001aa218,0xac83007c)

--Open All Levels
eeObj.WriteMem32(0x204A1480,0x00000000)

end
emuObj.AddVsyncHook(patch)

Devil May Cry 3: Dante's Awakening Special Edition. Short GamePay!
VIDEO
 
Devil May Cry 3: Dante's Awakening Special Edition (SLES54186)

TXT.
Code:
--host-display-mode=16:9
--cdvd-sector-read-cycles=2000
--gs-ignore-rect-correction=1

LUA.
Code:
--gametitle=Devil May Cry 3: Dante's Awakening SE (SLES_54186)
--comment=Patches/Codes Hacked By Maori-Jigglypuff [Savas Guercebe]
--Jak v2

apiRequest(2.0)

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

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


-- Kozarov fix

eeObj.AddHook(0x20AD40, 0xF8400030, function()
    local sp  = eeObj.GetGpr(29)
    local val = eeObj.ReadMemFloat(sp + 0x84)
    eeObj.WriteMemFloat(sp + 0x84, val - 0.1)
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

if (R1 ~= 0 and Select ~= 0) then
-- Infinite Health
eeObj.WriteMem32(0x20221224,0x3C0145C0)
eeObj.WriteMem32(0x20221230,0xAE212AD4)
end
if (L1 ~= 0 and Select ~= 0) then
-- Quicker Character
eeObj.WriteMem32(0x201FA4B0,0x3C023FD0)
end
if (R2 ~= 0 and Select ~= 0) then
-- Open All Modes/Gallery
eeObj.WriteMem32(0x21D1071C,0xFFFFFFFF)
eeObj.WriteMem32(0x21D10720,0xFFFFFFFF)
eeObj.WriteMem32(0x21D10724,0xFFFFFFFF)
eeObj.WriteMem32(0x21D10728,0xFFFFFFFF)
end
if (L2 ~= 0 and Select ~= 0) then
-- Have One Hit Kill
eeObj.WriteMem32(0x200C2020,0x24100001)
eeObj.WriteMem32(0x200C2024,0x46160001)
eeObj.WriteMem32(0x200C2028,0x55100001)
eeObj.WriteMem32(0x200C202C,0x46000001)
eeObj.WriteMem32(0x200C2030,0x03E00008)
eeObj.WriteMem32(0x200C2034,0xE4400004)
eeObj.WriteMem32(0x202F25B4,0x0C030808)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patch = function()

--gameplay
eeObj.WriteMem32(0x001ac7a4,0x3c013f40) --hor val 1
eeObj.WriteMem32(0x001ac7a8,0x4481a000)
eeObj.WriteMem32(0x001ac7ac,0x3c0101d1)
eeObj.WriteMem32(0x001ac7b0,0xe43407a0)
eeObj.WriteMem32(0x001ac7b4,0x46000d03)
                   
eeObj.WriteMem32(0x001ac814,0x3c013f40) --hor val 2
eeObj.WriteMem32(0x001ac818,0x4481a000)
eeObj.WriteMem32(0x001ac81c,0x3c0101d1)
eeObj.WriteMem32(0x001ac820,0xe43407a0)
eeObj.WriteMem32(0x001ac824,0x46000d03)

--FMV's fix
eeObj.WriteMem32(0x00231cb8,0x24040180) --dolby logo
eeObj.WriteMem32(0x00232dcc,0x240301aa) --intro / demo
eeObj.WriteMem32(0x002e5a8c,0x240801aa) --cutscenes
eeObj.WriteMem32(0x00307d4c,0x24050040) --gallery 1
eeObj.WriteMem32(0x00307d54,0x24070180) --gallery 2

--rfix 1
eeObj.WriteMem32(0x001ac844,0x3c0345bf) --val 1
eeObj.WriteMem32(0x001ac96c,0x3c0345bf) --val 2

--rfix 2
eeObj.WriteMem32(0x001acf0c,0x3c013f40) --hor val 2

eeObj.WriteMem32(0x001acf24,0x44812000)
eeObj.WriteMem32(0x001acf28,0x460418c2)
eeObj.WriteMem32(0x001acf2c,0x460018c3)
eeObj.WriteMem32(0x001acf30,0x46001083)
eeObj.WriteMem32(0x001acf34,0x46000803)
eeObj.WriteMem32(0x001acf38,0xe7a30030)
eeObj.WriteMem32(0x001acf3c,0xe7a20034)
                   
eeObj.WriteMem32(0x001acfa0,0x460418c2)
eeObj.WriteMem32(0x001acfa4,0x460018c3)
eeObj.WriteMem32(0x001acfa8,0x46001083)
eeObj.WriteMem32(0x001acfac,0x46000803)
eeObj.WriteMem32(0x001acfb0,0xe7a30030)
eeObj.WriteMem32(0x001acfb4,0xe7a20034)
                   
eeObj.WriteMem32(0x001ad020,0x460418c2)
eeObj.WriteMem32(0x001ad024,0x460018c3)
eeObj.WriteMem32(0x001ad028,0x46001083)
eeObj.WriteMem32(0x001ad02c,0x46000803)
eeObj.WriteMem32(0x001ad030,0xe7a30030)
eeObj.WriteMem32(0x001ad034,0xe7a20034)
                   
eeObj.WriteMem32(0x001ad0a0,0x460418c2)
eeObj.WriteMem32(0x001ad0a4,0x460018c3)
eeObj.WriteMem32(0x001ad0a8,0x46001083)
eeObj.WriteMem32(0x001ad0ac,0x46000803)
eeObj.WriteMem32(0x001ad0b0,0xe7a30030)
eeObj.WriteMem32(0x001ad0b4,0xe7a20034)

--Bypass Interleacing f.
eeObj.WriteMem32(0x0013CCFC,0x30630000)
eeObj.WriteMem32(0x20134B64,0x0804D2FC)

--progressive mode 256p (is a field renderer game)
eeObj.WriteMem32(0x201029C4,0x3C050000)
eeObj.WriteMem32(0x201029CC,0x3C060050)
eeObj.WriteMem32(0x201029D4,0x3C070001)
eeObj.WriteMem32(0x20102C84,0x3C0700E0)
eeObj.WriteMem8(0x01D10742,0x02) --vf

-- Disable Blur Effect (and increase Game Speed to 100%)
eeObj.WriteMem32(0x001c46a4,0x34020004)

-- Complex Control-System for
-- World and Characters brighter without additional Lights
-- [Characters true Shape and Skin will be revealed now]
eeObj.WriteMem32(0x001aa4b4,0x64030000)
eeObj.WriteMem32(0x001aa4b8,0x7c800000)
eeObj.WriteMem32(0x001aa4bc,0x24630001)
eeObj.WriteMem32(0x001aa4c0,0x2c620004)
eeObj.WriteMem32(0x001aa4c4,0x1440fffc)
eeObj.WriteMem32(0x001aa4c8,0x24840010)
eeObj.WriteMem32(0x001aa4cc,0x0240202d)
eeObj.WriteMem32(0x001aa4d0,0x27a50080)
eeObj.WriteMem32(0x001aa4d4,0x0c06a8ac)
eeObj.WriteMem32(0x001aa4d8,0x27a60040)
eeObj.WriteMem32(0x001aa4dc,0x3c0443c0)
eeObj.WriteMem32(0x001aa4e0,0x3c070000)
eeObj.WriteMem32(0x001aa4e4,0x0004283c)
eeObj.WriteMem32(0x001aa4e8,0x00a42825)
eeObj.WriteMem32(0x001aa4ec,0x0007383c)
eeObj.WriteMem32(0x001aa4f0,0x00e43825)
eeObj.WriteMem32(0x001aa4f4,0x70e54c88)
eeObj.WriteMem32(0x001aa4f8,0x0240202d)
eeObj.WriteMem32(0x001aa4fc,0x8f83a9e8)
eeObj.WriteMem32(0x001aa500,0x8063000e)
eeObj.WriteMem32(0x001aa504,0x00031880)
eeObj.WriteMem32(0x001aa508,0x00641821)
eeObj.WriteMem32(0x001aa50c,0x8c630040)
eeObj.WriteMem32(0x001aa510,0x24630140)
eeObj.WriteMem32(0x001aa518,0x10000003)
eeObj.WriteMem32(0x001aa51c,0x7c690000)
eeObj.WriteMem32(0x001aa1a8,0x64050000)
eeObj.WriteMem32(0x001aa1ac,0x7c600000)
eeObj.WriteMem32(0x001aa1b0,0x24a50001)
eeObj.WriteMem32(0x001aa1b4,0x2ca20008)
eeObj.WriteMem32(0x001aa1b8,0x1440fffc)
eeObj.WriteMem32(0x001aa1bc,0x24630010)
eeObj.WriteMem32(0x001aa1c0,0x0240202d)
eeObj.WriteMem32(0x001aa1c4,0x27a50080)
eeObj.WriteMem32(0x001aa1c8,0x0c06a760)
eeObj.WriteMem32(0x001aa1cc,0x27a60040)
eeObj.WriteMem32(0x001aa1d0,0x3c0442e0)
eeObj.WriteMem32(0x001aa1d4,0x3c070000)
eeObj.WriteMem32(0x001aa1d8,0x0004283c)
eeObj.WriteMem32(0x001aa1dc,0x00a42825)
eeObj.WriteMem32(0x001aa1e0,0x0007383c)
eeObj.WriteMem32(0x001aa1e4,0x00e43825)
eeObj.WriteMem32(0x001aa1e8,0x70e54c88)
eeObj.WriteMem32(0x001aa1ec,0x0240202d)
eeObj.WriteMem32(0x001aa1f0,0x8f83a9e8)
eeObj.WriteMem32(0x001aa1f4,0x8063000e)
eeObj.WriteMem32(0x001aa1f8,0x000319c0)
eeObj.WriteMem32(0x001aa1fc,0x00831821)
eeObj.WriteMem32(0x001aa200,0x246401c0)
eeObj.WriteMem32(0x001aa204,0x24830030)
eeObj.WriteMem32(0x001aa208,0x7c690000)
eeObj.WriteMem32(0x001aa20c,0x44801800)
eeObj.WriteMem32(0x001aa210,0x44801000)
eeObj.WriteMem32(0x001aa214,0x44800800)
eeObj.WriteMem32(0x001aa218,0x3c033f80)
eeObj.WriteMem32(0x001aa21c,0xe4830070)
eeObj.WriteMem32(0x001aa220,0xe4820074)
eeObj.WriteMem32(0x001aa224,0x44830000)
eeObj.WriteMem32(0x001aa228,0xe4810078)
eeObj.WriteMem32(0x001aa22c,0x1000000c)
eeObj.WriteMem32(0x001aa230,0xe480007c)

--Open All Levels
eeObj.WriteMem32(0x204A2400,0x00000000)

end
emuObj.AddVsyncHook(patch)

Devil May Cry 3: Dante's Awakening Special Edition. Short GamePay! (PAL)
VIDEO


Devil May Cry 3 Dante's Awakening SE|1 Hour of Classic|Graphics Booster|Widescreen|Russound PS2toPS4
 
Last edited:
Legacy of kain - blood omen 2 [SLES-50772]
emu=kof 2000 v2

Lua:
Code:
local gpr = require("ee-gpr-alias")

apiRequest(0.1)

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

local patcher = function()
--ws
eeObj.WriteMem32(0x00311810,0x3c013fe3)
eeObj.WriteMem32(0x00311814,0x34218e38)
eeObj.WriteMem32(0x002e9ff0,0x240575e0)
eeObj.WriteMem32(0x002ea008,0x240a1440)
--mipmap fix
eeObj.WriteMem32(0x002F30A0,0x10000006)
--no interlace(incomplete) by Juano V
eeObj.WriteMem32(0x00462a14,0x00000000)
eeObj.WriteMem32(0x002F0350,0x00000000)
end
emuObj.AddVsyncHook(patcher)
local fix = function()
--skip debugger hook by Kozarovv
eeObj.WriteMem32(0x2967C0, 0x10000006)
eeObj.WriteMem32(0x2967B8, 0x00000000)
end
emuObj.AddEntryPointHook(fix)
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } ) --optional
emuObj.SetDisplayAspectWide()

Legacy of Kain Blood Omen 2 (SLES50771)

LUA.
Code:
-- Legacy of Kain - Blood Omen 2 [SLES-50771] (E)
-- emu used=KOF 2000 v2

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

apiRequest(0.1)

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

local patcher = function()
--ws
eeObj.WriteMem32(0x00310BA0,0x3c013fe3)
eeObj.WriteMem32(0x00310BA4,0x34218e38)
eeObj.WriteMem32(0x002E9380,0x240575e0)
eeObj.WriteMem32(0x002E9398,0x240a1440)

--mipmap fix
eeObj.WriteMem32(0x002F2430,0x10000006)

--no interlace(incomplete) by Juano V
eeObj.WriteMem32(0x00461D2C,0x00000000) -- 64420008
eeObj.WriteMem32(0x002EF6E0,0x00000000) -- 30B40001

end

emuObj.AddVsyncHook(patcher)

local fix = function()
--skip debugger hook by Kozarovv
eeObj.WriteMem32(0x00295E38, 0x10000006)
eeObj.WriteMem32(0x00295E30, 0x00000000)
end

emuObj.AddEntryPointHook(fix)

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

Legacy of Kain Blood Omen 2. Short GamePay!
VIDEO
 
Legacy of Kain Soul Reaver 2 (SLES50196)

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

LUA.
Code:
-- Soul Reaver 2 (SLES_50196)
-- emu used=Default PS2 Emu

apiRequest(0.1)

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

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

if (L3 ~= 0) then
-- Remove mipmapping PAL
eeObj.WriteMem32(0x002A1F80,0x00000000)
end
if (R3 ~= 0) then
-- Mega Health
eeObj.WriteMem32(0x001c4b80,0x8c8705c8)
eeObj.WriteMem32(0x001c4bb0,0xac8705c8)
eeObj.WriteMem32(0x001c5008,0x64020000)
eeObj.WriteMem32(0x001c5020,0x10000037)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patcher = function()

--Widescreen hack 16:9

--built in widescreen
eeObj.WriteMem32(0x20240C20,0x00000001)
eeObj.WriteMem32(0x00170c8c,0x3c013f80)
eeObj.WriteMem32(0x00170c90,0x00000000)
eeObj.WriteMem32(0x00170cc8,0x00000000)

--both fov+
eeObj.WriteMem32(0x00113f54,0x3c0143c0)
eeObj.WriteMem32(0x00114a70,0x3c0143c0)

--cutscenes black border fix
eeObj.WriteMem32(0x0013e264,0x3c01bf80) --top value
eeObj.WriteMem32(0x0013e26c,0x3c013f80) --bottom value

--render fix
eeObj.WriteMem32(0x0011339c,0x3c013f40)

--FMV's fix
eeObj.WriteMem32(0x001d4610,0x24097560)
eeObj.WriteMem32(0x001d4618,0x240b1550)

-- Remove Interlacing
eeObj.WriteMem32(0x201A9598,0x30420000) -- 30420001
eeObj.WriteMem32(0x00201BB4,0x00000000) -- 64420008
--eeObj.WriteMem32(0x03223EDC,0x00000000) -- ?

end

emuObj.AddVsyncHook(patcher)

For avoid SPS bugs with Widescreen, turn on mipmapping FiX (L3) while first cutscene!

Legacy of Kain Soul Reaver 2|Graphical FiX|Widescreen|PS2toPS4 Test
 
Legacy of Kain Defiance (SLES52150) (SLUS20773)

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

LUA. (PAL)
Code:
-- Legacy of Kain - Defiance (PAL)
-- emu used=rogue v1

apiRequest(0.1)

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

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

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

if (L3 ~= 0) then
-- Widescreen PAL
eeObj.WriteMem32(0x0011a644,0x00000000)
eeObj.WriteMem32(0x0028E8C0,0x00000001)
eeObj.WriteMem32(0x0013d458,0x3c013b30)
eeObj.WriteMem32(0x001522e0,0x3c01bf80) --top value
eeObj.WriteMem32(0x001522ec,0x3c013f80) --bottom value
eeObj.WriteMem32(0x00119a34,0x3c01c340) --top value
eeObj.WriteMem32(0x00119a50,0x3c014340) --bottom value
eeObj.WriteMem32(0x0013bcac,0x3c013f40) --hor value
eeObj.WriteMem32(0x0013bcd0,0xe4200d7c)
eeObj.WriteMem32(0x0013bcf8,0x46000003)
eeObj.WriteMem32(0x0013bcfc,0xe4200d6c)
eeObj.WriteMem32(0x0023d668,0x3c013b40) --hor value
eeObj.WriteMem32(0x00213588,0x24070156) --vertical aspect (int)
end
if (LEFT ~= 0 and R1 ~= 0) then
-- Big Character & Weapons
eeObj.WriteMem32(0x20727240,0x3FC00000)
eeObj.WriteMem32(0x20727244,0x3FC00000)
eeObj.WriteMem32(0x20727248,0x3FC00000)
eeObj.WriteMem32(0x20290240,0x3FC00000)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patch = function()


end

emuObj.AddVsyncHook(patch)

-- Texture Flickering fix
eeInsnReplace(0x189340, 0x10600020, 0x10000020)

LUA. (NTSC)
Code:
-- Legacy of Kain - Defiance (NTSC)
-- emu used=rogue v1

apiRequest(0.1)

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

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

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

if (L3 ~= 0) then
-- Widescreen NTSC
eeObj.WriteMem32(0x0011a33c,0x00000000)
eeObj.WriteMem32(0x0028cfe0,0x00000001)
eeObj.WriteMem32(0x0013d108,0x3c013b30)
eeObj.WriteMem32(0x00151ef8,0x3c01bf80) --top value
eeObj.WriteMem32(0x00151f04,0x3c013f80) --bottom value
eeObj.WriteMem32(0x0011972c,0x3c01c340) --top value
eeObj.WriteMem32(0x00119748,0x3c014340) --bottom value
eeObj.WriteMem32(0x0013ba0c,0x3c013f40) --hor value
eeObj.WriteMem32(0x0013ba38,0xe422f400)
eeObj.WriteMem32(0x0013ba68,0x46021083)
eeObj.WriteMem32(0x0013ba6c,0xe422f3ec)
eeObj.WriteMem32(0x0023be84,0x3c013b40) --hor value
eeObj.WriteMem32(0x00212f2c,0x24070140)
end
if (LEFT ~= 0 and R1 ~= 0) then
-- Infinite Health
eeObj.WriteMem32(0x201FB01C,0x3C014810)
eeObj.WriteMem32(0x201FB020,0x34218800)
eeObj.WriteMem32(0x201FB024,0x44810000)
end

end

emuObj.AddVsyncHook(CheckInputs)

local patch = function()


end

emuObj.AddVsyncHook(patch)

-- Texture Flickering fix
eeInsnReplace(0x188F50, 0x10600020, 0x10000020)

Legacy of Kain Defiance. Short GamePay!
VIDEO
 
Last edited:

Similar threads

Back
Top