Short: Alpha Amiga port of Descent (Read the README!) Author: Various (Original by Parallax Software) Uploader: tfrieden@uni-trier.de Type: game/shoot *** ATTENTION: Please read this first *** COPYRIGHT AND DISCLAIMER The original copyright notice by Parallax states: ------------------------------------------------------------------------- THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. We make no warranties as to the usability or correctness of this code. ------------------------------------------------------------------------- Based on the linux work by Patrick McCarthy (lowen@home.com) INTRODUCTION This is version 0.1 of our Descent for Amiga port. It is as far as we know the first Amiga port of the game. It is based mainly on the linux-0.0.1 source distribution by Patrick McCarthy, as well as parts of the Mac and DOS version (whichever did the job). It is still lacking some features (see below). REQUIREMENTS This port requires ixemul.library 47 (it will probably work with earlier versions, but this is untested). It will furthermore require CyberGraphX/Picasso96 (the latter untested) and a graphics board (no AGA, no ECS). Last not least it will most likely require a 1.5 descent hog and pig file of the full version. It might work with the shareware version, but this is untested. It might work with a descent 2 hog file, but this is (you guessed it) untested. MISSING FEATURES Most notably, speed. The ADESCENT binary was compiled with 020-040 code generation and O3 optimization using gcc-2.7.2 from the Geek Gadgets distribution. It will run on a 060 (it was actually ported on a 060). The catch is, all x86 assembly has been removed and replaced with appropriate C routines. Most notably, the texture mapper and BitBlt routines are still crappy (some use bad access methods, some are simply slow), and the texture mapper does not do any perspective correction. We hope that this will be changed soon. Another important thing is to write drivers for at least AGA machines. Unfortunately, Descent writes chunky pixels, so there is some work involved with this. Mouse and Joystick are another issue, too. Also missing is sound and network support. Both will obviously get in, at a later date. Since we distribute the source code with it, there should not be any problem with that (see below). You can see, there is a lot missing, but we wanted to get out something that runs, and getting it to run was a hard task. ABOUT THE SOURCE We decided to distribute the source code in its complete form rather than as patches since there have been severe changes done to it. The linux distribution has changed considerably since its 0.1 release, and we have evolved otherwise. The biggest part of the work was getting endianess right. As you might know, PC store int's in low-high order, while the Amiga does it in high-low order. The code was quite full of such pitfalls, and that's where the main part of the work was. To re-compile, you'll need a geek gadget or other GNU cc installation. CD into the directory where you unarchived it and type 'make' (it's as simple as this). With quite a bit of patience, you'll end up with the ADescent binary. Typing 'make clean' will completely wipe the object files. Since the dependancies of the source and include files aren't complete, you will have to do so if you change something in one of the .h files... IMPORTANT NOTE: The release of Doom has led to more than half a dozend of different versions. We would really like to avoid a situation like that. In order to do so, we request that you do not re-distribute verbatim ports of this code, but instead send us your modifications so that we can apply them to the source. This way, we'll have /one/ version of Amiga Descent with all the features instead of 100 versions with a few features. A PowerPC version is likely to follow when we can convince Steffen Haeuser to do one 8-). If you are an avid assembly programmer and know a bit about texture mapping and stuff, please contact us. We definately need better texture mapping code... ABOUT THE DIRECTORIES: The source code is contained in various subdirectories. Most notably, the biggest part of the thing is in the main/ dir. The bitmap stuff is in 2d/, while texture mapping and 3d stuff is in texmap/ and 3d/. bios/ contains most of the system-specific things, like graphics drivers and such. fix/ contains fix-point arithmetics. iff/ contains IFF ILBM reader code (yes, they use ILBM's and PCX). mem/ finally contains the memory functions. We've moved include files to includes/ for clarity. Object code is stored in objects/ until it is either compiled into a library in lib/ or into the main executable. cfile/, btw, contains the file reader code. CREDITS This port was done by Thomas and Hans-Joerg Frieden. If you want to contact us, write to either tfrieden@uni-trier.de (Thomas) or hfrieden@uni-trier.de (Hans-Joerg) The linux stuff, with which we started, was done by Patrick McCarthy (lowen@home.com). He was the guy that took out all the assmbler stuff The original game is (C)opyright Parallax Software. I'd like to take the oppotunity and thank them for the release of the source code. I sincerly hope that this will become common practice, and that more companies will publish the source of their older games (LucasArts, if you read that, how 'bout X-Wing???)