Uninstaller Incompatibilities

Let us help you solve any problems you might have with TNM. This forum should remain spoiler-free - if your problem is spoilery in nature, please post in the forum above.

Moderator: TNM Team

Forum rules
Please only use this forum for problems of a technical nature. If you're stuck somewhere in the game, post in the TNM Spoiler Zone forum. If the game crashes, you can't load a savegame, or something just plain isn't working, this is the place to post.
Post Reply
ggrotz
X-51
Posts: 780
Joined: Tue Nov 10, 2009 12:55 am

Uninstaller Incompatibilities

Post by ggrotz »

Here's a little problem I just encountered. I notice this with the mods that add "useful extra" files, like TNM and 2027. What's going on with these "useful extra" files (like the OTP UI fix, renderers and so on) is that if something else is using the file (in other words, the file was already there on install), the uninstallers will take the file out.

This will happen with the renderer files (if I put them on manually & install them manually, or use something like my loader) in 2027, but the most ready example is the UI scaling fix. TNM and 2027 both will install these files. Both uninstallers will remove these files, too. Which means, if I uninstall 2027 and run TNM, I'm likely to get an error. The reverse would likely happen too as it applies to the UI scaling files. I can address it by replacing the files, of course. But really the issue is that these installers / uninstallers are not keeping track of whether files were already present or needed so the correct decision of whether to terminate the file is made.

To state what I observed with the renderer files, 2027 overwrote my existing DX9 renderer with ENBSeries upon install. And then the uninstaller removed ENBSeries, completely leaving my install without the DX9 renderer.

Anyway, I wanted to start this thread to toss around some ideas on how to handle these file collision issues in a nice way, without having to replace the files if the uninstall choice is made. Like with the loader I wrote, I thought about putting those files together into a little installer so they can be added if necessary (since the loader already effectively "installs" them into the settings files). That might be a solution (authors willing), but the obvious thing with these installers is that they need to preserve the files if already present.

Thoughts on how to address/handle it?
User avatar
Jonas
Off Topic Productions
Off Topic Productions
Posts: 14224
Joined: Sat Apr 24, 2004 9:21 pm
Location: Hafnia

Re: Uninstaller Incompatibilities

Post by Jonas »

Don't we put all our stuff in the separate TNM folder? If so, surely it shouldn't be a problem - no other uninstallers have any business messing with that folder.
Jonas Wæver
Chief Poking Manager of TNM

I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
ggrotz
X-51
Posts: 780
Joined: Tue Nov 10, 2009 12:55 am

Re: Uninstaller Incompatibilities

Post by ggrotz »

Jonas wrote:Don't we put all our stuff in the separate TNM folder? If so, surely it shouldn't be a problem - no other uninstallers have any business messing with that folder.
TNM and 2027 both throw things into DeusEx\System, which is where the problems are starting. I got the chance to troubleshoot things now by playing with TNM and 2027 in a virgin DX install. I checked the patch versions as well as the originals to be sure one of the patches wasn't throwing files there, too.

Let's start by installing both TNM and 2027. Now we uninstall TNM. I get the following when attempting to run 2027.

This window pops up.
2027 Screen shot #1
2027 Screen shot #1
Then this one pops up.
2027 Screen Shot #2
2027 Screen Shot #2
As a result, 2027 fails to run. 2027 installs the OTP UI scaling fix, which includes detoured.dll. The TNM installer log confirms that it throws detoured.dll into DeusEx\System, and a check of the directory confirms detoured.dll is missing. Replacing this file then allows 2027 to run normally.

Edit: I'm not so sure now that I think about it that 2027 will run normally, since I didn't play it for any length of time after I performed this part of the experiment (I just got to the menu). I notice TNM seems to make a backup of the original OpenGL dll. I would guess the uninstaller deletes its OpenGL renderer and replaces it with the backup. But given 2027's graphics, I'm not sure it would work well.
Rename: D:\DeusEx_Test\System\OpenGlDrv.dll->D:\DeusEx_Test\System\OpenGlDrv.bak
Output folder: D:\DeusEx_Test\System
Extract: OpenGLDrv.dll... 100%
Last edited by ggrotz on Fri Apr 20, 2012 7:05 pm, edited 2 times in total.
ggrotz
X-51
Posts: 780
Joined: Tue Nov 10, 2009 12:55 am

Re: Uninstaller Incompatibilities

Post by ggrotz »

Now I repeat the experiment the other way. I uninstall 2027, then reinstall both TNM and 2027. I then uninstall 2027 and run TNM.

I get this screen.
TNM ScreenShot #1
TNM ScreenShot #1
Followed by this screen.
TNM ScreenShot #2
TNM ScreenShot #2
I was mistaken in thinking TNM had the OTP scaling fix within it. But TNM seems to use detoured.dll for another purpose. Replacing this file will enable TNM to run, but we have another problem. TNM will then proceed to run using software rendering.
Warning: Failed to load 'OpenGLDrv': Can't find file for package 'OpenGLDrv'
Warning: Failed to load 'Class OpenGLDrv.OpenGLRenderDevice': Can't find file for package 'OpenGLDrv'
Warning: Can't find file for package 'OpenGLDrv'
Warning: Can't find file for package 'OpenGLDrv'
Log: Bound to SoftDrv.dll
Log: Setting 640x480x16
This is because TNM installs it's "Enhanced OpenGL renderer". But 2027 installs one as well, along with ENBSeries and DirectX 10 renderers. On 2027's uninstall, it wipes the OpenGL renderer, causing this issue. Replacing the OpenGLDrv.dll file from Chris Dohnal's OpenGL package will fix this issue, since I really am not sure that the original OpenGL driver is something that TNM can use well.

Hopefully that explains what I'm trying to point out more. Anyone moderately technically competent can fix these things, but in some ways it would be nice to come up with something better. The obvious best solution would be for the installers/uninstallers to be more intelligent about handling what they throw to DeusEx\System. But this might not be the best solution, especially if stock installers are written this way and there are more things coming down the pipeline that will try to install the same files.
Post Reply