From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search

Assembly is a low-level programming language that many video game music composers used in order to make music on the early video game systems. These languages are different for every major chip set and model, so many early composers had to became fluent in various dialects of assembly. Some larger companies could afford to hire programmers to write intricate audio drivers, and then the composers would only have to learn a custom form of Music Macro Language.

As the processing power of video game hardware increased over the years, composers were able to use more conventional music composition software for their music. These days, very few composers learn assembly to write video game music.


Forbidden Forest (C64) on a typical monitor.

In their early days, programmers tended to write everything directly into the computer's RAM, in pairs of eight hexadecimal numbers in a row.

What numbers correspond to which pitch and which duration depends on how the programmer designed the driver. Common examples for two A♯3 are "0E EF 0E EF" (Commodore 64 frequency) or "2E 2E" (chromatic note on any platform).


Dominator (C64) loaded into a popular assembler.

An assembler allows to enter music, in a much more structured way, into source code. You can put line breaks wherever you want. On top, you can make up labels and assign numbers to them, so for an F scale, you can in fact type:

.byte f3,g3,a3,as3,c4,d4,e4,f4

Every time you want to test your music, you use the Assemble or Compile function, and the assembler converts your source code nearly 1-to-1 into machine code, ready to run. However, your code can still get lost to crashes.

Assembly is generally abbreviated as asm. Some non-English developers naively abbreviated it as ass. Popular assemblers included Mikro Assembler, Turbo Ass, Laser Genius and Devpac.

Cross assembler

Alien 3 (NES) was arranged on a DOS computer.

A cross assembler allows to use two separate computers (even completely different platforms) for programming and testing. Every time you want to test your music, the source computer compiles it, and transfers it to the target computer, again ready to run. If it crashes, your source code is safe. Obviously, cross development is also the only option for consoles with their little RAM and no keyboard.

Several companies like Lucasfilm Games, Binary Design and Ocean Software had their own cross assemblers. A company developed and published the very popular Programmers Development System for DOS.

Today, everyone can download free assemblers that save the compiled music on their PC or Mac hard drive, for use in an emulator.


The following composers used assembler or hex: