Packaging Confessions

posted in: Software | 0

Since June 2002 I have been offering software from my website, http://www.wra1th.plus.com/, to the RISC OS community, namely RiscLua, a port of Lua. New versions have come and gone, http://www.wra1th.plus.com/lua/version.html, 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

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.

Overall

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!

DOSBox on RISC OS: A quick guide

posted in: Games | 1

If you fancy playing some retro games from the MS-DOS era, there’s a few options available to you – obviously you can run them on original hardware running DOS, you could install FreeDOS on a modern x86 system or you can play them through the widely popular DOS emulator DOSBox, which is available for RISC OS (it’s the latest version too!).

So seeing as it’s RISC OS Games Month on the RISCOSBlog, it’s only right that we take a look at DOSBox and a few games I recommend.

What is DOSBox?

DOSBox s an emulator which emulates an IBM PC compatible computer running a DOS operating system, many IBM PC compatible graphics and sound cards are also emulated. This means that original DOS programs and games are provided with an environment in which they can run correctly.

You can use DOSBox to run legacy DOS applications although for the most part the only real use case nowadays is to play pre-Windows games, unless you’ve got some ancient DOS-only application that you need to use for work and there’s no modern alternative for it.

It has been reported that people have had Windows 3.11 (Guide) and Windows 95 running on the Raspberry Pi and Pandaboard running RISC OS, albeit quite slowly.

Setup on RISC OS

So there’s two DOSBox ports available for RISC OS. There’s standard DOSBox, which is the latest version but it has been reported to be a little buggy and unstable, as well as slow on some machines (especially Raspberry Pis!). Then there’s FastDOSBox (Site appears to be down at the moment!) which is older but is reported to be more stable and faster. Running in full-screen mode also makes things much faster, so keep that in mind if you’re experiencing performance problems.

Once you’ve downloaded DOSBox and placed it on a location on your RISC OS system, download some games and remember the path on your drive where they’re stored.

In DOSBox, you’ll then need to mount the folder where your DOS games live so that DOS thinks you’ve got an external drive mounted. You can do this by running the command: mount c <location>

Here’s an example of that command specific to RISC OS on my Raspberry Pi: mount c /sdfs::myraspberrypi/$/gamesfolder

Change the SDFS bit to ADFS or whatever is relevant to your system. That command sets that folder up as a C drive.

Once that’s set, you can then move into that directory by running cd gamesfolder.

To run a game stored in that folder, just type the name of the .exe file and press enter.

Where to find games

The legal status of a good chunk of DOS games is questionable nowadays, 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 or you risk burning in hell for all eternity.

Abandonware Games has a large selection of DOS games available for download. The categories included are action, racing, RPG and strategy games. With about a thousand games to choose from, there’s a whole load of games available to you. You can also search the site by game title or keyword, each game is accompanied by a wealth of information from the year of release to the types of visuals, to how many times it has been downloaded.

After Abandonware Games, DOS Games has one of the biggest collections with over 500 games in its database. The updates are spaced out, but every now and then a load of new games are added.

Recommended games

Star Wars: X-Wing was the first space flight simulator game from LucasArts for the PC. Released in 1993, it was widely praised by critics and was one of the best selling games of the year.

Players take on the role of a pilot for the Rebel Alliance as they battle against the Empire in space combat. The game is broken into three tours, each having 12 or more missions each.

You can control either an X-Wing, Y-Wing or A-Wing fighter in the missions, with the goal of completing the primary objective before you can move onto the next mission and tour.

The game’s timeline is set just prior to the ‘A New Hope’ film and continues through to the end of that story with Luke Skywalker attacking the Death Star.

The game is still commercially available and can be purchased from GOG.com for about 7gbp – the game can then be loaded into DOSBox and away you go. Due to being a big Star Wars fan I may be a bit biased, but 25 years later I’d still say this game is worth shelling out a few quid for.

Warcraft: Orcs & Humans is a fantasy real time strategy game released in 1994 by Blizzard Entertainment. It was the first game in the Warcraft series that eventually led to the immensely popular massively multiplayer online RPG World of Warcraft and the still hugely popular Warcraft 3.

The game is widely considered a classic in the RTS genre and helped popularise many multiplayer aspects that are found in virtually all RTS games that have been released since.

You can play either as the Humans of Azeroth or the Orcish invaders – hence the name of the game. The game contains both a single player campaign as well as multiplayer skirmishes. In the single player mode, players will go through a number of objective based missions that typically involve base building, resource gathering and building an army to defeat the opposing faction.

Warcraft isn’t actually available for purchase legally from what I can see, and it is technically not an abandonware or ‘free game’. It is however available for download from a number of abandonware game sites, make of that what you will.

Civilization is a turn-based strategy game released in 1991 and developed by Sid Meier and Microproce.

Set between 4000 BC and 2100 AD, the primary objective is to manage and grow your civilizations through the ages competing with up to six other computer-controlled civilizations.

Players will find, manage and grow cities which in turn expand the domain of the civilization eventually leading to warfare and diplomacy with other civilizations. In addition to warfare, diplomacy and city management, Civilization also features a robust technology tree in which players are free to choose what to research and develop to advance their civilization.

Civilization can be found on many of the abandonware websites. There’s also a RISC OS port of FreeCiv that you can play Civilization on should you run into problems with the DOS version!

Prince of Persia is a 1989 fantasy cinematic platformer originally developed and published by Brøderbund and designed by Jordan Mechner for the Apple II.

Set in ancient Persia, your objective is to venture through a series of dungeons to defeat the Grand Vizier Jaffar and save an imprisoned princess.

Jaffar locks her in a tower and orders her to become his wife, or she would die within 60 minutes – so the clock is ticking for you to save her.

The game can be downloaded from a number of abandonware sites. It is a short game in comparison to newer games, but it’s definitely still worth a play-through.


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!