Tuesday, January 22, 2019

What do you mean I can't title this post "Whats that Pong?"...

..as RetroManCave already used it?

By sheer coincidence, one of my favourite YouTubers did a video on a Pong clone that used an AY-3-8500 chip as it's core. I too, have one of these which I got before Christmas from my Dad. Mine, however, is a little bit different.

Presenting the Interstate 1125 console from 1978 with around 30 years worth of dust! This was THE first games console that our family had and I remember sitting in front of the our ancient CRT TV (with fake wood case and manual tuning knobs) with the mini analogue joysticks and a single, tiny red fire button trying to hit more crosses or score more goals than my twin brother. 

Anybody? No? Dust? Anybody? No? Dust?

Memories aside, there are several interesting points about this console. It has cartridges which is unusual for this brand. The suggestion is that more cartridges would have appeared to slake our thirst for more, and bigger games. Sadly, while others may have been available, we only had the 610 cartridge. I was quite surprised to see while preparing this post that there were at least four other cartridges available, the 601, 603, 604 and 605. 

First things first, I need to find a power supply. Fortunately, my multipurpose supply that I use for my oscilloscope has the right voltage and has the right adaptor - which is rather bizarrely a 3.5mm single pole jack i.e. a mono headphone plug.

Next, this thing will only output RF and, somehow, I need to modify it to do composite as my LCD panel will only take composite or HDMI. Having done this before on the Spectrum I had a hunch that it would be very similar i.e. disconnect the RF modulator and re-connect the input straight to the centre pin of the video out. 

Let's get that top off. First problem was the cartridge which, having been in-situ for NEARLY 40 YEARS didn't want to come out. A few minutes of gently pushing, pulling and wiggling finally released it. I wondered what was inside....(side quest incoming)...

Ohh, look at that!
Inside is an AY-3-8610 chip, manufactured week 44 of 1978 (for reference I was four years old at the time). This is an interesting beast as it is a dedicated 'pong on a chip' developed by General Instruments. They were fitted in several pong type consoles, although the 8610 is actually an improvement on the 8600 which itself was a later development of the 8500. Interestingly, a chap by the name of Cole is working an an FPGA emulation/recreation of said AY-3-8500 chip. See his blog here.

As a sidenote, the cartridges mentioned above most likely have other variants of these chips installed in them. From information on Cole's blog (actually at pongstory.com), there are also chips 8601 to 8607 all with different games baked into them..

Anyway, after putting this cartridge back together, out came the wire cutters and soldering iron. After a few minutes puzzling over exactly which connection would be the composite input to the modulator (it really shouldn't have been THAT difficult!) the mod was made but the question was, would it work?

So, we have power, we should have video and the only thing left to do was to switch it on and see if it would work.

BUT before we do - who the hell designed it so the power connector is the same type and size as the 'pistol' connector and are RIGHT NEXT TO EACH OTHER??

After making sure the power jack was in the right place....success!

Playing with..er..against myself.

Mrs Crashed loves how tidy my desk is.
Sort of. 

The video works without any problem at all and I'm really pleased with the output on my re-claimed laptop LCD panel.

But, the right stick doesn't work. And the 'programme' button doesn't either. Bugger.

A bit of fiddling and the programme button suddenly sprang into life. Probably just some more dust.. Cycling through the games was a trip down memory lane and an eye opener for my 13 year old who is more used to 3D open world shooters (yes, Fortnite). When I say 'eye opener' what I actually meant was that he rolled his eyes at my cackling at getting this partially working.

Anyway. The joystick. On this model the joysticks are actually connected via a DIN plug into the top of the console. Other Interstate consoles, those that did not use separate cartridges, had their joysticks or paddles wired directly into the main unit. They all use a handy storage system where they click into place on the case though, which I actually quite like.

The construction of the joysticks is fairly crude but they are analogue sticks. Two potentiometers are mounted at right angles and the movement of the stick is translated via a simple gimble. The fire button is a standard momentary push switch. The left joystick works without any problem except for the fire button being a bit sticky. The right joystick did not. It would occasionally show up and down movement but there was no left/right movement at all.

Dismantling the faulty stick completely, revealed that the potentiometers had some corrosion (liquid ingress maybe?) and so were unlikely to work ever again...

(Yes, I can see a wire's come off!)

Potentiometer separated
What to do? Well, they seemed to be 100K ohm pots and I did have some of a similar design. Sadly, they didn't fit and I think the ones I had were linear rather than logarithmic. I managed to wire them up on a breadboard and manually twiddle the pots but, apart from being not a great way to play a game, they just weren't quite right.

The problem is that pretty much all of the games on this thing require two players so only having one working joystick leaves it pretty useless. So I have taken a gamble to bag some spare parts. I have got a cheap Interstate console on the way via eBay. It's not the same model BUT it does use the same joysticks. Its an Interstate 1110 whereas my unit is an Interstate 1125.

Next time... we find out if the joysticks really ARE the same.

Saturday, January 19, 2019

The (Joy)Stickiest Situation Since...

...Sticky the Stick Insect got Stuck on a Sticky Bun (**UPDATED**)

Updated to correct a bit of a wiring issue later on....

I have never owned a Commodore 64. I would love to but the hardware can be expensive and some parts are becoming R@RE!! L@@K!! and difficult to find, especially the SID chip and PLAs. So the C64 Mini sounds like it would be an ideal substitute. For the bargain price of £45 in the Amazon sale, Mrs Crashed bought me one for Christmas.

My C64 Mini 

Many things have been said about this baby C64 and there are lots of reviews so I won't bore you with unboxing pics or my own review. Check out the reviews from The 8-bit Guy and others if you want that.

8-bit Guy - Initial Review
8-bit Guy - Review of NTSC version
Nostalgia Nerd

This blog is specifically about the joystick supplied with the C64 Mini. To be blunt, it's crap. It's styled on the Competition Pro which is regarded as one of the best joysticks ever. Sadly, this version is a pale imitation of such greatness. Gone are the positive microswitch clicks, to be replaced by a vague squidginess which is distinctly uninspiring. Don't get me wrong. I appreciate that this type of thing has to be built to a price point and the overall experience is very well executed, especially with the latest firmware updates. But the joystick just isn't very nice. Or very strong. Several reports have appeared of the stick actually breaking off at the base of the shaft following a particularly vigorous waggling.   Ahem.


Double Ouch!
So, what to do?

Take it apart and have a look inside. That's what. And lo and behold, the main board in the stick contains individual rubber buttons for each direction and for the fire buttons. This means that the main digital functions in this stick operate the same as any other Atari style stick. I had a thought that maybe I could wire up a joystick port and hang it out of the side. That way, I could connect a decent joystick for playing a game and just keep the provided one for menu selection. And I wasn't the first to think this either.

On the C64 Mini Facebook group there were already pictures and diagrams of how to add a DB9 port to the C64 Mini stick. Nice.

So, here's my experience. You can think of it as a tutorial if you like. It's not intended as such but I shall try to make it so that you can follow along with what I did and the problems I had. No responsibility is accepted if you attempt to follow this and you end up damaging your C64 mini, crashing your car or blowing up the cat. Note that your warranty will almost certainly vanish in a puff of smoke so this is not for the faint hearted.

First things first, I needed a DB9 male plug. I have a bag full following a 'misorder' while I was replacing an Amiga mouse port. They are board mount but will do the job with careful soldering.

Yep, it's a DB9 plug...

Next, I need to work out which wires would connect to which pins on the back of the connector. As luck would have it, I built a joystick tester over Christmas so I had a perfectly good diagram already drawn with the pin outs. I modified it for this purpose once I had the board out.

My corrected diagram!
(First attempt had an error!)

I dismantled the stick and removed the board. Then I took off the silicone pads/buttons. Note that the fire pads/buttons on my unit were a different colour to the direction buttons and need to be replaced in the same location. Put them safe.

The board should have a small copper pad next to each direction and next to the fire buttons. I soldered a wire to each pad being sure to make them over-length so it would be easier to put the plug where I wanted (but see below).

Then, using the diagram, I soldered the other end of each wire to the correct pin. Note that the ground connection also needs a wire. Its the black wire on the main cable into the stick. On my unit there was a solder pad helpfully tucked behind it. Also note that if you're following the Atari standard then only one fire button should be connected to Pin 6 on the DB9 plug. On my stick this was the one labelled S1. The other switch labelled S2 can be connected to Pin 9 on the DB9 plug which will then support two button type joysticks although I think that these are quite rare.

All of my connections are red, except for the ground wire which I used blue.

Wires Soldered in Place

So now you should have a board with an unsightly plug hanging off it. At this point I decided to test mine and found a bit of a serious problem. I plugged in my ZipStick and switched on the C64 Mini.

  • No smoke? Check.
  • No unpleasant burning odours? Check.
  • No fuses tripping? Check.
  • Display appears? Check.

But as soon as I clicked 'right' on the ZipStick the cursor kept going, even after I let go. It wouldn't stop and rendered it unusable until I reset the whole thing or pulled the ZipStick out. Hmmm. Curious.

A quick visit to the Facebook group revealed that this is a known problem. For some reason, the length of the cable causes the C64 Mini joystick controller to get confused when a button is pressed. I still don't fully understand why but if I find out, I shall add a note to the bottom of this post.

Now, I collect various bits of retro computer stuff and there was no way I was about to start chopping up the cable of my precious ZipStick. Fortunately I had a spare cable from a really old and really crap joystick which I just cut off. My initial thought was to wire in the shorter cable with the original cable in-situ but after a bit of faffing I found that this made no difference. The presence of the original cable still seemed to be causing problems. However, if I removed the original cable completely and then tried the short one the ZipStick worked fine. Go figure. So, I soldered the super short cable into my ZipStick and put the original away safe.

With testing complete it was just a matter of mounting the DB9 plug inside the case. This is where I hit problem number 2. A couple of my initial cables were too short to allow me to mount the plug at the back of the stick. I wasn't about to de-solder everything again so I did the only thing I could. I mounted it on the side. :)

First I drilled several holes in the rough shape of the 'D' of the DB9. Then with a strong blade I cut through the holes are removed the plastic from the initial hole. Then I took a smaller blade and carved out the plastic until the shape was large enough to accommodate the DB9 and filed down any sharp edges. I then marked the location of the two screw holes and drilled to allow the bolts through. A couple of the internal braces on the top and bottom case had to be cut off to allow the plug to fit but this was easily accomplished with a pair of wire cutters.

Then it was a simple* case of pushing the plug into the hole, lining it up and screwing the bolts in.

*simple if you have three hands.

Anyone have a spare hand?

Hole gouged out...but successfully mounted. :)

Finally, I put the main unit back together. This was not as easy as it sounds as the little red buttons kept falling out. And then the cables kept catching in the screw posts. Sorting that out then jiggled a couple of buttons out of their slots.. and so on. This bit took me about fifteen minutes of contortion and swearing but I got there in the end. And it doesn't look too bad.

Installation Complete

Just plug in any standard DB9 joystick.

Bear in mind that by mounting in on the bottom half of the case (which is simple as it has loads of room) the plug is pointing down. So when a joystick is plugged in, it will push the side of the C64 stick upwards. This isn't a huge problem but something to remember.

And that's it.

For information, the cable on the ZipStick is 48cm or just under 19 inches in length from the end of the plug to the body of the stick. Your mileage may vary.

A happy by-product of this escapade is that, because the C64 mini joystick is a fully fledged USB game controller, plugging in the ZipStick allows me to use it on my modern Win10 PC! Nice.

Here's some more pictures that I took which may be useful for someone:

I've just spotted a slight problem with my wiring. Nothing drastic! I have wired button 2 to pin 5 instead of pin 9! Doh! Fortunately, pin 5 doesn't do anything and, as I don't have any two button joysticks I shall probably leave it as it is. :)

I've now corrected the wiring as there was an issue with the original post relating to the S1 and S2 pads and the pins that they connect to. S1 should be pin 6 and S2 to pin 9 as shown on my fancy (not fancy) drawing diagram thing back up there somewhere.

In my original diagram I had S1 from the C64 joystick going to pin 9, but it should go to pin 6. And S2 is shown as going to pin 6, it should go to pin 9!!  I found this out as the Zipstick I used works fine on the C64 Mini but DOESN'T work properly in WinUAE. This sees the Zipstick fire button as button 2.

I guess that the C64 mini just translates either button to be 'fire' but WinUAE is specifically looking for button 1 to come out of the USB and I've inadvertently connected up button 2 instead..