All Projects → fabianishere → boot2flappy

fabianishere / boot2flappy

Licence: MIT license
Flappy Bird as bootable UEFI executable

Programming Languages

assembly
5116 projects
CMake
9771 projects

Projects that are alternatives of or similar to boot2flappy

asm
🏃 An x86-64 assembler written in Go.
Stars: ✭ 76 (+58.33%)
Mutual labels:  x86-64, asm
MetalOS
Homebrew x64 OS written in C++ that runs Doom!
Stars: ✭ 33 (-31.25%)
Mutual labels:  x86-64, uefi
xorpd-solutions
[SPOILER ALERT] My attempt at tackling the x86_64 asm riddles in xorpd's xchg rax,rax book. Pull requests welcome.
Stars: ✭ 57 (+18.75%)
Mutual labels:  x86-64, asm
AsciiBird
ASCII version of the addictive Flappy Bird game.
Stars: ✭ 34 (-29.17%)
Mutual labels:  flappy-bird, flappy
AiliceOS
AiliceOS: Build an x86_64 and UEFI OS using Rust
Stars: ✭ 59 (+22.92%)
Mutual labels:  x86-64, uefi
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (-2.08%)
Mutual labels:  x86-64, uefi
The holy book of x86
A simple guide to x86 architecture, assembly, memory management, paging, segmentation, SMM, BIOS....
Stars: ✭ 577 (+1102.08%)
Mutual labels:  x86-64, asm
ArvernOS
💾 A minimal, experimental and "toy" monolithic kernel to learn about OS development // Work In Progress
Stars: ✭ 313 (+552.08%)
Mutual labels:  x86-64, asm
Willos
💾 A minimal kernel (just a hobby, won't be big and professional). // Work In Progress
Stars: ✭ 163 (+239.58%)
Mutual labels:  x86-64, asm
Ass Js
Assembler.js — X86_64 and Ethereum
Stars: ✭ 115 (+139.58%)
Mutual labels:  x86-64, asm
kasm
Assembler library for Kotlin
Stars: ✭ 40 (-16.67%)
Mutual labels:  x86-64, asm
Asm Cli
Interactive shell of assembly language(X86/X64) based on unicorn and keystone
Stars: ✭ 211 (+339.58%)
Mutual labels:  x86-64, asm
FoxOS
The FoxOS main repository
Stars: ✭ 48 (+0%)
Mutual labels:  x86-64, uefi
Rappel
A linux-based assembly REPL for x86, amd64, armv7, and armv8
Stars: ✭ 818 (+1604.17%)
Mutual labels:  x86-64, asm
Cyjon
A simple, clean code, multi-tasking operating system written in pure assembly language for 64-bit processors from the AMD64 family.
Stars: ✭ 184 (+283.33%)
Mutual labels:  x86-64, asm
jsix
A hobby operating system for x86_64, boots with UEFI.
Stars: ✭ 60 (+25%)
Mutual labels:  x86-64, uefi
daintree
ARMv8-A/RISC-V kernel (with UEFI bootloader)
Stars: ✭ 32 (-33.33%)
Mutual labels:  uefi
sicherboot
Unmaintained systemd-boot integration with secure boot support; consider https://github.com/Foxboron/sbctl instead.
Stars: ✭ 31 (-35.42%)
Mutual labels:  uefi
SDA
SDA is a rich cross-platform tool for reverse engineering that focused firstly on analysis of computer games. I'm trying to create a mix of the Ghidra, Cheat Engine and x64dbg. My tool will combine static and dynamic analysis of programs. Now SDA is being developed.
Stars: ✭ 98 (+104.17%)
Mutual labels:  x86-64
fastquery
FastQuery(Method of fast database query) 基于Java语言. 他的使命是:简化Java操作数据层.做为一个开发者,仅仅只需要设计编写DAO接口即可,在项目初始化阶段采用ASM生成好实现类. 因此,开发代码不得不简洁而优雅.从而,大幅度提升开发效率.
Stars: ✭ 63 (+31.25%)
Mutual labels:  asm

boot2flappy Build Status

Flappy Bird for UEFI written in x86 Assembly.

Screenshot

Getting the source

Download the source code by running the following code in your command prompt:

$ git clone https://github.com/fabianishere/boot2flappy.git --recursive

or simply grab a copy of the source code as a Zip file.

Building

We provide two ways for building the project: manually on your local system or in a container using Docker. If installing the required dependencies is not trivial or unwanted, we suggest building the project with Docker.

Make sure you have also downloaded the deps/gnu-efi submodule, which may be done via:

$ git submodule update --init

Manual

Create the build directory.

$ mkdir build
$ cd build

boot2flappy requires CMake and a specific C cross-compiler (namely mingw-w64-x86-64) in order to build. On Ubuntu, please install the following packages:

  • binutils-mingw-w64
  • gcc-mingw-w64-x86-64

Then, simply create the Makefiles:

$ cmake ..

and finally, build it using the building system you chose (e.g. Make):

$ make

Docker

Build the project with the provided fabianishere/boot2flappy container as follows. Make sure you run the command in the project root directory.

$ docker run --rm -it -v `pwd`:/root/boot2flappy fabianishere/boot2flappy

This will build the project in the build/ directory. Since Docker runs as root user, you need to fix the permissions of the build directory in order to run the game:

$ sudo chown -R $USER:$USER build/

Playing

QEMU

After building the project, in the build directory, run the following code in your command prompt:

$ vm/start.sh

This will start a QEMU virtual machine in which you can play the game. Make sure QEMU is installed.

Why

One of the assignments for the Computer Organisation course of 2016 at Delft University of Technology was to create a bootable game in x86 assembly. Why not create a simple EFI game with nice graphics?

License

The code is released under the MIT license. See the LICENSE file.

All sprite files in the resources directory: all copyrights belong to their respective owners. The files are used for education purpose only.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].