Discussion:
[Rpcemu] Emulate other ARM processors?
Gerald Holdsworth
2018-03-01 16:20:58 UTC
Permalink
Probably a stupid question, but, I’ve been thinking recently, how difficult would it be to extend the RPCemu emulation to emulate the ARM2, ARM250, and ARM3 processors in order to run Arthur, RISC OS 2 and RISC OS 3 in (and, effectively, emulate an Archimedes)?

Didn’t RPCemu evolve from Arculator, originally?

Cheers,

Gerald.

From the MacBook Air of Gerald Holdsworth
www.geraldholdsworth.co.uk
www.reptonresourcepage.co.uk
J Percival
2018-03-01 17:16:16 UTC
Permalink
I asked the same thing a while back. I was under the impression that the
hardware was similar. As I understand it, ARM2 code will run fine on a
StrongARM for instance (although needing to turn off the cache if the code
is self-modifying). Back in the day, there was the 'GameOn' utility - apart
from the cache control (and better support for old-style screenmodes
maybe?) I'm not sure what it did to achieve compatibility with many games -
possibly patching them - but I think the differences weren't too
significant - usually in these cases it's software that assumes a very
specific environment that fail. It's possible that Arthur/RO2/RO3 would run
on a Risc PC - don't know if anyone has tried it. It would be nice to have
accurate emulation of older systems though as things like tech-demos are
particularly sensitive to the configuration of the underlying (emulated)
hardware.
Probably a stupid question, but, I’ve been thinking recently, how
difficult would it be to extend the RPCemu emulation to emulate the ARM2,
ARM250, and ARM3 processors in order to run Arthur, RISC OS 2 and RISC OS 3
in (and, effectively, emulate an Archimedes)?
Didn’t RPCemu evolve from Arculator, originally?
Cheers,
Gerald.
From the MacBook Air of Gerald Holdsworth
www.geraldholdsworth.co.uk
www.reptonresourcepage.co.uk
_______________________________________________
Rpcemu mailing list
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Theo Markettos
2018-03-01 18:17:28 UTC
Permalink
Post by J Percival
I asked the same thing a while back. I was under the impression that the
hardware was similar. As I understand it, ARM2 code will run fine on a
StrongARM for instance (although needing to turn off the cache if the code
is self-modifying). Back in the day, there was the 'GameOn' utility - apart
from the cache control (and better support for old-style screenmodes
maybe?) I'm not sure what it did to achieve compatibility with many games -
possibly patching them - but I think the differences weren't too
significant - usually in these cases it's software that assumes a very
specific environment that fail. It's possible that Arthur/RO2/RO3 would run
on a Risc PC - don't know if anyone has tried it. It would be nice to have
accurate emulation of older systems though as things like tech-demos are
particularly sensitive to the configuration of the underlying (emulated)
hardware.
There are several thing to de-conflate here:

