RichardBrown384 / Eichhoernchen

Acorn Archimedes A3000 Emulator in C++23
https://github.com/RichardBrown384/archimedes
MIT License
14 stars 0 forks source link
arm2 risc-os riscos

Eichhörnchen

Eichhörnchen (German for Squirrel) is an Acorn Archimedes A3000 Emulator for running 26-bit versions of RISC OS written in C++23 for Windows, Mac and Linux. It's licensed under the terms of the MIT licence.

The project goal is to develop an Archimedes emulator with a high degree of test coverage to deliver a great user experience.

Building

Requirements

Eichhörnchen requires C++23 and uses CMake as its build tool (3.6.0 or later).

Build steps

To perform an out of source build run the following series of commands

git clone https://github.com/RichardBrown384/Eichhoernchen.git
mkdir build
cd build
cmake -G <preferred generator> ../Eichhoernchen

Running tests

To run the tests run the following command in the build directory

ctest --verbose -C debug

Running

Requirements

In order to run the application you're going to require a copy of RISC OS 2.00 (or 3.00 or 3.1x) ROMS (⚠️Certificate not valid⚠️). Currently, the application expects RISC OS 2.00 ROM files to reside in ./bios/riscos-200 relative to the application's working directory. Other versions of the OS can be used but require the use of command-line switches (see below).

We recommend RISC OS 3.11 over other versions.

RISC OS 2

Assuming the application was built in a directory called build you can run the application with a disc image by typing

./build/Frontend/frontend archimedes your_disc.adf

While the application starts up hold down delete key to force RISC OS to perform a CMOS reset (see #9). If the reset was successful you will be presented with a desktop replete with Icon Bar.

RISC OS 3

To use RISC OS 3 the application needs to be told where the RISC OS 3 ROM files reside. Start the application (assuming the ROM image comprises the usual 4 files) with

./build/Frontend/frontend archimedes your_disc.adf --bios-files ./bios/riscos-311/IC24.ROM ./bios/riscos-311/IC25.ROM
./bios/riscos-311/IC26.ROM ./bios/riscos-311/IC27.ROM

While the application starts up hold down delete key to force RISC OS to perform a CMOS reset (see #9). If the reset was successful you will be presented with a desktop replete with Icon Bar.

Current limitations

The application should be considered as pre-release material and there are a couple of nice-to-haves that are currently missing that severely impact the usability.

  1. Any changes made to floppy discs aren't saved when the application exits (see #16). This is currently a safety feature since protecting user data is paramount.
  2. CMOS configuration changes aren't persisted (see #2)
  3. Switching between various versions of RISC OS is less than convenient (see #2)

Planned future work

The focus for now will be on adding tests to those compontents that got missed during that difficult stage of development known as staring at a blank screen and examining logfiles to find out why things weren't working.

After the tests have been written, the plan is to then implement missing features such as saving changes to floppies and persisting CMOS state before turning our attention towards performance.

New capabilties, such a hard disc support, are postponed until the application is comparatively bug-free and performant.

Thanks

Eichhörnchen relies on the following libraries and the authors would like to express their thanks to

  1. Google Test
  2. SDL 3
  3. zlib
  4. libzip
  5. argparse
  6. spdlog
  7. fmtlib