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.