Descent for Pocket PCs

Incoming!Taking a hit

This page contains some information about a port of Descent that I have made for Pocket PCs. Currently only ARM based devices are supported (in the past I have built versions for the Casio E-115 which runs a MIPS processor).

This port is not finished but it is possible to get into the game and try it out.

Basically, this build should work on any ARM based Pocket PC with a 16-bit graphics display and GAPI 1.2 (i.e. there should be a gx.dll somewhere on it). However, I do not take any responsibility for anything that may happen as a result of using this build.

A big thank you goes to Parallax Software for releasing the source code. It's been fun poking around in the code to a game I spent many hours playing some years ago. The code is not all very pretty :-) but that's what happens when there's no time to do everything right. The fact that it runs very well even on a Pocket PC is a pretty good grade.


You need an ARM based Pocket PC device, of course.

To be able to play you also need to have the data files from the full version of Descent 1.5 for PC. If you have a full version prior to 1.5 you should be able to upgrade to 1.5 by applying the patches available here.

The following files are the ones you need to copy to your device.

	DESCENT.PIG   4 920 305 bytes         (WinZip CRC = 0AB80428)
	DESCENT.HOG   6 856 701 bytes         (WinZip CRC = 3B0B1041)

If you patch to get to 1.5, your files may differ slightly but could still work.


The desCEnt executable for ARM based Pocket PCs is here.


Put desCEnt.exe, DESCENT.PIG and DESCENT.HOG somewhere on your device. The only important thing is that they are in the same directory. Putting them on a storage card, micro drive etc. should work.


To play the game, simply start desCEnt.exe and wait for the main menu to appear. This takes a few seconds. Press the "recorder" button to select "New Game", this takes you to the next menu, choose a difficulty level in the same way.

NOTE: Be careful in the menus! There is currently no way of stepping out from a menu...

When the game has started you control the ship as follows, this applies to iPAQs, I really don't known which button does what on other devices.
"Recorder" button - primary fire
"Calendar" button - secondary fire
"Mail" button - forward thrust
"Arrow" button - backward thrust
"up, down, left, right" - try them and you'll see...

Known Issues

Because of the limited input and menu handling you can only quit the game by reseting your device.

I have only played as far as a bit into the second level. No idea what problems may exist past that point.

Tested Devices

This release has been tested on the following devices.

Compaq iPAQ 3660 (Pocket PC 2002, ROM version 2.14)
Compaq iPAQ 3870 (Pocket PC 2002, ROM versions 2.15 and 2.20)

It should work on other devices, including devices with the Pocket PC 2000 OS but that has not been tested.

Current Status

Development kind of stopped once I had got it running. Although the game runs fast enough to be playable it's really hard to play with as few controls as Pocket PCs have. Initially, I planned to write some things to get around this to a certain degree, for example by placing controls at the lower part of the screen (there is an unused 40x320 area there) but I kind of lost interest since it probably won't help that much anyway.

If there is any interest, I will probably clean the code up a bit and release it so that others can continue this port. This could take a while though since I have a lot of real work do.


Since I'm not actively developing the port any more there is probably no point in asking for fixes etc. but if you have ideas that you think could improve the port, especially in the area of controls then I suggest that you post them to the Descent thread at the Pocket Matrix forums. This way, the ideas can be discussed and if someone picks this port up they might implement some of them.

However, I can be reached here if you want to get in touch with me.

Jan 2001 Porting starts based on the original source release. Most code is from the PC source but some things are taken from the Macintosh version. Converted everything from C to C++ (i.e. renamed all .c files to .cpp and fixed the resulting compile errors), I don't want to type more than I have to. Removed a lot of Watcom C stuff.
Mar 2001 First running version on a Casio E-115. Spent a lot of time investigating how to work around the input lag problem and finally found out how to read the key status directly from the hardware. Found that the game wasn't really suited for Pocket PCs (as I had kind of expected from the start) and lost interest a little bit.
Sep 2001 Saw some things about Descent development on (the best Pocket PC development forum) and ended up posting a E-115 version and later a more generic Casio version.
Nov 2001 Got an iPAQ (3660) and wrote a graphics driver for it. Worked well, but with the one button at a time limitation kind of sucked. It is playable though.
Jul 2002 Fixed some minor things during a rainy weekend and decided to release an ARM version. (No real development has been done since Nov 2001 though).
Jan 2003 The source code can be found here. Be sure to read the included LICENSE.TXT file.