[GUIDE] Building libretro's ( retroarch emulation cores )

Moderators: meveric, mdrjr, odroid

[GUIDE] Building libretro's ( retroarch emulation cores )

Unread postby AreaScout » Wed Aug 06, 2014 6:06 pm

mupen64plus libretro

Hi all

Some cores https://github.com/libretro are hard to compile or do need some pre-requirements, this thread should help people to solve problems if they fail to compile some libretro cores, so if you find a solution for a hard to compile core fell free to post it here.


Ok i will start with mupen64plus-libretro, it is tested with latest retroarch ( Valid for mupen64plus 05.Aug c99ec0b and retroarch 14.Aug e1a1228 )

  1. Download the source
  2. Get a custom Makefile for Odroid
  3. Building
  4. Prepare retroarch for first launch


Code: Select all
git clone https://github.com/libretro/mupen64plus-libretro.git
cd mupen64plus-libretro
wget -O Makefile.odroid http://pastebin.com/raw.php?i=j6SS0tw1
make -j5 V=1 -f Makefile.odroid


ok N64 libretro core should be build now, let's prepare retroarch for first launch

Code: Select all
echo 'mupen64-cpucore = "cached_interpreter"' >> ~/.config/retroarch/.retroarch-core-options.cfg


settings that must be made inside retroarch:

under Settings->Video Options

HW Shared Context Enable : ON
Aspect Ratio Index : Core provided

now you should be able to run games via retroarch, after starting a game you can edit 'core option' via retroarch menu to select different graphic plugins and a lot more..

Have fun

Image
Last edited by AreaScout on Sun Aug 24, 2014 6:27 pm, edited 4 times in total.
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Building libretro's ( retroarch emulation cores )

Unread postby AreaScout » Fri Aug 08, 2014 7:54 pm

mame2013 libretro 0151

Image

Ok here is another one that cost me a lot of hours to fiddle around with

Code: Select all
git clone https://github.com/AreaScout/mame-libretro.git
cd mame-libretro/0151
make -j5 V=1 -f Makefile.odroid


you may want to compile the tools also e.g to update chd harddisk files

Code: Select all
make -j5 V=1 -f Makefile.odroid tools


RG
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Building libretro's ( retroarch emulation cores )

Unread postby AreaScout » Fri Aug 08, 2014 8:02 pm

mame2014 libretro 0152

Image

While this one was as hard to compile as 0151, it has MESS and UME support :)

Code: Select all
git clone https://github.com/AreaScout/mame-libretro.git
cd mame-libretro/0152
make -j5 V=1 -f Makefile.odroid


you may also want to compile the tools e.g to update chd harddisk files

Code: Select all
make -j5 V=1 -f Makefile.odroid tools


RG
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby AreaScout » Sun Aug 24, 2014 6:26 pm

mupen64plus libretro

This is valid for the latest mupen64plus-libretro and retroarch as of today

retroarch-core-options.cfg in retroarch is renamed + lots of improvements to mupen64plus-libretro for rice video plugin ( NEON code )

1. Download the source
2. Get a custom Makefile for Odroid
3. Building
4. Prepare retroarch for first launch
5. Change settings inside retroarch

Code: Select all
git clone https://github.com/libretro/mupen64plus-libretro.git
cd mupen64plus-libretro
wget -O Makefile.odroid http://pastebin.com/raw.php?i=WiU02WSN
make -j5 V=1 -f Makefile.odroid


ok N64 libretro core should be build now, let's prepare retroarch for first launch

Code: Select all
echo 'mupen64-cpucore = "cached_interpreter"' >> ~/.config/retroarch/retroarch-core-options.cfg


settings that must be made inside retroarch:

under Settings->Video Options

HW Shared Context Enable : ON
Aspect Ratio Index : Core provided

under Settings->Driver Options->Audio Driver

use a threaded Audio driver such as alsathread, SDL or SDL2

P.S.: Glide64 is soooo cool !

Have Fun

Image
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Mon Aug 25, 2014 1:38 am

Glide is really nice.. while glide and gln64 looks the best, glide seems to support more games than gln64.
Just wished it had a little more speed :)
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Building libretro's ( retroarch emulation cores )

Unread postby obert01 » Tue Nov 25, 2014 6:29 am

Hello all,

I don't know if it is actually possible but I am looking for a way to properly compile and run the stock libretro MAME core for my Odroid U3 board.

I am using the source code (GIT repository) available at:
https://github.com/libretro/mame

Compiling without error is rather easy, if you use GCC 4.7 and a "make" command-line like the following:
Code: Select all
make -j4 -f Makefile.libretro Platform=unix-armv7-a-cortexa9-hardfloat

Note that I also modify the makefile to force usage of the C DRC backend.

The core compiles succesfully, but when I run RetroArch with it, I get the classic "Segmentation Fault" error. I have tried to compile with GDB debugging symbols in order to investigate, but when linking, GCC goes out of memory :)

@AreaScout: Your MAME 0.152 source code works well and this is the one I use for the moment. But I think it could be great not to rely on a specific code fork that is necessarily more difficult to keep updated with the latest MAME developments.

Have you any idea to suggest on that topic? Am I trying to do something impossible?

Many thanks,
obert01
 
Posts: 10
Joined: Sat Jul 26, 2014 4:20 am
languages_spoken: english

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Tue Nov 25, 2014 7:01 am

there are several mame branches for libretro, and the current libretro/mame is just a few months old.. they switch mame like crazy.
I have working cores for 078, 0151, 0152
0153, 0154 and 0155 (which is the current /libretro/mame) do not work under ODROID at the moment.
you don't have to take the "copy" of 0152 from AreaScout the changes work on the original one from libretro as well. Its just a few adaptions on the makefile and on one c file to get by some Android Logging, that's all.
Problem is, that the guys from libretro switch the mame core so often, you rarely find one that is actually able to run under ARM.
Many cores for libretro do not work properly under ARM and they tend to mess up the code for all cores every couple months. It is really hard to find the right parameters to get MAME to work, and as you said, compiling is "easy" but you only find out if it's working or not after you're done compiling and actually try to run a game.
And if it doesn't work, you have to change a parameter and try it all over again, which can take several hours to compile mame core each time over and over again.

Besides that it's really hard to figure out if the issue is with the core, or with the ROM that you're using, since you basicly need new ROMs for each version of the core.
Especially with the current 0155 which is suppose to be a complete rewrite of the code, which means you need all the ROMS again, and then you have to find one that works for sure and hope it will work on ODROID as well.

Sometimes, "simple" ROMs don't work at all with some cores, and it looks like the core issn't working at all, but suddenly you try CHD files instead of "simple" ROMs and core suddenly is working.

MAME is really a mess when it comes to emulation.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby AreaScout » Wed Nov 26, 2014 5:14 am

mame201x libretro upstream

Image

As the name says this is valid for the latest mame-libretro and retroarch as of today

Code: Select all
git clone https://github.com/libretro/mame


change this 3 lines starting on line number 107 in Makefile.libretro

Code: Select all
   SHARED := -shared -static-libgcc -static-libstdc++ -Wl,--no-undefined
   CCOMFLAGS += $(fpic) -mthumb-interwork -funroll-loops
   PLATCFLAGS +=  -DALIGN_INTS -DALIGN_SHORTS -DHAVE_POSIX_MEMALIGN -DRETRO_AND $(fpic) -DUSE_ARM_COMPAT_DELEGATE -DUSE_ARM_HACK


uncomment line number 474 ( FORCE_DRC_C_BACKEND )

edit src\osd\retro\log.h remove '#include <android/log.h>'

and if you want less error reporting, comment out 592, 593

make -f Makefile.libretro -j5 V=1


RG
Last edited by AreaScout on Wed Nov 26, 2014 3:24 pm, edited 2 times in total.
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Wed Nov 26, 2014 6:48 am

yeah, they just put in the -DUSE_ARM_COMPAT_DELEGATE flag yesterday, as i said earlier, MAME is really messy sometimes^^

Besides that, i think rather than line 107 in Makefile you should rather go for line 311
also you should use "platform=" not "Platform=". This missspelling is probably what caused it to use line 107 rather than 311..
Line 311 cause it will find "armv" in the platform string and skip line 107 to the favor of line 311 :)
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby AreaScout » Wed Nov 26, 2014 7:01 am

That's true Platform is wrong, but unix is chosen by default and the rest too, so i edit the Post and sciped that part

Thx for pin pointing that out
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby sergio-br2 » Sun Dec 28, 2014 4:14 am

Hey AreaScout, I tried mame 0.152 and it segfaults with neogeo roms like mame git. Do you have an idea?

Btw, I got the changes you made in unix section and put it in armv section of Makefile.libretro:

Code: Select all
# ARM
else ifneq (,$(findstring armv,$(platform)))
   armplatform := 1
   TARGETLIB := $(TARGET_NAME)_libretro.so
   fpic := -fPIC
   SHARED := -shared -static-libgcc -static-libstdc++ -Wl,--warn-common
   CCOMFLAGS += $(fpic) -mthumb-interwork -funroll-loops
   PLATCFLAGS += -DHAVE_POSIX_MEMALIGN -DRETRO -DRETRO_AND -DALIGN_INTS -DALIGN_SHORTS -DSDLMAME_NO64BITIO -DLSB_FIRST -DUSE_ARM_HACK
   LDFLAGS +=  $(fpic) $(SHARED)
   NATIVELD = g++
   NATIVECC = g++
   NATIVECFLAGS = -std=gnu99
   CC_AS = gcc
   CC = g++
   AR = @ar
   LD = g++
   LIBS += -lpthread
   ifneq (,$(findstring cortexa8,$(platform)))
      CCOMFLAGS += -marm -mcpu=cortex-a8
   else ifneq (,$(findstring cortexa9,$(platform)))
      CCOMFLAGS += -marm -mcpu=cortex-a9
   else
      CCOMFLAGS += -marm
   endif
   ifneq (,$(findstring softfloat,$(platform)))
      CCOMFLAGS += -mfloat-abi=softfp
   else ifneq (,$(findstring hardfloat,$(platform)))
      CCOMFLAGS += -mfloat-abi=hard
   endif
   CCOMFLAGS += $(PLATCFLAGS) -ffast-math
   FORCE_DRC_C_BACKEND = 1
sergio-br2
 
Posts: 28
Joined: Sat Dec 27, 2014 10:14 am
languages_spoken: english, portuguese, french
ODROIDs: U3, C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby jamacuco » Thu Jan 15, 2015 2:17 am

Hi.

I´m trying to compile the mupen64plus-libretro core on follow your instructions on a U2 board but i give the error:

make: *** No rule to make target `libretro/utils_neon.o', needed by `mupen64plus_libretro.so'. Stop.

If i look at the libretro folder there is no utils_neon file so i dont know what its trying to compile.

Any ideas about how to solve this?.

Thanks in advance.
jamacuco
 
Posts: 1
Joined: Wed Aug 13, 2014 3:08 am
languages_spoken: english
ODROIDs: U2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby sergio-br2 » Thu Jan 15, 2015 1:27 pm

jamacuco wrote:Hi.

