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
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
Tom 7's work on machine learning and NES emulation is very impressive. This isn't the first time he's attacked that space; you can see previous experiences he had with an automatic game-playing AI he built called "LearnFun / PlayFun" on that YouTube channel also:
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.
It was glEnd() when this was submitted. Someone erroneously changed the title afterwards.
Is there some unspoken rule on HN that all proper nouns need to be capitalized? This doesn't seem fair when iPhone and jQuery can get exceptions. Some of my projects' names use intentionally lowercase proper nouns, and I would not appreciate someone changing the title of one of my self-submissions to align with their capitalization beliefs.
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.
The work here on automatically figuring out what RAM belongs to the character makes me think it's possible again. Cool stuff.
I actually think it is meant as a joke. The paper and code he made available seems be something he actually made, and that without looking into the gory details seems to be doing what the video says it does. That said, the conference it supposedly was presented at is clearly a hoax, and did supposedly happen on April 1st.
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!
He was definitely using a wacom tablet (or similar) and Photoshop (or similar). The color selection is what I remember from Photoshop. And obviously sped up.
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