有限雅达利机器

主要观点:通过生成大量随机 4kB 文件并使用 Atari 2600 模拟器及各种启发式算法来寻找 Atari 游戏,包括分析 ROM 特征、利用 GPU 加速搜索等,最终找到一些有趣的“随机”ROM 及具有游戏行为的 ROM,还探讨了针对不同平台的工作及未来可能性。
关键信息

  • 生成约 300 亿个 4kB 随机数据文件,经筛选后用模拟器检测,回答了“让 GPU 生成 Atari 2600 游戏”这一无人问津的问题。
  • 介绍了多种启发式规则,如Opcode 合理性、复位向量检查、TIA 和 RIOT 访问检测、分支和跳转等,以验证“游戏样”的 ROM。
  • 用 Python 和 CUDA 实现了 GPU 加速的 ROM 生成和分析,每秒可检查 60,000 个“随机”ROM,找到一个“有希望”的 ROM 约需 259 万个。
  • 尝试了两种在模拟器中运行 ROM 的方法,发现仅选择能运行的 ROM 不行,需寻找有有趣输出的 ROM,重新编写生成管道实现此目标。
  • 找到一些视觉有趣的结果,如“51014”ROM 显示出游戏样行为,对 Atari 2600 平台的研究及与其他平台的对比,还提及未来可作为分布式计算项目。
    重要细节
  • 真实 Atari 游戏的各种特征数据,如有效操作码比例、TIA 和 RIOT 访问次数等。
  • GPU 加速的 ROM 生成和分析代码的具体实现细节,包括各种查找表的创建和分析函数的计算过程。
  • 不同方法在模拟器中运行 ROM 的结果及问题,如分类器在实际机器码上的无用性等。
  • 找到的具有游戏样行为的“51014”ROM 的具体表现及相关代码链接等。
阅读 10
0 条评论