11#include <elf_loader_common.h>
18#ifdef LOADER_ENABLE_DEBUG_COLORS
19#define SET_GS_BGCOLOUR(colour) \
22 *((volatile unsigned long int *)0x120000E0) = colour; \
25#define SET_GS_BGCOLOUR(colour) \
32#define WHITE_BG 0xFFFFFF
33#define CYAN_BG 0xFFFF00
34#define GREEN_BG 0x00FF00
35#define RED_BG 0x0000FF
36#define MAGENTA_BG 0xFF00FF
37#define BROWN_BG 0x2A2AA5
38#define PURPLE_BG 0x800080
46void _libcglue_init() {}
47void _libcglue_deinit() {}
48void _libcglue_args_parse(
int argc,
char **argv) {}
50DISABLE_PATCHED_FUNCTIONS();
51DISABLE_EXTRA_TIMERS_FUNCTIONS();
52PS2_DISABLE_AUTOSTART_PTHREAD();
60 SET_GS_BGCOLOUR(WHITE_BG);
61 ldrinfo = (
void *)0x11004000;
62 arginfo = (
void *)0x00088000;
66 for ( i = 0; i < (
sizeof(ldrinfo->items) /
sizeof(ldrinfo->items[0])); i += 1 )
70 item = &(ldrinfo->items[i]);
71 if ( item->dest_addr != NULL && item->src_addr != NULL && item->size != 0 )
73 SET_GS_BGCOLOUR(CYAN_BG);
74 memmove(item->dest_addr, item->src_addr, item->size);
76 else if ( item->dest_addr != NULL && item->src_addr == NULL && item->size != 0 )
78 SET_GS_BGCOLOUR(GREEN_BG);
79 memset(item->dest_addr, 0, item->size);
81 else if ( item->dest_addr != NULL && item->size == 0 )
83 SET_GS_BGCOLOUR(BROWN_BG);
86 SET_GS_BGCOLOUR(PURPLE_BG);
87 ExecPS2(item->dest_addr, item->src_addr, arginfo->argc, arginfo->argv);
91 SET_GS_BGCOLOUR(MAGENTA_BG);
96 SET_GS_BGCOLOUR(RED_BG);