Tetris as an EFI application.
Inspired by tetrasm.
- Full glorious 640x480 graphics mode
- Custom proportional font
- Levels with increasing gravity
- Clockwise and counterclockwise rotation
- Next piece preview
The EFI application is available on the releases page. If you drop this into your EFI system partition, you should be able to play on your own computer! Tetrefis requires that a 640x480 video mode with 24-bit blue-green-red color depth be available. If your UEFI firmware does not provide this video mode, then tetrefis will fail to load.
Building from source
The Makefile uses
ld. All dependencies, viz. the gnu-efi library,
is included in this repo.
To build only the EFI application, run
Since the default make target is the runnable disk image, run
make to build
Running in QEMU
To run in an emulator, drop
tetris.efi into the root of this repo (or build it
from source) and run
make to build disk image
Note that this will call
sudo on the provided script
to create and mount a loopback device to prepare a ~60MiB disk image with an EFI
system partition on it. Run
make run in order to load the disk image in QEMU.
In QEMU, the TianoCore OVMF splash screen should appear. At the countdown, hit
FS0: drive should be listed. This means that the firmware
detected the EFI system partition. Switch to it typing
FS0: followed by the
return key. Then, launch the EFI application by typing
tetris.efi followed by
Copyright 2019 Jacob Thomas Errington
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.