littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C语言的Wolfenstein 3D游戏移植

项目简介

本项目是基于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】