MissingNo.'s Glitchy Appearance Explained

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 2,2 тис.

  • @gretarreynisson3280
    @gretarreynisson3280 4 роки тому +2196

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

    • @wraithcadmus
      @wraithcadmus 4 роки тому +71

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

    • @gretarreynisson3280
      @gretarreynisson3280 4 роки тому +88

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

    • @Bagabundoman
      @Bagabundoman 4 роки тому +93

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

    • @SomeIdiota
      @SomeIdiota 4 роки тому +40

      Missed opportunity to say Scizor!

    • @wraithcadmus
      @wraithcadmus 4 роки тому +62

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

  • @fders938
    @fders938 4 роки тому +2526

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

    • @meILM
      @meILM 4 роки тому +20

      Nice

    • @centdemeern1
      @centdemeern1 4 роки тому +20

      Yeah, right?

    • @deoxal7947
      @deoxal7947 4 роки тому +103

      THE SACRED TEXTS

    • @deividaskavaliauskas2210
      @deividaskavaliauskas2210 4 роки тому +9

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

    • @sometimesidreamaboutsatori
      @sometimesidreamaboutsatori 4 роки тому +14

      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

  • @danielstephenson7558
    @danielstephenson7558 4 роки тому +1632

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

    • @Ails1234
      @Ails1234 4 роки тому +39

      I actually recognized the rock sprite...

    • @hesterfranks9716
      @hesterfranks9716 4 роки тому +93

      it's jigglypuff from above

    • @andrewprahst2529
      @andrewprahst2529 4 роки тому +29

      Hester Franks That joke shall never be forgotten

    • @scyobiempire4450
      @scyobiempire4450 4 роки тому +7

      I thought Magikarp was Rapadash.

    • @Leafia_Barrett
      @Leafia_Barrett 4 роки тому +15

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

  • @SethEverman
    @SethEverman 4 роки тому +5417

    jesus this is an incredibly well made video

  • @lagcom
    @lagcom 4 роки тому +1548

    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 3 роки тому +188

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

    • @hznwhz
      @hznwhz 2 роки тому +18

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

    • @alfonzog6327
      @alfonzog6327 2 роки тому +41

      He did WHAT

    • @FreeSeoul
      @FreeSeoul 2 роки тому

      @@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.

    • @itstheman0nthem00n
      @itstheman0nthem00n Рік тому +21

      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.

  • @DragonDePlatino
    @DragonDePlatino 4 роки тому +770

    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 роки тому +94

      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 роки тому +25

      also Rattata.

    • @TrigramThunder
      @TrigramThunder 4 роки тому +32

      @@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.

  • @JJASalazar
    @JJASalazar 4 роки тому +561

    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.

    • @TheBooklyBreakdown
      @TheBooklyBreakdown 4 роки тому +5

      @@SadoMessiahLP .75x speed in settings

    • @SadoMessiahLP
      @SadoMessiahLP 4 роки тому +4

      @@TheBooklyBreakdown 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

      @ 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...

  • @blanchfor
    @blanchfor 4 роки тому +2252

    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?

  • @ktvx.94
    @ktvx.94 4 роки тому +350

    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 2 роки тому +41

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

    • @elementgermanium
      @elementgermanium Рік тому +71

      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 Рік тому +49

      ​@@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 Рік тому +25

      ​@@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 Рік тому +17

      @@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

  • @uljk5699
    @uljk5699 4 роки тому +779

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

  • @john2001plus
    @john2001plus 4 роки тому +735

    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 роки тому +47

      Because it'd compress tighter that way.

    • @john2001plus
      @john2001plus 4 роки тому +87

      @@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 роки тому +292

      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 роки тому +133

      @@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 роки тому +131

      @@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.

  • @m0n5a80
    @m0n5a80 4 роки тому +2159

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

    • @kevinhaddad9420
      @kevinhaddad9420 4 роки тому +264

      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 роки тому +34

      And a mouth.

    • @SongbirdOfficial
      @SongbirdOfficial 4 роки тому +37

      I don't see it

    • @donutman4020
      @donutman4020 4 роки тому +8

      Derpion the Derpy me neither

  • @Flowtail
    @Flowtail 4 роки тому +1741

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

    • @ais4185
      @ais4185 4 роки тому +95

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

    • @Leafia_Barrett
      @Leafia_Barrett 4 роки тому +114

      @@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 роки тому +30

      @smb85 dkc94 really efficient calculators.

    • @benn454
      @benn454 4 роки тому +25

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

    • @felixvelariusbos
      @felixvelariusbos 4 роки тому +57

      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.

  • @Tinkatube
    @Tinkatube 4 роки тому +115

    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.

  • @Liravin
    @Liravin 4 роки тому +215

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

  • @computer-love
    @computer-love 4 роки тому +1845

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

    • @joshuahudson2170
      @joshuahudson2170 4 роки тому +86

      MMU not found. Can't segfault.

    • @anubeia
      @anubeia 4 роки тому +16

      make a segue
      escape on your Segway

    • @kanden27
      @kanden27 4 роки тому +33

      ...Hotel: Trivago

    • @crqf2010ruler
      @crqf2010ruler 4 роки тому +11

      @@kanden27 Trip: Advisor

    • @KayOScode
      @KayOScode 4 роки тому +5

      I don't think it had an os

  • @kbhasi
    @kbhasi 4 роки тому +182

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

  • @lakelimbo
    @lakelimbo 4 роки тому +524

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

    • @madajahpowell9023
      @madajahpowell9023 4 роки тому +69

      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 4 роки тому +52

      He was erased from relating after failing his taxes

    • @blitzie66
      @blitzie66 3 роки тому +4

      @@spongeboi.offical3901 huh

    • @Lokear
      @Lokear 3 роки тому +11

      @@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 2 роки тому +7

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

  • @themetalone7739
    @themetalone7739 3 роки тому +1043

    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

    • @frostedflakes11
      @frostedflakes11 2 роки тому +1

      I had the hall of fame glitch too

    • @PKNproductions
      @PKNproductions 2 роки тому +138

      "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.

    • @zapx1239
      @zapx1239 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)

  • @MathematicPony
    @MathematicPony 4 роки тому +109

    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.

  • @MrKhaz101
    @MrKhaz101 4 роки тому +408

    "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 4 роки тому +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

  • @Mswordx23
    @Mswordx23 4 роки тому +934

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

    • @RudiGallon
      @RudiGallon 4 роки тому +29

      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 роки тому +26

      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

  • @greentetrahedron7992
    @greentetrahedron7992 4 роки тому +730

    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

  • @Damian_1989
    @Damian_1989 2 роки тому +81

    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.

  • @ShinoSarna
    @ShinoSarna 4 роки тому +1668

    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 роки тому +124

      Why not both? :)

    • @nickolaswilcox425
      @nickolaswilcox425 4 роки тому +127

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

    • @wingedmirage4226
      @wingedmirage4226 4 роки тому +163

      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 роки тому +64

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

    • @wingedmirage4226
      @wingedmirage4226 4 роки тому +76

      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).

  • @Yipper64
    @Yipper64 4 роки тому +181

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

  • @ImSquiggs
    @ImSquiggs 4 роки тому +178

    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

    • @StarlightTrail3
      @StarlightTrail3 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.

  • @OtherTomKat
    @OtherTomKat 4 роки тому +142

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

  • @darkfent
    @darkfent 4 роки тому +69

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

  • @l9m241
    @l9m241 4 роки тому +203

    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 роки тому +32

      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.

  • @syrup4835
    @syrup4835 4 роки тому +26

    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!

  • @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.

  • @ampoulgon8716
    @ampoulgon8716 4 роки тому +95

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

  • @ReySilverskin
    @ReySilverskin 4 роки тому +46

    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.

  • @shapeswitch_mood7221
    @shapeswitch_mood7221 4 роки тому +340

    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 4 роки тому +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 4 роки тому +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...

  • @iMac9991
    @iMac9991 4 роки тому +592

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

    • @Leafia_Barrett
      @Leafia_Barrett 4 роки тому +162

      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 роки тому +149

      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 роки тому +23

      @@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 3 роки тому +13

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

  • @Tatsh2DX
    @Tatsh2DX 4 роки тому +812

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

    • @helloofthebeach
      @helloofthebeach 4 роки тому +47

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

    • @mikebarr2436
      @mikebarr2436 4 роки тому +38

      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:

  • @ImShep117
    @ImShep117 4 роки тому +1103

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

    • @Cyorg13
      @Cyorg13 4 роки тому +7

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

    • @SETH_420
      @SETH_420 4 роки тому +43

      funny, did laugh

    • @CarlosFernandez-yu1mz
      @CarlosFernandez-yu1mz 3 роки тому +12

      The most underrated comment

    • @braintwo3398
      @braintwo3398 3 роки тому +20

      How's that Pokémon

    • @ohhiman
      @ohhiman 3 роки тому +20

      @@braintwo3398 my charizard says hes doing fine

  • @joseortega7815
    @joseortega7815 4 роки тому +79

    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 Рік тому +1

      My guy doxed his classmate wtf

    • @joseortega7815
      @joseortega7815 Рік тому

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

  • @johnwest6690
    @johnwest6690 4 роки тому +75

    "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 4 роки тому +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 3 роки тому

      nice pfp

  • @esotericVideos
    @esotericVideos 4 роки тому +299

    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 роки тому +65

      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 роки тому +45

    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

  • @mysticizzm
    @mysticizzm 4 роки тому +38

    This literally explains "Glitch City" beautifully for the visual learner.

  • @riozuiderduin9928
    @riozuiderduin9928 4 роки тому +40

    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 Рік тому

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

    • @photonic083
      @photonic083 11 місяців тому +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.

  • @gamesux420
    @gamesux420 4 роки тому +49

    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.

  • @the_big_dededester
    @the_big_dededester 4 роки тому +43

    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 4 роки тому +9

      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 .

  • @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.

  • @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.

  • @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.

  • @Myth1221
    @Myth1221 4 роки тому +33

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

  • @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.

  • @altaccout
    @altaccout 4 роки тому +29

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

  • @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! :)

  • @demonic-deadbeat3212
    @demonic-deadbeat3212 4 роки тому +51

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

  • @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.

  • @kinshraslave3450
    @kinshraslave3450 4 роки тому +69

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

  • @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 роки тому +12

      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!!"

  • @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 Рік тому

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

  • @SelkieSurrogate
    @SelkieSurrogate 2 роки тому +11

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

  • @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.

  • @Pokeplan
    @Pokeplan 4 роки тому +76

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

  • @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.

  • @sukidable
    @sukidable 2 роки тому +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.

  • @fluffly3606
    @fluffly3606 5 місяців тому +5

    Watching this with bluetooth headphones
    "This is also where the placeholder name of BATTERY LOW came from"

  • @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.

  • @stevenschiro1838
    @stevenschiro1838 4 роки тому +16

    "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!

  • @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? ;)

  • @gax1864
    @gax1864 3 роки тому +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.

  • @mason3872
    @mason3872 4 роки тому +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.

  • @AlexJones-qf7rw
    @AlexJones-qf7rw 4 роки тому +35

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

  • @PrimoBambino
    @PrimoBambino 4 роки тому +26

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

  • @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 4 роки тому

      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

  • @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

  • @kylebowles9820
    @kylebowles9820 2 роки тому +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.

  • @kycrio5356
    @kycrio5356 4 роки тому +5

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

  • @woodman811
    @woodman811 4 роки тому +11

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

  • @OddlyTaco
    @OddlyTaco 4 роки тому +11

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

  • @ferndog1461
    @ferndog1461 Рік тому +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 .

  • @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!

  • @kevinlopezobrien5366
    @kevinlopezobrien5366 4 роки тому +6

    I never knew that I wanted to know this. Very nicely done! The limitations of older hardware inspired some incredible creativity among programmers.

  • @kpando4952
    @kpando4952 4 роки тому +306

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

    • @TheBooklyBreakdown
      @TheBooklyBreakdown 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 4 роки тому +2

      @@blueartist4011 he’s already dead stop

    • @blueartist4011
      @blueartist4011 4 роки тому +1

      @@kuromifan10 ...

  • @mjdxp5688
    @mjdxp5688 4 роки тому +21

    It's actually pretty likely Game Freak merely copied over hex:00's data into all of the deleted Pokémon's index numbers, as MissingNo. and hex:00 have more in common then just their Pokédex number, such as starting moves and type. Game Freak likely removed all of MissingNo.'s level up moves and it's evolution data (hex:00 can evolve into Kangaskhan and it can learn moves over Level 100) for some reason and changed its name from garbage characters to MissingNo. as an error message so while debugging, they could easily identify encounters that needed to be replaced.

    • @TheZZAZZGlitch
      @TheZZAZZGlitch 4 роки тому +19

      It's really the opposite. The developers filled in placeholder data for all Pokémon removed in development, and set their Pokédex numbers to 0. And, completely by accident, the hex:00 Glitch Pokémon happens to have Pokédex number 0, so it inherits some of that data.
      When loading Pokémon data, some things are derived from the Pokédex number, like the Pokémon's typing, starting moves, base stats, sprite palette when viewed on a Super GameBoy, experience group and much more, which is why hex:00 shares all of these things with Missingno.
      At 20:56 in the video, you can see the glitch Pokémon hex:DD. Notice that it shares its typing, starting moves, and even its sprite with Tentacruel. This is because hex:DD happens to have a dex number of 073, which is also the dex number for Tentacruel. In the Gen I glitching community, the term for this is "hybrid glitch Pokémon" or "glitch Pokémon family" - look it up if you're interested!
      However, other things like level-up moves, evolutions, TM/HM compatibility, are not derived from the dex number, but from the Pokémon's internal identifier. That's why 'M (hex:00) evolves into Kangaskhan, while Missingno. does not. That's also why Missingno. learns no moves by level-up, whereas 'M learns Pound at level 136 (yes you read that right, level 136). And Missingno. can't learn any TM/HM moves, while 'M can learn quite a bit of them, like Mega Punch or Mega Kick.
      All of this data is assigned to internal IDs, not Pokédex numbers. So 'M does not inherit any of that placeholder data.
      Notice that all of the "crazy/wild" things (typing, base stats, sprite) are related to the Pokédex number, while all of the "tame/placeholder" data (level-up moves and evolutions, TM compatibility, name) are related to the internal identifier.
      That's because Game Freak set some placeholder data in the Pokémon structures, but didn't do the same for the Pokédex number. In fact, dex number 0 is interpreted as dex number 256 and indexed out of bounds.

    • @endymallorn
      @endymallorn 4 роки тому +2

      @@TheZZAZZGlitch I'm not a great programmer or hacker, but it looks to me like what you just described is how hacks that add either some of the cut beta pokemon or the 2nd Gen Pokemon (some of which were cut from G1) back into the game. Are there 2 copies of BIRD (or other) type in the ROM as well, which is how the Dark/Steel/Fairy hacks work?

  • @violetarche3746
    @violetarche3746 4 роки тому +1

    Glad this popped up in my suggestions. I was trying to look this up a couple months ago to no avail

  • @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.

  • @chipan9191
    @chipan9191 2 роки тому +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 Рік тому +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 Рік тому +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.

  • @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.

  • @GokaiPlatinum
    @GokaiPlatinum 4 роки тому +76

    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.

  • @MrHumannnn
    @MrHumannnn 3 роки тому +8

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

  • @elli_senfsaat
    @elli_senfsaat 4 роки тому +40

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

    • @elli_senfsaat
      @elli_senfsaat 4 роки тому +6

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

  • @OrangeXarot
    @OrangeXarot 4 роки тому +17

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

  • @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.

  • @TurquoiseStar17
    @TurquoiseStar17 2 роки тому +3

    Best explanation for MissingNo. I've ever seen. Well done! Turning your Hall of Fame record to garbage was a small price to pay for the useful side of effect of getting 128 Master Balls, Rare Candy or whatever else you had in the sixth item slot. I've read some Gen 1 developers actually credit that aspect of the glitch for helping boost Pokémon's early popularity.

  • @wezen89
    @wezen89 2 роки тому +3

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

  • @lois3356
    @lois3356 4 роки тому +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.

  • @OGuiBlindao
    @OGuiBlindao 4 роки тому +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 ??????????

  • @_koza
    @_koza 4 роки тому +5

    As someone who barely understands this sort of thing, I find it fascinating & oddly beautiful. Having it explained to me is like witnessing magic happen. lol

  • @Verinius
    @Verinius 4 роки тому +5

    TLDR: The data parameters for MissingNo were unintended because it's a corrupted Pokedex number. That's why the game doesn't "read" its sprite properly. MissingNo goes way beyond the proper format for the Pokemon sprites and that affected the Hall of Fame data.
    So why does MissingNo exist in the first place? They were probably Pokemon removed from the final version. However, their data are still in the internal ID and the devs did not adjust their Pokedex number.
    P.S. 18:15 onwards is the best part.

  • @BloodyMobile
    @BloodyMobile 6 місяців тому +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.

  • @TenshiNyako
    @TenshiNyako 4 роки тому +1

    Awesome and detailed work here. Never played this game but were unable to stop watching this video. Good job.

  • @Ronezkj15
    @Ronezkj15 4 роки тому +6

    20:11 216's name: Exists
    Me: Coincidence?
    I THINK NOT