BBC Micro cassette Elite | BBC Micro disc Elite | Acorn Electron Elite | 6502 Second Processor Elite | Commodore 64 Elite | Apple II Elite | BBC Master Elite | NES Elite | Elite-A | Teletext Elite | Elite Universe Editor | Elite Compendium (BBC Master) | Elite Compendium (BBC Micro) | Elite over Econet | !EliteNet | Flicker-free Commodore 64 Elite | BBC Micro Aviator | BBC Micro Revs | Archimedes Lander
This repository contains source code for the !EliteNet application for the Acorn Archimedes, which allows players of Archimedes Elite to send scores to multiplayer scoreboards over Econet. It also contains the source code for the EliteOverEconet module that does the actual transmissions.
The Elite over Econet project enables you to load BBC Micro Elite over an Acorn network. It also provides multiplayer scoreboard support, so you can run live Elite competitions over the network. For more information see the bbcelite.com website, where you can also download the fully built !EliteNet application.
Archimedes Elite already supports loading over Econet. The !EliteNet application provided here simply adds multiplayer scoreboard support; the game itself is completely untouched. For this to work you need to be running version 1.14 of Archimedes Elite, which you can download from Ian Bell's personal website. For instructions on how to use !EliteNet, click Menu on the application in the Filer and choose Help
from the App. '!EliteNet'
submenu.
Note that the final build does not contain the !EliteNet.!RunImage
or !EliteNet.WimpLib
BASIC programs, as the sources are text files and need to be converted into tokenised BBC BASIC. The MakeBasic folder produced by the build process contains a script that can be run on an Archimedes to produce the final pieces of the puzzle. MakeBasic also contains the BASIC source for the EliteScoreboard module, so that can be built on an Archimedes if required.
Archimedes Elite was written by Warren Burch and Clive Gringras and is copyright © Hybrid Technology 1991.
!EliteNet is copyright © Mark Moxon and has been released under the MIT licence.
Builds are supported for Windows and Mac/Linux systems. In all cases the build process is defined in the Makefile
provided.
The build process also creates a version of the module source that can be built on Archimedes machines.
You will need the following to build !EliteNet from the source:
-
vasm, which can be downloaded from the vasm homepage.
-
Python. The build process has only been tested on 3.x, but 2.7 might work.
-
Mac and Linux users may need to install
make
if it isn't already present (for Windows users,make.exe
is included in this repository).
Let's look at how to build !EliteNet from the source.
For Windows users, there is a batch file called make.bat
that builds the project. Before this will work, you should edit the batch file and change the values of the VASM
and PYTHON
variables to point to the locations of your vasmarm_std.exe
and python.exe
executables (you need the vasmarm_std
executable). You also need to change directory to the repository folder (i.e. the same folder as make.bat
).
All being well, entering the following into a command window:
make.bat
will produce folders called !EliteNet
and MakeBasic
in the 5-compiled-game-discs
folder, which contain the skeleton !EliteNet application and BBC BASIC sources as text files. It also produces the Max,c87
commander file, and a zip file called EliteNet.zip
that contains everything in one archive. Note that these zips and folders do not contain RISC OS filetype metadata; filetypes are included as filename suffixes, so they will work with HostFS.
To complete the build, you will need to tokenise the BASIC files, as described in the Archimedes section below.
The build process uses a standard GNU Makefile
, so you just need to install make
if your system doesn't already have it. If vasm or Python are not on your path, then you can either fix this, or you can edit the Makefile
and change the VASM
and PYTHON
variables in the first two lines to point to their locations (you need the vasmarm_std
executable). You also need to change directory to the repository folder (i.e. the same folder as Makefile
).
All being well, entering the following into a terminal window:
make
will produce folders called !EliteNet
and MakeBasic
in the 5-compiled-game-discs
folder, which contain the skeleton !EliteNet application and BBC BASIC sources as text files. It also produces the Max,c87
commander file, and a zip file called EliteNet.zip
that contains everything in one archive. Note that these zips and folders do not contain RISC OS filetype metadata; filetypes are included as filename suffixes, so they will work with HostFS.
To complete the build, you will need to tokenise the BASIC files, as described in the Archimedes section below.
The build process outlined above produces a skeleton RISC OS application folder called !EliteNet
in the 5-compiled-game-discs
folder, and another folder called MakeBasic
. The latter contains text files containing the BBC BASIC sources that need to be tokenised on an Archimedes, and it also contains a version of the EliteOverEconet module source code that can be built on an Archimedes.
To finish building the application, do the following:
-
Copy the
!EliteNet
andMakeBasic
folders to an Archimedes, along with theMax,c87
commander file. You can either copy the files individually or use the zip file. The filenames are designed to be copied using HostFS, and contain the filetypes as ,xxx suffixes. -
Open the
MakeBasic
folder in RISC OS and double-click on the!Convert
file. Press any key to close the window that pops up. TheMakeBasic
folder will now contain the following BBC BASIC files:!RunImage
,WimpLib
andEliteNetSc
. -
Open the application folder by double-clicking on the
!EliteNet
folder while holding down Shift, and copy!RunImage
andWimpLib
in here.
The !EliteNet application is now complete and can be run. For instructions on how to use !EliteNet, click Menu on the application in the Filer and choose Help
from the App. '!EliteNet'
submenu.
The EliteNetSc
program contains the source for the EliteOverEconet module. The build process already builds the module using vasm, but the source is also provided as a BBC BASIC program that you can run on an Archimedes to produce the same module. Note that if you do build the module on an Archimedes, the resulting binary may differ slightly from the vasm version, as vasm implements the ADRL directive differently to the macro used in the BBC BASIC source code. The resulting module will behave identically, though.
The build process prints out checksums of all the generated files, along with the checksums of the files from the original sources.
The Python script crc32.py
in the 2-build-files
folder does the actual verification, and shows the checksums and file sizes of both sets of files, alongside each other, and with a Match column that flags any discrepancies.
The binaries in the 4-reference-binaries
folder are those extracted from the released version of the game, while those in the 3-assembled-output
folder are produced by the build process. For example, if you don't make any changes to the code and build the project with make
, then this is the output of the verification process:
[--originals--] [---output----]
Checksum Size Checksum Size Match Filename
-----------------------------------------------------------
343fe3d8 3656 343fe3d8 3656 Yes EliteNet.bin
All the compiled binaries match the originals, so we know we are producing the same module as the released version.
During compilation, details of every step are output in a file called compile.txt
in the 3-assembled-output
folder. If you have problems, it might come in handy, and it's a great reference if you need to know the addresses of labels and variables for debugging (or just snooping around).
Right on, Commanders!
Mark Moxon