Dingoonity.org

GCW Zero => Development => Topic started by: the_gama on February 13, 2016, 12:55:15 am

Title: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 13, 2016, 12:55:15 am
This is a test release of RetroArch for the GCW0.   I decided to post it in the Development forum, because it's not ready for a public release yet, and so I hope other devs can build the sources and improve the port or share their comments.

(http://dl.dropboxusercontent.com/s/kyyx9mf7b6q0f75/screenshot020.png?dl=0) (http://dl.dropboxusercontent.com/s/sayemcl0ukji3io/screenshot021.png?dl=0)
(http://dl.dropboxusercontent.com/s/f00e2h04dajd1ao/screenshot022.png?dl=0) (http://dl.dropboxusercontent.com/s/o0lygc9xx8w28k7/screenshot027.png?dl=0)

Updates:
Code: [Select]
02-06-2016
- I have uploaded a new version of the opk.  The most relevant changes are that the xmb menu has been updated, it is wroth to give it a try!  Unfortunately the ribbon shader effect is not working on the zero.

Since this is a nightly build, it may contain several bugs.  So if you would like to contribute, please report those to the official libretro team.

- Another relevant change, is that I enabled the auto-frameskip feature of the catsfc core.  When it is enabled most snes games will be playable.

27-05-2016
- A couple of months ago the gcw0 port changes were officially added to retroarch's repo, but it needs some minor changes to build successfully.
Please download the following patch if you want to build the latest version of retroarch: https://www.dropbox.com/s/69qc8mwrvi1sjcu/gcw0_build_fixes%20%2827052016%29.patch?dl=0.

- This is a work in progress core based on Nebuleon tempgba port: https://www.dropbox.com/s/jy2gx1d259azv3t/libretro-tempgba-unofficial.7z?dl=0. 
I re-ported the tempgba core, since the existing gpsp core doesn't work with dynarec enabled.  Unfortunately this core
will only work with the static version of RetroArch.

Changelog:
Code: [Select]
v0.1b
- Set xmb menu as default menu driver.  It is really nice, you should check it out.
- Bundled some cores, but the ones other users have uploaded should work too.
- Added a frameskip option to catsfc core.
- ...

v0.1
- Built using CFLAGS = -O2 -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float.
- Bundled assets and core files into OPK.
- Set glui as default menu driver.
- Set alsathread as default audio driver.
- Mapped Select button correctly.  You can exit RetroArch from menu.
- Enabled Menu toggle with Down + L1 + R1 + Y combo.
- Bundled some additional cores.

To test retroarch on the zero:

1) Download the following files: RetroArch.opk (http://dl.dropboxusercontent.com/s/neqr07xgtloxp35/RetroArch.opk?dl=0), and retroarch_gcw0.zip (http://dl.dropboxusercontent.com/s/p7cjeh45zulwl8g/retroarch_gcw0.7z?dl=0) or retroarch_gcw0_lite.zip (http://dl.dropboxusercontent.com/s/l2vciwdmhuhza0c/retroarch_gcw0_lite.7z?dl=0).  Or download one of the following: RetroArch_v0.1.opk (http://dl.dropboxusercontent.com/s/2vffmi5n1r2yk18/RetroArch_v0.1.opk?dl=0), RetroArch_v0.1b.opk (http://dl.dropboxusercontent.com/s/tgluchqi5jfnjks/RetroArch_v0.1b.opk?dl=0) and skip to step 4.

2) Install RetroArch.opk on your zero.  Copy it to /media/data/apps or use the GCW Zero Manager (http://wiki.surkow.com/GCW_Zero_Manager) to install it. 

3) On the zero, create a folder called .config in /usr/local/home/.  Then extract retroarch_gcw0.zip or retroarch_gcw0_lite.zip contents and copy them there.  Those archives contain the retroarch.cfg file, cores, and other optional files like assets, cheats, shaders, etc.

4) Run RetroArch from gmenu.  You should see the RGUI menu screen where you can select a core, load a game, etc.


And for those interested in compiling RetroArch, these are the steps to build it from sources:

1) Download the following patches file: libretro_gcw0_patches.zip (http://dl.dropboxusercontent.com/s/x7ttt2npgv7dn3s/libretro_gcw0_patches.zip?dl=0), and extract it somewhere on your PC.

2) Clone the git repo:

Code: [Select]
git clone --depth 1 git://github.com/libretro/RetroArch.git
3) Enter the cloned sources directory and copy the opendingux_egl_driver_v0.1.patch file there.

Code: [Select]
cd RetroArch
4) Then, to apply the patch:

Code: [Select]
git apply opendingux_egl_driver_v0.1.patch
5) Before configuring the sources, we need to setup some cross-compilation variables:

Code: [Select]
export PATH=$PATH:/opt/gcw0-toolchain/usr/bin:/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin
export PKG_CONF_PATH=/opt/gcw0-toolchain/usr/bin/pkg-config
export PKG_CONFIG_PATH=/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/pkgconfig
export PKG_CONFIG_SYSROOT_DIR=/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot
export PKG_CONFIG_LIBDIR=/opt/gcw0-toolchain/usr/mipsel-gcw0-linux/uclibc/sysroot/usr/lib/pkgconfig

Additionally you can export CFLAGS variable to define custom optimization flags, for example:

Code: [Select]
export CFLAGS="-O2 -march=mips32 -mtune=mips32r2"
6) Now type the following to configure the sources:

Code: [Select]
./configure --global-config-dir=/mnt/RetroArch  --host=mipsel-gcw0-linux-uclibc --prefix=/tmp --enable-gles --disable-kms --enable-opendingux_fbdev --enable-alsa --with-gles_libs="-lGLESv2 -lEGL"
The --global-config-dir option is used to tell RetroArch to look for retroarch.cfg in the opk mount point.  That way we can bundle assets and core files into the opk.

There are other options you can use with configure, but I let pkg-config choose the necessary packages.  Look for qb/qb.params.sh in RetroArch sources for more options.

7) Finally, to compile RetroArch:

Code: [Select]
make V=1
If everything goes well, there should be a retroarch executable in the same folder.

8 ) Additionally you can build video and audio software filters.  They are located in RetroArch/audio/audio_filters and RetroArch/gfx/video_filters.  Enter one of those folders and type:

Code: [Select]
make compiler=/opt/gcw0-toolchain/usr/bin/mipsel-linux-gcc extra_flags="-O2 -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float"
Some .so files will be generated.  Copy the .so, .filt and .dsp files somewhere on the sdcard, and load them from RetroArch settings menu.


Now we need a core to test the frontend, so let's build picodrive:

1) Clone the repo:

Code: [Select]
git clone https://github.com/libretro/picodrive.git
2) Then enter the directory and copy the picodrive_libretro_gcw0.patch file there.

Code: [Select]
cd picodrive
3) Now, build the sources:

Code: [Select]
make -f Makefile.libretro platform=gcw0
Again, if there is no error, there should be a working picodrive_libretro.so file in picodrive folder.


Copy those files somewhere on your sdcard, and you can run retroarch from telnet with the following command:

Code: [Select]
./retroarch -L picodrive_libretro.so "Castlevania - Bloodlines (USA).zip"

If you would like to test another core, just go to https://github.com/libretro, and clone it's sources.
Then, you need to add some gcw0 platform changes to the Makefile.  Look for GCW0 on the patched picodrive/Makefile.libretro file to use it as example.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: care16la20 on February 13, 2016, 01:11:05 am


Very nice !!!!
Curious question: Does it run PSX system / PSP / Virtual Boy ?



Regards
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: thefifthgiant on February 13, 2016, 04:17:38 pm
Could you elaborate on what is different between the standard and lite versions?
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Aeter on February 14, 2016, 01:07:15 am


Very nice !!!!
Curious question: Does it run PSX system / PSP / Virtual Boy ?



Regards
Only one to find out.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: David Knight on February 14, 2016, 01:03:00 pm
4) Then, to apply the patch:

Code: [Select]
git apply opendingux_egl_driver_v0.1.patch

Hi, well done for getting retroarch built, I'm getting some build errors when following your instructions:

Code: [Select]
[email protected]:~/Projects/RetroArch$ git apply opendingux_egl_driver_v0.1.patcherror: patch failed: gfx/video_context_driver.c:43
error: gfx/video_context_driver.c: patch does not apply
error: patch failed: gfx/video_context_driver.h:165
error: gfx/video_context_driver.h: patch does not apply
error: patch failed: qb/config.params.sh:25
error: qb/config.params.sh: patch does not apply
error: gfx/drivers_context/opendingux_fbdev_ctx.c: already exists in working directory
[email protected]:~/Projects/RetroArch$

Perhaps the codebase has changed? I'll manually apply the patch instead.

EDIT I ealised that the patch had already been applied but there was initially a whitespace error.

Alll compiled and working now, I added -funroll-loops as my testing indicates a performance improvement at least on Genesis-plus GX.

If it wasn't Valentines day I would be happily building cores this evening :)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Shin-NiL on February 14, 2016, 01:28:06 pm
Long time no visiting this forum, but it's a great achievement. Thanks for sharing your work once again,  the_gama ;D

Perhaps the codebase has changed? I'll manually apply the patch instead.
No problem here using the git patch.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: David Knight on February 14, 2016, 01:35:49 pm
Long time no visiting this forum, but it's a great achievement. Thanks for sharing your work once again,  the_gama ;D

Perhaps the codebase has changed? I'll manually apply the patch instead.
No problem here using the git patch.

Shin-Nil! Great to see you again :)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Shin-NiL on February 14, 2016, 02:05:45 pm
Is just for me or the screen blinks every time I press a button and every input is ignored?

Shin-Nil! Great to see you again :)
Thank you David, I'm glad to see that you managed to keep the community alive  ;)

Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: David Knight on February 14, 2016, 02:10:44 pm
I get the same issue, I suspect related to the use of SDL2 in terminal mode?

Speed is slow as expected with Virtua Racing. I'd suggest recompiling with SDL1 libs as it seems to give faster rendering than SDL2.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 15, 2016, 03:20:06 am
Long time no visiting this forum, but it's a great achievement. Thanks for sharing your work once again,  the_gama ;D

Hi Shin, it's nice to see you again here in the forum.  It was a shame we could not release anything last time, so I had some free time and wanted to post it now.

About the screen flickering, I noticed that too.  It only happens when testing the app from telnet, running the Terminal app.  So as David wrote, that must be the cause.

RetroArch has continued to evolve, there are many new cores now and new features were added, so I think it is still worth it to have it on the zero. But unfortunately, the firmware and toolchain of the zero have not been updated since 2014.  At least it would be nice to have the latest version of the etnaviv driver.

Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Shin-NiL on February 15, 2016, 10:06:07 am
Thanks for the tips, I'll try run it again via the app launcher. I agree it's really sad to see that there was no update on GCW-Zero firmware since 2014 :'(

I'm back, but only as a visitor, unfortunately. I think David Knight could help you a lot, since he done a great job polishing my ancient Genesis Plus GX port  ;)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: pcercuei on February 16, 2016, 02:59:15 pm
What we use now, is the open-source kernel module by Vivante, + the user-space etnaviv OpenGL (within Mesa).
The etnaviv guys are working hard on replacing the kernel module from Vivante by a clean & working DRM driver. But the user-space part of etnaviv did not change that much; so right now using a more upstream version of etnaviv would probably give us a worse performance and more graphical glitches and crashes.

Besides, the new DRM driver for etnaviv requires us to ditch our framebuffer driver and all its nifty features (triple buffering, perfect 60 Hz, automatic scaling with the IPU, etc) and re-implement everything in a KMS driver. Sure, that would be an improvement (that's where all Linux video drivers are going), and unlock the HDMI / TV-out situation, but it requires an awful lot of work. It is on my TODO list, but for *after* the next firmware release.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: thefifthgiant on February 16, 2016, 03:09:02 pm
So we are talking a few years until that particular change comes into play? I imagine it won't be easy. On a side note, any hints on what improvements to expect in the next firmware release?

Probably wrong thread, just latching onto the current conversation..
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Quickman on February 16, 2016, 07:23:24 pm
So we are talking a few years until that particular change comes into play? I imagine it won't be easy. On a side note, any hints on what improvements to expect in the next firmware release?

Probably wrong thread, just latching onto the current conversation..
I'm with @thefifthgiant
...this whole conversation/back-and-forth has made me very curious. Either way, it also made me want to state: thank you so much for continuously working to make these things happen!  It's good to know it's not just on the back burner nor has been forgotten. @pcercuei :) @David Knight
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 17, 2016, 06:03:32 pm
Do you put the the gcw0 optimizations in the Makefile instead of Makefile.libretro? In virtual jaguar and mednafen VB, there is no Makefile.libretro file. Also, where exactly would I put the gcw0 modifications? Do I put them after the end endif statement? Or do I have to make a copy of Makefile.libretro and move it to the folder.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 18, 2016, 01:05:10 am
Here is Atari Jaguar :)

