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: | ||
=='''PSPHD'''== | =='''PSPHD'''== | ||
The new ps plus psp emulator has a lot of undiscovered functionalities. It even allows patches directly to the emulated Allegrex cpu. | |||
The | Sadly sony has not made it easy for users to use CLI commands. Since sony mostly uses lua patches for the psp releases, not many cli commands were added. Very few commands have a description to their usage inside of the eboot.bin. Everything else is just guesswork from the scene. The psp emulator has not gained the same popularity as the ps2 emulator because currently, there is an unofficial PPSSPP core in the unofficial retroarch port for the ps4. and as far as the compatibility and performance goes, the retroarch core is second to no one. This emulator may still hold potential, though sadly it does not seem to have support for gamedata installation. and that has led to many games becoming currently unusable. with an official retroarch release coming into ps4's way it seems delving deeper into the PSPHD emulator and the PS1's new psplus emulator is pretty useless. | ||
== Commands == | == Commands == | ||
'''Known functions:''' Require cleanup. | '''Known functions:''' Require cleanup. | ||
<br>The rest of the cli and lua commands can all be found inside of an emu's decrypted '''eboot.bin'''. | |||
<br>The rest of the | === config-title.txt commands === | ||
''General purpose CLI commands, or unknown usage'' | |||
{| 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 !! Values !! Notes !! Usage | ! Command !! Values !! Notes !! Usage | ||
Line 74: | Line 16: | ||
|- | |- | ||
| --notrophies || || Enable/disable trophies|| | | --notrophies || || Enable/disable trophies|| | ||
|- | |- | ||
| --locale || || || | | --locale || || || | ||
Line 85: | Line 25: | ||
| --addon || || || | | --addon || || || | ||
|- | |- | ||
| --host || Sets host directory || --host="/hostapp/" | | --host || || Sets host directory || --host="/hostapp/" | ||
|- | |- | ||
| --loglevel || none, all, warn, info, error, debug, trace || debug logging | | --loglevel || none, all, warn, info, error, debug, trace || debug logging | ||
|- | |- | ||
| --xobuttonmode || oenter, ocancel || Switcher between x and circle button, made specifically for japanese gamers | | --xobuttonmode || oenter, ocancel || Switcher between x and circle button, made specifically for japanese gamers | ||
|- | |- | ||
| --lang || Including but not limited to "en" "jp" "fr" "it" || Language selector || --lang="en" | | --lang || Including but not limited to "en" "jp" "fr" "it" || Language selector || --lang="en" | ||
Line 112: | Line 52: | ||
|- | |- | ||
| --depthscalehack || true?, false? || ||--depthscalehack=true | | --depthscalehack || true?, false? || ||--depthscalehack=true | ||
|- | |||
| --texloadcores || 0, 100 || textures to load || texloadcores=2 | |||
|- | |||
| --smoothlevel || 0, 100 || Mesh smoothing level? || --smoothlevel=0 | |||
|- | |||
| --anisolevel || 0, 100 || Anisotropic filtering level?? || | |||
|- | |- | ||
| --depthscalehack || true?, false? || ||--depthscalehack=true | | --depthscalehack || true?, false? || ||--depthscalehack=true | ||
|- | |- | ||
| --locorocomeshsmooth || true, false || Custom mesh smoothing for loco roco games | | --locorocomeshsmooth || true, false || Custom mesh smoothing for loco roco games|| --locorocomeshsmooth=true | ||
|- | |- | ||
| --locorocomeshsmoothnonindexed || true, false || | | --locorocomeshsmoothnonindexed || true, false || Non-indexed mesh smoothing ||--locorocomeshsmoothnonindexed=true | ||
|- | |- | ||
| --forcenobilinear || true, false || Turn bilinear filtering on/off, setting it to True will fix many graphical glitches in games that use 2D Images ||--forcenobilinear=true | | --forcenobilinear || true, false || Turn bilinear filtering on/off, setting it to True will fix many graphical glitches in games that use 2D Images ||--forcenobilinear=true | ||
Line 123: | Line 69: | ||
| || Game fixes || || | | || Game fixes || || | ||
|- | |- | ||
| --godofwarhack || true, false || | | --godofwarhack || true, false || Seems specifically made for god of war. Managed to help '''God Of War - Ghost Of Sparta''' skip intro freeze. Somehow changes the offsets of the emulated registers || --godofwarhack=true | ||
|-style="background-color:#03fcc2" | |-style="background-color:#03fcc2" | ||
| || No effect / unknown values || || | | || No effect / unknown values || || | ||
|- | |- | ||
| --parappajapanesefonthack || true?, false? || Enables Support For Japanese Fonts ??|| --parappajapanesefonthack=true | | --parappajapanesefonthack || true?, false? || Enables Support For Japanese Fonts ??|| --parappajapanesefonthack=true | ||
Line 150: | Line 90: | ||
|- | |- | ||
|-style="background-color:#7698FF" | |-style="background-color:#7698FF" | ||
| || Speedhacks | | || Speedhacks || || | ||
|- | |- | ||
| --antialias || off || Turning Anti-Alias Off Improves Performance||--antialias=off | | --antialias || off || Turning Anti-Alias Off Improves Performance||--antialias=off | ||
Line 169: | Line 109: | ||
|- | |- | ||
| --texrecent || true || Optimize texture hashes ||--texrecent=true | | --texrecent || true || Optimize texture hashes ||--texrecent=true | ||
|} | |} | ||
Line 225: | Line 132: | ||
===XXXXYYYYY_patches.lua=== | ===XXXXYYYYY_patches.lua=== | ||
Your lua can be placed as '''scripts\XXXXYYYYY_patches.lua''' | |||
<br>'''Requires Cleanup'''. | |||
====Emulator commands==== | ====Emulator commands==== | ||
Line 424: | Line 332: | ||
|GetReg||axObj.GetReg()|| | |GetReg||axObj.GetReg()|| | ||
|-style="background-color:#D7EF54" | |-style="background-color:#D7EF54" | ||
| Memory editing || || Do note that the offsets on PPSSPP are | | Memory editing || || Do note that the offsets on PPSSPP are different than the ones on the PS4 | ||
|- | |- | ||
| ReadMem32 || axObj.ReadMem32() || Read 4 bytes from offset | | ReadMem32 || axObj.ReadMem32() || Read 4 bytes from offset | ||
Line 460: | Line 368: | ||
|} | |} | ||
==== | ====Examples==== | ||
<br>''' | <br>'''''LUA example:''''' | ||
<br>"NPEZ00164" | <br> | ||
<br>Coconut Dodge "NPEZ00164" | |||
<pre> | <pre> | ||
local axObj = getAXObject() | local axObj = getAXObject() | ||
Line 469: | Line 378: | ||
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 490: | Line 385: | ||
[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 | '''An official lua created by sony for Patapon 2''' | ||
<pre> | <pre> | ||
-- Lua 5.3 | -- Lua 5.3 | ||
Line 969: | Line 792: | ||
== Emulators == | == Emulators == | ||
<pre>Every emulator is programmed in a | <pre>Every emulator is programmed in a different way, 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 ( | ! Emulator !! Usage !! API Version !! Similar emulators (Usage) | ||
|- | |- | ||
| Echochrome || The default psp emulator for PSPFPKG tool at the time of writing and the best in terms of compatibility. || ? || ? | | Echochrome || The default psp emulator for PSPFPKG tool at the time of writing and the best in terms of compatibility. || ? || ? | ||
Line 986: | Line 809: | ||
|- | |- | ||
| PaRappa the Rapper || An unofficial emulator developed by sony with very bad compatibility || ? || ? | | PaRappa the Rapper || An unofficial emulator developed by sony with very bad compatibility || ? || ? | ||
|- | |- | ||
|} | |} | ||
==Memory mapping== | ==Memory mapping== | ||
<br>'''Note''': The memory | <br>'''Note''': The memory in PPSSPP is 0x4000 values 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;" | ||
! | ! Offset From !! Offset To !! Name | ||
|- | |- | ||
| | | 0x1008000000 || 0x10887FFFFF || Allegrex memory(?) | ||
|- | |- | ||
|} | |} | ||
== | ==Register map== | ||
<br>Registers | <br>Registers with (?) are untested. | ||
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;" | {| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;" | ||
! Register !! Offset | |||
|- | |- | ||
| | | v0 || 0x200414CB0 | ||
|- | |- | ||
| | | v1 || 0x200414CB4 | ||
|- | |- | ||
| | | a0 || 0x200414CB8 | ||
|- | |- | ||
| | | a1 || 0x200414CBC? | ||
|- | |- | ||
| | | a2 || 0x200414CC0? | ||
|- | |- | ||
| | | a3 || 0x200414CC4? | ||
|- | |- | ||
| | | t0 || 0x200414CC8? | ||
|- | |- | ||
| | | t1 || 0x200414CCC? | ||
|- | |- | ||
| | | t2 || 0x200414CD0? | ||
|- | |- | ||
| | | t3 || 0x200414CD4? | ||
|- | |- | ||
| | | t4 || 0x200414CD8? | ||
|- | |- | ||
| | | t5 || 0x200414CDC? | ||
|- | |- | ||
| | | t6 || 0x200414CE0? | ||
|- | |- | ||
| | | t7 || 0x200414CE4? | ||
|- | |- | ||
| | | s0 || 0x200414CE8? | ||
|- | |- | ||
| | | s1 || 0x200414CEC? | ||
|- | |- | ||
| | | s2 || 0x200414CF0? | ||
|- | |- | ||
| | | s3 || 0x200414CF4? | ||
|- | |- | ||
| | | s4 || 0x200414CF8? | ||
|- | |- | ||
| | | s5 || 0x200414CFC? | ||
|- | |- | ||
| | | s6 || 0x200414D00? | ||
|- | |- | ||
| | | s7 || 0x200414D04? | ||
|- | |- | ||
| | | t8 || 0x200414D08? | ||
|- | |- | ||
| | | t9 || 0x200414D0C? | ||
|- | |- | ||
| | | k0 || 0x200414D10 | ||
|- | |- | ||
| | | k1 || 0x200414D14 | ||
|- | |- | ||
| | | gp || 0x200414D18 | ||
|- | |- | ||
| | | sp || 0x200414D1C | ||
|- | |- | ||
| | | fp || 0x200414D20 | ||
|-style="background-color:#D7EF54" | |||
| ra || 0x200414D24 | |||
|-style="background-color:#7698FF" | |||
| pc || 0x200414D34 | |||
|- | |- | ||
| | | ? || 20B9F3264 | ||
|- | |- | ||
|} | |} | ||
Line 1,185: | Line 896: | ||
! Issue !! Games affected !! Solution !! Description | ! Issue !! Games affected !! Solution !! Description | ||
|- | |- | ||
| - || || || | |||
|- | |||
|- | |- | ||
|} | |} | ||
Line 1,195: | Line 902: | ||
=LUA include files= | =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 | ||
'''ax-gpr-alias.lua''' | '''ax-gpr-alias.lua''' | ||
Line 1,593: | Line 1,165: | ||
│ ├── ax-gpr-alias.lua | │ ├── ax-gpr-alias.lua | ||
│ ├── multiapp.lua | │ ├── multiapp.lua | ||
│ └── pad.lua | │ └── pad.lua | ||
├── scripts | ├── scripts |