💾 Archived View for cugi.ie › aminet › 1691189231.gmi captured on 2024-02-05 at 10:51:43. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-09-08)

-=-=-=-=-=-=-

Remake of Commodore 64 game Labyrinth

   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.

Contents of game/misc/labyrinth64.lha

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>