Jedi Knight Patch Commander
Frequently Asked Questions
Table of Contents
Questions and Answers
This document contains a distilled list of Frequently Asked Questions (FAQ) about my freeware program, Jedi Knight Patch Commander, also known as JKPatch. Since I released the first version of JKPatch, I've gotten a lot of feedback, questions, and suggestions. The questions and answers below represent my best two-hour stab at explaining some of the most important issues about using patches with Jedi Knight: Dark Forces® II. The information on using patches without JKPatch is pretty slim, because I personally prefer to use the program (that's why I wrote the thing!), but the basic concepts are outlined to help you achieve a better understanding of what's going on "under the hood."
Some of the included information is somewhat technical, but I feel it's important to understand why things work, not just that they work. I'd be happy to include some easier explanations of things if anyone comes up with any.
You will not find information about creating patches in this document. The art and craft of patch creation are way beyond the scope of an end user FAQ list. If you really want to get into creating your own patches, check the sites listed in section 4.2.
Use the information contained in this
document at your own risk. I've tested it all, and it is correct to the best of my
knowledge. However, your mileage may vary. Most importantly, don't attempt anything you
don't understand at least a little. Also, please try to remember: I'm a real person with a
real job, doing this as a hobby. While I try my best to provide useful utilities and
information, I don't have time to solve every problem and answer every question that comes
my way. I'm sure that goes for most of the patch designers as well.
Patches are files that somehow alter Jedi Knight's look, behavior, or gameplay. Broadly speaking, there are 3 major categories of patches:
Skin patches alter or add to the list of existing characters that you can play in the game. Skins intended for single player use override the default Kyle Katarn look, while multiplayer skin packs add one or more options to the list of skins provided by LucasArts.
Weapon patches alter the behavior of one or more of the standard weapons in the game. For example, the Destruct-O-Ray patch causes the secondary fire of the Concussion Rifle to shoot Force Destruction (even if you don't possess that force power). There are simple weapon patches which do nothing but make the weapon more/less destructive, all the way up to patches that change the weapon entirely (e.g., causing the secondary fire of the Bryar Pistol to shoot a Grappling Hook). Patches that override the behavior of the Field Light and Infrared Goggles are often considered Weapon patches, even though those items are not typically weapons.
Force patches alter, enhance, or override the effect of one or more Force Powers. The Air Jump patch, which allows you to Force Jump again while still in the air (for a "double jump" effect) is an example of an enhancement, while the Force Illusion patch overrides another force power completely, allowing you to remain hidden while projecting a decoy image of yourself for everyone to attack.
Needless to say, Force patches have been among the most creative and popular for their "Gee Whiz" value, although a well-crafted Weapon patch can be a real joy to use.
How do I use patches?There are two different types of patches: Gobbed and Ungobbed. Gobbed patches come packaged in a single convenient GOB (or
GOO) file, while Ungobbed patches come as one or more files which go in one or more directories. Any patch can be Gobbed, and once the initial debugging is done, there's very little reason to release an Ungobbed patch.The following description was written for Jedi Knight. It works for Mysteries of the Sith as well; just change the directory and file names.
To use a Gobbed patch, create a new directory under the directory where Jedi Knight is installed. Put the GOB files you want to use in it, and run Jedi Knight with the command line option -path directory. For example, if you installed your patches in the directory C:\Program Files\LucasArts\Jedi Knight\patches, you would use the following command line to run Jedi Knight:
C:\Program Files\LucasArts\Jedi Knight\jk.exe path patches
There are three options for using Ungobbed patches:
A
GOB file is a single file that acts as a container for other files. Think of it as a ZIP file without the compression. Its purpose is to keep related files together in a single convenient package so that Jedi Knight can find them when it wants them. For some reason, Mysteries of the Sith uses the extension GOO instead of GOB, but this document will refer to them both as GOBs.There are a number of good utilities available that will help you turn a collection of files into a single
GOB file (and back). CyberGOB, ConMan, and my own Patch Commander come to mind. If you're interested in the internal structure of GOB files, you can obtain the spec from a number of the Jedi Knight editing sites. See section 5.2 for some links to get you started.I've gotten several messages from people complaining that the GOB files they make with Patch Commander's internal Gobber make Jedi Knight crash, even though the patches work fine ungobbed. Someone finally sent me a sample crashing GOB, and after a couple hours of investigation, I discovered the problem. In fact, the problem occurs when the same source files are gobbed using CyberGOB or any other gobber.
The problem occurs mainly with skin patches, since they usually contain references to other files, but it's a potential problem with COGs and levels as well. Here's the situation. Although Windows 95's file system lets you use mixed case in filenames, it is not case sensitive. If you doubt that, try creating a file called myfile.txt and another one called MyFile.txt in the same directory. You can't; Windows 95 treats the two names as identical. Anyway, the upshot is that if your 3do file calls for a material called thingy.mat and Windows 95 finds a file called Thingy.mat, there's no problem, and the skin works. Jedi Knight's GOB reading routine, however, is case sensitive, so when it goes looking inside the GOB for 3do\mat\thingy.mat, it never finds it (because the name stored inside the GOB header is 3do\mat\Thingy.mat which doesn't match), so it immediately and ungracefully barfs and dies.
The solution is to name all of your files consistently -- either uppercase them or
don't -- and then make sure all your references to that file match it exactly. If you have
a GOB that crashes Jedi Knight, look for the case
conflict.
The Jedi Knight Patch Commander is a utility that manages multiple patches, checks for conflicts between patches, and launches Jedi Knight with your desired patch configuration. JKPatch's Options menu provides access to other Jedi Knight command line options if desired (see Question 5.1 below).
If you're reading this document, you probably already have it <grin>. However, for the latest version, check with your favorite Jedi Knight web site the most recent version is sent out to webmasters via email. Check the list of websites under the Resources section at the bottom of this document. JKPatch will eventually have its own page with the latest version and information, but until then, due to a lack of resources, I cannot honor requests to email individuals copies of the program. If you are a JK Site webmaster/filekeeper and you want to be on the distribution list, please send me your email address and site information (so I can verify you) and I'll add you to the list.
The way JKPatch works is simple. It creates a subdirectory of your Jedi Knight directory called
JKPatch and a subdirectory of that called active. All your patches are stored in the JKPatch directory, and moved to the active directory when you activate them. When you run Jedi Knight, JKPatch executes jk.exe -path JKPatch\active\ which tells JK to look for GOB files in the JKPatch\active directory and use them as patches.This is a hard question to answer. The most common reason is that Jedi Knight was moved to a new drive or directory after it was installed, and JKPatch can't figure out where it is. JKPatch looks in your Windows95 registry (specifically, the key HKEY_LOCAL_MACHINE\SOFTWARE\LucasArts Entertainment Company\JediKnight\v1.0\Install Path) to find out where Jedi Knight is installed.
The latest version of JKPatch has a Debug Information option under the Help menu which will provide lots of information which will help answer your question. Before emailing me with problems, please copy the information out of the debug screen and paste it into your email message.
As
of right now, I'm pretty much maxxed out on features. My main plan at the moment is to
improve conflict checking, and even try to resolve certain conflicts on the fly (e.g.,
support for multiple patches that add strings to jkstrings.uni or models.dat). As always,
suggestions are quite welcome, but since this is my spare-time project, I can't promise
speedy results.
Just like you use them in single player.
JK.EXE must be run with the patch path specified before you Host or Join the game.This question has a two-part answer: 1) You can't; 2) You shouldn't want to.
Technical Reason for Answer #1: I get messages from people all the time saying "I just know that other people are cheating and using patches in multiplayer." This is simply not possible. Jedi Knight calculates a pseudo-unique number known as a checksum based on the installed code (game + patches) on the Host and compares it to the checksum calculated the same way on the Client computer. If the checksums don't match, the Client gets an error reading "Checksum Failure: Your data version does not match the host's" when trying to connect.
Opinionated Reason for Answer #2: When everyone's got the same patches installed, skill is still the determining factor. The game is enhanced, there are new cool things to do, and everyone's happy. If you could use a patch on the sly, the outcome of the game would depend more on how much you can download than how good you are. Besides, what would it do to your self-esteem if you had the 10-foot light saber and the Destruct-O-Ray and still got your ass kicked? Trust me; things are better this way. Find someone your own skill level and practice on each other. If you're so bad that you can't find anyone your own level, play the single player game a few more times and get better. The Deathmatch champions didn't get that way overnight
So how is it that people in multiplayer keep destroying you in the blink of an eye? There are three possibilities. The first (and most common), as painful as it is to deal with, is that they're just that much better than you are. Some people are just really fast and can attack with combo moves that make it look like they're doing fourteen things at once. The second is that your network lag time is so bad that they've had time to do those fourteen things to you while you were a sitting duck waiting for your game engine to catch up. The third possibility is that they are cheating, but not by using a patch. There is a way, without patching the game and altering your checksum, to obtain ultra-strong force powers and stand around Force Gripping people to death with impunity. Yes, I know how to do it; No, I won't tell you how. Don't even bother to ask. It's unfair, it's immature, and it destroys everyone's enjoyment of the game.
This is by far my #1 most Frequently Asked Question.
Since the Zone launches Jedi Knight itself without going through JKPatch, it doesn't use the -path directive, so the patches don't get used. I've added an option to JKPatch's Options menu to make patches available when playing on the Zone, but it has a rather serious side effect it causes Jedi Knight to use the active patch directory every time you play on the Zone, whether or not you launched the Zone from within JKPatch. The only way to play on the Zone unpatched will be to run JKPatch again and either uncheck the Zone option or deactivate all of your patches (leaving the JKPatch\active directory empty).
The reason for this is simple. The Zone uses Microsoft's DirectPlay API, which stores information about how to launch each game in the Windows95 registry (under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectPlay\Applications). For each game, it knows the path where it's installed, the file to run, and an optional command line. For Jedi Knight, the command line is empty by default. By putting the path JKPatch\active directive in the registry, it causes the Zone to tell jk.exe to use the active patch directory at all times, not just when called from JKPatch.
Also, the rule from Question 3.2 still holds true all players in a multiplayer game must be using the same patches.
The new Zone-related menu items to look for in JKPatch are:
Options|Use active patches when playing on Internet Gaming Zone
and
File|Launch Internet Gaming Zone
In addition to the path command line option, Jedi Knight supports five other options:
-framerate | Shows the rendering engine's framerate during gameplay |
-displayconfig | Enables advanced display configuration |
dispstats | Displays various game engine statistics during gameplay |
devmode | Enables Developer Mode, adding a (Debug) option to the New Game/Load Game screen (in Single Player). This option lets you select the episode and level where you will begin a new game. |
-windowgui | Runs the non-game user interface (and cutscenes) in a window instead of full screen. |
The following is a list of the Jedi Knight sites that I frequent. There are many more, I know, but there's just not enough time in the day for me to keep following the links. Most of the sites belong to a Ring, which is a cool way for related sites to link to each other without having to maintain redundant lists. Just follow the ring around
JediKnight.net | http://www.jediknight.net |
DarkJedi.com | http://www.darkjedi.com |
Jedi Knight @ UGP | http://www.ultragp.com/games/25/guide/index.html |
Jedi Nights | http://jediknight.telefragged.com |
JK Outpost | http://outpost.simplenet.com/JediKnight |
Mos Eisley | http://www.moseisley.com |
Valley of the Jedi | http://www.votj.com |
Star Wars Gamers | http://www.swgamers.com |
Force Builder Page | http://www.darkjedi.com/forcebuilder/ |
Again, this is hardly a complete list. If you want your site added to (or, for
some reason, removed from) the above list, please email me your site information.
This FAQ list is written and maintained by Michael B. Klein. The information contained in it has been culled from many sources on the World Wide Web. Many thanks to those who have figured out and documented so much of the technology that I have relied upon: the Code Alliance (who can be found at DarkJedi.com), with help from Bryant Luk (of Star Wars Gamers) and Mattias Welander (author of the Force Builder level editor), provided some extremely well-written documentation in the form of the Jedi Knight Unofficial Specs. Thanks also to those who have taken the time to let me know what they think of JKPatch, to report bugs, ask questions, and to provide enough details to help me track down the answers.
Dark Forces and Star Wars are registered trademarks and Jedi Knight and Mysteries of the Stih are trademarks of Lucasfilm Ltd. LucasArts Entertainment Company has not in any way endorsed the Jedi Knight Patch Commander or this FAQ.