- 精华
- 2
- 帖子
- 1418
- 威望
- 3 点
- 积分
- 1962 点
- 种子
- 10 点
- 注册时间
- 2006-5-12
- 最后登录
- 2021-11-21
|
本帖最后由 フェニックス 于 2016-2-29 01:58 编辑
prxencrypter_sdk是用来让PSPSDK在编译时进行签名,签名后可让软件在PSP官方系统运行。
最早公开的只支持5M,不管你原来的EBOOT有多小,签名后就会变成5M,实在太浪费记忆棒空间
之后更新的EasyPBPRX虽然支持了GZIP压缩,但是无法在sdk用,压缩率也不是很高,使用起来也不太方便。
所以我稍微修改了一下prxencrypter,让PSPSDK也支持了,支持101个DEMO,最大支持8M
所有DEMO文件头来自http://www.pspx.ru/forum/showthread.php?t=103580
由于调用了7Z的GZ压缩,所以需要安装7Z,默认安装到C盘即可。360喂屎如果强行给你改名一定要取消。
签名后的文件体积更小。(600K可压缩到300K)
源码:https://github.com/phoe-nix/pspsdk/tree/master/tools/PrxEncrypter
先安装好PSPSDK+MSYS,然后将压缩包中pspsdk文件夹覆盖到你的pspsdk安装目录。
----------------------------------------------------------------------------------------------------
如果你只想用来签名,可以下载PRX_Encrypter_Pack_v3.5(gzip),将想签名的EBOOT.PBP和RunMe.exe放在相同目录,然后鼠标左键双击RunMe.exe,签名就会自动完成了
注意,部分自制软件是无法签名成功的,如果签名后出现问题,请用回原来的EBOOT。
还有签名过的EBOOT是无法在PSV和PPSSPP里运行的,只能在PSP上运行
----------------------------------------------------------------------------------------------------
hello world附带中文字库libpspdebug_ch.a,
若想汉化采用PSPSDK内置字库的源码,只需要在LIBS那项加上libpspdebug_ch.a,并把libpspdebug_ch.a放在源码目录,和MAKEFILE同目录。
或者把libpspdebug_ch.a,改名为libpspdebug.a放在X:\pspsdk\psp\sdk\lib
不过部分程序的界面需要手动去调整,因为每个字符的高度从8变成了12
下面是HELLO WORLD的MAKEFILE,如果你有源码,就可以轻松汉化,中文字库是ANSI编码(GBK),找到printf,修改成中文字符然后编译,汉化就完成了。之前的PSX解密器和PRX解密器,还有降级软件都是采用这个方法
Makefile
- TARGET = helloworld
- OBJS = main.o
- INCDIR =
- CFLAGS = -O2 -G0 -Wall
- CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
- ASFLAGS = $(CFLAGS)
- LIBDIR =
- LDFLAGS = -Wl
- LIBS = libpspdebug_ch.a
- EXTRA_TARGETS = EBOOT.PBP
- PSP_EBOOT_TITLE = Hello World
- BUILD_PRX = 1
- ENCRYPT = 1
- PSPSDK=$(shell psp-config --pspsdk-path)
- include $(PSPSDK)/lib/build.mak
复制代码
main.c
- #include <pspkernel.h>
- #include <pspdebug.h>
- #include <pspctrl.h>
- #include <stdlib.h>
- #include <string.h>
- #include <pspsdk.h>
- #include <psputility.h>
- PSP_MODULE_INFO("HelloWorld", 0, 1, 0);
- PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
- #define printf pspDebugScreenPrintf
- int exit_callback(int arg1, int arg2, void *common)
- {
- sceKernelExitGame();
- return 0;
- }
- int CallbackThread(SceSize args, void *argp)
- {
- int cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
- sceKernelRegisterExitCallback(cbid);
- sceKernelSleepThreadCB();
- return 0;
- }
- int SetupCallbacks(void)
- {
- int thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
- if (thid >= 0)
- sceKernelStartThread(thid, 0, 0);
- return thid;
- }
- int main(void)
- {
- pspDebugScreenInit();
- SetupCallbacks();
- printf("Hello World...\n");
- printf("你好!世界...\n");
- sceKernelSleepThread();
- return 0;
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|