Advertisement
Torchickens

Super Glitch induced cries pitch and length manipulation

Aug 20th, 2015
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.45 KB | None | 0 0
  1. Tricks that allow us to listen to specific Pokémon base cries that can have their pitch and length values adjusted by listening to a Pokémon in the Pokédex first (the pitch and length values are taken from that Pokémon).
  2.  
  3. For example, viewing a long name glitch item or doing CoolTrainer with this spot in Route 1 (http://i2.minus.com/irF79bham8JqN.png) lets us play sound effect 2C (base cry 08), used by Pokémon Marowak, Oddish, Gloom. We could listen to those Pokémon through the glitch after playing them in the Pokédex normally, or listen to another Pokémon like Bulbasaur to take its pitch and length and play a non existing cry (base $08, pitch $80, length $01 in this case).
  4.  
  5. More detailed description. http://pastebin.com/sbZj8NYA
  6.  
  7. Review of Super Glitch
  8. --
  9. Super Glitch from Generation I happens when the game stores the name of a string in the $CD6D buffer (limited to 20 bytes) but the name has 20 characters without a 50 character.
  10.  
  11. The game is meant to copy $CD6D to another buffer, such as to $CF4B (for selecting a move or pressing A on an item that has a Use/Toss box) and/or to D0E1 (viewing stats/learning a move/opening the fight menu).
  12.  
  13. When the string is 20 characters long or more without a 50, more data is copied than is needed from $CD6D (the game stops copying data only after copying a 50) to $CF4B or $D0E1; and this can affect many addresses, like:
  14.  
  15. $CFD8 (enemy internal species and palette in battle), $CFC7 (when it is written to, the music fades out and a sound effect or tune is played), $CFE9 (enemy status), $CFDA-$CFE4 (enemy's name), $CFE6-CFE7 (enemy's HP).
  16.  
  17. If $D0E1 was corrupted, some different variables can be affected such as $D158-D162 (player name), $D163 (number of Pokémon in the party), $D12C (type of yes/no box).
  18.  
  19. The mechanics of Super Glitch were found by TheZZAZZGlitch.
  20.  
  21. Super Glitch can be triggered by:
  22.  
  23. 1) Randomly (CoolTrainer has a random name that may or may not be over 20 characters long) when selecting the CoolTrainer (hex:00) move in battle or using a PP Up/Ether on it.
  24. 2) Randomly (or always with the move A6) when selecting/viewing from the summary/opening the fight menu with, a move A6-C3.
  25. 3) Always when selecting (many) "Super Glitch items", such as the hex:80 ones in Red and Yellow; because their names are always over 20 characters long internally.
  26. 4) Viewing a glitch Fly destination from the Fly menu. This is not much understood as of yet.
  27.  
  28. The CoolTrainer move can be obtained by by having a Pokémon with less than four moves Transform and swapping the second-fourth move (any move that would have been a blank move before transforming) with the first move.
  29.  
  30. Other Super Glitch moves can be learned by various glitch Pokémon, e.g. LM4 at level 24 available through the Ditto glitch.
  31.  
  32. Glitch items can be obtained through a glitch such as dry item underflow. https://www.youtube.com/watch?v=ZyppANEvnh8 and glitch items of your choice can be obtained with the looping map trick. https://www.youtube.com/watch?v=98_azamLeh4
  33.  
  34. Located past the $CD6D buffer is a copy of the game's screen that is updated after performing actions like opening a menu such as items, Pokémon, Pokédex (and entering battle in Yellow). This means that the saved screen data has a direct influence on the effects of Super Glitch when it works; and when a 50 is found in the overworld tile data (which can appear as a tile like the bottom-left corner of a bush), it ensures that too much data is not copied and that the player can reliably corrupt data without a freeze.
  35.  
  36. The typical effects of Super Glitch (such as the effects from last opening the Pokémon menu in battle) may be called the "TMTRAINER effect", where an effect like the music fading out, the opponent becoming both frozen and burned and getting huge HP and its name getting "TM" "TRAINER" (printed from the $5C and $5D control characters) in it may happen.
  37.  
  38. Super Glitch-esque effects are shared by the "wild appeared!" glitch, which is not the same as Super Glitch, but involves the corruption of some of the same addresses. https://www.youtube.com/watch?v=ELDCr6fxZMY
  39.  
  40. Super Glitch induced cries:
  41.  
  42. Super Glitch induced cries play whenever Super Glitch corrupts $CFC7; which is an address that makes the sound fade out for a variable amount of time (which can depend on other variables Super Glitch can corrupt) and play a sound effect, which may or may not depend on the current sound bank ($C0EF, $C0F0).
  43.  
  44. Values $14 through to $83 will play the base of a Pokémon cry (Pokémon cries are stored as base cry, pitch and length. Many Pokémon share the same base cry but different pitches and lengths, and values are as such https://github.com/iimarckus/pokered/blob/master/data/cries.asm).
  45.  
  46. The sound effect for a value of certain ID is according to the last three digits of the sound pointer divided by 3 (here are some of the pointers https://github.com/iimarckus/pokered/blob/master/audio/headers/sfxheaders1.asm); so for instance base cry 00 has the pointer 2:403C. Hex:03C divided by 3 is hex:14; hence 0114C7CF plays the base 00 cry. Then the pointers for the next sound effect follow on in an expected pattern so that sound effects carry on +3, so for instance 0117C7CF plays the base 01 cry.
  47.  
  48. Values like 14, 17, 1A, 1D are real base cries, while values like 15, 16, 18, 19, 1B and 1C are not.
  49.  
  50. Now, when Super Glitch is triggered; the tile at (BGB coordinates) x=04 y=05 will affect the value of CFC7 (sound effect played), and opening the menu at different spots lets you hear different cries. Here is a screenshot for an idea of where it is. http://i3.minus.com/i6bQlzbQuaHHb.png
  51.  
  52. If the value at CFC7 corresponds to a real base cry; then the game will take its pitch and length from whatever was pitch and length was last in the memory (at C0F1, C0F2). This data can be manipulated by listening to the cry of a Pokémon in the Pokédex before activating the Super Glitch effect, letting you hear cries of both real Pokémon and Pokémon that do not exist.
  53.  
  54. For example, if you force a hex:20 in CFC7 (corresponding to base cry 04) in the Super Glitch effect, listening to Charizard (pitch $00, length $80) in the Pokédex will let you listen to Charizard again because Charizard's cry is base 04.
  55.  
  56. But Mew has some significantly different values (pitch $EE, length $FF), so listening to Mew before doing the base 04 cry corruption will yield a considerably different cry.
  57.  
  58. Nidoran(M) shares the same pitch and length values, so listening to Nidoran(M) with this will cause Charizard's cry too.
  59.  
  60. Here is an image that shows spots on the maps and which base cries they yield http://i4.minus.com/ibwY251nJd15lp.png
  61.  
  62. Manual control over the CFC7 (CFC6 in Yellow) value:
  63.  
  64. In Pokémon Yellow, if you have activated item underflow, have a 5-7 long Rival name, and the glitch items hex:8A (Super Glitch item) and 9F (hex:5E), then by opening up the menu with 8A as the first item here http://i3.minus.com/ibb5BZL3shi7sw.png, you can print a tile at x=04 y=05 that depends on the fifth Rival name character.
  65.  
  66. This can be manipulated by adjusting item 25, for instance, placing a Leaf Stone there lets us get value 2F (listen to base cry 9).
  67.  
  68. Once the tile (sound effect value) you want is at x=04 y=05, make sure that the bottom-left corner of a bush tile is on the screen and use 9F. Afterwards, selecting the hex:8A item will play the sound effect.
  69.  
  70. I created this trick based on Luckytyphlosion's Rival name Pokémon acquisition trick (Rival CoolTrainer/LOL glitch). https://www.youtube.com/watch?v=HwnymX80ZMc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement