Sunday, December 17, 2017

2 x Power Drift PCB Repairs

I'd accumulated 4 broken or untested Power Drift PCBs. All four completely black-screened and showed no signs of life. I decided it was time to try to get at least one of them working. They are difficult boards to find working and I've always fancied playing the game in my OutRun cab.

Board 1 (The Easier Repair)

The Y-Board is complicated, using 3 68k processors, a z80 for sound and loads of custom chips. So when faced with a dead board, there are a lot of potential candidates. Using the scope, I could see the main 68K CPU was resetting every few seconds. There seemed to be good activity on the data and address lines however.

I tested the Main CPU EPROMs first and they all seemed to be bad?! To be honest, I don't know how much I trust the GQ-4X with 27C1000 EPROMs.... it seems inconsistent. But anyway, all the NEC D27C1000 branded ones failed romident. I programmed some new ones, and pinched a few others from one of the other spare PCBs.

The board then booted into life, but with lots of graphical corruption. Amazing - I've never had such an easy fix before. However, the game completely crashed after a short period of time.

Using the scope again I could see that the 'Sub X' CPU (Mame driver naming) had no activity on the data or address bus. The 'Sub Y' CPU seemed to be behaving sensibly. At this point I replaced ALL the NEC branding EPROMs for both CPUs.

The game then ran consistently without crashing, however there were occasional graphical errors.

I swapped the lower video PCB out with one of the other spares and this solved the remaining graphical issues. Unfortunately it was quite late at this point and I forgot to take photos of my progress.

So there you go - not really the most technical fix-log ever. But a fix is a fix, and I'll have a poke around the remaining 2 PCBs next. I also need to hook up some controls.


Board 2

Now that I had a fully working boardset from the previous repair it was easy to establish that I had 3 broken CPU boards and 3 partially working video boards with graphical errors remaining.

Picture shows the CPU board (courtesy of arcade.ym2149.com)



The CPU Board contains 3 x 68000 processors. These and known as the main CPU, X CPU and Y CPU. I initially investigated the main CPU signals and bus with my scope. I verified the EPROMs, then checked the SRAMs and buffer logic chips to ensure they were doing something sane. The PCB itself was filthy. Amusingly, pretty much every EPROM I pulled had a dead spider under it. One of them actually made me jump as it flew out at me with the chip! I was finding physical bugs, but no technical bugs, so it was time to move on!



I moved onto the X CPU. After working my way around the chips in the circuit I found little activity on the SRAM data and address lines. I piggybacked the first pair of SRAMs at IC 84 and IC 85, and to my delight the board booted. At this stage there were no zoomed sprites at all and lots of graphical errors. Only some of the static 2D sprites displayed correctly. However, I could coin up and hear sound and music which proved  the main 68000 circuit and Z80 sound circuit were healthy.



I put the board into test mode. Things weren't completely readable but the screen could at least be compared with MAME. The tests reported 4 SRAMs and 2 EPROMs were bad in the X CPU circuit. However, this report couldn't be fully trusted at this stage due to the piggybacked RAMs. I tested the EPROMs that were reported bad and found them to fine to prove this point.



I socked two replacement 6164 SRAMs at IC 84 and IC 85.



 I tested the old ones out of circuit and found them both to be faulty.



I booted the board again to verify the replacements were working. I then decided to piggyback the remaining two SRAMs that were also reported faulty by the internal tests at IC 82 and IC 83. They were right next to the previous bad ones and also similar Toshibas, so could in theory be bad as well. At this point I managed to see glimpses of the zoomed and rotated sprites that make up the game's road layer and backgrounds. The rotating Power Drift logo also showed signs of working.



After replacing IC 82 and IC 83, the game was running with scaled sprites.



The self-test now reported that everything was ok, including the video board SRAMs it had previously declared bad.



However, the game wasn't running correctly yet. At this point I swapped in the other video boards I had available to find the least broken candidate. This also proved that the CPU board was 100% worked and the remaining errors were on the lower video board.

This was all well and good, but I had no easy way of accessing the lower video PCB. This is where a set of interconnects built by UKVAC's ColinD came in handy. I'd had these sat in a box for months, but never had the need to construct them. I soldered them together, and could now separate the PCBs whilst powered up.





Now here's where things got quirky. The video boards all exhibited problems with the 2D static HUD sprites. For example, the "BE 3RD OR BETTER TO CONTINUE" graphic had jailbars. This would often be the sign of a bad line on an EPROM, SRAM or logic chip. I knew the SRAMs were good from the on-board tests so I turned to the EPROMs which weren't tested by the on-board routines.



