1
0
Mark 8893395878
All checks were successful
CI / Typos (push) Successful in 8s
CI / Build (push) Successful in 43s
CI / Clippy (push) Successful in 1m0s
Small bug
2025-03-05 21:33:17 -08:00
2025-03-04 19:41:22 -08:00
2025-03-04 19:41:22 -08:00
2025-03-05 21:33:17 -08:00
2025-03-04 19:41:16 -08:00
2025-03-04 19:41:16 -08:00
2025-02-17 10:45:02 -08:00
2025-02-17 10:43:05 -08:00
2025-03-04 19:41:22 -08:00
2025-03-04 19:41:22 -08:00
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:

Description
Bare-metal Tetris
Readme 489 KiB
Languages
Rust 78.2%
Assembly 17.4%
Makefile 2.7%
Python 1.7%