Pokemon G/S/C - Beat Up glitch (link battle desynchronization)

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

КОМЕНТАРІ • 91

  • @Hiandbye95
    @Hiandbye95 7 років тому +193

    "There is a possibility that you haven't understood a thing of the explanation I provided."
    Truer words have never been spoken.

    • @tylerd1297
      @tylerd1297 4 роки тому

      Lol me all the time on this channel

  • @Kes1to
    @Kes1to 7 років тому +100

    So... Player 1 is teleported into another dimension where he fights against OP garbage. And Player 2 is teleported into another dimension where Player 1 is possessed by a bot.
    ...
    NOICE! :DDDDD

  • @CollectorTogami
    @CollectorTogami 7 років тому +151

    This is what happens when gen 2 lacks the Synchronize ability

    • @SatoMew
      @SatoMew 7 років тому +8

      Oh, you.

    • @mantislazuli
      @mantislazuli 7 років тому +5

      ua-cam.com/video/ObpcGNCU944/v-deo.html

  • @jacobgutierrez9642
    @jacobgutierrez9642 6 років тому +41

    Ugh I hate it when I make my pets fight to the death but one attacks when they weren't supposed to and then the universe breaks down

  • @Kairos_Akuma
    @Kairos_Akuma 7 років тому +58

    ....A Butterfree. With a shitton of Stati. On lvl 205 with the cry of a Magicarp.
    Don't see anything wrong.

    • @glitchyglitchy3925
      @glitchyglitchy3925 6 років тому +16

      I think that's a Bellsprout's cry. I guess the evil lurking in Pokemon Crystal really likes Grass types.

    • @adam7802
      @adam7802 6 років тому +3

      Or they must love sprout tower haha

  • @emmetth3726
    @emmetth3726 7 років тому +27

    I always forget how different Sneasel looked in gen 2. Also probably due to no one ever seeing one in he games

  • @LStranck
    @LStranck 7 років тому +28

    4:54 at least here, they are """synchronized"""

  • @SatoMew
    @SatoMew 7 років тому +76

    Imagine desyncing a mobile battle in Japanese Crystal, especially considering there is a limit of 10 minutes.

    • @SatoMew
      @SatoMew 7 років тому +11

      It's possible to emulate the Mobile System GB somewhat and, if the Virtual Console patch is anything to go by, then you won't need a Mobile Adapter GB if Japanese Crystal does come out with the mobile features still available.

    • @rawr51919
      @rawr51919 7 років тому +1

      Archiwa telewizyjne (rezerwowy) They could just fix the ROM that they use for the digital VC version of Crystal, however, this would lead to possible incompatibilities with the original cartridge, so some glitches would need to stay active when dealing with these versions (Crystal uses some of the Gold/Silver battle glitches to keep compatibility with the cartridge versions of those games).

    • @SatoMew
      @SatoMew 7 років тому +5

      They don't actually touch the ROMs for VC, they simply instruct the emulator to apply patch files during gameplay.

    • @Flametix
      @Flametix 7 років тому +3

      Nintendo would probably shut off the online features anyway if anyone injects some save/their own patch with names/stats to break the trade server or something

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

      @@Flametix except you can easily generate ant Pokémon with any OT in Gen 1.

  • @nickjaramillo64
    @nickjaramillo64 5 років тому +8

    I have looked for this information since around the time the games came out, and never found anything until now. it was always hard to word when searching. all i remember was battling my brother through a link cable until eventually our battle gets "interrupted" and we each battle a pokemon with the color of a ditto, in my case a Tangela in Ditto color. so much satisfaction after all these years

  • @Apika69
    @Apika69 7 років тому +29

    1:30 you really know your audience.

  • @garrettv.g.1758
    @garrettv.g.1758 4 роки тому +15

    Hey Crystal_, what happens if you use Beat Up with more than 6 pokemon in the party? I think that would make for an interesting video!

  • @WilliamSyler
    @WilliamSyler 7 років тому +20

    If I may, I might recommend a visual identifier of some kind on the text box so readers will known when you're about to change the text. I think a simple countdown from 5 in the bottom right corner would suffice.

  • @prexot2341
    @prexot2341 7 років тому +46

    I wonder why more people don't already know about this...?
    Oh, right, because Beat Up is an absolute shit move and nobody ever uses it.

    • @yech3461
      @yech3461 6 років тому +10

      Actually, people do use beat up, to hit justified pokemon on their side in a double battle to get a massive attack boost

    • @JC-hi8fk
      @JC-hi8fk 6 років тому +2

      Except in the TCG.

    • @UltraAryan10
      @UltraAryan10 5 років тому +1

      Beat Up deserves a buff, possibly a 20 BP move instead, 120 BP with full team is a better option.

    • @johnsonjohnson8530
      @johnsonjohnson8530 5 років тому +1

      It's cool to see this glitch explained and in action. Who cares about the viability of the move?

    • @johnsonjohnson8530
      @johnsonjohnson8530 5 років тому +1

      @@8Kazuja8 Actually someone made a gimmick team of a choice band weavile with beat up + a bunch of high attack mons and it was pretty damn successful.

  • @Ayalolis
    @Ayalolis 6 років тому +5

    congrats for reaching 6.000 subs, keep it up with such amazing content that you provide us along those years, i love your channel

    • @Crystal_2
      @Crystal_2  6 років тому +4

      Thank you! You noticed it before I did xD

  • @Pawlok131
    @Pawlok131 5 років тому +4

    Just wondering: would it be possible to at least partially resynchronize games if right player would change pokemon when left player knocked out a glitch pokemon?

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

    This is incredible! My best friend and I had the glitch with the level 205 Butterfree years ago (among other things)! I never expected to see video of it being recreated. This brings back so much nostalgia!

  • @glitchyglitchy3925
    @glitchyglitchy3925 6 років тому +3

    Shit like this is exactly what creepypastas are made of.

  • @SomeGuy712x
    @SomeGuy712x 7 років тому +18

    Interesting how wonky Beat Up is.
    BTW, I've been curious about something in the first 2 generations for a while now. Why is it that enemy Pokémon can sometimes miss with 100%-accurate debuff moves such as Growl, Leer, and Tail Whip, even if nothing has happened to affect accuracy or evasion? (If that's something you'd already covered in a video in the past, can you link me to that video?)

    • @gudenau
      @gudenau 7 років тому +1

      SomeGuy712x It's a mistake, 1 in 256 chance to miss.

    • @SomeGuy712x
      @SomeGuy712x 7 років тому +3

      No, those debuffs miss far more often than 1/256 of the time when used by opponents. It's more like about half the time or so (not sure exactly). And, they can miss like this in Gen. 2, which doesn't have the 1/256 miss glitch.

    • @gudenau
      @gudenau 7 років тому

      SomeGuy712x Oh, how odd then.

    • @Crystal_2
      @Crystal_2  7 років тому +24

      Yes, stat lowering and status moves have an independent 25% chance of missing when used by a non-link non-battle tower opponent.

    • @SomeGuy712x
      @SomeGuy712x 7 років тому +5

      Huh. Alright, thanks. I'm guessing it was programmed that way to help the player out during the story, but it does seem rather odd.

  • @camwoodstock
    @camwoodstock 7 років тому +1

    Is there a video is document listing the glitches of desyncronizing a link battle in GSC?

  • @TheLucarioBaoJunior
    @TheLucarioBaoJunior 7 років тому +15

    Would there be a way to resync the battle?

    • @Crystal_2
      @Crystal_2  7 років тому +28

      From a generic scenario, definitely not. You might be able to revert an specific desync process if you are very careful and the rng streams have not gotten very out of sync, but in general it's just not possible to resync it completely.

    • @blaze4109
      @blaze4109 7 років тому +15

      The best way I can think of is for both players to switch pokémon. That will at least get rid of the nameless glitchy monstrosities generated by desyncing.

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

    I've never seen what the old link battles used to look like, wow! Thanks, dude! This is super interesting😃

  • @moth.monster
    @moth.monster 7 років тому +4

    i'm playing pokemon (EV grinding for the elite four) while watching this :)

  • @harukaze7388
    @harukaze7388 7 років тому +2

    I was wondering how much damage would it do with maxed out attack, but too bad it ignores temporary boosts entirely.

  • @invalid_user_handle
    @invalid_user_handle 5 років тому

    Simply put, the one Gameboy thinks the Blissey fainted, while the other thinks that it didn't, causing the two linked Gameboys to have different results, and memory corruption.

  • @Seethi_C
    @Seethi_C 5 років тому +4

    Dude, so I totally remember seeing a Tangela like that when I was link battling my sister years ago. It's crazy that such a precise environment happened by accident to us. Does this only happen with Beat Up? I don't remember using that move.

    • @Crystal_2
      @Crystal_2  5 років тому +2

      No, it's not specific to Beat Up. It's a common pattern to micro communication errors in these games. Don't know the specifics but it's probably related to what the receiver interprets as the received data (or lack of it). Games sent commands to each other and when the receiver interprets one that is out of bounds, something unexpected (but usually consistent) will happen.

  • @__mk_km__
    @__mk_km__ 7 років тому +1

    See kids?
    Thats why structs were invented in C.
    Because messing up your offset is not a good thing...

    • @xyzzy-dv6te
      @xyzzy-dv6te 5 років тому +1

      bugs are possible in C too, and it's possible to fix bugs in assembly

  • @waterpig-p
    @waterpig-p 6 років тому +4

    Metronome sometimes desynchronize link battle too.

    • @clonefighter1996
      @clonefighter1996 5 років тому +1

      Using "Beat up"

    • @waterpig-p
      @waterpig-p 2 роки тому

      @@clonefighter1996 Probably, yea

    • @waterpig-p
      @waterpig-p 2 роки тому

      @@clonefighter1996 I remeber it happening to me a long time ago, so I'm unsure whether it desyncs due to beat up or other sloppy code

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

    Hey! I remember seeing this glitch. Not the Beat Up thing but the one where you face a level 0 Tangela.

  • @sebastianperez8023
    @sebastianperez8023 7 років тому +1

    Can you make a video on how the Pokemon that has data read from an errant value is composed?

    • @Crystal_2
      @Crystal_2  7 років тому +1

      I did that for RBY if you're interested: ua-cam.com/video/XYIUaPKlA7s/v-deo.html

  • @p_yoshi
    @p_yoshi 7 років тому +1

    Irrelevant statement. Snake game seems almost compatible with English Crystal.

    • @p_yoshi
      @p_yoshi 7 років тому +1

      Also, how am I supposed to write to DA10/FA10? I just wanna walk through walls for fun.

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

    oh yeah I forgot you could enter a link battle pre-damaged in GS

  • @CoffeePotato
    @CoffeePotato 3 роки тому

    My brother and I had this happen once, was freaky at the time.

  • @thomasreichert2804
    @thomasreichert2804 7 років тому +1

    Nice exploit!
    But what is it that causes the desynchronisation?
    Does one Gameboy execute the move and tell the other what happened (and got this wrong)? Or do both execute separately and use a slightly different algorithm?

    • @CoopersCrazy
      @CoopersCrazy 7 років тому +6

      What happened was that the Beat Up on the left side had 3 hits (due to data being read incorrectly because of an error in the coding), while the Beat Up on the right side read the data correctly and had the correct 2 hits. This causes a discrepancy in the remaining HP of the attacked pokemon; because Blissey fainted on the left side but not the right, the left game tried to interpret what was happening and sent out a garbage mon because the right side didn't actually switch into anything.
      From my understanding, during a link battle the games share situational information. Like, if 1 game says that the pokemon in slot 0 used the move in slot 2, the 2nd game knows what that is based on the situation. But if they get desynchronized then what slot 0 move 2 is for game 1 is something different for game 2. They're still communicating, but the data no longer lines up.

    • @thomasreichert2804
      @thomasreichert2804 7 років тому +2

      CoopersCrazy Ah ok. I was still wondering what caused the difference in running beat up in the first place? Why does one game have a correctly-programmed version of the move, while the other does not?
      I assume they'd have to share more than just which move was used, so for example if double slap is used, it has to be seen to hit the same number of times, and critical hits etc on both sides

    • @CoopersCrazy
      @CoopersCrazy 7 років тому +2

      I'm not sure, I imagine the difference is that the sent information is correct, but the error is in what happens in the user's game. Maybe Crystal_ can provide a more in-depth answer

    • @Klaeyy
      @Klaeyy 7 років тому +1

      I could guess that the data for your opponents team is probably stored in a different maybe "cheaper" way (you can't read your opponents team stats, attack moves, pokemon names etc. all the time) and it could be stored in a different place in memory as well.
      Which means the method used to read the data of your opponents team could be different to the one used to read your own teams data since data which is stored in a different way (and in a different place) might need a different handling.
      This is especially true because a link battle is a special case that probably uses a entirely different way of reading and storing your opponents data as the rest of the game.

    • @Crystal_2
      @Crystal_2  7 років тому +8

      A link battle's integrity is based on the fact that same action + same rng = same outcome (link battles use a shared prng stream that is previously generated in one side and sent to the other). Of course, this implies that player side code and enemy side code *performs* identically, or link battles would desync easily. The *implementation* of each side has to be strictly different however, if only because player variables and enemy variables are stored in different places. Therefore, each move effect is implemented in the game twice, once for each side (even though most move effects can reuse most of their code for both sides). This beat up glitch is caused by the player side implementation of the move not performing 100% identical to the enemy side implementation.

  • @laharl2k
    @laharl2k 7 років тому +1

    why couldnt they just sync on each animation? the data isnt that large so even 9600 bauds could probably be more than enough to send the overhead plus the current battle state plus pokemon states.

    • @Crystal_2
      @Crystal_2  7 років тому +1

      the gb link protocol works like, now I send a byte, then you send a byte. It's not meant to send big payloads of data to each other. plus even if you could, that's not how pokemon battles work, you execute an action that leads to things happening. sending the battle state to the other side won't be of much help if you don't tell him what led to that state, because then the only thing the other side can do is abruptly changing the displayed information.

    • @__mk_km__
      @__mk_km__ 7 років тому +1

      Who needs a good protocol, when you have a roll of cheinese tape laying around(aka the "protocol" Gen 1, 2 games use)?
      -GaaeFreak

  • @Asidders
    @Asidders 13 годин тому

    4:36 Gigamax Butterfree

  • @rasrguizarlopez7992
    @rasrguizarlopez7992 6 років тому +1

    A video without dislikes!!!

  • @LinusGranstrom
    @LinusGranstrom 6 років тому

    Wow this is preatty cool

  • @gudenau
    @gudenau 7 років тому

    Is this another case of the wrong branch instruction being used or something similar?

    • @__mk_km__
      @__mk_km__ 7 років тому +1

      Devs just screwed up the variable-reading.
      So instead of reading the field with pokemon id, Beat Up's code reads the first byte of health variable.

    • @xyzzy-dv6te
      @xyzzy-dv6te 5 років тому

      wrong comparison

  • @jeanclopez373
    @jeanclopez373 5 років тому

    You're amazing

  • @cicerothenekoknightplaysall
    @cicerothenekoknightplaysall 4 роки тому

    Hah thats awesome

  • @kieran8266
    @kieran8266 7 років тому

    This video is super loud lol

  • @giyuusama7583
    @giyuusama7583 5 років тому

    Vengó de parte de *_Nigueru Willian_*