Showing posts with label Commodore 64. Show all posts
Showing posts with label Commodore 64. Show all posts

Friday, 1 April 2022

Getting the C64 Online with WiC64

The last time I was in Berlin (bear with me, this is relevant), I had occasion to be sitting outside the Hauptbahnhof in Washingtonplatz enjoying a baguette in glorious sunshine. There were a bunch of beggars going around all the groups of other tourists who were also taking a moment in the sun. Eventually, a beggar ambled over to me and asked for money, in, as you would expect, German. Now, my German is not good; one might even venture to say it's non-existent. I am not proud of this but these are the facts. I apologised, and told the beggar I didn't speak German and he proceeded to relate the biggest bullshit hard-luck story you've ever heard in, well, in perfect English. And I do mean perfect English, and I do mean exceptional bullshit (a convoluted, far fetched epic). This put not only my lack of German to shame, but also my own spoken English. Sometimes I wonder what the hell I did actually learn in school. Very little of use to me now that's for sure. Anyway, if the beggar had had the decency to tell the truth I might have been tempted to part with a Euro or two, but I don't like to pay for bullshit, in any language.

So, let's get to the relevance of my embarrassing linguistic failings. I heard on the Commodore grapevine that there was a new product being spoken about, especially amongst German enthusiasts. The product was the WiC64 and the grapevine in question was forum64.de. And what I read there intrigued me. Intrigued me enough to translate every single relevant page in that forum a get to grips with this new beast of a board. Thank god for Google Translate which does a terrific job of making sense of even a fairly technical language such as this so that even this hopeless monoglot can fully understand the details.

So, what is the WiC64? Here's a translated quote directly from the manual:

 "The Wireless interface for the Commodore 64 - aka WiC64 - is a parallel WLAN interface for Commodore computers with a user port connection. In contrast to the previously known "modems", the WiC64 works in parallel mode with 8 data lines, 2 handshake lines and a control line. This speeds up data transmission by a factor of 20: The WiC64 can load 202 blocks / 50kb from the Internet in 2.5 seconds – via HTTP:// or TCP connection. 

It gives the computer full access to the Internet and the possible uses are almost unlimited. From simple applications such as synchronizing the time with an NTP time server via the Internet, loading data and programs from web servers or from PHP scripts to complex chat and message systems, everything is possible."

You gotta admit, this is intriguing right?

So, before we get into the meat and bones, a bit of history.

Details of the project were first published in October 2021. The developers are (with apologies if I have missed anyone):

  • Hardy Ullendahl (aka: LazyJones) - Software (Database PHP, Chat Program)
  • Henning Harperath (aka: YPS) - Software (Start Program)
  • Sven Oliver Arke (aka: KiWi) - Software (ESP32, WiC64-Kernal and various tools for the C64, MicroMaze game) / Hardware (design)
  • Thomas Moller (aka: GMP) - Hardware (layout creation and Implementation module and 3D printing)
  • Retrofan - Graphic design.
The WiC64 project is open source which will allow future developers to expand on current functionality.

The whole idea seems to have been to take the complexity out of getting the C64 online by developing an entire ecosystem: the hardware and software (including an online portal) to make this as simple, and fast, as possible. This is not a traditional modem, and by clever use of multiple data lines, manages to achieve transfer rates far in excess of anything else currently available.

Theoretically, this means that that after initial set up, the user simply plugs the board in to the user port, switches on the machine, runs a single program and the computer will connect to an online portal where you can access chat rooms, games and access software to test your connection, amongst other things. The speed of the connection makes things like online multiplayer games, and real-time high score tables feasible. That, at least, is the Unique Selling Point. For the hardcore enthusiasts, this team have also developed a kernal which will allow you to access the internet without needing to launch the software but I will not be doing this.

The team have created a site at www.wic64.de/ which is a repository of all the files you will need. Whilst the site itself is English, much of the documentation is in German but as I have said, this is no barrier and Google Translate will do a fine job of helping you understand everything.

Observation: Is a closed ecosystem a good idea long term? Who is hosting the server for example? What happens when (not if, but definitely when) they decide to stop hosting it?

Lets look at how this all comes together in practice. I bought the board on the 16th March 2022 from restore-store.de for 32.67 EUR (approx. 27.31 GBP or 35.98 USD) including delivery to UK. I received dispatch notification and tracking number on the 20th March. I took delivery on the 26th March, 10 days after ordering.

In the box you will receive the main PCB, an OLED screen, an ESP32 board and the 24 pin user port connector.

WiC64 Parts. All Components.

Step 1.

First course of action was to bend the 24 pins of the user port connector closely together so that they could rest against the solder pads on both sides of the PCB. I simply did this with my fingers and bent them close enough so that they gripped the PCB; nothing difficult there.