Using my Sega Sprite Viewer tool, I could tell that these graphics were located in two interleaved EPROMs: epr-11789 at IC 16 and epr-11791 at IC 14.



As a first check I verified the EPROMs out of circuit. I had a little trouble reading them, but eventually got a good read. I put this down to the GQ-4X being a little quirky with 27C1000 EPROMs. I've had trouble in the past with them despite using the recommended jumper wire.

However, I was now really stumped as to what the problem was. I swapped in two EPROMs from another broken video board and got a different visual problem in the same area. I swapped another set in from a different video board and got yet another different problem with the graphics!!

I was really pulling my hair out and spent quite a lot of time checking various stuff. As a last resort, I programmed a new EPROM.




And what do you know... Isn't that unbelievable that EVERY video board had the same damaged EPROM? Maybe there's something about the board's construction that causes this.



Next step will be to verify the controls. I'll do this once the following PCB arrives from Alex that allows you to connect a PS2 controller on the bench for testing and a lot of other nifty stuff. But we'll cover that another time! I may have a (short) break from fixing Power Drift boards for now.


Thursday, August 31, 2017

OutRun applied to super serious Machine Learning and ridiculous toy car!

Here are two recent innovative uses of the CannonBall engine. It's great to see it being used in some many different ways. Click on the links to read the technical details.



Monday, June 12, 2017

Super HangOn PCB Fix Log

I purchased up the internals of a Super Hang On shell a few months ago. The package included an untested PCB that, judging from the photos he sent, had suffered a tough life. On arrival, the PCB booted and ran which was a great start, but no road was visible.



On inspecting the underside of the PCB, it was a real dog's dinner with repairs all over the place. It looked like someone had gone wild gunshotting parts of the circuitry to fix a previous problem. There were jumper wires connecting parts of the PCB where traces had been damaged. At this point I wrote to Mark at Retroclinic who kindly provided details of the work he'd done on the board, so I can distinguish his work from the chaos that had also occurred.



The top PCB is responsible for road rendering and is identical to the OutRun PCB, including the PALs. Super Hang On is similar to OutRun but with inferior sprite hardware, which is why the scenery is rather sparse in comparison from a gameplay point of view.

I quickly ported the OutRun test ROM to the Super Hang On hardware. This involved changing a number of memory addresses as well as the memory mapper configuration code. This proved that both the Sub CPU and Road RAM was fine. (For those waiting on the OutRun test ROM, it's now with Alex who will be releasing it in due course.)  ignore the sprite hardware failure below, I didn't adapt the code to handle SHO's sprite hardware correctly.



I could now focus on a smaller section of the schematics. I verified the Road ROM which was good. I swapped the PALs responsible for the road mixing and road bit extraction with a known good OutRun PCB to eliminate them from the equation.

Using my logic probe, I noticed that the Output Enable pin of the Road ROM was stuck high, essentially meaning the ROM data was not being used. Using the schematics, I traced the problem back to an LS174 @ IC14 (quad d flip flop). On closer inspection there was some signs of corrosion around its legs.



Piggybacking this chip restored the road circuitry. I mistankenly swapped out an IC downstream beforehand. If I'd used my scope and not been lazy, I would have avoided this.



Shortly after fixing the problem, another issue arose whereby there was a further visual glitch with the road hardware. Notice the colour band in the sky and the blurry road below. I swapped the test ROMs back in and they reported a failure with the Road RAM (or more likely the logic chips connecting them to the CPU). In game it looked like a visual glitch when the hardware performs the Road RAM swap.



However, the problem then vanished! And no amount of pressing on chips, flexing the PCB or power cycles could replicate it. I imagine it could return in the future if a chip is on the verge of failing somewhere, but hard to fix a problem you can no longer reproduce. If anyone has any thoughts on this then let me know.

Turbo OutRun PCB Fix Log

Purchased this OutRun boardset from the states. It was sold as faulty. The seller included some free food, which kept me happy whilst I stared at the black screen it presented me with on boot.



First thing I did was to verify an EPROM with RomIdent. This showed this was actually an OutRun boardset converted to Turbo OutRun.

I then tested the 2 boards against a known good set, and found the lower video PCB to completely working. Fantastic! This saved me building the interconnects that ColinD kindly sent me this time round.



I swapped the security FD1094 processor with a vanilla 68000. I programmed some decrypted ROMs.

I was greeted with the following screen.



Progress, but this was a bit of a red herring. It crashed immediately after this screen. In fact, this screen was an addition of the Japanese decrypted roms I'd happened to use. It's possible that the security processor was still working, but I'll go back and check that later.

I dug out the schematics and found an LS244 with dead outputs @ IC83. This was part of the sub CPU memory addressing. I socketed it and swapped it out, but it didn't make the game boot, although the logic probe showed its pins were doing something at least.

At this point I decided I wasn't going to change any more components without better diagnostic information. I'm slow at desoldering, so shotgunning stuff wasn't a good idea.

I used the OutRun SDK, created by Alex, to code a test tool for OutRun. Alex had already started work on the tool and I made some further modifications. My theory was that I needed a minimal piece of software to test as much of the hardware as possible. The problem with the on-board tests on OutRun, is that they require most of the PCB to already be working in order to use them. So they are mostly useless.

I spent a couple of nights changing the tool so that it would test the 4 Main CPU SRAMS, the 4 Sub CPU SRAMs, Tile RAM, Text RAM, Palette RAM and Sprite RAM.

The tests that Alex had included were far more rigorous than OutRun's onboard tests, with separate address bus and data bus tests.

Screenshot from MAME below, excuse the horrible palette (it's really setup for OutRun not Turbo OutRun)



I programmed this to the boardset and got the following:



The program reported the Sub CPU RAM @ IC 73 was bad.

I also verified that the ICs reported by the program were correct by glitching some of the SRAMs whilst it ran.

After hours of swearing and desoldering (mostly due to the ground plane) I'd removed the offending SRAM and socketed the IC.



Personally, I find these boards an arse to work with. I have a lot of respect for Mark at Retroclinic now.

At this point, the test gave me a different error because the SRAM was completely missing. Promising!



Inserted a replacement SRAM and BOOM - all OK!



Change the EPROMs back to the game and we have attract mode with sound:


Friday, April 14, 2017

AfterBurner 2: Enhanced Edition

AFTERBURNER celebrates its 30th anniversary this year, so it seemed fitting to produce an ‘Enhanced Edition’ to offer the definite experience to fans of the original.

AfterBurner 2: Enhanced Edition (AEE) is a set of 3 replacement EPROMs intended for use on the original arcade hardware. It is a plug and play solution and no hardware modifications are required.

FEATURING:

  • Stage SelectStart the game from any stage
  • New Music Tracks: 2 new music tracks from Hiro himself
  • High Score Saving: The high score table is retained even when the game is powered off
  • Working Freeplay Mode
  • Attract Mode Sound Options
  • Software Dip Settings: Change all settings in software

VIDEO DEMONSTRATION: 



This is free to owners of the original arcade cabinet. If you would like a copy, please grab a photo of you and your machine and fill in the following form.


Full documentation here


Full gallery of happy customers 
here





Tuesday, March 14, 2017

OutRun Influences: Hiroshi Nagai & Naoya Matsuoka

It's well known that OutRun was partially inspired by the film, The Cannonball Run and a European roadtrip. Yu Suzuki has referenced it in many interviews; the film is even mentioned in the game's original design documentation.

However, some other OutRun influences are less well known but equally important. First is the Japanese artist Hiroshi Nagai. His work extensively features roads running adjacent to shining blue sea, bright foliage, palm trees and the colour palette OutRun fans will recognise.



Now we know why OutRun features so many pink flowers!



Interestingly, Nagai provides the cover art for a 1982 Japanese album, entitled September Wind, composed by Naoya Matsuoka & Wesing. OutRun composer, Hiroshi Kawaguchi references Matsuoka's work as a direct inspiration for OutRun's score claiming that without it OutRun wouldn't have been born. 


The album itself features the sound of waves breaking between the tracks, reminiscent of OutRun's music selection screen. Some of the OutRun melodies are influenced by tracks on the album. For example, Passing Breeze, definitely bears some similarities to A Season of Love. Overall, it's the perfect listening material for any OutRun fan! 

Wednesday, January 25, 2017

Out Run: Early Cabinet Screenshot

Here's an early photo of an OutRun Deluxe cabinet. [source]


If you look closely at the screen, you will spot that there are a number of differences from the released version. This must be running an early prototype version of the game.
  • Timer is using the font from Space Harrier. This font is in the OutRun ROMs but not used anywhere. Now we know it was used in an earlier prototype version.
  • Sign art is different in a number of places from release.
  • Debug information above speed on left hand side.
  • No rev counter
  • kp/h graphic is different
  • No route map




This Space Harrier also has some differences from the released version:
  • A step built into the base at the front which was later removed.
  • The side art is different; the underbelly of the dragon and his hair are orange on this version and yellow on the final art.
  • Different rear art, that also extends beneath the seat
  • Different instruction plate
  • Different 'Warning!' stickers on the base
  • Sega logo size on the rear panel and title screen
  • Missing the sliver/red bezel stickers