I think the really clever bit is the way he's using save states to automatically figure out the game physics. For instance, he holds the left button and looks for a memory location that's decreasing, figures that must be the X location. Then restores the memory state to before he did that. With that info he differentiates obstacles by trying to walk into them. If it fails, it's a wall (so draw it like a wall instead of a floor). Restore back to the player's timeline and continue<p>He doesn't say if that's a step he does once per game or every few frames, but given the clock speed differences between the host and guest VM it could well be redone pretty constantly which would allow for games with more than one mode of play
Minor nitpick, but can we change the title here from "GlEnd()" to "glEnd()"? That is, after all, the correct form of the actual function (and the original title). Changing the capitalization to a big G suggests an entirely different non-standard (and non-existent) function.
Way back in highschool when I was a part of the ROM hacking scene, I thought it might be possible to make an emulator that can automatically reverse engineer enough of the ROM to start building a level editor. I didn't think it was possible for it to always work - NES level compression formats are just too weird for that - but I thought you could do it for at least some of the more sane formats.<p>The work here on automatically figuring out what RAM belongs to the character makes me think it's possible again. Cool stuff.
The source code for the project is here (<a href="https://sourceforge.net/p/tom7misc/svn/HEAD/tree/trunk/smeight/" rel="nofollow">https://sourceforge.net/p/tom7misc/svn/HEAD/tree/trunk/smeig...</a>). There doesn't appear to be a license file, maybe we could ask him to release it under a free software license?
This is really cool. I also like the video a lot. I wonder how the drawing animations are done. Is it just recording drawing stuff with MS Paint? There hast to be a better way!