Step 2.

Next step was to solder the connector to the PCB.

WiC64 soldering connector


I found this a little tricky. Soldering on top of the PCB necessitates soldering between the tall plastic ESP32 connector and the plastic user port connector leaving very little room for error or risk melting the plastic. As always I just took my time though I would have made my life a lot easier if I hadn't knocked back a strong coffee 20 minutes beforehand resulting in slightly trembling fingers! The rear side was much easier. Tricky as this was, mission was accomplished with no solder bridges and no melted plastic. The connector was both very secure and correctly perpendicular to the board. Phew!

Observation 2. The need to solder is a barrier to entry for some potential customers. Many are not confident with a soldering iron. I guess this isn't aimed at the casual user which is strange given the apparent raison d'être of making online access easy. To me it felt a bit like an initiation.

Step 3.

Plug in the ESP32 board. The main PCB clearly indicates that the antenna of the ESP32 must be to the left. Anyone struggling with this part has no business being near the board!

WiC64 inserting ESP32

The ESP32 is the brains of WiC64. It is a system-on-a-chip microcontroller with integrated Wi-Fi and comes preloaded with firmware which is great as this saves us the hassle of connecting this to a PC and installing firmware ourselves. There's some RAM and ROM built in and these are obviously being used for the firmware and to store router SSID and password details.

Step 4.

Finally (from a construction point of view) you must plug in the OLED. It's not as snug in its socket as I would like and with no other support it does tend to sag at the edge beside the ESP32. A pair of nylon risers (10mm) screwed into the holes at the base of the OLED might combat this.

WiC64 inserting ESP32 and OLED

Other than the soldering, everything else is a synch. I wanted a case for this and .stl files are provided at WiC64.de so I used these to have one printed up. Details further down.

Connecting

With the build complete, let's see if this thing works. I plug it into the user port of my newly built SixtyClone for the first time and switch the C64 on.

WiC64 powered on

Well this is very promising! That's a lot of LEDs and they all seem to be working. The guidebook advises that the LEDs mean the following, from top to bottom:
  • Green: If on, the C64 is sending data to the ESP32. If off, the ESP32 is sending data to the C64.
  • Yellow: 9V AC is present at the user port.
  • Red: 5V DC is present for the ESP32.
  • Blue: Same as the Green LED - if on the C64 is sending data, if off the ESP32 is sending.
  • Red: ESP32 is being powered.
There are also four buttons, the functions of which are also described in the guidebook. The two large buttons on the right side of the main PCB are, from top to bottom:
  • Function Button: the guidebook states "Pressing this for 5 seconds will disable the status LED" however in practise what this does on my version after a 5 second press is to invert the OLED display AND switch off the LED. I will not be using this.
  • Reset: Will reset the C64.
And the two smaller buttons on the ESP32, again from top to bottom:
  • Boot (ESP32): holding this for 5 seconds will deactivate the WiC64, holding it again will reactivate the WiC64.
  • Reset (ESP32): will reset the ESP32.
With power present and with the C64 working perfectly we have no conflicts, so it's time to configure the Wi-Fi.

To do this we need to obtain some software, and again this is available from wic64.de. At minimum you will need to download the file "WiC64 Portal Launcher". I also downloaded the zip file "WiC64 WLAN Config & Scan". The latter zip file contains two programs:


If you've read my page here, you will know I use a pi1541 as virtual disk drive for my C64. The downloaded files above need to be transferred onto the SD card in the pi1541. Normally, to browse and access files on the SD card with the C64, I use the default file browser (fb.d64) and this works perfectly. For ease, I like to move the downloaded PRG files into d64 disk image files first though. I use DirMaster for all my disk image needs.

I used the program WLAN Config to manually set up the WiC64 with my router details (SSID name and password) because I wanted to see my Wi-Fi password as I typed it and this program allows you to do that without obscuring the password with *** (WLAN Scanconfig would have worked too). I did this because my password is a combination of special characters, numbers and upper and lower case letters and whilst getting special characters is explained in the guide book, it wasn't crystal clear how to get upper case. It's actually perfectly simple - default is lower case and simply holding shift will give you upper case. Submitting this resulted in the WiC64 immediately obtaining an IP address from my router.

WiC64 OLED display
SSID obscured coz I don't trust you ;-)

The details shown on the screen are easy to follow:
  • Along the top of the screen is the assigned IP address.
  • Next the SSID of the router you're connected to (obscured in this example)
  • Next (-72) is my Wi-Fi signal strength in decibels per milliwatt (dBm). -30 would be the very best you can hope to achieve, my -72 is pretty mediocre but it will do.
  • Next "config changed..." tells me I have just changed the configuration by updating SSID and password. These are stored in the ESP32 so setup is a one time only thing. The guidebook tells us that this line is "primarily only of interest to programmers", by which it means programmers developing software for the WiC64.
  • Finally on the bottom three rows are creator credits and the date and time of the installed firmware
