– How is it that the first Mario Bros. game was about 32kb, but a JPEG of the game is over 300kbs in 2023?

635 views

I’ve seen the meme/info-graphic that the original file for Mario Bros. was approx. 32kb, but a picture file would be 10x more.

I’ve googled it and looked, but it seems to have some nebulous answers. Could someone please ELI5?

In: 26

57 Answers

Anonymous 0 Comments

Imagine you build an app with a single line

Calculate 1/9

It’s 0.1111111….

Now try to save this neverending number on a disk.

Anonymous 0 Comments

Imagine you build an app with a single line

Calculate 1/9

It’s 0.1111111….

Now try to save this neverending number on a disk.

Anonymous 0 Comments

Imagine you build an app with a single line

Calculate 1/9

It’s 0.1111111….

Now try to save this neverending number on a disk.

Anonymous 0 Comments

I know its a bit of a side answer but read about raster vs vector graphics as similar idea.

Raster is all the pixels individually.
Vector is a set of instructions on how to draw the image.

Draw blue from 1 to 100
Vs
Cell 1 blue
Cell 2 blue
Cell 3 blue
….
Cell 100 blue

In gaming there is also sprites, for example the boxes, or the background. Store it once, and then call it over and over.

A raster image stores the detail for every box every time. Using sprites says that is a box draw it for me.

Its about using code to describe and image instead of just storing all the image information.

If you want to see how crazy you can go look up 64k demos.

They are 64k files that render a video with music, visuals all generated by code.

Anonymous 0 Comments

I know its a bit of a side answer but read about raster vs vector graphics as similar idea.

Raster is all the pixels individually.
Vector is a set of instructions on how to draw the image.

Draw blue from 1 to 100
Vs
Cell 1 blue
Cell 2 blue
Cell 3 blue
….
Cell 100 blue

In gaming there is also sprites, for example the boxes, or the background. Store it once, and then call it over and over.

A raster image stores the detail for every box every time. Using sprites says that is a box draw it for me.

Its about using code to describe and image instead of just storing all the image information.

If you want to see how crazy you can go look up 64k demos.

They are 64k files that render a video with music, visuals all generated by code.

Anonymous 0 Comments

I know its a bit of a side answer but read about raster vs vector graphics as similar idea.

Raster is all the pixels individually.
Vector is a set of instructions on how to draw the image.

Draw blue from 1 to 100
Vs
Cell 1 blue
Cell 2 blue
Cell 3 blue
….
Cell 100 blue

In gaming there is also sprites, for example the boxes, or the background. Store it once, and then call it over and over.

A raster image stores the detail for every box every time. Using sprites says that is a box draw it for me.

Its about using code to describe and image instead of just storing all the image information.

If you want to see how crazy you can go look up 64k demos.

They are 64k files that render a video with music, visuals all generated by code.

Anonymous 0 Comments

In addition to what’s already been said, a JPEG is good for things like photos where there’s a lot of different colors. For something with a small fixed color palette like old school pixel art, a PNG would be much more efficient. Especially if it’s exported with a limited color space to what was available for the NES.

Anonymous 0 Comments

In addition to what’s already been said, a JPEG is good for things like photos where there’s a lot of different colors. For something with a small fixed color palette like old school pixel art, a PNG would be much more efficient. Especially if it’s exported with a limited color space to what was available for the NES.

Anonymous 0 Comments

In addition to what’s already been said, a JPEG is good for things like photos where there’s a lot of different colors. For something with a small fixed color palette like old school pixel art, a PNG would be much more efficient. Especially if it’s exported with a limited color space to what was available for the NES.

Anonymous 0 Comments

The video chip that rendered the images on screen was pretty weak, so to make it more efficient, they used a quick screen tiling mode, were you repeat indexed tiles on the screen, each tile being encoded in a efficient 2 bits per pixel, and the color also using indexing in a 4 color pallette shared by 4 tiles. This ensured a small sized image and game as a whole, but made it pretty difficult to draw anything complex. Modern hardware is more powerful and can render pretty complex images with no regards to size, so new image encoding schemes will create bigger images but they can also recreate complex and realistic images, what the NES could not. Also, modern computers don’t understand the NES encoding scheme, ao if you try to make a code to “translate” it, let’s say in python, the code is gonna also have a couple of kilobytes. It goes to show that the size of the game and the image is a result of the limitations of the era.