It runs extremely slow (at least on Atari Karts, which is the only one I tested). It seems B is select and A is accelerate (for Atari Karts). I have no idea if there is a way to optimise it or not, but the core would really benefit from some optimisations.

Zhongtiao1

libretro so file for GCW-Zero: https://www.dropbox.com/s/cfq7ao5roq1ui81/virtualjaguar_libretro.so?dl=0


UPDATE: I can't get pcsx rearmed to run when it is built for retroarch, and the mednafen based cores just don't build.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: David Knight on February 18, 2016, 11:37:16 am
Here is Atari Jaguar :)

It runs extremely slow (at least on Atari Karts, which is the only one I tested). It seems B is select and A is accelerate (for Atari Karts). I have no idea if there is a way to optimise it or not, but the core would really benefit from some optimisations.

Zhongtiao1

libretro so file for GCW-Zero: https://www.dropbox.com/s/cfq7ao5roq1ui81/virtualjaguar_libretro.so?dl=0


UPDATE: I can't get pcsx rearmed to run when it is built for retroarch, and the mednafen based cores just don't build.

What's the approximate framerate? I would expect a Jaguar emulator to require frameskip at least.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 18, 2016, 03:52:55 pm
Here is Atari Jaguar :)

It runs extremely slow (at least on Atari Karts, which is the only one I tested). It seems B is select and A is accelerate (for Atari Karts). I have no idea if there is a way to optimise it or not, but the core would really benefit from some optimisations.

Zhongtiao1

libretro so file for GCW-Zero: https://www.dropbox.com/s/cfq7ao5roq1ui81/virtualjaguar_libretro.so?dl=0


UPDATE: I can't get pcsx rearmed to run when it is built for retroarch, and the mednafen based cores just don't build.

What's the approximate framerate? I would expect a Jaguar emulator to require frameskip at least.

The framerate is about 1 to 3 fps. So, yeah :) it needs frameskipping. Atari Karts is one of the least CPU intensive games for the Jaguar too. I imagine Tempest 2000 will run close to 0.5 to 1 fps :P :)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 18, 2016, 04:58:04 pm
Here is Atari Jaguar :)

It runs extremely slow (at least on Atari Karts, which is the only one I tested). It seems B is select and A is accelerate (for Atari Karts). I have no idea if there is a way to optimise it or not, but the core would really benefit from some optimisations.

Zhongtiao1

libretro so file for GCW-Zero: https://www.dropbox.com/s/cfq7ao5roq1ui81/virtualjaguar_libretro.so?dl=0


UPDATE: I can't get pcsx rearmed to run when it is built for retroarch, and the mednafen based cores just don't build.

Great, it's good to see interest from other people :).   Can you post the patch/changes to the Makefile?

Can you post the error when building mednafen cores?

There are two options in retroarch gui that can help improve the overall performance in all cores: 

- Settings->Driver->Audio Driver = alsathread.
- Settings->Driver->Audio Resampler Driver = nearest.

RetroArch frontend does not support frameskip, so there will be many cores that won't run well on the zero.  But Frameskip may be implemented inside the core, I am not sure.  I think there is already a core with frameskip option implemented.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 18, 2016, 05:30:24 pm
Here is Atari Jaguar :)

It runs extremely slow (at least on Atari Karts, which is the only one I tested). It seems B is select and A is accelerate (for Atari Karts). I have no idea if there is a way to optimise it or not, but the core would really benefit from some optimisations.

Zhongtiao1

libretro so file for GCW-Zero: https://www.dropbox.com/s/cfq7ao5roq1ui81/virtualjaguar_libretro.so?dl=0


UPDATE: I can't get pcsx rearmed to run when it is built for retroarch, and the mednafen based cores just don't build.

Great, it's good to see interest from other people :).   Can you post the patch/changes to the Makefile?

Can you post the error when building mednafen cores?

There are two options in retroarch gui that can help improve the overall performance in all cores: 

- Settings->Driver->Audio Driver = alsathread.
- Settings->Driver->Audio Resampler Driver = nearest.

RetroArch frontend does not support frameskip, so there will be many cores that won't run well on the zero.  But Frameskip may be implemented inside the core, I am not sure.  I think there is already a core with frameskip option implemented.


The modifications I made were just adding the GCW-Zero parts of the picodrive patch (anything below the #gcw0 part).
 
Here is the Makefile (it's in txt form because otherwise dropbox keeps timing out on upload): https://www.dropbox.com/s/4x9p5eumv4u95hj/Makefile.txt?dl=0

I tried the same thing with pcsx rearmed, which compiled but crashed RetroArch on running games. pcsx rearmed crashing may just have something to do with the game I tried though. I also tried the beetle-vb core, which screamed errors at me every time I tried to compile. I'm not at home at the moment, but when I get there in a couple hours, I'll post them.

I'll try the audio driver edits and get back on that later today :)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 18, 2016, 10:51:36 pm
Update on Jaguar core: Audio Driver edits add maybe 1 fps. Not worth it at this point :(

Here is the error whenever you compile a mednafen-based core (at least the virtual boy core that is):

Code: [Select]
/usr/bin/ld: mednafen/hw_cpu/v810/fpu-new/softfloat.o: Relocations in generic ELF (EM: 8)
/usr/bin/ld: mednafen/hw_cpu/v810/fpu-new/softfloat.o: Relocations in generic ELF (EM: 8)
/usr/bin/ld: mednafen/hw_cpu/v810/fpu-new/softfloat.o: Relocations in generic ELF (EM: 8)
/usr/bin/ld: mednafen/hw_cpu/v810/fpu-new/softfloat.o: Relocations in generic ELF (EM: 8)
/usr/bin/ld: mednafen/hw_cpu/v810/fpu-new/softfloat.o: Relocations in generic ELF (EM: 8)
/usr/bin/ld: mednafen/hw_cpu/v810/fpu-new/softfloat.o: Relocations in generic ELF (EM: 8)
/usr/bin/ld: mednafen/hw_cpu/v810/fpu-new/softfloat.o: Relocations in generic ELF (EM: 8)
mednafen/hw_cpu/v810/fpu-new/softfloat.o: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
Makefile:300: recipe for target 'mednafen_vb_libretro_libretro.so' failed
make: *** [mednafen_vb_libretro_libretro.so] Error 1

Also, Here is o2em: https://www.dropbox.com/s/eae4zv5qrp4eczo/o2em_libretro.so?dl=0 I don't know if it works or not as I don't know where to put the BIOS rom :) It should work though.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 19, 2016, 12:14:23 am
I figured out how to get cores that require a BIOS to work :) To get those cores to work, just change the system_directory in the retroarch.cfg to where you want your bios files to be placed. You can just use the one I edited too ;) Just make sure to delete any files in the top folder before adding the new cfg file. Also, make sure to add a folder called BIOS in the same folder that holds your retroarch.cfg

Here is the edited retroarch.cfg: https://www.dropbox.com/s/yqy9ozbi9u1ozxl/retroarch.cfg?dl=0

The so file I attached above works fine


I'm working on getting the 4do core working. Should be up soon.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 19, 2016, 01:13:39 am
@zhongtiao1 Can you post the makefile you are using to build the mednafen core?  Some makefiles need different variables to be set.  I usually use the Linux or Linux-portable platforms as basis.

Using oprofile will tell you a lot of information about what functions are causing bad performance of some cores.

Here is a little guide by pcercuei:  http://boards.dingoonity.org/gcw-development/(question)-how-to-profile-application/

For example, this is the result I get from catsfc_libretro.so:

Code: [Select]
opendingux:/media/DUAL/retroarch # opreport -l ./retroarch
Using /var/lib/oprofile/samples/ for samples directory.
warning: /no-vmlinux could not be found.
CPU: CPU with timer interrupt, speed 1188 MHz (estimated)
Profiling through timer interrupt
samples  %        image name               symbol name
8653     28.8299  egl_gallium.so           /usr/lib/egl/egl_gallium.so
4722     15.7327  libuClibc-0.9.33.2.so    /lib/libuClibc-0.9.33.2.so
3586     11.9478  catsfc_libretro.so       WRITE_4PIXELS16
1350      4.4979  catsfc_libretro.so       S9xMainLoop_NoSA1_NoSFX
1262      4.2047  catsfc_libretro.so       S9xUpdateScreen
1220      4.0648  catsfc_libretro.so       DrawTile16
533       1.7758  no-vmlinux               /no-vmlinux
480       1.5993  catsfc_libretro.so       DrawBackground
373       1.2428  catsfc_libretro.so       WRITE_4PIXELS16_FLIPPED
359       1.1961  catsfc_libretro.so       S9xGetByte
342       1.1395  catsfc_libretro.so       CPUShutdown
328       1.0928  catsfc_libretro.so       S9xMixSamples
272       0.9062  catsfc_libretro.so       S9xGetWord
263       0.8763  catsfc_libretro.so       MixStereo
239       0.7963  catsfc_libretro.so       S9xDoHBlankProcessing_NoSFX
196       0.6530  catsfc_libretro.so       S9xSetByte
186       0.6197  catsfc_libretro.so       DrawOBJS
136       0.4531  catsfc_libretro.so       WRITE_4PIXELS16_SUB
133       0.4431  catsfc_libretro.so       S9xSetupOBJ
132       0.4398  catsfc_libretro.so       S9xSetWord
127       0.4231  catsfc_libretro.so       OpF0
117       0.3898  catsfc_libretro.so       ApuF0
117       0.3898  retroarch                audio_convert_float_to_s16_C
114       0.3798  catsfc_libretro.so       Direct
112       0.3732  catsfc_libretro.so       RenderLine
109       0.3632  catsfc_libretro.so       S9xAPUGetByte
98        0.3265  catsfc_libretro.so       LDA8
93        0.3099  retroarch                runloop_ctl
87        0.2899  catsfc_libretro.so       Absolute
81        0.2699  catsfc_libretro.so       S9xReschedule
73        0.2432  catsfc_libretro.so       Apu84
73        0.2432  catsfc_libretro.so       OpADM1
73        0.2432  catsfc_libretro.so       REGISTER_2104
73        0.2432  catsfc_libretro.so       Relative.isra.2.constprop.8
71        0.2366  catsfc_libretro.so       ApuE5
71        0.2366  catsfc_libretro.so       SetZN8
71        0.2366  retroarch                audio_convert_s16_to_float_C
66        0.2199  libEGL.so.1.0.0          /usr/lib/libEGL.so.1.0.0
65        0.2166  catsfc_libretro.so       SetZN16
62        0.2066  catsfc_libretro.so       DecodeBlock
62        0.2066  catsfc_libretro.so       DrawClippedTile16
62        0.2066  catsfc_libretro.so       WRITE_4PIXELS16_ADD1_2
58        0.1932  catsfc_libretro.so       DirectIndirectIndexedLong
56        0.1866  retroarch                udev_joypad_button
54        0.1799  catsfc_libretro.so       OpD0
53        0.1766  catsfc_libretro.so       OpE2
50        0.1666  libpthread-0.9.33.2.so   pthread_mutex_lock
49        0.1633  catsfc_libretro.so       ADC16
49        0.1633  catsfc_libretro.so       OpC2
49        0.1633  retroarch                resampler_nearest_process
48        0.1599  retroarch                input_joypad_pressed
46        0.1533  catsfc_libretro.so       S9xFixColourBrightness
45        0.1499  catsfc_libretro.so       S9xSetPCBase
44        0.1466  catsfc_libretro.so       S9xSetPPU
43        0.1433  catsfc_libretro.so       OpAddressPassthrough
41        0.1366  catsfc_libretro.so       Apu3F
39        0.1299  catsfc_libretro.so       ApuD0
39        0.1299  catsfc_libretro.so       S9xAPUGetByteZ
38        0.1266  catsfc_libretro.so       Apu65
36        0.1199  retroarch                input_keymaps_translate_rk_to_keysym
35        0.1166  retroarch                config_get_ptr
33        0.1099  catsfc_libretro.so       Apu6F
30        0.1000  catsfc_libretro.so       ApuC4
30        0.1000  catsfc_libretro.so       OpA5M1
29        0.0966  catsfc_libretro.so       S9xDoHDMA
29        0.0966  catsfc_libretro.so       S9xFixCycles
29        0.0966  retroarch                udev_input_is_pressed
28        0.0933  catsfc_libretro.so       S9xAPUSetByteZ
27        0.0900  catsfc_libretro.so       Op20
26        0.0866  catsfc_libretro.so       DrawTile16Sub
26        0.0866  catsfc_libretro.so       Op85M1
26        0.0866  catsfc_libretro.so       S9xDoDMA
26        0.0866  retroarch                video_driver_ctl
25        0.0833  catsfc_libretro.so       Apu60
25        0.0833  catsfc_libretro.so       OpB0
24        0.0800  catsfc_libretro.so       REGISTER_2118_linear
23        0.0766  catsfc_libretro.so       LDA16
23        0.0766  catsfc_libretro.so       Op60
23        0.0766  retroarch                input_state
22        0.0733  catsfc_libretro.so       OpC9M0
21        0.0700  libGLESv2.so.2.0.0       /usr/lib/libGLESv2.so.2.0.0
20        0.0666  catsfc_libretro.so       ADC8
20        0.0666  catsfc_libretro.so       REGISTER_2119_linear
20        0.0666  retroarch                gl_frame
20        0.0666  retroarch                state_manager_check_rewind
19        0.0633  catsfc_libretro.so       DirectIndexedX
18        0.0600  catsfc_libretro.so       Op90
18        0.0600  catsfc_libretro.so       OpC8X0
18        0.0600  catsfc_libretro.so       S9xProcessSound
18        0.0600  catsfc_libretro.so       S9xSetAPUDSP
18        0.0600  retroarch                egl_get_video_size
18        0.0600  retroarch                udev_joypad_axis
17        0.0566  catsfc_libretro.so       Op18
17        0.0566  catsfc_libretro.so       Op85M0
17        0.0566  retroarch                input_driver_ctl
17        0.0566  retroarch                menu_driver_ctl
16        0.0533  catsfc_libretro.so       AbsoluteIndexedX
16        0.0533  catsfc_libretro.so       Op29M0
16        0.0533  catsfc_libretro.so       S9xGetPPU
16        0.0533  retroarch                check_pause
16        0.0533  retroarch                gfx_ctx_opendingux_check_window
15        0.0500  catsfc_libretro.so       STA16
15        0.0500  retroarch                input_push_analog_dpad
15        0.0500  retroarch                rarch_environment_cb
14        0.0466  catsfc_libretro.so       LDY16
14        0.0466  catsfc_libretro.so       Op10
14        0.0466  catsfc_libretro.so       S9xGetCPU
14        0.0466  catsfc_libretro.so       S9xMainLoop
13        0.0433  catsfc_libretro.so       INC8
13        0.0433  catsfc_libretro.so       Op06M1
13        0.0433  catsfc_libretro.so       Op38
13        0.0433  catsfc_libretro.so       Op80
13        0.0433  catsfc_libretro.so       RenderScreen
13        0.0433  libpthread-0.9.33.2.so   __pthread_mutex_unlock_usercnt
13        0.0433  retroarch                config_get_entry.isra.2.constprop.4
13        0.0433  retroarch                gfx_ctx_check_window
12        0.0400  catsfc_libretro.so       A_ASL8
12        0.0400  catsfc_libretro.so       Op65M0
12        0.0400  catsfc_libretro.so       Op6B
12        0.0400  catsfc_libretro.so       OpA9M1
12        0.0400  catsfc_libretro.so       STA8
12        0.0400  retroarch                bsv_movie_ctl
12        0.0400  retroarch                check_stateslots
11        0.0366  catsfc_libretro.so       Apu10
11        0.0366  catsfc_libretro.so       Op22
11        0.0366  catsfc_libretro.so       Op54X0
11        0.0366  catsfc_libretro.so       Op89M0
11        0.0366  catsfc_libretro.so       OpAB
11        0.0366  retroarch                gfx_ctx_focus
10        0.0333  catsfc_libretro.so       ApuFD

It seems most of the cpu time is spent in egl_gallium driver.  And, maybe, optimizing WRITE_4PIXELS16 can improve performance.


Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 19, 2016, 01:53:02 am
Here is the 4DO Core: https://www.dropbox.com/s/483ldwx2p21ey0z/4do_libretro.so?dl=0

Animations are actually pretty smooth, I would say they are about 10-15 fps. When you actually play the games though, lots of screen tearing occurs. Lots of lag also happens at user movement on screen. Game play is at about 1 to 3 fps :)


Here is the pcsx1 core: https://www.dropbox.com/s/oqnoud2hlujpm5v/pcsx1_libretro.so?dl=0
It's has the same problems as the 4DO core, so I believe they both have the same problem. No screen tearing in this core though. :)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 19, 2016, 02:28:40 am
@zhongtiao1 Can you post the makefile you are using to build the mednafen core?  Some makefiles need different variables to be set.  I usually use the Linux or Linux-portable platforms as basis.

Using oprofile will tell you a lot of information about what functions are causing bad performance of some cores.

Here is a little guide by pcercuei:  http://boards.dingoonity.org/gcw-development/(question)-how-to-profile-application/

For example, this is the result I get from catsfc_libretro.so:

Code: [Select]
opendingux:/media/DUAL/retroarch # opreport -l ./retroarch
Using /var/lib/oprofile/samples/ for samples directory.
warning: /no-vmlinux could not be found.
CPU: CPU with timer interrupt, speed 1188 MHz (estimated)
Profiling through timer interrupt
samples  %        image name               symbol name
8653     28.8299  egl_gallium.so           /usr/lib/egl/egl_gallium.so
4722     15.7327  libuClibc-0.9.33.2.so    /lib/libuClibc-0.9.33.2.so
3586     11.9478  catsfc_libretro.so       WRITE_4PIXELS16
1350      4.4979  catsfc_libretro.so       S9xMainLoop_NoSA1_NoSFX
1262      4.2047  catsfc_libretro.so       S9xUpdateScreen
1220      4.0648  catsfc_libretro.so       DrawTile16
533       1.7758  no-vmlinux               /no-vmlinux
480       1.5993  catsfc_libretro.so       DrawBackground
373       1.2428  catsfc_libretro.so       WRITE_4PIXELS16_FLIPPED
359       1.1961  catsfc_libretro.so       S9xGetByte
342       1.1395  catsfc_libretro.so       CPUShutdown
328       1.0928  catsfc_libretro.so       S9xMixSamples
272       0.9062  catsfc_libretro.so       S9xGetWord
263       0.8763  catsfc_libretro.so       MixStereo
239       0.7963  catsfc_libretro.so       S9xDoHBlankProcessing_NoSFX
196       0.6530  catsfc_libretro.so       S9xSetByte
186       0.6197  catsfc_libretro.so       DrawOBJS
136       0.4531  catsfc_libretro.so       WRITE_4PIXELS16_SUB
133       0.4431  catsfc_libretro.so       S9xSetupOBJ
132       0.4398  catsfc_libretro.so       S9xSetWord
127       0.4231  catsfc_libretro.so       OpF0
117       0.3898  catsfc_libretro.so       ApuF0
117       0.3898  retroarch                audio_convert_float_to_s16_C
114       0.3798  catsfc_libretro.so       Direct
112       0.3732  catsfc_libretro.so       RenderLine
109       0.3632  catsfc_libretro.so       S9xAPUGetByte
98        0.3265  catsfc_libretro.so       LDA8
93        0.3099  retroarch                runloop_ctl
87        0.2899  catsfc_libretro.so       Absolute
81        0.2699  catsfc_libretro.so       S9xReschedule
73        0.2432  catsfc_libretro.so       Apu84
73        0.2432  catsfc_libretro.so       OpADM1
73        0.2432  catsfc_libretro.so       REGISTER_2104
73        0.2432  catsfc_libretro.so       Relative.isra.2.constprop.8
71        0.2366  catsfc_libretro.so       ApuE5
71        0.2366  catsfc_libretro.so       SetZN8
71        0.2366  retroarch                audio_convert_s16_to_float_C
66        0.2199  libEGL.so.1.0.0          /usr/lib/libEGL.so.1.0.0
65        0.2166  catsfc_libretro.so       SetZN16
62        0.2066  catsfc_libretro.so       DecodeBlock
62        0.2066  catsfc_libretro.so       DrawClippedTile16
62        0.2066  catsfc_libretro.so       WRITE_4PIXELS16_ADD1_2
58        0.1932  catsfc_libretro.so       DirectIndirectIndexedLong
56        0.1866  retroarch                udev_joypad_button
54        0.1799  catsfc_libretro.so       OpD0
53        0.1766  catsfc_libretro.so       OpE2
50        0.1666  libpthread-0.9.33.2.so   pthread_mutex_lock
49        0.1633  catsfc_libretro.so       ADC16
49        0.1633  catsfc_libretro.so       OpC2
49        0.1633  retroarch                resampler_nearest_process
48        0.1599  retroarch                input_joypad_pressed
46        0.1533  catsfc_libretro.so       S9xFixColourBrightness
45        0.1499  catsfc_libretro.so       S9xSetPCBase
44        0.1466  catsfc_libretro.so       S9xSetPPU
43        0.1433  catsfc_libretro.so       OpAddressPassthrough
41        0.1366  catsfc_libretro.so       Apu3F
39        0.1299  catsfc_libretro.so       ApuD0
39        0.1299  catsfc_libretro.so       S9xAPUGetByteZ
38        0.1266  catsfc_libretro.so       Apu65
36        0.1199  retroarch                input_keymaps_translate_rk_to_keysym
35        0.1166  retroarch                config_get_ptr
33        0.1099  catsfc_libretro.so       Apu6F
30        0.1000  catsfc_libretro.so       ApuC4
30        0.1000  catsfc_libretro.so       OpA5M1
29        0.0966  catsfc_libretro.so       S9xDoHDMA
29        0.0966  catsfc_libretro.so       S9xFixCycles
29        0.0966  retroarch                udev_input_is_pressed
28        0.0933  catsfc_libretro.so       S9xAPUSetByteZ
27        0.0900  catsfc_libretro.so       Op20
26        0.0866  catsfc_libretro.so       DrawTile16Sub
26        0.0866  catsfc_libretro.so       Op85M1
26        0.0866  catsfc_libretro.so       S9xDoDMA
26        0.0866  retroarch                video_driver_ctl
25        0.0833  catsfc_libretro.so       Apu60
25        0.0833  catsfc_libretro.so       OpB0
24        0.0800  catsfc_libretro.so       REGISTER_2118_linear
23        0.0766  catsfc_libretro.so       LDA16
23        0.0766  catsfc_libretro.so       Op60
23        0.0766  retroarch                input_state
22        0.0733  catsfc_libretro.so       OpC9M0
21        0.0700  libGLESv2.so.2.0.0       /usr/lib/libGLESv2.so.2.0.0
20        0.0666  catsfc_libretro.so       ADC8
20        0.0666  catsfc_libretro.so       REGISTER_2119_linear
20        0.0666  retroarch                gl_frame
20        0.0666  retroarch                state_manager_check_rewind
19        0.0633  catsfc_libretro.so       DirectIndexedX
18        0.0600  catsfc_libretro.so       Op90
18        0.0600  catsfc_libretro.so       OpC8X0
18        0.0600  catsfc_libretro.so       S9xProcessSound
18        0.0600  catsfc_libretro.so       S9xSetAPUDSP
18        0.0600  retroarch                egl_get_video_size
18        0.0600  retroarch                udev_joypad_axis
17        0.0566  catsfc_libretro.so       Op18
17        0.0566  catsfc_libretro.so       Op85M0
17        0.0566  retroarch                input_driver_ctl
17        0.0566  retroarch                menu_driver_ctl
16        0.0533  catsfc_libretro.so       AbsoluteIndexedX
16        0.0533  catsfc_libretro.so       Op29M0
16        0.0533  catsfc_libretro.so       S9xGetPPU
16        0.0533  retroarch                check_pause
16        0.0533  retroarch                gfx_ctx_opendingux_check_window
15        0.0500  catsfc_libretro.so       STA16
15        0.0500  retroarch                input_push_analog_dpad
15        0.0500  retroarch                rarch_environment_cb
14        0.0466  catsfc_libretro.so       LDY16
14        0.0466  catsfc_libretro.so       Op10
14        0.0466  catsfc_libretro.so       S9xGetCPU
14        0.0466  catsfc_libretro.so       S9xMainLoop
13        0.0433  catsfc_libretro.so       INC8
13        0.0433  catsfc_libretro.so       Op06M1
13        0.0433  catsfc_libretro.so       Op38
13        0.0433  catsfc_libretro.so       Op80
13        0.0433  catsfc_libretro.so       RenderScreen
13        0.0433  libpthread-0.9.33.2.so   __pthread_mutex_unlock_usercnt
13        0.0433  retroarch                config_get_entry.isra.2.constprop.4
13        0.0433  retroarch                gfx_ctx_check_window
12        0.0400  catsfc_libretro.so       A_ASL8
12        0.0400  catsfc_libretro.so       Op65M0
12        0.0400  catsfc_libretro.so       Op6B
12        0.0400  catsfc_libretro.so       OpA9M1
12        0.0400  catsfc_libretro.so       STA8
12        0.0400  retroarch                bsv_movie_ctl
12        0.0400  retroarch                check_stateslots
11        0.0366  catsfc_libretro.so       Apu10
11        0.0366  catsfc_libretro.so       Op22
11        0.0366  catsfc_libretro.so       Op54X0
11        0.0366  catsfc_libretro.so       Op89M0
11        0.0366  catsfc_libretro.so       OpAB
11        0.0366  retroarch                gfx_ctx_focus
10        0.0333  catsfc_libretro.so       ApuFD

