HNHacker News
TopNewBestAskShowJobs

jackpriceburns

89 karma · joined February 9, 2026

Senior Software Engineer @ Lopay https://jpb.dev
submissionscomments
jackpriceburns··on Cracking Anubis Challenges
Yeah I feel static site generators and CDNs are the way. I've been using those for years and it surprises me how people still setup LAMP servers to this day
jackpriceburns··on Cracking Anubis Challenges
I had recently done some work where I had rehash a bunch of insecure hashes for security reasons. It required brute forcing about 1 trillion SHA-256 hashes to achieve this. Was the first time I had actually ever used Hashcat, very cool piece of software. I later had a shower thought about Anubis and it's proof-of-work solution to tackle web scrapers. I thought... What if I cracked the hashes out of the browser? Here is my write up of what I discovered.
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
You're not completely wrong, AI does usually have a weird proclivity for blue/purples lol
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
- The purple theme was a conscious choice, not an AI's decision. I wanted to match the colour theme of the GameCube. You can see the current colour pallete here: https://decomp-academy.dev/brand/brand-sheet this will likely go through changes in the near future but I'd like to stick to the purple theme as a nod to the GameCube

- I've just added some new lessons before the first lesson to explain assembly syntax!

- I believe there are around 200-odd instructions, and a lot of them I'm not sure you'll ever see, but I can certainly look at adding something like this

jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
There will deffo be a lesson on how to setup a decomp project from scratch! This is far from finished, there's opportunity to add so much more. I'd argue that I'd rather teach the user the basics of matching first before diving into setting a project, as setting up the splits.txt or symbols.txt might be quite a leap for a beginner. Feel free to keep checking in once a week and the lesson will appear :)
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
The lessons taught in this can be applied to x86/64, but can deffo look adding different instruction sets in the future
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
No plans to profit at all from this!
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
Will look at adding this!
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
I'm not aware of anything that's similar to this for ARM.. but in the future there is certainly room to add this. For now I'm focusing on getting the current set of lessons up to scratch as a lot of them need improvement. Then I think I want to add C++ as a language and allow you to change which version of MWCC you can run
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
Just deploying a fix for this right now! Didn't expect this to be so popular haha
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
They do an alright job, but they deffo need human-in-the-loop for the best results. I wrote on my blog about how I wrote an MCP to communicate with the Dolphin emulator. Allows Claude Code to set breakpoints, read the memory, write the memory, etc. It was a super fun way to work with Claude and has made naming functions/structs/fields/etc much easier! https://jpb.dev/blog/dolphin-debugger-mcp/
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
Most games will have been written in a higher level language first (like C or C++) and then compiled into assembly. With matching decomp, we write C, compile it to assembly, and see how much it matches the retail assembly. Using this we can write C that we theorise is almost identical to how it would have been written originally. There are things lost during the compilation process (like comments, function names, etc) these we have to name manually and it's a long process to do! But yes, the goal is to have C at the end and once you have C you can recompile using a different compiler and target any architecture you like
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
Are you on mobile? You'll need to switch to the code/review tab to see. I think mobile support is a bit funky, I'll look at fixing that as soon as I can!
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
AI is being used in many retro game decomp projects!

One of the reasons I went down the path of learning decomp myself was because AI had hit a wall. Matching decomp is quite a bit harder than just normal decomp as even simple things like using an if/else instead of a terney actually change the assembly. AI did an amazing job of getting to 95% matches on nearly all functions, but once it got to that tail end, it started to struggle quite a lot and would often just claim "it's impossible". So that's when I pivoted and started learning actual decomp myself so that I could prompt AI better and finish off the star fox adventures decomp!

jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
decomp.me is also a great tool! The playground section of the site allows you to turn the code into a decomp.me scratch. I also use the objdiff wasm on the frontend for the assembly diffing. I don't see much point in reinventing the wheel and these tools are already great, so I'll deffo be leaning on them when I can
jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
I was thinking of something similar as well, perhaps a section of this site after you've completed the course where we show functions from popular decomp projects that aren't 100% matched, and you can match it. Doing so will magic up a PR or something.. It's a great idea!

As for cheating, the community calls this a fake match. I don't check that the code you submit conforms to what I expect, I only check if the assembly matches. You can do interesting things where you do a series of bit shifts and bit masks, and you can replicate an equality operator `a == b` or a low clamp `x < 0 ? 0 : x`. I'm not sure if I'll lock this down or not, for people who have accounts, I can see their submissions so I think I'll play it by ear and see what happens. If it looks like people are constantly fake matching, I can look at tweaking the lessons or locking it down more

jackpriceburns··on Show HN: Decomp Academy – Learn to decompile GameCube games into matching C
The backend is closed source, but it runs all on AWS Lambda/DynamoDB/APIGateway and is written in Rust. Getting the compiler running in a Lambda was an adventure of it's own