Retropie 4.x on Odroid C2
-
Hi all
I'm trying to build Retropie on Odroid C2, following Odroid C1 guidelines (https://github.com/retropie/retropie-setup/wiki/Odroid).
I started from Odroid C2 Ubuntu 16.04 minimal
I updated scriptmodules/system.sh
....
ODROIDC) __platform="odroid-c1" ;; ODROID-C2) __platform="odroid-c2" ;;
....
function platform_odroid-c1() {
__default_cflags="-O3 -mcpu=cortex-a5 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizations"
__default_asflags=""
__default_makeflags="-j2"
__platform_flags="arm armv7 neon mali"
__qemu_cpu=cortex-a9
__has_binaries=0
}
function platform_odroid-c2() {
__default_cflags="-O3 -march=armv8-a+crc -mtune=cortex-a53 -funsafe-math-optimizations"
__default_asflags=""
__default_makeflags="-j2"__platform_flags="arm armv8 neon mali"
__platform_flags="armv8 neon mali" __qemu_cpu=cortex-a9 __has_binaries=0
}
Build goes a bit far but by the end it complains about missing armh deb packages, which is normal as arm64 packages have been built :
tmp/build/sdl2/libsdl2-2.0-0_2.0.4+4mali_arm64.deb tmp/build/sdl2/libsdl2-dbg_2.0.4+4mali_arm64.deb tmp/build/sdl2/libsdl2-dev_2.0.4+4mali_arm64.deb
Help/feedbacks welcomed
-
Remove mali because if you add this flag RetroPie-Setup tries to build a sdl2 mali armhf package instead of a arm64 package.
-
Thanks.
Just updated my fork (https://github.com/hgomez/RetroPie-Setup/blob/master/scriptmodules/system.sh) and restarted build :)
I'll do a PR if I succeed to have a working setup on Odroid C2
-
new build complain about missing libsdl1.2-dev and libraspberrypi-dev ;/
-
thank you for your efforts to get RetroPie running on the Odroid C2 .
I love Retropie, and I own a C2, and think the power it adds will be a great gaming system.
-
@detron well I'm just trying to figure how to build it on C2, unsure if it will be easy or not.
I posted also on Odroid Forum (http://forum.odroid.com/viewtopic.php?f=136&t=23889) to see if someone already tried to build it -
I still appreciate knowing SOMEONE is trying. I do not have the right knowledge to try it myself.
-
I expect odroid C2 runs a full X11 environment. I would start from scratch and run RetroPie-Setup with
sudo __platform=generic-x11 ./retropie_setup.sh
and look what happens. Or addx11
to your__platform_flags
. -
I'll have a look to this approach too :)
-
@detron libretro testing ppa (http://ppa.launchpad.net/libretro/testing/ubuntu/pool/) contains many packages for arm64, so it could be something to investigate too. I'll try to rebuild emulationstation deb on Odroid C2 too
-
thank you. I am very comfortable with linux, but I do not have a good understanding of what truly goes into retroarch and emulationstation setup.
good luck, and if you get anywhere, please let me know.
thank you again
-
Hi.
I'm trying to compile retropie using the system.sh proposed in the 1st post.
I started with emulationstation and I successfully compiled it.
Below my system:- Odroid C2 rev 0.2
- Ubuntu standard image: ubuntu64-16.04lts-mate-odroid-c2-20161017
I followed the recommended procedure for ODROID C1 except for the last command:
sudo apt-get install -y git git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git cd RetroPie-Setup sudo __platform=odroid-c2 ./retropie_setup.sh
I changed also the CMakeLists.txt with the correct libMali.so path.
#check if we're running on olinuxino MESSAGE("Looking for libMali.so") if(EXISTS "/usr/lib/aarch64-linux-gnu/libMali.so") MESSAGE("libMali.so found") set(GLSystem "OpenGL ES") else() MESSAGE("libMali.so not found") endif()
I stopped lightdm and when I run emulationstation I can see the correct graphic screen.
-
Hi.
Second step.
I successfully compile retroarch and lr-mame2003.
For retroarch I used the following build_retroarch() in retroarch.sh:function build_retroarch() { local params=(--enable-sdl2) ! isPlatform "x11" && params+=(--disable-x11 --enable-opengles --disable-ffmpeg --disable-sdl --enable-sdl2 --disable-oss --disable-pulse --disable-al --disable-jack) isPlatform "rpi" && params+=(--enable-dispmanx) isPlatform "mali" && params+=(--enable-mali_fbdev) isPlatform "arm" && params+=(--enable-floathard) # isPlatform "neon" && params+=(--enable-neon) isPlatform "armv8" && params+=(--disable-wayland --disable-vg --disable-miniupnpc) ./configure --prefix="$md_inst" "${params[@]}" sed -i 's/HAVE_OSS_LIB = 1/HAVE_OSS_LIB = 0/g' config.mk sed -i 's/HAVE_VIDEOCORE = 1/HAVE_VIDEOCORE = 0/g' config.mk sed -i 's/OPENGLES_LIBS = -lGLESv2 -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm/OPENGLES_LIBS = -lGLESv2 -lEGL/g' config.mk make clean make md_ret_require="$md_build/retroarch" }
And I patched
libretro-common/include/glsym/glsym_es2.h
adding:#include <stdint.h>
in the first line.
For lr-mame2003 the compilation has no problems.
I tried a few games and it works!
roleo
-
@roleo you shouldn't need to modify
config.mk
afterwards - the raspberry pi link libs/video core stuff should only be added if the raspberry pi dev libs are present on the system - which shouldn't be the case.are you building to run on X or framebuffer ?
-
@BuZz
I know but if I don't modify the config.mk the compilation process doesn't complete.
And I didn't find an option to disable videocore from configure.
Similar for OSS: the compilation is ok but the linker search for -lossaudio.
Maybe I missed a parameter?I'm building on framebuffer, X is stopped.
-
I will look into getting an ODroid-c2 board.
-
@BuZz
Is there a donation link?
I think there are a lot of users interested. -
@roleo https://retropie.org.uk/donate/
I have sent an email to Hardkernel to see if they would be interested in providing any development boards (as it would benefit them too). If not I will buy an ODroid-C2 to start with.
-
Update.
I compiled also lr-fbalpha adding the following section to makefile.libretro:else ifeq ($(platform), armv8) TARGET := $(TARGET_NAME)_libretro.so fpic := -fPIC SHARED := -shared -Wl,-no-undefined -Wl,--version-script=$(LIBRETRO_DIR) PLATFORM_DEFINES += -march=armv8-a+crc -mcpu=cortex-a53 -ffast-math HAVE_NEON = 1 ENDIANNESS_DEFINES := -DLSB_FIRST CFLAGS += -DARM
However I can not compile lr-imame4all.
-
Update.
lr-fceumm ok without problems.
lr-nestopia ok without problems.
lr-snes9x2010 ok adding the following section to Makefile.libretro:# ARMv8 else ifneq (,$(findstring armv8,$(platform))) EXT ?= so TARGET := $(TARGET_NAME)_libretro.$(EXT) SHARED := -shared -Wl,--no-undefined fpic := -fPIC CC ?= gcc CFLAGS += -march=armv8-a+crc -mcpu=cortex-a53 -DARM ASFLAGS += -mcpu=cortex-a53
lr-imame4all compiles but doesn't work.
No chances with reicast: too asm parts...
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.