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.
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.
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.
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.
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.
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.
Seven bosses back to back, fully armed, against a run timer. Below.
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.
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.
Stage 7's boss is on screen within a second, but its music only comes half a minute later, when it stops the scroll.
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.
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.
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.
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.
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.
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.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.
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.
Native 384×256 frames, shown pixel for pixel.













R-Type Plus is a personal, non-commercial project: an extension of the arcade original, published as a free patch under the MIT licence. Nothing is sold.