// Globals are Bad
int xmb_status = 0;
void
sysutil_callback(u64 status, u64 param, void *userdata)
{
(void)param;
(void)userdata;
if(status == SYSUTIL_EXIT_GAME)
{
exit(0);// exit app
}
else if(status == SYSUTIL_MENU_OPEN)
{
xmb_status = 1; // XMB open
}
else if(status == SYSUTIL_MENU_CLOSE)
{
xmb_status = 0; // XMB close
}
}
void
appCleanup()
{
sysUtilUnregisterCallback(SYSUTIL_EVENT_SLOT0);
}
atexit(appCleanup);
sysUtilRegisterCallback(SYSUTIL_EVENT_SLOT0, sysutil_callback, NULL);
setRenderTarget(context, &buffers[currentBuffer]);
if(xmb_status == 0)
{
drawFrame (&buffers[currentBuffer], frame++, selectedAppstate); // Draw into the unused buffer
}
waitFlip ();
flip (context, buffers[currentBuffer].id); // Flip buffer onto screen
currentBuffer++;
if (currentBuffer >= MAX_BUFFERS)
{
currentBuffer = 0;
}
sysUtilCheckCallback();
Copyright © 2026, NextGenUpdate.
All Rights Reserved.