Where can I get emu psychonauts v2? Thanks
--gs-uprender=2x2
--gs-upscale=edgesmooth
--ee-cycle-scalar=0.62
--iop-cycle-scalar=0.20
--vu1-mpg-cycles=1985
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--cdvd-sector-read-cycles=4000
--host-audio-latency=1.6
--host-display-mode=16:9
--force-pal-60hz=1
--ps2-lang=system
-- God of war II
--original alt. fix psx-place forums (Bergolino Gamer)
--ported by Jvn9207
apiRequest(2.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local gpr = require("ee-gpr-alias")
local patcher = function()
----------------Graphics---------------
eeObj.WriteMem32(0x0016E770,0x03e00008)
eeObj.WriteMem32(0x0016E774,0x00000000)
eeObj.WriteMem32(0x00126EB0,0x03e00008)
eeObj.WriteMem32(0x00126EB4,0x00000000)
eeObj.WriteMem32(0x001E437C,0xa04986dc)
eeObj.WriteMem32(0x0025A3A8,0x24020001)
----------------Widescreen-------------
eeObj.WriteMem32(0x002348a0,0x46000406)
----------------speed mod-----------------
eeObj.WriteMem32(0x20A5C5AC,0x3F900000)-- (optional)
end
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
emuObj.SetGsTitleFix( "SetSelfRender", "reserved", { fbmask= 0x00FFFFFF , renderSelf=1 , zmsk=1 , alpha=0 , texMode=1 } )
emuObj.AddVsyncHook(patcher)
apiRequest(2.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local gpr = require("ee-gpr-alias")
eeInsnReplace(0x18a030, 0x3C014248, 0x3C014230)--Speed
eeInsnReplace(0x170730, 0x27bdfee0, 0x03e00008)--Fix shadow
eeInsnReplace(0x170734, 0x7fb300d0, 0x00000000)
eeInsnReplace(0x16e770, 0x27bdff50, 0x03e00008)--Fix stencil
eeInsnReplace(0x16e774, 0x3c02002d, 0x00000000)
eeInsnReplace(0x126eb0, 0x27bdff60, 0x03e00008)--Fix bloom
eeInsnReplace(0x126eb4, 0x7fb10080, 0x00000000)
eeInsnReplace(0x1e435c, 0x3c04002e, 0x24040001)--Widescreen at first run
eeInsnReplace(0x1e4360, 0x8c848068, 0x00000000)
eeInsnReplace(0x278284, 0x3c013faa, 0x3c013fe3)
eeInsnReplace(0x278288, 0x3421aaab, 0x34218e39)
eeInsnReplace(0x11ddd0, 0x27bdffd0, 0x03e00008)--Moves Automatically (only in some situations)
eeInsnReplace(0x11ddd4, 0x7fb10010, 0x00000000)
eeInsnReplace(0x1a9ca8, 0x27bdff80, 0x03e00008)
eeInsnReplace(0x1a9cac, 0x7fb50010, 0x00000000)
eeInsnReplace(0x1dd670, 0x10400005, 0x00000000)--mpeg skip by pressing x
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
no problem , you guys are experts here, I'm just an apprentice (hope I don't sound rude). I help where I can (I just hope some day a fix for gun)@Jvn9207
Coincidentally I was also working on God of war 2 SCES 542.06.
Then I will share.
Code:apiRequest(2.0) local eeObj = getEEObject() local emuObj = getEmuObject() local gpr = require("ee-gpr-alias") eeInsnReplace(0x18a030, 0x3C014248, 0x3C014230)--Speed eeInsnReplace(0x170730, 0x27bdfee0, 0x03e00008)--Fix shadow eeInsnReplace(0x170734, 0x7fb300d0, 0x00000000) eeInsnReplace(0x16e770, 0x27bdff50, 0x03e00008)--Fix stencil eeInsnReplace(0x16e774, 0x3c02002d, 0x00000000) eeInsnReplace(0x126eb0, 0x27bdff60, 0x03e00008)--Fix bloom eeInsnReplace(0x126eb4, 0x7fb10080, 0x00000000) eeInsnReplace(0x1e435c, 0x3c04002e, 0x24040001)--Widescreen at first run eeInsnReplace(0x1e4360, 0x8c848068, 0x00000000) eeInsnReplace(0x278284, 0x3c013faa, 0x3c013fe3) eeInsnReplace(0x278288, 0x3421aaab, 0x34218e39) eeInsnReplace(0x11ddd0, 0x27bdffd0, 0x03e00008)--Moves Automatically (only in some situations) eeInsnReplace(0x11ddd4, 0x7fb10010, 0x00000000) eeInsnReplace(0x1a9ca8, 0x27bdff80, 0x03e00008) eeInsnReplace(0x1a9cac, 0x7fb50010, 0x00000000) eeInsnReplace(0x1dd670, 0x10400005, 0x00000000)--mpeg skip by pressing x emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
try move camera around and watch textures on walls)
probably but i was test it very long time agoHey, I was searching here to check if Justice League Heroes is playable, last thing I found was you testing it but saying it crashes after a certain point, did that ever got a fix or is it a lost cause?
--host-display-mode=16:9
--vu0-no-clamping=0
--vu1-no-clamping=0
--mtap1=always
-- World Soccer Winning Eleven 5
apiRequest(0.1)
local gpr = require("ee-gpr-alias")
local emuObj = getEmuObject()
local eeObj = getEEObject()
local patcher = function()
-- Widescreen
eeObj.WriteMem32(0x00144688,0x083eb44c)
eeObj.WriteMem32(0x0014468c,0x00000000)
eeObj.WriteMem32(0x00fad130,0x3c013f40)
eeObj.WriteMem32(0x00fad134,0x4481f000)
eeObj.WriteMem32(0x00fad138,0xc6010068)
eeObj.WriteMem32(0x00fad13c,0xc602006c)
eeObj.WriteMem32(0x00fad140,0x461e0843)
eeObj.WriteMem32(0x00fad144,0xe6010068)
eeObj.WriteMem32(0x00fad148,0x080511a6)
end
emuObj.AddVsyncHook(patcher)
apiRequest(0.1)
--sw to sh
eeInsnReplace(0x0033A4DC, 0xAC430000, 0xA4430000)
eeInsnReplace(0x0033A77C, 0xAC430000, 0xA4430000)
--ee-hook=0x0033A4DC,FastForwardClock
--ee-hook=0x0033A77C,FastForwardClock
apiRequest(0.1)
--loop skip to prevent freezing
eeInsnReplace(0x001958A0, 0x12000086, 0x10000086)
--rounding to remove sps
eeInsnReplace(0x003F0FE8, 0x53400000, 0xD3400000)
--mtvu patch
eeInsnReplace(0x00194918, 0x0, 0x0803fff0)
eeInsnReplace(0x000fffc4, 0x0, 0x24186000)
eeInsnReplace(0x000fffc8, 0x0, 0x3c191200)
eeInsnReplace(0x000fffcc, 0x0, 0x37391010)
eeInsnReplace(0x000fffd0, 0x0, 0x2718ffff)
eeInsnReplace(0x000fffd4, 0x0, 0x1418fffe)
eeInsnReplace(0x000fffdc, 0x0, 0x08065248)
eeInsnReplace(0x000fffe0, 0x0, 0xaf200000)
-- ^ Everything up is Fully credited to the goatman, everything below is mine
-- sw to sq
eeInsnReplace(0x001AF6C0, 0xAC870000, 0x7C870000)
--Force a jump ;) hopefully the final nail in the coffin
eeInsnReplace(0x001AF614, 0x10C00015, 0x0806BD9B)
Tony hawk's underground 2
SLUS20965
LUA
Untested, anyone willing to test ?
Code:apiRequest(0.1) --loop skip to prevent freezing eeInsnReplace(0x001958A0, 0x12000086, 0x10000086) --rounding to remove sps eeInsnReplace(0x003F0FE8, 0x53400000, 0xD3400000) --mtvu patch eeInsnReplace(0x00194918, 0x0, 0x0803fff0) eeInsnReplace(0x000fffc4, 0x0, 0x24186000) eeInsnReplace(0x000fffc8, 0x0, 0x3c191200) eeInsnReplace(0x000fffcc, 0x0, 0x37391010) eeInsnReplace(0x000fffd0, 0x0, 0x2718ffff) eeInsnReplace(0x000fffd4, 0x0, 0x1418fffe) eeInsnReplace(0x000fffdc, 0x0, 0x08065248) eeInsnReplace(0x000fffe0, 0x0, 0xaf200000) -- ^ Everything up is Fully credited to the goatman, everything below is mine -- sw to sq eeInsnReplace(0x001AF6C0, 0xAC870000, 0x7C870000) --Force a jump ;) hopefully the final nail in the coffin eeInsnReplace(0x001AF614, 0x10C00015, 0x0806BD9B)
--loop skip to prevent freezing
eeInsnReplace(0x001958A0, 0x12000086, 0x10000086)
--rounding to remove sps
eeInsnReplace(0x003F0FE8, 0x53400000, 0xD3400000)
-- ??
eeInsnReplace(0x001af6a4, 0x3484a000, 0x34e4a000) -- ori a0, a0, $a000
--mtvu patch
eeInsnReplace(0x00194918, 0x00000000, 0x0803fff0)
eeInsnReplace(0x000fffc4, 0x00000000, 0x24186000) -- Range between 4000 and 7fff
eeInsnReplace(0x000fffc8, 0x00000000, 0x3c191200)
eeInsnReplace(0x000fffcc, 0x00000000, 0x37391010)
eeInsnReplace(0x000fffd0, 0x00000000, 0x2718ffff)
eeInsnReplace(0x000fffd4, 0x00000000, 0x1418fffe)
eeInsnReplace(0x000fffdc, 0x00000000, 0x08065248)
eeInsnReplace(0x000fffe0, 0x00000000, 0xaf200000)
#Sps fix
--vu1-mpg-cycles=1
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
--loop skip to prevent freezing
eeObj.WriteMem32(0x001958A0, 0x10000086)
--rounding to remove sps
eeObj.WriteMem32(0x003F0FE8, 0xD3400000)
--Giving it the value it wants in order to branch
eeObj.WriteMem32(0x001AF5FC, 0x24060000)
end
emuObj.AddVsyncHook(patcher)
--MTVU patch
eeInsnReplace(0x00194918, 0x0, 0x0803fff0)
eeInsnReplace(0x000fffc4, 0x0, 0x24186000)
eeInsnReplace(0x000fffc8, 0x0, 0x3c191200)
eeInsnReplace(0x000fffcc, 0x0, 0x37391010)
eeInsnReplace(0x000fffd0, 0x0, 0x2718ffff)
eeInsnReplace(0x000fffd4, 0x0, 0x1418fffe)
eeInsnReplace(0x000fffdc, 0x0, 0x08065248)
eeInsnReplace(0x000fffe0, 0x0, 0xaf200000)
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-kernel-cl-up="up2x2skipinterp"
--cdvd-sector-read-cycles=1000
--vu1=jit-sync
--vif1-instant-xfer=0
--ee-cycle-scalar=2.4
--iop-cycle-scalar=2.4
#emu used=redfaction
-- Gun NTSC
-- various T.H.U.G. engine fixes by kozarovv
-- ported to Gun by Stayhye
-- emu used=redfaction
local gpr = require("ee-gpr-alias")
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
-- freeze fix
eeObj.WriteMem32(0x001a0f08,0x100000a6) -- 0x120000a6 >> beq s0, zero, $001a11a4
-- rounding patch
eeObj.WriteMem32(0x004738c0,0xd3400000)
--[[
--mtvu
eeObj.WriteMem32(0x0019fbbc,0x0803fff0)
eeObj.WriteMem32(0x000fffc0,0x0c067f36)
eeObj.WriteMem32(0x000fffc4,0x24186000)
eeObj.WriteMem32(0x000fffc8,0x3c191200)
eeObj.WriteMem32(0x000fffcc,0x37391010)
eeObj.WriteMem32(0x000fffd0,0x2718ffff)
eeObj.WriteMem32(0x000fffd4,0x1418fffe)
eeObj.WriteMem32(0x000fffdc,0x08067ef1)
eeObj.WriteMem32(0x000fffe0,0xaf200000)
--]]
-- speed Selector
local pad_bits = emuObj.GetPad()
local L1 = pad_bits & 0x0400
local L3 = pad_bits & 0x0002
local R1 = pad_bits & 0x0800
local R3 = pad_bits & 0x0004
if (L1 ~= 0 and R3 ~= 0) then --60fps
--60 fps
eeObj.WriteMem32(0x2028ED08,0x1000000B)
end
if (L3 ~= 0 and R1 ~= 0) then --normal mode
eeObj.WriteMem32(0x2028ED08,0x1040000b) -- beq v0, zero, $0028ed38
end
end
emuObj.AddVsyncHook(patcher)
--gs-uprender=2x2
--gs-upscale=edgesmooth
--host-display-mode=16:9
--cdvd-sector-read-cycles=4000
--vu0-no-clamping=0
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-clamp-results=1
--vu0-const-prop=0
--vu1-const-prop=0
--vu1-jr-cache-policy=newprog
#emu used=jakx v2
-- Rayman Arena
-- fix method for game engine by kozarovv
-- ported to PS4
-- emu used=jakx v2
local gpr = require("ee-gpr-alias")
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
--Start microprograms manually instead of rely on timings.
--0x48c83000 >> ctc2 t0, $vi6
--eeObj.WriteMem32(0x001de8e4,0x4a0000b8)
eeObj.WriteMem32(0x001de9b0,0x4a0000b8)
eeObj.WriteMem32(0x001deb94,0x4a0000b8)
eeObj.WriteMem32(0x001dec00,0x4a000938)
eeObj.WriteMem32(0x001dec54,0x4a000938)
eeObj.WriteMem32(0x001deea0,0x4a000938)
eeObj.WriteMem32(0x001deedc,0x4a000938)
eeObj.WriteMem32(0x001df078,0x4a000938)
eeObj.WriteMem32(0x001df0b4,0x4a000938)
eeObj.WriteMem32(0x001df154,0x4a000938)
-- No need to loop here, just e-bit and wait for vcallms from EE.
eeObj.WriteMem32(0x0031ba90,0x8000033c) -- 500607ff
eeObj.WriteMem32(0x0031ba94,0x400002ff)
eeObj.WriteMem32(0x0031bbc0,0x8000033c)
eeObj.WriteMem32(0x0031bbc4,0x400002ff)
emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)
Gun™®
CLI
LUACode:--gs-uprender=2x2 --gs-upscale=EdgeSmooth --gs-kernel-cl-up="up2x2skipinterp" --host-display-mode=16:9 --cdvd-sector-read-cycles=1000 --vif1-instant-xfer=0 --ee-cycle-scalar=1.1 --iop-cycle-scalar=0.8 #emu used=redfaction
Code:-- Gun NTSC -- various T.H.U.G. engine fixes by kozarovv -- ported to Gun by Stayhye -- emu used=redfaction local gpr = require("ee-gpr-alias") apiRequest(0.1) local eeObj = getEEObject() local emuObj = getEmuObject() local patcher = function() -- freeze fix eeObj.WriteMem32(0x001a0f08,0x100000a6) -- 0x120000a6 >> beq s0, zero, $001a11a4 -- rounding patch eeObj.WriteMem32(0x004738c0,0xd3400000) --mtvu eeObj.WriteMem32(0x0019fbbc,0x0803fff0) eeObj.WriteMem32(0x000fffc0,0x0c067f36) eeObj.WriteMem32(0x000fffc4,0x24186000) eeObj.WriteMem32(0x000fffc8,0x3c191200) eeObj.WriteMem32(0x000fffcc,0x37391010) eeObj.WriteMem32(0x000fffd0,0x2718ffff) eeObj.WriteMem32(0x000fffd4,0x1418fffe) eeObj.WriteMem32(0x000fffdc,0x08067ef1) eeObj.WriteMem32(0x000fffe0,0xaf200000) -- speed Selector local pad_bits = emuObj.GetPad() local L1 = pad_bits & 0x0400 local L3 = pad_bits & 0x0002 local R1 = pad_bits & 0x0800 local R3 = pad_bits & 0x0004 if (L1 ~= 0 and R3 ~= 0) then --60fps --60 fps eeObj.WriteMem32(0x2028ED08,0x1000000B) end if (L3 ~= 0 and R1 ~= 0) then --normal mode eeObj.WriteMem32(0x2028ED08,0x1040000b) -- beq v0, zero, $0028ed38 end end emuObj.AddVsyncHook(patcher)
Working great! testing still in progress but seems good to go.
*edit - added 60fps switch
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-kernel-cl-up="up2x2skipinterp"
--host-display-mode=16:9
--cdvd-sector-read-cycles=1000
--vif1-instant-xfer=0
--ee-cycle-scalar=1.1
--iop-cycle-scalar=0.8
#emu used=redfaction
-- Gun PAL SLES-53523
-- various fixes by kozarovv
-- ported to Gun by Stayhye
-- emu used=redfaction
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
-- freeze fix
eeObj.WriteMem32(0x001A0CA8,0x100000a6) -- 0x120000a6 >> beq s0, zero, $001a11a4
-- rounding patch
eeObj.WriteMem32(0x00472F40,0xd3400000) -- 53400000
--mtvu
eeObj.WriteMem32(0x0019F95C,0x0803fff0) --000fffc0
eeObj.WriteMem32(0x000fffc0,0x0C067E9E) --0019FA78
eeObj.WriteMem32(0x000fffc4,0x24186000)
eeObj.WriteMem32(0x000fffc8,0x3c191200)
eeObj.WriteMem32(0x000fffcc,0x37391010)
eeObj.WriteMem32(0x000fffd0,0x2718ffff)
eeObj.WriteMem32(0x000fffd4,0x1418fffe)
eeObj.WriteMem32(0x000fffdc,0x08067E59) --0019F964
eeObj.WriteMem32(0x000fffe0,0xaf200000)
-- speed Selector
local pad_bits = emuObj.GetPad()
local L1 = pad_bits & 0x0400
local L3 = pad_bits & 0x0002
local R1 = pad_bits & 0x0800
local R3 = pad_bits & 0x0004
if (L1 ~= 0 and R3 ~= 0) then --60fps
--60 fps
eeObj.WriteMem32(0x2028E9E8,0x1000000B)
end
if (L3 ~= 0 and R1 ~= 0) then --normal mode
eeObj.WriteMem32(0x2028E9E8,0x1040000b) -- beq v0, zero, $0028ed38
end
end
emuObj.AddVsyncHook(patcher)
--gs-uprender=2x2
--gs-upscale=edgesmooth
--host-display-mode=16:9
--cdvd-sector-read-cycles=2000
--ee-cycle-scalar=1.6
--vu1=jit-sync #<--very important for this engine if not patching addresses
--vu1-mpg-cycles=8000 #<--very important for this engine if not patching addresses
--vif1-instant-xfer=0 #<--very important for this engine if not patching addresses
#emu used=psycho v2
-- Tony Hawk's American Wasteland™®
-- emu used=psycho v2(maybe other? Still Testing!!)
local gpr = require("ee-gpr-alias")
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local THAW = function()
--koza's vu rounding
eeObj.WriteMem32(0x00493B30,0xD3400000)
--freeze skip
eeObj.WriteMem32(0x001c52c8,0x100000a6) -- 0x120000a6 >> beq s0, zero, $001c5564
--emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(THAW)
-- needs mtvu patch?
WIP config for Tony Hawk's American Wasteland™® NTSC
CLI
LUACode:--gs-uprender=2x2 --gs-upscale=edgesmooth --host-display-mode=16:9 --cdvd-sector-read-cycles=2000 --ee-cycle-scalar=1.6 --vu1=jit-sync #<--very important for this engine if not patching addresses --vu1-mpg-cycles=8000 #<--very important for this engine if not patching addresses --vif1-instant-xfer=0 #<--very important for this engine if not patching addresses #emu used=psycho v2
Code:-- Tony Hawk's American Wasteland™® -- emu used=psycho v2(maybe other? Still Testing!!) local gpr = require("ee-gpr-alias") apiRequest(0.1) local eeObj = getEEObject() local emuObj = getEmuObject() local THAW = function() --koza's vu rounding eeObj.WriteMem32(0x00493B30,0xD3400000) --freeze skip eeObj.WriteMem32(0x001c52c8,0x100000a6) -- 0x120000a6 >> beq s0, zero, $001c5564 --emuObj.ThrottleMax() end emuObj.AddVsyncHook(THAW) -- needs mtvu patch?
Not quite there yet, but in game and playable with stutter and framedrops when far distance can be seen. Still working on THUG engine games. Project 8 and Proving Ground are not as easy(at least for me) because the "freeze skip" offset(beq s0, zero,) cannot be found in PS2dis with the method I use to port. Any help would be amazing!