5 ms·
Decompiling a Nintendo 64 game in 84 days
- hombre_fatal 1mo agoIt's pretty amazing what you can do when you embrace LLMs, figure out how to build one high-quality rigorous project with them, and then start working on more projects. You become a machine with your workflow, once again limited only by your time/energy, tokens, and your discretion on how to spend it.
- plastic-enjoyer 1mo ago> It's pretty amazing what you can do when you embrace LLMs, figure out how to build one high-quality rigorous project with them, and then start working on more projects. Indeed. But I think it's fair to say that just embracing LLMs is not enough.
- hombre_fatal 1mo agoI'd consider embracing to include developing expertise in the tool.
- bitwize 1mo ago[flagged]
- VCFundedGenYer 1mo agoUsing AI is cognitive surrender. It's not your code, it's not your work.
- onlyrealcuzzo 1mo agoUsing typewriters is surrender! Not your handwriting, not your work!
- some-guy 1mo agoI use AI all the time for coding, but a tool that non-deterministically reaches potentially a different output than I would have produced myself is not analogous to typewriters.
- qarl2 1mo agoYou yourself would be non-deterministic if we could rewind time. So what's the issue here? Not to mention, LLMs can be made deterministic if that were actually valuable. Seems like determinism is just the latest excuse to hate.
- some-guy 1mo agoIt’s not exactly determinism, it’s authenticity. If we rewind time, of course the words would be different. It’s not relevant to my argument. There’s a reason why the top comments of HN blog posts whine about articles that are clearly written by AI. I use AI constantly as a coding agent, but I care deeply about the authenticity of the words I write intended for other human beings to be my own.
- qarl2 1mo ago> It’s not exactly determinism, it’s authenticity. I hope you understand, by so glibly switching from "determinism" to "authenticity" you've just provided more evidence that this is just the latest excuse to hate. But that aside - what happens in a couple years, when LLMs inevitably improve, and their writing is objectively superior to human writing? And people who just want to read well-written material won't care about the authenticity? I suspect there will be another glib switch. Because the reality here is just that AI is hated. Full stop.
- bakugo 1mo agoI think it's pretty telling that the only response techbros have to that is some form of false equivalence, every single time.
- 1mo ago
- LPisGood 1mo agoCould you not say the same about using a compiler or higher level language or a library you don’t understand or an algorithm you don’t understand or a chip that you don’t understand?
- deleted 1mo ago[deleted]
- inigyou 1mo agoYes. How many JavaScript bootcamp programmers don't know how memory works?
- agiacalone 1mo agoWhen I was in high school, graphing calculators were pretty new. New enough that most teachers had not yet encountered them. I was a pretty nerdy kid even then, and I saw graphing calculator as 'portable computer' in 1993! So, of course I wanted one. When our teachers found about them, they banned the use of graphing calculators, some teachers going so far as to only allowing 'four-bangers' (a basic one) for classes lower than Trig (I never got to Calc in high school). Funny, but your statement reminded me of what one of math teachers used to say: "If you use a graphing calculator, you aren't doing math." It seems really quaint today.
- teeray 1mo agoIt’s more like cheating off your neighbor’s math test than using a calculator
- nsxwolf 1mo agoIf I hand you a math problem, and you point your camera at it and write down ChatGPT’s answer, you are definitely not doing math.
- agiacalone 1mo ago"If I hand you a equation to solve, and you type in the numbers, hit enter on your programmatic calculator, and write down Texas Instruments' answer, you are definitely not dong math." <-- would have been my teachers' attitude too. Throw in "and when the batteries in your calculator die, you'll need to know how to do it by hand!" for good measure. :-) I jest...
- mysterydip 1mo agoI think the difference with the calculator analogies is a calculator just speeds up calculations you could do yourself (granted some very slowly). I can’t type in “sally has 35 apples, and wants to give an equal number to each of her 7 friends. how many apples does each get?” I have to know to do 35/7. But an ai will do that problem solving for me, with zero understanding on my part.
- TuxSH 1mo agoIMO it's fine if you use it to review hand-written code. Vibe-coding (and especially 100% slop projects) on the other hand, is indeed cognitive surrender as it's identical to cheating on homework back then.
- nickysielicki 1mo agoActually it is your code and it is your work.
- CursedSilicon 1mo agoThe legality around that has not yet been tested, so
- iAMkenough 1mo agoIn the same sense that hiring someone overseas to do your remote work job is submitting your code and your work.
- deadbabe 1mo agoThere's a time for cognition and a time for just moving quickly and getting shit done. Downloading a bunch of open source libraries and putting together some project with a bunch of glue code also requires little thinking, but before AI no one really said that was "cognitive surrender". People even got pats on the back... for using other people's work to build something.
- rasz 1mo agoits a decomp, it wasnt your code to begin with
- cdelsolar 1mo agoYes it is
- chollida1 1mo agoWhat about writing in C. If you use a compiler its not your code that's running and not your work. You are setting the bar way to high. We use LLM's for our coding and its most definitely our code and work. How would it be any different than a collogue writing code that you review and commit?
- bakugo 1mo ago[flagged]
- bitwize 1mo agoUsername checks out. You might be right. I'm a better programmer than most, but I'm nowhere near as good as I could be, and there is still so much I could learn and improve upon. But back when I was saying that "AI is better than most programmers", ~6 months ago, I figured people at my level were still somewhat safe, as the average programmer, even working professionally, is a shockingly low bar. Do not judge the entire profession by Hackernews posters; most of us are in the upper quartile or so. These days, for small to medium-sized tasks, frontier LLMs are consistently well within that upper quartile. People at my level have a lot to be concerned about, as most of our day-to-day can be automated away. Sure, there's need for judgement and architectural discipline, but in most shops that's done by the people we used to make fun of in the 2000s, who sit in design review meetings and produce box-and-arrow diagrams, not code. Those are now the real bringers of value to a software development company or division. At a bare minimum, it is irresponsible to ship code that has any sort of security requirement without using AI. Frontier models are able to discover zero days in minutes that would have taken months with human investigators, and if you're not auditing and red-teaming your own code with AI, someone else will use AI to pop it. You are just not working to a professional standard in 2026 if you're not using AI.
- bakugo 1mo ago> I'm a better programmer than most I don't think so. If you were truly better than most, you'd be proud of your work, instead of trying to avoid doing it at all costs, while accusing others who don't do the same of "not working to a professional standard." Can't write bad code if you don't write code at all, am I right?
- bitwize 1mo agoI am proud of my work, and I hate working with AI. But reality is what it is. The economics are what they are. And at the present time, writing code without LLM assistance is a mere handicraft, an idle pastime indulged in as a curiosity. It's like writing games in BASIC on the Commodore 64—no one is doing it anymore for serious stuff. Software engineering is the practice of formulating and implementing procedures to produce software at industrial scales to meet industrial needs. And right now, there is no future for industrial-scale software development without AI. People and companies who refuse to use it will be lapped, in terms of speed, quality, and security, by those who do use it.
- tom_ 1mo agoProducing shit code slowly hasn't held me back so far and I don't intend to start letting it do so now.
- xyzsparetimexyz 1mo agomatching decompilation is a verifiable target. Its hard to create slop that still matches. The same does not hold up for coding with llms normally.
- krystalgamer 1mo agoyou can create slop that matches, they're called "fake matches". it's basically when you coerce the compiler to output what you want and then the source looks unrecognizable. LLMs still produce some of these, specially on C++ decomps.You can see it most often when calling the base class constructor/destructor. Here's an example: https://github.com/emoluvjd2/thps2-demo-decomp/blob/33d2c12bbc4b1606fb3fb5690a2b59335a9127b7/src/CCHUNKBIT.h#L41 https://github.com/emoluvjd2/thps2-demo-decomp/blob/33d2c12b...
- whatsakandr 1mo agoAs a C++ dev, that operator delete looks like something I would see in prod.
- Karliss 1mo agoMatching decompilation is a verifiable target that ensures feature parity but it says nothing about being reasonable non slop decompilation. Disassembler output can relatively easily match original binary, I doubt anyone would consider it decompilation. Let's say you add requirement of being higher abstraction language than assembly. You can translate the assembly code 1:1 with simple string substitions to C code which would provably replicate the behavior of program perfectly. I would consider that more of hard coded emulation, opposite of JIT like ahead of time code translation. Just because the intermediate langauge is higher level language than assembly doesn't automatically mean that the program text operates at higher level of abstraction than assembly. I have seen plenty of decompilation projects where you start reading the code many functions contain nonsensical variable reuse (and name that match the register names), address calculations and memory casts and array calculations, arrays of function pointers, offsets within structures which strongly mirrors the assembly code. The problem is that you can't draw a hard line how good do the variable/function names need to be so that it can be considered decompilation instead of hard coded emulation. It's hard to draw a line for how much of higher level language features you need to use to be considered decompilation. It's hard to define how logical the control flow needs to be. The line becomes blurrier by system programmers approaching it from the other side. Sometimes an extensively optimized code can contain a lot more manual memory mangling, index and offset calculations, manual unrolling than the language requires. So many C programs with homebrew systems of emulating virtual functions using structs of pointers. In such situations it's hard to tell if decompilation is incomplete or whether program was written that way from start. Another possibility of junk decompilation (which perfectly compiles to byte identical copy of original executable) is program which depends on exact program layout in memory or undefined aspects of programming language. It would perfectly replicate original behavior on original hardware/compiler, but provide 0 insights in intended program behavior and fail miserably when attempting to modify the code or port it to different hardware/compiler. For example the "decompiled" code might intentionally peform out of bounds array access thus touching completely different variable or depend on fallthrough between functions lacking return statement. Taking it to the extreme would be something like: ``` char data[] = {0x10, 0x12, 0xab, 0xcf, ...}; // bytes corresponding to majority of original program. int main(){ ((void*())data)(); // cast the array to function pointer and execute it } ``` It might behave exactly like original program, but that's junk decompilation. You could add additional restriction that C program isn't allowed to exploit any undefined or machine specific behavior, but then there is very high chance that even original program wouldn't satisfy it. Original program might also contain parts of it written in assembly for performance reasons or because that was only way to access certain hardware features. What does it mean for decompilation? Is decompiled code not allowed to use the same techniques. If decompiled code is allowed to have some pieces of assembly what stops it from using it for everything. There is no way of knowing precisely how much assembly the original program used.
- ThrowawayTestr 1mo agoAwesome. Hopefully AI will allow more games to be decompiled in the future. Anyone working on a decomp of Perfect Dark?
- QuantumNomad_ 1mo agohttps://github.com/n64decomp/perfect_dark https://github.com/n64decomp/perfect_dark claims to be “a complete decompilation of Perfect Dark for the Nintendo 64”. And: “When a matching decompilation is compiled with the same compiler that the original developers used, the output will be exactly the same as the retail game, byte for byte.” Relatedly, https://github.com/perfect-dark-pc-port/perfect_dark https://github.com/perfect-dark-pc-port/perfect_dark forked from the above describes itself as “a work-in-progress port of the Perfect Dark decompilation to modern platforms”. Further: “The game is in a mostly functional state, with both singleplayer and split-screen multiplayer modes fully working. There are minor graphics- and gameplay-related issues, and possibly occasional crashes.”
- amjnsx 1mo agoI’m surprised the game companies themselves aren’t interested in these projects. Seems like easy money to just decompile a retro game, add some quality of life improvements and stick it on steam. Are their hands tied by legal or what other factors are preventing this?
- Teknoman117 1mo ago> Are their hands tied by legal Yes. Even if you're the owner of the game, the contracts for the voice actors, motion capture, models, etc. frequently define very narrow terms of usage. Defining the exact release platforms is common. Not to mention profit sharing if the actors or studios you're hiring are popular. It's even worse for retro games. Many times the original rights holder went out of business, sold their rights, died, or something else that muddies the ownership chain.
- wombat-man 1mo agoI don't know how they made it, but there was a GoldenEye made for Xbox 360 that seems to only update the UI. The controls are maybe a little different, but you can swap between original and updated renderer in game. Anyway, they couldn't ship in the end due to legal stuff.
- godwinson__4-8 1mo agoYes many games are caught up in IP hell. Including the one my username is inspired by. It's why you see a lot of fan remakes. Another sad side effect of corporate owned IP is also a lot of times the individuals who did the bulk of the work on something can't be the ones to do a remake. They don't own their own work. A company owns it. That's what most of us sign up for to get a paycheck. But when it's something like film or games, the effect on artists or designers can be pretty depressing. So yes, games are not unique in this way. I am hopeful in the optimistic future case where LLMs lead to lower barriers to entry, UBI, and so forth that copyright essentially disappears, or at the very least is severely reformed. Many things should simply enter the public domain at a far more accelerated rate.
- quacked 1mo ago
- minimaxir 1mo agoIt's especially annoying that LLMs/agents are a logical starting point for decompiling old games but there is a significant backlash against it as the gaming community is very anti-AI and consumers of the benefits decompiling offers tend to be noncoders who don't believe that AI can do more than slop. I've seen takes such as "they're too lazy to learn C++" and accepting a PR from someone using Claude taints the project irrevocably.
- doctorpangloss 1mo agoon the flip side retro games are almost completely and entirely an aesthetic experience. like if something totally subjective and personal like nostalgia is not just a valid reason, but the #1 reason, to be engaged with retro gaming, why isn't some random condition about the process of resurrecting the games also valid? i think you agree that there is. but it should change your language about this idea of "consumers" and "benefits" - like this is the difference between making code and making a product. nobody NEEDS retro games. in my opinion, they aren't even that good! they are completely and utterly an aesthetic experience. the process IS the product.
- Levitz 1mo agoIf the process is the product, then anyone who is not involved with the process has no right to say anything about the product. Not to mention, there's a lot of stuff beyond an "aesthetic experience". Videogames have historical value, and they have relevancy at the very least as a testament of the state of the industry at any given point. Legend of Dragoon, for example, integrated QTE-like controls in its attacks, even as a turn-based game. FFVIII, released the same year, implemented interaction in a somewhat similar way. These two are very early predecessors to mechanics Clair Obscur: Expedition 33 much more recently used. That has value. If anyone wants to establish random conditions as to why they consider a work to be worthy or not, they may have those. But then they should keep them to themselves, rather than pretending people shouldn't care about something because of the way it was done. It's like the classic situation of someone complaining about how some open source project doesn't do something exactly in the way they like. I have nothing but contempt and despise for that sort of people, and it's a whole order of magnitude worse here, where the "problem" stems from their political stance, which nobody with a pulse should give a crap about.
- jdw64 1mo agoI love the game Monster Hunter2 so much that I once practiced decompiling it. I worked on it for about two months and got maybe 5% done. Sometimes I really admire people who do this kind of decompilation work.
- rowanG077 1mo agoIts really great how we can breathe new life into older games like this. I'm currently working solo on a Tales of Symphonia gamecube decomp. My aim is to let AI do everything of substance. currently about 3400 functions are exact out of about 4800. So still a way to go. But I haven't written a single line yet.
- StilesCrisis 1mo agoHow did you get started? I have a project in mind and would love to try, but getting a foothold on it feels really hard when you are starting with an ISO image and an empty folder.
- rowanG077 1mo agoFor gamecube games you are in luck because there is a template: https://github.com/encounter/dtk-template https://github.com/encounter/dtk-template But in essence it's not so complex. You only need the original compiler that was used to compile the game and tools like ghidra. Binutils for the architecture can help. From there you ask the agent to start building the project. Prepare to spend a ton of tokens though if you go the full AI route.
- StilesCrisis 1mo agoTBH I'm not even that interested in getting byte-for-byte reconstruction. I just want to bring an old game back from the dead.
- rowanG077 1mo agoYeah I get that. The problem is that with AI decomps you really need a clear and verifiable target and exactness solves that problem. If you step away from that you basically leave any agent free space to cheat.
- StilesCrisis 1mo ago
- jmcgough 1mo agoI've been absolutely loving the decomp projects that have been coming out lately. Huge props to the writer for this, Snowboard Kids is a real gem. I'd also encourage people to check out the Legend of Dragoon recomp [1]. It's a real labor of love that has breathed new life into a largely abandoned game. You can play it fully vanilla, or with improved graphics, fixes to cumbersome design choices, bugfixes, etc. [1] https://legendofdragoon.org/projects/severed-chains/ https://legendofdragoon.org/projects/severed-chains/
- melony 1mo agoAny advances in emulators recently? I would love to see Nintendo get into a legal tussle with Big AI. Giant douche can fight turd sandwiches.
- minimaxir 1mo agoAside from Switch emulators which get C&D by Nintendo due to private key copyright infringement issues, nothing with existing emulators would cause a legal tussle. AI has zero impact on it.
- bakugo 1mo ago> due to private key copyright infringement issues None of the Switch emulators Nintendo took down had such issues, they all required supplying your own keys. Nintendo takes them down anyway because they can, and because they have enough money that no individual can fight them on it. Their takedowns have no real legal standing, and there's no reason why they couldn't do the same for every other emulator, other than them simply not wanting to.
- ndiddy 1mo agoSection 1201 of the DMCA makes it illegal in the US to defeat a technological measure that controls access to a copyrighted work (such as the Switch's game encryption) without the copyright owner's permission. It also makes it illegal to develop or distribute software that is primarily designed to defeat technological access control measures. Yuzu does not function without integrating the Switch's decryption keys without Nintendo's authorization, therefore under the DMCA it's an illegal piece of software. In general this means that any unauthorized emulator made for any relatively modern system is also illegal, since they all encrypt their games. One thing to note is that all the famous legal cases establishing unauthorized emulation as legal revolved around PlayStation emulators. The PlayStation doesn't have anything that would be defined as a "technical measure" under the DMCA. The PlayStation copy protection involves stopping a user from playing a copied game on a real console, not stopping a user from making a copy of the game in the first place.
- jaydayvis 1mo agoI think Marx is rolling in his grave over the tirelessly expended human to recreate what almost definitely already exists on a floppy sitting in some “IP - Do Not Touch” lock box. But maybe endless puzzles for ever cleverer people is the point of it all.
- qingcharles 1mo agoI dunno. I was a gamedev. I'm pretty sure everything got thrown out. I don't remember ever taking any source home. It was all managed through Visual Source Safe (!) on a local server. The 80s games were mostly coded in bedrooms, but after that it all moved to teams in offices and a lot of studios went boom-to-bust pretty quickly.
- Asooka 1mo agoThat's better than the games not being made in the first place because the Ministry of Culture deems it unimportant and puerile, which is what happens in Communism. You also can't have indies, because you can't publish anything without the state's approval, not to mention you also can't sell things for monetary gain. I think 80-ish days to recompile and old binary is a much better alternative to the total death of human arts and innovation, and the unending list of crimes against humanity that Marx's theory has led to every time it has been applied. But to keep it a bit more videogame related, Marx always reminds me of this speech by senator Armstrong of Metal Gear Rising: https://www.youtube.com/watch?v=IMpuUUV2HeE https://www.youtube.com/watch?v=IMpuUUV2HeE . "We will use an absolute totalitarian state to abolish the state" - a lofty goal turned into complete lunacy.
- globi 1mo agoLLMs are truly amazing and I hope those decomp will keep coming! I am currently watching the Test Drive Unlimited decompilation project, which seems to use a mix of LLM decomp and actual engine improvement (porting the game to Vulkan and a new physics engine instead of Havok): https://github.com/opentestdriveunlimited/OpenTestDriveUnlimited https://github.com/opentestdriveunlimited/OpenTestDriveUnlim...
- thebruce87m 1mo agoMildly related, but I have been waiting for goldeneye to be decompiled for a while but before that process has finished there is has been a spiritual successor(?) made that has scratched the single-player itch for me: https://store.steampowered.com/app/1574480/Agent_64_Spies_Never_Die/ https://store.steampowered.com/app/1574480/Agent_64_Spies_Ne... Worth a look if you want a bit of nostalgia.
- bmenrigh 1mo agoI saw some news last week saying the project had reached 100%. Looking at the git repo (https://gitlab.com/kholdfuzion/goldeneye_src https://gitlab.com/kholdfuzion/goldeneye_src) that claim is a bit harder to verify, but maybe look again?
- ninjin 1mo agoIf you are interested in the "sequel", Perfect Dark, then there is this PC port based on the decompilation project that plays great: https://github.com/perfect-dark-pc-port/perfect_dark https://github.com/perfect-dark-pc-port/perfect_dark Ported it to OpenBSD for fun an evening about a year ago.
- AndrewOMartin 1mo agoNot to mention the Standalone VR port (I tried it out last night). I played Goldeneye 64 to absolute death in single and multi player, and played Perfect Dark about once at a friends house, and I still had a wonderful nostalgic "childhood dream"-like experience. Here: https://github.com/Alex-LeTux/perfect_dark_VR https://github.com/Alex-LeTux/perfect_dark_VR
- JLO64 1mo ago> One small but useful improvement was to give every task an explicit deadline and expose that deadline to the agent. I’m really curious about trying this myself. Recently I’ve been handing off tasks for agents to complete on their own more and more. While their work is acceptable I’ve found them to not only take a long time to complete it, but they often add too much complexity and tests.
- tigen 1mo agoWhat's the legal status of these? Historically there was a notion of "clean room" reimplementation. These days it seems people translate the actual game code into a different representation of that same code and that makes it open source? Github is full of these.
- ipsod 1mo agoClean room might get you past copyrighted code, but surely it won't get you past trademarks or copyrighted artistic work?
- bri3d 1mo agoMost of these projects carefully distribute only the source code representation of the binaries, for this reason, relying on the consumer to acquire / own the art assets and copyrighted material (logos, trademarks, etc.).
- charcircuit 1mo agoThe code assets are just as copyright encumbered as the art assets.
- bri3d 1mo agoYes, I agree with you (see my sibling post), but it's not what the post I replied to was saying.
- jonhohle 1mo agoNone of the original source code exists in these projects. It’s all created from scratch. Copyright for this new code is owned by the person doing decompilation. No one knows how similar to the original it is or not, just that it compiles to the same output. Edit to clarify: by not exist, I mean it is not publicly available.
- rcxdude 1mo ago
- VCFundedGenYer 1mo agoUnfortunately, the community will not accept an AI-assisted decomp. Gotta do it for real.
- rjrjrjrj 1mo agoI don’t remember this game at all - and there weren’t many N64 games, especially in the first couple of years.
- Larrikin 1mo agoIt and the sequel were among two of the best multiplayer games on the system. It was so sad to see the series die when it went portable instead of continuing to be a ton of fun.
- rjrjrjrj 1mo agoInteresting. For me it was Goldeneye (of course) and Diddy Kong Racing.
- Jach 1mo agoWatching bits of videos from this guy's series on beating every N64 game (including JP-only releases) is a fun way to find out about interesting games I missed from back then. https://www.youtube.com/playlist?list=PLrwJXOVKrLbIDAiT9b4Lkyz4dUV9sTbGr https://www.youtube.com/playlist?list=PLrwJXOVKrLbIDAiT9b4Lk...
- 940273292020 1mo ago[dead]
- throwaway613746 1mo ago[dead]
- NooneAtAll3 1mo agoI'm still baffled by RE community aiming for "100% asm match", needing to reproduce specific compiler version, instead of aiming for functional equivalence and cleaner code is there really no tools whatsoever that produce proof certificates for "these two functions do the same thing"?
- Jegber 1mo agoGame behavior can be tied so closely to quirky hardware behavior that I doubt such a tool would be simple to create. You’d have to verify that your code produces the same hardware state. And different (ie more efficient) code almost by definition produces a different hardware state than the original code. Thus changing the game.
- qarl2 1mo agoReally though? You have to try really hard to make your code that unstable - and well written code isn't that. Seems more like voodoo.
- DSMan195276 1mo agoWho said games were well written? Older games are often very sloppy and buggy, and abuse the specific hardware they're designed for to get extra performance, unique graphical effects, etc. Emulators constantly run into games that don't run because of specific hardware nuances that may or may not have been intentionally used (Ex. relying on exact cycle counts, reading uninitialized memory, changing values while they're used, etc.).
- unknownfuture 1mo agoI wouldn't characterize that as sloppy or buggy in any way (though certainly that is also true for some games). Exploiting hardware in new and novel ways was an essential part of developing for older consoles. This is something someone only familiar with writing code for general purpose devices or higher level languages can't imagine. But when you're building for one very specific hardware platform you can tailor your code to that platform in ways that simply aren't possible when building for portability.
- cpriest 1mo agoFor people who've done matching decomps: what burned the most calendar time for you, toolchain freeze or the last 5% of non-matching functions?
- qingcharles 1mo agoI just did one last weekend, but it is a game that was clearly written in assembler in the first place (Elite 8088 CGA). Trying to reconstruct the original build environment that Andy Onions (where are you?) used took some time. It was assembled with 16-bit MASM, but you can't easily run 16-bit exes under 64-bit Windows, so a bit of a kludge to set up DOSbox where the LLMs can push/pull in-and-out of it while being able to drive it enough to execute MASM and read the stderr and output files etc to get a feedback loop going. Making up plausible function names and branch labels was pretty quick for LLMs.
- rasz 1mo ago>Making up plausible function names and branch labels was pretty quick for LLMs. there was official source code release for 6502 port, why not match names from that one?
- qingcharles 1mo agoIt's a good idea, thank you. I hadn't thought of it. Assuming Andy Onions had access to the 6502 code to work from. It should be fairly trivial to figure out from the shape of the x86 code.
- asiekierka 1mo agoI had no issue with the toolchain, as I happened to work on a game (ZZT) whose toolchain of choice was documented by the author himself (well, he was off by one Turbo Pascal release). Lucky! What took me the most time was actually the beginning: building a mental model of what assembly patterns map into which Pascal patterns, and finding good areas to start writing code from. In hindsight, I should have probably started by generating inline assembly equivalents of each procedure/function. The ending was relatively smooth sailing in comparison, but it is of course much easier if the compiler you're targeting doesn't do much in the way of optimization passes, so it's not representative of decompilation work for more modern targets.
- beepbooptheory 1mo agoDoes decompiling a game made by a certain development team help decompile others made by the same people? Because you might know what patterns to look for?
- qingcharles 1mo agoNo, not at all. I know where I worked there was zero code reuse across teams and games. Games of this generation had code that wasn't intended to be supported or managed after release (no patches for those consoles) and so the code tended to be fairly horrible.
- hn773746483 1mo agoIt varies. Nintendo for example has plenty of different teams and internal frameworks, but not every game uses them.
- Sesse__ 1mo agoYes. Especially when there are common libraries and you can reuse their names, structures or even entire decompiled routines. There's a fair amount of folklore going around, but less direct sharing than would be ideal.
- deleted 1mo ago[deleted]
- guardiangod 1mo agoYeah I am decompiling a PS2 game. It's not easy but I think I finally have the right setup.
- sota_pop 1mo ago- super smash bros - LoZelda Ocarina of time& majora’s mask - starfox 64 - Mario party - extreme G racing - jet force Gemini - golden eye - conkers bad fur day - Mario 64 - Tony hawk Man… so much nostalgia
- ur-whale 1mo agoFantastic work, but my gut reaction: Why? Why snowboard kids and not the ocarina of time ????
- volfonibros 1mo agoBecause it's there. Less famous games can have nostalgic value for people, and many are good. I really like Snowboard Kids myself so I got a kick out of it. But also, Ocarina of Time has pretty famously been done and subsequently ported everywhere a couple of years ago.
- rolfus 1mo agoYou're going to like this: https://www.shipofharkinian.com https://www.shipofharkinian.com (open-source native PC port of OOT).
- 40four 1mo agoI grew up in prime N64 era, and played countless hours on the console. But I definitely never played, let alone even heard of the Snowboard Kids title. How did I miss this game? Am I the only one?