No description
  • Rust 77.3%
  • Assembly 17.2%
  • Makefile 2.6%
  • Python 1.7%
  • Linker Script 1.2%
Find a file
2025-03-05 21:33:17 -08:00
.gitea/workflows Do not publish hash 2025-03-04 19:41:22 -08:00
bios Comments 2025-03-04 19:41:22 -08:00
tetros Small bug 2025-03-05 21:33:17 -08:00
tools Added workflow? 2025-03-04 19:41:16 -08:00
.editorconfig Added workflow? 2025-03-04 19:41:16 -08:00
.gdbinit Added stage 1 bootloader 2025-02-17 10:45:02 -08:00
.gitignore Added meta files 2025-02-17 10:43:05 -08:00
Makefile Comments 2025-03-04 19:41:22 -08:00
README.md Comments 2025-03-04 19:41:22 -08:00
rustfmt.toml Added meta files 2025-02-17 10:43:05 -08:00

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, GNU binutils, qemu
    • This will NOT work on MacOS. BSD ld does not work like GNU ld.
  • 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"

📜 Resources

Used directly:

Useful background knowledge: