PS4 [Research]PS2 emulator configuration on PS4

So.. Here is what i got for now. Thread that is responsible for PS3-a-like configs is called x-lpnr. Lpnr mean Lopnor, is internal $ony name for non EE PS2 emulators for PS3 (excl. netemu afaik). To enable config reading by emu we need specify --lopnor-config=1 in cli file. Config expected file name is (TITLE_ID)_lopnor.cfgbin.

Supported commands are (by netemu values):

  • 0x01 (not quite sure where is hooks list yet)
  • 0x09
  • 0x0A
  • 0x0B
  • 0x0F
  • 0x10
  • 0x26
  • 0x27
What about other commands? I'm not sure yet, but it looks like they are ignored. But they still can be in config, no need to clean them. Config reading table have 77 switch cases, that suggest that supported commands are up to 0x4D.
Sad news is missing 0x12 command, that is responsible for EE -- VU sync/talk. Looks like we need to hook, or fastforwardclock there.
Honestly i counted for more juicy configs, on list there is nothing i can't port by myself to ps4 config manually. Excluding 0x01, that can be interesting.

Still not 100% sure how to use this, also commands that seems to be supported can be ported without need of cfgbin to ps4 emu.

CC @3141card @mysis , maybe it will be interesting for you.

Kudos kozarovv very nice finding... still need to find the hooks list? :)
 
Kudos kozarovv very nice finding... still need to find the hooks list? :)
Thx :) I think that hook list is not needed, since format resulted to be exactly the same as netemu. So available hook should be the same. For now just someone need to test any 0x01 command to check that is work at all (looks like it is), since i don't have hackable PS4.

Games tested:
Ace combat the belkan war: lopnor fixes collision detection for this version, also i fixed wrong clouds shader like for Ace combat Distant Thunder.
As expected :)


Rayman 3: i don't know what that file fixed on ps3 but the game still crashes on title screen, same problem with Rayman M (known as Rayman Arena in Usa) the freezes at character selection.
Command 0x12 is not supported.


Mafia (Europe) (Italy) the file fixes black screen afer the first intro, now you can go in the game, but the game doesn't completely load textures, you can only see the HUD.
Some additional VU settings are required, you can combine configs.


For now that's all, expect a video about the first game i've mentioned.

Just friendly reminder before you post something here, please double check forum rules. We not allow here links that include download to full game.
https://www.psx-place.com/threads/site-forum-rules-guidelines.79/
 
Thx :) I think that hook list is not needed, since format resulted to be exactly the same as netemu. So available hook should be the same. For now just someone need to test any 0x01 command to check that is work at all (looks like it is), since i don't have hackable PS4.


As expected :)



Command 0x12 is not supported.



Some additional VU settings are required, you can combine configs.




Just friendly reminder before you post something here, please double check forum rules. We not allow here links that include download to full game.
https://www.psx-place.com/threads/site-forum-rules-guidelines.79/

Yes i know, anyway which commands can fix mafia?
 
@kozarovv
So this is how mafia looks like:


You said that it needs additional VU config so you meant VU cli.conf file commands right? If yes i've tried everything but nothing changed, any idea?
Oh, i thought that is little bit better than that. This can be also something bad on GS. I can't help more without PS4, and doing that by myself.

@kozarovv is it possible to fix Need for Speed: Underground 2?
Yes
 
Could you prepare some nfs config for me to test?
Sadly i can't fix it remotely. Problem is in PS2 EAGL effects (those affect many EA games), when i worked on ps3 fix i managed to reverse most of EAGL symbols for that game, and i was able to control blur, blending, bloom, etc at game engine level. But none of my patches make it really playable then, today i know that gstitlefix on ps4 can filter against problematic effects directly on gs. So my previous work wasn't even really needed.

tl;dr i can't fix that without ps4.
 
Sadly i can't fix it remotely. Problem is in PS2 EAGL effects (those affect many EA games), when i worked on ps3 fix i managed to reverse most of EAGL symbols for that game, and i was able to control blur, blending, bloom, etc at game engine level. But none of my patches make it really playable then, today i know that gstitlefix on ps4 can filter against problematic effects directly on gs. So my previous work wasn't even really needed.

tl;dr i can't fix that without ps4.
And you will have access to PS4 to prepare such a config? I checked the US versions it also comes in 1 fps but looking at the graphics it looks like the PC version and not the PS2 version realy cool upgrade for this game.
 
And you will have access to PS4 to prepare such a config?

Sorry, i don't plan to spend 1000pln just to mess little bit with emulator. I'm probably not gonna have exploitable ps4 for very long time. Only reason that i can buy it now is ps2emu, that is not enough to spend this amount of money.

