Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to MinGW32, remove slipstream, statically link ijl15 #24

Merged
merged 3 commits into from
Jul 22, 2024
Merged

Conversation

jchv
Copy link
Collaborator

@jchv jchv commented Jul 21, 2024

This is a big one, and hopefully one of the last big PRs like this for Rugburn.

Instead of using Slipstream to integrate Rugburn into ijl15, we link ijl15 directly into our binary. This can be done using MinGW instead of OpenWatcom, removing the need for the bespoke OpenWatcom-based toolchain. This means we no longer need a web patcher, so the webpage can just be fully static, so we can get rid of all of the website-related stuff except for a single static HTML file. We can remove a lot of bootstrapping code and directly link to GetProcAddress and LoadLibraryA, which might let us resurrect Windows 98 support (increasingly important now that we support versions of PangYa that should work on Windows 98.)

The resulting binary is smaller than the original ijl15.dll, since it does not statically link msvcrt. That said, this is still mostly untested.

Still TODO: need to update MSVC build. It should be even more straight-forward than the GCC build.

IANAL, but license-wise, IJL15 is freely redistributable, so we can link it with anything we want that is permissive enough (essentially, just not copyleft.) So with the new permissive length disassembler, this should be clear to redistribute. The ijl15 license text is included already in the repo.

@jchv jchv merged commit efa7d5a into master Jul 22, 2024
2 checks passed
@jchv jchv deleted the mingw32 branch July 22, 2024 00:19
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.

1 participant