Testing the Spectrums

Buying second hand stuff always carries a bit of risk.  Buying second hand electronics which are 30 years old, and notoriously troublesome even when brand new is something you have to go into with your eyes open.  I’m not stupid, so when someone on eBay says ‘fully working’ I take it with a pinch of salt (good job too).  I knew that I was going to have to properly test the Spectrums.

I also wanted to actually play a game, since I’d had them for a couple of weeks, so combining the two seemed to make sense.  I already knew one of them was a non-starter since the keyboard membrane is screwed, and the P and Enter keys don’t work (so you can’t even type LOAD “” and hit enter!), but there were still 2 with which I could have a go.  I was wondering how to actually load some games, which led to this post.

Essentially, Spectrum games (and other cassette based games from the same era) are sound recordings of binary data (1’s and 0’s).  It goes without saying, therefore, that anything which can play sound, should in theory be able to provide a source for the Spectrum to load games from.  I had expected to use a little walkman style player we have, but the MP3 option seemed even better (and geekier, nerdier and more mind blowing).

I used the same process as the guy who’s article I found for converting the tape files to MP3.  The software isn’t exactly intuitive, and Windows 7 adds some excitement, but the basic process is (for Windows)

  • Go to the Project OTLA homepage (here)
  • Get the latest version of OTLA (from here)
  • Unzip it somewhere easy to use, and avoid spaces in directory names
  • Run otla.exe, you’ll get this screen,
  • At this point, I had to guess how to proceed, but you basically choose File | New+Add.  You’ll get the file dialog, and you then locate the file you want to convert.  OTLA will read .tap, .tzx, .z80, .sna, .scr, and .dsk files as well as it’s own .sbb.
  • OTLA will then ask you which blocks to include.  I just guessed.  For my Bomb Jack .sna file there’s only one block and it’s already added, for my Manic Miner .tzx file, there are three, with two already ticked.  I can’t tell you what to tick, just have a play and see what works!  Here’s the screen for Bomb Jack,

    Choose OK once you’ve guessed at what to do.
  • OTLA will then populate the main screen with some options, but default, I get this,

    but you might get something different.  Again, I can’t explain what all those options do.  I’m not worried about how long it takes the games to load, so I unticked Accelerate, and eventually, samples/bit of 4 worked best.  Make sure you choose the right Model, and I had to enable interrupts to get Bomb Jack to work.
  • Click SBB => MP3 and off you go.

Once you’ve got the MP3, you can play it from just about anything with an audio jack.  I did this first with Manic Miner and then today, with Bomb Jack.  Here’s the fun I had with Manic Miner though.

  1. The audio cable I have (came with the ‘fully working’ Spectrum), only the black audio jack works, the grey one doesn’t.  That took me 10 minutes of messing about to diagnose.  I was trying to play the MP3 via my iPhone and I knew I should be able to hear it being played through the Spectrum speaker, but couldn’t.  I assumed I had volume issues.  Ten minutes later I tried the other jack and I could hear it instantly.  So, problem solved.
  2. I tried three times to load the game on one of the Spectrums, and every time it just crashed and hard reset.  I recreated the Manic Miner MP3 a couple of times with different settings, but nothing helped.  Eventually I gave up and tried the other Spectrum that had a working keyboard and it loaded first time.  Much joy!  I played it for a bit, then went back to the first Spectrum – hard reset.  Then I had an epiphany 30 years in the making.  Can you believe that I remember from the days when my cousin had a 16k Spectrum, that the default behaviour when you tried to load a 48k on a 16k Spectrum was a hard reset?  I whipped out the ‘how to check how much memory your Spectrum has’ code (see a later blog post), and sure enough, one of my 48k Spectrums is actually only a 16k Spectrum.  From my reading of the output, it’s not a fault, it’s a factory condition.

After all that messing about, I was still pretty much ecstatic after playing Manic Miner, in blur-o-vision, on a Spectrum with a faceplate peeling off, despite having found out one of my Spectrums was oversold and the audio cable I had was dodgy.

Ah, the joys of retro gaming.

It’s getting bad – I bought a TV.

A couple of years ago now, we finally got rid of our VHS recorder and the portable TV that Grete had when she first moved to Nottingham.  We just never used it.  We’ve never been bedroom TV watchers, despite the portable TV being in that room, so it was just taking up space.

I was pretty instrumental in doing that, Grete liked the TV and would have kept it and infrequently used it, if I hadn’t ‘encouraged’ her to get rid of it.

Today, I went out and intentionally purchased a second hand portable TV from a local charity shop for £9.  I’m just lucky Grete likes me quite a lot I guess.

The ZX Spectrums I’ve got all have various issues, and two of the 48k ones in particular had pretty bad display quality on our regular LCD TV.  I wanted to start messing around with changing the Spectrum output to Composite, and with the +2, I wanted to see if I could fix it and get the regular RF working.  What I didn’t want to do, was damage our main television.  Sure it’s a few years old and has issues, but that’s no reason to electrocute it.  Of course, it’s not likely I’ll do it any major harm, but rather than risk it, I thought I’d get an old CRT and then if I blow the RF or AV connector, it’s no great loss.

So I am now the proud? owner of a Philips portable colour TV.  I spent a few minutes tuning in the Spectrum I know gives a good signal (keyboard doesn’t work though), and then set about seeing how the others faired, and I’m pleased to say the two other 48k’s are much better on this TV than the main one.  Not sure if it’s an issue of how fine the tuning is, or just a small CRT disguising the problems better, but all three of the 48k’s give between a passable and an excellent image.

I took a load of photo’s, but of course, digital cameras and 50Hz CRT’s don’t mix very well. I did get a couple though.  These are both from the same Spectrum, which is the one that works best, despite having the worst external condition.

The +2 still doesn’t get much of an image (as you would expect, since the RF connection has been cut), but at least the other 3 are improved (or give the illusion of being better).

Once I knew it worked, I set about taking the +2 apart to see if I could get a Composite video feed from it.  I’ll post about that, later.

Load ZX Spectrum games from MP3!

My memory of the ZX Spectrum is warm and hazy, but even I remember the pain you had to go through with tape players, and adjusting the azimuth of the tape head.  I even had (and who didn’t?) a specific special screw driver permanently in place in the tape player so I could tweak it as required.

To imagine you could get away with loading ZX Spectrum games from an audio file, created from a file which in turn has been created from the actual tape blows my mind.  To do it using a lossy-compression algorithm like MP3 makes my cortex bleed.

But you can, and it’s not that hard!

I’ve had the Spectrums in the house for a couple of weeks now, so I felt it was time I actually tried to you know, play a game on one of them.  This isn’t without challenges and in the process I discovered some more issues with the little black microcomputers from my past.  I don’t have a tape deck knocking around, although I do have a very old walkman style cassette player.  In my head, I’d been half planning to use that to try and load games on the Spectrum, and one eBay purchase had some tapes.  But I remembered something I’d read online about ‘speed loading games from an MP3 player’, so decided to do a little more research on that.

A quick google search later, and I was looking at this website.  Twenty minutes after that, downloading the software it mentions, I was playing Manic Miner on one of my real ZX Spectrums, on my TV.  Crazy!

I’ll write a longer blog post later, for the full process, and the issues it revealed with the stuff I’ve bought so far.

It’s not just the Rust

The first 48k Spectrum to arrive works fine, but the image is pretty flickery.  I’d assumed that was because the RF connector looked rusty, so after asking on Facebook/Twitter, I gave it a solid clean!  That requires taking the whole thing apart of course, and that means risking the paper thin membrane connectors which are shoved into the motherboard.

The inside of this Spectrum is different though, it’s a 3B apparently, and the connectors the membrane goes into are lying at an angle, I’m not sure if that’s original or not.

The membrane connectors are also slightly thicker and tougher than I would have expected, so I’m wondering if it’s been replaced at some stage (if it has, nice job, the metal faceplate looks well attached).  Anyway, here’s the back of the board.

And here’s the RF connector, it’s not as bad as I had feared.

5 careful minutes with some abrasive material, and it was significantly cleaner.  I also took the opportunity to clean up the rest of the board and then put it all back together (before I remembered to photograph the RF connector again).  Sadly, despite the clean, the image isn’t significantly better, so I need to ask around and see what else could be causing it.  In the meantime, here’s a pretty useless shot of the cleaned connector inside the case.

Opening Pandora’s Spectrum

I wanted to have a look inside the ZX Spectrum +2, to see if I could work out why the TV image is so fuzzy from the RF feed.  I couldn’t see if the connector was rusty or if there was some other issue, and I’d never seen the inside of a +2 either (I never originally owned one).

This is the second Spectrum I’ve bought where someone has replaced a missing screw with a wood screw!  This time, the wood screw is about 3 times the diameter of the screw it replaced!  Anyway, I got the screws out, and lifted the case apart, you have to sort of jiggle the tape deck PCB out from underneath a metal bracket, but it wasn’t too hard.  The inside of the thing is pretty manky (the 48k I got along with this smelled a bit like chip fat).  20 minutes later I had the board cleaned.

The area next to the board which sits under the tape deck looks like it’s got a bit of grease knocking around, probably from the deck itself, so I gave that a good clean as well.  The back of the main board isn’t like a 48K Spectrum, so you don’t get an issue number or anything, but I took a photo just in case it means something and I need to look it up later.

However, the main reason for taking this thing apart was checking out the RF signal.  The connector itself is pretty clean, but the metal box with the RF circuitry is missing the lid, and I think I found the problem with the signal.  These two photo’s are near identical, but with just a slight angle difference to help see the problem.

Is it me, or has someone cut / snipped / broken the wire attaching the RF connector to the rest of the electronics?  The wire sticking up out of the orange component on the middle left doesn’t go anywhere, and the wire coming out the back of the actual RF socket isn’t attached to anything.  It’s almost as if someone tried the composite video hack, and either failed or then removed it.

Essentially, I think it’s a miracle I can see anything at all using the RF feed.  I need to do some more research in case I’m missing something obvious, but I can’t see how it would work at all without a connection.  I don’t have a connector for the RGB out (or indeed, anything I could view it with initially), so I may get to try out my soldering skills on fixing this if I can find a diagram showing how it should look!

Borderlands 2

I love the first Borderlands game.  So much so that after completing it a couple of times on the PS3, I repurchased it on the XBox after my Sony-Rage meant I stopped using the PS3 completely.

I was pretty excited when Borderlands 2 was announced and I’ve been patiently waiting for September to arrive.  Here it is, and Borderlands 2 dropped through my letterbox this morning.

So far – it’s excellent.  All the good stuff from the first game and some of the annoying things ironed out.  The biggest difference is the enemy – they’re much, much cleverer.  The locations seem more sprawling, if that’s possible, and the enemy can turn up from almost any direction.  Locations are significantly more three dimensional as well, with gangways above and below where you’re walking.

The lovely cell-shaded-like graphics are still present, and the same dark humour runs through the sequel.

So far, after a few hours of playing, I can honestly say it’s the most fun I’ve had on the XBox 360 since Borderlands 1.

My favourite feature so far – the comments your character makes after a critical head-shot.  Love that sniper rifle.

Another box of Retro Magic

Note: Can’t keep using the same title, so I’ve changed the posts to be part of a collection of articles.  As well as that, they’re the only ones that will show up in the Retro Computing category.

So, as well as the DataServe-Retro parcel that arrived, I got another of the Spectrums I’ve won on eBay.  This was actually the 2nd one I won (the first one still hasn’t arrived, but is on the way, apparently).  I didn’t buy this lot for just the Spectrum (which was obviously in a bad way in the photo’s), but because it comes with a couple of joysticks, a joystick interface (couldn’t tell what kind in the photo), and a thermal printer (no clue if it works!)

Anyway, unpacked the content, and I’m now the proud owner of a bunch of somewhat dirty peripherals!

The joysticks are a Cheetah 125 and a Cheetah 125+.  The latter is pretty grimy!

The interface turned out to be a DKTronics single port joystick interface.  It’s pretty dirty as well.  It should look like this.

It actually looks like this.

A little bit of a clean will do it the world of good, assuming it still works!

The printer is the Alphacom 32, which I believe is the US version of the standard Sinclair thermal printer, although it’s in a more sturdy, robust case.  The interface has some springs, which are badly bent, but nothing I don’t think I can’t fix (enough double negatives?)

And of course, this box did contain a 48K Spectrum!  The photo on eBay suggested there was some sticky tape holding the case on, and that turned out to be true.  Removing the tape has removed a little bit of paint, and the case clearly bends up away from the plastic (someone’s tried replacing the membrane or the rubber, and have bent it).  Other than that, it actually works perfectly well.  The image isn’t as crisp as the Spectrum with the broken membrane, but is must better than the one with the rusty RF connector.

All-in-all, I’m pretty pleased with this purchase.  It wasn’t expensive, and if the printer works (untested) it’ll be well worth the asking price.  The motherboard in the Spectrum is in good condition, so if I can tidy the case up, or get another one, it’ll be a nice little computer.

Edit: Change my mind again, not using the Articles page, because there are too many, must sticking to the Retro Computing category.

8bit Mid-life Crisis – part 5

Got a couple of parcels this morning.  The first one was from DataServe-Retro and contained my new (old) power supply and a brand new RF cable.

There’s no plug on the power supply, which was pretty common in the 80’s, but is always surprising these days.  I did know it wasn’t going to have one.  Putting the plug on reminded me that it’s probably 10 years or more since I’ve had to do that, and I wonder if kids still get taught how to do it at school like we did.

Anyway, the power supply works fine and the RF cable is nice and tidy.  The image from the working Spectrums is a little bit better with the new cable as well.  Very pleased with the service from DataServe, and although they aren’t super cheap, for something like a power supply I’m happier getting it from there than I am eBay!

They sell keyboard membranes as well, so I might get one of those (next month, no money left this month!) to fix up the Speccy with the split ribbon cables.

Compiling analog 6.0 on Cygwin

Again, mostly for my own use later.  I had a need to run analog on my machine, and I didn’t want to download the Windows binary, because everything else I would be doing with the log files would be via Cygwin.  After a few unsuccessful attempts at compiling analog, I finally RTFM (read the flipping makefile) and made the following two changes.   In src/Makefile,

DEFS = -DHAVE_GD

LIBS = -lm -lz -ljpeg -lgd

That tells the analog makefile to use your pre-existing GD, JPEG and ZLIB libraries, rather than compiling the ones it comes with (it was those libraries which were giving me errors).  Once I’d done that, make clean and make worked fine and analog behaves as you would expect.

For reference, the errors I was getting before this change were,

libpng/pngwrite.o:pngwrite.c:(.text+0x1ec): undefined reference to `__imp__png_libpng_ver'
libpng/pngwrite.o:pngwrite.c:(.text+0x1f8): undefined reference to `__imp__png_libpng_ver'
libpng/pngwutil.o:pngwutil.c:(.text+0x45c): undefined reference to `__imp__png_IHDR'
libpng/pngwutil.o:pngwutil.c:(.text+0x6a5): undefined reference to `__imp__png_PLTE'
libpng/pngwutil.o:pngwutil.c:(.text+0x73d): undefined reference to `__imp__png_IDAT'
libpng/pngwutil.o:pngwutil.c:(.text+0x77e): undefined reference to `__imp__png_IEND'
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: libpng/pngwutil.o: bad reloc address 0x12c in section `.rdata'
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: final link failed: Invalid operation
collect2: ld returned 1 exit status
Makefile:76: recipe for target `analog' failed
make: *** [analog] Error 1