From 1791c28ddb26f8e758d46fd64b63463f260decb2 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Wed, 1 May 2019 11:48:14 +0200 Subject: [PATCH 01/39] Add files via upload --- Engines/Wine/Verbs/atmlib/script.js | 50 +++++++++++++++++++++++++++ Engines/Wine/Verbs/atmlib/script.json | 11 ++++++ 2 files changed, 61 insertions(+) create mode 100644 Engines/Wine/Verbs/atmlib/script.js create mode 100644 Engines/Wine/Verbs/atmlib/script.json diff --git a/Engines/Wine/Verbs/atmlib/script.js b/Engines/Wine/Verbs/atmlib/script.js new file mode 100644 index 0000000000..8b8070d03c --- /dev/null +++ b/Engines/Wine/Verbs/atmlib/script.js @@ -0,0 +1,50 @@ +include("engines.wine.engine.object"); +include("utils.functions.net.resource"); +include("utils.functions.filesystem.files"); + +/** +* Verb to install atmlib +* @returns {Wine} Wine object +*/ +Wine.prototype.atmlib = function () { + var setupFile = new Resource() + .wizard(this.wizard()) + .url("https://ftp.gnome.org/mirror/archive/ftp.sunet.se/pub/security/vendor/microsoft/win2000/Service_Packs/usa/W2KSP4_EN.EXE") + .checksum("fadea6d94a014b039839fecc6e6a11c20afa4fa8") + .name("W2ksp4_EN.exe") + .get(); + + new CabExtract() + .archive(setupFile) + .wizard(this.wizard()) + .to(this.system32directory()) + .extract(); + + new CabExtract() + .archive(this.system32directory() + "/i386/atmlib.dl_") + .wizard(this.wizard()) + .to(this.system32directory()) + .extract(); + + remove(this.system32directory() + "/i386/"); + + return this; +}; + +/** + * Verb to install atmlib +*/ +var verbImplementation = { + install: function (container) { + var wine = new Wine(); + wine.prefix(container); + var wizard = SetupWizard(InstallationType.VERBS, "atmlib", java.util.Optional.empty()); + wine.wizard(wizard); + wine.atmlib(); + wizard.close(); + } +}; + +/* exported Verb */ +var Verb = Java.extend(org.phoenicis.engines.Verb, verbImplementation); + diff --git a/Engines/Wine/Verbs/atmlib/script.json b/Engines/Wine/Verbs/atmlib/script.json new file mode 100644 index 0000000000..70cc4b033e --- /dev/null +++ b/Engines/Wine/Verbs/atmlib/script.json @@ -0,0 +1,11 @@ +{ + "scriptName" : "atmlib", + "id" : "engines.wine.verbs.atmlib", + "compatibleOperatingSystems" : [ + "MACOSX", + "LINUX" + ], + "testingOperatingSystems" : [], + "free" : true, + "requiresPatch" : false +} From 0cd3195c6bbd5f3043dd1079565430a01ed6e4bb Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 6 May 2019 09:40:19 +0200 Subject: [PATCH 02/39] Add files via upload --- Applications/Games/The Sims 2/Local/script.js | 50 ++++++++++++++++++ .../Games/The Sims 2/Local/script.json | 14 +++++ .../Games/The Sims 2/Origin/script.js | 49 +++++++++++++++++ .../Games/The Sims 2/Origin/script.json | 14 +++++ .../Games/The Sims 2/application.json | 5 ++ .../Games/The Sims 2/miniatures/main.png | Bin 0 -> 65743 bytes .../Games/The Sims 2/resources/registry.reg | 9 ++++ 7 files changed, 141 insertions(+) create mode 100644 Applications/Games/The Sims 2/Local/script.js create mode 100644 Applications/Games/The Sims 2/Local/script.json create mode 100644 Applications/Games/The Sims 2/Origin/script.js create mode 100644 Applications/Games/The Sims 2/Origin/script.json create mode 100644 Applications/Games/The Sims 2/application.json create mode 100644 Applications/Games/The Sims 2/miniatures/main.png create mode 100644 Applications/Games/The Sims 2/resources/registry.reg diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js new file mode 100644 index 0000000000..863f8993ee --- /dev/null +++ b/Applications/Games/The Sims 2/Local/script.js @@ -0,0 +1,50 @@ +include("engines.wine.quick_script.local_installer_script"); +include("engines.wine.verbs.vcrun2010"); +include("engines.wine.verbs.vcrun2013"); +include("engines.wine.plugins.windows_version"); +include("utils.functions.net.resource"); +include("utils.functions.filesystem.files"); +include("utils.functions.filesystem.extract"); + +var installerImplementation = { + run: function () { + new LocalInstallerScript() + .name("The Sims 2") + .editor("Electronic Arts") + .applicationHomepage("https://www.ea.com/en-gb/games/simcity") + .author("ZemoScripter") + .category("Games") + .executable("Origin.exe") + .wineVersion("4.5") + .wineDistribution("staging") + .preInstall(function(wine) { + wine.vcrun2010(); + wine.vcrun2013(); + wine.windowsVersion("winxp"); + var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); + wine.regedit().patch(registrySettings); + }) + .postInstall(function(wine) { + var fixes = new Resource() + .wizard(this.wizard()) + .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") + .name(sims2_fixes.tar.xz) + .get(); + + new Extractor() + .wizard(this.wizard()) + .archive(fixes) + .to(wine.prefixDirectory() + "/drive_c/users/$USER/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") + .extract(); + var configFile = wine.prefixDirectory() + "drive_c/users/$USER/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + touch(configFile); + writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); + }) + + .go(); + } +}; + +/* exported Installer */ +var Installer = Java.extend(org.phoenicis.scripts.Installer, installerImplementation); + diff --git a/Applications/Games/The Sims 2/Local/script.json b/Applications/Games/The Sims 2/Local/script.json new file mode 100644 index 0000000000..b82bc4d51c --- /dev/null +++ b/Applications/Games/The Sims 2/Local/script.json @@ -0,0 +1,14 @@ +{ + "scriptName" : "Local", + "id" : "applications.games.the_sims_2.local", + "compatibleOperatingSystems" : [ + "MACOSX", + "LINUX" + ], + "testingOperatingSystems" : [ + "MACOSX", + "LINUX" + ], + "free" : false, + "requiresPatch" : false +} diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js new file mode 100644 index 0000000000..3eb8070c3d --- /dev/null +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -0,0 +1,49 @@ +include("engines.wine.quick_script.origin_script"); +include("engines.wine.verbs.vcrun2010"); +include("engines.wine.verbs.vcrun2013"); +//include("engines.wine.plugins.windows_version"); +include("utils.functions.net.resource"); +include("utils.functions.filesystem.files"); +include("utils.functions.filesystem.extract"); + +var installerImplementation = { + run: function () { + new OriginScript() + .name("The Sims 2") + .editor("Electronic Arts") + .applicationHomepage("https://www.ea.com/en-gb/games/simcity") + .author("ZemoScripter") + .category("Games") + .wineVersion("4.5") + .wineDistribution("staging") + .appId("1014457,sims2_apt_life,sims2_bestofbusiness_dd,sims2_bonvoyage_na,sims2dd_remaster,sims2_freetime,sims2_funwpets_dd,sims2_stuffpackglamour_na,sims2_holiday2_na,sims2-holiday,sims2_inseason_na,sims2_collegepack_dd") + .preInstall(function(wine) { + wine.vcrun2010(); + wine.vcrun2013(); + //wine.windowsVersion("winxp"); + var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); + wine.regedit().patch(registrySettings); + }) + .postInstall(function(wine, wizard) { + var fixes = new Resource() + .wizard(wine.wizard()) + .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") + .checksum("601382327e9e89571ea600dd9dd8818297840c88") + .name(sims2_fixes.tar.xz) + .get(); + + new Extractor() + .wizard(wine.wizard()) + .archive(fixes) + .to(wine.prefixDirectory() + "/drive_c/users/$USER/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") + .extract(); + var configFile = wine.prefixDirectory() + "drive_c/users/$USER/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + touch(configFile); + writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); + }) + .go(); + } +}; + +/* exported Installer */ +var Installer = Java.extend(org.phoenicis.scripts.Installer, installerImplementation); diff --git a/Applications/Games/The Sims 2/Origin/script.json b/Applications/Games/The Sims 2/Origin/script.json new file mode 100644 index 0000000000..8518bc66ff --- /dev/null +++ b/Applications/Games/The Sims 2/Origin/script.json @@ -0,0 +1,14 @@ +{ + "scriptName" : "Origin", + "id" : "applications.games.the_sims_2.origin", + "compatibleOperatingSystems" : [ + "MACOSX", + "LINUX" + ], + "testingOperatingSystems" : [ + "MACOSX", + "LINUX" + ], + "free" : false, + "requiresPatch" : false +} diff --git a/Applications/Games/The Sims 2/application.json b/Applications/Games/The Sims 2/application.json new file mode 100644 index 0000000000..4c6d6adbf0 --- /dev/null +++ b/Applications/Games/The Sims 2/application.json @@ -0,0 +1,5 @@ +{ + "name" : "The Sims 2", + "id" : "applications.games.the_sims_2", + "description" : "The Sims 2 is a strategic life simulation computer game developed by Maxis and published by Electronic Arts. It is the sequel The Sims. The game builds on its predecessor by allowing Sims, the simulated human characters, to age through six stages of life and incorporating a more powerful 3D graphics engine." +} diff --git a/Applications/Games/The Sims 2/miniatures/main.png b/Applications/Games/The Sims 2/miniatures/main.png new file mode 100644 index 0000000000000000000000000000000000000000..63392b6eb521e5ade7596e523517f6fd33fd7bcf GIT binary patch literal 65743 zcmeFY1yEeuwl3TajT0;+I5Z6;xVtv)?iSqLCBZ!ecL^HYU4w<7!QI_GKydO%_CDwA zbMLuU_1<6gS6!ef)*RpX#vC%ooV|JxrXVN&3>hC8002Cbln_w@0D#d?FIq&HrxC*` z#{>WXr`S_P!&%9|4Q%gdXKG<>0(SPWHvyZtTbKd>?(<8j+OcF@j-o%Skm-Q-tx2#Q zK$auu;7rrE(&OU&45kSQlGtQbNoHnT;PnPSAoz~t=VMp+XL?v>{c6cDL@XA1~c^cMgIgPEfpl zuJyvz99y@Zo(OvDQ7+7!T|Ds1+<8{b%TL@qX5Q^!`J~_9-Hjs!tD~8sxH=7-9bC

