Replacement CUS60, CUS63 and some CUS64

All you ever wanted to know and more about the CUS60, CUS63 and CUS64


Technical Background

A number of mid-80's namco board featured a semi-custom processor for the main sound CPU.  The processor was,at it's core, basically a Hitachi 6301 which itself is a souped up 6801.  The micro-controller contains 4k of ROMand 128 bytes of internal RAM.  This controller handles the sound effects, music, count-counters and I/O for the games which use it.

The Namco version of this controller had two additional op-codes not supported by the normal 6301 CPU.  

The new op-codes are  0x12 & 0x13 and their function is to add the value at the top of the stack to the X register while preserving all other registers, both op-codes appear to do exactly the same thing..
Interestingly...  in the JAS arcade simulator I emulated these commands as ADX, add A accumulator to X, which worked fine in the places the MCU uses the code, but it's wrong (!)

Versions

There appear to be 3 versions of the chip the 'cus60' marked 60A1, the 'cus63' marked 63A1 and the 'cus64' marked 64A1. The 64A1 is used with Namco system 1 hardware, more on that a little later. The instruction set  of  these MCU's all appear to be the same, running in external bus mode, with the right EPROM, they're fully interchangable.

Interestingly the code in the 63A1 looks like a binary level patched version of the 60A1 (!?!?)  Haven't sat down to figure out exactly what the changes do or if I even really want to do that ;-)


Replacements

So.. having come across a few surplus HD63701 this encouraged me to build a carrier board with the necessary  EPROM and support logic to fit the  images for the two different versions of the micro-controller code. 

The schematics for a 'classic' 6301/3 external ROM system are included here  [HD6301 carrier PCB  schematics],  should anyone want to do a bit of the their own prototyping.  This was the design used for the first test board. It uses a 27c512 only as I have a lot of these handy.

Expanding on this the replacement uses a GAL for address decoding & low-address bus latch, along with a 74HC00 just for inverting a signal and providing the output enable for the EPROM. The other feature is a jumper to swap between 63A1, from the early version of Skykid and the 60A1 used by the other games.

The memory map is also expanded to 8k from the original 4k, $e000 to $ffff allowing some space for extra code. None of the games use this area of memory so it was pretty safe to overlay it with extra ROM.


The main CPU on this example is a 63A701 running in external bus mode so it can read the EPROM.  The HD6303 and HD6301 CPU's will also work. For reference the use the operating mode of '2', extenal multiplexed memory mode.

There had to be a couple of code patches to fix two un-supported op-codes which the original IC did support.

The Hitachi 6301/3 had the nice feature, over the motorola 6801/3 or being able to trap invalid op-codes.  The invalid op-code vector was directed to the extra 4k or ROM where the handling routined simulates the $12 and $13 op-codes, then returns control back to the point the op-code was executed.  This allows all the games to work without patches to the game sound ROMs,  Baraduke, and I think metrocross, used these extended op-codes in their external sound ROMs, so just patching the micro-controller code wasn't an option.


Non-exhaustive list of Games which used the 60A1 "cus60":

Pacland, Skykid, , Baraduke, Alien Sector, Dragon Buster, Metrocross
also the "system 87" hardware which included Rolling Thunder, Hopping Mappy,  Skykid DX

The only game I've found which uses the 63A1 "cus63" is the first revision of Skykid.  My later revision board, whic uses the 60A1 has two of the ROMs marked "SK2-2" and  "SK2-4"

Anything I've missed here ?

Anyway..on the right are pics of the carrier board on a pacland.  So far testing has been great, it's work on everything I can throw at it (!)

CUS64

The 'final' member of the family of controllers is the "cus64" from the'System 1' game hardware. Pacmania, Galaga'88, Dragon Spirit and  Splatterhouse being the most common examples of this boardset.  Now the cus64 , 64A1, seems to be the same micro-controller as the 60 and 63 but with a different core program.  My replacement board works with this board and the correct ROM file for the cus64, however (!)  Weird happenings.. with one of the 60a1, 63a1 CPU's in external memory mode all is fine,  using a replacement 63701 or 6301 the game fails the self test. 

Why, well... from tracing the code execution with my trusty logic analyzer there's a write to memory location, which for some unknown reason, a write of $00 from the controller turns into a $A6  (?)  Haven't figured out why this happens but it does this with all the games tested. It's not the external board or ROM as the original controller works fine (!)

I think it's some odd 'feature' of the original part. A simple patch to the voice ROMs and all works perfectly, it doesn't  even use custom instructions as a 6803 will work just fine too.

 


CUS60 Replacement on a Pacland

Replacement Board Close-up

Basic  Schematics

Click to Enlarge

The 'Advanced' Carrier PCB

 

All done....


Back Home