Guest - Testers are needed for the reworked CDateTime core component. See... https://forum.kodi.tv/showthread.php?tid=378981 (September 29) x
  • 1
  • 8
  • 9
  • 10(current)
  • 11
  • 12
  • 13
Player Manager
(2021-10-20, 05:28)garbear Wrote: OK, so change topology.xml to have 8 primary ports with the multiple gamepad types. Would we have to force the multitap setting and/or hide it from the user?

I'm not sure if I understand the question, but no, we can't force the multitap setting because some games would not work with enabled multitaps. Also the settings.xml is generated from upstream source code and we don't want to manually change it, right?

See here: https://github.com/libretro/pcsx_rearmed/pull/475

The proposed solution is a temporary workaround for this specific core until they definitely resolve this in upstream. So basically we would have 8 ports all set to "standard" by default and multitaps disabled in the advanced options. This way we get out of box working 2 players and a possibility to enable multitap in the options to get more players working for "advanced users".
Reply
According to this it seems that also changing controller type on ports 3-8 requires restart of the core to take effect:
https://github.com/libretro/pcsx_rearmed...82b951620b

But I don't think there is a better way of doing this until upstream PCSX core is updated to use the standard libretro input topology. It seems that Retroarch can't do it better for this core either.
Reply
So basically have a topology.xml file like this?

Image


<?xml version="1.0" encoding="UTF-8"?>
<logicaltopology>
<port type="controller" id="1">
<accepts controller="game.controller.ps.dualanalog"/>
<accepts controller="game.controller.ps.dualshock"/>
<accepts controller="game.controller.ps.gamepad"/>
<accepts controller="game.controller.ps.guncon.western"/>
<accepts controller="game.controller.ps.guncon.japan"/>
<accepts controller="game.controller.ps.mouse"/>
</port>
<port type="controller" id="2">
<accepts controller="game.controller.ps.dualanalog"/>
<accepts controller="game.controller.ps.dualshock"/>
<accepts controller="game.controller.ps.gamepad"/>
<accepts controller="game.controller.ps.guncon.western"/>
<accepts controller="game.controller.ps.guncon.japan"/>
<accepts controller="game.controller.ps.mouse"/>
</port>
<port type="controller" id="3">
<accepts controller="game.controller.ps.dualanalog"/>
<accepts controller="game.controller.ps.dualshock"/>
<accepts controller="game.controller.ps.gamepad"/>
<accepts controller="game.controller.ps.guncon.western"/>
<accepts controller="game.controller.ps.guncon.japan"/>
<accepts controller="game.controller.ps.mouse"/>
</port>
<port type="controller" id="4">
<accepts controller="game.controller.ps.dualanalog"/>
<accepts controller="game.controller.ps.dualshock"/>
<accepts controller="game.controller.ps.gamepad"/>
<accepts controller="game.controller.ps.guncon.western"/>
<accepts controller="game.controller.ps.guncon.japan"/>
<accepts controller="game.controller.ps.mouse"/>
</port>
<port type="controller" id="5">
<accepts controller="game.controller.ps.dualanalog"/>
<accepts controller="game.controller.ps.dualshock"/>
<accepts controller="game.controller.ps.gamepad"/>
<accepts controller="game.controller.ps.guncon.western"/>
<accepts controller="game.controller.ps.guncon.japan"/>
<accepts controller="game.controller.ps.mouse"/>
</port>
<port type="controller" id="6">
<accepts controller="game.controller.ps.dualanalog"/>
<accepts controller="game.controller.ps.dualshock"/>
<accepts controller="game.controller.ps.gamepad"/>
<accepts controller="game.controller.ps.guncon.western"/>
<accepts controller="game.controller.ps.guncon.japan"/>
<accepts controller="game.controller.ps.mouse"/>
</port>
<port type="controller" id="7">
<accepts controller="game.controller.ps.dualanalog"/>
<accepts controller="game.controller.ps.dualshock"/>
<accepts controller="game.controller.ps.gamepad"/>
<accepts controller="game.controller.ps.guncon.western"/>
<accepts controller="game.controller.ps.guncon.japan"/>
<accepts controller="game.controller.ps.mouse"/>
</port>
<port type="controller" id="8">
<accepts controller="game.controller.ps.dualanalog"/>
<accepts controller="game.controller.ps.dualshock"/>
<accepts controller="game.controller.ps.gamepad"/>
<accepts controller="game.controller.ps.guncon.western"/>
<accepts controller="game.controller.ps.guncon.japan"/>
<accepts controller="game.controller.ps.mouse"/>
</port>
</logicaltopology>
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
(2021-10-20, 10:08)garbear Wrote: So basically have a topology.xml file like this?

Yes, that is exactly what I meant. I haven't tested it yet, is it working as expected?

P.S. Maybe except I would move the ps.gamepad to the first position on the list so it become the default. Are there any games known NOT to work with ps.gamepad? Because I know there are games which don't work with ps.dualanalog nor ps.dualshock (have no input at all), so I'd prefer ps.gamepad as the default for the best out-of-box experience (e.g. the Tomb Rider series).
Reply
(2021-10-20, 14:00)KOPRajs Wrote:
(2021-10-20, 10:08)garbear Wrote: So basically have a topology.xml file like this?

Yes, that is exactly what I meant. I haven't tested it yet, is it working as expected?

I'll get you a test build
(2021-10-20, 14:00)KOPRajs Wrote: P.S. Maybe except I would move the ps.gamepad to the first position on the list so it become the default. Are there any games known NOT to work with ps.gamepad? Because I know there are games which don't work with ps.dualanalog nor ps.dualshock (have no input at all), so I'd prefer ps.gamepad as the default for the best out-of-box experience (e.g. the Tomb Rider series).

