当前位置: 首页 > news >正文

0322-Chip8-通过第二个测试

环境

  • Time 2023-07-26
  • Zig 0.11.0-dev.4191+1bf16b172
  • SLD2 2.28.1

前言

说明

参考资料:

  1. https://en.wikipedia.org/wiki/CHIP-8
  2. https://austinmorlan.com/posts/chip8_emulator/
  3. https://rsj217.github.io/chip8-py/
  4. https://github.com/Timendus/chip8-test-suite

其中最后一个提供了测试的套件,实现的过程中,可以检测哪些指令有问题,帮助很大。

目标

第二个测试,只需要在第一个的基础上,新增一个 7XNN 指令即可。

main.zig

  1. 加载第二个测试 rom。
const std = @import("std");
const chip8 = @import("chip8.zig");pub fn main() !void {// const rom = @embedFile("roms/1-chip8-logo.ch8");const rom = @embedFile("roms/2-ibm-logo.ch8");var emulator = chip8.Emulator.new(rom);emulator.run();
}

execute

cpu 文件中其它不相关代码已省略。

fn execute(self: *CPU, memory: *Memory) void {const ins = &self.instruct;var reg = &self.register;switch (ins.code) {0x0 => memory.clearScreen(),0x1 => self.pc = ins.nnn,0x6 => reg[ins.x] = ins.nn,0x7 => reg[ins.x] +%= ins.nn,0xA => self.index = ins.nnn,0xD => self.draw(memory),else => std.log.info("unknown opcode: 0x{X:0>4}", .{ins.opcode}),}
}

启动

zig build run

效果

窗口

总结

实现了 7XNN 指令,通过了 Chip-8 测试 rom 的第二个。

附录

http://icebutterfly214.com/news/81128/

相关文章:

  • 天津市蓟州区农村自建房找谁好?天津市蓟州区自建房公司/机构深度评测口碑推荐榜
  • 上海地标广告位公司哪家专业?核心商圈资源解析
  • 【TET出版 | EI检索】第十届清洁能源与发电技术国际学术会议(CEPGT 2025)
  • pbootcms模板文件如何调用网站所有的文章(PbootCMS模板调用全站文章指南)
  • 2025年评价高的大理石抛丸机厂家选购指南与推荐
  • WebSocket 完全指南:从原理到实战,搭建实时通信桥梁 - 指南
  • 2025年小铁台球加盟:技术赋能与投资价值的深度解析
  • 2025年度知名猎头公司推荐排行榜,诚信的猎头公司供应商精选
  • 2025年小铁台球加盟:科技赋能模式下的投资回报深度解析
  • 【图像处理基石】多频谱图像融合算法入门 - 实践
  • 2025年中频点焊机厂家权威推荐榜单:中频直流点焊机/螺母点焊机/中频碰焊机源头厂家精选。
  • 2025年知名的台式浓缩浓缩干燥器行业内知名厂家排行榜
  • 2025年靠谱的烽创机械臂厂家最新权威实力榜
  • 2025年知名的堆肥技术有机肥/有机肥厂家最新热销排行
  • 2025年重庆烘焙培训学校排名:重庆欧米奇西点烘焙学校上榜
  • 在POSIX sh中替代Bash的[[ ... ]]:脚本兼容性实践
  • 【GitHub每日速递 20251204】LightRAG:集多功能于一身,检索增强生成新利器!
  • 2025年口碑好的自动寻址售货机厂家推荐及选购指南
  • 超快AI推理技术整合至企业平台
  • 2025年热门的展会制作精选榜
  • 2025年比较好的真空干燥机厂家最新权威推荐排行榜
  • AT_arc206_a [ARC206A] Range Replace
  • 2025下半年徐州虹吸管厂商综合评测与选购指南
  • 2025年下半年上海CE认证服务机构综合评估与选择指南
  • 2025年质量好的河道杉木桩优质厂家推荐榜单
  • 出境游旅行社定制游哪家比较好?这些选择值得关注
  • 图片的秘密
  • .NET Core 微服务之RabbitMQ分布式链路追踪
  • 全程复盘:一次枚举值永远 Cloud2的坑——从玄学随机到只读属性
  • Day10-20251203