Difference between revisions of "WormKitDS"

From Worms Knowledge Base

Jump to: navigation, search
m (How does it work)
 
(16 intermediate revisions by 3 users not shown)
Line 5: Line 5:
 
| name = WormKitDS
 
| name = WormKitDS
 
| developer = [[People/Kawoosh|Kawoosh]]
 
| developer = [[People/Kawoosh|Kawoosh]]
 +
| version = 1.0.0.3 / 20 October 2012
 
| games = [[Worms Armageddon|W:A]], [[Worms World Party|WWP]], [[Worms 2|W2]]
 
| games = [[Worms Armageddon|W:A]], [[Worms World Party|WWP]], [[Worms 2|W2]]
 
| waver = All versions
 
| waver = All versions
 +
| steam = Yes
 
| language = C++
 
| language = C++
 
| license = Open-source
 
| license = Open-source
 
| download = Choose one:
 
| download = Choose one:
* [http://stepsfiles.tk/wa/build/WormKitDS-installer.rar Installer]
+
* [http://myfiles.my1.ru/wa/build/WormKitDS-installer.rar WormKitDS Installer]
** [http://stepsfiles.tk/wa/wk/WormKitDS.rar DS files]
+
* [http://files.steps.club/wa/wk/WormKitDS.zip WormKitDS DLL]
* [http://stepsfiles.tk/wa/wk/WkDS_Source.rar source code]
+
* [http://files.steps.club/wa/wk/WkDS_Source.rar source code (1.0.0.1)]
 
}}
 
}}
  
'''WormKitDS''' is a custom version of [[WormKit]]. Its main purpose is to make the usual way of loading WormKit modules (via external program) obsolete. Now WormKit.exe is not needed anymore, WA.exe will load modules itself!
+
'''WormKitDS''' was a way to load [[WormKit]] modules without need of launching an executable other than WA.exe (WormKit.exe). It became partially obsolete since the release of the [[Worms_Armageddon_ReadMe_(English)/v3.7.0.0_Update|3.7.0.0 update]] which adds ability to load WormKit modules natively after enabling the corresponding checkbox in the Advanced settings.
  
 
== General purpose ==
 
== General purpose ==
The general purpose of WormKitDS is to switch back to WA.exe while keeping to load WormKit modules. Why? Some programs are used to specific EXE files, so old WormKit, being a temporary process, didn't have its full power sometimes. Second, all replay and URL associations were belong to WA.exe, and not WormKit.exe, which caused troubles while working with replays of [[RubberWorm]] games, for example. So you don't need [[wkPathOverride]] anymore. And third, this will also allow you to run some of WormKit modules under Linux (the modules that don't use Windows APIs, i.e. RubberWorm and others).
+
The general purpose of WormKitDS is to switch back to WA.exe while keeping to load WormKit modules. Why? Some programs are used to specific EXE files, so old WormKit, being a temporary process, didn't have its full power sometimes. Second, all replay and URL associations were belong to WA.exe, and not WormKit.exe, which caused troubles while working with replays of [[RubberWorm]] games, for example. So you don't need [[wkPathOverride]] anymore. And third, this will also allow you to run WormKit modules under the Steam version of W:A. Some modules will work on Wine as well, whereas the original WormKit.exe wouldn't work properly.
  
 
== How does it work ==
 
== How does it work ==
Line 26: Line 28:
  
 
==== You say that this is a new WormKit, but why do I see something like "dsound.dll"? ====
 
==== You say that this is a new WormKit, but why do I see something like "dsound.dll"? ====
To make WA loading modules itself, a DLL file which had the same name as one of the WA's required DLL was needed. Usually this file is located in system32 folder, but here it's also used as a module loader.
+
To make WA loading modules itself, a DLL file which had the same name as one of the WA's required DLLs was needed. Usually this file is located in system32 folder, but here it's also used as a module loader.
  
 
==== Will it affect the stability of modules somehow? ====
 
==== Will it affect the stability of modules somehow? ====
 
Nope.
 
Nope.
  
==== Will this way work under Linux? ====
+
==== Will this way work under Wine? ====
Partially. As it's known for now, modules (such as [[RubberWorm]] or [[Project X]]) which don't use Windows APIs, will work under linux. But first you need to make some changes into winecfg to use a "native" dsound.dll instead of "integrated".
+
Partially. As it's known for now, modules (such as [[RubberWorm]] or [[Project X]]) which don't use Windows APIs, will work under Wine. But first you need to make some changes into winecfg to use a "native" dsound.dll instead of "integrated".
  
It is the madCHook library that has some incompatibilities with Linux, CyberShadow has started a rewrite of it to further support Linux, [http://dump.thecybershadow.net/8402759fd73a29acecd16770cb2f26db/WormKit.zip here] is the current file and source code. Note that it's still unfinished and is written on Delphi, but any contribution to the project will be appreciated.
+
It is the madCHook library that has some incompatibilities with Wine, CyberShadow has started a rewrite of it to further support Wine, [http://dump.thecybershadow.net/8402759fd73a29acecd16770cb2f26db/WormKit.zip here] is the current file and source code. Note that it's still unfinished and is written on Delphi, but any contribution to the project will be appreciated.
  
 
Also, as it was reported by Muzer, the latest versions of Wine seem to fully support the current madCHook, but this information isn't confirmed yet.
 
Also, as it was reported by Muzer, the latest versions of Wine seem to fully support the current madCHook, but this information isn't confirmed yet.
 +
 +
==== Will this way work under Steam version of W:A? ====
 +
Yes, however the game-dependent modules have to be compatible with the game version it uses.
  
 
==== Will this allow me to watch replays, to do stuff with them or to use WebSnoop? ====
 
==== Will this allow me to watch replays, to do stuff with them or to use WebSnoop? ====
Line 42: Line 47:
  
 
==== Can I temporarily disable WormKitDS? ====
 
==== Can I temporarily disable WormKitDS? ====
Yes, you need to run WA.exe with '''/nowk''' command-line parameter.
+
Yes, you need to run WA.exe with '''/nowk''' command-line parameter. You may also make a shortcut: edit your WA.exe shortcut to adjust '''/nowk''' to the end of path (after the last quotation mark), prefixing it with a space.
  
 
If you used the installer, then just navigate to WA's executable/shortcut, then hold Shift and right-click it; the option "Run WA without WormKit" will appear. To play a replay without WormKit, just right-click it and choose the corresponding option.
 
If you used the installer, then just navigate to WA's executable/shortcut, then hold Shift and right-click it; the option "Run WA without WormKit" will appear. To play a replay without WormKit, just right-click it and choose the corresponding option.
Line 53: Line 58:
  
 
==== When I run the game, a message "Bad module: ..." pops up! ====
 
==== When I run the game, a message "Bad module: ..." pops up! ====
This message means that the current WormKit module is corrupted, has an unproprietary function in its code or doesn't seem to be a valid module. Consult the module developer.
+
This message means that the current WormKit module is corrupted, has an unappropriate function in its code or doesn't seem to be a valid module. Consult the module developer.
  
 
==== Now I got the intro screen again! How can I get rid of it? ====
 
==== Now I got the intro screen again! How can I get rid of it? ====
Turn it off again in Advanced options menu. This is a known issue if you're not using the installer.
+
This may happen because the original WormKit forces disabling intro screens on start, and the feature "Skip Intro" of the Advanced Options hadn't been enabled. You can enable it there or import the tweak "SkipIntro_On.reg" from the /Tweaks/ folder of W:A. The installer cares about it automatically, so this may only concern people who chose to copy the files manually.
  
 
==== Will this way work for WWP or Worms 2? ====
 
==== Will this way work for WWP or Worms 2? ====
The loader will work, but most of WormKit modules are written specifically to work with W:A code only.
+
Yes, the loader will work, but most of WormKit modules are written specifically to work with W:A code only. wkColorFix is an example of an universal module which works on every application.
  
 
==== How can I delete WormKitDS? ====
 
==== How can I delete WormKitDS? ====
Line 65: Line 70:
  
 
==== The FkeyRearrange module shows me an error that it can't find its config file. I'm using The Wheat Snooper ====
 
==== The FkeyRearrange module shows me an error that it can't find its config file. I'm using The Wheat Snooper ====
When joining or hosting games, The Wheat Snooper doesn't care about changing the working directory to the WA's directory, it just uses its own. This can cause the config files not to be found by their modules (if there are some). WormKitDS doesn't force using the WA's directory as a working directory, its main purpose is transparency and portability. Hopefully this issue will be fixed in the future The Wheat Snooper's releases.
+
When joining or hosting games, The Wheat Snooper doesn't care about changing the working directory to the WA's directory, it just uses its own. This can cause the modules not to find their configuration files, if there are some (this doesn't affect Kawoosh's modules). WormKitDS doesn't force using the WA's directory as a working directory, its main purpose is transparency and portability. Hopefully this issue will be fixed in the future The Wheat Snooper's releases.
  
The latest version of the installer fixes this problem as well. But it would be better if modules, that are connected to their configuration files, search for them in the WA directory, and not the "current" directory. The same concerns The Wheat Snooper.
+
The latest version of the installer fixes this problem as well. But it would be better if modules, that are connected to their configuration files, would search for them in the WA directory, and not the "current" directory. The same concerns The Wheat Snooper.
  
 
== See also ==
 
== See also ==
  
[http://forum.team17.com/showthread.php?t=46030 WormKitDS thread on Team17 forum]
+
[https://web.archive.org/web/20131118221717/http://forum.team17.com/showthread.php?t=46030 WormKitDS thread on Team17 forum - Archived]
  
 
{{OSS}}
 
{{OSS}}

Latest revision as of 16:41, 14 May 2018

(Up to Software, WormKit)
In other languages: English (en) • русский (ru) • français (fr) • +/-
icon WormKitDS
Developer: Kawoosh
Latest version: 1.0.0.3 / 20 October 2012
Supported games: W:A, WWP, W2
Supported W:A version: All versions
Language: C++
License: Open-source
Download: Choose one:

WormKitDS was a way to load WormKit modules without need of launching an executable other than WA.exe (WormKit.exe). It became partially obsolete since the release of the 3.7.0.0 update which adds ability to load WormKit modules natively after enabling the corresponding checkbox in the Advanced settings.

General purpose

The general purpose of WormKitDS is to switch back to WA.exe while keeping to load WormKit modules. Why? Some programs are used to specific EXE files, so old WormKit, being a temporary process, didn't have its full power sometimes. Second, all replay and URL associations were belong to WA.exe, and not WormKit.exe, which caused troubles while working with replays of RubberWorm games, for example. So you don't need wkPathOverride anymore. And third, this will also allow you to run WormKit modules under the Steam version of W:A. Some modules will work on Wine as well, whereas the original WormKit.exe wouldn't work properly.

How does it work

Once all files are in place, start WA. It will then load the primarily required DLL files and WormKitDS. WormKitDS itself is a DLL file named "dsound.dll", which consists of a module loader and a loader of the original dsound.dll from system32 folder. By default, WA loads dsound.dll on the start, and if the file is placed in the WA's folder, then the priority will be given to it. After WA loads dsound.dll, the WormKit modules and the original system32's dsound.dll will be loaded too.

WormKitDS FAQ

You say that this is a new WormKit, but why do I see something like "dsound.dll"?

To make WA loading modules itself, a DLL file which had the same name as one of the WA's required DLLs was needed. Usually this file is located in system32 folder, but here it's also used as a module loader.

Will it affect the stability of modules somehow?

Nope.

Will this way work under Wine?

Partially. As it's known for now, modules (such as RubberWorm or Project X) which don't use Windows APIs, will work under Wine. But first you need to make some changes into winecfg to use a "native" dsound.dll instead of "integrated".

It is the madCHook library that has some incompatibilities with Wine, CyberShadow has started a rewrite of it to further support Wine, here is the current file and source code. Note that it's still unfinished and is written on Delphi, but any contribution to the project will be appreciated.

Also, as it was reported by Muzer, the latest versions of Wine seem to fully support the current madCHook, but this information isn't confirmed yet.

Will this way work under Steam version of W:A?

Yes, however the game-dependent modules have to be compatible with the game version it uses.

Will this allow me to watch replays, to do stuff with them or to use WebSnoop?

Yes, but you should use the installer, because it associates replays and URLs back to WA.exe (in case you messed the associations up).

Can I temporarily disable WormKitDS?

Yes, you need to run WA.exe with /nowk command-line parameter. You may also make a shortcut: edit your WA.exe shortcut to adjust /nowk to the end of path (after the last quotation mark), prefixing it with a space.

If you used the installer, then just navigate to WA's executable/shortcut, then hold Shift and right-click it; the option "Run WA without WormKit" will appear. To play a replay without WormKit, just right-click it and choose the corresponding option.

Oh, and what if I run my old WormKit.exe while having a new WormKitDS?

Nothing. The priority is given only to the one. The installer deletes WormKit.exe and edits registry back to WA.exe.

When I run the game, a message "This module is no more needed..." pops up!

Please delete wkPathOverride.

When I run the game, a message "Bad module: ..." pops up!

This message means that the current WormKit module is corrupted, has an unappropriate function in its code or doesn't seem to be a valid module. Consult the module developer.

Now I got the intro screen again! How can I get rid of it?

This may happen because the original WormKit forces disabling intro screens on start, and the feature "Skip Intro" of the Advanced Options hadn't been enabled. You can enable it there or import the tweak "SkipIntro_On.reg" from the /Tweaks/ folder of W:A. The installer cares about it automatically, so this may only concern people who chose to copy the files manually.

Will this way work for WWP or Worms 2?

Yes, the loader will work, but most of WormKit modules are written specifically to work with W:A code only. wkColorFix is an example of an universal module which works on every application.

How can I delete WormKitDS?

Removing dsound.dll from your WA folder is pretty enough.

The FkeyRearrange module shows me an error that it can't find its config file. I'm using The Wheat Snooper

When joining or hosting games, The Wheat Snooper doesn't care about changing the working directory to the WA's directory, it just uses its own. This can cause the modules not to find their configuration files, if there are some (this doesn't affect Kawoosh's modules). WormKitDS doesn't force using the WA's directory as a working directory, its main purpose is transparency and portability. Hopefully this issue will be fixed in the future The Wheat Snooper's releases.

The latest version of the installer fixes this problem as well. But it would be better if modules, that are connected to their configuration files, would search for them in the WA directory, and not the "current" directory. The same concerns The Wheat Snooper.

See also

WormKitDS thread on Team17 forum - Archived

Personal tools