
WideNES – Peeking Past the Edge of NES Games - nickburlett
http://prilik.com/blog/wideNES
======
ArtWomb
This would make a cool art installation. If you can get access to one of those
giant screens that you see demo'd at E3. You can visualize the entire Land of
Hyrule from Lengend of Zelda. With a tiny Link navigating his way through the
world ;)

~~~
arantius
If you just want big maps, that's already been done (by hand):

[https://www.google.com/search?tbm=isch&q=legend+of+zelda+map](https://www.google.com/search?tbm=isch&q=legend+of+zelda+map)

~~~
WalterGR
In the 1980s, books like _How to win at Nintendo Games_ were published with
strategies, cheats, maps, and so forth. That particular line of books were
cheap black-and-white (well, yellowish, IIRC) paperbacks. But there were full-
color glossy strategy books that included full maps for games.

I had a bunch of those books. I didn't even have an NES! (Though I desperately
wanted one...) But I was so enamored with video games that I pored over them.

------
sulami
Even after having seen _a lot_ of (S)NES hackery, and being quite a bit into
reverse engineering the consoles and games, this is mind blowing to me. The
result is just so perfect. It makes me happy to see that decades after the
release of these, there are still people playing with them, in one way or
another.

~~~
ianai
It’s almost literally the mental map I’ve made of these games years ago. Feels
awesome to see.

~~~
LordKano
Yeah, I remember moving so that I couldn't see the enemies on the next screen,
mentally timing the movement and then coming back to see if they were where I
thought they should be.

------
glaberficken
Which brings to my mind an interesting question: Could a ml agent be used to
auto-explore with the intention of visiting all parts of the game world?

There has been recent focus on ML research trying to win or beat games. What
if the goal was merely to have an agent that would manage to explore the
largest game "area" possible? Has that been done before?

~~~
jklehm
It has been done[1], I think even posted here but can't remember the title.
Edit: Found the Mappy post from last year[2].

[1]
[https://arxiv.org/pdf/1707.03908.pdf](https://arxiv.org/pdf/1707.03908.pdf)

[2]
[https://news.ycombinator.com/item?id=15026399](https://news.ycombinator.com/item?id=15026399)

~~~
glaberficken
brilliant! thank you

------
sehugg
If you want to see some of the wacky things devs did with NES nametables and
scroll registers, check out the Rad Racer pseudo-3D implementation:
[http://forums.nesdev.com/viewtopic.php?t=8588](http://forums.nesdev.com/viewtopic.php?t=8588)

------
tenebrisalietum
Curious to see how it would handle Dragon Warrior 1 - I bet the dark dungeons
probably don't use the scroll registers at all.

Also Ultima III: Exodus would be interesting. I suspect it's "black out tiles
behind walls and in trees" effect is done through the attribute table but
don't really know what it does when elements scroll offscreen.

~~~
softawre
In DW1, when you moved into a wall, it made that "bump" sound, and there were
a couple different torch widths, so I would guess you are actually moving
around in the room. Interesting thought though.

------
philo23
I almost gave up on this after seeing the first gif thinking that was going to
be it, but I couldn’t have been more wrong.

This is a very neat trick and it seems like it works really well, I’m kinda
surprised I’ve not seen anything like it before.

~~~
Jaruzel
It reminds me of the old 'walkthroughs' the games magazines used to print
years ago. They'd devote at least two pages showing all the levels connected
together as one big graphic, with hints and tips added as text in the
appropriate places.

At the time the only way they could do this was either spend HOURS playing the
game and recording or screengrabbing it, or ask the developer nicely for a
level layout.

It would be nice to see WideNES be used in this way to create new walkthroughs
for games, or for large print posters etc.

~~~
louhike
I've listen to podcasts where french video games journalists talked about
this.

They did crazy hours to do the game from start to end by themselves and
screencapping everything.

------
daniel5151
Hey, I'm the author!

If you've got any questions, fire away!

~~~
tanishalfelven
This was really awesome! Do you have any resources for how you got started
creating an nes emulator? Definitely something I'd like to play around with...

~~~
daniel5151
Thanks!

The Nesdev wiki is the bible for writing NES emulators. It has all the
technical documentation you'll need to implement the various aspects of NES
hardware. It also has plenty of test ROMs, which are incredibly useful for
verifying implementation details!

[http://wiki.nesdev.com/w/index.php/NES_reference_guide](http://wiki.nesdev.com/w/index.php/NES_reference_guide)

Fair warning, while it's pretty easy to get a half-decent 6502 emulator up and
running, implementing the PPU is _incredibly_ tricky. If you don't have a lot
of experience writing emulators, I'd recommend starting with a simpler system,
like the CHIP-8, before tackling the NES.

~~~
tanishalfelven
thanks! keep up the awesome work :D

------
dan_hawkins
Quoting the statement on the page:

"In the mid 1980s, [...]. Boasting the best sound, the best graphics, and the
best games of any home-console to date, it pushed the envelope for what home-
gaming could be."

I challenge it as a big, fat lie! Yes, the games might be really great but the
best sound and the best graphics in the mid 80s were offered by Amiga
(released in July'85 while NES was released in NA in Oct'85.) I know that
Amiga has been released as a home computer but originally it's been intended
to be game console. So here are my two cents.

------
JoshTriplett
This looks really impressive!

I wonder if this could snapshot the state of the game, use spare CPU capacity
(including other cores) to simulate in the background and feed in various
inputs, and try to give a preview of the upcoming map? It wouldn't have to get
very far; trying a few common input patterns would suffice.

I also wonder if this could apply some heuristics to see if the sprite layer
scrolls consistently with the background, and if so, provide a preview of
upcoming sprites too. If they consistently spawn at the same point, render
them at that point.

------
olssonm
This is so cool – glad to see talented programmers come up with great ideas
again and again when developing emulators.

------
VectorLock
This could very well be the most clever hack I've seen all month.

------
netrap
This is amazing!

------
rusk
Beautiful stuff.

------
andrewclunn
Why not use these methods to map out a game, create a meta file with the data,
and then allow it to be preseeded to improve performance, show the extended
screen prior to loading on future playthroughs, and enable game specific
heuristics only for the initial mapping, which could then be removed to avoid
performance and compatibility hits?

