Jul 212017
 

As many of us know (not only long term arcade collectors/enthusiasts) Toaplan manufactured few but excellent games.Some of them can be considered real masterpieces like Out Zone and Truxton for example.Going into technical details four of them are united by the fact the hardware uses a custom IC to handle inputs: the  ‘HK-1000’.I have partially covered this argument in my past repair log of Tatsujin Oh, you can read it here:

Tatsujin Oh repair log

As said in the above post, two revisions of the HK-1000 were made with same functionality but different package.The first one was ceramic hence very fragile.This is used on Truxton II/Tatsujin Oh and FixEight:

The second one is more robust and it’s adopted on Ghox and Pipis & Bibis :

If this custom goes bad (like it happens very often especially on first revision) you will be no longer able to fully control the two players and in the worst of case the board will be stuck on a TILT message.The only option could be find a donor board but we are speaking of valuable PCBs even if faulty.So some kind of replacement was needed.

There is very few info and documentation about this custom but it seems Toplan engineers embedded on a single IC (the HK-1000, indeed)  all the circutry they used to  handle inputs (but also coin counters/lockouts) on previous PCBs  (Wardner, Out Zone, Rally Bike and others too).I took inspiration from an Out Zone PCB to study the design:

As you can see from the above picture, I highlighted two sections of PCB : the blue one concerns the circuitry for coin counters/lockouts handling, the red one is for inputs (players direction and buttons, TEST, SERVICE, TILT).With this knowledge I started my tests.As testing platform I used a Pipis & Bibis PCB (the cheapest one which carries the HK-1000).I removed the custom and mapped some inputs following the above mentioned design:

This was successful so I started to draw and route schematics for a real replacement.I voluntarily omitted from my design the circuitry for coin counters/lockouts as it’s not a vital part (although I figured it out so I can implement it in a later moment)

I sent the layout to a manufacturer and after few days I received the bare PCBs:

Very few components are needed to populate the PCB :

  • Three 74LS240 in SOIC20 package
  • Three 100nF ceramic by-pass capacitors in ‘0805’ package
  • Three (two 9 pins and one 8 pins) 4.7Kohm SIL bussed resistor networks for inputs pull-up (I opted for thru-hole ones to keep cost down, they can be salveaged from arcade PCBs)
  • Two strips of 24 pins male rounded machine-tooled pin header with 2.54mm of pitch.The corresponding female ones must be used on the arcade PCB.

Here is final result after 5 minutes of soldering:

A comparison with original custom:

Testing on the Pipis & Bibis PCB was successful, all inputs of both players were correctly mapped and working as well as TEST, TILT and SERVICE ones:

As said, this is not a 1:1 reproduction of original part since coin counters/lockouts handling has been not implemented for now but it’s enough to salveage your faulty boards from uselessness.Stay tuned for the next reproduction project!

 Posted by at 4:01 pm
Jun 282017
 

Got some months ago in a trade this pretty mint original R-Type board:

Board was faulty, it was stuck on this static screen:

System is made of three boards:

  • ROM board

  • CPU board

  • Video Board:

Swapping all the boards with a good set I could figure out that none of mine was properly working.So I started to troubleshoot the ROM board since it’s the most simple.The program ROMs were dumped as good but I found a bad 74LS245 @1A:

This gave me a working ROM board and a good starting point so I moved on to troubleshoot the CPU board.Analyzing the NEC V30 (uPD70116) main CPU revealed the interrupt line was asserted (active high on this CPU), here’s a screenshot from my scope triggered with RESET signal

The interrupt is generated by the uPD71059C  Interrupt Control Unit , probing it revealed that input pin 3 (READ STROBE) was stuck low :

This comes from output pin 12 of a 74LS244 @IC72 :

I pulled it :

It failed the out-of-circuit testing:

Finally the board booted but with multiple issues.First noticeable one was a totally missing sound but this was because the analog audio section was modified (by factory) to work in Nintendo cabinets.I simply reverted the mod by installing the missing capacitors @C101, C102 an C108 and removed the jumper wire:

All the other issues concerned the graphics.Some examples:

Honestly it would take too long to explain in details what I did (and maybe I even lost track of it…) before the board worked fine again :

All I can say is that I had to replace  in total 15 TTLs (all from Texas Instruments, are we facing another Fujitsu perhaps?)

But I claimed victory too soon , the board went bad again showing jailbars all over the screen:

I quickly pinpointed this further failure in one of the two ‘KNA6034201’ custom tiles generator on video board:

Testing it on a Kung-Fu Master PCB  (where it’s used for sprites too) gave me confirm it was really bad :

Looking at this PCB I noticed that the other custom ‘KNA6034201’ was replaced by a little sub-board:

Technically speaking the custom acts like a big shift register, it can take up to 24 bit of data from tiles or sprites ROMs, here’s snippet from R-Type schematics  :

 

