关于 Game Boy 卡带如何工作的内容比你想知道的还要多

这是一篇关于自制 Game Boy 卡带的详细指南,包含了硬件知识、协议等方面的内容,主要信息如下:

  • 背景与目标:作者希望了解 Game Boy 卡带的工作原理,并利用 RP2040 微控制器的 PIO 功能制作自制卡带。其目标是制作可重写、支持大部分 Game Boy 游戏库且使用现成部件的卡带。
  • 硬件基础

    • Game Boy 硬件概述:Game Boy 有内置 bootloader 的少量 ROM,无真正的操作系统和可重写的非易失性存储,需通过卡带来提供运行游戏的内存 IC。
    • 总线与内存:介绍了并行总线(parallel bus)和串行总线(serial bus)的概念,Game Boy 采用 16 位/8 位并行总线,其 32 个引脚包括电源、地、控制引脚、地址总线和数据总线等。Game Boy 可连接多种内存 IC,如内部 RAM(WRAM)、视频 RAM(VRAM)、卡带 ROM 和卡带 RAM 等,但它们共享同一地址总线和数据总线,容易引发总线争用(bus contention)。
  • 内存银行控制器(MBC)

    • MBC 功能:MBC 是常见于 Game Boy 卡带的集成电路,可使卡带上的软件访问超过 32KB 的 ROM 内存和额外的 RAM,还可集成如实时时钟和加速度计等外围设备。本文主要介绍 MBC5,它能处理高达 4MB 的 ROM 和 128KB 的卡带 RAM,并可禁用卡带 RAM。
    • ROM 银行切换:MBC5 可通过改变 ROM 芯片的地址引脚来实现内存银行切换,使 Game Boy 能访问不同部分的 ROM 数据。
    • MBC 协议:Game Boy 软件通过地址总线、数据总线和流控制引脚与 MBC5 通信,以指令 MBC5 切换内存银行。协议规定了不同地址和引脚状态下 MBC5 的操作,如写入数据到特定地址可设置 ROM 银行编号等。
    • 卡带 RAM:卡带 RAM 用于存储游戏进度等数据,其访问受 MBC 控制。MBC 通过检查地址总线的特定引脚状态来确定是否激活卡带 RAM,并可通过设置锁定/解锁位来保护数据。卡带 RAM 也可通过类似 ROM 银行切换的方式进行银行切换。
  • 自制卡带细节

    • 保持 RAM 安全:大多数商业 Game Boy 游戏使用静态 RAM(SRAM)存储存档数据,卡带通常通过复位 IC 来管理 SRAM 的电源切换和芯片禁用,以防止数据 corruption。
    • 卡带上的外围设备:介绍了 rumble(震动)功能和 MBC3 上的实时时钟(RTC)功能的实现方式,它们通过 MBC 协议与 Game Boy 软件交互。
    • 制作 Game Boy 卡带从 scratch 的步骤

      • 简单 32KB 卡带:直接将 5V 并行闪存 IC 焊接到卡带边缘,通过对齐地址、数据和控制引脚来工作。
      • 使用闪存:多数第三方可重编程卡带使用并行闪存(NOR flash),其操作与 ROM 或 SRAM 有所不同,需要特定的协议(如擦除和写入字节操作),还需 cartridge flasher 来将文件写入闪存。
      • Cartridge flashers:这是连接电脑和 Game Boy 卡带的设备,可用于读取和写入卡带数据,通过微控制器和特定软件(如 FlashGBX)来控制。
      • 模拟 MBC:可通过 harvest 现有卡带的 MBC IC、使用可编程逻辑设备(如 CPLD 或 FPGA)或微控制器来模拟 MBC 行为,以支持大于 32KB 的 ROM。
      • 处理 MBC 协议与闪存协议冲突:可选择不冲突的闪存 IC 或使用单独的引脚来区分 MBC 和闪存的命令。
      • 卡带 RAM 数据持久化:可使用电池备份的 SRAM 或 ferroelectric RAM(FRAM),前者需额外的复位 IC 来管理电源切换,后者无需电池但成本较高。
      • 解决电源问题:可使用电压调节器将 Game Boy 的 5V 电源转换为较低电压,并用逻辑电平转换器将 5V 逻辑信号转换为适合低电压组件的信号,以使用 3.3V 或更低电压的组件。
    • 策略与示例:介绍了一些在卡带上集成自定义硬件组件的策略,如通过特定地址引脚通信或利用 MBC 作为代理等,并列举了一些实际的自定义卡带示例。
  • 总结与资源:总结了制作 Game Boy 卡带的要点,包括闪存选择、MBC 模拟、数据存储等,并提供了一些其他学习资源,如商业卡带 schematics、视频教程、文档等。

总的来说,这篇文章全面介绍了 Game Boy 卡带的工作原理和自制卡带的相关知识,对于对 Game Boy 硬件感兴趣的人具有很高的参考价值。

阅读 8
0 条评论