Other Projects

[HowTo-V4.5] DIY Arcade Kiosk - RetroArch (0.37b5 iMAME4all, SNES) on ArchLinux

90 29423
xefil  
Up to which shortcut you use (framebuffer or X11), it calls two different config files (/etc/retroarch-mali.cfg or /etc/retroarch.cfg). change the values on the right file.
Hope it helps, bye!

Simon

karl0ss  
Any chance you can get EmulationStation working? so we can have a real replacement for RetroPie on banana with a nice gui for selection?

thanks

xefil  

I've not tested it right now.
Reading the compile instructions (we cannot use RPi iso) it's using SDL2. On retroarch we are using framebuffer via gl and mali-fbdev context.
But it could be tested in any case.
A nice interface is something this setup is missing

xefil  

I'm testing it, and let you know

Simon

xefil  

Emulationstation compiled. I need my kiosk to test it and see if it works.
When done, I'll update the ISO.

Simon

Any news on the new ISO xefil?

xefil  
Edited by xefil at Fri Jan 2, 2015 02:55

Sorry for the delay!
I'm not able to update the ISO right now, but I post here the steps to add emulationstation.

Due some dependencies not compatible on armhf using yaourt/pacman to install emulationstation, we need to satisfy them manually:
  1. yaourt -S sdl2
Copy the Code
Then, follow these steps to install freeimage:

  1. wget  http://downloads.sourceforge.net/project/freeimage/Source%20Distribution/3.15.2/FreeImage3152.zip
  2. unzip FreeImage.zip
  3. wget http://downloads.sourceforge.net/project/libpng/libpng15/older-releases/1.5.19/libpng-1.5.19.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flibpng%2Ffiles%2Flibpng15%2Folder-releases%2F1.5.19%2F&ts=1420188007&use_mirror=softlayer-ams
  4. tar -zxvf libpng-1.5.19.tar.gz
  5. rm -rf FreeImage/Source/LibPNG/
  6. mv libpng-1.5.19 FreeImage/Source/LibPNG
  7. mv FreeImage/Source/LibPNG/scripts/pnglibconf.h.prebuilt FreeImage/Source/LibPNG/pnglibconf.h
  8. cd FreeImage && make
Copy the Code
The make command will produce an error. Execute then instead this looooooooooong command:
  1. cc -fPIC -s -shared -Wl,-soname,libfreeimage.so.3  -o libfreeimage-3.15.2.so ./Source/FreeImage/BitmapAccess.o ./Source/FreeImage/ColorLookup.o ./Source/FreeImage/FreeImage.o ./Source/FreeImage/FreeImageC.o ./Source/FreeImage/FreeImageIO.o ./Source/FreeImage/GetType.o ./Source/FreeImage/MemoryIO.o ./Source/FreeImage/PixelAccess.o ./Source/FreeImage/J2KHelper.o ././Source/FreeImage/MNGHelper.o ./Source/FreeImage/Plugin.o ./Source/FreeImage/PluginBMP.o ./Source/FreeImage/PluginCUT.o ./Source/FreeImage/PluginDDS.o ./Source/FreeImage/PluginEXR.o ./Source/FreeImage/PluginG3.o ./Source/FreeImage/PluginGIF.o ./Source/FreeImage/PluginHDR.o ./Source/FreeImage/PluginICO.o ./Source/FreeImage/PluginIFF.o ./Source/FreeImage/PluginJ2K.o ././Source/FreeImage/PluginJNG.o ./Source/FreeImage/PluginJP2.o ./Source/FreeImage/PluginJPEG.o ./Source/FreeImage/PluginKOALA.o ./Source/FreeImage/PluginMNG.o ./Source/FreeImage/PluginPCD.o ./Source/FreeImage/PluginPCX.o ./Source/FreeImage/PluginPFM.o ./Source/FreeImage/PluginPICT.o ./Source/FreeImage/PluginPNG.o ./Source/FreeImage/PluginPNM.o ./Source/FreeImage/PluginPSD.o ./Source/FreeImage/PluginRAS.o ./Source/FreeImage/PluginRAW.o ./Source/FreeImage/PluginSGI.o ./Source/FreeImage/PluginTARGA.o ./Source/FreeImage/PluginTIFF.o ./Source/FreeImage/PluginWBMP.o ./Source/FreeImage/PluginXBM.o ./Source/FreeImage/PluginXPM.o ./Source/FreeImage/PSDParser.o ./Source/FreeImage/TIFFLogLuv.o ./Source/FreeImage/Conversion.o ./Source/FreeImage/Conversion16_555.o ./Source/FreeImage/Conversion16_565.o ./Source/FreeImage/Conversion24.o ./Source/FreeImage/Conversion32.o ./Source/FreeImage/Conversion4.o ./Source/FreeImage/Conversion8.o ./Source/FreeImage/ConversionFloat.o ./Source/FreeImage/ConversionRGB16.o ./Source/FreeImage/ConversionRGBF.o ./Source/FreeImage/ConversionType.o ./Source/FreeImage/ConversionUINT16.o ./Source/FreeImage/Halftoning.o ./Source/FreeImage/tmoColorConvert.o ./Source/FreeImage/tmoDrago03.o ./Source/FreeImage/tmoFattal02.o ./Source/FreeImage/tmoReinhard05.o ./Source/FreeImage/ToneMapping.o ./Source/FreeImage/NNQuantizer.o ./Source/FreeImage/WuQuantizer.o ./Source/DeprecationManager/Deprecated.o ./Source/DeprecationManager/DeprecationMgr.o ./Source/FreeImage/CacheFile.o ./Source/FreeImage/MultiPage.o ./Source/FreeImage/ZLibInterface.o ./Source/Metadata/Exif.o ./Source/Metadata/FIRational.o ./Source/Metadata/FreeImageTag.o ./Source/Metadata/IPTC.o ./Source/Metadata/TagConversion.o ./Source/Metadata/TagLib.o ./Source/Metadata/XTIFF.o ./Source/FreeImageToolkit/Background.o ./Source/FreeImageToolkit/BSplineRotate.o ./Source/FreeImageToolkit/Channels.o ./Source/FreeImageToolkit/ClassicRotate.o ./Source/FreeImageToolkit/Colors.o ./Source/FreeImageToolkit/CopyPaste.o ./Source/FreeImageToolkit/Display.o ./Source/FreeImageToolkit/Flip.o ./Source/FreeImageToolkit/JPEGTransform.o ./Source/FreeImageToolkit/MultigridPoissonSolver.o ./Source/FreeImageToolkit/Rescale.o ./Source/FreeImageToolkit/Resize.o Source/LibJPEG/./jaricom.o Source/LibJPEG/jcapimin.o Source/LibJPEG/jcapistd.o Source/LibJPEG/./jcarith.o Source/LibJPEG/jccoefct.o Source/LibJPEG/jccolor.o Source/LibJPEG/jcdctmgr.o Source/LibJPEG/jchuff.o Source/LibJPEG/jcinit.o Source/LibJPEG/jcmainct.o Source/LibJPEG/jcmarker.o Source/LibJPEG/jcmaster.o Source/LibJPEG/jcomapi.o Source/LibJPEG/jcparam.o Source/LibJPEG/jcprepct.o Source/LibJPEG/jcsample.o Source/LibJPEG/jctrans.o Source/LibJPEG/jdapimin.o Source/LibJPEG/jdapistd.o Source/LibJPEG/./jdarith.o Source/LibJPEG/jdatadst.o Source/LibJPEG/jdatasrc.o Source/LibJPEG/jdcoefct.o Source/LibJPEG/jdcolor.o Source/LibJPEG/jddctmgr.o Source/LibJPEG/jdhuff.o Source/LibJPEG/jdinput.o Source/LibJPEG/jdmainct.o Source/LibJPEG/jdmarker.o Source/LibJPEG/jdmaster.o Source/LibJPEG/jdmerge.o Source/LibJPEG/jdpostct.o Source/LibJPEG/jdsample.o Source/LibJPEG/jdtrans.o Source/LibJPEG/jerror.o Source/LibJPEG/jfdctflt.o Source/LibJPEG/jfdctfst.o Source/LibJPEG/jfdctint.o Source/LibJPEG/jidctflt.o Source/LibJPEG/jidctfst.o Source/LibJPEG/jidctint.o Source/LibJPEG/jmemmgr.o Source/LibJPEG/jmemnobs.o Source/LibJPEG/jquant1.o Source/LibJPEG/jquant2.o Source/LibJPEG/jutils.o Source/LibJPEG/transupp.o Source/LibPNG/./png.o Source/LibPNG/./pngerror.o Source/LibPNG/./pngget.o Source/LibPNG/./pngmem.o Source/LibPNG/./pngpread.o Source/LibPNG/./pngread.o Source/LibPNG/./pngrio.o Source/LibPNG/./pngrtran.o Source/LibPNG/./pngrutil.o Source/LibPNG/./pngset.o Source/LibPNG/./pngtrans.o Source/LibPNG/./pngwio.o Source/LibPNG/./pngwrite.o Source/LibPNG/./pngwtran.o Source/LibPNG/./pngwutil.o Source/LibTIFF4/./tif_aux.o Source/LibTIFF4/./tif_close.o Source/LibTIFF4/./tif_codec.o Source/LibTIFF4/./tif_color.o Source/LibTIFF4/./tif_compress.o Source/LibTIFF4/./tif_dir.o Source/LibTIFF4/./tif_dirinfo.o Source/LibTIFF4/./tif_dirread.o Source/LibTIFF4/./tif_dirwrite.o Source/LibTIFF4/./tif_dumpmode.o Source/LibTIFF4/./tif_error.o Source/LibTIFF4/./tif_extension.o Source/LibTIFF4/./tif_fax3.o Source/LibTIFF4/./tif_fax3sm.o Source/LibTIFF4/./tif_flush.o Source/LibTIFF4/./tif_getimage.o Source/LibTIFF4/./tif_jbig.o Source/LibTIFF4/./tif_jpeg.o Source/LibTIFF4/./tif_jpeg_12.o Source/LibTIFF4/./tif_luv.o Source/LibTIFF4/./tif_lzma.o Source/LibTIFF4/./tif_lzw.o Source/LibTIFF4/./tif_next.o Source/LibTIFF4/./tif_ojpeg.o Source/LibTIFF4/./tif_open.o Source/LibTIFF4/./tif_packbits.o Source/LibTIFF4/./tif_pixarlog.o Source/LibTIFF4/./tif_predict.o Source/LibTIFF4/./tif_print.o Source/LibTIFF4/./tif_read.o Source/LibTIFF4/./tif_stream.cxx Source/LibTIFF4/./tif_strip.o Source/LibTIFF4/./tif_swab.o Source/LibTIFF4/./tif_thunder.o Source/LibTIFF4/./tif_tile.o Source/LibTIFF4/./tif_version.o Source/LibTIFF4/./tif_warning.o Source/LibTIFF4/./tif_write.o Source/LibTIFF4/./tif_zip.o Source/ZLib/./adler32.o Source/ZLib/./compress.o Source/ZLib/./crc32.o Source/ZLib/./deflate.o Source/ZLib/./gzclose.o Source/ZLib/./gzlib.o Source/ZLib/./gzread.o Source/ZLib/./gzwrite.o Source/ZLib/./infback.o Source/ZLib/./inffast.o Source/ZLib/./inflate.o Source/ZLib/./inftrees.o Source/ZLib/./trees.o Source/ZLib/./uncompr.o Source/ZLib/./zutil.o Source/LibOpenJPEG/bio.o Source/LibOpenJPEG/./cidx_manager.o Source/LibOpenJPEG/cio.o Source/LibOpenJPEG/dwt.o Source/LibOpenJPEG/event.o Source/LibOpenJPEG/image.o Source/LibOpenJPEG/j2k.o Source/LibOpenJPEG/j2k_lib.o Source/LibOpenJPEG/jp2.o Source/LibOpenJPEG/jpt.o Source/LibOpenJPEG/mct.o Source/LibOpenJPEG/mqc.o Source/LibOpenJPEG/openjpeg.o Source/LibOpenJPEG/./phix_manager.o Source/LibOpenJPEG/pi.o Source/LibOpenJPEG/./ppix_manager.o Source/LibOpenJPEG/raw.o Source/LibOpenJPEG/t1.o Source/LibOpenJPEG/t2.o Source/LibOpenJPEG/tcd.o Source/LibOpenJPEG/tgt.o Source/LibOpenJPEG/./thix_manager.o Source/LibOpenJPEG/./tpix_manager.o Source/OpenEXR/./IlmImf/ImfAttribute.o Source/OpenEXR/./IlmImf/ImfB44Compressor.o Source/OpenEXR/./IlmImf/ImfBoxAttribute.o Source/OpenEXR/./IlmImf/ImfChannelList.o Source/OpenEXR/./IlmImf/ImfChannelListAttribute.o Source/OpenEXR/./IlmImf/ImfChromaticities.o Source/OpenEXR/./IlmImf/ImfChromaticitiesAttribute.o Source/OpenEXR/./IlmImf/ImfCompressionAttribute.o Source/OpenEXR/./IlmImf/ImfCompressor.o Source/OpenEXR/./IlmImf/ImfConvert.o Source/OpenEXR/./IlmImf/ImfCRgbaFile.o Source/OpenEXR/./IlmImf/ImfDoubleAttribute.o Source/OpenEXR/./IlmImf/ImfEnvmap.o Source/OpenEXR/./IlmImf/ImfEnvmapAttribute.o Source/OpenEXR/./IlmImf/ImfFloatAttribute.o Source/OpenEXR/./IlmImf/ImfFrameBuffer.o Source/OpenEXR/./IlmImf/ImfFramesPerSecond.o Source/OpenEXR/./IlmImf/ImfHeader.o Source/OpenEXR/./IlmImf/ImfHuf.o Source/OpenEXR/./IlmImf/ImfInputFile.o Source/OpenEXR/./IlmImf/ImfIntAttribute.o Source/OpenEXR/./IlmImf/ImfIO.o Source/OpenEXR/./IlmImf/ImfKeyCode.o Source/OpenEXR/./IlmImf/ImfKeyCodeAttribute.o Source/OpenEXR/./IlmImf/ImfLineOrderAttribute.o Source/OpenEXR/./IlmImf/ImfLut.o Source/OpenEXR/./IlmImf/ImfMatrixAttribute.o Source/OpenEXR/./IlmImf/ImfMisc.o Source/OpenEXR/./IlmImf/ImfOpaqueAttribute.o Source/OpenEXR/./IlmImf/ImfOutputFile.o Source/OpenEXR/./IlmImf/ImfPizCompressor.o Source/OpenEXR/./IlmImf/ImfPreviewImage.o Source/OpenEXR/./IlmImf/ImfPreviewImageAttribute.o Source/OpenEXR/./IlmImf/ImfPxr24Compressor.o Source/OpenEXR/./IlmImf/ImfRational.o Source/OpenEXR/./IlmImf/ImfRationalAttribute.o Source/OpenEXR/./IlmImf/ImfRgbaFile.o Source/OpenEXR/./IlmImf/ImfRgbaYca.o Source/OpenEXR/./IlmImf/ImfRleCompressor.o Source/OpenEXR/./IlmImf/ImfScanLineInputFile.o Source/OpenEXR/./IlmImf/ImfStandardAttributes.o Source/OpenEXR/./IlmImf/ImfStdIO.o Source/OpenEXR/./IlmImf/ImfStringAttribute.o Source/OpenEXR/./IlmImf/ImfStringVectorAttribute.o Source/OpenEXR/./IlmImf/ImfTestFile.o Source/OpenEXR/./IlmImf/ImfThreading.o Source/OpenEXR/./IlmImf/ImfTileDescriptionAttribute.o Source/OpenEXR/./IlmImf/ImfTiledInputFile.o Source/OpenEXR/./IlmImf/ImfTiledMisc.o Source/OpenEXR/./IlmImf/ImfTiledOutputFile.o Source/OpenEXR/./IlmImf/ImfTiledRgbaFile.o Source/OpenEXR/./IlmImf/ImfTileOffsets.o Source/OpenEXR/./IlmImf/ImfTimeCode.o Source/OpenEXR/./IlmImf/ImfTimeCodeAttribute.o Source/OpenEXR/./IlmImf/ImfVecAttribute.o Source/OpenEXR/./IlmImf/ImfVersion.o Source/OpenEXR/./IlmImf/ImfWav.o Source/OpenEXR/./IlmImf/ImfZipCompressor.o Source/OpenEXR/./Imath/ImathBox.o Source/OpenEXR/./Imath/ImathColorAlgo.o Source/OpenEXR/./Imath/ImathFun.o Source/OpenEXR/./Imath/ImathMatrixAlgo.o Source/OpenEXR/./Imath/ImathRandom.o Source/OpenEXR/./Imath/ImathShear.o Source/OpenEXR/./Imath/ImathVec.o Source/OpenEXR/./Iex/IexBaseExc.o Source/OpenEXR/./Iex/IexThrowErrnoExc.o Source/OpenEXR/./Half/half.o Source/OpenEXR/./IlmThread/IlmThread.o Source/OpenEXR/./IlmThread/IlmThreadMutex.o Source/OpenEXR/./IlmThread/IlmThreadPool.o Source/OpenEXR/./IlmThread/IlmThreadSemaphore.o Source/LibRawLite/./internal/dcraw_common.o Source/LibRawLite/./internal/dcraw_fileio.o Source/LibRawLite/./internal/demosaic_packs.o Source/LibRawLite/./src/libraw_c_api.o Source/LibRawLite/./src/libraw_cxx.o Source/LibRawLite/./src/libraw_datastream.o -lstdc++
