The Dolphin emulator team writes progress reports and technical breakdowns on emulating the GameCube and Wii, including graphics and shader work.
Commenters hold it up as excellent technical writing and call it a great blog, citing its ubershader article and monthly progress reports.
You're very welcome.
Computer graphics has a very interesting history, and like many things, there's a lot to learn from studying it. Surprisingly, many techniques and principles are still relevant to this day.
Thankfully, the Internet is full of documentation, post-mortem accounts and reference implementations to learn more about all this.
Here's a bunch of random noteworthy things and references I forgot to link (sorry for potentially digging rabbit holes):
The best information tends to come from official documentation detailing almost everything you want to know about the inner workings of systems. Additionally, unofficial community documentation can also be of great quality and complement official sources.
The architecture overview posts from Rodrigo Copetti (https://www.copetti.org/writings/consoles/) pack a lot of accurate information at a glance, and are a great starting point if a specific topic piques your interest.
The Resident Evil 2 microcode post-mortem: https://ultra64.ca/files/other/Game-Developer-Magazine/GDM_September_2000_Achieving_Full-Motion_Video_on_the_Nintnedo_64.pdf
Improved lighting, reverberation, Dolby surround and MP3 microcodes from Rare: https://youtu.be/jcIupBUAy98?t=41
H.264 decoding microcode: https://www.reddit.com/r/n64/comments/gpwxx0/my_dragons_lair_port_now_features_the_first_ever/
The Reality Signal Processor's programming guide:…
I completely agree, but as someone who's owned publishing for changelogs on large-ish, often super technical OSS projects, it can be very difficult to explain some of the concepts needed to grok a bugfix or low-level design change even in the span of a couple paragraphs. And more importantly, that context needs to be written by the engineer involved in the change, which means more context == less code work.
That being said, I think some projects do it extremely well. My gold standard for a while has actually been the OSS Dolphin emulator for Gamecube/Wii. They write incredible progress reports[1] every 1-2 months that give phenomenal context on how they found the bug, why it matters, how it works, and what they did to fix it.
Another great example is VS Code[2]. Their context tends to be around changes that are more UX-oriented, but it's still a great way to understand what new value you're getting on every new release.
[1]: https://dolphin-emu.org/blog/2022/02/08/dolphin-progress-report-nov-and-dec-2021-jan-2022/
[2]: https://code.visualstudio.com/updates/v1_67
Somewhat related:
I'm always thoroughly impressed with how complicated and knowledgeable the people who work on these topics are.
I don't even use the product, but I love reading the Dolphin blog [0] because they write about fairly complicated topics in a way that's pretty approachable, and it always makes me appreciate how much I don't know about these topics.
While I feel like it would be difficult-but-not-impossible to be a contributor to say, the linux kernel (this is probably me grossly oversimplifying the process), I think I could spend the next year diving into graphics programming and basic hardware topics and still not contribute in any meaningful way to a project like Dolphin.
Articles like this and the Dolphin blog definitely make me realize how much I don't know.
0: https://dolphin-emu.org/blog/
Proton has been fantastic for me, it finally gave me what I needed to reclaim my Windows partition and go full-on Arch! In some cases, running the Windows version inside Proton has actually worked out better for me than the native port (Dead Cells, for example. The native port crashes the Steam overlay and lacks Steam Controller support, but running the Windows version in Proton is seamless)
I highly encourage you guys to check out the tech making this possible: DXVK. It's incredible what you can do with these lower level APIs. I'm not sure if this is the right word, but "meta shader pipelines" like this are absolutely the way of the future in emulation. See also: Dolphin Ubershaders.
Ubershaders: https://dolphin-emu.org/blog/2017/07/30/ubershaders/
My personal favorite is the This Week In[0] series of posts, if you want a simple way to keep track of notable changes. Technical blogposts are a pretty common practice among reverse-engineers, too; the Dolphin emulator has some great breakdowns[1], along with the people who reverse-engineered the Nintendo Switch's boot process[2] (and the rest of LiveOverflow's stuff).
The Asahi writeups are great, but certainly not all there is. Tons of reverse-engineering stuff and Linux documentation gets submit to this website, it just doesn't generally do as well in the ranking system.
[0] https://thisweek.gnome.org/
[0] https://pointieststick.com/category/this-week-in-kde/
[1] https://dolphin-emu.org/blog/
[2] https://youtu.be/Ec4NgWRE8ik
CPUs are getting faster. Sandy Bridge is a 15-20% IPC improvement on Nehalem for some heavily integer and memory access based workloads. On the same workloads, Haswell is another 15-20% IPC improvement on Sandy Bridge.
I work on the Dolphin Emulator (https://dolphin-emu.org/) which is a very CPU intensive program (emulates a 730MHz PowerPC core, plus a GPU, plus a DSP, all of that in realtime). We try and track CPU improvements to provide our users with proper recommandations on what hardware to go for. Here are the results of a CPU benchmark based on our software: https://docs.google.com/spreadsheet/ccc?key=0AunYlOAfGABxdFQ0UzJyTFAxbzZhYWtGcGwySlRFa1E#gid=0