Was the Original Super Mario Bros Only 40 KB (While Modern Screenshots of One Frame Are 283 KB)?

In October 2019, the following post appeared on Reddit’s r/gaming, claiming that the original Nintendo Entertainment System (NES) title Super Mario Bros. was 40 KB (kilobytes) of data, and the appended modern screenshot contained a comparative 283 KB of data:

Titled “Let that sink in,” black text on a screenshot of the classic game read:

The entire Super Mario Brothers game was only 40 kilobytes. This image is 283 kilobytes.

In typical internet custom, the top tier of comments were consumed by discussion over pictures of a freestanding pedestal sink in a doorway. But underneath that, one user commented:

so the image is wrong two times!? ​ the game was 31kb and not 40 and the image isn’t 283kb either.

We initially did a reverse image search to locate iterations of the image and claim, and notably, none of the images were 283 KB. It was possible the original image was, but TinEye versions of it typically were between 38 and 52 KB:

So on that count, the second part of the claim was unlikely, if not entirely false. We downloaded the image with the post, and it appeared to be 91 KB in total. Image size in kilobytes is typically a factor in resolution and printing, but less so for applications like sharing images on social media:

Typically images will be supplied as JPEGs, and an A4 (210mm x 297mm or 8¼” x 11¾”) image at 72 [pixels per inch or ppi] will create a JPEG of approximately 500kb or half a megabyte. Remember though — to use that image in print we need the image to be 300 ppi, and at that resolution the JPEG will be around 3.5 Megabytes.

A far earlier thread about the 40 KB size of Super Mario Bros. was shared to r/gaming in November 2010. In January 2017, a version of the claim asserted that the image appended was 410 KB, and the game was 31 KB. The first image was shared to r/gaming in December 2017, with a similarly non-descriptive title (“Sit on that thought for a minute”):

But at some point, moderators tagged the previous post with a “false info” badge. The first two comments noted:

Actually, this image is 38.2KB, but that’s none of my business.

because it was reposted compressed multiple times

Subsequent users joked that eventual reposts would further degrade the image:

Another user observed that 1980s video games were designed around the limits of gaming systems and peripherals of the day:

NES graphics and sounds are much more space efficient than the modern equivalent. They couldn’t do nearly as much, and old systems had to design their graphics and sounds around those limitations.

In any event, the “modern day” aspect of the claim wasn’t explicitly accurate — it’s possible the original image rendered at 283 KB, but most extant versions we located were in the 38 KB to 52 KB range and not rendering at nearly that high a resolution. But was the original Super Mario Bros. game really 40 KB as the meme claimed?

As it turns out, that claim too was well-traveled in its own right, although its details varied. A Quora user in an undated post asked fellow users in the “video games” topic how it was possible the title was so small relative to modern digital data:

Super Mario Bros. game was just 31 Kilobytes. How’s that possible?

Several answers to the question were added in May 2016, making the claim at least that old. In the first answer (which appeared to be most upvoted), a user linked to a December 2015 coding blog post containing a somewhat similar assertion — possibly the original. It included a very similar screenshot of the game Super Mario Bros., and a similar statement to the one in the meme:

The below image is a 5.9kb PNG file, while the JPG image is 106kb

Directly beneath the image, a caption of sorts said:

Since this image has lots of duplicate pixels (the blue sky background) compressors like PNG do a better job than their block-based JPG counterparts.

The post itself explained in-depth how early video game developers managed to create multi-level games while working within the limitations of consoles and television sets in the 1980s. The gist of that explanation was in a sub-heading titled “Sprite Sheets,” which explained how “tiling” of repetitive imagery (such as skies or bricks) built much of the imagery older gamers remember:

Sprite sheets contain small tiles of graphics, that are re-used over and over again. For example, below is a remake of the original super mario sprite sheet: It’s not the exact original sprite sheet, but you can get a sense of the small blocks of data that can be use over-and-over again. Each small 16×16 pixel square represents a “tile” and artists would string these together to create the actual levels. The levels themselves, just became a giant 2D array of indexes into the sprite sheet … So with concepts like tile-sheets and sprite-sheets, we can use a small set of images to create large scenes & worlds. This is generally how most games work. Even 3D games will have a set of common textures that are applied multiple times and places throughout the game itself.

After adding that the comparison was less intuitive than it seemed (or, in its words, “apples vs. dragonfruit”), the site explains that video game developers inherently approached image compression differently than people creating images, and that the compression functionality applied to such files:

From the game side, you start with a small set of re-usable tiles, and index them to build up your larger image, we can do this, because we know how the game is going to be made. On the other side, JPG/PNG/WebP just tries to compress the data it can find in local blocks, without any real desire to match repeated content. Image compression is clearly at a disadvantage here, since they don’t have prior knowledge of their data space, they can’t really make any expectations about it.

All of that background was useful in understanding the underlying comparison, but it didn’t go into the file size of the game itself in kilobytes. A 2014 listicle of “Mario facts” also contained a similar claim about images rendering on the page versus the file size of the original NES version of Super Mario Bros.:

Considering when the game was originally made, it’s hardly surprising that the original file size for Super Mario Bros. was only 32 kilobytes–less than any of the pictures on this page!

But that assertion wasn’t supported by an included citation. A 2015 article on the site Warped Factor about Mario facts claimed:

The capacity of that cart was 256-kilobits. Yep, the whole game fitted on a tiny 256-kilobit cartridge. If you don’t know your bits from your bytes that transfers to 32 kilobytes. The image of the cartridge above is 76 kilobytes, meaning you would need three of those cartridges to store it on! … So with just 246-kilobits to play with there was a huge amount of recycling going on in Super Mario Bros. The clouds and the bushes are the same sprite coloured differently, the outside of Bowser’s castle is a combination of the smaller castle sprites, and many of the sound effects serve duel purposes, including descending a pipe/getting smaller.

On Wikipedia’s NES console page, a section about the range of game file sizes, but only cited the console’s RAM. The range for most games was described as 128 to 384 KB, but another title (Galaxian) was listed as totaling 8 KB:

The NES contains 2 kB of onboard work RAM. A game cartridge may contain expanded RAM to increase this amount. The sizes of NES games vary from 8 kB (Galaxian) to 1 MB (Metal Slader Glory), but 128 to 384 kB is the most common.

In an undated interview with developers, Nintendo employees established that the maximum cartridge capacity was 256 KB, and developers aimed to come in at 100 KB short of that to account for bugs:

“Usually you would leave about 100 bytes as a precaution against bugs that might need to be fixed, but we were reaching the end of development and there didn’t appear to be any bugs, so we started using up the leftover space, and at the end they said, “There are eight bytes left, so is there anything you want to put in?” and (looking extremely happy) I answered, “I really wanted to put some blocks here!” (laughs)”

In 2015, Gamasutra provided the original cartridge file size as 40 KB, and Gigazine did a deep-dive into how the 40 KB size was achieved in a 2018 item. The same figure was referenced by retro gaming enthusiasts in a 2013 forum discussion (“the original is just 40kB if I remember things correctly [32kB of data and 8kB of graphics]”), and the 40 KB figure appeared on a video game “vault” site.

At around the same time the October 2019 r/gaming iteration of the meme appeared, YCombinator users discussed the claim that the original Super Mario Bros. was 31 KB. That thread’s top comment noted:

No, no, no.

1. Super Mario Bros. is 40KB (PRG ROM is 32KB, and CHR ROM is 8KB). That said, I suppose if you were to compress the ROM, you probably would end up with value like 31KB.

Ensuing discussion debated the realism of analogies made in different versions of the same claim from the perspective of developers, many taking issue with the linked article (also linked above.)

Claims that the original size of Super Mario Bros. were 31, 32, or 40 KB compared to modern screenshots of the game being 238 KB (or 410 KB) were, by all accounts, presented in a misleading way. Most of the screenshots were between 38 KB and 52 KB, although it was possible an original version was larger and had better resolution. Many blogs and listicles repeated the 31 KB or 40 KB numbers as the original size of the game, and it seemed likely the original was 32 KB or 40 KB depending on the inclusion of graphics. Original NES cartridges maxed out at 256 KB, and at least one title was as low as 8 KB. As such, decontextualized was the best rating for the claim’s variable benchmarks and the reality of the image’s data as presented on social media — particularly Reddit.