So far, so freaking good! Gotta say I was stoked to get this far without any show stopping issues. And with a WiFi connection established, it was now just a simple case of running the "WiC64 Portal Launcher".

For me the portal loaded very quickly - about two seconds. Clear and concise menus make this very simple to navigate with up, down and return keys and it definitely feels quick and responsive. Also it looks terrific, so much kudos must go to the designers! Very, very impressive.

WiC64 Portal


The first thing i wanted to check was if I had the most recent firmware. I did:

WiC64 Portal


The next thing I did was register. You will be asked to enter a username, password and email address and so, like all registrations of this nature, its prudent to know what username you'd like to use in advance. My registration was accepted and I was in. I'm not sure what happens if you enter a username already in use.

Separately, I received a confirmation email that my account was ready to use.

With full access to the portal I browsed through all the menu options and investigated some games and demos which load straight from the portal in seconds. It's honestly quite astonishing!

WiC64 Portal
The lone chat room

WiC64 Portal
Submenu of the File Area

WiC64 Portal
Submenu of Internet

WiC64 Portal
Submenu of Setup and Config

WiC64 Portal loading a game
Decathalon loaded from "Online Games"

WiC64 Portal loading a game
Pole Position loaded from "Online Games"

CSDb

I  want to spend a moment talking about the CSDb Browser on the WiC64 because theoretically, this is a game changer. For those not familiar with CSDb, it is described as:

"CSDb (the Commodore 64 Scene Database) is an attempt to gather information about the Commodore 64 (C64) scene throughout time and store it in an easily accessible and heavily cross referenced database.
Here you can find information about the sceners, groups, releases (demos, intros, tools etc.) and events (parties) that have a connection to the C64 scene"

The CSDb Browser for the WiC64 was developed initially as a standalone program by Steve Ody (aka CSixx) and was subsequently incorporated into the WiC64 Portal in February '22 so as I write this is all very, very new.

On the WiC64, from the main menu select "Internet" and the first entry in the Internet sub-menu is "CSDb Browser". Select this. The Browser opens:

WiC64 Portal CSDb Browser

To determine the effectiveness of this browser, let's search for a game. Like the menu says, I press "S". This loads the search screen:

WiC64 Portal CSDb Browser

Here I press "Q" to enable a query, I type the name of the game I want to search for, in this case "ghostbusters". I press "Return" to commit the search term (as you can see that's not in the on screen instructions) then press "S" to start the search. Quite quickly the search results appear:

WiC64 Portal CSDb Browser

As you can see, I'm being presented with 25 results, six of which appear on this page, and the rest can be browsed by pressing the ">" button to go forward and "<" to go back. On these pages you just press the number corresponding to the result you want to load. In this case, pressing "1" for the first entry did not work; I will talk about that in a minute. However, pressing "2" did work so here's what should happen. First, the Release Info screen opens:

WiC64 Portal CSDb Browser

Here I press "R" to run the program. After a few moments it starts to load:

WiC64 Portal CSDb Browser

And a little later (after the obligatory crack screen):

WiC64 Portal CSDb Browser

Success! The game loaded and played perfectly. The total time from pressing "R" to game being loaded was around 23 seconds (this includes getting passed the crack screen). This is a remarkable time. By comparison, loading the same game from my Pi1541 (and getting passed the crack screen) took 69 seconds (with Epyx Fast Load).

Now if this had been a repeatable exercise, I would have said this was a game-changing triumph, however this was the only game I could get to load. Of all the other 24 results found for Ghostbusters, not a single one would load. They either partially loaded then crashed, or simply timed out and the WiC64 returned to a frozen menu requiring a restart.

I tried this with other games too, "Commando", "Elite" and "Grog's Revenge" and whilst the Search function consistently worked perfectly, as did loading the Release Info, nothing else would load from there I'm afraid. At the moment it looks like I just got lucky finding one game which worked early in my experimenting.

Thinking perhaps there was a problem with my newly built 250466 SixtyClone, I repeated this exercise with my original 250407 breadbin and the results were identical. So yeah. Very disappointing. I could be persuaded one machine was glitchy, but not two, so I'm confident the problem is not at my end.

Browsing the database with my PC, I've had a dig around to see if I can see what might be going on. 


CSDb Search

As you can see from the screenshot above, searching the database for Ghostbusters again, I can see that there are actually 205 matches, but the first 25 shown here correspond with the 25 made available on the WiC64. Clicking each of these reveals that most of these links are ZIP files, including the second search result in the above list which is the same one I could get to work, so cleverly the WiC64 CSDb Browser is unzipping the files before loading them (I think).

I downloaded a bunch of these on my PC and opened them in Vice, and they all played perfectly so I'm at a loss as to why they aren't working with the WiC64. One works so why not the others? Gotta admit, that's disappointing as access to CSDb would make hundreds (thousands?) of games instantly and easily available. Based on my experience with two different machines however, it seems the CSDb Browser (version 1.4) is broken and a bit of digging around the website where you can download the stand alone program, here, reveals the following quote:

"This is a work in progress and contains many bugs and virtually no error handling. Use at your own risk :)"

Obviously I'll be keeping an eye on this and doing more investigation.

3D Printed Case

As I mentioned above, I wanted to have a case for this to stop my grubby paws touching the electronics and give a degree of protection. I downloaded the .stl files provided at WiC64.de and used a Powder Bed Fusion (PBF), Selective Laser Sintering (SLS) process with PA2200 Nylon which was then dyed black, naturally.

This was stupidly expensive, costing far more than the electronics, but the results were magnificent:

WiC64 3D Printed Case fascia

WiC64 3D Printed Case base

WiC64 3D Printed Case with electronics

WiC64 3D Printed Case complete

WiC64 3D Printed Case complete


With the exception of the hole for the function button, seen in the last picture (above) at the top right of the case, the result was millimetre perfect. The two cut-out buttons at the bottom right of the cover plate perfectly align with the buttons on the ESP32 allowing these to be pressed. The function button hole was slightly misaligned and fouled the button which necessitated enlarging the hole ever so slightly. Five minutes work with a small file however, resolved this and the end result is as you see here. This is a screw-less design and simply clips together. It feels extremely robust and I am very happy with how it turned out which is just as well considering the £54 it cost (including VAT and shipping).

Unnecessary Finishing Touches :-)