I´m trying to compile the mupen64plus-libretro core on follow your instructions on a U2 board but i give the error:

make: *** No rule to make target `libretro/utils_neon.o', needed by `mupen64plus_libretro.so'. Stop.

If i look at the libretro folder there is no utils_neon file so i dont know what its trying to compile.

Any ideas about how to solve this?.

Thanks in advance.


I think you need compile mupen with:

Code: Select all
make platform="armv gles neon hardfloat"


Edit: maybe you should add -D__arm__ -DARM_ASM -D__NEON_OPT in the line 179 of Makefile. And AreaScout use these flags too, dunno why: -D__ARM_NEON__ -funroll-loops -ffast-math

Btw, it is already compiled in the libretro PPA (along with a bunch of cores and RA): https://code.launchpad.net/~libretro/+archive/ubuntu/stable (Yeah, it has ARMhf packages!!!)

But I dunno if it will work with Mali GPU, last time I tried it doesn't. Take a look at this issue: mupen64plus-libretro: crash on Mali GPU (Android)
sergio-br2
 
Posts: 28
Joined: Sat Dec 27, 2014 10:14 am
languages_spoken: english, portuguese, french
ODROIDs: U3, C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Thu Jan 15, 2015 4:10 pm

Although they have many cores in that PPA and generally it's a good find they don't work all for us.
It's not that hard to build cores... (i have over 60 cores myself) but getting them to work is much much harder.. the standart compiler flags often do not work and you can squeeze out alot of extra speed with the right compiler flags.
Muppen64 from that PPA does not work.. and they don't even have a MAME core.
Other cores seem to be rather old, although there are much newer versions on the libretro pages.. for example PCSX ReARMed seems to be version r14 while there is already r20 out (waiting for newly released r21 since that should boost some speed with sounds again)

I guess the PPA can be used for uncomplicated cores.. but the rest should be done manually as we normally do :)
I will update my core packages soon anyway.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby sergio-br2 » Fri Jan 16, 2015 4:26 am

meveric wrote:Although they have many cores in that PPA and generally it's a good find they don't work all for us.


Could you share with us all these cores that don't work?

meveric wrote:It's not that hard to build cores... (i have over 60 cores myself) but getting them to work is much much harder.. the standart compiler flags often do not work and you can squeeze out alot of extra speed with the right compiler flags.


Sometimes the standard flags does not work because they are wrong in the Makefile, and anyone sends patch to fix it...

meveric wrote:Muppen64 from that PPA does not work.. and they don't even have a MAME core.


In the testing PPA there is a mame core for ARM, 0.152, I get from AreaScout repo. But it seems it does not work very well for some games.

meveric wrote:
Other cores seem to be rather old, although there are much newer versions on the libretro pages.. for example PCSX ReARMed seems to be version r14 while there is already r20 out (waiting for newly released r21 since that should boost some speed with sounds again)


pcsx is r20 in PPA, I don't know where you found r14... I updated all cores in stable PPA last week. In the testing PPA, cores are update automatically if the source in github get some change (so you have to take a look at the version inside RetroArch, not in the packaging).

There are few people I know testing the packages from libretro PPA in ARM, so right now it's impossible to get all cores out-of-box. If you have better stuff in makefile for ARM, please share with us.
sergio-br2
 
Posts: 28
Joined: Sat Dec 27, 2014 10:14 am
languages_spoken: english, portuguese, french
ODROIDs: U3, C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby sergio-br2 » Fri Jan 16, 2015 5:05 am

20+r14~ubuntu14.04.1

Lol, this r14 is not the version of pcsx, it's the commit number in launchpad... you have to see the first number, in all packages. Forget the numbers after +
sergio-br2
 
Posts: 28
Joined: Sat Dec 27, 2014 10:14 am
languages_spoken: english, portuguese, french
ODROIDs: U3, C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Fri Jan 16, 2015 5:08 am

sergio-br2 wrote:
meveric wrote:Although they have many cores in that PPA and generally it's a good find they don't work all for us.


Could you share with us all these cores that don't work?

i didn't test all.. i have enough to do keeping my cores in check, so i don't had time to check them all.. but i tried mupen64 which is known to have lots of issues and it doesn't work from your repository as well.. Guess
we have to stick with the old one that i made which at least works.. even if it's not the fastest..
you might also want to check on the BSNES mercury cores and bnes they are known to have very strict compiler requirements or they gonna segfault as well.. (at least in the past it always was like that)
sergio-br2 wrote:
meveric wrote:It's not that hard to build cores... (i have over 60 cores myself) but getting them to work is much much harder.. the standart compiler flags often do not work and you can squeeze out alot of extra speed with the right compiler flags.


Sometimes the standard flags does not work because they are wrong in the Makefile, and anyone sends patch to fix it...

true, that's why i build them manually to avoid that...

sergio-br2 wrote:
meveric wrote:Muppen64 from that PPA does not work.. and they don't even have a MAME core.


In the testing PPA there is a mame core for ARM, 0.152, I get from AreaScout repo. But it seems it does not work very well for some games.

yes, we have cores for 078, 0151, 0152 and 0155 (or what ever latest core in libretro-mame is right now) MAME cores all are having issues at one or another point.. but that was disscussed a couple of times in the forum already.. still they are working to a certain degree..
sergio-br2 wrote:
meveric wrote:
Other cores seem to be rather old, although there are much newer versions on the libretro pages.. for example PCSX ReARMed seems to be version r14 while there is already r20 out (waiting for newly released r21 since that should boost some speed with sounds again)


pcsx is r20 in PPA, I don't know where you found r14... I updated all cores in stable PPA last week. In the testing PPA, cores are update automatically if the source in github get some change (so you have to take a look at the version inside RetroArch, not in the packaging).

