Reversing the C64 Bubble Bobble RNG
SMRTR summary
Boop-boop bubbles and quirky computer code collide in the world of Bubble Bobble, the beloved Commodore 64 game. A dedicated fan and graphics artist, Davide Bottino, set out to update the game's visuals to match the arcade original. But what began as a simple sprite swap soon revealed the game's hidden secrets.
Digging into the game's code, they uncovered a fascinatingly flawed random number generator. This digital dice determines which power-ups appear on each level, but it's far from truly random. The shoe power-up, for instance, shows up suspiciously often on level one.
"It looked a lot like a Linear Feedback Shift Register," the investigator notes, explaining the game's pseudo-random system. This outdated method, combined with predictable player behavior, results in only 10 possible starting seeds for the game's randomness.
The investigation even spawned a custom-built emulator to crack the power-up code. The results? A delightfully deterministic system where each level has a dominant power-up appearing 50% of the time, following a simple pattern that wraps around every 16 levels.
SMRTR provides this summary for quick context. The original article belongs to Lobsters.
Read the original article