1. The user-level instruction set. ARMv4 (StrongARM) is largely a superset
of ARMv2 (ARM2/3) so minimal changes are required here (see 'StrongARM
compatibility' notes of old)
2. The system-level CPU model. Exception modes and the MMU changed quite a
lot between ARM3 and ARM6, and the caches changed between ARM3, ARM6/7 and
StrongARM.
3. System I/O, for instance video, timers, keyboards, interrupt sources,
motherboard chips. Some effort was put into making IOMD and VIDC20 be a
superset of IOC and VIDC1, but there are enough changes to make them
incompatible.


#2 is the big one. Arthur/RO2/RO3.1 would not work on a Risc PC without a lot
of code changes - the result of those changes is called RO3.5.

So best stick to Arculator if that's what you need.

Theo
J Percival
2018-03-01 19:21:42 UTC
Permalink
I wasn't aware of the MMU differences but I thought the cache could simply
be disabled in later ARM CPUs to provide backwards compatibility with
ARM2/3. Do you know of anywhere that details the changes? I'm only familiar
with the ARM2/3-based systems so I'm curious. With regards to using
Arculator, that would be fine except that it's no longer developed and
seems to have some issues. If we make the comparison to WinUAE which
implements emulation of all the different hardware combinations available
on the Amiga, then I'd like to think that emulation of the entire range of
ARM-based Acorn systems 'under one roof' would also be practical and
beneficial. Of course the developers only have so much time on their hands,
and things have to be prioritised, but I do think it would be worthwhile.
Post by J Percival
Post by J Percival
I asked the same thing a while back. I was under the impression that the
hardware was similar. As I understand it, ARM2 code will run fine on a
StrongARM for instance (although needing to turn off the cache if the
code
Post by J Percival
is self-modifying). Back in the day, there was the 'GameOn' utility -
apart
Post by J Percival
from the cache control (and better support for old-style screenmodes
maybe?) I'm not sure what it did to achieve compatibility with many
games -
Post by J Percival
possibly patching them - but I think the differences weren't too
significant - usually in these cases it's software that assumes a very
specific environment that fail. It's possible that Arthur/RO2/RO3 would
run
Post by J Percival
on a Risc PC - don't know if anyone has tried it. It would be nice to
have
Post by J Percival
accurate emulation of older systems though as things like tech-demos are
particularly sensitive to the configuration of the underlying (emulated)
hardware.
1. The user-level instruction set. ARMv4 (StrongARM) is largely a superset
of ARMv2 (ARM2/3) so minimal changes are required here (see 'StrongARM
compatibility' notes of old)
2. The system-level CPU model. Exception modes and the MMU changed quite a
lot between ARM3 and ARM6, and the caches changed between ARM3, ARM6/7 and
StrongARM.
3. System I/O, for instance video, timers, keyboards, interrupt sources,
motherboard chips. Some effort was put into making IOMD and VIDC20 be a
superset of IOC and VIDC1, but there are enough changes to make them
incompatible.
#2 is the big one. Arthur/RO2/RO3.1 would not work on a Risc PC without a lot
of code changes - the result of those changes is called RO3.5.
So best stick to Arculator if that's what you need.
Theo
_______________________________________________
Rpcemu mailing list
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Gerald Holdsworth
2018-03-01 19:23:23 UTC
Permalink
Post by Theo Markettos
#2 is the big one. Arthur/RO2/RO3.1 would not work on a Risc PC without a lot
of code changes - the result of those changes is called RO3.5.
So best stick to Arculator if that's what you need.
The only reason I thought of it was that I like the RPCemu user interface, as the Arculator one seems less friendly (more so on the Mac - although I do have the source code for the Mac version). I also thought of it as RedSquirrel used to be able to emulate everything from Arthur to RISC OS 4.39 (never tried anything newer).

Anyway, just a thought. Thank you.

Cheers,

Gerald.
J Percival
2018-03-03 22:46:35 UTC
Permalink
It's strange that Acorn were...at least in some people's opinion - big on
backwards compatibility - but compared to the PC world, they didn't seem to
do it very well.
Regarding Arculator/RPCEmu, I don't know, but looking at
http://b-em.bbcmicro.com/arculator/ V0.1 of Arculator came out before V0.1
(or any version) of RPCEmu.
Post by Gerald Holdsworth
Probably a stupid question, but, I’ve been thinking recently, how
difficult
would it be to extend the RPCemu emulation to emulate the ARM2, ARM250,
and ARM3 processors in order to run Arthur, RISC OS 2 and RISC OS 3 in
(and, effectively, emulate an Archimedes)?
It's a large amount of work for archimedes support, of which the ARM is
the relatively easy bit.
I've considered it, but it's a long long way from happening anytime soon.
Didn’t RPCemu evolve from Arculator, originally?
I think it might have been the other way round, though I'm not sure. They
both shared a large chunk of code.
In general, stick to Arculator, if it does what you want it too.
Peter
--
Peter Howkins
_______________________________________________
Rpcemu mailing list
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
J Percival
2018-03-03 22:55:23 UTC
Permalink
Incidentally, I wondered about the cycle-accuracy of the emulation. Could
we have accurare emulation of ARM2/250/3 level performance even if we can't
emulate the hardware of the Archimedes at this point?
Post by J Percival
It's strange that Acorn were...at least in some people's opinion - big on
backwards compatibility - but compared to the PC world, they didn't seem to
do it very well.
Regarding Arculator/RPCEmu, I don't know, but looking at
http://b-em.bbcmicro.com/arculator/ V0.1 of Arculator came out before
V0.1 (or any version) of RPCEmu.
Post by Gerald Holdsworth
Probably a stupid question, but, I’ve been thinking recently, how
difficult
would it be to extend the RPCemu emulation to emulate the ARM2, ARM250,
and ARM3 processors in order to run Arthur, RISC OS 2 and RISC OS 3 in
(and, effectively, emulate an Archimedes)?
It's a large amount of work for archimedes support, of which the ARM is
the relatively easy bit.
I've considered it, but it's a long long way from happening anytime soon.
Didn’t RPCemu evolve from Arculator, originally?
I think it might have been the other way round, though I'm not sure. They
both shared a large chunk of code.
In general, stick to Arculator, if it does what you want it too.
Peter
--
Peter Howkins
_______________________________________________
Rpcemu mailing list
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu
Loading...