guess the name in the PPA was just confusing, sorry if i was mistaken on that :)
sergio-br2 wrote:There are few people I know testing the packages from libretro PPA in ARM, so right now it's impossible to get all cores out-of-box. If you have better stuff in makefile for ARM, please share with us.

i normally build them all by hand it can take a couple of days or even weeks to get a core to work it's alot of trial and error also they change the build system every couple of months and you have to start all over again.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby sergio-br2 » Sat Jan 17, 2015 9:09 pm

Mupen in ppa testing was compiled with these flags:

Code: Select all
# ARM
else ifneq (,$(findstring armv,$(platform)))
   TARGET := $(TARGET_NAME)_libretro.so
   fpic := -fPIC
   LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined
   INCFLAGS += -I.
   CPUFLAGS += -DNO_ASM -DNOSSE -DARM_ASM -D__arm__ -D__ARM_NEON__ -D__NEON_OPT
   #CPUFLAGS += -funroll-loops -ffast-math
   WITH_DYNAREC=arm
   ifneq (,$(findstring gles,$(platform)))
      GLES = 1
      GL_LIB := -lGLESv2
   else
      GL_LIB := -lGL
   endif
   ifneq (,$(findstring cortexa5,$(platform)))
      CPUFLAGS += -marm -mcpu=cortex-a5
   else ifneq (,$(findstring cortexa8,$(platform)))
      CPUFLAGS += -marm -mcpu=cortex-a8
   else ifneq (,$(findstring cortexa9,$(platform)))
      CPUFLAGS += -marm -mcpu=cortex-a9
   else ifneq (,$(findstring cortexa15a7,$(platform)))
      CPUFLAGS += -marm -mcpu=cortex-a15.cortex-a7
   else
      CPUFLAGS += -marm
   endif
   ifneq (,$(findstring neon,$(platform)))
      CPUFLAGS += -mfpu=neon
      HAVE_NEON = 1
   endif
   ifneq (,$(findstring softfloat,$(platform)))
      CPUFLAGS += -mfloat-abi=softfp
   else ifneq (,$(findstring hardfloat,$(platform)))
      CPUFLAGS += -mfloat-abi=hard
   endif
   PLATCFLAGS += -DARM
   #GLIDE2GL = 0


Code: Select all
make platform="armv gles neon hardfloat"


It's somewhat based in Makefile.odroid. It's builded with GLIDE2GL = 1, so you have to change the default gfx plugin in retroarch-core-options.cfg with mupen64-gfxplugin = "gln64", mupen64-gfxplugin = "rice" or whatever.

So, could someone test it? If you don't want to install the ppa, just download the package from here.
Last edited by sergio-br2 on Sun Jan 18, 2015 4:45 am, edited 1 time in total.
sergio-br2
 
Posts: 28
Joined: Sat Dec 27, 2014 10:14 am
languages_spoken: english, portuguese, french
ODROIDs: U3, C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Sun Jan 18, 2015 1:50 am

not working, as usual :)
Code: Select all
RetroArch: rarch_log_libretro: [libretro INFO] :: GL_RENDERER: Mali-T628
RetroArch [ERROR] :: rarch_log_libretro :: [libretro ERROR] :: 0:30: L0002: Undeclared variable 'gl_FragDepthEXT'
RetroArch [ERROR] :: rarch_log_libretro :: [libretro ERROR] :: Link failed because of invalid fragment shader.Audio RomOpen.
Input RomOpen.
RetroArch: rarch_log_libretro: [libretro INFO] :: mupen64plus: Starting R4300 emulator: Cached Interpreter
GL_EXT_texture_format_BGRA8888 supported.
RetroArch [ERROR] :: rarch_log_libretro :: [libretro ERROR] :: 0:30: L0002: Undeclared variable 'gl_FragDepthEXT'
RetroArch [ERROR] :: rarch_log_libretro :: [libretro ERROR] :: Link failed because of invalid fragment shader.Assertion 'm' failed at pulsecore/mutex-posix.c:106, function pa_mutex_unlock(). Aborting.
Aborted


using the older core i created a couple months back does work with the same settings..
Code: Select all
RetroArch: rarch_log_libretro: [libretro INFO] :: mupen64plus: Starting R4300 emulator: Cached Interpreter
RetroArch: rarch_log_libretro: [libretro INFO] :: Glide64 ucode = 3a1cbac3
RetroArch: rarch_log_libretro: [libretro INFO] :: Microcode 0 - RSP SW 2.0X (Super Mario 64)
RetroArch: rarch_log_libretro: [libretro INFO] :: microcheck: old ucode: 2,  new ucode: 0
RetroArch: rarch_log_libretro: [libretro INFO] :: mupen64plus: Stopping emulation.
RetroArch: rarch_log_libretro: [libretro INFO] :: mupen64plus: R4300 emulator finished.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby sergio-br2 » Sun Jan 18, 2015 3:44 am

Well, it's not Makefile flags fault now, it's this gl_FragDepthEXT. There's nothing I can do.

From what month is the source you used?

Edit: Update in upstream, try again, download here.
sergio-br2
 
Posts: 28
Joined: Sat Dec 27, 2014 10:14 am
languages_spoken: english, portuguese, french
ODROIDs: U3, C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Sun Jan 18, 2015 5:40 am

