Live data from Hacker News

Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

github.com

201–210 of 302 posts

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#201

I think the next 10 years or so are going to see a chucklefuck of games reversed thanks to LLMs, which can easily pattern match and operate on contrivedely optimized assembly and output reasonably accurate C/C++ code. I’m one of many right now using Ghidra + LLM workflow. It’s doing the thing it needs to and I’ve helped several communities revive and port their games this way. It is a huge time saver. While I’d perso…

10 years is far too pessimistic for this being a routine task, I think 2 years max. As you mentioned, you can already do this today by just giving GPT 5.5/Opus 4.8 an IDA/Ghidra tooling (a CLI or MCP, I have a custom CLI for it). You can start with the LLM going from the string anchors and renaming functions/globals, then when you have enough functions, the LLM can start working on typing - IDA has a very powerful typing API for HexRays-decompiled code, you can even type locals and it all persists in a DB.

My custom IDA CLI is just a simple thing on top of IDA Python's integration + ida-domain + some higher-level helpers, and works as a daemon with workers, so a stale/bad request doesn't corrupt an IDA DB (an issue I had when I was using idasql).

A bit offtopic, but: do you have any links to your efforts? I'm curious to see what other people do in this area.

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#202
All right, when someone will do this for Railroad Tycoon Deluxe, Master of Magic, Master of Orion II, I will have to waste hundreds of hours playing these again... And it will hopefully be much more fun, because the computer "AI" will most likely be stronger / more interesting.

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#203

Earlier quoted context omitted.

What's working for them is having a huge amount of resources and very good people to design a cutting edge agent harness, RLHF the hell out of their models, and build out a tremendous amount of inference capacity. I'm sure their process for making code changes in any of their client apps is very fast, but a TUI built around a chatbot is also not a particularly complicated application. So yes it's working for them, bu…

They’re not talking about the chatbot TUI. The chatbot TUI was and is in JavaScript. They’ve ported the JavaScript runtime .

Not GP but the js runtime has a long tail of case edges you simply can't emulate with a single app.

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#204
post #175

Earlier quoted context omitted.

I hope we get Skyblivion soon

Completely unrelated but I find it amusing in a good way that Oblivion is recognized more favorably now. I never understood the disregard for it (horse armor nonsense aside), as it has a very compelling, unique atmosphere and a not so terrible storyline/writing.

To me, the level scaling just completely annihilates the game. Why even have a leveling system if practically everything just stays leveled with you?

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#205
post #73
post #63

Earlier quoted context omitted.

> it's been in production for a while Huh... it looks to me like bun has yet to cut a release post Zig->Rust port (the latest one on github is still on a branch that says it's written in zig in the readme). I assume that nothing is using the rust version yet... Which also cuts against the complaints about "of course it works [...] you can put this into your production environment soon!" since they don't seem to be as…

The real problem is they explained nothing and just caused a lot of mistrust. The lead developer at Bun working on this project does post here from time to time and I have never seen him answer any of this. I admire his enthusiasm, but this was badly handled mostly from Bun’s side which lead to a bunch of dogpiling. When someone on another social media platform commented expressed some concern, his response was to as…

When you hear a woosh as the point flies by, I see someone attacking a project for using AI rather than any concrete technical reason. Jared's question is to disentangle an actual Rust-related bug report from someone who likes to complain about AI.

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#206
post #134

Earlier quoted context omitted.

> - I don't think Claude Code is using the Rust version yet in their official build No, I'm pretty sure it is, actually, since June 17: https://code.claude.com/docs/en/changelog#2-1-181 >> Upgraded the bundled Bun runtime to 1.4 Now, Bun 1.4 doesn't seem to officially exist on https://bun.com/blog or https://github.com/oven-sh/bun/releases , so I can't be 100% sure this is the Rust version. However, I have to do some…

https://news.ycombinator.com/item?id=48609168 https://grigio.org/bun-1-4-the-controversial-ai-driven-rewri... > 13,044 unsafe blocks in the resulting Rust code (hand-written Rust projects of similar size average ~73) Grok is this true? I've heard the meme that AI written rust code is absurdly full and safe blocks but... that's pretty funny. Hang on. A claim like that can be verified with a single grep! Give me a minu…

