- 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)
New Features:Kodi Toggle:
- 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 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
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
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),
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.
Not sure if I missed something, probably some BIOS files that I forgot to mention or something. It's sometimes hard to keep everything in check.
Anyway, currently only the new image has all the new features, updates for "older" images will be available soon, but since these updates affect all ODROID GameStation Turbo images (ODROID X,X2,U2/U3,XU3/XU4,C0/C1/C1+) I have to be a little careful with the updates and make sure every board has access to the updates.
This will take a couple more days, but I hope I can deliver soon.
The other boards, won't get a new image though, when the update process works, there's no need for that. For the XU3/XU4 it made sense, since it used an older Kernel which had more issues with SD cards and therefore the image wouldn't even start. So having a new base image makes sense, but not for the other boards, where the Kernel hasn't changes in years.
Also: I hereby drop the support of the old Debian Wheezy image, since Debian Wheezy is very outdated, and even Debian Jessie will soon be "old-stable", since Debian Stretch is around the corner.
After all tasks are done, I might start working on a C2 image, but no promises yet, I will also work on update cores, emulators and frontends more frequently now that I can updated them all separately from each other.
At some point I will have to start working on Debian Stretch, but I've already seen a lot of issues and it could be quite hard to get a proper image for Debian Stretch, so don't expect anything right after Debian Stretch is released.
As always I'm looking forward to feedback and suggestions for improvements.