Case Project: Dedicated ZX Spectrum Emulation Machine


17 posts
by Jamesbeat » Mon Oct 22, 2012 9:54 pm
I didn't know whether this would be more suited to the gaming section of the forum or the case section, but since this is mostly about a custom case, this seems like the best place for it.

I've wanted to build a dedicated Spectrum emulator for a long time.
I live in America now, and all of my original hardware is back home in the UK.
I've also got used to the luxury that emulators offer, such as instant loading, vast storage, save slots etc.

When the Raspberry Pi came out, I realised that this would be the perfect machine to base my emulator on.
It's tiny, cheap, and requires no fans or special cooling.

I decided to build a machine based upon the ZX Spectrum Plus, which was the model I originally had as a kid.
I wasn't hoping to make an exact replica or anything, but I decided to follow the general lines of the original machine, ie. a keyboard with a smaller 'box' underneath.

I did consider buying one of those flexible silicone rubber keyboards and making a rubber key Speccy, but decided against it.
I do own a rubber key model, but the one I originally had as a kid was the Plus with its 'professional keyboard' :D
I also like playing text adventures, and a silicone keyboard would have been horrible to type on....

It's almost finished now.
I have just got to make a bottom cover, which I'm going to make out of a 2.1mm sheet of aluminum.

I bought a mini usb keyboard, and stuck some strips of thick ABS sheet to the bottom to make a rectangular frame.
I used a technique called 'solvent welding', which is similar to the way Airfix-type models are stuck together.
The keyboard housing is also ABS plastic. I welded the parts together by using a 'goop' made by dissolving ABS plastic scraps in acetone.
This stuff melts and fuses the plastic pieces together, then the solvent evaporates, leaving behind a welded joint with about 75% of the strength of solid ABS.
By building up the seams, you can get incredibly strong structures. You'll see a seam at the rear of the machine that I didn't sand down fully, because doing so would have made it weaker.

Once I had the frame in place, I installed the innards of a usb power supply, then boxed it in with more ABS sheet to isolate the dangerous voltages.

Then I shortened the usb cable from the keyboard, mounted the Raspberry Pi, and hooked everything up.

The only thing that remains to be done is to hack a usb game pad and wire it up to the 9-pin D-sub connector on the front so I can use standard Atari-type joysticks such as my Competition Pro.

Image


Image


Image


Image


Image


The machine is running the SDL version of the Fuse emulator, and has the entire WoS archive on it :D

I just need to set it up so that the machine boots straight into Fuse on startup, and get rid of the stupid mouse pointer that is always in the top left hand corner of the screen :(

Having this machine has really made using an emulator more realistic. The whole feel of the experience is very close to using a real Spectrum.
Tiny cramped keyboard linked up to the TV with a cable, no windowing system to remind you that you're using an emulator.
With SDL Fuse, even the emulator menus are in the native Spectrum font.
If you turn off fast loading, (for novelty purposes only) you can recreate the entire experience, minus the tape recorder of course...

Here are the dimensions:

Real ZX Spectrum +
W 320mm
D 140 mm
H 40mm

My emulator
W 282mm
D 128mm
H 45mm

So as you can see, it's ever so slightly smaller except the height, which is 5mm greater.
I couldn't make it any thinner and still have room to enclose the power supply, but it was worth it for safety reasons, especially as it has a metal bottom cover.
The power supply unit is completely enclosed in plastic except for the +5v output.
I could have used a smaller psu, but I had a high quality one lying unused because it had a UK plug. I removed the guts and mounted them into the chassis.
It was a bit of extra work, and made the machine a little taller than the real Speccy, but it is a really nice psu with a very clean output, so it was worth it.
Posts: 39
Joined: Mon Oct 15, 2012 8:19 pm
by SepticLemon » Thu Oct 25, 2012 12:06 am
The only thing that remains to be done is to hack a usb game pad and wire it up to the 9-pin D-sub connector on the front so I can use standard Atari-type joysticks such as my Competition Pro.


Heh, what a coincidence...

I'm currently working on project to turn a RPi into an Atari 2600 emulator console with an HDMI output. I've been working on getting Atari Joysticks and paddles to work through the GPIO. Today I managed to get 2 ports working on a breadboard. Maybe you should go and have a read...

viewtopic.php?f=78&t=20555
User avatar
Posts: 29
Joined: Sun Oct 07, 2012 3:52 pm
by SepticLemon » Thu Oct 25, 2012 12:40 am
Oh, BTW, what Spectrum emulator are you using?

I tried out Unreal Speccy Portable, but I didn't like it... Got any suggestions to better emulators?
User avatar
Posts: 29
Joined: Sun Oct 07, 2012 3:52 pm
by Jamesbeat » Thu Oct 25, 2012 12:55 am
Excellent, I'll give that a read...

I'm using the Fuse emulator, mostly because I want keyboard-only control and no windowing system. Fuse uses SDL in the native Spectrum font, so it fits nicely.
The only drawback is that I can't get rid of the mouse pointer. A member here tried to help, but it looks like I'd need more programming knowledge than the tiny amount I have
Posts: 39
Joined: Mon Oct 15, 2012 8:19 pm
by SepticLemon » Thu Oct 25, 2012 1:06 am
Very cool...

I might give that a go tomorrow. As I said I used Speccy Portable, and it's pretty bad. Really it's an emulator made for PSPs, not HDTVs, as it's resolution is pretty small!
User avatar
Posts: 29
Joined: Sun Oct 07, 2012 3:52 pm
by Jamesbeat » Thu Oct 25, 2012 1:29 am
Apart from the mouse pointer, Fuse is great.
I like the fact that there's an SDL version, because it means a more realistic environment because you can use it entirely without a mouse. I know that there were mice for the speccy, but I never had one and they were pretty specialised items back then.

Fuse is in the repos, just sudo apt-get install fuse-emulator -sdl if you want to run it from the command line. You also need to install the ROMs.

It can boot straight into full screen, and is pretty much like having a real Spectrum but with extra menus.
Posts: 39
Joined: Mon Oct 15, 2012 8:19 pm
by Andrey » Fri Oct 26, 2012 8:22 pm
SepticLemon wrote:I might give that a go tomorrow. As I said I used Speccy Portable, and it's pretty bad. Really it's an emulator made for PSPs, not HDTVs, as it's resolution is pretty small!


You can try to build wx widgets version ;-)
There is full screen option and zoom 2x, 3x.
Posts: 71
Joined: Sat Sep 01, 2012 9:52 am
by SepticLemon » Fri Oct 26, 2012 9:40 pm
Ok, I had a go with Fuse.

