Forums  /  Descent  /  Boss Robot No-warp Exploit
  ModPhozon

The boss robots can be kept in the same place by leaving the game running for long enough before arriving there:

 
  ModPhozon

So this is prior set up and seems like waiting for a global timer. Should it be allowed etc etc?? Will the game have to start being timed from opening the exe?? Discuss,

 
  Lumophile

I know of a handful of other speedgaming communities that allow the use of preexisting save data specifically to exploit a given glitch. In Banjo-Kazooie, there is a glitch called Furnace Fun Moves. Basically, you game over at a specific time in one save file with most of the moves you learn throughout the game already learned. You then start a new game file and in this new game file you then have all of those moves already learned and available to be used from the start of the run. This exploit alone probably saves upwards of 30 minutes throughout the course of a 100% run with a WR just over 2 hours. Conversely, in Animal Crossing speedruns, preexisting save data is specifically prohibited for various reasons. One reason being that the game is VERY heavy in randomness and adapting to it is seen as part of the speedrun. I cannot say which way I feel about this instance just yet. While having the level 7 boss sit idly and blasting him would certainly make the run faster and easier, it would also take a bit of the excitement out of it by just waiting around and making the boss fight a snooze.

 
  roncli

OK, after some digging, I figured this out. Here is a technical explanation of what's going on by examining the boss movement AI. Note that both the level 7 and level 27 bosses have identical AI, just different weaponry and models.

Aside from normal movement and firing, it only has two other abilities: cloaking and teleporting.

In order to start a cloak, the boss must not already be cloaked. Plus, ONE of the following must be true:

1) The time between the game time and the time the boss finished cloaking must be greater than 10 seconds.
2) The boss got hit.

In order to teleport, ALL of the following must be true:

1) The boss is cloaked.
2) The time between the game time and the time the time the boss starts cloaking must be greater than 2 1/3 seconds.
3) The time between the time the boss finishes cloaking and the game time must be greater than 2 1/3 seconds.
4) The time between the game time and the last time the boss teleported must be greater than 8 seconds.

So there are a few variables here:

- The boss is cloaked or not

- The game time - This is the time since the game began. How is this set?
1) It is set to 0 upon starting a brand new game, regardless what level you start at.
2) It is set to whatever it was saved to upon loading a save file.

- The time the boss starts cloaking - How is this set?
1) It is set to 0 upon loading the .exe.
2) It is set to whatever it was saved to upon loading a save file.
3) It is set to the game time when the boss cloaks.

- The time the boss finishes cloaking - How is this set?
1) It is set to 0 upon loading the .exe.
2) It is set to whatever it was saved to upon loading a save file.
3) It is set to the game time plus 7 seconds when the boss cloaks.

- The last time the boss teleported - How is this set?
1) It is set to 0 upon loading the .exe.
2) It is set to whatever it was saved to upon loading a save file.
3) It is set to the game time when the boss teleports.
4) It is lowered by 2 seconds during a frame the boss is hit.
5) It is lowered by 4 seconds when the boss fires at you.
- How is this saved and loaded?
1) It is saved as the last time the boss is teleported minus the game time.
2) It is loaded as it was saved. Prior to 0.57.1, this was a bug. Now, since the game time is loaded as 0 from a save file, this is working as intended.

So now we know what the logic is, and can determine there are actually two bugs here. Both are related to the fact that several variables are NOT set to 0 upon starting a new game... only when opening the .exe.

The less important bug is with cloaking. After you've played a game when you've encountered a boss, your game time will need to pass the time the boss finished cloaking + 10 seconds... from your LAST game. OR it gets hit... so really this isn't that big a deal, because obviously you have to hit the boss to kill it. This just means it will never cloak UNTIL you hit it, so you can launch a barrage of missiles at it, and they will all lock.

The more important bug is with teleporting. After you've played a game when you've encountered a boss, your game time will need to pass the time the boss last teleported... from your LAST game. This is of course minus the 2 seconds per boss hit and 4 seconds per boss fire.

What this means for speedrunning:

Between retail 1.5 and Rebirth 0.57
- Start a new game in level 7 or 27, wait a couple hours, go aggro the boss and ensure it cloaks and teleports, then save that game.

Rebirth 0.57.1 and later, and all Retro versions
- Start a new game in level 7 or 27, wait a couple hours, go aggro the boss and ensure it cloaks and teleports. Then exit the game but don't close the EXE, and start a brand new game on level 1 and immediately save it.

Then:
- Before starting a speedrun, you should load that save file, and then IMMEDIATELY start a new game, and your bosses should NEVER teleport. As far as cloaking, the level 7 boss you can fire a bunch of homing missiles at him immediately because you know it won't be cloaked. The level 27 boss, however, will cloak occasionally because the level 7 boss would have cloaked, resetting that variable, which means homing projectiles won't be reliable.

 
  roncli

Sirius just had me check Descent 2, and it looks like the bug is there as well.

 
  Justis

"What this means for speedrunning: start a new game in level 7 or 27, wait a couple hours, go aggro the boss and ensure it cloaks and teleports, then save that game."

You DONT wanna save when your trying to rack up time for the boss to not teleport in the future. You wanna back out of the Level 7 after you've been there for awhile then re-enter Level 7 then Save.

 
  roncli

While that works too, keep in mind the important thing here is that you saved the game after the boss teleported while the game time is high, preferably some hours in. You don't have to start a new game on the same level first.

 
  roncli

Updated info on how to perform the exploit, as turns out I was reading retail 1.5 code, and the code changed in Rebirth 0.57.1.

I filed a bug with Rebirth: https://github.com/dxx-rebirth/dxx-rebirth/issues/366 If they fix it as I propose, the exploit would then revert to how it worked in retail 1.5.

 
  ModPhozon

You say that Retro and later than rebirth .57 has a this partially changed/you have to set it up a different way.
But my files are rebirth .58 and using the most recent retro, and I can set this boss exploit up the normal way?? Folder screenshots:
https://i.gyazo.com/eab9a557fb7ebfcc676dc214a7710a7e.png

 
  roncli

Please provide some reproducible steps. I've tested this on 0.58.1 and Retro 1.4x6, and found the old method to not work.

 
  roncli

Well, vLKp just fixed it in 0.60.

I currently have no intention of fixing it in Retro, I've got enough to worry about over there.

 
  ModPhozon

Added a save file in Resources for people who don't wanna wait around/ don't know exactly how to set up