About
ODROID GameStation Turbo is an entertainment Image for ODROIDs.
Originally created to be a gaming image for children (and retro gamers) it evolved to be much more than that.
It is a full blown desktop and entertainment image using the MATE Desktop Environment, where you can browse the web, listen to music, watch movies, play games, do office work, compile program, or what ever you like to do.
It offers 3D acceleration for X11 allowing you to run 3D games, and applications hardware accelerated.

Since it was originally created for gaming you can use frontends like EmulationStation

Or as per default Rom Collection Browser from within XBMC/Kodi which allows for seamlessly switching between gaming and watching movies, without leaving the interface:


Demo video of Rom Collection Browser:
Here's what it can look like if you put a little work into it: http://oph.mdrjr.net/meveric/other/Vide ... .47.43.m4v
Sadly the video is without sound, but I guess you get the idea.
I also offer a large library of games and programs for ODROIDs.
Checkout the Package List section to find what packages I offer. You can also suggest new packages for the repository or contribute yourself.
Thanks and greetings
I want to thank everyone who's supporting me and help me to improve my image, especially:
- AreaScout
- OverSun
- babyburgers
- monstercamf
- Olivier BERT
- robroy
- fishtank
- stef5636
- skint
- Guiseppe
- arnoldvilleneuve
- Jojo
- Fourdee
- ptitSeb
- tipoto
- lukethor
- Todd Hausser
- And of cause the entire HardKernel Team
- Debian Jessie
- Kernel 3.10.106+
- Joystick Suppot Enabled
- Emulators for running many game systems
- Very low RAM usage
- Preset environment for Kodi -> ready to play
- Autostart of Kodi (no failover on exit)
- Full Joystick Control
Code: Select all
System Emulator used Where to put ROMS Supported Extensions Notes
3DO 4do_libretro /home/odroid/ROMS/3DO *.iso,*.cue can be laggy
AMIGA fs-uae /home/odroid/ROMS/AMIGA *.adf,*.adz,*.zip
AMIGA 1200 fs-uae /home/odroid/ROMS/AMIGA1200 *.adf,*.adz,*.zip
AMIGA CD32 fs-uae /home/odroid/ROMS/AMIGACD32 *.cue,*.iso,*.zip
AMSTRAD CPC cap32_libretro /home/odroid/ROMS/CPC *.dsk,*.sna
ATARI 2600 stella_libretro /home/odroid/ROMS/ATARI/A2600 *.a26,*.bin
ATARI 7800 prosystem_libretro /home/odroid/ROMS/ATARI/A7800 *.a78,*.bin
ATARI 800 atari800 /home/odroid/ROMS/ATARI/Atari800 *.a52, *.bas, *.bin, *.car, *.xex, *.atr, *.xfd, *.dcm, *.atr.gz, *.xfd.gz
ATARI Jaguar virtauljaguar-odroid /home/odroid/ROMS/ATARI/Jaguar *.jag,*.j64 can be laggy
ATARI Lynx handy_libretro /home/odroid/ROMS/ATARI/Lynx *.lnx
ATARI ST hatari-odroid /home/odroid/ROMS/ATARI/Atari ST *.st, *.stx, *.img, *.rom, *.raw, *.ipf, *.ctr, *.msa, *.dim
CPS1 fbalpha2012_cps1_libretro /home/odroid/ROMS/CPS1 *.zip
CPS2 fbalpha2012_cps2_libretro /home/odroid/ROMS/CPS2 *.zip
CPS3 fbalpha2012_cps3_libretro /home/odroid/ROMS/CPS3 *.zip
FB Alpha fbalpha_libretro /home/odroid/ROMS/FBA *.zip,*.iso
Game and Watch gw_libretro /home/odroid/ROMS/GW *.mgw
GB gambatte_libretro /home/odroid/ROMS/GBx *.gb
GBA mgba_libretrp /home/odroid/ROMS/GBA *.gba
GBC gambatte_libretro /home/odroid/ROMS/GBx *.gbc
LINUX native /home/odroid/ROMS/LINUX *.sh
MAME mame_libretro /home/odroid/ROMS/MAME *.zip,*.7z,*.chd
MSX bluemsx_libretro /home/odroid/ROMS/MSX *.rom,*.mx1,*.mx2
N64 mupen64plus_libretro /home/odroid/ROMS/N64 *.rom,*.v64,*.V64,*.n64,*.z64,*.Z64
NDS desmume_libretro /home/odroid/ROMS/NDS *.nds
NeoGeo fbalpha2012_neogeo_libretro /home/odroid/ROMS/NeoGeo *.zip
NeoGeoPocket mednafen_ngp_libretrp /home/odroid/ROMS/NeoGeoPocket *.zip,*.ngp,*.ngc
NES fceumm_libretro /home/odroid/ROMS/NES *.nes,*.fds
Odyssey 2 o2em_libretro /home/odroid/ROMS/O2EM *.bin
PC-Engine mednafen_pce_libretro /home/odroid/ROMS/PCE *.pce
PC-Engine CD mednafen_pce_libretro /home/odroid/ROMS/PCE-CD *.cue,*.ccd,*.chd
PC-FX mednafen_pcfx_libretro /home/odroid/ROMS/PCE *.cue
PSP ppsspp-odroid /home/odroid/ROMS/PSP *.iso,*.cso
PSX pcsx1_libretro /home/odroid/ROMS/PSX *.cue,*.iso,*.mdf,*.ccd,*.pbp,*.PBP
ResidualVM residualvm-odroid /home/odroid/ROMS/ResidualVM *.rvm
SCUMMVM scummvm /home/odroid/ROMS/SCUMMVM *.svm
SEGA 32X picodrive_libretro /home/odroid/ROMS/SEGA/Sega32X *.32x
SEGA CD picodrive_libretro /home/odroid/ROMS/SEGA/SegaCD *.iso, *.cue
SEGA Dreamcast reicast-odroid /home/odroid/ROMS/SEGA/Dreamcast *.cdi,*.chd
SEGA GameGear genesis_plus_gx_libretro /home/odroid/ROMS/SEGA/GameGear *.gg
SEGA Genesis picodrive_libretro /home/odroid/ROMS/SEGA/Genesis *.bin,*.md,*.mdx,*.gen,*.smd
SEGA MasterSystem genesis_plus_gx_libretro /home/odroid/ROMS/SEGA/MasterSystem *.sms
SEGA Saturn yabause-odroid /home/odroid/ROMS/SEGA/Saturn *.cue,*.iso, *.mds, *.nrg can be laggy
SEGA SG-1000 genesis_plus_gx_libretro /home/odroid/ROMS/SEGA/MasterSystem *.sg
SNES snes9x_libretro /home/odroid/ROMS/SNES *.smc ,*.sfc
PC-E SuperGrafx mednafen_supergrafx_libretro /home/odroid/ROMS/SuperGrafx *.sgx,*.pce
Virtual Boy mednafen_vb_libretro /home/odroid/ROMS/VB *.vb,*.vboy
Vectrex vecx_libretro /home/odroid/ROMS/Vectrex *.bin,*.vce
WonderSwan mednafen_wswan_libretro /home/odroid/ROMS/WS *.ws,*.wsc
ZX81 81_libretro /home/odroid/ROMS/ZX81 *.tzx,*.p
ZX Spectrum fuse_libretro /home/odroid/ROMS/ZXSpectr *.tzx,*.tap,*.z80,*.rzx,*.scl,*.trd
Code: Select all
2048 2048_libretro
Cave Story nxengine_libretro
Dinothawr dinothawr_libretro
Nintendo GameCube dolphin-emu-odroid /home/odroid/ROMS/GC *.iso, *.ciso, *.gcm, *.gcz
Nintendo Wii dolphin-emu-odroid /home/odroid/ROMS/Wii *.iso, *.ciso, *.gcm, *.gcz, *.wad, *.elf, *.wbfs
RPG Maker 2000/2003 EasyRPG /home/odroid/ROMS/EasyRPG GameFolders containing RPG_RT.ini
Since there's constantly new development for this image and ODROIDs in general the First thing you should do after the image is up and running is to install all updates:
Code: Select all
apt-get update && apt-get upgrade && apt-get dist-upgrade && apt-get autoremove
Code: Select all
dpkg-reconfigure vhba-dkms
Code: Select all
- Hotkey -> SELECT
- Exit -> SELECT + START
- Save -> SELECT + Right Shoulder
- Load -> SELECT + Left Shoulder
- Next Save State Slot -> SELECT + Right
- Previous Save State Slot -> SELECT + Left
- Menu -> SELECT + X
- Reset -> SELECT + B
- Eject/Insert Disk -> SELECT + R3
- Next Disk -> SELECT + R2
- Previous Disk -> SELECT + L2
- Put the games you want unter /home/odroid/ROMS in the folder of the system the game was made for
- Adapt joystick configuration if needed
Retroarch has keyboard and XBox360 Controler preconfigured. You might have to adapt that if you use a different device and put the device configuration in (/home/odroid/.config/retroarch/retroarch.cfg).
To configure controls for mednafen just start a game and hit ALT+SHIFT+1 to setup controls for player 1 and so on.
Debian Jessie Version (hosted by @mdrjr): http://oph.mdrjr.net/meveric/images/OGS ... sie.img.xz -- md5 -- sha512 -- signature
Debian Jessie Version (hosted by Fourdee): http://fuzon.co.uk/meveric/images/ODROI ... sie.img.xz -- md5 -- sha512 -- signature
If you have any question or want to give feedback, i'm happy to help as much as i can.
Importing games
On the first start XBMC wants to import the games since the database is empty.
After you imported your games and later on want to import more games you can do that by either pressing the X button on the XBox 360 controler, or the C key on the keyboard.
There are different ways to import them:
Automatic - accurate -> which will only import games if it's 100% sure what it is
Automatic - guess -> it will check through different sites which game it COULD be and takes the best match
Interactive -> means it's going to ask you what game it really is.
I would advice to go for Interactive since you can choose what game it really is.
Please Note: Importing games can take quite a while, since it's downloading covers and info textes over different server. You should NOT put your entire collection on the SD card right away cause this might take HOURS to import all games.
FAQ
Kodi requires Crypthography in version 1.7. How can I solve this?
You have to update the python cryptographic drivers for Kodi to stop complaining (it will still work even without the update)
As root you can run the following command, which will update the driver to version 1.7.
Code: Select all
apt-get install -t jessie-backports python-cryptography python3-cryptography
There are three options to do so easily:
- Symlink to a connected HDD
- Copy over the folder /home/odroid/ROMS to a connected harddrive
Code: Select all
cp -av /home/odroid/ROMS /media/odroid/MyHDD/
- delete or rename the folder on your SD/eMMC card
Code: Select all
mv /home/odroid/ROMS{,.bak}
- create a symlink from your HDD to where the original folder was located.
Code: Select all
ln -sf /media/odroid/MyHDD/ROMS /home/odroid/ROMS
- Copy over the folder /home/odroid/ROMS to a connected harddrive
- mount a partition on an HDD as the ROMS folder
- mount the partition somewhere so you can copy files over
Code: Select all
mount /dev/sda1 /mnt
- copy the CONTENT of ROMS folder on the partition
Code: Select all
cp -av /home/odroid/ROMS/* /mnt/
- unmount the partition from where you put it to copy the files over
Code: Select all
umount /mnt
- create a fstab entry for the new partion
-> Edit /etc/fstab with your favorite editor as ROOT and add an entry for the partition:Code: Select all
/dev/sda1 /home/odroid/ROMS ext4 defaults 0 0
- mount the partition
Code: Select all
mount -a
- make sure the folder and it's content belongs to user odroid
Code: Select all
chown -R odroid:odroid /home/odroid/ROMS
- mount the partition somewhere so you can copy files over
- Mount a samba share
- make sure cifs-utils are installed
Code: Select all
apt-get install cifs-utils
- edit /etc/fstab as ROOT with your favorite editor and add an entry for your samba share
For example:Code: Select all
//10.0.0.1/ROMS /home/odroid/ROMS cifs credentials=/home/odroid/.smbcredentials,uid=odroid,gid=odroid 0 0
- as user ODROID create a file .smbcredentials in the homefolder of odroid (/home/odroid) with the following content:
Code: Select all
username=<YOUR-SAMBA-USERNAME> password=<YOUR-SAMBA-PASSWORD> domain=<YOUR-DOMAIN> (mostly WORKGROUP)
- make sure cifs-utils are installed
How do I upgrade to Kernel 4.14 LTS?
you can simply update by typing:
Code: Select all
apt-get install linux-image-4.14-armhf-odroid-xu4 linux-headers-4.14-armhf-odroid-xu4
Code: Select all
wget https://oph.mdrjr.net/meveric/kernel/XU3/4.9.x/xf86-video-armsoc-odroid_20171213-1.4.1-1+deb8_armhf.deb
dpkg -i xf86-video-armsoc-odroid_20171213-1.4.1-1+deb8_armhf.deb
Kernel 4.14 comes with a performance hit of about 15% throughout all emulators although it offers other features, like G2D and hardware accelerated ffmpeg support.
If you want the best retro experience you should stick with Kernel 3.10
How can I update to Kodi 17.x (or later)?
Code: Select all
apt-get install -t jessie kodi-next-odroid
====================================================================
Differences to ODROID X/X2/U2/U3 version:
Since the XU3 has more power games and emulators run more fluently. 3DO, PCFX, NDS and N64 run a faster. In gernal i would say the XU3/XU4 is about 50% faster than the U3 doing the same tasks.
Update 1:
generally this update brings the image to the same level as the U2/U3 image which some additional bugfixes..
It also fixes the issues with MFC and CEC thanks to OverSun.
Kernel:
- Updated Kernel and headers to 3.10.63+
- Updated XBMC to 13.2-FINAL
- Added more Emulators to XBMC (see Changes)
- Added CTRl + ALT + T as a terminal Shortcut
- Added Software Center to easily install Applications and Games
- Added Update Manager which will inform you if new updates are available
- Changed notification Theme to Coco (easier to read)
- Added wheezy-update-propost to the sources list
- Updated libcec to latest version (uses HDMI Port 1)
- Updated mednafen to 0.9.37.1 (see changelog)
- Updated retroarch to current 1.0.0.3 build
- Upon first boot, Ethernet MAC address will be randomized and filesystem resized to full SD/eMMC size also generates new ssh key
- Replaced LibreOffice 3.5.4 with the current Wheezy Backports version 4.3.2
- Updated PPSSPP emulator to a late 0.9.9.1 version with some new features planed for the next version already included
- Updated all possible libretro cores to newer versions
- Updated retroarch-core-good and retroarch-core-bad package and included info about the different cores to /usr/local/share/doc/
- Added PC Engine SuperGrafx Support through mednafen_supergrafx libretro core
- Added NXEngine (Cave Story) Support through nxengine libretro core (game included in ROMS/CaveStory as well as starter under ROMS/LINUX)
- Added Odyssey 2 Support through o2em libretro core
- Added Vectex Support through vecx libretro core
- Added Sega Saturn Support through yabause libretro core (somewhat slow)
- Added Atari Jaguar Support through virtualjaguar libretro core
- Added Sega SG-1000 Support through genesis_plus_gx libretro core (added as Sega Master System variant)
- Added game 2048 through 2048 libretro core (standalone core/game)
- Added game dinothawr through dinothawr libretro core (gamefiles and starter included)
- Added folders for new systems
- Added new starters for the new systems
- Created new package for starters (ogst-starters-xbmc and later ogst-starters-kodi) to easily fix issues with starters in the future
- Replaced GBA mednafen_gba libretro core with meteor libretro core due to better sound and music quality (please report back if you encounter any issues)
- Replaced mame_0152 libretro core with current mame core (install retroarch-cores-bad package in case you want to revert to older cores)
- Added support for more file extensions
- Removed PushOver as an demo game
- Activated filesystem check during boot
- Did some filesystem cleanup
- Created missing folder for N64 ROMS
- Removed folder for C64 games (emulator not included and it caused some confusion)
- Separated NeoGeo from MAME ROMs (created own folder and adapted search paths)
- Fixed search for Atari 2600 games (exchanged .zip for .a26 as a file extension)
- Switched starter for Sega Master System from mednafen to genesis
- Fixed an issue where XBMC crashed when you switched between movies or jumped back and forth in the timeline (thanks to OverSun)
- Included CEC support in Kernel (thanks to OverSun)
New Retroarch Cores:
PC Engine SuperGrafx
NXEngine (Cave Story)
Odyssey 2 (Philips Videopac)
Vectex
Sega Saturn
Atari Jaguar
Sega SG-1000
2048 (Puzzlegame)
Dinothawr (Puzzlegame)
Infos to new and all other cores used on the image can be found in /usr/local/share/doc/retroarch-cores-good/
As always, if you find any issues, please report back, so i can fix them

Update 2 - Debian Jessie:
Updated image to Debian Jessie
Kernel:
- Updated Kernel and headers to 3.10.82+ (with mali r5p1 support)
- rebuild XBMC for Debian Jessie with CEC and PVR support
- added bromix repository for latest YouTube addon (with this YouTube is still working under XBMC)
- Changed the hostname to gamestation-turbo
- Added Chromium Browser to the standart installation with default options for hardware acceleration
- Added Clementine to the default applications since it's an awesome music player
- Added pavucontrol for additional sound settings (useful for headsets and microphones)
- Ported many programs from Debian Wheezy to Debian Jessie (should run under Ubuntu 14.04 or higher as well)
- Installed Update Manager from Debian Wheezy (no clue it was removed, it's very convenient), sadly Software-Center is not working
- Added Chromium and Clementine to quickstart panel
- Added script to configure GameStation Turbo Image (language, hostname, etc.)
- Installed preload for faster start of frequently used programs
- Updated Retroarch to version 1.2.2
- Updated XBMC starter scripts (new Kodi starter scripts available as well)
- Added filter for Retorach (can improve game experience while not as demanding as shaders)
- Updated retroarch-cores-good to include working N64 libretro core for N64 emulation through retroarch
- Removed ffmpeg-odroid package, since deb-multimedia provides same ffmpeg version
- Cleanup... removed all Debian Wheezy packages leftovers after upgrade
- Added new boot.ini from HardKernel
- Added CPU governor script from HardKernel + systemd integration
- Changed starter for MAME and NeoGeo ROMs
- Changed NeoGeo core to fbalpha
- Changed NES core to fceumm
- Preinstalled Emulationstation
- Added configuration for Emulationstation
- Added option to switch from XBMC to Emulationstation as default frontend
- Fixed /etc/fstab entries
- Fixed first boot script and systemd integration
- Fixed dinothawr starter
- Reworked a few of the Launcher
- Fixed settings for N64 emulation on retroarch
- Debian Jessie fixes a bug with PPSSPP where it was hanging for a second or two every now and then while playing games
- Fixed some ssh behaviour where password promt over ssh took ways to long
- Had to disable Network notifications, since it causes a crash with XBMC open (related to black screen issue)
- Partly fixed a bug in content scraper for mobygames (archive.vg, as well as maws are broken scrapers, maws website is closed completely)
- Removed broken scrapers from Rom Collection Browser config (replaced with giantbomb.com scraper)
- Added script to address black screen issue. press CTRL+ALT+F to refresh screen
- Added SSH Key generation on first boot
- Added button mappings for controller 2-4 to retroarch (rather basic, if needed buttons should be remapped using retroarch GUI)
- Added paths for filters in retroarch
- Added config for automatic Joystick configuration in retroarch (using udev)
- Added DreamCast Support to XBMC
- Added CPS1 and CPS2 (MAME) support in XBMC
- Updated retroarch config for new 1.2.2 version
- Probably some more things i don't remember anymore
Image now uses Debian Jessie which offers very modern drivers and applications while still being very stable and fast.
A new Setup script on the Desktop to change different settings to adapt your preference to the image (for example renaming the main user, disable autostart of xbmc, etc.)
Dreamcast support:
You can now play dreamcast games with this image as well with up to 4 players.
In order to do so you need to place the BIOS files for Dreamcast (dc_boot.bin and dc_flash.bin) in the /home/odroid/.reicast/data folder.
You might also have to start the emulator without a game once to "format" VMUs in order to save your games.
In /home/odroid/.reicast/emu.cfg you'll find the configuration of reicast emulator. This normally should be fine and does not need to be touch.
In some cases you might want to change the evdev_device_id_X = Y configurations. These configuration options define which device under /dev/input/ should be used for Joystick/Gamepad support.
evdev_device_id_1 = 3 would mean, for the first Dreamcast gamepad the device 3 should be used, which would be /dev/input/event3.
Changed MAME/NeoGeo support:
I created two new folders CPS1 and CPS2.
These are two types of MAME ROMS which are very good supported with the fbalpha core.
I also switched the starter for NeoGeo roms to a fbalpha core since they seems to work much better.
Updated cores:
I've updated retroarch-cores-good and retroarch-cores-bad packages which now include a total of 61 different cores that are working on ODROIDs (some are multiple cores for the same System)
Black Screen Issue Workaround:
If you exit XBMC and get a black screen issue, press CTRL+ALT+F that should fix it "for the moment".
Sadly there is still no permanent fix for that issue.
It also prevents me from updating to Kodi.
Basic EmulationStation support:
EmulationStation is now preinstalled and can be started as a default frontend.
It also has a configuration for all the emulators (actually uses the same starters as XBMC)
This is just a basic support. I'm no big fan of EmulationStation, and it seems to have some issues under X11 (does not always return to EmulationStation frontend after you quit a game).
But if you want to use it instead of XBMC you can now choose it as a default fronend in ODROID GameStation Turbo Setup.
If you have any idea of improving this, let me know, i might include it.
New options in ODROID GameStation Turbo setup script:
The ODROID GameStation Turbo setup script gives you options to switch between XBMC (or Kodi) and EmulationStation as default frontend.
It also gives a lot of other options to fine tune your image (such as setting up your language).
Thanks to this i'm also able to update images across different platforms. Means the 3.0 images of the ODROID X,X2,U2/U3 can also be updated to the same version of my image, just by updating the
setup-ogst package through normal system update (apt-get dist-upgrade).
Which makes it easier for me to update all images without having to put out new images for everyone

More informations:
I've updated the kodi-odroid package to stable version 15.1.
Although it's working on XU3 and all other boards I would HIGHLY advice NOT to use it on the XU3/XU4. It's causing the black screen issue even while simply watching movies!
If the black screen issue would have been fixed, I would have switched to Kodi with this release.
It should be save to switch to Kodi on Exynos 4 devices as well as ODROID C1, i was able to enable Joystick support in Kodi 15.1, which is a huge improvement over Kodi 14

Please note: right now Kodi 15.1 is build without CEC support, since Kodi 15.1 requires CEC version 3.0.
If you switch to Kodi you should also install the package ogst-starters-kodi for Kodi launchers of the emulators.
Update 3:
Kernel:
- Updated Kernel and headers to 3.10.104+ (with mali r14p0 support and black screen fix)
- Kernel now supports fstrim (increases livetime and speed of SD/eMMC)
- Should have support for more SD cards
- Exchanges XBMC with Kodi 16.1 although XBMC has less issues, Kodi has the better support
- Added DVD support to Kodi, previous versions didn't work due to driver issues.
- Added support for new emulators and Rom Collections
- Updated Debian Jessie to it's latest version
- Updated Chromium to version 53 (new packages available via apt-get)
- Updated Retroarch to version 1.3.6 (with OpenGL ES 3.x support)
- Updated GPU drives to r14p0
- Updated Kodi starter scripts
- Updated retroarch-cores-good and retroarch-cores-bad packages, which are now only meta-packages
- Updated all libretro cores which are now separated packages (see new features)
- Updated configuration for Emulationstation
- Updated configuration for attract mode
- Updated configuration for Rom Collection Browser
- Updated all launchers
- Replaced chromium-browser-odroid package build from Ubuntu sources with "chromium" build from Debian sources
- Replaced clementine with clementine-odroid (Clementine version 1.3.1)
- Replaced fmsx core with bluemsx core in retroarch for better joystick support
- Replaced meteor (GBA) core with mgba core in retroarch for better compatibility and performance
- Replaced fs-uae-gles with fs-uae (see new features)
- Replaced virtualjaguar libretro core with optimized standalone emulator (see new features)
- Replaced yabause libretro core with optimized standalone emulator (see new features)
- Replaced hatari libretro core with standalone emulator (see new features)
- Installed libnfs8 to connect to NFS shares via Kodi
- Installed virtualjaguar-odroid (ATARI Jaguar Emulator)
- Installed residualvm-odroid (interpreter for Monkey Island 4, Grim Fandango and Mysth 3)
- Installed easyrpg-player-odroid (interpreter for RPGMaker 2000 and 2003 games)
- Installed kodi-addons-odroid (for PVR Addons, ScreenSafer and other Addons)
- Installed mpv and set it as default player for videos
- Installed yabause-odroid (Sega Saturn Emulator)
- Installed dolphin-emu-odroid (Nintendo Wii/GC Emulator)
- Installed hatari-odroid (Atari ST Emulator)
- Installed moonlight-embedded (NVIDIA GameStreaming)
- Installed atari800-odroid (Atari 8bit computers and A5200 console Emulator)
- Installed gcdemu and it's dependencies (Virtual CD emulator), required for Sega Saturn
- Added support for Amiga 1200 (see new features)
- Added support for Amiga CD32 (see new features)
- Added support for CPS3 ROMS (see new features)
- Added support for EasyRPG (see new features)
- Added support for ResidualVM games (see new features)
- Added support for Atrai800 (see new features)
- Added support for moonlight (see new features)
- Added a new launcher for Amiga CD32 games
- Added a new launcher for Amiga 1200 games
- Added a new launcher for CPS 3 ROMS
- Added a new launcher for EasyRPG player
- Added a new launcher for ResidualVM
- Added a new launcher for Dolphin Emu
- Added a new launcher for Atari 800
- Added a script for fstrim which is done daily if supported
- Iceweasel was replaced with FireFox (due to Debian policies)
- Kodi toggle with CTRL + ALT + K (see new features)
- Fixed an issue with wrong default applications
- Fixed setting on gnome-mplayer (set default video renderer to xvmc which seems to work "somewhat")
- Fixed an issue with fs-uae where all games would share the same save states.
- Fixed some group permissions for odroid user
- Fixed an issue where NeoGeo games were shown as MSX in EmulationStation
- Installed qt5-xu3-fix (QT5 fix for XU3/XU4 devices)
- Installed libsdl1.2debian from my repository (fixes a graphical glitch on XU3/XU4 if you change resolution)
- Added a cron job which can start the update manager (only if the user is in front of the ODROID)
- Added a fix to address some vsync issues in some games/programs/emulators (see new features/Known issues)
- Changed /etc/fstab to use UUID for bootfs rather than /dev/mmcblk0p1 (necessary for Kernel 4.9.x)
- Added new config files for fs-uae (optimized)
- Updated all starter scripts to match new cores path as well as some other optimizations
- Updated DreamCast starter to auto detect joysticks
- Re-enabled threadded video for all retroarch cores (improves performance)
- Changed config for desmume core to use right analog stick to emulate mouse pointer
- Activated "rumble" support for mupen64plus core
- Configured caja to not open new media or ask what to do if a CD-ROM or USB stick is inserted
Kodi Toggle:
Kodi toggle is a small script I wrote to quickly start and end Kodi. If you're are on Desktop and Kodi is not running CTRL + ALT + K will start Kodi.
If you are in Kodi and press CTRL + ALT + K, Kodi will be forced closed. The last one is usefull on times when Kodi is "hanging" when you try to exit it (for example if you use CEC).
Added Nintendo Wii and GameCube support:
Using dolphin emu allows for playing of Nintendo Wii and GameCube games.
This is an older version of Dolphin Emu, which still supported armhf as an architecture.
Newest versions of Dolphin only support arm64. Also Dolphin requires OpenGL ES 3.x which makes the XU3/XU4 currently the only ODROID boards this emulator will work on.
Still since most optimizations require a 64bit processor, this emulator is still quite slow, it's nice for a little show off, but games are barely playable.
2D games/scenes are rather fast and full speed, but 3D elements are very slow. So don't expect much from this emulator, as I said, it's mostly for showing off.
Added Amiga 1200 support:
Amiga 1200 (AGA) support is added through fs-uae.
This was added to allow you to play the graphical enhanced AGA games of the Amiga which run best on a Amiga 1200.
Settings were optimized and the emulator should work for Exynos 4 and Exynos 5 board from HardKernel (ODROID X2/U2/U3/XU3/XU4).
If you overclock your ODROID X2/U2/U3 to 2GHz most games should run full (or nearly full) speed (tested with Banshee AGA).
The C0/C1/C1+ is currently unable to handle Amiga 1200 at all.
This is most likely a limitation of the emulator. There are other emulators such as uae4arm which give better performance, but fs-uae generally has the better features.
ROMS go into /home/odroid/ROMS/AMIGA1200 either as .adf or .adz disk image files, or as .zip files including .adf or .adz files (for games with multiple disk).
This requires amiga-os-310-a1200.rom Kickstart file in /home/<USER>/FS-UAE/Kickstarts/
Added Amiga CD32 support:
Same as Amiga 1200 but with Amiga CD32 images. (Also tested with Banshee CD32).
ROMS go into /home/odroid/ROMS/AMIGACD32 either as .iso .cue or .zip file including .cue, .iso files (will be extracted to /tmp so make sure you have enough space)
This requires amiga-os-310-cd32.rom and amiga-ext-310-cd32.rom Kickstart files in /home/<USER>/FS-UAE/Kickstarts/
Additional infos about Amiga emulation:
I've replaced the old fs-uae-gles emulator (a hack to use GLESv1 instead of OpenGL) with the current version of fs-uae from upstream project.
It uses gl4es (Wrapper for OpenGL -> OpenGL ES) to work in the same way. It's a more advanced version of the fs-uae emulator, and might see some arm dynamic recompiler in the future.
I've created 3 config templates under .config/fs-uae for A500+, A1200 and CD32. These config files are used as templates and are copied once you start a game.
This fixes an issue with save states, which were shared in the past but now each game has their own save states.
I also changed the accuracy from 1 to 0 on all templates, this should boost speed of the emulator quite a bit, on the cost of some compatibility.
There's also an option to use -1 instead to boost speed even more, but some games won't work anymore (tested with Banshee AGA/CD32).
Save States are stored under /home/<USER>/Documents/FS-UAE/Save States/.
FS-UAE is a very complex emulator, it also allows to use HardDisk files so if you want to explore the capabilities of this emulator I encourage you to check out the options on their WebSite to create own configs.
L1 and R1 on XBox 360 controller should double as left and right mouse buttons, since some games require this to skip demos and such.
Added CPS3 support:
Similar to the CPS1 and CPS2 there's now a separate core for the CPS3 as well. It's very small since there are only a few games for it and therefor saves a lot of ressources.
CPS3 games, don't seem to need any BIOS, but are very picky with the roms itself:
Check your rom files; if they contain for example files like: jojo-simm1.0 jojo-simm1.1 sfiii-simm1.0 sfiii-simm1.1 then they are fine. If instead they contain files like 10, 30 40, 90 etc. then these roms won't work.
You could still place the same ROMS in the FBA or MAME folder and they probably run as well, but the cores are much bigger and use more ressources (~300KB CPS3 libretro core vs ~130MB MAME libretro core).
Added EasyRPG support:
EasyRPG is a reimplementation of RPG Maker 2000 and RPG Maker 2003 engine allowing to play these games on modern system including ODROIDs.
For this to work copy the games you want to play in the folder /home/<USER>/ROMS/EasyRPG/
Games should have a "Game-Folder" inside which is the RPG_RT.ini and other game files.
ONLY RPG Maker 2000 and 2003 games are currently supported.
Please Note: Some games require RTP 2000 and RTP 2003 package to be installed: http://tkool.jp/support/download/rpg2000/rtp and http://tkool.jp/support/download/rpg2003/rtp
These packages are for "free" but are not allowed to redistribute, so I can't include them into the image.
You can download them and install them on a Windows PC or use WINE to install them on a Linux PC. Copy the RTP folder over to /home/<USER>/ROMS/EasyRPG/RTP2000 and /home/<USER>/ROMS/EasyRPG/RTP2003 if needed. The path is already included in the starter, so make sure you name the folders correctly.
Added ResidualVM support:
I've added a build of ResidualVM which was optimized by @ptitSeb to use OpenGL ES 2.0 for hardware scaling and drawing.
ResidualVM is a engine similar to ScummVM but only supports some 3D games.
The games that are officially supported are: Grim Fandango and Escape from Monkey Island (Monkey Island 4) and Myst 3 Exile.
There was work done for The Longest Journey as well, but a lot of features are still missing.
Added Atari ST support:
I've added Hatari emulator for Atari ST, STE, TT and Falcon computers.
A new folder /home/<USER>/ROMS/ATARI/Atari ST/ has been created in which you can place roms with the endings: .st, .stx, .img, .rom, .raw, .ipf, .ctr, .msa, .dim
The emulator requires a bios file called tos.img in the folder /home/<USER>/.hatari/. I provide something called "EmuTOS" which is an opensource remake of the original Atari BIOS.
And can be found here: http://emutos.sourceforge.net/en/
Since these are computers they often require the input of keyboard or mouse commands, therefore I mapped the mouse to the right analog stick of your gamepad (XBox360 by default) and used the left shoulder button for left mouse click.
The button A is mapped for fire, B is mapped as "Space", which is often alternative fire (for example in Turrican), the D-Pad is direction keys on a gamepad.
There are many different options for the emulator I go by default with a Atari Mega ST with 4MB RAM and MMU. I found this was working for many games, but probably not for all.
Sadly I'm rather new to Atari and don't know if this is the best default or not. You can change the settings by pressing F12 on the keyboard.
VirtualJaguar:
VirtualJaguar is a Atari Jaguar emulator and much faster and more compatible than the current virtualjaguar libretro core.
Thanks to a lot of optimization from mostly @ptitSeb and myself this emulator runs rather well on the XU3/XU4. The U3 is also able to play some games nicely (but not all).
Overclocking your ODROID X2/U2/U3 to 2GHz should give you decent performance on many games, but even with 1704 MHz it should work fine for some games (tested with Rayman).
Although I created a version for C1 as well it's probably not worth trying.
Yabause:
Yabause is a Sega Saturn emulator and replaces the libretro core (with the same name).
It's faster and highly optimized thanks to @ptitSeb and myself. It has two differnt fronends Qt and GTK, while I prefer and setup Qt, GTK works as well, and I found at least one game that only works with GTK, but there are more games that only work under the Qt version, so I stick with that, it's also slightly faster. It uses @ptitSeb's gl4es for scaling which makes it quite fast.
The emulator has very high demands, and might only work on the XU3/XU4, it might work on the U3 if you overclock it, but I wouldn't count on it (C1 don't even try).
I've created a start script that uses cdemu in the background to mount images, since many images for the Sega Saturn come with audio tracks which could not be played otherwise.
The emulator will use /dev/sr0 (first CD device) for the games, if you have a CD-Rom connected, this might cause issues.
You can change settings by pressing CTRL + S in the emulator. Here you can adapt controller config which is currently mapped for a XBox 360 controller.
Please note, that even on the XU3/XU4 this emulator won't always run full speed.
If the controller doesn't work to exit the emulator, you can press CTRL + Q to do so.
Atari 800 support:
Atari 800 is an emulator for Atari 8 bit computers 400, 800, 1200XL, 600XL, 800XL, 130XE, XEGS as well as the Atari 5200 console.
Supported file extensions are .a52 .bas .bin .car .xex .atr .xfd .dcm .atr.gz .xfd.gz
The emulators requires the following BIOS files which need to be placed in /home/<USER/ROMS/
ATARIOSA.ROM (BIOS for Atari 400/800 PAL),
ATARIOSB.ROM (BIOS for Atari 400/800 NTSC),
ATARIXL.ROM (BIOS for Atari XL/XE OS),
5200.rom (BIOS for the Atari 5200),
5200a.rom (optional),
ATARIBAS.ROM (BIOS for the BASIC interpreter)
The emulator supports OpenGL for some effects, which I use throug gl4es from @ptitSeb
I also added a config for Antimicro to support XBox360 controller. (SELECT = SELECT, XBox Key = OPTION, Start = START, A = FIRE, Left Analog Button = Exit, D-Pad = Movement)
The emulator has it's own joystick support, but I found it very unsatisfying and inaccurate since it's using the analog stick for movement and D-Pad is used as fire, therefore I disabled joystick in my start script and use antimicro and keyboard controlls instead. (Num Block 4,5,6,8 = Movement, right ctrl = FIRE, F2 = SELECT, F3 = OPTION, F4 = START, F9 = EXIT)
You can use F1 to configure the emulator if needed.
Moonlight NVIDIA GameStreaming support:
I've preinstalled moonlight-embedded which can be used if you have a Nvidia GeForce 660 or higher to stream games from your PC to your ODROID. This allows you to play your games on TV, even with controllers and such.
I also preinstalled Luna which is a Kodi addon that allows you to use Kodi as a launcher for your Nvidia GameStreaming games. Together with scrapper for the games.
VSYNC fix:
I added the user to the video group. The video group has access to /dev/fb0 the framebuffer device that draws what's on the screen.
This is good, cause it allows for vsync since now programs know what frequency the TV/Monitor is running on and can adjust accordingly.
This reduces (removes) alot of the tearing issues on the XU3/XU4 especially with 2D sidescollers and platformers.
Sadly some programs have major issues with this information. Mupen64plus for example will always run too slow. Games that should run on 50 FPS (PAL games) will run only on 40 FPS, if your TV/Monitor runs on 60Hz.
If your TV/Monitor runs on 50 Hz instead it will be even less and the game runs only in 32 FPS. Something is really wrong here.
Same goes for moonlight you will have delays of up to 15 seconds. Which is unusable in 1080p60 Hz. Only 720p@30 Hz will work correctly.
I've wrote a script and added entries to for sudo to allow this script to run by the user.
This script will alter permissions for /dev/fb0 so the group video has no longer access to the information of this device.
With that both N64 and moonlight are working fine again.
Other programs might need this as well, if you encounter speed issues with other programs/games let me know, and I will try to adjust the start for these programs.
New libretro cores for retroach:
I've updated all cores for retroarch and added some new as already mentioned above. Many cores were renamed by the developers and I cleaned out cores that were double or renamed.
I also splitted all cores in individual packages rather than having one huge packge (retroarch-cores-good and retroarch-cores-bad). The old packages are now meta packages for the cores.
This allows me to update single cores rather than updating the entire packge all the time.
I also updated my build process and increased performance of most cores. Genereally I saw an increase of performance between 5~10% depending on the core.
Most of the cores this won't matter, but some cores can benefit from this.
4do core performance nearly increased by 20% due to better optimization, where when you use a XU3/XU4 this means most games should now work close to full speed.
PCFX performance also increased over 21% which means the game should run very nice and smooth now.
TyrQuake core increased performance about 13% which allows for steady gameplay at a high 1280x800 resolution on the XU3/XU4.
virtualjaguar core increased performance around 40% which sounds great, but the core is far from being full speed, therefore I use the standalone emulator now, which has much better performance, thanks to some heavy optimization from @ptitSeb.
The biggest step forward is the picodrive core. Although working perfectly fine in the past, it never had dynamic recompiler working. I was now able to activate it, and I can say it's very hard to track the increase of the performance, but it's probably over 140% faster than before, means it's more than twice as fast. This allows for very good Sega32x emulation, which was somewhat laggy in the past, especially on slow devices such as the ODROID C1 which weren't able to play Sega32x games, this should now be possible.
Recently there were a lot of improvements on the libretro front and I will probably update cores soon again, or maybe switch out some cores. There are new cores for N64 which may work much better than the old ones and other stuff I want to look into. So stay tuned.
==========================================================================================
For more informations follow the link in my signature to the U2 forum which this image is based on.
Known issues:
- Some games are known to have tearing, especially 2D side-scrollers. With the latest drivers this should be reduced, but not 100% fixed.
- The new GPU drivers, although having better vsync and less tearing, are a little slower than the old drivers.
- The new GPU drivers may prevent some programs to run properly, they are too slow although the drivers could display them faster, this is because some programs can not work with the way the the driver handles vsync, if you experience something like this, you can use
sudo video-fix.sh on
before starting your prorgram, this will disable the vsync support, you can later reactivate it withsudo video-fix.sh off