Skip to content
/ vlm Public

Virtual Light Machine (1995) by Jeff Minter

Notifications You must be signed in to change notification settings

mwenge/vlm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Virtual Light Machine (1995) by Jeff Minter

This is the reconstructed source code for the Virtual Light Machine by Jeff Minter originally published in 1995 for the ill-fated Atari Jaguar.

It is part of the llamasource project.

The source code can be compiled into an executable that you can run in t2k.exe, a Jaguar emulator included in the utils folder.

Build Instructions

Build Requirements

sudo apt install build-essentials wine python3

Build the assembler toolchain

We use two tools to build the source code: rmac and rln. If you already have these installed you may have some luck using them, if not you can build the versions included in this repository as they are known to work.

First you must run the following to set up the git submodules containing the assembler toolchain:

git submodule init
git submodule update

Now you can build the toolchain, as follows:

cd rmac
make
cd ../rln
make 
cd ..

Build the Virtual Light Machine

To build the rom image VirtualLightMachine.jag:

make virtuallightmachine.jag

Play the Virtual Light Machine

You can run the VLM as follows using t2k.exe:

wine ./utils/t2k.exe

Now open VirtualLightMachine.jag as follows:

To launch the Virtual Light Machine, press 'Q'.

With the VLM activated, play some music on your computer and press F3 to start visualizing the music:

Getting to know the controls of the Virtual Light Machine

Here are some of the useful keys for playing with the VLM:

F1 - Fullscreen toggle
F3 - Enable Music device capture
F4 - Show Music Input
F6 - Load State
F7 - Save State
F11 - Throttle toggle
F12 - Screenshot
O - option
P - pause
Z/Ctrl - A
X/ALT - B
C/Space - C
Arrow keys
Numeric keypad (. is #)
Q - three-fingered salute (used on the flashing CD with ?) to engage VLM
Esc - Quit

VLM: press Z (button A) twice to enter program mode, press O to engage user programmable mode, then the numeric pad or numbers: first press is bank, second press is effect in bank.

You can find the original manual for the Jaguar CD (and the VLM) in the docs folder.

For convenience, here is the short section covering use of the VLM: vlm1 vlm2

Notes on the Source Code

The content of this repository was originally retrieved from https://github.com/jaguar64/samples/tree/master/VLM.

Not all of the files in that dump are needed to build VLM and the core of the VLM itself is available only as an executable vlm.abs file. In order to reconstruct the source of the VLM core I reversed engineered 'vlm.abs` with the help of the symbols file 'vlm.syms' - an extremely useful thing to have as it means the routine and variable names can be retained from the original. The reconstructed VLM source and accompanying images and binary objects are available in the VLM folder.

It was possible to get everything to build with only minor modifications. Most of these were to make the source comaptible with rmac since most of the code would originally have been written for the native jaguar assembler gasm.