Showing posts with label mod. Show all posts
Showing posts with label mod. Show all posts

Friday, 30 November 2018

C64 modding on

(Part IV of an ongoing series)

A couple of things have been done to the boxed C64.


Arduino programmer port

The PS/2 keyboard adapter is Arduino-based, which still needs updating. I moved the Arduino USB connector, and added a switch for turning off the power line to the C64, so the Arduino can be programmed with the cover on using the normal USB-B cable.

However I still wouldn't dare hot-plug the thing, but at least I don't have to pull the cable out of the motherboard every time.

Left: The cartridge button, Right: The programmer port
This setup helped me in repairing the keyboard adapter code a bit faster. The keymap corresponds better with my "Deltaco" PS/2 mini keyboard, and it's less prone to freezing. It works fine with many kinds of applications.

I also tried to use one of the alternative keymaps to route the arrow keys to correspond with the joystick 1 directions. You know, if you turn the stick in C64 BASIC you get 1,2, <-, space ... This would be nice as then I could keep a joystick only in port 2 and play those rare 1-port games with the keyboard. And the approach does work, for example, in my copy of Cosmic Causeway and Falcon Patrol 2 the adapter gives excellent control.

But in Boulder Dash and IK+, the approach did not work. This is likely because although the joystick port reading has been (unofficially) mapped to various addresses, the keyboard does not come in with the deal. If the game uses those other addresses, it won't work. Well, a nice idea anyway.


Front Panel Cartridge button

I added a cartridge function button to the front panel. The downside of this boxed model is the cart buttons tend to be too far to operate, so this became a necessity.

The contact wires are pulled back below the motherboard, to the vicinity of the cartridge port, from where they are connected to the cart. This requires a small wiring mod to the cartridge too. The IRQHack64 cartridge has a programmer port with GND, but the other pin needed to be brought out with a separate wire.

Crudeness at the backside. The pins connect the cartridge wires brought from under the motherboard.
As an aside, I transferred a fair amount of one-file game prgs to the IRQHack, and more than 80% of them run. This gives me a more positive impression of this cart than my unlucky first experiences indicated. Even in the cases where the game doesn't run, more often than not I can find an image that works.

I'd like to bring the IRQHack SD-card reader to the front, and possibly change it to normal size SD, but this would be a huge commitment to that cartridge, and extending all sorts of cables might not be such a good idea. Updating the IRQHack menu could be on the schedule too, but that requires some more effort.


In hindsight

All in all, I'm starting to see certain weaknesses in this box layout. Mostly the problems could be overcome with the above additions. It could have been smarter to make the additions to a proper breadbox model, like others have done, but this project apparently isn't entirely about smartness.

At least Chessmaster 2100 can be played with the keyboard...
I now have the more finished product C-keys adapter, but whether I will use it in this project or not, remains to be seen. Having the Arduino here gives more freedom and flexibility, but likely the finished adapter simply works better.

The needed changes point towards a further iteration of the box. I might have been on the right track when I thought about more unconventional board positioning, the cartridge at rear isn't exactly the best place for it now.

Again, more pre-planning might have helped in this matter. For example, a pre-emptive "network" of wires and connectors somewhere below the board could have been useful too, as now each new function needs improvised wiring and holes within the box.

Part I

Part II

Part III

Friday, 6 July 2018

Atari 2600jr


Just think that many Atari 2600 games are now about 40 years old. I believe I encountered Atari 2600 in the summer of 1984. This Jr. version is a later acquisition, I got it alongside a bunch of computers in 2010s.

In the past I had already fixed the select/reset buttons (a common problem in Jr) with crude switches, but avoided doing the composite video mod. Except now.

As Ataris are so popular there are a gazillion mods. I followed the mod from a site that happens to be gone now, but it is pretty much same as here. I simply found my board to be similar and the instructions are very concrete.

1 x R 330
1 x R 1K
2 x R 2K2 (=2,2K)
1 x R 3K3 (=3,3K)
1 x Capacitor 100pF

The mod features a 100pF ("101") capacitor, I figured that the n10-labeled capacitors in my inventory should suffice, although I haven't seen this notation too often.

"n10" = 0,10nF = 100pF

