HACKERS: Hey, github is owned by Microsoft and is ipso facto evil. Let's move to Gitlab!

GITLAB: We explicitly endorse evil and ban employees from complaining about it


Personally I prefer the C-like syntax of Zig over the wordy syntax of Nim, but Nim has docs and a more stable standard library, which, for me, makes it more viable for prod use at the moment.

But I'm excited to see where Zig lands as it gets more stable.

For both Zig and Nim I had to refer to actual source code due to lack of docs, Zig lacking standard library docs (at the moment), and the Nim sdl2 docs not existing.

Zig's C interop is excellent, whereas I gave up on Nim's interop and used the official sdl2 package instead.

Nim's tooling is much nicer than Zig's. With Zig I had to do extra magic to link SDL2, whereas I didn't have to do any of that with Nim.

Side note: the C interop story in Zig is even nicer than just reading about it.

Found a bug in a C program of mine whilst porting it to Zig.

Thanks Zig!

Moved my default search engine over from Google to DuckDuckGo. Wow, there is a lot less noise in my search results now... It's been a long time coming.

Started working on the APU for my NES emulator. Audio programming feels about as foreign to me as graphics programming did when I started the PPU...

Playing Mario Kart Tour and the only problem I have with Rainbow Road is the track isn't a billion miles long.

The journey to digital minimalism continues: I deleted the Facebook and Reddit apps from my phone.

The test _EVERYTHING_ culture pisses me off sometimes...

This video on mirroring and open bus in the SNES does a great job explaining _why_ mirroring occurs at the hardware level


Ah, fixed! MMC3's IRQ only triggers on visible scanlines, rather than all scanlines.

I'm pretty sure the rendering error near the bottom (at the bottom of the map) is a IRQ timing issue... just not sure why yet.

But otherwise, MMC3 mapper is done-ish, and I can play Super Mario Bros 2 and 3 😍

I realised that the compiler enforces spaces over tabs. I kinda hated that Nim does this too, but I guess I just have to accept it...

Zig's vim integration is super nice; automatic formatting with 'zig fmt', integrated compiler error messages... nice stuff to get out of the box with a vim plugin.

Added more debugging information to my emulator.

Left and right pattern tables are now displaying, along with the background and sprite palettes.

Need to work with SDL_ttf to add text next.

And then maybe I'll add the ability to show the current/previous/next CPU instructions (plus useful CPU debugging things) and maybe the ability to pause and step on a per instruction basis.

This _really_ wasn't what I was planning to work on at the moment, but I couldn't help it...

... indentation-sensitive languages are a little annoying though. Sigh...

Show more
Mastodon for Tech Folks

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!