ModOrganizer2 / modorganizer

Mod manager for various PC games. Discord Server: https://discord.gg/ewUVAqyrQX if you would like to be more involved
http://www.nexusmods.com/skyrimspecialedition/mods/6194
GNU General Public License v3.0
2.23k stars 163 forks source link

Clean Oblivion (steam version) crashes on startup #956

Closed VictorDragonslayer closed 4 years ago

VictorDragonslayer commented 4 years ago

The problem:

Clean installation of Oblivion crashes on startup with message "Application stopped working".

To Reproduce:

  1. Erase all files from previous installation - uninstall the game via Steam, delete "C:\Users\\Documents\My Games\Oblivion".
  2. Install the game via Steam, verify its integrity.
  3. Launch it.
  4. Install MO 2 as portable, point it to Oblivion and launch.
  5. Launch the game.

Expected result: game launched.

Actual result: game crashes with "Application stopped working" message.

Environment:

Details:

I did extensive googling and tried different solutions - none of them helped. I got an interesting result with putting steam.exe to the game folder - I was able to run Oblivion launcher, which had all options greyed out except "Eldescrolls.com" and "Exit". If steam.exe is not present, attempt to run Oblivion launcher results in the same crash mentioned in the title.

Link to Mod Organizer logs:

USVFS:

https://gist.github.com/VictorDragonslayer/d68ad104fe3f934cc1b984b0af966fa3

MO Interface:

https://gist.github.com/VictorDragonslayer/c3612366ad70ef5977671a5b61027392 "Не удается найти указанный файл" means "can't find specified file". "В системе отображения конечных точек не осталось доступных конечных точек" means "no available endpoints left in endpoint mapping system". I don't know what endpoint is, so translation may be inaccurate, so you better use error code - 0x800706d9.

VictorDragonslayer commented 4 years ago

UPD based on https://github.com/ModOrganizer2/modorganizer/issues/584

After renaming detoured.dll, nvd3d9wrap.dll and nvdxgiwrap.dll in C:\Program Files\NVIDIA Corporation\coprocmanager\ and C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\ two scenarios appeared.

Scenario 1:

  1. Launch MO 2.2.1 with clean Oblivion (there is no steam.exe in Oblivion folder).
  2. Select Oblivion Launcher and run it.

Expected result: launcher is open, all options are available. Actual result: launcher is open, only "Eldescrolls.com" and "Exit" are available.

USVFS: https://gist.github.com/VictorDragonslayer/1a97622dfff45007c42156ce6f6af4d2 MO Interface: https://gist.github.com/VictorDragonslayer/ad786d025d2e704c5bd831aaa3ef845b

Scenario 2:

  1. Launch MO 2.2.1 with clean Oblivion (there is no steam.exe in Oblivion folder).
  2. Select Oblivion and run it.

Expected result: game launched. Actual result: game launches with black screen and resizes to full screen, then crashes with "Application stopped working".

USVFS: https://gist.github.com/VictorDragonslayer/330a4d1565fae955fc5478206cfd7476 MO Interface: https://gist.github.com/VictorDragonslayer/cd1db94165b12a24585c2065a3c2fc37

Details. Looks like NVIDIA Optimus clashes with MO 2.2.1. It was the only blocking factor for Morrowind, but in this case something besides Optimus is affecting MO.

Al12rs commented 4 years ago

Try this:

To check whether the issue is related to one of the mods installed or your ini settings, see if it keeps happening in a new empty profile: https://cdn.discordapp.com/attachments/403979692501106688/524939782435110924/unknown.png https://cdn.discordapp.com/attachments/403979692501106688/524940397643038740/unknown.png

Also make sure you don't have any mods installed in actual game folder, and test if the issue happens outside of Mo2 if you didn't already.

The default profile does not take clean INIs to start with and it could have taken something wrong from your Mygames or it could have been a problem with initialization somewhere. Black screen does sound like a problem with the ini files. Mo2 uses his own copies of INI files for each profile.

VictorDragonslayer commented 4 years ago

Test successful. Scenario:

  1. Created new profile with "Default Game INI Settings" turned on.
  2. Selected it and started the game.

Expected result: game launched. Actual result: game launched.

INI generated by MO: https://gist.github.com/VictorDragonslayer/4ef1db2f18a543d2e9a893eaad842849 INI used for latest failed test (generated by the game, because \Documents\My Games\Oblivion was erased): https://gist.github.com/VictorDragonslayer/2bb367b26ee2ae770ab12a977acb1391

Modifying working INI via BethINI yielded working file. Now I'll test ini generation by the game itself.

INI generated by the game.

Scenario 1:

  1. Delete oblivion.ini from \Documents\My Games\Oblivion.
  2. Run the game launcher via Steam (default ini generated).
  3. Click "Play".
  4. Play Oblivion via Steam (create new game and save it).

Expected result: default ini created, new game started and saved. Actual result: default ini created, new game started and saved. INI: https://gist.github.com/VictorDragonslayer/3e8a46e6769e7964673e7223a2909106

Scenario 2:

  1. Created new profile with "Default Game INI Settings" turned on.
  2. Replace its oblivion.ini with a file from scenario 1.
  3. Run Oblivion via MO.

Expected result: game launched. Actual result: game launched. INI from profile folder: https://gist.github.com/VictorDragonslayer/9f98a5c480e9217715f4fc366aa05027

Scenario 3:

  1. Delete oblivion.ini from \Documents\My Games\Oblivion.
  2. Run the game launcher via Steam (default ini generated).
  3. Close the launcher by selecting "Exit".
  4. Run the game launcher via Steam again.
  5. Click "Play".

Expected result: game launched. Actual result: game launched. INI: https://gist.github.com/VictorDragonslayer/09b43a69d2a2371eb086835766196c4c

Scenario 4:

  1. Delete oblivion.ini from \Documents\My Games\Oblivion.
  2. Run the game launcher via Steam (default ini generated).
  3. Close the launcher by selecting "Exit".
  4. Created new profile with "Default Game INI Settings" turned off, make sure that there are no oblivion.ini in its folder and profile will use ini from \Documents\My Games\Oblivion.
  5. Run Oblivion via MO.

Expected result: game launched. Actual result: game launched. INI: https://gist.github.com/VictorDragonslayer/382f5dd30ddf5a31ed170d7438d1f750

Result.

4 tests passed. Stable scenario for creating corrupted oblivion.ini is unclear. I suspect that transitional INI (12,8 Kb file created after running Oblivion launcher: https://gist.github.com/VictorDragonslayer/7a8d0028c9ef2e8050eaf5a26b54f2eb) under certain circumstances may not be updated when the game is launched (working INI files are 17,2 Kb in size). I get "Video hardware unrecognized. Video quality settings defaulting to Medium Quality" message when running Oblivion launcher "for the first time", don't know if it related or not. Either way, it is unlikely that the issue is related MO 2.

Workaround.

Create a new profile with "Default Game INI Settings" and "Use profile-specific Game INI files" options.

Al12rs commented 4 years ago

We are considering using default game settings for the base profile instead of the ones found in Mygames at the moment, because of cases like this, but on the other hand the default game settings will cause stuff like incorrect resolutions and windowed mode that create a lot of confusion for noobs that are not sure how to fix those issues.