Installing 3rd Party Software
Hendryl Barros Godoi
Does anyone knows how to install extra software, like emulators that aren't built in, remote keyboard applications, or anything else, really?
I'm not that great with linux, and since RecalBox doesn't have "apt-get", "yum" ou "dpkg" to install stuff easily, I'm having trouble installing emulators.
I really like that RecalBox is almost made from scratch, instead of built on top of Debian, like RetroPie, but it would be great if we could have some kind of repository or the option to install downloaded packages.
I think you must compile recalbox yourself : https://github.com/recalbox/recalbox-os/wiki/Compilation-&-Modifications-(EN)
As it is built from scratch, everything is "from scratch". Addind new emulators is what we do through every new version to natively embed them in recalbox. And it takes quite some time.
Recalbox is made for being only a retrogaming distro. As it's built from scratch and doesn't rely on Debian, Arch or whichever, we can't use their repositories.
If you want to add emulators by yourself :
- compile them (or eventually find some binaries that would work, but pray for easy dependencies)
- add them to emulationstation
- configure them (but as you noticed, recalbox doesn't require any special configuring BUT your pads in ES. That's real magic dude !)
- play ...
But making recalbox natively embed new emulators is no easy task, that's why it's rather slow (compared to retropie ...)
Hendryl Barros Godoi
Oh, I see.
I've been trying to install Unified Remote, I got the ARM binaries but I don't know where to put them to run from anywhere on the terminal without having to "cd" to it's directory each time, you know? As if it were some system application like "cd" or "ls".
Anyways, I finally got it working by changing the binary's permission to -x and running from it's folder extracted inside "share". It's not installed, but it's working and does the job for now.
I really need to brush up my terminal skills.... haha.
Thank you for your help.
So, the main reason we don't have emulators for some systems yet is because there aren't ARM compatible binaries of the emulator itself or the dependencies?
The main reason it's easy on retropie and complicated on recalbox, is that retropie sits on top of an existing OS. That OS already has the compilers to add anything new, so they just have to script the copiling and tadaaaaa
That's not our case. We use something called buildroot which is something that can cross-build a linux for any system (pi, x86 allwinner etc ... anything almost). To add new softwares (don't expect buildroot to provide emulators haha), we need to write packages telling buildroot how to compile. That's the main difficulty. As long as an emulator/game exists on Linux, we have to write a package telling Buildroot how to cross compile it for our target architectures (so far : pi, xu4, and x86 is on its way). That can be tricky (most packages need some patching on their makefiles), takes days, sometimes weeks to be able to do that.
Next, to make the recalbox magic work (= coniguration-less emulator) you have to understand how the configuration files are generated, how they handle input devices, where they are stored etc ... Sometimes it's quite easy, sometimes it's a real pain in the @$$ (i'm talking about PPSSPP ... took me weeks). From time to time we have to patch the emulator to fit our directory structure.
It takes time, our free time that we spend (and even devote !) to recalbox to make the magic happen