64 comments

[ 0.20 ms ] story [ 78.5 ms ] thread
[delayed]
I did something similar. I now have Geiss as a Music Assistant / Sendspin target. It's mind blowing how easy it was.
and AI-doomers still post in this site saying AI has no benefit, where is a productivity boost, and where are all these new software AI is supposedly making...

I have a few of my own stuff and it has been amazing.

(comment deleted)
It makes perfect sense that LLMs are good at this. We've always known that a binary is not a true moat, but that it's just a lot of toil to transpile.

Compiler output is highly predictable, but it doesn't make the inverse true. LLMs are not themselves compilers.

It's easy to train LLMs to decompile code. All you need to do is take the source code from existing training data and compile it. Then you swap the order and show it the compiled code, then the original, and judge it by how well it predicts the original.
I imagine this would go far, but also note that the variety of compilers used over the last 30 years of game dev would make this not so obviously generalizable.
Actually, you'd be surprised! For something relatively modern, it's MSVC or GCC, you only need to pin the version. Which you can do by bruteforcing a few functions with different compiler versions / flags until they match.

For very modern stuff it might even be clang. Also easy to detect. For really old stuff (90s and older) there's a lot of diversity yes but the programs are so small it isn't a real challenge. By the time programs got so big as to make manual reversing infeasible, the compiler landscape has consolidated;)

The companies looking at this will just turn to cloud gaming services instead for newer games. They have tried it with Stadia, which that failed because of the existing consoles.

Now the games industry will try it again for real and find a way to rebrand cloud gaming and trick everyone to believe its better than running games on your own machine, only for them to stream the game back to you without you ever owning it.

Wait until AI can vibe code from videos of the game rather than binaries.
AI giveth and AI taketh away
What has it giveth? Or which one’s which?
(comment deleted)
Opus doesn't push back against this kind of thing for reasons like "not your code"?
I haven't tried it but if you separated it into two steps: decompile and describe, then implement from the specs, that looks like clean room reverse engineering, which is perfectly legal in the US
I don't really understand the IP protection angle here: These browser ports are no more or less illegal that hosting a RAM file for use on an emulator, or pirated software in general. And sites hosting them are no harder or easier to shut down than existing piracy sites.

What's more interesting is the new ability to easily create ports of old games that let you play old games legally: Bringing your copy of the original's data files and playing on a modernised engine with high-resolution, unlocked FPS, bugfixes, etc. In the past couple of months, I've seen a bunch of vibe-coded ports of DOS games for which the source code was lost.

> I don't really understand the IP protection angle here [...] What's more interesting is the new ability to easily create ports of old games that let you play old games legally: Bringing your copy of the original's data files and playing on a modernised engine with high-resolution, unlocked FPS, bugfixes, etc. In the past couple of months, I've seen a bunch of vibe-coded ports of DOS games for which the source code was lost.

If you've noticed the obscene amount of ports, remakes, and remasters (most of which are done terribly) in recent years, it's obvious why certain people are pushing this as IP infringement. Companies were loving the fact that they could pull from a back-catalog of their PS2 games, get it compiling again, do some minor fixes to support modern widescreen/controllers/etc, maybe do some minor graphical enhancements, then resell a 20-year-old game for $60. Far less work than a new title, and far less risk since it has a built-in fanbase.

It's exploitative and shitty, to be clear, but it's understandable why some people are very upset about this.

There are a few bad examples like Halo, Black Flag, and Oblivion but overall I think remakes/remasters over the last several years have been pretty good. Resident Evil, Silent Hill, Dead Space, Persona, Final Fantasy Tactics, Gothic, Super Mario/Paper Mario, and Tomb Raider all come to mind.

Regardless, IP holders should have the rights to distribution and while you may disagree with that it's still a legal protection they get to enjoy under our legal system.

Right or wrong, it is literally IP infringement.
It isn’t if the website forces you to bring the ROM yourself. The Halo CE and God Of War ones work like that. They don’t provide the ROM and you can legally rip the ROM from a CD/DVD you have and play it legally.

If you own the game legally, ripping it and playing it on a web emulator is not illegal.

Yes, that is different. The Simpsons one doesn't ask you to bring a ROM, though.
> it's understandable why some people are very upset about this.

The people who are looking to lay off all their developers and lazily vibe code ports are furious that other randos are able to lazily vibe code ports just as easily.

/world's tiniest violin plays sad song/

HN; where everyone's IP has no value, except mine of course
different people have different values.

