Reddit用户Dycus最近完成了一个引人入胜的项目:他利用光学鼠标的传感器制作了一台功能齐全的相机。经过65小时的工作,成果是一款低分辨率(30x30像素)的黑白相机,能够捕捉64级灰度,并装在一个定制的3D打印外壳中。
虽然其他人也曾从鼠标传感器中提取图像,但Dycus设计了一款具有多种拍摄模式的完整相机——包括单张拍摄、四连拍,以及独特的“拖影拍摄”全景模式。它甚至拥有32kB的存储空间,可以保存最多48张图像,并且可以记录运动来创建绘画。
尽管分辨率极低,Dycus强调了这个项目的乐趣,将其比作备受喜爱的Game Boy Camera。这款相机证明了引人入胜的图像并不完全取决于像素数量,而是关于创造性的应用和享受。
## CHIP-8 模拟器指南概要
本指南提供构建 CHIP-8 解释器的路线图——通常被错误地称为模拟器,因为 CHIP-8 并非实际硬件。由于其简单性,它是学习模拟器开发的良好起点。
CHIP-8 创建于 1977 年,解释十六进制指令以提供更简单的编程体验。尽管年代久远,但存在许多实现,导致规范不一致,本指南旨在澄清这些问题。
**关键组件:** 4KB 内存、64x32 单色显示屏、程序计数器 (PC)、索引寄存器 (I)、堆栈、8 位定时器(延迟和声音)以及 16 个通用寄存器 (V0-VF)。 开发的核心是 **取指令-解码-执行循环**,读取指令、识别其功能,然后执行操作。
**起点:** 从基本指令开始,例如清除屏幕、跳转到地址、设置寄存器,以及关键的显示指令 (DXYN),以运行 IBM 标志程序。
**挑战与扩展:** 注意在不同实现中行为不同的模糊指令(如 BNNN、FX55/FX65),并考虑使其可配置。进一步的开发可以包括添加对 SUPER-CHIP(更高分辨率、更多指令)或 XO-CHIP(更多颜色、声音、内存)的支持,创建调试工具,或将模拟器移植到不同的平台。像 Octojam.com 这样的资源提供游戏和工具,用于测试和获取灵感。