Post subject: How to find glitches/bugs ?
Former player
Joined: 9/7/2011
Posts: 58
hi ! as you may know i just finish to tas prehistorik man and i'm thinking about tasing an other game on snes. something quick (10-15 mins), but more impressive or funny, using glitches/bugs.. i briefly search in this forum for 'how to' and i've find this http://tasvideos.org/GameResources/CommonTricks.html but my question is how to find glitches? example, my game never been tas before, internet speak about it a little but there is no well known glitches, maby one but not interesting, some others may exist, and i want to find them.. is there soft for that? guides? do i need to have a good level in programation? ( i know how to make little prog on my scientific calc. >< ), ram search / lua scripting is needed? or maybe someone used to find them will help me? i haven't made my game choice yet..
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11492
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
There are 2 ways to find glitches. 1. Pure luck. 2. ENDLESS TESTINGS. The second means you need to find out as much data from the game you tas as possible. For example, you find X and Y subpixels. Then you figure out how collision works (like, chip and dale push out each other, not allowing to shove one sprite into another). Then you just try ALL possibilites of collision: - You find how much pixel window you have to interact with an object - You try to manipulate subpixels, going through all 256 possibilites for each pixel of collision. - This way you test literally ALL possibilities of object interaction. If there's a 4-pixel window when you bump the object, it would be something about 4 * 256 = 1024 situations. This may or may not show you the programming fault somewhere inside this routine. But if you keep that approach in mind evey time you test something, you would definitely see MORE ways to do one thing or another.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Skilled player (1441)
Joined: 3/31/2010
Posts: 2112
The best thing I found to discover glitches it to think outside the box. Try everything out, and be thorough and dilligent. Investigate all possibilities, and if you find something that might have potential, research it. How to perform a glitch, where to use use it, etc. Some glitches are found by sheer luck while playing or experimenting with the game, others are found as a result from observing how the game acts in certain situations. Try to force a certain situation on a game that should not happen. Abuse how certain mechanics combine. (For example, entering ceilings in Mega Man 2 by abusing the Item 1 detection.) Don't forget tools such as taking damage, dieing, or pausing the game. Try out what happens if you do that in unusual situations as well. Some games are a lot, lot glitchier than others, but by trying around enough, you're eventually bound to come across something.
Editor, Experienced player (885)
Joined: 1/23/2008
Posts: 529
Location: Finland
Glitching is mostly paying attention to (and testing) how the different game mechanics work together, and seeing if there are loopholes left somewhere. You don't need programming skills for glitching (although it can help), just observation skills and patience (and/or luck). For example, let's say going to menu is one mechanic. Hitting a level exit is another mechanic. If you make both happen at the same frame, a glitch might occur, because the developers don't always test after things like this. In general, the more rare the circumstances for two mechanics to overlap, the higher the chance it wasn't tested properly and you might find a glitch in it. Example #1: Winx Club for PS2. If you open menu the same time you'd hit a room transition, all triggers from the area become disabled and you can go out of bounds. Example #2: the glitched run of Contra 3. Getting an extra life during the fade-out to game over causes you to win the level for some reason. You need to learn to look at a game differently from normal and try to do things a player wouldn't normally do. Sometimes even counter-intuitive things lead to skips and new techniques to use. Example #3: in Mortal Kombat: Mythologies you can do a skip by luring an enemy and making him uppercut you to where you can't normally reach. In an action game, like God of War, I personally do a list of what moves cancel each other out and what are your options with (especially) air attacks. This way I can map out the highest and longest jumps that are possible to do, and can apply this knowledge to finding shortcuts in the levels. Finding potential new techniques from the character's own moveset is an integral part in breaking a game in my opinion... Example #4: in God of War III you can easily get over walls using high jumps. Example #5: in Castlevania: LoS, you can cut off a scene in an unintended way using a special attack, causing a severe camera glitch. After finding tricks that may have potential, it's just a matter of application. Each new technique or observation is another mechanic that can overlap destructively with other mechanics. Glitching is just quite complex work, and it helps to keep extensive notes about your observations and what they could mean in the larger picture. And... that's it. Repeat ad nauseum. Hopefully these tips are helpful...?
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
One important aspect of glitch finding is knowing where to look. One very good place to look is other glitches that people found. For example, it was known that exchanging equipment in FF3j while in battle can cause your old equipment to be saved in the wrong section of the inventory. A very minor problem, or so it seemed; until pirohiko found out it can be used to change your characters' classes to make them walking gods, teleport around the world map and summon airships out of thin air. Other than that, having some knowledge of how games are programmed helps. A lot of game have imperfect collision detection for purposes of speed. This makes sense: perfect detection wouldn't be possible on the old hardware, and imperfect detection works quite well 99.999% of cases. Jump just right, and you'll go right through the wall. It's not just collision detection, but quite a lot of things that can glitch up in case an extraordinarily rare set of circumstances is true. With the benefit of save states and frame-perfect mobility, you can easily find that one rare occurrence and exploit it. (Perhaps the most triumphant example of this is the DelayStageClear glitch in Shinryuu and Finalfighter's Mega Man TAS, which is so absurdly rare that it required a specially programmed bot weeks of trying out random permutations before it could be triggered.) Another common source of glitches is the phenomenon known as race conditions. Simplified: the developers expect you to do A before B, and if you do, everything works as intended. If you manage to do B before A (using your superhuman playing skills that TAS tools provide) you can end up severely confusing the software. If you have some starting point, all it takes is a lot of experimentation. Some glitches require a good deal of programming knowledge (or at least the ability to read and search the game's live memory).
Former player
Joined: 9/7/2011
Posts: 58
thx for your answers. so basically i should find a game never tased before with one or two gliches known and search other in the same way?
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
Well, you don't necessarily need to use glitches to make a good TAS. A lot of the early movies were virtually glitch-free. But you're probably missing something if you can't find a few decent glitches, they're in practically every game. Remember that your first attempt will most likely fail. Even experienced TASers sometimes first do a "test run" and then a final run using their experiences from the test. You might want to consider just TASing the game without searching for glitches first...you'll probably find a bunch of them while you're making your movie, then when you're done, you start over and make maximum use of what you've discovered.
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11492
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Skilled player (1742)
Joined: 9/17/2009
Posts: 4986
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I found most of the glitches used in my runs by accident lol. Examples: Keitai Denjuu Telefang - Speed Version - Phone glitch discovered only because I was trying to get rid of the ringing (which prevents me from battle, starting conversations, etc) and coincidentally, the frame that I paused on triggered the glitch. Densetsu no Stafy - Discovered the save glitch while messing around in real time (while still recording) and restarted the game by accident. Wario Land II - I wasn't even trying to clip through the walls; I was trying to optimize a turn, and somehow accidentally clipped into a wall. The SpongeBob SquarePants Movie - The speed preservation was found by chance very late into the game, causing me to redo the run several times. The OoB glitch was from an attempt to optimize a turn. Grand Theft Auto: Chinatown Wars - I changed the camera angles for entertainment purposes, and found that it also manipulates NPC vehicles. Spider-Man 2 I input the password coincidentally at the frame the credits trigger Yuu Yuu Hakusho: Makai no Tobira - I was trying to improve the entertainment value of the boss fights when I discovered the special attack glitch. Monster House - I found out the door glitch in real time, but wasn't able to replicate it until I record myself playing real time, and it just happened.
zwataketa
He/Him
Joined: 9/1/2012
Posts: 309
Heh, I remember when I found a glitch in Spongebob Atlantis Squarepantis DS that allowed me to take characters to certain parts of Bikini Bottom and parts of Atlantis where you would normally play as Spongebob and Patrick. I used it to make Sandy face herself and take Squidward into the final boss so I could jump kick over the cannons without triggering the auto-knock off the tank that happens when you destroy a cannon to procede. Yeah, I'm just surprised I was able to find out how to do the glitch!
I quit TASing.
Editor, Expert player (2331)
Joined: 5/15/2007
Posts: 3940
Location: Germany
Let's see what I have.. GB The Smurfs warp glitch by holding "up" when entering a bonus room in level 1 - Someone pointed it out on Youtube left+right skips your "get hit" animation - Found by testing; you should always check if pressing opposing directions at the same time does something odd Found many other things in this game by testing a ton GB Super Mario Land Hold "left" while being pushed offscreen on autoscrollers, puts you out of bounds - I think this randomly happened to me. Mmbossman told me he specifically tested that and it didn't occur, then it was found out that it only works on version 1.0. You should try to use the first version of a game; later versions usually fix some glitches. More stuff was found by testing a ton and by looking for framerules in the game's memory SNES Earthbound Tent glitch, later developed to work in other places such as in Onett (see the 9 minute TAS) - I saw a video about it on Youtube, and saw in the comments that people managed to trigger the game's debug menu with it. So I spent a lot of time testing and started TASing with pirohiko after I saw that you could reliably trigger the debug menu on the Japanese version. The second TAS, however, was very unforgiving and I spent many months of blind testing. GB Daffy Duck The Marving Missions Most stuff was found by sheer luck: Holding left, then pressing right+B glitches out your health points pressing "down" makes Daffy's physics behave oddly, allowing him to go out of bounds after visiting a new room (+ subsequent glitch warps) Visiting the 'super stages' by stepping on the cart in the first room was pointed out by someone I think? (mmbossman, Scepheo or other?) DS Kirby Squeak Squad Using an item while obtaining an item allows you to keep the used item - Happened to me while playing casually Dark Nebula uses star shooting attack near the floor twice, allowing you to hammer up+b him to death - Happened to me while playing casually Skip the first big treasure by using animal dash attack over the chest - Found by trying to skip the chest slide off of ledges and at the beginning of a level + after each ride with a warpstar - Found at some point, I don't know how, but it made me redo the TAS from scratch GB Trip World The character's speed doesn't drop if you pause at the same frame the drop would have occured - Found by testing and watching speed addresses GB Kung-Fu Master | Spartan X The final boss' room is much shorter on the Japanese version - This was found after the TAS on the English version was already complete and submitted. I managed to make the TAS sync on the Japanese version with some adjustments ("re-syncs"). GB Super Mario Land 2 Pixel trick - Found by testing. I just happened to see that crouching makes Mario gain speed if done in a certain interval. Andymac later developed it to work without crouching (by pressing directions in a certain way, when Mario is in the air, there is some memory shenanigans behind this). He later developed it to be even faster with every time Mario lands on the floor. It was said that the pixel trick makes Mario move about 8% faster. Credits glitch - Andymac used to say that there is probably no credits glitch, but I kept testing a lot. In the "garbage area" (i.e. the game's memory translated into level room data; one block corresponds to one memory address) I broke many blocks and tried to find effects and that's when I found that address A2D5 caused the game to send you to the credits the next time you enter a level, although that address is never written to or used during gameplay or when actually going to the credits. Later we developed a way to dig down through the garbage area to reach A2D5 (because even though that address was found, the path to that address wasn't found yet which is kinda funny). Pause glitch, i.e. pausing during lag frames causes the game to act weird - Found randomly. It was already known that autofiring pause at 30hz makes the game unable to load the level graphics properly; probably I tried that for fun in a laggy spot and got a reset, which made me wonder what happened. NES Kirby's Adventure Credits glitch - There was an old video demonstrating a glitch where Kirby transforms to stone inside of a water tile which triggered the credits (but usually crashes the game). I thought it was a Nintendulator glitch, but later I found that 1) pausing at the same frame the game crashes changes the outcome sometimes 2) the credits are only triggered shortly after you start up the game ; if you play for too long and then do the glitch it doesn't work. It was probably back then that people thought it was a great glitch for a TAS but nobody really bothered. I later came up with a place to do the credits glitch early in the game by thorough testing (without that place, that glitch would have been pretty useless).
Joined: 1/17/2008
Posts: 133
MUGG wrote:
More stuff was found by testing a ton and by looking for framerules in the game's memory
Great post. Could you (or someone) briefly elaborate on what frame rules, in general, and their associated values can "look like" in memory across a span of N frames? (Like, as opposed to a vanilla counter variable that increments or decrements 1 every frame) May I also ask about a few general things you categorize as "testing a ton" that haven't been mentioned? Or was most of it touched upon already in this thread? I feel like for finding new things, the utility of viewing memory comes not necessarily from knowing what to look for, but from being able to make an educated guess about what exactly you're looking at and whether it is revealing (or can be used to reveal) a new layer of information. It is hard for me to put this skill into words.
Editor, Expert player (2331)
Joined: 5/15/2007
Posts: 3940
Location: Germany
I just save a state at a certain place and open memory viewer and change memory values and see if something changes (specifically: luck outcome). Gameboy games are really easy in that regard because there are only so many addresses (compared to GBA where there are millions and millions). So, as for framerules, when seeing memory addresses decrement or increment, I just test what the game does if those values are changed. That's how I, for example, found an address that has to decrement to zero before the next level starts in Super Mario Land's bonus game. As for RNG, those are usually addresses that change values randomly and unpredictably every few frames. the RNG value can often be changed by doing something (for example, in Kirby games, landing on the floor creates a little star sprite and that, or starting to run or changing direction (which creates a sprite of dust), will change luck) which aids in finding the address. However, I was never able to figure out the bonus game luck in Super Mario Land so I used trial-and-error for that. I said "testing a ton" when it was just random and prolonged testing. For example, all the little glitches I found in GB The Smurfs or GB Super Mario Land were found by looking at each level and trying many things. http://www.youtube.com/watch?v=N5q5KZvsSho http://www.youtube.com/watch?v=_pqtPIjQJBI