Ken's Labyrinth for AmigaOS 3.x
===============================
Ken's Labyrinth is a first-person shooter for MS-DOS, written by Ken
Silverman and published by Epic MegaGames in 1993, in the same year as Doom
and a year after Wolfenstein 3D. You find your way through three episodes
of textured mazes full of hideous monsters, keys, locked doors, potions and
secrets, all with a cartoonish sense of humour. Ken wrote it while still at
school, and went on to write the Build engine behind Duke Nukem 3D, Shadow
Warrior and Blood. He later released the full game and its source code for
free, which is what makes this port possible.
This is LAB3D/SDL's Amiga port. It is the same game as the desktop versions,
but it uses no SDL and no OpenGL: the labyrinth is drawn by a software
renderer, and the display, sound and input go straight through
intuition.library, graphics.library, cybergraphics.library, audio.device or
ahi.device, and lowlevel.library.
Requirements
------------
* AmigaOS 3.0 or later (V39+).
* A 68020 or better. A 68EC020 with no FPU works.
* About 3 MB of free RAM.
* asl.library V38 or later, for the screen mode requester.
* Optional: CyberGraphX or Picasso96, for RTG screen modes. Without it the
game runs on a native OCS/ECS/AGA screen instead.
* Optional: a joystick or CD32 pad in port 1.
* Optional: ahi.device V4 or later, for 16 bit sound - see Sound below.
Installation
------------
Unpack the archive anywhere, for example to RAM:, open the Kens-Labyrinth
drawer and double-click Install. The installer asks where to put the game,
makes a Kens-Labyrinth drawer there and copies in the executable that
matches your CPU - it checks which one you have and ticks it for you - with
the game data and music. Pick more than one executable if the drawer is
shared between several Amigas. It needs Installer 42 (on the OS 3.1 disks)
or later, or InstallerNG.
Installing over an older version updates the programs and the game data but
keeps settings.ini, your saved games, your high scores and the positions of
the icons.
The installer is optional: the unpacked Kens-Labyrinth drawer is a complete
installation already, and can simply be dragged to where you want it.
Which executable?
-----------------
Kens-Labyrinth.020 68020/68EC020 with no FPU (software floating point)
Kens-Labyrinth.020fpu 68020/68030 with a 68881 or 68882
Kens-Labyrinth.040 68040 (FPU built-in)
Kens-Labyrinth.060 68060 (FPU built-in)
The renderer and the ray caster work in fixed point, so the FPU builds are no
longer the large step up they once were - what floating point is left runs
once a frame rather than once a pixel. An FPU build will significantly improve
the performance of Adlib music emulation. Pick the build that matches your CPU;
an FPU build will not run at all on a machine that has no FPU.
Keep the gamedata drawer next to whichever executable you use.
Running it
----------
From a Shell:
Kens-Labyrinth.060
or double-click it from Workbench. A screen mode requester appears listing
every mode your system offers - native and RTG. Pick one and the game starts.
Your choice is remembered in settings.ini; add -keepmode to skip the requester
next time, or -askmode to force it back.
The game fills whatever screen mode you pick. It renders at the screen's
resolution divided by a whole number and scales the result back up, so every
pixel stays the same size: on a 1920x1080 screen it might draw 480x270 and
scale it by four, or draw the full 1920x1080 if the machine is fast enough.
On a widescreen mode the view widens to match, as the desktop version does,
rather than leaving bars at the sides. Setup -> Render size lists the sizes
your screen allows:
Automatic about as much detail as the DOS original, so the
renderer's share of the frame costs about what it did.
On a native screen bigger than PAL lores it is the same
as Off, since filling it would multiply the planar
conversion; pick a size by hand to fill it anyway
full / 1/2 ... more detail, at a cost that grows with the pixel count -
the full 1920x1080 is 24 times the work of 360x240
Off the original 360x240 in the middle of the screen, unscaled
The change takes effect at once. Renders are limited to 2048x1200; a bigger
screen is still filled, from a half size or smaller render.
A small screen, such as the standard 320x256 PAL one, shows the 320x200
window the original game used, as before.
Setup -> View size shrinks the 3D view itself, from 100% down to 40%, into a
box in the middle of the screen with a black border round it - the same idea
as the screen size option in Wolfenstein 3D. The menus and the status bar
keep their full size, so this works on any screen mode, PAL and NTSC lores
included. The renderer only draws the box, and only the parts of the screen
that change are sent to the display each frame, so a 50% view is roughly a
quarter of the work.
An 8 bit RTG screen is the fastest option, because the renderer's output is
copied to it as-is. A native screen needs chunky-to-planar conversion for
every pixel of every frame, which costs real time on a 68020.
Controls
--------
Keyboard, mouse and joystick all work, and all of them can be rebound from
Setup -> Configure Input. The joystick is read from port 1, and a CD32 pad's
extra buttons show up as buttons 0 to 6.
The default keyboard controls are the arrow keys to move, shift to sprint,
space to open doors / interact with objects, left ctrl to shoot, F1->F4 to
switch weapons.
Sound
-----
Setup -> Sound output picks how the game reaches the speakers:
Automatic AHI on a 68040 or better, Paula below that.
Paula (8 bit) audio.device, two hardware channels. Always available.
AHI (16 bit) ahi.device, using whatever unit 0 is set to in AHI
preferences. With a sound card this is real 16 bit
output. The actual resolution with other AHI drivers
depends on their hardware and configuration.
Automatically selects Paula on 020 and 030 machines to leave more CPU time
for the game. If you have a sound card in a slower machine, choose AHI
explicitly. If ahi.device cannot be opened the game falls back to Paula an
says so.
Setup -> Sample rate selects the output rate (22050 Hz by default). Digital
sound effects retain their original timing at every output rate.
Setup -> Music -> MOD sampled music avoids live Adlib synthesis and needs no
FPU. Music and game sound effects are mixed together through either Paula or
AHI. If you have an FPU, switch to Adlib emulation for the authentic MS-DOS
music.
These are twelve-channel MOD files with short samples of the original Adlib
instruments and percussion, rendered by the game's own Adlib emulator. Their
patterns are the game's actual note sequences, placed on the same six melodic
and five rhythm channels the KSM sequencer uses, at 60 rows per second, which
is the grid the songs are quantised to. Each instrument's decay and release
are measured and reproduced with volume commands, so sustains, fades and
release tails match the FM originals; only the timbre is shared between notes
of the same octave, since one sample is repitched across that range. Every
track has been checked against the Adlib emulator playing the same song and
matches it closely in both spectrum and loudness. The default output remains
centered mono.
The 121 tracks occupy about 8.6 MB on disk after shared-track deduplication;
the largest MOD needs about 290 KB of ordinary RAM while playing. The twelve
MOD voices are mixed in software into the existing Paula/AHI output, alongside
the digital sound effects. They do not reserve additional hardware channels.
The built-in player supports these supplied modules, including their note,
sample offset, volume, speed and loop commands. A third-party player must
support 12CH MODs.
Keep the entire gamedata drawer together. Each version's mods drawer contains
its unique tracks; byte-identical tracks live once in gamedata/shared/mods or
gamedata/shared/Ken1/mods and gamedata/shared/Ken2/mods. All tracks needed by
versions 1.0, 1.1, 2.0 and 2.1 are included. The build script copies them
automatically. A missing or invalid MOD silences that track and logs its path;
effects keep working, and the next available track can still play.
Performance
-----------
If the game is too slow:
* Use an RTG screen rather than a native one.
* Select MOD sampled music (Setup -> Music) to avoid live Adlib synthesis.
Turn music off entirely for the smallest audio CPU cost.
* Shrink the view (Setup -> View size). This is the biggest saving on a
slow machine with a native screen: it cuts the drawing and the
chunky-to-planar conversion together.
* Pick a smaller Render size, or Automatic.
* Use a smaller screen mode; 320x200 is a third less work than 360x240.
* On a native screen, scaling up costs chunky-to-planar time for every
pixel of the screen, not just of the render. Render size Off, or a
lores screen mode, or reduced colour depth is the fastest way to play
there.
Credits
-------
"Ken's Labyrinth" Copyright (c) 1992-1993 Ken Silverman
Ken Silverman's official web site: "http://www.advsys.net/ken"
Ken's Labyrinth was published by Epic MegaGames.
LAB3D/SDL is by Jan Lonnberg and contributors; the Amiga port is by
Cameron Armstrong. See the main README for the full credit list.
Licence
-------
Ken Silverman's licence allows derivative works of the Ken's Labyrinth source
to be distributed only through the Internet and free of charge, with no
commercial exploitation. For that reason this archive must not be put on
Aminet CD-ROMs or any other media that are sold.
|