aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md53
1 files changed, 53 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..feb9548
--- /dev/null
+++ b/README.md
@@ -0,0 +1,53 @@
1# kindle-doom -- a port of PrBoom for the Kindle 4
2
3## Description
4
5This repository contains the source code for a port of the [PrBoom](http://prboom.sourceforge.net/) 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.
6
7## Installing & playing
8
9Prerequisites: copy your `doom.wad` and `prboom.wad` to the root of your Kindle USB partition. `prboom.wad` can be found [here](data/prboom.wad).
10
111. Download the latest release
122. Make sure you installed [KUAL](https://www.mobileread.com/forums/showthread.php?t=203326) on your Kindle.
133. Extract the release to the root of your Kindle USB partition
144. Run KUAL and run "Simon's Fun Land -> PrBoom"
15
16The controls are as follows:
17- Keypad to move
18- "OK" button to shoot
19- "Home" button to quit
20
21There's no "Use" key, because I haven't totally figured out how the other buttons work yet.
22
23## Compilation
24
25If you want to build the project for yourself, you will need an `armv7` GCC toolchain. I successfully used Bootlin's [`armv7-eabihf`](https://toolchains.bootlin.com/releases_armv7-eabihf.html) "musl" toolchain. Compiling with the glibc toolchain also works, but the `libc` on the Kindle is too old and it will refuse to start.
26
27Export `CC` to the location of the GCC cross-compiler and run `make`.
28
29```shell
30$ export CC=/home/simon/armv7-eabihf--musl--stable-2020.08-1/bin/arm-linux-gcc
31$ make -j8
32```
33
34## Changes
35
36Based on [`prboom-2.5.0`](https://sourceforge.net/projects/prboom/files/prboom%20stable/2.5.0/).
37
38The 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.
39
40Resolution is hardcoded to 600x800 and cannot be changed.
41
42I removed all the autoconf stuff and wrote a Makefile by hand.
43
44## Known bugs
45
46- Demo playback doesn't seem to work correctly. I think this is due to tick calculation, but I'm not sure.
47- Because of this, it is not really possible to load the game directly, you have to "warp" to the beginning of the first level.
48
49## Limitations
50
51- The code is horrible, I only tried to hack together something that works.
52- There's no sound support, because my Kindle doesn't have speakers / aux output.
53- The game is basically unplayable because of the e-ink refresh mode, but it's still a nifty demo nevertheless. \ No newline at end of file