Editing PSP Emulation
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
== Official games == | == Official games == | ||
=== PSP games available on PS4 PS Store === | === PSP games available on PS4 PS Store === | ||
<pre> | |||
Jeanne d'Arc (2006) UP9000-CUSA41018_00-UCUS987000000000 (PS5: UP9000-PPSA13995_00-UCUS987000000000) 2024-07-16 | |||
Ratchet & Clank: Size Matters (2007) UP9000-CUSA41395_00-UCUS986330000000 (PS5: UP9000-PPSA14431_00-UCUS986330000000) 2024-07-16 PS4 11.50 | |||
LEGO Star Wars II: The Original Trilogy UP1082-CUSA41250_00-ULUS101550000000 or EP1006-CUSA41251_00-ULES004790000000 (PS5: UP1082-PPSA14300_00-ULUS101550000000 or UP1082-PPSA14300_00-0804842924824650) 2024-06-18 patch 1.01 requires PS4 11.50 or PS5 9.20 | |||
GODS EATER BURST PS4® & PS5® (PS5: UP0700-PPSA07715_00-GODEATERBURST000 or JP0700-PPSA07713_00-GODEATERBURST000) 2024-03-19 | |||
Daxter UP9000-CUSA36097_00-NPUG803290000000 (PS5: UP9000-PPSA09695_00-NPUG803290000000) 2024-06-18 patch 1.01 requires PS4 11.50 or PS5 9.20 | |||
Jak and Daxter: The Lost Frontier UP9000-CUSA41282_00-NPUG803300000000 (PS5: UP9000-PPSA14325_00-NPUG803300000000) 2024-03-19 patch 1.02 requires PS4 11.50 or PS5 9.00 | |||
Thrillville EP1006-CUSA41330_00-ULES006460000000 or UP1082-CUSA41329_00-ULUS101910000000 (PS5: UP1082-PPSA14358_00-0724668029168071) 2023-12-19 | |||
Thrillville: Off the Rails (PS5: UP1082-PPSA14360_00-0645898243839752) 2023-12-19 | |||
Tekken 6 PS4® & PS5® UP0700-CUSA33754_00-TEKKEN6000000000 or JP0700-CUSA33752_00-TEKKEN6000000000 (PS5: UP0700-PPSA07707_00-ULUS104660000000) 2023-10-17 | |||
Soulcalibur: Broken Destiny PS4® & PS5® UP0700-CUSA33758_00-SOULCALIBURBD000 or JP0700-CUSA33756_00-SOULCALIBURBD000 2023-10-17 | |||
Disney•Pixar Up UP1082-CUSA41345_00-0227660722516578 2023-11-21 | |||
MediEvil Resurrection™ UP9000-CUSA33589_00-UCUS986200000000 2023-08-15 | |||
Ridge Racer 2 PS4 & PS5 UP0700-CUSA33740_00-RIDGERACER200000 or JP0700-CUSA33738_00-RIDGERACER200000 2022-12-20 | |||
Gravity Crash Portable UP9000-CUSA40479_00-NPUG803210000000 or JP9000-CUSA40480_00-NPJG000440000000 2023-07-18 | |||
Killzone: Liberation (2006) EP9000-CUSA37875_00-UCES002790000000 or UP9000-CUSA37874_00-UCUS986460000000 (PS5: UP9000-PPSA11141_00-UCUS986460000000) 2023-06-20 PS5 7.40 | |||
Pursuit Force (2005) UP9000-CUSA37191_00-UCUS986400000000 or EP9000-CUSA37192_00-UCES000190000000 or JP9000-CUSA37932_00-ULJM050970000000 or HP9000-CUSA37193_00-UCKS450160000000 (PS5: UP9000-PPSA10609_00-UCUS986400000000) 2023-05-16 | |||
Pursuit Force: Extreme Justice UP9000-CUSA34853_00-UCUS987030000000 (PS5: UP9000-PPSA08696_00-UCUS987030000000) 2023-08-15 | |||
Blade Dancer: Lineage of Light UP9000-CUSA37870_00-ULUS101240000000 or JP9000-CUSA37872_00-UCJS100210000000 2023-05-16 | |||
Pinball Heroes UP9000-CUSA33617_00-0000000000000000 2022-12-20 | |||
Disney•Pixar Toy Story 3 UP1082-CUSA33343_00-4838282977086414 2022-09-20 | |||
Kingdom of Paradise UP9000-CUSA33573_00-UCUS986230000000 or JP9000-CUSA33575_00-UCJS100100000000 or HP9000-CUSA34893_00-UCAS400230000000 2022-09-20 | |||
No Heroes Allowed! UP9000-CUSA33595_00-NPUG804600000000 2022-07-19 | |||
LocoRoco Midnight Carnival UP9000-CUSA32639_00-0000000000000000 or JP9000-CUSA32641_00-0000000000000000 2022-07-19 | |||
Ape Escape: On the Loose UP9000-CUSA37860_00-UCUS986090000000 or EP9000-CUSA37861_00-UCES000450000000 or JP9000-CUSA37862_00-UCJS100040000000 2023-08-15 PS4 10.70 | |||
Ape Escape Academy UP9000-CUSA33020_00-UCUS986190000000 or JP9000-CUSA33022_00-UCJS100030000000 2023-10-17 | |||
Ape Academy 2 UP9000-CUSA37900_00-UCES003020000000 or JP9000-CUSA37866_00-UCJS100200000000 2023-03-21 | |||
Secret Agent Clank UP9000-CUSA41276_00-UCUS986970000000 (PS5: UP9000-PPSA14319_00-UCUS986970000000) 2024-09-17 | |||
Syphon Filter: Logan's Shadow (2007) EP9000-CUSA32631_00-UCES007100000000 or UP9000-CUSA32630_00-UCUS986060000000 (PS5: UP9000-PPSA06782_00-UCUS986060000000) 2023-05-16 PS5 9.00 | |||
Syphon Filter: Dark Mirror UP9000-CUSA32633_00-UCUS986410000000 2023-03-21 | |||
echochrome UP9000-CUSA32644_00-NPUG801350000000 or JP9000-CUSA32646_00-UCJS100810000000 2022-06-13 | |||
Super Stardust Portable (2007) EP9000-CUSA33036_00-NPEG000080000000 or UP9000-CUSA33035_00-NPUG802210000000 or JP9000-CUSA33037_00-NPJG000130000000 (PS5: UP9000-PPSA07135_00-NPUG802210000000 or EP9000-PPSA07136_00-NPEG000080000000) 2022-06-13 | |||
echoshift UP9000-CUSA33585_00-NPUG803030000000 or JP9000-CUSA33587_00-UCJS100960000000 2022-07-19 | |||
Resistance: Retribution (2009) EP9000-CUSA32637_00-UCES011840000000 or UP9000-CUSA32636_00-UCUS986680000000 (PS5: EP9000-PPSA06789_00-UCES011840000000 or UP9000-PPSA06788_00-UCUS986680000000 or JP9000-PPSA06790_00-UCJS100900000000) 2024-02-20 | |||
勇者のくせになまいきだ:3D (What Did I Do to Deserve This, My Lord? 3D) JP9000-CUSA33597_00-UCJS101090000000 2022-07-19 | |||
Coded Soul JP9000-CUSA33571_00-UCJS100610000000 or HP9000-CUSA34502_00-UCAS401800000000 2023-06-20 | |||
Ore no Shikabane o Koete Yuke (PS5: JP9000-PPSA09382_00-UCJS101170000000) 2024-04-16 | |||
</pre> | |||
=== PSP remaster games available on PS4 PS Store === | === PSP remaster games available on PS4 PS Store === | ||
* LocoRoco™ Remastered UP9000-CUSA06090_00-UCUS986620000001 2017-05-09 | |||
* LocoRoco™ 2 Remastered UP9000-CUSA06091_00-UCUS987310000001 2017-12-09 | |||
* LocoRoco™ Remastered UP9000-CUSA06090_00 | * LUMINES REMASTERED UP0751-CUSA11624_00-LUMINESREMASTERE or JP1049-CUSA11673_00-LUMINESREMASTERE 2018-07-10 | ||
* LocoRoco™ 2 Remastered UP9000-CUSA06091_00-UCUS987310000001 | * Patapon™ Remastered UP9000-CUSA06171_00-UCUS987110000001 2017-08-01 | ||
* LUMINES REMASTERED UP0751-CUSA11624_00-LUMINESREMASTERE or JP1049-CUSA11673_00 | * Patapon 2 Remastered UP9000-CUSA07321_00-UCES011770000001 2020-01-30 | ||
* Patapon™ Remastered UP9000-CUSA06171_00-UCUS987110000001 | * Metal Slug Double X JP0576-CUSA11717_00-METALSLUGXX00001 2018-05-30 | ||
* Patapon 2 Remastered UP9000-CUSA07321_00-UCES011770000001 | * PaRappa The Rapper™ Remastered UP9000-CUSA05289_00-UCUS987020000001 2017-04-04 | ||
* Metal Slug Double X JP0576-CUSA11717_00 | |||
* PaRappa The Rapper™ Remastered | |||
== '''PSPHD''' == | =='''PSPHD'''== | ||
The PSP emulator for PlayStation 4 includes plenty of undiscovered functionalities. It even allows patches directly to the emulated Allegrex CPU. Not many CLI commands were added this time around. Very few commands have a description to their usage inside of the eboot.bin, everything else is just guesswork from the scene. Plenty of Lua commands need to be understood before the compatibility of games can improve. The PSP emulator has not gained the same popularity in the scene as the PS2 emulator due to the existence of an unofficial PPSSPP core in the unofficial Retroarch port for hacked PS4. As far as the compatibility and performance go, the Retroarch core is yet to be bested. This official emulator may hold potential, but the potential can only go so far as it seems not to have support for gamedata installation, which in turn will render many games unplayable. | The PSP emulator for PlayStation 4 includes plenty of undiscovered functionalities. It even allows patches directly to the emulated Allegrex CPU. Not many CLI commands were added this time around. Very few commands have a description to their usage inside of the eboot.bin, everything else is just guesswork from the scene. Plenty of Lua commands need to be understood before the compatibility of games can improve. The PSP emulator has not gained the same popularity in the scene as the PS2 emulator due to the existence of an unofficial PPSSPP core in the unofficial Retroarch port for hacked PS4. As far as the compatibility and performance go, the Retroarch core is yet to be bested. This official emulator may hold potential, but the potential can only go so far as it seems not to have support for gamedata installation, which in turn will render many games unplayable. | ||
Line 208: | Line 201: | ||
|- | |- | ||
| --psp-right-stick-deadzone-semicircle-arc || || ||--psp-right-stick-deadzone-semicircle-arc=40 | | --psp-right-stick-deadzone-semicircle-arc || || ||--psp-right-stick-deadzone-semicircle-arc=40 | ||
|- | |- | ||
|} | |} | ||
Line 248: | Line 225: | ||
===XXXXYYYYY_patches.lua=== | ===XXXXYYYYY_patches.lua=== | ||
The lua can be placed as: '''scripts\XXXXYYYYY_patches.lua''' | The lua can be placed as: '''scripts\XXXXYYYYY_patches.lua''' | ||
====Emulator commands==== | ====Emulator commands==== | ||
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;" | {| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;" | ||
! Command !! Usage !! Notes - Example | ! Command !! Usage !! Notes - Example | ||
Line 485: | Line 460: | ||
|} | |} | ||
====User-made examples==== | |||
<br>'''Coconut Dodge''' | <br>'''Coconut Dodge''' | ||
<br>"NPEZ00164" | <br>"NPEZ00164" | ||
Line 494: | Line 469: | ||
local patcher = function() | local patcher = function() | ||
--Infinite lives | --Infinite lives | ||
axObj.WriteMem32(0x8ACA1A4, 0x3) --0x08ACE1A4 on PPSSPP | axObj.WriteMem32(0x8ACA1A4, 0x3) --0x08ACE1A4 on PPSSPP, PPSSPP addresses need to be reduced by 0x4000 in order to work on PS4 | ||
end | end | ||
Line 507: | Line 482: | ||
local patcher = function() | local patcher = function() | ||
--Performance patch | --Performance patch | ||
axObj.WriteMem32(0x08862E40, 0x10000019) | axObj.WriteMem32(0x08862E40, 0x10000019) | ||
axObj.WriteMem32(0x08862EAC, 0x0) | axObj.WriteMem32(0x08862EAC, 0x0) | ||
end | end | ||
Line 515: | Line 490: | ||
[https://www.psdevwiki.com/ps4/Talk:PSP_Emulator_Compatibility_List#Official_PSPemu_Configuration_Files More patches can be found here] | [https://www.psdevwiki.com/ps4/Talk:PSP_Emulator_Compatibility_List#Official_PSPemu_Configuration_Files More patches can be found here] | ||
====Patches.lua==== | ====Patches.lua==== | ||
======Syphon Filter: Dark Mirror====== | ======Syphon Filter: Dark Mirror====== | ||
Line 589: | Line 562: | ||
cpu.InsnReplace(0x8c163e0, 0x3c0408ee, 0x00000000) -- nop | cpu.InsnReplace(0x8c163e0, 0x3c0408ee, 0x00000000) -- nop | ||
</pre> | </pre> | ||
======Patapon 2'''====== | ======Patapon 2'''====== | ||
<pre> | <pre> | ||
-- Lua 5.3 | -- Lua 5.3 | ||
Line 997: | Line 968: | ||
== Emulators == | == Emulators == | ||
<pre>Every emulator is programmed in a differently. Sometimes choosing the right emulator is the only possible way to fix a game. Emulators are not provided pre-installed on the ps4, they have to be unpacked from a backup that's downloaded from the ps store from that specific game. This list includes The typical usage of some of The emulators.</pre> | |||
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;" | {| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;" | ||
! Emulator !! Usage !! API Version !! Similar emulators (compatibility) | ! Emulator !! Usage !! API Version !! Similar emulators (compatibility) | ||
|- | |- | ||
| Echochrome || The default | | Echochrome || The default psp emulator for PSPFPKG tool at the time of writing and the best in terms of compatibility. || ? || ? | ||
|- | |- | ||
| | | LocoRoco Midnight Carnival || ? || ? || ? | ||
|- | |- | ||
| LocoRoco | | LocoRoco 1 || ? || ? || ? | ||
|- | |- | ||
| LocoRoco | | LocoRoco 2 || ? || ? || ? | ||
|- | |- | ||
| | | Castlevania Requiem || ? || ? || ? | ||
|- | |- | ||
| Patapon 2 | | Patapon 2 || ? || ? || ? | ||
|- | |- | ||
| | | PaRappa the Rapper || An unofficial emulator developed by sony with very bad compatibility || ? || ? | ||
|- | |- | ||
| | | Syphon Filter: Dark Mirror || ? || ? || ? | ||
|- | |- | ||
|} | |} | ||
== Memory mapping == | ==Memory mapping== | ||
<br>'''Note''': The memory on PPSSPP is 0x4000 offsets ahead of the memory on the PS4 | <br>'''Note''': The memory on PPSSPP is 0x4000 offsets ahead of the memory on the PS4 | ||
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;" | {| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;" | ||
Line 1,227: | Line 1,192: | ||
|} | |} | ||
= | =LUA include files= | ||
<br>Files that need to be placed in the '''/lua_include/''' folder | <br>Files that need to be placed in the '''/lua_include/''' folder | ||
Line 1,616: | Line 1,580: | ||
</pre> | </pre> | ||
= | =Information= | ||
Note: Missing entries | |||
==Folder/File layout== | |||
<pre> | <pre> | ||
├── assets | |||
│ ├── common | |||
│ └── PSPHD | |||
├── app | |||
│ └── USER_L0.IMG | |||
├── lua_include | |||
│ ├── ax-gpr-alias.lua | |||
│ ├── multiapp.lua | |||
│ ├── sce-locale.lua | |||
│ ├── uv-clamping.lua | |||
│ ├── disc-selection.lua | |||
│ └── pad.lua | |||
├── scripts | |||
│ ├──XXXXYYYYY_patches.lua | |||
│ ├──XXXXYYYYY_features.lua | |||
│ ├──XXXXYYYYY_tooling.lua | |||
│ └──XXXXYYYYY_trophies.lua | |||
├── sce_module | |||
├── sce_sys | |||
├── vms | |||
├── trophy_data | |||
├── usermodule | |||
│ └──libfont.lib | |||
├── sce_discmap.plt | |||
├── eboot.bin | |||
├── revision.conf | |||
├── package-ps4.conf | |||
└── config-title.txt | |||
</pre> | |||
==Other== | |||
<pre> | |||
XXXXYYYYY_config.txt | |||
videos/ | |||
.mp4 | |||
videos/%08x.mp4 | |||
audio/%08x.ogg | |||
Paths: | |||
/app0/ | |||
/download0/ | |||
/savedata | |||
/host/ | |||
/hostapp/ | |||
/data/ | |||
</pre> | |||
==Sample== | |||
<pre>; PS4 configuration file for PSPHD | |||
; Game Image | |||
--image="data/USER_L0.IMG" | |||
; Redirect host0: to a specific directory (uncomment to enable). | |||
; By default it's mapped to either "/hostapp/" if available, or "/app0/" if "/hostapp/" is not available. | |||
;--host="/hostapp/" | |||
; To dump the original video in PMF format, uncomment the --dumpvideos line | ; To dump the original video in PMF format, uncomment the --dumpvideos line | ||
; For example, with the current setting, it will save them in a " | ; For example, with the current setting, it will save them in a "videos" directory inside the File Serving Directory | ||
;--dumpvideos="host0:videos" | ;--dumpvideos="host0:videos" | ||
; To dump the original audio in Atrac3 format, uncomment the --dumpaudio line | ; To dump the original audio in Atrac3 format, uncomment the --dumpaudio line | ||
; For example, with the current setting, it will save them in a " | ; For example, with the current setting, it will save them in a "audio" directory inside the File Serving Directory | ||
;--dumpaudio="host0:audio" | ;--dumpaudio="host0:audio" | ||
; To replace atrac3 audio samples, use this. | |||
--samplereplace="host0:samplereplace" | |||
; To save the in-game textures as the game runs, uncomment the --texsave line | ; To save the in-game textures as the game runs, uncomment the --texsave line | ||
; For example, with the current setting, it will save them in a " | ; For example, with the current setting, it will save them in a "texdump" directory inside the File Serving Directory | ||
;--texsave="host0:texdump" | ;--texsave="host0:texdump" | ||
;--texmissingsave="host0:texdump" | ;--texmissingsave="host0:texdump" | ||
; To replace specific textures as the game runs, uncomment the --texreplace line | ; To replace specific textures as the game runs, uncomment the --texreplace line | ||
; For example, with the current setting, it will load them from the " | ; For example, with the current setting, it will load them from the "texreplace" directory inside the File Serving Directory | ||
--texreplace="host0:texreplace" | --texreplace="host0:texreplace" | ||
; This forces alpha blending to on for replaced textures. (uncomment to enable) | ; This forces alpha blending to on for replaced textures. (uncomment to enable) | ||
; With this we can freely make use of a normal alpha channel on replacement textures | ; With this we can freely make use of a normal alpha channel on replacement textures | ||
--replacementalpha=true | --replacementalpha=true | ||
; Antialiasing mode. SSAA4x looks best, MSAA4x only smooths edges. | ; Antialiasing mode. SSAA4x looks best, MSAA4x only smooths edges. | ||
; Choices: off, SSAA4x, MSAA4x | ; Choices: off, SSAA4x, MSAA4x | ||
--antialias=SSAA4x | --antialias=SSAA4x | ||
; Enable switching between original and replacement textures at runtime using the L3 button on a DS4 or the 'T' key on Windows | ; Enable switching between original and replacement textures at runtime using the L3 button on a DS4 or the 'T' key on Windows | ||
;--texswitch=true | ;--texswitch=true | ||
; Turns on the auto-resampler. Assumes textures in texreplace are at 8x resolution and resamples them at load | ; Turns on the auto-resampler. Assumes textures in texreplace are at 8x resolution and resamples them at load | ||
--autoresampler=true | --autoresampler=true | ||
; Parappa Alpha Hack | |||
--parappaalphahack=true | |||
; Parappa Alpha Hack | |||
--parappaalphahack=true | |||
</pre> | </pre> | ||
==NIDs in HLE== | |||
== NIDs in HLE == | |||
<pre> | <pre> | ||
|HLEInterruptManager| | |HLEInterruptManager| | ||
Line 2,352: | Line 2,224: | ||
* https://forums.ppsspp.org/showthread.php?tid=11961 | * https://forums.ppsspp.org/showthread.php?tid=11961 | ||
* https://github.com/LunaMoo/PPSSPP_workarounds/blob/master/cheat.db | * https://github.com/LunaMoo/PPSSPP_workarounds/blob/master/cheat.db | ||
* https://www.psdevwiki.com/ps4/ | * https://www.psdevwiki.com/ps4/Talk:PSP_Emulator_Compatibility_List#Official_PSPemu_Configuration_Files | ||
* https://www.psdevwiki.com/ps4/PSP_Emulator_Compatibility_List | * https://www.psdevwiki.com/ps4/PSP_Emulator_Compatibility_List | ||