notaz / pcsx_rearmed

ARM optimized PCSX fork
GNU General Public License v2.0
403 stars 212 forks source link

multitap and libretro #43

Closed barbudreadmon closed 1 year ago

barbudreadmon commented 9 years ago

How am i supposed to configure pcsx-rearmed-libretro for 3-4 players ? I didn't see anything about that in core option, no multitap option in retroarch input settings either.

notaz commented 9 years ago

It's currently not supported at all.

barbudreadmon commented 9 years ago

Ok thanks.

barbudreadmon commented 9 years ago

By the way, is this feature on the "roadmap" ?

dankcushions commented 9 years ago

adding a "me to" on this one! would be so ace to get this working :)

barbudreadmon commented 9 years ago

I hope @notaz is giving it some thoughts, there is some awesome multiplayer games on psx.

notaz commented 9 years ago

I don't currently have time to work on PCSX and don't know when/if this is going to change.

alexis-puska commented 8 years ago

PCSX rearmed is based on pcsx reloaded ? it's take a lot of time to change the pad plugins used in pcsx rearmed to pokopom pad plugins ? it can emule two multitap. I don't have read all the code for the pad plugins in pcsx rearmed but if your work is based on pcsx reloaded, i think it was not very long to add the plugins and use it. the must difficult it was to copy the configuration of retroarch/libretro. if i have time the next week i take a look on the code. I see in the psx emulation code, the analog pad is was under 0X73 hexa code the classical pad 0X41 hexa code, and on pokopom plugins the pad is know a playstation code under 0X80 hexa code. After i don't know a the playstation know all pad and the data structure of connected pad... i think that if this feature is released , a lot of people like me, we're very excited ! i try to find solution to play with 4 players in crash team racing with retropie :)

Sorry for my english, i'm french and it can be bad. Alexis

daaa57150 commented 8 years ago

I really hope someone can do that

alexis-puska commented 8 years ago

Hello everyone,

I did it, i made a code for emulate a multitap in the PSX port 1. if you have some controller configured in retroarch, in my case i have 5 controller, the first is in 1A, second 1B, third 1C, fourth 1D, fifth 2. I always use SVN to share my code, but with git i'm a noob. I attached with this message the library lr-pcsx-rearmedMultitap.so you can install this library on your raspberry pi and installed it as a new emulator. For game with multitap and multiplayer use this library, in no multiplayer game use notaz library or the library compile in the retropie distribution.

I search how to commit this code in a new branch, maybe here if notaz can create one for this project.

Alexis.

PS : i'm french, sorry if my english is not very well.

libretroMultitap.so.zip

daaa57150 commented 8 years ago

Wow thanks man, I have no idea how to install this but I'm sure this will be integrated in retropie/recalbox (it should).

alexis-puska commented 8 years ago

Hi, if i want that is integrated in future retropie recall box, i need to commit the source code. What is you't system ? i have retropie . To install it : copy the library in /opt/retropie/libretrocores/lr-pcsx-rearmed/

edit the psx config files emulator in config/psx/emulators.cfg

it's look like this :

lr-pcsx-rearmed="/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-pcsx-rearmed/libretro.so --config /opt/retropie/configs/psx/retroarch.cfg %ROM%" lr-pcsx-rearmed-multitap="/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-pcsx-rearmed/libretroMultitap.so --config /opt/retropie/configs/psx/retroarch.cfg %ROM%" default="lr-pcsx-rearmed-multitap"

Relaunch emulation station and test it :-)

daaa57150 commented 8 years ago

I have recalbox but it should be approximately the same thing I guess

dankcushions commented 8 years ago

@alexis-puska good work! this is what you need to do: https://guides.github.com/activities/forking/

alexis-puska commented 8 years ago

I look it tomorrow thank's for the link. it's late in france, i go sleeping ;). i hope that i will succed to create a new branch with this code.

barbudreadmon commented 8 years ago

Hi ! Did you change anything outside libretro.c ?

