for Dark Souls™: Prepare to Die Edition
Author: Sean Pesce
For source code, updates, and other information about this project, check out the public repository on GitHub.
This is an old project that I created a few years ago with the intent to become more familiar with JavaFX and UI design. I wasn't planning on releasing it, but I found that I was repeatedly reinstalling it for myself and my friends every time we installed Dark Souls on a new computer. Yes, the file size is way larger than it needs to be (mostly due to the self-contained JRE), but this is far outweighed by the program's usefulness if you're a hardcore Dark Souls fan (bandwidth isn't an issue for most people these days anyway).
The code's a huge mess, because (as I said before) this project was a learning experience first and foremost, and the first significant project I ever created in my free time. I was still new to programming, and had little understanding of object-oriented design patterns, abstraction, etc. I understand now that there are far better languages for a program with this scope, but efficiency and optimization were not my original priorities. I might update it a bit more to finish a few things, but I probably won't be doing any code refactoring or implementing any major changes.
The Dark Souls Configuration Utility is a launcher, mod manager, and configuration tool for Dark Souls: Prepare to Die Edition on PC. Dark Souls is awesome, but it's probably one of the worst PC ports of all time. Luckily, the game has a very dedicated fanbase, and the community came together to create various fixes and updates to make it more playable. Unfortunately it can be a bit of a hassle to install and configure most of these fixes, and many people can't be bothered with doing so (nor do they want to play a game as broken as this one). The Dark Souls Configuration Utility aims to mitigate this issue by providing an easy-to-use, all-in-one resource for installing and configuring the most essential community fixes/mods.
To run the Dark Souls Configuration Utility, open DSCfgUtil.exe in the main program directory (or search for "Dark Souls Config Utility" in the start menu if you used an installer). For in-depth usage and feature descriptions, see the documentation in the /docs/ folder. A video demo for an older version of the program can also be found here.
@TODO: Add documentation in /docs/ with in-depth descriptions of usage/features.
If you want to build the project yourself (rather than downloading a pre-compiled version), simply download the project and run make_all.bat
. However, the script will only work if you meet the following criteria:
- Install the JDK
- Add the JDK install directory to your %PATH% environment variable (See "Adding to the %PATH% variable" below for instructions)
- Install Inno Setup
- Add the Inno Setup install directory to your %PATH% (See below)
- If your JDK is installed somewhere other than
C:\Program Files\Java\jdk1.8.0_121
, you'll need to edit line 39 ofmake.bat
, line 10 ofmake_with_additional_tex_mods.bat
, line 39 ofmake_lite.bat
, and line 10 ofmake_lite_w_extra_tex_mods.bat
with your JDK directory (Maybe I'll update this script to be more universal at some point so this won't be necessary).
Adding to the %PATH% variable: You can add to your %PATH% by going to Start→Edit the System Environment Variables→Advanced tab→Environment Variables→select "Path"→Edit→New→paste the program directory→OK
After compiling the project with the batch script, the 8 different package variations (and the extra texture mods pack) will be available in the /Release/ folder.
- Portable packages come in a .zip and don't require installation. They can be run from anywhere on your computer, a flash drive, etc.
- Setup packages will run an installer to install the program onto your computer (adding a Start Menu entry and an Uninstall entry in the Control Panel).
- Lite packages (marked with an "L") come without a self-contained Java Runtime Environment (JRE), which means that the file size is significantly smaller than the normal standalone packages. However, you must have a JRE installed on your computer for Lite packages to function. You can download the latest JRE here.
- Packages marked with an "X" come with additional texture mods pre-installed. If you downloaded a package without the extra texture mods, you can download the extra texture mod pack as a separate file and merge it with your program folder to install them.
This project wouldn't exist if it weren't for these guys:
- Peter "Durante" Thoman (Website, Twitter, GitHub) for creating DSFix, undeniably the most essential fix for Dark Souls on PC.
- Alessandro "eur0pa" De Micheli (Website, Twitter, GitHub) for creating Dark Souls PvP Watchdog, the closest thing to anti-cheat that's available for Dark Souls: Prepare to Die Edition.
- Lane "Wulf2k" Hatland (Website, GitHub, Reddit) for creating the Dark Souls Connectivity Mod to remedy the horrific wait times and general difficulties players would otherwise experience when attempting to engage in online play. Wulf2k also has some other extremely interesting work related to modding/reverse engineering Dark Souls; I highly recommend checking out his website.
- Methanhydrat (Website, Reddit) for creating the new Dark Souls Mouse Fix that enables true raw mouse input for the game. This is the Mouse Fix that DSCU uses.
- BANDAI NAMCO and (more importantly) From Software, Inc for publishing/developing Dark Souls and taking the risk by porting it to PC even though they had no experience in doing such ports (Note: This was before the series was hugely popular like it is today, so there was no guarantee that this move was a good business decision).
Other Contributors
- Colin Percival (Website, Twitter) for creating bsdiff and bspatch, which are used by Dark Souls Config Utility to switch between different builds of the game.
- David Stellini from StackOverflow, for finding some Windows registry-related Java code that I used. He's not the original author of the code (I'm not sure who is), but he posted it in this thread, which is where I came across it.
- Nicholas "lebbers" Petska for creating the original Dark Souls MouseFix to fix the awful mouse controls for players who don't own a controller. This file was included in an older version of the Config Utility (replaced by Methanhydrat's DarkSoulsMouseFix).
- Jellybaby34 on Reddit for updating the original Dark Souls Mouse Fix to work with the latest version of Dark Souls. This file was included in an older version of the Config Utility (replaced by Methanhydrat's DarkSoulsMouseFix).
- Youri "NullBy7e" de Mooij (GitHub) for creating the original fix for the (relatively unknown) bonfire input glitch. This file was included in an older version of the Config Utility (replaced by my FPSFix+, which applies the same fix method but in an automated fashion).
Last but not least, the creators of the texture mods included with this program:
- Improved aiming crosshairs*
- "DSFix Enabled" Main Menu Logo Fix*
- Highly Visibility Health Bars*
- Combination of the previous two mods*
- High Resolution Fonts
- HD Player Messages
- HD Summon Signs
- Keyboard & Mouse Button icons*
- DualShock 3 (PS3) Button Icons
- DualShock 4 (PS4) Button Icons
- Xbox 360 Button Icons (HD)
- Xbox One Button Icons*
- Thief Mask Texture Fix
- Tree LoD Texture Fix
*Texture mods that I worked on to complete, fix, or improve in some way (Note: My edits aren't on the Nexus versions of these mods)
• "Essential" texture mods (included in all program bundles)
◦ Extra texture mods (included in program bundles with the X label)
- Java SE Development Kit 8 by Oracle
- Inno Setup by JRSoftware
GNU General Public License v3.0
For unrelated inquiries and/or information about me, visit my personal website.