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

Bootstrap NativeAOT rewrite #778

Open
wants to merge 27 commits into
base: alpha-development
Choose a base branch
from

Conversation

slxdy
Copy link
Contributor

@slxdy slxdy commented Oct 22, 2024

Introducing a new bootstrap and proxy fully made in .NET 9 with NativeAOT.

  • 2x smaller output size
  • The bootstrap and proxy are now a single project/module.
  • Preload (.NET Standard 2.0 support) has been moved to the bootstrap itself.
  • Project structure cleanup
  • Dobby is now statically linked to the bootstrap

Todo

  • Implement global logger in bootstrap
  • Add bootstrap debug logs
  • Implement automatic .NET 6 runtime installation
  • Add win-x86 support
  • Add linux-x64 support
  • Merge Il2CppAssetBundleManager and Il2CppImageConversionManager into this repo
  • Update README (credits etc.)

Future possibilities

A bootstrap in NativeAOT would add the ability to use Avalonia. I still haven't checked if it's possible to hook Avalonia into an existing game window, but it may be possible to create a new loading screen using it. Besides that, it would allow us to add other UI features, such as custom error boxes, custom console windows, runtime MelonPreferences manager, etc.

These ideas are outside the scope of this PR, but just a few examples of the possibilities for the future.

@slxdy
Copy link
Contributor Author

slxdy commented Oct 22, 2024

Hm, PR workflows don't have access to the DEVVERSION repo variable. Should look into that.

@slxdy
Copy link
Contributor Author

slxdy commented Oct 27, 2024

@HerpDerpinstine May I get the approval for the next point on the todo list?

@slxdy slxdy marked this pull request as ready for review November 6, 2024 16:47
@slxdy slxdy marked this pull request as draft November 12, 2024 19:17
@slxdy slxdy marked this pull request as ready for review November 12, 2024 19:23
@slxdy
Copy link
Contributor Author

slxdy commented Nov 12, 2024

.NET 9 has just officially released, which is perfect timing. .NET 10 contains a breaking change that blocks DllMain, so we're good until it's necessary to switch

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