This is ironically a skill issue in prompting, especially if they had Fable access - or, more likely, they just really, truly don’t care.

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#207
Amazing. I have always maintained that Fallout 1 and 2 have nearly perfect UI for mobile. RTS games are hard to port directly while turn based games seem like a very natural fit, as long as they aren’t very reliant on full keyboard control. Fallout does not!

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#208

All right, when someone will do this for Railroad Tycoon Deluxe, Master of Magic, Master of Orion II, I will have to waste hundreds of hours playing these again... And it will hopefully be much more fun, because the computer "AI" will most likely be stronger / more interesting.

You can do this yourself with LLMs, but I admit that it's still not a trivial process. For the actual best results and the highest chance of progressing quickly, you really need a $200 OpenAI/Anthropic sub and a lot of free time. I seriously recommend OpenAI over Anthropic for this, as in my experience GPT 5.5 is far more thorough in reverse engineering and makes mistakes less often.

Then, you first need some tooling, either Ghidra (open-source) or IDA (paid), and some tooling to expose them to an LLM. I have a custom IDA Python-based CLI that lets LLMs trivially call into IDA's Python APIs from CLI, but there are tens of different Ghidra/IDA MCP/CLI/SQL projects out there.

After that, it becomes more mechanical, you just let the agent (or multiple agents) explore and start renaming (easier to start with functions + globals), better if it's something that's directly applied to the suite you're using, so that all names show up everywhere. This is actually quite a quick process, especially for older/smaller games. After you have enough function names, you need to instruct and have LLMs add actual types, so that the decompile doesn't have raw casts and offsets, but real fields + types. They will also need to apply types to globals and functions.

Afterwards comes the hardest part - you can export this very well named/annotated decompile, and do one of:

1) Have the LLM try to directly polish the code enough to be compilable. Despite of the decompile quality, this isn't as hard as it sounds.

2) Have the LLM recreate the project from scratch in another language, something like https://banteg.xyz/posts/crimsonland/. This can be easier to get initial results, but you're sure to hit tons of bugs due to the differences in implementations.

The 1st approach is more thorough, especially because you can find a matching C/C++ compiler and start doing actual decomp.dev-like work - binary matching functions so your source code compiles down to the exact bytes as in the original binary. This is the longest, hardest part, human community projects take years to complete, and LLMs still struggle with getting matches for 100%, so you might spend weeks-months, and tons of LLM usage - an agent can take like an hour to match a single 1000-byte function in worst case.

As a small note - you do not need to binary match 100% to have the game be absolutely playable. Compilers are often very tricky to lead, so you might already have the code that does exactly the same thing, but just a different local variable layout might make the compiler use different registers.

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#209
post #151
post #127

Earlier quoted context omitted.

I have yet to hear any evidence that the Rust rewrite was harmful. I have no emotional investment in Bun (which I'd never heard of before the rewrite), or Zig (which I also didn't know about), or Rust (which I think is neat and that's about it), so I'm about as unbiased as you can get and from what I saw the conversion was done well, and I haven't heard of massive bugs resulting from the rewrite.

It is probably fine, it is kind of a best case scenario: porting a good code base with lots of unit tests, all hand-written. Not much can go wrong here as the LLM is kept in check by the original code, the tests, and the fact that the topic (a JS engine) is well documented. The problem is what comes next. They now have code that they don't understand, and they are likely to work on it with AI in the future, but the n…

It’s always been a fallacy to think that large organizations have code which is understood. There are people somewhere understanding small parts up until the next round of layoffs.

Re: Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

#210
post #62

Earlier quoted context omitted.

> Yes, Claude Code uses Bun. In fact, Claude Code relies on it as a core dependency and ships as a self-contained Bun executable. I... somehow did not know that.

You missed the day when they had their bun build misconfigured which ended up leaking the entirety of Claude Code's codebase? (I wish I was joking)

The best part is how little it mattered. Everyone just shrugged.
Post reply on HN