By: Jonathan Vasquez (fearedbliss)
Main Menu (Example)
Cactus is no longer available on GitHub but can be downloaded directly from my server (uptime is not guaranteed). 7-Zip must be used to extract the archive since I'm using high compression.
- Compressed Size:
- Uncompressed Size:
Description / History
Cactus started out as just a simple application that allowed you to
easily and efficiently Time Travel between every version of Diablo II
that ever came out, while maximizing disk space and enabling full
character isolation between versions. However, even though Cactus itself
still is just that, the Cactus Repository has evolved to become a
centralized and historical archive, that aims to preserve every single
Diablo II version that exists (
Official Retail and
Releases). Cactus is a complete rewrite from scratch of my previous
Bliss Version Switcher. However, since Cactus is
written in C#, it behaves as a native Windows application and allows it
to integrate natively with the system. On the other hand, Bliss Version
Switcher was written in Java and thus there were many limitations that
lead to the Cactus rewrite.
This repository also includes several other utilities that I have either
created or collected, which can help you play
Vanilla Diablo II
better. All Cactus Platforms are
Vanilla by default. The only fix
I made to all Platforms below
1.12 is to remove the CD requirement
since modern computers no longer have a CD drive (Blizzard already did
this exact thing for
1.12+). Other than that, the only other
modifications I provide are through
Singling, which is
completely opt-in, and only contains
non-gameplay modifications for Single Player and LAN, things like:
- CPU Fixes (Main Menu, Single Player, and LAN)
- Ladder Runewords
- Multiple Instances
- Hardcore Character Creation (w/o needing to beat Softcore)
- Faster LAN Game Creation/Joining
- Scrolling Letters Fix
- MPQ Fix
- FPS Unlock
- Disabled Battle.net Button (So you don't get banned or accidentally update your game)
- Skipped Introduction Cinematics
Singling is made to be a
Simple Drag & Drop Solution. There is no
configuration file or toggable options. If I don't believe a fix is
needed or stable enough, it simply won't be included.
does not provide any sort of modifications that have a
psychological impact on the immersion aspect of
Vanilla Diablo II,
which eliminates all visual level changes as a result. For example,
Extended Stash (10x10), Font Fix, and Item Level don't really have any
gameplay impact, however they do have a psychological impact on the
immersion of the user's experience. Since my goal with
Singling is to allow people to enjoy any version of Diablo II that
ever came out
while adhearing to the original spirit of the game,
modifications outside of this goal are not included.
Furthermore, if you will be playing online, you should make a copy of
the Vanilla Platform and use that one to connect to Battle.net (for
example, copying the
1.14d platform and calling it something like
1.14d BNET). You can use your other platforms with the Singling
changes for local play. For a detailed overview, caveats, and patch
rationale, you can read the Singling README.
Lastly, a few renderers are included to improve video compatibility,
glidewrapper. The choice is yours for how you
want to play.
Cactus requires a purchased copy of Diablo II
(Original, Not Resurrected)
from Blizzard in order to have all of the game assets stored in the
MPQs. Once you have these, they will be re-used for all Cactus
For further information, please read the documentation below for anything you are interested in exploring.
The following opt-in modifications and utilities are available in this repository:
A collection of non-gameplay modifications and fixes in order to improve the Vanilla Diablo II Single Player & LAN Experience.
To use Singling, simply copy the Singling files for the version you want to
play from the
2. Singling/1. Files folder, and replace the ones for
the equivalent version in your Platforms directory. To revert, use the files
2. Singling/2. Stock instead.
Cactus includes two alternative renderers for Diablo II which can help you
run the game on newer systems with a higher resolution (not a higher internal
resolution), and the ability to use shaders to upscale the quality of the
graphics in the game (
cnc-ddraw). Both of these renderers are automatically
included as part of the Cactus Base Installation.
cnc-ddraw should be used
in versions of Diablo II older than
be used for any newer versions.
Please read the
for further explanation on this, for information on how to set them up, or for
any known technical limitations. Definitely read the
section at least, or you will most likely encounter crashes if you've never
played versions before
1.14 before. Blizzard has done major changes with
how video configuration works starting in
cnc-ddraw- This renderer reimplements the DirectDraw API for GDI, OpenGL, and Direct3D to improve compatibility with Windows XP - 10, and Wine. This renderer also supports the use of custom shaders - which will allow you to upscale the game so it looks a lot better - and even provides hotkeys (such as
[Alt] + [Enter]) to switch between full screen and window mode.
GlideWrapper- A simple glide to opengl wrapper which will allow you to enable
Released under the Apache License 2.0.
- .NET Framework 4.6.1 +
Install Cactus And Prepare MPQs
This section will help you install Cactus to the correct location and also help you fix your MPQs so that they are compatible with the older versions of Diablo II.
Note: This fix is only needed if you want to play versions
1.08 - 1.13d,
if you are not planning to play those versions, you don't need to fix your MPQs.
- Copy all of the files in the
1. Filesfolder into your Diablo II root folder.
- Run the
MpqFixerthat you copied, as
Adding/Running A Platform
- Type in the name of the Platform you want to run. This should match a folder in the
Platformsfolder. (Example: If you want to run
- Enter the path to the executable you want to launch in your Diablo II
rootfolder. Cactus copies all of the files from the
Platforms/[NAME]folder to the Diablo II root folder, so most of your entries will have identical paths (Example:
D:\Games\Diablo II\Game.exe). Do not put something that points to an executable in the
Platformsfolder since that will not work and will give you an
Object reference not set to an instance of an objecterror. The executable has to be in the root of the Diablo II folder as described above.
- Enter the Flags you want (Example:
- Make sure
Expansionis selected (Unless you are playing
1.00-1.06bor didn't purchase
Lord of Destruction).
- Select your newly added Platform and press
The game should start. If you are having video issues, please make sure you
have read the
README-RENDERERS and ensure that
it was configured properly.
Moving Cactus To A New Computer
If you want to move all of your Platforms, Characters, and Diablo II folder to another machine, you will need to:
- Copy your entire Diablo II folder to your new machine.
- Edit the
Entries.jsonfile and change the
Pathfor all of your entries so that it now has the
Pathon your new machine.
Base Directoryfor all Paths need to match. The exes can be different.
D:\Diablo Immortal For PC\Game.exe.
Cactusand edit the
Last Ran Platform.
- Uncheck the
Last Ranbox and Click
Launchwhatever Platform you want.
Last Ran box will cause Cactus to reconfigure itself (Including registry locations).
Updating Files In The Platforms folder
If you update any files in your Platforms folder, then uncheck the
box from the corresponding platform, and run it again. This will cause Cactus
to re-install the files with the new ones.
OMAHGOD! My Characters Are Gone! Cactus Deleted Them!!!
Cactus comes with built in safety features specifically designed to
protect critical directories and files, which includes the save
directories. Thus it is impossible for Cactus to have deleted them.
Cactus also only operates within the Diablo II root directory so it also
wouldn't be possible for Cactus to delete saves that are in
new save directory that is in your personal folder.
Since Cactus is a
Version Switcher with Full Character and Version Isolation,
it will update the registry location of where the game should look for
the saves. For example, if you are playing a
1.05b (Chinchilla) (The files for this Platform would logically be
Platforms/1.05b (Chinchilla)), then Cactus will save
your characters in the
Saves/1.05b (Chinchilla) directory located
inside your Diablo II folder. So when the game starts, your characters
are properly isolated and protected. If this is the first time you
launched a game with Cactus, and you previously just had a regular
Diablo II installation, then it would seem as if all your characters got
deleted, or magically dissapeared. However, they are simply located in
the original location that your computer saved them to. If you were
1.14d+, they most likely are located at:
%USERPROFILE%/Saved Games/Diablo II
If you were playing
1.13d or below, they are inside the Diablo II
folder itself under a folder called
Lastly, always remember to keep backups when running Third Party Tools or Modifications.