Posted by knackers 14 hours ago
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.
It inspired me to use AI to decompile my favorite games as well, mostly Mega Man Battle Network games from my childhood. I'm not going to make it in 84 days though. I insist on understanding the game and documenting it myself instead of just having the AI do it all for me on autopilot.
As slow as that is, it's already led to some awesome moments. AI built a literal synthesizer that played back music straight out of the ROM. Mapped out all of the music that way. It was incredible.
Have neen reverse engineering my laptop's BIOS as well. AI is fully in charge of that one, and it's nearly done. Hopefully soon I'll have drivers and perhaps even coreboot.
I had hoped to someday make retro games for all major 80s and 90s consoles. I started with the Atari 2600 12 years ago[0], and planned to move to other 6502 family systems when I had time. I realized last year that AI could essentially do all of what I considered the hard parts and craft of retro game assembly, which felt like having the rug pulled out from me. Projects like this have really turned that around for me.
New tools just mean old things become easier and new things become the difficult (where I think the fun is), but solvable, frontier. This category of projects inspired me to pick back up an Ultima V decompilation project I started more than 10 years ago[1,2]. I'm looking forward to a world where all of my childhood games are cracked wide open for mods, ports, etc.
[0]: https://github.com/cleak/FlappyBoot [1]: https://github.com/cleak/u5-spec (spec for Ultima V binary) [2]: https://github.com/cleak/u5-engine (Rust port of Ultima V made from the spec; still lots of prose slop)
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.
You become a machine with your workflow, once again limited only by your time/energy, tokens, and your discretion on how to spend it.
Indeed. But I think it's fair to say that just embracing LLMs is not enough.
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.
I then spent way more time than what I would have spent without the plotter to figure out that a pole and a zero were located right next to eachother.
I had no idea if the teacher had done that on purpose, but it made enough of an impression on me that I still remember it.
The point of math exercises is usually not to get to solution as quickly as possible.
Same with AI. Having AI generate a for loop doesn't mean you understand the concept of a for loop. You can argue that it's a waste of time to learn about for loops because an AI can write one for you but that's a separate matter.
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...
Then he brought the graphing calculators in and had us plot graphs on those, compare them to our hand sketches, and set domain and range on the graph based on the critical points we found. He emphasized that doing the math beforehand let us use the graphing calculator effectively, and without knowing the math the calculator was useless.
Which sounds like the most sensible voices w.r.t. AI. At least for now. Six months ago I would not trust AI for any but rather menial tasks, but frontier models are able to do more and more of what I do every time I turn around. The TI-83 has been a fixed quantity in terms of capability since the 90s, and it never computed derivatives itself.
Not your handwriting, not your work!
Not to mention, LLMs can be made deterministic if that were actually valuable.
Seems like determinism is just the latest excuse to hate.
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.
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.
I use LLMs at work all the time, and it truly does feel like somebody else coding for me, and me reviewing, cleaning up, and asking for changes. It's really not my work, nor is it my code, but I'm still fine bringing it in.
I also don't use LLMs on my personal code done in my free time because I want my brain to still be fully functional in a few years.
Think about the act of writing with a pen.
Now think about what a typewriter does in that context.
Now think about what an LLM does in that context.
Can you reason about how those are vastly different tools within the context of writing or communication, so much so that the comparison doesn't actually make any sense?
Hint: it has nothing to do with determinism. It has to do with the nature of the work itself and the role of the person doing it.
As an aside, this whole exchange really is just a perfect encapsulation of the outcome-focused versus process-focused individual.
The outcome-focused person sees words in a document and whether an LLM produced them or a human typed them is a distinction without a difference.
The process-focused person is utterly baffled that anyone could think those are in any way equivalent.
HEH. I just read your comment three times and I definitely don't get it. I think its entire point is to express outrage about not getting it, rather than actually explain it.
Bafflement? Certainly.
Maybe a little sadness at the lack of understanding of, or appreciation for, the creative process? Sure.
Outrage? Nah.
I only see that construction used condescendingly.
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.
This says more about you than anything else. You weren't able to produce good code before AI, and you are not producing good code after AI.
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.
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?
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. 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 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.
Worth a look if you want a bit of nostalgia.
https://github.com/perfect-dark-pc-port/perfect_dark
Ported it to OpenBSD for fun an evening about a year ago.
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?
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.
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.
1) Rights can't be held by corporations, only individuals. So the rights to a piece of art or IP would always trace down to a list of names.
2) Everything enters the public domain after 20 years or the death of the entire list of ownership.
Since I'm just pitching wild ideas on the Internet of course I have the freedom to make any suggestion I want, but I would like to live in a world where (a) no companies or rights owners are able to play bullshit games with gating access to art that can be reproduced at trivial cost and (b) we can consume all the art we want that's past its sell-by date. It's insane to me that we don't have free, legal databases of every work of art created before, say, 2006.
Isn't the current system setup around the idea that the company gets the rights, and in return the workers get a basically risk-free salary? Wouldn’t your proposal undo that, so then workers took on the risk of whether they got paid, based on whether the game ends up being profitable?
Nightdive studios has a few blog posts regarding this.
The problem apparently is that a lot of retro game IP changed hands when records were physical.
So Nightdive goes to Company A and says "Hey do you have the rights to <Game> or did you sell them"?
Company A says "You can pay us 50,000 dollars to check our records we are not sure."
Nightdive says "Ok, seeing as you dont know if you own the game, could you give us permission just in case you do"
Company A: "No, we would need to review the records. However if you released the game to market, we would check just to see if we can sue"
Nightdive has an identical conversation with Company B, who may have bought the rights from Company A but only have archival records.
Nightdive walks away from the project.
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.
These projects start off with the original assembly code and use it actively throughout all stages. This is about as far away from clean room as you get.
When run through a disassembler, in most cases, it’s probably the first time anyone has ever looked at the assembly (assuming PlayStation or newer). There are no comments or labels or symbols. Not what most people would consider “the original assembly”.
Their comment still stands; whether it's machine code or "original assembly code" that shipped on the disk it falls under "clean room" reversing and by extension implementation.
On the one hand, it is fairly clear that producing source code with the explicit goal of reproducing a 1:1 binary is in no way transformative, so that's out. This would be a really hard argument to even attempt.
On the other hand, these projects are mostly free, intended for owners of the game to play the original game on a different platform or in a modified format, and not likely to have a negative effect on the original work's desirability or value. And, the reproductions aren't complete and alone usually produce limited to no value to a consumer (usually, they won't start without the original game files). These are the other important factors considered in fair use determinations and generally go the way of these being OK.
So, it's hard to say. With reverse engineering and copyright in the US in general, context is crucially important; something that would be completely illegal for one purpose (ie - decompiling and recompiling a competitor's software to distribute it without a license or use it internally without purchasing it would be obviously illegal) could be OK for another one.
Then a freshly written project would be completely different with no derivative elements at all; the only commonality between the two codebases is their functional elements. You can compile a decomp into the same binary, but that's only to prove functional equivalence. The intended mode would be with a modern compiler that completely rewrites the logic (it might even have to if it writes it for a completely different computer architecture, which describes every retro console game). Then neither the source nor the compiled artifact would match.
I strongly disagree with this notion from even a conceptual (much less legal) level; the point of compilation is not to erase the algorithms the programmer implemented, just to optimize and implement them.
> You can compile a decomp into the same binary, but that's only to prove functional equivalence.
This is like saying that a translated book is only "functionally" identical to the original; there's a lot of precedent in copyright law for this not being the case, and I don't think any argument revolving around the transformativeness of the compilation process would fly at all.
Programs as written are nothing like programs as compiled, certainly not as an expressive endeavor. Books don't have an analog. There's no point where we strip all conceptual meaning from the book and leave only the procedural algorithms the semantics demand. There's no point where we replace all the individual words with autovectorized versions, or where we automatically delete impossible sentences, or remove every layer of abstraction that the programmer put in there exactly for the ability to convey ideas.
Absolutely false. There are an infinite number of programs that will compile to the same machine code. Especially when an optimizer is involved. Discovering one of those is a creative process, transformative, and protected.
Using an LLM to do it for you? I wouldn’t touch that with a 10 foot pole. Seems too close to mechanical transformation to me.
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.
Also, If it is an unauthorized derivative work, as I understand it then it might not even qualify for copyright protection itself.
A reimplementation or a behavior-based clone is an entirely different legal world from decompilation.
In fact, the goal of most decomp not to produce the same binary, that’s just used as a validation.
True, but as a derivative work of the original source code they don't have rights to do anything with that code without infringing copyright.
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.
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.
there was official source code release for 6502 port, why not match names from that one?
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.
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.