💾 Archived View for cugi.ie › aminet › 1691189231.gmi captured on 2023-12-28 at 16:14:01. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-09-08)
-=-=-=-=-=-=-
Author: Kim Fastrup Larsen Uploader: kimflarsen hotmail com (Kim Fastrup Larsen) Type: game/misc Version: 1.6 Architecture: m68k-amigaos Date: 2023-08-04 Readme: http://aminet.net/game/misc/labyrinth64.readme Downloads: 2155
http://aminet.net/game/misc/labyrinth64.lha
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 (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.
PERMISSION UID GID PACKED SIZE RATIO METHOD CRC STAMP NAME ---------- ----------- ------- ------- ------ ---------- ------------ ---------- [unknown] 344 900 38.2% -lh5- 6fc7 Aug 4 12:44 Labyrinth.info [unknown] 28 264 10.6% -lh5- 983d Aug 4 12:44 Labyrinth/fonts/proptopaz.font [unknown] 1741 3204 54.3% -lh5- fcea Aug 4 12:44 Labyrinth/fonts/proptopaz/8 [unknown] 12641 35147 36.0% -lh5- 7994 Aug 4 12:44 Labyrinth/gpl-3.0.txt [unknown] 190 370 51.4% -lh5- 7b95 Aug 4 12:44 Labyrinth/gpl-3.0.txt.info [unknown] 211 348 60.6% -lh5- 932e Aug 4 12:44 Labyrinth/Install_font [unknown] 146 402 36.3% -lh5- a60b Aug 4 12:44 Labyrinth/Install_font.info [unknown] 23721 40516 58.5% -lh5- 80ee Aug 4 12:44 Labyrinth/Labyrinth [unknown] 159 550 28.9% -lh5- a8fd Aug 4 12:44 Labyrinth/Labyrinth.info [unknown] 3743 8227 45.5% -lh5- 9303 Aug 4 12:44 Labyrinth/ReadMe [unknown] 193 370 52.2% -lh5- 6cdb Aug 4 12:44 Labyrinth/ReadMe.info [unknown] 2860 11525 24.8% -lh5- e580 Aug 4 12:44 Labyrinth/Source/audio.c [unknown] 2444 6641 36.8% -lh5- 4f2f Aug 4 12:44 Labyrinth/Source/audio.h [unknown] 2201 6348 34.7% -lh5- 3265 Aug 4 12:44 Labyrinth/Source/bgm.c [unknown] 531 901 58.9% -lh5- 4a42 Aug 4 12:44 Labyrinth/Source/bgm.h [unknown] 1283 4719 27.2% -lh5- f012 Aug 4 12:44 Labyrinth/Source/bgmdata.c [unknown] 592 1017 58.2% -lh5- 0b7a Aug 4 12:44 Labyrinth/Source/bgmdata.h [unknown] 587 1009 58.2% -lh5- 045c Aug 4 12:44 Labyrinth/Source/common.h [unknown] 581 963 60.3% -lh5- 3af8 Aug 4 12:44 Labyrinth/Source/compiler.h [unknown] 871 2316 37.6% -lh5- 0c16 Aug 4 12:44 Labyrinth/Source/data.asm [unknown] 998 2480 40.2% -lh5- ab6e Aug 4 12:44 Labyrinth/Source/drawbuf.c [unknown] 617 1114 55.4% -lh5- 64a1 Aug 4 12:44 Labyrinth/Source/drawbuf.h [unknown] 1281 2966 43.2% -lh5- df95 Aug 4 12:44 Labyrinth/Source/envelope.c [unknown] 1604 3942 40.7% -lh5- 0489 Aug 4 12:44 Labyrinth/Source/envelope.h [unknown] 816 1604 50.9% -lh5- 50ae Aug 4 12:44 Labyrinth/Source/font.c [unknown] 579 979 59.1% -lh5- cdd8 Aug 4 12:44 Labyrinth/Source/font.h [unknown] 2463 7239 34.0% -lh5- 5968 Aug 4 12:44 Labyrinth/Source/game.c [unknown] 760 1493 50.9% -lh5- 3eef Aug 4 12:44 Labyrinth/Source/game.h [unknown] 5535 21965 25.2% -lh5- 2f43 Aug 4 12:44 Labyrinth/Source/gfx.c [unknown] 769 1502 51.2% -lh5- d056 Aug 4 12:44 Labyrinth/Source/gfx.h [unknown] 6237 22639 27.5% -lh5- 9910 Aug 4 12:44 Labyrinth/Source/gui.c [unknown] 803 1557 51.6% -lh5- 6ab6 Aug 4 12:44 Labyrinth/Source/gui.h [unknown] 3532 12806 27.6% -lh5- a960 Aug 4 12:44 Labyrinth/Source/guitools.c [unknown] 2277 5638 40.4% -lh5- 905a Aug 4 12:44 Labyrinth/Source/guitools.h [unknown] 1394 3670 38.0% -lh5- fc6d Aug 4 12:44 Labyrinth/Source/iff/8SVX.h [unknown] 419 1005 41.7% -lh5- 684b Aug 4 12:44 Labyrinth/Source/iff/compiler.h [unknown] 6973 20481 34.0% -lh5- 3781 Aug 4 12:44 Labyrinth/Source/iff/iff.h [unknown] 2530 7644 33.1% -lh5- 48fe Aug 4 12:44 Labyrinth/Source/iff/SMUS.h [unknown] 1825 4831 37.8% -lh5- 7157 Aug 4 12:44 Labyrinth/Source/instrument.c [unknown] 2514 6785 37.1% -lh5- 9786 Aug 4 12:44 Labyrinth/Source/instrument.h [unknown] 733 1306 56.1% -lh5- 86d4 Aug 4 12:44 Labyrinth/Source/interrupt.asm [unknown] 1516 4281 35.4% -lh5- 687f Aug 4 12:44 Labyrinth/Source/joystick.c [unknown] 971 2010 48.3% -lh5- 2c0e Aug 4 12:44 Labyrinth/Source/joystick.h [unknown] 1840 4958 37.1% -lh5- c496 Aug 4 12:44 Labyrinth/Source/main.c [unknown] 545 904 60.3% -lh5- dcad Aug 4 12:44 Labyrinth/Source/main.h [unknown] 1459 3962 36.8% -lh5- 5869 Aug 4 12:44 Labyrinth/Source/maze.c [unknown] 684 1303 52.5% -lh5- 07a9 Aug 4 12:44 Labyrinth/Source/maze.h [unknown] 1381 4569 30.2% -lh5- 877c Aug 4 12:44 Labyrinth/Source/mem.c [unknown] 834 1684 49.5% -lh5- 8b39 Aug 4 12:44 Labyrinth/Source/mem.h [unknown] 2371 7230 32.8% -lh5- a6fb Aug 4 12:44 Labyrinth/Source/music.c [unknown] 1678 3730 45.0% -lh5- 9724 Aug 4 12:44 Labyrinth/Source/music.h [unknown] 1434 3300 43.5% -lh5- e738 Aug 4 12:44 Labyrinth/Source/period.c [unknown] 809 1610 50.2% -lh5- d08c Aug 4 12:44 Labyrinth/Source/period.h [unknown] 825 1511 54.6% -lh5- f2f7 Aug 4 12:44 Labyrinth/Source/random.c [unknown] 524 861 60.9% -lh5- e72f Aug 4 12:44 Labyrinth/Source/random.h [unknown] 70 384 18.2% -lh5- 21d2 Aug 4 12:44 Labyrinth/Source/Resources/fgadget.bin [unknown] 159 550 28.9% -lh5- a8fd Aug 4 12:44 Labyrinth/Source/Resources/Labyrinth.info [unknown] 77 384 20.1% -lh5- 7468 Aug 4 12:44 Labyrinth/Source/Resources/lgadget.bin [unknown] 74 384 19.3% -lh5- 603d Aug 4 12:44 Labyrinth/Source/Resources/rgadget.bin [unknown] 508 508 100.0% -lh0- f93f Aug 4 12:44 Labyrinth/Source/Resources/sawtooth.bin [unknown] 297 1024 29.0% -lh5- 84cd Aug 4 12:44 Labyrinth/Source/Resources/title.bin [unknown] 482 1138 42.4% -lh5- 1e98 Aug 4 12:44 Labyrinth/Source/Resources/trak0.bin [unknown] 401 704 57.0% -lh5- 1c94 Aug 4 12:44 Labyrinth/Source/Resources/trak1.bin [unknown] 308 620 49.7% -lh5- a2a5 Aug 4 12:44 Labyrinth/Source/Resources/trak2.bin [unknown] 1020 1020 100.0% -lh0- d38f Aug 4 12:44 Labyrinth/Source/Resources/triangle.bin [unknown] 133 195 68.2% -lh5- 4c8a Aug 4 12:44 Labyrinth/Source/SCOPTIONS [unknown] 622 1037 60.0% -lh5- 21e7 Aug 4 12:44 Labyrinth/Source/score.h [unknown] 1016 2302 44.1% -lh5- 6129 Aug 4 12:44 Labyrinth/Source/server.c [unknown] 1222 2568 47.6% -lh5- d1fb Aug 4 12:44 Labyrinth/Source/server.h [unknown] 885 2298 38.5% -lh5- 637a Aug 4 12:44 Labyrinth/Source/smakefile [unknown] 931 1796 51.8% -lh5- a4c2 Aug 4 12:44 Labyrinth/Source/snprintf.c [unknown] 844 1490 56.6% -lh5- c12f Aug 4 12:44 Labyrinth/Source/snprintf.h [unknown] 1443 3370 42.8% -lh5- 87fd Aug 4 12:44 Labyrinth/Source/thread.c [unknown] 1456 3301 44.1% -lh5- 5e86 Aug 4 12:44 Labyrinth/Source/thread.h [unknown] 1364 3395 40.2% -lh5- 69e6 Aug 4 12:44 Labyrinth/Source/timer.c [unknown] 1458 3381 43.1% -lh5- a398 Aug 4 12:44 Labyrinth/Source/timer.h [unknown] 1767 5137 34.4% -lh5- 51e7 Aug 4 12:44 Labyrinth/Source/voice.c [unknown] 2031 4893 41.5% -lh5- 8956 Aug 4 12:44 Labyrinth/Source/voice.h ---------- ----------- ------- ------- ------ ---------- ------------ ---------- Total 78 files 135165 343175 39.4% Aug 4 22:47
Aminet © 1992-2023 Urban Müller and the Aminet team. Aminet contact address: <aminet aminet net>