Skip to content
This repository has been archived by the owner on May 19, 2023. It is now read-only.

simsor/kindle-doom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kindle-doom -- a port of PrBoom for the Kindle 4

Description

This repository contains the source code for a port of the PrBoom project to the Kindle 4. It is not intended as anything more than a proof-of-concept: the Kindle's e-ink display is absolutely not adapted to gaming.

Installing & playing

Prerequisites: copy your doom.wad and prboom.wad to the root of your Kindle USB partition. prboom.wad can be found here.

  1. Download the latest release
  2. Make sure you installed KUAL on your Kindle.
  3. Extract the release to the root of your Kindle USB partition
  4. Run KUAL and run "Simon's Fun Land -> PrBoom"

The controls are as follows:

  • Keypad to move
  • "OK" button to shoot
  • "Menu" to open doors / activate switches
  • "Back" to toggle the menu (mapped to Escape)
  • "Keyboard" to select an entry in the menu (mapped to Enter)
  • "Home" button to quit

Compilation

If you want to build the project for yourself, you will need an armv7 GCC toolchain. I successfully used Bootlin's armv7-eabihf "musl" toolchain. Compiling with the glibc toolchain also works, but the libc on the Kindle is too old and it will refuse to start.

Export CC to the location of the GCC cross-compiler and run make.

$ export CC=/home/simon/armv7-eabihf--musl--stable-2020.08-1/bin/arm-linux-gcc
$ make -j8

Changes

Based on prboom-2.5.0.

The main change is the addition of src/KINDLE/, which defines most Kindle-specific functions. I basically copied src/SDL/ and modified everything to remove dependencies on SDL and instead work directly on the Kindle's framebuffer.

Resolution is hardcoded to 800x600 widescreen and cannot be changed.

I removed all the autoconf stuff and wrote a Makefile by hand.

Known bugs

  • Demo playback doesn't seem to work correctly. I think this is due to tick calculation, but I'm not sure.
  • Because of this, it is not really possible to load the game directly, you have to "warp" to the beginning of the first level.

Limitations

  • The code is horrible, I only tried to hack together something that works.
  • There's no sound support, because my Kindle doesn't have speakers / aux output.
  • The game is basically unplayable because of the e-ink refresh mode, but it's still a nifty demo nevertheless.