It seems most of the cpu time is spent in egl_gallium driver.  And, maybe, optimizing WRITE_4PIXELS16 can improve performance.


@the_gama How do I do the opcontrol over telnet correctly? I've started profiling, but whenever I try to run the retroarch executable I made on my computer, it won't read any Atari jaguar rom I through at it. I am using the virtualjaguar_libretro.so. What am I doing wrong?

Makefile from mednafen-based cores: https://www.dropbox.com/s/trct6f2pe6295q7/Makefile?dl=0
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 19, 2016, 03:33:26 am
Ok, here is what I do:

1) Build the core library with DEBUG flags enabled, you can try:

Code: [Select]
make DEBUG=1 platform=gcw0

Or put those CFLAGS manually in the Makefile.

2) Create a folder called 'retroarch' inside the SD Card, using an ftp client or the OPK Manager.

3) Copy the retroarch executable (not the OPK), and the libretro core there.

4) Connect through telnet to the gcw0

Code: [Select]
telnet 10.1.1.2

5) Browse to the retroarch folder and init the profiler with the following commands:

Code: [Select]
opcontrol --deinit
opcontrol --no-vmlinux
opcontrol --separate=kernel
opcontrol --init
opcontrol --reset
opcontrol --start

6) Then, also from telnet, start retroarch:

Code: [Select]
./retroarch -L catsfc_libretro.so "roms/Mega Man X (Version 1.0).sfc"

I like to load a rom directly to skip the rgui menu.

7) Then let the game run for a couple of minutes, and then exit retroarch by pressing Select.

8 ) Finally stop the profiler and check the results:

Code: [Select]
opcontrol --stop
opreport -l ./retroarch
opcontrol --deinit


About the Makefile, I think you are missing the CXX compiler.

Code: [Select]
else ifeq ($(platform), gcw0)
   TARGET := $(TARGET_NAME)_libretro.so
   CC = /opt/gcw0-toolchain/usr/bin/mipsel-linux-gcc
   CXX = /opt/gcw0-toolchain/usr/bin/mipsel-linux-g++
   AR = /opt/gcw0-toolchain/usr/bin/mipsel-linux-ar
   fpic := -fPIC
   SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T
   LDFLAGS += $(PTHREAD_FLAGS) -lrt
   FLAGS += $(PTHREAD_FLAGS) -DHAVE_MKDIR
   FLAGS += -march=mips32 -mtune=mips32r2 -mhard-float

It will be interesting to see the profiler report from the pcsx1 and the jaguar cores.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 19, 2016, 04:21:16 am
Okay, here is pcsx1:

Code: [Select]
CPU: CPU with timer interrupt, speed 1188 MHz (estimated)
Profiling through timer interrupt
samples  %        image name               symbol name
2557     24.9683  pcsx_rearmed_libretro.so execI
1053     10.2822  pcsx_rearmed_libretro.so doBranch
976       9.5303  pcsx_rearmed_libretro.so psxBranchTest
596       5.8197  pcsx_rearmed_libretro.so psxBranchNoDelay
543       5.3022  egl_gallium.so           /usr/lib/egl/egl_gallium.so
509       4.9702  pcsx_rearmed_libretro.so intExecute
467       4.5601  pcsx_rearmed_libretro.so psxSPECIAL
384       3.7496  pcsx_rearmed_libretro.so psxMemRead32
366       3.5739  pcsx_rearmed_libretro.so psxLW
304       2.9685  pcsx_rearmed_libretro.so psxSLL
199       1.9432  libuClibc-0.9.33.2.so    /lib/libuClibc-0.9.33.2.so
195       1.9041  no-vmlinux               /no-vmlinux
147       1.4354  pcsx_rearmed_libretro.so psxADDIU
135       1.3182  pcsx_rearmed_libretro.so psxBNE
130       1.2694  pcsx_rearmed_libretro.so psxMemWrite32
107       1.0448  pcsx_rearmed_libretro.so do_samples_simple
106       1.0351  pcsx_rearmed_libretro.so psxADDU
81        0.7909  pcsx_rearmed_libretro.so psxLUI
81        0.7909  pcsx_rearmed_libretro.so psxSW
70        0.6835  pcsx_rearmed_libretro.so psxJR
68        0.6640  pcsx_rearmed_libretro.so psxBEQ
65        0.6347  pcsx_rearmed_libretro.so do_samples
63        0.6152  pcsx_rearmed_libretro.so psxJAL
61        0.5956  pcsx_rearmed_libretro.so InterpolateUp
54        0.5273  pcsx_rearmed_libretro.so intExecuteBlock
49        0.4785  pcsx_rearmed_libretro.so bgr555_to_rgb565
42        0.4101  pcsx_rearmed_libretro.so psxSLT
41        0.4004  pcsx_rearmed_libretro.so psxJumpTest
39        0.3808  pcsx_rearmed_libretro.so GetTextureTransColG32_S.part.6
37        0.3613  pcsx_rearmed_libretro.so yuv2rgb24
35        0.3418  pcsx_rearmed_libretro.so psxSLTU
32        0.3125  retroarch                config_get_array
32        0.3125  retroarch                config_get_string
31        0.3027  ld-uClibc-0.9.33.2.so    /lib/ld-uClibc-0.9.33.2.so
30        0.2929  pcsx_rearmed_libretro.so bgr888_to_rgb565
28        0.2734  pcsx_rearmed_libretro.so psxAND
27        0.2636  pcsx_rearmed_libretro.so MixREVERB.constprop.10
26        0.2539  pcsx_rearmed_libretro.so DrawSoftwareSprite
25        0.2441  pcsx_rearmed_libretro.so psxMemRead16
23        0.2246  pcsx_rearmed_libretro.so psxLHU
23        0.2246  pcsx_rearmed_libretro.so psxMemRead8
18        0.1758  pcsx_rearmed_libretro.so psxLBU
13        0.1269  pcsx_rearmed_libretro.so psxANDI
12        0.1172  libpthread-0.9.33.2.so   pthread_mutex_lock
12        0.1172  pcsx_rearmed_libretro.so psxDelayTest
12        0.1172  pcsx_rearmed_libretro.so psxREGIMM
11        0.1074  libpthread-0.9.33.2.so   __pthread_mutex_unlock_usercnt
11        0.1074  pcsx_rearmed_libretro.so psxMemWrite16
11        0.1074  pcsx_rearmed_libretro.so psxOR
11        0.1074  pcsx_rearmed_libretro.so psxSLLV
11        0.1074  retroarch                audio_convert_float_to_s16_C
10        0.0976  pcsx_rearmed_libretro.so cdrReadInterrupt
10        0.0976  pcsx_rearmed_libretro.so psxBGEZ
10        0.0976  pcsx_rearmed_libretro.so psxBiosException
10        0.0976  retroarch                input_keys_pressed
9         0.0879  retroarch                config_set_string
8         0.0781  pcsx_rearmed_libretro.so psxSUBU
8         0.0781  pcsx_rearmed_libretro.so psxTestLoadDelay
8         0.0781  pcsx_rearmed_libretro.so rl2blk
8         0.0781  retroarch                resampler_nearest_process
7         0.0684  pcsx_rearmed_libretro.so GetTextureTransColG32_SPR.part.7
7         0.0684  pcsx_rearmed_libretro.so do_samples_finish
7         0.0684  pcsx_rearmed_libretro.so psxBLTZ
7         0.0684  retroarch                gl_raster_font_render_line
6         0.0586  libpthread-0.9.33.2.so   __pthread_cleanup_pop_restore
6         0.0586  pcsx_rearmed_libretro.so psxHwRead32
5         0.0488  pcsx_rearmed_libretro.so psxSH
5         0.0488  retroarch                audio_convert_s16_to_float_C
4         0.0391  libEGL.so.1.0.0          /usr/lib/libEGL.so.1.0.0
4         0.0391  pcsx_rearmed_libretro.so psxSRLV
4         0.0391  retroarch                udev_input_is_pressed
4         0.0391  retroarch                udev_joypad_button
3         0.0293  libfreetype.so.6.11.2    /usr/lib/libfreetype.so.6.11.2
3         0.0293  libpthread-0.9.33.2.so   __pthread_cleanup_push_defer
3         0.0293  pcsx_rearmed_libretro.so GetShadeTransCol
3         0.0293  pcsx_rearmed_libretro.so calcCrc
3         0.0293  pcsx_rearmed_libretro.so gteMTC2
3         0.0293  pcsx_rearmed_libretro.so psxCOP2
3         0.0293  pcsx_rearmed_libretro.so psxHwRead16
3         0.0293  pcsx_rearmed_libretro.so psxHwRead8
3         0.0293  pcsx_rearmed_libretro.so psxHwWrite16
3         0.0293  pcsx_rearmed_libretro.so psxLH
3         0.0293  pcsx_rearmed_libretro.so psxSLTI
3         0.0293  pcsx_rearmed_libretro.so sioWrite8
3         0.0293  retroarch                config_file_new_internal
3         0.0293  retroarch                gl_frame
3         0.0293  retroarch                input_joypad_pressed
3         0.0293  retroarch                input_keymaps_translate_rk_to_keysym
3         0.0293  retroarch                runloop_ctl
3         0.0293  retroarch                udev_joypad_axis
3         0.0293  retroarch                video_driver_ctl
2         0.0195  libGLESv2.so.2.0.0       /usr/lib/libGLESv2.so.2.0.0
2         0.0195  libasound.so.2.0.0       /usr/lib/libasound.so.2.0.0
2         0.0195  pcsx_rearmed_libretro.so FillSoftwareAreaTrans.part.12
2         0.0195  pcsx_rearmed_libretro.so SPUplayADPCMchannel
2         0.0195  pcsx_rearmed_libretro.so do_cmd_buffer
2         0.0195  pcsx_rearmed_libretro.so do_vram_io
2         0.0195  pcsx_rearmed_libretro.so psxBios_ReturnFromException
2         0.0195  pcsx_rearmed_libretro.so psxJ
2         0.0195  pcsx_rearmed_libretro.so psxORI
2         0.0195  pcsx_rearmed_libretro.so psxRcntUpdate
2         0.0195  pcsx_rearmed_libretro.so psxSRA
2         0.0195  pcsx_rearmed_libretro.so psxSRL
2         0.0195  retroarch                bsv_movie_ctl
2         0.0195  retroarch                config_get_ptr
2         0.0195  retroarch                input_driver_ctl
2         0.0195  retroarch                rarch_ctl
2         0.0195  retroarch                udev_poll_pad.isra.2
1         0.0098  libdl-0.9.33.2.so        /lib/libdl-0.9.33.2.so
1         0.0098  libpthread-0.9.33.2.so   __pthread_disable_asynccancel
1         0.0098  libudev.so.1.3.0         /lib/libudev.so.1.3.0
1         0.0098  pcsx_rearmed_libretro.so ApplyCheats
1         0.0098  pcsx_rearmed_libretro.so CheckPPFCache
1         0.0098  pcsx_rearmed_libretro.so GPUwriteStatus
1         0.0098  pcsx_rearmed_libretro.so ISOreadTrack
1         0.0098  pcsx_rearmed_libretro.so MixADSR
1         0.0098  pcsx_rearmed_libretro.so ReadTrack
1         0.0098  pcsx_rearmed_libretro.so SPUasync
1         0.0098  pcsx_rearmed_libretro.so _PADstartPoll
1         0.0098  pcsx_rearmed_libretro.so biosInterrupt
1         0.0098  pcsx_rearmed_libretro.so cdrRead3
1         0.0098  pcsx_rearmed_libretro.so do_cmd_list
1         0.0098  pcsx_rearmed_libretro.so gteMFC2
1         0.0098  pcsx_rearmed_libretro.so primMoveImage
1         0.0098  pcsx_rearmed_libretro.so psxBASIC
1         0.0098  pcsx_rearmed_libretro.so psxBGTZ
1         0.0098  pcsx_rearmed_libretro.so psxHwWrite32
1         0.0098  pcsx_rearmed_libretro.so psxLB
1         0.0098  pcsx_rearmed_libretro.so psxMFLO
1         0.0098  pcsx_rearmed_libretro.so psxNOR
1         0.0098  pcsx_rearmed_libretro.so psxSLTIU
1         0.0098  pcsx_rearmed_libretro.so psxSWR
1         0.0098  pcsx_rearmed_libretro.so psxXORI
1         0.0098  pcsx_rearmed_libretro.so renderer_flush_queues
1         0.0098  pcsx_rearmed_libretro.so retro_run
1         0.0098  pcsx_rearmed_libretro.so sioInterrupt
1         0.0098  pcsx_rearmed_libretro.so xa_decode_data
1         0.0098  retroarch                CONFIG_STRING_OPTIONS
1         0.0098  retroarch                cheevos_ctl
1         0.0098  retroarch                config_get_path
1         0.0098  retroarch                djb2_calculate
1         0.0098  retroarch                gfx_ctx_ctl
1         0.0098  retroarch                gl_alive
1         0.0098  retroarch                gl_glsl_set_mvp
1         0.0098  retroarch                input_poll
1         0.0098  retroarch                input_state
1         0.0098  retroarch                input_state_poll
1         0.0098  retroarch                msg_queue_pull
1         0.0098  retroarch                runloop_iterate
1         0.0098  retroarch                video_driver_frame
1         0.0098  retroarch                video_monitor_get_fps
1         0.0098  retroarch                video_shader_driver_ctl

