{
  "added_at": "2026-11-10",
  "additional_evidence_urls": [
    "https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/main.c",
    "https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/emu.c",
    "https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/datastream.c",
    "https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/opcodes.c",
    "https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/Makefile"
  ],
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "vmiv emulates the View-Master Interactive Video system by decoding a captured tape video with FFmpeg, extracting the UART-style data bytes and auxiliary audio carried in the scanlines, and feeding them to an 8051 core that runs the VMI8802 ROM alongside a TMS9128 video chip model rendered with SDL2. Its notes document the mainboard chips, VDP register setup and VRAM map, the RLE sprite and tile records, and the packet layout with sequence numbers and CRC-CCITT checks. A companion dstool disassembles and reassembles the stack-based script bytecode delivered on the tape.",
  "description_zh": "vmiv 用 FFmpeg 解码录像带采集视频，从扫描线中提取按 UART 方式编码的数据字节和辅助音频，交给运行 VMI8802 ROM 的 8051 内核处理，同时模拟 TMS9128 显示芯片并用 SDL2 渲染，以此模拟 View-Master Interactive Video 系统。笔记记录了主板芯片、VDP 寄存器初始化和显存布局、RLE 编码的精灵与图块数据，以及带序号和 CRC-CCITT 校验的数据包结构。配套的 dstool 可反汇编并重新汇编录像带中传送的栈式脚本字节码。",
  "entry_url": "https://awesomerea.org/resources/vmiv-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/vmiv-case/",
  "evidence_url": "https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/notes.txt",
  "group": "cases",
  "id": "vmiv-case",
  "json_url": "https://awesomerea.org/resources/vmiv-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/vmiv-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/vmiv-case/index.md",
  "name": "vmiv: View-Master Interactive Video emulator and format notes",
  "name_zh": "vmiv：View-Master Interactive Video 模拟器与格式笔记",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "Building needs a C compiler, SDL2 and the FFmpeg libraries (libavcodec, libavformat, libswscale, libavutil, libavdevice).",
    "Running needs the VMI8802 8051 ROM image (vmi8802.bin by default) and a video capture of a View-Master Interactive Video tape.",
    "The Makefile links imgdecode.o, whose source file is absent from the repository.",
    "No licence file in the repository; the 8051 core comes from jarikomppa/emu8051."
  ],
  "requirements_zh": [
    "构建需要 C 编译器、SDL2 和 FFmpeg 库（libavcodec、libavformat、libswscale、libavutil、libavdevice）。",
    "运行需要 VMI8802 的 8051 ROM 镜像（默认文件名 vmi8802.bin）以及 View-Master Interactive Video 录像带的视频采集文件。",
    "Makefile 需要链接 imgdecode.o，但仓库中缺少其源文件。",
    "仓库中没有许可证文件；8051 内核取自 jarikomppa/emu8051。"
  ],
  "targets": [
    "firmware",
    "protocol"
  ],
  "url": "https://codeberg.org/Sprite_tm/vmiv",
  "verification": "source-reviewed",
  "verified_at": "2026-11-09"
}
