#include "SDL_internal.h"
#ifdef SDL_PLATFORM_PS2
#include "../SDL_main_callbacks.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <kernel.h>
#include <sifrpc.h>
#include <iopcontrol.h>
#include <sbv_patches.h>
#include <ps2_filesystem_driver.h>
__attribute__((weak)) void reset_IOP(void)
{
SifInitRpc(0);
while (!SifIopReset(NULL, 0)) {
}
while (!SifIopSync()) {
}
}
static void prepare_IOP(void)
{
reset_IOP();
SifInitRpc(0);
sbv_patch_enable_lmb();
sbv_patch_disable_prefix_check();
sbv_patch_fileio();
}
static void init_drivers(void)
{
init_ps2_filesystem_driver();
}
static void deinit_drivers(void)
{
deinit_ps2_filesystem_driver();
}
int SDL_RunApp(int argc, char *argv[], SDL_main_func mainFunction, void * reserved)
{
int result;
(void)reserved;
prepare_IOP();
init_drivers();
result = SDL_CallMainFunction(argc, argv, mainFunction);
deinit_drivers();
return result;
}
#endif