<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: HellMood</title><link>https://news.ycombinator.com/user?id=HellMood</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 24 May 2026 19:40:33 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=HellMood" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by HellMood in "Wake up! 16b"]]></title><description><![CDATA[
<p>At the same event I released "Broccolori", a 32 Byte fractal for old-school PCs.<p><a href="https://www.pouet.net/prod.php?which=106205" rel="nofollow">https://www.pouet.net/prod.php?which=106205</a><p>Related to the Dragon Fractal, with a twist:)</p>
]]></description><pubDate>Sun, 24 May 2026 11:23:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48256394</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48256394</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48256394</guid></item><item><title><![CDATA[New comment by HellMood in "Wake up! 16b"]]></title><description><![CDATA[
<p>Author of "wake up" here. Yes, that one reactivated me again. We thought (as size coding community) that we found every cellular automaton trick years ago, but then Plex came around and showed us otherwise ♥</p>
]]></description><pubDate>Sun, 24 May 2026 11:07:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48256304</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48256304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48256304</guid></item><item><title><![CDATA[New comment by HellMood in "Wake up! 16b"]]></title><description><![CDATA[
<p>Author of "wakeup" here. You would would need between 32 and 64 bytes. I have something that almost looks like one in 32 but it's not published yet ;)</p>
]]></description><pubDate>Sun, 24 May 2026 11:05:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48256295</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48256295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48256295</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>"Spongy" was one of my inspirations to try something similar in 64 bytes.<p>Of course it's not the same, but "flying through a 3D grayscale orthogonal structure" is actually possible in 64<p><a href="https://www.pouet.net/prod.php?which=78044" rel="nofollow">https://www.pouet.net/prod.php?which=78044</a></p>
]]></description><pubDate>Mon, 18 May 2026 09:33:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48177264</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48177264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48177264</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>I tested this on a real FreeDos based notebook and it survived ;) But seriously, on more modern systems it doesnt do anything harmful anymore, while i have read that on older systems, you could provoke a system crash this way. Which then would create the interesting task of designing the CA in a way that it "avoids" the hazardous values. For now it seems that "anything goes", at least on all my semi-old and newer systems. DosBox Emulators literally dont care ;)</p>
]]></description><pubDate>Mon, 18 May 2026 08:40:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176899</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176899</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>"Rainy" was a 32 bytes production in a (strong!) 256byte competition
"Wakeup" was a 16 bytes production in a (strong ^^) 128byte competition<p>Sometimes, content to size ratio wins. Other times, not so much ;)</p>
]]></description><pubDate>Mon, 18 May 2026 08:10:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176720</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176720</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>In that way the title is misleading. My original "m8trix" from 2014 already did <i>smear</i> pseudorandom letters across the screen ( in 8 bytes, then in 7 ) <a href="https://www.pouet.net/prod.php?which=63126" rel="nofollow">https://www.pouet.net/prod.php?which=63126</a> and i always wondered how i could make it "sound good". But chronologically in the development of "wakeup" the sound was first. Since you "see what you hear" it doesnt really matter, but "16 bytes that turn sierpinski sound into matrix rain" would be true too =)</p>
]]></description><pubDate>Mon, 18 May 2026 07:58:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176673</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176673</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176673</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>Hey, glad you like this as well. Fun fact, i had a COVOX version which even sounded better, but didnt work sometimes ... so i handed in the "slightly worse" version xD</p>
]]></description><pubDate>Mon, 18 May 2026 07:48:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176615</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176615</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>Oh yes, that was one of my first demoscene productions :)<p>Actually, just a few days ago, i had the chance to run a modified CGA 8086 version of this on a real old piece of hardware
<a href="https://youtu.be/XLrjChvJf0k" rel="nofollow">https://youtu.be/XLrjChvJf0k</a></p>
]]></description><pubDate>Mon, 18 May 2026 07:39:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176561</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176561</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>Hey, Blackle! Yeah, i agree :/ In short, for now: Manually, dozens or hundreds of them. The process was just tinkering around with CAs and sound. "What's left" is how it still sounds remarkably different than it should on a clinically clean memory segment, but in a way that i like much much better xD So the unfolding would be, why does it sound like this, and how can i steer it, and then, how can i minify it. Maybe it can be folded into the original 16 bytes as well =)</p>
]]></description><pubDate>Mon, 18 May 2026 07:36:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176539</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176539</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176539</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>It was and is still super unepxected! i created a lot of "noise" or "CA" sound intros but this one stands out. The specific spice here is how memory is initialized on "clear screen" and whats "before" and "after" the actual visible memory. The "pure" sound is also lovely (i can carefully set everything with a few more bytes to make it sound the same on all systems) but this spicy difference i still to have fully understand makes it sound even better imho =)</p>
]]></description><pubDate>Mon, 18 May 2026 06:43:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176258</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176258</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176258</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>It kind of still is! The pure sound shouldnt even sound like that, so i have to still dig around memory configurations and initalizations (graphics card wise) to 100% explain why it sounds a tad different than it should.</p>
]]></description><pubDate>Mon, 18 May 2026 06:18:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176142</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176142</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176142</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>Actually a) polymorphic asm instructions, like "add [bx+si],al" which is 0x0000 
b) jumping into middle of instructions to save bytes and reuse opcodes<p>In hundreds of tiny experiments, this one stuck out, just by the sound of it. When i unfolded what's left and removed "the rest" i had a hard time to grasp what's really going on. i myself didnt expect that the explanation would go this deep for just these few bytes xD</p>
]]></description><pubDate>Mon, 18 May 2026 06:16:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176133</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176133</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>TLDR: Each time step, another sierpinski triangle line is a) played on the speaker b) drawn to the screen with stepsize of 56. You can sense the motion, but not really see it, since it's 8192 "pixels wide" but one line of chars is just 80 bytes. One a much much much bigger screen, you could see the triangle. Or, if you dont "skip pixels" and draw it all at once, you would see it as well. In fact, i did a version at the very the same party that does that, but the specific sound gets lost on that one<p><a href="https://www.pouet.net/prod.php?which=106206" rel="nofollow">https://www.pouet.net/prod.php?which=106206</a>
<a href="https://www.youtube.com/watch?v=OVk-iP93ZEs" rel="nofollow">https://www.youtube.com/watch?v=OVk-iP93ZEs</a></p>
]]></description><pubDate>Mon, 18 May 2026 06:12:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48176104</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48176104</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48176104</guid></item><item><title><![CDATA[New comment by HellMood in "WriteUp: 16 Bytes of x86 that turn Matrix rain into sound"]]></title><description><![CDATA[
<p>"wake up! 16b" (Outline Demoparty, May 2026, Ommen, NL) is a 16-byte MS-DOS production that uses video memory to calculate a Sierpinski fractal and play it as audio.<p>Video: <a href="https://youtu.be/MvycyU-kLjg" rel="nofollow">https://youtu.be/MvycyU-kLjg</a> | Pouet: <a href="https://www.pouet.net/prod.php?which=106210" rel="nofollow">https://www.pouet.net/prod.php?which=106210</a><p>The 16-Byte Code:<p><pre><code>  int 10h          ; Init Video Mode 0
  mov bh, 0xb8     ; Setup VRAM segment
  mov ds, bx
  L: lodsb         ; Load [SI] to AL, inc SI
  sub si, 57       ; Move pointer backward
  xor [si], al     ; Cellular Automaton
  out 61h, al      ; PC Speaker output
  jmp short L      ; Infinite loop
</code></pre>
1. The Canvas: `int 10h` primes the 40x25 text grid uniformly with ASCII 0x20 and color 0x07. This stable, uniform void is necessary to prevent the cellular automaton from shattering into static.<p>2. The Fractal (Rule 60): If this loop used `add`, it would create a binomial prefix sum:<p><pre><code>   A^(p)[k] = 2 \* C(k+p, p-1) mod 256
</code></pre>
But substituting `add` with `xor` discards the arithmetic carry, isolating the bit-planes. This turns the math into a pure cellular automaton mapping to Wolfram's Rule 60:<p><pre><code>   Cell^(p)[k] = Cell^(p-1)[k] XOR Cell^(p)[k-1]
</code></pre>
Visualizing Bit 1 propagation over 5 passes (X = set):<p><pre><code>  P1: X X X X X X X X
  P2: . X . X . X . X
  P3: X . . X X . . X
  P4: . . . X . . . X
  P5: X X X . . . . X
  P6: . X . . . . . X
  P7: X . . . . . . X
</code></pre>
3. The Audio: Port `61h` uses Bit 1 to physically move the PC speaker cone. The Sierpinski geometry acts directly as a square-wave audio instruction: alternating bits (like P2) yield high frequencies, while sparse rows (P4) create rhythmic rests.<p>4. The -56 Byte Step: The pointer's net movement is -56 bytes per loop.
   - Visuals: On an 80-byte wide grid, this offset shears the fractal diagonally into 10 evenly spaced, ascending vertical pillars.
   - Audio: 56 does not divide the 64KB segment evenly, requiring 8,192 steps (7 full wraps) to complete a cycle. Doubling the macro-cycle halves the fundamental frequency, dropping the audio exactly one octave.<p>5. Hardware Quirks: The theoretical math expects zeroed memory, but the XOR operation violently collides with the BIOS's 0x20/0x07 initialization. This mutates the pure triangles into a cascade of pseudo-random ASCII glyphs. Because it relies entirely on raw RAM states, the visual and auditory output is highly sensitive to the specific machine or emulator, turning a simple mathematical quirk into a unique audiovisual fingerprint.</p>
]]></description><pubDate>Sun, 17 May 2026 23:10:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48173963</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48173963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48173963</guid></item><item><title><![CDATA[WriteUp: 16 Bytes of x86 that turn Matrix rain into sound]]></title><description><![CDATA[
<p>Article URL: <a href="https://hellmood.111mb.de//wake_up_16b_writeup.html">https://hellmood.111mb.de//wake_up_16b_writeup.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48173962">https://news.ycombinator.com/item?id=48173962</a></p>
<p>Points: 253</p>
<p># Comments: 33</p>
]]></description><pubDate>Sun, 17 May 2026 23:10:09 +0000</pubDate><link>https://hellmood.111mb.de//wake_up_16b_writeup.html</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=48173962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48173962</guid></item><item><title><![CDATA[New comment by HellMood in "A whole boss fight in 256 bytes"]]></title><description><![CDATA[
<p>Well, it would be 2^(7*8) = 72057594037927936 possible intros. Someone/something has to generate, run and evaluate them all. Theoretically it's the "halting problem" all over, to wait for the "final output" of each intro. The 16 byte effect for example takes a while to achieve its final form. So even if it is somehow managed to evaluate 1000 intros per second, we are looking at about 2 million years of time to really test ALL possible 7 byte intros.</p>
]]></description><pubDate>Fri, 10 Apr 2026 11:21:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47716414</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=47716414</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47716414</guid></item><item><title><![CDATA[New comment by HellMood in "A whole boss fight in 256 bytes"]]></title><description><![CDATA[
<p>Thanks :)<p>and yes, your observations are spot on.</p>
]]></description><pubDate>Wed, 08 Apr 2026 09:18:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47687509</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=47687509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47687509</guid></item><item><title><![CDATA[New comment by HellMood in "A whole boss fight in 256 bytes"]]></title><description><![CDATA[
<p>I ran a patched version of it on WinXP (DOS NTVDM), the sound works there! But it requires a few extra bytes to enable MIDI UART Mode first. On DosBox-X, this can simply be set in the config ;)</p>
]]></description><pubDate>Wed, 08 Apr 2026 09:16:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47687494</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=47687494</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47687494</guid></item><item><title><![CDATA[New comment by HellMood in "Revision Demoparty 2026: Razor1911 [video]"]]></title><description><![CDATA[
<p>i second that. "Second Nature" is also my party favorite!
<a href="https://www.youtube.com/watch?v=KFVxntafsXM&t=1764s" rel="nofollow">https://www.youtube.com/watch?v=KFVxntafsXM&t=1764s</a></p>
]]></description><pubDate>Wed, 08 Apr 2026 08:32:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47687113</link><dc:creator>HellMood</dc:creator><comments>https://news.ycombinator.com/item?id=47687113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47687113</guid></item></channel></rss>