In case this is of use to someone else - I had the same issue with the save disk not working. I looked around the internet and (mainly on Amiga forums) people confirmed that Cannon Fodder needs a specially formatted disk to save games, and I don't think we have one of them.
So I took Jon's advice and installed to HD. This took me a while to get right, but what I did was:
copying the files to HD
- Ran !ADFFS
- Opened the first Cannon Fodder disk (revealing four files, !Cannon and three others
- Created a new folder on the hard disk
- Copied those four files into it (I suspect I only needed to copy over !Cannon)
- Shift-double-clicked to open the innards of !Cannon
- Used !ADFFS to open the second Cannon disk
- Copied the whole folder "Disk2" into the innards of !Cannon
- Used !ADFFS to open the third Cannon disk
- Copied the whole folder "Disk3" into the innards of !Cannon
getting Cannon's Run File
- Still in the !Cannon innards:
-- made a copy of !Run, renamed as !RunOLD just in case

-- shift-double-clicked to open the code of !Run
meanwhile, in !ADFFS
- Shift-double-clicked to open !ADFFS innards
- Shift-double-clicked to open !Obey
putting !Obey code into !Run
- Copied the code from !ADFFS.!Obey
- Pasted it into !Cannon.Run, completely replacing all the previous code in !Cannon.!Run
- deleted the top line about setting Obey$Dir
- deleted the third line about setting Floppy$Dir
- saved it as !Run inside !Cannon
At this point I tried running it and it complained it couldn't find Loader.
So I copied the !Loader file out of !ADFFS and into !Cannon.
And then it worked fine, and allowed me to save and load games
[This was using
- RPCEmu 0.9.1 set to ARM710, 64Mb RAM, no VRAM
- ADFFS 2.70
- RISCOS 3.71
in case that matters]