I compiled mGBA as a libretro core and rans on RetroARCH (ARMv7 + OpenGLES + EGL + DRM/KMS + toolchain:arm-linux-gnueabi without hard float).
Core and ROM was loaded successfully, but it hangs on a white screen and didn't responds any inputs.
I added some debug log prints on RetroArch source codes and I found that the main loop of RetroARCH stucks on core_run function, that is why RetroARCH can not response all input events.
I also added debug log prints into mGBA source codes:
The result shows that when frameCounter equals 6, core will run infinitely at ARMRunLoop(core->cpu);, can not break out the while loop.
This problem has been bothering me for a while, and I would be grateful if someone could give me some ideas to debug the issues.
Thank you!
Core and ROM was loaded successfully, but it hangs on a white screen and didn't responds any inputs.
I added some debug log prints on RetroArch source codes and I found that the main loop of RetroARCH stucks on core_run function, that is why RetroARCH can not response all input events.
I also added debug log prints into mGBA source codes:
Code:
static void _GBACoreRunFrame(struct mCore* core) {
struct GBA* gba = core->board;
int32_t frameCounter = gba->video.frameCounter;
printf("TJDEBUG %s %d: frameCounter = %d\n", __func__, __LINE__, frameCounter);
while (gba->video.frameCounter == frameCounter) {
ARMRunLoop(core->cpu);
}
printf("TJDEBUG %s %d: video.frameCounter = %d\n", __func__, __LINE__, gba->video.frameCounter);
}
The result shows that when frameCounter equals 6, core will run infinitely at ARMRunLoop(core->cpu);, can not break out the while loop.
This problem has been bothering me for a while, and I would be grateful if someone could give me some ideas to debug the issues.
Thank you!