Flip-Screen
The term Flip-Screen, sometimes also Flick-Screen, refers to a display concept in which the game world of a computer game is divided into equally sized, rectangular areas, of which exactly one is displayed on the screen at any given time and traversed by the player character.
General/Definition[edit | edit source]
If the game world of a computer game is so large that it cannot be displayed in its entirety on the screen, the display must be limited to a relevant section — usually the area in which the player-controlled character is currently located. Movements of this character within the game world can then be represented on the screen in two different ways:
- By scrolling, that is, the game world is moved in small increments — typically pixel- or character-by-character — while the player character remains in a central position on the screen. The character may move only at the edges of the game world toward the edge of the screen, which in this case coincides with the boundary of the game environment.
- Alternatively, the game world is divided into equally sized, rectangular areas (“screens” or “rooms”), the size of which is chosen so that they, usually along with supplementary information about the game status, fit on the screen. Exactly one fixed position is always displayed within these areas, while the player-controlled characters and other objects can move within them. If the character leaves the currently displayed area, for example by crossing its top, bottom, left, or right edge, the screen switches to the newly entered room and displays this room instead.
Compared to scrolling, the second method, known as “flip-screen,” has the advantage of requiring significantly less processing power. It is therefore widely used on 8-bit systems, especially for computer games with two-dimensional game worlds. Hybrid forms also exist, where, for example, part of the game world is displayed using scrolling and the rest using the flip-screen method.
The gallery below shows, on the left, an example of the game world of the second level in the game "Equinox". For better orientation, the illustration includes a grid and horizontal and vertical spatial coordinates. The game world consists of 16 screens arranged in a grid 6 rooms wide and 4 rooms high; not all spaces in this grid are actually occupied by screens. On the right is an animation from the game in which the player-controlled, spherical cleaning robot cyclically traverses the central rooms with coordinates C2, D2, D3, and C3; during this patrol, the screen changes each time the robot crosses the edge of the currently displayed section of the game world.
![]() |
Examples of Flip-Screen in C64 Games[edit | edit source]
The table below documents a number of games that use the flip-screen display. The size of each game world depends on the number of screens (second column of the table) and, secondly, on the dimensions of the grid within which the screens are typically placed (third column). Not all spaces within this grid necessarily need to be occupied; for example, in the game Elidon, only 300 of the 340 grid spaces are filled. If the game world is intended to have a structure that deviates significantly from a rectangular shape, the deviation is even more pronounced; examples of this are the games Cauldron II (a castle with slender towers occupies 128 of 234 spaces) and Antiriad (a volcano with a pointed peak fills only 69 of 210 spaces).
Although this list is not exhaustive, it allows for a rough chronological classification of the games that use the flip-screen display on the C64: The majority of the programs listed here date from 1985 and 1986 in roughly equal proportions. Exceptions include the game "Aztec", which was released for the Apple II in 1982 and ported to the C64 in 1984 (the game world in this game, a temple with 64 chambers, is still very monotonous and contains numerous bugs), as well as the games "Shamus Case II" and "Quest for Quintana Roo", also released for the C64 in 1984, whose game worlds consisted of 39 and 50 screens, respectively. However, the screens are still relatively manageable and can only be traversed along a small number of predetermined paths. A special case is the game "Stormbringer", released in 1987, as it is the fourth game in a series and therefore uses the same display concept as its predecessors, which were released in 1986.
| Game | Year | Number of Screens | Grid of the Map | Screen Size | Video Mode | Room Number Encoding | Multiple Rooms | Special Features |
|---|---|---|---|---|---|---|---|---|
| Antiriad | 1986 | 69 | 15x14 | 320x128 | Text monocolor/ multicolor | Room=0..68, mostly numbered line by line | — | Some lines repeat endlessly when they extend beyond the side margins |
| Arac | 1986 | 100 | — | 304x168 | Bitmap monocolor | Room=1..100, freely numbered | — | Spaces are not arranged in a grid, but freely positioned |
| Arc of Yesod | 1985 | 256 | 16x16 | 256x168/x176 | Text monocolor | x-coordinate 0..15, y-coordinate 4..15 and 0..3 | — | The uppermost levels of the labyrinth have y-coordinates 4-15, the levels below have y-coordinates 0-3. The surface of the planet Ariat repeats endlessly when crossing its lateral edges. |
| Aztec | 1984 | 64 | 8x8 | 320x168 | Bitmap monocolor | Room=0..63, numbered line by line x=0..7 (in Bit 0..2), y=0..7 (in Bit 3..5) |
— | Screens placed one above the other overlap in a strip 8 pixels high |
| Cauldron I | 1985 | 63 | — | 320x160 | Text multicolor | Rooms unevenly distributed across 4 underground cave systems | — | The game also features an overworld with horizontal scrolling. |
| Cauldron II | 1986 | 128 | 9x26 | 320x160 | Text multicolor | Room=0..127, mostly numbered line by line | — | Room 52 is to the right of room 115 |
| Elidon | 1985 | 300 | 17x20 | 264x184 | Bitmap monocolor | x-coordinate 0..16, y-coordinate 0..19 | — | — |
| Equinox | 1986 | 8x 16 | 2x8 / 3x6 / 4x4 / 5x4 / 6x4 / 8x3 | 256x144 | Bitmap monocolor | Level=0..7 (in bit 4..6), room=0..15 (in bit 0..3) | Landfill in room (0,4) accessible from every level | Each level consists of 16 rooms numbered in a row, with the first room in the first row not necessarily being on the far left |
| Finders Keepers | 1985 | 21 | — | 160x160 | Text monocolor | Rooms are freely and not consecutively numbered | — | The game also features two scrolling labyrinths |
| Firelord | 1986 | 512 | 16x32 | 256x152 | Bitmap monocolor | Room=0..511, numbered line by line x=0..15 (in Bit 0..3), y=0..31 (in Bit 4..8) |
— | Room 047 appears to the left of room 048, not quite on the right in the next higher line |
| Friday the 13th | 1985 | 24 | 4x6 | 256x128 | Bitmap multicolor | x-coordinate 0..3, y-coordinate 0..5 | — | The landscape repeats itself endlessly as you cross the edges |
| Ghettoblaster | 1985 | 252 | — | 288x96 | Text multicolor | Room=1..252, freely numbered | Room 247..252 | "Stoney End" appears endless because rooms 247/249/251 and 248/250/252 repeat cyclically. Most streets are circular and can therefore be traversed endlessly. |
| Heartland | 1986 | 254 | — | 256x144 | Bitmap monocolor | Rooms unevenly distributed across 5 levels | — | The labyrinths of each level repeat endlessly when the edges are crossed |
| In Search of The Most Amazing Thing | 1983 | 3,062,500 | 1,750×1,750 | 320×200 | Bitmap monocolor | x-coordinate A..Y:1..7:1..10, y-coordinate 1..25:1..7:1..10 | — | Orientation is only possible with the help of navigation devices |
| Knight Tyme | 1986 | 25 | 7x5 | 256x152 | Bitmap monocolor | Room=0..24, numbered row by row (first row spaceship, next four rows each a planet) | — | Room 24 only appears once the time machine is found, and then replaces room 6 |
| Nodes of Yesod | 1985 | 256 | 16x16 | 256x168/x176 | Text multicolor | x-coordinate 0..15, y-coordinate 0..15 | — | The lunar surface repeats itself endlessly when crossing the lateral edges. |
| Quest for Quintana Roo | 1984 | 40 (Level 1) 45 (Level 2) 50 (Level 3) |
10x7 | 312x152 | Text extended color | Room=1..50, numbered column by column | — | Entry via one of 10 temple entrances Room change only possible from top to bottom via slides |
| Robin of the Wood | 1985 | 320 | 16x20 | 320x144 | Bitmap multicolor | x-coordinate 0..15, y-coordinate 0..19 | — | The forest area repeats endlessly when crossing the side edges |
| Sabre Wulf | 1985 | 256 | 16x16 | 256x176 | Bitmap multicolor | Room=0..255, numbered line by line x=0..15 (in Bit 0..3), y=0..15 (in Bit 4..7) |
— | — |
| Shamus Case II | 1984 | 39 | 9x13 | 304x184 | Text multicolor | Room=0..38, numbered line by line | — | Vertical falls sometimes lead into lateral spaces |
| Spellbound | 1986 | 50 | 8x7 | 256x152 | Bitmap monocolor | Room=1..49, numbered line by line Room 0=elevator |
The elevator (room 0) appears to the left of each floor | — |
| Spiky Harold | 1986 | 57 | 16x4 | 256x160 | Bitmap monocolor | Room=0..56, numbered line by line x=0..15 (in bit 0..3), y=0..3 (in bit 4..7) |
— | Room (0, 0) is again to the right of room (3, 8) |
| Starquake | 1985 | 512 | 16x32 | 320x144 | Bitmap monocolor | Room=0..511, numbered line by line x=0..15 (in Bit 0..3), y=0..31 (in Bit 4..8) |
— | Adjacent screens overlap in a strip 64 pixels wide |
| Stormbringer | 1987 | 52 | — | 256x152 | Bitmap monocolor | Room=0..51, mostly numbered line by line | Room 2 | Room 2 appears 5 times consecutively, therefore no objects can be placed in this room |
| Willow Pattern | 1985 | 64 | 8x8 | 256x192 | Bitmap multicolor | Room=0..63, numbered line by line x=0..7 (in Bit 0..2), y=0..7 (in Bit 3..5) |
— | — |
Examples of hybrid forms that combine scrolling and flick-screen display are the following C64 games:
- Finders Keepers: The castle garden and the dungeon use character-by-character scrolling, while all other rooms of the castle are displayed via a flick-screen.
- Cauldron I: The above-ground world is scrolled horizontally pixel by pixel, while the underground spaces use a flick-screen.
- Pitfall II: Horizontally, the screen switches between a total of 8 columns using a flick screen; vertically, it scrolls pixel by pixel.
The animations in the following gallery illustrate these hybrid forms using typical scenes from the respective games, some of which have been shortened (to save memory).
![]() |
![]() |
![]() |
Programming[edit | edit source]
The following section introduces common programming techniques for implementing games with flick-screen displays. These techniques are illustrated with numerous animations, which often display additional information and memory contents on the right edge or in one of the right corners of the screen.
- In games with flick-screen displays, each screen typically has a unique number. This number can explicitly (by specifying the x- and y-coordinates) or implicitly (by sequentially numbering all screens in a rectangular grid) define the screen's position within the game board. For example, in the C64 game "Elidon" Each screen is explicitly located by an x-coordinate (in the range 0..16) and a y-coordinate (in the range 0..19). In the games "Firelord" and "Starquake", however, the screens are arranged in a rectangular grid of size 16x32 and numbered from 0 to 511; the numbers of adjacent screens differ by 1, those of screens stacked on top of each other by 16 (i.e., by the number of screens per row). Alternatively, the rooms can also be numbered freely; when transitioning between screens, the number of the newly entered screen must then be determined from the direction of movement and the number of the previous room — for example, by looking it up in a list of neighborhood relationships. These relationships do not necessarily have to be bijective; instead, several screens can, for example, have the same left-hand neighbor room. Examples of such an organization of the game world include the C64 game "Ghettoblaster" and the underworld of the game "Cauldron I".
![]() |
![]() |
![]() |
- The room number usually refers to a compressed representation of the graphic elements that together form that room. This intermediate step, which typically constructs all screens from a limited number of mostly identical and rectangular elements, significantly reduces the storage space required for the game world. However, it can make the screen display appear monotonous and boring if the number of available elements is too small. Some games address this risk by allowing the elements to be displayed in different colors or mirrored. For example, in the screenshot from "Robin of the Wood" (middle image in the gallery below), the tuft of grass highlighted four times appears a fifth time (to the right of the rightmost highlight), this time mirrored. In the game "Starquake", numerous graphic objects can be found in different colors (see the penultimate gallery in this section).
![]() |
![]() |
![]() |
- In some games, individual lines of screens appear endlessly because the game character, when crossing the left or right edge, re-enters the game board at the same level on the opposite edge. This behavior can be found, for example, on the top level of the C64 games "Nodes of Yesod" and "The Arc of Yesod", in the forest area of "Robin of the Wood", and on some levels of the game "Antiriad". Occasionally, the game board can also be traversed endlessly in a vertical direction, for example in the games "Heartland" and "Friday the 13th".
![]() |
![]() |
![]() |
- Some games reward exploring as many screens as possible, typically with bonus points for first entering a room or by accumulating a percentage of the adventure. The score is calculated internally using a statistic, usually a bitmap, in which a bit is set for each room visited. Examples of such a scoring mechanism can be found in the games "Firelord", "Starquake", and "Elidon". The score in "Robin of the Wood" is also determined in this way, with a bit being set in a bitmap for each group of two adjacent rooms.
![]() |
![]() |
![]() |
- Significant differences between the individual games are evident in the design of the room transition. The range extends from an ugly white flash of the entire screen in the game "Stormbringer" to a separate switching of sprites and background in "Elidon" to the subtle but lengthy fade-in and fade-out in "Firelord" — shown in slow motion in the following gallery.
![]() |
![]() |
![]() |
- If items can be collected within the game world, their locations are usually recorded in a table. Each item has its own row in this table, which stores not only the number of the room it is in, but also its exact position within that room (typically in the form of x- and y-coordinates). Items that have already been collected are indicated, for example, by an invalid room number (left and middle animations in the following gallery). In the special case where there is exactly one item to be collected in each room and it cannot be placed elsewhere, the room number does not need to be stored (right animation). Instead, one table row per room is sufficient, in which, for example, a flag indicates whether the item has already been found. An additional table column can contain the object type.
![]() |
![]() |
![]() |
- The game world that the player encounters at the start of the game and enters with the game character does not necessarily have to be fully developed at that point. Even the static elements, such as the objects to be collected, are sometimes only placed after entering the screen where they can be found. For example, in the game "Ghettoblaster", there are 10 music cassettes to collect in a sprawling city. The screens in which they are located are fixed at the start of the game, while the exact front door behind which they are waiting is only determined when the player first enters the respective screen. In the following gallery, the first two animations start from the exact same save file. However, in the second animation, the character Rocking Rodney sets off to the left 20 milliseconds later than in the first animation. Because the internal timer acts as a random number generator, the cassette is suddenly behind the left of the three front doors instead of the right one. Similarly, in the game "Aztec", it's only after clearing away a pile of junk that it's determined whether there's an object underneath that can be collected (right animation). Two games starting from the same saved game state can therefore have completely different outcomes.
![]() |
![]() |
![]() |
- An interesting peculiarity can be found in the game "Starquake": Here, the individual screens are actually 256 pixels wide, but are extended on both sides by 32 pixel columns from the left and right adjacent screens, so that each screen ultimately has a total width of 320 pixels. To make this trick less noticeable, the corresponding columns are often given different colors.
The reason for this phenomenon is likely that "Starquake" was originally developed for the ZX Spectrum (with a screen resolution of 256x192 pixels) and only later ported to the Commodore 64. The successor, "Firelord", which was also first developed for the ZX In contrast, the screens on the Spectrum and later on the Commodore 64 are only 256 pixels wide on both platforms.
![]() |
![]() |
![]() |
- Another special feature of the game "Starquake", as well as its successor "Firelord", is that when leaving a screen, the type and position of the enemies there are temporarily saved, so that the player finds them unchanged upon returning directly. Only when entering a third room is this temporary save overwritten, so that when returning to the first screen, the enemies have to fly in again (left animation of the following gallery). Starquake thus represents a compromise between games where enemies are always found in the same locations in each newly entered room, such as Antiriad, Spiky Harold, Cauldron I, and Cauldron II (middle animation), and games where the location, direction of movement, and speed of all enemies are fixed, so that they move independently of the player character's location within the game world, such as Ghettoblaster or Robin of the Wood (right animation).
![]() |
![]() |
![]() |
- Usually, the room number is the only information that stores the player character's global position within the game board. If you want to quickly traverse a game world (for example, to quickly assemble a map from screenshots), you can enter hard-to-reach rooms by using the debugger to overwrite the current room number with the number of the desired room. If the player character then loses a life or briefly moves to the adjacent room, they will subsequently find themselves at the desired location. Occasionally, however, this approach can result in the player character becoming stuck in an obstacle.































