An apparent "one-line code fix" for Super Mario 64 has supposedly fixed a visual bug in Mario's first 3D outing. The smoke Mario emits when he makes contact with lava or anything else hot has been replaced with a "much better looking" particle that's reportedly been within the game all along, according to Polygon.
All it took was a single line of code to be swapped. Here's the full rundown from a hacker known as zoinknoise:
it’s now known that this texture is displayed in the wrong format by the game, resulting in black garbage pixels. Since video game smoke of this era was often depicted with black garbage pixels, the mistake went unnoticed for over two decades. This patch corrects the error by displaying the texture correctly as proper transparent smoke. It does not add any new art; the texture has been inside the ROM all along.
And here's how the smoke looks in the final game (on the left), and next to it (on the right) is what it looks after the one-line code fix has been applied.
Could you see Nintendo applying this "fix" in a future release of Super Mario 64? Which effect do you like more? Share your thoughts below.
[source polygon.com]
Comments 33
As a student, I absolutely sympathise with that person who made such a minuscule error. Oh the hours I’ve wasted wondering what causes a seg fault or even just a really stupid bug. It’s always just that one bloody line.
As a web developer, I once spent 6 hours in PHP poring over a custom CMS I was building because it wouldn't display properly, all due to a single misplaced semicolon.
Also this sounds remarkably similar to how a mistyped function call caused all of the enemies in Alien: Colonial Marines to walk mindlessly into walls instead of being actually intelligent and deadly.
In the future, the human race will not be destroyed by a meteor or climate change, but by an army of robots thrown into a murderous rage by a typo in a single line of code.
I actually think it looks better on the left in these images. Maybe the programmer realised the mistake but decided to leave it in as he preferred it.
Yeah I kinda like the original look better.
The original smoke looks more acrid and noxious... I actually prefer it! But it is amazing how little things like this are discovered so many years later.
@PeterAndCompany And this is why proper IDEs with built in syntax error detectors are brilliant. I once spent a whole day of frustration before I realised I used the British spelling of ‘centre’ instead of ‘center’ 😂😂😂
...as good as that looks, I think I prefer particle smoke in motion over "the same cloud again and again." Like, same exact cloud...what is this, Super Mario Bros. overworld? Lol
The original smoke looks better...
Never realized this was a mistake,was that fixed in the DS version?
People who never worked with code will think Nintendo is lazy or inept for failing to fix one line of code and leaving the “broken” smoke in the game. But yeah, when you have hundreds of millions of lines of code, even with a decent debugger sometimes finding the one broken line is like searching for a needle in a haystack. It may seem simple if you know what’s broken (the smoke), but that’s never necessarily true and I can see it being enough of a headache that after so many hours of the programmers trying to fix that bug, the guys in charge probably sighed in frustration and said, “whatever, at this point we could do a lot more with this wasted time and nobody will probably really notice right now anyways”.
Still, I’m sure some programmer somewhere is reading that Tweet and beating themselves up over how obvious the broken line was in retrospect. (Or maybe not, sometimes it takes mental gymnastics to figure out where the broken line is hiding.)
It's small tweaks like this that get patched out under "various other bug fixes" at the bottom of a list of patch notes. Back in the 90s things like that couldn't happen.
@nessisonett Oh, definitely! Unfortunately I'm mostly self-taught and my first years of experience were just in using plain text editors to hand-type code (back in the mid 90's, through the days of Geocities), so old habits definitely die hard. I always forget those tools are available, lol.
@graysoncharles nah, I'm with you. Fixed smoke looks like smoke, while the original looks like Mario has diarrhea problems.
I wonder if maybe the dust Mario kicks up when he skids in 64 is also similarly in the wrong format? I only noticed with the Ultra HDMI mod but the dust does look a bit broken up like the original smoke texture above rather than being transparent.
I wasn't sure I liked the new smoke, but I watched a video showing this on YouTube and the fixed smoke looks much better in motion.
@ShadJV That even guessing the programmers and team even knew there was a bug. The wrong smoke looks okay if you don't know any better, I can imagine both testers and team members not involved with the effect failing to realize there was a problem and therefore never reporting it.
If that was the case I really feel bad for the artist and programmer that made this effect just to play the final released game and see what happened. It must be so annoying, frustrating beyond believe.
@Isaix Different particles. Thanks for giving me an excuse to burn Mario's backside.
@Kriven
@BionicDodo Interesting - I think the original looks way better in motion. Horses for courses.
@andykara2003 To me the original looks like a load of small pieces of charcoal are falling out of the back of him! The 'fixed' version doesn't look great either (too much like bubbles), but then this is the N64.
Left one looks better to me . Right one looks like a crap comic book with too much smoke. It is more likely the right one was used originally then someone at Nintendo pointed out how over the top it looks and the left one was created to tone it down.
What they really wanted was some transparency to the smoke hence why the original has holes, not a thick black clot like he has been up a chimney.
the pixel smoke looked better, fix wasnt needed.
@PeterAndCompany so thats how skynet happened .. now can you also backspace delete any threats after t2 lol
Is this definitely broken? Because from my experience sometimes people create things in awkward ways. And it will look broken from someone who isn't in the mind of the coder. But they very well could have deliberately ****ed it for a different effect
I've been programming for 18 years. This should have been spotted and quickly fixed at the time of development. The result is exactly what would happen when using the incorrect texture. Either way though, the bug result still showed what needed to be showed.
@FargusPelagius totally agree, I think the original programmer knew exactly what he was doing .
Can it also be fixed with a GameShark?
@PeterAndCompany as a fellow web developer, I feel your pain. Sometimes days of work lost over a single character. It makes for a large amount of coffee consumption.
@BakaKnight Could of easily decided not to use it in the end, there's a few Mario games like this with extra frames of animation but get left unused
so, does this mean that Super Mario 64 will be coming to the Nintendo switch? (with the bug fix included) maybe Nintendo will fix a few other bugs in the game as well.
either way, to me it doesn't matter which version of the smoke is being used when playing the game on the N64. it took them 20+ years for people to notice, so it may not have been a mistake.
if Nintendo thinks its a bug than they may just be kind to use and update the Wii U virtual console version of the game.
The "bugged" smoke looks better to me, the other one is too cartoony. But I also think the difference doesn't really matter when viewed in a 20 inch CRT at the time, specially given how quickly Mario moves in that state.
Without the complete line(s) of code I would say the RGBA works better with the N64 GPU and there is less risk of buffer overload. This would have been tested before launch so I am confident they intended the code to run in with the RGBA texture channel.
Show Comments
Leave A Comment
Hold on there, you need to login to post a comment...