Home
A C# library for reading, writing and converting between various emulator data formats.
Overview
OakIO provides a structured object model for working with emulator file formats. It supports reading and writing files, inspecting their contents, and converting between formats.
Source Code
Source code is available on GitHub at https://github.com/MrKWatkins/OakIO.
Installation
dotnet add package MrKWatkins.OakIO
Online Converter
An online converter using this library is available here.
Documentation
ZX Spectrum Tape Formats
- TAP — Simple tape format containing raw data blocks.
- TZX — The standard for preserving ZX Spectrum tape recordings.
- PZX — An alternative tape format with pulse-level encoding.
ZX Spectrum Snapshot Formats
- Z80 — Snapshot format supporting versions 1, 2, and 3, with optional compression.
- SNA — Simple snapshot format for 48K and 128K machines.
- NEX — Snapshot format for the ZX Spectrum Next.
Architecture
The library is organised around a set of base classes:
- IOFileFormat — Base class for file formats, providing read and write operations.
- IOFile — Base class for a file of a given format.
- Block — Base class for blocks within a file.
- IOFileConverter — Base class for format converters.
- IOFileConversion — Static methods for converting between formats.
Licencing
The project is licensed under GPL v3.0.
The ZX Spectrum file format tests use some files found in the wild:
- A snapshot of Auf Wiedersehen Monty by Gremlin Graphics. According to https://web.archive.org/web/20200228041811/http://www.worldofspectrum.org/permits/publishers.html Gremlin allows distribution of their games for non-profit purposes. The original snapshot was taken from https://archive.org/details/zx_Auf_Wiedersehen_Monty_1987_Gremlin_Graphics_Software; further snapshots in different formats were created from this.
- A TAP of Z80 Tests by Raxoft, https://github.com/raxoft/z80test, which is released under the MIT license.
If I've made a mistake with the above, please let me know.