It seemed to me this case design was crying out for LED light pipes to feed, or guide, the light from the LEDs on the board up through the holes on the left of the case fascia. As it stood the case seemed a bit lacking. To that end I bought a pack of Bivar, Panel Mount LED Light Pipes (part no: PLP2-10MM). These cost £6.68 for a pack of 10.

Bivar, Panel Mount LED Light Pipes with dimensions

These are placed in the holes as shown:

WiC64 with LED Light Pipes

WiC64 with LED Light Pipes

As you can see, the result is quite nice but there are two issues which must be overcome:
  1. The 2.8mm width of the pipe is a little too small for the holes. If I want these placed permanently they need to be glued in.
  2. Despite the pipes being directly above each LED, there is a lot of light bleed from the green LED into the amber LED pipe which swamps the amber light from all but a top down viewing angle. The solution here is to mask the sides of the green LED. I used tiny lengths of 2mm diameter heat shrink tubing which when squeezed over the LED was already tight and so, crucially, this didn't require any heat shrinking which would be ill advised.
WiC64 Masking the LEDs to eliminate light leak
Masking the LEDs minimises light bleed


The observant amongst you will notice from my pictures above that the serial number printed on the blue plastic of the port connector is present in some pictures but not others. I decided, after soldering naturally, I didn't like having the number visible like this. Desoldering and reversing the connector was not an option so I simply sanded the number off, starting with 240 grit and worked my way through finer and finer grades, finishing with 5000 which is essentially a polish. It was stubborn but eventually this worked nicely.

Is all of this ludicrously excessive and wholly unnecessary? Yes.

However, let's get back to my thoughts on the WiC64 itself...

Summing Up

The above review, and the conclusions below were originally written in April 2022. Everything there still holds true but despite my general positivity then, a year on, it's worth interjecting now (May 2023) to advise that I very rarely bother to use the WiC64. In practice I've found there haven't been enough improvements or additions in the portal to make it worth my while. I don't have anyone to play multiplayer games with, so thats useless to me. The games which are there I can obtain separately and run from my pi1541 or Ultimate II+ L. A new message board is a very nice touch but, because users are predominantly German, the conversation remains, naturally, in German which is tedious to translate manually (I have to re-type any messages I want to understand into Google Translate) so I just don't bother. Now, these are my problems and nothing whatsoever to do with the developers or other users who have their own priorities but it seems unfair to wax lyrical about how great something is when, in practice, I just don't use it. That said, my original impressions are retained below though I've updated my rating and some comments to reflect things as I find them now:

My impressions of the portal, thus far, are largely positive but not without critical points to make:
  • There is a general lack of continuity when it comes to returning to the portal menu after opening a game, demo or other file. Sometimes pressing the left arrow key will do it, sometimes run/stop restore will do it, sometimes nothing works and you need to reset. I don't mind there being different methods, but I do wish it was made clear which to employ for each file. Indeed a general "navigation" hints and tips page would be ideal.
  • The lone chat room is clearly marked "Deutsch" which I'm not complaining about but, selfishly, and given my firmly established monolingual status,  I do wish there was an English one too. Likewise with the message board.
  • This is silly but I've played a few games from the "Online Games" menu and most required the joystick to be in port 1 which is never normally my default. Would be nice for the intro screen to advise of this (could say that about every game to be fair). It raised my eyebrow to see these games have been specifically remastered for use with the WiC64 so I am certainly not underestimating the enormity of the work going into this.
  • As explained, the CSDb Browser (v1.4) has proven to be disappointing.
  • Not wishing to detract at all from the magnificent achievement this is (and it categorically is), it does feel very sparse at the moment. I really hope, as it becomes more popular, more games, more chat rooms and more services become available.
There is so much obvious potential here I have no doubts some great plans are on the drawing board and I will be watching with great interest over the next few years. I'd love, for example, to see a teletext style news feed with articles on forthcoming updates and other C64 developments and a messaging system where other users can contact you privately. 

Steve Ody (CSixx), has also created Google Maps for the WiC64 which actually frickin works (albeit with some chunky graphics making it just a bit of fun, but as a proof of concept, it's simply brilliant) so the possibilities are virtually endless. However, whether anyone chooses to capitalise on these possibilities remains to be seen.

Google Maps on the Commodore 64. Whodathunkit?


So, time to rate my experience thus far:

For the hardware this is an easy 9/10. I'm only knocking a point off coz I hated the awkward soldering.

For the Portal I'd say 10/10 for presentation, 9/10 for navigation (point off for inconsistent return to menu methodology) and a lowly 2/10 for content (as stated in my latest thoughts above, in practice, after a year, I've found nothing to keep me coming back).

I maintain it is a remarkable achievement and a very nice piece of hardware that could add immense value to the C64 but which, for me, doesn't yet hit the mark. I hope I've demonstrated that language is certainly no barrier to getting up and running, though, as an ignorant monoglot, it certainly is a barrier when using the chatroom and message board, there's no getting away from that.

In my next post, I decide to really stretch myself and see if it's possible for a total novice and electronics imbecile (me) to design my own RF Modulator replacement PCB for my new Sixty Clone.

Total Cost Update

Total expenditure for the WiC64 + 3D Printed Case + Light Pipes was as follows:

£27.31 + £54 + £6.68 = £87.99 ($107.03 or €100.37)

Adding this to my current running total gives new Commodore related total expenditure of:

£908.29, or $1,211.25 or €1,076.93




Friday, 18 March 2022

250466 SixtyClone IC Replacements


If you've read my entries here, here, here and here, you will be well aware that I have, of late, been spending some time building and experimenting with a "SixtyClone" Commodore 64, a modern reproduction of the famous 80's home computer.

Part of this whole undertaking was to see if this was possible with modern replacements for the original ICs (Integrated Circuits): the chips that make the whole thing tick.

In the final entry in that series, I came to the conclusion that, with my particular SixtyClone board, the 250466 variant, replacing the ICs was troublesome.

Since then, I've taken delivery of a few more replacement parts and it's worth noting down here what I've subsequently discovered. To save repeating myself, all tests were carried out by replacing one chip at a time, and with an ARMSID and PLAnkton in place. If, after installing the replacement, it booted correctly, I ran the following demos back-to-back to test:

  • Christmas Mega Demo
  • Eclectic
  • Edge of Disgrace
  • Star Wars

