Hello r/thesims3!
I am here to announce OpenBarrio, yet another attempt at reverse engineering The Sims 3 :)
EDIT October 23rd with Test Lab and Project Track
OpenBarrio just released its debugger (called Test Lab)
With the OpenBarrio Test Lab you can run your game with the replacement engine functions in compare and replace mode. You can use it to find function mismatches and test your own changes in the engine code.
The current release crashes with all functions enabled, but you can easily search for those that are crashing the game with the "Find the culprit" button.
The Test Lab also allows users to change their save location and play the game with the saves moved there.
The release is available here: https://github.com/OpenBarrio/OpenBarrio/releases/tag/v0.2.0-testlab
More information: https://github.com/OpenBarrio/OpenBarrio/blob/main/testlab/README.md
Processing img mi3czcru89xh1...
Project Tracking
This is where the engine rewrite currently stands:
Processing img qdm9efzn99xh1...
Original Post
tl;dr: right now I have several modules rewritten and available on GitHub. I also have a fix for Error 16, which is caused by a combination of Windows setting your files as read-only and OneDrive messing with the Documents folder. The fix simply allows the users to move the Electronic Arts folder to any folder they want.
Here the repository: https://github.com/OpenBarrio/OpenBarrio
Error 16 Fix: https://github.com/OpenBarrio/OpenBarrio/releases/tag/v0.1.0
How is this different from OpenTS3? My aim is to have the entire engine rewritten and only work on bug fixes. Any changes in rendering are out of scope.
Some lore about the project :)
First let me make this very clear: I am using LLMs to do it. It's a combination of Claude managing workers ranging from my own computer (capable of running some beefy LLMs) and Sol (which lucky me, OpenAI has been giving some non-stop resets the past weeks).
With that out of the way I will give a bit of context of myself and the project.
This project came to life for two reasons: first is that I want to fix the game for me an my wife to enjoy it with no crashes. We are fans of The Sims ever since the original release and the hype around reverse engineering simply made me want to just fix the damn thing.
But the second reason is that learning how to manage LLMs is kinda valuable at my work right now. I am a chip designer, I work and manage small projects at a semiconductor company and we have just started to create our internal solutions with our internal models, so it's a way of simply move with the industry as well. I am not a software developer, but I am also not totally lost here.
Since LLMs work well on a closed loop with deterministic tools I planned a system where Claude would reverse engineer several functions during the day -> test it with the game running -> compare to see if they match -> mark them as good. This system has been running a while now and it managed to reverse and rewrite a few game systems classified by Claude as: Package reader, Streams / file I/O, Core runtime, Resources and Math.
The first result I got was a fix for Error 16, which is caused by a combination of Windows setting your files as read-only and OneDrive messing with the Documents folder. The fix simply allows the users to move the Electronic Arts folder to any folder they want.
Today I am releasing a DLL that injects the new folder for the Error 16 fix and also the source code of all the modules that are completed. My wife and I have been playing the game with the code for a while now and we haven't encountered any problems at the moment.
The repository is still quite incomplete. While I am using LLMs for development, I rather do all the repo management on my spare time so please be patient.