egl_gallium is up there. but it looks like we need to ExecI down too.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 19, 2016, 05:20:06 am
I can't get Jaguar Roms to work over telnet for some reason, sorry.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 19, 2016, 02:08:45 pm
I think pcsx1 core (pscx_rearmed) would need a MIPS Recompiler to work decently.  If I am not wrong, I remember they used Ari's mupen64plus recompiler with some modifications.  It may be posible to do something similar with Nebuleon's dynarec but this is a huge task.

By the way, it seems a Frameskip option was implemented to pcsx_rearmed core some time ago.  Maybe that option can be implemented in other cores too.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 19, 2016, 03:23:56 pm
I think pcsx1 core (pscx_rearmed) would need a MIPS Recompiler to work decently.  If I am not wrong, I remember they used Ari's mupen64plus recompiler with some modifications.  It may be posible to do something similar with Nebuleon's dynarec but this is a huge task.

By the way, it seems a Frameskip option was implemented to pcsx_rearmed core some time ago.  Maybe that option can be implemented in other cores too.

Would you be willing to test the jaguar core @the_gama ? Also, I believe the 4DO core has the same problem as pcsx1 does. It stutters in the same places.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: David Knight on February 19, 2016, 11:38:57 pm
I also saw some references to frameskip in the jaguar code though I haven't delved further to see if they are legacy or if they actually do anything at all.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 20, 2016, 01:50:08 am
I also saw some references to frameskip in the jaguar code though I haven't delved further to see if they are legacy or if they actually do anything at all.

I searched in a couple of cores for FrameSkip option.  I found some references, but the actual implementation was completely removed from the sources.

@zhongtiao1, I will try to, I don't have time this weekend but I'll give it a try next week.

If you haven't done already, you can try:

Code: [Select]
./retroarch --verbose -L virtualjaguar_libretro.so "roms/some_jaguar_rom"

The --verbose option will make retroarch display lots of information.

By the way, I have successfully built mednafen_pce_fast_libretro.  It runs Akumajou Dracula at full speed ;).

(http://dl.dropboxusercontent.com/s/ny2q8wbhhsbslsi/screenshot023.png?dl=0) (http://dl.dropboxusercontent.com/s/bct7kfo5utwe1pg/screenshot025.png?dl=0)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 20, 2016, 06:07:34 am
I also saw some references to frameskip in the jaguar code though I haven't delved further to see if they are legacy or if they actually do anything at all.

I searched in a couple of cores for FrameSkip option.  I found some references, but the actual implementation was completely removed from the sources.

@zhongtiao1, I will try to, I don't have time this weekend but I'll give it a try next week.

If you haven't done already, you can try:

Code: [Select]
./retroarch --verbose -L virtualjaguar_libretro.so "roms/some_jaguar_rom"

The --verbose option will make retroarch display lots of information.

By the way, I have successfully built mednafen_pce_fast_libretro.  It runs Akumajou Dracula at full speed ;).

(http://dl.dropboxusercontent.com/s/ny2q8wbhhsbslsi/screenshot023.png?dl=0) (http://dl.dropboxusercontent.com/s/bct7kfo5utwe1pg/screenshot025.png?dl=0)

Well, @the_gama and @David Knight I actually figured it out :) Telnet doesn't like j64 files or spaces.

Here's the Jaguar Core:
Quote
CPU: CPU with timer interrupt, speed 1188 MHz (estimated)
Profiling through timer interrupt
samples  %        image name               symbol name
1684     15.7501  virtualjaguar_libretro.so DSPExec
1364     12.7572  virtualjaguar_libretro.so GPUExec
1345     12.5795  virtualjaguar_libretro.so m68k_get_reg
725       6.7808  virtualjaguar_libretro.so DSPReadWord
641       5.9951  virtualjaguar_libretro.so GPUReadWord
530       4.9570  virtualjaguar_libretro.so M68KInstructionHook
346       3.2361  virtualjaguar_libretro.so dsp_opcode_jr
342       3.1987  egl_gallium.so           /usr/lib/egl/egl_gallium.so
257       2.4037  no-vmlinux               /no-vmlinux
236       2.2073  virtualjaguar_libretro.so dsp_opcode_cmpq
207       1.9360  libuClibc-0.9.33.2.so    /lib/libuClibc-0.9.33.2.so
203       1.8986  virtualjaguar_libretro.so dsp_opcode_load
185       1.7303  virtualjaguar_libretro.so DSPReadLong
162       1.5152  virtualjaguar_libretro.so gpu_opcode_jr
146       1.3655  virtualjaguar_libretro.so m68k_read_memory_16
108       1.0101  virtualjaguar_libretro.so BlitterMidsummer2
100       0.9353  virtualjaguar_libretro.so GPUHandleIRQs
99        0.9259  virtualjaguar_libretro.so gpu_opcode_jump
95        0.8885  virtualjaguar_libretro.so gpu_opcode_cmp
89        0.8324  virtualjaguar_libretro.so gpu_opcode_add
85        0.7950  virtualjaguar_libretro.so JaguarReadWord
84        0.7856  virtualjaguar_libretro.so GPUReadLong
82        0.7669  virtualjaguar_libretro.so tom_render_16bpp_rgb_scanline
71        0.6640  virtualjaguar_libretro.so m68k_execute
69        0.6453  virtualjaguar_libretro.so gpu_opcode_load
63        0.5892  virtualjaguar_libretro.so gpu_opcode_movefa
62        0.5799  libpthread-0.9.33.2.so   pthread_mutex_lock
58        0.5425  virtualjaguar_libretro.so DATA
58        0.5425  virtualjaguar_libretro.so dsp_opcode_nop
55        0.5144  virtualjaguar_libretro.so OPProcessScaledBitmap
50        0.4676  virtualjaguar_libretro.so HandleNextEvent
42        0.3928  libpthread-0.9.33.2.so   __pthread_mutex_unlock_usercnt
41        0.3835  virtualjaguar_libretro.so GetTimeToNextEvent
41        0.3835  virtualjaguar_libretro.so JaguarReadLong
40        0.3741  libpthread-0.9.33.2.so   __pthread_cleanup_push_defer
39        0.3648  ld-uClibc-0.9.33.2.so    /lib/ld-uClibc-0.9.33.2.so
38        0.3554  virtualjaguar_libretro.so gpu_opcode_shrq
37        0.3461  virtualjaguar_libretro.so gpu_opcode_nop
30        0.2806  virtualjaguar_libretro.so ADDARRAY
29        0.2712  libpthread-0.9.33.2.so   __pthread_cleanup_pop_restore
27        0.2525  virtualjaguar_libretro.so dsp_opcode_movei
26        0.2432  virtualjaguar_libretro.so COMP_CTRL
25        0.2338  virtualjaguar_libretro.so TOMExecHalfline
25        0.2338  virtualjaguar_libretro.so gpu_opcode_addq
22        0.2058  virtualjaguar_libretro.so RemoveCallback
22        0.2058  virtualjaguar_libretro.so dsp_opcode_jump
22        0.2058  virtualjaguar_libretro.so gpu_opcode_move
20        0.1871  virtualjaguar_libretro.so build_insn
19        0.1777  virtualjaguar_libretro.so op_6701_5_ff
18        0.1684  virtualjaguar_libretro.so m68k_read_memory_32
18        0.1684  virtualjaguar_libretro.so op_4a90_5_ff
17        0.1590  virtualjaguar_libretro.so crc32_calcCheckSum
17        0.1590  virtualjaguar_libretro.so gpu_opcode_and
16        0.1496  retroarch                config_get_string
15        0.1403  virtualjaguar_libretro.so ADD16SAT
15        0.1403  virtualjaguar_libretro.so DSPWriteLong
15        0.1403  virtualjaguar_libretro.so HalflineCallback
15        0.1403  virtualjaguar_libretro.so OPProcessList
14        0.1309  virtualjaguar_libretro.so op_4e71_5_ff
13        0.1216  virtualjaguar_libretro.so JaguarWriteWord
13        0.1216  virtualjaguar_libretro.so gpu_opcode_cmpq
12        0.1122  virtualjaguar_libretro.so dsp_opcode_move
11        0.1029  retroarch                config_set_string
11        0.1029  virtualjaguar_libretro.so dsp_opcode_addqt
10        0.0935  virtualjaguar_libretro.so gpu_opcode_or
9         0.0842  libz.so.1.2.8            /usr/lib/libz.so.1.2.8
9         0.0842  retroarch                audio_convert_s16_to_float_C
9         0.0842  retroarch                config_get_array
9         0.0842  virtualjaguar_libretro.so DSPSampleCallback
9         0.0842  virtualjaguar_libretro.so JaguarWriteLong
9         0.0842  virtualjaguar_libretro.so SetCallbackTime
9         0.0842  virtualjaguar_libretro.so dsp_opcode_add
8         0.0748  virtualjaguar_libretro.so JaguarExecuteNew
8         0.0748  virtualjaguar_libretro.so TOMReadByte
8         0.0748  virtualjaguar_libretro.so dsp_opcode_cmp
8         0.0748  virtualjaguar_libretro.so dsp_opcode_sub
8         0.0748  virtualjaguar_libretro.so op_51c8_5_ff
7         0.0655  libudev.so.1.3.0         /lib/libudev.so.1.3.0
7         0.0655  virtualjaguar_libretro.so DSPHandleIRQsNP
7         0.0655  virtualjaguar_libretro.so SDLSoundCallback
7         0.0655  virtualjaguar_libretro.so TOMReadWord
7         0.0655  virtualjaguar_libretro.so TOMWriteWord
7         0.0655  virtualjaguar_libretro.so gpu_opcode_storeb
6         0.0561  virtualjaguar_libretro.so ADDRGEN
5         0.0468  libpthread-0.9.33.2.so   pthread_mutex_unlock
5         0.0468  virtualjaguar_libretro.so JERRYResetPIT1
5         0.0468  virtualjaguar_libretro.so JaguarWriteByte
5         0.0468  virtualjaguar_libretro.so dsp_opcode_store
5         0.0468  virtualjaguar_libretro.so gpu_opcode_movei
4         0.0374  libfreetype.so.6.11.2    /usr/lib/libfreetype.so.6.11.2
4         0.0374  virtualjaguar_libretro.so ADDAMUX
4         0.0374  virtualjaguar_libretro.so ADDRADD
4         0.0374  virtualjaguar_libretro.so OPLoadPhrase
4         0.0374  virtualjaguar_libretro.so TOMWriteByte
4         0.0374  virtualjaguar_libretro.so dsp_opcode_addq
4         0.0374  virtualjaguar_libretro.so dsp_opcode_moveq
4         0.0374  virtualjaguar_libretro.so gpu_opcode_loadb
3         0.0281  retroarch                audio_convert_float_to_s16_C
3         0.0281  retroarch                gl_raster_font_render_line
3         0.0281  retroarch                input_joypad_pressed
3         0.0281  retroarch                udev_joypad_button
3         0.0281  virtualjaguar_libretro.so JaguarInit
3         0.0281  virtualjaguar_libretro.so TOMIRQEnabled
3         0.0281  virtualjaguar_libretro.so dsp_opcode_subq
3         0.0281  virtualjaguar_libretro.so gpu_opcode_shlq
3         0.0281  virtualjaguar_libretro.so gpu_opcode_subq
3         0.0281  virtualjaguar_libretro.so op_20d8_5_ff
2         0.0187  retroarch                alsa_thread_write
2         0.0187  retroarch                config_file_new_internal
2         0.0187  retroarch                gl_frame
2         0.0187  retroarch                input_keymaps_translate_rk_to_keysym
2         0.0187  retroarch                resampler_nearest_process
2         0.0187  virtualjaguar_libretro.so ADDBMUX
2         0.0187  virtualjaguar_libretro.so DSPSetIRQLine
2         0.0187  virtualjaguar_libretro.so JaguarReset
2         0.0187  virtualjaguar_libretro.so OPGetListPointer
2         0.0187  virtualjaguar_libretro.so OPSetCurrentObject
2         0.0187  virtualjaguar_libretro.so TOMFillLookupTables
2         0.0187  virtualjaguar_libretro.so do_merges
2         0.0187  virtualjaguar_libretro.so dsp_opcode_bclr
2         0.0187  virtualjaguar_libretro.so dsp_opcode_movefa
2         0.0187  virtualjaguar_libretro.so dsp_opcode_sat16s
2         0.0187  virtualjaguar_libretro.so dsp_opcode_sharq
2         0.0187  virtualjaguar_libretro.so gpu_opcode_moveq
2         0.0187  virtualjaguar_libretro.so op_1018_5_ff
1         0.0094  libEGL.so.1.0.0          /usr/lib/libEGL.so.1.0.0
1         0.0094  libasound.so.2.0.0       /usr/lib/libasound.so.2.0.0
1         0.0094  libstdc++.so.6.0.20      /usr/lib/libstdc++.so.6.0.20
1         0.0094  retroarch                alsa_thread_write_avail
1         0.0094  retroarch                alsa_worker_thread
1         0.0094  retroarch                audio_driver_sample_batch
1         0.0094  retroarch                config_file_free
1         0.0094  retroarch                config_get_path
1         0.0094  retroarch                fifo_read_avail
1         0.0094  retroarch                fill_pathname_join_delim
1         0.0094  retroarch                font_renderer_create_atlas
1         0.0094  retroarch                gfx_ctx_ctl
1         0.0094  retroarch                gl_glsl_set_params
1         0.0094  retroarch                input_keys_pressed
1         0.0094  retroarch                input_remapping_set_defaults
1         0.0094  retroarch                rarch_ctl
1         0.0094  retroarch                runloop_ctl
1         0.0094  retroarch                save_keybind_joykey
1         0.0094  retroarch                state_manager_check_rewind
1         0.0094  retroarch                udev_joypad_axis
1         0.0094  retroarch                udev_poll_pad.isra.2
1         0.0094  virtualjaguar_libretro.so BuildCPUFunctionTable
1         0.0094  virtualjaguar_libretro.so DSPUpdateRegisterBanks
1         0.0094  virtualjaguar_libretro.so EepromReadByte
1         0.0094  virtualjaguar_libretro.so EepromWriteByte
1         0.0094  virtualjaguar_libretro.so JERRYPIT1Callback
1         0.0094  virtualjaguar_libretro.so JaguarReadByte
1         0.0094  virtualjaguar_libretro.so OPInit
1         0.0094  virtualjaguar_libretro.so OPStorePhrase
1         0.0094  virtualjaguar_libretro.so dsp_build_branch_condition_table
1         0.0094  virtualjaguar_libretro.so dsp_opcode_mult
1         0.0094  virtualjaguar_libretro.so gpu_opcode_subqt
1         0.0094  virtualjaguar_libretro.so m68k_write_memory_32
1         0.0094  virtualjaguar_libretro.so mode_from_str
1         0.0094  virtualjaguar_libretro.so op_3010_5_ff
1         0.0094  virtualjaguar_libretro.so op_41e8_5_ff
1         0.0094  virtualjaguar_libretro.so op_48e0_5_ff
1         0.0094  virtualjaguar_libretro.so op_7000_5_ff
1         0.0094  virtualjaguar_libretro.so op_b000_5_ff
1         0.0094  virtualjaguar_libretro.so op_c000_5_ff
1         0.0094  virtualjaguar_libretro.so op_d140_5_ff
1         0.0094  virtualjaguar_libretro.so retro_load_game