Our mantra is wrong input is better than no input. Analog sticks don't appear on ps.gamepad, so I assumed ps.dualanalog would give more input coverage, but if ps.dualanalog causes no input in games then yes the default should be ps.gamepad.
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
(2021-10-21, 00:42)garbear Wrote: Our mantra is wrong input is better than no input. Analog sticks don't appear on ps.gamepad, so I assumed ps.dualanalog would give more input coverage, but if ps.dualanalog causes no input in games then yes the default should be ps.gamepad.

I believe that this is another shortcoming of the PCSX core. You can definitely play Tomb Rider games with DualShock controller on the real hardware but in PCSX you'll get no input with any other controller but ps.gamepad. I expect that there are more games like that but I can't confirm anything but the Tomb Rider series.

EDIT: Also I might be wrong, but since the original PSX only had Gamepad without analog sticks, I would expect every PSX game to be playable without analog sticks.
Reply
@KOPRajs Here's a build to try: https://github.com/garbear/xbmc/releases...2-20211022 . I released a new version of PCSX with the flat topology, which should be on the mirrors now.
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
I added persistence to the Port Setup dialog. Also rebased on 19.3. Here's the new round of builds: https://github.com/garbear/xbmc/releases...3-20211024

Current dialog:

Image
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
So we decided to use a flat topology for the PSX cores, but I also got SNES Multitaps working for the Snes9x cores. Tested with Super Bomberman 2, I was able to connect a Multitap to the second port and do 4-player multiplayer.

New round of builds with Multitap fixes is up: https://github.com/garbear/xbmc/releases...3-20211027

Track the Multitap fixes: https://github.com/xbmc/xbmc/pull/20408 , https://github.com/kodi-game/game.libretro/pull/79
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
@garbear Would love it if you could get the analogue joysticks and button mappings working in Kodi on Hardkernel's newer ODROID-GO Super / OGS  (and the older ODROID-GO Advance / OGA) devices!

Please consider it if you have the time and any interest in ARM-based portable handheld game consoles running Linux, please see -> https://forum.kodi.tv/showthread.php?tid=357351

PS: Mentioned further down in that thread is Hardkernel willingness to sponsor Team Kodi devs with OGS (as well as OGA) hardware samples -> https://forum.odroid.com/viewtopic.php?f...0&p=329999

 
(2021-06-14, 12:36)RockerC Wrote: Hi Team Kodi developers working on Kodi's Game development (RetroPlayer, Libretro cores/API, and Peripheral API, etc. in Kodi-Game)!

FYI, I posted a question in Hardkernel's ODROID forum asking them if they would be interested in sponsoring you Kodi's RetroPlayer developers with OGS (ODROID-Go Super) hardware:

https://forum.odroid.com/viewtopic.php?f...0&p=329999

If you read the answer from one of the site admin who works for Hardkernel you find they are willing to send hardware samples to those of you interested contact them with a "brief porting plan".

Suggest that you do if you have time and interest as even if OGS (ODROID-Go Super) does not offer an HD display it would still make a great portable Kodi media player and gaming device.

As I understand, the main functions missing to add initial support for the OGS handheld gaming console is support for its joystick and support for an 854 x 480 pixel resolution 16:9 display.

Hope that some of Team Kodi's developers of gaming-related features and functions finds this interesting and will consider contacting Hardkernel about getting you OGS hardware samples.
Reply
It's done: https://github.com/xbmc/xbmc/pull/20505

Image
Image
Image
Image

Test builds will be uploaded soon!
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
Test builds are now available: https://github.com/garbear/xbmc/releases
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
I've returned to the project with another idea for a player manager:



Image



The top list is the list of players. The "Add player" button lets you clone input, so that a single controller can control multiple ports. In the future, it can also be used to add AI bots.

Underneath the players is a view of the ports from the Port Setup dialog. The port list is specific to the controller that is focused. Every controller has a different "view" of the system, and the port list updates as you scroll through player icons.

When a player connects to a port, their icon is shown on the left next to the port.

A player can connect to multiple ports. This way, multiple ports can be controlled by a single player. E.g. a single keyboard controls two in-game ports.

In the lower right is a place to map the controller defaults specific to that player. The ports in the port list are individually mapped, so the defaults button lets you set a default for all unmapped ports.
RetroPlayer releases: https://github.com/garbear/xbmc/releases

Donations: eigendude.eth
Reply
I've just done a little experiment on myself by looking at the picture alone without reading the description first and trying to figure out how to use it. It seems to be too complicated even for an experienced user, sorry.

I would suggest to use a more classical interface for assigning players to ports like this:
Image

- The list of available ports would be fetched from the current port setup and only assignable ports would be displayed (no need to show multitaps on this screen).
- For every configured controller there would be a single line (maybe Controller 1 would be a better label then Player 1?).
- You can attach more controllers to the same port as well.
- You can add players (e.g. Netplay or even bots?).
- The mockup is missing the first or last column which would be for unassigned controllers.
Reply
Version 2:
Image

More ideas:
- You can assign all players and add new players by the default Kodi controller (remote control, keyboard etc.) by using the blue selection (up and down selects the controller and left and right assigns it to the emulator port). So you can assign all players from one controller.
- Or you can assign the current controller by pressing left and right on the controller itself (even if another line is currently selected), so you can see which controller you actually holds in your hands (players assign themselves simultaneously like in EA games).
Reply
  • 1
  • 8
  • 9
  • 10(current)
  • 11
  • 12
  • 13

Logout Mark Read Team Forum Stats Members Help
Player Manager1