I've tried the SoMI patch and kept getting divide errors. The solution I use for making these games work under MS-DOS is by using a utility called Setmul. You can use Setmul to disable the L1 Cache of your CPU which will slow things down enough to let you play these games properly.
You can also use a program called MySlow under Windows 9x which will also allow you to play them without having to boot into DOS.
I will give setmul a try but I am not sure it works with K5, we will see..
I also thought these slow-down utilities which can disable caches only work on certain processors....maybe I should try it on my P3 700mhz (which has zero hardware slowdown/BIOS-enabled type stuff from what I can see on my 440bx MB's bios).
Also, BTW, I'm still able to play Monkey Island 1 and 2 at the seemingly correct speed on my P3 - I didn't patch the .EXE or anything. (I've tried them both through Win98, and exiting to pure DOS mode as well).
The divide error in Indy 3 and Monkey 1 are part of the AdLib-related code. There are no other CPU speed related issues in the code that I'm aware of. If you force these games into pure PC Speaker mode by running them with the "i" parameter, the games should work perfectly fine regardless of the CPU speed.
Later releases of Monkey 1 don't have that divide error and I think that by the time Monkey 2 came out the problem in the AdLib code was fixed for good.
It's possible to apply a custom patch to the executable that fixes the divide error. I've created such a patch for the EGA version of Monkey 1 last year. And I think I also created patches for the VGA floppy versions of Indy 3 and Monkey 1. If you want to create fully fixed executables for these games so that you don't have to rely on slowdown utilities anymore, let me know.