Stayhye
Senior Member
try adding ps3 config to it and let me know if it worked.Was test it, stutter in menu (but its ok). Finish 1st misson, all is fine, decide check misson №5 and its freeze after car was attaked!
try adding ps3 config to it and let me know if it worked.Was test it, stutter in menu (but its ok). Finish 1st misson, all is fine, decide check misson №5 and its freeze after car was attaked!
yes i going do thattry adding ps3 config to it and let me know if it worked.
yes i going do that
not sure, on ps3 i was test PAL version, i try with us config now!Also, this
"--fpu-accurate-range=0x28C154,0x28C5B0 #fixes the crash on Chapter 5 in the ambush by Vitt0xLar"
was meant for the Jak emus...maybe that is why it didn't work here?
with ps3 config same - FreezeAlso, this
"--fpu-accurate-range=0x28C154,0x28C5B0 #fixes the crash on Chapter 5 in the ambush by Vitt0xLar"
was meant for the Jak emus...maybe that is why it didn't work here?
with ps3 config same - Freeze
from ps2 fpkg tool
"--fpu-accurate-range=0x28C154,0x28C5B0" this value only for PAL, thats why it not workAlso, this
"--fpu-accurate-range=0x28C154,0x28C5B0 #fixes the crash on Chapter 5 in the ambush by Vitt0xLar"
was meant for the Jak emus...maybe that is why it didn't work here?
"--fpu-accurate-range=0x28C154,0x28C5B0" this value only for PAL, thats why it not work
![]()

