132 lines
7.8 KiB
Markdown
132 lines
7.8 KiB
Markdown
---
|
|
title: "How to fix The Saboteur installation on Origin and Windows 7"
|
|
date: 2020-04-13 18:00
|
|
url: how-to-fix-the-saboteur-installation-on-origin-and-windows-7
|
|
layout: post
|
|
category: Tutorials
|
|
image: /img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_1.png
|
|
description: "It's 2020, and there are still .NET issues within commercial programs..."
|
|
---
|
|
|
|
[![A missing blog post image](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_1.png)](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_1.png)
|
|
|
|
### Introduction
|
|
|
|
It's ~~COVID-19~~, Spring (sales), and [Epic Games is still running an offensive "dumping" strategy against Steam on the video games market](https://www.epicgames.com/store/en-US/free-games).
|
|
But still, let's talk about [Origin](https://www.origin.com/usa/en-us/) today, the EA's games platform.
|
|
|
|
I (very simply) wanted to enjoy Spring sales by getting a _legit_ copy of the highly recommended [The Saboteur (2009)](https://www.origin.com/gbr/en-us/store/saboteur/the-saboteur) game.
|
|
|
|
> This blog post has been written in English to higher its helping potential, nevertheless some screen-shots show French content as the target system is my personal setup here.
|
|
|
|
### An History of Sadness
|
|
|
|
So after having get a license, I have been downloading this piece of software, and (simply) expecting it to work out-of-the-box as any _legitimately_ owned game.
|
|
|
|
And at this very moment (last step of the installation process), we got the [(sadly) famous error message](https://answers.ea.com/t5/EA-General-Questions/The-Saboteur-Error-5100/td-p/6783889) :
|
|
|
|
> Error: The .Net Framework redistributable package was not installed successfully. Setup cannot continue. (5100)
|
|
|
|
Let's take a look to the installer log (`C:\Program Files (x86)\Origin Games\The Saboteur\__Installer\InstallLog.txt`) :
|
|
|
|
{% highlight plaintext %}
|
|
****************************************
|
|
Install Date: 04/12/2020
|
|
12:28:18 Started logging
|
|
****************************************
|
|
|
|
12:28:18 Install Location: C:\Program Files (x86)\Origin Games\The Saboteur\
|
|
12:28:18 [...]
|
|
12:28:18 Touchup not running under compatibility mode
|
|
12:28:18 [...]
|
|
12:28:18 Processing EAIN file 'C:\PROGRA~1\ORIGIN~1\THESAB~1\__INST~1\Touchup.dat'.
|
|
12:28:18 Installation registry missing. Game not yet installed.
|
|
12:28:18 (Config)Studio: Electronic Arts
|
|
12:28:18 (Config)Game Name: The Saboteur
|
|
12:28:18 (Config)Display Game Name: The Saboteur
|
|
12:28:18 (Config)Updating ForceUninstallAllFiles to: 0
|
|
12:28:18 (Config)Updating ForceUninstallAllFiles to: 1
|
|
12:28:18 EAI data version: 5.03.02.00
|
|
12:28:18 [...]
|
|
12:29:53 Started DotNet runtime install phase for: dotnet35sp1
|
|
12:29:53 Launching process:
|
|
Command: "C:\PROGRA~1\ORIGIN~1\THESAB~1\__INST~1\dotnet\dotnet35sp1\redist\dotnetfx35.exe" /q /norestart
|
|
Working directory: C:\PROGRA~1\ORIGIN~1\THESAB~1\__INST~1\dotnet\dotnet35sp1\redist\
|
|
12:29:53 Process exited with exit code 5100.
|
|
12:29:53 Error installing DotNet runtime.
|
|
12:31:45 Installer finished with exit code: 1
|
|
12:31:45 Shutting down data reader.
|
|
|
|
****************************************
|
|
12:31:45 Stopping install logging
|
|
****************************************
|
|
{% endhighlight %}
|
|
|
|
The program to incriminate is this one : `C:\Program Files (x86)\Origin Games\The Saboteur\__Installer\dotnet\dotnet35sp1\redist\dotnetfx35.exe`.
|
|
It's actually an [_official_ .NET Framework 3.5 SP1 installer wizard](https://www.microsoft.com/en-us/download/details.aspx?id=22) shipped by the Origin team along with the game to meet required dependencies (SHA256 : `6ba7399eda49212524560c767045c18301cd4360b521be2363dd77e23da3cf36`).
|
|
|
|
Anyway, if you **do** try to install it manually, the wizard will "advise" you to use "Programs and Features" and "enable" it from there.
|
|
|
|
[![A missing blog post image](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_2.png)](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_2.png)
|
|
|
|
Actually, if you got on this blog post, you might have sadly noticed the feature is already enabled :joy:
|
|
|
|
[![A missing blog post image](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_3.png)](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_3.png)
|
|
|
|
What the EA team definitely **missed** is that, since October 2019, Micro$oft released .NET Framework 4.8 for Windows 7 SP1 (and above) through Windows Update (**KB4503548**). And it appears installing 3.5 on Windows 7 if this update is installed is broken.
|
|
|
|
[![A missing blog post image](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_4.png)](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_4.png)
|
|
|
|
So let's trust Micro$oft when they say the 3.5.1 version is installed (from [here](https://support.microsoft.com/en-us/help/4503548/microsoft-net-framework-4-8-offline-installer-for-windows) : "_.NET Framework [4.8] runs side-by-side with the .NET Framework 3.5 SP1_"), and let's try to "imitate" a successful installation of the latter.
|
|
|
|
One more issue, Origin bundles `Touchup.exe`, a program being run by Origin itself to install the game and its requirements.
|
|
I _imagine_ it refers to the respective `Touchup.dat` file that should contain the dependencies list, but we can't really open and edit such a BLOB, as we would maybe have done against a _regular_ configuration file.
|
|
|
|
[![A missing blog post image](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_5.png)](/img/blog/how-to-fix-the-saboteur-installation-on-origin-and-windows-7_5.png)
|
|
|
|
> So, how could I possibly trick `Touchup` and make it _think_ the .NET dependency is already anyhow satisfied ?
|
|
|
|
Yes nice catch, here is _a_ solution.
|
|
Open up a commands prompt (as `cmd.exe` or `powershell.exe`), and navigate through your file system until you encounter an executable program (your Web browser main binary for instance).
|
|
Run it with the same parameters passed by `Touchup`, close its GUI if one opened up, and check its exit code :
|
|
|
|
{% highlight batchfile %}
|
|
cd .\a\windows\directory\path
|
|
\.program_name.exe /q /norestart
|
|
echo %errorlevel%
|
|
:: Replace `%errorlevel%` by `$?` on PowerShell.
|
|
{% endhighlight %}
|
|
|
|
If the prompt prints `0` (or `True` on PowerShell), stop right here : You got a candidate.
|
|
Copy the binary program as `C:\PROGRA~1\ORIGIN~1\THESAB~1\__INST~1\dotnet\dotnet35sp1\redist\dotnetfx35.exe` (you should make a backup of the original `dotnetfx35.exe` **before**).
|
|
|
|
Once it's done, you may try to run the game installation from Origin again, and... surprise :tada:
|
|
|
|
> But what if I can't manage to find _any_ program exiting with `0` ?
|
|
|
|
It's I.T., you can build your own using [Code::Blocks](https://www.codeblocks.org/downloads/binaries#windows) for instance :wink:
|
|
|
|
Quicker solution, `vlc.exe` (yes, the awesome video player from VideoLAN) is a candidate.
|
|
|
|
{% highlight c %}
|
|
#include <stdio.h>
|
|
|
|
|
|
int main(int argc, const char* argv[])
|
|
{
|
|
printf("I\'m about to trick Touchup !");
|
|
|
|
return 0;
|
|
}
|
|
{% endhighlight %}
|
|
|
|
Paste the snippet above, compile it using the shipped-in MinGW, fetch the resulting .EXE under your newly created project's release build directory and rename it as `dotnetfx35.exe`.
|
|
|
|
Congratulations, you got your own .NET Framework 3.5 SP1 installer now :trollface:
|
|
|
|
### Conclusion
|
|
|
|
So you'd have understood, here we worked around the installer non-modularity (and bug ?) by emulating a `0` exit code that would cause `Touchup.exe` to successfully exit too, tricking Origin and making it _set_ the game as correctly and fully-installed in its local database...
|
|
|
|
Before leaving and hoping that this piece of writing helped you, an advice for the EA development managers : If [your launcher s\*cks](https://www.reddit.com/r/origin/) before AND after its rewrite, maybe it's actually time to change the chair/keyboard middlewares (and rewrite it again), isn't it ?
|