User space emulator
Jeffrey Lee (213) 6048 posts |
I’m sure this is something that someone must have developed already, but this morning I realised that a convenient solution to the “developers can’t test the ROOL GNUmakefiles because the Norcroft cross-compiler can’t be released publicly” problem would be if we had an equivalent of the QEMU user space/user mode emulator, i.e. a program which emulates an ARM CPU and just enough bits of RISC OS to allow simple command line apps to run on foreign OS’s/CPUs. Then developers wouldn’t need access to the cross-compiler – they could run the native compilers through the user space emulator. Which projects are people aware of which could be capable of doing this? I guess it would need to support emulation of the ARMv3 USR32 instruction set (although USR26 could also be useful), FPA/FPEmulator emulation, SharedCLibrary emulation (preferably passing calls through to the host’s C library where possible), and emulation of whatever other common SWIs typical command line apps might use. |
Michael Grunditz (8594) 259 posts |
Riscos on linux. I know it is a bit more than you ask for, but it is running with qemu userspace. I also think that the various unicorn based projects can do it. I am about to do something like that but in a at the moment not so accessible format. |
Rob Kendrick (6084) 7 posts |
ISTR Matt Bloch started something along these lines a long time ago, called “riscose” – it would run AIF images under Armulator and had pluggable SWI implementations. I remember having some success getting RISC OS Norcroft running under that. https://sourceforge.net/projects/riscose/ Are ROOL still prevented from releasing a cross-compiler, given the historic source for Norcroft is now open, and includes code UNIX front ends and RISC OS back ends? |
Cameron Cawley (3514) 158 posts |
There was an attempt at adding RISC OS user space emulation to QEMU, but it doesn’t seem to have been touched since 2008, so I don’t know what state it’s currently in: https://www.riscos.info/index.php/QEMU |
Charles Ferguson (8243) 427 posts |
Those of you who know me and know my history with RISC OS will know that I have been working on this very issue for the last three years. RISC OS Pyromaniac is a Python and Unicorn based (QEmu derived) emulator which runs on all platforms. It is robust enough to run all RISC OS apps and the desktop and provides support for most RISC OS interfaces. It’s not publicly distributed yet, but I’ll be happy to supply access to it if you’re interested. Please contact me directly. For more information, see https://pyromaniac.riscos.online/ |