Thursday, 1 March 2018

Re: [Rpcemu] Emulate other ARM processors?

On Thu, Mar 01, 2018 at 05:16:16PM +0000, J Percival wrote:
> 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

_______________________________________________
Rpcemu mailing list
Rpcemu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu

No comments:

Post a Comment