diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 70 |
1 files changed, 58 insertions, 12 deletions
@@ -1,12 +1,58 @@ -The **TASD (Tool Assisted Speedrun Dump)**, is a dump file format for replaying TASes on real hardware. It is structured to be independent on any given console, replay-device, or emulator. It can contain any amount of data, including attributions, emulation context, inputs, transitions, replay constraints, and much more.
-
-Specification details and examples can be found in [Spec.md](Spec.md). Controller input maps are defined in [inputmaps.txt](inputmaps.txt).
-
-**Latest Version:** 0x0001
-
-## Tools and Scripts
-[TASD-Edit](https://github.com/bigbass1997/TASD-Edit) is a cross-platform, CLI-based editor for TASD files. Can create/edit TASD files, and import or export legacy formats: r08, r16m, and GBI.
-
-ViGreyTech has created a single-file [Lua dump script]() that works across multiple emulators and consoles.
-
-If you'd like to create your own Lua script, Bigbass has created a [Lua API/library]() to aid in generating TASD files.
+# **TASD File Format Specification And Tools** + +Specification and Tools for the Tool Assisted Speedrun Dump (TASD) interchange format + +<ins>**IMPORTANT**</ins> - This specification is in a DRAFT phase. Expect inaccuracies, typos, and considerable changes. Nothing is set in stone. + +### Description: + +The Tool Assisted Speedrun Dump (TASD) interchange format is a file format designed by [Vi Grey](https://github.com/vigrey) and [bigbass](https://github.com/bigbass1997) for storing data to allow "Tool Assisted Speedruns" or "Tool Assited Superplays" to be played on physical video game console hardware using TAS replay devices. Created to be hardware and software agnostic, the TASD interchange format uses a key-based, binary, packet format to break up pieces of information into easily-parsable and forward-compatible chunks. The format is extensible by simply defining additional keys or value types as necessary. When parsing the file, software can skip any packets whose key is unknown or unsupported. + +Keys can be used multiple times or completely omitted as needed. This reusability eliminates the need of a predefined delimiter to separate pieces of data such as a list of TAS authors. + +While files generated by emulator dump scripts should provide as much information as possible, because keys are optional, the file can be expanded later with any additional data as desired. No intermediary file format is necessary. + + +## **READING THE SPECIFICATION DOCUMENTATION** + +The specification documentation can be found at `docs/draft-tasd-0001.html`, `docs/draft-tasd-0001.pdf`, and `docs/draft-tasd-0001.txt` and is presented in a format quite similar to IETF (Internet Engineering Task Force) RFC (Request For Comment) documents. + + +## **BUILDING THE SPECIFICATION DOCUMENTATION** + +### Documentation Build Dependencies +- xml2rfc + + pango (for PDF build support) + + weasyprint (for PDF build support) + +All 3 dependencies can be installed from the Python3 PIP package manager. + +### Build the Documentation +From a terminal, go to the the main directory of this project (the directory this README.md file exists in). You can then build the NES ROM with the following command. + +```sh +make +``` + +After building the documentation, you should find `draft-tasd-0001.html`, `draft-tasd-0001.pdf`, and `draft-tasd-0001.txt` in the `build/docs/` directory. + +The source code for the documentation can be found in `src/docs/draft-tasd-0001.xml`. The xml2rfc vocabulary of the xml file is explained in [RFC 7991](https://www.rfc-editor.org/rfc/rfc7991). + + +## Tools and Scripts + +Included in this repository is a small set of tools, which will hopefully grow to a larger set of tools over time. + +A lua script to dump a FCEUX TAS to a TASD file can be found at `tools/lua/tasd-fceux-dumpscript.lua`. + +A tool to convert a TASD file to an r08 file can be found at `tools/tasd2r08/tasd2r08.py`. + +[TASD-Edit](https://github.com/bigbass1997/TASD-Edit) is a cross-platform, CLI-based editor for TASD files. Can create/edit TASD files, and import or export legacy formats: r08, r16m, and GBI. + +## TODO + +- Add usage explanation for tools +- Add dump script support for more emulators and for more consoles +- Add `CONTRIBUTIONS.md` file with general rules for contributing to this project, especially for updating `CHANGELOG.md` and the end changelog at `src/docs/draft-tasd-0001.xml` +- Develop and add tools that make TASD file editing easier +- Possibly split this TODO into another file
\ No newline at end of file |