I also played:

  • Commando
  • Ghostbusters
  • My own (never-to-be-published-so-don't-even-ask) game which is a good test of sprite collisions.

Replacement 1 - TOLB


The first replacement I want to talk about is the TOLB (sometimes called "The Other Little Board" and which represents the number 8701 upside down). This is a substitute for the original 8701 chip and was developed by François Léveillé, aka Eslapion.

This was an easy replacement. Out came the original chip, in went the TOLB and it just worked. No glitches, no repeat of the strange sprite collision behaviour I encountered with DIYChris's 8701 replacement (which itself is based on a design by Jeff Birt). All demos and games displayed and behaved normally.

Cost: £10.99 + £3.35 Shipping =£14.34  from Retroleum

Replacement 2 - SaRuMan SRAM


Cost: £12.99 + £2.12 Shipping = £15.11 from Retroleum.

Another replacement developed by François Léveillé. This was very interesting. For the first test I removed the TOLB and put back the original 8701 chip. Then removed original RAM and inserted the SaRuMan.


Oh dear. Back to the strange character issue that initially plagued me when I tested another type of replacement RAM. Much research revealed that other replacement utilised SRAM that was rated at 12ns,  much too fast for this old computer. The SaRuMan however was rated at a more tolerable 55ns so I did not believe this error was the same and at no stage did it replicate the "constant restore" issue I encountered. And indeed, I had partially expected this, again, from information gleaned while (obsessively?) scouring forums, and in this case, a comment by Mario Bernardo (aka SX64 Man) under this YouTube video:

" ... I also had the same exact issue with the Saruman and 6567R8 VICs in 250466 NTSC and PAL boards only. The Saruman however works fine with the 6567R9 or 6569R5... If I recall correctly, the exact "weird character" issue you saw in the video with the Saruman is due to some of the different RAS timings on some of the earlier C64 board revisions and earlier VICs. "

If this was correct, replacing my 6569R3 VIC with a 6569R5 (which I was planning to do anyway) would cure this issue.

This segues very nicely to:

Replacement 3 - 6569R5


Cost: €24.37 + €0.61 PayPal Fees + €8.20 Shipping = €33.18
From Poly.play.com

Like the TOLB, this replacement was easy. It just worked. It did not however, make any improvement what-so-ever to jail-bars or smearing and so picture quality remains acceptable but far from perfect.

With this in place however, it was time to test the SaRuMan.

It freakin worked!

Yup, with the 6569R5 VIC-II the SaRuMan behaved exactly the same as normal RAM. No weird characters, no odd behaviour at all. Obviously I was delighted but without an oscilloscope I could not confirm why. I got in touch with the developer, François Léveillé who has very kindly replied and advised:

 "It looks like the CPU clock coming from the 6569R3 is 'offset' relative to the AEC signal and this causes the R/W signal, when low (CPU performing a write) to stay low for a brief period INTO the VIC-II access portion of the cycle.

The C64C (250469) is protected from this problem because the DRAM R/W signal is passed through the large 64 pin PLA."

All Replacements Together

With the original chips removed and the SaRuMan, TOLB and now the 6569R5 in place, the C64 works perfectly. All demos and games played with no issues and as far as I can tell the computer is behaving exactly as one would expect. Happy days.

So what have I learned so far about modern replacements in my SixtyClone 250466?

  • 12ns SRAM does not work.
  • The Jeff Birt 8701 replacement, and derivatives, are incompatible with something, as yet unknown.
  • My 6569R3 VIC-II does not work with SaRuMan.
  • SaRuMan will work with 6569R5 VIC-II.
  • TOLB works.
  • ARMSID works.
  • PLAnkton works (but note: as of June 2024 these have been discontinued.)
  • RECOM replacement 5V and 12V voltage regulators work.
  • I am shit out-of-luck if I want all black replacement parts.
Remember, this is simply what I've found with my particular combination of board and parts. Your results may very well vary with different parts and PCB.

My working build. Shame about all the green.


What's Next?

As far as ICs are concerned, this leaves the CIAs; 6510 CPU and VIC as the only main chips left to replace - nothing is going to happen here for a long time. I still await a new keyboard and again, this may be a long-time before anything transpires.

I have however, recently acquired a Cartridge Guide (yes, that's what it's called, not a shield, not a port cover - it's all in the Service Manual, part number: 326116). Once again, I was not able to source one of these new, though I am certain they have been refabricated for use in, for example, the Ultimate-64-Elite, but for whatever reason they are not for sale separately. As it was, for £1.95 + £2.12 shipping, I was able to obtain a salvaged one from Retroleum


I spent 5 or 6 hours with wet and dry (starting with 240 grit going up in gradual stages to 2000 grit) to remove some of the pitting, scuffs and blemishes accrued over the last 30 years but I'm not bringing it to a mirror polish because I want lacquer to stick.


After a thorough degreasing and clean up with 0000 grade wire wool, I then applied six coats of black lacquer. I finished this off with T-Cut scratch remover to completely smooth the lacquer and give a bit of bling. The finish is beautiful and this picture doesn't do it justice.


For the record, I did experiment with Gun Blue to blacken this but it did not take properly so whatever sort of steel this is, something prevents the selenium dioxide in the Gun Blue from reacting. I would have preferred something far more durable like a powder coating but my budget simply doesn't extend that far so lacquer will have to suffice. I will solder this into the board sometime in the near future.

I have also been intrigued by the idea of getting my new C64 online. And yes, this is possible (after a fashion - we won't be streaming YouTube videos though!), and yes, I've bought something which, all being well, will make getting online possible. The complete story forms my next entry which you can read here.

Running Costs Update

Total costs for everything in this update are as follows:

£14.34 + £15.11 + €33.18 (£29.09) + £4.07 = £62.61 ($76.16 or €71.42).

Add this to my running total of Commodore related expenditure and I am now at:

£820.30, or $1104.22 or €976.56


Thursday, 10 March 2022

The Trials of Building a Commodore 64 in 2022 (Phase 4)

 


PART 12 - TROUBLESOME UPGRADES

From Phase 1 of this saga you will be aware that another part of this exercise was to use, where possible, all new parts. Up till now I had been using an ARMSID, replacement ROMs, PLAnkton and a MOS 8701 replacement all through initial testing. With this combination of replacements there was one troublesome issue that cropped up now and again but we will touch on that a little later. As my initial build kit included all the logic ICs and RAM, I had been using new-old-stock 41464 RAM ICs but with a stable build, now was the time to test the SRAM replacement I had bought.



This was a very quick, and pretty definitive test. It didn't work. On switch-on the screen was peppered with random characters and no cursor. We couldn't proceed any further in that state so the original RAM chips were re-inserted and everything returned back to normal.

The problem here is that I wasn't sure if the SRAM replacement was faulty, or if it was failing because it was conflicting with something else on the board. I had assumed the former, and had resigned the replacement SRAM to scrap when I watched YouTuber Jan Beta's video of his experiences doing virtually the same thing, with the same board. A link to his video.

In that video, Jan experienced exactly the same "weird character" glitch as I experienced, except in his case the SRAM was conflicting with his prototype VICII Kawari. When he put his regular VIC chip back (a 6569-R3 - the same as mine) everything returned to normal. This obviously doesn't translate exactly to my experience but it did get me wondering.

Jan was using Eslapion's "SaRuMan" SRAM replacement. I had a different variation of SRAM. Jan also had a different 8701 replacement, the "TOLB" (The Other Little Board), also by Eslapion. If we assume the different SRAMs work the same way (a naïve assumption I'm afraid) then all other things being equal, the only difference between Jan's set up and my own was the 8701 replacement. Jan said at the start of the video that he had to remove his initial 8701 replacement as it was causing a strange issue with Sprite collisions. As it happens, I had been experiencing odd behaviour in Sprite collisions too.

In 2021 I was messing around with Assembly Language and managed to write a slightly crap, but functional game which my son and I have been thoroughly enjoying trying to beat each other's speed run times. In the game I use sprite-to-sprite collisions to trigger further actions (yes I know it's not good code but for pity's sake, I'm a beginner!). Anyway, on my breadbin this runs perfectly, but in the new build the sprites visibly overlap somewhat without any action being triggered as though somehow, something is misaligned. I wondered then if the 8701 replacement was the cause of the fault here?

Luckily I had a new-old-stock 8701 I could drop in and experiment with.

Installing the original 8701 chip did indeed cure the sprite collision problem: that immediately behaved as one would expect.

I then added the SRAM replacement.  The "weird character" problem was gone! Only to be replaced with an equally bad, if not worse problem of constantly resetting, or probably more accurately, constantly "restoring" the computer, which on boot sat at a flickering ready prompt - no "64K RAM SYSTEM 38911 BASIC BYTES FREE" message - no, just a flickering, unresponsive screen with "Ready" in the top left corner, as pictured below. The exact same screen you get when hitting "run/stop" and "restore", but flickering and clearly stuck in a loop. Without an Oscilloscope I have no clear idea what's going wrong.


Putting the 41464 chips back in brought everything back to normal. So yeah, another wrong theory.

I put some time into reading some fairly heated forum posts about SRAM replacements and it's clear some designs just aren't compatible with the 250466. I think it's obvious I have bought one of them: cue some colorful language which I will spare you here.

Further digging brought me a comprehensive answer. In a forum post here, in reference to the SRAM replacement design my problematic one is based on, Eslapion states:

"He used a 12ns high speed cache SRAM IC which is very sensitive to the slow transition signal of old 8 bit computers and this causes write errors. This makes this design unreliable. The fix is to use a slower 45ns/55ns IC which uses less power and correctly takes slower signals. This problem is more prevalent on the 250466 because it uses legacy 74LS technology to manage the multiplexed address bus. The 469 uses the large 64 pin PLA which uses HMOS/CMOS technology and has sharper transitions"

Looking at the SRAM chip on the board I bought (pictured above) we can see it sports an IS61C1024AL-12HLI chip. And looking at the spec sheet for this chip, lo and behold, it does indeed have 12ns access time:


Bugger. So there we have it - a sensible explanation for the very clear problems I encountered. None of this was obvious and another case of Caveat Emptor. I simply bought an allegedly compatible product, which was (and still is - so watch out!) sold as being compatible with the 250466, based on aesthetics and put no more thought into it than that. Oops. So, yeah, back into the scrap pile it goes.

I will pick up a SaRuMan in the near future and test with that but I'm pretty confident this is the answer. As for the 8701 replacement it seems a fair bet that Eslapion's "TOLB" will work too so I'll add that to the "to buy" list.


PART 13 - IS "ALL NEW" ACTUALLY POSSIBLE?

So far, this doesn't look good for my "all new" philosophy: incompatible SRAM and a glitchy 8701 replacement. I now understand the issue with the SRAM. However, there are a number of other things we must try in order to understand exactly where incompatibilities with the 8701 replacement lie: is it glitching because it is simply not 100% compatible, or are other replacement parts (the ARMSID, PLAnkton or something else) having a reaction and it's that particular combination that's causing the glitch?

My gut feeling (and this is something I can eventually test) is that the 8701 replacement is glitching because of the Voltage Regulator replacement I'm using. The 8701 is fed, via the inductor at L1, from the CAN +5 volt line which comes directly from the 5v regulator at VR2 which, as stated in Phase 1, I replaced with a Recom R-78B5.0-1.5. If so then something about the design of the 8701 replacement reacts to that 5v input differently than the original chip which works perfectly. At any rate, it's a theory.

This causes me to raise a hitherto unanswered question: as more and more replacement chip projects start to see the light of day are the developers creating these with other replacements in mind? Are full tests being undertaken with every conceivable combination of every replacement already available on every variant of every new and old PCB in both NTSC and PAL flavours? I think the answer to this is, and always will be, unsurprisingly, no.

Given that there are several variants of an 8701 replacement, and half a dozen replacement SIDs, at least that many replacement PLAs and who knows how many replacement PCBs all of which work in slightly different ways, it's a distinct possibility that an "all new" C64, is not actually possible. At the bleeding edge of 80s technology, we will have to act as beta testers and, it's clear already that things aren't completely satisfactory. (Edit from the future: ok, I was wrong. All new is possible, but it's not cheap!)

