Avatar

Butterfree's silly tumblr thing something

@antialiasis / antialiasis.tumblr.com

Hello. I go by Butterfree, Dragonfree or antialiasis. I own a Pokémon website called The Cave of Dragonflies. This is my personal/fandom/whatever blog. I am currently trying to draw something every day; you can see the results on my artblog.
Avatar

Just finished the latest video by pannenkoek2012 (of "half an A press/parallel universes" fame), and please just inject this into my veins. I haven't even played Super Mario 64 and had no idea invisible walls were a common problem in it, but I am a big, big appreciator of diving into game mechanics to explain exactly why the thing happens, and this video is just that for nearly four hours, in an incredibly satisfying way. He splices in videos of Twitch streamers raging as Mario bonks against empty air or dies out of nowhere or suddenly teleports under the floor, in between cheerfully replicating it and explaining precisely what was actually going on there.

(Some of the sequences of individual explanations of particular invisible walls can get lengthy and more spelled-out than they needed to be, but even then we didn't actually find ourselves skipping any of it, though you could.)

Just as a taste, you'd think invisible walls mean there's for some reason a wall there that's invisible, that maybe used to be there but the developers failed to fully remove it - but while that happens a couple of times, most invisible walls are instead caused by something like rounding errors or developer fumbles that lead to teeeeny-tiny gaps or misalignments in the level geometry, which lead to the game calculating a bunch of individual columns one 3D-pixel-equivalent wide as being part of the "hitbox" of a ceiling or out-of-bounds region somewhere below the floor. And he's modded the game to visually show these errant hitboxes, so you can actually watch what it is that Mario's bumping against. It's just concentrated step-by-step making the previously incomprehensible comprehensible. All I want is to understand everything like this and help other people understand it too.

Avatar

Welcome to THE CASINO OF DRAGONFLIES. After a couple of years of growing pathological obsession with the game of roulette, and the many e-mails I have received with offers to make me rich if only I would add links to the top casino games to my Pokémon website, I have finally faced the depths of my addiction and embraced the site's destiny. Click the link above to play and learn all about THE BEST ONLINE ROULETTE GAME trending casino gambling.

Avatar
reblogged
Avatar
elyvorg

Kieran Part Bonus: I AM SO PROUD OF MY BOY

And now for my really actually final analysis post about Kieran, covering both the epilogue and also his scenes in the League Club room once you’ve finished that. Somehow both of these relatively short pieces of content still managed to be packed with delightful nuance showcasing both how Kieran’s still struggling with his issues and yet also how much he’s grown since his main arc. They are absolutely lovely and fill me with so many warm happy feelings about my boy.

Honestly, it’s remarkable, not just from a Pokémon-writing perspective but as a piece of fiction in general, to have this kind of satisfying follow-up for a character arc. Usually once a character’s arc reaches a resolution, their story just ends there, and we don’t get to see more of how they’re processing what they’ve been through and learning to grow further in the aftermath. So it’s a really wonderful breath of fresh air to get to see something like that for once here with Kieran! The Pokémon writers absolutely did not have to make the epilogue and postgame content focused on showcasing this, and yet they did. I am, once again, pleasantly boggled by how much they cared about doing Kieran’s story justice. Just, wowzers, man. There really is no more appropriate word for my amazement than that.

(This is an epilogue, if you will, to my previous two analysis posts discussing Kieran’s character arc in The Teal Mask and The Indigo Disk! Reading those before this is probably recommended.)

Avatar
antialiasis

Part three of elyvorg's excellent Kieran essays is here! Kieran is so good, and while the epilogue was short and lighthearted, it featured some really thoughtful followup on Kieran and his arc - surprisingly nuanced demonstrations that his insecurities still exist but that he's doing better and healing in so many different ways. I am also so proud of my boy.

Avatar

There's a really minor comment Mark makes in one of the final chapters of TQFTL about how starved Mewtwo² looks, but it's been living rent-free in my head for years. Does he ever get a chance to eat a real, full meal after all the spoilery stuff is done and over with?

Avatar

He will feast on only the richest of delicacies from now on and make flower crowns in between stretching out in sunbeams like the big kitty he is.

Avatar
reblogged
Avatar
cupcakedex

A happy birth-Dave for @antialiasis!

Dragonfree is one of my oldest internet friends, a constant inspiration to me, and so beautifully supportive of everything I do. We hadn't been able to do our treasured yearly get-togethers since 2019, but getting to see her, her husband and @negrek was such a highlight of our wedding last summer.

(Peep the Dragonair she drew on our fan for @antialiart!)

Happy birthday! <3

Avatar
antialiasis

Aaaaa, thank you! <3 <3 <3 And thank you for inviting us to your wedding! It was such a blast <3

Avatar

Groundhog Dave, the 16k-word Morphic time loop extra, is finally up on TCoD. If you've been following this blog for a while, you may have seen me intermittently talk about it. Long story short, Dave is trapped in a time loop on the day of chapter 13, and we explore how he responds and unravels.

Content warnings: This is a whump fic. It features some strong violence including gun violence, suicide and suicidal thoughts, brief vomiting, a deluge of strong and demeaning language, consumption of alcohol, heavy emotional distress, existential horror, and a whole lot of children dying.

Some rambling below the cut about how it came to be and my favorite bits in it.

Avatar
reblogged
Avatar
elyvorg

Kieran Part 2: It’s All About You

Well, looks like The Indigo Disk didn’t remotely drop the ball – it caught it in incredible style! Pokémon’s best character-writing job yet has been followed up and capped off with, if anything, something even better. Kieran is far and away the most complex and well-written character that mainline Pokémon has ever achieved, and I am here to talk about the second half of why this is, in very great detail. Consider me just, blown away. I have So Many Feelings about this boy.

This is of course a follow-up to my earlier analysis post about Kieran’s character and arc during The Teal Mask, which you can find here. Reading that before this is recommended!

(This will contain a couple of brief references to some post-epilogue lines, so if you haven’t got to that stuff yet and you really care about seeing it completely fresh, you might want to hold off on reading this for now. But there’s no actual spoilers for the epilogue itself in here, because, whoops, I think I’m gonna have to cover all of that in yet another post of its own.)

Avatar
antialiasis

Yesssss. Kieran's character arc in Indigo Disk was delicious, please go read 16k excellent words about this kid. I am so, so pleased the Pokémon games have progressed into doing genuinely good interesting character writing and stories climaxing with real meaningful character moments.

Avatar

What country is the Ouen region based on.

Avatar

It's not based on any country. At the time, when I started the fic in 2002, I hadn't even heard about the canon regions having a correspondence with real-world locations, so finding some existing place to base it on wasn't something that ever crossed my mind. I just made something up.

Avatar

I was going through my closet recently and wanted to share some fanart I found! I drew it when I was 13-14 years old for an art class.

It's a scene from Mark and May's battle in the League! I even tried to draw the Life orb her Flygon had around their neck. It made me smile remembering it, so I hope it makes you smile, too

Avatar

Awww, that's lovely! <3 Thank you for showing me! Love the stadium ads, true verisimilitude.

Avatar
reblogged
Avatar
antialiasis

Look! Look! It's the site that had the Mew trick in 2002, the one I saw and rolled my eyes really hard at and dismissed as obviously fake! It's so obviously fake and even has a disgruntled commenter saying it's bogus. Ridiculous arbitrary instructions about how you must not have battled these particular random trainers (so conveniently you can't test it without restarting your save file), overly complex confusing instructions, supposedly the menu will just pop up out of nowhere and then if you press B a wild Mew appears. Urgent allcaps insistence that it DEFINITELY WORKS and if it didn't work you must have DONE IT WRONG. So, so fake except for the bit where it was actually real, I cannot.

I am delighted that this has been found. The link seems to have been quietly added by Damian001 to the Bulbapedia page for the glitch this October 31st and I'd heard nothing about it. God damn.

Because I have been extremely normal about this all day and have realized it's literally been more than twenty years and much of the fandom today does not in fact remember this, let me talk a bit more about the Mew trick and its history complete with ~archive links~!

Back in the late 90s and early 2000s, an endless array of playground rumours circulated about Pokémon Red, Blue and Yellow, in real life and on the internet. A few of them were real: going to the Safari Zone and then Surfing on the coast of Cinnabar really did cause Safari Zone Pokémon to appear, and if you talked to the old man who teaches you how to catch Pokémon and then Surfed on the coast of Cinnabar, you really would find a bizarre glitchy Pokémon called Missingno. that was a Bird/Normal-type, knew Water Gun twice and Sky Attack, and would give you over a hundred of the sixth item in your inventory.

The majority, though, were made up, just urban legends. Convoluted sequences of steps to obtain "Pokégods" or Mist Stones or get into Bill's secret garden. The most famous was the legend of Mew under the truck: if you went out of your way to skip the usual end of the S.S. Anne sequence by trading for a Pokémon with Cut or ensuring that you leave the ship by losing a battle after getting the HM instead of walking out, then you could supposedly Surf from the pier where the boat is to find a platform with a truck standing on it, and if you moved the truck with Strength, then Mew, the elusive Pokémon from the first movie, would be under it. The platform with the truck was a real easter egg - but it couldn't be moved with Strength, and there was no Mew.

