Saturday, September 24, 2011

OutRun Rev A vs. Rev B

I've looked into the code changes between the revision A and revision B roms. Comparing the roms isn't easy, because the addresses of the routines are aligned differently rendering a binary compare impractical. Therefore, my technique was to align a rough decompilation of the Rev A code to the addresses of the Rev B code in IDA.

I manually compared the code. It was easy to see if a function had changed in size for example as subsequent functions would be shifted to different addresses. Clearly, this is prone to human error and I may have missed something. But, if I have, it should be minor.

The differences are:
  • Easter Egg activation is more complex in Revision B. I have blogged about this already here.
  • The steering wheel vibration code for the Upright Mini cabinet has been altered. In Revision B, the vibration frequency has changed to make it less aggressive. I would guess this must was done in response to hardware problems reported by operators. The code can be found at address 0xEBA2 in Rev A and 0xEC42 in Rev B. 
And that would appear to be it! Maybe not a huge surprise, given that I've not noticed any other differences playing the versions. I hope to compare the original version next, which may yield more interesting surprises. 

As a final note, only IC118 and IC133 change between the revisions. The sub CPU code is identical.

Monday, September 12, 2011

OutRun Philko Bootleg

Philko were a South Korean company, founded in 1985, responsible for manufacturing a number of arcade bootleg PCBs. They manufactured a good quality bootleg of OutRun, along with other Sega titles, before being prosecuted in 1989.

The OutRun bootleg is identifiable by the copyright message reading BETA as opposed to SEGA, as shown in the screenshot below.

Although the hardware is different to the original Sega boardset (see MAME source code for details), it turns out that the game code is identical to the standard Rev B edition. The only changes are in fact the copyright message, the patched rom checksum and the encoding detailed below. 

Bizarrely, Philko felt compelled to perform some crude encryption on their code by bitswapping it. As documented in the MAME source code, for the main CPU bits 11,12 and 6,7 should be swapped. For the sub CPU bits 14,15 and 2,3 should be swapped. 

There are at least two distinct revisions of the Philko PCB. Both revisions are three-layer boards. They have the same power and video connectors but a different edge connector for the controls. 

Here is an example of the first revision, kindly provided by Luke Wells. 

Here is an example of the second revision. Note that a custom processor (top middle) has replaced some of the sound section, and the control edge connectors are different (bottom left):

Here are some closeups I found on ebay:

Dip Switches are located on the Middle PCB (Board 2)

Board Dip switch banks are labelled as 1 & 2. These correspond to an original board as follows:
  • Dip switch bank 1 = Original board dip switch B 
  • Dip switch bank 2 = Original board dip switch A

Small Molex .1" - Video Connector
1-Red (Closest to power connector)

18 Pin Connector - Controls

Component Side           | Solder Side
1  (GND)-Brake Pot 1     | (GND)-Gas Pot 1            
2  (GND)-Steering Pot 1  |   
3  Steering Pot 2 (Wiper)|   
4  Gas Pot 2 (Wiper      |
5  Brake Pot 2 (Wiper)   |
6  Motor Control         |
7  Start Lamp*           |
8  (5v)-Brake Pot 3      |
9  (5v)-Steering Pot 3   |
10 (5v)-Gas Pot 3        |
11 (5v) From Supply      |
12 Test                  |
13 Start 1 |
14 Gear H/L              |
15 Coin 1                |
16 ?                     |
17 (GND)                 |
18 (GND)                 |

*using an LED connect the Cathode to Pin7 and the Anode to 5VDC

Here are photos of a bootlegged cabinet, provided by Francois:

Lots of differences! (Start button, Steering wheel, bezel etc.)

Bootleg cabinet interior shot. Click to enlarge

So this means a couple of things to bootleg board owners: I can potentially provide a version of OutRun Enhanced Edition if there's demand. Or owners can patch with a bitswapped Sega revision B romset, if they dislike the BETA copyright message.

Saturday, September 10, 2011

Turbo OutRun Boardset

I picked up a Turbo OutRun boardset this week. Unlike OutRun, Sega decided to mount the board in a protective cage. The cage has its own internal wiring as shown below. 

The board was in very good condition, it didn't look the cage had ever been opened. The original serial (or selial) stickers were intact:

The board is still fitted with its original FD1094 suicide processor. I'm shocked that some of these are still working 22 years on! The white sticker on the processor reads: SEGA 317-0106.

Here's a closeup of the connections, for my own reference:

And here we have it running on the wiring harness made by RetroClinic. I took the board out of the cage to plug it in.

Tuesday, September 06, 2011

Space Harrier: Enduro Racer Edition

This is a customized version of Space Harrier, modified to run on Enduro Racer hardware.

This means that the game is fully playable on the Enduro boardset without the programmed security i8751 CPU.

Normally, if you try to run Space Harrier on Enduro Racer hardware, the game controls will not function and therefore the game is unusable.

I'd like to thank Mark at for performing the hardware testing. Without him, this wouldn't have been possible as I don't own either boardset. Please note that currently this requires Enduro Racer hardware with the earlier YM2203 sound board.

Download here:

Version 2.0.3: Space Harrier: Protection Fix #2 (Enemy shots getting faster over time)
Version 2.0.1:
Incorporated into Sega Enhanced package. Fixed lives bug. 
Version 1.0.1: JunoMan from Sega Resurrection suggested a more elegant solution. Results should be the same. Thanks! 
Version 1.0.0: Initial Release

Please note that no portions of the original game code are included in this package.