1985 · Nintendo

Balloon Fight

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/nes/balloon-fight with me to Gold.

Every phase the game stores, drawn from its layout tables, and the opening of Balloon Trip, which is the same in every game.

01 · The twelve phases and the bonus round

Every phase, drawn from its layout record

Twelve phase layouts and one bonus round, and then the order repeats from phase 4.

The page builds each picture from the game's own tables, the way the routine at $D293 builds the screen; an address such as $D293 is a numbered place in the console's memory, written in hexadecimal (base 16). The page uses the lists of blocks for the platforms, the clouds as 4 by 4 tiles (a tile is a square of 8 by 8 pixels), the propellers as 3 by 3, stars wherever a cell is blank, and the palette, the set of colours, for the phase's group: the colours change every four phases. The birds stand where their list puts them, in the colour their type gives, and the player waits at the left. The pictures were checked against the emulator's own screen for all sixteen layouts, and every cell below the status bar matches (work/test_phases_vs_emulator.js). A cell is one square of the screen's grid of tiles. The stars twinkle, so a star's cell counts as a match whichever of its twinkling pictures it shows. The pictures use the palette of jsnes, the emulator the kit runs.

The order is phases 1, 2 and 3, a bonus round, 4, 5 and 6, a bonus round, 7, 8 and 9, a bonus round, then 10, 11 and 12 and a bonus round. After the fourth bonus round, the layout index goes back to 4 ($F358). So phase 13 is phase 4's screen with faster birds, and the game cycles through phases 4 to 12 and their bonus rounds for as long as the player lasts. Phase 9 is phase 4 with two propellers added, and phase 12 is phase 6 again.

PhaseCloudsPropellersBirdsPlatformsRecord

02 · Balloon Trip

The opening of Balloon Trip is the same every time

The first 17 seconds of Balloon Trip come from a 122-byte list, and from the code that follows it. Only after that do the balloons and sparks come at random.

The fixed opening ($C4AD), read the way Balloon Trip reads it ($C3C9), from left to right. Every 8 pixels of scrolling, one run reads bytes until a 0: each byte before it puts a balloon (green) or a spark (white) at the left edge, at a height the byte gives. The table of generators ($C3BF) keeps this reader for 63 runs, but the list fills only 58, and nothing sends the reader back to its start. So the last five runs, shaded, read on into the code after the list ($C527), and its bytes become six sparks and a balloon. Then the random generators take over. Press a balloon or a spark to see its byte.