Glitch City Laboratories Archives

Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.

You can join Glitch City Research Institute to ask questions or discuss current developments.

You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.

Generation III Glitch Discussion

Is there a way to control what glitch moves I get using the Pomeg glitch? - Page 1

Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: rortik
Date: 2017-08-17 18:11:53
On a similar note, is there a list of all the glitch moves and their effects? I've been messing with my Emerald cart a bit and have gotten some cool stuff like higher-than-protect priority moves and ones that glitch out the battle, but it's all random "corrupt stuff then pray I get cool things" without any method to the madness.

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: Stackout
Date: 2017-08-18 05:23:04
On a list of invalid moves and their effects, not yet. And most invalid moves basically are the Gen III equivalent of Super Glitch because of not only the move / type(?) names being very long (I can't remember if type names inside battle get length-capped or not) but also the "a TYPE move" mechanic (an invalid type here overflows the pointer array, causing the shown move name when used to be also potentially very long). For an invalid move to not have these effects it needs to have a short enough name and a valid type.
(This is also the cause of the "Instant Win", "Instant Flee" etc moves, the long strings getting copied around overwrites the battle type)

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: Torchickens
Date: 2017-08-18 09:22:53
Yeah it's very possible fortunately. :)

If you use the in-game trade Plusle in Emerald (known as Pluses), its first move will always be controlled by its Attack and HP EVs, with the Attack EV being the most significant byte and the HP EV being the least significant byte.

The move IDs for valid moves can be found here in decimal (which you'll have to convert to hexadecimal to know what the most significant byte is and convert it back). So for instance you want Psycho Boost. That is ID 354. Converted to hexadecimal it is 01 62. Convert them back and we get the most significant byte as 1 (1 Attack EV) and the least significant byte as 98 (98 HP EVs).

Though it's not exhaustive, Metarkrai has a list of useful effect glitch moves in this Pastebin.

Hope that helps!

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: Metarkrai
Date: 2017-08-18 12:25:53
You can do a "list" of all glitch moves (name, and effect) from a Gen III Rom then use a program to search through that list for glitch moves with certain characteristics.
For example, if you want a move with high power, more than 100 accuracy, and some priority, using a tool like that will make things easier for you.
If you're interested into this, I can give you the scripts that ThezzAzzGlitch kindly made for me (even though they aren't very deep) and indicate you where the lists start from.

Since the parts of the Rom that is used to determine the name and effects of glitch moves is not the same through all games (R/S/E/Fr/Lg) and through all languages (Eng/Fr/Ita/Spa/Ger/Jpn), the name and effect of most glitch moves are different from a version to another.
In general, the first thousand glitch moves have the same characteristics on every language, as well as between R/S or Fr/Lg, but aside from that you have to expect that glitch move 0x547A is quite different in Emerald Fr than in Emerald Eng.

Glitch Moves can be used or can crash/freeze the game in many ways.

If a glitch move doesn't have a valid effect, it always seems to freeze the game. (I haven't tried all invalid effects but it always seems to be the case)

If a glitch move name is too long (more than ~1100 characters or something like that), opening the "Fight" menu during a battle will crash the game because the game overwrites some values that manage the fight. (The game forces itself to write the whole glitch move name when you open the fight menu, and overwrites many RAM values in the process).
You can change certain RAM values with a glitch move name, but it's restricted to a block of ~1000 bytes somewhere in RAM. (While some uses have been found, some nice gimmicks could be found if you can find one RAM value or two in that block that have a specific use)

When you use a glitch move, the name of the move you use is often different from the name you have in the "Fight" menu.
I still don't know why this thing happens, but this is another souce of crash as certain character sequences that the game displays can freeze the game (especially the ones with the "oe oe oe oe….")
If the glitch moves have valid types, then the move name isn't displayed and the game uses the "a TYPE move" sentence instead, as Wack0 said. (which is quite useful in speedrun as it saves many frames since there are way less characters to type onscreen)
The name that is displayed when a glitch move is used seems to mainly depend on the move's effect. (For example, when you use a move with Guillotine's effect, the name displayed when you use the move always end up with "the great new hope !") However, I don't know why or how this happens, as it is not true for all effects.

A glitch move's name can also freeze the game on some other cases where the game tries to store the move's name somewhere and ends up erasing important values/in an overwriting loop.
This can happen when trying to forget/learn a glitch move, or when certain moves in battle will have an effect on the previously used glitch move (like Sketch for example).
As previously, if the glitch move's lenght is not important, you will not freeze.

The sprite for Glitch Types can also crash the game when you see them in a Pokémon's summary. (Many do but some don't. There are even some glitch types that only crash the game after a few seconds, leaving you some time to enjoy the show or prevent the crash.)

There is a safety measure in emerald that prevents the game from overwriting data when writing a name that is longer than intended, but this feature is only used in a Pokémon summary.
As such, long glitch move names have no effect in a Pokémon summary and don't crash the game.
Viewing the description of a glitch move name has no side effect too.

For everything related to the summary, things are different in RS and FrLg as they are coded differently.
In RS, you won't crash from a Glitch Type sprite, but long glitch names do overwrite some RAM data (I used that to remove the Safari Mode while inside Safari Zone).
In FrLg, every page of the summary is loaded in advance, and many things aren't treated the same way, and glitch moves (as well as glitch pokémon) can induce many graphical glitches as well as some boundary breakers (allowing you to scroll beyond the 6th party slot or beyond the 30th PC slot for example).

