
 September, 2020

                            - Iron Dignity -

                             engine demo 3.1

Status


	This demonstration is freeware, it may be copied freely provided that
	all files are included and remain unaltered.


About


	This is the RISC OS 5 / Raspberry Pi port of an engine demo of Iron Dignity,
	a tactical action game that was meant to be released at the end of the 1990s for
	Acorn RiscPC but was discontinued in the year 2000. The original version of
	this demo was released in August 1998.

	Code and content of the demo is mostly unchanged. I did some minor enhancements
	that would have worked just as well on the StrongARM RiscPC, they just got
	dropped back then due to lack of time:

	- The tanks missed a shadow. I added it.

	- I tweaked some of the camera positions.

	- The polygon sorting error when the glider dives into the crater - hot-fixed.
	  Well, that renderer does without a Z-buffer to save some cycles per pixel, which
	  was a very crazy thing to attempt. Sorting polygons right for painting back-to-front
	  is devilishly hard. Back then, in overconfidence, I thought I could do it somehow,
	  but to be honest that approach wouldn't have worked too well in a real game.

	- I added hi-res versions of some of the textures (512x512 vs. 128x128), which I
	  created via smart upscaling. Not as good as hand-pixeled ones, but still better
	  than the blocks you'd get in 720p upward. Use the HIRESTEXTURES option in the
	  config to use the original ones instead.

	- I added a final scene that shows a bit of the engine's time-of-day change.

	The renderer doesn't make use of 3D hardware nor FPU. Just one core of the CPU is
	working here doing integer arithmetics only. Just as in the original demo, every
	pixel is plotted by the ARM. The render code is unchanged since 1998, I just did the
	adaptions to 32-bit mode. The ARM Cortex-A would certainly grant a lot of room for
	further optimisation with its Thumb and NEON commands.


Controls


	'Esc'			skip scene
	'Ctrl' + 'Esc'		quit to desktop


Config File


	Some options for running this application may be altered in the config file contained
	in the application directory. The editable options are listed below.

	XRES:/YRES:
		These select the pixel resolution of the screen mode. The mode
		should be a square-pixel-mode.

	BUFFERTYPE:
		Type of screen buffering to use. Possible values:

			0 - unbuffered
			1 - offscreen buffered
			2 - double buffered
			3 - triple buffered

		Recommended on the Raspberry Pi is '3 - triple buffered' because double
		buffering tends to cause flickering. When a very high pixel resolution is
		selected, the program may be unable to reserve three banks of video memory,
		in which case it falls back to '2 - double buffered'.
		You can try '1 - offscreen buffered' in that case, albeit it lowers performance
		because the CPU needs to copy a video buffer each frame.

	FOV:
		Horizontal field-of-view angle in degrees.

	LOD:
		Landscape level of detail. Possible values 0..4 (minimum,
		low, high, very high, maximum).

	HIRESTEXTURES:
		If set to '1', some of the original textures get replaced by the
		higher resolution ones that were added in 2020. 

	CONTINUOUS:
		If set to '1', this option makes the program loop forever
		until you press 'Ctrl' + 'Esc'.


Contributors
------------

	- Two of the Artex crew (Jan and me)
	- Bernhard C. Ludewig - 3D design
	- Daniel Amend - 3D design
	- Gunter Blache - tools code and WriteAhead render buffer manager
	- Thomas Mohr - music of the final scene
	- another music composer unknown to me


Trivia
------

	We moved our project to the PC soon afterwards. I ported the engine to Windows and the
	software rendering got replaced by DirectX and a graphics card. It was the only way to
	avert the shutdown of the project. Stealth Combat became a decent game which ran well
	even on rather low-end PCs, but well - it was 'just PC'. In technical respect, I'd say
	this '98 demo of the Iron Dignity engine on the StrongARM RiscPC was even more noteworthy.
	It's also a bit sad that the peculiar aura and fantasy style of Iron Dignity got mostly
	lost in Stealth Combat's more earth-like and military design.

	Some of you who know the original Iron Dignity demos may have missed the fact that those
	made use of a second MB of video memory. In the default mode 480x352, with only 1MB of
	VRAM there was no space for the back buffer, so in that case the program fell back to
	Buffertype 1 - offscreen buffered. But then it needed to copy the back buffer into VRAM
	each frame, which cost a lot of performance. Therefore to make the demos (both 97 and
	98 ones) run as designed on the RiscPC you needed 2MB of VRAM. I'm sorry, I think I
	missed to point that out in the original ReadMes.


Thanks to
---------

	- Of course everyone who helped creating and upholding RISC OS and the great Archimedes
	  and RiscPC computers
	- Mike Ginns, for writing the 'Dabhand Guide for Archimedes Assembly Language' that I used
	  for self-teaching
	- David Braben for being such a source of inspiration
	- Andr Timmermans for his TimPlayer
	- Michael Kbel for his motivational support


Contact


	rumbold@gmx.net
