Short: Ken's Labyrinth 3D shooter for 68020+ Author: Ken Silverman, Jan Lonnberg, Cameron Armstrong Uploader: Cameron Armstrong Type: game/shoot Version: 4.3.0 Requires: 68020+, asl.library V38+ Architecture: m68k-amigaos >= 3.0 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.