4 ms·
It's a good idea, but the execution is utterly deficient. RetroArch (the main libretro implementation as well as basically the reference implementation) is ove
by noirscape 4y ago
It's a good idea, but the execution is utterly deficient.
RetroArch (the main libretro implementation as well as basically the reference implementation) is overengineered to the point of bordering on unusable. The entire project is riddled with bad design decisions for the sake of extreme modularity, but all this results in is that it's a pain in the neck to configure and customize. Remapping a button in an emulator, a relatively easy task for basically any emulator out there, can result in your entire setup breaking down and because your typical RA install has ~30k files and poor separation of configuration and application components, your only real recourse is to reinstall the entire thing.
Ironically, this specific deficiency also why most emulators nowadays have migrated over to using Stenzeks duckstation UI (which itself is based on Dolphins user interface, just better written); it turned out to be well written enough to be reusable across multiple emulators with fairly little modification, while also leaving developers the room to customize certain elements to fit their emulator (something which libretro is really bad at).
Libretro mostly got where it is because Twinaphex has enough orbiters to keep all the various cores up to date, even if it takes what amounts to a hostile fork to do so.
- matheusmoreira 4y agoI completely agree. Funny that you mentioned button remapping, that's literally my number one problem with RetroArch since I first used it many years ago. The input mapping system is confusing and the RetroPad abstraction is redundant and unnecessary. If it doesn't manage to autoconfigure the controller, you want to remap inputs or you're using a keyboard, you're in for some pain. The GUI doesn't show which actual physical button you're remapping core inputs to, only the RetroPad button. You have to keep in mind two levels of chained button mappings which is harder than it seems. If you remap the RetroPad itself you also remap the entire user interface inputs which leads to stupid situations where the GUI stops working and I have to edit the config file to undo whatever mistake I made that left the inputs in an inconsistent state such as two buttons mapped to the same key. I actually argued with this guy on 4chan over this once many years ago. Why not have cores enumerate their inputs so that the frontend can map directly to them? SNES cores would return the symbols representing the buttons on the SNES pad. Something like this: core.inputs.digital = [↑ ↓ ← → A B X Y L R START SELECT] We'd be able to map buttons and keys directly to those symbols just like every single standalone emulator out there without any of this RetroPad business getting in the way. He basically told me that the RetroPad is perfect, I'm retarded and if I'm autistic enough to want to use a keyboard to play games I deserve to be a second class citizen.
- pezezin 4y agoOh, so that's the reason. I have a 6-button Saturn-style gamepad that I bought dirt cheap to play MAME. A year ago I wanted to play some Megadrive games. I tried RetroArch, and it's absolutely impossible to configure it, it insist that your controller has a SNES-like layout. What good is an emulator if it doesn't show you the real controls of the real machine? Also, I guess the interface is nice if you are playing on a RetroPi or similar connected to a TV, but on a PC with a real mouse is absolutely atrocious. And don't get me started on the million different cores and forks of forks of forks. A few months ago I found Ares (https://ares-emu.net/ https://ares-emu.net/), a fork of bsnes/higan with a pleasant UI and multi-system support, and I couldn't be happier. It is not perfect, but it is so much nicer.
- matheusmoreira 4y agoYeah, it's stupid. It's even more annoying with MAME and arcade games in general because every single system has its own button layout and every single game has its own button conventions. There is no such thing as a standard controller and of course trying to wrap such a diverse ecosyetem into an XInput controller abstraction results in a mess. I always have to remap inputs for nearly every game because I want to have my jump, attack, dash buttons and all the other inputs remain consistent for every game due to muscle memory. The mere existence of the RetroPad makes this nightmarishly hard. It's not like he doesn't know this. I remember him committing features that would let people swap A/B and X/Y buttons precisely to help the arcade players. Who knows what he's done since then. Maybe he fixed it but I wouldn't bet on it. > And don't get me started on the million different cores and forks of forks of forks. Yeah, even the emulator authors themselves are unhappy with that. I guess RetroArch needs those forks because their audience includes people with underpowered devices.