R-Type NeoNeo Geo portR-Type Plus
Technical demonstration · Irem M72 arcade board · 2026

The 1987 arcade R-Type itself, with modes it never had: two players at once, Armour and Boss Rush

The companion to the Neo Geo port: here nothing is translated. The arcade board's own NEC V30 program is patched in place, and the new modes are written in V30 assembly and hooked into the original's code, which still does almost everything. It runs as the original set in MAME's Irem M72 driver, made from the owner's own copy of the game.

The patch is public; the game is not. The patcher and its source are on GitHub, ppeltriaux/rtype-plus (MIT licence): it turns your own copy of the arcade game into this one, and holds none of the game itself. No ROMs, game data, artwork or sound are distributed or linked to, and no files are sent on request. R-Type is the property of its rights holders; see the legal note.

In motion

A capture of MAME running the patched board, at its native 384×256, scaled 3× with no filtering, with the board's own sound.

91 s Boss Rush, one player: the attract title as R-TYPE comes in and PLUS appears under it with its glint, a coin, BOSS RUSH picked on the start screen, the run-in to stage 1's boss, its fall and the stage clear with the timer holding, then straight on to stage 2's boss and its fall. The ship is flown by the test script, invulnerable through the board's own DIP switch, sweeping the screen and firing, so it plays like a machine rather than a player.

The modes

On the start screen, the joystick picks the rules (up and down) and, for Classic and Armour, the stage (left and right); the choice shows on the credit line, as STAGE 1 BOSS RUSH.

Two players at once

The 2P start begins a co-op game, and either player can join later with a coin and their start button. Player 2 flies a crimson R-9, with its own Force, shots and beam; "1P" and "2P" tags mark the ships as they come in, and the beam gauge splits between the two. A lost ship flies back in where the game is while the partner plays on; out of ships, a player's score blinks PRESS START; both out is the game's own GAME OVER and continue.

Armour

A hit with ships to spare costs a ship and one level of the Force instead of the run: the shield flashes, the ship blinks, untouchable for two seconds, and plays on. The ship icons give way to a gauge in the beam gauge's style, its cells light blue, amber and red (the board's HUD palette has no green or yellow to spare). The last ship's hit is the original's death.

Stage select

Any of the eight stages, from its first checkpoint with its own music, for Classic and Armour. Boss Rush always starts at the first boss.

Boss Rush

Seven bosses back to back, fully armed, against a run timer. Below.

Boss Rush

The run

  • Every new ship, a respawn, a join or a rejoin included, starts with the Force at full power on its front, the blue reflecting laser, two bits, homing missiles and a speed-up.
  • Each fight begins a few seconds before its boss, so its entrance and music play; a lost ship restarts there, and a continue too.
  • After a boss falls, the game's own stage clear plays, then the next fight begins. Stage 3 is left out: its boss is the giant warship itself, a chain of objects that starts with the stage and cannot be entered halfway, and the whole stage made too long a fight.
  • Classic rules otherwise: one hit, one ship; GAME OVER and the continue as the original's. One or two players.
  • After the last boss, the game's ending; then the run's entry in Boss Rush's own ranking, and the title. The game's own ranking is left alone.

The timer

A run timer sits on the HUD after the beam gauge, mm:ss.cc. It counts real time: when the board slows down in a busy fight, that counts too. It runs through deaths, pauses from GAME OVER through the continue countdown, holds from a boss's fall to the next fight, and stops for good at the last boss, its total on screen through the ending.

The ranking

Boss Rush has a table of its own, ten rows, kept until power-off like the game's: runs rank by bosses beaten, then fewer continues, then time. A run enters it when it ends, after the ending or at a game over with no continue taken, through the game's own name entry, whose panel lists each boss's time, the total, the bosses and the continues. The table follows with the new row highlighted, and a two-player run carries a crimson 2P. The attract mode shows it in turn with the game's RANKING.

One oddity

Stage 7's boss is on screen within a second, but its music only comes half a minute later, when it stops the scroll.

How it's done

A patch on the original program

