Compile… Run… Load.
August 31, 2018 4:27 PM   Subscribe

wideNES: Peeking Past the Edge of NES Games by Daniel Prilik “The NES was one of the flagship consoles of the glorious era that was the 1980s. Many of the most popular games on the platform involved some sort of adventure through scrolling screens — Metroid, Super Mario, and Zelda all used this common technique. For many games, keeping track of the map was a huge chore and meant mapping by hand on graph paper or using the screenshots published in Nintendo Power magazine. These day’s there’s a better way. [Daniel] set out to automatically map these huge two-dimensional worlds, developing software he calls WideNES to do it. WideNES is an add-on to [Daniel]’s own NES emulator, ANESE [GitHub]. As part of the emulator, WideNES can easily read the various registers of the NES’s Picture Processing Unit, or PPU. The registers of the PPU are used to control the display of the background and sprite layers of NES graphics, and by monitoring these, it is possible to detect and map out the display of levels in various NES games.” [via: HACKADAY]
posted by Fizz (19 comments total) 20 users marked this as a favorite
 
good and clever design choices relying only on knowledge of the hardware and the visible behavior of games, rather than reverse-engineering each game's particular method of streaming levels into memory. It looks like many heuristic hacks were needed anyway, but these are still simpler than mentally decompiling lots of assembly code.
posted by scose at 4:52 PM on August 31, 2018 [2 favorites]


but these are still simpler than mentally decompiling lots of assembly code

Also, actually possible in an algorithm.
posted by acb at 5:01 PM on August 31, 2018


This is pretty neat! Seems like Legend of Zelda would be an obvious choice for this, it's mentioned a few times but it's never showcased in the writeup. I wonder if this works with other lesser-known games that feature large scrolling worlds like Rygar, Blaster Master, Solar Jetman or The Guardian Legend. It says it saves data for "Reentrant" scenes, does that mean if I go into a battle in Final Fantasy it will remember the map when I come back to it?
posted by Mr.Encyclopedia at 5:04 PM on August 31, 2018 [3 favorites]


I meant a human mentally decompiling the game's assembly code, but yeah.
posted by scose at 5:09 PM on August 31, 2018


I came here for Blaster Master


Am only slightly dissapointed. Cool stuff thanks!
posted by SaltySalticid at 5:28 PM on August 31, 2018 [2 favorites]


Seems like Legend of Zelda would be an obvious choice for this, it's mentioned a few times but it's never showcased in the writeup.

I think that, being screen-based, it's a little less interesting as a technical challenge than something like Super Mario 3.

I found myself wondering while reading the article how those big maps in Nintendo Power or Prima guides were made at the time. Was it all just cutting and pasting, or were there debug modes with similar functionality to make things easier? (Nothing about the wideNES technique would have been conceptually impossible with dev machines at the time, I don't think, although memory limitations could have posed some practical issues.)
posted by tobascodagama at 5:49 PM on August 31, 2018 [2 favorites]


I found myself wondering while reading the article how those big maps in Nintendo Power or Prima guides were made at the time. Was it all just cutting and pasting?

Yep.

Howard Philips: That machine that we had at Work House in Tokyo looked like a VCR or something. It was huge. They'd hook it up to the game system, and then it would print out a picture that was maybe four postage stamps big. It wasn't even as large as a Polaroid. It would print out this beautiful color picture, and then these guys would sit there and take their X-Acto knives and cut out the trim, and then they'd paste them onto this larger board, and make this huge board that was the entire map.

posted by dances with hamsters at 6:21 PM on August 31, 2018 [13 favorites]


Seems like Legend of Zelda would be an obvious choice for this, it's mentioned a few times but it's never showcased in the writeup.

I suspect there are two show-stopping logic traps in Zelda for this gameplay aid—the Lost Woods and the Lost Hills.
posted by infinitewindow at 7:27 PM on August 31, 2018 [4 favorites]


A friend of mine, big into Zelda (to the point that he wrote his own NES emulator to run it) had some thing he made that would allow editing the Zelda map, and one of the features of it was that it would show all the "rooms" (for lack of a better word) modelled as masses connected by springs and they would slowly spread out as the physics model for the springs dictated. Well, since I know very little about Zelda, and don't see the thing on his public github, can't really elaborate much.
posted by smcameron at 7:39 PM on August 31, 2018 [2 favorites]


This is really cool—thank you for sharing. I poked around a bit on the site to see if there were more examples of maps that had been made but didn't seem to find any. Are there? I'd love to see more.

Also, dances with hamsters, that's some fantastic, on-point linkage. Nice work!
posted by Conrad Cornelius o'Donald o'Dell at 10:10 PM on August 31, 2018


This is awesome, thanks!

For some reason it also made me wonder--has anyone ever constructed a game where the landscape changes if you scroll away and then return? I.e. walk one screen to the right, then back to the left, and the scene on the left is different now (presumably randomly generated).
posted by equalpants at 11:50 PM on August 31, 2018


has anyone ever constructed a game where the landscape changes if you scroll away and then return?

The original Zelda always felt this way to me. I know it wasn't actually designed this way but the wonder of that game for me as a child, was feeling so lost as I ventured to fight monsters.
posted by Fizz at 4:00 AM on September 1, 2018


I don't remember any games like that, unless you count something like Berzerk or Venture where the enemies are randomly placed each time you enter the room.

Pitfall! allowed you to go left and right between scenes, but it used a linear-feedback shift register for random number generation which could go backwards and forwards, so you would always see the same scene in the same place.
posted by RobotVoodooPower at 6:49 AM on September 1, 2018


Also, here's a paper describing a tool called Mappy where they map out Zelda and others.
posted by RobotVoodooPower at 6:51 AM on September 1, 2018 [1 favorite]


... has anyone ever constructed a game where the landscape changes if you scroll away and then return?

Kind of, in 3D: Antichamber.
posted by lozierj at 8:39 AM on September 1, 2018 [3 favorites]


Ooh, nice, gotta check that out, thanks!
posted by equalpants at 1:43 PM on September 1, 2018


Antichamber is very cool.
posted by tobascodagama at 2:40 PM on September 1, 2018 [1 favorite]


equalpants, there's a secret area in Kirby's Adventure containing one of the series' "HAL rooms" that's like that.
posted by JHarris at 10:15 PM on September 1, 2018 [1 favorite]


Oh, and there's nesmaps.com which has like, all the maps.
posted by RobotVoodooPower at 10:17 AM on September 2, 2018 [1 favorite]


« Older Sounds like artisan cocktails   |   Random Friday Night Listening Party: Indigo Girls... Newer »


This thread has been archived and is closed to new comments