Recommended resources
The freely available resources this lesson will direct you to.
Hello! Welcome back.
In our previous lesson, we explored the world of Music Macro Language (MML), a text-based, programmer-centric workflow that defined the sound of many early Japanese Genesis titles. We saw how composers like Yuzo Koshiro leveraged their programming skills to gain deep, low-level control over the hardware, essentially treating composition as an act of coding.
Today, we turn our attention to a very different approach developed to tackle the same hardware. Our learning outcome is to explain the features and workflow of the GEMS (Genesis Editor for Music and Sound effects) driver.
GEMS was developed by Sega of America to make music creation more accessible, particularly for Western composers who were more accustomed to MIDI-based studio environments and less likely to have the deep programming background of their Japanese counterparts. This lesson will dissect the GEMS system, from its high-level workflow down to its specific features and underlying technical implementation.
1. The GEMS Philosophy: A MIDI-Centric Workflow
The fundamental challenge of composing for the Genesis was the complexity of its FM synthesis sound chip. As we've discussed, creating compelling sounds required a technical understanding that many musicians simply didn't have. GEMS was designed to abstract away much of this complexity.
To understand the context and motivation behind GEMS, let's start with a short video segment.
This is Why Sega Mega Drive/Genesis Music was Incredible
This clip from The Nat Cave's video, 'This is Why Sega Mega Drive/Genesis Music was Incredible', introduces GEMS as a solution created by Sega of America to help Western developers who struggled with the technical demands of FM synthesis.
Please watch the segment from 13:58 to 15:00. Note why GEMS was developed and what problem it aimed to solve.
As the video explains, GEMS was a "godsend" for many developers. It provided a user-friendly environment that bridged the gap between familiar music creation tools and the esoteric Genesis hardware.
The core of the GEMS workflow was to transform the Sega Genesis itself into a real-time, multi-timbral synthesizer module that could be controlled by a standard MIDI sequencer running on a PC. Let's look at how this was set up.
How to make Sega Genesis music (in 1994)
The video 'How to make Sega Genesis music (in 1994)' by GST Channel provides an excellent, detailed walkthrough of the GEMS system. This first segment explains the hardware setup and the fundamental 'What You Hear Is What You Get' advantage of GEMS.
Please watch from 01:41 to 05:01. Focus on two key aspects: The physical connection between the MIDI device, the DOS computer, and the Genesis development hardware. How this setup solved the problem of the 'edit-compile-test' cycle inherent in MML workflows.
This setup was revolutionary for its time. Instead of writing text-based code, compiling it, and loading it onto the console just to hear a change, a composer could now:
- Compose music in a familiar graphical MIDI sequencer (like Cakewalk) on a PC.
- Connect the PC to a Genesis development kit running the GEMS driver.
- Play the MIDI sequence and hear it performed live by the Genesis's YM2612 and SN76489 chips.
This "What You Hear Is What You Get" (WYSIWYG) approach drastically streamlined the creative process.
A clear, real-world example of this workflow comes from the development of Disney's Aladdin.
Digging for treasure in Aladdin's source code
This article from the Game History Organization analyzes the recovered source code for 'Aladdin'. It confirms that the GEMS workflow involved using standard MIDI files as the source for the game's music.
Please read the two sections titled 'GEMS' and 'Sound and Music'. Focus on what types of source files were found in the archive (e.g., Cakewalk MIDI files, PCM samples) and how they relate to the GEMS driver.
The discovery of raw Cakewalk MIDI files and PCM samples in the Aladdin source code is a perfect illustration of the GEMS workflow. The composer, Tommy Tallarico, worked in a standard PC environment, and his output (MIDI files and audio samples) was then fed into the GEMS system to be converted into the final data for the game cartridge.
2. A Tour of GEMS Features
Now that we understand the high-level workflow, let's explore the specific features of the GEMS software that made this possible. We'll continue with the "How to make Sega Genesis music (in 1994)" video as our guide.
Patch and Sound Management
A composer first needs a palette of sounds. GEMS provided tools for both using presets and creating new sounds.
How to make Sega Genesis music (in 1994)
This segment covers GEMS's approach to sound design, including its preset patch library and the patch editor for creating custom FM sounds.
Watch from 05:01 to 06:28. Pay attention to the concept of the FMLIB preset library and the capabilities of the patch editor.
As the video notes, GEMS came with a library of over 100 preset FM patches. While convenient, the overuse of these presets is often blamed for the "samey" sound found in many Western-developed Genesis games. However, the true power lay in the Patch Editor, which gave composers a graphical interface to manipulate the YM2612's FM synthesis parameters directly. Each field in the editor corresponded to a register on the sound chip, offering a high degree of control without needing to write assembly code.
GEMS also managed the other sound sources on the Genesis: the PSG and the DAC for samples.
How to make Sega Genesis music (in 1994)
This next clip explains how GEMS handled the PSG channels and PCM sample playback.
Watch from 06:40 to 08:04. Focus on the trade-offs involved in using sampled sounds, particularly the balance between audio quality and memory usage.
GEMS integrated all three sound sources—FM, PSG, and sampled audio—into its MIDI-driven workflow, allowing composers to assign different instruments to different channels in their sequencer.
Sequencing and Advanced Control
The real ingenuity of GEMS was in how it interpreted a standard MIDI file. It used specific MIDI messages, particularly Continuous Controllers (CCs), as a language to trigger special functions within the GEMS driver.
How to make Sega Genesis music (in 1994)
This segment explains how GEMS used MIDI Continuous Controllers (CCs) to handle functions beyond basic note-on/note-off commands, such as loops and other technical events.
Watch from 08:53 to 10:11. The key concept here is the re-purposing of standard MIDI CC messages to control the GEMS driver.
A composer would insert a specific CC message at a point in their MIDI sequence, and the GEMS driver would interpret it not as a standard MIDI command (like sustain or portamento) but as a GEMS-specific instruction, such as "start a loop here" or "change the channel priority."
Given your background, you might appreciate seeing the low-level implementation of this system. The following resource is a forum thread where enthusiasts have reverse-engineered the GEMS driver. It provides a look at the raw byte-level commands that these MIDI CCs were translated into.
This post from a Sonic Retro forum thread provides a deep dive into the GEMS sequence format. It's a fantastic example of the kind of 'original source' reverse-engineering that reveals how the system truly works.
You don't need to memorize this, but skim through the list of commands from byte 96 to 114 in the first part of the reading. This shows the 'opcodes' that GEMS used for everything from changing a patch (97) to conditional branching (113). Then, look at the second part of the reading which details the byte structure for defining an instrument ('voice'). This gives you a sense of how the patch editor's settings were stored.
This technical data shows the layer of abstraction GEMS provided. The composer works with MIDI CCs in a sequencer, and GEMS handles the translation to these specific byte commands that the Z80 processor on the Genesis executes.
Dynamic and Interactive Features
GEMS also included powerful features for creating dynamic music and managing the console's limited resources.
How to make Sega Genesis music (in 1994)
This final clip from the GST Channel video covers three advanced GEMS features: the Modulation Bank for pitch bends, Mailboxes for interactive music, and the Priority System for channel management.
Watch from 08:04 to 08:53, and then from 10:28 to 13:55. Focus on: Modulation Bank: Why it was a more memory-efficient way to create pitch bends. Mailboxes: How they allowed the music to react to in-game events. Priority System: How it managed channel conflicts, and how composers could exploit it.
These features highlight the sophistication of the GEMS driver:
- Modulation Bank: A compact, reusable way to define pitch envelopes, saving precious cartridge space compared to recording raw MIDI pitch bend data.
- Mailboxes: A system of shared variables between the game logic and the sound driver. The game could change a value in a "mailbox" (e.g., set
mailbox[1] = 1when the player is underwater), and the music sequence could have a conditional branch:IF mailbox[1] == 1, JUMP to 'underwater_music_variation'. This allowed for truly interactive soundtracks. - Priority System: An essential traffic cop for the Genesis's 10 available sound channels (6 FM, 3 PSG, 1 PSG Noise). It ensured that important sounds (like sound effects) would always be heard by temporarily stealing a channel from a lower-priority musical part. The Cool Spot example shows a fascinating "brute force" compositional technique where the composer intentionally wrote for more channels than were available, letting the priority system dynamically arrange the music by cutting and restoring parts on the fly.
Conclusion
In this lesson, we have dissected the GEMS driver, a pivotal tool in the history of Genesis music. It represented a significant philosophical shift away from the programmer-centric MML approach toward a more accessible, musician-friendly workflow.
Key Takeaways:
- Workflow: GEMS enabled a MIDI-based workflow where a composer used a standard PC sequencer, with the Genesis acting as a real-time external sound module. This provided a WYSIWYG environment, a stark contrast to the MML's "code-and-compile" cycle.
- Abstraction: The system abstracted the hardware's complexity, translating standard MIDI files—with special CC messages for control—into low-level commands for the Genesis's sound driver.
- Key Features: GEMS included a graphical patch editor, a preset library, and integrated control over all sound sources (FM, PSG, DAC).
- Advanced Capabilities: It offered sophisticated features for the era, including memory-efficient pitch modulation, a system for conditional branching that allowed music to react to gameplay ("Mailboxes"), and a robust channel priority system to manage hardware limitations.
While GEMS made Genesis development accessible to more musicians and had powerful features, this accessibility came with creative trade-offs.
In our next lesson, we will directly compare the creative possibilities and constraints of MML-based workflows versus the GEMS system, using Yuzo Koshiro's MML-driven work as a case study to highlight the differences in their sonic output and creative potential.