Not only is this complicated information spoken in an easy-to-understand way, it's *presented* in a concise and pleasant manner, too. Seriously, I can only imagine how much work this took! I hope you reach many, many more subscribers soon!
@@andreamitchell4758 Decemical is from 0 to 9. After - it will be 10. For Hex - from 0 to F (Where ABCDEF - 11,12,13,14,15,16), and after, it also turn into 10. You just count like normaly but until 16 for every tenth. So, for example if you try convert 2C: 1) separate is first - 20 and 0C 2) then convert - hex 20 = hex 10 and hex 10 = 16+16 = 32 ; hex 0C = 13 3) in summary 32+13 = 45 in dec Or you can just use calculator on PC and convert it easly. What is important that Hex can provide more space, especialy when you separate two numbers of one bit for some purpose
I had a strange bugged cartridge of this. The game was unwinnable because the hammer would not spawn. My brother and I had no idea why we couldn't beat the game. We didn't even know what was missing. After bashing our heads against it for years, we'd experimented by creating our saves with various Zelda character names to see if there was something like a second quest, like the infamous skip in Zelda 1. My brother for some reason played through a game titled "IMPA" and ... lo & behold, the hammer spawned in Death Mountain! Further experimenting showed that just starting a character with the first letter in the name being "I" was enough to make the game work. Bizarre.
I love stories like this. Alongside the mystery presented in this video as the "F Attack". I've found myself run into similar situations, notably weird warping in Zelda 3.
That "level up softlock" is a _hardlock:_ a state at which the game has crashed or locked up and normal gameplay is unable to continue. A softlock is a state at which gameplay continues normally but the player is "stuck" and unable to progress due to an error in level design or data. For example, being stuck inside a solid object after warping from the fairy glitch would be a softlock.
Pedantically, a softlock is any state in which the CPU is still executing instructions but the game doesn't actually go. What people often call a "softlock" is actually just an unwinnable state. The code is still executing, the game is still running, you can still PLAY it, but victory is now impossible. In order to be a true hardlock, the CPU MUST halt ENTIRELY. (Or in more modern computing, the program must actually crash) Not just from the user's PoV.
Dude, can I just gush for a second here? I'm a game designer, and Zelda II is one of my all-time favorite games, so I can barely find the words to describe how excited I am to get this kind of super in-depth analysis of its inner workings. Please do more on this game! Now if you'll excuse me, I have a Patreon page to go visit.
Berserk Studio makes games with many nods to Zelda 2's mechanics, especially one of their earliest pieces Hero's Arms which feels like a "what if Zelda 3 had Zelda 2's mechanics on top of that?" experiment, and their latest game Infernax which feels like a Zelda 2 style game packaged into a horror game, also nodding at Dark Souls (because who doesn't at this point). You pretty much can't unsee the influence Zelda 2 had on either game once you play them for any length of time.
Zelda 2 is a brilliant game that was sadly marred by some really bad decisions. Things like how you lose all your EXP on game over, you can’t save whenever you want, no healing outside of towns and the Life spell, and to even get Life, you need to do a pixel hunt with no indication that you’re supposed to press A at a particular table in a particular house. But a lot of those problems are palatable now with save states and internet guides. Yeah, I’d be totally down for more Zelda 2 videos. Fantastic game.
This one was particularly great. I was planning on having it on in the background while I did some development, but I got sucked, especially near the end.
My wife always asks me, "Why do you still like these old games?" My response is, yeah, they are the games I grew up on. But I love watching NES games cause I slightly understand 6502. I love watching the graphics to see how things were done and music. I watch NES games with a bit of 6502 understanding and I love it.
@iVirtualPlays I like them because it shows just how much optimization and thought was put into every frame. Not like today where COD takes up 250 GIGABYTES(!) of drive space. They did so much with so little that it's absolutely astounding.
@@clblanchard08 I couldnt agree more with you 👍👍👍👍 it is amazing that some NES games are STILL being played and enjoyed over 30 years after the fact. Gems that were made with not even a fraction of the size or power or ability of today's games. Yet ppl stil love them. I mean, I was literally playing Zelda II last weekend and had a BLAST!
I know what you mean. I showed Rygar to a friend explaining that true parallax scrolling is impossible on NES, and demonstrated that the sun in Rygar is not on the background layer since it flickers when you jump in front of it
We had the same attack glitch, but ours had a right facing arrow for the value. It happened on my younger sister’s save file. We called the Nintendo hotline and asked them about it. The counselor said “Did you call earlier today because you are the second person to call about this.” Thought it was a code my sister stumbled upon. She had it happen very early in the game. My mom and I were much farther along in our game, but had so much trouble with the Thunderbird boss we ended up using her file to beat the Thunderbird. Like you said, Shadow Link still took the regular amount of hits. Great series and video.
@@DisplacedGamers Thanks for replying! Did you ever find any reference of the attack increase being enabled by some type of button combination in the game code, or was it merely a glitch/bug?
I did not understand any of that, and I loved every second. How fascinating, tearing the code apart. Everyone should be doing that. Keep doing what you're doing, man, I loved this video.
The YT algorithm suggested your video on 240p, I really liked your presentation style so I watched every other video you had, then I looked at your sub count and definitely had a wtf moment. You have knowledge and insight that most other gaming channels don't have and your writing is straight to the point while also being entertaining. Anyways, keep up the great work man I'm looking forward to seeing what else you come up with for us!
I wish it was 240p60 or 360p60 or 480p60, lot of retro games uses every-other frame drawing for transparency effects, watching it in 30fps absolutely obliterate the intended visual effects.
@@dmas7749 The rendering isn't the issue. You have to transfer the video in a certain resolution. Of course it doesn't make sense to keep like 20 different versions of the same video content. It already has several different ones to choose from. Next thing is YT can't increase the framerate if the source material has a lower framerate. Well it can but it would be rather pointless and wouldn't increase the quality. btw: most streaming platforms have been asked to lower the default resolution as the heavy increase due to Covid has already caused some high peaks in the internet infrastructure. Since the internet is important for all sorts of fields the entertainment sector isn't that important. However you can still select a different resolution manually. Though it helps with the average case. See www2.telegeography.com/network-impact
@@Bunny99s i'm not asking to make the video render in higher quality than it's uploaded, you can't create HD out of a low-quality vid, that's just stupid but i still think it wouldn't hurt to let us watch a 720p60 vid in 240p60 if we so desire
Wow. Okay. I'm going to be honest I came here for some potential "did you know?" stuff, and walked out with a whole new level of understanding of how coding works. I'm impressed that I both enjoyed this video learning something new, AND could actually follow along with what was being taught. Props!
This is one of my favorite video games ever since I was a child and got the NES package when I was in grade school in the 80's. In fact my first time ever on Twitch I remember searching for only the three following games: SMB2, MTPO and Zelda II. Thanks for making this!
Holy cow, wow, I got the attack value bug too as a kid, except "A" instead of "F". In the same save, the raft was missing from the normal place you get it (but also not in my inventory) so I couldn't progress the game. It's odd that there are many reports of attack value and missing items. Never experienced it in any other battery-backed NES game. Feel like there must be some additional factor here to explain why it happens.
As someone who doesn’t understand a lot of code (and most certainly not assembly), you make these videos extremely easy to understand. I’m definitely fascinated by them.
Man, it's always interesting looking into this kind of old school pre-OOC style of programming in games. It's so different from how things are handled these days with engines, libraries, APIs, etc.
YT went ahead and recommended me this video out of the blue and looking back at your videos it seems this "Behind the Code" is a new thing for you and I have to say I love it. I watch a lot of channels that do code explanations of older games. Channels like _Retro Game Mechanics Explained_ and _Gamehut._ I love this stuff. Can't get enough.
@@nezatrebovan That's strange! I'm almost tempted to pull out my NES and Zelda 2 cart to take a picture, provided the battery is still good. But I definitely got J attack power. Maybe the graphic of J corresponds to 13 in the game or something.
This deserves more views. Hexadecimal is very intimidating to people unfamiliar with it. Yet you present it like it's a piece of cake. The video is well thought out and put together. And imagine how helpful this'll be to people who want to make tools relating to Zelda 2.
Oh the page and the "exiting from the top with an elevator is interesting, because if you play this on an emulator that lets you do Left+Right or up+down inputs, you can do things like pressing L+R to fly off a high speed, which will misalign the pages meaning you can see them loading in. Holding up+down on the elevator will also make it go up through the walls, letting you exit at the top of the palace entrance
I'm taking a hardware course in college right now and these videos have not only been great for giving me context to our study material but also learning how my favourite games from childhood work under the hood. Retro hardware in particular I have always found very fascinating due to its limitations and the amazing things programmers of the time were able to achieve despite that. Thanks for your analysis!
My Zelda 2 stats glitched out back in the day also! On one game save file, the attack went to some number above 8. Same result as in your video. On another game save, ALL 3 stats glitched. Although the attack was super strong, life was extremely weak, and the points (mana) needed to cast spells were all different amounts. It never repeated ever again and this was well before the Game Genie.
i've been *obsessed* with this game since it was released. i always love learning more, and seemingly the only things left are material such as this. thank you!!
I've just recently gotten into learning 6502, and videos like these fascinate the hell out of me. Keep putting more videos like these out. I will watch EVERY ONE.
I just wanted to say thank you for this video and the others on your channel, although I hope you do more Behind the Codes in the very near future! I have less than rudimentary understanding of programming and code but I feel like your explanations are clear and concise enough for even the beginneriest of the beginners. I spent a lot of time going through your videos and they're all awesome. Thank you so much!
As someone that has recently begun working on games, I wish I saw this video earlier. Many of these practices are still relevant now and seeing low level the attributes of objects is very useful for ideas for organization
They hate because the game is hard and has no invincibility damage. This also includes Metroid. Imagine if they brought this back with no invincibility damage? That would be interesting.
@@EnchantedSmellyWolf As somebody that grew up during the release of this I can assure you that difficulty wasn't the biggest concern with the game. The major issues people had were that the series went from pretty much defining "free roam" to making your progression more linear. The grand feel of exploration that made Zelda so amazing, was greatly reduced. It was a big shock to those of us that were eagerly awaiting the sequel to a game that had broken so many barriers only to find that they dialed back most of what made it special in the first place. This second installment sold 2m less units compared to the first, and 3m less than the game that followed. A game that restored the large, accessible overworld that everybody loved.
I absolutely love Zelda 2 for what it was for it’s time, this is coming from a person who was born in 1995 and first played it on the GameCube Collectors Edition. This game gave Link more combat options like an Up Thrust and Downward Stab, Magic Meter and gave us Dark Link. I’d love another take at a 2D Sidescrolling Zelda but don’t get me wrong I love Link to the Past, Ocarina of Time and Wind Waker.
Yes only is this complicated information spoken in an easy-to-understand way, it's presented in a concise and pleasant manner, too. Seriously, I can only imagine how much work this took! I hope you reach many, many more subscribers soon!
i recently started developing games for NES and i was a little stuck by creating an object management system and generators. now i notice that zelda 2 handles objects exactly the same way like i do! this is big relief!
Brilliant work. Super fascinating explanation to me as a programmer, and as a speedrunner of Zelda 2. I've imagined how some of these things work, like the fairy feet glitch, and to see other well known glitches explained is super interesting. Thank you for showing love to my favorite game of all time. Absolutely loved this video.
I cannot applaud enough both the effort it takes to work your way through this (i may understand it, but hex gives me headaches) and to also take the time to demonstrate it as well as explain. that massively helps me understand, but also makes it take a lot longer. really appreciate the extra work. keep it up :)
Software developer here. Zelda 2 being one of my all time favourite games (I still play it to this day), I just had to subscribe. Please do more on this game! :)
Great video! Mesen's debugging tools are so dang great, makes working with other systems a complete pain. :) Only thing it's really missing is a TAS editor.
The scrolling reminds me a lot of the Scratch side scroller tutorial. It's funny to see techniques stick around. "If it ain't broke, don't fix it" seems to have been a programming rule for a long time
Nice video - the level of detail you go into on memory locations is just the right amount to be interesting but not overkill. I recently built a NES FPGA (called Whirlwind), and though I knew 6502 beforehand, I learned a ton (obviously by necessity) about the NES PPU/APU/mappers/etc. And while I dove deep into debugging SMB while testing things out to troubleshoot hardware issues, I didn't jump into the source of many others games, so it's really cool to get a nice walkthrough of the mechanics behind many areas in CPU RAM in Zelda 2. Ironically enough, one of the few MMC1 games that didn't work correctly on my FPGA was Zelda 2, so this makes me want to dive back into debugging it to see why. Off to watch your other videos!
This is me (Toni) again - I just noticed your Jill of the Jungle video too! Super cool - I'm a big 90s shareware fan having grown up on BBSes, and I got into reverse engineering real mode DOS stuff a little while back. Learned a ton while RE Lemmings and Kings Quest IV. Super cool channel, nice job again!
Great video. Subscribed! That section where you talk about the fairy spell deactivation and active spells list is really fascinating to me because I am just now studying stuff like that in C programming.
Your story of F attack reminds me of a playthrough I did as a kid of Dragon Warrior, and I swear I somehow started the game with the Healmore magic. Made things a lot easier to get through for sure.
I also confirm the high level stat glitch. I have seen it Life, Sword(AP) and Magic(MP) as well. It has happened with both the cartirdge and rom files. But what is more intersting is the wonky warp to the alternate maze world that happens when you use the Fairy Spell while off screen.
Looks like the algorithm loves this video. And so did I! You just gained a new subscriber. This was fascinating. I figure I got this because I watch Retro Game Mechanics Explained
Super in-depth and this is helping me understand coding in an informational and passive way. Also, not sure if anyone has told you this but your cadence reminds me of the Lockpicking Lawyer. Especially with all this talk about soft-locking LOL. Anyways, great content
These are great because I did a little bit of assembly programming in the 80s but now I'm understanding it so much better. Especially when I can see the live code switching values as the game executes. I never thought of it that way. I was used to interpreted languages like BASIC, which are so much slower than this. With this, you can see the memory registers changing every 1/60 second (or is it 1/30? still WAY faster than BASIC!)
Very cool to see this. I gotta say, as a fellow hacker/modder, it's kind of nice seeing debugging of a game with only a few KB in size. Modern games are so big, I get lost sometimes...
Great once again. I have a limited knowledge of programming but I can more or less follow what you are saying and how the values work so I thank you for making the information you present really accessible.
I think the attack value bug can happen when you switch save games without powering down the console. Similar to the exploit where you take a high level character and beat a palace (since you always get XP to level you up) then pause, hit up and A on controller 2, save the game, then start a new game or load a lower-level character and all the XP that should've been awarded to the other character gets awarded to your new guy, making it possible to use one late-game file to boost another early-game file. Basically, I think that something that was supposed to level up one character gets applied to another character, letting it go beyond the normal 8.
Thanks for doing the video. I've been meaning to do a video on almost the exact thing. About 4~5 years ago, as I was poking around the ram, I found the actor memory slots. I was toying with them and making all of them the value of a fairy. At first, it was fun. All the mobs became fairies. Then I ran across a locked door, that became a fairy. Yay! Then I got to be a boss and that became a fairy. Instant win! Then I got to the statue where you need to place the gem to finish the palace and... that became a fairy... Mistakes were made. Just to clarify, the graphic for the statue is still there, but it seems the actor for the gem itself (I assume the gem floating upwards and set in place) is/was invisible until you actually reach the position.
Unbelieveable, I never realized originally learning programming and assembly on a C64 that it would have directly translated to so many other applications at the time. I later learned 8086 assembly but hearing LDA, A, X and Y registers brought back so many memories! And to think today I write code in C# that's probably thousands of lines of assembly, executing perfectly in a multi-tasking, multi-threaded environment. UN real where we came from back then!
Back in junior high...1989 or so...I used to leave Link at the edge of the battle screen with a rubber band wrapped around the controller so he continuously attacked monsters while I was at school. Old school macroing to level up ;)
Programmable joypads on the SNES were great too, program a back and forth action with lots of “A” button presses, you’d have your Final Fantasy team levelled up in no time.
I've watched a lot of videos on these subjects, and I think what happened is the memory address for attack power got overwritten by code meant for something else in the game, because it either overflowed or was loaded in unexpectedly. This is a neat-ass video. I appreciate how you say like 'hex 80' to make it clear it's not decimal 80, but it makes me wonder why we never came up with more elegant terminology.. I know I tried to push FF being 'efty-eff'
Things that fascinate me about this game (and there are many...some that were in this video that I never knew I needed to know about) The XP penalty in the game for dying and getting a game over was that it set the players XP back to zero and forced the player to play from the start of the game and then walk all the way back to whereever they were where they died (which nowadays is akin to say a "Souls" game). I have wondered many times if they programmed the XP in this game to act more like a "score" vs. experience points but that might not be something that could be looked at In relation to the XP gain....what is the point in the code that: A: Gives the player a magic jar B: Gives the player a treasure bag C: Just the XP for the kill Moreover would there be a way to go into the editor to force the game to give the player the XP for killing an enemy that gives you just the magic jar (because if my memory serves it does not do that in the game as is) Also if I remember correctly in the early game if you kill a Goblin (but not in the forest) you were not awarded the XP for it...I know these things are about the XP in the game but its fascinated me what caused the code to not give XP at certain points in the game and also the idea that it actually resets back to zero...these things fascinate me for sure I know I said this on twitter but I just discovered your channel recently and its actually blown my mind with how games work...and maybe DON'T at times and while I myself am not a game programmer or designer seeing the insides of a game in some way fascinates me and I hope you continue with content like this in the future Take care
You deserve way more subscribers man. Your content is amazing! Absolutely love the specifics on the source code even though I understand very little of programming, keep it up!
I'm not a programmer and understood like 1% of it, but I was fascinated and saw the whole video! I like your style. Clear, well produced, and straight to the point! Subbed.
Many people write off Zelda II bc it was frustrating to grind for HP, but the RPG elements make it my favorite. Discovering secrets in Zelda II was pure magic.
Really, really enjoying your channel, bro! As one currently learning 6502/65816 assembly, your videos have been incredibly helpful. Can't wait for the next one :-)
Some more questions about the Fairy Warp glitch: Why does doing it in a town cause you to be stuck in the ocean when you leave that town? As a more general question, if the special exit value of 3F returns you to the overworld from where you entered the scene, then how do scenes with 2 different overworld tile destinations (one if you leave on the left, one if you leave on the right) work? Thinking of scenes like long bridges where you have to actually platform your way across the scene to get to the other side of the bridge in the overworld.
the lag in the music is somehow very nostalgic
The lag in dungeons in Zelda 1 gets me right in the feels, too
It oddly gives the world that much more of a bigger, epic feel. Like the NES is struggling to handle just how vast it is.
It was always amusing to me as a young one, I guess it’s just my sense of humor.
@@psmstr Well, that's kinda what was happening.
I agree.
Not only is this complicated information spoken in an easy-to-understand way, it's *presented* in a concise and pleasant manner, too.
Seriously, I can only imagine how much work this took!
I hope you reach many, many more subscribers soon!
still looks like random gibberish to me, i will never understand hex
@@andreamitchell4758 Hex isn’t that bad when you’re working with 16-bit addresses or less
@@poopoo-dk4hu all i know is that it has to do with the number 16 , it's all the letters that confuse me
@@andreamitchell4758 Decemical is from 0 to 9. After - it will be 10. For Hex - from 0 to F (Where ABCDEF - 11,12,13,14,15,16), and after, it also turn into 10.
You just count like normaly but until 16 for every tenth.
So, for example if you try convert 2C:
1) separate is first - 20 and 0C
2) then convert - hex 20 = hex 10 and hex 10 = 16+16 = 32 ; hex 0C = 13
3) in summary 32+13 = 45 in dec
Or you can just use calculator on PC and convert it easly.
What is important that Hex can provide more space, especialy when you separate two numbers of one bit for some purpose
@@Jackrost01 I remember I read a post on NESAGE a few years ago on binary and hex and it clarified everything
I had a strange bugged cartridge of this. The game was unwinnable because the hammer would not spawn. My brother and I had no idea why we couldn't beat the game. We didn't even know what was missing.
After bashing our heads against it for years, we'd experimented by creating our saves with various Zelda character names to see if there was something like a second quest, like the infamous skip in Zelda 1. My brother for some reason played through a game titled "IMPA" and ... lo & behold, the hammer spawned in Death Mountain! Further experimenting showed that just starting a character with the first letter in the name being "I" was enough to make the game work. Bizarre.
I love stories like this. Alongside the mystery presented in this video as the "F Attack". I've found myself run into similar situations, notably weird warping in Zelda 3.
When i was a kid i couldnt get the magic key.
Maybe pulling out and reseating the CMOS battery in the cartridge could possibly reset & resolve this bug 🐜
@@ryanglaser5336 interesting idea!
My hypothesis for bugs like this is something like a stuck address line or maybe a defect that causes the game to read from the wrong memory location
That "level up softlock" is a _hardlock:_ a state at which the game has crashed or locked up and normal gameplay is unable to continue. A softlock is a state at which gameplay continues normally but the player is "stuck" and unable to progress due to an error in level design or data. For example, being stuck inside a solid object after warping from the fairy glitch would be a softlock.
Pedantically, a softlock is any state in which the CPU is still executing instructions but the game doesn't actually go. What people often call a "softlock" is actually just an unwinnable state. The code is still executing, the game is still running, you can still PLAY it, but victory is now impossible. In order to be a true hardlock, the CPU MUST halt ENTIRELY. (Or in more modern computing, the program must actually crash) Not just from the user's PoV.
Dude, can I just gush for a second here? I'm a game designer, and Zelda II is one of my all-time favorite games, so I can barely find the words to describe how excited I am to get this kind of super in-depth analysis of its inner workings. Please do more on this game! Now if you'll excuse me, I have a Patreon page to go visit.
Wow! Thanks, Doug! I may return to it in the future at some point.
I second this, best Zelda 2 video on youtube by far.
Berserk Studio makes games with many nods to Zelda 2's mechanics, especially one of their earliest pieces Hero's Arms which feels like a "what if Zelda 3 had Zelda 2's mechanics on top of that?" experiment, and their latest game Infernax which feels like a Zelda 2 style game packaged into a horror game, also nodding at Dark Souls (because who doesn't at this point). You pretty much can't unsee the influence Zelda 2 had on either game once you play them for any length of time.
@@DoomRater Gunmetal Arcadia Zero is also a game that gets all its influence from Zelda II, it's good.
Zelda 2 is a brilliant game that was sadly marred by some really bad decisions. Things like how you lose all your EXP on game over, you can’t save whenever you want, no healing outside of towns and the Life spell, and to even get Life, you need to do a pixel hunt with no indication that you’re supposed to press A at a particular table in a particular house. But a lot of those problems are palatable now with save states and internet guides.
Yeah, I’d be totally down for more Zelda 2 videos. Fantastic game.
Every vid you put out continues to fascinate. Great job.
This one was particularly great. I was planning on having it on in the background while I did some development, but I got sucked, especially near the end.
Yea, this blew my mind. I would have loved to know this as a kid.
Whenever I see Kenny's avatar icon, I see Trump
Kenny love your Anime Channel... Nice to see you here 😉👍🏻
I cant believe I just found this channel today? This is amazing! Subbed 👍
28:07 "Error II: The Adventures of Bagu"
My editor is famous!! I'm honored.
Great explanations and animations.
My wife always asks me, "Why do you still like these old games?" My response is, yeah, they are the games I grew up on. But I love watching NES games cause I slightly understand 6502. I love watching the graphics to see how things were done and music. I watch NES games with a bit of 6502 understanding and I love it.
@iVirtualPlays I like them because it shows just how much optimization and thought was put into every frame. Not like today where COD takes up 250 GIGABYTES(!) of drive space. They did so much with so little that it's absolutely astounding.
@@clblanchard08 I couldnt agree more with you 👍👍👍👍 it is amazing that some NES games are STILL being played and enjoyed over 30 years after the fact. Gems that were made with not even a fraction of the size or power or ability of today's games. Yet ppl stil love them. I mean, I was literally playing Zelda II last weekend and had a BLAST!
I know what you mean. I showed Rygar to a friend explaining that true parallax scrolling is impossible on NES, and demonstrated that the sun in Rygar is not on the background layer since it flickers when you jump in front of it
We had the same attack glitch, but ours had a right facing arrow for the value. It happened on my younger sister’s save file. We called the Nintendo hotline and asked them about it. The counselor said “Did you call earlier today because you are the second person to call about this.”
Thought it was a code my sister stumbled upon. She had it happen very early in the game. My mom and I were much farther along in our game, but had so much trouble with the Thunderbird boss we ended up using her file to beat the Thunderbird. Like you said, Shadow Link still took the regular amount of hits. Great series and video.
Wow! I love hearing about this happening to others. Thanks for sharing, Tom!
@@DisplacedGamers Thanks for replying! Did you ever find any reference of the attack increase being enabled by some type of button combination in the game code, or was it merely a glitch/bug?
I'm a nascent 6502 programmer and I really appreciate your content. It's incredibly informative and easy to follow. Thank you for what you're doing.
I did not understand any of that, and I loved every second.
How fascinating, tearing the code apart. Everyone should be doing that.
Keep doing what you're doing, man, I loved this video.
This is incredible and exactly what we need more of on UA-cam. Fantastic editing and very digestible but thorough descriptions.
Thanks!
The YT algorithm suggested your video on 240p, I really liked your presentation style so I watched every other video you had, then I looked at your sub count and definitely had a wtf moment. You have knowledge and insight that most other gaming channels don't have and your writing is straight to the point while also being entertaining. Anyways, keep up the great work man I'm looking forward to seeing what else you come up with for us!
Thanks, Tony! Comments like yours really mean a lot!
I wish it was 240p60 or 360p60 or 480p60, lot of retro games uses every-other frame drawing for transparency effects, watching it in 30fps absolutely obliterate the intended visual effects.
@@rashidisw i don't know why youtube doesn't have an option to let us render in a low res high framerate, it is beyond stupid
@@dmas7749 The rendering isn't the issue. You have to transfer the video in a certain resolution. Of course it doesn't make sense to keep like 20 different versions of the same video content. It already has several different ones to choose from. Next thing is YT can't increase the framerate if the source material has a lower framerate. Well it can but it would be rather pointless and wouldn't increase the quality.
btw: most streaming platforms have been asked to lower the default resolution as the heavy increase due to Covid has already caused some high peaks in the internet infrastructure. Since the internet is important for all sorts of fields the entertainment sector isn't that important. However you can still select a different resolution manually. Though it helps with the average case. See www2.telegeography.com/network-impact
@@Bunny99s i'm not asking to make the video render in higher quality than it's uploaded, you can't create HD out of a low-quality vid, that's just stupid
but i still think it wouldn't hurt to let us watch a 720p60 vid in 240p60 if we so desire
Wow. Okay. I'm going to be honest I came here for some potential "did you know?" stuff, and walked out with a whole new level of understanding of how coding works. I'm impressed that I both enjoyed this video learning something new, AND could actually follow along with what was being taught. Props!
25:00 - "Elevator Action"
Tee hee.
This is one of my favorite video games ever since I was a child and got the NES package when I was in grade school in the 80's. In fact my first time ever on Twitch I remember searching for only the three following games: SMB2, MTPO and Zelda II. Thanks for making this!
Holy cow, wow, I got the attack value bug too as a kid, except "A" instead of "F". In the same save, the raft was missing from the normal place you get it (but also not in my inventory) so I couldn't progress the game.
It's odd that there are many reports of attack value and missing items. Never experienced it in any other battery-backed NES game. Feel like there must be some additional factor here to explain why it happens.
As someone who doesn’t understand a lot of code (and most certainly not assembly), you make these videos extremely easy to understand. I’m definitely fascinated by them.
Yeah I wish I had this ages ago when I was starting out
Man, it's always interesting looking into this kind of old school pre-OOC style of programming in games. It's so different from how things are handled these days with engines, libraries, APIs, etc.
YT went ahead and recommended me this video out of the blue and looking back at your videos it seems this "Behind the Code" is a new thing for you and I have to say I love it. I watch a lot of channels that do code explanations of older games. Channels like _Retro Game Mechanics Explained_ and _Gamehut._ I love this stuff. Can't get enough.
Definitely do more. It's truly fascinating the way they coded these old games. And your explanations are fantastic.
It’s called F to pay respects to your ennemies before they die
**Cue Zelda Puzzle Solved Jingle and Treasure Get Jingle**
F in chat and in code
I got J attack power as a kid.
@@SeppelSquirrel This is impossible. It is a hexadecimal value. It goes through 0 to F (0 - 15) and then reverts back to zero.
@@nezatrebovan That's strange! I'm almost tempted to pull out my NES and Zelda 2 cart to take a picture, provided the battery is still good. But I definitely got J attack power. Maybe the graphic of J corresponds to 13 in the game or something.
This deserves more views. Hexadecimal is very intimidating to people unfamiliar with it. Yet you present it like it's a piece of cake. The video is well thought out and put together. And imagine how helpful this'll be to people who want to make tools relating to Zelda 2.
Oh the page and the "exiting from the top with an elevator is interesting, because if you play this on an emulator that lets you do Left+Right or up+down inputs, you can do things like pressing L+R to fly off a high speed, which will misalign the pages meaning you can see them loading in.
Holding up+down on the elevator will also make it go up through the walls, letting you exit at the top of the palace entrance
Oh man, I've been looking forward to this video for ages.
Nice. I seem to remember getting attack level 9 once.
Nice!
I'm taking a hardware course in college right now and these videos have not only been great for giving me context to our study material but also learning how my favourite games from childhood work under the hood. Retro hardware in particular I have always found very fascinating due to its limitations and the amazing things programmers of the time were able to achieve despite that.
Thanks for your analysis!
My Zelda 2 stats glitched out back in the day also! On one game save file, the attack went to some number above 8. Same result as in your video. On another game save, ALL 3 stats glitched. Although the attack was super strong, life was extremely weak, and the points (mana) needed to cast spells were all different amounts. It never repeated ever again and this was well before the Game Genie.
I like this series. Looking forward to additions to it in the future
This Channel is simply awesome. Thank you so much for your quality content!
Thank you. This helped me code my new Zelda 2 Randomizer.
i've been *obsessed* with this game since it was released. i always love learning more, and seemingly the only things left are material such as this. thank you!!
I've just recently gotten into learning 6502, and videos like these fascinate the hell out of me. Keep putting more videos like these out. I will watch EVERY ONE.
I've been looking for this for at least 15 years! I got "A"-sword on a save very long ago and none of my friends believed it was possible.
I just wanted to say thank you for this video and the others on your channel, although I hope you do more Behind the Codes in the very near future! I have less than rudimentary understanding of programming and code but I feel like your explanations are clear and concise enough for even the beginneriest of the beginners. I spent a lot of time going through your videos and they're all awesome. Thank you so much!
I would love to see more on this game! The way you lay out the code and describe the changes is awesome. Keep these videos coming!
Fascinating stuff, Zelda II is still one of my absolute favorite childhood NES games!
As someone that has recently begun working on games, I wish I saw this video earlier. Many of these practices are still relevant now and seeing low level the attributes of objects is very useful for ideas for organization
Always loved Zelda II despite the weird amount of hate it gets - this was a fascinating look behind the scenes!
They hate because the game is hard and has no invincibility damage. This also includes Metroid. Imagine if they brought this back with no invincibility damage? That would be interesting.
@@EnchantedSmellyWolf As somebody that grew up during the release of this I can assure you that difficulty wasn't the biggest concern with the game. The major issues people had were that the series went from pretty much defining "free roam" to making your progression more linear. The grand feel of exploration that made Zelda so amazing, was greatly reduced.
It was a big shock to those of us that were eagerly awaiting the sequel to a game that had broken so many barriers only to find that they dialed back most of what made it special in the first place.
This second installment sold 2m less units compared to the first, and 3m less than the game that followed. A game that restored the large, accessible overworld that everybody loved.
I absolutely love Zelda 2 for what it was for it’s time, this is coming from a person who was born in 1995 and first played it on the GameCube Collectors Edition. This game gave Link more combat options like an Up Thrust and Downward Stab, Magic Meter and gave us Dark Link. I’d love another take at a 2D Sidescrolling Zelda but don’t get me wrong I love Link to the Past, Ocarina of Time and Wind Waker.
love that at the end you just fuck around in the game makes the outro more fun to watch
Yes only is this complicated information spoken in an easy-to-understand way, it's presented in a concise and pleasant manner, too.
Seriously, I can only imagine how much work this took!
I hope you reach many, many more subscribers soon!
i recently started developing games for NES and i was a little stuck by creating an object management system and generators. now i notice that zelda 2 handles objects exactly the same way like i do! this is big relief!
Yo I love seeing raw code/programming stuff of old games like this. Your channel is a godsend to me. Thanks for the great work
This is so fascinating! Watching the code change and how it effects the game, as well as the tricks used makes me appreciate NES era games even more!
Brilliant work. Super fascinating explanation to me as a programmer, and as a speedrunner of Zelda 2. I've imagined how some of these things work, like the fairy feet glitch, and to see other well known glitches explained is super interesting. Thank you for showing love to my favorite game of all time. Absolutely loved this video.
I cannot applaud enough both the effort it takes to work your way through this (i may understand it, but hex gives me headaches)
and to also take the time to demonstrate it as well as explain. that massively helps me understand, but also makes it take a lot longer. really appreciate the extra work. keep it up :)
14:00 song is "ON THE RUN" by the band WOLF AND RAVEN.
As a homebrew dev myself im loving your behind the code videos. I need more more more :) Awesome videos mate, looking forward to the next
Software developer here. Zelda 2 being one of my all time favourite games (I still play it to this day), I just had to subscribe. Please do more on this game! :)
The sound of slowdown sounds great. Very quaint
Great video! Mesen's debugging tools are so dang great, makes working with other systems a complete pain. :) Only thing it's really missing is a TAS editor.
The scrolling reminds me a lot of the Scratch side scroller tutorial.
It's funny to see techniques stick around. "If it ain't broke, don't fix it" seems to have been a programming rule for a long time
Nice video - the level of detail you go into on memory locations is just the right amount to be interesting but not overkill. I recently built a NES FPGA (called Whirlwind), and though I knew 6502 beforehand, I learned a ton (obviously by necessity) about the NES PPU/APU/mappers/etc. And while I dove deep into debugging SMB while testing things out to troubleshoot hardware issues, I didn't jump into the source of many others games, so it's really cool to get a nice walkthrough of the mechanics behind many areas in CPU RAM in Zelda 2. Ironically enough, one of the few MMC1 games that didn't work correctly on my FPGA was Zelda 2, so this makes me want to dive back into debugging it to see why. Off to watch your other videos!
This is me (Toni) again - I just noticed your Jill of the Jungle video too! Super cool - I'm a big 90s shareware fan having grown up on BBSes, and I got into reverse engineering real mode DOS stuff a little while back. Learned a ton while RE Lemmings and Kings Quest IV. Super cool channel, nice job again!
Great video. Subscribed!
That section where you talk about the fairy spell deactivation and active spells list is really fascinating to me because I am just now studying stuff like that in C programming.
Doing some research for a project and the overview of the fairy warp helped a ton. Thank you for this!
Your story of F attack reminds me of a playthrough I did as a kid of Dragon Warrior, and I swear I somehow started the game with the Healmore magic. Made things a lot easier to get through for sure.
If only everything that anyone ever needed to explain were explained this extremely clearly and well. Quality content.
Found your channel a few weeks ago. Great content, and now you've covered one of my favorite NES games! Thanks :D
I also confirm the high level stat glitch.
I have seen it Life, Sword(AP) and Magic(MP) as well.
It has happened with both the cartirdge and rom files.
But what is more intersting is the wonky warp to the alternate maze world that happens when you use the Fairy Spell while off screen.
Man reversing nes games is so much fun. I have google docs full of memory addresses and notes. It’s cool watching someone else’s reversing notes :D
You should post those somewhere, they’d be fascinating to read
This game was awesome. I remember drafting a crude grid on the back of a poster and trying to map locations of items.
I am so happy that I found this channel. Well done. I can't wait to see it grow.
Decades have passed and we're still in love with these games; fantastic video.
Looks like the algorithm loves this video. And so did I! You just gained a new subscriber. This was fascinating.
I figure I got this because I watch Retro Game Mechanics Explained
Love your " Behind the Code " videos. pls keep em up :D awesome to see how a game runs behind the scen :D
I love how much detail you went into. I expected something far less awesome. Subscribed!
Super in-depth and this is helping me understand coding in an informational and passive way. Also, not sure if anyone has told you this but your cadence reminds me of the Lockpicking Lawyer. Especially with all this talk about soft-locking LOL. Anyways, great content
No idea what you're talking about here but it was refreshing to see the same old classic games covered in a new way.
These are great because I did a little bit of assembly programming in the 80s but now I'm understanding it so much better. Especially when I can see the live code switching values as the game executes. I never thought of it that way. I was used to interpreted languages like BASIC, which are so much slower than this. With this, you can see the memory registers changing every 1/60 second (or is it 1/30? still WAY faster than BASIC!)
"F" is an appropriate number for that, you have to feel bad for the enemies not even a fighting chance.
Please more Zelda 2 videos! My favorite game of all time. I could watch this video on repeat (and sometimes do..)!
Very cool to see this. I gotta say, as a fellow hacker/modder, it's kind of nice seeing debugging of a game with only a few KB in size. Modern games are so big, I get lost sometimes...
Great once again. I have a limited knowledge of programming but I can more or less follow what you are saying and how the values work so I thank you for making the information you present really accessible.
I think the attack value bug can happen when you switch save games without powering down the console. Similar to the exploit where you take a high level character and beat a palace (since you always get XP to level you up) then pause, hit up and A on controller 2, save the game, then start a new game or load a lower-level character and all the XP that should've been awarded to the other character gets awarded to your new guy, making it possible to use one late-game file to boost another early-game file. Basically, I think that something that was supposed to level up one character gets applied to another character, letting it go beyond the normal 8.
Thanks for doing the video. I've been meaning to do a video on almost the exact thing. About 4~5 years ago, as I was poking around the ram, I found the actor memory slots. I was toying with them and making all of them the value of a fairy. At first, it was fun. All the mobs became fairies. Then I ran across a locked door, that became a fairy. Yay! Then I got to be a boss and that became a fairy. Instant win! Then I got to the statue where you need to place the gem to finish the palace and... that became a fairy... Mistakes were made.
Just to clarify, the graphic for the statue is still there, but it seems the actor for the gem itself (I assume the gem floating upwards and set in place) is/was invisible until you actually reach the position.
Before the video I was afraid of Assembler... Now I am terrified!!!
This is a absolutely fantasic series (Behind the code), I hope you do more.
Btw, the x pos is just a 16bit value, so your “page” value is just the high order byte of the x position.
No joke... I love this game. Always will. I beat it once a year...
These break downs are absolutely fantastic. So awesome to get a look under the hood!
Unbelieveable, I never realized originally learning programming and assembly on a C64 that it would have directly translated to so many other applications at the time. I later learned 8086 assembly but hearing LDA, A, X and Y registers brought back so many memories! And to think today I write code in C# that's probably thousands of lines of assembly, executing perfectly in a multi-tasking, multi-threaded environment. UN real where we came from back then!
Back in junior high...1989 or so...I used to leave Link at the edge of the battle screen with a rubber band wrapped around the controller so he continuously attacked monsters while I was at school. Old school macroing to level up ;)
Programmable joypads on the SNES were great too, program a back and forth action with lots of “A” button presses, you’d have your Final Fantasy team levelled up in no time.
Please continue this "Behind the Code" series, it's why I subscribed. Thanks!
I've watched a lot of videos on these subjects, and I think what happened is the memory address for attack power got overwritten by code meant for something else in the game, because it either overflowed or was loaded in unexpectedly.
This is a neat-ass video. I appreciate how you say like 'hex 80' to make it clear it's not decimal 80, but it makes me wonder why we never came up with more elegant terminology.. I know I tried to push FF being 'efty-eff'
Things that fascinate me about this game (and there are many...some that were in this video that I never knew I needed to know about)
The XP penalty in the game for dying and getting a game over was that it set the players XP back to zero and forced the player to play from the start of the game and then walk all the way back to whereever they were where they died (which nowadays is akin to say a "Souls" game). I have wondered many times if they programmed the XP in this game to act more like a "score" vs. experience points but that might not be something that could be looked at
In relation to the XP gain....what is the point in the code that:
A: Gives the player a magic jar
B: Gives the player a treasure bag
C: Just the XP for the kill
Moreover would there be a way to go into the editor to force the game to give the player the XP for killing an enemy that gives you just the magic jar (because if my memory serves it does not do that in the game as is)
Also if I remember correctly in the early game if you kill a Goblin (but not in the forest) you were not awarded the XP for it...I know these things are about the XP in the game but its fascinated me what caused the code to not give XP at certain points in the game and also the idea that it actually resets back to zero...these things fascinate me for sure
I know I said this on twitter but I just discovered your channel recently and its actually blown my mind with how games work...and maybe DON'T at times and while I myself am not a game programmer or designer seeing the insides of a game in some way fascinates me and I hope you continue with content like this in the future
Take care
You deserve way more subscribers man. Your content is amazing! Absolutely love the specifics on the source code even though I understand very little of programming, keep it up!
Love this series! Definitely deserving of so many more subs!
I'm not a programmer and understood like 1% of it, but I was fascinated and saw the whole video!
I like your style. Clear, well produced, and straight to the point! Subbed.
At last! A channel for out of work gamers! Cant wait to see what other videos you have!
Many people write off Zelda II bc it was frustrating to grind for HP, but the RPG elements make it my favorite. Discovering secrets in Zelda II was pure magic.
Really, really enjoying your channel, bro! As one currently learning 6502/65816 assembly, your videos have been incredibly helpful. Can't wait for the next one :-)
This is incredible - and one of my favorite games. Thank you for putting this together!!
Fantastic, well-produced, informative video. Lovers of both Zelda 2 and programming rejoice.
Incredible series. I love that you go into the games like this. Quality and unique content
Some more questions about the Fairy Warp glitch: Why does doing it in a town cause you to be stuck in the ocean when you leave that town? As a more general question, if the special exit value of 3F returns you to the overworld from where you entered the scene, then how do scenes with 2 different overworld tile destinations (one if you leave on the left, one if you leave on the right) work? Thinking of scenes like long bridges where you have to actually platform your way across the scene to get to the other side of the bridge in the overworld.
The slowdown on the overlord is nostalgic. I cant imagine playing the game and not having that it feels like the authentic experience.
Man you sure have grown up!! I was here when you were like 15k and now almost 50k not bad
Genuinely some amazing content. I expect your channel to grow heaps in the coming months.