I've begun a port of the Atari ST game Sundog: Frozen Legacy to modern platforms with SDL and OpenGL ES 2. This is not a complete remake: it emulates the p-system interpreter that the original game ran in, on current hardware. A few 68000 assembly routines that it called out to did have to be reverse-engineered and re-implemented.

It is basically playable though not completely tested, there may still be a few flukes left.

Writing a working Pascal interpreter is not an easy task.Having build several virtual machines for some games, i understand your motivation, and it's with a great satisfaction we look at the p-code being executed by the VM.

I got quite far, but didn't finish the game. But I think everything important works now.The last barrier was the age-old copy protection still doing its thing... It's defeated though not in a particularly elegant way

Do you have implemented something to dump the p-code to readable pseudo-C ?

Sort of - tools/list_pcode.py has a mode 9 which tries this. It builds expression trees and statements and outputs in this format: