With the help of some very thorough testing by zx4ever we now have 3 version of sz81 for Risc OS that have been run on Raspberry Pis. They are attached.
sz81o
Based on sz81 2.1.8 UI, with the core emulation loop ported back from picozx81, this is a lightweight version that runs on a Pi2. It has good hi-res and sound emulation, but does not support Chroma. It supports loading and saving of memory blocks, but not a full ZXPand+. To enable low memory, select a memory size of 24, 40 or 56kB. WRX and UDG graphics (CHR16 and QS) are supported. There are command line options to support NTSC vsync rates and larger display windows (described in the git Readme.)
The code is at
https://github.com/ikjordan/sz81_2_1_8
Scripts and instructions to build in Risc OS are included
sz81n
Based on 2.3.12. Supports Hi-res, sound and Chroma. A small change has been made to ensure the ROM is protected when loading memory blocks (the abba music player splash screen was loading the bitmap header into the end of ROM and corrupting part of the character set).
This version is significantly more processor intensive compared to sz81o. The SDL display routines have been tuned, so the whole emulator now runs approx. 30% faster than initial builds. This allows it to run at 100% on a Pi3b+ in most circumstances, but it can still sometimes struggle when playing sound with a large window size.
sz81p
Based on 2.3.12, compiled with ZXPand+ support.
The code for the 2.3.12 versions, with build instructions for Risc OS, can be found at:
https://github.com/ikjordan/sz81
All Risc OS specific code changes are protected by #ifdef PLATFORM_RISCOS blocks, so they can be merged back if and when a 2.3.13 release of sz81 is created.
Improvements over the Risc OS version previously posted in this thread
1. All versions now support the reading and writing of .p files without the need to create extra directories. Files appear in Risc OS as /p files (e.g. gal.p goes to gal/p). This means that program files can be downloaded directly in Risc OS and they will run unaltered
2. All versions now shut down cleanly
3. They run significantly faster than previously uploaded versions
Pi4
The Pi4 has enough CPU to run all of the emulators at full speed. However, in testing we did find cases where the sound lagged, even though the processor is not fully loaded. I have seen a theory proposed on a Risc OS forum that this may be because the clock scaler does not take background SDL sound and timer threads into account and, thinking the machine is idle, reduces the CPU clock speed.