alexis-puska commented 8 years ago

Yes a few class inside pcsx rearmed. Dankcushions told me about an option that i can create specifically for pcsx rearmed, like the multitap option in snes emulator. i think it's a good way and we can have one project. i look for it in the retroarch source code in the next week-end, i have no time before.

currently we need to compile 2 different library and switch between at launch of a game with emulation station/libretro. if i passed an option like snes multitap for a specific game i merge the two branch and we can have 2 controller (1 on each port like the code of notaz/libretro) and i have the option enabled for the game, i build the multitap in code. it's possible and i will made it, but later ;)

dankcushions commented 8 years ago

This is working now in the libretro fork: https://github.com/libretro/pcsx_rearmed/pull/39

I'd like to get this merged into the main repo for completeness, but I'm unsure how best to do it. This already seems to have libretro support, but it also has its own UI, so would a merge need to support both of these?

fonkdoctor commented 8 years ago

Hi players :) alexis-puska, je suis désolé de poser la question, mais j'ai vraiment cherché mais pas trouvé la réponse :( Pouvez vous m'indiquer dans quel repertoire faire les modifications pour bénéficier de ce support multitap sur psx svp ? j'ai bien l'URL de la branche en question https://github.com/libretro/pcsx_rearmed/pull/39 mais je ne sais pas où copier ces fichiers... Je suis sur recalbox.

Also dankcushions, when you say "it's recommended to turn game_specific_options = "true", and create game option files for specific multiplayer games." what file do we need to modify, and what kind of game option files do we need to create ? And where please ? (sorry for the noobie question ^^)

Thanks a lot guys for this awesome work you did, and long live to the retro gaming !!!!!!!! :)

alexis-puska commented 8 years ago

hi, Sur le wiki de retropie : https://github.com/retropie/retropie-setup/wiki/Playstation-1 tu as toutes les informations pour pouvoir configurer l'emulateur est créer un fichier specific par jeu.

Multitap (3-8 player)

The latest version of lr-pcsx-rearmed has the ability to emulate up to two Multitaps, allowing 3-8 player support in games that permit it. It does this via core options. However, just as with the original hardware, many games do not support the multitap and will not recognise any inputs with it turned on, so it is recommended to only enable multitaps for games that support it, via the 'Game Specific Options' retroarch functionality which allows you to create core options files for specific games. To enable this, use the Configuration Editor > Advanced Configuration > Configure Libretro options > psx/retroarch.cfg > Set game_specific_options to true.

Alternatively, you can manually edit retroarch.cfg in:

/opt/retropie/configs/psx/ The option is:

game_specific_options = "true" Then, within a multiplayer game, load up the Retroarch menu via the menu hotkey combination (select & X/Triangle, by default), go to Quick Menu > Options > Find the Multitap 1 and Multitap 2 options and turn them on, as appropriate. Then scroll to the top, and choose Create game options file. Once this is completed, restart the game, and multiplayer options should become available.

fonkdoctor commented 8 years ago

Hello, Merci alexis-puska pour ta réponse, c'est vraiment cool et très clair :) Désolé, apparemment je n'avais pas assez bien cherché car pas trouvé la doc PSX :)

Juste une chose pour être ben sur d'avoir tout compris : Dois je mettre à jour quelque chose sur ma recalbox (je tourne sur la derniere version : recalboxOS 4.0.0-beta4) avant de faire mes configs, où la version que j'ai gère déjà le multitap ?

Merci et une très bonne journée ! :)

alexis-puska commented 8 years ago

J'utilise retropie, qui est une distribution qui est quasiment l'identique de recalbox. Sous retropie on a possibilité de réinstaller un émulateur via un menu pour pouvoir le mettre a jour depuis les sources, renseigne toi pour voir si il y a cette possibilité comme ça tu aura la dernière mise a jour de pcsx_rearmed. au dernière nouvelle quand j'avais signalé à l'équipe de recalbox que l’émulateur avait maintenant le multitap, la version 4.0 était geler et prête à être mis en ligne donc je ne pense pas que cela soir sur cette version

fonkdoctor commented 8 years ago

Oki, parfait ! Il faut donc que je trouve le moyen de mettre à jour l'émulateur pcsx_rearmed de la recalbox avec ces sources : https://github.com/libretro/pcsx_rearmed/pull/39 avant de pouvoir gérer mes config. Très bien :)

Si quelqu'un à déjà effectué cette manip sur recalbox, je suis preneur ^^ Je vais essayer de le faire de mon coté asap, dans tous les cas je partagerai mon expérience avec vous, si ça peut aider quelqu'un sur recalbox c'est cool.

Merci beaucoup @alexis-puska pour ton aide ! @++, bonne journée et vive le Rétrogaming !!!!!!!

rockaddicted commented 8 years ago

Hello merci @alexis-puska & @dankcushions pour l'ajout de cette feature :wink: et non pas de mise à jour de core dans la 4.0.0 de recalbox, celle ci étant gelée, il faudra attendre la 4.1 pour voir cette update dispo upstream dans la distribution. Tu peux néanmoins, prendre un binaire pré-compilé (genre via le buildbot de libretro) http://buildbot.libretro.com/nightly/linux/armhf/latest/pcsx_rearmed_libretro.so.zip Puis remplacer le core actuel, par celui-ci. Les cores se trouvent dans /usr/lib/libretro/.

Le système étant par défaut en read-only, tu devra préalablement le remonter avec les droits d'écritures en utilisant cette commande : mount -o remount, rw /

Si tu as besoin d'aide, n'hésites pas à venir nous voir sur notre irc ou forum, ce n'est pas vraiment la place pour faire du support recalbox ;)

alexis-puska commented 8 years ago

Avec le dernier commit qui a été merger hier en après midi, il y a aussi l'ajout de la vibration sur port 1 et port 2 quand il n'y a pas de multitap, ca fonctionne avec des manettes ps3 en bluetooth et usb si les pilotes pour manettes ps3 sont installé ;)

fonkdoctor commented 8 years ago

Un seul mot : Impeccable !!! Merci à tous :)

@rockaddicted : Merci beaucoup pour toutes ces infos :) Pas de probleme, je viendrai sur le forum pour mes questions recalbox ;)

Bonne journée à tous !

alexis-puska commented 8 years ago

J'imagine que ça promet de belle soirée en perspective le Multitap :) CTR, CrashBash, micromachine V8, speed freack, bomberman...

mrbouny commented 7 years ago

Bonjour @alexis-puska , merci pour ton travail. J'ai modifié le fichier emulateur de la psx facilment mais je galère pour copier ton fichier libretroMultitap.so dans le dossier /opt/retropie/libretrocores/lr-pcsx-rearmed/ . Je me prends un Permission Denied avec Win SCP et la copie ne se fait pas. Peux-tu m'aider ?

alexis-puska commented 7 years ago

Tu dois être sur retropie, normalement si tu met à jour l'emulateur via le script de retropie, toute les modifications sont présente dans la dernière version donc plus besoin de compiler à la main et modifier le fichier librairie ;)

mrbouny commented 7 years ago

Ah bon ?! Bizarre. J'ai quand même réussi à faire marcher le multitap en copiant le libretromultitap.so dans le fichier des roms psx et ai changé l'adresse ds emulators.cfg. Peu orthodoxe mais ça fonctionne :-) lr-pcsx-rearmed = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-pcsx-rearmed/libretro.so --config /opt/retropie/configs/psx/retroarch.cfg %ROM%" lr-pcsx-rearmed-multitap="/opt/retropie/emulators/retroarch/bin/retroarch -L /home/pi/RetroPie/roms/psx/libretroMultitap.so --config /opt/retropie/configs/psx/retroarch.cfg %ROM%" default="lr-pcsx-rearmed-multitap"

notaz commented 1 year ago

The multitap code has since been merged and is reported to work. Closing.