Code Monkey home page Code Monkey logo

vlm's Introduction

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.

vlm's People

Contributors

mwenge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vlm's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.