Sunday, 27 April 2025

A Different World

A Different World (1987–1993) landed on Netflix, and I took this opportunity to watch all the six seasons of it. (144 episodes)

It's a spin-off from The Cosby Show, a family viewing staple in 1980s, and whatever one now might think of Cosby and his supposedly cleared reputation, his mug isn't too often seen here. (When he does, be assured he gets the biggest canned laughter.) He is a series creator though, and I try to look past this to enjoy this nostalgic treat.

In my mental landscape this was more of a 1990s show, and indeed in Finland it was on TV from the beginning of 1989. I tend to associate it with my time in the 7th to 9th grades in school.

8th of January, 1989. Sunday evening after the waning star of McGyver.

The first season premise is that Denise Huxtable is now a student at the Hillman college, the alma mater of her father, mother and grandfather. The college is both a new environment, explaining why the cast of the parent show are not needed, yet enabling the trickle of guest stars as each family member visits Denise at Gilbert hall.

As the series proceeds, time genuinely passes and we have freshmen become seniors, seniors graduate and so on. The regulars do find ways to stick around, though.

I believe I used to watch this diligently, though it probably wasn't the first series I'd have admitted watching to "the guys". In a Sunday early evening slot, I'm doubtful if more than four seasons were ever shown in Finland.

So why watch it? Even if school was a drag, maybe there was some hidden yearning to this paradoxically more intense school life, with its dorms, drama, debates, cafes, art and poetry classes, extra-curricular activities and so on. I know people were inspired by the show, even if it fit poorly to the general apathy and introversion of a Finnish upper elementary school life. Maybe it did secretly provide aspirations, or at least fashion tips, for the recession generation.

Denise Huxtable

Now, much of the charm is observing the limited media sphere the students live in. The thin line to outside world is the dorm payphone, library is still paper-indexed, and in evenings the whole dorm gathers to watch a film or soap on TV.

The old TV series format can be refreshing in this age of continuities and stretched out plot lines. Binge-watching makes it very apparent how the students pick up and drop odd jobs, hobbies and dates with staggering pace, often never to be mentioned again.

As the series progresses it does become more consistent, yet doesn't take itself or the continuity too seriously. The tradition of "very special episodes" often means actors interpret their role in a different way, whereas some episodes explore farce and slapstick.

Time can also be enemy of things, and roles and fashions can become reversed. Here we are at the end of 1980s, when the Rocky Theme or Olivia Newton-John's Physical are considered bad music, and 1970s generally is a shorthand for "poor taste". Anti-apartheid sentiment is present, now reminding of how ubiquitous the topic once was – up until the system was dismantled.

I guess Denise is meant to be relatable and gen-X cool, but she often appears sleepy and disinterested. Whitley Gilbert's beauty and fitness routines are meant to be over the top, but she would actually fit our times rather well. Whitley's caricature and character growth steal the show in any case.

Dwayne Wayne

The first season starts a little rough at the edges, as the characters aren't yet established. Dwayne Wayne (how cool are those glasses) seems a little lost without his sidekick Ron Johnson. Whitley appears a little too nasty when abusing the "spineless" Millie. 

Some of the entourage is introduced mid-season, but the second season brings drastic changes to the cast. One could almost say the show is rebooted. I recalled this happened much later in the series, but that's again what binge watching does.

I felt the first season attempted an all-female cast, with nearly feminist tones, but as the series proceeds it becomes a more straightforward sitcom with more male regulars, such as the "Dr. War" Colonel Taylor, cafeteria chef Vernon and the boys' dorm director Walter.

Despite the important "No means no" episode, the show repeats age-old TV mating rituals where men are presented as being very forward, even to the point of being a little physical about it. Ron's occasionally creepy behavior is underlined as being wrong, but it's for laughs and he keeps doing it anyway.

Whitley, Kim, Dwayne, Freddie share a serious moment

The third and fourth seasons don't bring as huge changes, although the setup is shuffled a little and there's more thought to plot arcs and acknowledging past events. Having characters live off-campus at least changes the scenery.

Dream episodes and more improbable plots begin to rear their head too. Maybe that third season spring break double-episode should have been a dream. The cast becomes more caricature-like in the later seasons: Whitley is inconsiderate and loud, Freddie is a kooky environmentalist hippie, Ron is a perv.

