Hello! I’m working on a wonderful Pi project and so far I’m having a blast. Plugging everything in, learning some commands, it’s all been such a fun experience so far.
I am a bit overloaded with information, however, and would like to know what the difference is between Retropie, Emulationstation, and Retroarch. There are plenty of setup guides and tutorials for these, but they get thrown around so much and jump right in with instructions that leaves me wondering what exactly I’m doing. I get it, the end result is a fun retro game emulator. But for the sake of learning, I’d love some help identifying some of these important terms. You guys are a bunch of braniacs, let me hear what you’ve learned! Thank you 🙂
Retroarch: an emulator front end for many emulators (in the form of cores) retroarch makes controller configurations easier to manage and adds support for shaders, hotkeys, savestates, etc. (http://www.libretro.com)
It is quite simple really (and now I really hope I don’t get it wrong!):
Retropie: This is the actual combination of RetroArch/EmulationStation/Scripts/Emulators/etc that work on a Raspberry Pi. This includes the emulators that Retroarch provides, EmulationStation and even emulators that are not party or RetroArch/LibRetro (the lr you see mentioned a lot).
EmulatioStation: This is the “front end” as people call it. Which is the graphical menu you see when you start everything up. Makes it all a lot nicer and easier to use instead of typing in commands to load ROMs.
Retroarch: This is a distribution and a more “technical front end” which you see when you press the SELECT and X key on your joypad for example. This allows for for greater configuration than the normal emulator settings. Allowing one to tweak controls, settings, cheats and much per emulator of even PER GAME! Wooohooo!
Libretro: Is what they they call an API. Think of it as the base ingredients used for every dish, the dishes being the emulators. It gives developers a common ground which takes away a lot of their work by providing default video outputs and control options, sound options and so much more so the developers for the emulators can focus on getting their emulators working the best they can and not having to worry about all the “standard stuff”.
I hope this is a bit clear and that I didn’t make a mistake in there, otherwise feel free to correct me!
Excellent replies, thanks! It’s starting to make sense now, seeing a big project broken down into pieces like that. It’s like explaining to your grandparents that Windows and Internet Explorer are not the same thing… lol