Frozen Baron Glitch
The Frozen Baron Glitch (alternately, the 'Frozen Double Moonraker Glitch') is bug relating to the movement of guards holding 2 moonraker lasers in GoldenEye. It causes the relevant guard/enemy, most notably the 3rd Baron on the Egypt stage, to freeze in place, unable to move or shoot. This becomes an abusable trick in completion of Egypt DLTK.
Causes
It is believed that this is caused by a failure in the AI of the relevant enemy to fully complete a roll-and-fire animation. Since it never fully completes, a new animation is unable to start and thus the enemy remains frozen.
Uses
Since the final Baron is killed in one shot with the Golden Gun, this glitch is not currently considered useful for speedrunning purposes. It is, however, useful to DLTK completions, where it has been utilised in the world record.
Technical Information
The Baron has lots of interesting mechanics, including him becoming more aggressive when at low health, or the fact that Xenia uses similar coding, but we'll focus only on what's important for the purposes of the glitch. The Baron begins combat once invincibility wears off, and he either has line of sight or is at gunpoint. Gunpoint refers to having the centre of your screen facing him.
- Combat
- Call RNG (0-255), if >128 and he has line of sight, attack.
- If <128 and at gunpoint, dodge.
- If <128 and not at gunpoint, attack.
Dodging is bad as it doesn't give the animation we want, so simply approach without having him at gunpoint, and we have a 100% chance of him performing an attack.
- Attack
- Call RNG, if >128 and then either aim, kneel, kneel/shoot, aim/shoot, etc, all of which are bad.
- If <128, and at gunpoint, dodge then attack. Again, we don't want this. This also means that he cannot do the correct animation if at gunpoint, so keep your crosshair off him when approaching. Note that him doing an attack animation that goes through your crosshair is fine.
- If <128 and not at gunpoint:
Call RNG, note that this is a second call and doesn't re-use the previous call. Values 0-40 (~1 in 6.24, or ~16%) are for roll and fire, other values give other animations that we don't want.
Therefore, to get him to do a rolling attack, it is ~1 in 12.5, or ~8%. Therefore, to even have a chance at getting a frozen third Baron, 92% of runs will not work as he'll be doing a different attack animation.
However, the odds get much worse because not all rolls are the same...
Next is to get the broken animation to actually cause the freeze. The only thing that makes sense according to the function explorer is after the roll and fire animation, the Baron enters a loop that checks if the Baron has stopped moving and the animation is done, and to wait until so. Something must be occurring such that the Baron believes his animation is not done, and thus no longer performs attacks, dodges, or anything else for that matter according to the code. This seems almost like a contradiction as he freezes until he stops, but nothing else could seem to cause the freeze glitch. He can't do anything until his animation is done and he's trying to animate, but something is not progressing properly. Furthermore, if you look closely at any regular guard, you can see they very slightly move about, similar to Bond and his slight bobbing, yet frozen guards do not do this at all, strongly suggesting that they are indeed stuck in an animation.
So what causes the rolling animation to fail, and why specific to only those with double moonrakers?
I still haven't been able to crack it, but I've noticed some patterns that might hint at what it is. Every single frozen Baron I've seen appears to be facing the same angle, and when testing with double moonraker spawn guards, their frozen stance is never facing directly at you. It seems that after performing this rolling animation, you need to be at a certain angle relative to where the Baron is facing.
When testing via TAS with Bizhawk, I could trigger the freeze glitch and depending on where I was after, it would either work or not, based on the angle relative to him. Fortunately, it is trivially easy as it seems almost any angle except being directly in front of him will cause a freeze, so simply running around the pillar will cause a freeze if it's possible to do so.
The issue however is that not every roll can lead into a freeze as they seem to vary by distance and what animation follows after the roll. My guess is that within deciding to do a rolling attack, there is a subset of animations after, such as rolling into a stand and fire, rolling into a kneel and fire, etc. One of these types of rolling attacks is busted and is what triggers the freeze, but I have no idea the specifics or to be able to put a number to it. My guess is there are 2 types of rolling attacks, bringing the odds to about 1 in 25 if true and if they have equal probabilities, but this is speculation. With a roll that would lead into a freeze I could replicate it very easily with savestates, but other rolls could never freeze, ever.