Editing Talk:PSP Emulation

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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 175: Line 175:
0x04100010 - Get PGD data size
0x04100010 - Get PGD data size
</pre>
</pre>
== TRANSLATOR_PATCH ==
What does the TRANSLATOR_PATCH is responsible for? Patching the PSP RAM, maybe?
* Yeah, looks like it. Patch is done right before entering recompiler/emitter, right before mips code is read. Worth to add that patch seems to affect only code that gets recompiled, which mean no patches to data, only to code(?). --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 17:45, 4 March 2023 (CET)
** Looking for ways to fix the shitty Patapon 3. Patch (for PAL version) skips the sceIo functions to avoid loading the DATAMS.BND file from ms0:/ during the bootup. Of course it does not work on the PS3, in contrary to the PPSSPP. I do not have a time and wish to play with the EBOOT file encryption/decryption. --[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 20:58, 10 March 2023 (CET)
TRANSLATOR_PATCH[2] = { 08844B7C 08844B80 10000036 00A08821 }
Looks like the pattern is wrong. I have tried various combinations with no luck for Final Fantasy Tactics. Patch for ULES version is ''0x883E050 00001021''.--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 20:42, 15 March 2023 (CET)
* It seems like emu expect single patch to be 0x14 in size? It's little bit hard to read that code because emu read it first, then translate to config nr, and send pemucorelib, that one interpret it, and send to translator (jit) elf using 0xB3900000 mapped mem. In the end pemucorelib also have built in jit which apparently don't use that patch? No idea really, i did some work on psp emu, but only for simple configs, and recompilers/emitters. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 11:17, 16 March 2023 (CET)
** What is the proper character set for the config file? ANSI or UTF-8?--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 11:00, 19 March 2023 (CET)
*** Not sure if that matter, emu read it using sscanf. So both should be supported, you can check premade configs from psp launchers. Emu read it as (notice spaces):
TRANSLATOR_PATCH[%lld] = {
When string match config decimal value is read. This is only config that read that value as 32 bits (lwz addr + 4, other cfgs do ld addr), which probably doesn't matter for us anyway. That value is used as a multiplier for 0x14 size for calloc. So it dictates how many patches are there (and one "config" is expected to be 0x14 size by calloc). Returned pointer is saved, and pemucorelib gets notified about config (pointer is not send yet, just count as an argument).  From that point next chunks are read by sscanf with just %08X as format. So it expect just 8 valid hex characters (4 bytes). What's important i can't find place where it expect spaces. So apparently value should be passed as 128 (160?) bit. Also there seems to be no space after "{" and, before "}" Next thing is that first two values after count are and with 0xFFFFFFFC, so that will be most likely address of some kind (MIPS cpu most likely). And that how it looks in psp emu file. All that is sent to PEmuCoreLib. Which process it, and send by 0xB39000XX to translator (JIT) file. So valid config seems to be for eg:
TRANSLATOR_PATCH[1] = {08844B7C08844B801000003600A08821}
--[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 21:19, 19 March 2023 (CET)
* I am testing the Final Fantasy Tactics instead, since the patch is confirmed to fix (I would personally nop instead) the "Memory Stick not found" error. But it does not work at all, unfortunately. I made two different configs and they do nothing:
TRANSLATOR_PATCH[1] = {0883E0500883E0540000102100001021}
TRANSLATOR_PATCH[1] = {0883E04C0883E0542784807C0000102100001021}
--[[User:Agrippa|Agrippa]] ([[User talk:Agrippa|talk]]) 18:46, 20 March 2023 (CET)
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)

Templates used on this page: