Live data from Hacker News

Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

decomp-academy.dev

71–80 of 83 posts

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#71
post #45

Love the idea! Assembly has been on my forever-list to eventually learn. I have worked through the warmup exercises, but I doubt I'll have the time to continue much past that. A few points of note: - Not a fan of the purple theme, it screams "AI-generated". It's not a deal breaker, you can keep it if you have more important concerns, but just something to point out - It would be nice to have a "Chapter 0" for a prime…

- 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

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#72

This was interesting, but actually trying to contribute to decomp.me was still really hard! I found a lot of code that seemed perfect except for instructions slightly out of order, or dead pop statements after the logical end of the function. I wasn't able to actually fix anything :( Also, I wish there were a guide about how to start from nothing on a new GC game. That's more interesting to me than putting the finish…

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 :)

I've honestly think "beginner" is the wrong target anyway. If you're interested in contributing to a decomp, assembly basics are table stakes. Focus on the things that someone who already knows assembly won't just know.

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#73

Earlier quoted context omitted.

The RE3 devs were distributing binaries. This is known to be an issue. The source code is theirs, binaries mixed with other copyrighted content is not. They also allegedly violated a EULA, but I haven’t looked closely into that. CSE2 was distributing binaries as well. So was SM64 decomp and Nintendo told them to stop, they did and continued to share their source code. Tetris v. Xio is unrelated to reverse engineering…

> The source code is theirs, binaries mixed with other copyrighted content is not. Distributing binaries should not matter. If the binary is just compiled from the source code, the binary is just an (non-)infringing as the source code. > They also allegedly violated a EULA Meaningless. EULAs are not the law.

If the sources produce significant sequences that match the original binary, that binary is probably infringing. The community gets around this by distributing binary patches instead.

In some cases the EULA is what gives you access to the original binary to begin with (often the case with digital marketplaces, but also true of some physical media after 2010 or so). These have little to do with copyright, but whether someone could access the binary on the first place. To the best of my knowledge this contract law has largely been considered valid, but I try to avoid working on things with EULAs, so haven’t looked into it in depth.

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#74
post #45

Love the idea! Assembly has been on my forever-list to eventually learn. I have worked through the warmup exercises, but I doubt I'll have the time to continue much past that. A few points of note: - Not a fan of the purple theme, it screams "AI-generated". It's not a deal breaker, you can keep it if you have more important concerns, but just something to point out - It would be nice to have a "Chapter 0" for a prime…

- 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…

> I wanted to match the colour theme of the GameCube

Ouch, now I feel like a real asshole; I was reminded off all those purple gradient slop websites. Yeah, your reasoning makes perfect sense. I completely forgot about Nintendo's weird purple phase (GBC, GBA and GC all had purple as their main brand color) because I had a silver GameCube.

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#75
post #45

Love the idea! Assembly has been on my forever-list to eventually learn. I have worked through the warmup exercises, but I doubt I'll have the time to continue much past that. A few points of note: - Not a fan of the purple theme, it screams "AI-generated". It's not a deal breaker, you can keep it if you have more important concerns, but just something to point out - It would be nice to have a "Chapter 0" for a prime…

- 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…

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

Thanks, I just read them and they are well-done.

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#77
post #74

Earlier quoted context omitted.

- 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…

> I wanted to match the colour theme of the GameCube Ouch, now I feel like a real asshole; I was reminded off all those purple gradient slop websites. Yeah, your reasoning makes perfect sense. I completely forgot about Nintendo's weird purple phase (GBC, GBA and GC all had purple as their main brand color) because I had a silver GameCube.

You're not completely wrong, AI does usually have a weird proclivity for blue/purples lol

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#78

I recently heard that Super Mario 64 (N64) modding community reverse engineered the game enough to recreate more-or-less accurate C code that can be compiled in binaries to execute on many popular target architectures. Have you managed to get beloved games into modifiable C code? Or is it more common to invest a lot of work to document assembly language functions? I know some old assembly but no idea what is involved…

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…

Thanks for replying! Going to check out your educational resources

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#79

Earlier quoted context omitted.

I say this every time it comes up, but polluting a decomp project with AI generated code is risky, imho. What makes decomp legal (in the US) is that it’s a creative transformation performed by a human and the resulting copyright of the code that just happens to compile to the same binary is owned by the person doing the decompiling. USPTO and court precedent is leaning heavily toward LLM output not being transformati…

These decomp projects are already violating copyright by distributing the decompiled source code. Using LLMs is less risky than sharing the code.

Can you please elaborate on why distributing decompiled source code is violating copyright? And Nintendo is litigious, if it was black and white surely they would have taken down everything by now? How do you know the major LLMs are not trained on these decomp projects and/or leaks already?

Re: Show HN: Decomp Academy – Learn to decompile GameCube games into matching C

#80

Damn this is next level. Congratulations on your achievements! When Fable was around I thought i'd test it by taking an old piece of Windows software from the late 90s/2000s(ModPlug Player) and seeing how well it could convert it to being a native Mac application. I was blown away at how it got 85% of the way there in one prompt. Things such as writing a PE extractor, recovering the complete skin, menu tree, full acc…

Makes one wonder, why should anyone embark on learning this intricate and time-consuming art of reverse engineering when LLMs are on their way to automate it in seconds...

Why should we wait for LLMs to become good enough to spoon feed the end result when we can do it ourselves?

These are beautiful, collaborative efforts and require members to constantly improve their learning, communication, patience, and technical skills. These are skills that transfer to other parts of life, same as other hobbies like sports and martial arts. It's an incredible manifestation of the hacker spirit. Do we as a community not enjoy tinkering anymore?

This isn't a consumable product. We aren't selling anything here trying to make a quick buck. There's no "rush to market" pressure to finish these projects.

The perspective I see creeping up in many engineering areas of "wait for AI to automate everything in life" seems to value the end product more than the means.

It's a valid question. The short answer to the question is counterproductive in my opinion.

Post reply on HN