RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Retropie 4.x on Odroid C2

    Scheduled Pinned Locked Moved Ideas and Development
    odroidbuild
    92 Posts 15 Posters 49.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • roleoR
      roleo @BuZz
      last edited by

      @BuZz
      Ok, I will try again tomorrow.

      1 Reply Last reply Reply Quote 0
      • E
        ElementZero @ElementZero
        last edited by

        @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.

        1 Reply Last reply Reply Quote 0
        • roleoR
          roleo @BuZz
          last edited by

          @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.

          BuZzB 1 Reply Last reply Reply Quote 0
          • BuZzB
            BuZz administrators @roleo
            last edited by BuZz

            @roleo Thanks. I will lower it to j2 by default

            To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

            1 Reply Last reply Reply Quote 0
            • M
              maho @BuZz
              last edited by

              @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

              BuZzB 1 Reply Last reply Reply Quote 0
              • BuZzB
                BuZz administrators @maho
                last edited by

                @maho this should be resolved now.

                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                1 Reply Last reply Reply Quote 0
                • M
                  maho
                  last edited by

                  @BuZz thanks for your fastest commit. I veerified that SDL2+Mali is no longer broken.
                  Best,
                  Nakata Maho

                  1 Reply Last reply Reply Quote 0
                  • M
                    maho
                    last edited by

                    @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]
                    1 Reply Last reply Reply Quote 0
                    • M
                      maho
                      last edited by

                      @BuZz

                      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"
                        }
                      BuZzB 1 Reply Last reply Reply Quote 0
                      • BuZzB
                        BuZz administrators @maho
                        last edited by BuZz

                        @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.

                        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                        1 Reply Last reply Reply Quote 0
                        • M
                          maho
                          last edited by

                          @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' failed

                          Best,
                          Nakata Maho

                          BuZzB 1 Reply Last reply Reply Quote 0
                          • J
                            jenkinl1302
                            last edited by

                            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!

                            BuZzB 1 Reply Last reply Reply Quote 1
                            • BuZzB
                              BuZz administrators @maho
                              last edited by

                              @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

                              To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                              M 1 Reply Last reply Reply Quote 0
                              • BuZzB
                                BuZz administrators @jenkinl1302
                                last edited by

                                @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.

                                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                1 Reply Last reply Reply Quote 0
                                • M
                                  maho @BuZz
                                  last edited by

                                  @BuZz

                                  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
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dirtyrobinson
                                    last edited by dirtyrobinson

                                    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?

                                    BuZzB 1 Reply Last reply Reply Quote 0
                                    • BuZzB
                                      BuZz administrators @dirtyrobinson
                                      last edited by BuZz

                                      @dirtyrobinson Did you add your user to the video & input group ?

                                      To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                      D 1 Reply Last reply Reply Quote 0
                                      • D
                                        dirtyrobinson @BuZz
                                        last edited by

                                        @BuZz I did add my user to those groups

                                        BuZzB 1 Reply Last reply Reply Quote 0
                                        • BuZzB
                                          BuZz administrators @dirtyrobinson
                                          last edited by

                                          @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.

                                          To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                          D 1 Reply Last reply Reply Quote 0
                                          • D
                                            dirtyrobinson @BuZz
                                            last edited by

                                            @BuZz I started with ubuntu64-16.04-minimal-odroid-c2-20160815.img. Maybe I'll try one of the older minimal images.

                                            D 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.