Please do not post a support request without first reading and following the advice in

problem with mupen64plus libretro with odroid xu4

  • @kara thanks for testing, you will have to be patient for debugging this :)

    I suggest you to start from scratch, can you clone the upstream repository doing exactly this:

    cd $HOME
    git clone
    cd mupen64plus-libretro

    Now patch the source code doing exactly this (you should just copy/paste the following carefully into the console):

    patch -p1 << "__EOF__"
    diff --git a/Makefile.orig b/Makefile
    index 6d2846c..35c08a3 100644
    --- a/Makefile.orig
    +++ b/Makefile
    @@ -30,8 +30,6 @@ else ifneq (,$(findstring armv,$(platform)))
         ifeq (,$(findstring classic_,$(platform)))
             override platform += unix
    -else ifneq (,$(findstring odroid,$(platform)))
    -   override platform += unix
     # system platform
    @@ -182,8 +180,8 @@ else ifneq (,$(findstring odroid,$(platform)))
        ifneq (,$(findstring ODROIDC,$(BOARD)))
           # ODROID-C1
           CPUFLAGS += -mcpu=cortex-a5
    -   else ifneq (,$(findstring ODROID-XU3,$(BOARD)))
    -      # ODROID-XU3 & -XU3 Lite
    +   else ifneq (,$(findstring ODROID-XU,$(BOARD)))
    +      # ODROID-XU3 & -XU3 Lite and -XU4
           ifeq "$(shell expr `gcc -dumpversion` \>= 4.9)" "1"
              CPUFLAGS += -march=armv7ve -mcpu=cortex-a15.cortex-a7

    This should get the source patched correctly. Now compile the core using this:

    make platform=odroid WITH_DYNAREC=arm HAVE_NEON=1 FORCE_GLES=1

    If it works, then you will have a compiled file. If it doesn't work, please post the log output here so we can take a look. If the log is too big, please use pastebin.

    Once we confirm the right fix, we can fix the scriptmodule later. Good Luck!

  • @hhromic thank you for your kindness, I will test all that as soon as I have a little time. I will also post all compilation results of modules that do not install on odroid xu4.

  • I'm not as good as you in linux, I do not know how to make a paste of windows to linux odroid, I went through a text file with a chmod + x, I executed the script, it makes me mistakes (patch unexpectedly ends in middle of line), can you just tell me what are the lines to change in the MakeFile? it will be faster!

  • everything seems obvious to you but for someone like me who is not familiar with the linux system, it's really hard to understand all that, even if I know a little programming !

  • @kara relax, don't panic. I'm trying to help you here. No need to be rude, i.e. I'm not as good as you in linux or everything seems obvious to you.

    As you are trying to compile things from source, I assumed you had some minor experience with linux, sorry for that.

    Anyway, after cloning the repository, you edit the Makefile file in the top-level directory and remove these lines (should be lines 33 and 34):

    else ifneq (,$(findstring odroid,$(platform)))
       override platform += unix

    Then, further down find these lines (should be lines 185 and 186):

       else ifneq (,$(findstring ODROID-XU3,$(BOARD)))
          # ODROID-XU3 & -XU3 Lite

    And replace them with these lines:

       else ifneq (,$(findstring ODROID-XU,$(BOARD)))
          # ODROID-XU3 & -XU3 Lite and -XU4

    The patch I posted before says exactly this. Lines starting with - mean what to remove and lines starting with + indicate what to add in their place. The numbers between @@ indicate where to find these lines in the file to be modified.

    Don't forget that this is an untested patch (you are testing it!) so hopefully it works for you, and if that is the case we can fix it for everyone. Otherwise we keep investigating.

  • I apologize. I'm just a little stressed, I would like to build a recent image of Retropie that works, and my weak knowledge makes me panic sometimes. All of my apologies. Thank you in any case for your patience and your precious help!

  • The compilation of glsm is not done, many errors, many undeclared variables

    custom/glsm/glsm.cpp: In function 'void bindFBO(GLenum)':
    custom/glsm/glsm.cpp:251:7:error: 'glBindFramebuffer' was not declared in this scope
    glBindFrameBuffer(GL_FRAMEBUFFER, gl_state.framebuf[0].desired_location)


  • @kara can you try to compile with this:

    make platform=unix-odroid WITH_DYNAREC=arm HAVE_NEON=1 FORCE_GLES=1

  • always the same problem with unreported variables of glsm.cpp

  • @kara can you post the full output log somewhere?
    Maybe you are missing the opengl libraries in your system.

  • @kara can you try these commands:

    apt-get --assume-yes remove libgles2-mesa-dev
    apt-get --assume-yes install libgles2-mesa-dev
    apt-get --assume-yes remove libgles1-mesa-dev
    apt-get --assume-yes install libgles1-mesa-dev

    And if they installed new packages, try again with the original make invocation (without "unix-" and just "odroid").

  • Great ! it works ! thank you so much ! That was it ! It was missing the latest version of opengl! Congratulations, a problem solved under odroid XU4!

  • @kara great to hear!

    Can you confirm me you used the following command in the successful build?

    make platform=odroid WITH_DYNAREC=arm HAVE_NEON=1 FORCE_GLES=1

  • Yes, with this command ! another small question please, where should I put the generated file Thanks a lot !

  • @kara now that we know how to fix the compilation, we need to fix it upstream.

    Can I ask you to test compilation of new mupen64plus core as well?

    I setup a patch in my github, just follow these directions:

    cd $HOME
    git clone -b fix-odroid
    cd mupen64plus-libretro-nx
    make platform=odroid WITH_DYNAREC=arm HAVE_NEON=1 FORCE_GLES=1

    Once that is confirmed I will help you send the fix upstream.

  • bravo, you're good, very nice to meet people like you, I tested these lines, it works well! Tell me, the warnings at compilation are important? There are some, but the compilation is complete without errors! and I have my .so file

  • It seems that other emulators have the same problem as for lr-mupen64plus, I have to look again at the log files generated, potentially with the same fix to apply

  • @kara thanks for the compliment.
    So you also got a next .so file right? Great!
    Don't worry the warnings are not important.

    Can you also confirm which packages were missing when you executed the apt-get commands? your system installed both, libgles1-mesa-dev and libgles2-mesa-dev ?

    The other emulators might or might not have the same problem. Unfortunately I myself won't have time to check that, specially because I don't own an ODROID board.
    Let's fix the mupen64plus cores first.

  • is there a way to give remote access to my odroid xu4q through a console ?

    libgles1-mesa-dev missing
    libgles2-mesa-dev not updated i think

  • @kara said in problem with mupen64plus libretro with odroid xu4:

    is there a way to give remote access to my odroid xu4q through a console ?

    Yes definitively there are ways, however it can be complicated and not easy to provision. For example you would need to setup your router accordingly and secure your device with a non-standard password. Also you would need to keep it connected and turned on all the time as developers usually need to find their own time to volunteer to the cause.

    More importantly, there is no guarantee somebody will be working on ODROID support, so you would have to be very patient on getting things fixed, could take months. Your offer is anyway appreciated as that is a nice resource for people willing to help on this. I suggest you for now to wait until somebody approaches you here.

    In another topic, the fix is now upstream for both the mupen64plus and mupen64plus-next cores. You should be able to install from source in the RetroPie menu now and it should compile and configure the core for you successfully.

    Edit: I strongly suggest you test and try the "next" core as it is actively in development with upcoming updates and features. Check this topic:

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.