X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=psp%2Fmp3.c;h=456b72b95e6c3ae7c2054f37409498f248a91cb0;hb=117f236a4df7e19866bef195fa38ca022ff4b529;hp=ce1278890c04b7484a69c7743db217ebdc3173fb;hpb=63b796cabb7d484d648755810f79bebc8f0fd689;p=libpicofe.git diff --git a/psp/mp3.c b/psp/mp3.c index ce12788..456b72b 100644 --- a/psp/mp3.c +++ b/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; }