MissingNo.'s Glitchy Appearance Explained

Поделиться
HTML-код
  • Опубликовано: 26 апр 2020
  • How does MissingNo. end up looking like the way it does? And how exactly are Pokémon sprites displayed on the screen? It's all explained right here.
    LINKS
    Twitter (updates): / retrogamemechex
    Patreon (support): / rgmechex
    Discord (discussion): discord.rgmechex.com
    PATRONS
    Thank you to all of my patrons who support the channel!
    Anthony Losego, Dan Salvato, F. Murmel, Jonathan Aldrich, Ange Albertini, Avi Drissman, Mike Gerow, Larry Koubiak, Tina Wuest, Owen Christensen, Gynvael , Buddy , Chris Margroff, Brandan Lennox, Nik , Jason Hughes, Diamond Ice, Chris Post, Cypher Signal, Shannon Potter, Rupix , Gabe S, krivx , Walter Huf, Pixy011 , David Spalding, Acceleration Shark, David Johnson, Rory Kelly, Carl Cassler, Joe Mecca, Michael Greb, Kefen , Heptonion, leftler , Scott Beca, 19day , Michael Dragone, John Losego, Travis , Arthur Kunkle, tripper , Nebelwerfer Granitara, Sten , 333Rich333 , Glenn hEADcRASH Sugden NPC, Alex Yancey, David Mazarro, Steven , null , Ryan , Corey Ogburn, Martin Trozell, Garret Kelly, Jake Hickman, Narskogr , Joel Kuhn, Dan Shedd, Sembiance , Xander , 4F Panda, Max Roncace, A Sentient JDAM, Brian Henriquez, Travis Nellor, Zach Hugethanks, dishsoap42 , Mikely Whiplash, Yakov , Oxygen Chen, RetroReversing.com , yuriks , Ceres , Jeremiah , jesugtz , Chris Roy, Chris Connett, Mark , Matthew , sapslaj , Jonathan Scott, Xkeeper , Bjoern Hansen, ers35 , Daniel Bernard (ReckedCat), Lukas Kalbertodt, Vier Ladair, Bwangry , iPaq , zephyrin , Kit Spindler, Johnathan Roatch, Jeremy Wright, Brandon , Matt Shepard, Felix Freiberger, Sypwn , Niles Rogoff, Kusabi , Reflet , Yann Le Brech, Evan , Eugene Bulkin, Walter Weaver, Gethiox , Articate , Julien Oster, buzzert , Steve Losh, Samuel Stoddard, HattyJetty , Paige ? Hex, Yeero , Cruz Godar, Linh Pham, Noah Greenberg, Nick Rogers, Sean Nelson (audiohacked), Bryce , Andrew Yukhymchak, Sean Bryant, John Gabriel, BazBadger , Kyle , Master Knight DH, Tim Romero, Michael B., Eric Loewenthal, Adrian Haslinger, Proxy , Nolan Varani, Thoscellen , Wii2 , Daniel Robinson, Hans Jorgensen, waielal , Daniel A.A. Pelsmaeker, Aaron, Max Gartung, Nicolas Dohrendorf, Eric Hoppe, Chaz Serir, derHinek, & Gyiyg!
  • ИгрыИгры

