21#ifdef LOADER_ENABLE_DEBUG_COLORS
22#define SET_GS_BGCOLOUR(colour) {*((volatile unsigned long int *)0x120000E0) = colour;}
24#define SET_GS_BGCOLOUR(colour)
28#define WHITE_BG 0xFFFFFF
29#define CYAN_BG 0xFFFF00
30#define RED_BG 0x0000FF
31#define GREEN_BG 0x00FF00
32#define BLUE_BG 0xFF0000
33#define YELLOW_BG 0x00FFFF
34#define MAGENTA_BG 0xFF00FF
35#define ORANGE_BG 0x00A5FF
36#define BROWN_BG 0x2A2AA5
37#define PURPBLE_BG 0x800080
46 void _libcglue_init() {}
47 void _libcglue_deinit() {}
48 void _libcglue_args_parse(
int argc,
char **argv) {}
50 DISABLE_PATCHED_FUNCTIONS();
51 DISABLE_EXTRA_TIMERS_FUNCTIONS();
52 PS2_DISABLE_AUTOSTART_PTHREAD();
61static void wipeUserMem(
void)
64 for (i = 0x100000; i < GetMemorySize(); i += 64) {
69 "\tsq $0, 48(%0) \n" ::
"r"(i));
79int main(
int argc,
char *argv[])
86 SET_GS_BGCOLOUR(WHITE_BG);
90 SET_GS_BGCOLOUR(RED_BG);
94 char *new_argv[argc - 1];
95 int fullPath_length = 1 + strlen(argv[0]) + strlen(argv[1]);
96 char fullPath[fullPath_length];
97 strcpy(fullPath, argv[0]);
98 strcat(fullPath, argv[1]);
100 new_argv[0] = fullPath;
101 for (i = 2; i < argc; i++) {
102 new_argv[i - 1] = argv[i];
105 SET_GS_BGCOLOUR(CYAN_BG);
113 SET_GS_BGCOLOUR(GREEN_BG);
117 SET_GS_BGCOLOUR(BLUE_BG);
118 if (ret == 0 && elfdata.epc != 0) {
119 SET_GS_BGCOLOUR(YELLOW_BG);
125 SET_GS_BGCOLOUR(ORANGE_BG);
136 SET_GS_BGCOLOUR(BROWN_BG);
141 SET_GS_BGCOLOUR(PURPBLE_BG);
143 return ExecPS2((
void *)elfdata.epc, (
void *)elfdata.gp, argc-1, new_argv);
145 SET_GS_BGCOLOUR(MAGENTA_BG);
int SifLoadModule(const char *path, int arg_len, const char *args)
void SifLoadFileExit(void)
int SifLoadElf(const char *path, t_ExecData *data)
int SifLoadFileInit(void)
int SifIopReset(const char *arg, int mode)