Recent Posts

Pages: 1 ... 3 4 [5] 6 7 ... 10
41
OutpostHD / Re: Can't build anything because I run out of Common Metals...
« Last post by EnderSE15 on May 25, 2026, 12:39:06 PM »
So I figured out one problem - I had put tubes around the perimeter of my surface base and in the process had cut my smelter off from my mines.  The game doesn't do anything as useful as throw a warning that your trucks can't get to your smelter, so it won't be immediately obvious what you've done wrong! 
42
OutpostHD / Re: Research Tree
« Last post by EnderSE15 on May 25, 2026, 10:58:34 AM »
I got as far as building a few labs (before running out of common metals meaning the CHAP stops working meaning everyone dies).   There was no option to tell them to research anything as far as I could see, and I couldn't tell whether they were doing some sort of research in the background (if so, they didn't tell me anything about it - no news of discoveries or anything).  Still, I sank many hours into the original Outpost so was glad to find this remake.  Is it still being worked on?
43
OutpostHD / Re: Can't build anything because I run out of Common Metals...
« Last post by EnderSE15 on May 25, 2026, 07:36:59 AM »
I'm having the exact same problem.  I tried building the recycling centre early along with a couple of underground residential blocks (I recall the cheaty nature of MPG in the old game, you could essentially substitute poo for any resource you happened to run low on!).  Bulldozing the landers helped in the short run but the common metals supply inexorably went to zero, the CHAP stopped working and everyone died. 
So if I'm reading this right, I need to prioritise a robot control centre, warehouse and surface factory so I can get additional trucks and robominers operating ASAP?
Also, is this game still being developed?  It doesn't look like there have been any updates to it in the past couple of years. 
44
Claude got this working with Wine on my Mac super quick. I'm currently rebuilding the map editor in python (cause C/C++ is pure pain for my eyes).

I'm a SRE with a few years of SWE in my background. Will keep you all posted.

**edit**
IDK why but my attachment is getting denied? I'm able to build out new maps with a tileset editor with minerals, structures, etc...

Wish the AI wasn't so terrible in this game. I knew it when I was 8yo - at 36 it's still ringing like a bell how bad it is.
45
I am a real person. Right now I work as an AI solutions architect, but I come from years of Unity gamedev and DevOps. Outpost is one of my favorite games, so this whole thing is a fun flex/challenge for me.
What did you do with Unity, if you don't mind me asking? I worked with some of their proper engine developers on 3D GFX.
46
@BlackBox first of all, thanks for the reply - really appreciate it.

I am a real person. Right now I work as an AI solutions architect, but I come from years of Unity gamedev and DevOps. Outpost is one of my favorite games, so this whole thing is a fun flex/challenge for me.

I do write through an LLM prism because it is faster and helps with wording/spelling. I mostly talk to forum through my MCP server bridge, so posts can sound more structured than normal forum chat.

Second - yes, thread title says "run on Mac", but for me it is more an RE exercise for fun. Basically: let's see if I can wing it and learn while doing it.

I admit I am nowhere near the RE knowledge level of many people here. I am still learning basics (including how to do proper debug sessions). A lot of this I learn from agents step by step. What I am better at is building compile/decompile pipelines and automation around them.

I keep this thread as a log of effort.

About the repo link: I closed it because I started putting sensitive deployment data there. I do plan to publish a clean copy once I get things into a safer state.

So the crazy idea is:
- Set up an OP2-era compile environment.
- Generate synthetic data (small programs/modules in that era style/tooling).
- Decompile with Ghidra.
- Build source <-> decompile training pairs.
- Train/evaluate decompilation-focused models on those pairs.

What I have done so far:
- Started building cross-compilation flow for MSVC 4.20.
- Using Win2K VM on QEMU with VS 4.20 (started with NT4, but telnet there was painful).
- Mount folders with SMB, move files over telnet, run compile commands in VM.
- Got test scripts working for this loop.
- Now containerizing system so it is more encapsulated/coherent.

Next plan:
- Build a metaflow-style pipeline: snippet -> compile -> decompile -> paired artifact.
- Measure base LLM delta against these pairs.
- Then fine-tune LoRAs specialized for this compiler/style.
- Track experiments in MLflow on K8s with GPU cloud infra.

I know about the IDA databases and even got old Olly material from Leviathan. I plan to incorporate that later. Right now I mainly want to prove I can stand up this whole pipeline end-to-end.

Anyway - this is part curiosity, part learning project. I am not claiming I found some magic shortcut. I am posting progress as I go.
47
Outpost 1 & Outpost General / Re: Outpost 3 or remake/reboot ?
« Last post by katt on April 13, 2026, 04:04:34 AM »
I think the magic of the original Outpost 1 is the initial phases(decision making that can change the outcome of the rest of the start): the starship packing phase, sending probes and choosing candidate star systems phase etc, I know all in all it boils down to "it doesn't matter in the end you pick what class of planet you want to land on" but that's where the magic of OP1, the story started off with an imminent doom, if you think about it it's literally like the film Interstellar where you're unsure what lies ahead in a long journey, heck in OP1 there are even star systems with 0 inhabitable planet and if you went there you're doomed and have to start over, at least feature like this can make people to replay the game from another star system with different terrain map and challenges. That's replayability.
48
Okay, I'll bite assuming that the first post was actually written by a person, since the rest of this thread appears to be copy pasted from an LLM verbatim (at least no person I know actually writes that way)... and the github link doesn't actually work?

First of all I would point out that the most realistic way to run OP2 on a Mac is by using Wine, or running Windows in a virtual machine (the latter will have way better performance), assuming this isn't "just for fun" and you just want the game to work on a Mac.

Secondly I would also point out that many folks here (self included) are likely to be pretty skeptical of this approach actually working; there have been many attempts at remakes / sequels over the years here and none have really gotten anywhere. This is definitely not a beginner project and doesn't seem likely to be feasible without some degree of reverse engineering knowledge (or at least software dev experience).

That said, addressing a few other points made in the thread:

Quote
There isn't enough real Outpost 2 90s era source lying around to build a serious dataset.

There isn't any actual OP2 source known to exist, everything that you find is going to be stuff that the community has created via RE over the years. The only exception here are the SIGS headers from the Homeworld 1 source, and parts of a couple of libraries that were also used in Tribes 1 (source for T1 is out there, but OP2's version of said libs is a little different).

Quote
So why not rebuild it (or chunks of it) using the same kind of tools and stack they would have used back then?