As you can see in the sub-board picture above the custom functions have been reproduced using six 74LS166 with common shift load and clock signals.So I wondered myself : why not reproduce it in a more modern way?I fired up my CAD and drawn schematics :

Routed them to a PCB layout :

I sent files to manufacturer and after some time I got the bare PCBs:

Here is the final result compared to orginal custom:

Luckily I made no design mistake and testing was 100% successful.Another board repaired and another custom IC delivered to eternity!

 

 Posted by at 7:36 pm

[frsj8112] – Sega PCB 171-5468 reproduction PCB

 General, Projects  Comments Off on [frsj8112] – Sega PCB 171-5468 reproduction PCB
Jun 072017
 

A good friend of the site, frsj8112, has reproduced the MCU bypass PCB that Sega used on some of its games and he wanted to share his work.

The PCB’s can be ordered direct from OSHpark HERE

Huge thanks to frsj8112 for creating and sharing this. Im sure it will help many people out.

 Posted by at 7:58 pm
Apr 232017
 


Its hard for me to believe that i’ve been maintaining this program since 2011.
I’ve added to this as I needed extra functionality and for the last 12 months or so its been untouched but for the last few weeks I’ve been rewriting some parts I wasn’t happy with and changing a few things around.
Its now got to the point where I think its pretty much complete (although i’ve said that before) so though it was about time I did a proper post on some of the things it does and how to use it.
I wont go into everything as I dont think I need to but let me know.

What does it do?
Back when I started this program I wanted a quick, easy and no fuss way of quickly interleaving, deinterleaving and byte swapping files. That’s exactly what it did but that’s all it did.
Take a look

What it does now:

  • Create a new files filled with recurring byte or word values
  • Analyse a file (8 bit or 16 bit) – check for stuck bits, upper and lower halfs matching, etc
  • Bit manipulation – simulate stuck bits in a file & swap bit order of address and/or data bus
  • Byte swap
  • Deinterleave
  • Invert the whole file
  • Reverse the file
  • Split the file in to smaller files
  • Swap the upper and lower half of the file
  • Concatenate up to 4 files at once
  • Interleave in 16 bit or 32 bit format
  • Compare 2 files – checks how many bytes match
  • Display CRC32, SHA1 and MD5 hash values

Creating a new file
Click the ‘Single File’ menu and select ‘Create a new file’
You should see this

You can fill the new file with a byte pattern or a word pattern.
To fill with a specified byte pattern you can enter something like this

This will fill each byte with a value of 0x55
To fill with a word pattern you will enter

This will fill the file with the word value 0x55AA

If the slot is empty you can also load a file by double clicking on the slot.
You can overwrite any loaded file by dragging and dropping a new file onto the slot.

Analysing a file
Analysing a file check for a few things.
First you will need to select from the menu whether the binary file you loaded is from an 8 bit or 16 bit source.
The output from the analysis will be displayed in the Log window.
In this example I have created a new file filled with 0x0

As you can see it has flagged up all the bits (8 bit) as being stuck LOW. This means that throughout the file non of the bits changed from logic state 0.
It also shows that the upper and lower half of the file are filled with 0x0. If the file (or half the file) was filled with 0xFF then this would be flagged instead.
Finally, we have flagged up that the upper half of the file is identical to the lower half of the file.

Viewing the file contents
There is a basic HEX viewer built in to the program. Just double click on any of the loaded slots to view it.

Checksums
There are 3 different checksums that the program can show you.
The default is CRC32 but by clicking on the “CRC32” box you can cycle between CRC32, SHA-1 and MD5.

Compare files
If any loaded file is the same as another file that is already loaded you will get an instant notification in the Log window that is matches

If however the files are not a match, its sometimes nice to see how much of the file actually does match. For example, if you have a a new revision ROM dump of a game you might want to see how much has actually changed. If its just 1 byte different then it could be bit rot or a region code change.

I think the rest of the functionality is self explanatory so wont go into it.
The program is in the software section now.
Please do let me know if you find this program useful, find any bugs or maybe want to see something added or changed (no guarantees though).

 Posted by at 2:21 pm

GameKing multicart

 Projects  Comments Off on GameKing multicart
Mar 122017
 

I seemed to be one of the first to get the ball rolling with Gameking dumping.

I had to make my own part for the cartridge connector. This allowed me to make the breakout PCB.

This worked well enough for my dumping needs but I also wanted to test the dumps on a real Gamking. This led me to the first cartridge test. It has a bunch on things on that weren’t really needed but I was just playing about with ideas at this point.

It sort of worked but would do with some refinement.

This one worked much better but after dumping some 4in1 cartridges we found they didn’t always work properly using the homebrew cartridge. This led to the analyser PCB.

I never did get hold of any 4in1 carts myself so thats as far as that project actually got, although I don’t think its required anymore.

The final product is this cartridge. I believe one of these was used to aid in dumping the internal ROM.

It works fine for single games and a few 4in1 titles.

 Posted by at 1:03 pm