Комментарии • 2,2 тыс.

  • @gretarreynisson3280
    @gretarreynisson3280 4 года назад +2054

    13:25 Ah yes my favorite Pokémon, A Pair of Rocks. Very useful against Scissors, not so much against Papers.

    • @wraithcadmus
      @wraithcadmus 4 года назад +65

      What's the betting it's not Rock or Ground type?

    • @gretarreynisson3280
      @gretarreynisson3280 4 года назад +83

      wraithcadmus I’m betting 10₽ it’s a Rock type and 20₽ it’s a dual Rock/Rock type

    • @Bagabundoman
      @Bagabundoman 4 года назад +87

      I always had trouble finding the Stone Stone so I could evolve it into Three Rocks.

    • @SomeIdiota
      @SomeIdiota 4 года назад +36

      Missed opportunity to say Scizor!

    • @wraithcadmus
      @wraithcadmus 4 года назад +59

      @@Bagabundoman Like Game Freak would be lazy enough to make a mon that's just three of an earlier one!

  • @fders938
    @fders938 4 года назад +2384

    Watching that hall of fame data get overwritten with garbage was so satisfying.

    • @meILM
      @meILM 4 года назад +17

      Nice

    • @centdemeern1
      @centdemeern1 4 года назад +18

      Yeah, right?

    • @deoxal7947
      @deoxal7947 4 года назад +98

      THE SACRED TEXTS

    • @baragonkunfan94thesecondar60
      @baragonkunfan94thesecondar60 4 года назад +8

      Deoxal ==\
      ah shid
      sorry i was cleaning tea off my ipad screen

    • @sometimesidreamaboutamelia7703
      @sometimesidreamaboutamelia7703 4 года назад +13

      its kinda like how i watch sorting algorithm videos because they look so cool but i desperately want to stop watching it and get back to work

  • @SethEverman
    @SethEverman 3 года назад +5281

    jesus this is an incredibly well made video

  • @lagcom
    @lagcom 3 года назад +1441

    Him: “the actual compression and decompression algorithm used in the game is fairly complicated”
    Also him: decompresses an entire 5*5 Pokémon sprite by hand on a livestream

    • @Lokear
      @Lokear 2 года назад +177

      Well, yeah, but he is a lot more capable than a spaghetti-code Game Boy game.

    • @hznwhz
      @hznwhz Год назад +16

      That part of the video was playing right when I read your comment. Coincidence? I think not

    • @alfonzog6327
      @alfonzog6327 Год назад +40

      He did WHAT

    • @FreeSeoul
      @FreeSeoul Год назад

      @@Lokear lol what. You sound so dumb here. You think, in retrospect, that he is smarter than the Game Boy developers who made the game? (not spaghetti code btw, you clearly don't know what that means) It's a lot easier to understand old techniques than invent new and improved ones.... you think someone who recounts Newton's laws is smarter than them because they can write proofs faster? hahah bro. Just be quiet man.

    • @earlymorninstonedpimp
      @earlymorninstonedpimp 11 месяцев назад +17

      Obviously it wouldn’t take him a lot of time, he already knows how it all works. A person with surface knowledge would take a while to figure it out.

  • @computer-love
    @computer-love 4 года назад +1744

    *memory: unprotected*
    *buffer: overflown*
    *hall of fame: corrupted*
    *yep.. it's segfault time 😎*

    • @joshuahudson2170
      @joshuahudson2170 4 года назад +78

      MMU not found. Can't segfault.

    • @anubeia
      @anubeia 4 года назад +16

      make a segue
      escape on your Segway

    • @kanden27
      @kanden27 4 года назад +31

      ...Hotel: Trivago

    • @crqf2010ruler
      @crqf2010ruler 4 года назад +11

      @@kanden27 Trip: Advisor

    • @KayOScode
      @KayOScode 4 года назад +4

      I don't think it had an os

  • @Flowtail
    @Flowtail 4 года назад +1534

    As a computer science major, it continues to astound me that computers work at all

    • @ais4185
      @ais4185 4 года назад +85

      Life is a suboptimal computer in many places, so that's pretty amusing as well.

    • @Leafia_Barrett
      @Leafia_Barrett 4 года назад +100

      @@ais4185 Yep. Glitches in biological computers are what we tend to call "disorders", and oh boy there are SO MANY of those that exist.

    • @cybersilver5816
      @cybersilver5816 4 года назад +29

      @smb85 dkc94 really efficient calculators.

    • @benn454
      @benn454 4 года назад +24

      @smb85 dkc94 What they already were before the internet was invented. Number crunchers, digital libraries, and overly complicated typewriters.

    • @felixvelariusbos
      @felixvelariusbos 4 года назад +53

      Best of luck on your studies! Here's some spoiler alerts from somebody now in industry: computer and programs only work when you don't look at them too closely. As soon as you start setting eyeballs on them you realize it's just a pile of string and duct tape somebody set up 5 years ago and then ran away from before somebody else could notice.

  • @uljk5699
    @uljk5699 4 года назад +715

    Missingno graphics in a nutshell: A quality worker getting gibberish order from his new erratic boss.

  • @ktvx.94
    @ktvx.94 4 года назад +304

    The whole not shifting pokemon and just slapping missingno whenever a pokemon was removed is the classic "I shouldn't do this, but it'll do for now" programmer move.
    Also I'm so amused by how the game didn't crash with all those indexes going out of range. Unreal Engine take note!

    • @abaque24
      @abaque24 Год назад +35

      The game's code is as magical as the concept behind the games XD

    • @elementgermanium
      @elementgermanium Год назад +61

      Fun fact: modern games would have the potential for more ridiculous glitches, but they have error detection systems that INTENTIONALLY crash the game if something too weird happens.

    • @kylek.3689
      @kylek.3689 11 месяцев назад +43

      ​@@elementgermanium Yeah, because one of the even weirder things that can happen is arbitrary code execution, which you definitely don't want in networked multiplayer games.

    • @AllThoughts3rased
      @AllThoughts3rased 11 месяцев назад +21

      ​@@kylek.3689not to mention we're usually not dealing with such low-level programming. Early Pokémon games were likely coded entirely in assembly which doesn't have most of the safety nets most modern high-level languages have.

    • @JetFalcon710
      @JetFalcon710 11 месяцев назад +12

      @@AllThoughts3rased Yeah, most early games were coded in assembly, including the first generation of Pokemon games. The programmers had to cut all sorts of corners to fit all that data into such a small cartridge _(I want to say like 16 KB)_ and have it actually function. The fact that those games work at all is a miracle tbh

  • @danielstephenson7558
    @danielstephenson7558 4 года назад +1552

    I'm guessing everyone else was playing Who's That Pokémon as the decompression algorithm was animating, yeah?

    • @Ails1234
      @Ails1234 4 года назад +36

      I actually recognized the rock sprite...

    • @hesterfranks9716
      @hesterfranks9716 4 года назад +90

      it's jigglypuff from above

    • @andrewprahst2529
      @andrewprahst2529 4 года назад +27

      Hester Franks That joke shall never be forgotten

    • @scyobiempire4450
      @scyobiempire4450 4 года назад +5

      I thought Magikarp was Rapadash.

    • @Leafia_Barrett
      @Leafia_Barrett 4 года назад +12

      "Who's that pokemon? It's OH GOD WHAT"
      I actually got Magikarp right, I recognized the mouth and eye.

  • @ShinoSarna
    @ShinoSarna 4 года назад +1640

    Broke: Gen 1 was held together with tape and strings
    Woke: Gen 1 pushed Game Boy to its limits, and if it glitches, it's because it pushed too hard

    • @wingedmirage4226
      @wingedmirage4226 4 года назад +120

      Why not both? :)

    • @nickolaswilcox425
      @nickolaswilcox425 4 года назад +123

      hey now, played correctly it stays within its limits, people just tend to not like to do that for long

    • @wingedmirage4226
      @wingedmirage4226 4 года назад +159

      Nickolas Wilcox True. One of the reasons Gen 1 is so fascinating is that most glitches don’t come up/aren’t that noticeable if you aren’t looking for them, so you can have a perfectly normal game if you want.
      Even now it’s fun to play normally, even if it’s a little basic and rough compared to newer games. The main thing that hasn’t aged well is the movepool.

    • @nickolaswilcox425
      @nickolaswilcox425 4 года назад +61

      @@wingedmirage4226 that and the type table, damn psychic's

    • @wingedmirage4226
      @wingedmirage4226 4 года назад +73

      Nickolas Wilcox That too.
      Though you know what might’ve helped with Psychics a little bit? Having a Bug move that did remotely decent damage. The best Bug move in Gen 1 was Pin Missile. PIN MISSLE. Oh, and the only damaging Ghost move outside of Night Shade was LICK. (Which wouldn’t affect Psychics this gen anyway, but still).

  • @Liravin
    @Liravin 4 года назад +206

    now I'm wondering why this is the only time I've seen a RUclipsr simply use avatars instead of usernames when listing all of their patrons. so elegant.

  • @OtherTomKat
    @OtherTomKat 4 года назад +117

    “Now I’m not going to go in depth, but,”
    *Proceeds to melt my brain with incomprehensible computer language*

  • @DragonDePlatino
    @DragonDePlatino 4 года назад +739

    I like how Magnemite's sprite is hanging out in the middle of that eldritch garbage like "sup"

    • @TrueLimeyhoney
      @TrueLimeyhoney 4 года назад +41

      Twice!

    • @SnoFitzroy
      @SnoFitzroy 4 года назад +93

      Same with Tentacruel, this is because they have "real" dex numbers and their names don't corrupt enough of the data to fuck up the sprite

    • @pmangano
      @pmangano 4 года назад +31

      charizard made an appearance as well

    • @takeastepback3333
      @takeastepback3333 4 года назад +24

      also Rattata.

    • @TrigramThunder
      @TrigramThunder 4 года назад +30

      @@TrueLimeyhoney thrice actually, with the first and third appearances being uncorrupted and the second one having the top left 8x8 square corrupted. check the video carefully and you'll see the same. also the beta sprite for tentacruel with crossed arms (not his actual sprite in game but stored here nonetheless) and the sprite for charizard.

  • @m0n5a80
    @m0n5a80 4 года назад +2133

    I love how MISSINGNO's sprite, even if it's just random data, still has something that looks like an eye.

    • @kevinhaddad9420
      @kevinhaddad9420 4 года назад +259

      It's like how we see things in clouds that's just part of the natural tendency of the human brain to recognize patterns that aren't necessarily there

    • @kasyu1101
      @kasyu1101 4 года назад +64

      and the true form looks like a face

    • @CheddarVG
      @CheddarVG 4 года назад +33

      And a mouth.

    • @SongbirdOfficial
      @SongbirdOfficial 3 года назад +35

      I don't see it

    • @donutman4020
      @donutman4020 3 года назад +7

      Derpion the Derpy me neither

  • @ImShep117
    @ImShep117 4 года назад +1059

    Me at age 10: “who’s that Pokémon?!” Me at age 30: “WHYs that Pokémon?!”

    • @Cyorg13
      @Cyorg13 3 года назад +6

      I don't get it. Where is the funny?

    • @SETH_420
      @SETH_420 3 года назад +43

      funny, did laugh

    • @CarlosFernandez-yu1mz
      @CarlosFernandez-yu1mz 3 года назад +12

      The most underrated comment

    • @braintwo3398
      @braintwo3398 3 года назад +19

      How's that Pokémon

    • @ohhiman
      @ohhiman 3 года назад +20

      @@braintwo3398 my charizard says hes doing fine

  • @themetalone7739
    @themetalone7739 3 года назад +1023

    Back in the red/blue days, 10-year-old me was briefly obsessed with Missing Number. I noticed, after catching one just to see what would happen, that beating the Elite 4 afterward caused my winning pokemon images to glitch...one of them glitched into a sprite of Mew. After I realized Missing Number can evolve, I experimented for a pretty long time; convinced that there was some sort of massive secret locked within this glitched mess of pixels.
    As with almost all the "secrets" (more like child folk-lore) from those games, there really was nothing to find.

    • @lucatdcat8720
      @lucatdcat8720 2 года назад +4

      @@gik0kaleidos417 K

    • @TheSwiftblad3
      @TheSwiftblad3 2 года назад +1

      @@gik0kaleidos417 k

    • @duttypawl
      @duttypawl 2 года назад +1

      I had the hall of fame glitch too

    • @PKNproductions
      @PKNproductions 2 года назад +135

      "Child folk-lore" is so fascinating to me. There's an academic term for this, "children's culture" -- the unique subculture created and maintained by children, with little to no influence from adults. Somehow through friendships with kids at other schools, cousins in other states and countries, etc. you end up with this global "children's culture" that propagates itself.
      Even as we grow out of childhood, new young children replace us and maintain many of the traditions and beliefs we left behind.
      I remember a Reddit comment where somebody shared some of the new Pokemon rumors he learned from his young child. The most fascinating thing was that corrupted versions of the same rumors from 20+ years ago still persisted among these young kids. Apparently this guy's kid heard about a secret Pokemon named "Mysterio" who could give you many items but at the risk of destroying your game.
      The legend of Missingno lives on, retained through oral tradition amongst children. That's pretty mind-blowing to me.

    • @galaxybolt1748
      @galaxybolt1748 2 года назад

      @@PKNproductions I am probally wrong here so take EVERYTHING i say with a truckload of salt thinks this may happen due to it being like a stream of children lets say you are in middle school 6th grade first year there you hear about a mystical secret in a game called "I’m using this game as an example for a comment since i can’t think of anything AKA Needed Something" you try to find the secret in "Needed Something" you turn up blank but then you go onto 7th grade and hear about a secret in a game called "Needed Something 2" you tell some 6th graders about it they believe you you try to find the secret and find SOMETHING related to it but it doesn’t lead where you want you go onto 8th grade and hear of a secret in a game called "Needed Something The 3RD Final Battle" you try to find the secret and you find nothing but before that happened you told a few 7th graders about it and they believed you you leave the middle school for 9th grade but those 7th graders are now 8th graders and those 6th graders that were told about it by the 7th graders just like you did they are now 7th graders and tell the new 6th graders and this keeps looping AGAIN THIS IS JUST SOMETHING I THOUGHT UP TAKE IT WITH A TRUCKLOAD OF SALT (had to add like 50% of this cause accidentally hit enter button HOPEFULLY youtube goes "Yep you can edit this otherwise you have some half finished story)

  • @john2001plus
    @john2001plus 4 года назад +709

    I used to program Gameboy Color for a living. This is slightly nostalgic for me. I don't understand why they divided the sprites into two bit planes unless that is how they are normally stored in memory. It has been 19 and 2/3 years since I last programmed a Gameboy, so I don't remember.

    • @Kawa-oneechan
      @Kawa-oneechan 4 года назад +43

      Because it'd compress tighter that way.

    • @john2001plus
      @john2001plus 4 года назад +83

      @@Kawa-oneechan I understood, but that does not seem to me like a given. Data is data, and it can compress either way. However, if it leads to more white space in the characters, then that totally makes sense.

    • @RGMechEx
      @RGMechEx  4 года назад +280

      Yeah, I had trouble understanding the developer's intentions here as well. The compression algorithm used here was more efficient when compressing data with lots of runs of zeros, so my guess is that either they tested it and found this format more efficient, or there was a different compression algorithm used earlier in development where this splitting made more sense.

    • @john2001plus
      @john2001plus 4 года назад +129

      @@RGMechEx The dumbed down Z80 in the Gameboy doesn't have much processing power, so doing more work decrompressing could be an issue. However, if it is a one time thing at the beginning of a level, then it is probably not a problem, because it would likely take a fraction of a second. However, when I was programming the SNES, it was constantly pulling information from the ROM as you scrolled through long levels.

    • @john2001plus
      @john2001plus 4 года назад +128

      @@RGMechEx In the 1990's, one of my coworkers was working on a compression algorithm that would combine similar looking characters. If the characrters were animated, your eye is not likely to notice that a pixel or two was off, because it would only be on the screen for a frame.
      As a side note, I am impressed that the original Super Mario Brothers used the same characters for the clouds and the bushes, where just the pallete was different.

  • @JJASalazar
    @JJASalazar 4 года назад +546

    My favorite thing about your videos is the fact that I can understand them, despite the fact I have never done anything with assembly language. You do a great job keeping it understandable while still diving *way* deeper than any other channel I've seen.

    • @SadoMessiahLP
      @SadoMessiahLP 4 года назад +6

      Thats true. My only criticism is that it is a bit too fast to get whats going on at some points. He should maybe make longer pauses between sentences to give viewers some time to think.

    • @The_Essential_Review
      @The_Essential_Review 4 года назад +5

      @@SadoMessiahLP .75x speed in settings

    • @SadoMessiahLP
      @SadoMessiahLP 4 года назад +4

      @@The_Essential_Review No, that slows the entire video down to a crawl and does not adress my critique

    • @somemong989
      @somemong989 4 года назад +3

      Speak for yourself, I have no idea what's going on but I still enjoy it.

    • @SadoMessiahLP
      @SadoMessiahLP 4 года назад +6

      @Belial I don't like that either, however he makes almost no pause between sentences. If I did that in school when doing a presentation, I'd have gotten a worse grade. It's just better when you try to teach people something to make longer pauses... Not everybody is an expert on this field.
      I'm talking about 1 sec. of pause between sentences...
      Maybe I also feel that way because my native language is german and german feels like a slower language than english with longer pauses...

  • @Tinkatube
    @Tinkatube 4 года назад +100

    Fun fact: The Glitch Pokemon that are missing from certain parts of the ID no.s will sometimes evolve into certain other Pokemon. There's one that evolves into Kangaskhan. People suspect that baby Kangaskhan used to be a Pokemon because of this.

  • @MultiCeilingCat
    @MultiCeilingCat 3 года назад +304

    I think this is pretty amazing, especially when you think all of this is running at the same time on a gameboy. Like, every sprite you see goes through this sort off stuff to display correctly inside of the game. Every battle you've had, even with your pokemon cry video, all of this is running at maximum capacity to make Gen 1 a reality. This really opens the eyes to how amazing the coding kind of was to make this game happen.

    • @blooTalkoes
      @blooTalkoes 2 года назад +5

      even though missingno literally exists because of spaghetti code

    • @Michallote
      @Michallote Год назад +12

      @@blooTalkoes yeah, to be fair I think they didn't have a choice. To add many layers of protection or remove content. I'm so glad they did it the way they did

    • @thatphatbaby
      @thatphatbaby Год назад +12

      And it was written in assembly. GameFreak engineers were freaking wizards dude.

    • @georgechapman-brown9833
      @georgechapman-brown9833 Год назад +29

      @@blooTalkoes They were coding in assembly, so they didn't have the option of making non-spaghetti code! The term 'spaghetti code' was invented after higher-level languages with better control structures (loops, if/else) were created, to poke fun at how difficult earlier code was to track (and later coders that didn't want to learn the new tools). In assembly, you only have go-to commands, so that's what they used - thus, it was only spaghetti code!

    • @blooTalkoes
      @blooTalkoes Год назад +2

      @@georgechapman-brown9833 yes, i know

  • @Mswordx23
    @Mswordx23 4 года назад +912

    It's funny how I think I'm going to understand this.

    • @RudiGallon
      @RudiGallon 4 года назад +28

      and how important for me to know this.

    • @mrbagel7719
      @mrbagel7719 4 года назад +7

      Like you want to make games? If so, same here.

    • @floxiesaysreadmybio4988
      @floxiesaysreadmybio4988 4 года назад +25

      I don’t understand it, but I’m obsessed with game and tech stuff

    • @joemck85
      @joemck85 4 года назад +18

      As a programmer who grew up with Pokemon Blue, this is particularly fascinating (though I want to know more about the decompression algorithm and should probably just go read it on the "pokered" project on Github). The workings of these older, simpler machines and the clever tricks they used to work around limited memory space and CPU speed are amazing to see. But this stuff is pretty much meaningless if you want to make modern games or software -- you shouldn't be doing anything like this, and if you do and it glitches out like this you just see "Segmentation fault" or a pretty backtrace pointing out the exact line in your code where the poo hit the fan.

    • @RudiGallon
      @RudiGallon 4 года назад +3

      @@joemck85 salute for you my friend

  • @MrKhaz101
    @MrKhaz101 4 года назад +400

    "The actual compression and decompression used in the game is fairly complicated so I won't go into much detail here."
    You mean everything else is LESS THAN fairly complicated??

    • @MyHandleIsAplaceholder
      @MyHandleIsAplaceholder 4 года назад +47

      It's unfairly complicated

    • @professionalprocrastinator8103
      @professionalprocrastinator8103 4 года назад +3

      Curious question. By complicated was he talking about the wavelet transform?

    • @xanfsnark
      @xanfsnark 4 года назад +9

      @@professionalprocrastinator8103 I don't think so, that would have been very odd for the era. I found a page that suggests it uses a variation of the LZSS compression algorithm, which is a kind of dictionary coding algorithm.
      Edit: wiki.nesdev.com/w/index.php/Tile_compression

    • @professionalprocrastinator8103
      @professionalprocrastinator8103 4 года назад +1

      @@xanfsnark Thank you, that was useful

    • @aubreyh1930
      @aubreyh1930 3 года назад +1

      This guy explains everything really well. You might have to rewind a few times but it makes sense with a very basic understanding of computers

  • @darkfent
    @darkfent 4 года назад +65

    As a kid this felt so magical and mysterious...as an adult it is fascinating due to how the glitch becomes that way

  • @ampoulgon8716
    @ampoulgon8716 4 года назад +92

    The whole decoding sprites part was like "whos that pokemon?"

  • @kbhasi
    @kbhasi 4 года назад +180

    13:24 I like that you even edited the display output as well! 🤣🤣🤣
    "A pair of ROCKS appeared!"

  • @blanchfor
    @blanchfor 4 года назад +2244

    This is the type of in depth content that actually teaches you something. Great work!

    • @araigumakiruno
      @araigumakiruno 4 года назад +22

      very good editing work too

    • @araigumakiruno
      @araigumakiruno 4 года назад +5

      @@B3Band bruh if you are gonna be hating better you go away

    • @SuperRedstoneman
      @SuperRedstoneman 4 года назад +14

      @@B3Band We don't criticise what we enjoy, that is how humans work m8.

    • @phorchybug3286
      @phorchybug3286 4 года назад +6

      If only actual school was like this.

    • @sylvierose2799
      @sylvierose2799 4 года назад +1

      @@araigumakiruno who are you quoting?

  • @Damian_1989
    @Damian_1989 2 года назад +79

    13:24 this is actually from a cut part in the game where you have to find the rocks before using them in the Safari Zone.

  • @MathematicPony
    @MathematicPony 4 года назад +108

    Recently graduated with my bachelor's in computer science - you definitely earned a sub from me with this video!! Messing around with Pokemon glitches and roms as a child was one of my very first introductions to certain computer science concepts. I remember my dad teaching me hex conversions so I could work with action replay codes easier. But beyond that, I always felt a great deal of affection for the first gen pokemon glitches. When I was a kid, I used to do Red/Blue glitch runs where I would demonstrate to my brother as many Red/Blue glitches as I could in a single run over a couple of hours. Great fun.
    Thank you for this video. It feels so nice to understand more about something that ended up pointing (haha) me in this direction in life. 'M having part of its sprite data in its name is poetic justice, and finally understanding why the Hall of Fame data gets completely chewed up is really cathartic. Seriously, thanks so much.

  • @lakelimbo
    @lakelimbo 4 года назад +514

    I remember people at the time saying that Missingno.'s sprite was actually a corrupted Yoshi sprite, lol

    • @madajahpowell9023
      @madajahpowell9023 4 года назад +66

      That may have been because of an April fools joke made by the devs of Pokemon. It went something like this, it was a dragonite that would evolve into yoshi.

    • @spongeboi.offical3901
      @spongeboi.offical3901 3 года назад +51

      He was erased from relating after failing his taxes

    • @blitzie66
      @blitzie66 3 года назад +4

      @@spongeboi.offical3901 huh

    • @Lokear
      @Lokear 2 года назад +10

      @@madajahpowell9023 Wait, was that *from* the devs? I knew it was in a gaming magazine, but I was under the impression that it was made up by the authors.

    • @jesusramirezromo2037
      @jesusramirezromo2037 Год назад +7

      @@madajahpowell9023 It wasn't the devs, just an unofficial magazine

  • @greentetrahedron7992
    @greentetrahedron7992 4 года назад +724

    you said the compression system was complicated, but id still love a video on it (or at least some good resources for learning more), even if it is more technical than usual.

    • @Priw8
      @Priw8 4 года назад +14

      Same tbh, I wonder what kind of compression they implemented on the gameboy back then

    • @Tatsh2DX
      @Tatsh2DX 4 года назад +33

      Had to be something simple like LZ77 because the Gameboy doesn't have much RAM

    • @kamil118
      @kamil118 4 года назад +33

      @@Tatsh2DX yes, it was a variant of LZ77 wiki.nesdev.com/w/index.php/Tile_compression#Pok.C3.A9mon_LZ

    • @petemagnuson7357
      @petemagnuson7357 4 года назад +1

      Judging from how to the animations play out, it seems to be based on "write X 1s at position Y". I tried googling it but I could only find off-topic forum threads and dead links :(.
      Edit: It looks like someone else found the answer while I was typing my reply, and my guess about the algorithm is quite inaccurate. Oh well.

    • @AiOinc1
      @AiOinc1 4 года назад +1

      What he means is *over*complicated for no reason

  • @ReySilverskin
    @ReySilverskin 4 года назад +9

    14:40
    So what you're saying is, in-universe, Missingno's appearance is that of an eldritch data construct representing the very concepts of human speech and writing, and that's why its true form is indecipherable to mortal eyes.
    That's fucking awesome.

  • @joseortega7815
    @joseortega7815 4 года назад +76

    Shout out to my 4th grade classmate Ali Abedin, where ever he may be. He taught me the Missingno. trick and it changed my life forever. Lol

    • @Mizu2023
      @Mizu2023 7 месяцев назад +1

      My guy doxed his classmate wtf

    • @joseortega7815
      @joseortega7815 7 месяцев назад

      @@Mizu2023 Since when is giving a shout out "doxing" someone? Fkn zoomer.

    • @trollnerd
      @trollnerd 4 месяца назад +1

      I remember this first time i found out about this. I was so proud of my level 60 Mewtwo so i dueled my friend and he pops out a level 100 dragonite and incinerated me. He was nice enough after that to teach me the rare candy glitch and we basically only did level 100 battles after that haha.

  • @Yipper64
    @Yipper64 4 года назад +174

    0:12 pokemon were designed so well even the glitches have a recognisable silhouette.

  • @ImSquiggs
    @ImSquiggs 4 года назад +177

    This is the single glitch that started my love back in the day for investigating weird game mechanics... it was my first glimpse into the ability to manipulate someone's programming in a weird but fun way

    • @ariss3304
      @ariss3304 4 года назад +3

      Squiggs 【Glitches - ROM Hacks - Speedruns】 you should look into corruptions

    • @TrickyRover
      @TrickyRover 4 года назад

      Do you have any favorite glitches? Besides Missingno of course.

    • @wes9451
      @wes9451 4 года назад

      Missingno was special in that it corrupted just all the right things. The sucker had no defense, randomized item 6 to find but got caught by the 99x item limit. Its not a pokemon I'd ever actually use in-game. But you sure loved those not so rare candies.

    • @LonelySpaceDetective
      @LonelySpaceDetective 4 года назад

      I remember reading as a kid about how the Pokémon data for MissingNo. comes from trainer data being interpreted as something it isn't. I think that was when I realized that there isn't really anything fundamentally different about types of data on a binary level.

  • @demonic-deadbeat3212
    @demonic-deadbeat3212 4 года назад +49

    MissingNo - The Most Legendary non Legendary Pokémon in the World.

  • @iMac9991
    @iMac9991 4 года назад +585

    for a game that is "held together by scotch tape" this sure is complex

    • @Leafia_Barrett
      @Leafia_Barrett 4 года назад +160

      They took the Game Boy and stretched every possible limit as hard as they possibly could to make this game. It's not exactly surprising that they needed to tape up a few holes here and there.

    • @NoriMori1992
      @NoriMori1992 4 года назад +145

      It's complex _because_ it's held together by scotch tape.

    • @estellaruiz3125
      @estellaruiz3125 4 года назад +13

      imagine rockstar goes apeshit and adds every single game in one disk?

    • @kirin1230
      @kirin1230 3 года назад +22

      @@Leafia_Barrett I'd say Gold and Silver, along with Link's Awakening, pushed the Gameboy to it's limits. And yes, they do work on the original Gameboy.

    • @Lokear
      @Lokear 2 года назад +13

      @@kirin1230 Just like how Sun and Moon pushed the 3DS... and then the Ultra games *really* pushed the 3DS.

  • @l9m241
    @l9m241 4 года назад +199

    Now all we need is a video about the "True Cry" effect that some glitch pokemon do.
    Like with "4 4" in pokemon yellow. It just trashes the graphics, and the sound with encountering it.
    Especially when it produces Pikachu's sounds in a crazy corrupted way.

    • @CoTeCiOtm
      @CoTeCiOtm 4 года назад +31

      This video about Pokemon opened a can of worms (well, maybe not worms heh), now we want all glitches explained on this channel haha! This guy is so good at this! Some other people try to explain glitches and either get so technical it doesn't make much sense to me, or I end up wanting more.

    • @Chaos89P
      @Chaos89P 4 года назад +1

      @konakonaa How does that explain how some forms of Missingno, to me at least, sound like Nidoran♂ or Dragonair? Was the sound pointer get sent to the right spot?

    • @Chaos89P
      @Chaos89P 4 года назад +1

      @konakonaa I do not play with 3Trainerpoké or similar glitches. I don't know what they'd do to my 3DS.

    • @Chaos89P
      @Chaos89P 4 года назад

      @konakonaa Doesn't seem to be the case with OG Metroid, from what I heard. Trying a vulgar password with older firmware can apparently brick the system. Now, I heard that you can fix the bricking by taking the battery out, but I'm not fool enough to even try the password on an emulator. It can be a killer POKE on an NES, as well.

    • @asra-5180
      @asra-5180 4 года назад

      @konakonaa well, we now have the source code so maybe there is a way to find it out.

  • @riozuiderduin9928
    @riozuiderduin9928 4 года назад +38

    I would love to see what some of these glitchy Pokemon "should" or "were supposed" to look like. I'm definitely going to be waiting for that video. Pre-emptively, thank you for doing that, it's something I've always wanted to know.

    • @50zezima
      @50zezima 7 месяцев назад

      If you watched the video, doesn't seem to be possible.

    • @photonic083
      @photonic083 5 месяцев назад +2

      This is not possible. Their graphics data weren't supposed to be anything, because they aren't graphics data in the first place. Imagine you take an image document, rename it to a txt, and open it. You will see random garbage, because that text wasn't supposed to be anything. It's not text.

  • @pacsmile
    @pacsmile 4 года назад +28

    Holy shit, i can't imagine the amount of work you put to edit this video, all the animations on the compression side are just so well done and help understand what you're saying, kudos to you man.

  • @shapeswitch_mood7221
    @shapeswitch_mood7221 4 года назад +337

    Who thought that the uncorrupted data would show an actual sprite?

    • @MimoriAzume
      @MimoriAzume 4 года назад +100

      I was ready to see Missingno's true form tbh

    • @LonelySpaceDetective
      @LonelySpaceDetective 4 года назад +78

      Data is data. Even if it isn't the "right" kind of data, it will be interpreted as though it were unless there's error or sanity-checking going on.
      Have you ever tried loading a .dll into Audacity (or other audio editing programs, presumably) as raw audio data? You can do that, and it'll play a sound. It might damage your speakers and/or ears, but it can do that because ultimately it doesn't care if the data it's getting is audio or not; it'll try to play it anyway.

    • @pmangano
      @pmangano 4 года назад +27

      @@LonelySpaceDetective you can also do the opposite and load any kind of extension on notepad to see raw data of anything.

    • @olbluelips
      @olbluelips 3 года назад +12

      @@pmangano You're almost right, but I'll nitpick. Notepad won't actually show you the raw data properly, since even Notepad expects a particular format! There are plenty of bytes that won't display at all. :)

    • @3lH4ck3rC0mf0r7
      @3lH4ck3rC0mf0r7 3 года назад +13

      @@olbluelips Any byte that is not in an UTF-8 table gets displayed as a space, in a similar way to how anything that isn't ASCII gets displayed as a dot in a hexeditor. But it is similar in that Notepad will show you a lot of garbage text. Glitch tiles are kind of a lost art though, since memory segmentation became a thing... and as long as you're not dealing with a dying hard drive or graphics card, but it's kind of amazing that plaintext editors are among the only remaining programs to lack any kind of header checking, and will continue to open _anything_ as text. I would've expected them to implement a small arbitrary line length and filesize limit, along with rejecting any files with non-printable characters in them sometime in the 00s. I know Notepad has a filesize limit, but it'll stop responding and get extremely sluggish long before you hit it, and I know many text editors in Linux have a line length limit, but they'll all open files with invalid bytes in them. I know multiple codepages are a thing, but even then, it's a rare find in modern computing.
      I get Audacity's raw audio option, since it's impossible for them to tell apart what's intended to be digital audio and what isn't. The raw audio format itself uses the entire byte range and has no parameters or headers aside from the waveform's samples themselves, making literally anything 100% valid raw digital audio. But afaik, the different plaintext formats don't use the entire byte range and positions for printable text characters, so invalid bytes should be possible to catch, and in fact are caught...

  • @syrup4835
    @syrup4835 4 года назад +25

    This is going to sound a bit like an insult but isnt: I am 100% falling asleep listening to this. Your voice is perfect to soothe my anxiety. I can barely understand the maths behind whats going on but I’m still engaged and interested just enough to not fall into panic thoughts. Genuinely dude thanks for the amazing content!

  • @SelkieSurrogate
    @SelkieSurrogate 2 года назад +10

    12:37
    Him: Let's create a new one just for fun!
    *Me still trying to understand the old ones*
    Amazing job, dude, seriously

  • @Nyerguds
    @Nyerguds Год назад +11

    It is rare to see such accessible and yet in-depth and correct explanations about this stuff. As someone who's dug into old DOS sprites and compressions in the 1-bit to 8-bit graphics era, I salute your efforts.

  • @DoubleATam
    @DoubleATam 4 года назад +29

    For anyone curious, the blue tiles in the glitch list at the end come from control characters. When the game reads one in the script, it turns it into a whole word, often something cumbersome to write a lot or something dynamic like a player name.

    • @LonelySpaceDetective
      @LonelySpaceDetective 4 года назад +5

      Incidentally, this is why naming yourself "ASH" gets you different Pokémon from the Old Man glitch than choosing the ASH preset name. The preset names actually set your name to a control code that prints the selected name out when read, while the name you enter in yourself is just stored directly as text and printed normally.

    • @Kairos_Akuma
      @Kairos_Akuma 3 года назад +1

      @@LonelySpaceDetective Kinda.
      The Preset Ash has all other names stored after it.
      Like ASHREDBLUEJACK or whatever.
      That's why you get different stuff and neither 'M nor Missigno.

  • @Tatsh2DX
    @Tatsh2DX 4 года назад +811

    'this video is getting pretty long'... No! Keep going

    • @helloofthebeach
      @helloofthebeach 4 года назад +48

      "This is too long" is something creators always worry about and viewers always wish they wouldn't.

    • @mikebarr2436
      @mikebarr2436 4 года назад +39

      For real. I would watch a feature length film about this.

    • @roberte2945
      @roberte2945 4 года назад +26

      @@helloofthebeach This guy could make hour-long videos and I'd watch every second.

    • @Waccoon
      @Waccoon 4 года назад +15

      Yeah, I'm not sure people with short attention spans tend to watch these kinds of vide... SQUIRREL!!!

    • @Srcsqwrn
      @Srcsqwrn 4 года назад +9

      Through the video I was getting more and more into a trance. By the end I felt like I was maximum absorbing information, and then it ended. D:

  • @TPGTheProGamer
    @TPGTheProGamer 4 года назад +19

    Thank you so much for this video, it exactly what I was looking for a cs student. You clearly have a great understanding of the content and a very impressive teaching ability. The animated graphics, use of real ingame sprites, and visualizations of data were extremely well crafted. The added touch of the other missingno(s) at the end was also awesome. Keep up the good work! :)

  • @WilliamAndrews0
    @WilliamAndrews0 4 года назад +11

    it would have also been very interesting to explain why you would meet missingno only after setting the memory in a certain way and some steps have to be very accruate, whereas other steps can be done in any way that you want. I know this was only about the appearance, but in general that would have fit he theme i think

    • @cheetah219
      @cheetah219 6 месяцев назад

      Yes I agree, I would love to learn more aboit how certain movements and button entries can lead to memory manipulation

  • @johnwest6690
    @johnwest6690 4 года назад +74

    "Looking at theoretical glitch pokémon that don't actually exist"
    I genuinely CAN'T wait for that. I've always treated glitch Pokémon almost as an unintended DLC for gen 1 lol, and I've always been fascinated by this type of stuff, I'm definitely subscribing to see that video.

    • @kjl3080
      @kjl3080 3 года назад +9

      "discovering something that doesn't exist" - Phineas and Ferb

    • @Curlyheart
      @Curlyheart 3 года назад +1

      Oh no smile dog I gotta spread the word aaaah

    • @SobrietyandSolace
      @SobrietyandSolace 3 года назад +4

      Once I realised Pikablu didn't exist the glitch Pokemon became my Pokegods.

    • @deadchannel408
      @deadchannel408 2 года назад

      nice pfp

  • @gamesux420
    @gamesux420 4 года назад +47

    Ok but, am i the only one that would be incredibly hyped to see missingno as an actual pokemon? It doesnt even sound too absurd when you realize theres already Porygon and its evolutions, which are basically not glitched MissingNo.
    Imagine seeing a Nintendo direct and theyre like "let us introduce a new pokemon" and its MissingNo
    I'D SCREAM

    • @FoundedScreenLady
      @FoundedScreenLady 4 года назад +5

      Google "Phancero"
      It's basically a fan version of what Missingno. would look like, if it were to be an official pokemon.

    • @SadoMessiahLP
      @SadoMessiahLP 4 года назад

      @@FoundedScreenLady But how did they come up with this design for missingno.? It has nothing to do with the original sprite or original MissingNo. except for the Bird Type and that its supposed to be a glitch Pokemon within the context of the games it appears in... Pretty bad design in my opinion. They should have stuck to something that more closely resembles the original Missingno..

    • @FoundedScreenLady
      @FoundedScreenLady 4 года назад +2

      There's actually a lot in the design that makes sense.
      The color palette matches the original Missingno., as well as the bird typing giving the bird-like body.
      There's a lot of subtle but minor details that link it together basically.

    • @SadoMessiahLP
      @SadoMessiahLP 4 года назад +2

      @@FoundedScreenLady Yes but when I saw the sprite I did not think of missingno. as it looks so drastically different to the original. One could maybe make a bird like Pokemon and distort the sprite to this weird backwards L shape. Maybe use animations that make the Sprite change from the fully distorted version to a non distorted version. You could even include inbetween stages and semi-randomize it to really make it look weird, glitchy and unstable. Missingno. should not look like a regular Pokemon...

    • @FoundedScreenLady
      @FoundedScreenLady 4 года назад +6

      @@SadoMessiahLP There is a sprite that does that distorted/non-distorted change though?
      Point is though, it's designed to look like an official Pokemon, not a glitch. It's a "what if" scenario.
      You're looking too far into the concept.

  • @MrHumannnn
    @MrHumannnn 2 года назад +5

    19:56 My favorite Pokémon: ▓ POKé WTRAINER

  • @sukidable
    @sukidable Год назад +6

    2 years later and I still revisit this video sometimes. Another thing that you really have to appreciate is the extreme limitations they had to work with. On better or more modern hardware, improving compression to save 300 some bytes would be a waste of time for such a miniscule amount of data. But on ancient hardware like this, every single byte matters.

  • @esotericVideos
    @esotericVideos 4 года назад +300

    I wonder if RGME just looks at MissingNo and instantly understands him. Like being able to read the code in The Matrix.

    • @forgado7396
      @forgado7396 4 года назад +66

      Imagine saying something is boring but your profile picture is _C_

    • @Potato2017
      @Potato2017 4 года назад +3

      lol

    • @ryjelsum
      @ryjelsum 4 года назад +10

      It definitely helps that there is a disassembly of pokemon red/blue, so he can literally read the code :)

    • @koopa1018
      @koopa1018 4 года назад +5

      @@forgado7396 I mean, some people do still write in C rather than C++, even in today's world~

    • @andrewsprojectsinnovations6352
      @andrewsprojectsinnovations6352 4 года назад +2

      @@koopa1018 I basically use C++ for its improved graphics/audio libraries (currently SFML). My actual code and game logic are mostly written in standard C, and I just swap in the C++ libraries and syntax wherever they differ (for example, iostream vs stdio). This makes it easier to port the code to older systems in the future, as the only things I need to change are the graphics and audio calls, and replace iostream's cout calls with stdio's print() function.

  • @flyingfish1138
    @flyingfish1138 4 года назад +44

    I want the next pokemon essential handbook to have a page for missingno that’s covered in glitchy text and messed up graphics. They’d also list him as the only bird type, making him incredibly rare.

    • @TrigramThunder
      @TrigramThunder 4 года назад

      you just made me look what pokemon essential handbooks are. they aren't a thing here, since instead of Scholastic, nintendo itself sells "pokedex books" for every generation, but they're a bit bigger, pricier, more high quality and more geared towards a non-child audience. they also sell matching guides for every generation of games and they've been doing this ever since firered and leafgreen in 2004. the experience of playing each new game is really enhanced by having a handy book easy to navigate with even the most intricate secrets and tricks by your side, so when you have any doubt on how to do something you can just look it up there, and maybe get lost reading interesting facts in the process and over the course of your playthrough end up much more knowledgeable of each new respective generation than if you had just played the games unaided.

    • @flyingfish1138
      @flyingfish1138 4 года назад

      Francisco Manuel Sánchez Rubio cool

    • @the2401
      @the2401 2 года назад

      @@TrigramThunder I always had the essential handbooks as a kid, but I never used it while playing the game because I always found Google more convenient lmao. but now I want to find one of my old handbooks and use it while playing

  • @OGuiBlindao
    @OGuiBlindao 3 года назад +4

    0:25 This "placeholder graphic" he showed is actually the gen 3 variant of missingno

    • @ayueshi_
      @ayueshi_ Год назад +1

      it's not missingno, it's ??????????

  • @niemiec2601
    @niemiec2601 4 года назад +6

    14:26
    Me Reading the Fun Fact:
    ...Therefore, a specified width of zero is treated as a width of 256!
    Also Me: Man, That must Be *THICC*

  • @zelenpixel
    @zelenpixel 4 года назад +94

    god thats so interesting.. would love to hear on how some of the other glitch sprites came to be like that jumbled bulbasaur at 20:17

    • @renakunisaki
      @renakunisaki 4 года назад +15

      That appears to be the correct Bulbasaur graphic but the wrong bounding box.

    • @petemagnuson7357
      @petemagnuson7357 4 года назад +7

      Yeah, check out 6:30 or so for what wrong bounding-box sizes look like, everything gets a bit jumbled into the left columns.

    • @lutyanoalves444
      @lutyanoalves444 4 года назад +10

      what are you talking about?
      thats the correct sprite for my favourite pokemon: jumblesaur

    • @EeveeloveIEeveelove
      @EeveeloveIEeveelove 4 года назад +9

      He explains it earlier in the video! Basically, when a glitch Pokémon shares its ID Value with a Pokemon (it seems that Pokémon have multiple ID numbers assigned to them in a number wraparound manner), it will attempt to load that Pokémon's sprite.
      Where it gets jumbled is when trying to calculate the bounding box, ending up at a non-square or rectangular shape.
      You made me think harder about this, and now I think I actually gained a better understanding for the whole thing. :)

    • @mistashadow
      @mistashadow 4 года назад

      It's strange that it loads Bulbasaur, considering that dex number 85 is actually Dodrio.
      But Bulbasaur is $55 $4000
      Dodrio is $77 $4000
      ID 224 is also $77 $4000
      Weird stuff.

  • @eFeXuy
    @eFeXuy 4 года назад +60

    As always your presentation is beatiful, and I love the way developers of these old systems had to deal with system contrains

    • @helloofthebeach
      @helloofthebeach 4 года назад

      I've never seen that patron avatar roll-in anywhere else and it's extremely cool.

  • @gax1864
    @gax1864 2 года назад +8

    Been learning more about memory management and efficiency in C, and this video showed up under recommended. Great supplemental material for any C programmer seeing it all in action. Especially if you are nostalgic for the Gameboy. Thank you for all of the work you put into making this video.

  • @chipan9191
    @chipan9191 Год назад +10

    Watching this I understand why gamefreak said that encountering Missingno can corrupt your game and make it unplayable even though this wasn't true. Obviously overwriting data not associated with the sprite because the tile size is designated too large could be pretty bad and gamefreak may not have known at the time what data was being overwritten, but may have known that some data unassociated with battle sprites was being overwritten when Missingno was encountered. It's just very fortunate that the only data being overwritten was Hall of Fame data.

    • @InnocentGuillotine
      @InnocentGuillotine 7 месяцев назад +1

      Missingno is also (iirc) only harmless in EN R/B (and possibly JP Blue?), almost every other version's Missingno (including Yellow and JP R/G) uses incorrect data that causes crashes on load or other negative effects. It is astoundingly fortunate that the version with the easiest to see Missingno has the most harmless version, rather than it ending up like early FFVI revision Sketch Glitches.

    • @chipan9191
      @chipan9191 7 месяцев назад +1

      @@InnocentGuillotine in think in Pokemon yellow version Missingno. has a cry which soft locks the game. It doesn't actually crash it. But if you encounter fossil or ghost sprite versions, they're harmless in yellow.

  • @Myth1221
    @Myth1221 4 года назад +33

    Here's the thing about long videos; We all secretly love it.

  • @the_big_dededester
    @the_big_dededester 4 года назад +42

    I feel like you should cover Charizard 'm, the 255th Pokemon, who also happens to be the embodiment of the Cancel button. It'd be very interesting to cover, I think.

    • @braintwo3398
      @braintwo3398 3 года назад +8

      Same with Q, who is actually a fusion Scientist since you can use a glitch to combine two Pokémon together. Like Pikachu and Lapras, or Porygon and the glitch Pokemon X x .

  • @elli_senfsaat
    @elli_senfsaat 4 года назад +40

    Avoiding too much data then: Highly complicated, but genius compressing of sprites.
    Today: DeXiT

    • @elli_senfsaat
      @elli_senfsaat 3 года назад +6

      @the hevy excuse me? I never said anything about not understanding

  • @mason3872
    @mason3872 3 года назад +3

    I’m glad someone actually understands it and doesn’t spread misinformation. All too often does this happen.
    Also if anyone wants to know what a ‘sprite’ is it’s not a soda basically, a sprite is a game object that can be moved and animated. That’s a very basic description but every time he says sprite he is just referring to whatever Pokémon is on screen.

  • @kinshraslave3450
    @kinshraslave3450 4 года назад +68

    Thats why they load in looking like they're coming out of a shadow!!!!

  • @altaccout
    @altaccout 4 года назад +29

    Your visualization of writing out of bounds gives me giggles for some reason, it's great.

  • @Aeiko.
    @Aeiko. 4 года назад +25

    I had a theory that was “what if missingno. Is what is underneath mimikyu”

    • @bluevines1303
      @bluevines1303 4 года назад +2

      That makes sense

    • @randomnerd4600
      @randomnerd4600 3 года назад +6

      congras. You solved it. Seriously. Mimikyu doesnt have anything under, maybe a placeholder data pointer and yep, you get the point by now.

    • @justafan9206
      @justafan9206 2 года назад

      Saw it. Not convinced.

  • @AmericanChoirboy
    @AmericanChoirboy 4 года назад +8

    11:10 OH this was about missingno, i forgot XD

  • @Omnituens
    @Omnituens 4 года назад +25

    I was literally looking into how this was working last night. This has answered some of the questions I was had, like why it was appearing to make multiple copies of the data into RAM. I also saw they were using the stack pointer to move 2 bytes of data at once, which I thought was pretty nifty.

    • @renakunisaki
      @renakunisaki 4 года назад

      I noticed Gold/Silver used the stack pointer technique to quickly copy tile buffers to VRAM and was similarly impressed.

  • @Pokeplan
    @Pokeplan 4 года назад +76

    Me, watching this video and pretending to understand anything: Ah yes, I too like to buffer

  • @lois3356
    @lois3356 3 года назад +22

    i miss the days of no internet with my friends, and all these weird things in the game sparked rumours and theories. for me, I always saw Missigno as a special pokemon, the most mysterious. i wish nintendo makes him a pokemon in the upcoming series.

  • @BloodyMobile
    @BloodyMobile Месяц назад +1

    Modern games are impressive, but I find the "juggling" of hardware limitations that was required for old games so much more impressive.
    And this is a really solid explaination of how that came to create one of the most iconic "errors" in games.

  • @LaskyLabs
    @LaskyLabs 4 года назад +102

    So with the blue and yellow source code leak, I'm excited to see what kind of videos you can make on pokemon now! There's so much cool stuff we're finding!

    • @undergroundmonorail
      @undergroundmonorail 4 года назад +13

      Did the source leak? I know there's a really good disassembly but I hadn't heard that

    • @LaskyLabs
      @LaskyLabs 4 года назад +33

      @@undergroundmonorail a lot of stuff leaked. Mainly localization files and what not. But the source for yellow and blue leaked, and I actually managed to compile yellow and run it.
      There's a ton of things already being found, like references to a pokemon pink.
      There were also releases of assets and graphics, but no actual prototype build of gen 1
      Hopefully we'll be able to play that soon... Wouldn't it be so cool?

    • @undergroundmonorail
      @undergroundmonorail 4 года назад +4

      @@LaskyLabs Huh! That's really cool, though I bet the people who worked on the disassembly feel like they got a kick in the pants :P

    • @LaskyLabs
      @LaskyLabs 4 года назад +19

      @@undergroundmonorail I'm sure they learned plenty while doing it. They could compare and see how well they did! Then put their skills to work on other games. If I had worked on it, I'd be very excited.

    • @undergroundmonorail
      @undergroundmonorail 4 года назад +1

      @@LaskyLabs Yeah, I'm not being entirely serious, but I feel like on some level there would be a voice saying "come on!!"

  • @lordkrythic6246
    @lordkrythic6246 4 года назад +58

    Question though. What about when MissingNo took the form of a skeletal Kabutops?

    • @Pokechu22
      @Pokechu22 4 года назад +28

      It looks like there's some other weird stuff going on, where despite those missingno forms having the same sprite indexes (see 182, 183, and 184 at 19:39), they have the pointers overriden in GetMonHeader (see home.asm lines 552-587 in the pret/pokered repo). Those IDs are also used by the objects in the Pewter Museum to actually display the fossils in engine/hidden_object_functions17.asm (I haven't looked into the ghost one). Mew has similar sillyness (note that its ID is 0x1F, probably filling in something else that was once a missingno).

    • @LonelySpaceDetective
      @LonelySpaceDetective 4 года назад +24

      @@Pokechu22 Mew was a really late addition to the game, after the debug tools were removed. The story is that after they were done testing the game, someone noticed that there was *just* enough space for one more Pokémon, and snuck in one despite the risk of breaking something.
      The ID can probably be explained by the programmer (idr who it was that added Mew unfortunately) just choosing an arbitrary slot that wasn't taken by a legitimate Pokémon.

  • @ferndog1461
    @ferndog1461 9 месяцев назад +2

    This content creator has fostered a brilliant presentation style. His math/video game mechanics explanation to the layperson . Please donate to this brilliant classroom .

  • @jasonxhx7854
    @jasonxhx7854 4 года назад +2

    Man you put so much work into these videos its beyond impressive. When I caught Missingno on my Blue cart it completely ruined the cartridge's ability to keep a save game. Even after swapping the battery in the cartridge, which I thought would remove any altered data, it STILL wont keep a save.

    • @SpookySkeleton738
      @SpookySkeleton738 4 года назад +1

      SRAM doesn't lose its data immediately when it loses power, it may keep bits and pieces for a while, you can help it out by shorting out the pins (e.g. with a screwdriver) in the battery socket. If you are sure the SRAM is completely cleared, and it's still not working, then I congratulate you on breaking the laws of physics.

  • @kpando4952
    @kpando4952 4 года назад +304

    meanwhile game theorist be like "y'all wanna know if mario would survive the coronavirus"

    • @The_Essential_Review
      @The_Essential_Review 4 года назад +5

      LOL

    • @xVisuaLxEffects
      @xVisuaLxEffects 4 года назад +1

      Underrated comment.

    • @greendaquil
      @greendaquil 4 года назад +26

      Game theory looks at stuff like the lore and science behind the stories not the mechanics.
      Don't diss my boi matpat.

    • @kuromifan10
      @kuromifan10 3 года назад +2

      @@blueartist4011 he’s already dead stop

    • @blueartist4011
      @blueartist4011 3 года назад +1

      @@kuromifan10 ...

  • @relt_
    @relt_ 4 года назад +43

    why does missingno make the 6th item in your inventory 255?
    a video explaining glitch items would be pretty cool imo.

    • @mechanisedsandcastle
      @mechanisedsandcastle 4 года назад +63

      When you encounter a pokemon, the game looks for a bit representing the "seen" box in the pokedex. If it's 0, it flips it to a 1.
      This only works properly for pokedex numbers 1-151. Since missingno. has a pokedex number of 0, the pokedex is looking outside of the data it should. The bit it's actually checking is the largest bit of the byte that represents the quantity of the 6th item in your bag. So if you have less than 128 of the 6th item, the game finds a 0 bit at the point where missingno.'s "seen" data is supposed to be, and flips it to a 1. This adds 128 of the 6th item to your bag.

    • @NeroSkate
      @NeroSkate 4 года назад +15

      @@mechanisedsandcastle I always wondered about this one ha. Just looked at the code and when marking as seen it converts the pokemon internal id to pokedex index, which is 0 for missingno, then substracts 1 which underflows to 255, then uses it as an index to the wPokedexSeen bittfield ($d30a), which is only 190 entries long, this results in the out of bounds write (oob by 13 bytes at $d329 which is 6th item quantity). If the oob write would have been a byte before or after we would have got item mutation which would also be cool

    • @foamingstuffye3951
      @foamingstuffye3951 4 года назад +2

      @smb85 dkc94 from my understanding, there are basically 256 spots for pokemon, and because your name is being written to the encounter slots for pokemon, it will look for whatever your name's letters point to in memory in terms of pokemon, and it will very likely stumble across an "empty slot", at which point you get a missingno or similar. So now everyone is please free to correct me, but with the exact same coding, if there'd been 256 legit pokemon, there'd have been no possibility of missingno's appearing because the letters of your name would always point to a real pokemon.

    • @alexstewart9592
      @alexstewart9592 4 года назад +3

      @@foamingstuffye3951 Fun fact - there are exactly 256 pokemon in gen II, and it uses the exact same system.
      Not only does it not have any glitch pokemon, but every gen I glitch pokemon will turn into a real pokemon if traded to a gen II game using the time capsule. If anything like the Old Man Glitch were to exist in gen II, it would not make any glitch pokemon.

  • @kylebowles9820
    @kylebowles9820 Год назад +5

    Nice video!
    Ratchet and Clank 3 has a similar glitch text rendering system. It uses single byte chars for regular letters and double byte chars for special characters and images. You can trick the text entry system to let you type double wide characters by starting with the escape character (á = 128 32) the input would trim the 32 thinking it's a space, letting you inject the next byte with anything you can type. What proceeds is very similar to Pokemon! You can get the sprite renderer to point to some fun memory addresses.

  • @randominternetuser5872
    @randominternetuser5872 4 года назад +6

    I imagine some unfortunate kid that didn't know he existed and then accidentally encountered missingno.

    • @GcorpCoPrez
      @GcorpCoPrez 3 года назад

      Yup that happened to my cousin way back. We had missingno. guess what sprite its parts look like.

  • @stevenschiro1838
    @stevenschiro1838 4 года назад +17

    "This video is getting pretty long so I'll end it here"
    This could go on all day and we would all be happy. Amazing work!

  • @PrimoBambino
    @PrimoBambino 4 года назад +26

    me: **watches the same topic with different ways of explaning**
    youtube: wanna see more?

  • @mangaboss1411
    @mangaboss1411 2 года назад +4

    Although a lot of this is very hard to understand, I'm so glad someone finally did a video that is ACTUALLY in-depth. This is the kind of detailed stuff I've always wanted to hear about game glitches. Love it.

  • @UrSammich
    @UrSammich 2 года назад +6

    I partly wonder if Missing No.'s entry is due to Mew's inclusion. Since Mew was originally never meant to be added, it would make sense that the data would generate a missing entry. While it was possible to get mew before the glitch with event only, it still wouldn't fully explain Missing No. appearing. Unless it has something to do with the ghost/fossils acting as "dex" entries, but actually not being catchable.

  • @AlexJones-qf7rw
    @AlexJones-qf7rw 4 года назад +35

    Oooh I'm deffo looking forward to seeing you attempt to recover the "real" sprite of the MissingNOs

  • @koopa1018
    @koopa1018 4 года назад +15

    14:52: Sooo, you're telling me that "MISSINGNO." would technically be a reasonable and correct name for my own in-house text/dialogue box engine? ;)

  • @minou2980
    @minou2980 Год назад +2

    In the nicest way possible i fell asleep to this video.
    Not because it was boring but it was nice to listen to something before a nap

  • @wezen89
    @wezen89 2 года назад +3

    "A pair of ROCKS appeared!"
    idk why but it's funny to me

  • @jadeharley9442
    @jadeharley9442 4 года назад +12

    You do a really good job of explaining complicated things at a good pace in simplistic ways, and the graphics really help. A lot of similar channels don't give you the pause to appreciate what was just said before continuing.

  • @GokaiPlatinum
    @GokaiPlatinum 4 года назад +77

    I'm excited to see what "fixed" Missingno looks like.

    • @GokaiPlatinum
      @GokaiPlatinum 4 года назад +11

      @@ratt2634 I'm just gonna wait for him to do the video on it like he said he would at the end.

    • @Captain.Dank64
      @Captain.Dank64 4 года назад +23

      Missingno’s move set
      -crash your game
      - corrupt your hall of fame
      - burn game
      - delete save file

    • @Kamexe
      @Kamexe 4 года назад +6

      @@Captain.Dank64don't forget freeze/crash your game!

    • @FoundedScreenLady
      @FoundedScreenLady 4 года назад +27

      @@Captain.Dank64 Inaccurate. Missingno. cannot harm your game, the most it can do is corrupt your hall of fame. Sad to see that Missingno. has this accusation when in reality it's often separate glitch pokemon such as Q or 4 4 that do proper damage depending on the scenarios.

    • @elfmonster1476
      @elfmonster1476 4 года назад +16

      @@FoundedScreenLady And even most of those are safe, if you know what you're doing.
      4 4 is never safe, but Q and Charizard M are fun to play with.

  • @tranq_8905
    @tranq_8905 4 года назад +4

    Everybody gangsta till he start pulling out the buffer instructions

  • @ryanjordan9003
    @ryanjordan9003 4 года назад +3

    Hey, I’m currently in college (senior in EE) and I recently took a course in Microprocessors. Just want to say, your content is awesome, and extremely well researched, since I have always wondered how the games I love truly work. I can only look at Assembly for finite amount of time before I rip my hair out, so props to you for putting in that time and work. Keep doin what your doin man, it’s awesome!

  • @jotarandom
    @jotarandom 4 года назад +40

    "Fix" Missigno would be like a dream for a 9yo kid... I want see that in the Next video

    • @TinchoX
      @TinchoX 4 года назад +11

      Fixing garbage data ... hmm is it even possible?

    • @olbluelips
      @olbluelips 3 года назад

      Well, the data isn't an image in the first place, so it would look like garbage no matter what. Maybe you could set reasonable top-left offsets, but it wouldn't look normal

  • @woodman811
    @woodman811 4 года назад +11

    This is the first time I’ve heard of someone calling it Stairstep shaped

  • @cheychc
    @cheychc 4 года назад +2

    these videos are so well animated! Thank you for making this! such a cool explanation!

  • @Jeyxero
    @Jeyxero 2 месяца назад +1

    Coming from a coding and video editing background I have to say that this video is a treasure trove of content visually and explanatory as well. Amazing video!!

  • @OrangeXarot
    @OrangeXarot 4 года назад +15

    20:03 TRAINER
    Now the trainer is the Pokémon lol

  • @OddlyTaco
    @OddlyTaco 4 года назад +11

    I watched this while high and enjoyed every bit of it, even if I don’t understand fully

  • @visionseeming
    @visionseeming 4 года назад +4

    Wonderfully explained as always RGME! Keep up the great work!

  • @PkGam
    @PkGam 3 года назад

    This is easily one of the most detailed glitch explanation videos on RUclips! Incredible work on this as it's truly fascinating how it generated itself!

  • @kycrio5356
    @kycrio5356 4 года назад +5

    I absolutely love the way you present these videos, and your editing is top notch! Can't wait for more!