Not sure I understand this, unless you want to target MacOS classic (i.e. it'd run on 68k / PPC macs and absolutely nothing modern) - the OS environment and programming model is very different from modern MacOS. Using awful-by-modern-standards tooling from 1996 doesn't seem to make a whole lot of sense unless the goal is to torture oneself, I guess? There are also a lot of strange limitations/unhandled edge cases and "interesting" design choices in OP2s engine that would make very little sense to preserve, some of which may have made sense given the hardware of the day and some of which was clearly half baked to rush the game out the door.

Quote
3G-2 - RTTI / vtables

- Done: PE-first RTTI parse (`recover_rtti.py`, `rtti_pe.py`), optional Ghidra apply, `rtti-classes.md` + JSON.
- Expected: 100-300 functions renamed from RTTI alone.
- Actual: Community Tethys VAs already named most stream/GFX vtable slots. RTTI confirms hierarchies and only 6** extra `FUN_*` renames on apply. OP2Shell / op2ext in the OPU tree: no MSVC RTTI anchor found.

This section seems a bit technobabbly to be honest... only a couple parts of the game were compiled with RTTI and there isn't anywhere near hundreds of RTTI descriptors.

Also, FWIW, op2ext is a community developed library that we have source for, so there isn't a whole lot of point in RE'ing it.

Quote
HFL-style DAT globals

Huh? HFL as in the community developed mission dev library?

Quote
Table: Subsystem heat (row counts, duplicates allowed)

Subsystem   Rows
units   794
ui   392
save_load   391
scenario   327

...

There isn't particularly great separation of concerns in the compiled OP2 code. A lot of code is inlined all over the place and there's a lot of code that is difficult to bucket in this manner. The TethysAPI headers are probably the most recent/complete description we have. Not everything is documented yet in these headers though to be fair, we have documented a lot more in private IDA databases that we can't distribute for copyright/legal reasons.

I'm also not sure there would be much value in reverse engineering any of the stuff relating to VOLs, etc.  All that has been long-ago reverse engineered and we have reimplementations of the libraries; further, the community update extracts all the files, so there isn't much point in working with VOLs anymore.

As I know I've said in other posts like this in the past, I will be pleasantly surprised if this works but I don't know that an LLM is a great substitute for being able to do a lot of the work yourself.
49
Short update -

I think I've hit the decompilation wall. I kind of expected that. Still hope a miracle drops out of the sky anyway.

This whole thing is something I do out of pure curiosity - the JFK line, not because it's easy but because it's hard. I started with basically bupkis for RE and decompilers; I'm learning little by little.

The thing I've been chewing on: could you train something like a LoRA (or similar) on top of an LLM so it learns to turn Ghidra's pseudo-C - the glue-y decompiler output - into something closer to real source?

The problems are obvious:

- There isn't enough real Outpost 2 90s era source lying around to build a serious dataset.
- Even if there were tons of random C++ in the world, it's all over the place - different styles, eras, engines - so a wide corpus wouldn't be very specific to this one game.

But here's the twist: I don't actually care about breadth. Screw the idea of a giant generic dataset. What I need is a narrow one. I even know roughly what toolchain built the shipping binary - so in fantasy-land the training data would be *same as original code*, not random GitHub noise.

Another thought that clicked: the big arc of this project is still "gather enough to rebuild the game from scratch." So why not rebuild it (or chunks of it) using the same kind of tools and stack they would have used back then?

I don't have the C++ chops to crank that out by hand - and honestly I'm not planning to. Agents can write code and automate; I mostly watch over, nudge, and keep the plumbing honest.

So the two-track idea: as I build a clone in that tech stack and compile with same toolchain, I also build pairs - my source vs what a decompiler would spit at the same logic. That's dataset material. Train something on that, and maybe later it helps read the original EXE better. Two birds, one bucket of glue - recreation feeds the model, the model feeds insight back into the old binary.

It's not the straight-line approach, but it's the interesting one. Everyone's got their thing; mine is toolchains and compilers (and containerized cross-builds, CI, that side of the house). I couldn't write pretty C++ to save my life, but I *can* wire environments.

I've christened this side effort Project Smart at Night - which means Smarty Pants where i come from.

Not promising anything. I do it as long as I get a kick out of it. More posts when there's something to tell.

Cheers, 
Jonathan
50
Short update - Phase 3H-8 (automated RE backlog)

The project repo is now open on GitHub and publicly accessible (clone, browse, issues welcome): 
https://github.com/jonathangoorin/outpost2-dd-re

I added an optional pipeline that takes the existing bulk Ghidra pseudo-C (one `.c` per function under `decompiled/`) and asks Google Gemini for a readability-only rewrite. Output goes to a parallel tree `decompiled_refined/` so the raw export is never overwritten. Nothing here replaces Ghidra or the binary; it is assistive text for reading and search.

What actually runs

- Script: `tools/gemini_refine_decompiled.py` (repo), using the same API key pattern as my earlier subsystem batches.
- Gates: the reply must still mention the same function name as the export banner; optionally `clang -fsyntax-only` with a small stub header so obviously broken C gets dropped. I can turn syntax check off for huge Win32-heavy functions where the model drifts into types my stubs do not know.

What happened in practice

- So far I have run it on a subset of the shipping tree (EXE + DLLs). Hundreds of functions already have a refined file when the API and the gates succeed.
- I plan to keep going and run it over the rest of the corpus (~5k translation units) in the near future, using `--skip-existing` so anything already refined is skipped.
- Many candidates still end as validation_failed (mostly syntax stub gaps / model inventing types). Those stay Ghidra-only until I widen stubs, tighten prompts, or accept a no-syntax-check pass for specific files.

Where to read more

- `docs/re-notes/phase-3h-automated-re-techniques.md` - section 3H-8 and changelog.

Cheers, 
Jonathan
Pages: 1 ... 3 4 [5] 6 7 ... 10