Code: Select all
RetroArch: rarch_log_libretro: [libretro INFO] :: GL_RENDERER: Mali-T628
RetroArch [ERROR] :: rarch_log_libretro :: [libretro ERROR] :: Link failed because of missing fragment shader.Audio RomOpen.
Input RomOpen.
RetroArch: rarch_log_libretro: [libretro INFO] :: mupen64plus: Starting R4300 emulator: Cached Interpreter
GL_EXT_texture_format_BGRA8888 supported.
RetroArch [ERROR] :: rarch_log_libretro :: [libretro ERROR] :: Link failed because of missing fragment shader.Assertion 'pa_atomic_load(&(s)->_ref) >= 1' failed at pulse/stream.c:1661, function pa_stream_writable_size(). Aborting.
Aborted


Well said it before, that's not that easy to compile.. i've done the same a hundred times already.. every time something new and promising gets a push.. but nothing right now..

The Makefile from AreaScout which only worked with the version back then when he created that script was also heavily modified to get it to run.
There are flags as SINGLE_THREAD=1 which was needed or else it would never start.. GLIDE2GL needed to be off while GLIDE64MK2 needed to be on.. even the standart -O2 optimization flag that is set on NON-Debug builds caused the core to fail, even -O0 failed while -Os was strangely working.. The LDFLAGS had to be modiefied..
even a slight change from that settings caused many problems back then.

The version i compiled around august was working quite good for me, although it still had speed issues.. (around that time the guide from AreaScout was created as well)
A month later or so was a big update.. and AreaScout was trying to rebuild the core with his options.. it turned out to be very very picky with the compilation flags.. and while it was working with one game another didn't even start.. thing was the core compiled the same way under Ubuntu 13.10 instead was working on both games but was still not very stable and crashed or had graphical issues.
Ever since i was not able to compile a working core.. the gl_FragDepthEXT only comes with glide graphics core selected.. you can still select rice or gln64 and don't get that problem, but still the core will crash each time if you try to run it.. and that's a probably an issue with the right flags for compilation.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Fri Jan 23, 2015 10:29 am

rpi uses imame4all ... i've seen it was not updated since 2013 ... but how good is mame vs imame4all ?
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Fri Jan 23, 2015 3:33 pm

