MATRIX RAIN: 2025 REFACTOR
21 DECEMBER 2025
Fixed the Unicode issue finally. Can now mix ASCII + Katakana.
Moved Phosphor decay level into the 4th byte of the RGB union - should’ve done
this in 2022 instead of separate array. What was I thinking.
Keeping the RGB/PD union as it is. I’m aware of the portability issues, but I’m
on a little-endian machine, and I’m the only one reading this anyway. It’s
cleaner.
New charset array works. UNICODE(min, max) macro packs the range into uint64.
insert_code() unpacks block and picks random char.
Full-width Katakana breaks columns. Stick to half-width (U+FF61-U+FF9F) range .
Compile with -DNOKANA to disable Katakana altogether.
blend() is still good, left it alone.
Tossed license and automake cruft. Just cc -O3 main.c -o matrix. Don’t need
the ceremony.
Performance regressions: none. Runs like a charm on the T490. 2% CPU. No
whirring fans.
Commit:
03f8d87
Fixed the Unicode issue finally. Can now mix ASCII + Katakana.
Moved Phosphor decay level into the 4th byte of the RGB union - should’ve done this in 2022 instead of separate array. What was I thinking.
Keeping the RGB/PD union as it is. I’m aware of the portability issues, but I’m on a little-endian machine, and I’m the only one reading this anyway. It’s cleaner.
New charset array works. UNICODE(min, max) macro packs the range into uint64. insert_code() unpacks block and picks random char.
Full-width Katakana breaks columns. Stick to half-width (U+FF61-U+FF9F) range . Compile with -DNOKANA to disable Katakana altogether.
blend() is still good, left it alone.
Tossed license and automake cruft. Just cc -O3 main.c -o matrix. Don’t need
the ceremony.
Performance regressions: none. Runs like a charm on the T490. 2% CPU. No whirring fans.
Commit: 03f8d87