Although I'm still doing some magic without ps4, so maybe someday..
 
Sorry, i don't plan to spend 1000pln just to mess little bit with emulator. I'm probably not gonna have exploitable ps4 for very long time. Only reason that i can buy it now is ps2emu, that is not enough to spend this amount of money.

Although I'm still doing some magic without ps4, so maybe someday..

I would be willing to loan you my ps4 pro for shipping cost if it would help with the work of the emulator? You earned enough trust around here :)

I have a polish close friend of mine that could help out with any details.
 
Last edited:
I would be willing to loan you my ps4 pro for shipping cost if it would help with the work of the emulator? You earned enough trust around here :)

I have a polish close friend of mine that could help out with any details.
Thanks for the offer, but I need to refuse. Someday i will grab ps4 by myself, until then i try to help without it. :)
I should have some surprise related to ps3 configs on ps4 soon. Nothing major, but will make testing more "understandable".

Also I contacted dev of PS2 Classic GUI, he is really busy now. But when he will find some time, you guys gonna get PS3 config support right from the app. ;)
 
Thanks for the offer, but I need to refuse. Someday i will grab ps4 by myself, until then i try to help without it. :)
I should have some surprise related to ps3 configs on ps4 soon. Nothing major, but will make testing more "understandable".

Also I contacted dev of PS2 Classic GUI, he is really busy now. But when he will find some time, you guys gonna get PS3 config support right from the app. ;)

Please let me know if you change your mind.

I can't wait to see the config integrate with the GUI!
 
Last edited:
Collected some info about SetGsTitleFix: https://www.psdevwiki.com/ps4/PS2_Emulation#SetGsTitleFix
I didn't finished yet, but 70% is already there .
We can do almost everything there, filter against blend, texture by size, texture by type, alpha, filter by condition. Better than in pcsx2 CRC hacks ;)

Example usages from official configs: https://pastebin.com/yf802Up3
Please keep in mind that for example:
Code:
-- Fix shadow
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } )
is not going to fix shadows in every game. This is just example. We still need to find what is wrong, but now we have weapon to fight with it. ;)

Edit:

For example our game have issues with uprendered sprites, but everything else is working? No problem
Code:
emuObj.SetGsTitleFix( "ignoreUpRender", "reserved", { prim=6 } )
Done, sprites are ignored by uprender.
 
Collected some info about SetGsTitleFix: https://www.psdevwiki.com/ps4/PS2_Emulation#SetGsTitleFix
I didn't finished yet, but 70% is already there .
We can do almost everything there, filter against blend, texture by size, texture by type, alpha, filter by condition. Better than in pcsx2 CRC hacks ;)

Example usages from official configs: https://pastebin.com/yf802Up3
Please keep in mind that for example:
Code:
-- Fix shadow
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1  } )
is not going to fix shadows in every game. This is just example. We still need to find what is wrong, but now we have weapon to fight with it. ;)

Edit:

For example our game have issues with uprendered sprites, but everything else is working? No problem
Code:
emuObj.SetGsTitleFix( "ignoreUpRender", "reserved", { prim=6 } )
Done, sprites are ignored by uprender.

Good stuff man, It's looking good for this emulator I must say!
 
@kozarovv

Hey! It looks like you missed some commands (on Ps4devwikisite)
I don't know if you have updated the site but if so then you should take a look to theese commands:

Code:
--unit-test
--config=filename
--config-opt
--hid-pad
--snapshot-debug
--pc-bisect-srcfile
--pack-image
--pad-analog-to-digital
--pad-run
--pad-run-stop-after=[800ms,1s,3m,5h]
--pad-run-exit-after
--pad-run-frame=frame_id/integer
--pad-record
--pad-record-frame
--record-name=subdir/folder
--record-video-hash
--record-video-modulo=rames/integer.
--record-audio-hash.
--r30
--vu0
--vu1=jit-sync,jit-async.
--cop1
--cop2
--gs-plugin
--cli-only
--no-gs
--jitproc-use-aslr
--jitproc-build-match=git hash (sha1)
--playgo-disc-per-chunk
--external-hdd-sleep-idle=idle timeout in ms
--external-hdd-spinup-delay=delay in ms
--external-hdd-sim
--external-hdd-fix
--savedata-delete
--vmc1
--vmc2
--vmc-src= possible values ? =================>(native,host,target,null)
--vmc-dest
--vmc1-src
--vmc1-dest
--vmc2-src
--vmc2-dest
--formatted-vmc
--cpu-avx
--cpu-crc32
--stopped
--stop-at=frameID/integer
--exit-at
--ee-jit-opt-debug
--ee-precompile-trace
--ee-peephole
--ee-penalize-short-blocks
--ee-stlf-cycle-threshold
--ee-validate-kernel
--ee-injection-kernel
--ee-injection-title
--spu2-update-deferral=Ts/integer
--spu2-reverb
--spu2-c0-memin-to-bgm
--spu2-c1-memin-to-bgm
--spu2-ignore-kof
--spu2-voice-keyoff-threshold
--spu2-warnings
--vu1-native-patch
--vu1-aot-start-addr
--vu1-aot-outmode
--vu1-aot-end-addr
--vu1-aot-start-crc
--vu0-aot-start-addr=start addres
--vu0-aot-outmode=out/overwrite, append
--vu0-aot-end-addr=end address
--vu0-aot-start-crc=verify crc
--vu0-aot-end-crc
--vu1-aot-end-crc
--vtune-ee
--vtune-vu
--vif1-ignore-cmd-ints
--assert-path1-ad
--detect-idle-vif
--detect-idle-ee
--detect-idle-iop
--detect-idle-intc
--detect-idle-chcr= dmaChan,dmaChan,... [none,VIF0,VIF1,GIF,fromIPU,toIPU,etc].
--mfifo-manual-drain.frame_multiplier/float
--mfifo-chunk-drain-cycles.cycles/int
--iop-hook
--lua-script
--lua-debug-api
--lua-use-pcall
--lua-trace-gc
--lua-trace-fn
--lua-trace-hooks
--lua-trace-vmsteps
--app-entitlement.entitlement/string
--load-trophy-lua
--load-feature-lua
--trophy-support
--pcr0-delta-hack.ratio/float
--verbose-tooling
--log-tooling
--verbose-deci2
--verbose-cdvd-reads
--verbose-cpu-cycles
--verbose-thread-id
--game-live-streaming
--game-live-streaming-record
--switch-disc-delay=frame_count/integer
--switch-disc-reset
--savedata-fingerprint=posssible values ?===============>ps2tc,ps4tc,fingerprint
--mcd1
--mcd2
--formatted-mcd
--mcd1-initialize
--mcd1-write-type
--mcd2-initialize
--mcd2-write-type
--title-id-override
--pmc-enable
--pmc-buffer-size=MB
--pmc-sample-freq=Hz
--pmc-measure-frames=frames(int)
--cdvd-sector-read-cycles=cycles_per_sector
--cdvd-sector-seek-cycles
--cdvd-determinism
--elf-symbols
--map-symbols
--symbols

Maybe this is useless
 
Last edited:
Do you have save near that place? PS3 version should have similar issue, so i can test. Fix for that can be one of FPU clamping options, or accurate calculation. Second one is better because it won't break other things. Save will be really helpful here.

Hi Kozarovv, I am the guy proffk, was trying to help regarding this issue. I got really demotivated after my PS4 Save corrupted in the failed process of extracting it and then life got in my way; Fortunately, I finally had time to find a save about 5-6 hours from the glitch location, shaved that down to 30 minutes via battle debug menu and am pleased to present it to you finally. Sorry this is such an old posts I am quoting, hopefully we can find a solution to this so the game can be considered fully playable on the Ps4 =). I have uploaded the raw save from my ps2 memory card & a .MCD with the save on it depending on whichever would be easiest to work with.

https://www.mediafire.com/file/3av849kgwed0kfz/BASLUS-20911-dds3-0.psu/file

https://www.mediafire.com/file/k2hotyqb9doin7l/Mcd001.ps2/file
 
@kozarovv

Hey! It looks like you missed some commands (on Ps4devwikisite)
I don't know if you have updated the site but if so then you should take a look to theese commands:

Code:
--unit-test
--config=filename
--config-opt
--hid-pad
--snapshot-debug
--pc-bisect-srcfile
--pack-image
--pad-analog-to-digital
--pad-run
--pad-run-stop-after=[800ms,1s,3m,5h]
--pad-run-exit-after
--pad-run-frame=frame_id/integer
--pad-record
--pad-record-frame
--record-name=subdir/folder
--record-video-hash
--record-video-modulo=rames/integer.
--record-audio-hash.
--r30
--vu0
--vu1=jit-sync,jit-async.
--cop1
--cop2
--gs-plugin
--cli-only
--no-gs
--jitproc-use-aslr
--jitproc-build-match=git hash (sha1)
--playgo-disc-per-chunk
--external-hdd-sleep-idle=idle timeout in ms
--external-hdd-spinup-delay=delay in ms
--external-hdd-sim
--external-hdd-fix
--savedata-delete
--vmc1
--vmc2
--vmc-src= possible values ? =================>(native,host,target,null)
--vmc-dest
--vmc1-src
--vmc1-dest
--vmc2-src
--vmc2-dest
--formatted-vmc
--cpu-avx
--cpu-crc32
--stopped
--stop-at=frameID/integer
--exit-at
--ee-jit-opt-debug
--ee-precompile-trace
--ee-peephole
--ee-penalize-short-blocks
--ee-stlf-cycle-threshold
--ee-validate-kernel
--ee-injection-kernel
--ee-injection-title
--spu2-update-deferral=Ts/integer
--spu2-reverb
--spu2-c0-memin-to-bgm
--spu2-c1-memin-to-bgm
--spu2-ignore-kof
--spu2-voice-keyoff-threshold
--spu2-warnings
--vu1-native-patch
--vu1-aot-start-addr
--vu1-aot-outmode
--vu1-aot-end-addr
--vu1-aot-start-crc
--vu0-aot-start-addr=start addres
--vu0-aot-outmode=out/overwrite, append
--vu0-aot-end-addr=end address
--vu0-aot-start-crc=verify crc
--vu0-aot-end-crc
--vu1-aot-end-crc
--vtune-ee
--vtune-vu
--vif1-ignore-cmd-ints
--assert-path1-ad
--detect-idle-vif
--detect-idle-ee
--detect-idle-iop
--detect-idle-intc
--detect-idle-chcr= dmaChan,dmaChan,... [none,VIF0,VIF1,GIF,fromIPU,toIPU,etc].
--mfifo-manual-drain.frame_multiplier/float
--mfifo-chunk-drain-cycles.cycles/int
--iop-hook
--lua-script
--lua-debug-api
--lua-use-pcall
--lua-trace-gc
--lua-trace-fn
--lua-trace-hooks
--lua-trace-vmsteps
--app-entitlement.entitlement/string
--load-trophy-lua
--load-feature-lua
--trophy-support
--pcr0-delta-hack.ratio/float
--verbose-tooling
--log-tooling
--verbose-deci2
--verbose-cdvd-reads
--verbose-cpu-cycles
--verbose-thread-id
--game-live-streaming
--game-live-streaming-record
--switch-disc-delay=frame_count/integer
--switch-disc-reset
--savedata-fingerprint=posssible values ?===============>ps2tc,ps4tc,fingerprint
--mcd1
--mcd2
--formatted-mcd
--mcd1-initialize
--mcd1-write-type
--mcd2-initialize
--mcd2-write-type
--title-id-override
--pmc-enable
--pmc-buffer-size=MB
--pmc-sample-freq=Hz
--pmc-measure-frames=frames(int)
--cdvd-sector-read-cycles=cycles_per_sector
--cdvd-sector-seek-cycles
--cdvd-determinism
--elf-symbols
--map-symbols
--symbols

Maybe this is useless
Thanks, yes i'm aware of those commands, there is even more than that, but require api above 2.2 that is not available for 5.05 users.


Hi Kozarovv, I am the guy proffk, was trying to help regarding this issue. I got really demotivated after my PS4 Save corrupted in the failed process of extracting it and then life got in my way; Fortunately, I finally had time to find a save about 5-6 hours from the glitch location, shaved that down to 30 minutes via battle debug menu and am pleased to present it to you finally. Sorry this is such an old posts I am quoting, hopefully we can find a solution to this so the game can be considered fully playable on the Ps4 =). I have uploaded the raw save from my ps2 memory card & a .MCD with the save on it depending on whichever would be easiest to work with.

https://www.mediafire.com/file/3av849kgwed0kfz/BASLUS-20911-dds3-0.psu/file

https://www.mediafire.com/file/k2hotyqb9doin7l/Mcd001.ps2/file

Thank you, i should have access to PS3 this weekend. I will try to find out that issue exist there. If yes, this will be easy fix, if no then i'm gonna need tester with ps4.
 
Thanks, yes i'm aware of those commands, there is even more than that, but require api above 2.2 that is not available for 5.05 users.




Thank you, i should have access to PS3 this weekend. I will try to find out that issue exist there. If yes, this will be easy fix, if no then i'm gonna need tester with ps4.

I can already confirm for you that this glitch does not exist on the PS3 (as it was officially released as a Ps2Classic back then for PS3). I could possibly help with Ps4 Testing, but I am not quite sure how to inject the raw save into a Ps4's Ps2ClassicEmu.
 

Similar threads

Back
Top