Family Basic Tape Tool
Welcome to the README page for the Family Basic Tape Tool (FBTT)!
Psst...Skip the Boring Stuff
You probably just want to use the tool, so here is the link to it.
What is Family Basic Tape Tool?
FBTT started out as a simple tool. I learned in the Gaming Alexandria discord that Family Basic uses the same tape format as various Sharp MZ microcomputers. These commonly get digitized as MZF or MZT files. I liked the idea of this format, since what it ends up storing is the bytes that Family Basic is writing to tape (basically a RAM dump), and this, to me, is the most common-sense way to do things. So FBTT started out as a tool that took in Family Basic tape dumps and spit out MZF and MZT files.
Things just sort of expanded from there. Why just do MZF/MZT? Why not support going to/from other formats? Why stop with Family Basic, why not other Famicom software that wrote data to tape? And so I just keep adding stuff that I think is useful. If it is related to a game or software for the Famicom that could read/write to tape, I'm considering it fair game to be brought into the tool.
What Does It Do?
The short version is that it can load up Famicom tape data in a variety of sources, display some information about what the data represents, and let you export that data back out to another format.
Tape Formats
- MZF / MZT - As previously mentioned, this is a format that represents the data that Family BASIC encodes onto tape. MZF represents a single "file", while MZT is just a series of MZF files written end-to-end (like a cassette "tape").
MZF Without Family BASIC
The games for Famicom that write to tape (so, everything other than Family BASIC) do not use the MZF format. When exporting game data to MZF/MZT, the tool will generate a valid MZF file that contains the same data that was written out by the game, but it will contain addtional data (header, checksums) to ensure it's in the proper MZF format. If converted to WAV, these MZF files will still work when loaded onto a Famicom.
-
WAV - Works with mono audio data in WAV format. If there is more than one item on the tape (like if you recorded a cassette that came with a book of programs on it) then it will attempt to read each file off of it. This is by far the most finicky input format, as the quality of recordings varies wildly due to the quality of the cassette / deck. It tries, though!
-
VTP - VirtuaNES tape format.
-
FBT - Mesen tape format.
Supported Software / Games
-
Family BASIC - Supports program listings and background data from Family BASIC V2 and V3 (and variants). For program listings, the tool can show you the BASIC code. For everything else, just the binary data in a hex-editor style viewer.
-
Lode Runner - Supports levels created using the in-game stage editor.
-
Excitebike - Supports levels created using the in-game track editor.
-
Raw MZT/MZF - Supports any data in MZT/MZF format. I use this to load MZF files that I've hacked up so that I can convert them to emulator formats. Mostly a development tool for me, but maybe it's useful to other people, too.
Roadmap
Here are some other things I'd like to add to the tool as time permits. I am open to suggestions, though.
-
More Emulator Support - I'd like to support the tape formats used by all emulators that support capturing tape data for Famicom software. I don't think it's a long list, but there are more to go.
-
All Game Support - There isn't much left to do -- I believe just Arkanoid II and Castle Excellent.
-
Better Visualizers - Do something like show the Family BASIC background rather than just hex; or show the Lode Runner stage instead of just hex. Things like that.
-
Command Line Tools - Would be useful to have some CLI tools for reading/dumping/converting things, so that they can be done in batch.
License
FBTT is licensed under the MIT License. Your are free to use, modify, and distribute it with attribution.