why do I have to learn powerpc assembly
I don't wanna
I just want to turn a BEQ into a B
and by "assembly" I mean "machine code".
just knowing assembly isn't enough. I need to know how to encode these damn instructions
oh hey "beq" isn't a real instruction. it's a mnemonic for a variant of BCx instruction!
OKAY I think I successfully hacked this game to not care about save game CRCs.
weird. I modified the byte I thought was controlling what color skirt I was wearing, and it changes the MARKER selecting my color, not the color itself. strange!
yeah the color is a pointer/res_id. boo. I can't just tweak a byte to get FORBIDDEN COLORS
wait no
is it just RGBA?
it is! enjoy my magenta skirt, yo!
the pants and skirts use a completely different coloring system.
of course they do.
WHY IS THERE SO MUCH FUCKING GENDER IN MY WHEEL OF FORTUNE GAME
reverse enginering powerpc binaries is too hard
let me just reverse engineer this completely undocumented stack-based virtual machine inside this game
oh god they're either running the VM recursively (running scripts inside other scripts) or they've implemented some kind of coroutine situation. either one scares me
I got distracted by rickroll. this keeps happening

Here's the video of my rickroll attempts. It got the audio sampling rate wrong, so I think the video is playing at 2/3'rds speed.

https://www.tumblr.com/foone/713265491793395712/so-i-was-hacking-on-wheel-of-fortune-like-you-do

Foone Turing

So I was hacking on Wheel of Fortune (like you do) and I tried to replace one of the videos it plays at startup, and accidentally created this amazing remix of Never Gonna Give You Up, thanks to the…

Tumblr
and it turns out it glitches and skips because I was accidentally trying to write out every frame as a PNG. whoops.
well I think I found one of their debugging functions.
unfortunately, they wrapped the contents of the variable in an ifdef, so it's now an empty function
the cursor class has the pointer as an array, 4 items long.
this seems really weird until you remember this is a wii game, which is one of the only situations where you might regularly have 4 cursors on screen at once
oh no
there are coroutines
@foone You found the crimes?
@ddr MULTITHREADING IS A CRIME AGAINST REVERSE ENGINEERS
@foone @ddr cry about it
@julia @ddr ALREADY CRYING. I'M REVERSE ENGINERRING POWERPC CODE, REMEMBER?
@foone @ddr okay now I feel bad for bullying you

@foone You have to be very careful about coroutines. They hide in tall weeds, so it's difficult to spot them. Sometimes they look like they're asleep, but they might see you, and they can run amazingly fast. Their jaws are super strong. Best to stay far away from them.
@brouhaha @foone "A wild coroutine appeared!"

@foone lua

bottom text

@DevComp I wish they'd used lua. it would have been easier to reverse engineer!
instead they built their own bytecode VM
@foone That is *amazing* I'm still laughing
@foone Great, now I know what vaporwave Rick Astley is like.
@foone Funny coincidence on my home timeline. Not entirely sure whether it is or he was actually replying to you.

@foone I feel like machine code has gotten so complex in the last few decades, it's like they expect you to just use the compilers.

I'm still surprised when I realize most software for home computers and game consoles of the 70s and 80s was written in assembly.

@foone If you think about it, gender is the real wheel of fortune.
@foone it smacks of gender, you’re saying.