William Wenge-Murphy @billywm.bsky.social · 6hAlways remember that people are alive but computers can never be alive, and Live Más 000
William Wenge-Murphy @billywm.bsky.social · 6h"Computer" is an abstraction (e g. Turing machine) that could be implemented by infinitely many physical systems. You could represent TM states with Taco Bell sauce packets flipped to either side. A quadrillion Taco Bell sauce packets don't give ride to consciousness 100
William Wenge-Murphy @billywm.bsky.social · 6hTech weirdos who think computers can have feelings are so cringe. 100
Reposted by William Wenge-MurphyHourly Videogame Box Art @vgboxart.bsky.social · 18/05/2026INSPECTOR MINTON'S INVESTIGATION FILES: THE CLOWN MURDER CASE 221171395
William Wenge-Murphy @billywm.bsky.social · 02/10/2026So, I was just lightly ribbing by joking the gfx/runtime bit is ROTFO, but it is true, that's "a whole thing". Might be easy, might be insanely nuanced, per game. Just to make the point, technically speaking you can't do a literal 100% decomp on any game with ACE (Turing Complete. Emu required) 000
William Wenge-Murphy @billywm.bsky.social · 02/10/2026So when some game purposely OR accidentally depends on some specific hardware behavior how have to make sure you fully understand what that means in the context of that game, in light of the rest of the program and how it also interacts with that nuanced behavior 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026In most cases this is really well behaved for abstracting away because it expects a specific format so you could turn that into some nice runtime abstraction like the RSP stock microcodes ......except that the occasional game will do something funny like purposely trigger sprite overflow 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026The NES has a lot of MMIO locations. Let's say you see a write to $4014. You certainly shouldn't turn that into C code that does a write into some memory you've malloc()'d. 4014 writes trigger OAM DMA on the PPU - the written byte in a 256 byte "page" to do a block transfer of sprites props from 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026And I'll finish my neverending tweet-essay with these concrete examples: Say you're pointlessly doing an NES recomp. From your ASM experience you probably know what a memory mapped "hardware register" is - a memory write to that address isn't a mem write at all, it's talking to a device 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026So, at the very least, if your game isn't well-behaved, the step of "just" figuring out which bytes are code not data and then turning them into C calls for deep hardware understanding to make sure that you're not overlooking something subtle and critical (n64 has annoying cache behavior for one) 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026So looking at an ASM sequence of repeated compare-and-branch and saying "oh yeah thats a switch-case, I'll write it that way in C" is all well and good but maybe in another place it's "....the program can reach this function in a different state in a minority of cases and not do what it seems to" 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026But, often, the annoying behavior of the hardware rears its head in the form of *timing*. Multiple parallel pieces running and their exact cycle timing might matter (or even sub-cycle!) So figuring out "what does the code do?" is a larger question of "what is the whole system doing at that moment" 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026So for n64, for any given game you choose, maybe everything is well known and well behaved, and you do just need to figure out what is code, what is data, what is the code trying to do, make C versions of each function, compile, link against runtime, call it a day 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026Luckily, however, Nintendo highly encouraged using their own stock microcodes, so most didn't write their own, so the community has gone through and studied and abstracted the behavior of the known microcodes and there's a runtime you can compile against that does this among other things 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026You're trying to eliminate emulation, you don't wanna execute the microcode one instr at a time and set each register and draw dot by dot or whatever it happens to be doing. You want to abstract the whole game data to RSP to RDP pipeline into "make triangle here", "shade with vertex colors" etc 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026The RSP takes custom microcode. It's an entire compressor. RSP microcode is Turing complete. Basically it runs shaders; ahead of its time. The R*D*P is fixed-function so you can just abstract all its behavior into modern high level behavior in your graphics pipeline, but the RSP could do anything. 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026To give a concrete example, I've looked into n64 ('cause I'm more nostalgic for it than Playstation, lol), I know a bit about it technically but not too deep, and one Big Deal on the 64 is the RSP, the chip that massages data into display data for the RDP (R"S"P and R"D"P) 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026So that's why I asked because the answer is kinda "....well, whichever platform you're interested in, you're gonna wanna look at what static recompiler do they have if any, and what supporting runtime exists etc" for each system there will be some community tool chain and knowledge base 100
William Wenge-Murphy @billywm.bsky.social · 02/10/2026Well, in my experience with reversing it's not the assembly language per se that's the hard part its all the nuances hardware behavior. Its not just "this reads a byte and that does an indirect jump and the pointer comes from this table" its what does that all mean in relation to the HW quirks 100
Reposted by William Wenge-MurphyK25fF @k25ff.bsky.social · 27/04/2024"Has anyone drawn skibidi Duchamp’s Fountain yet" –A discord user, about a minute before they saw the worst thing in the world. (1642) 210535
William Wenge-Murphy @billywm.bsky.social · 01/10/2026Gonna guess PS1 cause thats the reversing you've done right? 100
William Wenge-Murphy @billywm.bsky.social · 01/10/2026Which platform? Because that would be platform specific, as far as what you do to statically recompile the code and what framework you hook to to provide graphics and other HW functionality etc (haven't done a recomp but have reversing so not talking out my ass lol) 100
William Wenge-Murphy @billywm.bsky.social · 01/10/2026The recompile targeting PC part is sort of the Rest Of The Fucking Owl Step lol. 110
Reposted by William Wenge-MurphyWatermelon_Sir @watermelon-sir.bsky.social · 16/06/2026Made #spore in #spore 29532
Reposted by William Wenge-Murphysap @sap6.bsky.social · 14/09/2026you're lucky if your phone can even pass the Mcdonalds Anticheat 151
William Wenge-Murphy @billywm.bsky.social · 28/09/2026I'll have to do a pass and make sure that's not a superficial misunderstanding of their codebase then leave a note in their issues list or throw together a simple PR. 000
William Wenge-Murphy @billywm.bsky.social · 28/09/2026I pointed ChatGPT at the ExCSS codebase to have it give me a full list of what the parser throws out instead of keeping it in the AST, as a baseline for my fork, and it also just went ahead and found some bugs in their code while it was at it, lol 100
William Wenge-Murphy @billywm.bsky.social · 27/09/2026Some of the funniest Retsupurae content is when they went to Newgrounds and read some of the insane comments on these things aloud youtu.be/40pGaVIuTV4youtu.beScrew DetectiveYouTube video by retsupurae 010
William Wenge-Murphy @billywm.bsky.social · 27/09/2026Onions do get me going not gonna lie. It's the pepperoncinis that kill the mood 030
William Wenge-Murphy @billywm.bsky.social · 27/09/2026Plumbers Don't Wear Ties, they wear low-cut shirts for their big ol' titties 040
William Wenge-Murphy @billywm.bsky.social · 27/09/2026Yeah i seriously thought it was the sandwich shop and was thinking of playing it 140
William Wenge-Murphy @billywm.bsky.social · 26/09/2026"Your honor can I please be banned from the courtroom" 000
William Wenge-Murphy @billywm.bsky.social · 26/09/2026And Licc'em Low Lisa has a chorus, it's not just three and a half minutes of bridge 000
William Wenge-Murphy @billywm.bsky.social · 26/09/2026If you like this you'll love the Afroman trial, and nobody died except his door. 100
William Wenge-Murphy @billywm.bsky.social · 26/09/2026All the references to Narodnaya Volya literature in Rick and Morty just go right over my head 010
William Wenge-Murphy @billywm.bsky.social · 25/09/2026FUCK, I GOT DESTROYED BY WHITNEY'S MILTANK. IT'S BEEN SO LONG SINCE GSC I FORGOT pokerogue.netpokerogue.netPokéRogueA Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, and reaching Pokémon stats you never thought possible. 010
William Wenge-Murphy @billywm.bsky.social · 25/09/20266.7 beta will be adding a lot, to their credit - including Grid! - but there's still so much low-hanging fruit to make it tempting, including media queries and nesting (nesting being mostly a parsing-side problem). There's dozens of properties that can be lowered without any custom rendering work 000
William Wenge-Murphy @billywm.bsky.social · 25/09/2026Parsing is drop-in but to get started you have to do a selector engine which is gnarly, and also resolve specificity. And you can do that naively and inefficiently, but to do it *right* you'd need to be doing bookkeeping on subtrees (for partial updates) and....yeah, that's all a whole....thing. 100
William Wenge-Murphy @billywm.bsky.social · 25/09/2026vh/vw you just look at the viewport size, convert to pixels, inline references. rem, similar, inline a value (em requires cascade). They don't even have hsl()/hsla() either, which, again, you can just lower to rgba() trivially. And apparently ExCSS does a ton of color math for others like lab & lch 100
William Wenge-Murphy @billywm.bsky.social · 25/09/2026It's really, really tempting to make a preprocessor that "lowers" extended properties to UITK compatible ones. I might not be able to resist. But you have to solve like 5 different problems just to get started, and then you can finally implement a few 'simple' properties. 100
William Wenge-Murphy @billywm.bsky.social · 25/09/2026UITK also has so many gaps oh my god. Designing without rem or em units is INSANITY. No viewport units is also irritating considering how simple they would be to implement, and that unity uses an off-the-shelf parser (ExCSS) for the syntax side anyway, but a lack of rem or em is CRAZY 100
William Wenge-Murphy @billywm.bsky.social · 23/09/2026ChatGPT is fantastically stupid about failing to generalize its knowledge of web UI dev to Unity UITK 000
William Wenge-Murphy @billywm.bsky.social · 22/09/2026Currently addicted to Horsey Game. Set a goal for myself of figuring out the genetics system without looking at guides/wiki 000
William Wenge-Murphy @billywm.bsky.social · 20/09/2026Try not to fill any holes on your way through the parking lot! Actually if you could that would be great it's in pretty rough shape 001
William Wenge-Murphy @billywm.bsky.social · 18/09/2026Yooka Laylee failed to live up to the Banjo Kazooie legacy because that's only one instrument not two. 011
Reposted by William Wenge-Murphyicyjiub.bsky.social @icyjiub.bsky.social · 17/09/2026Slop is when you don't manually rewrite thousands of xml files 281
William Wenge-Murphy @billywm.bsky.social · 18/09/2026(Lanier's form (a la the meteor shower thing) would presumably be that ALL integers are conscious because all integers represent some tape for some TM that interprets it as consciousness, within the infinity of possibilities) 000