Corrupted Memory
May 27, 2019 in Screenshots by Tom
Hi folks! I bring you grave news. 🙁
Lenna’s Inception has ğ̸̢̛͍̠̈́̎̾̒̓̒͐͋̾̈̅͂͠litched out. But there’s still hope! Each time you defeat a boss, you’ll restore a corrupted memory bank–a short cutscene revealing a new part of the story.
Here’s a preview of one:
There are eight to find in toţ̸̗̼͇̜̞̩͙̝̜̫̯̣̥̼̃̎̓̍̂͊̓̉̃͌al. It’s only by restoring all of the corr̶̡̲̺̣̪̻̱͉͎̪̠̼͍͎̉̔̑̀́̄̓̑u̷̖͈̜̼̮̬̝̩̭͖̲̓̉͆̋̉̆͆̍̽͘͠ͅṗ̷̢̨̡̼̬͎̣̗̫͎̻̣̼̀͜ͅted memory banks that you’ll learn the origin of the glitch and be able to fix it.
(The game is fine̵͍̓, don’t worry. We’re aiming to release a big content patch for beta testers in the summer, at which point 10 out of 11 bosses and almost all cutscenes will be in the game.)
Curious how these glitch tiles are made? Let’s zoom in on those tiles in the middle:
On the left is the tile in its natural state, and on the right is the same tile, glitched.
In Lenna’s Inception we generate authentic-looking glitch tiles by reading from the wrong position in the tilesheet. A tilesheet is a big old grid of individual graphics, like this:
In a typical tile-based game, each grid space in an environment has an index (a number) that gives you its position in the tilesheet. Usually that position is sent straight off to the GPU for rendering the tile to the screen, but in Lenna’s Inception, if the tile is glitched, it first gets shifted 8 pixels in each direction.
The result is that the ‘wrong’ pixels get drawn to the screen. Since the tiles are 16×16, they’re being shifted by 8, and the Game Boy hardware supported 8×8 tiles, what gets drawn to the screen is vaguely reminiscent of Game Boy glitches: a random-looking jumble of 8×8 sections.
There are a few other effects we use as well. One of them is simply not clearing the screen buffer between frames. Where there is transparency in glitched tiles, the previous frame shows through. This can make it look like tiles are stretching, or like menus are showing through behind the environment. Sometimes it means the player character leaves trails!