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

Crash when entering the game with -direct -txt options on #140

Open
movomo opened this issue Feb 6, 2024 · 1 comment
Open

Crash when entering the game with -direct -txt options on #140

movomo opened this issue Feb 6, 2024 · 1 comment

Comments

@movomo
Copy link

movomo commented Feb 6, 2024

Hi, I have two computers running D2 on, and on one of them the game crashes when selected a character and entering the game.

Set up-wise, the two installations are exactly identical. I've been running the games for quite some time and I'm pretty sure this is not some mis-modified txt file or something. (I can run the game normally if I remove d2gl and restore sven's glide3x.dll.)

The game itself runs, I can even access the Ctrl+O menu in the game's main menu screen, can seem to change a few options there, but if I select any character and try to enter game, it crashes with an unhandled exception message (access violation: c0000005). I'll try to explain the specifics and oddities below.

Details

  • OS: Windows 10 20H2 19042.1706)
  • Hardware: AMD Ryzen 7 1700 & NVIDIA GeForce GTX 1070 (I attached a dxdiag output)
  • D2 version: 113d
  • command line options: "Diablo II.exe" -direct -txt -3dfx -log
  • mods: vanilla-ish, but with a mod named uvlod (only its dll file). It forces me to run the game as admin, and I also need to use a modified D2Win.dll file. So d2gl.log will complain like this:

    [23:28:57][ERROR] Offset: d2win.dll, 60851(0x0000EDB3), 0(0x00000000). Original bytes are not equal: 0x01FF15B8 != 0x50FF15B8

  • renderer: glide, but the log file still says it's glide even when I run the game without -3dfx and still crashes.
  • SGD2FreeResolution or d2fps not installed (removed after first crash)

  • The game doesn't seem to crash if -direct -txt options are removed. But it crashes as soon as those options are fed, even with a very simple txt change that can't possibly go wrong, such as pure vanilla armor.txt file. I don't think it's related to wrong txt modification. After all, it runs on my another computer.
  • The game still crashes if I restore vanilla d2win.dll file (hence disabling uvlod).

Attachments

I'll attach the crashing computer's log files here cause they're very long.

crashreport.zip

On the one that works, the d2gl.log file is very short.

== D2GL v1.3.3 logging started. (2024/2/6) ==

[23:28:57][INFO] Renderer Api: Glide
[23:28:57][INFO] Diablo 2 LoD (English) version 1.13d detected.
[23:28:57][INFO] Windows version 6.1 (build: 7600) detected.
[23:28:57][INFO] Loading early DLLs.
[23:28:57][ERROR] Offset: d2win.dll, 60851(0x0000EDB3), 0(0x00000000). Original bytes are not equal: 0x01FF15B8 != 0x50FF15B8
[23:28:58][INFO] Game requested screen size: 640 x 480
[23:28:58][INFO] Window style switched to dark mode.
[23:28:58][INFO] Switched to fullscreen mode: 1920 x 1200
[23:29:00][INFO] OpenGL: 4.5 (AMD Radeon HD 5800 Series | ATI Technologies Inc.)
[23:29:00][INFO] OpenGL: Shading Language: 4.5
[23:29:00][INFO] OpenGL: GL_MAX_TEXTURE_IMAGE_UNITS = 18
[23:29:00][INFO] OpenGL: GL_KHR_debug enabled!
[23:29:00][INFO] OpenGL: Independent blending available.
[23:29:00][ERROR] File (MPQ): "data\assets\atlases\eng.txt" could not opened!
[23:29:01][INFO] Loading late DLLs.
[23:29:01][INFO] SGD2FreeRes.dll loaded.
[23:29:03][INFO] Applying custom size.
[23:29:03][INFO] Game requested screen size: 800 x 600
[23:29:03][INFO] Game requested screen size: 640 x 480
[23:29:03][INFO] Applying custom size.
[23:29:03][INFO] Game requested screen size: 800 x 600
[23:29:11][INFO] Applying custom size.
[23:29:11][INFO] Game requested screen size: 960 x 600
[23:29:26][INFO] Applying custom size.
[23:29:26][INFO] Game requested screen size: 800 x 600

@movomo
Copy link
Author

movomo commented Feb 7, 2024

I have to report that it appears to work sometimes, very rarely. I have not figured out under what condition does this happen, but I'll post a successful d2gl.log file anyway.

d2gl.log when the game didn't crash
== D2GL v1.3.3 logging started. (2024/2/7) ==

[21:41:13][INFO] Renderer Api: Glide
[21:41:13][INFO] Diablo 2 LoD (English) version 1.13d detected.
[21:41:13][INFO] Windows version 10.0 (build: 19042) detected.
[21:41:13][INFO] Loading early DLLs.
[21:41:13][ERROR] Offset: d2win.dll, 60851(0x0000EDB3), 0(0x00000000). Original bytes are not equal: 0x01FF15B8 != 0x50FF15B8
[21:41:13][INFO] Game requested screen size: 640 x 480
[21:41:13][INFO] Window style switched to dark mode.
[21:41:13][INFO] Switched to windowed mode: 800 x 600
[21:41:14][INFO] OpenGL: 4.6 (NVIDIA GeForce GTX 1070/PCIe/SSE2 | NVIDIA Corporation)
[21:41:14][INFO] OpenGL: Shading Language: 4.6
[21:41:14][INFO] OpenGL: GL_MAX_TEXTURE_IMAGE_UNITS = 32
[21:41:14][INFO] OpenGL: GL_KHR_debug enabled!
[21:41:14][INFO] OpenGL: Independent blending available.
[21:41:14][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:14][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 4 (bound to GL_UNIFORM_BUFFER (0), and GL_UNIFORM_BUFFER_EXT, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:14][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 6 (bound to GL_UNIFORM_BUFFER (2), and GL_UNIFORM_BUFFER_EXT, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:14][ERROR] File (MPQ): "data\assets\atlases\eng.txt" could not opened!
[21:41:14][INFO] Loading late DLLs.
[21:41:14][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 2 (bound to GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (2), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (3), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (4), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (5), and GL_ARRAY_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:14][INFO] Game requested screen size: 800 x 600
[21:41:14][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 5 (bound to GL_UNIFORM_BUFFER (1), and GL_UNIFORM_BUFFER_EXT, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:15][INFO] Game requested screen size: 640 x 480
[21:41:15][INFO] Game requested screen size: 800 x 600
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 3 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 5 (bound to GL_UNIFORM_BUFFER (1), usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 5 (bound to GL_UNIFORM_BUFFER (1), usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Based on the usage hint and actual usage, buffer object 2 (bound to GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (2), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (3), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (4), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (5), and GL_ARRAY_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will be configured as STREAM.
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 2 (bound to GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (2), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (3), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (4), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (5), and GL_ARRAY_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 2 (bound to GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (0), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (1), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (2), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (3), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (4), GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB (5), and GL_ARRAY_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Based on the usage hint and actual usage, buffer object 3 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will be configured as STREAM.
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 3 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:15][INFO] OpenGL: [131185 / Notification]: Api | Buffer detailed info: Buffer object 3 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[21:41:19][INFO] Game requested screen size: 800 x 600

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

No branches or pull requests

1 participant