Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PSP connection emulation #4119

Open
RBNXI opened this issue Jan 27, 2018 · 9 comments
Open

PSP connection emulation #4119

RBNXI opened this issue Jan 27, 2018 · 9 comments

Comments

@RBNXI
Copy link

RBNXI commented Jan 27, 2018

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?

@TotalCaesar659
Copy link
Contributor

TotalCaesar659 commented Jan 28, 2018

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);
  4. Resistance: Retribution (PSP) with Resistance 2 (PS3).

@hcorion
Copy link
Member

hcorion commented Jan 28, 2018

This could be easily done once sys_usbd starts working. I've done some initial work here: 12ecba7 but it's currently non-functional.

@dio-gh
Copy link
Contributor

dio-gh commented Oct 8, 2019

#5688 (sys_usbd) was merged, needs retesting with a real PSP. Otherwise, I'm not sure if this is in-scope.

@xperia64
Copy link
Contributor

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.

@13xforever
Copy link
Contributor

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.

@RipleyTom
Copy link
Contributor

RipleyTom commented Jan 16, 2020

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).

@xperia64
Copy link
Contributor

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.

@ghost
Copy link

ghost commented Nov 17, 2021

Would be nice if there was support for Adhoc Party somehow.

@ghost
Copy link

ghost commented Feb 16, 2023

Would this still be possible since we are reaching bigger things with RPCS3 and the menu booting?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants