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.
-
TAPE - Nintaco tape format.
-
TP - Nestopia tape format.
-
TAP - PuNES tape format.
-
TPR - NesterJ 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 BG data, can show you the rendered background, as well as a "codes" view like you'd see in type-in magazines.
-
Lode Runner - Supports levels created using the in-game stage editor. Can show you an image of the level.
-
Excitebike - Supports levels created using the in-game track editor. Can show you a scrollable image of the track.
-
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.
All types support a read-only hex-editor view, as well.
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. And Mach Rider. And Wrecking Crew.
-
~~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.
Release History
Version 3.1
- Fixed Excitebike rendering so that it properly supports the "big" items (O,P,Q,S)
- Corrected palette used when rending BASIC listings
- Code cleanup and JSDoc
Version 3.1 Source Code Download
Version 3.0
- Significant code restructuring.
- Updated User Interface.
- Added status dialog modal when loading files.
- Added support for Nintaco, Nestopia, PuNES, and NesterJ tape formats.
- Added graphical "Listing" mode for BASIC items.
- Added graphical "BG" mode for BG items.
- Added "Codes" mode for BG items.
- Added graphical "Track" mode for Excitebike items.
- Added graphical "Level" mode for Lode Runner items.
Version 2.1
- Fixed bug with numbers in Family BASIC V3 listings.
- Added support for Excitebike tapes
- Added support for Lode Runner tapes
Version 2.0
- Added Export feature
- Added a loading indicator
Version 1.0
- Initial version.
- Supports loading Family BASIC tape files in WAV, FBT, and VTP formats
- Displays text Listings for BASIC items
- Display Hex dump for BG items
License
FBTT is licensed under the MIT License. Your are free to use, modify, and distribute it with attribution.