Some games (according to the virtual jaguar compatibility list) don't require DSP. If we remove DSP, we would gain a large jump in performance, but it would severely hurt the game compatibility. Also, egl_gallium is still up there.


Congrats gama on getting pce-fast to work :) I still can't get any of the mednafen cores to work even after adding the CXX compiler.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 23, 2016, 01:29:09 am
@zhongtiao1 It seems, the Jaguar core would need lots of optimizations to run well on the zero.

Currently I am testing other cores to find which ones run well on the zero.  I cannot work on this project for longer, so I will try to post all the patches for the cores I have built this week.

I think the main focus should be to find which cores fullspeed and maybe contact a libretro dev to send them the patches.  Maybe they can tell a hint on how to optimize retroarch on the zero :).

 

Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 23, 2016, 07:51:13 pm
I have uploaded RetroArch_v0.1.opk to Dropbox, you can get it from first post.

The more important changes are that no additional files should be needed, only the RetroArch_v0.1.opk.  And that I added some new cores: fceumm, pocketsnes, prboom, pce_fast and ngp.

As I stated before I cannot work on the port for now so I hope someone want to continue working on it.
Cheers.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Awakened on February 24, 2016, 03:14:21 am
I played around with this and it's quite nice. GLUI scales well to the Zero's screen. For me it's replaced stand alone Gambatte and Temper for GB/C and PC Engine. If the Neopop and FCEUmm cores ran full speed for everything I'd replace Race and FCEU too. I wonder how well mGBA would run; it's supposed to be a balance between speed and accuracy, but I bet it'd be too slow on the Zero.

Anyways, good work the_gama!
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on February 24, 2016, 09:26:48 am
Hi, i am SpikeSpiegel from the Open-Consoles community (www.open-consoles.com). We are specialized on emulation and handheld consoles.
First thanks for all of your works, it's great! I am following retroarch since many years now, this multi-platform emulator is amazing, it's a good thing that now it can run on Zero.

Here i have compiled some cores by following instructions from the first post.
Download: http://www.mediafire.com/download/b2qcib5g1i2a14t/cores-gcw0-20160224.zip

fceumm_libretro.so - NES
gambatte_libretro.so - GB/GBC
genesis_plus_gx_libretro.so - SMS
gpsp_libretro.so - GBA (need bios)
gw_libretro.so - GAME AND WATCH
mednafen_psx_libretro_libretro.so - PSX
picodrive_libretro.so - MD
pocketsnes_libretro.so - SNES
prboom_libretro.so - DOOM (with doom1 shareware)
snes9x_next_libretro.so - SNES
stella_libretro.so - ATARI 2600

Makefiles: http://www.mediafire.com/download/efleycnoyngoisz/Makefiles.zip

I don't have the device so i can test it. For information, DavidKnight has created a thread on our board: http://www.open-consoles.com/t9579-gcw0-retroarch-development-progress

Thanks guys!
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on February 24, 2016, 03:33:08 pm
Guys, i'll be working on cores later today. Hopefully I can get the PCFX core working as well as optimising the 4DO and Jaguar cores.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Durrsly on February 27, 2016, 02:42:34 am
Hi, i am SpikeSpiegel from the Open-Consoles community (www.open-consoles.com). We are specialized on emulation and handheld consoles.
First thanks for all of your works, it's great! I am following retroarch since many years now, this multi-platform emulator is amazing, it's a good thing that now it can run on Zero.

Here i have compiled some cores by following instructions from the first post.
Download: http://www.mediafire.com/download/b2qcib5g1i2a14t/cores-gcw0-20160224.zip

fceumm_libretro.so - NES
gambatte_libretro.so - GB/GBC
genesis_plus_gx_libretro.so - SMS
gpsp_libretro.so - GBA (need bios)
gw_libretro.so - GAME AND WATCH
mednafen_psx_libretro_libretro.so - PSX
picodrive_libretro.so - MD
pocketsnes_libretro.so - SNES
prboom_libretro.so - DOOM (with doom1 shareware)
snes9x_next_libretro.so - SNES
stella_libretro.so - ATARI 2600

Makefiles: http://www.mediafire.com/download/efleycnoyngoisz/Makefiles.zip

I don't have the device so i can test it. For information, DavidKnight has created a thread on our board: http://www.open-consoles.com/t9579-gcw0-retroarch-development-progress

Thanks guys!

I tried the PicoDrive, SNES9x, Gambatte, gpSP, Mednafen, and PRBoom cores so far.
PicoDrive runs at around 55 FPS, SNES9x ran at 30 FPS, Gambatte ran fine, while the other two crashed back to the desktop.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on February 27, 2016, 09:28:03 am
Hi @Durrsly thanks for feedbacks, for prboom_libretro.so you need to place prboom.wad into your rom folder (available into Makefiles.zip). For gpsp you need a gba bios. Hope this could help you.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on February 27, 2016, 09:33:47 am
New build: http://www.mediafire.com/download/p7q5g6joak69ovo/cores-gcw0-20160227.zip

fceumm_libretro.so - NES
gambatte_libretro.so - GB/GBC
genesis_plus_gx_libretro.so - SMS
gpsp_libretro.so - GBA (need bios)
gw_libretro.so - GAME AND WATCH
mame2000_libretro.so - Compatible with MAME 0.37b5 romset
mame2003_libretro.so - Compatible with MAME 0.78 romset
mednafen_pce_fast_libretro_libretro.so - PC-ENGINE / CD

mednafen_psx_libretro_libretro.so - PSX
picodrive_libretro.so - MD
prboom_libretro.so - DOOM (with doom1 shareware, into Makefiles.zip)
snes9x_next_libretro.so - SNES
stella_libretro.so - ATARI 2600

Makefiles: http://www.mediafire.com/download/efleycnoyngoisz/Makefiles.zip

edit: for some more visibility i have made a small article, http://www.open-consoles-news.com/2016/02/retroarch-sur-gcw-zero-cest-possible.html
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Durrsly on February 28, 2016, 04:22:15 am
Hi @Durrsly thanks for feedbacks, for prboom_libretro.so you need to place prboom.wad into your rom folder (available into Makefiles.zip). For gpsp you need a gba bios. Hope this could help you.

Ah, I see. I got PrBoom working. It seems perfectly playable.
I also found that Mednafen is picky about it's PS1 BIOS, so I placed the proper BIOS in there. I tried Vib-Ribbon, JoJo's Bizarre Adventure, and Ultimate Battle 22. Vib-Ribbon froze the whole program, Ultimate Battle 22  and JoJo still crashed to desktop.

I also tried Stella, which worked perfectly.

EDIT:
Heh, managed to crash the PCSX-R core "playing" JoJo. I was playing around in practice mode and attempted Dio's knife throw and it crashed.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on February 28, 2016, 07:01:53 am
Thanks, for psx i am not suprised.
Here a new version: http://www.mediafire.com/download/uaxedqdbtrw2h7h/cores-gcw0-psx-yabause-20160227.zip
yabause is also compiling but don't expect good performances, if games could be launched it will be very, very slow.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Durrsly on February 28, 2016, 05:55:59 pm
I tested the MAME 2003 .78 core. It loads CPS2 games then crashes (Tested with the Darkstalkers games), CPS1 loads fine but runs at half speed (tested with Street Fighter II and SF2 CE) CPS3 doesn't load at all (Tested with JoJo's Bizarre Adventure). Neo Geo loads, then crashes. (Tested with Waku Waku 7).
What did work perfectly, oddly enough, is an obscure maze game called I'm Sorry (Sega System 1).
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on February 28, 2016, 06:38:38 pm
For neogeo you need the bios if you don't already have it. But if CPS1 run at half speed we can't expect good performances.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Durrsly on February 28, 2016, 11:24:48 pm
For neogeo you need the bios if you don't already have it. But if CPS1 run at half speed we can't expect good performances.

I do have the BIOS (As I have Final Burn Alpha on my Zero), but it still just crashed.
I wasn't expecting CPS3 to work either as the arcade version of JoJo's Bizarre Adventure ran at a solid 3 FPS in OpenDinguxFBA.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on February 29, 2016, 12:11:22 am
do you have a 0.78 mame romset ? If it's not the case issue should come from here.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: care16la20 on February 29, 2016, 01:26:43 pm
How to make PC Engine ISOS run ?
Loaded the cue and it crashes going back to the OS.
Also, how to exit a game going back to menu?

*The optimizations required are on the .so cores, or on the retroarch opk itself? So far, due to this the only core worth to have running seems to be PC Engine and GB ... The concept of retroarch looks very promising btw
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on February 29, 2016, 03:44:42 pm
@care16la20 You need syscard3.pce bios file. 

To get more info about crashes or program exit.  There is a Verbose setting in the menu, if enabled the log file will have lots of information.

After the program returns to gmenu, use LogViewer to see what happened.


I believe, the cores and the frontend itself must be optimized so they run better on the zero.  For instance, the frontend could be optimized by writing a low level gfx driver, using hardware to do scaling and color space conversion.  And find what is the fastest way to render to the gcw0 screen.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: pcercuei on February 29, 2016, 03:58:41 pm
I believe, the cores and the frontend itself must be optimized so they run better on the zero.  For instance, the frontend could be optimized by writing a low level gfx driver, using hardware to do scaling and color space conversion.  And find what is the fastest way to render to the gcw0 screen.
The IPU is already here for scaling and color space conversion.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on February 29, 2016, 05:41:12 pm
Hi, @the_gama where do you place the bios file ? someone on our forum has tested by placing it near the cue file, but with no success. Did it needed to create a system folder ? (which is the default location for bios)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: lunar on February 29, 2016, 07:34:37 pm
This progress is awesome so far. Really excited that we have a Game Boy emulator now that has the GBC coloration for GB games built into it.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Awakened on February 29, 2016, 11:05:19 pm
Hi, @the_gama where do you place the bios file ? someone on our forum has tested by placing it near the cue file, but with no success. Did it needed to create a system folder ? (which is the default location for bios)
I created a system directory somewhere, then in RetroArch's directory settings navigated to that directory and pressed "use this directory" to set it as my system directory.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on March 01, 2016, 07:14:08 am
Thanks, i will check that  :)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on March 01, 2016, 04:17:06 pm
The IPU is already here for scaling and color space conversion.

Does SDL and gles libraries already use the IPU?  I will test the SDL gfx driver with triple buffer enabled to test performance against the gles driver.

If there is not any significant change I think we should keep using the gles driver, since it adds compatibility to more features.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: pcercuei on March 01, 2016, 04:21:56 pm
If you pass a XxY resolution to SDL_SetVideoMode(), you will get XxY to 320x240 scaling automagically with the IPU.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: David Knight on March 01, 2016, 04:44:21 pm
I did some testing on SDL 1 vs SDL 2 with genplus.

SDL 1 code with software surfaces and hardware video mode with HW_TRIPLEBUF flag and IPU resizing ran considerably faster than SDL 2 for per-pixel rendering.

If you want to see how effective the IPU is then run genplus and turn on/off Scaling. It's basically toggling the IPU on and off.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on March 01, 2016, 06:37:05 pm
Hi, @the_gama where do you place the bios file ? someone on our forum has tested by placing it near the cue file, but with no success. Did it needed to create a system folder ? (which is the default location for bios)

You can put syscard3.pce file in the same folder where the .cue and .iso files are located or inside a 'system' folder as Awakened suggested.  RetroArch will look first in the 'system' folder and next in 'content' folder.  Maybe a different file is needed?  There are three versions of syscard.pce if I remember correctly: syscard1.pce, syscard2.pce, syscard3.pce.

If you pass a XxY resolution to SDL_SetVideoMode(), you will get XxY to 320x240 scaling automagically with the IPU.

Ok, will do some testing later.  Does GLES driver do scaling using the IPU too?  It seems there is no performance penalty between different resolutions, with gles gfx driver.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on March 01, 2016, 11:45:25 pm
Hi, @the_gama where do you place the bios file ? someone on our forum has tested by placing it near the cue file, but with no success. Did it needed to create a system folder ? (which is the default location for bios)

To choose a BIOS folder, edit the location in the retroarch.cfg file and place your BIOS in the folder.


We need to get the mess core working as well. That would add a lot more systems available to our GCW-Zero
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on March 02, 2016, 06:56:14 am
Thanks for your answers, but the problem doesn't come from the bios, issue was the name declared into cue file which doesn't match the bin file. (iso loading is case sensitive)
If this can help some other people, allways check the content of the cue file  :)

edit: mess is a good emulator, but it is wearing the correct name, it's a mess to configure.
Also mess is now part of the mame emulator: https://github.com/libretro/mame
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on March 02, 2016, 03:25:54 pm
Thanks for your answers, but the problem doesn't come from the bios, issue was the name declared into cue file which doesn't match the bin file. (iso loading is case sensitive)
If this can help some other people, allways check the content of the cue file  :)

edit: mess is a good emulator, but it is wearing the correct name, it's a mess to configure.
Also mess is now part of the mame emulator: https://github.com/libretro/mame

To get MESS, don't we have to just add the SUBTARGET=MESS to our build?
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on March 02, 2016, 04:04:49 pm
I don't think so, because we need to compile the latest version of mame, not 2000 or 2003 version. I suppose MESS is only available with this version and i am not sure this one will compile on gcw. (also performances should be worth with this version on gcw)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: pcercuei on March 02, 2016, 04:49:58 pm
Ok, will do some testing later.  Does GLES driver do scaling using the IPU too?  It seems there is no performance penalty between different resolutions, with gles gfx driver.
Well, the GLES backend uses GLES for scaling...
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on March 02, 2016, 07:24:25 pm
New Build: http://www.mediafire.com/download/kdgi3ljd0mb43ud/cores-gcw0-20160302.zip

fb_alpha_cps1.so - CPS1 FBA v0.2.97.30
fb_alpha_cps2.so - CPS2 FBA v0.2.97.30
fb_alpha_neo.so - NEOGEO FBA v0.2.97.30

fceumm_libretro.so - NES (next)
gambatte_libretro.so - GB/GBC
genesis_plus_gx_libretro.so - SMS
gpsp_libretro.so - GBA (need bios)
gw_libretro.so - GAME AND WATCH
mame2000_libretro.so - Compatible with MAME 0.37b5 romset
mame2003_libretro.so - Compatible with MAME 0.78 romset (slow)
mednafen_lynx_libretro.so - ATARI LYNX
mednafen_ngp_libretro.so - NEO GEO POCKET

mednafen_pce_fast_libretro.so - PC-ENGINE / CD
mednafen_psx_libretro.so - PSX (if it's work slow)
mednafen_vb_libretro.so - VIRTUAL BOY (slow ?)
mednafen_wswan_libretro.so - WONDERSWAN

picodrive_libretro.so - MD
pocketsnes_libretro.so - SNES
prboom_libretro.so - DOOM (with doom1 shareware, into Makefiles.zip)
snes9x_next_libretro.so - SNES
stella_libretro.so - ATARI 2600
yabause_libretro.so - SATURN (if it's work very, very slow)

Makefiles: http://www.mediafire.com/download/rbfag5n5ffu9yve/Makefiles.zip
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: David Knight on March 03, 2016, 12:25:35 am
You sir are a machine  ;D
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Quickman on March 03, 2016, 02:10:21 am
Thank you @SpikeSpiegel !  And you were a machine too @David Knight thank U!
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on March 03, 2016, 06:46:33 am
Thanks, but all the congrats goes to developers of those cores :) (all the difficulty is here)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on March 03, 2016, 08:24:40 am
Pack FBA: http://www.mediafire.com/download/bhwhs0bl8j0djcs/cores-gcw0-FBA-20160303.zip

fb_alpha_cps1_libretro.so - CPS1 FBA v0.2.97.30
fb_alpha_cps2_libretro.so - CPS2 FBA v0.2.97.30
fb_alpha_neo_libretro.so - NEOGEO FBA v0.2.97.30
fba_libretro.so - Port of Final Burn Alpha to Libretro (v0.2.97.37). (i suppose low performances)

I am waiting your feedbacks. Thanks.

FULL PACK: http://www.mediafire.com/download/nq82e6b1nhymbu5/cores-gcw0-20160303.zip
Makefiles: http://www.mediafire.com/download/rbfag5n5ffu9yve/Makefiles.zip
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on March 03, 2016, 11:34:45 pm
Some good news:

The gcw0 patches have been commited to the official libretro repositories by twinaphex!

And currently I am looking for a way to build the gpsp core (or tempgba) with the dynamic recompiler enabled.  I asked Nebuleon the other day about it, and learned that the current recompiler code cannot be built as a shared library (.so) as it is, thus there are two options: modify the recompiler code or link the core statically, the way RetroArch is built for most consoles.

The first option is very difficult to achieve, but the second option seems viable.  I have successfully built and linked retroarch with the gpsp core statically.  It still does not have the recompiler enabled but it is working.

One thing I noticed is that it runs a bit faster, but It could be my imagination.  So I wish someone else can test other core and compare it with the dynamic version of the frontend (the one from first post), and see if it runs any better.

These are the steps to build RetroArch and statically link a core with it.

1) First we must build a core as an static library (.a), therefore we need to modify the Makefile.  For instance, this is from the gpsp Makefile:

Code: [Select]
# GCW0
else ifeq ($(platform), gcw0)
TARGET := $(TARGET_NAME)_libretro_gcw0.a
CC = /opt/gcw0-toolchain/usr/bin/mipsel-linux-gcc
AR = /opt/gcw0-toolchain/usr/bin/mipsel-linux-ar
STATIC_LINKING = 1

I changed the .so extension to .a.  And replaced the -fpic an shared options with STATIC_LINKING = 1.

2) Now type:

Code: [Select]
make platform=gcw0

3 ) Copy the gpsp_libretro_gcw0.a file to the RetroArch folder.

4) Follow the steps from first post to build the frontend, but use the following command to configure:

Code: [Select]
./configure --global-config-dir=/mnt/RetroArch  --host=mipsel-gcw0-linux-uclibc --prefix=/tmp --enable-gles --disable-kms --enable-opendingux_fbdev --enable-alsa --disable-freetype --disable-stb_font --with-libretro="gpsp_libretro_gcw0.a" --with-gles_libs="-lGLESv2 -lEGL"

The important option is --with-libretro="gpsp_libretro_gcw0.a".  RetroArch will be built in a non-dynamic mode and linked with the 'libretro' core, statically.  In this mode only that core will be available.

4) Launch retroarch from telnet as before and load a game. 


Well I hope someone else can test other cores to see if they do run better when linked statically.



Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: pcercuei on March 04, 2016, 10:18:25 am
I'm curious, how is --enable-opendingux_fbdev different from regular fbdev?
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on March 04, 2016, 02:23:48 pm
I'm curious, how is --enable-opendingux_fbdev different from regular fbdev?

I tested the vivante context driver first but could not get it working because of the missing fbCreateWindow and fbGetDisplayByIndex calls. 

The opendingux_fbdev_ctx.c file is basically the same file as vivante_fbdev_ctx.c, except for one minor change.   I think it would be better to just add an #ifdef in vivante_fbdev_ctx.c file to include that little change, but I created a separate file called opendingux_fbdev_ctx.c in case other changes were made later and to make it easier to use a patch that could work even if the vivante sources were changed in the official repo.



Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on March 07, 2016, 07:26:30 pm
@the_gama, some users have report a problem with this combo:
- Enabled Menu toggle with Up + L1 + R1 + Y combo.
It is: Down + L1 + R1 + Y

Please, could you confirm ? and update the first post. Thanks.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: SpikeSpiegel on March 10, 2016, 06:59:33 pm
- craft_libretro.so - a minecraft clone (new libretro core)
- vecx_libretro.so - VECTREX

download: http://www.mediafire.com/download/6yxjdwz5ata44vk/cores-gcw0-craft-vecx-20160310.zip

makefiles:
https://github.com/frthery/ES_RetroPie/tree/master/RetroPie-Setup/build/makefiles/gcw0/craft-libretro
https://github.com/frthery/ES_RetroPie/tree/master/RetroPie-Setup/build/makefiles/gcw0/vecx-libretro
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on March 18, 2016, 03:07:33 pm
Hi, I wrote a new tempgba core using Nebuleon sources (https://github.com/Nebuleon/TempGBA). 
The most important thing is that the dynamic recompiler is working!  Audio, video and input seems to be working correctly too.

I found one bug though, not related to the core itself but when launching a new core from the menu.  If someone wants to test this:

1) Please download this file: retroarch_static_cores.zip (http://dl.dropboxusercontent.com/s/fu5k0ii7qybqzaa/retroarch_static_cores.zip?dl=0).  It contains two cores linked statically to the frontend, tempgba and catsfc.

2) Extract the contents somewhere on the sdcard.

3) Change the variable libretro_dyrectory, in retroarch.cfg, to point to the folder where you extracted the .elf files.

4) Run tempgba_libretro_gcw0.elf or catsfc_libretro_gcw0.elf from telnet. 

5) Now, go to the 'Load core' option in the menu and select one of the two .elf files shown there.


The new core should be launched successfully but the screen will flicker, and the colors will be messed up.  Also if you try to load a game the screen will be corrupted.

I hope someone can test this and give some hints of what could be the cause.  Retroarch linux_frontend uses the command execv to launch the statically linked cores.

[EDIT] After some testing, it seems the problem is related to the egl driver.  I wrote a simple test using the mesa Cube example found here: https://github.com/laanwj/mesatest_gles.  At the end of the program I put execv("path/cube") to recursively launch the program again.   The app segfaults around the third time the app is executed.

