Short: Remake of Commodore 64 game Labyrinth Author: Kim Fastrup Larsen Uploader: kimflarsen hotmail com (Kim Fastrup Larsen) Type: game/misc Version: 1.6.1 Architecture: m68k-amigaos New in 1.6.1 ------------ - Restricted the number of keys recognized by the game so that the user can use hotkeys and special OS key combina- tions without affecting it. New in 1.6 ---------- - Added keyboard shortcuts to all the requesters. The game can now be operated using only the keyboard. - Optimizations and improvements. Prefer ADF? ----------- An ADF is available as an alternative to this archive. You can get it here: https://www.dropbox.com/s/3yqlf0hynjax0hd/Labyrinth.adf What is Labyrinth? ------------------ Labyrinth is a remake of a Commodore 64 game published by Commodore in 1983 (not to be confused with the 1986 film adaptation from LucasFilm), which was itself a souped-up version of an earlier public domain game originally written in BASIC for the Commodore PET. In this game you must find your way through a randomly gen- erated maze of your chosen size, playing from a first person view. Can you do it without peeking at the plan? - Runs on all classic Amiga models. - Adapts to PAL/NTSC and overscan. - 100% OS- and multitasking-friendly. Can even share audio channels with other programs running at the same time, if those programs support it. - Faithful rendition of the original game's arrangement of Greensleeves, using real time volume envelope generators and the highest quality waveforms possible at all octaves. - Uses menus, gadgets and requesters to provide a proper Amiga interface, yet retains the feel of the original game. For a bit of fun, try starting up multiple instances of the game and enjoy the ensuing chaos of all of them playing mu- sic at the same time! Yes, the Amiga was always capable of doing this! Full source code is included under the GNU General Public License 3.0. Installation ------------ The program file can simply be dragged anywhere to install it where you like. Labyrinth will try to use a font called Proptopaz. That font is included in this distribution. It is optional, but you can use the provided installer to copy it into your system's fonts directory if you wish to use it. If you don't install it, Labyrinth will try to use Newtopaz instead. If that is not available either, it will just use Topaz (the font built into Amiga systems). About the implementation ------------------------ The game is written entirely in Kickstart 1.2 compatible code. There is no direct hardware access; everything is done through the operating system, and the game is fully event- driven. It takes advantage of audio.device's ability to share audio channels between programs. Unfortunately, most other pro- grams simply allocate all four audio channels at the highest precedence, thus completely preventing other applications from using sound. In fact, the only other programs I know of that will share audio channels are my own Harmonics and Space Invaders. But at least you can now have Greensleeves as background music while playing Space Invaders, or load up Harmonics and play along! Or you can run multiple instances of the game and have them all play music at the same time, if that sounds enticing. Channel precedences are carefully changed on the fly so that other applications will tend to steal the channels that are doing the least important work. That is to say, channels that are playing the final (release) part of a sound will be stolen before channels that are playing the main (sustain) part, which in turn will be stolen before channels that are playing the initial (attack) part. The game implements the ATAK and RLSE chunks of the IFF 8SVX file format (although it doesn't actually load IFF files, it uses the format internally). It is able to accomplish this even on an Amiga 500 (using about 10% CPU time for three channels of music) by using a modified version of Bresen- ham's line algorithm along with careful precalculations. It also implements the IFF SMUS format. The music runs in a separate high priority task signalled by an interrupt, so it won't be slowed down when the game is rendering. It will even play music while a floppy drive is active without slow- ing down. The music and multithreading is implemented in highly modu- lar and reusable code, and I have done my best to document the API for each module. Other things ------------ Check out some of my other Amiga software on Aminet: Harmonics - mus/edit/harmonics.lha - A simple additive synthesizer. KoalaView - gfx/show/KoalaView.lha - View and convert Commodore 64 images with authentic looking colors. ScreenTime - util/time/ScreenTime.lha - Highly configurable digital clock on any public screen, with locale support and calendar. Space Invaders - game/shoot/spaceinv.lha - Arcade perfect and system friendly. ToolsMenu - util/cdity/ToolsMenu.lha - Add tools and projects to the Workbench menu, using a simple interface similar to FKey. History ------- 1.6.1 (Aug 18, 2023) - Restrict the number of keys recognized by the game so that the user can use hotkeys and special OS key combinations without affecting it. 1.6 (Aug 4, 2023) - Added keyboard shortcuts to all the requesters. The game can now be operated entirely with the keyboard. - Optimizations and improvements. 1.5.6 (Jul 8, 2022) - When booted from a floppy disk on an Amiga without a bat- tery backed-up clock, the RNG would tend to always be seeded with the same number. In order to improve this, the seeding has been moved to when the first requester is dis- missed and now uses the microseconds from the system time. - TextLength was called before setting the font on the in- tro screen. How it worked anyway is a mystery; regardless, it has now been fixed. - Various code cleanup. 1.5.5 (Jun 3, 2022) - A change in the order of program clean up on exit meant that the music would continue to play until the end of clean up, slowing program exit down, especially in cases where closing the screen caused the Workbench to be re- opened. To prevent that, the game will now stop the music explicitly when quitting, before initiating clean up. 1.5.4 (May 20, 2022) - Includes an updated version of proptopaz.font. - Lots of minor tweaks, optimizations and fixes. 1.5.3 (Aug 13, 2021) - Title screen can now be skipped with the Esc key or the left mouse button. - Now uses a custom mouse pointer to avoid weird things hap- pening with hires pointers. - Improvements to the audio and music code, and other little improvements. - Now includes an installer for the optional font. - Changed the documentation to refer to this project as a remake rather than a port, and added a few bits. 1.5.2 (May 7, 2021) - A couple of minor corrections to the music. - The music thread now will not use any CPU time when the music is turned off. - Other improvements to the music code. 1.5.1 (Apr. 8, 2021) - Fixed nonsensical music set up code that should never have worked, yet somehow did. 1.5 (Apr. 7, 2021) - Will now try to use proptopaz.font. If that is not found, newtopaz.font will be tried. If that is not found either, topaz.font will be used as before. - proptopaz.font included in the distribution. 1.4 (Mar. 5, 2021) - Fixed a divide by zero crash at the end of the game if the player peeked too many times at the plan. - Major improvements to the music set up code; it is now much faster, smaller, and uses less memory. - Minor improvements to the maze design routine. 1.3 (Feb. 15, 2021) - Added joystick support. - Improved title screen, especially on PAL. 1.2 (Dec. 31, 2020) - Fixed bugs in the music code that could potentially cause crashes or other problems. - Various improvements. 1.1 (Dec. 17, 2020) - Sped up the intro. - Various improvements to the music, the code and the docu- mentation. 1.0 (Dec. 3, 2020) - Initial release.