Bad UEFI
Another day, another Bad Apple project.
Video and audio are loaded from \video.uefiv
and \audio.uefia
respectively. (when running in QEMU esp/
is the root directory)
Note: You need to download and convert the video yourself. An example audio track is included (sample-audio.txt
) but you still need to convert it.
How to use the encoder
The encoder is written in NodeJS and can be found in the encoder
directory. First install the dependencies with npm i
.
To convert a video run:
node encoder encode <input file> <output file> -w <out width> -h <out height>
A sane default mode is g8c
(graphic mode, 8 bit depth, color) For more info on the modes and framerate see the UEFIV readme.
To convert an audio track run:
node encoder audio <input file> <output file> -d <delay> -b <bpm>
Building / running
The UEFI source is written in Rust and can be found in the src
directory.
On real hardware
Run cargo build --release
then copy the .efi file to /efi/boot/bootx64.efi
on a FAT32 partition and boot it.
QEMU
You can also run it inside QEMU.
-
Install QEMU, KVM and OVMF
-
Copy
/usr/share/OVMF/x64/OVMF_CODE.fd
and/usr/share/OVMF/x64/OVMF_VARS.fd
to thefiles
directory -
Run
./run-qemu.sh
-
Profit???
TODO
- Implement
t4
color mode in the encoder - Implement
t4
andg24
color modes in the "bootloader" - Document the audio format