The Cactus Sanctuary - Diablo I & II Time Traveling Videos - (Original, Not Resurrected)
Visit the Cactus (Core) repo
to download the source code for the version switcher. The Cactus Bundle
however 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. All releases are
hashed and PGP signed with the key: 34DA 858C 1447 509E C77A D49F FB85 90B7 C4CA 5279,
which can be easily found at the link below.
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 Official Beta
Releases). Cactus is a complete rewrite from scratch of my previous
application called: 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 only contains non-gameplay modifications, and Alpaca.
Both are completely opt-in.
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.
Lastly, the cnc-ddraw video renderer is provided to improve video
compatibility for all versions between 1.00 - 1.13d. Blizzard
removed DirectDraw support starting with 1.14, and thus
Cactus will only provide video support for versions before that.
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
Platforms.
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
in 2. Singling/2. Stock instead.
Alpaca is a Simple Stash Extension for Diablo II: 1.09b & 1.10f
that was based off Yohann Nicolas' PlugY 11.02.
It has been massively refactored, stabilized, has full support for
Diablo II Classic, and is fully compatible with Necrolis' Native OpenGL Diablo II Driver:
D2GFEx. All previous PlugY bugs
that were related to Multiplayer / LAN have also been fixed.
Alpaca's primary focus is to provide more storage. Nothing else. Therefore, for the best experience, you should combine Alpaca with Singling.
As always, when using any type of mod (or just something good to do in general), make sure to always keep backups!
- Copy all the files in the
3. Alpacafolder for the version you want to play to the equivalent version in yourPlatformsfolder. - Uncheck the
Last Ranbox for whatever entry is selected (if any). - Edit the entry for your target version and change the
Pathto point toAlpaca.exe. - Start up the target platform.
Cactus includes and promotes the cnc-ddraw video renderer for
Diablo II versions 1.00 - 1.13d, which can help you run the game
on newer systems with a higher window resolution (not a higher internal
resolution), and the ability to use shaders to upscale the quality of
the graphics in the game. Since Blizzard removed DirectDraw
support in 1.14+, you'll need to find an alternative video
renderer for those versions.
Please read the README-RENDERERS for
further explanation on this, for information on how to set it up, or for
any known technical limitations. Definitely read the
Recommendations 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 1.14.
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.
Released under the Apache License 2.0.
- .NET Framework 4.6.1 +
Installation Instructions (Video)
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
FIX_MPQS_RUN_AS_ADMIN.batinside theMpqFixerthat you copied, asAdministrator.
- Run
Cactus.exe - Click
Add - Type in the name of the Platform you want to run. This should match a folder in the
Platformsfolder. (Example: If you want to run1.09b, type1.09b). - Enter the path to the executable you want to launch in your Diablo II
rootfolder. Cactus copies all of the files from thePlatforms/[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 thePlatformsfolder since that will not work and will give you anObject 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:
-ns) - Make sure
Expansionis selected (Unless you are playing1.00-1.06bor didn't purchaseLord of Destruction). - Click
Add. - Select your newly added Platform and press
Launch.
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.
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 thePathfor all of your entries so that it now has thePathon your new machine.- The
Base Directoryfor all Paths need to match. The exes can be different.- GOOD:
D:\Games\Diablo II\Game.exeandD:\Games\Diablo II\Alpaca.exe. - BAD:
D:\Games\Diablo II\Game.exeandD:\Diablo Immortal For PC\Game.exe.
- GOOD:
- The
- Open
Cactusand edit theLast Ran Platform. - Uncheck the
Last Ranbox and ClickEdit. - Now
Launchwhatever Platform you want.
Unchecking the Last Ran box will cause Cactus to reconfigure itself (Including registry locations).
If you update any files in your Platforms folder, then uncheck the Last Ran
box from the corresponding platform, and run it again. This will cause Cactus
to re-install the files with the new ones.
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 1.14d+'s 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 Platform called
1.09b (Chinchilla) (The files for this Platform would logically be
located under Platforms/1.09b (Chinchilla)), then Cactus will save
your characters in the Saves/1.09b (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
playing 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 save.
Lastly, always remember to keep backups when running Third Party Tools or Modifications.
If switching versions with Cactus doesn't actually launch the game but you also
don't notice any errors, this could be an indication that either your Video Settings
are not correct, or that you may need to run Cactus in Admin Mode. I've noticed that
if I have Diablo II installed on the C:\ drive (i.e C:\Games\Diablo II),
I would need to run Cactus at least once in Admin Mode for it to work properly, but
if I installed Diablo II on another drive (i.e D:\Games\Diablo II), it would
work fine without Admin privileges. I'm pretty sure this is due to the C:\
drive generally being a protected drive.
Another thing to note is that I observed that I only needed to run Cactus once in Admin
Mode for this to "stick" and continue working even if I opened Cactus in the future without
Admin rights, although I haven't tested if this persists across reboots, but it possibly may.
I've also noticed that even when there was a problem, some versions would work,
and some wouldn't. Specifically versions 1.00 - 1.06b worked, but 1.07 - 1.13d
didn't.
Lastly, make sure that there are no zombie Diablo II processes running in the background (Task Manager),
that can cause the version switcher to either not switch away or something else. I know that
the new telemetry executables added to 1.14d (i.e SystemSurvey.exe and BlizzardError.exe)
are not needed for the game to actually function, and can lock the process for a bit after you close
the game. The Cactus platforms do not contain these files since I've deleted them, however, if you
are installing from a fresh copy of Diablo II from Battle.net, it will have them.








