send a tag suggestion

which tags should be associated with each other?


why should these tags be associated?

Use the form below to provide more context.

#DEVIL DUMPER DORIS


I made a fix for the Doppelganger crash a while back but never published it because I was never able to verify it worked. For some reason I couldn't get it to crash with or without the fix. I still can't reproduce the crash, but I uploaded the updated game data here anyway in case someone wants to try it.

To use it, open Steam, right click on DEVIL DUMPER DORIS in your library, go to Properties, then Installed Files and click Browse. That should open the folder with the game files. First, rename the data.win that's already there to something else (like data_original.win) so you have a clean copy if you want to go back. Then copy my updated version of data.win to that folder and you should be good to go.

If anyone decides to use it, let me know if you run into the crash while using it.



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.