# vmiv: View-Master Interactive Video emulator and format notes

> 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.

- Type: Case study
- Targets: Firmware · Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-09
- Added to the catalog: 2026-11-10
- Original resource: <https://codeberg.org/Sprite_tm/vmiv>
- Primary source: <https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/notes.txt>
- Catalog page: <https://awesomerea.org/resources/vmiv-case/>
- Record JSON: <https://awesomerea.org/resources/vmiv-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/vmiv-case/index.md)

## Requirements & limits

- **Prerequisites:** Building needs a C compiler, SDL2 and the FFmpeg libraries (libavcodec, libavformat, libswscale, libavutil, libavdevice).
- **Prerequisites:** Running needs the VMI8802 8051 ROM image (vmi8802.bin by default) and a video capture of a View-Master Interactive Video tape.
- **Limits:** The Makefile links imgdecode.o, whose source file is absent from the repository.
- **License:** No licence file in the repository; the 8051 core comes from jarikomppa/emu8051.

## Primary sources

1. <https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/notes.txt>
2. <https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/main.c>
3. <https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/emu.c>
4. <https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/datastream.c>
5. <https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/opcodes.c>
6. <https://codeberg.org/Sprite_tm/vmiv/src/commit/f5d698647720cb7a6f727349a6f7104d9f58a673/Makefile>

## More in Firmware and hardware

- [Binwalk](https://awesomerea.org/resources/binwalk/index.md) · Tool
- [unblob](https://awesomerea.org/resources/unblob/index.md) · Tool
- [Ghidra Firmware Utilities](https://awesomerea.org/resources/ghidra-firmware-utils/index.md) · Tool
- [EMBA](https://awesomerea.org/resources/emba/index.md) · Tool
- [Firmware Analysis and Comparison Tool (FACT)](https://awesomerea.org/resources/fact-core/index.md) · Tool
- [OFRAK](https://awesomerea.org/resources/ofrak/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
