Seph De Busser
sephdebusser.bsky.social
Seph De Busser
@sephdebusser.bsky.social
Anodyne Remaster, Autistic, Software Dev@Nokia
November 2, 2025 at 8:03 PM
And with that, the decompilation of pokepark wii has officially started 😀
Found the math lib source that matched extremely neatly(only had to patch one function), adding another 16kB of matched code bytes pushing me over the 0.5% treshold.
decomp.dev/SephDB/pokep...
August 18, 2025 at 8:55 PM
those rules at page 106 and ahead just say "or otherwise violate the Standards". "Standards" is defined in the definition section, page 206 as basically anything written by the Corporation(see screenshot), so it includes the NDA'd documents they mention later in the thread.
August 2, 2025 at 12:20 PM
July 31, 2025 at 6:00 PM
I was encountering the first pattern a lot in ghidra's decompilation output for pokepark's scripting language, but then I tried to see if simplifying the implementation of the jump instruction used would help, and it gave me the second output. Which is more unreadable, you think? 😂
June 30, 2025 at 2:05 PM
Turns out that giving ghidra correct stack information is important 😅
(I finally found out how to do so for this bytecode processor that does some weird shit)
A loop with a call to another function inside it made analysis go haywire until it knows the calling convention of popping args off the stack
June 28, 2025 at 6:49 AM
So, err, about that yak shave of a decompilation project😂 Five layers deep at this point ^^
I'm having fun though.
May 7, 2025 at 5:30 PM
so
struct A { int a; }
struct B : virtual A {int b;}
struct C : virtual A {int c;}
struct D : B,C {int d;}

Looks like this in memory:
May 3, 2025 at 8:15 PM
Decided to take a detour and write some scripting for ghidra to automatically recover class hierarchies based on available RTTI information. Here's the player class(the DelegateObserver inheritance is non-virtual, btw). Next up: figuring out ghidra's analysis API so I can automate all of it.
April 27, 2025 at 8:44 PM
Making some progress on this again, been busy reverse engineering the types involved engine-side. Just got all 14 main "managers" given their vtables and such! The ones that most likely require a deep-dive are GlobalManager, EventManager and EventScriptInterface.
April 20, 2025 at 7:59 PM
Working on archipelago(randomizer) integration for Anodyne. Just finished getting co-op synchronization working for quite a few in-game events.
March 24, 2025 at 8:52 PM
And with that, a milestone has been reached! I have enough instructions defined to disassemble a simple function. This one is called OPEN, so it probably opens the gate somehow. Need to figure out what all these syscall 0x15 do later ^^'
February 3, 2025 at 9:55 PM
And that's the first successfully disassembled instruction! Biggest stumbling block was figuring out bit ordering for the different fields in SLEIGH ^^' Modelling these syscalls in PCode is going to be a challenge not to make them all black box external calls though.
January 28, 2025 at 10:13 PM
And that's an initial loader for the format written(just the header right now, but a bunch of legwork done)! I will eventually get there, Ghidra docs are few and far between though ^^' Pokepark's scripts _will_ get broken open eventually.
January 24, 2025 at 10:53 PM
Pokepark(Wii) reverse engineering, turns out the game's scripts have their symbol tables encoded in a base 40 string(6 characters for each 4 bytes of data). After some wrangling with Ghidra's API, I now successfully have a custom data type that visualizes the strings correctly!
January 21, 2025 at 10:34 AM
Pretty happy with how neat this bit of bingo checking code turned out. Web client for the bingo AP world. #screenshotsaturday #gamedev
November 23, 2024 at 10:17 PM