Time for #introductions.
I'm a software engineer who went from backend to frontend development. I enjoy #lisp most, but have dabbled in too many to list. I speak 🇩🇪 🇬🇧 🇷🇺. Things fascinating me:
alita movie Show more
I've been asked whether I'd be up for watching it in cinema again and immediately declined. Now that I've watched the trailer I'm convinced it was the right decision. Poor girl got eyes as huge as teacups...
I've added support for the Super-CHIP-8 instructions in a separate branch. Redrawing in extended mode (which doubles the dimensions, effectively quadrupling the resolution) is super slow and requires scaling the frame font down to fit the screen fully. Time to debug whether anything can be done to improve performance.
I wrote a test suite covering all opcodes. This makes changes to the implementation far less annoying to test because I can be absolutely sure I didn't break anything by accident.
I must say, Buttercup is a far nicer library for testing #emacs libraries than the built-in ERT.
> The dough is very sticky. I mean… stickier than an HSTS policy!
It makes it with some bruises and typos. Could have been a lot worse. The movie is nice, I went into it with someone else from my hackerspace who doesn't know the franchise at all, he enjoyed it almost as much as me. I only wish it was like, an hour shorter. 150 minutes running time is insane for something with heavy dialogue.
Implemented the last opcode which allows to wait for key input. This is harder to achieve than it sounds because #Emacs can run emulator code while it's waiting for user input...
The following demo, Kaleidoscope, is played at 1200 cycles per second.
Welp, I wrote my own memcpy function... in #elisp. No more noticable GC pauses.
Rendering does no longer redraw the whole frame, now the emulator can run this animation at 1200 cycles per second, with the occasional GC hiccup.
I'm looking forward to debugging performance issues. The #emacs profiler already threw assertions at me and is known to be useless for memory recording, so back to good ol' printf-debugging I guess...
It took a bit of work and it's longer than I expected, but here's my tutorial on how to setup your own VPN server with WireGuard: