README additions

This commit is contained in:
PoliEcho 2025-08-19 20:11:57 +02:00
parent 09ff9f8f19
commit 37f63d51b9

View File

@ -1,14 +1,20 @@
# UEFI Fireworks # UEFI Fireworks
### Retro fireworks you can run on your modern UEFI system
Simple automatic fireworks app that runs on your UEFI firmware with basic controls.
Primary purpose of this app is just to look at something nice.
> [!CAUTION]
> This app may cause epileptic seizures in people with epilepsy.
> $\color{red}{\text{!!!If you have a history of seizures, do not use this program!!!}}$
## How to build ## How to build
> [!IMPORTANT] > [!IMPORTANT]
> **you will need these programs to compile!** > You will need these programs to compile:
> git > - git
> gcc > - gcc
> xxd > - xxd
> ImageMagick (if you changed the firework image) > - ImageMagick (if you changed the firework image)
```bash ```bash
git submodule update --init --recursive git submodule update --init --recursive
@ -16,26 +22,27 @@ cd edk2
source edksetup.sh source edksetup.sh
make -C BaseTools make -C BaseTools
cd .. cd ..
./build.sh # to build for diferent arch than X64 change TARGET_ARCH in build.sh ./build.sh # to build for a different arch than X64 change TARGET_ARCH in build.sh
``` ```
> [!WARNING] > [!WARNING]
> **compilation for AARCH64** > Compilation for AARCH64 does not work for some unknown reason.
> does not work > I haven't tried other arches than AMD64, IA32, and AARCH64.
> for some unknown reason
> i haven't tryed other arches than AMD64, IA32 and AARCH64
## How to use ## How to use
### Download release ### Download release
#### On Real hardware #### On real hardware
if your have amd64(x86_64) UEFI computer If you have an amd64 (x86_64) UEFI computer,
Download release and copy the UEFI_fireworks.efi to <USB_DRIVE>/EFI/BOOT/bootx64.efi case independent download the release and copy UEFI_fireworks.efi to /EFI/BOOT/bootx64.efi (case-insensitive).
#### On VM #### On VM
run: You will need OVMF firmware; you can get it here: https://qemu.weilnetz.de/test/ovmf/usr/share/OVMF/OVMF_CODE_4M.fd
you will need OVMF firmware you can get it [here](https://qemu.weilnetz.de/test/ovmf/usr/share/OVMF/OVMF_CODE_4M.fd)
Run:
```bash ```bash
qemu-system-x86_64 -machine type=q35,accel=kvm -drive if=pflash,format=raw,readonly=on,file="$OVMF_CODE_PATH" -hda fat:rw:build -boot order=c -smp 4 -s -serial mon:stdio qemu-system-x86_64 -machine type=q35,accel=kvm -drive if=pflash,format=raw,readonly=on,file="$OVMF_CODE_PATH" -hda fat:rw:build -boot order=c -smp 4 -s -serial mon:stdio
``` ```
@ -44,33 +51,41 @@ qemu-system-x86_64 -machine type=q35,accel=kvm -drive if=pflash,format=raw,reado
#### On VM #### On VM
you will need OVMF firmware you can get it [here](https://qemu.weilnetz.de/test/ovmf/usr/share/OVMF/OVMF_CODE_4M.fd) You will need OVMF firmware; you can get it here: https://qemu.weilnetz.de/test/ovmf/usr/share/OVMF/OVMF_CODE_4M.fd
run ```./test.sh $OVMF_CODE_PATH# only works on AMD64``` to run in VM using QEMU
#### On Real hardware Run:
```bash
./test.sh $OVMF_CODE_PATH # only works on AMD64
```
to run in a VM using QEMU.
copy ```edk2/Build/UEFI_fireworks/DEBUG_GCC5/<YOUR ARCH>/UEFI_fireworks.efi``` to FAT32 or FAT16 USB at location: #### On real hardware
Copy:
```
edk2/Build/UEFI_fireworks/DEBUG_GCC5//UEFI_fireworks.efi
```
to a FAT32 or FAT16 USB at the following location:
| Architecture | Default Boot Path | | Architecture | Default Boot Path |
| ------------------- | ------------------------ | | --------------- | ------------------------ |
| **x86_64 (AMD64)** | `/EFI/BOOT/BOOTX64.EFI` | | x86_64 (AMD64) | `/EFI/BOOT/BOOTX64.EFI` |
| **x86 (IA32)** | `/EFI/BOOT/BOOTIA32.EFI` | | x86 (IA32) | `/EFI/BOOT/BOOTIA32.EFI` |
| **ARM64 (AARCH64)** | `/EFI/BOOT/BOOTAA64.EFI` | | ARM64 (AARCH64) | `/EFI/BOOT/BOOTAA64.EFI` |
| **ARM (32-bit)** | `/EFI/BOOT/BOOTARM.EFI` | | ARM (32-bit) | `/EFI/BOOT/BOOTARM.EFI` |
## Controling ## Controlling
| Key | Action | Note | | Key | Action | Note |
| ---------- | ------------ | ----------------------------------- | | ---------- | ------------ | ---------------------------------- |
| ARROW_UP | speed up | delays under 1ms may be unrelayable | | ARROW_UP | speed up | delays under 1ms may be unreliable |
| ARROW_DOWN | slow down | max delay is about UINT32_MAXμs | | ARROW_DOWN | slow down | max delay is about UINT32_MAX μs |
| PAGE_UP | speed up | 10x step | | PAGE_UP | speed up | 10× step |
| PAGE_DOWN | speed down | 10x step | | PAGE_DOWN | slow down | 10× step |
| Home key | reset speed | reset frame delay to 10ms | | Home | reset speed | reset frame delay to 10ms |
| Delete key | clear screen | | | Delete | clear screen | |
## Showcase ## Showcase
in QEMU/KVM In QEMU/KVM
https://github.com/user-attachments/assets/275e28aa-eb2e-4348-ac08-95f909c46a1f https://github.com/user-attachments/assets/275e28aa-eb2e-4348-ac08-95f909c46a1f