If you've never heard of Devil Dumper Doris, it's a charmingly janky Castlevania-like that released on steam last year. Myself and a few other folks have been casually speedrunning it. There's one very annoying bug where the Doppelganger, the second to last boss, crashes the game about 90% of the way through a run.
I was watching @hexagon stream some speedruns yesterday and I wondered if there was a way to examine the contents of a game maker data file to figure out what caused the crash. I had looked for something like that before and didn't find anything but I gave it another try and came across a tool made for modding Undertale. It's general enough that it works for other games as well, so I popped Doris's data in there and, yeah, it extracted all the juicy innards.
I poked around the scripts for a little while and I think I found the problem. It crashes in the dg_whip object, which is similar to the player's whip attack, but simpler and only used by the boss. The whips have a feature where they can orbit their owner, and dg_whip is set to use an instance of the boss, named doppel, as the center of gravity on every frame that it's orbing.
Next, looking at the doppel object itself, it occasionally calls a function to change which kind of object it is. Seems like an odd function to have, but it looks like doppel gets changed to something called dg_a. I'm not sure what dg_a does exactly, but it seems to use the whip throwing animation. Regardless, it seems the crash occurs because the boss is in its dg_a state when the boss's whip starts its orbiting behavior. The whip needs doppel's coordinates for gravity things, but doppel doesn't exist, thus blowing up the game.
Amazingly this tool for Undertale modding also includes a compiler for GML code. I was able to edit the code for some of the scripts, and it generated new assembly. It builds a new data file in about a second and it seems to work as expected. Having the whip use dg_a instead if doppel doesn't exist should theoretically fix the crash, but I haven't actually been able to test any of this yet. I'm going to try that tonight and maybe I can make a patch file or something.