So far so good, but I can't seem to run it command line :/
User avatar
Posts: 29
Joined: Sun Oct 07, 2012 3:52 pm
by Jamesbeat » Fri Oct 26, 2012 10:48 pm
That's odd...

You are typing 'fuse', not 'fuse-emulator' aren't you?
The reason I ask is because I made that mistake to begin with...
Posts: 39
Joined: Mon Oct 15, 2012 8:19 pm
by SepticLemon » Fri Oct 26, 2012 11:02 pm
Jamesbeat wrote:That's odd...

You are typing 'fuse', not 'fuse-emulator' aren't you?
The reason I ask is because I made that mistake to begin with...


Yup, but it comes up with an error message saying "(fuse:2064): Gtk-WARNING **: cannot open display"
User avatar
Posts: 29
Joined: Sun Oct 07, 2012 3:52 pm
by Serac » Fri Oct 26, 2012 11:42 pm
Jamesbeat wrote:The only drawback is that I can't get rid of the mouse pointer.


http://www.noah.org/wiki/cursor_disable_in_X11

Note to self: Must try that myself on the t/s boxen.
Posts: 124
Joined: Wed Jul 18, 2012 2:49 pm
by poglad » Tue Nov 06, 2012 2:01 pm
SepticLemon wrote:Yup, but it comes up with an error message saying "(fuse:2064): Gtk-WARNING **: cannot open display"

Make sure you're running it as root? I use fuse-sdl and have to put sudo in front. It's a lovely emulator. My favourite on Windows is Spectaculator but fuse does a great job.
As for the homebrewed speccy lookalike - you realize it won't perform 100% unless you add the go-faster rainbow stripes? :lol:
User avatar
Posts: 102
Joined: Tue Jul 31, 2012 8:47 am
Location: Aberdeen, Scotland
by fdion » Tue Nov 06, 2012 2:18 pm
The december Linux Format has an article on a raspberry pi inside a real ZX case, but I think it is cooler a purpose built hack like this.

François
Francois
http://raspberry-python.blogspot.com - @f_dion
User avatar
Posts: 305
Joined: Sun Sep 16, 2012 2:33 pm
Location: North Carolina, USA
by beanz991 » Tue Nov 06, 2012 6:20 pm
Yup, but it comes up with an error message saying "(fuse:2064): Gtk-WARNING **: cannot open display"


You need to install the sdl version and then run it from commandline with fuse-sdl
Posts: 1
Joined: Tue Nov 06, 2012 6:18 pm
by Andrey » Sat Jan 05, 2013 8:10 pm
SepticLemon wrote:Very cool...

I might give that a go tomorrow. As I said I used Speccy Portable, and it's pretty bad. Really it's an emulator made for PSPs, not HDTVs, as it's resolution is pretty small!


Hello. Now you can try the latest version built specially for rpi & HDTVs.

http://code.google.com/p/unrealspeccyp/ ... p&can=2&q=
Posts: 71
Joined: Sat Sep 01, 2012 9:52 am
by mikerr » Sun Jan 06, 2013 11:30 am
Jamesbeat wrote:The machine is running the SDL version of the Fuse emulator, and has the entire WoS archive on it :D.


So almost every speccy game/app released for instant load ... taking up under 1GB of space ! How times change... :shock:
Got a Pi Camera? View it in my android app - Raspicam Remote ! No software required on the pi
User avatar
Posts: 1250
Joined: Thu Jan 12, 2012 12:46 pm
Location: NorthWest, UK
by Jamesbeat » Tue Feb 26, 2013 7:24 pm
Yes indeed!
It's my 10 year old self's dream come true :D

The instant loading is a big step up from the original too, but I sometimes find myself turning it off and waiting for the game to load just like the good old days..,
Posts: 39
Joined: Mon Oct 15, 2012 8:19 pm