Well, let's put it this way... imame4all project source files (not compiled) is about 40MB.. the oldest mame core i have 078 is about 56 MB the current 0155 has about 300 MB
Does it run? Probably yes (i'm compiling it right now and if it does work, i will add it to my retroarch-cores-bad package).. But it's probably very limited for the games that will run.
Still it seems the older cores normally work more stable.. imame4all might be no difference... so what ever it CAN run, runs probably good same as the 078 core, which i found to be very stable.
Still the options will be very limited.. especially with bigger games.

Edit
OK, first game i tried: NOT SUPPORTED... and that's my game for testing on all other cores.. -.-
OK, tried more.. 80% of all games i tried were NOT SUPPORTED.. the few that started immediately ended in a segfault. Some of them even crashed me to the login screen.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Fri Jan 23, 2015 4:23 pm

thanks :(
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Sat Jan 24, 2015 5:07 pm

Current status of my work on C1 framebuffer retroarch:

* snes9x_next ... working fine
* vba_next ... working fine
* mame078 ... working fine
* other mame cores (from libretro repo) - not working
* other mame cores (from meveric deb) - not working
* picodrive ... working fine
* genesisplusgx ... compiled ok, not tested
* pcsx-rearmed ... working fine
* mednafen-pce-fast ... compiled ok, black screen
* ppsspp ... fails at the final linking step (see: http://paste.ubuntu.com/9847105/)
* mupen64plus ... compiles ok, crashes with "bus error"
* mupen64plus (from meveric deb) ... working but slow *** with rice gfx (glide64 runs but black screen), and uses only 1 core @ 100% ... is it possible to make it use all 4 cores?
* imame4all ... not compiling

does anyone has any suggestions about mupen64plus or ppsspp?
Last edited by memeka on Sat Jan 24, 2015 7:14 pm, edited 1 time in total.
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Sat Jan 24, 2015 5:58 pm

ppsspp is not easy.. it's a big messup and I actually had to hack the current version to get it to work on ODROIDs again.. the libretro core... has many issues.. i had to change the Makefile to force it to compile the right sections.. it seems to be predefined to build for x86 systems.. anyway.. the error you get is cause of the ffmpeg submodule which does not fit the requitements.. the armv7 version is probably not the right version to use.. you have to completely recompile ffmpeg by hand (which will most likely fail at some point) and then replace the resulting libraries with the one located in armv7 folder. If you're lucky it will work.
But it's probably easier to use PPSSPP instead of the libretro core..

mupen64 can't be helped.. current version don't work no matter what you try... and besides that 90~95% of all emulators always run on one core by design.. that can't be helped.. and since the C1 is rather slow on CPU power, don't expect any wonders here :)
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Sat Jan 24, 2015 7:19 pm

thanks...

so, let me put it this way:

MAME: mame078 ok, the rest not ok (not even the ones in meveric debs)
SEGA: picodrive ok, genesis plusgx probably ok
SNES: snes9x_next ok
GBA: vba_next ok
PSX: pcsx-rearmed ok, mednafen-pce-fast black screen
PSP: ppsspp not ok
N64: mupen64plus older version (meveric deb) but it's too slow for C1

N64 won't work well until there is multithreading ... if I get ppsspp working at least I have one for the important systems ... also I would like a newer mame as well :(
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Sat Jan 24, 2015 10:03 pm

last time i tried mame on the C1 with my 0152 core it was working.. are you sure it's the core and not the ROM? With later ROM versions the requirements on the ROMS changed greatly.. for example 1944 Loop Master requires only the neogeo bios on 078 as far as i believe.. every later core also requires qsound as well.

Also some additonal notes:
memeka wrote:GBA: vba_next ok

you should try meteor and mednafen_gba although i'm not sure if mednafen will work at all, there seems to be alot of issues with the C1 and SDL programs like mednafen
memeka wrote:PSX: pcsx-rearmed ok, mednafen-pce-fast black screen

as said before mednafen doesn't seem to work cause of some SDL issues with the C1.. even the stock mednafen emulator does not work on the C1, means actually it IS working, but the screen is always black.
memeka wrote:PSP: ppsspp not ok

you should try PPSSPP as a standalone.. it can be called with PPSSPP <ROM> as well so you can include it into EmulationStation just fine.
memeka wrote:N64 won't work well until there is multithreading ...

Multithreading might never work, more important is JIT which is not working on ARM right now (only on Android it seems)
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Tue Jan 27, 2015 10:14 am

* I tried the 152 core from your package, and it did not work (segmentation fault)... while 072 it did work, both the one in your package and the one i compiled. keep in mind i am running stuff on framebuffer, no QT, I don't even have SDL1.0 installed (though I have SDL2.0). can you point me to a ROM that you think works with 152? I have many I tried, about half of them worked on 072, the rest complained about missing .bin files (BIOS.. I hunted quite a lot until i found a larger neogeo.zip that would work with those ROMs on 072); but all of them did not work on others ...

* is there any reason in using meteor vs. vba_next? all the ROMs I tried on vba_next worked fine.

* any suggestions for mupen64plus? i saw on youtube a video with mupen on rpi, and it worked at least the same, if not faster than the one I compiled... (there are 2 video frontends that work - rice, and the other one 64 that is not glide64 :D)

EDIT: also, mupen64plus on android odroid C1 works better than the linux version (my build or yours) https://www.youtube.com/watch?v=O4yoqK-KdKQ ... any idea?
Mupen64 + (Nintendo 64): Mario 64 is nearly perfect, both in sound and fps. Maybe a few glitch in some shadows and textures, but hardly noticeable.
from http://misapuntesde.com/post.php?id=511
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Tue Jan 27, 2015 2:50 pm

memeka wrote:* I tried the 152 core from your package, and it did not work (segmentation fault)... while 072 it did work, both the one in your package and the one i compiled. keep in mind i am running stuff on framebuffer, no QT, I don't even have SDL1.0 installed (though I have SDL2.0). can you point me to a ROM that you think works with 152? I have many I tried, about half of them worked on 072, the rest complained about missing .bin files (BIOS.. I hunted quite a lot until i found a larger neogeo.zip that would work with those ROMs on 072); but all of them did not work on others ...

As I said, i'm often using 1944 Loop Master for testing.. nice game not too old and worked on every core so far... you should be able to get it form emuparadise.eu or so.
memeka wrote:* is there any reason in using meteor vs. vba_next? all the ROMs I tried on vba_next worked fine.

Sounds... meteor sounds much better.. seems they've rewritten the entire soundstack and rather than beeping noises they have (midi?) sounds.. which sounds somewhat better... besides that, nope GBA is running really stable on all cores.
memeka wrote:* any suggestions for mupen64plus? i saw on youtube a video with mupen on rpi, and it worked at least the same, if not faster than the one I compiled... (there are 2 video frontends that work - rice, and the other one 64 that is not glide64 :D)

mupen64 is still very strange.. the newest version (from two days ago) glide64 seems to work again, but the core itself is still not doing what it should be doing.
At least under X11 it's very picky.. It only works with -Os optimization flag... if i take any other it ends in a segfault.. On the RPi the dynamic recompiler is working and therefore it's rather fast, on ODROIDs (at least the ones i tried) dynamic recompiler always ends in an error and only cached_interpreter works but is rather slow.
memeka wrote:EDIT: also, mupen64plus on android odroid C1 works better than the linux version (my build or yours) https://www.youtube.com/watch?v=O4yoqK-KdKQ ... any idea?
Mupen64 + (Nintendo 64): Mario 64 is nearly perfect, both in sound and fps. Maybe a few glitch in some shadows and textures, but hardly noticeable.
from http://misapuntesde.com/post.php?id=511

Yes, Android is the same, the dynamic recompiler works, also the graphics cores work better under android... but i have no clue why they don't work under Linux.
Android is by design a lot slower than Linux on ARM devices.. if the core would work as it should be, the emulator would be much faster under Linux than Android.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby DESE » Wed Jan 28, 2015 2:49 pm

Mame2014 run games OK but slow in most neogeo heavy roms (aka >kof98). Do you guys thought about using Advancemame for better performance?, anybody knows if Advancemame core does exit?.

Edit: Just see the Libretro's core software library, there's no advancemame but Mame2003 (v0.78) which fits fine before changing in rendering system....

Edit 2: Ignore my post, I need to do more test with what you have here.
Last edited by DESE on Thu Jan 29, 2015 12:19 am, edited 1 time in total.
DESE
 
Posts: 49
Joined: Sat Jan 17, 2015 3:49 pm
languages_spoken: english, spanish
ODROIDs: Odroid C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Wed Jan 28, 2015 11:22 pm

* meteor needs X11 libs, so I will not be building it...
* pcsx_rearmed - tekken 3 is kind of slow :(
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Thu Jan 29, 2015 3:50 am

memeka wrote:* meteor needs X11 libs, so I will not be building it...
* pcsx_rearmed - tekken 3 is kind of slow :(

well as i said, as long as it works it doesn't matter which GBA core you take.. they are all pretty good.. and so you basicly have the "original" sound ;)

pcsx_rearmed doesn't really surprise me.. pcsx_rearmed uses a software GPU mode and therefore is mostly using CPU power, which the C1 lacks of.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Thu Jan 29, 2015 2:31 pm

another thing: mupen64plus actually crashes in libEGL:

Code: Select all
Program received signal SIGBUS, Bus error.
0xb6d83c02 in _mali_tilelist_alloc () from /usr/lib/arm-linux-gnueabihf/libEGL.so
(gdb) bt
#0  0xb6d83c02 in _mali_tilelist_alloc () from /usr/lib/arm-linux-gnueabihf/libEGL.so
#1  0xb6d8930e in _mali_frame_prepare_for_flush () from /usr/lib/arm-linux-gnueabihf/libEGL.so
#2  0xb6d887d2 in ?? () from /usr/lib/arm-linux-gnueabihf/libEGL.so
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Thu Jan 29, 2015 8:00 pm

update: i got PPSSPP working, the program looks ok, but after loading a game initially it's got a black screen (you can only see the overlay with the controls) ... then at some point you can see the game as well... but it's very slow :( i checked Settings - System - Developer Settings - System information ... I got OpenGL-ES Mali-450 GPU recognized (OpenGL ES2.0); CPU Extensions shows NEON, VFP etc... but it's still very slow :(

$ ./PPSSPPSDL
Pixels: 1920 x 1080
Virtual pixels: 1920 x 1080
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/gl_state.cpp:133: I: GPU Vendor : ARM ; renderer: Mali-450 MP version str: OpenGL ES 2.0 ; GLSL version str: OpenGL ES GLSL ES 1.00
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/gpu_features.cpp:20: I: Checking for GL driver bugs... vendor=4 model='Mali-450 MP'
I: /home/marianmi/src/libretro/ppsspp/UI/BackgroundAudio.cpp:106: I: read ATRAC, frames: 370, rate 44100
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/fbo.cpp:179: I: Creating 1024 x 2 FBO using DEPTH24_STENCIL8
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/fbo.cpp:179: I: Creating 512 x 1 FBO using DEPTH24_STENCIL8
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/fbo.cpp:179: I: Creating 1024 x 544 FBO using DEPTH24_STENCIL8
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/fbo.cpp:179: I: Creating 480 x 272 FBO using DEPTH24_STENCIL8
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/fbo.cpp:179: I: Creating 960 x 544 FBO using DEPTH24_STENCIL8
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/fbo.cpp:179: I: Creating 480 x 272 FBO using DEPTH24_STENCIL8
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/fbo.cpp:179: I: Creating 480 x 272 FBO using DEPTH24_STENCIL8
I: /home/marianmi/src/libretro/ppsspp/native/gfx_es2/fbo.cpp:179: I: Creating 480 x 272 FBO using DEPTH24_STENCIL8


I get maybe 15fps... and most of the times some textures are just black... (like the menu and the stuff that it's not visible at the beginning)... The weird thing is that here there is no core at 100% ... maybe one core is 50-70%... :(

User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Thu Jan 29, 2015 10:15 pm

The black textures come from the Alpha Channel issue on the C1.. it happens on the X11 version of PPSSPP as well.. the speed looks about right for the C1.. You can improve speed by activating frameskipping (at least a little) set Show FPS Counter on "Both" as long as the second number is 100% or close to it, the frames do not matter.. it can still run the game in full speed..


btw: your youtube video is tagged private.. can't see it ;)

some note: This already got way off-topic, you probably want to create a project thread for C1, since this thread is about creating retroarch cores in general not getting emulators to run on the C1.. makes it easier to discuss things about C1 as well..
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Thu Jan 29, 2015 11:37 pm

I will continue on the thread I created for emulationstation...
the video was not finished uploading, it should work now.
the second number is indeed 100% .. but 10-15fps :( in the video all optimizations are done. it just bugs me to see it working better on android ... it should be the other way around :(
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby sergio-br2 » Fri Feb 06, 2015 9:20 am

I tested many cores in Odroid U3, at least all libretro cores in stable will work. There is no mame core yet (only in testing, 0.152), but you'll find Final Burn Alpha packages for CPS1, CPS2 and neogeo. There is no more mupen package... if someone manage to compile and get it work with the current source, share with us :).

gpSP doesn't have dynarec support yet, it wasn't working/crashing so I disabled it in the build. But you'll managed to run game boy advance smoothly even with vba-m core, so it's not a serious problem [in odroid u3, at least].

I'll try to publish libretro-ppsspp in stable later, with the 1.0.1 version.

Edit: Some cores that you get black screen or it segfaults and I didn't send to stable: prosystem and meteor.

Fceumm will crash if you are using the "Ask" feature (Settings > Archive Options, i.e., that new unzip feature). Use the "Load Archive" option instead.

fMSX will crash retroarch if you'll try to load MSX2 games without changing Core Options > MSX Mode (probably MSX2+ is the best bet for all MSX games?).
Last edited by sergio-br2 on Fri Feb 06, 2015 9:52 am, edited 1 time in total.
sergio-br2
 
Posts: 28
Joined: Sat Dec 27, 2014 10:14 am
languages_spoken: english, portuguese, french
ODROIDs: U3, C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby sergio-br2 » Fri Feb 06, 2015 9:31 am

memeka wrote:Current status of my work on C1 framebuffer retroarch:

* mednafen-pce-fast ... compiled ok, black screen


I saw in the other post of you, are you trying to run PlayStation with it? It's for PC Engine / TurboGrafx-16 and the CD-ROM² add-on. And it's working very well, from the libretro stable ppa.

memeka wrote:* ppsspp ... fails at the final linking step (see: http://paste.ubuntu.com/9847105/)

does anyone has any suggestions about mupen64plus or ppsspp?


There is ppsspp package in the libretro testing ppa, you can test it. Or you can try the Qt stand-alone package, from the PPSSPP testing PPA (I'll publish in the stable PPA, in the 1.0.1 release). SDL freezes here in U3.
sergio-br2
 
Posts: 28
Joined: Sat Dec 27, 2014 10:14 am
languages_spoken: english, portuguese, french
ODROIDs: U3, C1

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Fri Feb 06, 2015 9:35 am

thanks sergio-br2,

yeah i figured it out why pce-fast was not running :))
also i got both ppsspp_libretro and the sdl version running.
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby meveric » Fri Feb 06, 2015 3:44 pm

sergio-br2 wrote:There is no more mupen package... if someone manage to compile and get it work with the current source, share with us :).

Try building it with the following options:
HAVE_SHARED_CONTEXT=1
SINGLE_THREAD=1
And build it with platform="armv7-hardfloat-cortexa9-gles"
means no unix and no neon defined...
You should try running it on cached interpreter first before you try dynamic recompiler.
No guarantee it will work, but it seems to run more often with these options then with neon activated..

sergio-br2 wrote:Edit: Some cores that you get black screen or it segfaults and I didn't send to stable: prosystem and meteor.

I have meteor running on my system right now.. can you give me some examples where it crashes? I want to check that and see if it happens for me too.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
User avatar
meveric
 
Posts: 7415
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby v0ltumna » Fri Feb 06, 2015 10:18 pm

I played a bit with some compilation flags and researched some errors i came across, the main problems with mupen64plus at the moment seem to be the dynarec and the cc_resampler. With the following steps you can get a working core for the the up to date version of retroarch, which will still have speed issues.

Concerning the dynarec i suppose the problem is connected to this issue
https://github.com/Gillou68310/mupen64plus-ae/issues/3

But I couldnt figure out how to transfer that to libretro. I already asked for help on github. If someone has an idea this might increase performance a lot.

So here are my steps to build mupen, perhaps it helps some others to investigate further.

Code: Select all
git clone git://github.com/libretro/mupen64plus-libretro
cd mupen64plus-libretro
wget -O Makefile.odroid http://pastebin.com/raw.php?i=hnADwhZa


Comment out line 143 on file mupen64plus-audio-libretro/audio_resampler_driver.h which looks like this:
Code: Select all
// extern rarch_resampler_t CC_resampler;


And line 29 on file file mupen64plus-audio-libretro/audio_resampler_driver.c which looks like this:
Code: Select all
//    &CC_resampler,


After this compile the core:
Code: Select all
make -j5 -f Makefile.odroid
User avatar
v0ltumna
 
Posts: 69
Joined: Fri Jul 05, 2013 10:21 pm
languages_spoken: english, german
ODROIDs: U2, U3

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby AreaScout » Sat Feb 07, 2015 2:07 am

Ahhhh v0ltumna i love u, slowly but steady this threads begins to grow ! :)

I will test it now :ugeek:

RG
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby AreaScout » Sat Feb 07, 2015 2:33 am

@v0ltumna

No, i have the same result, only 'cached_interpreter' works and rice plugin, glide64 and gln64 video plugin only shows black screen, but it didn't crash anymore

RG
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby v0ltumna » Sat Feb 07, 2015 2:47 am

Hm, only black screens? Thats strange, just played a bit Waverace with rice here, worked ok with good graphics, except for some font issues, did you use a up to date version of retroarch?
User avatar
v0ltumna
 
Posts: 69
Joined: Fri Jul 05, 2013 10:21 pm
languages_spoken: english, german
ODROIDs: U2, U3

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby AreaScout » Sat Feb 07, 2015 3:01 am

No you missunderstood me, rice works here ( but it always worked, it was never broken ), glide64 and gln64 shows only black screen, while glide64 would be soooo cool to have, it is the best video plugin :(

RG
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby v0ltumna » Sat Feb 07, 2015 3:33 am

Ah ok, that sadly is the case here, too. I hope we will find a solution for this.
User avatar
v0ltumna
 
Posts: 69
Joined: Fri Jul 05, 2013 10:21 pm
languages_spoken: english, german
ODROIDs: U2, U3

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby AreaScout » Sat Feb 07, 2015 4:02 am

v0ltumna wrote:Ah ok, that sadly is the case here, too. I hope we will find a solution for this.


That would be super cool, i believe that with dynamic_recompiler the emulation would have to be faster and glide64 should become working again !
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby AreaScout » Fri Feb 13, 2015 8:03 pm

@v0ltumna

The solution for this is to have RetroArch running with rgba8888 fbo support

Code: Select all
diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c
index e8757a8..f49d77c 100644
--- a/gfx/drivers/gl.c
+++ b/gfx/drivers/gl.c
@@ -1217,7 +1217,7 @@ static void gl_init_textures(gl_t *gl, const video_info_t
    if (gl->hw_render_use && gl->base_size == sizeof(uint32_t))
    {
       bool support_argb = gl_query_extension(gl, "OES_rgb8_rgba8")
-         || gl_query_extension(gl, "ARM_argb8");
+         || gl_query_extension(gl, "GL_ARM_rgba8");

       if (support_argb)
       {
Last edited by AreaScout on Sat Feb 14, 2015 7:20 pm, edited 1 time in total.
User avatar
AreaScout
 
Posts: 392
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: [GUIDE] Building libretro's ( retroarch emulation cores

Unread postby memeka » Fri Feb 13, 2015 8:26 pm

the solution to what? :D
User avatar
memeka
 
Posts: 3529
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART

Next

Return to Games and Emulators

Who is online

Users browsing this forum: 666lucifer666 and 1 guest