(The 'n' denotes both the scale and the position of the comma so 1n0 would be 1,0nF and so on)

I added a tiny board where I imagined all the wires and resistors would go neatly, placing it over the pins that now make up the select/reset switch connectors. The plan fell through and I soldered the resistors directly to the chip as in the site I found. The added board was somewhat helpful for fitting the video cable that goes out of the box.

Without the audio, two solders away
I cut a couple of grooves to the right side of the case, so the video/audio cables can stick out from there. Having the grooves tight keeps the leads in place. A neater mod would have two proper connectors but I didn't have ones that would have fit. I left the RF connector as it is.

I realized I can't use my previous select/reset switches as they collide with my added board! Not much foresight here I have to admit. Also it reminds me how large the switch boxes can be.

So I removed the crappy switches and added two buttons to the top of the case. I could have removed my additions but I was lazy as usual. The new switches are connected with breadboard jumper cables at least they can be detached easily for removing the case.

I played a bunch of games installed into a Harmony cartridge. But is there something wrong with some of the colors, for example California Games has obviously a wrong palette? But games I know well such as Jungle Hunt and Space Invaders seem to have correct colors so likely it's a software version thing.


So, what to play? My own nostalgia-biased shortlist:

Jungle Hunt

A complete jungle adventure. Few corners have been cut in the conversion, but it does not detract much from the gameplay.

Space Invaders

Ok, so it gets monotonous and does not have all the subtleties of the arcade original, but this was my Space Invaders and the first game I played on the Atari 2600.

Berzerk

Ditto here, I kind of dig the chunky big graphics of 2600 conversions compared to the arcade stick figures. Switch on the Evil Otto for more difficulty.

H.E.R.O.


Even if the backgrounds are quite simple, the play appears to be as complete as in any version. Dynamite the walls, shoot the critters, always pick the route with the obstacle. Gets hard around cave 11 or so.

River Raid

The classic vertical shooting game is nearly fully featured as far as I see. Shoot the bridges, collect the fuel, shoot the fuel. Check the B-switch for proper missile behavior.

Ms. Pac-Man

Although the Pac-Man conversion has a bad reputation, the sequel delivers. A proper maze and you can even see everything.

Thrust

My best score so far.
This latter-day homebrew conversion by Thomas Jentzsch is amazing and possibly the best game altogether you can get for the Atari 2600. Considering it's one of the better games on the Commodore 64 it's surprising to see it fully functioning here!

Saturday, 8 December 2012

Night of the living dead Spectrum keyboards

I have started to do some groundwork for some simple 8-bit keyboard projects. The first goal is to connect an original Spectrum keyboard to the ZX Evolution computer I discussed previously. The Evolution has pins for connecting the original keyboard, and this way, a Spectrum keyboard could be used for an authentic gaming experience.
ZX evolution keyboard input pins.
1-8 for rows, 10-14 for columns. (9 is for Reset) The rest are for Joysticks.
The figure is borrowed from the ZX Evolution manual.


Spectrum keyboard membrane, colour coded for columns and rows. 
Each of the 40 keys completes an unique connection between the 5-lane and 8-lane pathways.

With the original Spectrum, the 40 key switches are connected to the motherboard with two pathways, one with 5 lanes and the other with 8. Crossing these forms a matrix that the computer can use to decipher which of the 40 switches are pressed at a time. For those interested in the Spectrum keyboard matrix and the membrane logic, I can refer to this blog post.

Yes, it's a bit crude.
The 20 pins in the ZXevo port handle both joystick input and the Spectrum keyboard inputs. For example, my first joystick adapter is pictured above. The thirteen not-yet connected wires ought to be continued to the membrane. My approach is to do this Franken-adapter first, and if it works, do a better and more interesting solution.

My perhaps biggest concern is how to continue the fragile membrane material with wires. This could be easier with the proper parts, but I usually go first to my existing collection of junk parts. (As can be seen from my joystick adapter.) There is a certain type of connector inside the ZX Spectrum that does the job, but I do not have those kind of parts available. So, I used the two connectors I happened to have:

This image shows the piece of balsawood that fastens the membrane to the connector.

