I managed to recreate almost the same screenshot in 5kb (and with much less compression artifacts!)
before adding the text and circles it was only 1.6kb
it’s a case where jpeg compression ironically results in the picture getting 60x larger and more blurry because everyone recompresses the images and jpeg is designed for large photos and not pixel art
Use png and IDK I don’t remember which cmd line soft but it stripped out unused colors and compressed images like that one hard.
That, without the red lines and circles, and without jpeg jitter should be like 1kb. Or less less.
Now, as an oldtimer, when you load that 1kb image up, it will still take like 640x320 bytes (it was all 8bit) so 200KB of RAM. But back in the day I guess it was more like the original GB 160x144 so 22.5KB RAM needed to show that image.
Did it work like that?
No, because cartridges didn’t have a lot of space, and the consoles didn’t have much RAM, so you used tiles. You had a tile map image, each tile was 8x8 pixels pointing to a palette (so you could use 4-bits for the color. More or less so, there were a lot of ‘modes’). Each tile had a number and your screen was some 20x18 tiles x 1 byte numbers, designing the ‘tile’ to be shown at that particular position of the screen.
All done by hardware so way fast!
To make the scrolling run you had a ‘delta’ pixels to slightly move the “screen” around.
ROM Cartridges like that were also basically as fast as RAM, and mapped into system memory, so you could reference things directly instead of having to load things to RAM first like off a disc
Yes yes! But wasn’t there some limit, like if you had a 1Mbit cartridge you still had to shuffle the data around? Or was it just a penalty to map a different chunk of memory?
Not the guy you replied too, and my memory is also fuzzy, but I always love how crazy and analog nes hardware was. Im like 70% sure that later in the nes lifespan they made it to where cartridges had more rom and could shuffle the data banks/tables around and that the nes could only process something like 32kb at a time I think? So they would just swap around the data sets depending on when they where needed.
Almost like one of those choose your own adventure books… Im probably horribly wrong in that summary and analogy though. It’s been years since I last got a refresher on nes tricks lol
SMB had game file size limitations in the dozens of kilobytes range.
For comparison, that screenshot is 342kb, and Super Mario Bros is 40kb. The screenshot is more than 8.5 times bigger than the game it comes from.
I managed to recreate almost the same screenshot in 5kb (and with much less compression artifacts!)
before adding the text and circles it was only 1.6kb
it’s a case where jpeg compression ironically results in the picture getting 60x larger and more blurry because everyone recompresses the images and jpeg is designed for large photos and not pixel art
Use png and IDK I don’t remember which cmd line soft but it stripped out unused colors and compressed images like that one hard.
That, without the red lines and circles, and without jpeg jitter should be like 1kb. Or less less.
Now, as an oldtimer, when you load that 1kb image up, it will still take like 640x320 bytes (it was all 8bit) so 200KB of RAM. But back in the day I guess it was more like the original GB 160x144 so 22.5KB RAM needed to show that image.
Did it work like that?
No, because cartridges didn’t have a lot of space, and the consoles didn’t have much RAM, so you used tiles. You had a tile map image, each tile was 8x8 pixels pointing to a palette (so you could use 4-bits for the color. More or less so, there were a lot of ‘modes’). Each tile had a number and your screen was some 20x18 tiles x 1 byte numbers, designing the ‘tile’ to be shown at that particular position of the screen.
All done by hardware so way fast!
To make the scrolling run you had a ‘delta’ pixels to slightly move the “screen” around.
Fun times.
Time to go to bed 😪😴
ROM Cartridges like that were also basically as fast as RAM, and mapped into system memory, so you could reference things directly instead of having to load things to RAM first like off a disc
Yes yes! But wasn’t there some limit, like if you had a 1Mbit cartridge you still had to shuffle the data around? Or was it just a penalty to map a different chunk of memory?
My memory is sure not that fast or reliable:-)
Not the guy you replied too, and my memory is also fuzzy, but I always love how crazy and analog nes hardware was. Im like 70% sure that later in the nes lifespan they made it to where cartridges had more rom and could shuffle the data banks/tables around and that the nes could only process something like 32kb at a time I think? So they would just swap around the data sets depending on when they where needed.
Almost like one of those choose your own adventure books… Im probably horribly wrong in that summary and analogy though. It’s been years since I last got a refresher on nes tricks lol
Here’s the same image in 3.8kb (lossless jxl):
Interestingly, lossy jxl is larger (59kb):
I like this math lesson
Modern AAA games need optimisations too
Optimization? Pffffft. Nvidia probably pays game developers to make unoptimized games just to boost gpu sales.
True
Laughs in Cities: Skylines 2
Yes, but not ‘every rock is identical’ optimization like back then.
You’d be surprised
What I would give to have modern devs work that hard to reduce file sizes
Is it more than the price of a hard drive?
For the sake of all my homies with data caps and limited hard drive funds, I would gladly give more than it costs me personally
Games on ssds benefit from faster load times. Don’t put your games on spinning metal.
Because most of the time and energy are spent trying to hold on and not be tossed off by centripetal force?
Exactly.