Portable module for RPCemu
Steve Revill (20) 1361 posts |
Having not looked into this, I’m not sure what is involved but I recently put together RPCemu (Linux), RISC OS 5 ROM and HardDisc4 image and various third party software. All good and it seems to work quite well (once I’d unplugged ADFSFiler – which begs the question of why it’s in the ROM image at all). The main problem I have is that RPCemu sits there using 100% CPU all the time, which gets my CPU up to around 90 degrees. This isn’t very good for my laptop nor is it very quiet to have the fan spinning away like mad all the time. So, I wonder if there’s any hope in doing what needs to be done to get RISC OS 5 and RPCemu to play more nicely in terms of their CPU usage? Does this need to be a bounty? What is involved? |
Jeffrey Lee (213) 6048 posts |
The version of IOMD in the ARM7500 supported wait-for-interrupt functionality, and there’s already a version of the Portable module which makes use of it, so in theory all that’s needed is for RPCEmu to be updated to emulate the wait-for-interrupt behaviour (which may or may not be trivial). However I have a feeling that Portable75 would only attempt to use the wait-for-interrupt feature if it detects the appropriate IOMD chip. Also I’m not sure what would happen if Portable75 attempted to use the feature on a physical machine containing the wrong IOMD (so simply removing the IOMD version check wouldn’t be wise). Another alternative (which I think is what most other emulators use) is for the emulator to provide their own version of the Portable module in a podule ROM. This would give them a bit more freedom, e.g. rather than copying Portable75 and implementing Portable_Idle they might find it easier to implement Portable_Speed (making it switch the thread priority of the emulator). |
Jeffrey Lee (213) 6048 posts |
From watching the CVS commit history I’m fairly certain that Tom’s IOMD-compatible version of ADFS made it into CVS. But I also remember noticing that nobody had updated the IOMDDev components file to include ADFS (and perhaps some other modules, e.g. sound?). I didn’t mention it at the time (after all, I’ve got no idea if there were any source submissions which were still sitting in your queue), but I guess now is a good enough time to bring up the topic ;) |