Open RBNXI opened 6 years ago
I think it can be implemented in very-very far future, development is on too early stage for it now. And when time comes, it should be great to cooperate with PPSSPP developers. P.S. There are more game with this function: 1) Assassin's Creed: Bloodlines (PSP) with Assassin's Creed 2 (PS3); 2) Gran Turismo (PSP) with Gran Turismo 5 (PS3); 3) Lair (PS3); 3) Resistance: Retribution (PSP) with Resistance 2 (PS3).
This could be easily done once sys_usbd starts working. I've done some initial work here: https://github.com/RPCS3/rpcs3/commit/12ecba7d4962a142df8ff707d77fa05ef5d7b409 but it's currently non-functional.
sys_usbd
) was merged, needs retesting with a real PSP. Otherwise, I'm not sure if this is in-scope.I have tried connecting a real PSP with the relevant application launched to HMDT in rpcs3 by adding the VID and PID to sys_usbd, and it currently does not work. The game doesn't see the PSP.
rpcs3 itself seems to be picking up the PSP, as I did see the new USB device I added in the log:
S sys_usbd: Found device: "PSP" Type D
I think it depends on the sys_usbd_register_ldd function (which is currently a stub). The relevant part of the log is here:
S {PPU[0x1000000] Thread (main_thread) [0x011209ac]} PPU: LLVM: Loaded module v3-tane-gchiVUbW1b4kPJPTmwJ8QL-000007-skylake.obj
S {PPU[0x1000000] Thread (main_thread) [0x011209ac]} sys_prx: Loaded module: /dev_flash/sys/external/libadec.sprx
S {PPU[0x1000000] Thread (main_thread) [0x011209ac]} PPU: LLVM: Loaded module v3-tane-ZgbphXgac94Wnne0KqYPYA-000007-skylake.obj
S {PPU[0x1000000] Thread (main_thread) [0x011209ac]} sys_prx: Loaded module: /dev_flash/sys/external/libmp3dec.sprx
S {PPU[0x1000000] Thread (main_thread) [0x011209ac]} PPU: LLVM: Loaded module v3-tane-GidnR56pzgun0Z5aqipN0L-000007-skylake.obj
S {PPU[0x1000000] Thread (main_thread) [0x011209ac]} sys_prx: Loaded module: /dev_flash/sys/external/libusbd.sprx
S {PPU[0x1000000] Thread (main_thread) [0x011209ac]} PPU: LLVM: Loaded module v3-tane-JhS48169oUFhvsYTgcMpRp-000007-skylake.obj
S {PPU[0x1000000] Thread (main_thread) [0x011209ac]} sys_prx: Loaded module: /dev_flash/sys/external/libusbpspcm.sprx
U {PPU[0x1000000] Thread (main_thread) [0x013743a4]} sys_usbd TODO: sys_usbd_register_ldd(handle=0x115b, s_product=“cellUsbPspcm”, slen_product=0xc)
The last line there is what appears when the game starts looking for a PSP. No further output until canceled. libusbpspcm.sprx seems interesting.
IIRC sys_usbd_register_ldd
is somewhat similar to registering userspace driver for a device, and @RipleyTom looked into it when implementing usbd initially, but it's another can of worms to implement properly.
As a quick hack you can try comparing the string to PSP(or whatever the string that is passed to sys_usbd_register_ldd is) and if it's equal just call sys_usbd_register_extra_ldd with the vid/pid params for your PSP. It might just work.
Though my guess is it will probably need asynchronous api too which is also unimplemented atm, sorry).
As a quick hack you can try comparing the string to PSP(or whatever the string that is passed to sys_usbd_register_ldd is) and if it's equal just call sys_usbd_register_extra_ldd with the vid/pid params for your PSP. It might just work.
Though my guess is it will probably need asynchronous api too which is also unimplemented atm, sorry).
Tried that, no change in-game. It does call/depend on sys_usbd_attach next, which is also unimplemented.
Would be nice if there was support for Adhoc Party somehow.
Would this still be possible since we are reaching bigger things with RPCS3 and the menu booting?
Project Diva Dreamy Theatre 1 doesn´t support savegames to play without PSP like Project Diva Dreamy Theatre 2nd and Extend, and some functions like song edits and DLC songs of PSP games are not avaliable in PS3 games without a PSP connection so, any posibility to make a PSP emulation that allows you to connect a savegame from PSP and then use it with Project Diva games in RPCS3?