Suggested modifications for Odroid c1
-
Hello,
Retropie-Setup can't actualy work on odroid C1 due to some mistakes in script files that make compilation fail.
More precisely, the following components produce errors during configure or make:- Retroarch : bad / missing cflags and incorrect method to get "available memory" on C1
- lr-flycast : missing correct platform argument for c1
- Amiberry: missing correct platform argument for c1
May I suggest the modifications below, so these 3 components compile and work has expected on odroid c1 using official Ubuntu 18.04 ?
For Retroarch:
--- system.sh 2020-03-14 22:54:01.395964875 +0000 +++ system.sh.new 2020-03-15 11:25:05.936515158 +0000 @@ -47,7 +47,7 @@ function conf_memory_vars() { __memory_total_kb=$(awk '/^MemTotal:/{print $2}' /proc/meminfo) __memory_total=$(( "$__memory_total_kb" / 1024 )) - __memory_avail_kb=$(awk '/^MemAvailable:/{print $2}' /proc/meminfo) + __memory_avail_kb=$(awk '/^Mem/ {print $7}' <(free)) __memory_avail=$(( "$__memory_avail_kb" / 1024 )) } @@ -404,7 +404,7 @@ } function platform_odroid-c1() { - __default_cpu_flags="-mcpu=cortex-a5 -mfpu=neon-vfpv4 -mfloat-abi=hard" + __default_cpu_flags="-D__ARM_NEON__ -march=armv7-a -mtune=cortex-a5 -mfpu=neon-vfpv4 -mfloat-abi=hard" __platform_flags="arm armv7 neon mali gles" __qemu_cpu=cortex-a9 }
For lr-Flycast:
--- lr-flycast.sh 2020-02-22 20:26:49.184510817 +0000 +++ lr-flycast_odroid.sh 2020-02-22 20:33:45.350850265 +0000 @@ -14,7 +14,7 @@ rp_module_help="Previously named lr-reicast then lr-beetle-dc\n\nDreamcast ROM Extensions: .cdi .gdi .chd, Naomi/Atomiswave ROM Extension: .zip\n\nCopy your Dreamcast/Naomi roms to $romdir/dreamcast\n\nCopy the required Dreamcast BIOS files dc_boot.bin and dc_flash.bin to $biosdir/dc\n\nCopy the required Naomi/Atomiswave BIOS files naomi.zip and awbios.zip to $biosdir/dc" rp_module_licence="GPL2 https://raw.githubusercontent.com/libretro/flycast/master/LICENSE" rp_module_section="opt" -rp_module_flags="!mali !armv6" +rp_module_flags="!armv6" function depends_lr-flycast() { local depends=() @@ -46,6 +46,11 @@ params+=("platform=rpi") fi fi + + if isPlatform "odroid-c1"; then + params+=(platform=odroid) + fi + # temporarily disable distcc due to segfaults with cross compiler and lto DISTCC_HOSTS="" make "${params[@]}" md_ret_require="$md_build/flycast_libretro.so"
For Amiberry:
--- amiberry.sh 2020-02-22 20:26:49.154510499 +0000 +++ amiberry_odroid.sh 2020-02-22 20:43:36.928756428 +0000 @@ -26,6 +26,8 @@ platform="tinker" elif isPlatform "vero4k"; then platform="vero4k" + elif isPlatform "odroid-c1"; then + platform="c1" fi }
-
Additional information : since a few days, lr-flycast only compile with gcc-8 on odroid c1
-
Thanks. I will check as I've not tested for a while on c1 but will use your changes as reference. But may implement things differently.
-
You're welcome ;) I've been surprised to see how well lr-flycast run on the C1, games run very well !
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.