It is. Today we have insane speeds and massive amounts of memory and everything is abstracted away, making us lose touch with the actual iron or necessitating creative hacks. I mean, there are frameworks to build games with in a canvas element using Javascript that runs in a browser on machines 10 years old. (I Know, I'm building such a framework!).
It's not just the power of the machines and the tendency to abuse them, but the fact that most people are learning or working on languages not strong enough to make games on older systems. By strong, I mean close to metal, C can work on consoles like the N64, GB, even the NES for a reason; it can communicate with these machines, whereas C++ would be much slower, and not close enough to the machine to get results. Heck, even with C on a system like the GB and NES, you'd still need to write somethings in Assembly to get the best performance. Now, languages like C# and Java don't even use pointers, meaning you can't tinker with memory addresses, which you'd need to be comfortable with to run something on such limited hardware like the PS1 et al. I believe that's one of the reasons these consoles are an attraction for talented programmers. Google Sonic Z-treme for Saturn, guy by the name of XL32 (if I recall), you'll be blown away by the few vids he uploaded for what he's done on a Saturn thus far.
It’s still a necessity in blockchain smart contract development. You’re forced into it not by hardware constraints, but by financial requirement. Every computation you make comes down to a miner’s transaction fee, which is a bill someone has to foot; as opposed to relying on having X basic system requirements that pretty much everyone has now that we put supercomputers in our pockets. With blockchain dev, you’re out there trying to find the most optimal way to balance safety and speed with minimal resource use in even really simple stuff most modern programmers take for granted, like even literally just generating a random number. And if you do it right you can make millions in a couple heartbeats. If you do it wrong you go straight to jail. Super fun stuff.
@@pyxelpub8251 C++ has many features that can cause slow performance but you don't have to leverage all those features. I've used C++ many times on older or slower hardware just fine. The trick is to not go around turning on and leveraging every feature out there for C++ but to instead be careful and conservative. Also, it's a bit of a myth that writing pure assembly is always faster. Don't get me wrong, I love assembly and it's one of my favorite languages. But the reason why writing assembly was faster was because compilers, well... sucked. They were pretty crappy lol and spat out horrible assembly code. In 2019 modern compilers produce assembly better than most any human could ever hope to write.This was tested many times by having expert assembly writers write the same code that was compiled by a compiler using C. The result in any situation that I observed was that the compiler generated code was equal to or faster than even some of the top assembly writers. This lines up with people who create compilers, they'll tell you the same thing. Writing assembly is only ever suggested for older compilers that quite frankly were really bad. The compilers for Gameboy were one such compiler that's way better to not use and to instead write assembly by hand. ---- I think people still thinking that hand assembly is always faster stems from the disbelief and dislike of the idea that a computer can generate better code than a human. It's almost a bit nerving and easily dismissable as a "no way" kind of thing. But I mostly agree with you, I hate super high level languages that abstract everything away from you and i especially hate languages that run in a virtualized or interpreted setting like Java, Javascript, or Python. Actually I hate python more than anything on Earth lol. But all just my opinions, I'm super old school when it comes to programming.
I love it when people really take their time to explain to me exactly how this stuff works in the absolutely simplest terms possible... And I still don't understand how it works...
@@mynamo12 I would suggest taking a look at 2 things online. How a flat panel TV works Pixels, resolution, etc, and I would look up how a graphics card works. This may help you understand it easier if you do not know about them.
I remember being amazed as a kid that you could move "off" the screen "like a real console", all the LCD games I'd ever had until seeing this had a static background painted onto the LCD reflector. those games sell for a fortune on eBay now but they were so crap - I think they're rare because most people flung them at the wall for being crap.
Early LCD screens were susceptible to screen rot if not stored correctly, so I imagine a lot of the handheld games spent a few decades in the attic slowly turning into a brown goo.
@@gwishart hell even Game Boys have had their LCD polarizers damaged from the sunlight of their prime time gaming on the sun. Had to refurbish my own GBC's LCD in fact, maybe not so common on colder climates but here in Brazil at least you see a ton of GBCs and GBAs with a ruined LCD, thankfully repairable (albeit not for the careless types...)
I loved Game Boy. Even today I am able to play games using an emulator and still have a blast. The games were all about having a great time, unlike today where the games are more worried about graphics and less so on the whole game experience.
@@jess_n_atxsadly if a game cares more about graphics instead of gameplay people will choose it over the games that care more about gameplay therea people who want the gameplay more still
Metroid II : The Return of Samus is still one of my favorite games to this day. I spent a lot of time in the hospital when I was young, and remember being immersed in planet SR388 with Samus for hours on end hunting metroids. Medical conditions be damned.
It was pretty standard stuff by then, which is why they had this interrupt in hardware. If MVG ever does a video about Atari 2600 graphics and the tricks they used, you'll see the era where this stuff began.
@@gblargg Yeah by '89, having a scanline interrupt pretty much means you get a free pass to do all the stuff that *actually* required programming trickery on older platforms. :P
@@gblargg Exactly! As an 2600 homebrew developer i can vouch for this. It's all about thinking outside the box. Creative thinking is what i call it and as many tricks are well known, there is always many more discovered on a daily biases. It's what makes programing for these systems so fun and rewarding. I find my mind always thinking of new ways and tricks to achieve effects to give that wow factor. Having two eight bit sprites a ball and two missiles - 128 bytes of RAM - 4k of ROM - restricted to horizontal colour banding - zero VRAM and zero frame buffer it's challenging. One would thing anything more complex then Pong would be impossible yet with enough creative thinking nearly anything is possible to an extent. I love coding for the 2600
programmer job description: "solving problems you didn't know existed, in ways you don't understand." sometimes also referred to as "wizard" or "magician"
As someone who studied COMPSCI, I really enjoy these graphic walk through. Even though I dropped out of the 3d graphics course, 2D looks much easier 👌🏻
I had a blast developing Lemmings 2 for the 8-bit handhelds. The Game Boy was comparatively underpowered to the SMS and GG, but Nintendo made some smart hardware optimisations with their "sawn-off Z80". It was fun seeing just hard you could push the limits of the machine, especially if you were trying to do anything non-character mapped. If you want a good example of just what the Game Boy is capable of, check out the port of Hard Drivin' - it's a stunning achievment.
Love these inside tech breakdowns of the retro systems. I did my 8-bit twiddling deep dives with the Commodores up through the early 90s. My day job had me burried in x86 land about then, so I really missed out on the Nintendo / SEGA tech at the time. I really appreciate the trips back in time and looking under the hood!
Just as I thought you had depleted all your series, you make a brand now How X worked on the Y series. This is great! While I expect I wont learn much I hadn't herd before, I still low to see your presentation, and how this really "dry" material can be presented in a memorable, interesting and entertaining way. Please continue doing what you do.
Bloody great content. I had no idea how lacking in specs the GB were! Crafty programming always prevails, something modern game programmers should look back to! Always look forward to your uploads!
That actually sounds pretty cool. Especially knowing the limitations of the system. As somebody who for the longest time sat with a below minimum spec PC and played Doom on the 3DO, 10fps is still better than a slideshow XD Would love to see your port :>
Great video, this was really interesting! One particularly cool "manipulation" effect I like from the OG Gameboy is how the "Pikachu" voice recordings were converted and replicated on this basic hardware. I can't remember the exact technical details around it, but remember reading about it a while ago - super fascinating.
I was never a Gameboy kid as I stuck to the consoles, but as an adult I find these programing tricks devs managed to pull off fascinating. I could just imagine the buzz in the office when so and so pulled off some impressive visual feat via clever programming.
In the case of Super Mario Land, the reason for the single direction levels wasn't actually linked to the video hardware; it was due to the limited ROM space. SML only used a 64K cartridge, so the levels used a form of run-length encoding to compress them, which only works when the data was read from left-to-right.
Even as a programming novice who doesn't quite understand everything you were talking aboutI love this video and I'm getting closer everyday to understand how these wonderful of machines work please make more and thank you very very much for your wonderful videos
The coverage of these low-level old-school techniques is very interesting. I am always looking forward to learn how to pull these tricks with limited hardware.
Wow. I never even had a clue the Game Boy systems could be leveraged to produce so much when the hardware was seemingly simple at face value. Thank you MVG for these well put-together videos that neatly and clearly explain in great detail how these systems function. It is fascinating to learn about the trickery the developers of these games used to accomplish such wonderful visual effects. The work they've done really is magic in a way! And it goes without saying that I definitely want to see more videos like this that deep-dive into the behind-the-scenes inner-workings of hardware.
I'm programming Zelda and Minecraft for the Game Boy Advance! I posted progress. You should share how the GBA draws graphics. It's pretty interesting so keep up the good work!
I absolutely love these videos explaining how the hardware in retro game systems works. I hope to see more of this for other 8 bit and 16 bit systems as well.
It's a great video. I owned all the gameboys growing up, brought back so many memories. I remember getting so excited over the newest ones when they came out. The gameboy pocket that could fit into my pocket, the color that could display more than black and white, the advance and then the foldable advance then onto the DS lines. I had to beg my parents on every new one but was so happy I could get my hands on them. there were lots of people I could use the gamelink cable with, practically grew up using the gamelink cable. So many memories ^_^
Its interesting to see the approach Nintendo has work so well, "Take current hardware and make it cheap" vs making a expensive device based on next-gen hardware.
I never thought about how fascinating some effects were when I played Game Boy games when I was a child but after listening to your explanation I see them in a different light. I would really like to hear more about this topic and it would be really interesting to hear what and how changed with the Game Boy Color.
My experiences with the Game Boy are vast. I loved the GB. Games? Pokémon, Tetris, Mario, Kirby, Final Fantasy, LoZ, the list is long, the memories, wonderful.
This was a fascinating video and I would love to see more about other aspects of the GameBoy you mentioned like the sound, or maybe what sort of hardware changes allowed for things like the GameBoy Color to work. The original GameBoy was such an important piece of tech for me growing up and I appreciate it even more now than I did when I was a kid, thanks in large part to videos like this.
Love deep dives like this! Would love to see more of the subsystems broken down. (And I would love to see a modern developer convince a Game Boy developer something is "too hard" or "impossible.") Still have my red Game Boy Pocket -- my preferred unit, as it has most of the battery life of its larger predecessor, but a higher-contrast screen, and actually fits in a pocket! Outside of the Nintendo classics, favorite games are Lemmings (for single player) and Battleship (for 2-player).
What I liked about it. It was truly portable. The contrast feature meant it could be played even in the sun. Portable devices are hard to see outdoors. It wasn't the case for NGB
I'm so glad the kemenaran blog is getting some love on RU-vid. Disassembling the Link's Awakening ROM is a big reverse-engineering effort by a bunch of dedicated people. I thanked the guy in chat
I am 19 But obsessed with old technology i got a gameboy and I recently found a copy of tetris anyone would say why not just play it on my own but theres something incredibly satisfying about playing these games on original historical hardware and im fascinated by how all of it works especially how programmers found ways of making cool effects in games by taking advantage of small tricks
one thing for sure, Game Boy is 1 HUGE machine of its portable time. Not to mention the "3D" effects that some developpers managed to achieve on it is impressive, especially Argonaut software, who made the impressive tech demo X, which led them to using the FX chip on their SNES games to make the first Starfox
great video. Gunpei Yokoi was such a badass, sometimes I feel like he doesnt get enough credit for his tremendous work in the industry, people always seem to trash the virtual boy and his version of super mario land.
Played the original grey game boy on launch day. My dad still has our family game boy and it still works. I have a Game Boy Color and GBA SP and thats how i get my GB fix. Great in depth video.
There's a slight misnoma at 1:05. Whilst the SHARP LR35902 is technically a mix of the Z80 and 8080, the Z80 instruction set is actually a complete superset of the 8080, with only minor backward incompatibilities from the Z80 to 8080 caused by the additional instructions added on the Zilog chip. The additional instructions on the Game Boy CPU differ both from the original Z80 and 8080 instruction sets, being completely unique to the LR35902, meaning it isn't technically a mix of the 2 processors but a completely new instruction set entirely, being backwards compatible with neither the Z80 or 8080 due to an incomplete 8080/Z80 instruction set and the addition of entirely new opcodes. Regardless this is a great video and the effort put in is amazing. I've always loved your attention to detail, particularly on your 360 emulation videos!
Great video dude, I shared it on the Gameboy FB page I admin on, I'm a simple pokemon man myself but Solar Striker would be my 1 recommended game to play to anyone, cool music and a fun little shmup.
I remember having my original Gameboy with the external powerbrick. Some of my favorite games for it where Legend of Zelda: Links Awakening, the Super Mario Land Games, Mega Man series, Castlevania series, Metroid II, Super RC Pro Ram, and R-Type i and II
It would be cool to say that a lot of these technical features were pretty standard for the 80's decade and all relate to tile (refered to as characters at the time) based graphics. Early 80's arcade games were already using these pretty intensely. The gameboy was simply the first tile based handheld console.
One smart trick used was to take advantage of the screen's low refresh rate to flicker two images back and forth to create a translucency effect. Batman: Return of the Joker (from Sunsoft) did it to create a flowing water effect in the sewer level. A Japan-exclusive shooter called Chikyuu Kaihou Gun ZAS flickered two different backgrounds scrolling at two different speeds to create depth, simulating clouds flowing over the ground level.
Well dude, it's a great video about Gameboy! It's fascinating how these old hardware can run such a very impressive game, despite no 3D (exception for future Gameboy system which had pseudo 3D tech). Also, most of these game are the best game you can ever play for hours without being too bored, like what mobile games has gone since then. Btw, thanks dude for covering one of my beloved portable system! It quite remind me back then in 2008-2012 era of portable gaming frenzy in my place, especially living in a third world country. I would miss these forever :)
I was real little when I had the original, I only had like 3 games for it, but man did I play Megaman 2 over and over again, I couldn’t get enough of it
Would love to see a complete wrap up of each of the gameboy iterations over the years, from the original giant brick, to the slim variants, colour gameboys, and GBA variants like the SP.
Neat video. I grew up with the system. Gotta say it has a powerhouse game library too. Links Awakening, Mystic Quest, Gargoyle's Quest, Belmont's Revenge and so many more deserve mention.
My first game on Gameboy was Tetris. Old friend mother had it in the bathroom. I played it and got hooked straight off and still playing Tetris on my Gameboy everyday.
Love your content mate. Been watching your stuff for over a year without noticing I hadn't subscribed. Well, fear no more, liked and subbed. Keep going buddy.
This is awesome. Super Mario Land was actually the first Super Mario game I've played, so it's awesome to see a technical breakdown of how it worked. Especially now that I have Comp Sci knowledge and can appreciate it more. One of my favs on the original GB was Burai Fighter. I should fire up the NES version and try to beat it. I remember it being a bloody hard game.
Not only was the GameBoy's minimalist hardware highly capable when used right, it also made the GameBoy _superior_ to its competition in a very key way: Battery life.
so very fascinating. I spent my youth in this (Gameboy, C64, Atari ST 1040, Sinclair ZX 81... etc.). Great to revisit it from a more profound, scientific way. Thank you very much for the good work!
I really liked this dive into how the gameboy made its graphics. Keep these videos coming for other systems. I think it would be cool to do the GBA especially games that had the immersion of 3d graphics.
You did a good job keeping it in layman's terms for non-programmers. And since you asked about favourite games... Pokemon Red... hours and hours and hours sunk into that game. At least hundreds.
Data compression was an important part of every videogame system that I ever worked on. These big scrolling worlds would take up too much space, so they have to be stored compressed on the ROM, and decompressed on the fly.
One of my favorite original gameboy games is X Ekkusu. It's a 3d vector based first person shooter, and I'm sure it uses some really amazing effects to get its 3d, and I would love to learn more about it
Absolutely interested in retro system tech breakdown/comparisons. Please continue series! Nes & Master System, Snes & Genesis, PC-Engine and Neo Geo. Tons of material here
Like always, a very good video. Currently i learn how to program on the Sega Master System and it's pretty cool to see that many tricks you showed works on this console too and share the same philosophy. The most fascinating things for me it's the color ram used to saved more VRam. Instead of saving color RGB informations for each pixel inside tiles, you just need to point the index of the color you want inside the color Ram, a clever choice. And the tiles data is stored in the way to read 8 tiles at the same times. Don't know if today the same optimisation exists for current 2D engines...
As for what my favourite OG GB games are? Easy! Though in no specific order... ;) *Super Mario Land + Super Mario Land 2 *Gargoyle's Quest *Metroid 2 *Revenge of the Gator *Legend of Zelda: Link's Awakening *Final Fantasy Adventure