Skip to content

[IDEA] Semi-Automated Unloading via Shared Libraries #92

@Sewer56

Description

@Sewer56

Something that came up... while I was swimming...

In Reloaded-II have the concept of shared libraries (dynamic linking - but in .NET).
We also have the ability to unload/load/reload mods at runtime.

However, in order to support unloading, a mod must explicitly opt-in, and manually handle the Unload event to e.g. uninstall hooks.

That could be error prone at scale, for instance; for very big mods; the feature also saw very little adoption as the ability to load/unload was hidden behind a hard to find location (clicking on process label in list).

6 years of experience with R2 mods however reveals, that in most cases, the only thing that needs to be 'undone' for unloading is hooks. Not too many mods do direct code patches.

Therefore; by tracking state (i.e. hooks) inside the shared library, and by providing an abstraction over patching game code with raw bytes (or asm); we should be able to automatically undo changes made by a given mod. i.e. Automated unload implementation more-less.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions