Adding New Emulators

Is there any way to add new emulators? Some break on certain roms.

Short answer, no.
Long answer, yes, add them and compile the image from source.

And if I have no idea how to do that, is there a place I can download them already compiled?

I think you misunderstood my reply, not the source for the emulators I mean add them to the source of the EmuELEC and compile the whole image.

Adding pre-compiled emulators like that is not supported, of course it is possible but not something I want to explain how to do, being as its hard to do if you know nothing about developing/programming.

Hello,
I’ve just installed emuelec 4.2 on my x88king (922x). I really would like to add bsnes core to the distribution considering that the cou power of my android box should be more than enough for running this core full-speed ( it does on my 1.8mhz overclocked pi4).
I already red the instructions on how to compile emuelec and I’m used to compile my retroarch cores on retroarch amd64, but i never cross compiled them. May i get some hints (or links) on how to add them to emuelec source?
Right now, i just want to add bsnes (the original one) and recompile yabasanshiro because it crashes after the sega Saturn logo on my .chd roms (that work on other platforms).
Thank you very much.

Just FYI, Bsnes does not run that well even on S922x.

As for your question. You can compile the core if you have a package.mk (there are many examples in the packages/sx05re folder in source) and then copy the resulting .so to the Cores share via SAMBA (or /tmp/cores if you are using sftp or similar).

For instructions on how to compile the toolchain and any package follow this: DEV: How to compile toolchain only · EmuELEC/EmuELEC Wiki · GitHub

I’d have 0 idea how to even begin any of that even with a guide. Oh well I guess…

No disrespect, but why do you ask about recompiling stuff if you are not willing to follow the instructions?

Where did I say I wasn’t willing to follow the directions? I said I’d have no idea how to do any of that given my knowledge base. That entire guide is greek to me. I’ve got a very basic understanding of how to do things within this space, but this is beyond me. I asked because I wanted to know the process and see if I could handle it. Not to ask for it and then say “forget it” because I’m not willing to follow directions. No disrespect, but what about my response made you think I wasn’t interested in what I asked for?

1 Like

Thank you for the answer, the link is what i was looking for. Unfortunately, i’m still stuck at the toolchain compilation… I’m on ubuntu 20.04 amd64 trying to cross-compile EmuELEC cores: i’ve installed all the requested packages but for sure i missed a step.
Once ./configure checks the C coompiler it breaks:

C-Amlogic-ng.aarch64-4.2/toolchain/var --disable-static --enable-shared
configure: WARNING: unrecognized options: --disable-static, --enable-shared
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… /usr/bin/mkdir -p
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking whether make supports nested variables… yes
checking for style of include used by make… GNU
checking for x86_64-linux-gnu-gcc… /usr/bin/gcc
checking whether the C compiler works… no
configure: error: in /home/mylock/temp/EmuELEC/build.EmuELEC-Amlogic-ng.aarch64-4.2/make-4.2.1/.x86_64-linux-gnu': configure: error: C compiler cannot create executables See config.log’ for more details

any suggestion will be great…
thank you.

what package is this that is giving you the problems?

Just started to build the toolchain after downloading few packages.

PROJECT=Amlogic-ng ARCH=aarch64 DISTRO=EmuELEC ./scripts/build toolchain
BUILD make (host)
TOOLCHAIN configure (auto-detect)
Executing (host): /home/mylock/temp/EmuELEC/build.EmuELEC-Amlogic-ng.aarch64-4.2/make-4.2.1/configure --host=x86_64-linux-gnu --build=x86_64-linux-gnu --prefix=/home/mylock/temp/EmuELEC/build.EmuELEC-Amlogic-ng.aarch64-4.2/toolchain --bindir=/home/mylock/temp/EmuELEC/build.EmuELEC-Amlogic-ng.aarch64-4.2/toolchain/bin --sbindir=/home/mylock/temp/EmuELEC/build.EmuELEC-Amlogic-ng.aarch64-4.2/toolchain/sbin --sysconfdir=/home/mylock/temp/EmuELEC/build.EmuELEC-Amlogic-ng.aarch64-4.2/toolchain/etc --libexecdir=/home/mylock/temp/EmuELEC/build.EmuELEC-Amlogic-ng.aarch64-4.2/toolchain/lib --localstatedir=/home/mylock/temp/EmuELEC/build.EmuELEC-Amlogic-ng.aarch64-4.2/toolchain/var --disable-static --enable-shared

I’ve tried the same on a clean install of xubuntu 20.04 (on virtualbox).same result. Gonna try on ubuntu server 18.04.

is the folder writable? temp and its not a symlink?

hello,
yes, it is just one subfolder under my home directory.

update… now the toolchain is compiling under ubuntu server 18.04.5 (virtualized). I’m compiling gettext. Seems that there’s something different on X/Ubuntu 20.04 that prevents the compilation. In both installations, it stopped at the first build, make. Let’s see if i will arrive at the end of the building process.

10gb installation gone… haven’t compiled all the toolchain because no space left on the disk. BTW, everything was going well on 18.04. I’m almost there to build my packages,hehe. thank you for your time.

I recommend a VM with 20GB. 10 GB is bound to fail. I have tried.
Ubuntu 20 should not be a problem. I compiled EmuELEC 4.2-dev on a Ubuntu 20 VM.

I have added a note to the instructions on github about disk space:

Finally done. Toolchain compiled and built few (updated) cores., bsnes-hd, flycast and swanstation.
Only thing i had to do before building flycast was to build zlib package first.
Now it’s time to inject them into my androidbox. let’s see…

my bsnes_hd_beta core doesn’t work but others are fine (except for the fact that swanstation is version 3.7-8…).
thanks for the help.

My last words: I suggest to add FMSX core for MSX games so you can emulate joystick and keyboard in the same time for playing metal gear 2 (the reason why i build this core).
here is my edited package.mk hoping to help someone in my same situation.

PKG_NAME="fmsx"
PKG_VERSION="34e14bee33c3ed20ee637d96d294fc1a385e3702"
PKG_SHA256="1ee5576e90b1de83e82511c7e4a0d17ea16f79b6fa613a9b195cb783a2103c44"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/fmsx-libretro"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="libretro"
PKG_SHORTDESC="Port of FMSX to the libretro API."
PKG_LONGDESC="Port of FMSX to the libretro API."

PKG_IS_ADDON="no"
PKG_TOOLCHAIN="make"
PKG_AUTORECONF="no"

make_target() {
  make -f Makefile
}

makeinstall_target() {
  mkdir -p $INSTALL/usr/lib/libretro
  cp fmsx_libretro.so $INSTALL/usr/lib/libretro/
}

thank you all for the support. Ciao!