31 May 2017

Robocop - Data East 1988 (repair log)

A small repair.
Game works fine except button 2 (jump) is unresponsive.
Some resistors arrays have burnt marks and the concerned trace coming from the JAMMA edge is burnt too. Clearly the board has been plugged backward.
Unfortunately those resistor arrays aren't standard and I don't have any spare part. So I did a small hack for this input by using a 10k resistor for pull-up and patching the burnt trace with a piece of kynar wire:

I don't like that kind of ugly repair but well, it works.

Game fixed.

24 May 2017

Atari Lynx II (with a bonus) - (repair)

I own a Lynx II again, 18 years after having sold mine!
But the unit is faulty... According to the seller:
Seller wrote:Atari Lynx - D-pad is faulty, certain directions don't work.

The console is in good condition for its age:

So I put batteries in it and switched it on:

Blank screen... But sound works so the console isn't completely dead.
Most of the time, just like for the Game Gear, capacitors have aged poorly, so next step is to replace them.

Ok so let's open the unit.

First, remove the rubber parts:

Then the 4 screws:

Bad sign, the screw holding the battery rack is missing. The console has been opened before...

Luckily it looks in fairly good condition inside. No sign of attempted repair:

Next step: the surgery.

Replacing the caps.

Oops! I forgot to take a picture during the process:

Time for a test and...


I then remembered I still got an Atari Lynx game somewhere. I dug for it and found a game in a very bad condition but no clue what it was (no sticker). I had to clean it and fix 2 traces which were cut:

And the game is actually:

Which isn't a bad game on this system (but terribly difficult).

17 May 2017

Sega Mark III - Paddle Control games hack

Few Sega Mark III games were made to be used with a "Paddle Control" in a similar way as Arkanoid or Pong.
It's impossible to play them with a standard pad.
So far I've made a hack for these games to be able to use a standard pad:
- Alex Kidd BMX Trial
- Woody Pop

Alex Kidd BMX Trial:

Cheksum has been fixed so the game runs fine on a US/EUR console (if someone ever wants to make a cartmod).

Technical part:
Angle is strored in RAM at address $C022.
$00 corresponds to the most left direction.
$80 corresponds to straight.
$FF corresponds to the most right direction.
- if no direction is depressed I write $80 at $C022
- if left direction is depressed I write $00 at $C022
- if right direction is depressed I write $FF at $C022

Woody Pop:

Again cheksum has been fixed.

Technical part:
Bar position in stored at address $C012.
$00 corresponds to the most left position.
$FF corresponds to the most right position.
- if no direction is depressed I don't change the value at $C012
- if left direction is depressed I decrement the value at $C012 by 2
- if right direction is depressed I increment the value at $C012 by 2
This way the game is playable with a reasonable bar speed.

10 May 2017

Snow Bros - Toaplan 1990 (repair log #2)

Another Snow Bros board, another easy repair.
As usual, board has developed some graphic issues, screen flickers and colours are wrong:

DRAMs have already been replaced and put on sockets by a previous repairer. However one turned out to be dead (although parts seem to be NOS). So I replaced it:

And game was fixed:


3 May 2017

Sega System C2 conversions (Thunder Force AC)

I've been asked by a member on a French forum if I could help him to make his Thunder Force AC conversion to work. I had never worked on the System C2 before so I was a bit curious to discover it.
The member had used the bootleg ROMs for his conversion and experienced colour issues. I preferred to base my work on the original ROMs.
I ran my conversion in MAME and the game would just start normally but then hung at the beginning of stage 1. In fact on this hardware protection is very weak and I quickly found how to patch the game: I reassembled the IC31 & IC32 ROMs together (interleaved odd & even bytes) and modified a jump conditioned by the result sent by the protection chip. At the end I only had to modify a single byte.

I also had a look at other games and the protection didn't appear to be much more complicated: only few instructions to modify or replace with NOP instructions. When protection check fails behaviour of the game can be:
- hanging
- resetting
- missing graphic elements
- wrong colours

I thought it could be interesting to explain the method I used.

I first ran the original game in MAME (romset tfrceac) so as my "conversion" forcing MAME to use a different protection chip (in this case I used the one of Zunzunkyou No Yabou, romset zunkyou). I use the MAME debugger (e.g. mame -window -debug tfrceac) allowing me to view code execution, place break points, do step by step execution, etc.
I found that the "conversion" jumped at 0x4798, something the original game doesn't do:
004798: 60FE bra $4798
Using MAME disassembler (e.g. dasm tfrceac.txt,0,100000 in the debugger) I made a search for $4798. There are only 2 occurrences:
- the branch instruction to itself at 0x4798
- an other branch instruction at 0x4140
00413A: 4A38 8984 tst.b $8984.w
00413E: 6704 beq $4144
004140: 6000 0656 bra $4798
Which means a byte is tested and if result is equal game jumps to 0x4144 if not it continues to the next instruction which is a relative jump of +0x656 corresponding to address 0x4798.
I simply modified the conditional jump (beq) by a non conditional one (bra):
00413A: 4A38 8984 tst.b $8984.w
00413E: 6004 bra $4144
004140: 6000 0656 bra $4798

P.S. : Files IC31 and IC32 have to be interleaved in order to work on the code. One contains odd bytes (LSB) and the other one even bytes (MSB). Once the modification made the file has to be de-interleaved into 2 files.

[EDIT 2]
It's been reported that the hack contained a bug where you never lose lives.
That was right, there's an other protection @ 0x27C2.
I've patched it too and updated the files.

[EDIT 3]
Patched a freeplay bug.

Also available:
- Columns
- Columns II
- Puzzle & Action: Ichidant-R
- Puzzle & Action: Tant-R
- Poto Poto
- Puyo Puyo
- Puyo Puyo 2
- Ribbit!
- Stack Columns
- Thunder Force AC
- Twin Squash (with joystick hack)
- Zunzunkyou No Yabou