Porchy

HP10529A repair log

 Equipment Repair Logs  Comments Off on HP10529A repair log
Jun 112016
 

Got myself a new HP logic comparator which had a fault on it.
The fault was with pin 11 on the LED’s.

The schematics for this are available but its so small its pretty easy to trace out just by looking at it.
Using the scope I found all the outputs of the 74L04 hex inverter at location U4 were stuck at around 1.7v. I replaced with with a 74LS04.
hpcomp

While I was poking around I also found the zener diode CR3 had a dry joint so resoldered that too.
Now its all working.

(Ignore the sound, had kids TV playing on Netflix while doing this)

 Posted by at 2:17 pm

BINman 3.5.1 update

 General  Comments Off on BINman 3.5.1 update
May 302016
 

binman351

I’ve been working on this a bit recently, mainly to add a few things I wanted it to do but also did a rewrite of a few things which Caius has been bug testing for me.

-Moved the HEX view to the relevant menu’s
-It can now compare the two loaded files and it will give a match percentage output and say how many bytes are different.
-Can now create a new file within the program and can choose what to fill it with.
-Added auto concatenation depending on the EPROM selected. I recently found myself doubling up (or sometimes more) ROM files to fit into larger EPROM’s and just wanted a quick way of doing this.

There is probably a few other things added/different too.

As always it requires .NET to run

 Posted by at 4:48 pm

ROM dumping and checking

 Guides  Comments Off on ROM dumping and checking
May 292016
 

There has been a fair bit of discussion going on in the background recently about how is best to dump ROM’s from a PCB.
This has mainly been centered around dumping with the intent of submitting them for inclusion into MAME but this still applies if you are dumping for your own reasons too.

Obviously the first thing that you need is an EPROM programmer of some kind. The selection available is massive and not really a topic this post will delve into too much.
I myself have 3 programmers available to use.
My main workhorse is a Dataman 48pro2. Its been fantastic ever since I bought it and the support is top notch too. The downside of this programmer is the cost.
My second programmer is a cheap generic Chinese programmer. The software is not too great and the English translation isn’t all that great either but it does the job nicely when my main programmer complains about voltages being out of spec or whatever.
My last programmer is a Needham EMP-20 (actually have two of these). I was given these from a local company that was having a clear out of their old unused equipment. They are really good but their downside is they are parallel port only and the software is DOS based. Apart from that they both work well.

So how do we dump ROM’s?
At first glance we think it isn’t much more than removing an EPROM from a PCB, fitting it into the programmer socket, selecting the correct device and clicking ‘READ’ in the software.
A lot of the time this is fine but how do we do our best to know that the dump was good? What if one of those old thin crusty legs on the EPROM doesn’t make a good connection throughout the read?
The result of the read under these circumstances will be, quite simply put, a useless dump of that EPROM.
Lets look at this a bit more. Say you are dumping with the view of submitting to MAME. You dump the ROM(s), bundle it up in a zip file and send it off.
Then one of the developers takes the time to add it to the source code and do some testing. Now lets say the game doesn’t work or some of the graphics are messed up.
In some circumstances, say for instance the game was a prototype or something, that developer or developers starts looking for errors either in ROM dumps or the emulation itself. Before you know it he/she has invested a few hours of their time.

The other scenario. You dump the EPROM for your own purposes. Some days, weeks, months or years down the line you need to program yourself a new EPROM because the old one has died or suffered from bitrot. You program it up and fit it but it doesn’t work. Is there something else wrong with your PCB? But what if you just didn’t dump it correctly in the first place and you never realised. You never made the dump public so any potential testers out there couldn’t even do the testing on your behalf and notify you. Congratulations, you’ve now got a useless piece of electronics on your hands.

Either way your dump was bad but we could have potentially avoided this whole mess by carrying out some really easy checks. Lets look at it.
When dumping a ROM we want to be extra sure that every time we read the device we get the same data. Every programmer I’ve ever used will display a checksum of the data dumped (although YMMV) like this.
checksum

If you read the device a second time and the checksum is different from the first time then we clearly have an issue but what if it’s the same every time? The data could still be bad so let’s try physically removing the device from the programmer and reinserting it then trying to read it again. Is the checksum still the same? If not then we are probably going to need to investigate further. If they are the same then how about we remove and reseat one more time just to be sure. This may sound like a waste of time but the reality of it is it only takes a few seconds for older EPROM’s to be read out and it could potentially save everyone a lot headache further down the line.

So now we have dumped the ROM (three times) and we are happy that no matter what we do or how we position it in our programmers we get the same dump each and every time. What next?
In the case of an arcade PCB let see if the dump we have compares to anything already dumped and included in MAME.
For this you will need the latest version of MAME available from MAMEDEV
Open a command prompt at the directory where you unzipped/installed MAME and type ‘mame -romident [YOUR-ZIPPED-FILES-LOCATION]’. If you use the 64bit version then type ‘mame64 -romident [YOUR-ZIPPED-FILES-LOCATION]’ instead.

Here is an example using the rbisland romset. I’ve added a random binary file to show what happens when an undumped file is found.
romident

What this shows is each individual file within the .zip file and the filename associated with each other romset.
The “9100.bin” file is the undumped file and you can see it shows “NO MATCH”. This means that the file is unknown to MAME.

