Skip to content

Conversation

@ThisKwasior
Copy link

Patcher is drag'n'drop, works on both Windows and Linux and doesn't require any dependencies other than the compiler and standard C library.
For now, one would need to compile it manually, but could be implemented into the build system of #22.

Compiling is as easy as:
gcc patcher.c -o patcher.exe

Patched executable has been tested by me on Windows 10 and Debian Trixie (via wine).

@olususus
Copy link

olususus commented Jan 13, 2026

huge work.

Since it’s already so portable, what do you think about adding a simple CLI launcher to the mix? It could handle the patching and then immediately boot the game/app in one go.

I have no idea how much would it actually help with anything (and it probably wont help at all), but seems like a cool thing 😊

@ThisKwasior
Copy link
Author

Would needlessly complicate things in my opinion (and wouldn't be crossplatform). Although I was thinking about separating the binary patch from the source code if the project ever supports other OW1 versions.

@olususus
Copy link

Good to know :]

@BreakingBread0
Copy link
Owner

Hmm I dont know if its a good idea to adapt the patcher to have no file dialog... @olususus is probably right that we want to have a launcher that does all this for us in the long term ^^

Would you mind adding nativefiledialog to the project? Also, is there a reason that you chose C instead of C++? Just curious, since that complicated your implementation :)

@ThisKwasior
Copy link
Author

I chose C because it's my prefered language and every platform has a C compiler.
The patcher's job is to just replace few bytes, so I thought it would have been better to remove the dependency on dotnet (since we already build the main project with C/C++ compiler).
As for file dialog, i could add it with the library you mentioned, but I don't think it's a necessary dependency for a simple program like that. I say it's more intuitive and faster to drag and drop the executable to patch, it's also scriptable thanks to that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants