Live data from Hacker News

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

decomp-academy.dev

31–40 of 83 posts

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

#32

Earlier quoted context omitted.

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

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.

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

#34

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…

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

Matching decomp would require the same compiler and flags as the original game, right? How is that determined?

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

#35

Dumb question — can LLM be used to reverse-engineer firmware blobs or binary only drivers for Linux, to create open-source drivers, for example, for unsupported smartphones?

That is already happening for old games, and while they usually run on simpler CPUs than modern ones, I don't see why this couldn't be possible for binary Linux drivers.

The toolchain would also be easier to match, unless they were using some proprietary compiler you can't get your hands on.

Just lookup how they match the toolchain, and find an agent harness to do decompilation.

I wonder if doing this kind of stuff with more recent software will cause more legal problems though. I am not really sure of the legal status of the resulting code.

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

#36

Dumb question — can LLM be used to reverse-engineer firmware blobs or binary only drivers for Linux, to create open-source drivers, for example, for unsupported smartphones?

Most likely, this (reverse engineering) is one of the numerous things these LLM companies target. You can also assume all of the internet has been slurped up in to any frontier model. That doesn't mean what you want will be a one shot prompt though...

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

#37

Dumb question about reverse engineering binaries: is there a way to only do it piecemeal? I'm eventually waiting for LLMs and harnesses to get good enough to reverse engineer BFME (old Lord of the Rings game that still has an active modding community), but it's a multi GB sized game that would have to be done in bite-sized pieces. Basically; can you reverse engineer in bite sized pieces, and recompile/customize their…

Yes, quite easily. It requires some setup, but the basic idea is that you create a DLL and a simple loader program which injects it into your target process. You can then use a hooking library like MinHook to replace individual functions with your own implementations. If the target application is in C++, you can additionally do vtable hooking and replace functions even easier (though it will always be a combination of the two techniques).

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

#38

Earlier quoted context omitted.

Does it being a creative transformation rob the derivative work status? Personally, I'd liken the process of decompilation to that of translating a book from one language to another - the copyright on the original work does not become void merely because the process of translation requires extensive creativity. Nicalis and Take-Two have both gone after decompilation projects, also. In particular, Nicalis has gone aft…

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.

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

#40

Is there something similar to learn ARM decompiling?

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
Post reply on HN