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