一棒引导多个游戏的原理
下面的是通用的msdloader的程序 chinagba.com - ML[*$垑S
#include <pspkernel.h> chinagba.com - 劂CQ緃32b
#include <pspdebug.h> chinagba.com - ??腽?q
#include <stdlib.h> chinagba.com - t亚甾蟸
#include <string.h> chinagba.com - Y%yA酙pi2
#define printf pspDebugScreenPrintf chinagba.com - ?盎k ?
PSP_MODULE_INFO("SDKTEST", 0x1000, 1, 1); // 0x1000 = Kernel MODE chinagba.com - (B﨩{?q?
PSP_MAIN_THREAD_ATTR(0); // 0 for kernel mode too chinagba.com - ]揦Kd齠埝
int main(void) chinagba.com - 鍤?wc熟?
{ chinagba.com - d???駌
sceIoUnassign("disc0"); chinagba.com - ??J剹~?
sceIoAssign("disc0:", "msstor0p1:/" , "fatms0:/" , 0x00, NULL, 0); chinagba.com - [?Qⅱ?
sceKernelLoadExec("ms0:/PSP_GAME/SYSDIR/BOOT.BIN",0); chinagba.com - 湯签L㏎W襼
chinagba.com - ' 飽B+ 珂?
return 0; chinagba.com - w佥顈愵猽O
} chinagba.com - 賣客yk聦
chinagba.com - 嬄29罹mY~1
最后一句话可以看出程序最终是指向PSP_GAME/SYSDIR/BOOT.BIN的 chinagba.com - 诲巙ЕI睞
chinagba.com - {?`??_?
若要多引导则要做一下修改,同样以较为简单的泡泡龙为例,其他大多雷同. chinagba.com - 塄禙詏"?
首要要确定一个文件夹的名字,一定要8个字母,以便于和PSP_GAME匹配,假定就PUZZLBBL chinagba.com - ml澉屐涰?
然后把上面一段程序最后一句改成sceKernelLoadExec("ms0:/ PUZZLBBL/SYSDIR/BOOT.BIN",0);得到一个泡泡龙专用的msdloader,这部分只能于会编译的达人来搞定了,不过现在泡泡龙,lumines和coded arms已经有人编译出来了(这部分我不会编译,仅是猜测) chinagba.com - ?鈘6v
接着要修改BOOT.BIN,原来BOOT.bin里面全都是指向msd上PSP_GAME这个文件夹的的,我们要做的是把他全部改成指向PUZZLBBL,由于每个人的umd引导盘都不同,所以这部分最好自己做.注,很清楚,关于prx的部分是不用改的 chinagba.com - n?託|憄{?
举例拿已经能玩的泡泡龙的boot.bin里面有 chinagba.com - 5N鑾&?玡
fatms:/PSP_GAME/USRDIR/wave/ chinagba.com - ?y詂Gw]
fatms:/PSP_GAME/USRDIR/ chinagba.com - V出T衯澨
fatms:/PSP_GAME/USRDIR/data.pak chinagba.com - 瓸0鍫烻4?
改成 chinagba.com - 死櫽鞔c絥
fatms:/PUZZLBBL/USRDIR/wave/ chinagba.com - ??瘷K&
fatms:/PUZZLBBL/USRDIR/ chinagba.com - 然_?qz
fatms:/PUZZLBBL/USRDIR/data.pak chinagba.com - 晏惴?媷
chinagba.com - ?6V2癴p[
chinagba.com - #噻Q蘥瘽
最后要做的是把泡泡龙iso里面的PSP_GAME文件夹改成PUZZLBBL放到msd上,UMD_DATA.BIN可以无视,把刚才修改过的boot.bin覆盖原文件.
#include <pspkernel.h> chinagba.com - 劂CQ緃32b
#include <pspdebug.h> chinagba.com - ??腽?q
#include <stdlib.h> chinagba.com - t亚甾蟸
#include <string.h> chinagba.com - Y%yA酙pi2
#define printf pspDebugScreenPrintf chinagba.com - ?盎k ?
PSP_MODULE_INFO("SDKTEST", 0x1000, 1, 1); // 0x1000 = Kernel MODE chinagba.com - (B﨩{?q?
PSP_MAIN_THREAD_ATTR(0); // 0 for kernel mode too chinagba.com - ]揦Kd齠埝
int main(void) chinagba.com - 鍤?wc熟?
{ chinagba.com - d???駌
sceIoUnassign("disc0"); chinagba.com - ??J剹~?
sceIoAssign("disc0:", "msstor0p1:/" , "fatms0:/" , 0x00, NULL, 0); chinagba.com - [?Qⅱ?
sceKernelLoadExec("ms0:/PSP_GAME/SYSDIR/BOOT.BIN",0); chinagba.com - 湯签L㏎W襼
chinagba.com - ' 飽B+ 珂?
return 0; chinagba.com - w佥顈愵猽O
} chinagba.com - 賣客yk聦
chinagba.com - 嬄29罹mY~1
最后一句话可以看出程序最终是指向PSP_GAME/SYSDIR/BOOT.BIN的 chinagba.com - 诲巙ЕI睞
chinagba.com - {?`??_?
若要多引导则要做一下修改,同样以较为简单的泡泡龙为例,其他大多雷同. chinagba.com - 塄禙詏"?
首要要确定一个文件夹的名字,一定要8个字母,以便于和PSP_GAME匹配,假定就PUZZLBBL chinagba.com - ml澉屐涰?
然后把上面一段程序最后一句改成sceKernelLoadExec("ms0:/ PUZZLBBL/SYSDIR/BOOT.BIN",0);得到一个泡泡龙专用的msdloader,这部分只能于会编译的达人来搞定了,不过现在泡泡龙,lumines和coded arms已经有人编译出来了(这部分我不会编译,仅是猜测) chinagba.com - ?鈘6v
接着要修改BOOT.BIN,原来BOOT.bin里面全都是指向msd上PSP_GAME这个文件夹的的,我们要做的是把他全部改成指向PUZZLBBL,由于每个人的umd引导盘都不同,所以这部分最好自己做.注,很清楚,关于prx的部分是不用改的 chinagba.com - n?託|憄{?
举例拿已经能玩的泡泡龙的boot.bin里面有 chinagba.com - 5N鑾&?玡
fatms:/PSP_GAME/USRDIR/wave/ chinagba.com - ?y詂Gw]
fatms:/PSP_GAME/USRDIR/ chinagba.com - V出T衯澨
fatms:/PSP_GAME/USRDIR/data.pak chinagba.com - 瓸0鍫烻4?
改成 chinagba.com - 死櫽鞔c絥
fatms:/PUZZLBBL/USRDIR/wave/ chinagba.com - ??瘷K&
fatms:/PUZZLBBL/USRDIR/ chinagba.com - 然_?qz
fatms:/PUZZLBBL/USRDIR/data.pak chinagba.com - 晏惴?媷
chinagba.com - ?6V2癴p[
chinagba.com - #噻Q蘥瘽
最后要做的是把泡泡龙iso里面的PSP_GAME文件夹改成PUZZLBBL放到msd上,UMD_DATA.BIN可以无视,把刚才修改过的boot.bin覆盖原文件.
关键字索引:引导



