This is a 2022 update of the original Citadel from 1995.
- The 3D rendering engine has been optimised as much as possible within the current game architecture, resulting in a 4-6x + performance increase
- Gameplay has been improved by implementing additional usability features such as WASD+mouse simultaneous control, auto-weapon change etc.
- Level graphics has been significantly updated including textures and enemies
- Level maps have been corrected or re-designed for better playing experience, fast-paths added in huge levels etc.
- Difficulty has been re-balanced
- FPS counter added
- Crosshairs added
- Speed issues fixed on fast machines: 030/040, overclocked CPUs, Vampire, Warp 1260 and other accelerators, full speed WinUAE etc.
- Manual has been re-written with an extended back-story and updated content
- ... and many more. For a more complete list of changes see the WHDLoad/Citadel/ReadMe file.
Minimum configuration: Any Amiga with a minimum of 0.5MB Chip + 1MB other (prefferably Fast) memory. Additional memory is required for WHDLoad to run.
Suggested configuration: Amiga 1200 with 68020/14MHz or faster with minimum 0.5MB Chip and 1MB+ Fast memory. The faster the better although the game is capped to 50fps.
A system with minimum 1MB chip and 4 MB Fast memory is required. Can be a real Amiga or emulator-based.
Note that:
- Since this project is not a standalone game, but an update and drop-in replacement for the main game engine, it requires many other parts of the game and assets to work correctly. Hence, although it would be possible to modify it to run as an executable, it currently doesn't. This means it needs to be assembled and run using the AsmOne assembler on a real Amiga or an emulator. Alternatively it can be assmbled to a Cyt.dat file and run with the rest of the game using WhdLoad - this is how the release version works.
- Unfortunately the game uses several fixed Chip memory locations instead of allocating memory. Allocation for the extention chunk is done in the loader, which is not part of the update, therefore the right memory regions need to be defined in the code as explained below. I have partially worked through removing fixed addresses but there are still some left and I had no incentive to complete this task as the other parts of the game also use fixed addressing, so changing it for the engine alone does not really solve anything.
The game can be assembled using AsmOne (v1.20 or newer). On starting it allocate a minimum of 600kb of Public or Fast memory for your workspace. The main file to start the game is Citadel_1_3_135.ss and the entry point is labeled 's'.
In order to run the game from assembler:
- Navigate to the directory where you cloned this project and where the main files (Citadel_1_3_135.ss etc.) reside - this will be the working directory.
- Load AsmOne (v1.20 or newer).
- Select 'p' and then '600' to allocate working memory.
- Load the main Citadel source code file 'Citadel_1_3_135.ss' into the AsmOne editor (r Citadel_1_3_135.ss)
- Press ESC to go into the actual assembler editor. Towards the top of the file find the BASEF label, it's the line 'BASEF1: equ $00400000'. In many cases this should be fine but if your memory is located at a different address then change this address to where you have a free 1MB of (prefferably Fast) memory. This can be checked using SysInfo or a similar tool, best select 1MB below the top address of the available memory to avoid conflicts with other running software.
- Press ESC again to go to the AsmOne command window.
- Assemble (a), load externs (e).
- Run the game (j s).
This version of the game is meant to work with WHDLoad by patching the original game. WHDLoad 18.5 or higher is recommended. As a starting point, take the files from the WHDLoad/ folder. These include the citadel.slave install file, cyt.dat resource file and all disks. Note that you should use only these disks, not any found elsewhere on the Internet, as they contain the right version of other files and in particular Disk 5 contains all updated graphics.
In order to prepare an updated cyt.dat resource file for WHDLoad:
- Change the IS_EXE flag in the source code from 'IS_EXE: equ 0' to 'IS_EXE: equ 1'.
- Follow steps 1-7 from the previous section
- Type 'wb cyt.dat'.
- When prompted BEG> type 's', and then when prompted END> type 'end'. This will save cyt.dat in the working directory.
- Copy cyt.dat to your folder with the WHDLoad install and other files, replacing the old cyt.dat.
- Run the game: 'whdload citadel.slave'
Copyright (C) 1995, 2022-2026 Pawel Matusz, Artur Bardowski. This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
This package comes with absolutely no warranty of any kind, either express or implied, statutory or otherwise. The entire risk as to use, results and performance of the package is assumed by you and if the package should prove to be defective, you assume the entire cost of all necessary servicing, repair or other remediation. Under no circumstances, can the authors be held responsible for any damage caused in any usual, special, or accidental way, also if the owner or a third party has been pointed at such possibilities of damage.