Windows 2000 - OldCigarettes Windows 2000 XP API wrapper pack

By OldBoy2k
Jul 14, 2011
Post New Reply
  1. Hi guys,

    as maybe some already heard, most of the latest XP games and applications can be run on Windows 2000 using OldCigarettes XP Wrapper and BlackWingCats KDW Wrapper.For any questions and problems installing the wrapper or XP games and software please post below.

    Quick-Installguide OldCigarette's 2000 XP API Wrapper:
    This Quick-Installguide was created because of some install and usage confusion lately.Since replacement of important system files can seriously harm your system please a) read this Quick-Installguide carefully and b) ask whenever something is not clear before doing experimentation on your own!

    Quick-Installguide:
    1) create a folder c:\oldcigarettes wrapper files\
    2) download: OldCigarettes wrapper pack (download location below)
    3) create a folder c:\oldcigarettes wrapper files\org system files\
    4) copy the following windows system files to the created -org system files- directory:
    c:\winnt\system32\
    =================
    ADVAPI32.DLL
    KERNEL32.DLL
    SHELL32.DLL
    USER32.DLL
    ws2_32.dll
    wtsapi32.dll

    next, rename these libs inside the c:\oldcigarettes wrapper files\org system files\ folder to:
    =================
    ADVAPI32_ORG.DLL
    KERNEL32_ORG.DLL
    SHELL32_ORG.DLL
    USER32_ORG.DLL
    ws2_32_ORG.dll
    wtsapi32_ORG.dll

    5) extract the wrapper pack in the c:\oldcigarettes wrapper files\ directory.
    The next 5 steps are related fixing of games.If you want to fix a application then continue reading from 11):
    6) create a folder c:\oldcigarettes wrapper files\x3daudio driver\
    7) download: Win2K X3Daudio drivers (google for 'Win2K X3Daudio drivers')
    8) extract Win2k x3daudio driver to c:\oldcigarettes wrapper files\x3daudio driver\ directory
    9) creata a folder c:\oldcigarettes wrapper files\aclayers\
    10) copy aclayers.dll from c:\winnt\apppatch\ to c:\oldcigarettes wrapper files\aclayers\ directory
    (don't need to rename it to aclayers_ORG.dll).Aclayers.dll is needed in case of copyprotection problems with the wrapper kernel.
    11) double click the ExcludeFromKnownDlls.reg from the wrapper pack and add the entries to your registry.Then reboot your system.

    OKAY, thats the basic wrapper directory for file usage.From here you can copy all files which are eventually needed to the binaries directory.Info: The binaries directory is the directory of the installed game or application which contains the main game executable.Some game installations just use a short folder named "bin".

    Some general safety notes when using wrapper & other system files:
    1) never copy any of the *.ORG files back to the c:\winnt\system32 directory
    2) never copy any of internet downloaded system files (for example: dbghelp,iphalpi,psapi) listed in the fixes to the c:\winnt\system32 directory
    3) never download ADVAPI32.DLL,KERNEL32.DLL,SHELL32.DLL,USER32.DLL,ws2_32.dll,wtsapi32.dll,ntdll.dll from other locations of the internet.None of these system XP files is needed!Only needed are the wrapper system files.
    4) the uxtheme.dll has to be copied also to the binaries directory if needed.There is no uxtheme.dll on Win2k.

    Wrapper FAQ:
    1) Q: What is OldCigarette's API Wrapper Pack (OCW) and BlackWingCats KDW API Wrapper about?
    A: The authors,OldCigarette and BlackWingCat,merely started programming on WinXP API extending API function libraries for Windows 2000 nearly at the same time in the end of 2007.Both projects are developed independently.The Wrapper packs in theory contain "new programmed" similar named WinXP system files (kernel32,user32,shell32 etc.) and tools to get newer WinXP+ games and applications to work on Windows 2000 by providing and extending missing API functions.Its important to mention to never copy these files into the WINNT/System32 directory!If you're unsure how to use the Wrapper please ask in here.

    2) Q: There are functions covered by OldCigarettes Wrapper (OCW) and some are covered by BlackWingCats KDW Wrapper.Is it possible to cross-mix both Wrappers?
    A: Since both Wrappers are not correlated and are based on single files you can use for example "Kernel32.dll" from OldCigarette's Wrapper pack with the "User32.dll" from BlackWingCat's KDW Wrapper and so on.It is not possible to use the same system files of both Wrapper Packs at the same time!

    3) Q: What is the meaning of a "Windows 2000 Wrapper"?What does it do?
    A: A Windows 2000 Wrapper contains specialised system files that convert API functions from Windows XP+ system files for Windows 2000.In principle it simply extents the API function library of a operating system.

    4) Q: Does the Wrapper changes something on my system?
    A: No.The Wrapper files are only copied to the binaries directory of the application or game and never copied to the system32 directory (main system directory).It does not influence or harm the system.For your system safety read the Wrapper readme and ask if you're unsure what to do.

    5) Q: Will the Wrapper development be restricted and focused on Windows XP compatibility only?
    A: No.When possible also Windows Vista, Windows 7 software and games will be taken into account.For games this is of course dependent on the inofficial development of DirextX 10+ for WinXP or Wined3d projects.

    6) Q: Is the OldCigarette Win2k API Wrapper freeware?
    A: The usage of the OCW Wrapper is free.Its programmed und released under GNU Lesser General Public License.Changes and distribution have to be made according the GNU Lesser General Public License and conditions.The Wrapper authors and moderators support this project on non-profit base and intentions so please appreciate the work which is mostly done in spare free time.

    7) Q: Will current game or software updates be still working with the provided fix?
    A: Mostly along with updates only stability issues and bugs are fixed.It can happen that some not yet covered and implemented Wrapper functions are used in the new updates of games or software and that the fix doesn't work anymore.In this case please let us know and post about problems here.

    8) Q: What is the binaries directory?
    A: Basically thats the game directory where the game executable is stored.Sometimes the folder is called "bin" (=binaries) so you need to check the folders for the main game executable (*.exe).It can happen that you need to copy the Wrapper files next to the launcher.exe to get also the desktop shortcuts working.

    9) Q: Whats the main difference between OldCigarettes Win2k Wrapper and BlackWingCats KDW Wrapper?
    A: For User32.dll,Kernel32.dll and Shell32.dll both Wrapper roughly cover the same functions.However OldCigarette started with the Wrapper focused on games and BlackWingCat's with KDW on applications.For instance KDW Wrapper includes Win2k compatible cancrypt32.dll,ntdll.dll,msvcrt.dw7,rpcrt4.dll and ole32.dll system files which are used a lot by applications.OldCigarettes API Wrapper (OCW) has imporoved compatibility with games and new copyprotections.

    Offtopic FAQ:
    1) Q: Windows 2000 is nearly 10 years old and much older than Windows XP.Why all the work?
    A: Windows 2000 got released one year ahead of Windows XP.Wouldn't you pick someone for life who is one year older?However,we believe that Windows 2000,because of its business proved programming is the most stable and recource friendly Windows operating system which was ever released from Microsoft(R).

    Download OldCigarette's Wrapper v1.10 (latest version) from BlackWingCats blog:
    http://blog.livedoor.jp/blackwingcat/archives/1503961.html

    BlackWingCats KDW Wrapper links:
    KDW Wrapper homepage:
    http://www7.atwiki.jp/win2000/pages/17.html

    KDW Wrapper function list:
    http://blog.livedoor.jp/blackwingcat/archives/14786.html

    BlackWingCat recent software blog:
    http://blog.livedoor.jp/blackwingcat/

    Win2kgaming Forum Update 13-10-2011:
    New address for the Win2kgaming Forum

    BR
    OldBoy2k

    __
    Win2k XP API Wrapper pack
    Windows 2000 XP Wrapper
    Windows 2000 to XP API Wrapper Pack
  2. odriscoll27

    odriscoll27 Newcomer, in training Posts: 81

    Hey nice little guide you have though I do believe there is a "guides" section on the techspot forums.

    Good effort mate :)
    James :)
  3. Return of win2kgaming

    Gday OldBoy2k,

    Anything we can do to speed up the return of win2kgaming? Donations??

    win2kgaming really needs its own domain name and paid hosting. With plenty of $1/month hosts in the US, it should be cheap to setup something up.
  4. OldBoy2k

    OldBoy2k TechSpot Member Topic Starter Posts: 27

    Hi justincase,

    OldCigarette has not yet made a final decision about a concrete hoster.The forum is working fine and we are looking forward to move to the new hoster.We don't want to pick a cheap one, because we just experienced what "cheap" means: No warning,no support and no co-operation with the customers.

    In the meantime all backporting problems and wrapper questions can be posted here.

    Deus Ex - Human Revolution on Windows 2000:
    Missing Exports:
    KERNEL32.DLL - AddVectoredExceptionHandler,GetGeoInfoA,GetGeoInfoW,GetModuleHandleExA,
    GetUserGeoID,RemoveVectoredExceptionHandler
    USER32.DLL - GetRawInputData,RegisterRawInputDevices

    Place a win2k_xp_kernel32.ini configuration file in game binaries folder to bypass version check at launch up:
    Source: msfn: Deus Ex 3 on Windows 20000
    Thanks to Cyker for posting the fix!

    TeamSpeak 3 on Windows 2000:
    forum.teamspeak: Making-TS3-runs-under-Windows-2000

    snork.ca: TeamSpeak 3 on Windows 2000 (new)
    Thanks to snorkasaurus for posting the recent TeamSpeak 3 on Windows 2000 guide!

    Attention:
    If you get a 'HeapQueryInformation' or 'HeapSetInformation' kernel error, thats because you need to update your kernel version!Either install the two hotfixes or the update rollup 1 v2:
    HeapQueryInformation function in Kernel error
    HeapSetInformation function in Kernel error
    The SRP1v2 has the KB number KB891861 and can be downloaded from microsofts download section:
    click to download: Update Rollup 1 for Windows 2000 SP4 (KB891861)
    The v2 indicates the second update of update rollup 1 "Windows2000-KB891861-v2-x86-ENU.EXE".Important: When you apply windows 2000 SP4 security rollup package1 v2 to a system with a HTT or Dual Core CPU you may encounter a CPU heatproblem.In this case make the following modification to your registry:

    Only this registry entry alone fixes the problem.The /usepmtimer + the registry fix don't work together!

    greetings
    OldBoy2k

    _____
    Deus Ex 3 Win2k fix
    Deus Ex Human Revolution Windows 2000 fix
    Deus Ex Human Revolution on Windows 2000
    TeamSpeak 3 on Win2k
    TeamSpeak 3 on Windows 2000
    HeapQueryInformation function kernel error on Windows 2000
    HeapSetInformation function kernel error on Windows 2000
  5. Gday OldBoy2k,

    Didn't you just experience what "free" means?? I'm sure the win2kgaming site used to be hosted on a free hosting provider. cheap != free.

    I've had experience which a cheap provider here in Australia($4/month) and their support was great, both email and telephone. Perhaps someone could recommend a US hoster that they have personal experience with, as I'm sure you would like a local as opposed to international telephone number to ring if something goes wrong.
  6. charlieb000

    charlieb000 Newcomer, in training

    KernelEx related question and DOTNET howto.

    hello,
    i have reposted my dot net instructions on wordpress, should anyone need it.
    cant post links:
    digitallyhere.wordpress
    dotnet-getting-net-3-5-to-work-on-2k

    oldboy2k
    you sent a reply to my .NET post about "not a valid win32 application", pointing to a page on the ole site. i never followed this up as i had no need of it.. what was the overall gist of it? in case i need dotnet4 or related progs.

    ===
    i have started to use KernelEx on a windows 98 installation and i have a good feeling its easier to use than the api wrapper. is it possible to add a XP-like compatibility mode property sheet as Kernel EX has? because this is very convienent and doesnt need any batch files. kernelex is on sourceforge so i think its open source so you could borrow some of their source. perhaps even put the api-wrapper (which would probably then be called KernelEX for win2k!!) on sourceforge as well....

    i had an irc client install very successfully, and the KEx install was very smooth, better than installing the program with apiwrap on 2k (maybe it just needs more knowledge to do it)... so please consider it :) - for newbies!!

    Charlie.
  7. OldBoy2k

    OldBoy2k TechSpot Member Topic Starter Posts: 27

    Hi Charlie

    can you please post the whole link.Thanks.

    Do you refer to this post?
    more-details-on-installing-net-35-in-windows-2000/
    Info: a while back BlackWingCat released Frame Network 3.5 for Windows 2000 on his blog (requires SRP1v2)

    yeah, you can use PE Tools and change the EXE PE Header MinorSubSystem 0001 to 0000 to get stuff working on Win2k.

    plans are to provide a user friendly GUI in the future :)

    best regards
  8. charlieb000

    charlieb000 Newcomer, in training

    text

    add http and also com to digitallyhere.wordpress and you have it. (they want 5 posts before i can add links, i wont pollute this topic)

    major subsystem is like the OS you have right?
    cant you trick that with out modding the file, (perhaps like the compat mode thing)
  9. OldBoy2k

    OldBoy2k TechSpot Member Topic Starter Posts: 27

    just looked at my notes.It also works with MajorSubsystem but MinorSubSystem 0001 set to 0000 is the correct assigning for Win2k
    ==> MajorSubsystem=Product=NT 5.0=0005 and MinorSubsystem=Version=0000
    We have been discussing this issue earlier this year right before the forum got shutdown and have to look into it again.From what i remember the subsystem check is proceeded in some other system library.

    okay,thanks charlie.
    DOTNET getting .net 3.5 to work on 2k

    You could transform Win2k->KDW 2k with fcwin2k.exe and kdllinst.exe.After that you don't need to play around with single wrapper files anymore.BUT: Thats not reversible and limited to KDW.

    BR
  10. OldBoy2k

    OldBoy2k TechSpot Member Topic Starter Posts: 27

    Hi,

    i suggest to send him a message/mail via the msfn.org forums:
    MSFN-User OldCigarette

    BR
  11. OldBoy2k

    OldBoy2k TechSpot Member Topic Starter Posts: 27

    Hi,

    here are two scripts to remove launch condition checks in msi installers previous posted on win2kgaming.Its recommended to make backups of the msi archives before running the scripts.Its a bit of try and error which version works flawlessly.

    usage: copy&paste code in MS text editor and save as *.vbs.Drop msi archive on vbs script.

    Remove MSI OScheck Script :
    (all credits and thanks to the author darkgamorck)

    RemoveOScheck v1.0
    Code:
    Option Explicit 
    
    Const msiOpenDatabaseModeReadOnly = 0 
    Const msiOpenDatabaseModeTransact = 1 
    
    Dim argNum, argCount:argCount = Wscript.Arguments.Count 
    If (argCount < 1) Then 
    Wscript.Echo "Please supply the name of the msi file to be modified." 
    Wscript.Quit 1 
    End If 
    
    ' Scan arguments for valid SQL keyword and to determine if any update operations 
    Dim openMode : openMode = msiOpenDatabaseModeReadOnly 
    openMode = msiOpenDatabaseModeTransact 
    
    ' Connect to Windows installer object 
    Dim installer : Set installer = Nothing 
    Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError 
    
    ' Open database 
    Dim databasePath:databasePath = Wscript.Arguments(0) 
    Dim database : Set database = installer.OpenDatabase(databasePath, openMode) : CheckError 
    
    ' Process SQL statements and delete the crap out of this installer! 
    Dim query, view, record, message, rowData, columnCount, delim, column 
    Set view = database.OpenView("Delete from LaunchCondition") : CheckError 
    view.Execute 
    wscript.echo "Launch Conditions Removed" 
    Set view = database.OpenView("Delete from InstallExecuteSequence where Action='OnCheckSilentInstall'") 
    view.Execute 
    wscript.echo "OnCheckSilentInstall step removed" 
    Set view = database.OpenView("Delete from Property where Property = 'ISSETUPDRIVEN'") 
    view.Execute 
    wscript.echo "Property ISSETUPDRIVEN removed" 
    Set view = database.OpenView("INSERT INTO Property (Property,Value) VALUES ('ISSETUPDRIVEN',1)") 
    view.Execute 
    wscript.echo "Property ISSETUPDRIVEN added" 
    database.Commit 
    Wscript.Quit 0 
    
    Sub CheckError 
    Dim message, errRec 
    If Err = 0 Then Exit Sub 
    message = Err.Source & " " & Hex(Err) & ": " & Err.Description 
    If Not installer Is Nothing Then 
    Set errRec = installer.LastErrorRecord 
    If Not errRec Is Nothing Then message = message & vbLf & errRec.FormatText 
    End If 
    Fail message 
    End Sub 
    
    Sub Fail(message) 
    Wscript.Echo message 
    Wscript.Quit 2 
    End Sub
    RemoveOScheck v1.1
    Code:
    Option Explicit 
    
    Const msiOpenDatabaseModeReadOnly = 0 
    Const msiOpenDatabaseModeTransact = 1 
    
    Dim argNum, argCount:argCount = Wscript.Arguments.Count 
    If (argCount < 1) Then 
    Wscript.Echo "Please supply the name of the msi file to be modified." 
    Wscript.Quit 1 
    End If 
    
    On Error Resume Next 
    
    ' Scan arguments for valid SQL keyword and to determine if any update operations 
    Dim openMode : openMode = msiOpenDatabaseModeReadOnly 
    openMode = msiOpenDatabaseModeTransact 
    
    ' Connect to Windows installer object 
    Dim installer : Set installer = Nothing 
    Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError 
    
    ' Open database 
    Dim databasePath:databasePath = Wscript.Arguments(0) 
    Dim database : Set database = installer.OpenDatabase(databasePath, openMode) : CheckError 
    
    ' Process SQL statements and delete the crap out of this installer! 
    Dim query, view, record, message, rowData, columnCount, delim, column, cctr 
    cctr = 0 
    Set view = database.OpenView("Delete from LaunchCondition") 
    if ClearError() = false then 
      view.Execute 
      wscript.echo "Launch Conditions Removed" 
      cctr = cctr + 1 
    end if 
    Set view = database.OpenView("Delete from CustomAction where Action='CA_CheckIfWeCanInstall'") 
    if ClearError() = false then 
      view.Execute 
      wscript.echo "Custom Action CA_CheckIfWeCanInstall Removed" 
      cctr = cctr + 1 
    end if 
    Set view = database.OpenView("Delete from InstallExecuteSequence where Action='OnCheckSilentInstall'") 
    if ClearError() = false then 
      view.Execute 
      wscript.echo "OnCheckSilentInstall step removed" 
      cctr = cctr + 1 
    end if 
    Set view = database.OpenView("Delete from Property where Property = 'ISSETUPDRIVEN'") 
    if ClearError() = false then 
      view.Execute 
      wscript.echo "Property ISSETUPDRIVEN removed" 
      cctr = cctr + 1 
    end if 
    Set view = database.OpenView("INSERT INTO Property (Property,Value) VALUES ('ISSETUPDRIVEN',1)") 
    if ClearError() = false then 
      view.Execute 
      wscript.echo "Property ISSETUPDRIVEN added" 
      cctr = cctr + 1 
    end if 
    if cctr > 0 then 
      database.Commit 
    else 
      wscript.echo "This script was unable to make changes to the specific MSI file." 
    end if 
    Wscript.Quit 0 
    
    Function ClearError 
      if Err.Number <> 0 then 
        Err.Clear 
        ClearError = true 
      else 
        ClearError = false 
      end if 
    End Function 
    
    Sub CheckError 
      Dim message, errRec 
      If Err = 0 Then Exit Sub 
      message = Err.Source & " " & Hex(Err) & ": " & Err.Description 
      If Not installer Is Nothing Then 
        Set errRec = installer.LastErrorRecord 
        If Not errRec Is Nothing Then message = message & vbLf & errRec.FormatText 
      End If 
      Fail message 
    End Sub 
    
    Sub Fail(message) 
      Wscript.Echo message 
      Wscript.Quit 2 
    End Sub
    Win2kgaming Forum Update 13-10-2011:
    New address for the Win2kgaming Forum

    BR
     


Add New Comment

TechSpot Members
Login or sign up for free,
it takes about 30 seconds.
You may also...


Get complete access to the TechSpot community. Join thousands of technology enthusiasts that contribute and share knowledge in our forum. Get a private inbox, upload your own photo gallery and more.