The first seasons explores the confines and rules of the dorm apartments. Towards the end of the series we barely see how the students live, as everything happens in more social environments. Apart from the repeated establishing shots, almost everything's filmed in the safety of the studio. One major exception is the LA-riot themed two-parter.

It's amusing to observe the transition from a 1980s show into a self-consciously "1990s" show, an opportunity to again revisit gender roles but also (sadly) making jokes about how silly it is to protect the environment. There is also self-reflection on how the series' once youthful heroes are no longer cool to the new generation.

The sixth season works more as an epilogue, showing how the series regulars begin to settle, bringing the Cosby format full circle. The college environment increasingly relies on new characters. However, the cast no longer inspires curiosity about their future, and the themes begin to feel too repetitive.

The whole series ends with a suitably sentimental note. It doesn't look like a series continuation was planned after the sixth season. There have been rumors about rebooting the series for a new millennium.

A whole bunch of crowd

Netflix has again chosen to transform a 4:3 series into widescreen format, also using a silly algorithm to upscale the image. The algo is especially visible in pause mode. I watched few episodes happily without realizing the format change and the filter, but when I begun to pay attention these changes can be a little irritating at times. Sometimes even items that are focus of comedy are poorly cropped away.

A small oldmachinery observation. I don't think I saw a single computer in season 1, although I believe I saw a perforated dot matrix print paper already very early on. Computers feature in season 2 more, and eventually become a sort of plot point too. The same IBM serves as a prop in many locations. Nintendo was enough of a household name to make jokes about in 1988. Something resembling a Game Boy was seen in Season 4, and definitely spotted and name-checked in Season 6.

Thursday, 24 April 2025

Urban campsite

This time, a more urban campsite

There have been some more urban camping sessions, but I've not thought to report them all. This time there are some new experiences and equipment to talk about.

The Primus Mimer stove has been a hit and a miss, as a little wind could disrupt a water boiling process. From my experience I'd not recommended it for winter, even if it did perform ok that one time.

Now, in warmer weather it did much better, at least with a frying pan. It looks like it is more useful for frying pans, as the flame spreads to a broader area.

A Crivit from Lidl boiling potatoes, Primus Mimer working on the non-meat balls.

Still, the flame had to be quite high to counter the wind, which easily made it a little too strong for controlled cooking. The cooking oil started boiling almost instantly. The köttless-bullar were in a danger of blackening from the outside while cold from the inside, something I've not seen much after my student days. Finding the proper level while moving the balls around aggressively did help, though.

Some new equipment. A triangle-shaped stand for gas cartridges is a welcome addition. These gas canister-based burner contraptions make me fear of tipping everything over, but using this as a base it's far less likely. It fits quite neatly with the standard cartridge, and with a little fiddling it fit a somewhat non-standard one too.

Triangular plastic base

But I have to say adding these bits and pieces makes me think that with Trangia you have a full system where these things have been thought over and over!

The Wildo camp-a-box is another new family member. The set has a 6dl fold-a-cup type can, a normal fold-a-cup, a tripartite spice container and a fork-spoon-knife combo. The halves of the box work as plates and there's a sort of cutting board thrown in.

Wildo Camp-A-Box contents

The setup is smart in that the parts fit together in only one way, and the shapes are suggestive of how this should be done. So no Tetris at the campsite. Weighing at 280g, carrying it all might not make sense. The combined utensil might not excel as a spoon, fork or a knife, but it brought the food to the mouth.

Thursday, 20 March 2025

Veto-Junior drafting machine

Picture on the cardboard case

Rarely I get an opportunity to write about something that's both Old and a Machine.

This Veto-Junior is a light-weight arm drafting machine from around 1949-1956, made and sold in Finland. It was built by Valmet, the Finnish institution that did everything: paper machines, rifles, tractors, trains...

Overview. The screw at the bottom holds the device in place for photography!

Predictably the machine was sold by Wulff exclusively. Later they sold imported drafting machines for architects, engineers and designers.

This kind of drafting machine uses a sort of parallelogram principle to level the drafting ruler unit. The ruler unit is kept "weightless" with either strings or a counterweight, the latter probably more expensive.

On the down side, the arm drafting machines are often less accurate away from the center of the board and the springs can generate some noise.

The ad from Helsingin Sanomat 13.9.1949

I'm timing the device based on a few advertisements in Helsingin Sanomat. The first ad is from 1949 and the second from 1956.

The 1956 ad shows a complementing drafting board. The price of 3400 marks (now ~123€) doesn't seem too prohibitive, but it wasn't exactly an age of plenty. The imported Nestler board from Germany sold for 9350 (339,41€), together they would be a bigger purchase.

This was still the war reparations era, the factories now produced a variety of products for civilian use. The Veto is mentioned in Maanpuolustus 4/2016 as a product category. 

It fits thematically, a low-cost device to educate a new generation of engineers, architects and designers for rebuilding Finland. I'm unsure if these ever went to Soviet Union.

The ad from Helsingin Sanomat 4.9.1956

For some time I wondered if "Junior" implied there would be a non-Junior Veto, given that some texts simply mention "Veto".

Because my Veto-Junior has a VKT (Governmental Rifle Factory) logo, and the ad mentions the Tourula Factory, I acquired the book Kivääritehtaan Tarina ("Story of the Rifle Factory") by Mänttäri, Hyytinen and Niskanen from 2003, on the hope it could say something about the product. 

The book focuses on tractors and weapons, but there is also simple list of the various civilian products made by the factory. Purely by chance there is a low resolution scan of an old Valmet product catalogue. The scan happens to feature both a Veto and Veto-Junior drafting machines. I rotated and adjusted the scan to give the best possible reproduction.

Valmet product catalogue, year unknown. (adjusted from the book Kivääritehtaan Tarina, 2003)

It's possible to see the Veto is larger, has a counterweight for balancing, and the text says the ruler is of beech with "celluloid" edges, as opposed to the metal rulers of Veto-Junior.

The rifle factory book is rather nice, but it has absolutely no index or list of references, so it's a little tricky to start tracing that old product catalog, and perhaps I don't need to as that's all the info there is.

Some repairs were needed to get this working. In fact I bought two machines before I could assemble one working item. I realize these can be considered antiques and this might be a sacrilege. However I ended up only using the springs from the second purchase.

Veto-Junior 1: VKT, No logo on the handle.

The first Veto was loose, dirty but in nice condition. It lacked one spring and the rulers were in a rough condition.

This first Veto came with a wooden board of sorts, not the Nestler obviously, but resembling a Wulff-branded board I already own, which is in better condition mind you. This board had no branding.

The machine was unceremoniously attached to the board with 5 screws. I had to marvel at the quality of these old screws, they are so crisp and heavy.

Veto-Junior 2: The Wulff/Valmet logo

The second one had both springs intact, nice rulers but the metal parts had rusted here and there. The arms still move about well, the ball bearings are not stuck or noisy.

This came with the original cardboard box and the device sports a logo saying Wulff Veto-Junior Valmet. The other doesn't even really have room for a logo.

If there were instructions, they have become lost. The one ad mentions a leaflet which I suppose could have explained how to set up the machine.

This second Veto also had a lacquer finish on the wooden part, but it has mostly worn off.

Interestingly, the first device rulers have a VKT logo which is for Valtion KivääriTehdas. You can see the elongated hexagon logo in some Finnish guns.

Veto-Junior 1: VKT logo

The second one has a sparse "VMT" marking for Valtion MetalliTehtaat. The Valmet branding was very much in place at this point.

My initial hunch was the VKT one (without the Valmet logos) is the older one - although it is in better condition. In my understanding the VKT term was abandoned after the war.

The rulers are of some kind of aluminum mixture, they at least don't rust. They have lasted the long years in reasonable shape but were maybe not that great to begin with.

These rulers have been pressed into shape to make them more firm, but they still bend rather easily. This also means they can be bent back into shape.

Veto-Junior 2: VMT marking

The machine arms are flat metal, with a bulge running through the middle to give them strength. As far as I understand this is sheet metal forming/pressing, a technique used for some firearms. It's quite clever, despite being quite flat the parts don't give in or bend too easily.

The two springs are of different length, and using both from the second machine I could get the arms to "float", although it biases to the right.

I just didn't dare to stretch the spring to a further range. (There are three attachment points at each location). The springs had been probably unused for a long time, but they are in good condition.

Ball bearing, freely visible

Then I found the ball bearings mentioned in the ad. The bearings are freely visible, and are held in place by some sort of ball bearing screw but not exactly. I also noticed one of the arm hinges from Veto-Junior #1 lacks ball bearings, so they might come loose under strain.

I could add them from the second machine, but I decided if I am going to draw more then I'll use my Tecnostyl 604, which is better suited for it anyway. (I'll perhaps blog about that later).

Functionally, Veto has the almost compulsory angle setting, with 15-degree steps. A tightening bolt helps keep the in-between angles more firmly in place. The rulers can be switched around to work in 1:25 proportion and also for fine-tuning the 90-degree angle.

And that's about it. No thumb-press position lock, no "line offset" features.

Some experiences

The lightness is both a good and a bad thing. My point of comparison is the Tecnostyl 604 which has robustness, weight and portability in better proportion.

The contraption at the top has been made to allow the ruler to pass a little higher than it otherwise would. A nice thought. Still, I think the bearings suffer here more than at other places. 

A little test drawing

It's very portable. Surely the Veto-Junior can be easily transported without a table, and even with the small board, carrying wasn't a problem. But the device is already so flimsy it's difficult to take very seriously.

After a little experimentation, I can draw with this but it wasn't quite as "fun" as with the Tecnostyl. The angles deviate quite heavily as I near the edges of the board, the rulers don't fix very firmly, but as the draft image will be consistently warped it shouldn't matter too much(!)

Of course it's unclear if the Veto Junior works as intended, it is likely more than 70 years old.

Thursday, 6 March 2025

The Last Z-8 v1.1

I would prefer to create something new than to fix my old games, but The Last Z-8 was made so quickly for Zooparty 2024, I wanted to adjust it at least a little.

For Commodore 64, the version 1.1 fixes some bugs and sprite glitches, the graphics are also adjusted in places. There is also a tiny bit more graphic variety.

The game is same old, but it has been tweaked a little. This version adds a X2 zonk bonus feature, if you catch the elusive white ghost on the city map. This way you can zonk overload faster.

The game has a somewhat strange logic, from the winging-it school of design. The better you play the faster you get to the end. If you play worse, yet live, the game eventually becomes more difficult. And that's pretty much all the achievement there is.

I generally don't add detailed instructions with the games, because that's the way it was when we loaded pirated games off turbo tapes and disks in the early days :)

But maybe some explanation is in order.


The Last Z-8 v1.1 Instructions

The game is 100% Machine Code for Commodore 64, by Dr. Terrorz. 

Use Joystick in Joystick Port 2.

It is the end of the world, after the bad guys won. The world's a wasteland and everyone is a ghost. Except with you, the last time traveling secret agent, there's a slim chance to revert everything, if you can generate 9999 ZONK and deal a blow to the origin of the disaster.

To generate ZONK energy, you need to shoot or trap ghosts, and to do this effectively you drive a vehicle that is a cross between DeLorean, KITT and Bond's Lotus Esprit. And the last V-8. Except it is the Z-8.

Map Screen. Move up/down/left/right

As the game starts, you are presented with the city map screen. Ghosts materialize at different places. Catch them to proceed to the next step. If you grab the elusive White Ghost, you can activate the 2X bonus feature for this round, generating double ZONK.

Next step is the street patrol sequence, where you have to both avoid the ghosts and jump over any breaks in the road. Shooting at the ghosts will bring them down, adding to the ZONK meter. Note that you can also milk the falling ghosts for more ZONK, but this can be risky.

Street patrol, Move left, right, jump, fire

After surviving the patrol sequence, you will face the ghost trapping sequence. In front of the house, you can launch ghost traps, which will be brought down again when they reach the top of the screen. There's no limits to these traps.

Only when the traps come down, they are effective on the ghosts. At the same time you need to avoid everything, including your own traps!

If you are fast enough, you can trap all the ghosts, adding to the ZONK meter. The higher the ghost is when trapped, the more ZONK will be generated as the ghost descends. This can provide opportunities for tactically waiting for a ghost to recede upwards before trapping it, but if you waste time you may end up not catching the ghost!

Trapping sequence, move left/right, fire to launch trap

After the ghost trapping sequence, you are back at the map, facing the next night. In case you had the 2X bonus, this will be reverted and you need to catch the White Ghost again to activate it.

Each round of the game is in a sequence. This does not change, no matter which ghost you choose to engage on the city maps. The stages and patterns are repeated the same way each game, so you can memorize things to do things better.

When you reach 9999 ZONK, the gate opens and you can go fight the boss and reverse time.

The Last Z-8 v1.1 at itch.io

The Last Z-8 v1.1 at csdb.dk


Thursday, 20 February 2025

Primus Mimer Stove and other burning issues

Primus Mimer Stove

Since the few attempts with spirit, I have switched to the cleaner gas burners. Despite not planning to go this route, I now have two of them.

Comparisons between gas and spirit aside, I'll focus on the Primus Mimer Stove, which was inviting with its wide-format gas burner element – no more blowtorching the middle of a frying pan?

This is one of the models which directly connect to the gas canister, and at 205 grams it could be considered an ultra-light solution. That is, if I don't carry the Trangia pieces around. The other burner weighs 180g but in practice requires the Trangia windshield ecosystem.

Still shiny and speckless

Although the gas worked for heating water quickly, it began sputtering when more was required, a 10-minute ordeal of cooking pasta. In fact the flame died on occasions and required reigniting. At first this seemed to be due to wind, another theory was that gas canister was growing colder.

Trying another burner with smaller element showed that perhaps the gas in itself wasn't to blame. I guess the wide-format elements are more susceptible to problems in this weather, and it's not an accident the elements are smaller in most models. But this is all rather thin speculation from this one experience.

Primus Mimer Stove in action

It was still possible to finish, but it is clear this combination is not for winter cooking, not even in this mild -1°C weather. The Primus Mimer instructions do not say anything about winter use, but there's a symbol on the box that suggests it's a "3 season" solution.

Ultimately the frying pan was not even tried in this session, even though it was one motive for getting this burner. This will have wait for better conditions or at least more appropriate gas.

In sunlight it wasn't possible to see the flame, which is understandable, but there were times I couldn't even hear it, which was a strange sensation. Most of the time Primus did give the usual, reassuring noise.

The shores of Arabia

Some other considerations: the gas adjustment valve is positioned quite close to the center of the burner, but in practice this wasn't really a problem. Still, a better placed adjustment knob might have been welcome.

Balance is another slightly worrying thing when working with this type of burner. You have to be careful when prodding the food, as the stack certainly isn't as sturdy as a Trangia-type windshield contraption.

Chair and the carry bag

Another item which I've had for a while, is a collapsible chair. Robens' Geographic High Silver Grey promised light weight and easy operation, and on those counts it delivers.

At 370 grams, the trade off is that it's on the small side, but fortunately I am not super-huge and still weigh less than 90kg, far from the suggested maximum 120kg capacity.

Not saying it is perfect, and I'm still collecting experiences, but I've been able to forget about it while sitting and that is a good sign. It also hangs nicely from the bag, adding very little to total encumbrance.

A random dog I couldn't see while shooting.

The session took place in Kuusiluoto in Helsinki, a popular spot for wintertime outdoor activities. We took the route back over ice. This felt a little suspicious at first given the mild winter, but so many people were crossing it, it was obviously not likely to break.

Sunday, 16 February 2025

ZX Spectrum and ChatGPT

I used ChatGPT (free version) to create a ZX Spectrum BASIC quiz game. I did not adjust the code afterwards at all.

I saw a few attempts at using ChatGPT in the ZX Spectrum Facebook group, where the consensus looked like "impressive, but we're not there yet". The LLM had failed to understand the Sinclair BASIC dialect, so although the logic of the simple programs could be sound they would not run on a Speccy.

But I figured, well, ChatGPT can be instructed to avoid the mistakes?

What I set out to do is a quiz game where the computer gives a name of an U.S. president, and the player has to know or guess when he was first elected.

I first made ChatGPT produce a list of presidents and the election year. As the result had some ambiguities and complexities, I asked to simplify the list so there are only first-time election years and no problem cases.

Then I asked it to format the list into ZX Spectrum DATA statements, starting from the line 1000, with 10 increments.

Only after seeing this list was formatted correctly, I asked ChatGPT to prepend the list with a Quiz-type BASIC game.

Although you can ask ChatGPT to use ZX Spectrum BASIC, this is not enough and the result is likely to be more generic BASIC dialect.

So, it is better to give a set of iron rules. Instead of trying to teach the peculiarities of Sinclair BASIC, I simplified the orders further, to avoid getting ChatGPT confused or produce something that would be difficult to debug. For example, dimensioned strings could be difficult to handle, as they work differently in the Spectrum.

bas2tap converts plain text listings into a Spectrum emulator TAP file. It's quite pedantic (i.e. accurate) so some of the rules below address this issue too. Bas2tap is an important tool as otherwise it would be too slow to test the listing, now I can just copypaste the ChatGPT output to a text file and run a command from terminal.

So, after outlining the game program, I told ChatGPT:


Remember that ZX Spectrum BASIC follows these rules:

-Use only one-letter length for variable names, and dimensioned variable names.

-Do not use IF-ENDIF reaching on multiple lines. Each IF-THEN part must only happen on one line.

-Do not use END. Use STOP instead.

-When assigning a (non-dimensioned) variable, you need to explicitly use LET

-When using GOTO or GOSUB, use GO TO and GO SUB instead.

-Do not use dimensioned strings. This could be achieved by looping and reading the DATA list for each  item. e.g. RESTORE can reset the reading of the DATA list.

-The first element of a dimensioned array is 1, not 0.


You could also forbid it using RANDOMIZE, as chatGPT may use it to reset the random seed, which is not really necessary.

That point about dimensioned strings and data lists is only relevant if the program has to go through a data list in the first place.

The game itself is quite silly, as I gave rather silly instructions to ChatGPT. You get to guess presidents, but if you fail it will tell you the year. The game ends if you guess one president right. Well, that's not a huge problem.

The way the program works is also a little quirky, but this too is to be blamed on the instructions I had given to ChatGPT. The program stores the year values to an array, but not the names. So it will have to scan the DATA statements again to get the name.

What I liked most about this exercise was how I could populate the data table so fast and easy, making a potentially boring task a wheeze. Granted, a list of presidents could be googl-eyed, or acquired from Wolfram Aplha, but there's still dullness in cleaning up and reformatting the results to DATA lines suitable for the limitations of this particular listing.

The listing: (Ok I did remove line 10 that had the unnecessary RANDOMIZE)


20 DIM Y(40)
30 PRINT "PRESIDENT QUIZ! GUESS THE YEAR A PRESIDENT WAS FIRST ELECTED."
40 LET S=1000
50 RESTORE S
60 FOR I=1 TO 40
70 READ A$, B
80 LET Y(I)=B
90 NEXT I
100 LET Q=INT(RND*40)+1
110 RESTORE S
120 FOR I=1 TO Q
130 READ A$, B
140 NEXT I
150 PRINT "WHAT YEAR WAS ";A$;" ELECTED?"
160 INPUT A
170 IF A=Y(Q) THEN PRINT "CORRECT! WELL DONE!": GO TO 200
180 PRINT "WRONG! THE CORRECT YEAR IS ";Y(Q)
190 PRINT "LET'S CONTINUE.": GO TO 100
200 PRINT "DO YOU WANT TO PLAY AGAIN? (Y/N)"
210 INPUT B$
220 IF B$="Y" OR B$="y" THEN GO TO 100
1000 DATA "George Washington", 1788
1010 DATA "John Adams", 1796
1020 DATA "Thomas Jefferson", 1800
1030 DATA "James Madison", 1808
1040 DATA "James Monroe", 1816
1050 DATA "John Quincy Adams", 1824
1060 DATA "Andrew Jackson", 1828
1070 DATA "Martin Van Buren", 1836
1080 DATA "William Henry Harrison", 1840
1090 DATA "James K. Polk", 1844
1100 DATA "Zachary Taylor", 1848
1110 DATA "Franklin Pierce", 1852
1120 DATA "James Buchanan", 1856
1130 DATA "Abraham Lincoln", 1860
1140 DATA "Ulysses S. Grant", 1868
1150 DATA "Rutherford B. Hayes", 1876
1160 DATA "James A. Garfield", 1880
1170 DATA "Grover Cleveland", 1884
1180 DATA "Benjamin Harrison", 1888
1190 DATA "William McKinley", 1896
1200 DATA "Theodore Roosevelt", 1904
1210 DATA "William Howard Taft", 1908
1220 DATA "Woodrow Wilson", 1912
1230 DATA "Warren G. Harding", 1920
1240 DATA "Calvin Coolidge", 1924
1250 DATA "Herbert Hoover", 1928
1260 DATA "Franklin D. Roosevelt", 1932
1270 DATA "Harry S. Truman", 1948
1280 DATA "Dwight D. Eisenhower", 1952
1290 DATA "John F. Kennedy", 1960
1300 DATA "Lyndon B. Johnson", 1964
1310 DATA "Richard Nixon", 1968
1320 DATA "Jimmy Carter", 1976
1330 DATA "Ronald Reagan", 1980
1340 DATA "George H. W. Bush", 1988
1350 DATA "Bill Clinton", 1992
1360 DATA "George W. Bush", 2000
1370 DATA "Barack Obama", 2008
1380 DATA "Donald Trump", 2016
1390 DATA "Joe Biden", 2020

