AminetAminet
Search:
83627 packages online
About
Recent
Browse
Search
Upload
Setup
Services

game/misc/labyrinth64.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:Remake of Commodore 64 game Labyrinth
Author:Kim Fastrup Larsen
Uploader:kimflarsen hotmail com (Kim Fastrup Larsen)
Type:game/misc
Version:1.5.3
Architecture:m68k-amigaos
Date:2021-08-13
Download:http://aminet.net/game/misc/labyrinth64.lha - View contents
Readme:http://aminet.net/game/misc/labyrinth64.readme
Downloads:1298

New in 1.5.3
------------

- 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.


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).


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.


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.

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.


History
-------

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.


Contents of game/misc/labyrinth64.lha
PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                  344     900  38.2% -lh5- 6fc7 Aug 13 15:15 Labyrinth.info
[unknown]                   28     264  10.6% -lh5- 983d Aug 13 15:16 Labyrinth/fonts/proptopaz.font
[unknown]                 1735    3204  54.2% -lh5- a1ad Aug 13 15:16 Labyrinth/fonts/proptopaz/8
[unknown]                12641   35147  36.0% -lh5- 7994 Aug 13 15:15 Labyrinth/gpl-3.0.txt
[unknown]                  190     370  51.4% -lh5- 7b95 Aug 13 15:15 Labyrinth/gpl-3.0.txt.info
[unknown]                  204     337  60.5% -lh5- f60b Aug 13 15:15 Labyrinth/Install_font
[unknown]                  146     402  36.3% -lh5- a60b Aug 13 15:15 Labyrinth/Install_font.info
[unknown]                24061   40948  58.8% -lh5- e434 Aug 13 15:15 Labyrinth/Labyrinth
[unknown]                  159     550  28.9% -lh5- a8fd Aug 13 15:15 Labyrinth/Labyrinth.info
[unknown]                 3173    7157  44.3% -lh5- 6b1f Aug 13 15:15 Labyrinth/ReadMe
[unknown]                  193     370  52.2% -lh5- 6cdb Aug 13 15:15 Labyrinth/ReadMe.info
[unknown]                 2746   11625  23.6% -lh5- 408c Aug 13 15:16 Labyrinth/Source/audio.c
[unknown]                 2559    6929  36.9% -lh5- 51df Aug 13 15:16 Labyrinth/Source/audio.h
[unknown]                 2193    6515  33.7% -lh5- b0e4 Aug 13 15:16 Labyrinth/Source/bgm.c
[unknown]                  547     922  59.3% -lh5- d6f7 Aug 13 15:16 Labyrinth/Source/bgm.h
[unknown]                 1291    4707  27.4% -lh5- 1bf1 Aug 13 15:16 Labyrinth/Source/bgmdata.c
[unknown]                  608    1055  57.6% -lh5- fc49 Aug 13 15:16 Labyrinth/Source/bgmdata.h
[unknown]                  613    1045  58.7% -lh5- 80c7 Aug 13 15:16 Labyrinth/Source/common.c
[unknown]                  675    1170  57.7% -lh5- bca5 Aug 13 15:16 Labyrinth/Source/common.h
[unknown]                  581     963  60.3% -lh5- 3af8 Aug 13 15:16 Labyrinth/Source/compiler.h
[unknown]                  871    2316  37.6% -lh5- 0c16 Aug 13 15:16 Labyrinth/Source/data.asm
[unknown]                 1254    2881  43.5% -lh5- 5d2b Aug 13 15:15 Labyrinth/Source/envelope.c
[unknown]                 1581    3899  40.5% -lh5- 8364 Aug 13 15:15 Labyrinth/Source/envelope.h
[unknown]                  806    1579  51.0% -lh5- 47b4 Aug 13 15:16 Labyrinth/Source/font.c
[unknown]                  579     979  59.1% -lh5- cdd8 Aug 13 15:15 Labyrinth/Source/font.h
[unknown]                 2432    7080  34.4% -lh5- b412 Aug 13 15:15 Labyrinth/Source/game.c
[unknown]                  768    1508  50.9% -lh5- f903 Aug 13 15:15 Labyrinth/Source/game.h
[unknown]                 5308   21435  24.8% -lh5- 6358 Aug 13 15:15 Labyrinth/Source/gfx.c
[unknown]                  687    1299  52.9% -lh5- 9d31 Aug 13 15:15 Labyrinth/Source/gfx.h
[unknown]                  909    2116  43.0% -lh5- eafb Aug 13 15:15 Labyrinth/Source/gfxtools.c
[unknown]                  601    1036  58.0% -lh5- 7035 Aug 13 15:15 Labyrinth/Source/gfxtools.h
[unknown]                 5890   21401  27.5% -lh5- 8531 Aug 13 15:15 Labyrinth/Source/gui.c
[unknown]                  827    1610  51.4% -lh5- 8594 Aug 13 15:15 Labyrinth/Source/gui.h
[unknown]                 3525   12807  27.5% -lh5- 3d2e Aug 13 15:15 Labyrinth/Source/guitools.c
[unknown]                 2329    5719  40.7% -lh5- 30e2 Aug 13 15:15 Labyrinth/Source/guitools.h
[unknown]                 1394    3670  38.0% -lh5- fc6d Aug 13 15:16 Labyrinth/Source/iff/8SVX.h
[unknown]                  419    1005  41.7% -lh5- 684b Aug 13 15:16 Labyrinth/Source/iff/compiler.h
[unknown]                 6973   20481  34.0% -lh5- 3781 Aug 13 15:16 Labyrinth/Source/iff/iff.h
[unknown]                 2530    7644  33.1% -lh5- 48fe Aug 13 15:16 Labyrinth/Source/iff/SMUS.h
[unknown]                 1248    3200  39.0% -lh5- e54a Aug 13 15:15 Labyrinth/Source/instrument.c
[unknown]                 3203    8556  37.4% -lh5- ca75 Aug 13 15:15 Labyrinth/Source/instrument.h
[unknown]                  733    1306  56.1% -lh5- 86d4 Aug 13 15:16 Labyrinth/Source/interrupt.asm
[unknown]                 1502    4203  35.7% -lh5- 3db5 Aug 13 15:15 Labyrinth/Source/joystick.c
[unknown]                  971    2010  48.3% -lh5- 2c0e Aug 13 15:15 Labyrinth/Source/joystick.h
[unknown]                 1657    4264  38.9% -lh5- 6452 Aug 13 15:15 Labyrinth/Source/main.c
[unknown]                  524     866  60.5% -lh5- fff9 Aug 13 15:15 Labyrinth/Source/main.h
[unknown]                 1468    3964  37.0% -lh5- 2d28 Aug 13 15:15 Labyrinth/Source/maze.c
[unknown]                  680    1298  52.4% -lh5- 6148 Aug 13 15:15 Labyrinth/Source/maze.h
[unknown]                 1413    4796  29.5% -lh5- 0d38 Aug 13 15:15 Labyrinth/Source/mem.c
[unknown]                  848    1738  48.8% -lh5- 9f43 Aug 13 15:15 Labyrinth/Source/mem.h
[unknown]                 2577    7974  32.3% -lh5- 2294 Aug 13 15:15 Labyrinth/Source/music.c
[unknown]                 1753    3938  44.5% -lh5- f6ae Aug 13 15:15 Labyrinth/Source/music.h
[unknown]                 1411    3213  43.9% -lh5- a2b4 Aug 13 15:15 Labyrinth/Source/period.c
[unknown]                  789    1510  52.3% -lh5- 7636 Aug 13 15:15 Labyrinth/Source/period.h
[unknown]                   70     384  18.2% -lh5- 21d2 Aug 13 15:16 Labyrinth/Source/Resources/fgadget.bin
[unknown]                  159     550  28.9% -lh5- a8fd Aug 13 15:16 Labyrinth/Source/Resources/Labyrinth.info
[unknown]                   77     384  20.1% -lh5- 7468 Aug 13 15:16 Labyrinth/Source/Resources/lgadget.bin
[unknown]                   74     384  19.3% -lh5- 603d Aug 13 15:16 Labyrinth/Source/Resources/rgadget.bin
[unknown]                  508     508 100.0% -lh0- f93f Aug 13 15:16 Labyrinth/Source/Resources/sawtooth.bin
[unknown]                  297    1024  29.0% -lh5- 84cd Aug 13 15:16 Labyrinth/Source/Resources/title.bin
[unknown]                  482    1138  42.4% -lh5- 1e98 Aug 13 15:16 Labyrinth/Source/Resources/trak0.bin
[unknown]                  401     704  57.0% -lh5- 1c94 Aug 13 15:16 Labyrinth/Source/Resources/trak1.bin
[unknown]                  308     620  49.7% -lh5- a2a5 Aug 13 15:16 Labyrinth/Source/Resources/trak2.bin
[unknown]                 1020    1020 100.0% -lh0- d38f Aug 13 15:16 Labyrinth/Source/Resources/triangle.bin
[unknown]                  128     180  71.1% -lh5- 90ab Aug 13 15:16 Labyrinth/Source/SCOPTIONS
[unknown]                  622    1037  60.0% -lh5- 21e7 Aug 13 15:15 Labyrinth/Source/score.h
[unknown]                 1016    2302  44.1% -lh5- 6129 Aug 13 15:15 Labyrinth/Source/server.c
[unknown]                 1198    2524  47.5% -lh5- 7c0b Aug 13 15:15 Labyrinth/Source/server.h
[unknown]                  848    2247  37.7% -lh5- 505f Aug 13 15:16 Labyrinth/Source/smakefile
[unknown]                  931    1796  51.8% -lh5- a4c2 Aug 13 15:15 Labyrinth/Source/snprintf.c
[unknown]                  844    1490  56.6% -lh5- c12f Aug 13 15:15 Labyrinth/Source/snprintf.h
[unknown]                 1443    3339  43.2% -lh5- 987a Aug 13 15:15 Labyrinth/Source/thread.c
[unknown]                 1363    2965  46.0% -lh5- 3418 Aug 13 15:15 Labyrinth/Source/thread.h
[unknown]                 1329    3306  40.2% -lh5- 041c Aug 13 15:15 Labyrinth/Source/timer.c
[unknown]                 1575    3644  43.2% -lh5- cc23 Aug 13 15:15 Labyrinth/Source/timer.h
[unknown]                 1834    5405  33.9% -lh5- b174 Aug 13 15:15 Labyrinth/Source/voice.c
[unknown]                 1990    4814  41.3% -lh5- 0470 Aug 13 15:15 Labyrinth/Source/voice.h
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        77 files  133664  339646  39.4%            Aug 14 02:43

Aminet © 1992-2021 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>