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

84 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

You may need to install the requirements for building. The below will work on Ubuntu-like platforms.

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 suggested below as they are known to work.

First clone the vlm repository:

git clone https://github.com/mwenge/vlm.git

Next run the following commands to enter the vlm repository and downoad the assembler toolchain:

cd vlm
git clone [email protected]:mwenge/rmac.git
git clone http://tiddly.mooo.com:5000/rln/rln.git

Now you can build the toolchain, as follows:

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

Build the Virtual Light Machine

You are now ready to build the rom image VirtualLightMachine.jag:

make

Play the Virtual Light Machine

This will let you play a barebones version of the VLM without any of the AudioCD infrastructure in VirtualLightMachine.jag using BigPEmu.

bigpemu src/bin/vlm.abs

vlm

Play the Virtual Light Machine - Old Method

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.

Reading the Source Code

I've recently started annotating the reverse-engineered code. Little by little, its mode of operation is becoming clear and hopefully my annotations make the code worth exploring in its own right. A good place to start is vlm.s.

Things Hidden Since the Foundation of the Light Machine

It turns out there is some buried treasure.