Monday, 20 January 2025

Kempston-USB adapter for The Spectrum

What's wrong, or right, in this picture?

After using it for a while, Retro Games' The Spectrum is a rather nice Speccy-tribute. But it's not an authentic hardware replica, and old 9-pin joysticks and peripherals won't work with it.

But what if... I was to purchase a vintage joystick adapter and disguise it as a Speccy peripheral? Delightfully devilish!

I already have an Arduino-based adapter for attaching classic 9-pin joysticks to USB, and it works with The Spectrum. An Arduino Micro or Leonardo can pretend to be a HID device, essentially becoming a gamepad without buttons. On Retro Games' The C64, I had problems possibly because it's a type of controller not "whitelisted" in the firmware.

The USB ports at the back of The Spectrum are where the edge connector is supposed to be. This got me thinking I could build an adapter to look more in line with The Spectrum's appearance.

I happened to have some Speccy joystick adapters, and one Timex Joystick-Sound Unit has had its guts removed already before. Not sure why, but at least I don't have to feel too bad about breaking one now.

Apologies to all Portuguese Spectrum fans to whom the sound unit is a matter of national pride. (Timex manufactured these units in Portugal, among other things).

All the parts

I started by fitting the Arduino Micro inside, using 3x1 protoboard as a replacement for the original circuit board.

There's more room inside than in my compact adapter, but because of how the board fits inside, it's not all in use. Also, I wanted the Arduino to sit on a socket, which eats up quite a lot of space.

But it all fits inside, I then soldered ready-tinned wires to connect everything. Maybe the Arduino would have fit better horizontally, but what's done is done.

The new problem was finding a short USB-cable or some kind of adapter, that would work as a connector and keep in place.

I did look for L-shaped adapters and cables, but there didn't seem to be a ready-made configuration for a USB-A in L-shape that would configure into a micro-USB.

So I just bluntly took the least useful Micro-USB cable I could find, cut it and soldered it into a really short USB-A-to-Micro cable. I found the space was not quite enough for the Micro end, so I whittled the rubber out to bare minimum to make it fit.

The Micro-end has been whittled bare.

I wanted to make the adapter so it could be meaningfully pulled apart, if I need the Arduino again in some distant future.

At this point I could test it already works and fits into its place. I uploaded the same Arduino sketch as with my earlier adapter, and soldered the cables same way. That's it.

The remaining problem was how to make the USB-A end stick to the box firmly enough and still be able to dismantle the whole thing. Of course I could just glue gun it all to oblivion, but it might be tricky to get apart.

The USB sticks into place

I fit a piece of MDF snugly and put two screws through. This looks like enough to keep the USB connector in place and it won't fall apart when I gently remove the adapter from The Spectrum.

Another dummy connector, or something in similar shape, could be added just to keep the unit more firmly in position. I'll do it if I'm in the mood for fine-tuning this box.

I already know the Arduino joystick adapter feels lagless enough, and in practice this unit doesn't add that much to the Speccy experience. The old adapter I built is more practical. But this was a fun project idea and at least The Spectrum has its own adapter.

One future idea is to implement the "sound unit" function promised on the tin. This is not too far-fetched, as I could pull the audio out of the HDMI->VGA adapter's audio splitter and add a tiny speaker with an amplifier circuit. This would add some value to the box, replicating all the glorious 5 octaves from a tinny speaker as it's supposed to be.