In order to fully test future incompatibility questions, I would have to test all possible combinations of replacement parts against each other, and against original chips as a baseline. I don't have a spare suite of original chips to conduct that and I'm not that keen on messing about with my perfectly functioning new build just in case I royally screw up. However...

Brace yourself for a lightbulb moment.

I do have a recently discarded and completely broken PCB with shoddy sockets that, if brought back to working order, could serve as the ideal test bed for precisely these kind of experiments.

I had, literally, thrown that broken PCB away. It was sitting in a bag, outside in the garbage where I had rashly dumped it in disgust after extracting the last few parts I needed for the new build. We have fortnightly garbage collections round these parts and it had not yet been collected.

Suffice to say, it's not in the garbage any more. I'm going to bodge it back to working order and it's going to have a working life as a test bed for all future experiments. This, I think, is a fitting future and a satisfactory outcome, albeit one where ill fitting chips will always be an issue. So, the to do list for the broken board is:

  • Fix it
  • Replace salvaged components
  • Populate with ICs and replacements for test


PART 14 - THE NEW BUILD

As for the new build, as I write it's been running perfectly for 8 weeks or so now. I added to my already scandalous expenditure by getting an S-video to HDMI converter (a cheap one from Amazon) and together with a nice long HDMI cable and a C64 s-video cable this has improved the video substantially from the horrors of composite. It's a long way from perfect - nothing is perfectly crisp, jail-bars are pretty bad, fast moving sprites smear but as I said in Phase 1 it's good enough.

