Early play build • CoCo 3 + CoCoSDC

Metal Slug CoCo3 demake

Metal Slug is one of my favourite games of all time, and seeing it run on a Tandy Color Computer 3 is wild. This early play build of Mission 1 has smooth scrolling, Marco's and the soldiers' animations taken frame by frame from the arcade game, and sampled gunfire and screams, at a steady 30 frames per second. Download it and try it on a 512K CoCo 3 with a CoCoSDC.

Early play buildCoCoSDC required512K
The title screen on a real CoCo 3

Watch on YouTube ↗

About this build

This is a super early port and nowhere near complete. A lot of the arcade game is still missing; for example, the soldiers don't attack you yet. But it plays, and it shows the CoCo 3 can handle a real Metal Slug.

  • Smooth scrolling. Fine scrolling on the GIME, tested and working on real hardware.
  • Arcade animation. Marco is drawn as legs plus upper body, as the arcade does it, so he can run while firing. He breathes when idle, runs, jumps with or without firing, lands in a crouch and falls off ledges, all facing either way.
  • Soldiers use the arcade's run cycle and full death sequence, then blink out.
  • Sound. The pistol shot and two soldier death screams, played through the 6-bit DAC from a GIME timer interrupt.
  • Speed. A steady 30 frames per second, even in the busiest scenes.

Screenshots

The title screen is on a real CoCo 3 and Tandy CM-8 monitor. In the gameplay shots, the number at the top left is the frame rate.

Marco opens fire on Rebel soldiers in the jungle
A running jump past the crashed plane

Download and run

You need a Tandy Color Computer 3 with 512K and a CoCoSDC (firmware 1.17 or later). Unzip the file onto your CoCoSDC's SD card, keeping MSLUGSDC.dsk and MSLUG.DAT together in the same folder. Then start it from the CoCoSDC menu: go to MSLUGSDC.dsk and run LOADER.BAS.

Controls

ActionKeyboardJoystick (right port)
Run← / →Stick left / right
Jump↑Stick up, or button 2
FireSPACEButton 1 (hold for auto fire)

A demo plays itself until you touch a control, and takes over again after 10 seconds without input.