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
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.
And here's the Nim version of Conway's Game of Life.
First Zig program: Conway's Game of Life.
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...
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 😍
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...
clojure, rust, c, zig, nim
sys prog, dist sys, linux
retro gaming, emulator dev
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!