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

Fatal crash on launch due to database index #8

Closed
hermaherp opened this issue May 3, 2020 · 13 comments
Closed

Fatal crash on launch due to database index #8

hermaherp opened this issue May 3, 2020 · 13 comments
Assignees
Labels
bug Something isn't working critical

Comments

@hermaherp
Copy link

Since the last update the manager crashes whenever I try to open it. The error that comes up is this one:

El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index
en System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
en EQUINE.Form1.<>c__DisplayClass15_1.b__0()
en System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
en System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
en System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
en System.Windows.Forms.Control.InvokeMarshaledCallbacks()
System.Collections.ListDictionaryInternal

Basically that theres a database indexing error, I went and checked the JSON files and noticed that the Polish translation mod is being registered with a ModID of "-1"

@sergi4ua sergi4ua added bug Something isn't working critical labels May 4, 2020
@sergi4ua sergi4ua self-assigned this May 4, 2020
@sergi4ua
Copy link
Owner

sergi4ua commented May 4, 2020

Hi! I've updated modinfo.json. Please delete the following files from EquineData:
ModInfo.json and customModInfo.json and try again.

@jmfindorff
Copy link

jmfindorff commented May 10, 2020

I get the same issue with DiabloPatch, but it does have a ModID above 0 ("ModID": "14"), so it might be above the collection size.

Edit: Okay it seems to only give that error when I have both the Belzebub HD Mod and Diablo Patch installed at the same time. Deleting one or the other from the game directory and deleting the ModInfo.json seems to fix the error.

Edit 2: Nevermind, I somehow fixed my problem. Not sure what I did, but I tried doing a complete uninstall (There were some registry entries lingering around even after uninstalling) and now I can have both mods installed no problem.

@sergi4ua
Copy link
Owner

sergi4ua commented May 11, 2020

I get the same issue with DiabloPatch, but it does have a ModID above 0 ("ModID": "14"), so it might be above the collection size.

Edit: Okay it seems to only give that error when I have both the Belzebub HD Mod and Diablo Patch installed at the same time. Deleting one or the other from the game directory and deleting the ModInfo.json seems to fix the error.

Edit 2: Nevermind, I somehow fixed my problem. Not sure what I did, but I tried doing a complete uninstall (There were some registry entries lingering around even after uninstalling) and now I can have both mods installed no problem.

@jmfindorff
Hmm... well the problem is... EQUINE doesn't touch your system registry at all. All it's settings are hold in a file called: config.json and customModInfos.json (if you add any custom mods). The mod database is in ModInfo.json (EQUINE is updating that file on every launch)
In any case, glad that you got it fixed 🙂

@hermaherp Any update?

@jmfindorff
Copy link

@sergi4ua
Okay I seem to have figured out why it was crashing. It does indeed crash when I install DiabloPatch, but only when I have a DDraw wrapper installed. Installing it without one, does not cause the crash.
Also here is the crash message just incase it's different:

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at EQUINE.Form1.<>c__DisplayClass15_1.b__0()
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
System.Collections.ListDictionaryInternal

@sergi4ua
Copy link
Owner

@sergi4ua
Okay I seem to have figured out why it was crashing. It does indeed crash when I install DiabloPatch, but only when I have a DDraw wrapper installed. Installing it without one, does not cause the crash.
Also here is the crash message just incase it's different:

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at EQUINE.Form1.<>c__DisplayClass15_1.b__0()
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
System.Collections.ListDictionaryInternal

@jmfindorff,
Thanks for this information 🙂
It will certaintly help with debugging the error.

@sergi4ua
Copy link
Owner

@sergi4ua
Okay I seem to have figured out why it was crashing. It does indeed crash when I install DiabloPatch, but only when I have a DDraw wrapper installed. Installing it without one, does not cause the crash.
Also here is the crash message just incase it's different:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at EQUINE.Form1.<>c__DisplayClass15_1.b__0()
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
System.Collections.ListDictionaryInternal

@jmfindorff,
Thanks for this information
It will certaintly help with debugging the error.

@jmfindorff
The error has been fixed in 1.1 🙂

sergi4ua added a commit that referenced this issue May 13, 2020
@PlagueWizard
Copy link

I seem to be having the same trouble, I've installed DiabloPatch and nothing else, using the GOG version of Diablo, and get this

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at EQUINE.Form1.<>c__DisplayClass15_1.b__0()
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
System.Collections.ListDictionaryInternal

@sergi4ua
Copy link
Owner

sergi4ua commented Jun 9, 2020

I seem to be having the same trouble, I've installed DiabloPatch and nothing else, using the GOG version of Diablo, and get this

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at EQUINE.Form1.<>c__DisplayClass15_1.b__0()
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
System.Collections.ListDictionaryInternal

nvm about 1.1, expect a bugfix today/tomorrow 🙂

@sergi4ua
Copy link
Owner

sergi4ua commented Jun 9, 2020

@PlagueWizard thx for reporting

@PlagueWizard
Copy link

@PlagueWizard thx for reporting

np, appreciate all the work u do on this

@sergi4ua
Copy link
Owner

@hermaherp @PlagueWizard Hi!
I've compiled a release-candidate for 1.0.3
Can you please test it out and say if it's works for you? Thanks 🙂
Just drop EQUINE.exe in your Diablo folder replacing the original file. If EQUINE asks to update, click "No" (clicking Yes will download the old version).
equine-103-rc1.zip

@PlagueWizard
Copy link

tested, does not crash after installing diablopatch

@sergi4ua
Copy link
Owner

1.0.3 has been released. Please reopen the issue if the problem persists.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working critical
Projects
None yet
Development

No branches or pull requests

4 participants