RP2040 Doom 项目教程
1. 项目介绍
RP2040 Doom 是一个基于 Raspberry Pi RP2040 微控制器的 Doom 游戏移植项目。该项目源自 Chocolate Doom,并进行了大量修改以支持在 RP2040 设备上运行,特别是能够在只有 2MB 闪存的 Raspberry Pi Pico 上运行完整的 DOOM1.WAD 游戏。
该项目的主要目标是:
- 完全匹配原始游戏的体验,包括 320x200 分辨率的图形、立体声、OPL2 音乐、存档/加载、演示回放、作弊码、网络多人游戏等。
- 在 Raspberry Pi Pico 上运行 DOOM1.WAD。
- 支持 RP2040 板上的 8MB 设备运行 Ultimate Doom 和 DOOM II WADs。
- 直接输出到 VGA(16 色引脚用于 RGB565,加上 HSync/VSync)和立体声。
2. 项目快速启动
2.1 环境准备
在开始之前,确保你已经安装了以下依赖:
- SDL2 依赖
- pico-sdk
- pico-extras
- arm-none-eabi-gcc(推荐版本 13.2.rel1)
2.2 克隆项目
git clone https://github.com/kilograham/rp2040-doom.git
cd rp2040-doom
2.3 初始化子模块
git submodule update --init
2.4 构建项目
2.4.1 构建本地版本
mkdir build
cd build
cmake ..
make -j<num_cpus>
2.4.2 构建 RP2040 版本
mkdir rp2040-build
cd rp2040-build
cmake -DCMAKE_BUILD_TYPE=MinSizeRel -DPICO_BOARD=vgaboard -DPICO_SDK_PATH=/path/to/pico-sdk -DPICO_EXTRAS_PATH=/path/to/pico-extras ..
make -j<num_cpus>
2.5 加载 WHD/WHX 文件
使用 picotool
加载生成的 WHD/WHX 文件:
picotool load -v -t bin doom1.whx -o 0x10042000
3. 应用案例和最佳实践
3.1 在 Raspberry Pi Pico 上运行 DOOM1.WAD
通过上述步骤,你可以在 Raspberry Pi Pico 上运行 DOOM1.WAD,体验经典的 Doom 游戏。
3.2 扩展到其他 RP2040 设备
如果你有 8MB 的 RP2040 设备,可以尝试运行 Ultimate Doom 和 DOOM II WADs。只需使用 WHD 格式的文件,并确保设备有足够的闪存空间。
3.3 自定义输入设备
项目支持 USB 键盘输入,但如果你希望使用其他输入设备(如游戏手柄),可以参考 TinyUSB 的文档进行自定义修改。
4. 典型生态项目
4.1 Chocolate Doom
RP2040 Doom 项目源自 Chocolate Doom,这是一个旨在尽可能接近原始 Doom 体验的 Doom 移植项目。Chocolate Doom 提供了丰富的功能和广泛的兼容性,是许多 Doom 移植项目的基础。
4.2 pico-sdk
pico-sdk 是 Raspberry Pi Pico 的官方 SDK,提供了丰富的库和工具,帮助开发者轻松构建和调试 RP2040 项目。
4.3 pico-extras
pico-extras 是 pico-sdk 的扩展库,提供了额外的功能和驱动程序,帮助开发者实现更复杂的功能,如 VGA 输出和 I2S 音频。
通过这些生态项目,RP2040 Doom 得以在 RP2040 设备上实现完整的 Doom 游戏体验。