Version 0.9.4 - 30/10/2021
Changes in this build
- ARM
- Performance gains on x86 and x64 dynamic recompiler.
- Many of the instructions that were not accelerated on the x64 architecture but were on x86 have now been implemented on x64 BIC/MUL.
- Refactoring of Dynamic Recompiler code.
- Many bugfixes.
- Accessing CP15 should only be permitted in privileged modes.
- Network Address Translation
- You can now configure ports to be forwarded between your host network and RPCEmu. This allows you to host servers under RPCEmu that can be accessed by other machines on your network. (Note, this still does not enable the use of ShareFS)
- Floppy Disc
- Support HFE format floppy disc images. HFE disc images are lower-level than ADF discs as they can also store the information required for various copy protection systems. Contributed by Sarah Walker.
- VIDC
- If you are not using VRAM you can now use up to 4MB of RAM for video modes.
- Other
- Fix the crash on shutdown or reset of RISC OS 5. Based on a suggestion from Rob Sprowson.
- GCC
- Compiling with GCC 10 no longer needs a workaround for the common symbols errors.
Version 0.9.3 - 7/5/2020
Changes in this build
- Easy-Start bundles
- Two ROM/Disc Image sets are now available to make setting up RPCEmu as simple as possible. both are configured with networking by default.
- RISC OS Direct, a version of the RISC OS 5 based distribution with many extras, ideal for running recent applications
- RISC OS 3.71, an older '26-bit' version of RISC OS, ideal for running 'classic' applications.
- Both are pre-setup with a large number of applications, tools, and both ship with !Store and PackMan package managers for installing more.
- ARM
- Correct several issues related to the MSR instruction
- Correct several instruction decoding issues
- Generate undefined instruction exceptions in the correct places of the instruction set
- Implement ARMv4 (StrongARM) Load store extensions
- Make ARMv4 extensions only available when configured as ARMv4
- Floppy Discs
- We now support loading of DOS and Atari 360KB (.img) disc images into the floppy drives.
- Other fixes
- Settings files and CMOS ram files are saved as changes are made to them, so these settings are retained even if the program is closed abnormally.
Version 0.9.2 - 26/10/2019
Changes in this build
- Networking
- We have added a new networking mode, Network Address Translation, that significantly reduces the effort required to setup.
- Far fewer configuration steps
- No need to run as root under Linux
- No need to install and configure TAP drivers under Windows
- Works with any host network, wired or wireless
- Allows you to use DHCP in RISC OS for IP address configuration (if the version of RISC OS supports it)
- RPCEmu and RISC OS configuration does not need to be changed when the host network changes
- Please see the updated network guide for more details; http://www.marutan.net/rpcemu/manual/network.html
- The EtherRPCEm ethernet driver now implements some statistics for frames and errors.
- Floppy Discs
- We now support loading of DOS (.img) and ADFS L format (.adl) disc images into the floppy drives.
- Other fixes
- Fix for crash in RISC OS 6, with 8MB VRAM, in hardware scrolling.
- Windows
- Due to changes in libraries we compile RPCEmu with, RPCEmu is no longer compatible with or tested with Windows XP or Windows Vista. The minimum version supported is now Windows 7.
Version 0.9.1 - 24/10/2018
Changes in this build
- User Interface
- A screenshot can be saved of the current display, by choosing 'Take Screenshot...' from the File menu.
- Entering full-screen mode displays a reminder of how to leave this mode. The message can be hidden by ticking the checkbox.
- Choosing 'Reset' or 'Exit' from the File menu will request confirmation before taking the action.
- The CD-ROM sub-menu has moved to the Disc menu.
- Networking
- The EtherRPCEm driver module now works with RISC OS Select 3 or later (4.39 - 6.20).
- Networking configuration now requires fewer steps to be performed in RISC OS as a result of the following changes. The documentation has been updated to reflect this.
- The driver module is now provided directly by the networking podule. This means there is no need to install the driver in the Boot sequence.
- The driver module is now 26/32-bit neutral. This means that there is no need to install an updated SharedCLibrary for the network driver. Note, you may well still need this update for application compatibility.
- The driver module now auto-installs AutoSense file in Boot sequence.
- HostFS
- The Create-Dir, Rename and Save entry points now return an error if part of the path is invalid, instead of saving the file to a wrong location.
- Keyboard
- Keys can no longer get 'stuck' if held down when interacting with GUI menus.
- Other fixes
- Some potential crash scenarios when resetting/exiting have been fixed.
- Windows
- Shift-F10 keypresses are now passed through to the emulated machine, instead of invoking the Windows context menu handler.
- If you are using a keyboard layout with 'dead keys' (e.g. US-International) these keypresses are now passed through. Dead keys are used to compose accented characters, and are not found on the UK keyboard layout.
- The Windows executable has Data Execution Prevention (DEP) enabled.
All the keyboard fixes and the enabling of DEP are based on contributions by J. Percival.
Version 0.9.0 - 05/05/2018
Changes in this build
The two major changes in version 0.9.0 compared to previous versions.
- Changed to the Qt5 library for the GUI. Previously we used the Allegro 4 library and additional win32 code.
- The GUI is shared by all platforms, reducing maintenance work.
- The Linux/BSD builds gain the full GUI that previously was Windows only.
- The full-screen mode should no longer crash.
- The full-screen mode uses software scaling. It will no longer resize your host OS desktop and it preserves the aspect ratio of the emulator video modes.
- The clock "drift" (where host and emulated clock move apart) should be gone. As such we no longer enable the SyncClock module by default. However if this is causing you an issue please report it.
- Changed the threading model of the program so that the GUI is in a separate thread from the emulation of the machine.
- The most obvious change from this is that opening menus and configure windows do not halt the emulation of the machine while you work with them.
Additional fixes in version 0.9.0
- Linux: Support being built as a position independent executable (PIE), this allows the 64-bit recompiler builds to work without modification on Linux distributions which compile all software as PIE by default (e.g. Ubuntu 16.10 and later)
- Windows: HostFS date stamps should be correct regardless of Daylight Savings Time flag.
- ARM Core: STM with store of R15 should vary with processor type (x86 recompiler).
- ARM Core: STRT/STRBT with store of R15 should store same value as STR/STRB.
- The mouse will work when changing between A7000 and RPC models without having to rerun RPCEmu.
- In 'Follow host mouse' mode, enabled support for OS_Word 21,3 'Move Mouse', also supports BBC BASIC 'MOUSE TO'.
- In 'Follow host mouse' mode, the mouse should work correctly if you change to fullscreen, change RISC OS mode and leave fullscreen again.
- Clang compiler is now recognised when writing to the log file.
A special thanks to the members of the RPCEmu mailing list who helped with testing these wide-ranging changes.
Version 0.8.15 - 26/10/2016
Changes in this build
- All Platforms
- Issue with 8MB VRAM being less stable has been resolved, code is now correctly allowed in the 2-8MB area.
- ARM SWP instruction correctly handles unaligned access.
- Enhancements to TLB to correctly flush caches on more operations.
- Windows
- The window maximise button has been disabled, as the size of the window is determined by the mode in RISC OS.
Version 0.8.14 - 8/2/2016
Changes in this build
- All Platforms
RISC OS Select 4i2 to 6i1 (6.06 to 6.20) now boot 'out of the box' due to clearing the *unplug bits in the distributed cmos.ram file. If applying the upgrade to an existing install you must use the provided cmos.ram file and then apply your changes to cmos settings afterwards.
If you have used the 'installer' version on windows Vista, 7, 8, 10 then you will probably need to delete the copy of cmos.ram that is in this directory
C:\Users\<USERNAME>\AppData\Local\VirtualStore\Program Files (x86)\RPCEmu
Add support for 8MB VRAM (via patching) on RISC OS 3.50/3.60/3.70/3.71/ 4.04/4.29/4.33/4.37/4.39/6.02. This is in addition to the support for RISC OS 4.02 (via patching) and RISC OS 5.2x and 6.10 to 6.20 via OS autodetection.
RISC OS 5.2x now work with 0MB VRAM as we now allow video data to be stored in any part of Simm 0 Bank 0 of RAM.
RISC OS Select 4i2 to 6i1 (6.06 to 6.20) now work with 0MB VRAM as we no longer create TLB entries for VRAM when none is configured.
Translate characters in HostFS paths that would be invalid on Windows, using the same translations for ? < and > as used by LanMan. Contributed by Alan Buckley.
Version 0.8.13 - 21/10/2015
Changes in this build
- All Platforms
- Dynamic recompiler is no longer StrongARM specific. It supports a wider range of OSes with more processors. (RISC OS 3.50, 3.60, 3.70, 3.71, 5.22).
- Host pointer integration (follows host mouse) now works in rectangular pixel modes (e.g. Mode 12).
- The daylight saving time flag in CMOS should be automatically set on startup based on the timezone information from the host machine.
- ARM Core
- Abort handling of LDM/STM now follows the varying Abort Model of the different ARM processors.
- LDM/STM now check for abort on each data transfer, which gives accurate abort detection.
- Linux
- The display now supports pixel doubling of rectangular pixel modes (e.g. Mode 12) in the same way as the Windows version.
Version 0.8.12 - 22/10/2014
Changes in this build
- All Platforms
- ARM Core
- Fix 4 issues related to the SWP instruction
- Fix for STRB where the PC should be offset
- Fix implementation-specific behaviour for single data transfer
- Floppy Drive
- Support the FDC Format and Verify commands, this enables you to format an empty 800KB or 1600KB file as a disc image. Including code provided by Rob Sprowson.
- Experimental fix for floppy-drive support in Recompiler. Please report any issues discovered with this.
- Fix rendering of wimp modes 29 and 30 (800x600 in 1bpp and 2bpp)
- HostFS
- Add support for RISC OS ImageFS extensions and add a default disc name This enables several programs that previous failed to work to work, including Photodesk and the Acorn C/C++ installer.
- Add support for querying HostFS free disc space.
- Add a 'Help' menu to the UI with links to the website and manual
Version 0.8.11 - 23/10/2013
Changes in this build
- All Platforms
-
Support for emulating Phoebe, the Risc PC 2. Produced with the assistance of The Centre for Computing History.
Instructions on how to setup Phoebe emulation and the required files are on the 4corn website.
http://www.4corn.co.uk/articles/phoebe/Note, this is a prototype machine, so is more for historical interest than running production code.
- Introduced the concept of configuring the Hardware Model rather than using CPU type to determine hardware. See the Settings->Settings window for details. You may need to reselect a model based on your previous CPU choice.
- Fix very rare bug in which the MIPS count was sometimes wildly incorrect.
-
- Windows
- Fix 'Follows Host Mouse' bug, where the host and emulated mouse pointers were not lined up until the RPCEmu window had been moved.
- Fix network GUI bug where the selected networking type was not correctly set.
Version 0.8.10 - 27/3/2013
Changes in this build
- All Platforms
- Fix bug in emulation of SMLAL instruction in 32-bit DynaRec.
- Fix bug in emulation of unaligned STR with Writeback in 32-bit DynaRec.
- Fix bug in emulation of LDR/LDRB with Writeback in both 32-bit and 64-bit DynaRec.
- Extensive code-refactoring enabling the above fixes, and in preparation for future improvements.
- Windows
- Host CD-ROM drives now appear correctly in the CD-ROM submenu.
- Linux
- A program icon has been added to the main Window.
Version 0.8.9 - 1/1/2012
Changes in this build
- All Platforms
- Add support for emulation of 256 MB of RAM - the maximum possible in the Risc PC and A7000 architecture.
- A new option to reduce CPU usage. By enabling this menu option, RPCEmu will attempt to reduce its CPU usage by utilising the 'Idle' feature of RISC OS. Once enabled, the CPU usage should reduce roughly 30 seconds after booting RISC OS provided that activity is low enough. No 'Portable' module is required to use this feature. This is partly based on code by Jeffrey Lee.
- A two-button mouse mode, for use on laptops and similar: this menu option swaps the right and middle mouse buttons, allowing the more common RISC OS use of Select and Menu on two-button mouse systems such as laptops.
- Several fixes to the "Follow host mouse" feature, which should make it more reliable: Correctly interprets OS_Byte 106 and handles pointer/cursor linking.
- SWIs are now intercepted even when called using CallASWI, based on a patch by Alan Buckley. This further improves the reliability of the "Follow host mouse" feature.
- The mouse type will be automatically configured based on the type of emulated machine. Previously it was necessary to use '*configure mousetype' when changing between Risc PC and A7000 emulation.
- Resolved ARM bug where rotate could set C flag incorrectly.
- A possible crash in the Dynamic Recompiler has been prevented by a fix from Tom Walker.
- RISC OS 4.02 with no VRAM configured now boots in Risc PC emulation.
- Accuracy improvements to emulation of IOMD.
- Workaround ADC issue on 64bit recompiler which prevented RISC OS 5.17 from booting.
- Refactoring of code, particularly relating to RAM and IOMD.
- Windows
- The window size is now taller by one pixel. Previously it was too short, and the very bottom row of the display was missing.
- Some improvements to the GUI, including enabling Windows "Visual Styles" so that windows adopt the native look of the OS, and improving the layout of the "Configure" window.
- A potential freeze when choosing "File->Exit" has been fixed.
- An improved icon, which includes high-resolution variants for Windows Vista and later.
- Linux
- Some improvements to the GUI, including improving the layout of the "Configure" window.
Version 0.8.8 - 19/9/2010
Changes in this build
- Solaris
- The configure script has been updated so RPCEmu should now compile on Solaris 10 and Open Solaris without any additional changes.
- Linux
- The configure script has been updated so that RPCEmu should now compile on Fedora 13 without any additional changes.
- Windows
- Fix issue where is was possible that the selected processor and the processor chosen in the GUI could get out of sync.
- All Platforms
- Fixed 'Follow Host Mouse' mouse-drag problem that was reported with 0.8.7.
- Fixed 'Follow Host Mouse' crash reported when using RISC OS 4.39.
- OS version is now written to the rpclog.txt log file, to aid in bug triage.
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.htmlThe 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.
- 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.
- 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.
- Experimental support for ROOL RISC OS 5.15 IOMD ROM image.
However there are many issues, please follow this link for more
details.
- 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