Is there a "Getting Started" for implementing a front end for libretro

Hey guys,

I’m not happy with all the front ends out there made to run in arcade cabinets. So I thought, well, you’re a programmer, why not give it a try and make one yourself. So I wanna play around with libretro and see how far I come building a frontend for arcade cabinets. As a web developer I see myself doing it with either react-native for Android or react running on GitHub’s electron. However, I find it really hard to get started. I cannot seem to find documentation on APIs or basically all the stuff to get started writing a front end for libretro. Specifically I am looking for the emscripten bindings but any pointer to where to start reading and find stuff would be helpful. Can anyone help me?

Thanks Lukas

Too bad :confused:

But to get things straight for myself. The way I understand this, libretro ist the library that is an adapter and a decorator to all kinds of emulators and a front end is a program that makes use of libretro’s API to run these emulators (with roms). So RetroArch is a front end that does exactly that and is basically kind of the only front end there is. So if I want to write a cool program where I can navigate and select games in a nice manner and run emulators with it I would also have to write a front end and no one really did that by now. If I am not mistaken, what are programs like emulationstation or ArcadeFE that say they run on RetroArch while to my understanding they should be saying they are running LibRetro as an alternative to RetroArch. Much confuse.

Or to put it in a nutshell: If I want to write an program as described above, selecting games, running emulators, would I be writing a front end or would I run on RetroArch and if the letter was the case where would I start then?

:slight_smile:

There are a handful of other libretro frontends similar to RetroArch, including Minir and ArcanFE. A libretro frontend is pretty low-level, as radius mentioned, and if you just want to be able to launch games from a nice interface you designed, you’re probably best off letting RetroArch handle the low-level stuff and writing your own launcher for it. That is what EmulationStation does.

Ah ok yeah, so that is exactly what i want, doing something like emulationstation. I understand the term frontend now. Ok so if I want to do something like emulationstation, where would i start in terms of documentation?

You don’t really need much/any documentation for that, since you’ll just be calling RetroArch from a command line. The switches you need to know are

-c /path/to/desired.cfg << this will let you specify a config file at game launch; useful for per-core settings -L /path/to/desired/core.so (or *.dll or dylib or whatever) << this lets you specify a desired core at launch time; this is how launchers like ES tell RA which core to use. -f << start in fullscreen (there’s also a config setting for this) Other than that, you just need to pass file locations and RetroArch will handle the rest.

well, all you need really is how to launch retroarch via the commandline: https://github.com/libretro/RetroArch/wiki/Using-the-command-line that’s what emulationstation, etc, do. then your frontend can do whatever you want.

hivemind^^

Ah ok cool. Thank you guys.

Hey guys. I think I found the best front end on the market. It’s called LaunchBox. It allows you to customize your game collection to however you see fit. Best of all, it’s free and incredibly easy to setup. It’s under active development full time, and Jason Carr, the developer, listens to feedback from his audience as he develops live. Check out their YouTube channel. They give great tutorials on how to sync your collection with all RetroArch cores. It’s pretty awesome.

Here’s a link to their YouTube channel: https://www.youtube.com/channel/UCSIht6UXIEXIgz4eXAEShxA