wideNES: see outside the viewport while playing classic games
by Rob Beschizza from on (#3XNM5)
wideNES is an ingenious tool that lets you zoom out of the NES game you're playing. It's a feature of ANESE, a new NES emulator developed by Daniel Prilik.
wideNES is a novel technique to automatically and interactively map-out NES games, in real time.As players move within a level, wideNES records the screen, gradually building-up a map of what's been explored. On subsequent playthroughs of the level, wideNES syncs the action on-screen to the generated map, effectively letting players see more of the level by "peeking" past the edge of the NES's screen! Best of all, wideNES's approach to mapping games is totally generalized, enabling a wide range of NES games to work with wideNES right out of the box!The technical description of how it works is well-worth reading. It's like a primer on how memory-challenged early game consoles managed to keep things smooth and sweet--and why it's better to employ such an elaborate technique of observation than to try and pre-emptively decode the internal geography of each game.
Why not extract levels directly from ROMs?Trying to extract level data from a NES ROM would be equivalent to determining which sections of the ROM are code (as opposed to data), which is hard, since finding all code in a given binary is equivalent to the Halting problem!wideNES takes a much simpler approach: Instead of guessing how games pack level data in ROM, wideNES will simply run the game and watch the output!An excellent suggestion from ArtWomb on Hacker News: set up a high-resolution monitor that has the entirety of a game world on it, letting it remain static whole your tiny sprite (Link, for example, in Hyrule) quests forth.