I'm wondering, just how, how can THAT MUCH of info leak into the ROM? Almost like a section of original file system was dumped into it
@gunchapred893316 сағат бұрын
In my case, I’d say it depends on the bug. If it’s a fun and avoidable bug that won’t ruin or otherwise hurt someone’s experience, then it should be left alone. The Fortify restoration loop from Skyrim being a great example. It’s an easy way to get OP equipment and trivialize the game for shits and giggles, and you could just as easily not do it if you don’t want to. Hence the bug staying in the Special and Anniversary rereleases. But if it’s a bug that does hamper your experience, and there’s a good chance you’ll run into it by accident , it should by all means be fixed. The horrible lag in Blighttown from Dark Souls immediately comes to mind.
@EyezaGotSKILLZ18 сағат бұрын
1:20-1:25 - me looking around nervously as I squeeze mild Taco Bell sauce on my reheated 5-layer burrito with fresh Coca Cola in my gas station bladder-buster styrofoam cup sitting on the coffee table. I’m not even kidding right now.
@talideon19 сағат бұрын
9:10 - while it's extremely unlikely they were used for any NES work by Elite Systems, the "PDS" referenced for the Spectrum, C64, &c., likely was an editor and cross-assembler suite on the CP/M-based Tatung Einstein, a machine popular for development in the UK in the '80s. They became less relevant when 16-bit machines became popular and the IBM PC (or rather, PC clones) made their way across the Atlantic.
@susiederkins661220 сағат бұрын
As a kid i thought the bombs were oxygen machines and the turtles were trying not to drown
@FIDreamsКүн бұрын
It can Only be played with an auto for controller. Lol
@nachiopistachioКүн бұрын
I think I’ll take 4:3 as default. If Nintendo themselves couldn’t sort it out in 1991, doing it now might as well be optional
@mistery8363Күн бұрын
can you make a video about unusual retro console color displays? Like how the CPS1 had RGB 444 plus a 4-bit brightness value, the Amstrad's "trits" or the Neo Geo MVS' shared 0-bit in its RGB666 palettte?
@SandTurtleКүн бұрын
when you have to make your game approach the framerate where the illusion of motion vanishes you know that something went horribly wrong
@SandTurtleКүн бұрын
i sat there with my mouth agape when i realized before you showed it that each sprite had 3 whole possible directions you could actually be facing. horrifyingly bad from a game design standpoint.
@BobzBlueКүн бұрын
As Squidward said: "SQUUARE."
@cdriperКүн бұрын
there is a strong myth about perfect performance of old 8/16 bits console games
@Piledriver-w2eКүн бұрын
Wherez the fixed rom file?
@NewDykeCity2 күн бұрын
Begging you to never do this type of thumbnail ever again. Weird and sticks out like a sore thumb compared to your others, sorry to whoever modelled for it.
@omegahaxors9-112 күн бұрын
7:12 "A change like this isn't as easy as changing a single instruction" Yes it is, >= 7 is functionally identical to > 8, you can literally change that value in 0 instructions or INC once before using the value if it isn't baked into the instruction. I know that splitting code is a pain in ASM but you're way overthinking it here.
@DisplacedGamersКүн бұрын
I don't quite remember the specifics of this video as it was put together a few years ago, but that section talks about using Game Genie codes for a bit of reprogramming rather than just writing assembly for the purpose of reassembly. This being the case, the ROM structure remains the same. The only thing we can do is replace bytes. We can't add instructions (such as an INC).
@omegahaxors9-11Күн бұрын
@@DisplacedGamers I feel like you could just increase the hit box sizes by 1 to get the same effect.
@UltimatePerfection2 күн бұрын
2:56 Could you make a tutorial on how to do such a performance overlay? As someone who wants to do NES homebrew it would be really useful for me.
@CotyRiddle2 күн бұрын
i always remember it looking normal *round* on a old tv regardless of the game. I think it was overscan that did it.
@albertpenello2 күн бұрын
@DisplacedGamers great video. Non coder here, but a classic gaming enthusiast (I was playing these when they were new!) - I love modern evaluations and retrospectives like this and you make it VERY easy for a non-programmer to follow so great job! One suggestion for your channel: I would love it for you to document more like this but then make the ROMHACK available to users when you're done. I would love to see a multi-part series like this where we can all enjoy the fruits of these videos then play the results. I'd love an Ikari Warriors turn-around fix, a Gn'G jank/framerate fix, etc. Even if you only hit 30fps and removed the jank, that would be a great thing to try! Just a suggestion from a new subscriber :)
@Rob_Dekker3 күн бұрын
You forgot to jump on the two enemies when they fly up and then grab one of them again. It's fun, especially when you are high up in the screen.
@vadimosovsky3 күн бұрын
I think it’s better to stick to the 60fps arcade version on an FPGA or something. Great video though! Waiting for an nes 60 fps port 😃
@mronewheeler3 күн бұрын
I actually kind of want to play this game now. European version, of course
@vansajexora3 күн бұрын
Seeing old games fixed like this is sooo satisfying. To be fair, coders, often under crunch, have a number of non-engineering limitations imposed on them, resulting in suboptimal code shipping. Fans have a lifetime to deconstruct it. You cover that aspect in the Mega Man 3 vid where you talk about a new coder inheriting an existing engine plus having to support the new mm3 mapper on top of that.
@Vast3.143 күн бұрын
I'd love to see more reprogramming
@RokLinen3 күн бұрын
Oh my god I have an early childhood memory of seeing this bug when I played this game and to this day was never 100% sure I actually saw what I remembered until finding this video. Now I know it's real. What a surreal experience.
@wesss93533 күн бұрын
Hello childhood PTSD, we meet again
@carlosmendoza11774 күн бұрын
What a great video!! I can't believe KZbin decided to reccomend this video 8 years late, with most of the comments having 5 or more years, but I'll comment nevertheless. I always find interesting the discussion about CRT TVs and how games were designed for them back in the day, I found over the years an interesting pattern for NES and SNES specifically, it appears that games made by Nintendo (like Super Metroid, Super Mario World, F-Zero, etc.) were designed not counting for the strech that the CTR TVs made to the image, while games NOT by Nintendo (even those in other consoles of the time) DID took the strech in mind. For example, in Mario World, the extra item box that appears in the upper part of the screen looks with a perfect squared shape in 8:7, but looks streched in 4:3, the same for all the squared shapes and images that appear in Yoshi's Island, for example, in the menu to select a level, every level has a little picture of the level's theme in a little square frame, in 8:7 they look like perfect squares, but they look streched in 4:3. Whereas in Final Fantasy 4 and 6 for example, the character portraits in the pause menu were designed to be streched in 4:7, in order to make them look with the correct proportion in 4:3, the same applies to the planets and the moons in the ending of FF4. And the same is for almost every game for the SNES not made by Nintendo. Consoles like the Genesis or the Play Station for example, also had their games designed to look correct in a 4:3 screen, the Genesis specifically took advantage of the CTR TV to make transparencies, like in the waterfalls of Sonic the Hedgehog.
@Nananea4 күн бұрын
I just realized how much you sound like Josh from Let’s Game It Out…
@nicoful864 күн бұрын
PLEASE make a part 2 of this game optimization, so close! ❤
@nevyn4 күн бұрын
Your older videos played a huge part in teaching me NES coding, and pushed me to make my first NES game! (It’s called Firewall on Itch). That knowledge made it possible for me to take in these optimizations and I followed along at every step! I’ll even bring some of these optimizations with me :) thank you!!!
@jermsbestfriend92964 күн бұрын
8:09 the last bit was super hard to understand. If you ever update please give a deeper explanation of why we only need that value and don't need this or this or this? Because we really want to learn deeper details, even down to the physics or compiler. For example when you said y would loop to zero it demonstrated something I'd never know to even look for so I'd never figure it out without your help I think. Thank you so much. That's why I love watching these. It's super fun and exciting to learn something like that that kinda teaches me to think on a deeper level and in time. But when there's a lot of pronouns like this that and those, I get confused af start wondering why and freak out.
@jermsbestfriend92964 күн бұрын
Could you go over the optimal process of programming a level of different types of game from scratch? I'm sorry, but I'm so interested in how they got 3d flying out of this system. Yes I'm talking CAPTAIN SKYHAWK! And there are a ton of games like that. Like the Excite Bike level maker is great! Like why change to 200y? Maybe I'll figure it out by messing with the code. Speaking of, have you done a video on where to collect all the programs to fully understand this type of modification and study? It's actually a guilty pleasure. I love it more than electronics.
@GortokTheDestroyer4 күн бұрын
Even more easier: don’t play this piece of crap game
@gabemorales78145 күн бұрын
Never give up, never surrender!
@itsdarklikehell5 күн бұрын
im sorry...
@mwk15 күн бұрын
PRZEKOZAK 🍻
@walterpuccio53915 күн бұрын
Excellent code walk through! I wonder if simply skipping the reverse write to page 3 and just write every other frame in reverse order would save enough time to already make it 30 fps with your changes
@0xDDB5 күн бұрын
Probably one of my favorite video of yours so far. Keep up the great work!
@jermsbestfriend92965 күн бұрын
I want the swords to come out in four directions in ninja turtles air attack for high jump because how are they like coming out of their spin to attack? Has anyone seen his turtles video? Is great.
@jermsbestfriend92965 күн бұрын
Isn't there a community the video author uses to host quality of life hack options so I can post my ai for this fight with balancing?
@2dskillz5 күн бұрын
A consistently fascinating series.
@deano725 күн бұрын
Love this game and your content. 💋
@dionelr5 күн бұрын
Great video! I'm sure programming crunches with unoptimized code still happen today.
@adamgreenspan49885 күн бұрын
8:00 “not enough space for arguments” the secret to a happy marriage.
@JustWasted3HoursHere5 күн бұрын
This is one of the reasons I love retro consoles and computers so much: Since everything was so much more expensive and/or not as powerful as stuff today, they had to use every trick in the book to get the most out of their systems. And the fact that each system did this in different ways is what's so cool. RAM was VERY expensive. Like, hundreds of times more expensive than it is right now. This is why old systems like the Commodore VIC-20 only came with 5 kilobytes of RAM. And video chips were quite limited in what they could do. Some didn't support scrolling, or sprites or more than a few colors on screen at one time, but virtually all of those engineers found ways to add versatility anyway. The Atari 2600 only had 128 bytes - yes, BYTES - of RAM and no real video memory: All of the display was controlled by the program itself. This was a limiting factor but also made the system extremely versatile and allowed it to last far beyond what the engineers had imagined. A side benefit of having so much restriction is that this put even MORE emphasis on gameplay since graphics and sound were not going to blow anyone's mind. That's why even today these old games are still fun to play.
@Atlink5 күн бұрын
I know it’s not Game Genie, but it would be interesting to know why some Pro Action Replay or GameShark codes required a “master code”
@Whitecroc5 күн бұрын
When you study gamedev at uni you end up doing a bunch of pretty similar projects where you need to implement jumping in some way. I learned two important things from this with regards to platforming games: 1) 1 G feels pretty lenient. You want to go at least as high as 2 G or 3 G. If you want Mega Man-style jumps, be prepared to go no lower than 5 G. 2) Your jumps will feel floaty if you don't use the Super Mario Bros. trick of increasing gravity on the way down. You don't *have* to do these things -- the Metroid series usually doesn't, for instance -- but making a "physically correct" platformer that feels compelling to play is more challenging than fiddling with the dials.
@ladams3916 күн бұрын
So I'm by no means an expert and my journey into the depths of NES/Famicom game code is still in its early stages and if this is a silly theory then I apologize, but a thought occurs to me in regards to the use of a lookup table for the jump velocity values. As mentioned in the video it seems pretty clear that this game was rushed out the door while the programmers were still at a point in development where not only was the code not polished, it seems as though they were still working on figuring out exactly how they wanted the physics of the player and how they interact with the game world should feel and be implemented in the code. The lookup table is pretty clearly not a very elegant way to implement jump velocity, and even if the dev team was somewhat inexperienced it strikes me as very odd that they would go about it in such a strange, inefficent way especially when it was pretty much industry standard and not much more difficult to use a formula created specifically for that purpose like many, many other games with a platformer style jump mechanic did. The only scenario I can think of where it would make sense to have a lookup table for jump velocity values in the first place would be as a sort of prototyping tool, in order to facilitate quick changes to the overall feel and function of the jump mechanic. They could just plug new values into the table, test it to see how it feels and if it needs adjustment, and then repeat until the jump worked and felt how they wanted. I imagine the idea was to go back later after they had refined the values in the table to reflect the intended feel of the jump and work backwards from those established values to find a formula that would allow the system to produce each of them on the fly and refactor the implementation of the jump and the other systems in the code that were involved to handle player movement in a much more comprehensive, smooth way without the bizarre handoffs that cause the scrolling related problem and whatnot. Instead, for whatever reason, the project was rushed out and it seems they were still in the middle of the process of refining/refactoring things when it happened.
@BaccarWozat6 күн бұрын
When I got the Game Genie for SNES the book had those codes but someone had written another one below them: "Walk Through Walls". It mostly worked inside towns and dungeons and not on the world map. Interestingly, chests were portals. Unopened chests went to more exotic locations.
@CoolAndNormal6 күн бұрын
3:08 tfw he calls one timer Timer One
@Zye19846 күн бұрын
Why does Arthur's spites jump around on him? I'm guessing the armor is overlayed his body or something?
@DisplacedGamers5 күн бұрын
So if you watch the previous episode, it talks a little bit about it. You are correct. The sprites are overlapped and switch priority each frame, so he has that jumping effect on it.