Software engineers are humans beings as well. Those of them over the age of thirty definitely remember old computer games, which often started their passion for IT. Nowadays, apart from table tennis and table football, playing retro games can also be a good way to de-stress after work 😉
How many of you remember times when instead of doing homework you had played games on your 8-bit computers? Your parents were shouting behind your back that computers are only for fun, and even hours spent on programming in basic, logo, pascal or action languages are nothing more but the waste of time. But it only took a few years to find out how much they were wrong…
But the human mind tends to displace bad memories and keep good ones, which is why what we remember today about those computers is mainly computer games. And the one who claims that books develop the imagination and computer games limit it, he probably never saw a computer game from those times – where a sprite consisting of several pixels could be what it was supposed to be, only thanks to our imagination 😉 This is probably the main reason why we are so eager to return to those games.
It should also be remembered that in those days the computer market was divided between incompatible platforms. Apart from smaller players (e.g. Amstrad, ZX-Spectrum), the game was mainly between Atari and Commodore. And even today and here (i.e. at NubiSoft), we remember exactly (or at least those of us who are starting to get gray hair) who was on which side. And because I was (and still am!) on the Atari side, I present below how to configure a cheap ARM platform to be an Atari 800 XL emulator. So enough talk!
All we need is:
- Raspberry Pi (here the 3B+ version is used),
- compatible SD Card – for our purpose 16GB should be enough,
- compatible USB power supply,
- compatible gamepad (I use deadly cheap one),
- keyboard,
- TV/computer monitor with HDMI input,
- optionally 😉 enclosure for RPi board.
First, we have to prepare our SD card by copy onto it required image. There are dozens of software for that, but I recommend Etcher or Rufus. The most up-to-date image file can be found here, as we use Recalbox. At the time of writing this post, it is a 6.1.0 version. After preparing the card, simply insert it into the RPi socket and connect the power supply. Recalbox should start and it seems that this is all that was to be described. But nothing could be more wrong – this is where the first problems begin!
Recalbox (just like other such platforms) is just an overlay for various computers and game consoles emulation systems. Due to copyright restrictions, it comes with only a few basic games (ROMs) – in the case of Atari 800 XL there is not a single game so this platform does not even appear on the menu. On the screen below, the Atari 800 option is present because we already uploaded some ROMs.
So for starters, we should get the ROMs we are interested in. There are a lot of offers on the Internet and you can easily find them, but once again we pay attention to copyrights. Having ROMs we have to upload them on the Recalbox platform. The easiest way is to copy them over the local network but to be able to do this, first, we have to configure the network connection on the Recalbox using NETWORK SETTINGS.
After we connected to the WIFI the Recalbox is exposed in the local network using SSH, SMB and HTTP protocols. SSH can be used by more advanced users to perform some maintenance and configuration tasks, and also to upload ROMs. Default credentials for the SSH connection are user:root, password:recalboxroot. As a hostname, the IP address can be used or recalbox name that should be resolved to the aforementioned IP by the system.
As we see above the Recalbox system is based on Linux, but not on any specific distro but rather built from scratch. For the purpose of uploading ROMs, probably the most efficient way would be the usage of the file explorer (SMB protocol) on any computer plugged into the local network. By default, the Recalbox is accessible without password protection.
For some administration tasks and also for uploading ROMs, the web interface could be used as well. It is enough to type http://recalbox in the address bar.
But uploading the game ROMs is not enough to start playing. We have to make visible all freshly uploaded titles. To do that we have to run option UPDATE GAME LIST from the menu UI SETTINGS accessible from the MAIN MENU. It is also possible to download from the Internet additional metadata about each and every game along with the screenshots, which give some idea about how a given game looks like before we decide to run it. To do that we use SCRAPER option from the MAIN MENU.
But all of the above is still not enough to run Atari 800 game! We must honestly explain now, that Recalbox is just the preconfigured packaging (in our case the RPi distribution) of the Emulation Station system, which in turn is a graphic overlay for emulators of various platforms. And the piece directly responsible for emulation among others Atari 800 is LibRETRO. The multitude of these elements makes that controlling the whole configuration can be troublesome – hence the idea to write this post to make life easier for you. So even now, when you try to start the Atari 800 game, the system will respond with a laconic message:
Sorry this program needs a real Atari/OS
Visit the Web pages to find out more
This is because the default configuration comes without Atari 800 BIOSes. We copy the relevant files to /recalbox/share/bios/atari-800 folder and we need to configure the emulator to use them. But navigating over Atari 800 configuration menu requires using ESC key, and this key is also used by Recalbox to exit any emulator! So first we have to turn on the PRESS TWICE TO QUIT GAME option.
Then we start any Atari 800 game getting previously describe “Sorry this program needs a real Atari/OS” error and press F1 to enter the emulator menu.
After choosing the Emulator Configuration option we get the following screen.
Choosing System ROM settings option lets us configure paths to uploaded BIOSes. For playing Atari 800 games it is enough to define the path for ATARIXL.ROM, as shown below.
Then we leave the configuration menu formerly using Save configuration on exit option. And we can verify if the configuration is done by checking /recalbox/share/system/.atari800.cfg file 😉
Now, we are ready to start a game. But wait! Do you hear this terribly crackling sound every time every Atari 800 game is started? 🙁 We have to fix it ASAP! But there is no ‘Switch of crackling’ option in any menu…
This time we have no choice and have to manually add entry SYNCHRONIZED_SOUND=1 at the end of the /recalbox/share/system/.atari800.cfg file. Fortunately, the nano editor comes preinstalled with the Recalbox platform.
Now, nothing left but to enjoy with our jumping into the eighties.