From f5f4113d7570562c24aeb40744ac1a38be9df6a3 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 9 Oct 2023 17:11:14 +0800 Subject: [PATCH] intro --- docs/bulidtarget.md | 34 ++++++++++++++++++++++++++++++++++ docs/index.md | 5 ++--- docs/makefilesample.md | 1 + 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 docs/bulidtarget.md diff --git a/docs/bulidtarget.md b/docs/bulidtarget.md new file mode 100644 index 0000000..9ba73af --- /dev/null +++ b/docs/bulidtarget.md @@ -0,0 +1,34 @@ +# 我们要构建的是什么? +我们的目标是编写能在PSP上运行的软件(常被称为`PSP Module`),从应用上可分为自制游戏(`Homebrew`)和插件(`Plugin`)。 + +> 参考阅读 +> 一个关于PSPModule的文档,存在Github上某个项目中。 +> 链接过会加上来 + +在此之前,我们先了解一下PSP。 + +## PSP的正规使用方法 +众所周知,PSP是索尼2004年推出的一款游戏机。其游戏通过UMD光盘发行。在运行官方固件的PSP上,PSP通过读取插入的UMD光盘运行游戏。PSP支持读取记忆棒,主要用于储存游戏存档数据等。 + +## 自定义固件(CFW) +PSP推出以后,各路大神争相破解PSP固件,利用各种漏洞推出了众多自定义固件。在自定义固件下,PSP可以运行储存在记忆棒中的UMD光盘镜像或者爱好者自己编写的`PSP Module`文件。 + +经过20年迭代,一般认为目前功能最完善的CFW为6.60PRO。互联网上有许多安装教程,不再赘述。 + +本文所有示例程序均在6.60PRO固件下的PSP1000型号中测试通过。 + +## 模拟器(Emulator) +随着其他设备性能的提升,市面上也开始出现越来越多的PSP模拟器。其中最著名的当属PPSSPP。如果你没有实体的PSP,也可以通过模拟器来享受前人制作的精良游戏或测试自己开发的`PSP Module`。 + +## 文件格式 + +前文已经提到,我们的目标是编写`PSP Module`。我们有必要提及运行CFW的PSP可以运行的`PSP Module`程序的文件格式。 + ++ ELF ++ PRX + +对于自制游戏来说,为了能让其在主界面(`XMB`)的游戏菜单中显示,需要将其封装为EBOOT.PBP + +示例:我们假设你已经拥有一台配备CFW的PSP +> A typical Plugin +> A typical Homebrew \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index ea3636f..1a2fdda 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,14 +6,13 @@ - 熟悉 Linux 开发环境,Bash Shell 的有关知识 - 熟悉 GNU 的一系列工具,了解大型 C/C++项目如何组织 -- 了解编译和汇编的有关知识 - 练习使用 git 和 GitHub,尝试使用 CI/CD 工具 -- 学习计算机系统基础,逐渐从其他语言到 C 语言和汇编过渡 +- 学习计算机系统基础,逐渐从其他语言到 C 语言和汇编过渡,了解编译和汇编的有关知识 - 从 GNU Make 到 CMake - 了解不同平台的差异 ## TODO: - +- [ ] 构建的目标 - [ ] 环境配置 - [ ] PSPDEV - [ ] VSCode diff --git a/docs/makefilesample.md b/docs/makefilesample.md index 140183e..85cb986 100644 --- a/docs/makefilesample.md +++ b/docs/makefilesample.md @@ -70,6 +70,7 @@ ## PSPDEV提供的基础Makefile +不要忘记了,写笔记的目的不仅仅是为了使用PSPSDK开发,更是为了学习相关知识。所以在解析Makefile的过程中会穿插知识点和参考。 位于`pspdev/psp/sdk/lib`基础的Makefile文件`build.mak`,通常会在自己的Makefile包含。 ```makefile title="pspdev/psp/sdk/lib/build.mak" # Note: The PSPSDK make variable must be defined before this file is included.