System 3 Software · C64 · 1988 · 13 Subtunes
Last Ninja 2
Back with a Vengeance - one night in New York City, six locations, thirteen compositions. The benchmark of what the 6581 SID chip could produce in the hands of one composer.
Thirteen Cues for a City That Never Sleeps
Last Ninja 2: Back with a Vengeance (System 3 Software, C64, 1988) is the benchmark against which SID composition is measured. Thirteen subtunes - a loader and an in-game track for each of six themed levels, plus a high score jingle - score a single coherent journey from New York City's Central Park to the villain's penthouse mansion.
What makes the soundtrack extraordinary is not the quantity of music, but its consistency and range. Each cue inhabits a distinct emotional register - jazz warmth at Central Park, damp menace in the Sewers, sterile corporate tension in the Office - while remaining part of a unified nocturnal whole. No other C64 game of its era attempted, or achieved, a score of this compositional ambition.
The Central Park loader is the most celebrated SID composition in the corpus. But every level has its moment. What follows covers how the suite came to exist, what it demands of the listener, and why it still sets the standard.
Listen to the complete suite in the SID player, watch the stereo rendering on the videos page, or browse the full catalogue entry.
A New York Brief and a Three-Octave Casio
Gray came to System 3 in 1988 after two years composing for Thalamus - Quedex and Hunter's Moon had established his reputation as one of the sharper SID composers working. The Last Ninja 2 commission went further than music alone: he was expected to compose thirteen subtunes and build the SID player that would deliver them.
He wrote the player in 6502 assembly language - the same low-level code that ran the C64's processor. Writing his own player meant complete control over the SID chip's voice allocation, ADSR envelopes, filter sweep, and timing. It also meant the music was conceived hardware-first: every phrase was written with specific register values in mind, not transcribed from a score to a player that might or might not honour the intent.
For melodic sketching, Gray used a 3-octave Casio keyboard - a compact instrument whose limited range happened to mirror the constraints of the SID itself. Three octaves, three voices: the pairing was not deliberate, but the fit was exact. Lines that worked on the Casio could be mapped directly to SID voice parameters without transposition problems.
I had the bass line first - that walking line with the jazz changes underneath. Then I worked out what the other two voices could do against it. It was very much about treating all three oscillators as separate musicians, not as melody plus backing. Central Park was where that approach really came together for the first time.
Matt Gray on the Central Park theme, c64.com interview
The brief from System 3 was location-specific: each of the six levels should feel like a distinct part of New York City at night. Central Park, The Street, The Sewers, The Basement, The Office, The Mansion. Gray worked through them in sequence, composing the loader first for each level - the more elaborate cue - and then the in-game version, which had to sustain longer loops without fatiguing the player.
For more on Gray's compositional process and the people he worked with, see the People page.
Six Districts, One Night, One Ninja
Last Ninja 2 is an isometric action-adventure in which the player controls Armakuni, the last surviving ninja, through six locations in contemporary New York City. Each level is an isometric grid of screens requiring a combination of combat, puzzle-solving, and item management. The game was published on two 5.25-inch floppy disks; level transitions involve disk-swap loading screens.
The music is heard in two phases per level. During loading, the disk drive reads the level data while the SID plays the loader theme - these are the longer, more elaborate cues. Once the level begins, the shorter in-game theme loops continuously in the background. The loader music is heard for perhaps two minutes; the in-game music can run for thirty or more.
This structure shaped the compositions. The loaders could afford complexity and development - they had a captive listener with nothing else to focus on. The in-game tracks had to remain interesting across extended loops without overwhelming the attention the game was simultaneously demanding. Gray solved this by reducing the density of the in-game versions while maintaining their melodic and atmospheric character.
What the Chip Was Not Designed to Do
The 6581 SID chip provides three oscillators, a shared filter, and a noise channel. Convention on the C64 dictated a clear allocation: one voice for melody, one for a bass line, one for chordal filler. Gray rejected this arrangement. The Last Ninja 2 suite treats all three voices as melodic - each carrying independent material that responds to and comments on the others.
The Central Park loader demonstrates this most clearly. The bass line walks jazz changes - chromatic movement, unresolved tensions - while two melodic voices play in loose counterpoint above it. Neither upper voice is filler. They respond to each other and to the bass, creating a texture that reads as a jazz trio rather than a tune with accompaniment. The SID was not designed to produce this effect; Gray reverse-engineered the chip's voice interaction to make it happen.
The filter, available as a shared resource across all three voices, is used differently in each level to create environmental character. In the Sewers, heavy low-pass filtering gives the bass a muffled, subterranean weight that the other levels do not have. In the Office, the filter opens and closes with melodic phrases to create a sense of regulated, corporate precision. These are not decorative choices; they are part of the compositional argument each cue makes.
Writing the SID player in 6502 assembly rather than using a licensed player routine gave Gray access to every register at every clock cycle. He could schedule filter sweeps to coincide with specific melodic moments, modulate voice volumes mid-phrase, and time ADSR transitions with phrase-level precision. The published SID source code - released under Creative Commons by Gray around 2014 - shows this architecture in detail.
Writing your own player meant you knew exactly what was happening at every point. You could synchronise the filter to the music, not just set it and leave it. That level of control was why the sound came out the way it did - you were working with the chip, not around it.
Matt Gray on the custom SID player, Arcade Attack VGM Maestro interview
The Critics Found the Ceiling
Zzap!64 - the authoritative voice of C64 software reviewing in the UK - reviewed Last Ninja 2 in 1988 and gave the sound category a score at the upper limit of its scale. The Central Park theme was singled out by name as achieving something the reviewers had not heard from the chip before. The magazine's sound reviewer described the music as establishing a new reference point for what was possible on the platform.
The game itself received similarly strong scores - playability, graphics, and lasting appeal all rated among the highest the magazine had awarded at that point. But it was the sound category that drew the most expansive language. Zzap!64's review was the public record that cemented Last Ninja 2 as the gold standard for C64 SID music.
Commodore User and Your Commodore both covered the release in 1988, and both cited the music as exceptional. The consensus among the specialist C64 press was immediate: this was the finest game music the platform had produced. That consensus has not shifted in the decades since.
The Lemon64 community database - the largest archive of C64 game ratings - places Last Ninja 2 in the top tier of all C64 titles. User commentary consistently singles out the music as the primary reason for return visits to the game long after its puzzles and combat are well-understood.
The Blueprint the Demoscene Copied
Within the C64 demoscene - the community of coders and composers who pushed the hardware past its commercial limits - Last Ninja 2 functioned as a technical and aesthetic benchmark. The three-voice ensemble approach, the jazz-influenced bass writing, and the use of the filter as a compositional tool rather than a static effect became reference points that demoscene composers studied, cited, and attempted to match.
Last Ninja 3 (System 3, 1991) was composed by a different team. The contrast was noticed immediately: the sequel's music, while competent, did not achieve the textural density or atmospheric range of Gray's original. This comparison, which the community made without prompting, confirmed the score's uniqueness - it was not a product of the genre or the publisher, but of Gray's specific decisions about the hardware.
Gray returned to the suite in 2014 with the Reformation Kickstarter campaign - a crowdfunded series of orchestral and electronic re-recordings of his C64 catalogue. The Reformation Last Ninja 2 album expanded the thirteen subtunes into full-length orchestral treatments, with the Central Park theme given particular attention. All five Reformation albums are available through 6581 Records.
Around the same time, Gray released the Last Ninja 2 SID source code under a Creative Commons licence - making the 6502 assembly player and all voice data publicly available for the first time. This act of openness was unusual for commercial software of the era, and gave the C64 community the ability to study the architecture that produced the music directly. Links to the source code are on the resources page.
The Suite in Full
What follows is a level-by-level account of the thirteen subtunes - the compositional character of each cue and why it works as music for its specific location. Listen along in the SID player.
Central Park
The opening of the game establishes everything: a New York City night, specific and atmospheric. The loader theme is the most-cited SID composition in the corpus - a walking bass line with two melodic voices playing in counterpoint. The bass walks jazz changes; the upper voices respond with melodic fragments that build and release. The effect is cinematic despite being rendered on three oscillators and a noise channel.
The in-game theme is lighter, more percussive - designed to loop without becoming oppressive over an extended play session. It shares melodic cells with the loader but rearranges them into a different rhythmic feel, as if shifting from establishing shot to action sequence.
Central Park represents the apex of what the 6581 SID chip could produce in the hands of a composer who understood both music and the hardware. The chord movement is sophisticated enough that it has been analysed in terms of jazz harmony - the SID rendered as a kind of broken-down jazz trio.
The Street
The Street loader moves the register downward - a darker, more urban palette. Where Central Park had jazz warmth, The Street has tension: the bass is more syncopated, the melodic material more fragmented, as if something threatening is approaching. The city at night feels less romantic here.
The in-game theme sustains this tension while remaining playable - a delicate balance that Gray maintains throughout the suite. Music that creates atmosphere without becoming sonically fatiguing in extended sessions requires careful management of the SID's limited voice range.
Play The Street Loader in the SID Player → | View catalogue entry for Last Ninja 2 →
The Sewers
Below street level, the Sewers loader is the suite's most forbidding moment. The bass line moves in longer, slower phrases; the melodic content is sparse and dissonant; the filter is used more aggressively to create a muffled, subterranean quality. This is New York underground - menacing, damp, dangerous.
The in-game music lightens only slightly. It needs to be functional - not so oppressive that it overwhelms the game's demands on the player's attention - but it maintains the location's character throughout.
The Basement
The Basement marks a transition point in the suite. Where the Sewers was damp and organic in its menace, The Basement feels more mechanical - this is the interior of the enemy's operation. The rhythmic structure tightens; the SID voices take on a more electronic quality, as if the music is commenting on the shift from street-level New York to corporate infrastructure.
The loader and in-game themes here form the pivotal mid-suite moment - the point where the ancient world of the ninja is most deeply embedded in modern urban machinery.
The Office
The Office loader is one of the suite's most sophisticated moments. The music reflects the sterile environment - more ordered and hierarchical than the levels below - while maintaining the underlying menace. This is corporate power expressed as SID music: clean on the surface, calculating underneath.
The filter opens and closes with melodic phrases here in a way unlike any other level - a subtle modulation that mirrors the formal, controlled atmosphere of the location. The voice distribution is at its most economical: nothing wasted, every register value doing exactly the work required.
Play The Office in the SID Player → | View full catalogue entry →
The Mansion - Final Battle - High Score
The Mansion loader is the suite's penultimate statement - grand and architectural, as befits the villain's inner sanctum. The music reaches a kind of dark majesty here; the SID voices are working harder than at any earlier point, creating a density of texture that rewards close listening.
Final Battle is the climactic cue - more percussion, more rhythmic urgency, the harmonic language stripped back to essentials for the moment of confrontation. The SID filter is modulated to create a sense of increasing pressure.
High Score, the closing jingle, is brief and triumphant - a moment of release after the suite's long build. Even in 45 seconds it contains characteristic Gray voice-writing: the three voices in brief counterpoint before resolving to a cadence.
Together, the thirteen cues of Last Ninja 2 constitute the most complete and sustained SID composition of the 8-bit era. They have been analysed, remixed, reinterpreted, and released in orchestral form through the Reformation series - but the original SID remains the definitive version.