The new code, about 8 KB of V30 assembly, goes into a free block of the program ROM. Each place it hooks into jumps to a small stub that calls it, replays the instructions it replaced and goes back. Player 2 runs the original's own player code on a copy of its state, swapped in for part of each frame, and the enemies test their hits against both ships. Player 2's crimson colours are two new entries in an unused part of the ROM palette table; the new HUD glyphs go on tile codes the game never shows.

Boss Rush on the game's own restart

The original restarts a stage from a record of its checkpoint: scroll position, map columns, scroll speeds, palettes, music. Boss Rush adds one record a stage, measured where the scroll passes the fight's start in a normal play, and sends the game start, a death, a continue and every stage change through that same restart. The pick-ups go through the counters the item pick-ups use, so the game builds the Force and bits itself, and the timer reads the interrupt handler's own count of every vertical blank, which keeps counting when the game slows down.

Checked against the original

With none of the new modes chosen, a scripted solo game on the patched board stays identical to the original, work RAM compared at every frame, for 3,200 frames of play; so does the attract mode's first demo. 44 automated checks in MAME cover the modes. Among them: the run's bosses killed in a row, alone and with two players; each fight's start against a normal play's palettes; the timer's count against the board's frames; the ending and the title; and a Classic game after a Boss Rush one, untouched.

Speed

The 8 MHz V30 now runs a second player on top of the original's frame: in a busy stretch of stage 1 with both firing, co-op runs at about 85 to 92% of full speed. One player runs at full speed, as the original does.

Get the patch

The patch is published as R-Type Plus, with its source, at github.com/ppeltriaux/rtype-plus. It is a single Python script that makes the game on this page from your own copy of the arcade original.

What you need

  • Your own copy of the game as MAME's rtype set (R-Type, World), a zip or a folder: its files are recognised by their contents, whatever their names. The repository lists the 22 files and their checksums.
  • Python 3.8 or later, on macOS, Linux or Windows; nothing else to install.

python3 rtype_plus.py path/to/rtype.zip writes the patched rtype.zip into a new folder, without touching yours; --set rtypeu writes it as MAME's R-Type (US) clone instead, to sit beside an untouched original. MAME then warns that the checksums are wrong: the ROMs are changed.

What is in it

None of the game. The program gets about 7.5 KB of the patch's own code and data. Where the patched program repeats three bytes or more of the original, such as the instructions each hook moves aside, they are copied from your own copy when the script runs. The new graphics (player 2's crimson HUD, the mirrored beam gauge, the Armour cells, the timer's colon, the 1P and 2P tags) and player 2's palettes are made from your own ROMs by the script's code. Every file it writes is checked against the checksum it must have, so a wrong or damaged input stops with the files it could not find.

Screenshots

Native 384×256 frames, shown pixel for pixel.

The attract title: R-TYPE with PLUS under it, a glint across the P
The title: PLUS under the logo, in the logo's own teal chrome, a glint sweeping across it every couple of seconds.
Title screen with STAGE 1 BOSS RUSH on the credit line
The start screen: the rules on the credit line (and the stage, for Classic and Armour).
Stage 1 boss room, the fully armed ship, the timer on the HUD
Boss Rush, stage 1: the run-in to the boss room, Force, bits and missiles on, the timer after the beam gauge.
Stage 1 boss fight
Stage 1's boss, the blue laser reflecting off the walls.
Stage 1 cleared, the timer held
The game's own stage clear; the timer holds until the next fight.
Two players against the stage 2 boss
Boss Rush with two players: both fully armed, player 2's score and ships in crimson, the gauge split.
Two ships flying in with 1P and 2P tags
Co-op: the two ships fly in, tagged 1P and 2P.
An Armour hit's shield flash
Armour: a hit flashes the shield and costs a cell of the gauge, not the run.
Stage 7 boss
Stage 7: its boss is already there as the fight begins.
The last boss destroyed, the timer's total
The last boss falls: the timer stops on the run's total.
The run's panel: each stage's time, the total, the bosses beaten and the continues, then ENTER YOUR INITIALS
The run's end: each boss's time, the total, then the initials.
The Boss Rush ranking table: bosses, continues, time and name for ten places
Boss Rush's own table, in turn with the game's ranking in the attract mode.
The Boss Rush table with a new entry highlighted at No. 4, marked 2P in crimson
A two-player run ranked fourth: highlighted, marked 2P.