TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #5822: slamo's DOS D/Generation in 05:56.63

Console: DOS
Game name: D/Generation
Game version: any v1.0
ROM filename:
Branch:
Emulator: JPC-rr r11.8 rc2
Movie length: 05:56.63
FrameCount: 21398
Re-record count: 7051
Author's real name: MRT
Author's nickname: slamo
Submitter: slamo
Submitted at: 2018-02-09 20:53:14
Intended tier: Moons
Text last edited at: 2018-02-26 22:32:06
Text last edited by: feos
Download: Download (73075 bytes)
Status: publication underway
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

(Link to video)

Movie Information

Important note: The image file includes a configuration file that is made upon installation of the game. The configuration is VGA with Adlib sound and keyboard for input. If your image doesn't match the one used in the movie, this might be the reason why. Substitute the HDD hash in the movie file with the one from your image and the movie will probably play back fine.

  • Emulator: JPC-RR r11.8 rc2
  • Best ending
  • Genre: Action

The list of files is very large - refer to the movie file for image information.

D/Generation is an isometric action game published by Mindscape in 1991. You play as a courier who is sent on a mission to deliver a package to the Genoq corporation in Singapore, but things go horribly wrong when you find the security system is active and bioweapons are crawling all over the place. Your goal is to deliver the package to a man known as Derrida and stop whatever is taking over the building.

Mechanics and Bugs

Doors

There are a few types of doors to deal with. It's possible to bypass all doors by using a bomb as well.

Switch doors

These just require you to hit a switch (yellow triangles and bars) to open them up.

Key doors

A key of a high enough security level is needed to open these. Opened via the white triangles on walls.

Password doors

These doors are attached to a computer terminal which needs a login and password to open up.

Security doors

All enemies need to be disposed of and all vents need to be closed by stepping on them. Once this is done, the room is considered secure and the door opens.

Out of bounds

All exits on the north side of a room have a small oversight: the walls never extend all the way to the edge of the screen. With some precise movement there's just enough room to go around the wall and walk around out of bounds. This is useful because warps are triggered when you try to leave any part of the edge of the screen, and are not limited to in-bounds areas. The bug can be used to skip significant portions of floors by going around doors and warping to rooms early.

If you're curious about what happens when you try to leave the room through a side with no exit: nothing, unfortunately. It's just an invisible wall.

Item boxes

This mechanic was the most time-consuming one of the entire run. There are gray boxes scattered throughout the tower which give a random item. Since the source code isn't public, the inner workings of how the item is determined are not clear, but I figured out a few things about it. The item seems to only generate when the executable was started. When the floor was entered, when the room was entered, and what frame the item was picked up all seem to have no effect. Even saving and loading doesn't do anything. In addition, getting different item rolls takes a lot more real time than I anticipated. The random set of items you get doesn't change every frame, but rather changes roughly every 24 hours.

A few different items can show up in the boxes, but bombs are obviously the most useful ones due to their ability to blow up any door and skip significant portions of a level. Manipulating this is tricky - changing the starting RTC value affects the item, but also affects enemy behavior, as some of that is random as well. Replaying the movie with a different starting RTC value is an extremely tedious method, as the movie has to be re-synced every time it's changed, and there's not even a guarantee that the items will be correct. The solution I came up with was to hack some save files to immediately spawn you near the relevant item boxes so they can be easily checked. I changed the starting time and used memory search to narrow down the memory addresses that hold the contents of each box. Once I found a starting RTC value that generates the correct items, I re-synced the inputs to move on. c-square's TAS recording scripts for JPC-rr made this a lot easier than it sounds.

There are four boxes that are of interest for manipulation because of their closeness to the route. Ideally you'd get at least two bombs out of the four to optimize the speedrun. The box on floor 85 is very obviously the fastest one to pick up, so that must be a bomb. The choice for the second bomb is between floor 83, floor 84, and floor 88. It was determined through some testing that the item on floor 83 is faster to get, so we have our bombs.

Enemy despawning

There's a feature in this game that lets you reset a room (Ctrl+A) at the cost of a life. If you lure an enemy into a different room and then reset in that room, the enemy will be erased from existence because the room reset only respawns enemies that originated in that room. Even better, when you go back into the room the enemy came from, it will still be gone because the game still thinks that the enemy is somewhere else.

Level Notes

Floor 80

Getting the laser here is vital, as it serves as our main weapon throughout the run, as well as helping in puzzles. The old man in the laser room will shake your hand and start a conversation if he gets too close, so we have to murder him. Sorry! Some accurate laser play makes really quick work of some of the more difficult rooms.

Floor 81

There are some more out of bounds exits early on in this floor which save quite a bit of time. In the red room with the laser and two vents, the intended solution is to lure one of the balls over to the laser to destroy it, but it's just barely possible to make it past the laser and skip most of the waiting. We actually save a hostage here because they give you a bomb which will be extremely useful in the next floor. The hostage won't talk to you until the room is secured. The grenade in the teleporter room is optional, but it will help save some time later on.

Floor 82

Here's where the bomb we got from the hostage gets used. It's pretty obviously worth it for skipping the whole level, and it's a long one.

Floor 83

This is a relatively short floor with a small skip. The room with the mines is intended to be done by opening up one of the doors and then going back around the other way to go through it, but the mines can be bypassed using the grenade we picked up earlier. Another bomb is picked up here. The fake hostage in the last room is our first C/Generation. C/Gens are way too fast and can't be avoided, so this one has to be killed. They are immune to our laser but can be taken down with grenades or other traps like the purple laser that kills this one.

Floor 84

Another quick floor that is mostly skipped thanks to some out of bounds. Not much to see here.

Floor 85

Here's the first instance of enemy despawning. The C/Gen is way too fast to deal with, and we have no grenades, so we glitch him out of existence. The final bomb is picked up here. In the second to last room, there's an invisible switch that opens up a secret room. This floor actually has two exits, and the one taken here is a shortcut that skips the second part of this floor and puts you about halfway through floor 86.

Floor 86

This floor is very much abridged thanks to the shortcut. The landmines in the exit room are bypassed via a frame perfect corner boost - I have no idea why this worked, but it did.

Floor 87

Here's where the extra bombs come into play. A bomb in the second room skips most of a pretty lengthy level. We get a message that the building is going to blow up in 20 minutes. This was supposed to be explained by a hostage on this floor, but that was skipped so it doesn't make much sense here.

Floor 88

A really convenient grenade is picked up in the first room to dispatch a C/Gen a little later. This level is massively shortened because of a few out of bounds skips, followed by a bomb to break into the exit. A different C/Gen, which seems to follow us through two rooms out of bounds, can actually be killed by the turrets if you bait them properly.

Floor 89

So, things get a little weird now. The first room is specially programmed to have a few different triggers to end it, with shooting your laser as fast as possible being the quickest way. It's not obvious, but the eyeball room has walls in a "V" shape. In the Derrida room, all of his body parts are solid so he has to be completely walked around. Once we get past that room everything gets back to normal. The blue humanoid in the last room is the final boss, the D/Generation. Unfortunately, the room reset feature is disabled so we can't..."D/Spawn" it (sorry). There's a proper way to kill it (which is pretty spectacular, I'd recommend looking it up) but it's also possible to juke him and go around. The end!

Thanks

  • ciscoheat and tbcr: The two speedrunners of this game. They found many of the skips in this game and their runs were a good guideline for the route.
  • c-square: Without his TAS record/run scripts, this would have taken much longer than it did.


Mothrayas: Judging.

Mothrayas: Interesting isometric action, with some fun boundary tricks and laser bouncing. Accepting for Moons.

feos: This won't be fast guys, need to hack a few things to support dos with official tools in the best way. Might publish something else along the way.


Similar submissions (by title and categories where applicable):