I'm actually very impressed with this cheap HDMI converter. It's simple to setup - there are two button on the output side (not pictured): one of these switches between composite and s-video input; the other cycles through HDMI output resolutions and holding that button down for a moment cycles between 4:3 and widescreen aspect ratios which is very handy indeed.

Strangely, it is fixed to a 60Hz output but in practise I see no ill effects from feeding in 50Hz from the Commodore.


PART 15 - PICTURE QUALITY

To give you some idea of what I'm talking about regarding picture quality, I've taken pictures of  the screen output with all 16 colors. This will demonstrate the sort of degradation I'm talking about. This is output via S-video to HDMI using the converter above to a 2010 Samsung LE32C450E1W LCD TV and photographed with a DSLR. The colour reproduction here is hit and miss because I didn't bother to white balance, but it's the jailbars I want to highlight. You can click any of the pictures for a larger view:


















PART 16 - SUMMING UP

First let's update the running cost total with new expenditure from the purchase of the HDMI Converter which was £34.99 ($42.36 USD or €39.91) from Amazon UK. This brings total costs so far to:

£757.69, $1028.06, €908.14

With luck, a fair wind and yes, more money to throw at it, maybe the next 12 months will see a brand new keyboard, a 6569-R5 (and I do wonder if that will make the slightest difference to jail-bars and sharpness - I'm not hopeful), a SaRuMan SRAM replacement and a TOLB 8701 replacement, but that aside, for the moment, I fully intend to simply enjoy the computer I've built.

Now, how about a nice game of chess?



(There is nothing nice about how much I suck at this game!)


In the next article I source some of the IC replacements I mentioned above and talk about these at (excruciating?) length.


Popular Posts