Running RISC OS on Linux without emulation

posted in: Software | 3
RISC OS Desktop on a Samsung Chromebook – Image: Jan Rinze

Back in February 2017, Timothy Baldwin announced on the RISC OS Open forums that he was working on an experimental port of RISC OS to Linux. Fast forward a year and a half later and the project’s progress has been impressive.

This port allows you to run RISC OS directly from within Linux, without the need for an emulator such as RPCEmu or Qemu.

The main advantage of running RISC OS directly means that, unlike virtual machines such as RPCEmu, there is no restriction on what RISC OS programs can do to the Linux environment, beyond that provided by Linux itself.

So the interaction between RISC OS and the host system will be similar to that of the Linux Subsystem that is implemented in modern versions of Windows. This allows for RISC OS to be able to interact with the host directly, rather than having to treat is as a separate machine on a LAN like you would with an emulator.

RISC OS Open Limited’s Desktop Development Enviroment (DDE) is required to build RISC OS. So this is required if you want to build this Linux port yourself. The DDE is proprietary software that can be bought from RISC OS Open directly.

This port can be built in a similar fashion to the traditional method as documented on ROOL’s website, it is not necessary to run InstallTools as the relevant files will be accessed from the DDE without copying. However this will not build the SDL front-end which connects RISC OS to the Linux graphics system, without it RISC OS is limited to a text only interface.

The port is by no means complete at the moment, but it does allow for a usable RISC OS desktop with working networking and domain resolution.

What this symbolises to me is – in a similar vein to how the emergence of the Raspberry Pi and similar boards a few years ago completely changed the way people use RISC OS for the better – this could open up much more opportunities for RISC OS later on down the line as the project progresses.

The Linux port of RISC OS can be downloaded from its GitHub page, which also has instructions for compiling it. For more information on the project check out this thread on the ROOL forums.

Packaging Confessions

posted in: Software | 0

Since June 2002 I have been offering software from my website,, to the RISC OS community, namely RiscLua, a port of Lua. New versions have come and gone,, to keep up with developments in Lua, and because I have often changed my mind about the best way to present the software for the user’s convenience.

This article is not about Lua but about packaging; it just happens that RiscLua is the only template that I have for discussing the subject. There are many possibilities; I am by no means sure that any of the ones that I have chosen in the past are optimal. In the end it is the user who must be the arbiter of that. So I certainly welcome feedback, and not just from users of RiscLua.

So what does the package contain? There are five main ingredients:

  • Executables – in this case lua, the interpreter, and luac, a bytecode compiler and disassembler.
  • System variables – defining a filetype run-action, so that programs can be run by doubleclicking the icon of a file – LUA_INIT for prelude code, run before any program – LUA_PATH to tell the require function where to find libraries of Lua code, and LUA_CPATH to do the same job for dynamic linking libraries (a feature not available before 2015, and probably of little relevance in the RISC OS context).
  • Utilities – for running in a Taskwindow, for displaying intermediate bytecode, and for linking in libraries and interpreter to produce standalone executables.
  • An HTML/CSS manual for the current version of Lua, with an extension for the non-standard, and in particular the RISC OS, parts of RiscLua.
  • Example programs and tutorial material.

At one point, in 2003, I implemented the interpreter as a relocatable module and used the Resource Filing System for the Obey files setting up the system variables. However I gave up this option when I realized that it was easier to keep other tasks insulated from errors if I implemented it as an application, even in the case of interpreting wimp-tasks. Besides, RISC OS has the convenient system of !Boot files for setting up system variables, defining filetypes and their run-actions and RMEnsuring the existence of resources. It would be daft not to take advantage of this.

To begin with I called the application !Lua. Later, as the versions multiplied and the chances grew that different versions would interfere with each other, I started to use the version number as part of the name, at least for the binary files. So the latest version is named  !rlua7. Then there is the question of where you put the other stuff: the documentation, the utilities and the examples? Inside the application, or outside? These choices are important for ease of updating, both for me and the user.

You might not want to download the whole package just for some trivial correction to the manual. It has been my habit to upload zip files to my website with FTP, so do I have one big zip file or lots of smaller ones? Writing tutorial material is, for me anyhow, a gradual process of many small steps. I suddenly get interested in this or that topic and fire off an addition to the tutorial material or to the examples.

A particularly thorny aspect for me has been the question of software libraries. Luckily Lua has by tradition taken the road of minimalism – provide as little extra possible and leave it to the user to write their own libraries. Provide possibilities not solutions. Lua is often compared unfavorably with Python on this score. But libraries bring into play the question of authority. In a small user-base each user may prefer to knit their own jersey rather than get one off the peg.

