Of course you can have an emualtor with source: my own
It's called Yape, and it has got two versions: a Windows and an SDL (http://libsdl.org) one (which you can compile on several platforms where SDL is ported to such as: Windows, Solaris, Linux, Mac, oS/2, BeOS etc.
The source code for the latter version I released under the GNU General Public license, so it is available and you can do with it what you want. So far, not many people dared to do anything with it...