TASVideos

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

Submission #5611: Mittenz's GBA Drill Dozer in 1:50:02.03

Console: Game Boy Advance
Game name: Drill Dozer
Game version: USA
ROM filename: 2308 - Drill Dozer (U)(Trashman).gba
Branch:
Emulator: Bizhawk 2.1.0 (x64): mGBA core
Movie length: 1:50:02.03
FrameCount: 394323
Re-record count: 149957
Author's real name: Michael Salino-Hugg
Author's nickname: Mittenz
Submitter: Mittenz
Submitted at: 2017-07-22 20:08:56
Text last edited at: 2017-08-11 16:07:36
Text last edited by: feos
Download: Download (160154 bytes)
Status: published
Click to view the actual publication
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:
Author’s Encode

(Link to video)

Drill Dozer (or Screw Breaker Gōshin Drillero as it's known in Japan) is a 2D adventure platformer developed by Gamefreak and released for the Gameboy Advance in 2005 and released to the Wii U virtual console in 2015. You play as Jill and her drill dozer. Jill’s dad is the leader of a gang of thieves. He was recently beaten up by a rival gang and had the red diamond Jill’s deceased mother left Jill stolen. With her dad out of commision it’s up to Jill to retrieve the diamond. Drill Dozer is one of 2 GBA games to ever be released with a rumble feature built into the cartridge (the other game being WarioWare Twisted).

Game Objectives

  • Emulation used: Bizhawk 2.1.0 (x64) using the mGBA core
  • Speed
  • Luck manipulation
  • TASing Tools: Scripthawk

Timing

1:50:05.075 is the final time for this Tas. This is from power on to the final button press prior to the credits starting. This is ~4:28 faster than turtle’s unpublished TAS from 2008.

RTA timing begins at selecting your game file and ends at the final punch on Croog. The RTA time for this TAS is 1:46:42.717. For reference this is over 20 minutes faster than the current RTA WR of 2:17:49 by MeowMix.

Movement:

Note: This game runs at fairly solid 29.865 fps thus all mentions of timing in this document will be in terms of 30 fps.

Dash:

A dash is performed by pressing A while crouched. This is the fastest form of movement with a max speed of 6 units per frame. During dash, Jill will not lose any height for the first 14 frames of the dash. Dashes can be cancelled by a pressing any direction other than down after 16 frames. This allows for dashes to be chained together and provides the fastest speed while on the ground. Dash can also be cancelled at any point by drilling. Dashes can also be chained together by drill and then cancelling the drill and performing another dash. If performed on the correct frame this is the same speed as chaining dashes using the previously mentioned method while moving to the right, and travels 1 pixel further while traveling to the left due to how the game rounds partial numbers.

Dash can also be cancelled into a jump at any point in the dash. Cancelling dash with a jump within the first 15 frames of a dash will provide Jill with 50% faster horizontal speed while in the air. Jumping out of dash while in the air will cause Jill to begin to fall with this additional horizontal velocity. It is worth noting that dash can not be cancelled if there is any object directly over Jill (this includes if the dash is in the air).

Drilling:

Drilling is the main gimmick mechanic of the game, it is Jill’s main means of dealing damage, interacting with objects, and moving on some levels. Drilling is performed by pressing and holding R or L. Throughout the game, the color red is associated with R and the color blue is associated with L. In each level there exists 2 higher gears Jill can collect. These gears both increase Jill’s damage output and the maximum period of time for which she can drill.

Drilling can be cancelled after 2 frames by crouching. We can “pulse drill” by repeatedly drilling and crouching in quick succession. This is the fastest way of outputting damage to low health blocks and enemies. Since you need to cancel the drilling with crouch, this technique will not work on blocks and enemies that pick Jill’s feet off the ground while being drilled. However, these blocks can be pulse drilled if a block that does not pick Jill up is in between Jill and the block that does pick her up.

Another interesting mechanic associated with drilling in “kick-back”. This occurs when opposite shoulder button is pressed while drilling. This sends Jill flying backwards (or upward when used with specific blocks). The higher the gear, the further and faster kick-back sends Jill.

Jumping:

The height of Jill’s jump is dependent on how long the A button is held. While jumping Jill is able to drill and maintains her horizontal air speed. Jumping can be cancelled on the first frame by interacting with objects with B (such as doors). The horizontal velocity of jumping is normally 2 units per frame. Bunnyhopping (jumping on the first frame after landing) has a horizontal velocity of either 3 units per frame or Jill’s previous horizontal velocity prior to the bunnyhop depending on which is faster. You can also gain increased horizontal air velocity prior from jumping out of a dash (3 units per frame), performing drill kickback in 2nd (3.2 units per frame) or 3rd (4.333 units per frame) gear, or taking damage from specific enemies such as the giant boulders in Kuru Ruins.

Swimming:

Swimming is performed by drilling the water. Drilling with R moves Jill forwards in the water. Drilling with L moves Jill backwards in the water. The player looking around while swimming backwards can cause visual glitches in the game as seen in the boss fight at the end of area 3-2 of this TAS. Pressing A while swimming will halt Jill’s drill and slow down her momentum faster than just releasing the drill.

Flying:

Flying is also performed by drilling. Drilling causes Jill to rise up in the air, and holding both drill buttons makes Jill maintain her height in the air. This movement is only used in the Metal City Skyline level of the game.

Dealing Damage:

Screws:

Screws in this game have a “health” and either decrease towards 0 or increase towards a max value based on how you drill them. This health changes every frame your drill is colliding with the screw and the value changes by the same amount as the current gear you’re in (1 in 1st gear, 2 in 2nd gear, 3 in 3rd gear).

Enemies and Blocks:

Damage only occurs while drilling an object, however this damage is not constantly dealt while the drill is running. There are 3 discrete events while drilling in which damage is dealt

Collision with object:

The frame after colliding with an object, damage is applied to the object equal the gear you are in at the time of the collision.

Shifting gears:

The frame after shifting gears, damage equal to the gear being shifted into will be applied to the object.

Passing set value on drill gauge:

This is the most complex triggering event. In memory there is a value ( at 0x11A0 in IWRAM for the US version) associated with how high the current gear is rev’ed. This value ranges from 0 to 0x7F for each gear. Damage will trigger every time this value passes a multiple of 16 (0x10).

Shifting gears can only occur when this value is at 0x3F and resets this value to 0. In 3rd gear after hitting the value 0x3F the drill hits a steady state where it move back and forth between 0x2F and 0x3F until released where it heads toward 0x7F on rev down. The rate of change of this value is dependent on the gear and the action being performed. The following link is a table of the rate of change per frame.

RNG Manipulation:

The camera-locked multi-enemy fights and many of the boss fights and have some RNG component to them. RNG can be manipulated by Jill’s position on screen and the duration and timing of Jill’s drilling.

screen-locked multi-enemy fights:

These fights appear in almost every level (multiple in some levels). As long as there are 4 enemy sprites on the screen (this includes dead enemy sprites) additional enemies will not spawn. Enemies spawn a set time interval of 12 frames provided there are few enough enemies they can spawn, and which side of the screen they appear on is partially RNG-based and partially dependent of what half to the screen Jillis on. Every room has a set number of enemies that need to be spawned before the player can progress

My approach to these fights were to minimize the amount of time 4 enemy sprite are on screen partially through RNG manipulation.

Stage Comments:

This game as 11 levels across 6 map locations. All map locations have 2 level except the prison location.

Skullker Hideout:

  • In the 5th room of this level is the first example of a proxy jump to skip part of the level. Normally you need to have a conversation with Gearmo and Grutch, break a block, and then ride a cycle based socket lift to make it up to the top platforms. However, by using 2nd gear kickback from drilling down on a spring enemy at the height of his jump, it is possible to make it to these platforms without doing any of that.
  • In room 6 is the first example of taking damage to save time getting past multiple enemies.
  • After obtaining 3rd gear it’s faster to backtrack the way you came then proceeding forward drilling through many enemies and obstacles.
  • Taking damage on the first missile of each cycle of the tank dozer mini-boss allows us to rev up jill’s drill cause the maximum amount of damage as early as possible.

Skullker Factory:

  • After getting 2nd gear, we manage to skip destroying a block using kick-back immediately while colliding with the top of the yellow block.
  • RNG was manipulated during the crane mini-boss to always spawn enemies in one of the following 2 patterns (empty, wheel, spring spring or spring, spring, wheel, empty). These are the fastest patterns for killing the enemies and making the crane robot vulnerable as soon as possible.
  • In the next room is another proxy jump which is the largest skip in the game. This is also the most difficult proxy jump in this speedrun. If gears are shifted too soon the spring enemy will die and the jump won't be possible. If Jill goes too high in the air prior to the last jump, the enemy on the upper platform with stop moving and shoot a bullet also causing this jump to fail.
  • Managing the health of the 2 tank dozer enemies and killing them both at the end of the first phase, skips a cutscene, and a slow 2nd phase.
  • Moving left after breaking the 3rd gear box, deloads the chandelier on the right. This resets its cycle and makes it possible to cross the gap as early as possible. No time is lost to moving left as you would have to wait to grab the gear anyways.
  • In the next room is a good example of bunnyhopping allows us to maintain the accelerated horizontal speed from the 3rd gear kick-back from the yellow block into our second jump.
  • Boss: Taking damage to destroy all the scorpion dozer's bombs is the fastest way for get through the bomb cycles of this fight. There is no RNG in this boss fight.

Art Museum:

Museum Vault:

  • RNG manipulation at fountain mini-boss for good EMP bomb location spawns.
  • RNG was manipulated to have crab mini-boss attacking with its right arm 1st cycle and having it as far right as possible. This allows for Jill to back up and get her drill as high a gear as possible while hitting the mini-boss to cause the most possible damage in the first cycle. RNG manipulated again 2nd cycle for Jill to end the fight as far right and at as high of a speed as possible while killing the enemy as early as possible.
  • Boss: Detective Carrie was manipulated to never use her boomerang attack until the 4th cycle as she cannot take as much damage when she does that attack.

Kuru Ruins:

  • There is a puzzle skip in the 3rd room where dash is used to avoid breaking several blocks on the way to getting get 2nd gear.

Sunken Ruins:

  • The submarine sisters Mini-boss has objectively the best music.
  • Small skip in room 14 by going against strong current.
  • There is a TAS only skip in the 16th room which skips a major portion of the block puzzle in this room
  • Boss: The giant fish boss on this level is highly RNG based. Each cycle begins with a phase where he randomly will spit either a rock or energy ball at you. Reflecting 2 rocks back at the boss will advance you to the next phase of the cycle where you need to avoid small schools of fish. At the end of this phase the boss in energy ball form appears in a random location on screen. The final phase of the cycle is a strong current pulling you into a large school of fish. It is faster to take damage during this phase. It takes 3 of these cycles to kill this boss.

Metal City:

  • There is a skip in the 3rd room of this level. Where we make and quick cycle on the moving platform by taking damage on the nearby spikes followed by using kick-back on a nearby item box to skip part of the level.
  • Boss: For the Detective Carrie boss fight, RNG was manipulated to try to get as low of a number as possible, and to beat Carrie with us passing the missile back and forth as quickly as possible to lower the count down faster. A graphic glitch where the missile is below the robot’s arm occurs here due to standing too close to Carrie and returning the missile too quickly.

Metal City Skyline:

  • Metal City Skyline is one of the shortest levels, and the only one with flying. At the end of the level Jill is sent to jail. Oh No!

Clink Prison:

  • At the start of this level you play as just the Drill Dozer which considerably changes movement. Alone the drill cannot dash or jump higher than the minimum jump height. We can however press B to become inanimate to avoid being detected by enemies and lasers.
  • By jumping and drilling down to collide with the ground at the very start of this video skips having to drill through all the robot suits blocking your way.
  • The first screen-locked multi-enemy fight in this level is unique in that the enemies can spawn at 3 different levels. By jumping at the right time we can delay the row of blocks above us from becoming tangible forcing enemies that were on the very top level to fall all the way to the bottom of the area where we can access them. Likewise we can damage boost off enemies while killing them to get access to the next level.
  • The “health” of the screw bombs from the mini-boss in this level are somewhat RNG-based. Scripthawk was used to monitor the health and attempt RNG manipulation.
  • Boss: The final phase always starts with the boss performing a punch from the side and followed by either another punch from the side or from above. The game was manipulated to give the punch from above as soon as possible.

Drill Missile:

  • This stage health management was critical. In the 3rd room, we can damage boost onto the platforms to skip cycles.

Croog's Doom Dozer:

  • At the end of the tank dozer, the 3rd gear kick-back from the drill is used to get the tank off the screen. This despawns it which saves time and reduces lag from not having to watch the tanks death animation.
  • Health management was critical on this stage too as damage boosts are used to get past all the lazer towers near the end of this
  • Boss: Croog can randomly shoot more than 3 shots at the beginning. The AI was manipulated to allow for the final punch to connect as early as possible.

TASing tools

A drill dozer Scripthawk module was created and used throughout this TAS to monitor and understand important memory values.

Other Comments

Thanks to PekopanTAS, turtle, and Memory for having documented a large number of the skips and glitches used in this TAS. Thanks to Isotarge, The8BitBeast, and TiffanyJane for watching my WIPs and encouraging me to start TASing.


Mothrayas: Judging.

Mothrayas: It's a long run, but keeps a pretty decent amount of action going throughout for most of it. Viewer response was quite positive. Accepting to Moons.

feos: Publishing...