diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 53 |
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 | |||
5 | This 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 | |||
9 | Prerequisites: 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 | |||
11 | 1. Download the latest release | ||
12 | 2. Make sure you installed [KUAL](https://www.mobileread.com/forums/showthread.php?t=203326) on your Kindle. | ||
13 | 3. Extract the release to the root of your Kindle USB partition | ||
14 | 4. Run KUAL and run "Simon's Fun Land -> PrBoom" | ||
15 | |||
16 | The controls are as follows: | ||
17 | - Keypad to move | ||
18 | - "OK" button to shoot | ||
19 | - "Home" button to quit | ||
20 | |||
21 | There's no "Use" key, because I haven't totally figured out how the other buttons work yet. | ||
22 | |||
23 | ## Compilation | ||
24 | |||
25 | If 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 | |||
27 | Export `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 | |||
36 | Based on [`prboom-2.5.0`](https://sourceforge.net/projects/prboom/files/prboom%20stable/2.5.0/). | ||
37 | |||
38 | 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. | ||
39 | |||
40 | Resolution is hardcoded to 600x800 and cannot be changed. | ||
41 | |||
42 | I 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 | ||