this post was submitted on 05 Aug 2024
439 points (99.8% liked)

Technology

58009 readers
2968 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] ChaoticNeutralCzech 67 points 1 month ago (12 children)

I knew patch files were small (often smaller than their metadata) but I wouldn't have guessed they were THAT small. I think we'll see somebody running a spinoff soon, as well as domain squatters offering malware-ridden copies of Lunar Magic (the patching tool).

[–] anlumo@lemmy.world 53 points 1 month ago (1 children)

The whole of Super Mario Bros is smaller than a single screenshot of the game.

[–] ChaoticNeutralCzech 72 points 1 month ago* (last edited 1 month ago) (2 children)

Popular myth but untrue.

The ROM is exactly 40 kiB or 40 960 bytes. The NES outputs video at a resolution of 256×240=61 440 pixels. The game never switches palettes mid-frame and thus the highest possible number of colors (of the 64 available ones, of which 55 are distinct) in any screenshot is: 4 sprite palettes × 3 non-transparent colors per palette = 12 colors among all sprites; plus 4 background palettes × 3 selectable colors per palette + 1 selectable color shared between all palettes = 13 colors in the background; or 25 colors in total.

Even one of the most basic lossless image formats, GIF, can use an n-bit palette of 2−1 arbitrary colors plus transparent, where 1≤n≤8. For n=5, we can store up to 31 colors at 5 bits per pixel, or 307 200 bits total, which is 38 400 bytes. The palette entries, size etc. will take about 200 bytes at most, and LZW compression built into the format (or even better, whatever PNG uses) can be used to reduce the file size further (significanly because there are huge areas filled with solid color or patterns).

I'd bet it's possible to make an NES ROM that does nothing but fill the screen with noise-like tiles and switches the colors mid-frame, likely in just 8 kiB of video ROM plus 2 kiB of program ROM, whose screenshots will never compress to below 10 kiB in PNG format, though.

[–] aeronmelon@lemmy.world 74 points 1 month ago (3 children)

You’re absolutely correct, but you and I both know that normal people are going to only manage to create a dithered JPG that’s almost half a MB in size.

[–] ByteOnBikes@slrpnk.net 36 points 1 month ago (2 children)

I laughed because last week, I had to teach the marketing team why you shouldn't upload your iPhone photos to the website. Each page has a nice 4meg high res photo.

[–] aeronmelon@lemmy.world 34 points 1 month ago (1 children)

Bet they all had location metadata, too.

[–] ByteOnBikes@slrpnk.net 13 points 1 month ago (1 children)

Oh my, I did a scan and yes... We have location meta data on our images.

Oh boy.

[–] grue@lemmy.world 3 points 1 month ago
[–] JackGreenEarth@lemm.ee 5 points 1 month ago (1 children)

And it's probably in hvec format too, lol

[–] ChaoticNeutralCzech 3 points 1 month ago

dithered JPG

How? Why? By first saving it as a fixed-palette GIF?

[–] mindbleach@sh.itjust.works 1 points 1 month ago

AFAIK the majority of compression in GIF and PNG comes from local similarity. GIF uses run-length encoding. PNG pixels can copy the color to their left, or any of the three pixels above them.

The smoothness of natural images is why Quite Okay Imaging can compete with PNG, despite touching each pixel exactly once.

load more comments (10 replies)