Retropie 4.x on Odroid C2
-
@BuZz
Ok, I will try again tomorrow. -
@ElementZero Unfortunately I had to put this on hold since my HDMI port apparently broke.
I can say that the minimal image IS broken if you do apt-get but apparently it's caused by u-boot being bad so if you hold that back then the upgrade is just fine.
-
@BuZz
I tried with a minimal image and autostart works properly.
Thank you.
But I had the same problem with EmulationStation as ElementZero: I changed the flag from -j4 to -j2 to complete the build process. -
@roleo Thanks. I will lower it to j2 by default
-
@BuZz Dear BuZz, I have just testted the trunk (61085b9) by
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
and it uses SDL 2.0.5. This version with Mali failed like following:
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c:128:5: error: ISO C90 forbids mixed declarations and
code [-Werror=declaration-after-statement]
int fd = open("/dev/fb0", O_RDWR, 0);
^
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c:132:5: error: ISO C90 forbids mixed declarations and
code [-Werror=declaration-after-statement]
struct fb_var_screeninfo vinfo;
^
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c:145:5: warning: ignoring return value of 'system', de
clared with attribute warn_unused_result [-Wunused-result]
system("setterm -cursor off");
^
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c: In function 'MALI_VideoQuit':
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c:185:5: warning: ignoring return value of 'system', de
clared with attribute warn_unused_result [-Wunused-result]
system("setterm -cursor on");
^
cc1: some warnings being treated as errors
.Looks like Mali part uses C99> syntax. You may want to fix it.
Best,
Nakata Maho -
@maho this should be resolved now.
-
@BuZz thanks for your fastest commit. I veerified that SDL2+Mali is no longer broken.
Best,
Nakata Maho -
@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.
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.