Yeah, that must have been a relief... No need for fancy tricks when you can have 3 actual backgrounds (or anything from 1 to 4 depending on features needed. But 3 is the most common.) For that matter you also got HDMA which can automate a whole heap of these effects for good measure, if having 3 hardware backgrounds isn't good enough... Does make me think of the Neo Geo though. That actually has NO backgrounds; Instead it just lets you draw insanely huge 16x512 sprites, 96 of them on a single scanline, and 384 of them in total. Plus it has a feature where you can 'link' sprites together so that a whole heap of them move by adjusting the position registers for a single sprite. The point is, the Neo Geo can fill the entire screen with sprites 4.8 times over; so the background layers, are, in fact, more sprites. It's a weirdly elegant solution to just... Give up on having backgrounds and instead doubling down on sprite capabilities...
@@KuraIthys yeah, that is pretty neat. it also has the fix layer for drawing HUDs and other UI features, within certain limitations like no scrolling. pretty clever set-up, honestly...
Yeah, unfortunately the SNES era started making programmers lazy also, the guys back in the NES days had to make due with what they had. Nowadays games are poorly optimized.
@@romajimamulo when you consider all the future issues it will cause and the development time/resources those will cost to address, there's time... but large corporations simply do not care. and this is the same reason they get hacked on a near-daily basis... they also spend entirely too much time and money to add features no one cares about or wants, routinely ignoring the pleas of their users to fix major bugs or address major performance issues. they have time, they have money, they squander it for the short-term gains. this is why AAA studios are now the laughingstock of the gamedev industry. they have the means of producing masterpieces, they're too busy producing mediocre garbage and cash grabs because some "suit" said so, because "trends!". as has been said by others before me: "these aren't even worth pirating"
I love how the limitations of the system forced developers to become clever with their game design to produce beautiful visuals that most people may overlook or downplay.
I don't think they were downplayed, overlooked perhaps as the gaming scene back then was very much reliant on games appearing at retail and rentals, and some of these games never got an international release or didn't sell very well.
Good job transitioning to Subscribestar. Patreon fouled up with its clientele and will hit a lengthy conga line of expensive lawsuits that they must pay. They might have taken your cash to supplement their own and stay afloat.
Big fan of the addition of sound effects in this video, it really gives everything a sense of movement and interactivity, like it's alive It also helps with visual aid too. It's quite interesting, I'm excited to hear more of them in the future!
Someone once told me that most NES games' data was 90% graphics, 10% everything else. I never doubted that notion, but I definitely believe it a lot more now...
Not really. Most of the time it's either a 50-50, or 25-75 / 75-25 but it really was up to the developer and what maximum power of 2-kilobytes their cartridge setup supported.
@@AmyraCarter I dont think it's ever not been true. The visuals have always taken up the most data. Maybe pong is an exception because it's just a couple lines.
@@Domarius64 Pong is drawn by lines of code really, lolz What I meant by 'true for a while', is since the cartridge to disc generation, music/audio has taken up larger portions of the entire data, when it used to be a lot less, especially when it's uncompressed audio streams in a WAD, or CDA music/audio, such can be as much as sixty, seventy percent of the data, depending on the game itself.
I love the step up in production value! Especially the tiny noises to indicate scrolling, and the subtle chimes to call to attention specific points in the raster scanning! Keep up the subtle details please, it's a marked improvement over your quieter previous videos
There's also a method of mid-screen parallax involving palette cycling, where the graphic pattern of the affected background tiles causes it to appear to move independently when the colors in its attribute's palette is cycled in either direction. Though that method is much more limited than any of the other methods shown here. This has got to be one of my new favorite videos from you! Fantastic breakdown of these techniques.
16-bit stuff: Sonic 3 uses palette cycling to rotate the sphere in the special stage. And Sonic 3D uses palette cycling on a 7fps image to make 4 images in one screen, allowing full-screen 30FPS animation!
The last effect (swapping out tiles) is actually used in some of the 16-bit Sonic games (using a debugging emulator like Exodus can easily verify this). Examples of this technique being used include Hill Top Zone from Sonic 2, as well as Hydrocity Zone Act 2 from Sonic 3 (though there's probably a few more). The VDP only supports 2 background layers, but by using this technique it makes it look like there's 3 background layers, in a way that can't be reproduced by simple scanline effects.
Fantastic video, I absolutely loved it! I'm sure you've heard it a 1000 times before, but you really do an outstanding job on the visualizations and making the understanding intuitive. I noticed the extra sound effects, and they were great! Would love to see (hear?) more of them in the future, they really ground the visuals and help emphasis the content, like with the ticks on the IRQs or the scanning sound effect on the CRT beam.
This guy right here said everything I wanted to say, but better than I would've said it. I'm surprised to see most of the comments talk about the sounds; it was the visuals that had an obvious leap. I know every video involves a lot of work, but this one sure is polished with a ton of visual sugar. Love it!
I think the restrictions old school consoles had, and the solutions/work-arounds that were found to deal with those restrictions, really helped give them a certain feel....you could often tell what console a game belonged to just by looking at it....so those restrictions helped give it character and spurred the creators on to be creative.
The old way of programming games-basically coming up with new hacks to project the appearance of more detailed graphics and mechanics-is harder, but gives each game a unique feel (even if the game itself may have sucked). Actual 3D asset management and display is in a way easier than "fake 3D" render logic (Pole Position, After Burner, Super Castlevania IV). Imagine a modern fake 3D game like Galaxy Force II or OutRun but with millions of super-scalar sprites and no texture filtering for maximum crunchyness at 2160p 240fps with VR headset and steering wheel with pedals. The pixels would stay square individually even as you rotated the headset, like tiny solid-color billboards! We need more new games that use old render logic to leverage modern GPU parallel processing, for fun at least.
Those folks at Rare were always a bit extra devious; I wonder how they unlocked so many secrets of the NES? Addendum: I favor the sound effects, it helped me snap to focus on the element you were explaining; they were subtle enough. I'm sure there's going to be some adjustment as you go forward.
Rare was crazy back then. They actually reverse engineered the Famicom and showed Nintendo a demo program for NES before any official dev tools ever made it out of Japan. There's claims that they understood the hardware better than Nintendo themselves did, and that this so impressed Nintendo that this is why they were doing things like Donkey Kong Country and the like on SNES, and how they ended up being so dominant on the n64... They figured all of this out basically with no documentation...
@@KuraIthys Applause to them, but I wonder if they had any luck with the Mega Drive; to my understanding the documentation for the GEMS engine was _infamously_ poorly documented.
I always assumed these games with "mid-screen" parallax were all using CHR-RAM to achieve their effect, using CHR-ROM banking didn't even come to mind. Pretty clever trick for sure. Love how well-packed Metal Storm's CHR-ROM banks look.
Mega Man 2 has a couple of funny parallax techniques you didn't cover! The iconic title screen uses sprites for the little windows on the building which move faster than the actual background (the building itself has a vertically invariant texture). Then, once the purple skyline is completely scrolled off screen, the scroll speeds up for the roof to come on screen. More "axis-invariant" textures are used to give some of the full screen bosses a floor underneath as well. On the menu screens, they use an 8x8 tile repeating pattern under the text boxes. Rather than do any CHR RAM shenanigans, they simply scroll the screen 8 pixels per frame to create the illusion that the background pattern isn't moving.
Man, I really like how you have added those little details in the video, be it the electron gun animation or those sound effects (especially for those who think RGME's videos are too quiet). Wikipedia has listed four types of parallax scrolling: Multiple background layers, objects/ sprites, repeating graphics and raster effects. The former two are self-explainatory (and also are related in a certain sense) but the latter two, those explained effects, that's where people without knowledge on how the NES or CRT work might get trouble without a visual representation. Sure, there are some troublesome parts but since I'm fairly knowledgible, that's difficult for me to judge. But explaining that you just change the scrolling in the middle of the screen or change the graphics for the background is farily understandable, especially with the visual clue. Good job!
Dude, your production is awesome. The way you visualize the ram data in real time and show the permutations thru loops is absolutely amazing. I bet OG SNES Devs would have KILLED for your videos when they were starting out!
Another famous game with the bank-swapping tile trick is MegaMan 5 in its GravityMan stage. Looking at the PPU, there are many tiles that change all the time: the glowing lights, the electric arcs, the barber-pole-striped spikes, the random numbers... But when you get to a certain part of the stage, these tiles suddenly stop and only change when you scroll the screen, and this is where you see rows of girders that appear to scroll behind other background elements, because their tiles are updated with different alignments via the same series of banks as those animated elements. When you're in the rooms with the animations, a PPU Viewer shows you that girder rotating constantly. Have you covered NES games that change the scroll amount one scanline at a time, like the Horizontal Oscillation from EarthBound 2? I suspect this is how MegaMan 6 achieves the "heat wave" distortion effect on its sunset in TomahawkMan's stage, since if you look at the Name Table, that sun remains perfectly round the whole time, and I don't see such odd edge shapes in the tiles. In the game Fire Hawk, you can see that at a certain point, each line of the ground scrolls a little more slowly than the line below it to produce a 3D camera effect on the whole. And now I recall that the bootleg port of Contra 3 to NES used the horizontal oscillation effect up the entire screen for its intro!
I've never understand a single thing in any of these videos, but I love watching them anyway. The obvious take-away is that coders for the NES were wickedly clever.
3:39 "but never vertically" I suppose it's not exactly that but I read the MMC2 (used in Punch-Out!!) and MMC4 (in the Fire Emblem games and Famicom Wars) reserved two key tile IDs to swap between two pre-stored CHR ROM banks as those tiles were rendered. I know for the Fire Emblem was they stored the top and bottom window borders in multiple ROM banks but then when the left and right side border tiles (which used the two key tile IDs) were drawn, it would effectively, when loading the left side, swap to the CHR ROM bank with the font to draw text boxes and then swap back to the gameplay tiles when it reached the right side of the window. Not familiar enough with Punch-Out to know how it used it, but I can probably guess the large animated opponents probably had a part. :)
Not gonna lie I’m damn proud of myself for figuring out how it works before you said it. The coolest thing about old games is how they had to pull crazy solutions like this to break past the limits of the systems. Really good video dude, it’s always a little astonishing how much effort you put into these. It’s such a niche thing to be passionate about but I hope you know we really do appreciate it!
Five months ago, I asked this under the Q & A video: "I would be interested to learn something about the limitation of consoles (e.g. SS can't handle transparency, how SS lose to PS in its 3D performance), and how some games overcame that limitation (e.g. by adding chip on cartridge for NES, and adding RAM cartridge for SS)" This video is the thing I am looking for! Awesome and many thanks!
Interesting stuff. I was kinda hoping to see an example of the sunset from the first level in Rygar that has mountain scrolling in from of it but I'm guessing that's probably sprites doing that.
I always love seeing how the camera isn’t actually moving, it’s just the background. Really goes to show what kind of cool mind bending stuff happens with some areas of primitive forced creativity.
One of the most amazing parallax I've ever seen on the NES hardware is Cossack Fortress 4 from RockMan 4 Minus Infinity: ruclips.net/video/CipwPaJOF3c/видео.html It involves really convincing and clever masking of tile swapping, and smart usage of objects to draw the level layout.
Omg that's so clever! Took me a good minute to figure out how they achieved it. They use two entirely different tricks at different points in that "screen" of the level, first one being standard mid-frame scrolling and the second being an insane fusion of sprites representing platforms, graphics swap on a tightly repeating pattern, a completely different scrolling routine and sprites to mask the seams, using a full frame of that tightly repeating pattern to switch between the two tricks. Holy mother of god that's dedication
@@OllAxe Same. Using raster interrupts and object platforms is nothing special (you can even see that they spawn onscreen) but it's really the transition where you had to take a close look at the HP bar and notice that it goes behind the edges which implies objects.
Oh, this is super neat! I never actually had very many games for the NES, so I don't think I got to experience any of these effects back in the day. Kind of curious what the sprite zero hit function is. I knew about a couple of the other simple tricks highlighted here, but I don't think I've ever heard mention of that one.
Ooh, keen. See, I assumed games like Metal Storm were using extra hardware to write to some on-cart RAM region for the PPU tile updates, but a ginormous amount of ROM banks work just as well. Learned something new!
Easy, it changes one of the VRAM buffer offsets and causes the game to write to unintended portions of the game's memory. This code corresponds to writing 07 to address 8080, corresponding to VRAM_Buffer_Offset in the disassembly. The result as far as I can tell is that the game misunderstands its own PPU upload queue. Edit: misunderstood a few things, oops.
@@Selicre Thank you man, really informative, but it would be nice to see retro game mechanics actually use some of his good and neat animations and explanations to this topic.
i wish there were more detailled channels like yours about how older systems are working, as for the hardware than for the software. if some one knows more channel as good as this one... Great job, thanks so much for all thoses insights on system of my youth.
30 years later I discover the scrolling backgrounds were far more complex than I ever thought as a kid where I explained it as "Cool! They make the backgrounds scroll at different speeds to make them look more 3D!"
It's amazing how the sound and tile movement effects you do here help me, a giant math idiot, understand what my Nintendo is doing. Keep doing this stuff.
fantastic explanation; even though I'd already seen all these tricks explained elsewhere your high production values and great visualizations made it totally worth watching.
Wonderful job! Would definitely like to see some video regarding how Sega MD/Genesis achieved some incredible effects when the console doesn't have anything like SNES Mode 7 in the future.
Dude, the animations in this video are off the charts. Amazing stuff right then and there! I am currently thinking of how to best extract resources off a GBA rom that I dumped and while the GBA is obviously a different console, I can't help but still notice that a few things stuck - patterns, so to say. This is seriously an amazing channel and I learn so much from it. Thank you very much for sharing this wonderful knowledge and putting all of those effords into every single detail - from the live memory map updates, to the CRT animations to just...well, everything. It is gorgeous and thoughtfuly put together. Definitively amazing!
There's a fair bit of overlap. Once you start digging you see a whole series of techniques and concepts that are widely applicable to a large number of 8 and 16 bit consoles and microcomputers. Everything from the atari 800 to the NES to the sinclair spectrum to the TurbographX 16 - they all have their own quirks, but a lot of concepts and basic features apply to all of them. And the GBA, while technically of another era (it has 32 bit instructions available, for one), is very much like someone took the Super Nintendo design, expanded it (with things like more video memory, 15 bit bitmap modes, and mode 7 style effects on multiple background layers at once, alongside regular background layers as well), simplified it (there's far fewer graphics modes or mutually exclusive features), and tweaked it to work as a handheld... There's a reason that system got so many SNES ports; It certainly isn't a SNES in any direct sense, but it's lineage is pretty clear nonetheless...
I don't know if you have yet or not, but I would absolutely LOVE to see you cover the different mapper chips/chipsets that were used for the NES to achieve things like extended memory, or being able to scroll X and Y in SMB3. At least the common mappers, anyways. I'm not sure how many there were, but with the unlicensed games there were probably tons.
Very fascinating!! I’m intrigued like a mofoneed to watch videos like these, sir that’s why I’m subscribed to you, yeah-yeah games are fun but always wanted to know what makes. These old school games tick
Great sound work in this video. Your visual effects were already top notch, and these great sound effects lend another layer of quality to your work! Keep it up!
The nes turns out to be waaay more weaker then i,ve ever could imagine, those first generation nes games really looked ,played and sounded limited , they did feel more like enhanced atari 2600 games, HOWEVER, with the advent of mappers,the nes could do soooo much much more,by increasing it’s ram & rom space, while bankswitching allows to bigger rom size games, heck it’s even possible to hijack the nes ppu and pump rendered graphics to it, it’s just mind blowing how those final nes games lloked,play and sounded like early 16bit games.
Great video as usual! But a small correction about 3.38: You actually *can* split the screen vertically on an NES. By doing out-of-order register writes on $2005 / $2006. But due to there not being an easy way to sync the CPU with the PPU, under normal conditions the variance in which pixel you are at will be too large to have this be glitch-free. There is however a technique discovered by Shay Green a few years ago, which allows reducing the variance to just +/-1 pixels between frames on an NTSC console (but a bit more for PAL). wiki.nesdev.com/w/index.php/Consistent_frame_synchronization And this is sufficient to enable predictable updates of the nametable address for $2006 with carefully timed code, as well as reducing the glitch of fine-scroll update of $2005 to a few pixels on NTSC. I don't know of any demos that have *really* put this to good use yet, and even if it would have been known back in the day, it probably would have been impractical for games to do this - you only have so many cycles / scanline to fit your writes in anyway. So the simplified answer is indeed that you can't, because you won't see it in any old titles... But the longer answer is that it *is* perfectly possible to create vertical split-screen on the NES with this technique, if you hide the glitches from the -1 / +1 variant with sprites (or alternatively, I *think* having a few identical BG pixels when writing $2005 should work too) But due to the complexities and limitations we are unlikely to see the technique used much, even in newer homebrews. :)
Fairly sure there is at least one game using a vertical split screen... But as a general rule such things are infinitely more complex than horizontal effects. The reason for this is pretty straightforward; Let's say you want to split a screen in two - if you use a horizontal raster split you have to update a few memory variables once per frame. The timing can be tricky, and depending on the complexity of the effect, so can getting the update to happen quickly enough... But even so, you're doing ONE update every 1/60th of a second (or 1/50th on PAL) Now contrast this with doing a vertical split; Since the scanning pattern (assuming normal orientation; some arcade machines had monitors mounted in weird orientations that defies the standard logic) is horizontal, to create a vertical split requires that you update the relevant data on every scanline. (twice in fact, since at the start of each new scanline you have to reset it to the first set of data.) Even leaving aside the timing... For a 224 line image, this requires performing 448 updates per frame. Vs... The horizontal split requiring ONE update... The timing is worse, and you have to do hundreds of times more work... You can see why games rarely did this unless there was some kind of explicit hardware support designed to do this kind of thing for you. (such as the Mega Drive which has offset per column scrolling as a PPU feature, or the Amiga COPPER which can automate DMA transfers to specific registers at set intervals measured in pixels; You can't update every pixel, but you can update every couple of pixels...) It's also why mode 7 on SNES can mimic perspective effects in the horizontal plane, but you cannot realistically for instance create the effect of something rotating around a vertical axis. (the actual perspective effect is handled through altering various scaling parameters every scanline. To create an equivalent effect along the other plane would require adjusting parameters every pixel.)
@@Wuerfel21 Yeah it does. But to support fine-Y scrolling, the cartridge has to be "wired" for that. (I.e., connect certain soldering pads on the PCB to give the MMC5 chip access to certain address lines) If it isn't, only multiples-of-8 can be used for the Y-scroll in the split screen section. A certain Japanese shoot-em-up with a long name uses it for the title screen, but only with multiples-of-8, leaving the lower 3 bits as 0. OTOH, the ending screen to Bandit Kings of ancient China appears to write the lower 3 bits of the Y-scroll as well. But the cartridge was *still* wired to not support it, which ends up kind of buggy. So even with the he feature in place, it saw little practical use. Then again, many of the mmc5's features were left unused in games using the mapper. The most notorious example is Castlevania3 which probably only used mmc5 because the PRG-ROM bank-switching was very similar to the VRC6 mapper used by the Japanese version. And the fine-X scroll is not possible to change, since only CPU writes can affect those lowest 3 bits - extra cartridge hardware can't. So the HW feature would still need to be complemented with writing the fine-X scroll multiple times per scanline if you want truly independent scrolling. And this can never be 100% glitch-free, due to not having an integer number of CPU cycles per scanline and the write taking effect immediately with no buffering. So again, short answer is that it's usually more trouble than it's worth :)
@@KuraIthys I don't think there is any non-mmc5 game that does it. In addition to the extremely CPU intensive work you mention, you also have to sync the CPU with the PPU to minimise misalignment. IRQs aren't precise enough, so you really need Shay Green's complicated consistent-frame-sync method to minimise misalignment This was only discovered a decade or so ago, and would have been impractical even if it had been known back in the NES's heyday. With the mmc5 you get some hardware support for doing this which removes the CPU intensive part but comes with limitations - most notably no control over the fine-x scroll, so both screens need to have their X-coordinate as a multiple of 8 in practice.
IRQs are just like function calls inserted mid code. So they interrupt whatever is running when a certain pin on the cartridge is energized. Therefore it is possible to make a system that energizes that IRQ pin when a certain part of the graphics data is requested (which corresponds with a certain part of the screen being drawn), and quickly change some registers to snap the background to the right place.
Awesome video yet again! Kirby’s Adventure would be an amazing video because of all the tricks they use. How did they get around the problems super Mario 3 had, because I thought both use the same chip?
One issue, the scrolling artefacts, was simply bad programming on SMB3. There still are artifacts on Kirby's Adventure but it's only palette artifacts as the palette is set on a grid of 16x16 tiles instead of 8x8 tiles for the tile data.
Another great example of bank swapping to mimic scrolling layers: Batman Return of the Joker. In the opening stage they have a cloud pattern that constantly scrolls by the screen, and as you approach the first building you can see the scrolling effect get interrupted right int he middle of the screen, even without the player moving.
so if i'm getting this right, it's like Sonic 3's palette swapping sphere, but instead the concept is used on sprite data? i'm not super savvy but at least this video was very nice to watch and listen to, aha! (on a sidenote, i like how the video background is the same as youtube's dark mode background, it feels more spectacular that way!)
Been waiting for the third AV effects video! Already loving it! A question - how do beat 'em up arcade games like Streets of Rage know which attacks connect and which don't? It's definitely not sprite collision, since you can whiff something if you're behind someone even if your punch goes through their sprite. I've always wondered this and would love an explanation! also really impressed by how smooth that mech's animation is in metal storm
Good question: Along the same lines, I'm curious how romhackers can modify the levels & hit detection still works flawlessly ? ...like the simple scenario of standing on a ledge VS falling into a pit to your death (for platformers). ...for this, it might actually be "sprite detection" (i.e. the mathematically equivalent check on objects in memory) ?
I was hoping that this video would explain how the 3D effects in the last stage of Battletoads work, but I feel like that should be saved for another video.
Man... I'm sure many developers were very happy when they learned the SNES could have multiple background layers
Yeah, that must have been a relief...
No need for fancy tricks when you can have 3 actual backgrounds (or anything from 1 to 4 depending on features needed. But 3 is the most common.)
For that matter you also got HDMA which can automate a whole heap of these effects for good measure, if having 3 hardware backgrounds isn't good enough...
Does make me think of the Neo Geo though.
That actually has NO backgrounds;
Instead it just lets you draw insanely huge 16x512 sprites, 96 of them on a single scanline, and 384 of them in total.
Plus it has a feature where you can 'link' sprites together so that a whole heap of them move by adjusting the position registers for a single sprite.
The point is, the Neo Geo can fill the entire screen with sprites 4.8 times over;
so the background layers, are, in fact, more sprites.
It's a weirdly elegant solution to just... Give up on having backgrounds and instead doubling down on sprite capabilities...
@@KuraIthys yeah, that is pretty neat. it also has the fix layer for drawing HUDs and other UI features, within certain limitations like no scrolling. pretty clever set-up, honestly...
Yeah, unfortunately the SNES era started making programmers lazy also, the guys back in the NES days had to make due with what they had. Nowadays games are poorly optimized.
@@neoasura There's also no time for optimization in the current production schedule.
@@romajimamulo when you consider all the future issues it will cause and the development time/resources those will cost to address, there's time... but large corporations simply do not care. and this is the same reason they get hacked on a near-daily basis... they also spend entirely too much time and money to add features no one cares about or wants, routinely ignoring the pleas of their users to fix major bugs or address major performance issues. they have time, they have money, they squander it for the short-term gains. this is why AAA studios are now the laughingstock of the gamedev industry. they have the means of producing masterpieces, they're too busy producing mediocre garbage and cash grabs because some "suit" said so, because "trends!". as has been said by others before me: "these aren't even worth pirating"
This video has some top notch sound effects.
Slow scan TV!
And video effects.
I love how the limitations of the system forced developers to become clever with their game design to produce beautiful visuals that most people may overlook or downplay.
I agree in general, although faking parallax never looks better than the real thing so I don't think this is the best example of that.
I don't think they were downplayed, overlooked perhaps as the gaming scene back then was very much reliant on games appearing at retail and rentals, and some of these games never got an international release or didn't sell very well.
What they did to achieve the scrolling background layer in Battletoads is absolutely ingenius.
If you're watching this super early, the captions are going to be messed up because I uploaded the wrong file! They should be fixed soon.
They’re fixed! Thanks!
Last time I was this early the captions were all wrong
My liking of this comment upped its number to 69.
*NICE*
@@scottgray4623 I'm not going to like it
also i'm surprised it's still at 69 there's always someone who ruins it
Good job transitioning to Subscribestar. Patreon fouled up with its clientele and will hit a lengthy conga line of expensive lawsuits that they must pay. They might have taken your cash to supplement their own and stay afloat.
I had no idea that Electrons sounded like Ninja Gaidan boss explosions.
I had no idea that electrons sounded like SSTV signals.
Yeah, the new sounds effects sucks
Big fan of the addition of sound effects in this video, it really gives everything a sense of movement and interactivity, like it's alive
It also helps with visual aid too. It's quite interesting, I'm excited to hear more of them in the future!
Totally agree, I particularly noticed it on the CRT gun, and I loved it! :)
@@alexjones3035 light gun*
also, you an orange boy or grey boy?
@@torreywhiting5402 Orange boy or grey boy???
So many retro game-loving furries.
Someone once told me that most NES games' data was 90% graphics, 10% everything else.
I never doubted that notion, but I definitely believe it a lot more now...
Not really. Most of the time it's either a 50-50, or 25-75 / 75-25 but it really was up to the developer and what maximum power of 2-kilobytes their cartridge setup supported.
Well that's true of all games, even today. Most of the data is the visual assets. Now it's the textures and meshes.
@@Domarius64 Nowadays, most of the data is either visual assets, and/or uncompressed audio files/streams.
Actually, such has been true for a while.
@@AmyraCarter I dont think it's ever not been true. The visuals have always taken up the most data. Maybe pong is an exception because it's just a couple lines.
@@Domarius64 Pong is drawn by lines of code really, lolz
What I meant by 'true for a while', is since the cartridge to disc generation, music/audio has taken up larger portions of the entire data, when it used to be a lot less, especially when it's uncompressed audio streams in a WAD, or CDA music/audio, such can be as much as sixty, seventy percent of the data, depending on the game itself.
Big big respect for people back than who programed games in limited hardware...
I love the step up in production value! Especially the tiny noises to indicate scrolling, and the subtle chimes to call to attention specific points in the raster scanning! Keep up the subtle details please, it's a marked improvement over your quieter previous videos
It's always amazing how devs were able to do what they did w/ the NES' limited hardware. Blew my mind as a kid.
There's also a method of mid-screen parallax involving palette cycling, where the graphic pattern of the affected background tiles causes it to appear to move independently when the colors in its attribute's palette is cycled in either direction. Though that method is much more limited than any of the other methods shown here.
This has got to be one of my new favorite videos from you! Fantastic breakdown of these techniques.
16-bit stuff:
Sonic 3 uses palette cycling to rotate the sphere in the special stage.
And Sonic 3D uses palette cycling on a 7fps image to make 4 images in one screen, allowing full-screen 30FPS animation!
@@mariannmariann2052 Mickey Mania used palette cycling to generate the scrolling floor for the in-to-the-screen Moose Chase scene.
@@jfwfreo Yeah i remember that
The last effect (swapping out tiles) is actually used in some of the 16-bit Sonic games (using a debugging emulator like Exodus can easily verify this).
Examples of this technique being used include Hill Top Zone from Sonic 2, as well as Hydrocity Zone Act 2 from Sonic 3 (though there's probably a few more).
The VDP only supports 2 background layers, but by using this technique it makes it look like there's 3 background layers, in a way that can't be reproduced by simple scanline effects.
Fantastic video, I absolutely loved it! I'm sure you've heard it a 1000 times before, but you really do an outstanding job on the visualizations and making the understanding intuitive. I noticed the extra sound effects, and they were great! Would love to see (hear?) more of them in the future, they really ground the visuals and help emphasis the content, like with the ticks on the IRQs or the scanning sound effect on the CRT beam.
This guy right here said everything I wanted to say, but better than I would've said it. I'm surprised to see most of the comments talk about the sounds; it was the visuals that had an obvious leap. I know every video involves a lot of work, but this one sure is polished with a ton of visual sugar. Love it!
This pure quality content is very fascinating to watch on how the NES games are made. Talking about 8 minutes of the best "bits" (no puns intended).
I think the restrictions old school consoles had, and the solutions/work-arounds that were found to deal with those restrictions, really helped give them a certain feel....you could often tell what console a game belonged to just by looking at it....so those restrictions helped give it character and spurred the creators on to be creative.
The old way of programming games-basically coming up with new hacks to project the appearance of more detailed graphics and mechanics-is harder, but gives each game a unique feel (even if the game itself may have sucked). Actual 3D asset management and display is in a way easier than "fake 3D" render logic (Pole Position, After Burner, Super Castlevania IV). Imagine a modern fake 3D game like Galaxy Force II or OutRun but with millions of super-scalar sprites and no texture filtering for maximum crunchyness at 2160p 240fps with VR headset and steering wheel with pedals. The pixels would stay square individually even as you rotated the headset, like tiny solid-color billboards! We need more new games that use old render logic to leverage modern GPU parallel processing, for fun at least.
Those folks at Rare were always a bit extra devious; I wonder how they unlocked so many secrets of the NES?
Addendum: I favor the sound effects, it helped me snap to focus on the element you were explaining; they were subtle enough. I'm sure there's going to be some adjustment as you go forward.
Rare was crazy back then.
They actually reverse engineered the Famicom and showed Nintendo a demo program for NES before any official dev tools ever made it out of Japan.
There's claims that they understood the hardware better than Nintendo themselves did, and that this so impressed Nintendo that this is why they were doing things like Donkey Kong Country and the like on SNES, and how they ended up being so dominant on the n64...
They figured all of this out basically with no documentation...
@@KuraIthys Applause to them, but I wonder if they had any luck with the Mega Drive; to my understanding the documentation for the GEMS engine was _infamously_ poorly documented.
@@XanthinZarda gems isn't the only sound driver for the genesis
Programmers back in the old days were genies, finding such efficient and optimal solutions for the limited 6502 hardware in the NES!!!
Honestly, I've never really been able to understand anything in these videos but it's still interesting to watch.
I always assumed these games with "mid-screen" parallax were all using CHR-RAM to achieve their effect, using CHR-ROM banking didn't even come to mind. Pretty clever trick for sure. Love how well-packed Metal Storm's CHR-ROM banks look.
...Can't say anything good about the rest of Metal Storm's graphics though...
Bad, bad color choices! It's like staring at boiling puke!
the creativity of developers on systems where memory was limited is amazing
Mega Man 2 has a couple of funny parallax techniques you didn't cover! The iconic title screen uses sprites for the little windows on the building which move faster than the actual background (the building itself has a vertically invariant texture). Then, once the purple skyline is completely scrolled off screen, the scroll speeds up for the roof to come on screen.
More "axis-invariant" textures are used to give some of the full screen bosses a floor underneath as well.
On the menu screens, they use an 8x8 tile repeating pattern under the text boxes. Rather than do any CHR RAM shenanigans, they simply scroll the screen 8 pixels per frame to create the illusion that the background pattern isn't moving.
Man, I really like how you have added those little details in the video, be it the electron gun animation or those sound effects (especially for those who think RGME's videos are too quiet).
Wikipedia has listed four types of parallax scrolling: Multiple background layers, objects/ sprites, repeating graphics and raster effects. The former two are self-explainatory (and also are related in a certain sense) but the latter two, those explained effects, that's where people without knowledge on how the NES or CRT work might get trouble without a visual representation. Sure, there are some troublesome parts but since I'm fairly knowledgible, that's difficult for me to judge. But explaining that you just change the scrolling in the middle of the screen or change the graphics for the background is farily understandable, especially with the visual clue. Good job!
Dude, your production is awesome. The way you visualize the ram data in real time and show the permutations thru loops is absolutely amazing. I bet OG SNES Devs would have KILLED for your videos when they were starting out!
Another famous game with the bank-swapping tile trick is MegaMan 5 in its GravityMan stage. Looking at the PPU, there are many tiles that change all the time: the glowing lights, the electric arcs, the barber-pole-striped spikes, the random numbers... But when you get to a certain part of the stage, these tiles suddenly stop and only change when you scroll the screen, and this is where you see rows of girders that appear to scroll behind other background elements, because their tiles are updated with different alignments via the same series of banks as those animated elements. When you're in the rooms with the animations, a PPU Viewer shows you that girder rotating constantly.
Have you covered NES games that change the scroll amount one scanline at a time, like the Horizontal Oscillation from EarthBound 2? I suspect this is how MegaMan 6 achieves the "heat wave" distortion effect on its sunset in TomahawkMan's stage, since if you look at the Name Table, that sun remains perfectly round the whole time, and I don't see such odd edge shapes in the tiles. In the game Fire Hawk, you can see that at a certain point, each line of the ground scrolls a little more slowly than the line below it to produce a 3D camera effect on the whole. And now I recall that the bootleg port of Contra 3 to NES used the horizontal oscillation effect up the entire screen for its intro!
I've never understand a single thing in any of these videos, but I love watching them anyway. The obvious take-away is that coders for the NES were wickedly clever.
Man, these techniques of memory swapping are insane.
You and Ben Eater posting within a few minutes of each other... WHAT A TREAT!
Very clever using the sound of slow scan television for the sound of the electron gun
parallax looks really good on nes games
3:39 "but never vertically" I suppose it's not exactly that but I read the MMC2 (used in Punch-Out!!) and MMC4 (in the Fire Emblem games and Famicom Wars) reserved two key tile IDs to swap between two pre-stored CHR ROM banks as those tiles were rendered.
I know for the Fire Emblem was they stored the top and bottom window borders in multiple ROM banks but then when the left and right side border tiles (which used the two key tile IDs) were drawn, it would effectively, when loading the left side, swap to the CHR ROM bank with the font to draw text boxes and then swap back to the gameplay tiles when it reached the right side of the window.
Not familiar enough with Punch-Out to know how it used it, but I can probably guess the large animated opponents probably had a part. :)
Not gonna lie I’m damn proud of myself for figuring out how it works before you said it. The coolest thing about old games is how they had to pull crazy solutions like this to break past the limits of the systems. Really good video dude, it’s always a little astonishing how much effort you put into these. It’s such a niche thing to be passionate about but I hope you know we really do appreciate it!
Five months ago, I asked this under the Q & A video: "I would be interested to learn something about the limitation of consoles (e.g. SS can't handle transparency, how SS lose to PS in its 3D performance), and how some games overcame that limitation (e.g. by adding chip on cartridge for NES, and adding RAM cartridge for SS)"
This video is the thing I am looking for! Awesome and many thanks!
Interesting stuff.
I was kinda hoping to see an example of the sunset from the first level in Rygar that has mountain scrolling in from of it but I'm guessing that's probably sprites doing that.
I always love seeing how the camera isn’t actually moving, it’s just the background. Really goes to show what kind of cool mind bending stuff happens with some areas of primitive forced creativity.
One of the most amazing parallax I've ever seen on the NES hardware is Cossack Fortress 4 from RockMan 4 Minus Infinity:
ruclips.net/video/CipwPaJOF3c/видео.html
It involves really convincing and clever masking of tile swapping, and smart usage of objects to draw the level layout.
Omg that's so clever! Took me a good minute to figure out how they achieved it. They use two entirely different tricks at different points in that "screen" of the level, first one being standard mid-frame scrolling and the second being an insane fusion of sprites representing platforms, graphics swap on a tightly repeating pattern, a completely different scrolling routine and sprites to mask the seams, using a full frame of that tightly repeating pattern to switch between the two tricks. Holy mother of god that's dedication
OllAxe hey 👋
@@OllAxe Same. Using raster interrupts and object platforms is nothing special (you can even see that they spawn onscreen) but it's really the transition where you had to take a close look at the HP bar and notice that it goes behind the edges which implies objects.
@@MarioFanGamer659 Oh wow I didn't even notice that! Good eye!
I love this channel so much
Also really enjoyed the addition of authentic-sounding NES sound effects
It's just incredible that they pulled this off with so little resources available to them hardware wise. These coders were true geniuses.
Oh, this is super neat! I never actually had very many games for the NES, so I don't think I got to experience any of these effects back in the day.
Kind of curious what the sprite zero hit function is. I knew about a couple of the other simple tricks highlighted here, but I don't think I've ever heard mention of that one.
Its no wonder companies back then needed whole teams to figure all this stuff out. Really logical magic work
And here I thought the strange flickering of the background in Volkmire's Inferno of Battletoads was just a neat thing the developers put in.
i was totally not understanding until the visuals for the memory came in, top notch editing! thanks for the explaination!
Ooh, keen. See, I assumed games like Metal Storm were using extra hardware to write to some on-cart RAM region for the PPU tile updates, but a ginormous amount of ROM banks work just as well. Learned something new!
Your videos are really high quality, it's great that you use the time wisely and don't add unnecessary filler
Heres a suggestion:
Can you explain why the game genie code YEAAAA causes super mario bros to bug the hell out?
Easy, it changes one of the VRAM buffer offsets and causes the game to write to unintended portions of the game's memory. This code corresponds to writing 07 to address 8080, corresponding to VRAM_Buffer_Offset in the disassembly.
The result as far as I can tell is that the game misunderstands its own PPU upload queue.
Edit: misunderstood a few things, oops.
in this case, "yeaaaa" may not be referring to a happy endorsement, but may actually be screaming.
@@Selicre Thank you man, really informative, but it would be nice to see retro game mechanics actually use some of his good and neat animations and explanations to this topic.
@@Weyzar I might try my hand at making some videos like that when I have the time.
That sounds like the kind of thing he would spend a minute or two explaining in a Q&A video. If he ever does another one, ask him then.
i wish there were more detailled channels like yours about how older systems are working, as for the hardware than for the software. if some one knows more channel as good as this one... Great job, thanks so much for all thoses insights on system of my youth.
Sounds like someone's character is getting new perks with the sound fx, love the video
This is a video I watch every time I try coding for the NES. Thank you!
Learned like 30 things in 20 seconds around the two minute mark, instant sub
30 years later I discover the scrolling backgrounds were far more complex than I ever thought as a kid where I explained it as "Cool! They make the backgrounds scroll at different speeds to make them look more 3D!"
It's amazing how the sound and tile movement effects you do here help me, a giant math idiot, understand what my Nintendo is doing. Keep doing this stuff.
As a programmer I envy these people, they must have been amazing programmers
As a programmer I'm really glad that I don't have to work in assembly.
@@KiroOsexXIII honestly, 6502 assembly isn't that bad once you get used to it. x86 assembly on the other hand, that's a fucking nightmare
fantastic explanation; even though I'd already seen all these tricks explained elsewhere your high production values and great visualizations made it totally worth watching.
Very nice explaination and visuals. I love learning about the techniques game devs used to workaround ancient hardware limitations.
Super fascinating what developers pulled off in the NES' later lifecycle. The games looked brilliant
I don't think I ever noticed just how beautiful of a game Battletoads was until I watched this video.
I love the sound design in this video
You've stepped up your game on the presentation! The sound effects here are a nice touch. Enjoyed the video, as always.
the combination of both techniques in sword master looks amazing
Wonderful job! Would definitely like to see some video regarding how Sega MD/Genesis achieved some incredible effects when the console doesn't have anything like SNES Mode 7 in the future.
Old school game devs were BEASTS
The video editing makes these videos super enjoyable (along with the information and calm presentation, of course!).
I sometimes forget how much production value is in these videos.
Dude, the animations in this video are off the charts. Amazing stuff right then and there!
I am currently thinking of how to best extract resources off a GBA rom that I dumped and while the GBA is obviously a different console, I can't help but still notice that a few things stuck - patterns, so to say. This is seriously an amazing channel and I learn so much from it. Thank you very much for sharing this wonderful knowledge and putting all of those effords into every single detail - from the live memory map updates, to the CRT animations to just...well, everything. It is gorgeous and thoughtfuly put together. Definitively amazing!
There's a fair bit of overlap.
Once you start digging you see a whole series of techniques and concepts that are widely applicable to a large number of 8 and 16 bit consoles and microcomputers.
Everything from the atari 800 to the NES to the sinclair spectrum to the TurbographX 16 - they all have their own quirks, but a lot of concepts and basic features apply to all of them.
And the GBA, while technically of another era (it has 32 bit instructions available, for one), is very much like someone took the Super Nintendo design, expanded it (with things like more video memory, 15 bit bitmap modes, and mode 7 style effects on multiple background layers at once, alongside regular background layers as well), simplified it (there's far fewer graphics modes or mutually exclusive features), and tweaked it to work as a handheld...
There's a reason that system got so many SNES ports;
It certainly isn't a SNES in any direct sense, but it's lineage is pretty clear nonetheless...
you kinda lost me around the halfway mark, but i'll watch this again tomorrow. this is fascinating, thanks for uploading!
The editing in those videos is fantastic. Great content.
I don't know if you have yet or not, but I would absolutely LOVE to see you cover the different mapper chips/chipsets that were used for the NES to achieve things like extended memory, or being able to scroll X and Y in SMB3. At least the common mappers, anyways. I'm not sure how many there were, but with the unlicensed games there were probably tons.
The addition of sound effects was a nice touch! Great video as always
Very fascinating!! I’m intrigued like a mofoneed to watch videos like these, sir that’s why I’m subscribed to you, yeah-yeah games are fun but always wanted to know what makes. These old school games tick
Great sound work in this video. Your visual effects were already top notch, and these great sound effects lend another layer of quality to your work! Keep it up!
I love it when you make NES-related videos, and this is an amazing one, thank you!
I love that these videos are so interesting and entertaining they must take a lot of time and effort
i never knew that the nes could do pallarax, thats so cool!
The nes turns out to be waaay more weaker then i,ve ever could imagine, those first generation nes games really looked ,played and sounded limited , they did feel more like enhanced atari 2600 games, HOWEVER, with the advent of mappers,the nes could do soooo much much more,by increasing it’s ram & rom space, while bankswitching allows to bigger rom size games, heck it’s even possible to hijack the nes ppu and pump rendered graphics to it, it’s just mind blowing how those final nes games lloked,play and sounded like early 16bit games.
It impresses me how much effort the developers put into doing effects like this, just to make their games look that much better.
Y’all really upped the ante on these videos, already great videos are looking even better!
The only limitation is that your background, other than drawing the screen scanline-based is that your background repeats very frequently.
That was incredible. Thank you for explaining so clearly, with very informative animations!
Great video 👍! As a current RUclipsr, I am contantly searching for new ideas! Nice Job!
Wish you had spent a bit lore time on those blue mountains because that effect was super convincing and rally astonishing to me!
Great video as usual! But a small correction about 3.38:
You actually *can* split the screen vertically on an NES. By doing out-of-order register writes on $2005 / $2006. But due to there not being an easy way to sync the CPU with the PPU, under normal conditions the variance in which pixel you are at will be too large to have this be glitch-free.
There is however a technique discovered by Shay Green a few years ago, which allows reducing the variance to just +/-1 pixels between frames on an NTSC console (but a bit more for PAL).
wiki.nesdev.com/w/index.php/Consistent_frame_synchronization
And this is sufficient to enable predictable updates of the nametable address for $2006 with carefully timed code, as well as reducing the glitch of fine-scroll update of $2005 to a few pixels on NTSC.
I don't know of any demos that have *really* put this to good use yet, and even if it would have been known back in the day, it probably would have been impractical for games to do this - you only have so many cycles / scanline to fit your writes in anyway. So the simplified answer is indeed that you can't, because you won't see it in any old titles...
But the longer answer is that it *is* perfectly possible to create vertical split-screen on the NES with this technique, if you hide the glitches from the -1 / +1 variant with sprites (or alternatively, I *think* having a few identical BG pixels when writing $2005 should work too) But due to the complexities and limitations we are unlikely to see the technique used much, even in newer homebrews. :)
Didn't the MMC5 have a vertical screen split feature, too? IIRC barely anything uses it.
Fairly sure there is at least one game using a vertical split screen...
But as a general rule such things are infinitely more complex than horizontal effects.
The reason for this is pretty straightforward;
Let's say you want to split a screen in two - if you use a horizontal raster split you have to update a few memory variables once per frame.
The timing can be tricky, and depending on the complexity of the effect, so can getting the update to happen quickly enough...
But even so, you're doing ONE update every 1/60th of a second (or 1/50th on PAL)
Now contrast this with doing a vertical split; Since the scanning pattern (assuming normal orientation; some arcade machines had monitors mounted in weird orientations that defies the standard logic) is horizontal, to create a vertical split requires that you update the relevant data on every scanline. (twice in fact, since at the start of each new scanline you have to reset it to the first set of data.)
Even leaving aside the timing...
For a 224 line image, this requires performing 448 updates per frame.
Vs... The horizontal split requiring ONE update...
The timing is worse, and you have to do hundreds of times more work...
You can see why games rarely did this unless there was some kind of explicit hardware support designed to do this kind of thing for you. (such as the Mega Drive which has offset per column scrolling as a PPU feature, or the Amiga COPPER which can automate DMA transfers to specific registers at set intervals measured in pixels; You can't update every pixel, but you can update every couple of pixels...)
It's also why mode 7 on SNES can mimic perspective effects in the horizontal plane, but you cannot realistically for instance create the effect of something rotating around a vertical axis.
(the actual perspective effect is handled through altering various scaling parameters every scanline. To create an equivalent effect along the other plane would require adjusting parameters every pixel.)
@@Wuerfel21 Yeah it does. But to support fine-Y scrolling, the cartridge has to be "wired" for that. (I.e., connect certain soldering pads on the PCB to give the MMC5 chip access to certain address lines)
If it isn't, only multiples-of-8 can be used for the Y-scroll in the split screen section. A certain Japanese shoot-em-up with a long name uses it for the title screen, but only with multiples-of-8, leaving the lower 3 bits as 0.
OTOH, the ending screen to Bandit Kings of ancient China appears to write the lower 3 bits of the Y-scroll as well. But the cartridge was *still* wired to not support it, which ends up kind of buggy.
So even with the he feature in place, it saw little practical use. Then again, many of the mmc5's features were left unused in games using the mapper. The most notorious example is Castlevania3 which probably only used mmc5 because the PRG-ROM bank-switching was very similar to the VRC6 mapper used by the Japanese version.
And the fine-X scroll is not possible to change, since only CPU writes can affect those lowest 3 bits - extra cartridge hardware can't. So the HW feature would still need to be complemented with writing the fine-X scroll multiple times per scanline if you want truly independent scrolling. And this can never be 100% glitch-free, due to not having an integer number of CPU cycles per scanline and the write taking effect immediately with no buffering.
So again, short answer is that it's usually more trouble than it's worth :)
@@KuraIthys I don't think there is any non-mmc5 game that does it. In addition to the extremely CPU intensive work you mention, you also have to sync the CPU with the PPU to minimise misalignment. IRQs aren't precise enough, so you really need Shay Green's complicated consistent-frame-sync method to minimise misalignment This was only discovered a decade or so ago, and would have been impractical even if it had been known back in the NES's heyday.
With the mmc5 you get some hardware support for doing this which removes the CPU intensive part but comes with limitations - most notably no control over the fine-x scroll, so both screens need to have their X-coordinate as a multiple of 8 in practice.
very interesting! I can't quite wrap my brain around it.. but it's very interesting. Time for a refresher on IRQs i think.
IRQs are just like function calls inserted mid code. So they interrupt whatever is running when a certain pin on the cartridge is energized. Therefore it is possible to make a system that energizes that IRQ pin when a certain part of the graphics data is requested (which corresponds with a certain part of the screen being drawn), and quickly change some registers to snap the background to the right place.
Some parallax scrolling might also be possible with mid scanline IRQ, but would also involve sprites for assistance to hide visual glitches.
I was not expecting a video on Sunday, but then maybe it’s Saturday for you
Awesome video yet again! Kirby’s Adventure would be an amazing video because of all the tricks they use. How did they get around the problems super Mario 3 had, because I thought both use the same chip?
One issue, the scrolling artefacts, was simply bad programming on SMB3. There still are artifacts on Kirby's Adventure but it's only palette artifacts as the palette is set on a grid of 16x16 tiles instead of 8x8 tiles for the tile data.
Neat explanation! Thanks for uploading! I like the sound editing!
Another great example of bank swapping to mimic scrolling layers: Batman Return of the Joker.
In the opening stage they have a cloud pattern that constantly scrolls by the screen, and as you approach the first building you can see the scrolling effect get interrupted right int he middle of the screen, even without the player moving.
Nice, looks like I was right on the pixel preview on Twitter ;D
Top notch video as always, will check out that new support platform.
Wooo! Metal Storm!
It's about time he made a new video.
so if i'm getting this right, it's like Sonic 3's palette swapping sphere, but instead the concept is used on sprite data? i'm not super savvy but at least this video was very nice to watch and listen to, aha!
(on a sidenote, i like how the video background is the same as youtube's dark mode background, it feels more spectacular that way!)
is there a good explanation of the sonic 3 sphere somewhere? i googled it after seeing your comment and couldn't find anything
@@random832 Coding Secrets put out a video fairly recently about it. ruclips.net/video/HuF22Juj1BA/видео.html
random832 game coding secrets here on RUclips I think it’s called
@@litjellyfish thanks, that was enough for me to find it ruclips.net/video/HuF22Juj1BA/видео.html
Loved the sound effects
Been waiting for the third AV effects video! Already loving it!
A question - how do beat 'em up arcade games like Streets of Rage know which attacks connect and which don't? It's definitely not sprite collision, since you can whiff something if you're behind someone even if your punch goes through their sprite. I've always wondered this and would love an explanation!
also really impressed by how smooth that mech's animation is in metal storm
Good question: Along the same lines, I'm curious how romhackers can modify the levels & hit detection still works flawlessly ?
...like the simple scenario of standing on a ledge VS falling into a pit to your death (for platformers).
...for this, it might actually be "sprite detection" (i.e. the mathematically equivalent check on objects in memory) ?
Nice sound effects!
Fantastic as always :D
I greatly enjoy this channel.
Greatly..
Great editing and explanation!
Nice use of sound effects, man.
I was hoping that this video would explain how the 3D effects in the last stage of Battletoads work, but I feel like that should be saved for another video.
Still masterfully explained. You have my comment for congratulatory and economic purposes.