X+D1E;k)wnJ2<;*3UWWuuj>)xGvu@6bR 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 literal 0 HcmV?d00001 diff --git a/Applications/Games/The Sims 2/resources/registry.reg b/Applications/Games/The Sims 2/resources/registry.reg new file mode 100644 index 0000000000..02696dff86 --- /dev/null +++ b/Applications/Games/The Sims 2/resources/registry.reg @@ -0,0 +1,9 @@ +REGEDIT4 + +[HKEY_CURRENT_USER\Software\Wine\Direct3D] +"MaxShaderModelVS"=dword:00000002 + +[HKEY_CURRENT_USER\Software\Wine\Direct3D] +"MaxShaderModelPS"=dword:00000002 + + From dac4c85fd1ecdf11b0c5cbc11dd3e271f0538ac2 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 6 May 2019 09:52:09 +0200 Subject: [PATCH 03/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 863f8993ee..7144b897e2 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -17,18 +17,18 @@ var installerImplementation = { .executable("Origin.exe") .wineVersion("4.5") .wineDistribution("staging") - .preInstall(function(wine) { + .preInstall(function (wine) { wine.vcrun2010(); wine.vcrun2013(); wine.windowsVersion("winxp"); var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) - .postInstall(function(wine) { + .postInstall(function (wine) { var fixes = new Resource() .wizard(this.wizard()) .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") - .name(sims2_fixes.tar.xz) + .name("sims2_fixes.tar.xz") .get(); new Extractor() From b283130e01e536d6c09aee0a4605767f2e3a22b1 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 6 May 2019 09:56:13 +0200 Subject: [PATCH 04/39] Update script.js --- Applications/Games/The Sims 2/Origin/script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 3eb8070c3d..089632833d 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -17,19 +17,19 @@ var installerImplementation = { .wineVersion("4.5") .wineDistribution("staging") .appId("1014457,sims2_apt_life,sims2_bestofbusiness_dd,sims2_bonvoyage_na,sims2dd_remaster,sims2_freetime,sims2_funwpets_dd,sims2_stuffpackglamour_na,sims2_holiday2_na,sims2-holiday,sims2_inseason_na,sims2_collegepack_dd") - .preInstall(function(wine) { + .preInstall(function (wine) { wine.vcrun2010(); wine.vcrun2013(); //wine.windowsVersion("winxp"); var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) - .postInstall(function(wine, wizard) { + .postInstall(function (wine) { var fixes = new Resource() .wizard(wine.wizard()) .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .checksum("601382327e9e89571ea600dd9dd8818297840c88") - .name(sims2_fixes.tar.xz) + .name("sims2_fixes.tar.xz") .get(); new Extractor() From 66cefa44a157403c4bff80a169a82a05055329bb Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 6 May 2019 10:08:04 +0200 Subject: [PATCH 05/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 7144b897e2..6a29438a80 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -5,30 +5,31 @@ include("engines.wine.plugins.windows_version"); include("utils.functions.net.resource"); include("utils.functions.filesystem.files"); include("utils.functions.filesystem.extract"); +include("utils.functions.apps.resources"); var installerImplementation = { run: function () { new LocalInstallerScript() .name("The Sims 2") .editor("Electronic Arts") - .applicationHomepage("https://www.ea.com/en-gb/games/simcity") + .applicationHomepage("http://thesims2.ea.com") .author("ZemoScripter") .category("Games") .executable("Origin.exe") .wineVersion("4.5") .wineDistribution("staging") - .preInstall(function (wine) { + .preInstall(function(wine) { wine.vcrun2010(); wine.vcrun2013(); wine.windowsVersion("winxp"); var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) - .postInstall(function (wine) { + .postInstall(function(wine) { var fixes = new Resource() .wizard(this.wizard()) .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") - .name("sims2_fixes.tar.xz") + .name(sims2_fixes.tar.xz) .get(); new Extractor() @@ -47,4 +48,3 @@ var installerImplementation = { /* exported Installer */ var Installer = Java.extend(org.phoenicis.scripts.Installer, installerImplementation); - From a54dc421618548afb99fad3f10457bc5793de8cd Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 6 May 2019 10:08:37 +0200 Subject: [PATCH 06/39] Update script.js Added missing include --- Applications/Games/The Sims 2/Origin/script.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 089632833d..6d1700e904 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -3,6 +3,7 @@ include("engines.wine.verbs.vcrun2010"); include("engines.wine.verbs.vcrun2013"); //include("engines.wine.plugins.windows_version"); include("utils.functions.net.resource"); +include("utils.functions.apps.resources"); include("utils.functions.filesystem.files"); include("utils.functions.filesystem.extract"); @@ -11,7 +12,7 @@ var installerImplementation = { new OriginScript() .name("The Sims 2") .editor("Electronic Arts") - .applicationHomepage("https://www.ea.com/en-gb/games/simcity") + .applicationHomepage("http://thesims2.ea.com") .author("ZemoScripter") .category("Games") .wineVersion("4.5") From ce25bfc367869977347b5ddc25ca5cb41dabe907 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 6 May 2019 10:11:05 +0200 Subject: [PATCH 07/39] Update script.js Removed accidential changes. --- Applications/Games/The Sims 2/Local/script.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 6a29438a80..25c6d0df8c 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -1,7 +1,7 @@ include("engines.wine.quick_script.local_installer_script"); include("engines.wine.verbs.vcrun2010"); include("engines.wine.verbs.vcrun2013"); -include("engines.wine.plugins.windows_version"); +//include("engines.wine.plugins.windows_version"); include("utils.functions.net.resource"); include("utils.functions.filesystem.files"); include("utils.functions.filesystem.extract"); @@ -18,18 +18,18 @@ var installerImplementation = { .executable("Origin.exe") .wineVersion("4.5") .wineDistribution("staging") - .preInstall(function(wine) { + .preInstall(function (wine) { wine.vcrun2010(); wine.vcrun2013(); - wine.windowsVersion("winxp"); + //wine.windowsVersion("winxp"); var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) - .postInstall(function(wine) { + .postInstall(function (wine) { var fixes = new Resource() .wizard(this.wizard()) .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") - .name(sims2_fixes.tar.xz) + .name("sims2_fixes.tar.xz") .get(); new Extractor() From eaebba62d19bccfb0126b73e5d407870c91432bb Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 6 May 2019 12:51:12 +0200 Subject: [PATCH 08/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 25c6d0df8c..7f581a189c 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -1,7 +1,6 @@ include("engines.wine.quick_script.local_installer_script"); include("engines.wine.verbs.vcrun2010"); include("engines.wine.verbs.vcrun2013"); -//include("engines.wine.plugins.windows_version"); include("utils.functions.net.resource"); include("utils.functions.filesystem.files"); include("utils.functions.filesystem.extract"); @@ -21,7 +20,6 @@ var installerImplementation = { .preInstall(function (wine) { wine.vcrun2010(); wine.vcrun2013(); - //wine.windowsVersion("winxp"); var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) From e152fb5a6a15a3b74ab1f8a3ea9c0b4c91881660 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 6 May 2019 12:51:41 +0200 Subject: [PATCH 09/39] Update script.js Removal of unused includes. --- Applications/Games/The Sims 2/Origin/script.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 6d1700e904..4488b1afc6 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -1,7 +1,6 @@ include("engines.wine.quick_script.origin_script"); include("engines.wine.verbs.vcrun2010"); include("engines.wine.verbs.vcrun2013"); -//include("engines.wine.plugins.windows_version"); include("utils.functions.net.resource"); include("utils.functions.apps.resources"); include("utils.functions.filesystem.files"); @@ -21,7 +20,6 @@ var installerImplementation = { .preInstall(function (wine) { wine.vcrun2010(); wine.vcrun2013(); - //wine.windowsVersion("winxp"); var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) From f1138c8218e207e6861e715722e21a5ce3f1e913 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Tue, 7 May 2019 10:31:15 +0200 Subject: [PATCH 10/39] Update script.js Trying to obtain username so that postInstall would work without user intervention. Untested. --- Applications/Games/The Sims 2/Origin/script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 4488b1afc6..accceb39a3 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -30,13 +30,13 @@ var installerImplementation = { .checksum("601382327e9e89571ea600dd9dd8818297840c88") .name("sims2_fixes.tar.xz") .get(); - + var username = java.lang.System.getenv("USERNAME") new Extractor() .wizard(wine.wizard()) .archive(fixes) - .to(wine.prefixDirectory() + "/drive_c/users/$USER/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") + .to(wine.prefixDirectory() + "/drive_c/users/username/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") .extract(); - var configFile = wine.prefixDirectory() + "drive_c/users/$USER/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + var configFile = wine.prefixDirectory() + "drive_c/users/username/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); }) From af76e3c9b2a3b7522b6dd7ee12ce0c10d5e6808e Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Wed, 8 May 2019 14:46:46 +0200 Subject: [PATCH 11/39] Update script.js Fixed paths for extractor and configFile --- Applications/Games/The Sims 2/Origin/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index accceb39a3..9603be0a3d 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -34,9 +34,9 @@ var installerImplementation = { new Extractor() .wizard(wine.wizard()) .archive(fixes) - .to(wine.prefixDirectory() + "/drive_c/users/username/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") + .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") .extract(); - var configFile = wine.prefixDirectory() + "drive_c/users/username/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + var configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); }) From 1149c098cb518f8e13dbc9e01e82215f7e5ef2c5 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Wed, 8 May 2019 15:13:31 +0200 Subject: [PATCH 12/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 7f581a189c..df3a37ebdd 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -30,12 +30,14 @@ var installerImplementation = { .name("sims2_fixes.tar.xz") .get(); + + var username = java.lang.System.getenv("USERNAME") new Extractor() - .wizard(this.wizard()) + .wizard(wine.wizard()) .archive(fixes) - .to(wine.prefixDirectory() + "/drive_c/users/$USER/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") + .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") .extract(); - var configFile = wine.prefixDirectory() + "drive_c/users/$USER/My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + var configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); }) From c50776033fb65800bf6df042eda3c618f79d8d00 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Wed, 8 May 2019 16:09:12 +0200 Subject: [PATCH 13/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index df3a37ebdd..f99e351703 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -29,8 +29,6 @@ var installerImplementation = { .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); - - var username = java.lang.System.getenv("USERNAME") new Extractor() .wizard(wine.wizard()) From d5a61450238b0490a425d6e3322d89d17c5990b0 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Thu, 9 May 2019 09:50:02 +0200 Subject: [PATCH 14/39] Update script.json Added a clarification of which game edition is installed with origin script. --- Applications/Games/The Sims 2/Origin/script.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Origin/script.json b/Applications/Games/The Sims 2/Origin/script.json index 8518bc66ff..3c0c600244 100644 --- a/Applications/Games/The Sims 2/Origin/script.json +++ b/Applications/Games/The Sims 2/Origin/script.json @@ -1,5 +1,5 @@ { - "scriptName" : "Origin", + "scriptName" : "Origin (Ultimate Collection)", "id" : "applications.games.the_sims_2.origin", "compatibleOperatingSystems" : [ "MACOSX", From 7faec3d3fd025120d5abdac97be1642c6b210acd Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sun, 25 Aug 2019 20:33:05 +0200 Subject: [PATCH 15/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 73 ++++++++----------- 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index f99e351703..3f19ab6595 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -1,4 +1,4 @@ -include("engines.wine.quick_script.local_installer_script"); +const LocalScript = include("engines.wine.quick_script.local_installer_script"); include("engines.wine.verbs.vcrun2010"); include("engines.wine.verbs.vcrun2013"); include("utils.functions.net.resource"); @@ -6,43 +6,34 @@ include("utils.functions.filesystem.files"); include("utils.functions.filesystem.extract"); include("utils.functions.apps.resources"); -var installerImplementation = { - run: function () { - new LocalInstallerScript() - .name("The Sims 2") - .editor("Electronic Arts") - .applicationHomepage("http://thesims2.ea.com") - .author("ZemoScripter") - .category("Games") - .executable("Origin.exe") - .wineVersion("4.5") - .wineDistribution("staging") - .preInstall(function (wine) { - wine.vcrun2010(); - wine.vcrun2013(); - var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); - wine.regedit().patch(registrySettings); - }) - .postInstall(function (wine) { - var fixes = new Resource() - .wizard(this.wizard()) - .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") - .name("sims2_fixes.tar.xz") - .get(); - var username = java.lang.System.getenv("USERNAME") - new Extractor() - .wizard(wine.wizard()) - .archive(fixes) - .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") - .extract(); - var configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; - touch(configFile); - writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); - }) - - .go(); - } -}; - -/* exported Installer */ -var Installer = Java.extend(org.phoenicis.scripts.Installer, installerImplementation); +new LocalInstallerScript() + .name("The Sims 2") + .editor("Electronic Arts") + .applicationHomepage("http://thesims2.ea.com") + .author("ZemoScripter") + .category("Games") + .executable("Origin.exe") + .wineVersion("4.5") + .wineDistribution("staging") + .preInstall(function (wine) { + wine.vcrun2010(); + wine.vcrun2013(); + var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); + wine.regedit().patch(registrySettings); + }) + .postInstall(function (wine) { + var fixes = new Resource() + .wizard(this.wizard()) + .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") + .name("sims2_fixes.tar.xz") + .get(); + var username = java.lang.System.getenv("USERNAME") + new Extractor() + .wizard(wine.wizard()) + .archive(fixes) + .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") + .extract(); + var configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + touch(configFile); + writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); + }) From ce2e56dce4d05e526f4c9771d81db86e692dbf7d Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sun, 25 Aug 2019 20:35:16 +0200 Subject: [PATCH 16/39] Update script.js --- .../Games/The Sims 2/Origin/script.js | 73 ++++++++----------- 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 9603be0a3d..18b4e85b97 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -1,4 +1,4 @@ -include("engines.wine.quick_script.origin_script"); +const OriginScript = include("engines.wine.quick_script.origin_script"); include("engines.wine.verbs.vcrun2010"); include("engines.wine.verbs.vcrun2013"); include("utils.functions.net.resource"); @@ -6,43 +6,34 @@ include("utils.functions.apps.resources"); include("utils.functions.filesystem.files"); include("utils.functions.filesystem.extract"); -var installerImplementation = { - run: function () { - new OriginScript() - .name("The Sims 2") - .editor("Electronic Arts") - .applicationHomepage("http://thesims2.ea.com") - .author("ZemoScripter") - .category("Games") - .wineVersion("4.5") - .wineDistribution("staging") - .appId("1014457,sims2_apt_life,sims2_bestofbusiness_dd,sims2_bonvoyage_na,sims2dd_remaster,sims2_freetime,sims2_funwpets_dd,sims2_stuffpackglamour_na,sims2_holiday2_na,sims2-holiday,sims2_inseason_na,sims2_collegepack_dd") - .preInstall(function (wine) { - wine.vcrun2010(); - wine.vcrun2013(); - var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); - wine.regedit().patch(registrySettings); - }) - .postInstall(function (wine) { - var fixes = new Resource() - .wizard(wine.wizard()) - .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") - .checksum("601382327e9e89571ea600dd9dd8818297840c88") - .name("sims2_fixes.tar.xz") - .get(); - var username = java.lang.System.getenv("USERNAME") - new Extractor() - .wizard(wine.wizard()) - .archive(fixes) - .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") - .extract(); - var configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; - touch(configFile); - writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); - }) - .go(); - } -}; - -/* exported Installer */ -var Installer = Java.extend(org.phoenicis.scripts.Installer, installerImplementation); +new OriginScript() + .name("The Sims 2") + .editor("Electronic Arts") + .applicationHomepage("http://thesims2.ea.com") + .author("ZemoScripter") + .category("Games") + .wineVersion("4.5") + .wineDistribution("staging") + .appId("1014457,sims2_apt_life,sims2_bestofbusiness_dd,sims2_bonvoyage_na,sims2dd_remaster,sims2_freetime,sims2_funwpets_dd,sims2_stuffpackglamour_na,sims2_holiday2_na,sims2-holiday,sims2_inseason_na,sims2_collegepack_dd") + .preInstall(function (wine) { + wine.vcrun2010(); + wine.vcrun2013(); + var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); + wine.regedit().patch(registrySettings); + }) + .postInstall(function (wine) { + var fixes = new Resource() + .wizard(this.wizard()) + .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") + .name("sims2_fixes.tar.xz") + .get(); + var username = java.lang.System.getenv("USERNAME") + new Extractor() + .wizard(wine.wizard()) + .archive(fixes) + .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") + .extract(); + var configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + touch(configFile); + writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); + }) From 7d9eae66a4f5d0665eab5739126e6442a82a6560 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 10:16:50 +0200 Subject: [PATCH 17/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 3f19ab6595..85b9ec30d4 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -1,10 +1,11 @@ const LocalScript = include("engines.wine.quick_script.local_installer_script"); -include("engines.wine.verbs.vcrun2010"); -include("engines.wine.verbs.vcrun2013"); +const AppResource = include("utils.functions.apps.resources"); +const vcrun2010 = include("engines.wine.verbs.vcrun2010"); +const vcrun2013 = include("engines.wine.verbs.vcrun2013"); + include("utils.functions.net.resource"); include("utils.functions.filesystem.files"); include("utils.functions.filesystem.extract"); -include("utils.functions.apps.resources"); new LocalInstallerScript() .name("The Sims 2") @@ -16,8 +17,8 @@ new LocalInstallerScript() .wineVersion("4.5") .wineDistribution("staging") .preInstall(function (wine) { - wine.vcrun2010(); - wine.vcrun2013(); + new vcrun2010(wine).go(); + new vcrun2013(wine).go(); var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) @@ -33,7 +34,7 @@ new LocalInstallerScript() .archive(fixes) .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") .extract(); - var configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + const configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); }) From ffbcdf5b68636bb98fd12557cdb5e30cf1da7245 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 10:19:28 +0200 Subject: [PATCH 18/39] Update script.js --- Applications/Games/The Sims 2/Origin/script.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 18b4e85b97..22490a8abe 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -1,8 +1,9 @@ const OriginScript = include("engines.wine.quick_script.origin_script"); -include("engines.wine.verbs.vcrun2010"); -include("engines.wine.verbs.vcrun2013"); +const vcrun2010 = include("engines.wine.verbs.vcrun2010"); +const vcrun2013 = include("engines.wine.verbs.vcrun2013"); +const AppResource = include("utils.functions.apps.resources"); + include("utils.functions.net.resource"); -include("utils.functions.apps.resources"); include("utils.functions.filesystem.files"); include("utils.functions.filesystem.extract"); @@ -16,8 +17,8 @@ new OriginScript() .wineDistribution("staging") .appId("1014457,sims2_apt_life,sims2_bestofbusiness_dd,sims2_bonvoyage_na,sims2dd_remaster,sims2_freetime,sims2_funwpets_dd,sims2_stuffpackglamour_na,sims2_holiday2_na,sims2-holiday,sims2_inseason_na,sims2_collegepack_dd") .preInstall(function (wine) { - wine.vcrun2010(); - wine.vcrun2013(); + new vcrun2010(wine).go(); + new vcrun2013(wine).go(); var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) @@ -33,7 +34,7 @@ new OriginScript() .archive(fixes) .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") .extract(); - var configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; + const configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); }) From ce7382691d8fcf7f915eb2e19a315a6ed9cf041e Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 11:59:01 +0200 Subject: [PATCH 19/39] Update script.js --- Applications/Games/The Sims 2/Origin/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 22490a8abe..2929213a56 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -24,7 +24,7 @@ new OriginScript() }) .postInstall(function (wine) { var fixes = new Resource() - .wizard(this.wizard()) + .wizard(wine.wizard()) .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); From 0772cdacd1a5880e98b8865853fea2eba7b57adc Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 11:59:11 +0200 Subject: [PATCH 20/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 85b9ec30d4..e0d0ea8bf7 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -24,7 +24,7 @@ new LocalInstallerScript() }) .postInstall(function (wine) { var fixes = new Resource() - .wizard(this.wizard()) + .wizard(wine.wizard()) .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); From 8f0cc489c616fe277740aea64e471fc9e9b283c9 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 12:00:34 +0200 Subject: [PATCH 21/39] Update script.js replaced var with const --- Applications/Games/The Sims 2/Local/script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index e0d0ea8bf7..fdd54386ea 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -19,16 +19,16 @@ new LocalInstallerScript() .preInstall(function (wine) { new vcrun2010(wine).go(); new vcrun2013(wine).go(); - var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); + const registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) .postInstall(function (wine) { - var fixes = new Resource() + const fixes = new Resource() .wizard(wine.wizard()) .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); - var username = java.lang.System.getenv("USERNAME") + const username = java.lang.System.getenv("USERNAME") new Extractor() .wizard(wine.wizard()) .archive(fixes) From d1c15ce2590bcda40413695d902e5303a8ca1cf6 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 12:01:41 +0200 Subject: [PATCH 22/39] Update script.js --- Applications/Games/The Sims 2/Origin/script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 2929213a56..766c6242e9 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -19,16 +19,16 @@ new OriginScript() .preInstall(function (wine) { new vcrun2010(wine).go(); new vcrun2013(wine).go(); - var registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); + const registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); }) .postInstall(function (wine) { - var fixes = new Resource() + const fixes = new Resource() .wizard(wine.wizard()) .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); - var username = java.lang.System.getenv("USERNAME") + const username = java.lang.System.getenv("USERNAME") new Extractor() .wizard(wine.wizard()) .archive(fixes) From c446ca186049e133bb778536a99f917dae0538a2 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 12:03:55 +0200 Subject: [PATCH 23/39] Update script.js --- Applications/Games/The Sims 2/Origin/script.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 766c6242e9..178e4c41e0 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -2,6 +2,7 @@ const OriginScript = include("engines.wine.quick_script.origin_script"); const vcrun2010 = include("engines.wine.verbs.vcrun2010"); const vcrun2013 = include("engines.wine.verbs.vcrun2013"); const AppResource = include("utils.functions.apps.resources"); +const System = Java.type("java.lang.System"); include("utils.functions.net.resource"); include("utils.functions.filesystem.files"); @@ -28,7 +29,7 @@ new OriginScript() .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); - const username = java.lang.System.getenv("USERNAME") + const username = System.getProperty("user.name"); new Extractor() .wizard(wine.wizard()) .archive(fixes) From 914a55b0d8d17d7b95db7941e8a07249acd342bb Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 12:05:06 +0200 Subject: [PATCH 24/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index fdd54386ea..943f04c950 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -2,6 +2,7 @@ const LocalScript = include("engines.wine.quick_script.local_installer_script"); const AppResource = include("utils.functions.apps.resources"); const vcrun2010 = include("engines.wine.verbs.vcrun2010"); const vcrun2013 = include("engines.wine.verbs.vcrun2013"); +const System = Java.type("java.lang.System"); include("utils.functions.net.resource"); include("utils.functions.filesystem.files"); @@ -28,7 +29,7 @@ new LocalInstallerScript() .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); - const username = java.lang.System.getenv("USERNAME") + const username = System.getProperty("user.name"); new Extractor() .wizard(wine.wizard()) .archive(fixes) From 270d2180b70ab015e3f911caf711090365b44572 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 12:09:27 +0200 Subject: [PATCH 25/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 943f04c950..e00f979d8b 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -3,10 +3,9 @@ const AppResource = include("utils.functions.apps.resources"); const vcrun2010 = include("engines.wine.verbs.vcrun2010"); const vcrun2013 = include("engines.wine.verbs.vcrun2013"); const System = Java.type("java.lang.System"); - -include("utils.functions.net.resource"); -include("utils.functions.filesystem.files"); -include("utils.functions.filesystem.extract"); +const Extractor = include("utils.functions.filesystem.extract"); +const Resource = include("utils.functions.net.resource"); +const {touch, writeToFile} = include("utils.functions.filesystem.files"); new LocalInstallerScript() .name("The Sims 2") From 9fd460bec679d803a75d210180d5a66057209790 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 14 Sep 2019 12:10:00 +0200 Subject: [PATCH 26/39] Update script.js --- Applications/Games/The Sims 2/Origin/script.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 178e4c41e0..daa8f954a0 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -3,10 +3,9 @@ const vcrun2010 = include("engines.wine.verbs.vcrun2010"); const vcrun2013 = include("engines.wine.verbs.vcrun2013"); const AppResource = include("utils.functions.apps.resources"); const System = Java.type("java.lang.System"); - -include("utils.functions.net.resource"); -include("utils.functions.filesystem.files"); -include("utils.functions.filesystem.extract"); +const Extractor = include("utils.functions.filesystem.extract"); +const Resource = include("utils.functions.net.resource"); +const {touch, writeToFile} = include("utils.functions.filesystem.files"); new OriginScript() .name("The Sims 2") From 3f561410b65f97afcc6291fe26c9061fd12b3b56 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sun, 15 Sep 2019 14:00:27 +0200 Subject: [PATCH 27/39] Update registry.reg Removing extra newlines --- Applications/Games/The Sims 2/resources/registry.reg | 2 -- 1 file changed, 2 deletions(-) diff --git a/Applications/Games/The Sims 2/resources/registry.reg b/Applications/Games/The Sims 2/resources/registry.reg index 02696dff86..6d81608a34 100644 --- a/Applications/Games/The Sims 2/resources/registry.reg +++ b/Applications/Games/The Sims 2/resources/registry.reg @@ -5,5 +5,3 @@ REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "MaxShaderModelPS"=dword:00000002 - - From 5535fb64f868abc4d9b4303b47ea47fda85d9a6c Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sun, 15 Sep 2019 14:04:56 +0200 Subject: [PATCH 28/39] Update script.js code clearup --- Applications/Games/The Sims 2/Origin/script.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index daa8f954a0..2292801369 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -28,12 +28,14 @@ new OriginScript() .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); - const username = System.getProperty("user.name"); + new Extractor() .wizard(wine.wizard()) .archive(fixes) .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") .extract(); + + const username = System.getProperty("user.name"); const configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); From b8fac0ab0b90ab1e689768147af8165d3a30cfa5 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Wed, 30 Oct 2019 19:27:37 +0100 Subject: [PATCH 29/39] Update script.js Fixed name mismatch and indentation. --- Applications/Games/The Sims 2/Local/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index e00f979d8b..627e5b2801 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -1,4 +1,4 @@ -const LocalScript = include("engines.wine.quick_script.local_installer_script"); +const LocalInstallerScript = include("engines.wine.quick_script.local_installer_script"); const AppResource = include("utils.functions.apps.resources"); const vcrun2010 = include("engines.wine.verbs.vcrun2010"); const vcrun2013 = include("engines.wine.verbs.vcrun2013"); @@ -21,7 +21,7 @@ new LocalInstallerScript() new vcrun2013(wine).go(); const registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); wine.regedit().patch(registrySettings); - }) + }) .postInstall(function (wine) { const fixes = new Resource() .wizard(wine.wizard()) From 53dbb87057d60a78517583e3f2250b45890e03e2 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Wed, 30 Oct 2019 19:37:23 +0100 Subject: [PATCH 30/39] Update script.js Using different link for fixes constant, moved the username constant up, added an env value. --- Applications/Games/The Sims 2/Origin/script.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 2292801369..9311aa10ac 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -15,17 +15,19 @@ new OriginScript() .category("Games") .wineVersion("4.5") .wineDistribution("staging") + .wineArchitecture("amd64") .appId("1014457,sims2_apt_life,sims2_bestofbusiness_dd,sims2_bonvoyage_na,sims2dd_remaster,sims2_freetime,sims2_funwpets_dd,sims2_stuffpackglamour_na,sims2_holiday2_na,sims2-holiday,sims2_inseason_na,sims2_collegepack_dd") .preInstall(function (wine) { new vcrun2010(wine).go(); new vcrun2013(wine).go(); - const registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); - wine.regedit().patch(registrySettings); + //const registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); + //wine.regedit().patch(registrySettings); }) .postInstall(function (wine) { + const username = System.getProperty("user.name"); const fixes = new Resource() .wizard(wine.wizard()) - .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") + .url("https://github.com/tannisroot/installer-fixes/raw/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); @@ -35,8 +37,8 @@ new OriginScript() .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") .extract(); - const username = System.getProperty("user.name"); const configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); }) + .environment('{ "LARGE_ADDRESS_AWARE": "1"}') From ac603117423584090caf2046ff336e0614dc2cb4 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Wed, 30 Oct 2019 19:49:32 +0100 Subject: [PATCH 31/39] Update script.js Commenting out stuff related to regedit because I'm not sure if they are needed based on how Lutris script looks like. --- Applications/Games/The Sims 2/Origin/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 9311aa10ac..a71b87cd1a 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -1,7 +1,7 @@ const OriginScript = include("engines.wine.quick_script.origin_script"); const vcrun2010 = include("engines.wine.verbs.vcrun2010"); const vcrun2013 = include("engines.wine.verbs.vcrun2013"); -const AppResource = include("utils.functions.apps.resources"); +//const AppResource = include("utils.functions.apps.resources"); const System = Java.type("java.lang.System"); const Extractor = include("utils.functions.filesystem.extract"); const Resource = include("utils.functions.net.resource"); @@ -36,7 +36,7 @@ new OriginScript() .archive(fixes) .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") .extract(); - + const configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); From eb7cbe8c01758b9eab4d51489ac9b5bb47ecf8d0 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Wed, 30 Oct 2019 19:55:04 +0100 Subject: [PATCH 32/39] Update script.js Trailing spaces strike back! --- Applications/Games/The Sims 2/Origin/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index a71b87cd1a..2b651b0faa 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -30,7 +30,7 @@ new OriginScript() .url("https://github.com/tannisroot/installer-fixes/raw/master/sims2_fixes.tar.xz") .name("sims2_fixes.tar.xz") .get(); - + new Extractor() .wizard(wine.wizard()) .archive(fixes) From a8d5b51db77414aff9aa61bb9933aa190fb9e80f Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Tue, 26 Nov 2019 23:25:47 +0100 Subject: [PATCH 33/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index 627e5b2801..a441b99f85 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -6,6 +6,7 @@ const System = Java.type("java.lang.System"); const Extractor = include("utils.functions.filesystem.extract"); const Resource = include("utils.functions.net.resource"); const {touch, writeToFile} = include("utils.functions.filesystem.files"); +const Regedit = include("engines.wine.plugins.regedit"); new LocalInstallerScript() .name("The Sims 2") @@ -19,8 +20,8 @@ new LocalInstallerScript() .preInstall(function (wine) { new vcrun2010(wine).go(); new vcrun2013(wine).go(); - const registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); - wine.regedit().patch(registrySettings); + const registryFile = Bean("fileSearcher").search([TYPE_ID, CATEGORY_ID, APPLICATION_ID], "registry.reg"); + new Regedit(wine).open(registryFile[0]); }) .postInstall(function (wine) { const fixes = new Resource() From 5ef57881b38c915758967f33a21d51b0ec430c98 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Tue, 26 Nov 2019 23:31:43 +0100 Subject: [PATCH 34/39] Update script.js --- Applications/Games/The Sims 2/Local/script.js | 1 - 1 file changed, 1 deletion(-) diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js index a441b99f85..03f8fc09a0 100644 --- a/Applications/Games/The Sims 2/Local/script.js +++ b/Applications/Games/The Sims 2/Local/script.js @@ -1,5 +1,4 @@ const LocalInstallerScript = include("engines.wine.quick_script.local_installer_script"); -const AppResource = include("utils.functions.apps.resources"); const vcrun2010 = include("engines.wine.verbs.vcrun2010"); const vcrun2013 = include("engines.wine.verbs.vcrun2013"); const System = Java.type("java.lang.System"); From bed2d92d0630e07c3fa8a2050c3c9e557d662d98 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 9 Dec 2019 11:11:32 +0100 Subject: [PATCH 35/39] Update script.js Made the script more similiar to Lutris one. --- .../Games/The Sims 2/Origin/script.js | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 2b651b0faa..848330d5f3 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -1,11 +1,12 @@ const OriginScript = include("engines.wine.quick_script.origin_script"); const vcrun2010 = include("engines.wine.verbs.vcrun2010"); const vcrun2013 = include("engines.wine.verbs.vcrun2013"); -//const AppResource = include("utils.functions.apps.resources"); const System = Java.type("java.lang.System"); const Extractor = include("utils.functions.filesystem.extract"); const Resource = include("utils.functions.net.resource"); const {touch, writeToFile} = include("utils.functions.filesystem.files"); +const D9VK = include("engines.wine.verbs.d9vk"); + new OriginScript() .name("The Sims 2") @@ -13,15 +14,20 @@ new OriginScript() .applicationHomepage("http://thesims2.ea.com") .author("ZemoScripter") .category("Games") - .wineVersion("4.5") - .wineDistribution("staging") + .wineVersion("4.20") + .wineDistribution("upstream") .wineArchitecture("amd64") .appId("1014457,sims2_apt_life,sims2_bestofbusiness_dd,sims2_bonvoyage_na,sims2dd_remaster,sims2_freetime,sims2_funwpets_dd,sims2_stuffpackglamour_na,sims2_holiday2_na,sims2-holiday,sims2_inseason_na,sims2_collegepack_dd") .preInstall(function (wine) { new vcrun2010(wine).go(); new vcrun2013(wine).go(); - //const registrySettings = new AppResource().application([TYPE_ID, CATEGORY_ID, APPLICATION_ID]).get("registry.reg"); - //wine.regedit().patch(registrySettings); + new D9VK(wine).go(); + const dxvkConfigFile = wine.prefixDirectory() + "/drive_c/dxvk.conf"; + touch(dxvkConfigFile); + writeToFile(dxvkConfigFile, "dxgi.nvapiHack = False"); + new OverrideDLL(wine) + .withMode("disabled", ["nvapi, nvapi64"]) + .go(); }) .postInstall(function (wine) { const username = System.getProperty("user.name"); @@ -39,6 +45,6 @@ new OriginScript() const configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; touch(configFile); - writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); + writeToFile(configFile, "boolprop useshaders true"); }) - .environment('{ "LARGE_ADDRESS_AWARE": "1"}') + .environment('{ "LARGE_ADDRESS_AWARE": "1", "DXVK_CONFIG_FILE": "configFile"}') From 00ce7cf60f0ca5baac1e4916a7c60d2366fd56dc Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Mon, 9 Dec 2019 11:16:52 +0100 Subject: [PATCH 36/39] Update script.js --- Applications/Games/The Sims 2/Origin/script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Applications/Games/The Sims 2/Origin/script.js b/Applications/Games/The Sims 2/Origin/script.js index 848330d5f3..9649e4a83e 100644 --- a/Applications/Games/The Sims 2/Origin/script.js +++ b/Applications/Games/The Sims 2/Origin/script.js @@ -6,7 +6,7 @@ const Extractor = include("utils.functions.filesystem.extract"); const Resource = include("utils.functions.net.resource"); const {touch, writeToFile} = include("utils.functions.filesystem.files"); const D9VK = include("engines.wine.verbs.d9vk"); - +const OverrideDLL = include("engines.wine.plugins.override_dll"); new OriginScript() .name("The Sims 2") @@ -26,8 +26,8 @@ new OriginScript() touch(dxvkConfigFile); writeToFile(dxvkConfigFile, "dxgi.nvapiHack = False"); new OverrideDLL(wine) - .withMode("disabled", ["nvapi, nvapi64"]) - .go(); + .withMode("disabled", ["nvapi, nvapi64"]) + .go(); }) .postInstall(function (wine) { const username = System.getProperty("user.name"); From ad962cf30fecfb3adff01b180ee8ff00c3ad5e85 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 28 Dec 2019 15:04:14 +0100 Subject: [PATCH 37/39] Delete script.js Unable to test local installation. --- Applications/Games/The Sims 2/Local/script.js | 40 ------------------- 1 file changed, 40 deletions(-) delete mode 100644 Applications/Games/The Sims 2/Local/script.js diff --git a/Applications/Games/The Sims 2/Local/script.js b/Applications/Games/The Sims 2/Local/script.js deleted file mode 100644 index 03f8fc09a0..0000000000 --- a/Applications/Games/The Sims 2/Local/script.js +++ /dev/null @@ -1,40 +0,0 @@ -const LocalInstallerScript = include("engines.wine.quick_script.local_installer_script"); -const vcrun2010 = include("engines.wine.verbs.vcrun2010"); -const vcrun2013 = include("engines.wine.verbs.vcrun2013"); -const System = Java.type("java.lang.System"); -const Extractor = include("utils.functions.filesystem.extract"); -const Resource = include("utils.functions.net.resource"); -const {touch, writeToFile} = include("utils.functions.filesystem.files"); -const Regedit = include("engines.wine.plugins.regedit"); - -new LocalInstallerScript() - .name("The Sims 2") - .editor("Electronic Arts") - .applicationHomepage("http://thesims2.ea.com") - .author("ZemoScripter") - .category("Games") - .executable("Origin.exe") - .wineVersion("4.5") - .wineDistribution("staging") - .preInstall(function (wine) { - new vcrun2010(wine).go(); - new vcrun2013(wine).go(); - const registryFile = Bean("fileSearcher").search([TYPE_ID, CATEGORY_ID, APPLICATION_ID], "registry.reg"); - new Regedit(wine).open(registryFile[0]); - }) - .postInstall(function (wine) { - const fixes = new Resource() - .wizard(wine.wizard()) - .url("https://raw.githubusercontent.com/tannisroot/installer-fixes/master/sims2_fixes.tar.xz") - .name("sims2_fixes.tar.xz") - .get(); - const username = System.getProperty("user.name"); - new Extractor() - .wizard(wine.wizard()) - .archive(fixes) - .to(wine.prefixDirectory() + "/drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Downloads") - .extract(); - const configFile = wine.prefixDirectory() + "drive_c/users/" + username + "My Documents/EA Games/The Sims\u2122 2 Ultimate Collection/Config/userstartup.cheat"; - touch(configFile); - writeToFile(configFile, "boolprop useshaders true\nboolProp createNVidiaWorkaroundTexture false\nboolProp bumpMapping false"); - }) From f7cb46535106a19a8501bed45b20076beaca0864 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 28 Dec 2019 15:04:25 +0100 Subject: [PATCH 38/39] Delete script.json --- Applications/Games/The Sims 2/Local/script.json | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 Applications/Games/The Sims 2/Local/script.json diff --git a/Applications/Games/The Sims 2/Local/script.json b/Applications/Games/The Sims 2/Local/script.json deleted file mode 100644 index b82bc4d51c..0000000000 --- a/Applications/Games/The Sims 2/Local/script.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "scriptName" : "Local", - "id" : "applications.games.the_sims_2.local", - "compatibleOperatingSystems" : [ - "MACOSX", - "LINUX" - ], - "testingOperatingSystems" : [ - "MACOSX", - "LINUX" - ], - "free" : false, - "requiresPatch" : false -} From 968b27341e4f571ac938ec9cde7f4339600543e0 Mon Sep 17 00:00:00 2001 From: Zemogiter Date: Sat, 28 Dec 2019 15:04:54 +0100 Subject: [PATCH 39/39] Delete registry.reg Dosen't seem to be useful anymore --- Applications/Games/The Sims 2/resources/registry.reg | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 Applications/Games/The Sims 2/resources/registry.reg diff --git a/Applications/Games/The Sims 2/resources/registry.reg b/Applications/Games/The Sims 2/resources/registry.reg deleted file mode 100644 index 6d81608a34..0000000000 --- a/Applications/Games/The Sims 2/resources/registry.reg +++ /dev/null @@ -1,7 +0,0 @@ -REGEDIT4 - -[HKEY_CURRENT_USER\Software\Wine\Direct3D] -"MaxShaderModelVS"=dword:00000002 - -[HKEY_CURRENT_USER\Software\Wine\Direct3D] -"MaxShaderModelPS"=dword:00000002