ZxSim
API (C#) for simulating certain aspects of a ZX spectrum for porting.
...Next is re-usability, broken up into separate scopes there is a natural layer of usage. Along with all this is some code to handle the original games data and to emulate some of the routines found in the original Z80, such as sprite blitting and room drawing. These will be broken into small plug-in classes which will allow future changes to use PNGs for the graphics instead of simple pixel drawing. This way the code can improve over time.