By 2001, when I first found Mew's Hangout, the website that inspired me, it had a page about how to obtain Mew, which patiently explained that no, there's absolutely no way to obtain Mew outside of attending an official event or using a cheating device. All those legends you hear are nonsense. (The way to obtain Pikablu explained in the site's own cheats section, of course, was definitely real.) This had become the common wisdom by then: you can't get Mew, we know this by now, anyone saying otherwise is lying to you.

This is the context in which TheScythe posted a thread on GameFAQs on April 19th 2003 about how to catch Mew in Red, Blue and Yellow. He knew he wouldn't be believed, already on the defensive in the first post. A couple of people vaguely said they might try it for the heck of it, while others adamantly shut the idea down. It didn't get traction until another well-known user, Jolt135, posted confirming that it worked - and even then it was met with confusion and disbelief.

TheScythe hadn't discovered this trick himself; he explained he'd been seeing it on other websites, linking this page. That one is indeed another telling of the same trick, posted on March 9th 2003 - well postdating the site linked in my initial post here, where it was posted on May 31st 2002 (the submission time is not technically mentioned on that page, but it is on the actual list of tricks that was linked on Bulbapedia). It was rated 1.6 stars out of five. The trick had clearly been slowly making its way around the internet, but for nearly a full year at the very least it had failed to make any waves - because the Mew trick is just an incredibly fake-looking glitch.

When correctly performed, the only thing involved that even sounds at all glitchy is that there's a bit where your Start button doesn't work until you make a trainer walk up to you, which these early incarnations didn’t even mention, and then a bit where your menu pops open when you didn't press Start; both of those things sound more like the sort of random weirdness you'd today find described in a cursed game creepypasta than like glitching software. The Missingno. trick, the best-known glitch, involved garbled sprites and item duplication. This wasn't like that. Instead, it was just like the playground rumours: follow this arbitrary sequence of seemingly random steps, one that just so happens to probably be impossible to perform without restarting your save file, and then Mew will just appear. Nothing about this sounds like the game is being tricked into interpreting unrelated data in memory as a Pokémon encounter, even though that's what's actually happening.

Indeed, in TheScythe's thread Jolt135's first assumption was that no way was this a glitch, until another user, gamefreak19, tried it by battling another trainer instead of the Youngster and had a level 7 Machoke pop out instead.

Over the course of the next weeks, the Pokémon community studied what exactly was going on here under a microscope. This page was to my knowledge the first widely publicized partial explanation of what was going on under the hood and how the Pokémon species found was based on the Special stat of the last Pokémon fought. Even then, it had a lot of gaps (this predated the discovery that some of the "eight bytes on each side which all have the value 07" were actually the same enemy Pokémon's stat stages, and that by lowering its Attack using Growl, you can change what Mew's level will be, for instance).

But it was definitively a glitch, a pure accident of the game's programming. No employee at Game Freak or Nintendo could possibly have known this would happen and leaked it (despite the endearing way whoever posted the trick on JesseWorld used the username "Nintendo"). One of the millions of kids playing these games must have just happened to bump into it.

Probably lots of kids had accidentally triggered the Trainer-Fly glitch by just happening to press Start and fly away at the right moment before being challenged by a previously-offscreen trainer. Some of them were probably confused when they couldn't press Start or interact with characters anymore and restarted their game. Probably some kept playing and happened to get challenged by a trainer and then everything was fine after that. Probably some of them went back to the route they were on previously and had their Start menu pop up; some of them pressed B. And some of them would have gotten a strange encounter with a regular Pokémon and shrugged; perhaps some would have encountered a glitch Pokémon and been unsettled but ultimately also shrugged. You just had to have one kid out of those millions happen to get Mew, and then try to tell their friends about exactly what they did to get it. The exclamation mark while flying away from the Gambler probably registered as weird, provided a sensible starting point, let them replicate it...

And then they posted it online, and nobody believed them. Because why would they? It all just sounded exactly like all the other urban legends about how you get Mew. Nobody believed anonymous kids posting it on sites full of other made-up nonsense cheats; certainly not enough to painstakingly restart their save just to try it. The only people gullible enough to try it for a year would be other random kids - ones who were liable to mess up some of the convoluted, confusingly explained steps, who even if they did do it correctly and get their Mew would just become other anonymous kids posting it on other sites full of made-up nonsense.

I find it so tantalizing to think about this time: about the kids who had tried a Mew cheat that really worked long before anyone else but had no way of proving it and sounded exactly like all the others making up stories; about all the others (like me!) who saw their posts and just dismissed them out of hand because of course that's fake. We really do owe a lot to TheScythe for bringing it out of the darkness and into the light.

paulcorral

A notable thing about missingno is that missingno only exists because of how completely and thoroughly error handling was approached here. Most programmers I know would not entertain the question "what do I do if there is no valid pokemon encounter list I can sample in this buffer?" - the notion that missingno has stats at all and can actually function in a battle goes so far beyond what a reasonable person would expect was responsible error handling, esp for when the game was made, that I just have to clap.

Well, the fact the game will keep on trucking without valid encounter data is not really a testament to thorough error checking, I'm afraid, so much as to the total lack of enforced memory safety when programming in assembly!

If there is no Pokémon encounter list for a location, it will just keep whatever was already in that bit of memory - hence why normally you will encounter Pokémon from wherever you were last if you Surf on the coast of Cinnabar. However, when you talk to the old man who teaches you how to catch Pokémon, the game will temporarily overwrite that bit of memory with your player character's name. Missingno. is the result of trying to read the characters in your name as if they were Pokémon encounter data, because the game is simply blissfully unaware that this isn't supposed to be encounter data at all! Missingno. does have a name defined, because Missingno. are essentially dummied-out entries in the internal index number order and had their names in the name table dummied-out with that rather than leave in the names for a bunch of removed beta Pokémon. But they do not actually have valid species data - their Pokédex number, which is used as an index to access most relevant data about a Pokémon species, has been dummied out as 0, which is not meant to be a valid Pokédex number.

The reason Missingno. has stats is therefore not that it was programmed with a set of failsafe stats, just in case - it's that when it tries to fetch the stats of the Pokémon with Pokédex number 0, it creates an incorrect pointer that overshoots the whole table where Pokémon stats are located and instead blissfully reads the data for some Biker trainers' parties as if it were Pokémon stats. Missingno.'s base Attack of 136 is actually just the index number for Muk, because the Biker whose data we're cheerfully misinterpreting has a Muk. Its Defense is 0, because a 0 byte is used as a separator between different trainers' data. Its base Speed is 29 because that's the level of the next Biker's Pokémon. Its base Special is 6 because that Biker's first Pokémon is Voltorb, whose index number is 6. Its front sprite is a garbled mess that corrupts your saved Hall of Fame data just by being rendered on the screen, because it's trying to use 25, the level of the Pokémon of the Biker after the Biker after that, as a sprite pointer, and the data at that index in the ROM is decidedly not sprite data and will overshoot a buffer used to decompress it, resulting in it overwriting the incidentally-adjacent Hall of Fame data with more garbled nonsense.

If Missingno. had been intentionally programmed as a failsafe placeholder, then it would have been given some kind of actual placeholder sprite and placeholder data, and it wouldn't cause all the strange glitchy behaviour we see! Instead, it's a glorious mess of weirdness caused by the fact the game is happy to take completely unrelated data and just interpret it as if it were a Pokémon, rather than throwing an error at all.

Avatar
reblogged
Avatar
antialiasis

On my old Yellow version save file - the one where I named myself TRAINER because I thought it felt more official, with the Charizard that made me love Charizard, and the Pikachu that I trained to level 100 to make him happy again after I’d had to deposit him to try a stupid rumour about how you could get into Bill’s secret garden if you had six specific Pokémon in your party, and the Seaking that I raised and was the reason I knew the move Waterfall existed in R/B/Y when nobody else did, and the team whose stats I once meticulously wrote down in red pencil on a piece of paper that I still have, back when I still thought the Special stat had something to do with the effect chance of moves - I had a glitched Jolteon.

Specifically, when you tried to view his stats, the screen would just go blank. It really freaked me out the first time it happened; I thought the game had crashed somehow. But when I pressed A after that, the stats did appear - only some/all of the labels for the information were missing. (My memory is a little fuzzy on exactly what was missing, but I do remember it showed 22166 and TRAINER where they should be, but not the IDNo/ and OT/ that should have been above them; I’m pretty sure the TYPE1/ was missing as well. Not sure about anything else.) The second stat page was perfectly normal as far as I can recall. This happened consistently, exactly like this, every time I viewed this one Pokémon’s stats. There was nothing wrong with any other Pokémon I had, or anything else on the game, and in every other respect he was just a normal Jolteon. But he was glitched, so he was different, so he was awesome.

I never knew why my Jolteon was glitched. It was a real cartridge, bought new, and I’d never used a cheating device or exploited glitches of any kind (I’d only attempted the Missingno. trick before I found out it only worked in Red and Blue). He was glitched even as an Eevee, and I’m pretty sure I discovered the glitch the first time I ever took him out of the PC and viewed his stats. I was a little reluctant to evolve him since I thought it might fix him and then he wouldn’t be as special, but as luck would have it, he stayed exactly as glitched after I’d used the Thunderstone. He became a permanent team member, and I’d show him to people, all HEY LOOK DID YOU KNOW MY JOLTEON IS GLITCHED.

At the time, a “glitch” was just this vague idea of things sometimes randomly happening wrong on the game. I didn’t question what was actually going on in there that made this happen for this one Jolteon. But now, when I’ve personally dug into the game’s programming in a way my eleven-year-old self would have gone starry-eyed at, I’m really curious about exactly what was wrong with my Jolteon and how on earth it could have happened. I’ve never heard of it happening for anyone else on the Internet, and knowing something about programming, the effects it had seem pretty puzzling. I mean, I know I wasn’t just imagining things because it’s not something that happened once, it’s something that happened consistently. There must have been some particular thing wrong with my Jolteon’s data, but I have no idea what or why, and I’m increasingly tempted to try to find out.

Been thinking about my glitched Jolteon again in this R/B/Y nostalgia trip.

Back when my Danish cousin restarted my Yellow version and saved sometime in probably 2003, I was mainly devastated because I was very emotionally attached to my Pokémon. But today the other thing that really lingers is that aw, man, if only I’d still had that save by the time I actually had the capacity to grasp how really interesting this Jolteon thing was, I would have been able to actually get it on video - and today, when I have the ability to backup my Game Boy saves and load them up in an emulator, I would have been able to just actually take a look at what my Jolteon’s party data looked like! I’m so mad I can’t do that.

I may genuinely try taking the save after that (where I painstakingly recreated my team, but unfortunately my new Jolteon was just a normal Jolteon), loading it up in bgb, and just flipping a bit at a time to see if I can replicate it. My best theory is genuinely “cosmic ray flipped a bit”, given the bit where I’ve never seen this glitch described by anyone else anywhere.

So after I made this post I kept thinking about it. I had once tried to look at the disassembly of the stat screen display but not really gotten anywhere with figuring this out. But approaching it from the other end - what sort of bit flip could cause this? Surely it couldn’t be a bit flip in a number - that’d just change it into a different number, right? So I had to be able to narrow down where the hypothetical cosmic ray bit flip would have had to happen.

So I checked out the Pokémon data structure to double-check. Most of this data is just numbers, plus some flags where a flipped bit should also just mean a different valid value. The bits that aren’t are the Pokémon’s nickname and the original trainer name and that’s about it, more or less.

The first thing to come to mind was a character in one of those names had been turned into some sort of special character and the game then choked on trying to render that character on the stat page specifically for some reason. A bit of a contrived hypothesis, but it was the best I got. So I looked at the character encoding used by the first-generation games…

…and learned that a bunch of the character space is control characters that just straight-up execute some code instead of rendering a character on the screen. And while a lot of the control characters were unlikely to be relevant, others immediately rung very, very relevant: characters like “Begin a new Pokédex page” or “Wait for confirmation before scrolling the dialogue down by one line” or “Begin a new dialogue page with button confirmation”. Suddenly there was a very, very straightforward reason to think that a bit flip in a name could in fact cause the stat screen to go blank until I pressed A again. It would simply have to involve a control character that waits for button confirmation.

So, last night, I started up bgb, loaded up my Yellow save, and used the cheat feature to overwrite the 0x50 (end string) character at the end of my Jolteon’s OT name with some different control characters. The first one I tried, for the heck of it, was 0x49, the “Begin a new Pokédex page” one. And lo and behold, there was the familiar blank screen! I pressed A and…

Image

Okay, okay, this wasn’t quite what I remembered; I was pretty sure the trainer name had showed up fine, and probably the type itself. But immediately I pretty much had confirmation that something like this was it. A control character in the OT name could cause both an initial blank screen and subsequent missing labels on the first stat screen.

As I tried other control characters, I quickly learned that among others, 0x51 - exactly one flipped bit away from the original end string character - resulted in this after the blank screen, even closer (assuming I’m correct that the type showed up):

Image

Now, none of the ones I tried last night actually got me what I think I remember: the name TRAINER there at the bottom where it’s supposed to be, too, just the labels gone. Am I misremembering? I don’t think so; I at least remember describing it for years and years as having shown the ID number and original trainer themselves but not the labels, and I also recall it sort of taking me a bit to properly notice what was even missing from the page, just having this vague feeling that it seemed emptier than usual until I actually checked exactly what the page looked like for my other Pokémon for comparison. But I’m not going to rule out that this is in fact what I saw and at some point in the intervening twenty years I just got it slightly confused because for the ID number it is indeed the case that only the label is missing. That sounds like something a squishy human brain could get wrong.

I also tried doing the same thing with Jolteon’s nickname - but, of course, when I did that, the Pokémon menu itself also became a blank screen until I pressed A again, because that also displays the nickname. That definitely wasn’t anything that happened with my Jolteon, so I could pretty much rule out that the nickname was involved in any way.

I still do think I’ll keep investigating it a little further, just in case I manage to figure out a way for it to fully match my memory, but I feel pretty confident now that I at the very least know what sort of thing was in fact wrong with my Jolteon. He had a control character in his OT name, one way or another. Perhaps a cosmic ray happened to hit that bit of his data structure, back when he was still an Eevee on my PC (he was a late addition to my team, long after I’d beaten the Elite Four), and it happened to be the bit that just innocently made him very special with no other ill effects.

Congrats on getting closer to the mystery of the jolteon! I remember you telling this story a few times before, yeah. An end-string terminator getting janked up does make sense as causing that kind of effect, but it’s still wild to imagine how on earth it could’ve happened.

‘Course, now you’ve got me going and rambling about my own weird childhood glitch experiences, lol.

I’m not sure if I’ve ever told this story on Tumblr aside from some passing mentions, but one time back in Ye Olde Gen One Days I was battling Blaine on my Blue version and the game just went bananas on me for no apparent reason. The music faded out and left behind only sound effects; garbled text claimed that Blaine’s rapidash was “frozen solid” and “hurt by its burn” (in my memories it was also poisoned but that’s likely just because burn and poison originally used the same animation); the rapidash suddenly had more health than would fit on the screen; one tic of the burn somehow did enough damage to drain its entire massive HP bar multiple times; and then, after it finally fainted, the same rapidash came right back out. Eventually all this mysterious freezer-burn made quick slow work of Rapidash: The Revenge, and maybe also Blaine’s arcanine and Arcanine 2: Son of Arcanine, with basically no input from me beyond advancing the text and selecting moves that only seemed to do More Freezer Burn Damage. I won the battle, a bunch of “pokémon” I didn’t have “evolved”, and the game finally gave up and crashed before Blaine could give me my well-earned(?????) Volcano Badge. Mini-Phoenix’s tiny mind was, quite understandably, blown.

Unlike Free’s unique jolteon, this effect and how it typically happens are now quite well-documented. My experience is just about a perfect match for the “TMTRAINER effect”, which is most commonly caused by the game trying to load the name of a “Super Glitch” move in battle (a category of glitch move that is missing that same 0x50 end-string character mentioned above and which, when displayed in battle, reads excessive amounts of unrelated data in its attempt to figure out where the “name” ends). Here’s a video of the TMTRAINER effect and various other Super Glitch effects if you want to see some typical examples, presumably made by the creator hacking a Super Glitch move onto their mewtwo.

Okay, so great! It was the TMTRAINER effect, mystery solved. There’s just one problem: I don’t know how I triggered this.

Avatar

Icelandic fact of the moment

When referring to memes in Icelandic, I have personally liked to use the word mem, formed by analogue to gen the same way the original English word was formed by analogue to gene. But the more popular full Icelandicization I’ve seen is jarm. That one is formed, almost certainly in an intentionally wrong tongue-in-cheek way, by interpreting the spelling meme as the Icelandic onomatopoeia for a sheep’s bleat (also the ‘baby word’ for a sheep), and then using the formal word for the sound instead. It’s so cheerfully nonsensical I can’t help but kind of enjoy it.

Avatar
reblogged
Avatar
antialiasis

On my old Yellow version save file - the one where I named myself TRAINER because I thought it felt more official, with the Charizard that made me love Charizard, and the Pikachu that I trained to level 100 to make him happy again after I’d had to deposit him to try a stupid rumour about how you could get into Bill’s secret garden if you had six specific Pokémon in your party, and the Seaking that I raised and was the reason I knew the move Waterfall existed in R/B/Y when nobody else did, and the team whose stats I once meticulously wrote down in red pencil on a piece of paper that I still have, back when I still thought the Special stat had something to do with the effect chance of moves - I had a glitched Jolteon.

Specifically, when you tried to view his stats, the screen would just go blank. It really freaked me out the first time it happened; I thought the game had crashed somehow. But when I pressed A after that, the stats did appear - only some/all of the labels for the information were missing. (My memory is a little fuzzy on exactly what was missing, but I do remember it showed 22166 and TRAINER where they should be, but not the IDNo/ and OT/ that should have been above them; I’m pretty sure the TYPE1/ was missing as well. Not sure about anything else.) The second stat page was perfectly normal as far as I can recall. This happened consistently, exactly like this, every time I viewed this one Pokémon’s stats. There was nothing wrong with any other Pokémon I had, or anything else on the game, and in every other respect he was just a normal Jolteon. But he was glitched, so he was different, so he was awesome.

I never knew why my Jolteon was glitched. It was a real cartridge, bought new, and I’d never used a cheating device or exploited glitches of any kind (I’d only attempted the Missingno. trick before I found out it only worked in Red and Blue). He was glitched even as an Eevee, and I’m pretty sure I discovered the glitch the first time I ever took him out of the PC and viewed his stats. I was a little reluctant to evolve him since I thought it might fix him and then he wouldn’t be as special, but as luck would have it, he stayed exactly as glitched after I’d used the Thunderstone. He became a permanent team member, and I’d show him to people, all HEY LOOK DID YOU KNOW MY JOLTEON IS GLITCHED.

At the time, a “glitch” was just this vague idea of things sometimes randomly happening wrong on the game. I didn’t question what was actually going on in there that made this happen for this one Jolteon. But now, when I’ve personally dug into the game’s programming in a way my eleven-year-old self would have gone starry-eyed at, I’m really curious about exactly what was wrong with my Jolteon and how on earth it could have happened. I’ve never heard of it happening for anyone else on the Internet, and knowing something about programming, the effects it had seem pretty puzzling. I mean, I know I wasn’t just imagining things because it’s not something that happened once, it’s something that happened consistently. There must have been some particular thing wrong with my Jolteon’s data, but I have no idea what or why, and I’m increasingly tempted to try to find out.

Been thinking about my glitched Jolteon again in this R/B/Y nostalgia trip.

Back when my Danish cousin restarted my Yellow version and saved sometime in probably 2003, I was mainly devastated because I was very emotionally attached to my Pokémon. But today the other thing that really lingers is that aw, man, if only I’d still had that save by the time I actually had the capacity to grasp how really interesting this Jolteon thing was, I would have been able to actually get it on video - and today, when I have the ability to backup my Game Boy saves and load them up in an emulator, I would have been able to just actually take a look at what my Jolteon’s party data looked like! I’m so mad I can’t do that.

I may genuinely try taking the save after that (where I painstakingly recreated my team, but unfortunately my new Jolteon was just a normal Jolteon), loading it up in bgb, and just flipping a bit at a time to see if I can replicate it. My best theory is genuinely “cosmic ray flipped a bit”, given the bit where I’ve never seen this glitch described by anyone else anywhere.

So after I made this post I kept thinking about it. I had once tried to look at the disassembly of the stat screen display but not really gotten anywhere with figuring this out. But approaching it from the other end - what sort of bit flip could cause this? Surely it couldn't be a bit flip in a number - that'd just change it into a different number, right? So I had to be able to narrow down where the hypothetical cosmic ray bit flip would have had to happen.

So I checked out the Pokémon data structure to double-check. Most of this data is just numbers, plus some flags where a flipped bit should also just mean a different valid value. The bits that aren't are the Pokémon's nickname and the original trainer name and that's about it, more or less.

The first thing to come to mind was a character in one of those names had been turned into some sort of special character and the game then choked on trying to render that character on the stat page specifically for some reason. A bit of a contrived hypothesis, but it was the best I got. So I looked at the character encoding used by the first-generation games...

...and learned that a bunch of the character space is control characters that just straight-up execute some code instead of rendering a character on the screen. And while a lot of the control characters were unlikely to be relevant, others immediately rung very, very relevant: characters like "Begin a new Pokédex page" or "Wait for confirmation before scrolling the dialogue down by one line" or "Begin a new dialogue page with button confirmation". Suddenly there was a very, very straightforward reason to think that a bit flip in a name could in fact cause the stat screen to go blank until I pressed A again. It would simply have to involve a control character that waits for button confirmation.

So, last night, I started up bgb, loaded up my Yellow save, and used the cheat feature to overwrite the 0x50 (end string) character at the end of my Jolteon's OT name with some different control characters. The first one I tried, for the heck of it, was 0x49, the "Begin a new Pokédex page" one. And lo and behold, there was the familiar blank screen! I pressed A and...

Image

Okay, okay, this wasn't quite what I remembered; I was pretty sure the trainer name had showed up fine, and probably the type itself. But immediately I pretty much had confirmation that something like this was it. A control character in the OT name could cause both an initial blank screen and subsequent missing labels on the first stat screen.

As I tried other control characters, I quickly learned that among others, 0x51 - exactly one flipped bit away from the original end string character - resulted in this after the blank screen, even closer (assuming I'm correct that the type showed up):

Image

Now, none of the ones I tried last night actually got me what I think I remember: the name TRAINER there at the bottom where it's supposed to be, too, just the labels gone. Am I misremembering? I don't think so; I at least remember describing it for years and years as having shown the ID number and original trainer themselves but not the labels, and I also recall it sort of taking me a bit to properly notice what was even missing from the page, just having this vague feeling that it seemed emptier than usual until I actually checked exactly what the page looked like for my other Pokémon for comparison. But I'm not going to rule out that this is in fact what I saw and at some point in the intervening twenty years I just got it slightly confused because for the ID number it is indeed the case that only the label is missing. That sounds like something a squishy human brain could get wrong.

I also tried doing the same thing with Jolteon's nickname - but, of course, when I did that, the Pokémon menu itself also became a blank screen until I pressed A again, because that also displays the nickname. That definitely wasn't anything that happened with my Jolteon, so I could pretty much rule out that the nickname was involved in any way.

I still do think I'll keep investigating it a little further, just in case I manage to figure out a way for it to fully match my memory, but I feel pretty confident now that I at the very least know what sort of thing was in fact wrong with my Jolteon. He had a control character in his OT name, one way or another. Perhaps a cosmic ray happened to hit that bit of his data structure, back when he was still an Eevee on my PC (he was a late addition to my team, long after I'd beaten the Elite Four), and it happened to be the bit that just innocently made him very special with no other ill effects.

You are using an unsupported browser and things might not work as intended. Please make sure you're using the latest version of Chrome, Firefox, Safari, or Edge.