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.
RISC OS 5.24 stable is now out for all to take advantage of the 708 changes since 2015’s 5.22 stable release. 20 or so of those changes would be considered major improvements.
The biggest news is the addition of RISC OS’ ability to handle larger hard drives, JPEG support, monitor EDID support and a number of tweaks to the network stack.
This release incorporates a huge 707 changes for the OMAP3 platform used by the ARMini and 708 changes for OMAP4, used by the PandaRO and ARMiniX computers. Older platforms such as Tungsten (Iyonix PC) and IOMD (RiscPC & A7000 range) have also seen a deludge of changes. For the first time the stable release includes the Raspberry Pi and Titanium ports.
A number of these major improvements have come as the result of the ROOL Bounty scheme, which for those of you that may be unfamiliar, is a RISC OS Open initiative where a list of development items is published on ROOL’s website and people can throw money at the items they’d most like to see come to fruition. This then allows for developers to work on something that they do not have enough spare time to work on in their free-time.
Userland features have also seen some TLC – with Printers, DosFS, Maestro and other utilities getting updates. Access+, Econet support on Omniclient and the NFS client have also seen their first updates in many years. LanManFS has also been updated with some security tweaks as well as the ability to connect to Windows 8 and 10 shares.
In their announcement of 5.24’s arrival, ROOL have also said they’re hoping to see RISC OS back in the NOOBS software for Raspberry Pi, after it was removed a few releases back.
This release has also seen ROOL improve the release process, there is now a more formal set of criteria to verify each platform supported and a traffic light system with statuses of red, amber and green.
Useability & upgrading
From a useability standpoint, the RISC OS experience is exactly the same as it was so there’s no nasty surprises for when you upgrade your machines.
The upgrade process on my Raspberry Pi was very straightforward and pretty quick – ROOL have a nice guide to take you through the upgrade process that is worth checking out.
Computer and board-specific advice relating to the installation and upgrade process for this release is also available on ROOL’s website.
Backwards compatibility is very good, I’ve encounter no issues with running any applications or utilities so far – which is to be expected from a stable release, afterall 5.24 has been a long-time in the making.
Improvements of note
- Filecore – Reports sector offsets correctly with the *Map command on old format discs. Full directories on long filename discs are now correctly faulted rather than producing an unreadable disc. Filecore can now use up to 21 bits for the disc address, meaning a smaller logical file allocation unit, for more efficient use of space on large discs. Bug fixes to 4kbyte sector support allowing drives up to 2TB in size to be used, instead of the previous limit of 256GB with 512 byte sectors.
- ADFS – Compatibility with flash drives has been improved, where previously they might report disc error 20.
- Kernel – A new concept of ‘physical memory pools’ has been added, this is where a dynamic area can set aside lots of physical memory but only use a small window of logical memory, for example to allow a large RAM disc. Extra APIs have also been added to allow low level software to discover features of the ARM processor such as its support for exclusive monitor instructions as and when they are removed depending on the ARM core.Teletext video modes can now have extra characters on each line rather than being constrained to 40 (up to a limit of 255). An extra conversion for OS_ConvertVariform to handle globally unique numbers (GUID). Some preparations and reorganisation for multiple ARM cores have also been made. A new option to configure a MonitorType of EDID which will read the settings from the monitor directly as part of the EDID bounty work.
- LanManFS – It will now connect to NTLM authenticated shares which is a minimum requirement on many servers to improve security. It also now correctly performs writes over 64kbytes when the server declares a buffer size of larger than this.
- USBDriver EHCIDriver and OHCIDriver – Scanning keyboards, particularly when hidden behind hubs, at power on in order to do power-on-delete (for example) is now more reliable as part of the USB bounty work. The drivers have been updated where practical from the parent copies in NetBSD
Where to grab it
You can download RISC OS 5.24 for free from ROOL’s website and for purchase on their SD cards. Their ePic card has also been updated with RISC OS 5.24 and latest versions of SparkFS, PhotoDesk, DDE and Impact – you can purchase it from the ROOL store.
A development image of RISC OS 5.25 for the iMX6-based Wandaboard is now available to download from RISC OS Open’s site, which adds another low-cost board to the ever-growing list of machines that can run RISC OS 5 natively.
The Wandboard i.MX6 is an ultra low-power computer which claims to have ‘high performance multimedia capabilities’. The board is based around the NXP i.MX6 Cortex-A9 processor.
On the Wandboard website, there’s currently four boards available for purchase. There’s the single-core Wandboard Solo, then the dual-core Wandboard Dual, the quad-core Wandaboard Quad and the very deluxe-sounding QuadPLUS – although from their website I can’t actually seem to find out what you get from the QuadPLUS that you don’t already get from the standard Quad!
As RISC OS does not currently support the use of multiple cores, there’s not much point in opting for anything other than the Solo at this point, unless you’re planning on running other operating systems on the board too, in which case opting for the Dual or Quad options could be a good way to go depending on what you want to do.
The Solo currently packs 512MB RAM, on-board audio, serial, USB and HDMI ports. It also has a MicroSD card slot to run your operating system on much in the same way as you would on the Raspberry Pi. All boards have networking capabilities and an expansion header. The Dual and Quad editions have built-in Wi-fi and Bluetooth support (although RISC OS can’t take advantage of this) and the Quad packs a SATA connector too.
Single core @ 1GHz
|micro SD cardslot|
The Solo is currently available for $69.00 – so roughly 50gbp. The Dual starts at $89.00 and the Quad weighs in at $119.00.
Just like similar ARM-based boards, the Wandboard ranges of machines will run RISC OS and Linux off the bat. FreeBSD has also recently started supporting the Wandboard.
Overall, the Wandboard looks like a piece of kit that gives you an awful lot of bang for your buck at a pretty reasonable price. Without getting my hands on one I can’t say how the Cortex-A9 CPU at 1GHz will compare to say a Raspberry Pi 3, but it will undoubtedly be powerful enough to run anything you want RISC OS wise, even with the 512MB RAM that comes with the Solo.
The development image of RISC OS 5.25 for the Wandboard is available for download from here.
After the release of the Iyonix PC in 2002, RISC OS started moving from 26-bit architecture towards 32-bit. Nowadays all modern RISC OS machines are 32-bit, but an awful lot of older applications are still not compatible with modern 32-bit RISC OS.
Aemulor, originally a commercial application but now free to download, is a software emulator that allows RISC OS applications which were written for a 26-bit ARM systems to be used on more recent CPUs that provide only 32-bit addressing modes. RISC OS itself is unaware that there is anything unusual about the 26-bit applications that are running under Aemulor, to RISC OS they appear as normal applications – they appear on the icon bar and can communicate fully with other 26 or 32-bit applications.
The way I use RISC OS tends to steer me towards using more recent 32-bit applications – for example my email client, web browser and SSH terminal that I spend most on my time on the RISC OS desktop with are all 32-bit. My use case is definitely not typical though, I use RISC OS for a number of my regular tasks because I’ve used the operating system for many years and I’m comfortable in using in it – there isn’t anything in particular on RISC OS that I can’t get elsewhere.
From reading the RISC OS forums and newsgroups it seems to me that legacy applications is actually a big reason as to why people are still using the OS. So for these people, Aemulor is essential kit for say, running that version of Impression that you just can’t get yourself to move away from, or that CAD software that does exactly what you need it to do but it hasn’t been updated in two decades.
So I thought I’d take a look into what the experience is like running older legacy software on modern machines, and whether it really is enough to satisfy those that are tied to RISC OS for particular applications.
How does it work?
Aemulor in a sense is a compatibility layer that sits between the 26-bit applications/modules and 32-bit RISC OS 5. There are two main components to Aemulor – the 26-bit CPU emulation, and the RISC OS 4 API emulation.
The CPU emulation element determines the speed at which 26-bit programs will execute. Emulation of the RISC OS 4 API largely determines which applications will work and which won’t.
Not all 26-bit applications will run under Aemulor, although for the most part the success rate is pretty high. Essentially, the more low-level a program is, the less likely it is to work correctly under Aemulor. An example would be, device drivers that directly access hardware are unlikely to work, drivers that use the documented RISC OS APIs however are more likely to work.
Aemulor builds are available for most modern RISC OS computers, including the Raspberry Pi as well as CJE Micro’s and R-Comp’s current range. A (potentially unstable) A9Home version is available by request from its developer Adrian Lees.
- Titanium, RapidO, TiMachine
- Raspberry Pi, Pi Zero, Pi Zero W (BCM2835)
- Raspberry Pi2 (BCM2836)
- Raspberry Pi3, Pi2 ver 1.2 (BCM2837)
- ARMX6, ARMiniX, ARMini, BeagleBoard, PandaBoard
- IYONIX pc
So while I’ve used Aemulor in the past, mainly on an Iyonix, it’s not graced my Raspberry Pi before. To test it out I thought I’d chuck a few old school games at it as well as a few legacy applications to see how it handles them on my Pi 2 running RISC OS 5.22.
First up was Elite, which at first wouldn’t run at all unless I enabled ARM3 emulation – this then allowed the game to play but it would throw up some pretty unplayable graphics issues. A quick Google search pulled back this ROOL Forum thread however, which fixed the problem by using a custom MDF screen mode setting. This fix does seem to not work for everyone however, Elite runs fine on my end when run in ArcEm so that’s always an option available to you should you need to get your space-exploration fix.
Very old titles such as DinoSaw, Zarch and Big Bang didn’t run at all through Aemulor – while Chaos Engine, Heroes of Might and Magic 2, BotKiller 2 and Wizard’s Apprentice all ran fine with no noticeable performance issues at all.
Aside from games, I don’t have an awful lot of RISC OS applications that aren’t already 32-bit compatible – pretty much everything I use for word processing, email, web browsing etc. is all compatible with the Raspberry Pi and other ARMv7 machines. I did however boot up a very old copy of Impression Junior and a slightly younger, but still very old 26-bit only copy of PhotoDesk, both worked without a hitch.
So overall, although a few games, mainly older Archimedes-era (pre-1996 or so) titles, wouldn’t start at all – for the most part, Aemulor will run a good chunk of the 26-bit software you throw at it. Once it has successfully run an application, I find things are generally pretty stable – apart from the screen mode issues with Elite of course.
You can grab Aemulor, free of charge, from here.