This sorta reminds me of a story about Intellivision's hit game "ASTROSMASH!" (http://en.wikipedia.org/wiki/Astrosmash).
The game was originally meant to be a clone of Asteroids called "Meteor!", but Mattel cancelled the clone due to legal concerns. But there was still room on the cart, which the developer had been using to develop his own unique game called "Avalanche". This is what eventually became ASTROSMASH (my favorite game as an 8 yearold who never got that NES...)
The legend was that the code for the original Asteroids clone was still on the cart; people claimed that pressing the reset button on the console rapidly would cause the game to glitch into Meteor instead of Astrosmash, but I could never make it work as a kid.
Years later, I got my hands on an intellivision emulator that had really nice disassembler/assembler included (http://spatula-city.org/~im14u2c/intv/). By then I had also read online that the developer simply put a JMP instruction at the beginning of the cart to skip over the original "Meteor" code.
Sure enough, I found a ROM for ASTROSMASH, disassembled it, found the JMP in question and modified the assembly, reassembled, and suddenly I was playing "Meteor!"
Either way, it's a good thing that Mattel trashed the Asteroids clone; ASTROSMASH turned out to be a much better game!
http://www.fceux.com/web/home.html
Hex value watching and editing is a valued tool in the time attack community. If you advance frame by frame and watch certain values, you can see patterns showing when an enemy will attack, an item will drop, etc. Time attackers use it to minimize the time spent waiting for enemies, or finding which character actions affect level or enemy patterns.
https://www.gnu.org/software/emacs/manual/html_node/emacs/Ed...
https://www.youtube.com/watch?v=FcDfPXsgqQ0
Looks like someone game genie'd it back in 2008
I'm so confused as to how an invalid level value would generate a level with all sorts of bizarre, invalid combinations... yet still be completely playable, without crashing or anything.
Knowledge of minus world was spread purely through word of mouth. We used our meat based networking protocols.
What barbaric times those were.
Back in the day, figuring out all the moves in a fighting was a meta-game on its own.
People would play Mario, then swap in certain games (mostly Tennis), then swap back to Mario, and then try the trick where you hold select or whatever to resume at the level you last died at.
Depending upon the contents of RAM based on what the other game wrote there, it would warp you to all of these corrupted worlds.
Also at this point, can't someone from Nintendo just open source the code for nostalgic purposes :)
It's very unlikely that the original assembly source exists anymore, or even that it was kept much later than the game's release. It's not until very, very recently that game companies started to think that the original source and assets for a game would have enough value to be worth the cost of archiving. Even games from the PlayStation 2 era routinely have to be rewritten from scratch with new assets when re-released on later consoles.
In my experience, most of the game source code that survived from the early years of personal computing is for games written in BASIC, which would have been distributed as source. There's a few exceptions like for Jordan Mechner's games, but that just goes hand-in-hand with his famously detailed records of his development process.
There are several really cool things you can find on here about older games including a detailed explaination of the minus one world http://www.romhacking.net/documents/343/ where doppelganger covers exactly why the game does what it does.
I think now that A-grade browsers are generally equal in most basic respects, we often forget to test things that might seem inconsequential and not worth testing, like font-weights.
Font is readable, but pretty thin. A little straining on the eyes.