BGOllie

May 032019
 

A while back I got my hands on a cheap CPS1 set for Street Fighter 2 CE. The reason it was cheap was that the A board was not working. As we know by now, these A boards are dying quite fast and in some cases the culprit is the Custom CPS-A-01 chip for which there are no know replacements as of yet.

Let’s have a look at what we get on screen first

So it seems we’re only getting half the lines in the sprites and , while it’s not visible on a screenshot, the other half is flickering slowly too.

Looking at the schematics we can see the two parallel banks of rams processing each odd/even lines of sprites. These are coming straight out of the CPS-A-01 GPU IC. Let’s check out the DT/OE enable lines or the rams first.

Looking at them in with the scope reveals a couple of issues:

The bottom one is pin 21, and it’s not really toggling apart from that one regular jump, while we can see that the other line is toggling all the time. This is why we’re only seeing half of the sprites: one bank is not being enabled.

The other issue is this jump on both lines which is most likely why the entire sprites flicker regularly.
These are coming from Pin 21 and 47 of the cpsA .
bank A pin 21
bank B pin 47

Tying the enable line of bank B to bank A will restore the sprites but we still have the issue of the flickering sprites… in a nutshell, the CPS-A chip is fried and this A board is toast.

Luckily a viewer of the youtube channel (thanks Kris Ankers!) sent me a spare A & B board.

The board is in unknown working state . Checking the few remaining proms it’s another SF2 CE , not that it makes much difference here as we’re only interested in the A board. Let’s replace the A board on my other stack and fire this up

…nothing. board is dead.
A quick visual inspection reveals a few corroded badly corroded sockets on the BUF1 and ROM1 pals. corroded is an understatement here too since the socket were missing legs that had completely disintegrated.

Let’s put new sockets in place and see what we get.

Still no boot. I took both pals from my other set and dropped them in.
After some more swapping I found that the Rom1 pal is working so it was just the BUF1 pal that needed to be replaced.

Success!! The board is now booting and playable. Sound is also working fine.

But it seems we’re missing the red color.

A look at the schematics tells me me which ICs are handling the rgb output. We’ve got two rams outputting to 2 LS273 flip flops. This is then sent through ls07 and ls367 buffers, through resistor arrays before being output to rgb.

The difficulty here is that apart from the legs of the rams and resistor arrays which can be probed from the underside, the other ICs are SMD and hidden by the b board so I am not able to probe the legs. Time for some logical guess work :

Since the pairs of ls07 and ls367 are shared across the colors it’s unlikely one of those has failed or it would affect more than one color (still possible but unlikely)
Two resistor arrays are needed per color. If one had failed, we’d get some red at least but here it’s all gone and while it’s possible, it’s unlikely two are gone
So I’m first going to look at the RAM at 1C and the 273 at 4C
Probing the RAM seemed ok so I decided to remove 4C and replace it.

Bingo!

Behold a working (for now) Street Fighter 2 CE CPS1 stack. It’s a bittersweet victory though as there’s no telling when that CPSA chip will fail (not if but when) . But for now I’m going to enjoy some Capcom fighting. Thanks Kris for the PCB donation !

And for those who prefer the video format…

Capcom 1942 PCB repair log

 PCB Repair Logs, Repair Logs  Comments Off on Capcom 1942 PCB repair log
Apr 192019
 

I recently got a few boxes non working pcbs from a friend of mine and decided to start looking at them.
This is the first one, an original Capcom 1942 pcb.

It came with a jamma adapter so I was happy I didn’t have to spend time making one.
Upon starting the board, it came up as evident why it had been marked as non working
No Background layer instead showing some corrupted background
Some sprites were showing up incorrectly and only half the sprites was visible on screen
Luckily the sound was all working… for now.


Since the board was very dusty, I went ahead and cleaned it and checked all the eproms in mame.

When putting the boards back together I quickly discovered the board ribbon connectors were corroded.
I changed those and gave the sockets and clean and now the board was booting to a much more acceptable state
The background layer was restored but the sprites were still “halved” and showing halved white lines across the screen.

I first thought I’d address the halved sprite data.
The schematics show that they are processed by two parallel identical circuits (page 16 / OBJ LINE BUFFER)

I started probing around the RAM at J4 and found Pin 15 and 14 of J6 (74ls163) were set high.
Comparing the readings from the other half of the sprite processing at F4 gave a different reading.

I tried to piggy back a known working ls163 and it completely restored the sprites and removed the vertical lines .

Time to remove it and socket a nice new IC. ( btw, this was a Fujitsu IC, what a surprise)

Nice ! Now to address the other sprite issue with incorrect sprites being displayed in specific segment.

The eproms had checked fine so I reasoned this was an issue at the addressing level.I assumed that a problem on the data bus would give us random or consistently corrupted data, but here we have very valid data being used in the wrong spot.

So I thought I’d start looking at the LS153 at M3 and N3. Indeed pins 7 and 9 of N3 were floating.


Replacing it completely restored all our sprites… BUT
I’ve just lost all sounds!! The entire board when silent.

While I’m full aware this can happen with boards it doesn’t mean it’s not 100% heartbreaking, especially when you thought you’d completely fixed the board.
sooo looking at the schematics for the sound system at page 3 I can see this is generated by two AY-3-8910 square wave generators.

The output of both chips on pins 3,4 and 38 were completely silent. So I went ahead and re-checked the eprom first and it check fine. Looking at the data lines I could see a sort of “compressed signal” so I was wondering if sth on the data bus was causing the data levels to be that way and was preventing the sound chips from toggling high and low and thus generating the signal … maybe ?

I went ahead and removed the z80 and ram at E11 and C10 respectively but nope, they checked fine. I did the same thing with the ls374 flip-flops at C8 and D8 since these drive the sound generating events. No luck. I went on many wild goose chases with this issue and still couldn’t find anything wrong. A quick chat with Porchy and his advice was to get some sleep and leave it alone for a few days…

So I did that.

Picking this back after a week or so, I used a wire connected to ground, and driving the OE line on the ram with it, I was able to hear some sounds and music at random intervals, this meant the data lines were ok and could trigger the sound ICs. So I moved away from the Z80 section of the circuit and that the issue was most likely with the chip enabling section of the circuit so I started looking at the ICs driving the enable lines.
I checked D9, C9 and B9 but all the signals seemed healthy on the scope. Comparing this with a known working board I couldn’t seen anything jumping out at me. This is where I wish I had a proper logic analyser but at least I felt I was on the right path. But still I had a feeling I was looking at the right area, I started removing and testing D9, C9 (mental note: invest in a logic comparator) and then finally B9 which tested faulty

The last IC on that entire sound circuit !!

Looking back at the circuit it makes sense, this IC enables the output control of the LS374 driving the event data into the sound circuit. Without this, the sound circuit doesn’t “know” it’s supposed to generate a sound.

Replacing it restored all the sound circuit .

Board all fixed, and lessons learned:

  • Sometimes getting some sleep and leaving a board alone for a while is best
  • Always check the enable lines first
  • … and start looking into getting a logic analyser.

 

 

And for those who enjoy a repair in video form :