
RPCEmu
This is the site for RPCEmu, the continued development of the popular Acorn machine
emulator by Tom Walker. It emulates an Acorn RiscPC and A7000.
Introduction
RPCEmu allows you to emulate classic Acorn systems, such as the Risc PC and A7000, on
multiple platforms including Windows, Linux and Mac OS X
RPCEmu requires a RISC OS ROM image to work, find details of
where to find one.
RPCEmu should be considered Alpha Quality code. It
has many known and unknown bugs, and all files used with it should be
well backed up before using them with RPCEmu.
Documentation
The following documents are available here.
If you have any questions or need help, there is a RPCEmu Mailing
List, however please specify the version number
to avoid confusion. Your patches, suggestions and even bug reports are
gratefully recieved.
Downloads
Binary Packages (Version 0.8.7)
| | Format | Notes |
| Windows 2000/XP/Vista/7 |
Windows Installer |
Recommended. Run the provided .msi file. Adds links into you
'Start' menu. Note: upgrading from previous versions may overwrite your
cmos.ram and rpc.cfg files. |
| Zip Archive | Install
to the location of your choice. |
Source Code (Version 0.8.7)
Contributed Builds
| | Format | Notes |
| Mac OS X |
Universal Binary |
A 0.8.6 universal binary for x86 and PowerPC. It should run on
Mac OS X 10.6 (Snow Leopard) and 10.5 (Leopard). There are many known
problems with the PowerPC version though, the most serious of which is that
the keyboard doesn't really work (keys get stuck down).
(Francis Devereux) |
| RPCEmu Bootable CD |
Puppy Binary |
A 0.8.6 binary to update the
Puppy Linux live CD.
(Paul Stewart) |
Additional Downloads
| |
Format |
| Blank Pre-Formatted Hard Discs |
ADFS E |
256MB |
1GB |
ADFS E+ (long filenames, RISC OS 3.80 or later only) |
256MB |
1GB |
| Blank Pre-Formatted Floppy Discs |
ADFS E |
800KB |
| All downloads in Zip format, decompress before use. No download is larger that 1MB. |
Release Notes
Full Changelog
Not all features are available on all platforms, check the matrix below
for details
| Linux | Windows | Mac OS X |
| Networking | Y | Y | N |
|---|
Version 0.8.7 - 1/9/2010
Changes in this build
This release contains lots of updates to the networking support; as such a new
section to the manual has been written explaining how to setup networking on
Linux and Windows:
http://www.marutan.net/rpcemu/manual/network.html
The support for RISC OS 5 has changed a fair amount since the last release.
Please see the updated documentation here:
http://www.marutan.net/rpcemu/ro5.html
- Windows
- Added networking support using 'bridged' network style (Leo Smiers); works
with the win32 TAP interface (from the QEMU project) and uses the OpenVPN
TUN/TAP drivers.
- Two fixes have reduced the likelihood of encountering a crash when using
fullscreen mode.
- Linux and Windows
- Network GUI: a GUI to assist in configuring the network settings is
available. For more details see the Networking section of the manual
mentioned above.
- All Platforms
- A considerable number of fixes to the accuracy of HostFS as a RISC OS
filing system.
- Add support for .iso image files that are > 2GiB in size. Previously some
of the data would have been inaccessible.
- Added suport for the scrollwheel on PS/2 mouse emulation; this only works
with the ARM7500 or ARM7500FE (A7000 and A7000+ are the only hardware with
PS2 mouse ports). Also requires RISC OS support from RISC OS Select (not
present on earlier versions) and for you not to be using 'Follow Host
Mouse'.
- Improved emulation of the I2C bus and Real Time Clock. Allows RISC OS 5.17
RTC autodetection to work. (Based on code by Jochen Karrer from the
Softgun project).
- 'Follow Host Mouse' is now 32-bit compliant and working on RISC OS 5
(Timothy Coltman)
- Configure script for source compilation on 'Unix' systems no longer stops
if it's not Linux.
- Significant refactoring of code, particularly mouse handling sections, SWI
handling and Networking.
Version 0.8.6 - 23/12/2009
Changes in this build
- Mac OS X
- Experimental support for DynaRec on Intel-based Mac OS X platforms.
- All Platforms
- More work refactoring the ARM emulation core to simplify and reduce code.
- Several minor ARM fixes.
- Added support for ARM7500FE and ARM810. ARM7500FE currently offers no
floating-point performance advantage. ARM810 is largely experimental and
only has limited support from most versions of RISC OS.
- Fixed two crash bugs in IDE code relating to switching between Hard Disk and
CD-ROM emulation. Thanks to Francis Devereux for good bug reporting and
analysis.
- Simplified and standardised MIPS display in title bar on all platforms. On
Linux the MIPS counter is no longer displayed on the console.
- Significant refactoring of code, particularly the DynaRec and sound
sections.
Version 0.8.5 - 23/08/2009
Changes in this build
- Compatibility Note
- Because the DynaRec is no longer restricted to StrongARM processor type,
you must explicitly choose StrongARM emulation to retain full backwards
compatibility. Either edit the rpc.cfg config file or use the GUI to change
processor type.
Note that the DynaRec support for processor types other than StrongARM is
experimental.
- All Platforms
- Add the SyncClock module by David Ruck (modified and tested to be 32-bit
compatible). This module will regularly synchronise the RISC OS clock with
the host machine to compensate for clock drift. It is enabled by default.
- Improvements to co-processor 15 emulation mean that RISC OS 3.60 correctly
no longer works with StrongARM emulation (like real hardware).
- Some fixes to MMU emulation regarding virtual to physical address mapping
and permission checking.
- Much work refactoring the ARM emulation core to simplify and reduce code.
- Minor improvements to IOMD relating to interrupt handling.
- Significant refactoring of code, including removal of redundant or
duplicate code, and addition of numerous comments.
Version 0.8.4 - 05/05/2009
Changes in this build
- All Platforms
- Experimental support for ROOL RISC OS 5.15 IOMD ROM image.
However there are many issues, please follow this link for more
details.
http://www.marutan.net/rpcemu/ro5.html
- Fix redraw issues when no VRAM is configured.
- Continuing source code tidying.
- Linux/MacOS X
- Mouse following (mousehack) can now be configured via the rpc.cfg
file.
Version 0.8.3 - 15/04/2009
Changes in this build
- Linux
- Faster 64-bit DynaRec code by Tom Walker
- All Platforms
- Several ARM decode and execution bugs fixed, leading to...
- Can boot Pace RISC OS 4 and experimental support for
RISC OS 6 Preview 3 (but see Known Issues below)
- Fixed screen corruption when using interpreter and StrongARM with
RISC OS 4
- Increasing memory size using GUI no longer crashes RPCEmu
- Small performance increase to DynaRec 32-bit due to refactoring
- Continuing source code tidying
- Known Issues
- RISC OS 6 Preview 3 will only boot with Interpreter if processor type
is StrongARM
- RISC OS 6 Preview 3 will not yet boot with 64-bit DynaRec
Version 0.8.2 - 09/02/2009
Changes in this build
- Windows
- Fix shortcut StartIn issues.
- Mac OS X
- Now compiles and runs on Mac OS X (Intel) by Timothy Coltman, no patching
required.
- All Platforms
- Support more fullscreen modes.
- Set the year portion of the time (stored in CMOS ram) to always be correct,
and generate CMOS checksum. Based on work by Kees Grinwis.
- ARM processor IDs corrected.
- Continuing source code tidying.
Version 0.8.1 - 16/01/2009
Changes in this build
- Windows
- Fixed mapping of \ and # keys.
- Removed console window.
- Correctly return year portion of CMOS time.
- Linux and Windows
- Correctly return the CMOS time, regardless of when
it is called.
- Reject ROM images that are not 2MB, 4MB or 6MB in
size and inform the user. This should prevent people
trying to run compressed Select ROM images directly.
- Continuing source code tidying.
Version 0.8.0 - 30/12/2008
Changes in this build
- HostFS available out of the box.
- Some HostFS issues resolved
- RPCEmu Issue Tracker issues resolved.
- RPCI001 - Pause/Break Key is now working.
- RPCI003 - Clock is synchronised with Host on startup.
- Keyboard repeat issue resolved
- Easy installation on Windows
Developer Information
We're very happy for RPCEmu to accept code and contributions from third
parties, already many people have contributed code and we hope to
continue down this route.
The RPCEmu source is stored inside the Mercurial version control system,
Mercurial clients are available for many platforms, including (but not
limited too) Windows, Linux, Mac OS X, Solaris, BSDs. If you are used to
a different version control system, such as CVS or SVN, Mercurial (as a
distributed version control system) may seem a little odd, but there are
plenty of tutorials and advice for users coming from other systems on the
web.
The Mercurial repository is based at
http://www.home.marutan.net/hg/rpcemu
and checking out the code is as simple as
hg clone http://www.home.marutan.net/hg/rpcemu rpcemu
How to get code committed into the repository. Prepare a patch file of
the differences between your new code and the current 'HEAD' of the
project.
Mercurial provides the 'hg diff' command, which generates diff files
suitable for this.
Then post this patch file to the mailing list (or too us directly if you
so wish), with an explanation of what it's for, and in the case of bug
fixes, the bug it's meant to fix (it's not always obvious from the code)
Generally the smaller the patch, with the most specific function or
reason, the easier the patch is to merge in, whereas a "I fixed
everything I thought was wrong" would take a very long time to verify and
test.
Patches may get edited before being committed, or if the changes required
are particularly large an updated patch may be requested of the
developer. In some rare cases it might not be possible to commit a patch,
and at that point there should be a stated reason (e.g. patch overlaps
with another patch that deprecates it, patch is too widespread to verify
(suggest breaking into smaller patches), etc).
If you have any questions, once again the mailing list is the best place
to ask, also, if you're considering a particulaly large change, that
would affect a large functional area or many files, it might well be
worth getting some advice from the developers on the mailing list first,
incase it overlaps with other development work, or even just a suggestion
of how to accomplish it in smaller changes.