Hacker News new | comments | show | ask | jobs | submit login
WideNES – Peeking Past the Edge of NES Games (prilik.com)
249 points by nickburlett 3 months ago | hide | past | web | favorite | 32 comments



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 ;)


The lost woods might confuse the algorithm pretty good.


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


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.


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.


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


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.


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?


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

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


brilliant! thank you


Exactly my thought. You wouldn't want to download the ROM itself, but the augmented ROM with the entire worldview for your 4k pleasure. What a nerdy time we live in!


Why wouldn't you want to download the rom?


He means, you would donwload a theoretical rom containing the game with its entire pre-rendered world for each level. Which would mean that given a large enough 4k screen you would be able to play a game without scrolling. i.e. the entire level would show on the screen at once and you would only move the player character around it. =) nice idea =)

edit: same thing as mentioned by ArtWomb in another comment >" 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 ;) "


There are already speed runs and 100% speed runs that have the input sequence to run through a game, I think that most of the vast majority of games wouldn't need any machine learning at all to map the screens that need to be glued together.


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


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.


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.


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.


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.


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.


I'd guess for some of the games they'd have action replay/game genie codes for invincibility (maybe even no death from pits too) making the process much quicker.


Hey, I'm the author!

If you've got any questions, fire away!


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...


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

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.


thanks! keep up the awesome work :D


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.


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.


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


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


This is amazing!


Beautiful stuff.


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?




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: