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.

Why the bubbles are characters and not sprites, and one frame rebuilt from memory.

01 · The picture

Bubbles are characters, redrawn into fresh glyphs every pass

The eight sprites go to the two dragons and six enemies. Everything else that moves is drawn by rewriting the character set.

what the cells show now
AND the mask
OR the picture
six new glyphs

The renderer's merge, done by this page with the pictures and masks at $8000-$9ADF, over round 1's wall tile. A picture is 24 pixels wide and 16 high, stored as three columns of 16 bytes, one column per character cell. Each picture exists in four versions shifted two pixels apart, which is how a bubble moves in steps finer than a cell.

Up to eighteen objects are alive at once: bubbles, the letters, shots, flames, the Barons. Every pass, $E90E hands each object nine unused character codes, starting at $5E. For each cell the object touches, $E7CF reads the glyph already on screen there, masks the object's shape out of it, ORs the picture in, and writes the result as one of the new glyphs. Then it puts the new character code into the screen cell. A bubble passing in front of a platform is therefore a set of glyphs that are part platform and part bubble.

The game keeps two screens and two character sets and draws into the pair that is not on display. The raster interrupt at $072E switches $D018 between them. Before drawing, $1853 repairs the hidden screen from a clean copy of the round kept at $8B00, restoring only the cells that objects covered two passes earlier.

One frame of round 1, rebuilt from memory by the site's model of the video chip from a recording of the registers and RAM. Compared with the emulator's own picture of the same frame, all 104,448 pixels match. The bubbles are characters $5E and up; only the dragon and the three robots are sprites.