A whole boss fight in 256 bytes

(hellmood.111mb.de)

95 points | by HellMood 2 days ago

10 comments

  • HellMood 7 minutes ago
    https://www.pouet.net/prod.php?which=105909

    The "silent" version is only 219 bytes

    A new version that adds new features into

    the remaining bytes is in the works

  • lucb1e 9 hours ago
    That domain is such a blast from the past for me. I spent so many hours working on projects with free webhosting as a teen!

    dang/HN: this domain should probably be added to the list where the subdomain is shown next to the title, since subdomains are users' webspaces. (Might be a good candidate for the public suffix list: "[DNS labels] under which Internet users can (or historically could) directly register names".)

  • philxor 5 hours ago
    And it came in 5th place in the competition. The winner was this one which is 16 bytes...

    https://www.youtube.com/watch?v=QKLhH_ANwIc

  • flopsamjetsam 9 hours ago
    I clicked on this fearing it was a "256 bytes of JS" (plus X GB of browser), and was pleasantly surprised it was actually 256 bytes.
    • xg15 7 hours ago
      Had a similar thought. In theory, you're right, though in practice today it's "256 bytes of binary plus X MB of DOS emulator".
      • gmueckl 6 hours ago
        Unless I'm overlooking something, the demo only requires DOSBox to have a machine with predefined execution speed. There are no DOS interrupt calls that I can see. Other than that, the program could probably even be trivially modified to fit in a floppy disk MBR and could potentially run without underlying OS.
        • bpeebles 5 hours ago
          To be more exact (in an excessive way), it uses the BIOS's code to set the video mode (INT 10h) which is probably a few dozen bytes (at least?) although I have been remiss at not ever reading them. And it depends on DOS configuring the memory space to leave an INT 20h call (to terminate the program) at a place that's easy to RET to. But, yeah, very little extra. But I'm not being negative at all and this is pretty nice code and on the impressive side of 256 byte demos from the 80s and 90s (and onward).
          • userbinator 2 hours ago
            The VBIOS is around 32-64k. The modesetting path is probably a few k.

            And it depends on DOS configuring the memory space to leave an INT 20h call (to terminate the program) at a place that's easy to RET to.

            This has always been the case, and actually inherited from CP/M.

          • aidenn0 5 hours ago
            Yes, this is very minimal; if it were self-booting the INT 20h call wouldn't be needed, but there's no getting around the INT 10h, unless you specialize for very specific hardware.

            The entire 5150 BIOS fit in 8k, so even if it were laden with BIOS calls (which it's not) then that would be an upper-bound.

    • rwoerz 1 hour ago
      Or a 256 bytes prompt
    • rustystump 9 hours ago
      Why is that bad? If the bytes could easily run within the same constraint in another env/language why the hate?

      I am with u on the excessive ram of browsers. It is insane. Still, it is one of the most portal and easy ways to share something. Heck, u can run a dos emulator in your browser.

      • layer8 8 hours ago
        This is probably in reference to things like Dwitter.net (https://news.ycombinator.com/item?id=46557489), where the browser (plus the Dwittet-specific runtime harness) contributes significantly higher-level functions than traditional demoscene targets like DOS PCs.

        It’s just a different thing. I see no “hate”, only an expression of preference for “bare-metal” demos.

        • selcuka 4 hours ago
          Here's a 13-byte demo that runs on Chrome browsers:

              chrome://dino
      • irishcoffee 7 hours ago
        It is misleading to say "I wrote X in 1k bytes" when those 1k bytes were library calls to library calls totaling 300MB.
        • whaleofatw2022 7 hours ago
          Right... on the flipside its one thing to where it is X+minor overhead inclined lib calls

          Then a whole nother level of awesome where its literally just ASM

      • senfiaj 8 hours ago
        Probably because JS has larger runtime, in JS you don't have to write about most of the low level code. So it's easier to squeeze code in JS than in ASM or machine code.
  • HellMood 2 days ago
    Technical write up for "Endbot" 256 bytes MSDOS program with plot, sync, sound, and payoff. Released April 4th at Revision Demoparty 2026.
  • s3anw3 3 hours ago
    This takes me back to the NES era, where developers squeezed entire worlds into a few kilobytes of ROM. What blows my mind here is that even the NES had ~40KB of program space — and this entire boss fight, complete with sprite animation, scrolling landscape, and MIDI music, fits in 256 bytes. The NES ROM header alone is 16 bytes. Incredible work.
  • parkertomatoes 5 hours ago
    Audio doesn't work, but here's an emulator link

    https://parkertomatoes.github.io/v86/?type=com&content=aACgB...

    • HellMood 15 minutes ago
      The sound works in DosBox-X if you use the providesd config file

      It also works on real old DOS PCs (or Windows XP/98 "DOS") but it would require changing a few bytes, mainly to setup UART MIDI mode

  • vermilingua 27 minutes ago
  • ale42 9 hours ago
    Didn't run it (yet) but it looks nice. Great that some people are still able to optimize code! I'm wondering if this would run on actual hardware (VGA + a sound card supporting MPU401 emulation)
    • bitwize 2 hours ago
      We're gonna find that Claude Mythos can do something like this in 255 bytes
      • streetfighter64 3 minutes ago
        Optimizing away one byte of this, given the source code? Yeah, could happen. Making a good 256 byte demo from scratch? No way.
        • HellMood 1 minute ago
          I mean, give it a try?

          the source is right there ;)

      • HellMood 4 minutes ago
        I mean now that the (human written) source for this is out in the wild, of course it can ;)
  • Anmol-Baranwal 8 hours ago
    [dead]