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 ;)
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.
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?
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!
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.
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'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.
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...
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!
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.
"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.
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.
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?