RetroArch compile options for Wandboard (i.MX6 quad)

Hello!

I have a Wandboard Quad which currently runs Arch Linux ARM. Today I was trying to compile very basic version of RetroArch for it: with RGUI and single bnes core. After some trial and error, I finally managed to compile RetroArch from AUR using custom PKGBUILD.

Well, now it certainly works… though very slow (tested with Super Mario using bluetooth keyboard) and HDMI console glitches through emulator screen. Every key pressed actually goes to console underneath emulator screen and briefly flashes through it. Retroarch.cfg is default one, with video_threaded = false, and RetroArch was compiled with following features:

./configure --prefix=/usr --enable-gles --disable-x11 --disable-vg --disable-xvideo --disable-ffmpeg --enable-neon --enable-floathard --enable-fbo --enable-vivante_fbdev --enable-freetype --disable-sdl --disable-kms

As far as I know, Lakka supports i.MX6 platfroms, including Wandvoard. There are even nightly builds for Wandboard. Unfortunately, digging through Lakka git repository, I couldn’t find configure string and retroarch.cfg that is used to compile Lakka’s RetroArch for Wandboard platform. They are generated on the fly with set of scripts based on Wandboard project’s options.

Can somebody provide me with configure string and retroarch.cfg that Lakka uses to compile RetroArch for Wandboard? Also, any suggestions on why NES emulation ran so slow and with glitchy HDMI output?

I can’t help you with the configure script, but bnes is not what you want. It’s based on a very old version of bnes and that emulator is very resource-intensive. You should try Nestopia core instead.

Take a look at packages/libretro/retroarch/package.mk, at RETROARCH_GL, RETROARCH_NEON and PKG_CONFIGURE_OPTS_TARGET variables. And you have to look to gpu-viv-bin-mx6q instead Wandboard. I think configure will be:

./configure --prefix=/usr --disable-vg --disable-ffmpeg --disable-sdl --disable-x11 --disable-xvideo --enable-gles --disable-kms --enable-vivante_fbdev --enable-neon --enable-fbo --enable-freetype

Thanks for your help guys!

I have recompiled retroarch with new configure options from Lakka and used Nestopia for NES instead of bnes. Now everything runs fast enough, though with some image tearing. I think this is because v-sync is switched off in default config. Even managed to connect Dualshock 3 and it’s really working. Wonderful!

Though the problem with console flickering through Retroarch remains. It’s only visible when I use keyboard instead of PS3 controller. Intresting, when I run Kodi and control it with the same bluetooth keyboard there is no such a problem with flickering. Can console be disabled altogether on HDMI output?

Oh, I found what was the problem with tearing. It wasn’t v-sync. I’s because of video_threaded was turned on.

I have measured performance of Nestopia with video_threaded turned on/off and it gave me intersting results. FPS stayed the same in both variants (around 60 FPS), while CPU load was a bit higher (monitored it with htop) when using video_threaded=true: ~45% on “true” vs. ~40% on “false”. So I can say that performance-wise reasults are kind of identical. Maybe more complex emulation like SNES will show some difference?

And while I was in main menu, XMB loaded CPU up to 100%. It’s definetly needs more polishing…