aappleby
(source - I wrote MurmurHash/SMHasher and have used the above in my own bloom filters and cuckoo hash tables)
Phyllis fades from color to black and white except for two houses. The fairground has a big top with tiny bleachers and a guy inside. The happy city has people with their arms raised in a V. People in the marketplace city wear hats and some are carrying bundles on their heads. There are weird cactus plants in the hanging city. In the half-fairgroud city, there's a statue on one of the trucks. The city that copies the dead has a set of pallbearers carrying a wrapped corpse down the stairs. The people on top of Argia are laying with their ears to the ground, listening for the animated sound waves coming from below.
And on and on and on and on. I just can't even.
The amount of _stuff_ crammed into each little city is almost unbelievable. Drawbridges open and close, glowing lines sketch patterns, camels walk across a tiny desert. Buildings fade into existence and then burst in a shower of sparks. Flags fly, smoke drifts, buckets cause ripples as they dip into underground pools. The city made of plumbing has tiny people in the bathtubs! There's a freakin' roller coaster with moving cars and a ferris wheel!
I absolutely understand the AI hate that's being commented here, but... in this instance, I just can't feel it. I keep finding more and more little details every time I click on a city, and I am astounded. I just now noticed there's a little guy in the city of strings hanging up new strings at the top of the hill. Damn. My favorite is Marozia, where dark buildings open like treasure chests and release shining towers and flocks of glowing birds.
Yes, there are also a lot of stupid AI errors - every spoked wheel has the spokes off-center for example. But holy crap, I just can't hate this. I don't care about who built it or the random bits of jank - this thing is _beautiful_ in a way that I haven't seen from AI before, and it warms my old GPU-powered heart.
Later on we had some "debug" cartridges that sat in between the console and a flash cartridge and intercepted reads/writes to a single address and replaced the data with whatever came in over a serial port back to the PC. That was enough of a backdoor to implement very basic dynamic reloading of art assets - I wrote a Photoshop plugin that added a "send to N64" button and some game-side support code and the cycle time for artists trying to see their work on a TV went from 30 minutes to 10 seconds.
I've used that when teaching short "Graphics 101" (not in the first session though) and the math comes out more intuitive than the usual "here's how to calculate a perspective matrix, don't ask where these numbers come from" version.
Looks like the next gen is gonna ditch that. :/
What the heck is this guy's problem? Just about every thing he mentioned as a problem is not a problem in practice. Too many options? Who cares, you're not trying to write code that runs on every possible configuration. Either you're writing embedded firmware and know exactly what core you're using, or you're writing an application that runs in an operating system and that system has a minimum ABI like RVA20 or whatever.
Array accesses take an extra instruction? Either you're in a tight loop walking a tiny array and you don't do the full offset calculation per step, or you're walking over an array in RAM and you're bottlenecked by the memory bus.
Hell, 90% of his arguments are "You can't detect X at runtime from user code without relying on some extension" - Yes, that is totally fine. Either you know your target CPU, or you don't - and then you ask your OS for details. This is not some dealbreaker.
From the article - "For example, if you are writing a kernel and want it to support all RISC-V cores" - NOBODY IS DOING THAT. You target a platform spec, not the combinatorial explosion of everything from RV32E to RVA22 or whatever the latest is.
You want to distinguish S mode from M mode? WHY DO YOU NOT ALREADY KNOW THIS?
Instruction encoding is weird? WHO CARES, the decoding is like eight lines of Verilog.
"Who can predict how their binary will act when a floating point store silently becomes a double-register move or a jump instruction, or vice-versa?" - THIS DOES NOT HAPPEN IN PRACTICE.
Guhhhhh, I don't get it. This guy has some vendetta and either has not shipped any risc-v code or is just in love with his own personal favorite instruction set.
It's never disappeared, but the "rain on a tent" sounds from mynoise.net, fan noise, and having a Twitch stream on in the background masks it enough that it's not bothersome during the day.
"Befriending" it though? Naah, I don't think so.
Not sure if that gives me an advantage in this challenge, but I have too many things to do already. :D