If they are all matched then nothing more needs to be done. If they aren’t a match though then we could be looking at something undumped OR we could still be looking at a bad dump.

Included in the MAME package is a tool called ‘ROMCMP.EXE’. This is another command line utility that performs a variety of checks on your files. For example it will tell you if the dump is all 0xFF bytes or if the top and bottom half of the dump are the same. It can also be used to compare your files against the files currently in MAME to see how much of the data matches.

To use this tool we need our file or files in a .ZIP file.
For this example I( have used the Major Title 2 romset ZIP file and have added an extra binary file which I hand made but made bit 1 (second bit) stuck on using a hex editor.
romcmp

The output is simple enough to see. It shows that bit 1 is always ‘1’.
If you have dumped what you believe is a new ROM set then you can use ROMCMP to compare against an existing set.

Here I used two different sets of Major Title 2 to demonstrate.
romcmp2

You can see most files are identical but there are two that aren’t quite the same (these two are the main program ROM’s for Major Title 2). You can also see that they are both over 80% the same as each other. This is a good sign for a different revision of the same game especially as we have already done the previous checks on the ROM’s to confirm their validity as much as possible.

There may be other steps that people like to do on their ROM dumps but the above will give people, whether its yourself or an emulator developer trying to support it, a fighting chance.

 Posted by at 12:20 pm

Sharp SF-1 (SNES TV) repair log #2

 Console Repair Logs, Repair Logs  Comments Off on Sharp SF-1 (SNES TV) repair log #2
May 222016
 

The 14″ TV is up now.
This one was a lot more involved.
Before starting on this one I had tested the previous PCB with this TV so I knew for sure the TV part was operating fully.
sf1-repair

When powering this up I got no audio or video, just a black screen. Using the external A/V output also gave me nothing.
I couldn’t find anything obvious visually on the PCB itself.
Ive read a lot in the past about SNES repairs and the CPU’s seem to be a weak point. I started prodding around the CPU with the scope and even though all the voltages and clocks looked good I could see any activity.
I had a known working spare SNES which I opted to sacrifice for parts.
sf1-pcbmark

I replaced the CPU and once again checked for signals. This time I had life but it gave up after a few seconds and still didn’t give me any output. This cycle was repeatable on resetting the machine.

I next opted to replace the ‘S-WRAM’ (work RAM) positioned next to the CPU.
Replacing this gave me audio but no video so at least I knew the game was running which was great to hear.
At this point I tried the external A/V connector again and got a good picture.

Probing the ‘S-Enc’ chip yielded no outputs at all despite all inputs being as expected. I replaced this and everything came up good. Time to reassemble and reclaim some bench space.
Thats both of these rare units fixed up.

sf1-pair

 Posted by at 10:21 am
May 212016
 

A couple of friends were looking to get their SF-1 SNES TV’s repaired. Not one for letting such gems go to ruin I offered to try and help out.
There were two units in need of repair, a 14″ and a 21″.
sf1-top

This log will focus on the 21″ version first.

On power up with a game fitted I got audio and a very faint greyed out picture.
I had been given an RGB scart cable with these so as they have the standard A/V output port on them I thought I’d give that a go.
I got this
sf1-sync

As you can see the sync signal is off but I could see a nice colour picture. This gave me initial hope that the PPU’s were not to blame for the grey faint picture.
Taking this unit apart was a bit of a pain with the SNES part being sandwiched in at the top but I got it out and looked for anything obvious.
sf1-pcb

(Note that this PCB image is actually from the 14″ version. The 21″ version has a very similar PCB with only the connector location being located differently. I forgot to take a picture of that one.)

There was nothing obvious so start looking at the missing sync signal first.
The answer was fairly straight forward. The RGB cable I have here uses the composite signal for its sync. The SF-1 does not seem to output a composite signal at all instead it uses the combined HV sync signal on pin 3. Hooking this up instead gave me a nice picture on my test monitor which confirmed the SNES was working great.
So whats happened to my picture on the actual TV unit?
It turns out the SNES outputs separate Luma and Chroma signals to the TV for its picture and not RGB like we initially thought.
sf1-connectors

The connector marked ‘VD’ is the video signals. The black wires are all grounds and the white wires are signal. One of the wires however is the audio output. So there is Luma, Chroma and mono audio on this connector.

Now I know the signal isn’t RGB I can pretty much assume that the ‘S-ENC’ (BA6952F) is used to generate the signals i’m missing.
Using the scope I couldn’t find any valid signals coming from the chip. In my haste I was about to write the chip off but as the output signals were really weird I traced all of the pins. I found the GND on pin 2 wasn’t connected at all and it should have been. I tried reflowing the pin but still no connected so I added a jumper wire to the GND point next to it.
20160518_205235

I was a little nervous about patching it as if the original track (that ran under the chip) had burnt out then what had happened to do that? It could have been a manufacturing defect, Ive seen a couple of those in my time but ground connections are generally quite big compared to signal traces. I didn’t want to remove the whole chip just to check for a burnt trace so I just check resistance between GND and VCC. It looked fine so I powered up to test.
21picture

An absolutely perfect picture! Seriously this picture is really good quality.
I tested all the controls and they seem to work fine too so time to box this up.

 Posted by at 8:18 pm