Saturday, September 24, 2011

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

Philko were a South Korean company responsible for a number of bootlegs in the 80 and 90s. They manufactured a decent quality bootleg of OutRun, along with many other Sega titles. Philko even manufactured their own custom chips for these bootlegs. The 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. They have the same power and video connectors but a different edge connector for the controls. On one of the revisions a number of the chips on the upper board have been replaced by a custom.

Here's a picture of the boardset, kindly provided by Luke Wells.

Here are some closeups I found on ebay:

Bootleg Pinouts / Dips:

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)

2-Green

3-Blue

4-Sync

5-Ground

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.

Some questions of my own:

Why identify the boardset as a bootleg by changing the copyright message?

Tuesday, September 06, 2011

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 retroclinic.com 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.

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.