No description
- Rust 77.3%
- Assembly 17.2%
- Makefile 2.6%
- Python 1.7%
- Linker Script 1.2%
| .gitea/workflows | ||
| bios | ||
| tetros | ||
| tools | ||
| .editorconfig | ||
| .gdbinit | ||
| .gitignore | ||
| Makefile | ||
| README.md | ||
| rustfmt.toml | ||
TetrOS: bare-metal tetris
Features
- Compiles to a standalone disk image
- Written from scratch using only Nasm and Rust
- Custom BIOS bootloader
- 32-bit x86 OS
- Detailed comments. Read the makefile, then start in
./bios/main.asm.
Non-Features
- Never tested on real hardware
- Minimal gameplay and graphics. These features aren't hard to implement, but also don't present any interesting challenges. I have other things to do.
🚀 Building and Running
- All scripts are in the makefile.
- To build and run, use
make qemu.- Dependencies:
nasm,cargo, GNUbinutils,qemu - This will NOT work on MacOS. BSD
lddoes not work like GNUld.
- Dependencies:
- Alternatively, a compiled disk image for the latest commit is here. This is the same file produced by
make.- Download it and run
qemu-system-i386 -d cpu_reset -no-reboot -smp 1 -m 2048 -machine q35 -net none -serial stdio -fda "disk.img"
- Download it and run
📜 Resources
Used directly:
Useful background knowledge: