Skip to content

prochazkaml/game-and-watch-bootloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOTE: THIS PROJECT IS IN VERY EARLY DEVELOPMENT STAGES.

game-and-watch-bootloader

A free and open source homebrew launcher for the Game & Watch.

GWLoader Main Menu

(note: this picture does not represent the current state of the project)

This program replaces the original firmware and loads homebrew from a FAT16 filesystem located on the external flash into RAM. Use the gwlink program to mount the Game & Watch's filesystem on your local Linux computer using FUSE (TBD).

Credits

This project contains different bits and pieces from the following projects:

Instructions for building the project

First-time setup

sudo cc tools/gwbin.c -o /usr/bin/gwbin

This command compiles and installs a small program which can easily extract binary parts from an .elf file. There is probably a way to do this using objcopy, but I couldn't figure it out, so I wrote this tiny program instead.

Compiling

make -j8

This command compiles all files and generates gw_boot.bin, which you can then flash onto your Game & Watch.

It is highly recommended to use the latest version of the GNU ARM Embedded Toolchain (≥ v10.2.1), since it produces smaller binaries than the one in the Debian/Ubuntu repos (v8.3.1).

Homebrew format

Each homebrew needs to be in its separate folder in the root directory of the external flash. Inside, there are 1-3 files:

MAIN.BIN (required)

The homebrew program itself, which will be loaded into the Game & Watch RAM (up to 1 MB).

MANIFEST.TXT (not strictly required, but highly recommended)

A simple text file describing different properties of the homebrew.

Example manifest file:

Name=Tapper
Author=Ben Heckendorn
Version=1.0

If you want to be really ugly, you can omit this file. It will say "Corrupted homebrew" in the main menu, but it will still boot. It is highly recommended to include it though.

ICON.BMP (optional)

A 64x48 16bpp icon, which will appear in the main menu. If it is not present, then a generic icon will be displayed instead.

Features / TODO list

  • Functional UI
  • Filesystem library for reading
  • Launching homebrew
  • External flash formatting
  • Filesystem library for writing
  • PC link
  • Adjustable backlight
  • Battery indicator
  • Clock with time configuration
  • Efficient battery usage

About

A homebrew launcher for the Game & Watch

Resources

License

Stars

Watchers

Forks

Languages