Sketch Glitch FAQ by Satarack
Version: 0.9 | Updated: 01/31/16
Table of Contents
- FAQ Version History
- What is the Sketch glitch?
- What can the Sketch glitch do?
- Is the Sketch glitch in all versions of the game?
- Why the Sketch glitch occurs
- The Layman's Explanation
- TL;DR. Just tell me how to control it.
- The detailed explanation
- Possible future developments
- The Sketch Glitch in Practice
- Good news, Bad News
- Missing with Sketch
- Managing your Magic
- The Availability Byte
- Monster Mould
- Useful Codes for testing
- Battle Item Menu
- Battle Commands
- Related Glitches
v 0.3: Version history added. Introduction added. "Why Sketch occurs" section added. Added section on practical application of sketch glitch. Added explanations of monster mould, aiming byte, and availability byte.
v. 0.5: Added discussion on Warp Aiming byte and why it doesn't trigger the sketch glitch. Added "Battle Item Menu" subsection. Added "Possible future developments" subsection. Added Appendices section, including table of availability byte instructions.
v. 0.6 Added Monster Mould section to appendices, includes Both world maps, and world of balance areas up to Kefka at Narshe. Added table of items and spells by index value in the appendices. Added section on related glitches. Added subsection on Battle commands.
v. 0.7 Added brief discussion of Veldt Mechanics to the appendices. Added to Monster Mould appendices: added Zozo, Opera House, Vector, Magitek Factory, Minecart escape event, Imperial Base, Cave to the Sealed Gate, The Banquet event, Thamasa Burning house, Esper Cave, The Imperial Airforce attack event, and the Floating Continent.
v 0.9 Added section on cheat codes for testing sketch glitch. Added to Monster Mould appendices: added Doom Gaze encounter to the world maps section, added Cave to Figaro Castle, Figaro Castle Basement, Darill's Tomb, Owzer's House, the Collapsing house in Tzen, Mt. Zozo, Veldt Cave, the Phunbaba boss battles in Mobliz, Narshe (WoR), Umaro's Cave, Zone Eater's Belly, Phoenix Cave, Ebot's Rock, Fanatics Tower, Cyan's Dreams, Ancient Castle, and Kefka's Tower. Added section in appendices for locations of uncommon monster moulds.
The Short answer is it's a memory corruption glitch that can occur if Relm misses her Sketch command. There are several ways the Sketch command can miss, but even in the event that it does it is not guaranteed to corrupt game memory, there are certain variables that need to have the right kind of values for a missed Sketch to cause memory corruptions. Fortunately these variables are not random and are all within our control; allowing us to manipulate the sketch glitch and get the same result every time.
The sketch glitch primarily re-writes a large section of your battle item menu. This is what made the Sketch glitch famous, people using it to get their hands on infinite Illuminas, Economizers, or other high value equipment. But the Sketch glitch actually makes it possible to make use of other glitches, such as equiping armour and weapons into equipment slots they normally aren't supposed to be in; and using items that were not meant to be weapons as weapons can cause further glitches. It's possible in certain Sketch glitch setups to rewrite sections of a character's battle magic menu as well, to rewrite character sprite data, or to rewrite battle data related to status ailments on your characters. It can also crash the game so using the glitch without testing first is playing with fire. It's highly recommended that you never perform a sketch glitch on cartridge that you haven't tested on emulator first.
No. The sketch glitch only exists in some copies of the Super Nintendo version of Final Fantasy 6, and the original Japanese version on the Super Famicom. It isn't in the Playstation version, the GBA version, or the iOS or Andriod versions. Of the Final Fantasy 3 SNES cartridges, only the 1.0 SNES version has the glitch. Squaresoft discovered the glitch themselves after they had started production of the Super Nintendo cartridges; and they updated the game's ROM to remove the glitch, creating the 1.1 SNES version, and continued with production. The only sure way to know if the copy of FF3 SNES you have has the sketch glitch is to perform the Sketch glitch and see if it works. However, there is a number imprinted onto the cartridge underneath the sticker on the back; and some evidence suggests that if that number has a letter in it then your cartridge does not have the sketch glitch.
Originally it was thought that the Super Famicom version did not have the glitch. However it was discovered that the glitch does exist in the original Japanese version; but that the setups that trigger the glitch are different from those in the Super Nintendo version, which is why the glitch wasn't initially reproducible.
The Sketch glitch is unsurprisingly the result of flawed code. When Relm misses Sketch the game still runs the Sketch algorithm but doesn't display the result or activate the associated monster attack. So to start with it helps to understand how the Sketch command normally functions, and then discuss what happens differently when Relm misses. In battle there are 6 slots for monsters, and when a battle starts the game creates a table in the RAM of what Monster ID is in each monster slot. When Relm sketches the game first checks to see what monster slot she targeted, then it checks the table for what Monster ID is associated with that slot, and then it goes and gets the appropriate monster Sprite data from the game's ROM and uses it to generate a map for rendering the reversed Monster sprite on screen.
If Sketch hits, the game would decide which monster attack Sketch should use, and then render the backwards monster sprite and execute the monster attack against the target. So why does missing cause problems? Well when Sketch misses the game decides to default the monster slot value of the target as 255 (remember the game normally only deals with values of 0 to 5 for monster slots). Monster IDs are 16-bit values, so the game goes looking for a Monster ID 255 16-bit entries after the beginning of the table it created in the game's RAM. This happens to be the data for two 8-bit values: the availability and aiming bytes of the 28th spell in the battle magic menu for the character in the first party slot position. The availability byte is used by the game to determine if a character is allowed to cast that spell or not, and the aiming byte tells the game what the spell can target. The Aiming information is based on the spell in question; while the availability byte is determined by things like being inflicted with Imp or having the character's MP changed.
|Enemy Slot||Monster ID|
Stuff that isn't
28th spell in battle
magic menu of 1st
character in party
If you were to compare the sketch glitch to a bomb, this error is only a spark. We still need something that will explode and create a large amount of garbage data when we light the fuse. Fortunately the process to generate the monster sprite does just that. Using the data of the 28th spell in the battle magic menu, the game goes looking for information to create the monster sprite. The final step for generating this is a simple loop. It calculates the sprite height before it starts putting together the monster sprite so it knows when to stop the loop. The loop calculates one line of the sprite mapping, subtracts one from the height, and checks if the height is 0. If the height is 0 it stops, if not it goes on to the next line.
Normally this causes no problem, because regular monster sprite data will have positive height values so it will start at something greater than 0, and move down until it reaches height 0 and stops. But we're using a garbage Monster ID to get garbage monster sprite data and feeding it into the process. And if the monster sprite data we give it happens to result in a calculated height of 0 it will still process the first line and decrement the value before checking to see if the height is 0; causing the value to roll over and go to 255. It goes without saying that Squaresoft never planned for a monster sprite with a height of 256.
The actual process of generating the monster sprite involves 2 pieces of data. The first is just the monster sprite data, which is stored as a 1 dimensional string of pixel tile data (a pixel tile is an 8 x 8 square of pixels) which needs to be converted to a 2D image. The second is corresponding data for converting the 1 dimensional tile data into a 2D sprite. This 2nd piece of data is the most crucial, because it is used by the game to compute the height of the sprite, and to trigger the glitch we need a height of 0. The game places this 2nd piece of data in the RAM, to use it in the loop mentioned above to put together the monster sprite. This data tells the game where in the mapping array it is supposed to put the different tiles that make up the monster sprite. However the game thinks this monster sprite is 256 tiles high, the conversion data won't be long enough and it's going to continue passed this section of the RAM as it tries to create this 256 tile tall monster sprite; and the next section in the RAM contains data for the monster mould used in that fight.
A monster mould is data related to where monster sprites can appear, and the size monster sprites are allowed to be. This is the final variable to the sketch glitch, because the game is going to be using the monster mould for converting the sprite tile data into a 2D sprite. Consequentially the monster mould affects what parts of your inventory and other sections of the RAM are going to be affected by the massive monster sprite being generated by the Sketch glitch.
The sketch glitch can be controlled by 3 variables. Two of those variables are related to the 28th spell currently in the magic menu of the 1st character in the party, and the third variable is related to what battle you are fighting in. Consequently we can completely control all these variables by choosing what spell we want in the 28th slot, choosing what battle we perform the sketch glitch in, and performing some simple actions in battle to manipulate a 2nd variable related to the 28th spell. Primarily using MP restoring items and casting Imp.
There is an intriguing and untested possibility of using a chain of sketch glitches in a single battle to get outcomes not possible with a single sketch glitch. Because certain monster moulds can overwrite character's magic menus and commands, it's possible to use the sketch glitch to overwrite the aiming byte of the 28th slot, which could potentially allow you to perform a 2nd, different, sketch glitch within the same battle. Another method involves the tier change that you see in the final fight of the game. That's actually a command, and with the sketch glitch it's possible to overwrite your character's commands and give them the tier change command. There's another glitch that can trick the game into letting you use items as spells or commands which can also be used to trigger the tier change command. With this it would be possible to change monster mould in the middle of battle.
While the direct effects of the sketch glitch have been mapped out, it opens up the possibility of other glitches that haven't been fully explored yet. For example it makes it possible to flag any item as a Tool that Edgar can use with his Tools command. Additionally it makes it possible to use the equip anything glitch in the SNES version (which otherwise is a Japan super famicom only glitch); and by equipping different items as weapons we can create glitchy attack animations. One that has been tested is using Goggles as a weapon, which allows you to merge different menus allowing you to use reference ID's in one menu to trigger attacks from a different command. Eg. if you merge the Item menu into the Magic menu any usable item can be selected and the game will use its item ID as a magic ID and cast that spell. These can be spells that normally are monster only; an example being X-Potion = Baba's Breath, a spell used by the boss Phunbaba.
The Good news is that the vast majority of possible sketch glitch variables and outcomes, for the Super Nintendo version, have been mapped out. We can thank two French speedrunners named Kilaye (or Keylie) and Kadmony for doing that work. They set out to do a Tool Assisted Speedrun of FF6 utilizing the sketch glitch, and this FAQ wouldn't have been written if not for their work. Starting with the work done by others in the past, they managed to generate a massive spreadsheet of almost all the possible sketch glitch outcomes using a lua script. The lua script can be found hosted on the TASVideos website (http://tasvideos.org/userfiles/info/18358557059086853), which is a website for tool assisted speedruns. Or you can download the whole spreadsheet, hosted on github (https://github.com/clementgallet/ff6-tas/blob/master/SketchGlitch.ods?raw=true). This data is for the Super Nintendo version, and won't necessarily work for the Super Famicom version.
The bad news is this still isn't going to be simple.
Since the glitch requires that we miss with Sketch, knowing how to do so is a necessity. Sketch itself is not a 100% accurate skill, the accuracy of a sketch attack is calculated from Relm's level and the level of the monster she attempts to sketch. If (Relm's level / Target's level) * 256 > random(0...255) then sketch hits. Therefore if Relm's level is higher than her sketch target, she has 100% accuracy, but if her level is lower she has a chance to miss. If Relm is level 21 and her target is level 24, then the accuracy of sketch would be 87.5%. Sketch will always miss on targets that have Vanish, which is an easy way to guarantee a miss. Additionally Sketch will miss if it targets a party member, which is why it misses when sketching Gau in the Veldt when he returns at the end of a battle. Otherwise you won't normally be able to use Sketch on party members, but you can using the Muddle spell.
To sketch a party member using Muddle, you must first confirm sketch as Relm's next action, and before she uses it cast muddle on her. The easiest way to do this is to cast muddle on Relm, and while the spell animation is playing have Relm confirm sketch. The way muddle works is that if an attack has already been selected, it will still use that attack but instead will reverse the target of the attack. So if Relm targets an enemy, muddle will reverse the target to a random party member. As an aside, removing muddle before the attack happens will reverse the targeting again making it point to the enemies again.
You might not want to know Vanish for your particular sketch glitch setup, so another way you might apply Vanish to enemies is by using Muddle and the Esper Phantom. Normally Phantom only targets your party, but just like with sketch we can use Muddle to reverse the targeting and make Phantom Vanish the enemies instead.
Now lets talk about the battle magic menu. Since the sketch glitch works using the 28th spell in your magic menu, it's important to learn how to control what spell is there. At the start of every battle the game checks what spells your party members know and condenses the battle magic table down to just the rows of spells that have a spell you know in it. But for people playing the North American version of the game this is slightly complicated. Take a look at this screenshot comparing the English and Japanese version of the game.
Notice that in the Japanese version there are 3 columns for magic spells in battle, while in the English version there are only 2. The game was programmed with 3 columns of spells in mind when it condenses the magic table, because that is how it originally was programmed in the Japanese version of the game. Even though the English version has only 2 visual columns, the game is still thinking in 3 columns. Getting the spell you want into the right slot will require managing the other spells you know. And to do that you need to know what row a given spell is on. Additionally, the magic table is divided between White, Black, and Gray magic; and the order of white, black, and gray magic can be changed in the config menu under Mag.Order. Below is a list of all the spells for each category of magic as they appear in the Japanese version.
|Cure||Cure 2||Cure 3|
|Ice 2||Bolt 2||Bio|
|Fire 3||Ice 3||Bolt 3|
The spell you want needs to be in the 28th slot. However the game does not remove empty entries within the row, only empty rows. So if you know the spell Regen, but not Remedy or Life 3, the game will leave a blank slot on either side of Regen when it condenses the magic table. Now the 28th slot is the first spell on the 10th row of the magic menu. Therefore the only spells that can be moved into the 28th slot are spells at the start of a row: Cure, Life, Remedy, Fire, Poison, Ice 2, Fire 3, Break, Flare, X-Zone, Quake, Scan, Mute, Muddle, Bserk, Rflect, Haste2, and Warp. Given that most spells must be learned from Espers, and Espers teach multiple spells at the same time, there may be some practical limitation to this list. But as far as I am aware any of these spells can be in slot 28 with the right planning.
This is not actually a large limitation however. It's not the spell that really matters, but the aiming byte used by the spell. The aiming byte contains the data about what the spell is allowed to target and where the cursor is by default. Many spells share the same aiming information, and for the purpose of the sketch glitch are equivalent. You can see which spells share the same aiming Byte in the following table, bolded spells are ones that can be in slot 28.
Spells by Aiming Byte
Aiming byte Value
|01 (00000001)||Life; Life 2; Safe; Haste; Bserk; Rflect; Shell; Vanish|
|03 (00000011)||Antdot; Remedy; Regen; Life 3|
|04 (00000100)||Quake; W.Wind; Merton|
|21 (00100001)||Cure; Cure 2; Cure 3; Float|
|41 (01000001)||Poison; Drain; Break; Doom; Pearl; Flare; Scan; Slow; Rasp; Mute; Sleep; Muddle; Stop; Imp; Osmose; Dispel|
|61 (01100001)||Fire; Ice; Bolt; Fire 2; Ice 2; Bolt 2; Bio; Fire 3; Ice 3; Bolt 3|
|6E (01101110)||Quartr; Meteor; Ultima|
The game uses 13 different Aiming bytes for the Magic command. If you compare the list of spells at the beginning of a row with the table above, you'll notice that there are some aiming bytes that don't have a spell that can be in slot 28. Those would be Aiming bytes 02, 43, 69, and 6E. Additionally Warp's Aiming byte is a value of 0. It is therefore not possible to trigger the sketch glitch with it. To trigger the sketch glitch, the game needs to have a 16 bit value larger than the largest actual monster reference ID. There are 384 different monsters in the game, which is why the game uses two 8 bit bytes for monster IDs, although some of these are dummied and others used for cutscenes. The Aiming byte is used for values greater than 255, but because Warp's aiming byte has a value of 0 the largest reference ID the Aiming and Availability byte can create is 255, which is still normal monster data (specifically for the monster Pugs). So in actuality there are only 8 Aiming bytes to choose from for performing the Sketch glitch.
While Espers are the primary way to learn Magic, both Terra and Celes learn magic naturally which you should take into consideration when planing for the sketch glitch. Additionally there are some pieces of equipment that teach magic. The Flame Shield (Fire 2), Ice Shield (Ice 2), Thunder Shield (Bolt 2), Tortoise Shield (Imp), Paladin Shield (Ultima), Force Shield (Shell), Titanium (Imp), Imp's Armour (Imp), and Cursed Ring (X-Zone) teach spells.
|49||Life 2||42||Ice 3|
You don't have to have the 1st character in the party know all the spells; the game creates the table based on what everyone in the party knows, and then uses that as the base for each individual character's battle magic tables. Let's take an example: Terra knows Cure, Antdot, Fire, and Drain from her natural magic, and Locke knows Bolt, Bolt 2, and Poison from Ramuh. Fire and Bolt, and Poison and Drain each share rows, Cure is another row, Antdot is another, and Bolt 2 is another. The battle magic table would include the rows of Cure, Antdot, Fire/Bolt, Poison/Drain, and Bolt 2. Terra's magic table would include all the rows, but only show Cure, Antdot, Fire, and Drain; and the row with Bolt 2 would be present but blank. Likewise Locke's table would include the rows with Cure and Antdot, but both will be left blank.
Generally, the easiest way to get the spell you want into the 28th slot is by changing the magic order to have the spell's magic class at the bottom of the list, and then learning enough spells to fill in 9 rows above the spell -- remember that the 28th spell is the first slot of the 10th row from the top of the battle magic table. If you're not the kind of person who plays the game learning only minimal amount of spells, don't worry. The Battle magic table is created based on the characters currently in battle, if you leave some characters without spells you can teach them whatever you need once you get Relm. And there are plenty of characters in the game.
Some spells to keep in mind would be Imp, Vanish, and Muddle. This is covered in the next subsection in more detail, but you are almost certainly going to need the spell Imp for performing the sketch glitch. There are some setups that don't require it, but Imp is a very powerful tool for manipulating the Availability Byte. If you learn Imp from the esper Stray, this will mean that you will be learning Muddle as well. Alternatively Celes learns Imp naturally. Likewise you will need to miss with sketch to trigger the glitch, so you'll have to learn Vanish, summon Phantom with Muddle, or use Muddle to Sketch a teammate (as detailed in Missing with Sketch). Again Celes learns Vanish naturally, but at level 48 so it will likely be faster to just learn it from Phantom. But if you choose to learn it from phantom you will be learning Bserk and Demi as well.
The availability byte is pretty straight forward, but before that let's take a quick detour and talk about how the game keeps track of the spells in the magic menu. We mentioned in the previous subsection how the game creates the battle magic menu every time you start a battle. When it does so each spell for each character is represented by 4 different bytes. The first byte is the reference number for the spell in question, this tells the game whether the spell is Fire, Fire 2, Cure 3, Slow, Scan, etc. The second byte is the availability byte, which the game uses to check if you are allowed to cast that specific spell or not. The third is the aiming byte which was explained in the previous section. And the final byte is the MP cost of that spell where the value of the byte = the MP cost.
The primary purpose of the availability byte is to keep track of whether you have enough MP for that specific spell, but it also checks for if you have the Imp status ailment. Imp prevents you from casting any spell with the exception of the Imp spell itself. The availability byte updates itself every time an action involving a change in MP occurs, or if Imp is inflicted on a party member. It does not update for the Mute status ailment. The reason being that Mute doesn't even let you open the magic menu. Imp on the other hand lets you open the magic menu because the Imp spell can still be cast, thus the availability bytes need to update to prevent you from casting any other spells.
In other words casting Magic, Lore, or summoning an equipped Esper will trigger an update to the availability byte. Using MP restoring items will update the availability bytes of the target: Tinctures, Ethers, X-Ethers, Elixirs, and Megalixirs. Being inflicted by Imp will cause the target's availability bytes to update. And MP damage will update the availability bytes of the target (eg. Rasp). There are two exceptions. First, weapons with the MP crit property do not trigger the availability byte to update. There are only 4 weapons with this property, and when you attack with them they consume 15 MP to perform a critical hit. Second, if the MP cost of the spell is 0 then no update will be triggered. So Gau casting magic with his Rages will not update his availability bytes because they cost him 0 MP.
A quick lesson on bytes. A Byte is made of bits, and the availability byte is an 8 bit long byte. The bits are labeled 0 to 7, because this corresponds to the power of 2 for each one. Bit 7 is 27 = 128, bit 6 is 26 = 64, etc. If all the bits are set to 1, then the total value of the byte will be 255:
|Bit 7||Bit 6||Bit 5||Bit 4||Bit 3||Bit 2||Bit 1||Bit 0|
The availability byte is pretty simple to understand, the game checks bit 7 to see if the spell is available. If bit 7 is a 0 then you can cast the spell, if bit 7 is 1 you can't. At the start of the battle bit 7 is set based on a check for Imp and your MP. If you aren't an Imp, and have enough MP, then the availability byte will be 01111111. If you are an Imp or don't have enough MP then it will be 11111111. When an action happens that makes the game update the byte, all the bits will be transferred down in order and bit 7 is then set based on the result of the check. So the old bit 7 becomes the new bit 6, the old bit 6 becomes the new bit 5, etc. Lets give an example.
You start a battle with 0 MP, so the availability byte starts as 11111111. You use an Ether to restore MP and now have enough to cast the spell, (byte is now 01111111). An enemy uses Imp on you so you can't cast the spell anymore (byte is now 10111111). You use a green cherry on the character to remove Imp (byte is now 01011111). Etc.
With just the Imp spell, some tinctures, and green cherries, you can make the availability byte any value you want from 0 to 255. Once you understand what actions affect the availability byte it's pretty simple to make it any number you might need for the sketch glitch.
It's not really important to know what the monster mould does exactly. For the purposes of the sketch glitch all that needs to be know is that it affects what parts of the game's RAM will be overwritten by the sketch glitch. There are only 13 monster moulds used by the game, so a lot of different monster formations use the same mould; meaning they are mostly equivalent for the purposes of the sketch glitch. Mostly equivalent, but some monsters could potentially cause problems if they are strong, inflict Imp, use Rasp, etc. Monster moulds have lots of different fights to choose from, and you can pick one with monsters that don't cause problems. There are 575 different monster formations in the game's memory, but some of them are duplicates, used for cutscenes, or are dummied. Even ignoring bosses that still leaves over 400 formations that can actually be encountered in game. Tables of monster formations can be found in the appendix to this FAQ.
So you're saying, "look this is cool and all, but I just want to play around with this a bit without having to think and plan stuff." Well to make your life easier, here are Pro Action Replay codes to directly manipulate the Aiming and Availability bytes of the 28th spell.
Where xx is the desired values in hexadecimal. Consult the spreadsheet linked in the Good News Bad News section to find the values for the desired result. Or you can try using Aiming byte values that aren't normally possible (recall from the Managing your magic section that there are only 8 Aiming byte values you can use through magic learning management).
Waiting to get Relm is a pain, you have to play through almost half the game to get her. Fortunately I also have codes for giving your characters Sketch as their 2nd command in battle, so you don't need Relm.
|Replacing character commands with Sketch|
|Character Slot||Command ID||Command Aiming Byte|
These codes give whoever is in that party slot Sketch as their 2nd command. The effect isn't permanent, as the code only affects their in battle data; if you turn off the codes things will go back to normal the next time the game checks what their battle commands are. The first code changes the command to Sketch, and the 2nd code gives the command the correct targeting data for sketch.
It's also a pain to learn Vanish, you have to fist get the Phantom Esper, and then teach it to your character, and that takes time. But as it happens I have codes for giving characters the spell Vanish.
|Cheat Code for spell Vanish|
Finally, I have codes for the monster formation used in the next battle. Also, don't use these codes on an actual cartridge, or before loading a save file on emulator. The codes prevent the save data from loading properly so all the save slots show up empty.
|Monster Formation Byte 1: for values 0 - 255||7E11E0xx|
|Monster Formation Byte 2: increments for every 256||7E11E1yy|
For example, Index 355 corresponds to the formation with 2 Magic Urn (from the Fanatics' tower). 355 in Hexadecimal is 163, so put 01 for yy, and 63 for xx. IE. codes 7E11E063 and 7E11E101. MAKE SURE YOU DON'T GET THESE BACKWARDS, or nasty things might happen when you get into your next battle.
Getting the battle you want with these codes requires knowing the index number of that monster formation. I use a program called FF3usME for that information. Alternatively, you can figure out the index number from Veldt monster pack data, Vedlt monster packs correspond with the index. Veldt pack 1 contains monster formations 0-7, pack 2 contains formations 8-15, pack 3 contains 16-23, etc. You can find Veldt pack data in Djibriel's Rage Guide: http://www.gamefaqs.com/snes/554041-final-fantasy-iii/faqs/35118
The item menu in battle is separate from your master item menu. It gets created in the game's memory at the beginning of a fight based on your inventory, and at the end of battle updates your master inventory. The battle inventory has five 8 bit bytes per item slot. Item ID byte, Item category byte, item aiming byte, item quantity byte, and item equipibility byte. For any given inventory slot, the sketch glitch could overwrite all or only some of these bytes. Because the battle Item table updates the master Item table, changes to the item ID and item quantity persist after battle. Changes to the equipibility, category, and aiming bytes are temporary and only last until the end of battle. For getting free items only the item ID and quantity matter; but messing with the other 3 bytes can allow you to do interesting things.
The item category byte contains information on what category of item, relevant for battle, is in that item slot. The bits in the byte are flags that tell the game what kind of item is in that slot. If the bit is 0 then it's not flagged, if it's a 1 then it's flagged as that category of item.
|Bit 7||Bit 6||Bit 5||Bit 4||Bit 3||Bit 2||Bit 1||Bit 0|
|Usable as item||Tool||Throw||Weapon||Shield||Not Used|
Weapon and Shield flags are so you can swap the equipment in your character's hands. The Throw flag tells the game that this is an item Shadow can throw at an enemy. An item flagged as a Tool can be used by Edgar in his Tools command, and the last Bit flags that you can use the item from the Item menu. For example, a Flame Shield is a shield, and can be consumed to cast the spell Fire 3 in battle. Its byte would be 10001000. An Ice rod is a weapon, it can be thrown by Shadow, and you can consume it as an item to cast Ice 2. Its byte would be 10110000. A Plumed Hat is not a weapon, shield, tool, throwable item, or usable item; its byte is 00000000.
The item aiming byte is identical to the magic aiming byte. In the case of triggering the sketch glitch, the game was treating the magic aiming byte as a reference ID. Therefore the flag information within the byte didn't matter, only it's raw value mattered. However for both the item and magic aiming byte, this is what each bit means:
|Bit 7||Bit 6||Bit 5||Bit 4||Bit 3||Bit 2||Bit 1||Bit 0|
Random target from allies and enemies
Cursor starts on enemies if 1, allies if 0
Can be used single target or multi-target
Automatically confirms when selected
Automatically targets allies or enemies
Automatically targets everyone in battle
Can only target allies or enemies
Allowed to move Cursor
Because the aiming byte is a copy of the magic aiming byte, not all of these flags are used by items in the game. For example Bit 7 is for Strago's Lore Roulette, which although not accessed through the Magic command, is a spell and is found in the game's magic tables. For Bit 1, whether you can only target allies or enemies is determined by Bit 6.
Only the bits 0 to 3 matter for the Equipibility byte:
|Bit 7||Bit 6||Bit 5||Bit 4||Bit 3||Bit 2||Bit 1||Bit 0|
Character in battle
slot 3 cannot equip
Character in battle
slot 2 cannot equip
Character in battle
slot 1 cannot equip
Character in battle
slot 0 cannot equip
Exploiting the overwriting of the Item menu
The first benefit is getting free items, however with some extra knowledge this can be exploited further. Because the sketch glitch doesn't overwrite all 5 bytes for each item slot, there will be some slots where the Item ID is changed, but the Item Quantity is untouched. Or there might be a slot where the quantity is changed but the Item ID is untouched. In these cases you can either transform one item into another, or duplicate an item you already have. So you could buy 99 Tonics, put them in a slot that the sketch glitch changes item ID but not quantity, and transform the 99 Tonics into 99 of something valuable. Or you could take a unique item like the Offering and place it in a slot that the sketch glitch changes the item quantity of to get duplicates of your Offering.
Another benefit is the ability to change the equipibility byte and category byte of the item to allow a character to equip that item to their hands. Any item that is flagged as a shield or weapon can be equipped or unequipped in battle, and the sketch glitch can change the category flags on an item slot. So with a slot that changes the item category and equipibility byte, whatever item is in that slot will be able to be equipped onto whatever characters are allowed to equip it based on the equipibility byte information.
Finally, the sketch glitch can flag any item as usable, a tool, or throwable; which means you could potentially perform glitchy attacks.
The game uses 3 Bytes for Battle commands in battle, a command ID byte, command availability byte, and command aiming byte. The aiming byte is identical to the magic and item aiming bytes; and the availability byte functions the same way as the magic availability byte, although the actions that trigger updates are different and vary by command.
|Byte (Decimal)||Byte (Hex)||Command|
|30||1E||Crashes the game|
|32||20||Tier Change (buggy)|
The Command ID byte can go up to a value of 255, but beyond the Tier Change command I am not aware of any actual commands used by the game, and these will likely be buggy.
These glitches are not directly related to the sketch glitch, but are made possible by it.
The Equip anything glitch is a fairly simple glitch found in the Japanese Super Famicom version of FF6. In the Japanese version of FF6 there are 256 slots in your inventory, slots 0 to 255. The optimize command in the Equip menu, for whatever reason, is programmed to default to whatever is in slot 255 if there is no other valid piece of equipment it can give that character. So whatever you put into slot 255 will be equipped onto a character when you use the optimize command, as long as they have nothing else to use for that. The equipment slot itself doesn't affect the glitch, so whether you equip the item as a helmet, as armour, or to one of your hands, the game will still treat it the same way. This also means that whatever properties the item has are unaffected by being in the wrong slot, so a character with a Moogle Charm for a helmet will still have the "no random encounters" property.
For example, Gau has no valid weapons that he can equip. But if you move the Tempest to slot 255, and then use the Optimize command in the Equip menu, then Gau will be equipped with the Tempest without having to use the Merit Award relic. Or, if you sold of all your helmets, and put Edgar's Drill into slot 255, you can then use Optimize to equip any character with Edgar's Drill (which happens to give 255 Defense and Magic Defense, making it pretty famous in Japan and also led to it being included in Dissidia: Final Fantasy).
But this is a Japanese version glitch, didn't it get removed for the English version? Yes and no. Squaresoft swept the glitch under a rug, without fixing the underlying problems. They did this by making slot 255 not appear in the Item menu. In the English version, there's no normal way to put anything into slot 255, and they also modified the item menu to hide the fact that slot 255 is missing. In the Japanese version the item menu has 2 columns, but in the English version they made everything into a single column.
But slot 255 is still there in the game, it was never removed, and the Optimize command was never changed. So if there was some way to put something into slot 255, you could still use the Optimize command to equip that item onto any character. And fortunately there is a way to fill slot 255 with items: The Sketch glitch! Because the sketch glitch directly corrupts the item menu, it bypasses the changes Squaresoft made to hide slot 255.
Attack animation glitches are really unexplored territory, and even though the extent of what is possible with them hasn't been discovered, what has so far been discovered is game breaking.
This isn't a single glitch, but more like a category of glitch where the game tries to find an attack animation for something that doesn't have a normal attack animation. That means using an item that isn't a normal weapon, or flagging an item as one of Edgar's tools and then using it as a tool, or flagging it as a consumable item and using it in the item menu, or as a throwable item and throwing it.
Visually, this occasionally result in interesting animations, although often nothing much happens. Usually this causes the character to step backwards off screen. With normal attack animations the character steps forward, does the attack, and then steps back. Because the game is forced to find random sections of the game's memory as attack animation data, the information to step forward usually won't be there, but they'll always step back. If done enough times, the character will loop around and end up on the opposite side of the screen.
The interesting parts of these attack animations is that you're telling the game to look into different parts of the memory using different items, and because that data isn't real attack animation data bizarre things can happen. Not only that, by choosing what items you use for these attack animations, you can tell the game what part of the memory you want it to look for attack animations from, and some parts of the memory are player controllable, eg. the names of your characters. Based on this, Keylie (who I mentioned previously), figured out how to skip to the end game credits in the Japanese version of the game with arbitrary code. A demonstration video can be found here: https://www.youtube.com/watch?t=203&v=U5p0BBDDs5o There is a splice in the video because he had to wait several minutes for the battle timer to reach a certain value to make the arbitary code possible.
A more practical application of attack animation glitch that has so far been discovered is the Goggles weapon animation. When Goggles are used as a weapon, there's an 8 frame window where if you open a new menu in battle, that menu will be merged with another menu. For example, if you open the magic menu during that 8 frame window, you will be able to select items and the game will interpret that item's index value as a value in the magic table. The most useful being an X-potion, which has the same index number as the monster spell BabaBreath. Because you're merging the magic menu with the item menu, you're limited to only items that are flagged as usable. With the sketch glitch you can flag any item as usable however, allowing you to bypass this limitation. A table of item and spells by index value can be found in the appendices.
This is a very recent development that hasn't been fully explored yet and would deserve its own FAQ, this section will necessarily be incomplete. This is only meant to be a brief discussion of this category of glitch as it relates to the sketch glitch.
The following table starts battles without Imp and with enough MP to cast the spell in the 28th slot, unless otherwise stated:
|Byte (Decimal)||Byte (Hex)||Byte (Binary)||Instructions (T = Tincture, G = Green Cherry, I = Imp)|
|2||2||00000010||I, G, 5T|
|4||4||00000100||T, I, G, 4T|
|5||5||00000101||I, G, 4T|
|6||6||00000110||I, T, G, 4T|
|8||8||00001000||2T, I, G, 3T|
|9||9||00001001||T, I, G, 3T|
|10||A||00001010||I, G, I, G, 3T|
|11||B||00001011||I, G, 3T|
|12||C||00001100||T, I, T, G, 3T|
|13||D||00001101||I, T, G, 3T|
|14||E||00001110||I, 2T, G, 3T|
|16||10||00010000||3T, I, G, 2T|
|17||11||00010001||2T, I, G, 2T|
|18||12||00010010||I, G, T, I, G, 2T|
|19||13||00010011||T, I, G, 2T|
|20||14||00010100||T, I, G, I, G, 2T|
|21||15||00010101||I, G, I, G, 2T|
|22||16||00010110||I, T, G, I, G, 2T|
|23||17||00010111||I, G, 2T|
|24||18||00011000||2T, I, T, G, 2T|
|25||19||00011001||T, I, T, G, 2T|
|26||1A||00011010||I, G, I, T, G, 2T|
|27||1B||00011011||I, T, G, 2T|
|28||1C||00011100||T, I, 2T, G, 2T|
|29||1D||00011101||I, 2T, G, 2T|
|30||1E||00011110||I, 3T, G, 2T|
|32||20||00100000||4T, I, G, T|
|33||21||00100001||3T, I, G, T|
|34||22||00100010||I, G, 2T, I, G, T|
|35||23||00100011||2T, I, G, T|
|36||24||00100100||T, I, G, T, I, G, T|
|37||25||00100101||I, G, T, I, G, T|
|38||26||00100110||I, T, G, T, I, G, T|
|39||27||00100111||T, I, G, T|
|40||28||00101000||2T, I, G, I, G, T|
|41||29||00101001||T, I, G, I, G, T|
|42||2A||00101010||I, G, I, G, I, G, T|
|43||2B||00101011||I, G, I, G, T|
|44||2C||00101100||T, I, T, G, I, G, T|
|45||2D||00101101||I, T, G, I, G, T|
|46||2E||00101110||I, 2T, G, I, G, T|
|47||2F||00101111||I, G, T|
|48||30||00110000||3T, I, T, G, T|
|49||31||00110001||2T, I, T, G, T|
|50||32||00110010||I, G, T, I, T, G, T|
|51||33||00110011||T, I, T, G, T|
|52||34||00110100||T, I, G, I, T, G, T|
|53||35||00110101||I, G, I, T, G, T|
|54||36||00110110||I, T, G, I, T, G, T|
|55||37||00110111||I, T, G, T|
|56||38||00111000||2T, I, 2T, G, T|
|57||39||00111001||T, I, 2T, G, T|
|58||3A||00111010||I, G, I, 2T, G, T|
|59||3B||00111011||I, 2T, G, T|
|60||3C||00111100||T, I, 3T, G, T|
|61||3D||00111101||I, 3T, G, T|
|62||3E||00111110||I, 4T, G, T|
|63||3F||00111111||I, 5T, G, T|
|64||40||01000000||5T, I, G|
|65||41||01000001||4T, I, G|
|66||42||01000010||I, G, 3T, I, G|
|67||43||01000011||3T, I, G|
|68||44||01000100||I, T, G, 2T, I, G|
|69||45||01000101||I, G, 2T, I, G|
|70||46||01000110||I, T, G, 2T, I, G|
|71||47||01000111||2T, I, G|
|72||48||01001000||2T, I, G, T, I, G|
|73||49||01001001||T, I, G, T, I, G|
|74||4A||01001010||I, G, I, G, T, I, G|
|75||4B||01001011||I, G, T, I, G|
|76||4C||01001100||T, I, T, G, T, I, G|
|77||4D||01001101||I, T, G, T, I, G|
|78||4E||01001110||I, 2T, G, T, I, G|
|79||4F||01001111||T, I, G|
|80||50||01010000||3T, I, G, I, G|
|81||51||01010001||2T, I, G, I, G|
|82||52||01010010||I, G, T, I, G, I, G|
|83||53||01010011||T, I, G, I, G|
|84||54||01010100||T, I, G, I, G, I, G|
|85||55||01010101||I, G, I, G, I, G|
|86||56||01010110||I, T, G, I, G, I, G|
|87||57||01010111||I, G, I, G|
|88||58||01011000||2T, I, T, G, I, G|
|89||59||01011001||T, I, T, G, I, G|
|90||5A||01011010||I, G, I, T, G, I, G|
|91||5B||01011011||I, T, G, I, G|
|92||5C||01011100||T, I, 2T, G, I, G|
|93||5D||01011101||I, 2T, G, I, G|
|94||5E||01011110||I, 3T, G, I, G|
|96||60||01100000||4T, I, T, G|
|97||61||01100001||3T, I, T, G|
|98||62||01100010||I, G, 2T, I, T, G|
|99||63||01100011||2T, I, T, G|
|100||64||01100100||T, I, G, T, I, T, G|
|101||65||01100101||I, G, T, I, T, G|
|102||66||01100110||I, T, G, T, I, T, G|
|103||67||01100111||T, I, T, G|
|104||68||01101000||2T, I, G, I, T, G|
|105||69||01101001||T, I, G, I, T, G|
|106||6A||01101010||I, G, I, G, I, T, G|
|107||6B||01101011||I, G, I, T, G|
|108||6C||01101100||T, I, T, G, I, T, G|
|109||6D||01101101||I, T, G, I, T, G|
|110||6E||01101110||I, 2T, G, I, T, G|
|111||6F||01101111||I, T, G|
|112||70||01110000||3T, I, 2T, G|
|113||71||01110001||2T, I, 2T, G|
|114||72||01110010||I, G, T, I, 2T, G|
|115||73||01110011||T, I, 2T, G|
|116||74||01110100||T, I, G, I, 2T, G|
|117||75||01110101||I, G, I, 2T, G|
|118||76||01110110||I, T, G, I, 2T, G|
|119||77||01110111||I, 2T, G|
|120||78||01111000||2T, I, 3T, G|
|121||79||01111001||T, I, 3T, G|
|122||7A||01111010||I, G, I, 3T, G|
|123||7B||01111011||I, 3T, G|
|124||7C||01111100||T, I, 4T, G|
|125||7D||01111101||I, 4T, G|
|126||7E||01111110||I, 5T, G|
|127||7F||01111111||Start battle with enough MP and not Imp|
|130||82||10000010||I, G, 4T, I|
|132||84||10000100||T, I, G, 3T, I|
|133||85||10000101||I, G, 3T, I|
|134||86||10000110||I, T, G, 3T, I|
|136||88||10001000||2T, I, G, 2T, I|
|137||89||10001001||T, I, G, 2T, I|
|138||8A||10001010||I, G, I, G, 2T, I|
|139||8B||10001011||I, G, 2T, I|
|140||8C||10001100||T, I, T, G, 2T, I|
|141||8D||10001101||I, T, G, 2T, I|
|142||8E||10001110||I, 2T, G, 2T, I|
|144||90||10010000||3T, I, G, T, I|
|145||91||10010001||2T, I, G, T, I|
|146||92||10010010||I, G, T, I, G, T, I|
|147||93||10010011||T, I, G, T, I|
|148||94||10010100||T, I, G, I, G, T, I|
|149||95||10010101||I, G, I, G, T, I|
|150||96||10010110||I, T, G, I, G, T, I|
|151||97||10010111||I, G, T, I|
|152||98||10011000||2T, I, T, G, T, I|
|153||99||10011001||T, I, T, G, T, I|
|154||9A||10011010||I, G, I, T, G, T, I|
|155||9B||10011011||I, T, G, T, I|
|156||9C||10011100||T, I, 2T, G, T, I|
|157||9D||10011101||I, 2T, G, T, I|
|158||9E||10011110||I, 3T, G, T, I|
|160||A0||10100000||4T, I, G, I|
|161||A1||10100001||3T, I, G, I|
|162||A2||10100010||I, G, 2T, I, G, I|
|163||A3||10100011||2T, I, G, I|
|164||A4||10100100||T, I, G, T, I, G, I|
|165||A5||10100101||I, G, T, I, G, I|
|166||A6||10100110||I, T, G, T, I, G, I|
|167||A7||10100111||T, I, G, I|
|168||A8||10101000||2T, I, G, I, G, I|
|169||A9||10101001||T, I, G, I, G, I|
|170||AA||10101010||I, G, I, G, I, G, I|
|171||AB||10101011||I, G, I, G, I|
|172||AC||10101100||T, I, T, G, I, G, I|
|173||AD||10101101||I, T, G, I, G, I|
|174||AE||10101110||I, 2T, G, I, G, I|
|175||AF||10101111||I, G, I|
|176||B0||10110000||3T, I, T, G, I|
|177||B1||10110001||2T, I, T, G, I|
|178||B2||10110010||I, G, T, I, T, G, I|
|179||B3||10110011||T, I, T, G, I|
|180||B4||10110100||T, I, G, I, T, G, I|
|181||B5||10110101||I, G, I, T, G, I|
|182||B6||10110110||I, T, G, I, T, G, I|
|183||B7||10110111||I, T, G, I|
|184||B8||10111000||2T, I, 2T, G, I|
|185||B9||10111001||T, I, 2T, G, I|
|186||BA||10111010||I, G, I, 2T, G, I|
|187||BB||10111011||I, 2T, G, I|
|188||BC||10111100||T, I, 3T, G, I|
|189||BD||10111101||I, 3T, G, I|
|190||BE||10111110||I, 4T, G, I|
|192||C0||11000000||5T, I, T|
|193||C1||11000001||4T, I, T|
|194||C2||11000010||I, G, 3T, I, T|
|195||C3||11000011||3T, I, T|
|196||C4||11000100||T, I, G, 2T, I, T|
|197||C5||11000101||I, G, 2T, I, T|
|198||C6||11000110||I, T, G, 2T, I, T|
|199||C7||11000111||2T, I, T|
|200||C8||11001000||2T, I, G, T, I, T|
|201||C9||11001001||T, I, G, T, I, T|
|202||CA||11001010||I, G, I, G, T, I, T|
|203||CB||11001011||I, G, T, I, T|
|204||CC||11001100||T, I, T, G, T, I, T|
|205||CD||11001101||I, T, G, T, I, T|
|206||CE||11001110||I, 2T, G, T, I, T|
|207||CF||11001111||T, I, T|
|208||D0||11010000||3T, I, G, I, T|
|209||D1||11010001||2T, I, G, I, T|
|210||D2||11010010||I, G, T, I, G, I, T|
|211||D3||11010011||T, I, G, I, T|
|212||D4||11010100||T, I, G, I, G, I, T|
|213||D5||11010101||I, G, I, G, I, T|
|214||D6||11010110||I, T, G, I, G, I, T|
|215||D7||11010111||I, G, I, T|
|216||D8||11011000||2T, I, T, G, I, T|
|217||D9||11011001||T, I, T, G, I, T|
|218||DA||11011010||I, G, I, T, G, I, T|
|219||DB||11011011||I, T, G, I, T|
|220||DC||11011100||T, I, 2T, G, I, T|
|221||DD||11011101||I, 2T, G, I, T|
|222||DE||11011110||I, 3T, G, I, T|
|224||E0||11100000||4T, I, 2T|
|225||E1||11100001||3T, I, 2T|
|226||E2||11100010||I, G, 2T, I, 2T|
|227||E3||11100011||2T, I, 2T|
|228||E4||11100100||T, I, G, T, I, 2T|
|229||E5||11100101||I, G, T, I, 2T|
|230||E6||11100110||I, T, G, T, I, 2T|
|231||E7||11100111||T, I, 2T|
|232||E8||11101000||2T, I, G, I, 2T|
|233||E9||11101001||T, I, G, I, 2T|
|234||EA||11101010||I, G, I, G, I, 2T|
|235||EB||11101011||I, G, I, 2T|
|236||EC||11101100||T, I, T, G, I, 2T|
|237||ED||11101101||I, T, G, I, 2T|
|238||EE||11101110||I, 2T, G, I, 2T|
|240||F0||11110000||3T, I, 3T|
|241||F1||11110001||2T, I, 3T|
|242||F2||11110010||I, G, T, I, 3T|
|243||F3||11110011||T, I, 3T|
|244||F4||11110100||T, I, G, I, 3T|
|245||F5||11110101||I, G, I, 3T|
|246||F6||11110110||I, T, G, I, 3T|
|248||F8||11111000||2T, I, 4T|
|249||F9||11111001||T, I, 4T|
|250||FA||11111010||I, G, I, 4T|
|252||FC||11111100||T, I, 5T|
|255||FF||11111111||Start battle with Imp or insufficient MP for 28th spell|