• Jerkface@lemmy.world
      link
      fedilink
      arrow-up
      158
      ·
      9 months ago

      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.

      • sus@programming.dev
        link
        fedilink
        arrow-up
        95
        ·
        edit-2
        9 months ago

        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

        • Valmond@lemmy.mindoki.com
          link
          fedilink
          arrow-up
          36
          ·
          9 months ago

          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 😪😴

          • Revan343@lemmy.ca
            link
            fedilink
            arrow-up
            4
            ·
            9 months ago

            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

            • Valmond@lemmy.mindoki.com
              link
              fedilink
              arrow-up
              3
              ·
              9 months ago

              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:-)

              • Notorious_handholder@lemmy.world
                link
                fedilink
                arrow-up
                2
                ·
                9 months ago

                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

        • Lojcs@lemm.ee
          link
          fedilink
          arrow-up
          1
          ·
          9 months ago

          Here’s the same image in 3.8kb (lossless jxl):

          Interestingly, lossy jxl is larger (59kb):