From: notaz Date: Sun, 18 Nov 2007 00:26:41 +0000 (+0000) Subject: psp late-night fixes X-Git-Tag: v1.85~619 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aefb65bc6a5336d2f02935e7a94bd0073def54c7;p=picodrive.git psp late-night fixes git-svn-id: file:///home/notaz/opt/svn/PicoDrive@299 be3aeb3a-fb24-0410-a615-afba39da0efa --- diff --git a/platform/base_readme.txt b/platform/base_readme.txt index db904b5e..62edaaf7 100644 --- a/platform/base_readme.txt +++ b/platform/base_readme.txt @@ -166,12 +166,14 @@ mid-frame image changes (raster effects), so it is useful only with some games. Other two are accurate line-based renderers. The 8bit is faster but does not run well with some games like Street Racer. + #endif #ifdef GIZ This option allows to switch between 16bit and 8bit renderers. The 8bit one is a bit faster for some games, but not much, because colors still need to be converted to 16bit, as this is what Gizmondo requires. It also introduces graphics problems for some games, so it's best to use 16bit one. + #endif #ifdef PSP This option allows to switch between fast and accurate renderers. The fast one @@ -179,8 +181,8 @@ is much faster, because it draws the whole frame at a time, instead of doing it line by line, like the accurate one does. But because of the way it works it can't render any mid-frame image changes (raster effects), so it is useful only for some games. -#endif +#endif #ifdef GIZ @@0. "Scanline mode" This option was designed to work around slow framebuffer access (the Gizmondo's @@ -196,14 +198,15 @@ averaging and may look a bit nicer, but blurry. Horizontal scaling is only for games which use so called "32 column mode" (256x224 or 256x240), and scales image width to 320 pixels. Vertical scales height to 240 for games which use height 224 (most of them). + #endif #ifdef GIZ @@0. "Scale low res mode" The Genesis/Megadrive had several graphics modes, some of which were only 256 pixels wide. This option scales their width to 320 by using simple pixel averaging scaling. Works only when 16bit renderer is enabled. -#endif +#endif @@0. "Accurate timing" This adds some more emulation precision, but slows the emulation down. Without this option some games do not boot (Red Zone for example), others have sound diff --git a/platform/psp/Makefile b/platform/psp/Makefile index d18c3320..9161ea62 100644 --- a/platform/psp/Makefile +++ b/platform/psp/Makefile @@ -70,7 +70,7 @@ endif OBJS += data/bg32.o data/bg40.o -LIBS += -lpng -lm -lpspgu -lpsppower -lpspaudio -lpsprtc -lpspaudiocodec +LIBS += -lpng -lm -lpspgu -lpsppower -lpspaudio -lpsprtc -lpspaudiocodec -lpspkubridge #LIBS += -lpspprof LDFLAGS += -Wl,-Map=PicoDrive.map diff --git a/platform/psp/mp3.c b/platform/psp/mp3.c index ce127889..456b72b9 100644 --- a/platform/psp/mp3.c +++ b/platform/psp/mp3.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "../../Pico/PicoInt.h" #include "../../Pico/sound/mix.h" @@ -132,9 +133,20 @@ static int read_next_frame(int which_buffer) 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; } diff --git a/platform/psp/psp.c b/platform/psp/psp.c index 99b9084c..a4b76985 100644 --- a/platform/psp/psp.c +++ b/platform/psp/psp.c @@ -127,6 +127,7 @@ void psp_init(void) void psp_finish(void) { + lprintf("psp_finish..\n"); sceGuTerm(); //sceKernelSleepThread();