Retropie 4.x on Odroid C2
-
@BuZz
Thanks - some games are working! and I noticed mame2010 is broken as follows:
g++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DNDEBUG -DFLAC__NO_DLL
-DNATIVE_DRC=drcbe_x86_be_interface -DDISABLE_MIDI -DGIT_VERSION="" 81c75bb""
-D__LIBRETRO__ -fsigned-char -finline -fno-common -fno-builtin -fweb -frename-r
egisters -falign-functions=16 -fsingle-precision-constant -D__LIBRETRO__ -fstric
t-aliasing -fno-merge-constants -DALIGN_INTS -DALIGN_SHORTS -ffast-math -fPI
C -pipe -O3 -fno-strict-aliasing -O2 -march=native -ftree-vectorize -funsafe-mat
h-optimizations -pipe -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strin
gs -Wno-sign-compare -Wno-conversion -I./src/osd/retro/libretro-common/include -
I./src/mame -Iobj/retro/mame/layout -I./src/emu -Iobj/retro/emu -Iobj/retro/emu/
layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/e
xpat -I./src/lib/util -I./src/lib/libjpeg -fno-delete-null-pointer-checks -x c+- -std=gnu++98 -Woverloaded-virtual -c src/mame/drivers/albazc.c -o obj/retro/ma
me/drivers/albazc.o
In file included from ./src/emu/emu.h:54:0,
from src/mame/drivers/albazc.c:13:
./src/emu/eminline.h: In function ‘void* compare_exchange_ptr(void* volatile*, v
oid*, void*)’:
./src/emu/eminline.h:349:60: error: cast from ‘void*’ to ‘INT32 {aka int}’ loses
precision [-fpermissive]
result = compare_exchange32((INT32 volatile )ptr, (INT32)compare, (INT32)exch
ange);
^
./src/emu/eminline.h:349:76: error: cast from ‘void’ to ‘INT32 {aka int}’ loses
precision [-fpermissive]
Looks like add some flags for 64bit support to build.
Thanks,
Nakata Mahog++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DNDEBUG -DFLAC__NO_DLL
-DNATIVE_DRC=drcbe_x86_be_interface -DDISABLE_MIDI -DGIT_VERSION="" 81c75bb""
-D__LIBRETRO__ -fsigned-char -finline -fno-common -fno-builtin -fweb -frename-r
egisters -falign-functions=16 -fsingle-precision-constant -D__LIBRETRO__ -fstric
t-aliasing -fno-merge-constants -DALIGN_INTS -DALIGN_SHORTS -ffast-math -fPI
C -pipe -O3 -fno-strict-aliasing -O2 -march=native -ftree-vectorize -funsafe-mat
h-optimizations -pipe -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strin
gs -Wno-sign-compare -Wno-conversion -I./src/osd/retro/libretro-common/include -
I./src/mame -Iobj/retro/mame/layout -I./src/emu -Iobj/retro/emu -Iobj/retro/emu/
layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/e
xpat -I./src/lib/util -I./src/lib/libjpeg -fno-delete-null-pointer-checks -x c+- -std=gnu++98 -Woverloaded-virtual -c src/mame/drivers/albazc.c -o obj/retro/ma
me/drivers/albazc.o
In file included from ./src/emu/emu.h:54:0,
from src/mame/drivers/albazc.c:13:
./src/emu/eminline.h: In function ‘void* compare_exchange_ptr(void* volatile*, v
oid*, void*)’:
./src/emu/eminline.h:349:60: error: cast from ‘void*’ to ‘INT32 {aka int}’ loses
precision [-fpermissive]
result = compare_exchange32((INT32 volatile )ptr, (INT32)compare, (INT32)exch
ange);
^
./src/emu/eminline.h:349:76: error: cast from ‘void’ to ‘INT32 {aka int}’ loses
precision [-fpermissive]
- -std=gnu++98 -Woverloaded-virtual -c src/mame/drivers/albazc.c -o obj/retro/ma
-
following patch will fix build of lr-mame2010 on ODROID-C2 (apparently you want a cleaner patch, though. sorry).
--- RetroPie-Setup/scriptmodules/libretrocores/lr-mame2010.sh~ 2017-01-16 12:38:56.757032984 +0900
+++ RetroPie-Setup/scriptmodules/libretrocores/lr-mame2010.sh 2017-01-16 22:02:45.627500893 +0900
@@ -23,8 +23,8 @@
make clean
local params=()
isPlatform "arm" && params+=("VRENDER=soft" "ARM_ENABLED=1")- make "${params[@]}" ARCHOPTS="$CFLAGS" buildtools
- make "${params[@]}" ARCHOPTS="$CFLAGS"
- make "${params[@]}" ARCHOPTS="$CFLAGS" buildtools PTR64=1
- make "${params[@]}" ARCHOPTS="$CFLAGS" PTR64=1
rpSwap off
md_ret_require="$md_build/mame2010_libretro.so"
}
-
@maho please use a code block and format your post.
Thanks. There is a bunch of stuff that won't build still, but the most common modules should be OK. It should be considered a wip still.
-
@BuZz
sorry, lr-mame2010 was still broken at:
g++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DPTR64 -DNDEBUG -DFLAC__NO_DLL -DNATIVE_DRC=drcbe_x64_be_interf
ace -DDISABLE_MIDI -DGIT_VERSION="" 81c75bb"" -D__LIBRETRO__ -fsigned-char -finline -fno-common -fno-builtin -fweb -f
rename-registers -falign-functions=16 -fsingle-precision-constant -D__LIBRETRO__ -fstrict-aliasing -fno-merge-constants
-DALIGN_INTS -DALIGN_SHORTS -ffast-math -fPIC -pipe -O3 -fno-strict-aliasing -O2 -march=native -ftree-vectorize -fun
safe-math-optimizations -pipe -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strings -Wno-sign-compare -Wno-conver
sion -I./src/osd/retro/libretro-common/include -I./src/mame -Iobj/retro64/mame/layout -I./src/emu -Iobj/retro64/emu -Iob
j/retro64/emu/layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/expat -I./src/lib/util -I./
src/lib/libjpeg -fno-delete-null-pointer-checks -x c++ -std=gnu++98 -Woverloaded-virtual -c src/osd/retro/retrowork.c -o obj/retro64/osd/retro/retrowork.o
src/osd/retro/retrowork.c: In function ‘int osd_work_queue_wait(osd_work_queue*, osd_ticks_t)’:
src/osd/retro/retrowork.c:264:26: error: ‘osd_yield_processor’ was not declared in this scope
osd_yield_processor();
^
src/osd/retro/retrowork.c: In function ‘int osd_work_item_wait(osd_work_item*, osd_ticks_t)’:
src/osd/retro/retrowork.c:499:25: error: ‘osd_yield_processor’ was not declared in this scope
osd_yield_processor();
^
src/osd/retro/retrowork.c: In function ‘void* worker_thread_entry(void*)’:
src/osd/retro/retrowork.c:650:27: error: ‘osd_yield_processor’ was not declared in this scope
osd_yield_processor();
^
Makefile:686: recipe for target 'obj/retro64/osd/retro/retrowork.o' failedBest,
Nakata Maho -
Just wanted to add my thanks for your work on this. I've had my C2 sitting around for months, not getting much use. I installed everything last night. Haven't gotten a chance to test any emulators yet, but so far everything has compiled (other than Mame2010 and mupen64), and ES launches on autostart. Keep up the great work!
-
@maho I've not applied any fix. But your diff isn't readable due to not using a code block on the forum. Use three backticks. Having said that I know how to fix it and will do. Cheers
-
@jenkinl1302 a lot of arm optimisations are lost due to aarch64. If odroid had a 32bit version of their OS, performance on some emulators would be better. Some emulators are disabled currently due to build issues too.
However, the main stuff works.
-
Hi, following patch will fix build lr-mame2010. I verified that it builds.
$ git diff . diff --git a/scriptmodules/libretrocores/lr-mame2010.sh b/scriptmodules/libretrocores/lr-mame2010.sh index 1aa5538..69780ff 100644 --- a/scriptmodules/libretrocores/lr-mame2010.sh +++ b/scriptmodules/libretrocores/lr-mame2010.sh @@ -23,6 +23,7 @@ function build_lr-mame2010() { make clean local params=() isPlatform "arm" && params+=("VRENDER=soft" "ARM_ENABLED=1") + isPlatform "aarch64" && params+=("VRENDER=soft" "ARM_ENABLED=1" "PTR64=1") make "${params[@]}" ARCHOPTS="$CFLAGS" buildtools make "${params[@]}" ARCHOPTS="$CFLAGS" rpSwap off
-
Does anyone have a working image available to download? I have been banging my head against a wall for a week now following every lead trying to get this to work. I would pay for a working image at this point as I am beyond frustrated.
My steps:
Started with the 16.04 ubuntu minimal image dated 8/15/2016 (newest available)
sudo apt-get update && sudo apt-get upgrade
Added user
installed git
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
cd RetroPie-Setup
sudo ./retropie_setup.sh (I did not have any issues compiling)All of the core, main, opt, and driver packages I installed say (installed) and there didn't appear to be any compiling errors but when I run emulationstion I get:
lvl0: Error initializing SDL! mali-fbdev: Could not open framebuffer device lvl0: Renderer failed to initialize! lvl0: Window failed to intialize!
Several people say they tested it on a clean minimal image and everything works fine so what did I do wrong?
-
@dirtyrobinson Did you add your user to the video & input group ?
-
@BuZz I did add my user to those groups
-
@dirtyrobinson not sure but it might be some issue with the latest drivers or something else.
I will test with the latest odroid c2 image when I get some time.
-
@BuZz I started with ubuntu64-16.04-minimal-odroid-c2-20160815.img. Maybe I'll try one of the older minimal images.
-
@dirtyrobinson Actually, I got it to pop up.... I was digging through the Odroid forums looking at issues with the minimal ubuntu image and someone mentioned an issue with upgrading that creates 4.4.0-31-generic files in the /boot and /var/lib/initramfs-tools directories. Well I deleted those files so the only ones left had 3.14.xx. After removing those files, I rebooted and emulationstation started without issues. You can spend forever fighting with something but right after reaching out for help, you find the solution. I'll test everything just to make sure it installed correctly.
https://forum.odroid.com/viewtopic.php?f=136&t=24272&p=175697
-
@dirtyrobinson thanks for the info.
-
The majority of things work. I can't get the Samba shares to allow for file transferring, tried changing all the permissions but it's still unable to write. This may be because the directory is located in the USB ROM Transfer directory so I don't know if a mounted drive's permissions are causing any of that issue. The only emulator not working is the N64 emulator. It just fails to boot. The popup says the log is located in /dev/shm/runcommand.log and here is what that file had:
Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-parallel-n64/parallel_n64_libretro.so --config /opt/retropie/configs/n64/retroarch.cfg "/home/odroid/RetroPie/roms/n64/Legend of Zelda, The - Ocarina of Time (U) (GC) [!].z64" --appendconfig /dev/shm/retroarch.cfg /opt/retropie/supplementary/runcommand/runcommand.sh: line 965: 3083 Aborted /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-parallel-n64/parallel_n64_libretro.so --config /opt/retropie/configs/n64/retroarch.cfg "/home/odroid/RetroPie/roms/n64/Legend of Zelda, The - Ocarina of Time (U) (GC) [!].z64" --appendconfig /dev/shm/retroarch.cfg
-
@dirtyrobinson please update retropie-setup and try lr-mupen64plus. (Untested on odroid c2, but ok on odroid xu).
-
I updated the script but I still do not see a package option for lr-mupen64plus
-
I was going to build mupen64plus from source and see if it runs but I came across the Lakka image, all of the emulators are playing perfectly including N64 which is using Mupen64Plus. I may revisit retropie in the future but I think I'll buy an Xu4 for that since there's a very nice gamestation turbo image available on the odroid forums. Thanks for helping though.
-
So reading back through this thread, I see talk about EmulationStation and mali libraries as well as those who have had success compiling. I just am not there. Is this something that still works in the main branch? It keeps complaining about mali-fbdev - though I see above that it should build that instead of trying to install with apt(?)
Basically I'm just wondering if this is working for anybody else right now. Seems like there was a lot of work done on this, but perhaps maybe isn't current with other changes?
Edit: Was missing a couple packages it looks like:
Install: libgles1-mesa-dev:arm64 (12.0.6-0ubuntu0.16.04.1), libgles1-mesa:arm64 (12.0.6-0ubuntu0.16.04.1, automatic)
Those have it at least compiling. Perhaps they need to be added to the script?
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.