Submission #9076: DrD2k9's A2600 Kaboom! "maximum score" in 2:46:53.21

(Link to video)
Atari 2600
Kaboom!
maximum score
BizHawk 2.9.1
600019
59.9227510135505
14904
PowerOn
Kaboom! (1981) (Activision) [!].a26
Submitted by DrD2k9 on 5/18/2024 5:53:10 PM
Submission Comments

Kaboom!

The Mad Bomber is dropping bombs and it's up to you to put them out by catching them in buckets of water.

Game Basics

  • The Mad Bomber sweeps randomly left and right while dropping a series of bombs.
  • You play as the buckets of water at the bottom of the screen (starting with three).
  • This game uses the Atari Paddle Controller as opposed to the joystick.
    • Bucket position on the screen is tied to the analog value of the paddle controller.
  • Missing a bomb results in losing one of the three buckets (bottom first, then middle)
    • If all three buckets are lost, you lose.
    • Passing a 1000 point barrier (1000, 2000, 3000, etc.) adds a bucket to the stack if there are less than three.
  • There are 8 stages/groups of bombs
    • Once stage 8 is beaten, all subsequent stages are the same difficulty as stage 8.
    • At the end of each stage, the game pauses until the player pushes the button to continue into the next stage.
  • Both the number of bombs per stage and their point values for catching them increase as stages increase.
Stage# of BombsPoint Value/BombTotal Points for the stage
110110
220240
330390
4404160
5505250
6756450
71007700
815081200
  • The cumulative points through these first 8 stages is 2900. Each stage thereafter adds 1200 points.
  • At 10,000 points, the Mad Bomber's face changes from a scowl/frown to one of surprise due to him being impressed at your skill of play.
    • If a bomb is dropped and explodes, the Mad Bomber's face changes to a smile.
  • Once the score reaches 999,999 points, the game ends; the remaining bombs on the playfield stop and the buckets disappear.
    • Achieving the maximum score requires 238 complete rounds and a partial 239th round.

TAS Notes

  • The game offers two difficulties which are simply two different sized buckets. Easy has buckets that are twice as wide as the buckets in hard mode.
    • This run plays on hard mode using the narrow buckets.
  • The goal for this run was maxing out the score, not simply finishing the first 8 stages (which would be the minimum requirements for an any% run).

TAS Creation

Given that the control of this run is using a paddle/analog controller, manually entering all the values to catch each individual bomb would have been extremely tedious; so the run was almost exclusively made via bot.
I manually started the game and set the difficulty to hard mode in the first 2 frames. The rest of the input was created via bot.
Tracking the bombs was a bit of a challenge as they aren't sprites. Instead RAM was watched to see if a bomb was present in particular rows on the screen and then determined which horizontal position the bomb was at in order to move the bucket to the correct position. There are 256 possible horizontal positions that the bombs can be in, but they don't simply increase from left to right. Instead, the playfield is split into 8 vertical columns/regions. The RAM value of a bomb's horizontal position is divided by 8 and the value of the remainder determines which vertical region the bomb will be present. Within that region, the bomb position will vary depending on it's specific RAM value. Due to this indirect method of positioning the bombs, their horizontal values did not line up with the buckets' horizontal value (which do simply increase left to right); and thus, I couldn't just simply track the bombs 1-to-1 directly with the buckets.
I was able to create a bot that was able to track the bombs by first determining the region of the screen the bomb would be in, then determine if the bomb would be in the left or right half of that region; the narrow buckets only cover half a region. The wide buckets would likely be able to handle an entire region but I did not test this directly. Once the location was known, the bot then wrote the correct analog value into the input sequence in TAStudio.
While a few tweaks were needed in timing and movement to prevent a missed bomb, this was the basic bot approach for the whole run.
Once I believed I had the bot working, I set it to start running before going to bed. Thankfully upon waking, I found a completed run with no errors.

Human Comparison

I was able to find one video of a human actually reaching the 999,999 score (albeit with the wide buckets instead of narrow). https://www.youtube.com/watch?v=aeKiml6aL1w The player does miss bombs, and it takes about 30 minutes longer than this submission to achieve the maximum score.

nymx: Claiming for judging.
Last Edited by nymx 14 days ago
Page History Latest diff List referrers