Copy the Code
Then, back to yaourt to install emulationstation. Before executing the command, read the note after.
  1. yaourt -S emulationstation-git
Copy the Code
After executing the yaourt command, it will asked if we want to edit the PKGBUILD. Select YES and delete any reference to freeimage, because we've installed it manually compiling it:
FROM
  1. depends=('alsa-lib' 'sdl' 'boost-libs' 'freeimage' 'ttf-dejavu' 'glu')
Copy the Code
TO
  1. depends=('alsa-lib' 'sdl' 'boost-libs' 'ttf-dejavu' 'glu')
Copy the Code
Then the compilation should end succesfully.
The configuration of the emulationstation is up to your controller and to the path the ROMS are placed.

The configuration of the emulationstation is up to your controller and to the path the ROMS are placed.
Executing it as 'bananapi' user it creates the default config files. Here my startup system file:

  1. [root@lemaker .emulationstation]# pwd
  2. /home/bananapi/.emulationstation
  3. [root@lemaker .emulationstation]# cat es_systems.cfg
  4. <!-- This is the EmulationStation Systems configuration file.
  5. All systems must be contained within the <systemList> tag.-->

  6. <systemList>
  7.         <!-- Here's an example system to get you started. -->
  8.         <system>

  9.                 <!-- A short name, used internally. Traditionally lower-case. -->
  10.                 <name>imame4all</name>

  11.                 <!-- A "pretty" name, displayed in menus and such. -->
  12.                 <fullname>iMAME Multiple Arcade Machine Emulator 4ALL</fullname>

  13.                 <!-- The path to start searching for ROMs in. '~' will be expanded to $HOME on Linux or %HOMEPATH% on Windows. -->
  14.                 <path>/opt/retroarch/roms/mame/mame037b5</path>

  15.                 <!-- A list of extensions to search for, delimited by any of the whitespace characters (", \r\n\t").
  16.                 You MUST include the period at the start of the extension! It's also case sensitive. -->
  17.                 <extension>.zip</extension>

  18.                 <!-- The shell command executed when a game is selected. A few special tags are replaced if found in a command:
  19.                 %ROM% is replaced by a bash-special-character-escaped absolute path to the ROM.
  20.                 %BASENAME% is replaced by the "base" name of the ROM.  For example, "/foo/bar.rom" would have a basename of "bar". Useful for MAME.
  21.                 %ROM_RAW% is the raw, unescaped path to the ROM. -->
  22.                 <command>sudo /opt/retroarch/bin3/retroarch -c /etc/retroarch-mali.cfg -L /usr/lib/libretro/libretro-imame4all.so  %ROM%</command>

  23.                 <!-- The platform to use when scraping. You can see the full list of accepted platforms in src/PlatformIds.cpp.
  24.                 It's case sensitive, but everything is lowercase. This tag is optional.
  25.                 You can use multiple platforms too, delimited with any of the whitespace characters (", \r\n\t"), eg: "genesis, megadrive" -->
  26.                 <platform>neogeo</platform>

  27.                 <!-- The theme to load from the current theme set.  See THEMES.md for more information.
  28.                 This tag is optional. If not set, it will default to the value of <name>. -->
  29.                 <theme>nes</theme>
  30.         </system>
  31. </systemList>
Copy the Code
First post updated as well.

Let me know

Simon

xefil replied at Fri Jan 2, 2015 02:38
Sorry for the delay!
I'm not able to update the ISO right now, but I post here the steps to add emul ...

Thanks man! I'll try it out as soon as I have time! Looks very good though.

xefil  

I'm working on a new setup on a BananaPi Pro. If interested, as soon I've finished the setup, I could share the last image.

Simon

hiryu  
xefil replied at Mon Jan 12, 2015 02:56
I'm working on a new setup on a BananaPi Pro. If interested, as soon I've finished the setup, I cou ...

Will the Pro image work on the older BananaPi? I also noticed that some roms won't work in imame4all even though they're on the supported games list (https://code.google.com/p/imame4all/wiki/GameList) Retroarch crashes without writing a log, so I have no idea if it's a bad rom dump (can't be, it's working fine on the PC) or something else.

You have to log in before you can reply Login | Sign Up

Points Rules