So I have been in two minds about providing libraries, not wishing to set them in concrete. This is particularly true of libraries for writing wimp-tasks or for the toolbox  where I have had second thoughts about the best approach quite frequently. Fortunately it is very easy for the user to set up their own libraries, because the require function discovers where to find them by using the strings package.path and package.cpath which the user can modify at the start of her program. The system variables LUA_PATH and LUA_CPATH are only used to initialise these strings.

The way that RiscLua is packaged is actually irrelevant for most uses, which only need to know where the Lua interpreter is and what its commandline arguments should be. A vital consideration, however, is whether the platform on which you use RISC OS has VFP or not. Until 2015 RISC OS only handled floating point calculations in software. In consequence it was never a good choice for intensive number-crunching. But things are different now and so RiscLua has to come in two packages, one for use with VFP and the other for use with the older ARM chips without it.

Under the Microscope: Protector

posted in: Games | 0

Since hitting the scene back in 2015, Amcog Games‘ release schedule has been relentless, with a few good quality releases hitting the PlingStore per year.

One of Amcog’s more recent releases is Protector, a retro-styled side-scrolling arcade shooter game launched back in November. The game is a commercial release and is available for purchase for £9.99.

The game itself

Presented in 16 millions colours and written using Amcog’s very own AMCOG Development Kit, the game’s story involves an alien invasion threatening the very existence of your world, so you’re tasked with being the Protector. If the invaders succeed in capturing a lifeform then they will transform into mutants.

You encounter bombers, bots, pods, podlings, rollers and missiles along the way to make things more difficult. If all of the lifeforms are destroyed then the planet will explode and the aliens will succeed in becoming mutated forever – beyond your inevitable destruction.

Protector is never ending, it has an unlimited number of levels for you to play through. On top of that, there’s six different types of aliens to pit your wits against.

Just like every other Amcog release, the game’s music tracks are all original, sound effects are also provided by Amcog’s RDSP virtual sound chip whiches generates synthesised sounds in real-time.

Playability-wise, the game’s levels are not particularly long in length, but the game’s difficulty definitely makes up for that. There’s a definitive learning curve to begin with, but once you’ve become used to the mechanics of the game it does become addictive. I feel like it can get a little boring and repetitive after a while of playing, but then again that’s not so much an issue with the game itself, it’s designed to be exactly what you’d expect from a retro arcade shooter.

Performance & Compatibility

In terms of performance, the game plays as it should for a game of this nature – it’s quick and not at all laggy with navigation. Responsiveness is also not an issue.

As the game is written in BBC BASIC, it should play fine on a vast majority of RISC OS machines, old or new. The game runs well on a Raspberry Pi 2 and I’d imagine it should be fine with pretty much any other modern RISC OS compatible board you throw at it – Titanium, Beagleboard etc.


Overall, Protector is another good title from Amcog – delivering a nostalgia-fueled side-scroller that has plenty of life in it thanks to having an unlimited amount of levels.

The game is a digital purchase via the Pling Store. If you’ve got a tenner to spare and want to help support further RISC OS game development from Amcog then giving Protector a spin isn’t a bad shout.

RISC OS Games Month 2018

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!

ScummVM on RISC OS: A quick guide

posted in: Games | 0

Continuing on from our look at running retro DOS games on RISC OS through DOSBox, it’s only right that we take a look at playing classic point-and-click adventure games with ScummVM.

A point-and-click adventure if you’re unfamiliar with the term, follows the same principle as text adventure games but instead of a written description of where you character is or what he/she is seeing, there’s a static image in it’s place – where you can click on certain parts of the image to inspect things further and to navigate your character.

What is ScummVM?

Short for Script Creation Utility for Maniac Mansion Virtual Machine (rolls of the tongue doesn’t it), ScummVM is a set of game engine recreations originally designed to play LucasArts adventure games that use the SCUMM system, it now also supports a variety of non-SCUMM games developed by companies like Revolution Software and Adventure Soft. Released under the GNU General Public License, ScummVM is free software.

ScummVM is a reimplementation of the part of the software used to interpret the scripting languages such games used to describe the game world rather than emulating the hardware the games ran on.

The latest major release of ScummVM, version 2.00 was also released for RISC OS at the end of last year, so we have the latest version at our disposal. The developers say that this release adds support for 23 games that weren’t compatible with ScummVM previously.

Setup on RISC OS 

Once you’ve downloaded ScummVM from here and placed it on a location on your RISC OS system, the next step is to download some games (keep reading for where to game some from). Once you have some downloaded, it’s relatively easy to get it running in ScummVM.

The game files need to be located in a suitable directory, and from ScummVM’s main window, click the ‘Add Game’ button and navigate to the directory where the game you wish to run is played.. Select that directory by clicking once (don’t double-click!) and then select the Choose button. The game(s) in that directory will then be listed in a nice list that you can then select to play.

