\r
Other two are accurate line-based renderers. The 8bit is faster but does not\r
run well with some games like Street Racer.\r
+\r
#endif\r
#ifdef GIZ\r
This option allows to switch between 16bit and 8bit renderers. The 8bit one is\r
a bit faster for some games, but not much, because colors still need to be\r
converted to 16bit, as this is what Gizmondo requires. It also introduces\r
graphics problems for some games, so it's best to use 16bit one.\r
+\r
#endif\r
#ifdef PSP\r
This option allows to switch between fast and accurate renderers. The fast one\r
line by line, like the accurate one does. But because of the way it works it\r
can't render any mid-frame image changes (raster effects), so it is useful only\r
for some games.\r
-#endif\r
\r
+#endif\r
#ifdef GIZ\r
@@0. "Scanline mode"\r
This option was designed to work around slow framebuffer access (the Gizmondo's\r
games which use so called "32 column mode" (256x224 or 256x240), and scales\r
image width to 320 pixels. Vertical scales height to 240 for games which use\r
height 224 (most of them).\r
+\r
#endif\r
#ifdef GIZ\r
@@0. "Scale low res mode"\r
The Genesis/Megadrive had several graphics modes, some of which were only 256\r
pixels wide. This option scales their width to 320 by using simple\r
pixel averaging scaling. Works only when 16bit renderer is enabled.\r
-#endif\r
\r
+#endif\r
@@0. "Accurate timing"\r
This adds some more emulation precision, but slows the emulation down. Without\r
this option some games do not boot (Red Zone for example), others have sound\r
OBJS += data/bg32.o data/bg40.o\r
\r
\r
-LIBS += -lpng -lm -lpspgu -lpsppower -lpspaudio -lpsprtc -lpspaudiocodec\r
+LIBS += -lpng -lm -lpspgu -lpsppower -lpspaudio -lpsprtc -lpspaudiocodec -lpspkubridge\r
#LIBS += -lpspprof\r
LDFLAGS += -Wl,-Map=PicoDrive.map\r
\r
#include <pspkernel.h>
#include <pspsdk.h>
#include <pspaudiocodec.h>
+#include <kubridge.h>
#include "../../Pico/PicoInt.h"
#include "../../Pico/sound/mix.h"
static SceUID load_start_module(const char *prxname)
{
- SceUID mod = pspSdkLoadStartModule(prxname, PSP_MEMORY_PARTITION_KERNEL);
- if (mod < 0)
- lprintf("failed to load %s: %08x\n", prxname, mod);
+ SceUID mod, mod1;
+ int status, ret;
+
+ mod = pspSdkLoadStartModule(prxname, PSP_MEMORY_PARTITION_KERNEL);
+ if (mod < 0) {
+ lprintf("failed to load %s (%08x), trying kuKernelLoadModule\n", prxname, mod);
+ mod1 = kuKernelLoadModule(prxname, 0, NULL);
+ if (mod1 < 0) lprintf("kuKernelLoadModule failed with %08x\n", mod1);
+ else {
+ ret = sceKernelStartModule(mod1, 0, NULL, &status, 0);
+ if (ret < 0) lprintf("sceKernelStartModule failed with %08x\n", ret);
+ else mod = mod1;
+ }
+ }
return mod;
}