1987 · Firebird

Bubble Bobble

This minisite was contributed by air, icyriver2023. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/c64/bubble-bobble with me to Gold.

Two sticks, the keys the game reads, and what each move costs in pixels and frames.

01 · Controls

Two sticks, and what each move costs in frames

The game reads both joysticks every other frame, inside the raster interrupt, and never the keyboard during play except for two keys.

MoveWhat happensWhere
Left, rightTwo pixels a step, 25 steps a second. A wall stops the step unless the player is above Y $2D or between two cells.$226B
UpA jump of 15 steps up the arc, 43 pixels in the running game. The player drifts sideways only when the stick leans the way the player already faces.$222B
Up, in the airWith up held, the game looks for a bubble under the player and starts the jump again from it: the manual's "bounce on the bubbles".$217A
FireA bubble, then eight passes of the main loop before the next. The bubble flies 64 pixels in eight passes, small for three, medium for three, full size from the seventh.$22E8, $7F53
Fire, when outA player with no lives rejoins on their own stick while a credit is left, with three lives in play and a score of zero.$052A
RUN/STOPPauses. The game waits for the key to go up, come down and go up again, with the round timer held.$7E80
QQuits: the sound stops, and 25 frames later the score table is back.$7EC1

The player's routine runs on every other frame ($1CBD), so a step a call is 25 a second. The shoe item sets a flag that gives the player a second call on alternate runs: three steps in four frames.

Player 1 is the stick in port 2 and player 2 the stick in port 1 ($1CBD reads $DC00 and then $DC01). On the title page fire on either stick goes on to the score table, where 1 or 2 picks the number of players. The C64-Wiki says Space switches between one and two players; nothing in the code reads the Space key, and the jump height and the bubble's flight above were measured in the emulator from the round-start snapshot.