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