How to install Microsoft Tinker?

Forums Operating Systems Windows Server 2008 Games Compatibility How to install Microsoft Tinker?

Viewing 11 reply threads
  • Author
    Posts
    • #43534

      I would like to install the Microsoft Tinker game on Server 2008 x86, which is included in the “Vista Ultimate Extras” pack along with Dreamscene, Texas Hold Em and others.

      However I have been unable to do this so far. It’s my understanding that the “Ultimate Extras” packages are usually available only via Windows Update when running Vista Ultimate.

      I have also found a link which does let me download the .CAB installation package for MS Tinker here: http://download.windowsupdate.com/msdownload/update/software/ftpk/2008/09/windows6.0-kb954955-x86_6b6a72a2579ee5f8385d1a1ab75ed6e76083824c.cab

      I’ve been able to download the .CAB from here successfully but I can’t figure out how to install it. I’ve tried passing various options to pkgmgr.exe and ocsetup.exe in an attempt to get this installed but I suspect I may be barking up the wrong tree here; pkgmgr appears to be designed for integrating packages into offline OS install images (slipstreaming).

      Can anyone help get this CAB installed? Or alternately, is there a way to trick Windows Update into offering me the “Vista Ultimate Extras”?

    • #47892

      Well, a small update here.

      I was able to extract the contents of the .CAB file using a command line of

      extract tinker.cab -f:* “cabtmp”

      (note I use tinker.cab here rather than the lengthy actual CAB filename)

      This extracted all the files in the CAB with the correct folder/file names.

      Then examining the .manifest and .mum files I realized that the install files are located in the “…._none_….” folder, and there is also one other file — a language file — in the “….en-us….” folder (I use … here rather than putting the whole lengthy folder name).

      I copied the “….none….” files to a new folder, C:Program FilesMicrosoft GamesTinker (based on reading the .manifest files). And I copied the .mui file from the “….en-us….” folder to C:Program FilesMicrosoft GamesTinkeren-US. This got rid of a crash that I was seeing when trying to launch tinker.exe directly from the “….none….” extracted folder.

      However … now after running tinker.exe, I receive the unpleasant message, “This game only works on Windows Vista(R) Ultimate”.

      So at the moment I am dead in the water here. I ran Procmon to try and analyze what tinker.exe is accessing to determine which version of Windows is running, but there’s just too much to reasonably analyze — it opens or checks hundreds of files and registry keys during its launch and I just don’t know enough to interpret all that data.

      I tried editing the following two registry keys in HKLMSOFTWAREMicrosoftWindows NTCurrentVersion, to no avail:

      EditionID: changed to “Ultimate”
      ProductName: changed to “Windows Vista ™ Ultimate”

      I also tried a ProductName of “Windows Vista (R) Ultimate” (similar to the existing value for that key, “Windows Server (R) 2008 Standard”). None of this has gotten the game to actually start up.

      Hopefully one of you bright sparks has some insight!

      Thanks
      joelpt

      EDIT: for what it’s worth, the last registry key that tinker.exe appears to access before giving the wrong-OS error message is HKLMSoftwareMicrosoftWindowsCurrentVersionSideBySide. Not really seeing anything in this key branch that would seem to identify the OS version though.

    • #47893
      Arris
      Moderator

      Hey joelpt,

      You did a nice job! Here is the missing part in your manual. The tinker.exe does a call to the GetProductInfo function to check whether you are using Windows Vista Ultimate. I don’t know how this function determines the OS version you are using, but we can also just ignore the result of this function by skipping the check. To skip this check open the tinker.exe file in a Hex Editor like Hex Workshop and in the menu Edit click Replace.

      Find:

      0F8548020000

      Replace with:

      909090909090

      Click Replace when a occurence is found, and Save the file afterwards.

      Have fun playing Microsoft Tinker! 😉

      btw. One mistake in your post: extract tinker.cab -f:* “cabtmp” should be expand tinker.cab -f:* “cabtmp”

    • #47894

      Arris that is fantastic, your fix worked perfectly!

      Can I ask what tool you used to determine that it calls GetProductInfo? I don’t think this information is available in ProcMon.

      Also how did you ascertain which part of the EXE would need to be changed (and to what) to circumvent that function call?

      Thanks again 🙂

      joelpt

    • #47895
      Arris
      Moderator

      Hey joelpt,

      It’s a combination of using IDA Pro Disassembler, Hiew and having some knowledge about Assembly.

      If you search the internet you can find lots of tutorials about this subject! 🙂

      Arris

    • #47896

      @Arris wrote:

      Hey joelpt,

      You did a nice job! Here is the missing part in your manual. The tinker.exe does a call to the GetProductInfo function to check whether you are using Windows Vista Ultimate. I don’t know how this function determines the OS version you are using, but we can also just ignore the result of this function by skipping the check. To skip this check open the tinker.exe file in a Hex Editor like Hex Workshop and in the menu Edit click Replace.

      Find:

      0F8548020000

      Replace with:

      909090909090

      Click Replace when a occurence is found, and Save the file afterwards.

      Have fun playing Microsoft Tinker! 😉

      btw. One mistake in your post: extract tinker.cab -f:* “cabtmp” should be expand tinker.cab -f:* “cabtmp”

      is that what has to be replaced in the 64 bit version too? i tried but i keep getting the message… im trying to install it in windows 7 ultimate… they should’ve made it work here… it’s as well ultimate

    • #47897

      You might just try modifying and running the 32 bit version. As far as I know it should still work under 64 bit Windows.

    • #47898

      I would imagine it’s also checking for OS Version == 6.0. That would work on Vista and Server 2008, but break on Win7 (as the previous poster said he was attempting). Win7 has OS Version 6.1.

      Setting compatibility mode to Vista appears to make it run, but no UI shows. Tinker just sits there pegging the CPU without opening. ❓

    • #47899

      @archbish99 wrote:

      I would imagine it’s also checking for OS Version == 6.0. That would work on Vista and Server 2008, but break on Win7 (as the previous poster said he was attempting). Win7 has OS Version 6.1.

      Setting compatibility mode to Vista appears to make it run, but no UI shows. Tinker just sits there pegging the CPU without opening. ❓

      Yes, I’m running Windows 7, as well & can duplicate this problem. Unfortunately, my assembler is so old it’s useless. I know from my research that Tinker calls GetVersionEx, which reports back the OS version, but I don’t know how to make it “skip the check” with the Hex editor. I will keep banging my head against Google & hopefully I will come across something that will refresh my memory.

    • #47900
      Arris
      Moderator

      For the Microsoft Tinker game it does a check whether you are using Vista Ultimate. As you can see in the GetProductInfo documentation they distinguish all versions of Windows 6.0. In a dissasembler you can see that they just do a check which would look in C like:

      int info = GetProductInfo();
      if(info != PRODUCT_ULTIMATE)
      return;
      else
      {
      // continue execution
      }

      By overwriting the if condition with No OPeration instructions (hex opcode 0x90) it just directly goes to the else part and executes the game. The hex values to replace were just found by doing a binary comparison using Fairdell HexCmp after patching the executable.

      Hope this gives you some more insight! 😉

    • #47901

      thanks to joelpt & Arris!
      now because of ur efforts,now Microsoft Tinker works on Vista Business Edition(x86)! :mrgreen:
      i think that is a good gift for my brother’s new vaio laptop!

    • #47902

      Using the technique above, with a slightly different substitution you can also bypass the check in TinkerEditor.exe as well

      Find:

      0F855F020000

      Replace with:

      909090909090
Viewing 11 reply threads
  • You must be logged in to reply to this topic.