These connectors are too wide so I insert the membrane pathways along with a piece of soft balsa wood. Notice also that the membranes are one-sided. There is also a possibility the connective material in the membrane wears off with too much inserting and removing. I used a broken membrane for practice so I would not ruin a working one. (It's very common for old Spectrum membranes to have some of the pathways broken.)

The "key" chosen for testing is marked with an arrow. This is the key "5" on the Spectrum.
The sharp-sighted might note that my connectors look like ZX Spectrum peripheral connector parts. Indeed they are cannibalized from old joystick adapters. Hopefully I do not need to waste both of the connectors for this project...

I have connected two chosen pins to a multimeter. This way, I can check one key on the membrane I want to use as a switch to complete the circuit.

Pictured from the other side, testing the connection. Give my creation life!

It's not so straightforward to understand how the 8-bit computer reads the keyboard. In this respect, the above test is a bit misleading, as there are no 40 inputs inside the Spectrum which could all be individually read. Thankfully, in this project, this does not need to be deciphered. My task is just to continue the membrane wires to the corresponding pins on the ZX Evolution motherboard. The test was only about the physical connection between the membrane and the electric cables. 


Connecting the keyboard membrane to the ZX Evolution

The test was promising enough so I went forward with building a complete keyboard connector. I cut one of the peripheral connectors in half, so I do not have to waste both of them. I am using a raster board for keeping the connectors in place, and some terminal blocks for joining the cables at the other end to the same plug. I did not want to solder anything at this stage. This turned out to be a good idea because the connections ended up wrong. My terminal blocks are a bit too large for this kind of work but I will eventually abandon them anyway so it does not matter.

A bit difficult to keep this all in position...
As the membrane is connected to the ZX evolution, it becomes apparent that something is wrong. Promisingly I can get some key reactions, but everything comes from the wrong place. At first I thought I might just have got the pathways in reverse order, but no.

I ended up checking the connections directly from the ZX evo pins, connecting each row pin with each column pin with a piece of wire to find out what letters are then displayed on the screen.


It turns out the ZX evolution manual could have been more helpful here. Although the five lanes are in a direct order, as implied by the manual, the eight lanes are really not. I clarified my findings on a piece of paper, tracing each connection explicitly to the motherboard pins. The order is shown below.

The ZX evolution keyboard input port. K1-K8 connect to the wide membrane pathway,
and the D0-D4 to the narrow. Pins 16-20 are for joystick.
As I rebuilt the connections, I could finally use a proper ZX Spectrum keyboard. Now, all the keys work. However, the keyboard can't be really used yet, as this version of the connector is so poorly built. The contraption now needs to be put inside the empty Spectrum case. 

I am already happy to note the Spectrum keyboard input does not disturb the PS/2 keyboard in any way. The Spectrum keyboard can be connected at all times, and all the Evo functions can be accessed from the PC keyboard if needed.

It looks slightly infernal...
Closing the case

I replaced the Spectrum motherboard with the electronics board. I also made sure I could screw the board in place if I want to. There is only one screw that connects the motherboard to the casing, so this whole thing is a very clean to do. I have in no way ruined the original Spectrum, and will probably return all the parts after I've toyed with this result.
The view from under the hood.

I soldered the connectors to the board. I turned the connectors sideways, because otherwise they would not fit inside the Spectrum casing. I had to bend the pins to do this. As the two membrane pathways have the contact surface on a different side, the connectors also face into different directions. I have removed the flat cable connectors and soldered wires directly using the board underside, and these wires now go to the screw terminal block that brings the wires to the ZX evolution. In some ways the setup is more comfortable for the membranes than in the original. These are a bit difficult to insert, though, but that's mostly because of the silly balsa wood solution.

Playing "Bruce Lee" on the ZX evolution with the rubber keyboard.
Carpal tunnel syndrome, I welcome thee!
Was it really worth it? I mean, back in the day people usually went through the trouble to replace the original keyboard with something else. But anyway, the keyboard works as intended. The squishy rubbery feeling is almost a part of the genuine Spectrum games. Playing with something else would be almost like cheating!

I still have some points to consider. If I really want an "authentic" experience, the sound ought to come from inside the case, too... I have assumed my board works with the Spectrum+ and 128 varieties, but I have not tried it out yet.

Eventually, I hope to understand the Spectrum keyboard for connecting some other keyboard to the original ZX Spectrum, or just generally swapping different 8-bit computer keyboards with each other. With computers such as Laser 200, Spectravideo and Spectrum this ought to be doable as the keyboard "modules" usually do not contain any electronic parts, just the connection matrix. The why of such a project might be a bit unclear, but at least in the case of Laser/Fellow it would improve the existing keyboard greatly, and it would be simpler to build than a PS/2 or USB adapter. Anyway, making such a swap would mean rewiring an entire keyboard matrix, so I am not going to do that just yet.

Sunday, 4 November 2012

Spectrum 128k+2 MINI summary


The above shows a modified Sinclair Spectrum+2, side to side with the original rubber keyed Spectrum 48k. I removed the integrated tape recorder. I have described the modding process with detail. Links to Part I and Part II. As an add-on, the picture shows the Divide 2k11 compact flash card reader, which removes the need for tape loading.

I bought my Divide 2k11 from Lotharek.

If you want to repair the tape recorder instead of removing it, here are some pointers.

RWAP software is worth mentioning. They sell keyboard membranes for the Sinclair series.

Schematics for building an RGB cable for the 128k +2. Fortunately this one is probably the simplest to build.

Alternatively, you can order one online from Retrocables. It can come off cheaper than building your own if you don't have the parts and equipment already.




Saturday, 6 October 2012

Sinclair Spectrum 128 +2 MINI part II

(Continued from Part I)

I'll continue describing the MINI ZX Spectrum 128+2 project, a.k.a "The sawed-off Spectrum". I'm not entirely satisfied with the turn of events described here. Also, some of the following stages might be avoided, but bear with me.


I previously cut off the cassette recorder part from the main body. I have also cut about two centimeters off the end of the recorder part. The opening will be capped with this small part. Just as the first cut was aligned with the left side of the tape recorder opening, the second cut was positioned with the right side. This was pretty convenient.

Now the cut edges need to be smoothed and connected to each other.

Sanding the edges


When I understood the project would involve sanding, I was somewhat demoralized. It needs a lot of patience to get good results. I might also end up doing a lot of work that gets me nowhere (I'm thinking of the seam). Yet I could not imagine any other way for smoothing the part edges.

Building the sanding device. The sanding paper is glued to a block of wood.
I used 120 grit sand paper for the more rough work and a 240 grit "metal" sanding paper for smoothing it off. The little end piece was worked against a sanding paper on a table surface. For sanding the face on the Spectrum body, I created a bit more sophisticated sanding setup.

I positioned the Spectrum cover upside down on two thin wooden "rails", so that the body would stay level. I glued a piece of the 120 grit sanding paper on a wooden block. This helps to get the sanded surface into a 90-degree angle. 

The sanding jig in action. The Spectrum body is elevated on two rails. There's also a piece of wood under the sanding block, not very visible in the picture.
(Of course, sanding plastic may be a bit of an unpredictable health hazard, so I'm not really recommending it. Especially machine sanders tend to produce fine particle dust floating in the air. I did some work inside but as the workload got bigger I moved outdoors.)

Sanding the body part with the block did not take long. In fact, the smaller piece was more difficult to do and ended up a bit skewed.

Joining the pieces


This is the stage that I have been longing to get at. Would the two pieces connect well? After the sanding, the connecting surfaces turned out to be better than I expected. I did not think too long and just used a simple generic "Scotch" plastic glue to put the pieces together. Although the parts fit each other very well the seam line remained very visible, as expected.

As can be just about seen from the image below, the piece is at an angle with the body. This was a result of careless sanding of the smaller piece. The process almost automatically eats away the shorter ends, where there is less surface area. Therefore the angle did not stay rectangular. Some more thought could have been used there. Fixing this would have required so much more sanding I let it be.

The seam is coloured by dust and is really not that prominent. The resulting surface is still pretty smooth.
I also did a little extra thing, which may or may not be silly. I used a solder station in 300C setting to melt and fuse the seam from the underside. I hoped to give some additional firmness to the connection, as I don't trust this glue that much. However, I suppose it's not a good practice for connecting plastic pieces. (Also, the resulting gases and stench are quite horrible.) 

Why not "fuse" the topside too with the soldering iron and sand off the residue? I did not dare to. It might have resulted in pits and holes that would have been impossible to remove with sanding.

Also notice the mysterious block of soft gum at the bottom of the picture, a feature of the Spectrum +2. 
I might eventually need to spray paint the cover, to make the seam invisible. But in order to do that, I would need to level the seam completely with some kind of paste, and sand the surface before painting. No surface unevenness can be hidden with the paint alone. I do not have any good filling material now, so this stage will have to wait a little. Of course this somewhat defeats the purpose of sanding the faces in the first place, as with the paste almost any holes could be filled prior to painting.

Before filling off the seams and painting.

So, what was meant to a be a very simple cut, has become a complicated mucking around with different materials, glues, paints, primers and whatnot. Nevertheless, the initial idea has now been mostly achieved. The right side is slightly longer than in the original mock-up image, but this way I could avoid creating problems with the heat sink. Besides, this outcome resembles the original Spectrum 128 and Spectrum+ asymmetrical designs, so it can't be all bad.

Putting it all together


I cut a part out of the heatsink with an iron saw. This way it can be bent tighter. The sink is now so small that it would be possible to make the computer as short as in the original mock-up image. But I'm ok with the results for now.

The iron saw bites the material very well.
Here, the modified heat sink is relocated inside the bottom part of the casing, which has now been put together with glue and melted plastic. The original L-shaped heatsink curled around the corner of the screw holder and faced the grille behind the machine. Now it's bent into a strange block. I just assume this is sufficient, but at least some testing is needed before I can say this is safe.

The not-so-good place for the heat sink.
If I did this again, I'd make sure to bend the heat sink around the original screw holder position. (I may still do it later). This requires sawing off a bit off the heat sink. It would have been easy to saw off before the piece was bent, but I avoided this precisely because I thought I'd avoid sawing the heat sink.

If positioned as in the image above, the heat sink will touch the bottom part of the box that contains the keyboard. (It is held in the top part of the plastic casing, not shown in the pictures.) The heat now probably spreads to that element, which may not be so good. It is much better to push the sink nearer the backside of the computer anyway.

I've only begun to scratch the surface of what can be done... (groan)
I've for now abandoned the idea of painting the surface. The Mini spectrum is still meant to be a useable object, and spray paint wears off a bit too easily. I'm now looking into the possibility of concealing the seam with scratching. So it's more of a camouflage technique. The seam can of course be seen in good lighting conditions, but it's not so prominent as before. It requires some "artistry" to create the best optical effect. What hides the seam from view from one angle may not be sufficient for another.

I like the scratching idea because it solves the main problem and can be still undone if I find a better solution.

Looking back...


For the most part, the 128k 8-bit computers were placed into big, imposing cases with little more inside compared to their predecessors. In terms of weight and dimensions this was a step backwards from the 16-64k wave of 8-bit home micros.

The mod ought to fix this problem somewhat. Let's see what the numbers say:

Original weight: 1.525 kg
New weight: 1.186 kg 
ZX Spectrum+ weight: 0.86 kg
ZX Spectrum weight: 0.55 kg

Original width: 44 cm
ZX Spectrum 128k width: 32 cm
ZX Spectrum+ width: 31.7 cm
New width: 31.5 cm
ZX Spectrum width: 23.0 cm

(Some of the values are taken from old-computers.com. 128k Spectrum weight was not available.)

I'm not saying that smaller and lighter is always better, as there's bound to be a comfortable size for the keyboard and a too light computer might be "swept by the wind". But it is great to get the bulky old 128k+2 more closer to the Spectrum+ dimensions.

The modified +2 required some more work than I anticipated, but it's still not too huge a project. Of course, having all the tools at hand was a big incentive for doing it. It might be a bit expensive to buy all the saws, knifes, glue and sanding paper just for this purpose. But I'm confident it might be pulled off with less equipment.

This has not been an electronics project, so these questions are still open:

-How to rewire the power LED?
-How to build a tape audio in port? (Maybe not necessary)