Supported Games

The legal status of a good chunk of these games is now quite questionable, a lot of them are now considered abandonware and can be downloaded free of charge. There are some however that, while they can be sourced for free online, they are still copyrighted and thus you’ll need to purchase a copy legally in order to get the game files to point ScummVM to.

There’s a good deal of info on ScummVM’s wiki about this, and there’s a big list of supported titles too.

There’s also a fair amount of free games that you can play, a lot of which are classics that you really don’t want to miss out on.

Recommended Games

Beneath a Steel Sky – Released in 1994, Beneath a Steel Sky is cyberpunk science-fiction game developed by Revolution Software and published by Virgin Interactive Entertainment for MS-DOS and Amiga home computers. The game was made available as freeware in 2003.

Set in a dystopian future, the player assumes the role of Robert Foster, who was stranded in a wasteland known as ‘the Gap’ as a child and adopted by a group of local Aboriginals, gradually adjusting to his life in the wilderness. After many years, armed security officers arrive, killing the locals and taking Robert back to Union City. He escapes and soon uncovers the corruption which lies at the heart of society.

At the time of its release, the game received extremely positive reviews and is retrospectively viewed as a cult classic.

You can download Beneath a Steel Sky legally and for free from here.

DreamWeb – Launched for MS-DOS and Amiga in 1994, DreamWeb is another cyberpunk point-and-click adventure, but with a difference.

The game’s plot is very dark and depressing, and is filled with violence and even full frontal nudity at one point – which really ruffled some feathers back in 1994. Dreamweb was re-released as freeware in October 2012.

The game follows a down-on-his-luck ex-bartender called Ryan, it’s your duty to hunt through the bleak streets of the city and brutally murder seven different people.

Ryan knows this because he’s constantly haunted by visions of the ‘DreamWeb’, a place inhabited by monks who instruct him that these seven souls are going to cause an imbalance and doom the world.

You can download DreamWeb legally and for free from here.

Flight of the Amazon Queen – Developed by Binary Illusions and released for Amiga and MS-DOS in 1995, Flight of the Amazon Queen is a graphical point-and-click adventure game where you play as Joe King, the pilot of the Amazon Queen.

What began as a piece of cake job – flying a movie star her next shooting location, turns out to be a dangerous challenge, as you must outwit your unscrupulous rival the flying Dutchman and foil the plans of the evil genius Doctor Frank Ironstein.

The game was re-released as freeware in 2004 and can downloaded for free from here.

Broken Sword – Developed by Revolution Software and released in 1996, Broken Sword: The Shadow of the Templars is the first game in the now hugely popular Broken Sword series of games.

You control the character of George Stobbart, an American tourist in Paris, as he attempts to unravel a conspiracy.

The game takes place in both real and fictional locations in Europe and the Middle East. Broken Sword was considered revolutionary at the time, with its writing and voice acting receiving a lot of praise.

The game received numerous award nominations and wins. You can download DreamWeb legally and for free from here.

RISC OS Games Month 2018

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!

Under the Microscope: Mutant Penguin

posted in: Games | 0

Originally released in April 2017 and recently updated with a few improvements and 2 new levels, Mutant Penguin is a free release from Amcog Games. It was developed using the AMCOG Games Development Kit which we took a look at recently.

The game itself

Mutant Penguin is a retro maze game with 14 levels inhabited by multicolored slug-like pods – your main objective is to evade each level through squashing the pods with ice blocks. The game comes with 3 original music tracks that add a good level of atmosphere to the game.

The game itself is reasonably simple, there’s not much game logic other than the lives counter and high score system. Not that it’s a bad thing for a game like this – anything more than what’s already in place isn’t really required.

Performance & Compatibility

The game’s gameplay is smooth and stable, it plays as you’d expect for a retro puzzler like this. Longevity-wise, the game’s novelty doesn’t run out as quickly as you might expect, the puzzle element of the game makes it quite addictive, especially in the later levels.

As the game is written in BBC BASIC, it should play fine on a vast majority of RISC OS machines, be it legacy 26-bit computers or 32-bit machines. The game runs well on a Raspberry Pi 2 running RISC OS 5.24 and I’d imagine it should be fine with pretty much any other modern RISC OS compatible board you throw at it – Titanium, Beagleboard etc.


As you might expect from an Amcog Games title by now, Mutant Penguin is a solid and well-authored game. It successfully delivers that retro feel Anthony at Amcog has worked to achieve.

Mutant Penguin is free to download from the Pling Store. A copy with full source code is also bundled with the AMCOG Games Development Kit.

RISC OS Games Month 2018

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!