用现代单片机搭出一台运行 8 位风格游戏的设备,只需要几百行开源代码和一块几美元带 HDMI 接口的开发板。开发者 Throaty Mumbo 在 Game Console V2 项目中选择了一条相反的路线:取消所有现代接口,用并行总线拔插卡带,靠电阻阵列手动拼凑模拟电视信号。
绕开SD卡便捷路径:并行总线的物理约束
大部分基于单片机的自制游戏机项目习惯将游戏 ROM 存放在 SD 卡中,通过 SPI 或 SDIO 协议读取。这种做法借助操作系统或现成文件系统 API 屏蔽了存储通信的细节。Game Console V2 放弃了 SD 卡,设计了搭载真实 ROM 芯片的硬件卡带,卡带插槽直接暴露并行总线。
微控制器 PGA2350(基于 RP2350B)通过多根 GPIO 引脚直连卡带的地址总线和数据总线。读取游戏数据需要微控制器按照严格的时间序列拉高或拉低地址引脚,再在固定的时钟周期内读取数据总线状态。并行总线占用超过 16 根 GPIO 引脚,导致 PCB 布线极为紧凑。卡带插拔机制不仅重现了上世纪 80 年代末的物理仪式感,而且强迫软件架构在微秒级别精确处理总线寻址与响应。
图:Game Console V2 的 PCB 板布局。来源:Hackaday / Throaty Mumbo YouTube
NTSC复合信号:微控制器硬拉模拟视频
信号输出端没有采用常见的 VGA 或 HDMI 接口,甚至省去了专用视频生成芯片。整机图形输出依赖 RP2350 实时生成的 NTSC 复合视频信号(Composite Video),通过单个 RCA 插孔直接连接传统显示器。
色彩生成由一个 6 位 R-2R 电阻网络完成,构成简单的数字-模拟转换器(DAC),实现 RGB332 的色彩空间。在 6 位 R-2R 电阻网络中,颜色输出被限制在 64 色范围内。微控制器必须在极高频率下交替刷新颜色电平与彩色副载波信号,将图像像素实时调制为标准模拟电视波形。音频部分选用 PCM5102A 芯片,通过 I2S 总线接收微控制器输出的数字音频数据,保持音频输出信号的稳定性。
图:插入并行卡带并在实机运行游戏。来源:Hackaday / Throaty Mumbo YouTube
手柄交互与运行演示:微型架构的特定历史质感
外设控制方面,主机采用了 4 针 Bulgin SA2367 工业级连接器。手柄内部兼容 N64 游戏手柄的串行通讯协议,微控制器通过单根信号线读取按键状态和模拟摇杆数据。选用 4 针 Bulgin 工业级连接器与 N64 串行总线协议组合,将手柄采样延迟降至极低。这种硬件选择让系统在追求电路板微型化的同时,保留了典型第四代游戏机级别的交互响应度。
实机演示中运行的快艇赛艇游戏,展示了平滑的画质滚动与及时的碰撞检测。社区讨论中有爱好者指出,该演示游戏的视觉风格与操作体验让人联想到雅达利 2600 晚期名作《Enduro》。硬件上受限的色彩深度与高帧率波形输出,还原了早期家用主机硬件受限下的游戏表现力。
RP2350仅为过渡:V3版本迈向真8/16位CPU
当前版本使用的 RP2350B 拥有双核 ARM Cortex-M33 / Hazard3 RISC-V 架构,工作频率超过 150MHz。对于一台性能对标 8 位机的设备而言,RP2350 的算力充沛。社区对于这一设计存在不同评价:部分嵌入式工程师认为使用高性能现代 MCU 会弱化 8 位架构的开发难度;另一部分开发者则指出,在尚未完全定型的视频与总线验证阶段,利用 RP2350 灵活的 GPIO 与 PIO 状态机是合理的工程选择。
作者在设计规划中明确表示,RP2350B 在 V2 版本中仅担当过渡角色。后续规划的 V3 版本将去掉 RP2350 的主控芯片,改为使用真正的独立 8 位或 16 位 CPU。这种路线规划表明当前阶段的核心价值在于验证模拟信号与总线控制拓扑,后续将彻底回归裸金属级别的独立芯片组设计。
Game Console V2 展现出一种独特的硬件工程取向。在现成芯片和高层框架极为丰富的今天,故意用并行卡带和模拟视频增加构建难度,将当代微控制器限制在历史接口的技术框架内。这种设计消除了封装库带来的便利,迫使开发者重新面对底层电平时序与芯片总线拓扑的原始挑战。
参考链接: