项目简介
本项目是基于C语言的开源游戏移植项目,把经典的Wolfenstein 3D游戏移植到STM32H743/750开发板上。通过模拟VGA输出和模拟音频输出,支持PS2键盘输入与SD卡文件加载,展示了在嵌入式硬件上实现复杂游戏功能的方法,旨在探索Wolf3D代码库并学习与底层硬件交互。
项目的主要特性和功能
- 硬件接口:与STM32H743/750开发板的LCD控制器(LTDC)和DAC直接交互,实现图形渲染和音频输出。
- 图形渲染:借助自定义屏幕缓冲区和颜色调色板,基于LTDC实现图形渲染,支持模拟VGA输出。
- 音频处理:利用DAC和中断机制实现单声道音频播放。
- 用户输入:支持PS2键盘输入,实现游戏控制功能。
- 文件系统:使用SD卡加载游戏文件,支持FAT文件系统。
- 内存管理:重新实现页面管理器,优化内存使用,部分资源存储在Flash中。
安装使用步骤
硬件准备
- STM32H743/750开发板(需支持LTDC和DAC)。
- VGA显示器。
- PS2兼容键盘。
- SD卡(FAT格式)。
- 音频放大器。
- 电阻(100Ω、200Ω、47Ω)用于VGA DAC。
软件准备
安装ARM EABI GCC编译器和OpenOCD,在Arch Linux中可通过以下命令安装:
bash
pacman -Syu arm-none-eabi-gcc openocd
配置
- 修改
src/wolf3d/version.h
文件,确保与游戏文件版本匹配。 - 将游戏文件复制到FAT格式的SD卡中。
编译
在项目根目录下运行以下命令进行编译:
bash
make
编译生成的可执行文件将存放在build
目录中。
烧写
使用OpenOCD将可执行文件烧写到开发板:
bash
make flash
确保OpenOCD配置文件(openocd/devebox_stm32h743.cfg
)正确配置。
运行
连接VGA显示器、PS2键盘和SD卡,接通电源,启动开发板,游戏将自动运行。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】