Scuffed UEFI video(bad apple) player

Overview

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.

  1. Install QEMU, KVM and OVMF

  2. Copy /usr/share/OVMF/x64/OVMF_CODE.fd and /usr/share/OVMF/x64/OVMF_VARS.fd to the files directory

  3. Run ./run-qemu.sh

  4. Profit???

TODO

  • Implement t4 color mode in the encoder
  • Implement t4 and g24 color modes in the "bootloader"
  • Document the audio format
You might also like...
The fastest and highest quality audio player for Discord.

ying The fastest and highest quality audio player for Discord. Driven by a custom I/O engine and executed via ultra low overhead light threads, this l

Bad Apple!! music video on WASM-4

w4-bad-apple Bad Apple!! music video on the WASM-4 fantasy console. Building First, you need to create a frames directory containing an image for each

A video player for your terminal that generates a standalone executable that plays your video.

Szmelc Player Szmelc Player is a program that converts any video you give it to a standalone executable that plays the video in the terminal. It uses

This is a lightweight audio-video player built in Rust using FFmpeg libraries. It demonstrates the usage of FFmpeg with Rust to play back video files.

FFmpeg Rust Video Player This is a lightweight audio-video player built in Rust using FFmpeg libraries. It demonstrates the usage of FFmpeg with Rust

Scriptable tool to read and write UEFI variables from EFI shell. View, save, edit and restore hidden UEFI (BIOS) Setup settings faster than with the OEM menu forms.
Scriptable tool to read and write UEFI variables from EFI shell. View, save, edit and restore hidden UEFI (BIOS) Setup settings faster than with the OEM menu forms.

UEFI Variable Tool (UVT) UEFI Variable Tool (UVT) is a command-line application that runs from the UEFI shell. It can be launched in seconds from any

Bad Apple!! for the Uxn stack-machine
Bad Apple!! for the Uxn stack-machine

bad-apple-uxn Bad Apple!! for the Uxn stack-machine by Hundred Rabbits. Quick start cargo run --release -- --input assets/badapple.mp4 --output badapp

Download Apple's open source code from opensource.apple.com

Apple Open Source Downloader This repository defines a Rust crate and CLI program to automate the downloading of Apple's open source code from https:/

CLI for video images. Generates animated video contact sheets fast.

vimg CLI for video images. Generate animated video contact sheets fast. Uses ffmpeg. Note: Support for animated avif isn't everywhere yet, try viewing

Rust-based video player for astrophotography
Rust-based video player for astrophotography

Astro Video Player Rust-based video player for astrophotography videos in SER and AVI format. Supports debayering of RAW color images. Status: Works w

Lumiere is a proof-of-concept/example video player built with the Slint UI framework and libmpv
Lumiere is a proof-of-concept/example video player built with the Slint UI framework and libmpv

Lumiere is a proof-of-concept/example video player built with the Slint UI framework and libmpv. This was built quickly to try out Slint and it's new OpenGL underlay feature.

A simple 2-player game player over a standard 8x8 board.

Boombots A simple 2-player game player over a standard 8x8 board. Projects Game Server (v0.0.1) A parallel and asynchronous game server written in Rus

 The Bloat-Free Browser Game in Rust but in C and in UEFI
The Bloat-Free Browser Game in Rust but in C and in UEFI

rust-browser-game but in UEFI instead of browser quick start deps rust gnu-efi gcc make build process $ make running after building everything you wil

A bad SSH certificate authority

This is a small Rust program to use an asymmetric RSA key from AWS KMS as a single-user SSH certificate authority.

👁 See through bad bots trying to lie about their user agents
👁 See through bad bots trying to lie about their user agents

Odd Eye Detect bad bots trying to disguise themselves as humans. Features HTTP2 connection fingerprints TLS signatures Canvas fingerprints How it work

uefi update 4 amd cpu's
uefi update 4 amd cpu's

Description UEFI is the successor to the BIOS. It provides an early boot environment for OS loaders, hypervisors and other low-level applications. Whi

🍄 A disassembler for the UEFI Bytecode Virtual Machine.
🍄 A disassembler for the UEFI Bytecode Virtual Machine.

🍄 A disassembler for the UEFI Bytecode Virtual Machine.

An UEFI application that unlocks a SED and starts an OS from it. Written in Rust

opal-uefi-greeter This is an UEFI application written in Rust that unlocks a SED and then launches another UEFI application from the unlocked drive -

Fls - Ferris-LS, a very bad LS replacement. Besides that, proves that I suck at clean & good code.

FLS A handy ls remake, purely for learning. Why FLS? There's no reason, at all, don't use it. I just want to learn Rust :D Usage Flags: -i = Use icons

Quick example of displaying a BMP file with uefi-rs

uefi-bmp Quick example of drawing a bitmap using uefi-rs and tinybmp. Not necessarily the most efficient :) Build and run (may need some modification

Owner
Matic Babnik
Student @ Vegova | ❀JS
Matic Babnik
The Bloat-Free Browser Game in Rust but in C and in UEFI

rust-browser-game but in UEFI instead of browser quick start deps rust gnu-efi gcc make build process $ make running after building everything you wil

bit6tream 12 Nov 7, 2022
Quick example of displaying a BMP file with uefi-rs

uefi-bmp Quick example of drawing a bitmap using uefi-rs and tinybmp. Not necessarily the most efficient :) Build and run (may need some modification

Nicholas Bishop 1 Jan 16, 2022
UEFI command-line tool for read/write access of variables

UEFI Command Line Tool for Reading/Writing UEFI Variables This tool is a rewritten version of the modded grub with setup_var commands, enhanced with m

null 29 Jan 9, 2023
Rusty Bootkit - UEFI Bootkit in Rust

A UEFI Bootkit in Rust Note: This project is incomplete and work is in progress (W.I.P). A lot of things could be incorrect until this is complete. Wh

null 76 May 8, 2023
Zero-cost and safe interface to UEFI firmware

ZFI – Zero-cost and safe interface to UEFI firmware ZFI is a Rust crate for writing a UEFI application with the following goals: Provides base APIs th

Ultima Microsystems 22 Sep 14, 2023
virtualization-rs provides the API of the Apple Virtualization.framework in Rust language.

virtualization-rs Rust bindings for Virtualization.framework virtualization-rs provides the API of the Apple Virtualization.framework in Rust language

suzu 44 Dec 31, 2022
a rust library to find near-duplicate video files

Video Duplicate Finder vid_dup_finder finds near-duplicate video files on disk. It detects videos whose frames look similar, and where the videos are

null 12 Oct 28, 2022
A plugin-first anime-ish video game

?? ?? Project Flara ?? ?? A plugin-first anime-ish video game Have you ever played an anime mobile video game, and then wondered. Huh, I wish I could

null 2 Dec 23, 2022
2-player game made with Rust and "ggez" engine, based on "Conway's Game of Life"

fight-for-your-life A 2-player game based on the "Conway's Game of Life", made with Rust and the game engine "ggez". Create shapes on the grid that wi

Petros 3 Oct 25, 2021
Using information theory, this is the optimal wordle player

enwordle Using information theory, this is the optimal wordle player. It is written in Rust and runs on the command-line. Theory When you pick a word

Aaron Hillegass 2 May 6, 2022