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

Some games use plain "mono.dll" #1

Closed
wants to merge 2 commits into from
Closed

Some games use plain "mono.dll" #1

wants to merge 2 commits into from

Conversation

Techial
Copy link

@Techial Techial commented Jul 5, 2020

As the title states, some games use plain "mono.dll" instead of "mono-2.0-bdwgc.dll", therefore having the choice to select targeted mono module would be a nice addition.

(Some games use different mono modules -> Add support for changing targeted mono module)
@Razchek
Copy link
Owner

Razchek commented Jul 5, 2020

Good call.

Before committing to this, I need to ensure that the structural information is supported. And rather than providing the user the option, there should only be those two. So simply looking for the other if one doesn't exist would provide a better user experience due to the reduced complexity (this will also make it easier to transition into IL2CPP support when the project reaches that milestone).

Unity v20xx.x.x (mono.dll)
Unity v20xx.x.x-mbe bleeding-edge (mono-2.0-bdwgc.dll)

Did you have a game title that is currently using the standard mono library? I'd like to check the structure info before continuing.

Thank you for the PR. ❤️

@Techial
Copy link
Author

Techial commented Jul 5, 2020

Robocraft, Software Inc, Keep talking and nobody explodes, Holdfast Nations At War, Heliborne, Gang Beasts Online (At least in beta), Death Toll and Battlerite are the ones I remember from the top of my head

@Techial
Copy link
Author

Techial commented Jul 5, 2020

Totally Accurate Battlegrounds

@Razchek
Copy link
Owner

Razchek commented Jul 5, 2020

Thank you. I went and took a look at the games that were available freely from that list.
Robocraft is 32-bit. 32-bit is unsupported. I took a look regardless, and the structures were expectantly different.
Battlerite is 32-bit and uses Unity 5.4. I decided to skip this because of that.
Death Toll is using Unity 2017.4.1. This was a promising result, but unfortunately the structure information was different.

Instead of continuing to shotgun for a match I went and took a look at the source code for both the standard mono and bleeding edge versions (I should have done this in the first place). And unfortunately 'standard mono' expectantly has differences from the bleeding edge revision. While supporting the standard mono module is possible with some more R&D; the current model of the project cannot dissect information from the standard mono module without multiple changes.

Here is _MonoClass from each mono version for comparison:

As such I won't commit these changes, but instead open an issue to later reflect on this to decide on how to add support when dynamic structures are implemented in Unispect.

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.

2 participants