The Acorn Archimedes is hugely under-appreciated as a retro gaming platform. While it never had the largest catalogue, many of the games available for it are the best in their class.
And for titles that were released on the Amiga and the consoles as well, the massive hardware advantages of Acorn hardware at the time meant that the Archimedes version was often the best: it’s not a whole world away, but the graphics and gameplay are noticeably smoother.
And now, with the widespread popularity of the Raspberry Pi, it’s become much easier for casual retro gamers to dabble in some old school RISC OS gaming.
But even though we’re running these games on the operating system and CPU architecture they were written for, 30 years of computing is long enough that a few things inevitably change. I mean, where on earth’s the floppy drive? And 64MB stopped being a massive amount of RAM some time ago, so bye bye 26-bit memory addressing.
There are plenty of free tools you can download to fix these issues. But putting this all together has been complicated by the fact that the bits and pieces you need are somewhat strewn across the internet, with no real instructions to guide you through the whole process.
It’s even trickier if you haven’t touched a RISC OS machine in 25 years – or perhaps ever.
That’s where this comes in: A complete, step-by-step guide to getting old Acorn Archimedes games running on a Raspberry Pi.
It presumes no prior knowledge of RISC OS, and is a nice gentle introduction to a very interesting and idiosyncratic branch of computing. If you’re a Raspberry Pi tinkerer who is interested in playing these games – many of which have held up very well over the years, then check it out.
August is Games Month on the RISC OS Blog, where we focus exclusively on gaming, be it reviewing new games or taking a trip down memory lane with a look at a classic title. Stay tuned for more games articles throughout August!
The RISC OS games scene has enjoyed quite a rejuvenation over the last few years, with Amcog Games hitting the market with their debut title Overlord in 2015 and R-Comp re-releasing a number of their titles for newer RISC OS machines.
Since then, the flow of new games to play through has been so quick and fast that this blog has fallen woefully behind on covering them.
Now is time to change that, for the entirety of August the blog is going to be focusing exclusively on gaming on RISC OS. With multiple game reviews as well as other gaming related articles going up on the site throughout the month.
We’ll also be exploring the numerous gaming possibilities available to us through emulating gaming systems or other operating systems on RISC OS.
The first article of this month of gaming coverage goes live on August 1st. In the meantime, you could check out the various titles we’ve already reviewed in our Games Corner section.
Happy RISC OS Games Month!
A while back we took a look at running a HTTP web server on RISC OS with Web James, which for the most part was a pretty painless process. WebJames isn’t the only option out there though, HTTPServ by Thomas Millius began life in 1998 as a way for Thomas to get more familiar with the Internet and how it worked. Fast forward to 2018 and it’s now at version 0.11 and able to run on modern RISC OS hardware.
HTTPServ is a simple HTTP 1.0 web server, it currently doesn’t support HTTPS (no web server on RISC OS does to my knowledge) but it can act as a proxy and it supports cgi-bin dynamic webpage generating including !PHP.
You can download HTTPServ for free from the Pling Store.
Setting up HTTPServ
What’s cool with HTTPServ is, once it’s been installed and the application is run for the first time, your web server is already setup and running with a basic template webpage.
An icon appears on the left side of your icon bar, clicking on it will bring up your web directory where all your webpages and other files you want accessible to your website’s visitors should be stored. The default web directory is actually within the !HTTPServ application itself, inside a folder called Files.
If you’d rather not write your website manually via a text editor, you could use something like HTML3 to design the website that will run on your HTTPServ server. Alternatively, if you’ve already got a pre-designed website or something similar ready to upload from another machine, you can use something like Samba so that files can be dropped onto the RISC OS system running HTTPServ.
Should you want to tweak with any of the configurations of the server, for example routing traffic through a proxy or accepting traffic from certain IP addresses only, then middle-clicking on the icon bar iconthen clicking on Configuration will bring up the HTTPServ config file in a text editor, where you can tweak away to your heart’s content. You can configure a fair amount of things, including changing your web directory from the Files folder within !HTTPServ to another location on your system.
Should you want your web server to automatically start when your system boots, then you can configure HTTPServ to run at boot by running !Boot, navigating to ‘Boot’ then ‘Run’. Just drag !HTTPServ into the ‘Run at startup’ window and click ‘Set’ to save your changes. Your web server will then run whenever your system starts.
To make sure your web server is running, visit http://127.0.0.1 in a web browser on the system you’re running HTTPServ on, this should bring up your website.
Local network configuration
If you want to access your website from an external network (i.e. via the Internet) then you’ll need to enable the firewall your web server is passing through to allow connections on port 80 (the HTTP port). With most setups this can be achieved by adding a port forwarding rule in your router’s firewall to allow TCP connections over port 80.
Should you decide you don’t require access to your web server from an external network – for example, you only need to connect to it from devices in your home so that you can easily link through to other servers/services on your home network – then you don’t need to do anything, traffic should pass over port 80 without a problem unless you have device-specific firewalls blocking this port (you’ll probably know about it if this is the case).
Accessing your website
Once your web server is setup and running on RISC OS, you can remotely access it by pointing any web browser to the IP address designated to your RISC OS machine running HTTPServ, or alternatively if you’ve configured a domain name to point to your IP address, you can visit the domain name.
LAN Access – If you’re accessing it from a device connected to the same local network as your server, then you can specify the LAN IP address for your device (e.g. 192.168.0.2) – it’s worth setting up a static LAN IP address in your router’s DHCP settings to ensure this stays the same.
If you will be accessing the server from your local network and from external connections, then following the steps in the ‘WAN Access’ section below will be your best bet.
WAN Access – If your website needs to be accessed from machines outside your home network, then web browsers will need to point to your WAN IP address, which will be assigned to your Broadband modem. You can find out your IP address by searching ‘My IP’ using most major search engines,(click here for a pre-configured search query) or or alternatively if you’ve configured a domain name to point to your IP address, you can visit the domain name.
There we have it! You’re running a web server on your RISC OS computer with HTTPServ.
Space shooter Equinox from Jason Tribbeck has an interesting and long history behind it. It initially began life in 1992, being developed for the Acorn Archimedes. It used filled-in vector graphics for near enough everything and ran in a 320×256 screen mode. A deeply-nested bug that couldn’t be tracked down meant that it didn’t see a release.
Jason decided to re-write it in June 2002, and after an on-off development phase, it saw a limited beta release some years later, development then halted and nothing more came of it.
Fast forward to now and Equinox has now been updated to work on the Raspberry Pi, which should mean it’s compatible with most other moderns RISC OS-friendly boards such has the Beagleboard and Titanium. Although not officially complete, Equinox can be downloaded for free from here.
The game itself
As you’d expect from a space game, your main objective with Equinox is to shoot and kill things. There are 225 levels arranged in a 15×15 grid (although as the game is not yet complete, some may not be playable). You start off in the centre of that grid and it is up to you what order you complete the levels. You can only proceed to levels that are directly adjacent to the level you’ve completed on the grid.
Upgrades can be made to your ship along the way through the in-game shop. You can boost its speed, make it turn quicker, improve maneuvering, change your weapons around, add energy generators and energy bombs too.
One thing to keep in mind with your ship is that you need to ensure it has enough energy to complete the level – if your energy supply drops to zero then it’s game over – for that level at least. Energy is used whenever you hit an object, or fire your weapons. Your energy will rebuild – the rate at which it rebuilds depends on how many energy recharge units you have – the more you have, the quicker it will recharge.
Weapons have two main requirements that you need to keep in mind. They need enough energy to use, and they need to be cold enough to fire. If they get too hot then they’ll need to cool down before they can be used again.
When you turn your ship, the maximum speed depends on the angular cooling system level. The more cooling you have, the higher your maximum turn rate can be. The acceleration of your turn depends on the angular acceleration level, the more you have, the sooner you will reach the maximum. The higher your turn rate is, the better the maneuverability is – however, you don’t want to make it too fast, nor uncontrollable, so it’s a balancing act between each of these items.
Performance & Compatibility
After a good a few sessions playing Equinox on my Raspberry Pi 2, stability and performance is where you’d expect it to be. The gameplay is smooth and I didn’t experience any crashes or anything else unexpected. Pretty cool considering it doesn’t appear like a lot of modification was required to get the game running on newer hardware.
Longevity-wise, the game’s novelty doesn’t run out as quickly as you might expect for a game that has a simple objective of just killing things in space. The game’s music provides very appropriate atmosphere to a title that is coupled with tidy graphics and simple yet solid gameplay.
The game should play fine on a vast majority of RISC OS machines, be it legacy 26-bit computers or 32-bit machines. I’ve played the game for a number of hours both on a Raspberry Pi 2 running RISC OS 5.24 as well as Virtual RPC-SA running RISC OS 4.02. Equinox has also been reported to play fine on the Titanium so I’d imagine it should run fine on pretty much any modern RISC OS machine.
Equinox is an impressive game with a long and varied history, and is another good boost to a RISC OS games market that seems to have been invigorated as of late with a good number of new releases, both commercial and free, making it out to the masses.
A few years ago, RISC OS Open announced that a large number of applications would soon no longer be able to access the ARM vectors, kernel workspace, or any memory in what is known as ‘zero page’, which the memory from addresses 0 to 4095.
Fixing these zero page memory bugs in anything that runs on RISC OS will be a huge step towards allowing RISC OS to move closer to running on multiple cores in modern ARM processors, and to greatly improve system stability by removing a common class of programming mistake when applications use an address of zero by mistake.
Since ROOL’s announcement over three years ago, they’ve announced that over 70 bugs that needed addressing within RISC OS itself have been resolved – while the response from developers in the community has been pretty good, with a good number of popular applications being fixed to avoid huge compatibility issues later on down the line.
With the introduction of RISC OS 5.24, to help with compatibility a largely empty ‘page’ of read-only memory has been positioned where the old ‘zero page’ used to be, so accidental reads will continue to be hidden until any of the few remaining commonly-used buggy applications are fixed.
What’s really good to see here is the community seems to be responding in a very positive way towards upgrading applications now to avoid compatibility issues later on down the line.
Obviously there will still be some problems when RISC OS moves towards utilising multiple cores (or at least laying down the foundations for it), afterall we’re still coming across a few widely used applications that aren’t 32-bit compatible, 16 years after the first 32-bit RISC OS computer came out. For the most part however, it goes to show to that most people involved with RISC OS seem to be working towards a common goal now rather than the ROOL/RISCOSLtd. split that was very prevalent a few years ago.
A list of applications that have been reported and fixed is available on ROOL’s website should you want to take a gander.