on this platform are people that dont see IP as valid, others believe it is

. There is no shared opinion on that topic that all participants on this platform agree on.

> different people have different values.

Clearly. Ever since the government has decided people get to train AI ignoring everyone's copyright I imagine the respect for copyright has gone down the drain, as using other people's copyrights to steal their jobs was suddenly declared legal as soon as it became possible. That is so incredibly unfair there's ... no more pretence.

This is yet another step towards the inevitable total clash: when claude AI is good enough that it can build Halo, The Simpsons: Hit And Run, ... (slight variations, e.g. with different IP) without needing more than a promo vid and a wikipedia page on the game. Same for movies. Songs. That, too, is coming.

Or even do the Disney playbook from scratch. After all, essentially every story Disney touches is public domain: Mickey Mouse itself, of course, Snow White (

Once we are there, that will force congress to finally choose: destroy copyright or declare it's scope to include AI training and AI outputs. And not just congress but EU, EU country parliaments, even Russia and China's CCP will be dragged, kicking and screaming, into making this decision.

Games aren't like old movies getting remastered that can be done in a rented-out storage container for a weekend. Video game ports are generally a skillset that takes time to master. Plus, getting a 20-year-old game running well on a new system isn't free. I'm on board with copyright protection incentivizing all that initial hard work, the years of blood sweat and tears will get to live on as long as possible.

Looks like software is having its Napster moment now. Except, instead of one entity dictating the rules of engagement and deciding to sue Napster and its clones out of existence, we have 100s of entities with competing interests.

IP has been a good source of revenue generation, that social contract is now broken. I've got my popcorn bowl ready though, the industry that just fought Google and Apple for better revenue sharing is about to take all that legal infrastructure they acquired and make a big mess of everything. Here's to the next decade hah.

Good thing now people can do this "expensive skillset" porting themselves. Game companies don't need to bother with such hard work :)
Distributing a ROM or copyrighted work you don't own is open-and-shut illegal. Not sure how you don't understand that.
What amazes me is how uninspired this all is. I got bored of the browser ports after seeing two of them.

All of this power and still there's nothing new I want to play.

This gives decomps/recomps a bad name.

I'm tired of these terribly made AI projects in this space. It's just noise and low quality spam. I miss when these were done legitimately.

Some script kiddie ran this through a chat bot once and probably doesn't even understand the code.

For those who don't understand, watch this segment of DF Retro Super Show - https://www.youtube.com/watch?v=A6gJTdk_BkI&t=165s

What's low quality about a working transpile? Missing out on engine details/optimizations is a shame, but if someone cares about that they can do that themselves, it doesn't make the transpile itself low quality.
Gonna have to heavily erm-akshully this.

Decomps or decompilation is about recovering source code that can bit for bit recover the same binary asset. This gives you back the source code from just the binaries. This requires the same toolchains, sdks, etc.

Recomps or recompilations basically inline and unroll say a PPC interpreter back into HLL code. This gets you something that modern toolchains can work with, while you replace all the IO layers so you can update the graphics, controller and networking stacks.

Neither of these are transpilation, which normally refers to a source to source compiler that translate the codes laterally in the same semantic strata.

What most folks are doing are recomps and there are existing SDKs for this (pre-ai) but more and more tooling is becoming available to the point at which I think there will be an agentic harness that runs the game under and emulator for realtime delta debugging and visual diffing.

https://meta.wikimedia.org/wiki/Cunningham's_Law

The thing is they are actually good, that's why they are getting so popular even when you can emulate many of them already.
If the decomp scene is about the art of decompiling I would agree, but looking at r/decomps it seems the audience is gamers who just want to play the games. Do they also think it's terrible? Considering how anti Kotaku is it sounds like they are actually working well.
No it doesn't.

The point of decomps/recomps was never for some altruistic reason related to skill or art.

The point was people wanting to play games. This just adds to that. Yes - the people who did it before were skilled, smart and deserve recognition. But these ports are exactly that - ports so that people can play their old games or relive them.

> But these ports are exactly that - ports so that people can play their old games or relive them.

I'm thinking of Matrix here, just with games instead of chicken. Is it actually the game itself, or is it a machine's assumption of what the game is supposed to be?

With the decomp/recomp/mod/RE in general scene, the people involved were at least highly knowledgeable of what they were doing and they knew where their limits were and what needed to be done.

The chatbot however will yield a happy "done, did the needful" and deliver a pile of garbage instead.

I've always considered these an art more than a practical tool. If I wanted to pirate a game, I can just grab an emulator.

When you automate the process, the only interesting thing about the whole operation dies. I already knew you could reverse engineer C and I already knew emscriptem exists, it's the manual work that made it worth checking out.

The Mona Lisa is an interesting piece of art people come to visit France for. MonaLisa.jpeg is a good wallpaper for about a week at best.

That sounds very abstract... while I can't deny the social stuff / the art is important for many people but most players just want to play the output. Before you say you can pirate things or emulate them yes you can but not if you want to fix bugs, add 4K support, make it run better, improve things, etc.
>I miss when these were done legitimately.

Before LLM-assistance there were barely any fully playable recomps.

How many recompilation projects have you helped with? I get annoyed with non-contributors complaining about the people that contribute.

My heads exploding. I expected to try Quake and just run through the first level and maybe stop. Being dropped into a multiplayer game and it feeling as good as it did was a jaw dropping moment for me. Quake 3, same experience... my ping wasn't great.

I don't know where my quake cds are. Even if I found them I'd have to figure out what mods to run to have it feel good. Then I'd have to find communities to play with.

This is super cool to me.

I remember playing Quake live back in 2010-2011 in the browser, was just as good as Quake 3 Arena. If it still exists then you should try it :)
I played a lot of QuakeLive and it blew my mind back then too! It was a browser plugin at first, then moved to a stand alone client, and finally moved into steam.
(comment deleted)
There's something about some late 90's (or early 2000's) games that's really to hard to match nowadays, they were incredibly addictive and you could feel the passion (and crunch-time) that went into making them, all of that without the predatory micro-transaction and cassino-like mechanics that are rampant nowadays.
If it's just Quake you're after, just get the version on Steam. Cheap (~$10), updated for modern systems plus comes with a bunch more "campaigns". For me, it's just about as good as ever. They just released the 30th anniversary edition.
Maybe websockets being TCP vs the orignal games probably using UDP?
I have been experimenting with porting old games too and the speed in which frontier models can accomplish this is just amazing.
What I'm interested in is their performance, since I would assume that they are running in WebAssembly from reconstructed C/C++ code decompiled from binary, what would be the overhead on that compared to running on native? And how does running on WebGPU compared to running with native through DirectX/OpenGL?
I'm getting 45fps on Skate 3 on my phone (Pixel 9 Pro, with the Pixel line being notoriously underpowered CPU wise) in the non-phone mode. I could try phone mode but touch screen controls aren't worth the loading time for me.

Performance is excellent, most of these games aren't all that hard to run. I expect most recent mid-range computers are able to play all of these in a playable fashion, even the ones running on integrated graphics.

I'm honestly a bit stunned. I'm looking at the Hit and Run "port" and think is was a fake high bitrate movie -- it's that good. Only played a few minutes worth, but my this is on my several-gen-old Pixel phone for crying out loud! Someone might chime in with glitch reports but this is pretty jaw dropping stuff.
Honest question: Anybody has more details how to do this? I.e. I have my favorite game from the DOS/Win95 era I want to port plus a dev background - how to get started with AI reverse engineering?
Honestly, probably open up codex/Claude/pi in the folder and ask it where to start. Modern LLMs are crazy good.

For example I had a VR setup of GTA5 with adaptive triggers during covid but it eventually degraded due to updates and compatibility issues. Quite literally today I opened codex and had it up and running with custom patches for some bugs I used to deal with in a few hours.

I would start by asking it how to start and then digging away.

I had Claude reverse engineer 3D Space Cadet from WinXP just by letting it know it has access to ghidra and radare2 and asked it to faithfully port it over to Rust+Bevy. 2 hours of it working later and the game was playable. It did take an extra prompt to get the music since Bevy doesn't have a MIDI player, so it added a MIDI crate for it and I gave it a soundfont off my system.
If there’s one good thing about the LLM hype. It’s that we are strongly reconsidering the value of "copyright" and "patent" law.

It’s an archaic law framework designed by corporations to guarantee a monopoly to extract as much value from "their idea."

I wonder if Rockstar will release GTA VI on PC a year after the console again.

If they wait too long, perhaps the community will produce a better port before them.

I'd really like to know what the workflow for this is. In terms of the prompt, but also specifically in terms of which part of the decompilation process the model is using- I assume a standard decompiler is used, then what happens? How is the code rebuilt, what are the possible mistakes the AI can make, and what does the result actually look like?