PS4 PSP-FPKG: PSP Compatibility on PS4 - User Submitted Test Results

I am still hoping we get the new PSP emulator from Ape Escape P (On the Loose in US Region)

That PSP Emulator have a new config that allow us to remap certain button (like D-Pad, etc.) to right analog stick in latest update (yes, I am one of the fool that bought this game on PS4 and PS5 lol)
 
Transformers The Game - (ULUS10274)

config-title.txt

Code:
# Transformers The Game (all regions)

--has-shown-start-select-help=1

--texclutmode=filter

--bend-30hz-lock=1

--antialias=off
--texloadcores=12
--texcachemode=patchworkheroes
--present=setframebuf
--texrecent=true
--umddelay=true
--smoothlevel=0

--psp-right-stick-action=1
--psp-right-stick-deadzone-x=15
--psp-right-stick-deadzone-y=15
--psp-right-stick-deadzone-semicircle-arc=40

--app-volume=0.8

# following settings are machine-generated
--region-dir=SIEA
--ps4-trophies=0
--ps5-uds=0
--trophies=0

--globalgamedata-dir=global

# Emu used = Syphon Filter Dark Mirror
 
Dungeon Siege Throne of Agony - ULES00569

config-title.txt

Code:
# Dungeon Siege: Throne of Agony (all regions)

--has-shown-start-select-help=1

--bend-30hz-lock=0

--app-volume=0.8

--active-sku="ULES00569"
--title-id=ULES00569

--texloadcores=12
--texcachemode=patchworkheroes
--present=vblankstart
--texrecent=true
--umddelay=true
--smoothlevel=0

--texclutmode=filter

# following settings are machine-generated
--region-dir=SIEA
--ps4-trophies=0
--ps5-uds=0
--trophies=0

--vms-dir=vms
--vms=/temp0/vms
--ms0=/temp0/ms0
--multisaves=false
--notrophies=true
--securesaves=false

--globalgamedata-dir=global

# Emu used = Syphon Filter Dark Mirror

pic0.png file download

pic0.png
 

Attachments

Laura Bow in The Dagger of Amon Ra|ScummVM|PSPtoPS4 Test

Thanks again to @jacobsson for updated ScummVM app (v.1.2.0) and now we have other playble Scumm game!
 
Last edited:
Gurumin: A Monstrous Adventure - ULUS10228

config-title.txt
Code:
# Gurumin: A Monstrous Adventure (all regions)

--image="data/USER_L0.IMG"
--title-id=ULUS10228
  
--gpu-renderthread=0

--antialias=ssaa4x
--texclutmode=full
--smoothlevel=0
--texcachemode=patchworkheroes
--present=vblankstart

--texrecent=true
--umddelay=true
--gputhread=true

--vramcopyback=45
--texloadcores=48

--locorocomeshsmooth=true
--depthscalehack=true

--spu2Trace=true
--spu2-c1-memin-to-bgm=true

--multisaves=true
--notrophies=true

# following settings are machine-generated
--ps4-trophies=0
--ps5-uds=0
--trophies=0

--globalgamedata-dir=global

# Emu used = Ridge Racer 2
 

Attachments

Last edited:
Power Stone Collection - ULUS10171

Emu used = Syphon Filter Dark Mirror

config-title.txt
Code:
--texloadcores=48
--antialias=off
--forcenobilinear=true
 
so many new option, files, filter & preset in this new emu (resistance)
all we need is now a backport. i hope it will fix most psp games

config-title.txt
--[ps4]-audio-latency=72ms
--enable-resistance-retribution-plus-mode=true
--bend-30hz-lock=1
--bend-30hz-lock-pc-list=0x8c776e4
--triangle-discard-enabled=true
--[ps5]-boost-cpu-clock=true
--round-depth-to-16bit=true
--enable-user-psp-right-stick-remapping=false
--psp-right-stick-action=false
--psp-large-ram=1
--use-higher-precision-depth=false
--enable-customize-buttons-menu=false
--region-dir=SIEA
--ps4-trophies=1
--ps5-uds=1
--globalgamedata-dir=global
 
Killzone Liberation Official Config from 11.00 pppwn dump...

Code:
--psp-large-ram=false
--force-dsf-present=true
--setframebuf-force-vblank-wait=1

--hack-use-sku-vms=true


--replacement-texture-dir=/xem_skuvault/replacements/texreplace

# following settings are machine-generated
--region-dir=SIEA
--ps4-trophies=1
--ps5-uds=1
--trophies=1

--globalgamedata-dir=global
LUA
Code:
-- Lua 5.3
-- Title:  Killzone Liberation
-- Authors:  Bryan Strait, Ali Burakaz

apiRequest(1.0)

local axObj = getAXObject()
local gpr   = require( "ax-gpr-alias" )

TIME_HOOK_PC     = 0x089DA8B0
TIME_HOOK_OPCODE   = 0x8FBF001C

function TimeHook()
   local a0 = axObj.GetGpr(gpr.a0)
   local a1 = axObj.GetGpr(gpr.a1)
 
   --print("TimeHook: ", a0, a1)
 
   axObj.SetGpr(gpr.a0, 16)
   axObj.SetGpr(gpr.a1, 0)
end

--axObj.AddHook(TIME_HOOK_PC, TIME_HOOK_OPCODE, TimeHook)

print("_NOTE: Skip loaded\n")


--Menu option blocking

--Main menu

local i_skip_option = 0x8A06004 -- 0x89b51b4
local op_skip_option = 0xac850000

local play = "play"
local options = "options"
local statistics = "statisticsrewards"
local downloads = "downloads"
local share = "gameshare"
local killzone_dot_com = "website"
local credits = "credits"

local blocked_options = {"downloads", "gameshare", "website", "campaigncoop","combatzoneadhoc", "multiplayer", "multiplayertexture", "combatzoneonline", "other"}

----------
-- Menu option object, Up/Down/Left/Right at


local function table_contains(tbl, x)
  found = false
  for _, v in pairs(tbl) do
  if v == x then
  found = true
  end
  end
  return found
end


local statistics_obj = -1
local statistics_push = -1

local function skipOption()
   local menu_entry_obj = axObj.GetGpr(gpr.a1)
   local p_entry_label = axObj.ReadMem32(menu_entry_obj + 0x28)
   local entry_label = axObj.ReadMemStr(p_entry_label)
 
   if axObj.ReadMem32(menu_entry_obj + 0x74) ~= 0 then
 
     local up_label = axObj.ReadMemStr(axObj.ReadMem32(menu_entry_obj + 0x74))
     local down_label = axObj.ReadMemStr(axObj.ReadMem32(menu_entry_obj + 0x78))
     local left_label = axObj.ReadMemStr(axObj.ReadMem32(menu_entry_obj + 0x7C))
     local right_label = axObj.ReadMemStr(axObj.ReadMem32(menu_entry_obj + 0x80))
   
     if entry_label == "statisticsrewards" then
       statistics_obj = menu_entry_obj
     elseif entry_label == "credits" then
       if statistics_push ~= -1 then
         axObj.WriteMem32(menu_entry_obj + 0x74, statistics_push)
       end
     end
   
     if up_label == "statisticsrewards" then
       statistics_push = axObj.ReadMem32(menu_entry_obj + 0x74)
     end
   
     if down_label == "credits" then
       if statistics_obj ~= -1 then
         axObj.WriteMem32(statistics_obj + 0x78, axObj.ReadMem32(menu_entry_obj + 0x78))
       end
     end
   end
 
   --print(entry_label .. ":")
   --[[print(   "Up:",up_label,
       "\nDown:", down_label,
       "\nLeft:", left_label,
       "\nRight:", right_label)]]--
 
   if table_contains(blocked_options,entry_label) then
     local cursor = axObj.GetGpr(gpr.a0)
     axObj.WriteMem32(axObj.GetGpr(gpr.a0), 0)
   end
end

axObj.AddHook(i_skip_option, op_skip_option, skipOption)


-- replace sceRtcGetCurrentTick usage with sceKernelGetSystemTime
-- version 1.00
--axObj.InsnReplace("Guerrilla", 0x89da8cc-0x8800000, 0x0e354f49, 0x0e3550c5)
--axObj.InsnReplace("Guerrilla", 0x89da874-0x8800000, 0x0e354f49, 0x0e3550c5)
-- version 1.20 (DLC)
axObj.InsnReplace("Guerrilla", 0x8808828-0x8800000, 0x0e362bdc, 0x0e362c8a)
axObj.InsnReplace("Guerrilla", 0x8808888-0x8800000, 0x0e362bdc, 0x0e362c8a)

-- menu beam effect draws
-- version 1.00
--axObj.InsnReplace("Guerrilla", 0x8a07690-0x8800000, 0x27bdff40, 0x03e00008)
--axObj.InsnReplace("Guerrilla", 0x8a07694-0x8800000, 0xafb10090, 0)
-- version 1.20 (DLC)
axObj.InsnReplace("Guerrilla", 0x8a64fcc-0x8800000, 0x27bdff50, 0x03e00008)
axObj.InsnReplace("Guerrilla", 0x8a64fd0-0x8800000, 0xafb10080, 0)

-- ingame tone mapping pass
-- version 1.00
--axObj.InsnReplace("Guerrilla", 0x8a07d94-0x8800000, 0x27bdffb0, 0x03e00008)
--axObj.InsnReplace("Guerrilla", 0x8a07d98-0x8800000, 0x3c0508db, 0)
-- version 1.20 (DLC)
axObj.InsnReplace("Guerrilla", 0x8a65aa0-0x8800000, 0x27bdffd0, 0x03e00008)
axObj.InsnReplace("Guerrilla", 0x8a65aa4-0x8800000, 0x3c0508e0, 0)

emulator does not yet work on 5.05 -> 9.00... working on 11.00 with a few more...
 

Similar threads

Back
Top