I added eglDestroyContext and eglTerminate calls before execv and the app segfaults the second time the program is executed.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on March 31, 2016, 10:12:34 pm
just so you guys know, the Dreamcast core doesn't build :D

Sent from my Q5 using Forum Fiend OSP v1.3.3.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Senor Quack on April 01, 2016, 12:17:35 pm
just so you guys know, the Dreamcast core doesn't build :D

There is no way the GCW Zero could ever hope to emulate Dreamcast. You'd need a far more powerful CPU and likely GPU.

Maybe there are a few games that would be somewhat playable if MIPS dynarec is made, but I doubt it.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on April 01, 2016, 08:34:58 pm
just so you guys know, the Dreamcast core doesn't build :D

There is no way the GCW Zero could ever hope to emulate Dreamcast. You'd need a far more powerful CPU and likely GPU.

Maybe there are a few games that would be somewhat playable if MIPS dynarec is made, but I doubt it.

I know, I just tried it for fun. It doesn't even compile.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on April 25, 2016, 08:35:34 pm
@the_gama I tried redownloading the source from libretro, but now the egl patch will not work. What do I have to do to fix it?
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on April 25, 2016, 09:46:51 pm
@the_gama I tried redownloading the source from libretro, but now the egl patch will not work. What do I have to do to fix it?

Hi, since twinaphex added the patches to retroarch master branch, there is no need to apply the patch anymore.  There is a typo in gfx/drivers_context/opendingux_fbdev_ctx.c though, in line 259.

It can be easily fixed with this change:

Code: [Select]
256 #ifdef HAVE_EGL
257    return egl_get_proc_address(symbol);
258 #else
259    return 0;
260 }
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: zhongtiao1 on April 26, 2016, 03:18:57 pm
@the_gama I tried redownloading the source from libretro, but now the egl patch will not work. What do I have to do to fix it?

Hi, since twinaphex added the patches to retroarch master branch, there is no need to apply the patch anymore.  There is a typo in gfx/drivers_context/opendingux_fbdev_ctx.c though, in line 259.

It can be easily fixed with this change:

Code: [Select]
256 #ifdef HAVE_EGL
257    return egl_get_proc_address(symbol);
258 #else
259    return 0;
260 }

Okay, Thanks :)

Now I get this error: http://pastebin.com/Hu7n7D9B

Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on April 28, 2016, 01:32:50 am
Okay, Thanks :)

Now I get this error: http://pastebin.com/Hu7n7D9B

Oh, right.  It should be:

Code: [Select]
256 #ifdef HAVE_EGL
257    return egl_get_proc_address(symbol);
258 #else
259    return 0;
260 #endif
261 }
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on May 27, 2016, 03:44:35 pm
If anyone is interested, I posted a new patch on the first post to successfully build the latest version of RetroArch (as of today).

And a WIP tempgba core.

Best.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: kaio on May 27, 2016, 03:48:35 pm
If anyone is interested, I posted a new patch on the first post to successfully build the latest version of RetroArch (as of today).

And a WIP tempgba core.

Best.
Thanks.
Can you create a new opk file?
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on May 28, 2016, 01:13:57 am
Unfortunately, retroarch nightlies might have some bugs.   For instance, in the static version, the content history playlist seems to be broken.  And that is a very useful feature.

Also, the new ribbon gfx added to the xmb menu does not work on the zero.  It seems to be caused by some unimplemented operations in etnaviv driver, but it looks nice though.

But I will try to updload new opks of both versions, so anyone can help to test the app.

Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on May 30, 2016, 08:33:04 pm
I did some dpad and button holes modification today, unfortunately when I was reassembling the unit I noticed I broke the power switch!

I hope I can install a replacement for it ...
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Surkow on May 31, 2016, 03:45:11 pm
I did some dpad and button holes modification today, unfortunately when I was reassembling the unit I noticed I broke the power switch!

I hope I can install a replacement for it ...
Yep, power switch should be relatively cheap. Just order a PSP replacement power switch from eBay or some chinese reseller website. Until you get it repaired you can use the reset switch to power on the unit.

http://boards.dingoonity.org/gcw-general/power-switch-finally-broken/msg112973/#msg112973
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on June 01, 2016, 09:37:01 pm
Thank, I'm currently gathering some soldering equipment because I want to build one of the superpigirl consoles found on the net.  And have already bought a couple of power switch replacement parts. 

For now, I found that I can turn on the unit using the reset button :).

And at least the button and dpad holes modification was successful.  But I still find it difficult to input shoryukens though ...
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on June 03, 2016, 02:03:16 am
I have uploaded a new build of the opk, please go to first post if you would like to download it.

The most relevant change is that I set the xmb menu driver as default.  It has been updated and tt is very nice now, even without the psp like ribbon animation (it is not working on the zero), it is worth to give it a try.

UPDATE: craft and picodrive cores are not working.  In picodrive I enabled the mips asm drawing code but I believe it only works for the psp right now.

As of this version, I think the app is ready for a proper release.  So If anyone would like, please feel free to do it :).

See ya.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: AtariHERO on June 03, 2016, 08:38:44 pm
release section !!  :)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: toto on June 04, 2016, 01:54:02 pm
Guys, maybe I'm ? litle bit stupid but I don't end up undersranding what is RetroArch and what's for.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Aeter on June 04, 2016, 02:44:04 pm
Guys, maybe I'm ? litle bit stupid but I don't end up undersranding what is RetroArch and what's for.
It's a program that combines a lot oo different emulators into one system in which you can load cores of each emulator available to retroArch.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: toto on June 04, 2016, 03:00:58 pm
Like emulstation? Does it support most of GCW's emulators?
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Aeter on June 04, 2016, 03:04:48 pm
Like emulstation? Does it support most of GCW's emulators?
It basically emulates a lot of systems at once, so it's more like an all-in-one emulator.
Emulstation is just a front end for emulators already installed, this is more than a front end, it does the emulation as well for many systems.
Performance I don't know much about this release as I haven't had time to test it yet.
Mednafen is another all-in-one emulator if you're interested.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on June 05, 2016, 02:06:10 am
@toto, please take a look at their webpage: http://www.libretro.com/index.php/home-2/.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: toto on June 05, 2016, 05:08:49 pm
Does it run Atari Jaguar?
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Aeter on June 05, 2016, 06:19:48 pm
Does it run Atari Jaguar?
Probably not. Don't think gcw0 will ever be able to.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: toto on June 05, 2016, 06:29:50 pm
So no Tempest 2000 for me ?  :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'(
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: AtariHERO on June 06, 2016, 12:32:38 am
So no Tempest 2000 for me ?  :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'(

tempest x3 runs fine on the new psx emu ...  :)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: toto on June 07, 2016, 09:50:54 pm
How could I miss that? Music and graphics are superb, thanks. It matches the original in every way!
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Senor Quack on June 07, 2016, 11:20:10 pm
How could I miss that? Music and graphics are superb, thanks. It matches the original in every way!

Tempest X3 includes a hidden 'port' of Tempest 2000, but you have to manage to get a top score in the main game: (From Tempest 2000 wikipedia entry:)  Entering the name "YIFF!" or "H_V_S" on the top highscore position will activate a secret mode, allowing the user to choose to play the original Tempest 2000 game; however, any high scores made in this mode are not saved, the music (wave-captured from the original modules) is muffled and the effectiveness of the Particle Laser against Spikes is not restored even in this original mode
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: davidgilmour on September 27, 2016, 02:07:21 am
I would also like to see a video of Retroarch running on the GCW Zero, anyone?
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: fidelis1 on September 25, 2017, 05:28:19 pm
@the_gama
I was just wondering if there are any updates on the status of the GCW Zero RetroArch port? It?s listed as a supported platform under http://www.retroarch.com/index.php?page=platforms# (http://www.retroarch.com/index.php?page=platforms#) but when I click on either the Download or Installation instructions links all it does is reload the page. The only info I can find on it is this thread which hasn?t been updated in a while and it was never added to http://www.gcw-zero.com/downloads (http://www.gcw-zero.com/downloads).
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Surkow on September 25, 2017, 06:08:29 pm
@the_gama
I was just wondering if there are any updates on the status of the GCW Zero RetroArch port? It?s listed as a supported platform under http://www.retroarch.com/index.php?page=platforms# (http://www.retroarch.com/index.php?page=platforms#) but when I click on either the Download or Installation instructions links all it does is reload the page. The only info I can find on it is this thread which hasn?t been updated in a while and it was never added to http://www.gcw-zero.com/downloads (http://www.gcw-zero.com/downloads).
We usually add releases to the downloads page if there's a maintainer willing to shape it up and continue to keep the software up to date and operational. Most releases which are left unmaintained don't get into the repo nor are they accepted if they don't abide by the repository guidelines (listed in the wiki).
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: fidelis1 on September 25, 2017, 10:46:26 pm
@Surkow Thank you for the information I can understand why you wouldn't want to add unmaintained software to the Downloads page. I was also just curious if anyone was still working on this port even if they do not plan on adding it to the downloads page and if they plan on trying to upstream their changes to the Official RetroArch Github Repository.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: fidelis1 on September 27, 2017, 06:08:56 pm
If anyone is interested in knowing I just donated a GCW Zero to Twinaphex over at Libretro so if everything goes well there is probably going to be an official port of RetroArch over to it eventually.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Surkow on September 27, 2017, 06:19:10 pm
If anyone is interested in knowing I just donated a GCW Zero to Twinaphex over at Libretro so if everything goes well there is probably going to be an official port of RetroArch over to it eventually.
Woah, awesome gesture! Lets hope some cores will be shaped up (targeting MIPS preferably).
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: Excalibur on September 27, 2017, 07:52:51 pm
If anyone is interested in knowing I just donated a GCW Zero to Twinaphex over at Libretro so if everything goes well there is probably going to be an official port of RetroArch over to it eventually.

(https://media0.giphy.com/media/10s1fB3zRFNfcQ/200_s.gif)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on October 09, 2017, 11:38:11 pm
@the_gama
I was just wondering if there are any updates on the status of the GCW Zero RetroArch port? It?s listed as a supported platform under http://www.retroarch.com/index.php?page=platforms# (http://www.retroarch.com/index.php?page=platforms#) but when I click on either the Download or Installation instructions links all it does is reload the page. The only info I can find on it is this thread which hasn?t been updated in a while and it was never added to http://www.gcw-zero.com/downloads (http://www.gcw-zero.com/downloads).

Hello fidelis1, sorry for my late reply.  Unfortunately my gcw0 died somehow, it won't charge or turn on, so I cannot work on the port anymore.  The last thing I did manage to do was to merge the tempgba sources with the gpsp core.  I tested one AstroBoy game and it worked very well.

Anyway, I'm glad that you donated a gcw0 to one of the main developers of retroarch.  I hope he can do an official release now!
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: fidelis1 on October 10, 2017, 01:35:19 am
snip

No worries thanks for getting back to me. Have you tried reflashing your GCW Zero using @pcercuei OpenDingux Rescue Disk? https://boards.dingoonity.org/gcw-releases/opendingux-rescue-disc-v0-1/ (https://boards.dingoonity.org/gcw-releases/opendingux-rescue-disc-v0-1/)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on October 10, 2017, 06:27:26 pm
Unfortunately, It won't turn on even when I connect it to the PC.

Best.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: fidelis1 on October 10, 2017, 07:20:15 pm
Unfortunately, It won't turn on even when I connect it to the PC.

Best.

I?m sorry to hear that. In the off chance it?s an issue with the battery @Fanatic still has replacements in stock. https://retro-gaming-fanatic.com/products/gcw-zero-replacement-battery (https://retro-gaming-fanatic.com/products/gcw-zero-replacement-battery)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: the_gama on October 11, 2017, 03:47:41 am
I will open the zero tomorrow and check it.  But I remember the first time I opened it I broke the power switch :P.    After that I had to turn it on using the small reset button ...
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: fidelis1 on October 20, 2017, 03:31:01 pm
After a ton of confusion with the post office Twinaphex finally received the GCW Zero I sent him. So here's to hoping he finds the time to start working on a GCW Zero RetroArch port soon.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: ruffnutts on October 21, 2017, 07:33:14 pm
Cool as I ahve a sort of working version of Emulation Station on my GCW at the moment  8)
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: fidelis1 on October 29, 2017, 04:48:17 pm
Cool as I ahve a sort of working version of Emulation Station on my GCW at the moment  8)

That's cool. Is it still being updated though? I thought the EmulationStation project was abandoned by Aloshi.
Title: Re: [TEST RELEASE] RetroArch for GCW0
Post by: ace9094 on November 19, 2017, 08:18:01 pm
Nice to see GCW getting some DEV attention :) Lets hope a version for GCW Zero is released soon :)