Skip to content
/ tx8 Public

A fantasy console running custom bytecode from virtual cartridges, compiled from TX8 Assembly, featuring sound, music and graphics capabilities.

License

Notifications You must be signed in to change notification settings

vypxl/tx8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3bb1a1d · May 14, 2023
Feb 2, 2023
May 10, 2023
May 14, 2023
May 14, 2023
May 14, 2023
Jun 25, 2022
Jan 22, 2023
Jan 22, 2023
Mar 9, 2023
Mar 13, 2023
Jan 29, 2023
Jul 9, 2020
Jun 26, 2020
Mar 13, 2023

Repository files navigation

Build Status Coverage Status License

TX8

WIP The assembler as well as the bytecode interpreter should work as of now. I will create unit tests for both and add a few stdlib functions next. The api and binary format is not yet finalized, expect changes all over the place. As I am writing the tests, I will be modifying / augmenting the spec to correctly handle all features.

About

TX8 is a fantasy console running custom bytecode from virtual cartridges, featuring sound, music and graphics capabilities. More information in the specification.

In this repository

TX8 Core

The tx8-core C library source code. tx8-core includes header files which contain types and constants used throughout the TX8 ecosystem and an implementation of a bytecode interpreter. You can also find the TX8 specification in this repository under spec/.

TX8 Assembler

The assembler that can translate tx8-Assembly into bytecode files.

TX8 CLI

The command line tool exposing tx8 to the user. After building (see below), the executable can be found in build/debug/tx8-cli. Run it to see how to use it. The cli can run tx8 assembly files and rom files, and compile tx8 assembly files into rom files.

Example:

tx8-cli build test/hello-world.tx8
tx8-cli run out.txr

Development

To start developing on TX8, you need cmake >= 3.25, ninja and clang >= 15 or gcc >= 12.

MacOS: Apple Clang is not supported as it is missing modern c++ features this project uses.
Windows: MSVC and mingw are not supported because I can't get them to work. Please use clang, it comes with visual studio. In theory MSVC and mingw should work. If you want to use these tools, and figure out a way how to do so, please tell me :)

Set up the development environment via CC=<C compiler> CXX=<C++ compiler> cmake --preset debug.
You can then build the test executable via cmake --build --preset debug
and execute it via ctest --preset debug or directly via build/debug/tx8-test.

If you are using clangd, you should link compile_commands.json
via ln -s build/debug/compile_commands.json compile_commands.json for clangd to work correctly.

To build the documentation, run doxygen in the project root directory.

TX8 uses Google Test for unit testing.

About

A fantasy console running custom bytecode from virtual cartridges, compiled from TX8 Assembly, featuring sound, music and graphics capabilities.

Resources

License

Stars

Watchers

Forks

Releases

No releases published