--- title: 'Matrix Rain: 2025 refactor' date: 2025-12-21 layout: post project: true thumbnail: thumb_sm.png --- 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](https://git.asciimx.com/matrix-digital-rain/commit/?id=03f8d87ba7c2e46bd3f3cc4c772fb3a2ac740c92)