libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.17k stars 1.82k forks source link

Remote RetroPad reliability #14334

Open LibretroAdmin opened 2 years ago

LibretroAdmin commented 2 years ago

Hi there @Cthulhu-throwaway , I was wondering how reliable the Remote Retropad core is as it is?

https://www.youtube.com/watch?v=bzom8OZ-HAk

Does it work reliably or can it just stop working after loading and unloading several cores?

We might want to go over some of these netplay/network-coding adjacent features in RetroArch in preparation for a new stable.

ghost commented 2 years ago

I don't know, I've never used it and probably will never have a use for it. It has nothing to do with netplay, and other than using the network to send input data, it also has nothing in common with netplay.

I've not written any code for it and I don't intend to either. The other networking features were/are pretty buggy/leaking memory (netplay, network commands, etc), so there is a decent chance the same applies to Remote Retropad aswell.

LibretroAdmin commented 2 years ago

You think we should get rid of it and aim for a reimplementation at some point?

ghost commented 2 years ago

I am not the correct person to ask that, like I said, I've never used it.

I'll never mess with the remote retropad code though; I am not part of its userbase, similarly, I've decided not to refactor network commands. Those who need either of them, should be the ones maintaining them.

hizzlekizzle commented 2 years ago

As far as I've seen, it should work fine, though entering IP addresses via core options isn't a fun time. However, the main use I know of for that core is just as a button test, so even if you ditch the network capabilities, I think it has a lot of value there and could just be renamed to "retropad button test" or something like that.

ghost commented 2 years ago

Are analog inputs supported? To do list says it doesn't, but code says it does: https://github.com/libretro/RetroArch/blob/f5e5a1b2017d16fd0a9305494d30bb3f3b6e160c/cores/libretro-net-retropad/net_retropad_core.c#L2-L3 https://github.com/libretro/RetroArch/blob/f5e5a1b2017d16fd0a9305494d30bb3f3b6e160c/cores/libretro-net-retropad/net_retropad_core.c#L98-L111

EDIT: Okay, so it does support sending analog inputs, but it won't show those inputs being pressed on the screen, which means it's a mediocre button test.

ghost commented 2 years ago

The remote retropad code is also not C89 compliant (has C99 syntax in it). See the struct initialization above.

MrHuu commented 2 years ago

Just using this as a button test doesn't really justify this core. It allows users (read: me) to use their handhelds as a controller for any network enabled retroarch device, which is a pretty nice feature.

I'm not sure which platforms have this core available currently, but it does make sense to have it included with at least the handhelds.

While i did not extensively test this core, i haven't ran into any issues using it (after enabling on the 3DS platform).

ghost commented 2 years ago

I'm not sure which platforms have this core available currently, but it does make sense to have it included with at least the handhelds.