In RS, having glitch moves in the "Fight" menu also causes graphical hindrance with many japanese characters (this can also crash the game during the process).
A few nice things can be seen this way.

The adresses for glitch moves animations are also read on a certain part of ROM. Almost all glitch moves animations will crash the game in some way.
Some Glitch Moves animations can show different effects over multiple attempts. (some can be cool like changing the music or throwing a Ball, but it's not something you can efficiently reproduce)

Regarding trades, you can't trade a Pokémon knowing a glitch move from one version to another if this glitch move has a long name (more than 10/11 characters) in one of the two versions.
However, you can use the wireless trade station thing (like GTS) in E/FrLg to trade Pokémon with Glitch moves without any issue.
Else, you have to use the in-game traded Plusle and follow several steps to transfer any Glitch Move to any Gen III game (https://pastebin.com/237FpUTf ).


Thus, the known useful uses of glitch moves are as follow :
-Use Glitch moves with super strong effects/accuracy/pps/priority to easily go through some battles.
-Use Glitch Moves names to change the battle type to allow bag usage and Pokémon capture.
-Use Glitch Moves names to change the battle type into a dev type that ends the fight when B is pressed.
-Use Glitch Moves to do fun stuff in FrLg Pokémon summary or in RS Fight menu.
-Use Glitch Moves Animations to call certain RAM areas and execute arbitrary code (needs setup but doable, I still haven't finished writing down a good procedure)
-Use Glitch Moves names to get into RS Safari Zone but without Safari Mode.
-One or two things I may have forgotten.


Also, for the speedrunning case, I would like to emphasize that even though some Pokémon/glitch moves combinations can make battle Frontier/battles really easy, it is not that easy to get a working combination in an optimal time. (I am still struggling about the moves combination for the Battle Palace team in order to remove most of the bad luck scenarios.)

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: Parzival
Date: 2017-08-18 13:20:18
O_o What'd you do, copy the entire Wiki into a post?
Well, at least you were thorough.

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: Stackout
Date: 2017-08-18 13:59:53

When you use a glitch move, the name of the move you use is often different from the name you have in the "Fight" menu.
I still don't know why this thing happens, but this is another souce of crash as certain character sequences that the game displays can freeze the game (especially the ones with the "oe oe oe oe….")


Same reason as "a TYPE move", basically there's an array of pointers to these strings in the ROM (starts at 0x401604 in EN Ruby), and the array is indexed by the type-id without any checks, thus some uint32 past this array is used as a pointer to the move-string.

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: rortik
Date: 2017-08-19 01:08:55
I got some more glitch moves and had some fun stealing wild Pokemon from the Pike, too bad there's not a good way to catch trainer Pokemon.

I wonder if there's some way to steal Factory Pokemon -.-

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: Metarkrai
Date: 2017-08-24 11:15:58

I got some more glitch moves and had some fun stealing wild Pokemon from the Pike, too bad there's not a good way to catch trainer Pokemon.

I wonder if there's some way to steal Factory Pokemon -.-


I found a way to get some the Battle Factory Pokémon by using ACE  to execute an overworld script that replaces your current team by a team made with your last rented party. (the n° and the PID of the last 3 Battle Frontier Pokémon you rented are stored somewhere in RAM and stay there nicely)

Aside from that, if you could determine the order of your save blocks, you could maybe use ACE to copy the opponent's party stored in a battle video and paste it in PC.
Now that I think of it, if there's an overworld script that can be used to move Pokémon from party slots 7-13 (or opponent's Pokémon) to other party slots or towards PC, this script could be used to steal Pokémon from a battle video. (You use ACE to change the RAM adresse that manages the script of an NPC loaded on the map to redirect it towards your script. Then you open your battle video, close it, and talk to the NPC to execute the script and get the Pokémon.)

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: VaeporSage
Date: 2018-04-02 17:15:13

You can do a "list" of all glitch moves (name, and effect) from a Gen III Rom then use a program to search through that list for glitch moves with certain characteristics.
For example, if you want a move with high power, more than 100 accuracy, and some priority, using a tool like that will make things easier for you.
If you're interested into this, I can give you the scripts that ThezzAzzGlitch kindly made for me (even though they aren't very deep) and indicate you where the lists start from.


(Sorta bumping an 'old' topic but I don't see the need to post a new thread)

Is there a list like this for glitch moves in Gen IV? It would be really useful considering how smoothly glitch moves can be transferred from Gen III.

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: Metarkrai
Date: 2018-04-03 06:32:37

(Sorta bumping an 'old' topic but I don't see the need to post a new thread)

Is there a list like this for glitch moves in Gen IV? It would be really useful considering how smoothly glitch moves can be transferred from Gen III.


I tried to find the data used for Glitch Moves characteristics by looking at the rom data that is after valid moves data (as this is how it works for Glitch Moves in Gen III), but it seems that in Gen IV things are not done this way as changing the rom values right after the moves data tables didn't change anything for glitch moves that are right after Shadow Force.

Unfortunately, it seems that I didn't keep the Gen IV moves data structure on my files, but someone else may have it.

Re: Is there a way to control what glitch moves I get using the Pomeg glitch?

Posted by: VaeporSage
Date: 2018-04-03 06:47:33
I mean, if anyone's gonna find a list like that, it'll be you