SCUS-97408 is 0x28d4bc for ntsc @mrjaredbeta says,
In game "Def Jam fight for NY" used this configuration for play Four players:Don't understand....why does it need to be in this weird configuration?
If the error is the same as on the PS3, one of the following two versions of the floating point range configuration should help
NTSC
--fpu-accurate-range=0x28D4BC,0x28D4BC
--fpu-accurate-muldiv=0x28D4BC,0x28D4BC
--fpu-accurate-addsub=0x28D4BC,0x0x28D4BC
PAL
--fpu-accurate-range=0x28C29C,0x28C29C
--fpu-accurate-muldiv=0x28C29C,0x28C29C
--fpu-accurate-addsub=0x28C29C,0x28C29C
In game "Def Jam fight for NY" used this configuration for play Four players:
1player - Pad 1A
2player - Pad 2A
3player - Pad 2B
4player - Pad 2C
it won't work any other way.
--gs-uprender=2x2
--gs-upscale=none
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-h2l-list-opt=1
--gs-h2l-accurate-hash=1
--host-display-mode=16:9
--vu0-mpg-cycles=225
--idec-cycles-per-qwc=650
--ee-cycle-scalar=1.8
--iop-cycle-scalar=1.0
--cdvd-sector-read-cycles=1650
#emu used=jakx v2
-- Call of Duty™ 2 - Big Red One
-- ported to PS4
-- emu used=jakx v2
apiRequest(2.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local FPS = function()
eeObj.WriteMem32(0x20407F20,0x00000001) --60 fps
end
local patcher = function()
eeObj.Vu1MpgCycles(math.floor(6300))
-- eeObj.SetVifDataCycleScalar(1, 1.5)
emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
--[[
local frameskip = {}
frameskip.DeterministicMode = 0 -- set 0 for native (non-deterministic) behavior, see function frameskip.GetFramesInQueue()
-- constants:
local CLOCK_EE = 294912000.0
local CLOCK_EE_60hz = 294912000.0 / 60
local AdvanceCycleChunkSize = 4400
local ChunksPerFrame = (CLOCK_EE_60hz / AdvanceCycleChunkSize)
local TaperHoldBaseline = ChunksPerFrame / 20 -- frames to hold even the smallest taper values
local TaperRatePerFrame = ChunksPerFrame / 140 -- frames to taper away 1.0 worth of dog-ratio
local TaperHoldPerChunk = 15.0 / ChunksPerFrame -- hold for 15 frames per one frame of delay
local EnableTapering = true
local MaxChunkCounter = math.floor(ChunksPerFrame * 3.25) --
-- globals:
local isFrameDone = false
local m_counter = 0
local m_prev_framecount = 0
local m_taper_peak = 0
local m_taper_hold = 0
-- Vars For diagnostic:
local d_truelog = false
local d_numframes = 0
frameskip.GetFramesInQueue = function()
if frameskip.DeterministicMode == 0 then
return gsObj.GetFramesInQueue()
elseif frameskip.DeterministicMode == 1 then
-- five regular frames, four slow frames
local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 9
if modulo < 5 then
return 0
else
return 3
end
elseif frameskip.DeterministicMode == 2 then
-- nice slow cyclic test!
local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 240
if modulo < 200 then
return 0
else
return 3
end
elseif frameskip.DeterministicMode == 3 then
-- slow cycle from 0 to 3 and back to 0, across about 10 seconds...
local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 600
if modulo < 100 then
return 0
elseif modulo < 200 then
return 1
elseif modulo < 300 then
return 2
elseif modulo < 300 then
return 3
elseif modulo < 400 then
return 2
elseif modulo < 500 then
return 1
else
return 0
end
end
return gsObj.GetFramesInQueue()
end
frameskip.onFrameFinishedHook = function()
emuObj.CountFrameOnPS2() -- updates FRAPS/Actual FPS reading in olympus
-- local cyl_data, cyl_mpg = eeObj.GetVif1Cycles()
-- print (string.format("data=%6d mpg=%6d", cyl_data, cyl_mpg))
local frameCount = frameskip.GetFramesInQueue()
m_counter = 0
if frameCount ~= 0 or m_prev_framecount ~= 0 then
-- Keep in mind here that the incurred cycle delay will be appended after the standard
-- VIF/VU cycle delays. Standard delays can be read using eeObj.GetVif1Cycles() as shown
-- in a print snippet above.
local fcnew = frameCount
local fcold = m_prev_framecount
-- first frame being a bit slow is often a red herring, because of how the deferred
-- EE/GS pipeline works. So weight it very lightly here (if either fcold or fcnew is
-- 0 then it'll go negative and help offset remaining 1.0)
if fcnew < 1.2 then fcnew = fcnew - 0.6 end
-- Delta from prev to new frame is used to indicate vectoring toward poor perf.
-- eg. if prev was 1 and new is 3 then ramp up frameskip in a hurry (+2)
local fcdelta = fcnew - fcold
fcdelta = (fcdelta >= 0) and (fcdelta / 2.0) or 0
m_counter = m_counter + (ChunksPerFrame / 7.5) * (fcnew + fcold + fcdelta) -- baseline
-- fcold and fcnew are squared and so to scale back the curve a bit we subtract some
-- amount from them here:
fcnew = fcnew - 0.25
fcold = fcold - 0.40
m_counter = m_counter + (ChunksPerFrame / 15.0) * (fcold * fcold) -- weighted prev slowness
m_counter = m_counter + (ChunksPerFrame / 9.0) * (fcnew * (fcnew+fcdelta)) -- weighted current slowness
-- Boundscheck the counter. Keep in mind that a counter delay of 2 frames will run at ~20fps.
m_counter = math.floor(m_counter)
if m_counter > MaxChunkCounter then m_counter = MaxChunkCounter end
if EnableTapering and m_taper_peak < m_counter then
m_taper_hold = TaperHoldBaseline + (m_counter * TaperHoldPerChunk)
m_taper_peak = m_counter
end
end
-- Tapering kind of helps reduce the game's built-in jutter problem... but not really to the
-- extent that I would like. -- jstine
local m_origc = m_counter
if m_counter < m_taper_peak then
m_counter = math.floor(m_taper_peak)
end
--print (string.format("onFrameFinished! numFrames=%d,%d counter=%3d taper_hold=%5.1f taper_peak=%5.1f delayInFrames=%5.3f",
-- m_prev_framecount, frameCount, m_origc, m_taper_hold, m_taper_peak, m_counter / ChunksPerFrame
--));
if m_taper_peak > 0 then
if m_taper_hold > 0 then
m_taper_hold = m_taper_hold - 1
elseif m_origc <= 25 then
-- TODO make these constants?
m_taper_peak = m_taper_peak - (m_taper_peak > 112 and TaperRatePerFrame or 0.75)
end
-- when taper is a large value, slide it back quickly regardless of hold state
if m_taper_peak > 450 and m_taper_peak > m_origc then
m_taper_peak = m_taper_peak * 0.90
end
end
m_prev_framecount = frameCount
isFrameDone = true -- enables SpinWaitDelayHook
end
frameskip.SpinWaitDelayHook = function(hookpc, gprv, writeon)
if not isFrameDone then
return
end
local numFrames = frameskip.GetFramesInQueue()
local isSkipping = false
--local numFrames = frameskip.GetFramesInQueue()
--print (string.format("HOOKED @ 0x%02x - counter=%d numFrames=%d", hookpc, m_counter, numFrames))
if m_counter > 0 then
--if not d_truelog then
-- print ( string.format("HOOKED! - numFrames=%d", numFrames))
-- d_numframes = numFrames
--end
--d_truelog = true
-- SetFrameSkipping call removed because it causes severe frame loss, due to internal scanout
-- not aligning to when this hook is invoked. The call was only implemented in order to solve
-- interlace jitter problems on Jak TPL anyway, and isn't needed here... --jstine
--gsObj.SetFrameSkipping(true)
isSkipping = true
end
if isSkipping then
--local v0 = eeObj.GetGpr(gprv)
eeObj.SetGpr(gprv, writeon)
eeObj.AdvanceClock(AdvanceCycleChunkSize)
m_counter = m_counter - 1
-- print ( string.format("SKIPP! - numFrames=%d", numFrames))
else
isFrameDone = false
--gsObj.SetFrameSkipping(false)
m_counter = 0
--if d_truelog then
-- print "BUSY ENDED, RESUMIMG..."
--end
--d_truelog = false
end
--if d_numframes ~= numFrames then
-- print ( string.format("Frame Queue Changed - numFrames=%d", numFrames))
-- d_numframes = numFrames
--end
end
return frameskip
--]]
add "--mtap1=always" to CLI or TXT (no quotes)
----------------------------------------------------------------
Final Fix for The Getaway Black Monday NTSC
CLI
LUACode:--gs-uprender=2x2 --gs-upscale=edgesmooth --host-display-mode=16:9 --vu1-di-bits=0 --vu1-opt-flags=2 --fpu-accurate-range=0x28D4BC,0x28D4BC #fixes the crash on Chapter 5 in the ambush --ee-cycle-scalar=2.0 --framelimiter=1 --framelimit-fps=60.0 --framelimit-scalar=1 #emu used=star wars racer's revenge v1
Code:-- The Getaway - Black Monday (U)(SCUS-97408) -- Force turn on Native Widescreen (Full boot passing) by Arapapa -- 60FPS by Asagea @ PCSX2 forums -- emu used=star wars RR v1 apiRequest(0.4) local eeObj = getEEObject() local emuObj = getEmuObject() eeInsnReplace(0x00434e28, 0x30420003, 0x24020002) -- force 16:9 at boot local patcher = function() --60FPS eeObj.WriteMem32(0x20253FF0,0x24020001) --Unlock All Levels by MadCatz eeObj.WriteMem32(0x202DBBF0,0x00071820) eeObj.WriteMem32(0x2029142C,0x24020001) eeObj.WriteMem32(0x202BA4B0,0x24020001) --general improvements eeObj.Vu1MpgCycles(2000) emuObj.ThrottleMax() end emuObj.AddVsyncHook(patcher)
Perfect so far! Testers needed
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--host-display-mode=16:9
#emu used=star ocean v2
-- Silent Hill 4: The Room [SLUS-20873] (U)
-- Codes By Maori-Jigglypuff + felixthecat1970
-- NTSC Widescreen code by sergx12
-- ported to ps4
-- emu used=star ocean v2
local gpr = require("ee-gpr-alias")
apiRequest(1.3)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
-- Enhance Game Sharpness
eeObj.WriteMem32(0x0013b330,0x240D0000)
-- Constant correct Value 0x00000080 Adjustment to disable overall Fog Effect
eeObj.WriteMem32(0x002e5398,0x64040080)
-- Disable Blur-Effect when Ghost hangs on the Wall in Henrys Room
eeObj.WriteMem32(0x002a50e8,0x0c04088d)
-- Disable local Blur-Effects
eeObj.WriteMem32(0x0024bef4,0x24020000)
-- Disable global Blur-Effects
eeObj.WriteMem32(0x002c4430,0x24020000)
-- No black Borders
eeObj.WriteMem32(0x001a970c,0x24030000)
eeObj.WriteMem32(0x001a972c,0x24030000)
-- Disable Noise Filter, Film Tear Effects
-- and Blur Cones
eeObj.WriteMem32(0x002485e0,0x03E00008)
eeObj.WriteMem32(0x002485e4,0x00000000)
eeObj.WriteMem32(0x00273210,0x03E00008)
eeObj.WriteMem32(0x00273214,0x00000000)
-- Disable World-, Cutscene-, Rooms- and
-- Outside World of Window Renderer
eeObj.WriteMem32(0x001cd1b8,0xac201f00)
-- Create clean Window for Outlook
eeObj.WriteMem32(0x002196bc,0x24100000)
-- 16:9
eeObj.WriteMem32(0x00148564,0x3c013f40) -- 00000000 hor fov
eeObj.WriteMem32(0x00148570,0x4481f000) -- 00000000
eeObj.WriteMem32(0x001485a0,0x461ed683) -- 4600d647
eeObj.WriteMem32(0x001485b4,0x4600d647) -- 00000000
-- FMV fix
eeObj.WriteMem32(0x202f7954,0x3c020380) -- 3c020008 FMV top
eeObj.WriteMem32(0x202f7998,0x34021880) -- 26220008 FMV bottom
-- Black borders fix
eeObj.WriteMem32(0x201A9540,0x24030000) -- 24030001
-- Inventory fix
eeObj.WriteMem32(0x20625D54,0x3F400000) --1
eeObj.WriteMem32(0x20625E24,0x3F400000) --2
eeObj.WriteMem32(0x20625EF4,0x3F400000) --3
eeObj.WriteMem32(0x20625FC4,0x3F400000) --4
eeObj.WriteMem32(0x20626094,0x3F400000) --5
eeObj.WriteMem32(0x20626164,0x3F400000) --6
eeObj.WriteMem32(0x20626234,0x3F400000) --7
eeObj.WriteMem32(0x20626304,0x3F400000) --8
eeObj.WriteMem32(0x206263D4,0x3F400000) --9
eeObj.WriteMem32(0x206264A4,0x3F400000) --10
-- Item box fix
eeObj.WriteMem32(0x20624B54,0x3F400000) --1
eeObj.WriteMem32(0x20624C24,0x3F400000) --2
eeObj.WriteMem32(0x20624CF4,0x3F400000) --3
eeObj.WriteMem32(0x20624DC4,0x3F400000) --4
eeObj.WriteMem32(0x20624E94,0x3F400000) --5
eeObj.WriteMem32(0x20624F64,0x3F400000) --6
eeObj.WriteMem32(0x20625034,0x3F400000) --7
-- Hide licensing
eeObj.WriteMem32(0x2048F0E4,0x00000000)
-- Progressive mode + sharp framebuffer + video nopi (felixthecat1970)
eeObj.WriteMem32(0x2010025C,0x3C050000)
eeObj.WriteMem32(0x20100264,0x3C060050)
eeObj.WriteMem32(0x2010026C,0x3C070001)
eeObj.WriteMem32(0x20100914,0x34021000)
eeObj.WriteMem32(0x001020cc,0x00)
-- not used and why
-- 60 FPS code not complete
-- world renderer disable code crashes PS4 emu at ps2 logo
-- emuObj.ThrottleMax() -- Makes gameplay fast on this game at times
end
emuObj.AddVsyncHook(patcher)
--math.random() + math.random(1, 99)
test almost same config few months agoImprovements for Silent Hill 4 The Room NTSC (all ported from PCSX2 forums)
CLI
LUACode:--gs-uprender=2x2 --gs-upscale=EdgeSmooth --host-display-mode=16:9 #emu used=star ocean v2
Code:-- Silent Hill 4: The Room [SLUS-20873] (U) -- Codes By Maori-Jigglypuff + felixthecat1970 -- NTSC Widescreen code by sergx12 -- ported to ps4 -- emu used=star ocean v2 local gpr = require("ee-gpr-alias") apiRequest(1.3) local eeObj = getEEObject() local emuObj = getEmuObject() local patcher = function() -- Enhance Game Sharpness eeObj.WriteMem32(0x0013b330,0x240D0000) -- Constant correct Value 0x00000080 Adjustment to disable overall Fog Effect eeObj.WriteMem32(0x002e5398,0x64040080) -- Disable Blur-Effect when Ghost hangs on the Wall in Henrys Room eeObj.WriteMem32(0x002a50e8,0x0c04088d) -- Disable local Blur-Effects eeObj.WriteMem32(0x0024bef4,0x24020000) -- Disable global Blur-Effects eeObj.WriteMem32(0x002c4430,0x24020000) -- No black Borders eeObj.WriteMem32(0x001a970c,0x24030000) eeObj.WriteMem32(0x001a972c,0x24030000) -- Disable Noise Filter, Film Tear Effects -- and Blur Cones eeObj.WriteMem32(0x002485e0,0x03E00008) eeObj.WriteMem32(0x002485e4,0x00000000) eeObj.WriteMem32(0x00273210,0x03E00008) eeObj.WriteMem32(0x00273214,0x00000000) -- Disable World-, Cutscene-, Rooms- and -- Outside World of Window Renderer eeObj.WriteMem32(0x001cd1b8,0xac201f00) -- Create clean Window for Outlook eeObj.WriteMem32(0x002196bc,0x24100000) -- 16:9 eeObj.WriteMem32(0x00148564,0x3c013f40) -- 00000000 hor fov eeObj.WriteMem32(0x00148570,0x4481f000) -- 00000000 eeObj.WriteMem32(0x001485a0,0x461ed683) -- 4600d647 eeObj.WriteMem32(0x001485b4,0x4600d647) -- 00000000 -- FMV fix eeObj.WriteMem32(0x202f7954,0x3c020380) -- 3c020008 FMV top eeObj.WriteMem32(0x202f7998,0x34021880) -- 26220008 FMV bottom -- Black borders fix eeObj.WriteMem32(0x201A9540,0x24030000) -- 24030001 -- Inventory fix eeObj.WriteMem32(0x20625D54,0x3F400000) --1 eeObj.WriteMem32(0x20625E24,0x3F400000) --2 eeObj.WriteMem32(0x20625EF4,0x3F400000) --3 eeObj.WriteMem32(0x20625FC4,0x3F400000) --4 eeObj.WriteMem32(0x20626094,0x3F400000) --5 eeObj.WriteMem32(0x20626164,0x3F400000) --6 eeObj.WriteMem32(0x20626234,0x3F400000) --7 eeObj.WriteMem32(0x20626304,0x3F400000) --8 eeObj.WriteMem32(0x206263D4,0x3F400000) --9 eeObj.WriteMem32(0x206264A4,0x3F400000) --10 -- Item box fix eeObj.WriteMem32(0x20624B54,0x3F400000) --1 eeObj.WriteMem32(0x20624C24,0x3F400000) --2 eeObj.WriteMem32(0x20624CF4,0x3F400000) --3 eeObj.WriteMem32(0x20624DC4,0x3F400000) --4 eeObj.WriteMem32(0x20624E94,0x3F400000) --5 eeObj.WriteMem32(0x20624F64,0x3F400000) --6 eeObj.WriteMem32(0x20625034,0x3F400000) --7 -- Hide licensing eeObj.WriteMem32(0x2048F0E4,0x00000000) -- Progressive mode + sharp framebuffer + video nopi (felixthecat1970) eeObj.WriteMem32(0x2010025C,0x3C050000) eeObj.WriteMem32(0x20100264,0x3C060050) eeObj.WriteMem32(0x2010026C,0x3C070001) eeObj.WriteMem32(0x20100914,0x34021000) eeObj.WriteMem32(0x001020cc,0x00) -- not used and why -- 60 FPS code not complete -- world renderer disable code crashes PS4 emu at ps2 logo -- emuObj.ThrottleMax() -- Makes gameplay fast on this game at times end emuObj.AddVsyncHook(patcher) --math.random() + math.random(1, 99)