Live data from Hacker News

Super Mario Bros warp zones were intended to work slightly differently [video]

youtube.com

101–108 of 108 posts

Re: Super Mario Bros warp zones were intended to work slightly differently [video]

#101

Earlier quoted context omitted.

I think the parent is more frustrated by videos that drag on for 10 minutes before getting to the meat of the content.

Kind of weird to put the comment on this one then, since it's edited so tightly.

I would expect such a comment to be attached either when the commenter has watched the video and it is as described or when the commenter has not watched the video because of the frequency of such videos on YouTube.

Re: Super Mario Bros warp zones were intended to work slightly differently [video]

#102
post #53

I loved the in-depth technical discussion in this video. If you're into this sort of thing, I highly recommend this pokemon/missingno discussion: https://www.youtube.com/watch?v=RNsEsZbXE-4

Thanks, this was interesting. I exploited this glitch with wild abandon as a kid. Fun to know how it worked.

Re: Super Mario Bros warp zones were intended to work slightly differently [video]

#103
post #69

Earlier quoted context omitted.

Star Wars is set in a remote galaxy where a civil war is taking place. Rebels, led by Princess Leia, are fighting against a baddy called Darth Vader and his Imperial forces. Leia steals some Imperial blueprints for a deadly weapon called the Death Star but she is then captured by Imperial forces so... .. yes, text is great, but video can, too, be great, whether it's explaining something fictional or not. Different st…

The cool kids know that Star Wars is much better in text than video https://telehack.com/ -> starwars or (which apologies for video of text of video) https://www.youtube.com/watch?v=EJAbbRh9q4k since the original is dead.

[deleted]

Re: Super Mario Bros warp zones were intended to work slightly differently [video]

#104
post #74
post #50

Earlier quoted context omitted.

Perhaps they meant to increment another variable and typed the label or address wrong (labels back then were generally much more limited in length on the average development system, I bet that the actual name for the variable in question was nowhere near the length of WarpZoneCtrl, most likely it was limited to 6 or 8 characters). I don't know the low level logic of the engine enough to know if there is a different v…

Based on the original leaked source code, it appears they really did intend to increment the variable they did. The comment matches the name and purpose: BEQ PLTMRT ; Scrool stopping ? ; : yes ! LDA PLYPS1 AND

The buggy AND is really interesting to me -- the comment suggests that maybe the programmer meant to use an ORA instead, which would have been a clever way to check if both bytes of the Y position were zero. But that's still not something that makes sense to check, right? Assuming I'm understanding the video right, that'd only unlock the scroll if Mario was way up above the top of the screen...

Re: Super Mario Bros warp zones were intended to work slightly differently [video]

#105
post #74

Earlier quoted context omitted.

Based on the original leaked source code, it appears they really did intend to increment the variable they did. The comment matches the name and purpose: BEQ PLTMRT ; Scrool stopping ? ; : yes ! LDA PLYPS1 AND

The buggy AND is really interesting to me -- the comment suggests that maybe the programmer meant to use an ORA instead, which would have been a clever way to check if both bytes of the Y position were zero. But that's still not something that makes sense to check, right? Assuming I'm understanding the video right, that'd only unlock the scroll if Mario was way up above the top of the screen...

I believe the NES's 6502 didn't have a logical-OR operator (which is what the situation calls for), only bitwise. The apparent goal was to find out, "Are either PLYPS0 or PLYPS1 equal to 0?"

They probably started with ORA, and when that didn't work, tried AND, and that seemed to work, so they went with it.

Re: Super Mario Bros warp zones were intended to work slightly differently [video]

#106
post #105

Earlier quoted context omitted.

The buggy AND is really interesting to me -- the comment suggests that maybe the programmer meant to use an ORA instead, which would have been a clever way to check if both bytes of the Y position were zero. But that's still not something that makes sense to check, right? Assuming I'm understanding the video right, that'd only unlock the scroll if Mario was way up above the top of the screen...

I believe the NES's 6502 didn't have a logical-OR operator (which is what the situation calls for), only bitwise. The apparent goal was to find out, "Are either PLYPS0 or PLYPS1 equal to 0?" They probably started with ORA, and when that didn't work, tried AND, and that seemed to work, so they went with it.

Ohhh, that makes sense. Thanks!

Re: Super Mario Bros warp zones were intended to work slightly differently [video]

#107
post #97
post #68

Earlier quoted context omitted.

It’s pretty interesting how the game can continue to function in a level that isn’t supposed to exist. Metroid has similar areas I believe. It’s hard to imagine a modern game or any modern software handling a scenario like that without crashing.

That's because in modern software design, crashing is preferred to continuing to read invalid data, which has no upper limit on the amount of possible permanent damage it could cause. Would you rather have your game crash, or corrupt your 100-hour savegame? Crashing is the more elegant solution to this type of error, and a large percentage of language design after C++ went into turning undefined-behavior scenarios in…

Yeah I’m not trying to say it’s better or anything, I’m just so unfamiliar with environments where going out of bounds isn’t an immediate failure.

Re: Super Mario Bros warp zones were intended to work slightly differently [video]

#108

Earlier quoted context omitted.

I don't think so. Those are the only generation of games that can be analyzed this thoroughly. Plus, computer geeks in the future will still be interested in the fundamentals of computing. And console games are really the only piece of mainstream software whose assembly would be interesting to look at. Granted, this is already niche content, and it will continue to be going forward. But I bet a lot of people watching…

SNES, N64, and even Gamecube (though less so) games get this level of scrutiny as well. Some examples are Mario 64 and Super Smash Bros Melee as some of the most popular examples on later platforms receiving assembly-level scrutiny.

Even the SNES is substantially more complicated than the NES. The tooling available to examine the SNES games like NES games are at least pretty similar, but the capability and complexity of the SNES is a huge step up from the NES.

The N64 content is a different league though. It's not nearly as easy to understand and follow. Plus, Mario64 is written in C and most of the content I've seen has been people adding features to it (HD upgrades, ray tracing, 60fps, etc).

Post reply on HN