All Projects → fearedbliss → Cactus

fearedbliss / Cactus

Licence: apache-2.0
A Modern Diablo II Version Switcher (Contains: Singling)

Labels

Projects that are alternatives of or similar to Cactus

Audio Shader
Process audio stream with webgl shader
Stars: ✭ 67 (-19.28%)
Mutual labels:  glsl
Shadertoy React
6kB "Shadertoy" like react component letting you easily render your fragment shaders in your React web projects, without having to worry about implementing the WebGL part.
Stars: ✭ 74 (-10.84%)
Mutual labels:  glsl
Realtime clouds
Experiment with generating clouds in real time on low end computer
Stars: ✭ 78 (-6.02%)
Mutual labels:  glsl
Riftray
Step into the worlds of Shadertoy with an Oculus Rift.
Stars: ✭ 68 (-18.07%)
Mutual labels:  glsl
Touchdesigner Shaderbuilder
On the fly shader editing tool for TouchDesigner
Stars: ✭ 72 (-13.25%)
Mutual labels:  glsl
Craft
A simple Minecraft clone written in C using modern OpenGL (shaders).
Stars: ✭ 8,957 (+10691.57%)
Mutual labels:  glsl
Rp Video Manager
Tool to quickly update video modes in RetroPie - giving a retro CRT look.
Stars: ✭ 66 (-20.48%)
Mutual labels:  glsl
Noodlesplate
Offline Shader Editor with many cool features
Stars: ✭ 79 (-4.82%)
Mutual labels:  glsl
Godotthings
Some of my snippets and other bits for the Godot game engine.
Stars: ✭ 72 (-13.25%)
Mutual labels:  glsl
Watercolorfilter
Stars: ✭ 77 (-7.23%)
Mutual labels:  glsl
Learn Opengl Golang
Learn OpenGL Tutorials in Go
Stars: ✭ 69 (-16.87%)
Mutual labels:  glsl
Openscenegraph Data
Example models and shader collection for the OpenSceneGraph project
Stars: ✭ 69 (-16.87%)
Mutual labels:  glsl
Mpv Config
MPV configuration files for high quality rendering of traditional live TV and video disc formats
Stars: ✭ 76 (-8.43%)
Mutual labels:  glsl
Facevfx
Mapping real-time visual effect to human face.
Stars: ✭ 68 (-18.07%)
Mutual labels:  glsl
Shady
CLI tool to render GLSL shaders
Stars: ✭ 79 (-4.82%)
Mutual labels:  glsl
Processing Experiments
Various quick sketches
Stars: ✭ 66 (-20.48%)
Mutual labels:  glsl
Mpv Settings
basically my settings for MPV
Stars: ✭ 73 (-12.05%)
Mutual labels:  glsl
Sildurs Shaders.github.io
Sildurs shaders website
Stars: ✭ 84 (+1.2%)
Mutual labels:  glsl
Shader.lab
Advanced shader for three.js
Stars: ✭ 81 (-2.41%)
Mutual labels:  glsl
Godot Particle Dof
Bokeh-esque particle depth of field in Godot 3.0
Stars: ✭ 77 (-7.23%)
Mutual labels:  glsl

Cactus (Discord)

By: Jonathan Vasquez (fearedbliss)
Build: 2021-03-19-1500

Main Menu (Example)

Cactus

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 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, any further modifications are opt-in. For example:

Singling provides only 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. 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, cnc-ddraw and glidewrapper. The choice is yours for how you want to play.

Cactus requires a purchased copy of Diablo II 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. If you wish to find players to play with, or just to hang out and talk about Diablo II Single Player, please join the Cactus Discord by clicking the link at the top of this page!

Cactus Repository

The following opt-in modifications and utilities are available in this repository:

Singling

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.

Renderers

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 1.14, and glidewrapper should be used for any newer versions.

Please read the README-RENDERERS for further explanation on this, for information on how to set them 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.

  • GlideWrapper - A simple glide to opengl wrapper which will allow you to enable Perspective mode.

License

Released under the Apache License 2.0.

Requirements

  • .NET Framework 4.6.1 +

Installation Instructions (Video)

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.

  1. Copy all of the files in the 1. Files folder into your Diablo II root folder.
  2. Run the FIX_MPQS_RUN_AS_ADMIN.bat inside the MpqFixer that you copied, as Administrator.

Adding/Running A Platform

  1. Run Cactus.exe
  2. Click Add
  3. Type in the name of the Platform you want to run. This should match a folder in the Platforms folder. (Example: If you want to run 1.09b, type 1.09b).
  4. Enter the path to the executable you want to launch in your Diablo II root folder. 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 Platforms folder since that will not work and will give you an Object reference not set to an instance of an object error. The executable has to be in the root of the Diablo II folder as described above.
  5. Enter the Flags you want (Example: -ns)
  6. Make sure Expansion is selected (Unless you are playing 1.00-1.06b or didn't purchase Lord of Destruction).
  7. Click Add.
  8. 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.

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:

  1. Copy your entire Diablo II folder to your new machine.
  2. Edit the Entries.json file and change the Path for all of your entries so that it now has the Path on your new machine.
    • The Base Directory for all Paths need to match. The exes can be different.
      • GOOD: D:\Games\Diablo II\Game.exe and D:\Games\Diablo II\Alpaca.exe.
      • BAD: D:\Games\Diablo II\Game.exe and D:\Diablo Immortal For PC\Game.exe.
  3. Open Cactus and edit the Last Ran Platform.
  4. Uncheck the Last Ran box and Click Edit.
  5. Now Launch whatever Platform you want.

Unchecking the 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 Last Ran 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 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 (Succulent) (The files for this Platform would logically be located under Platforms/1.09b (Succulent)), then Cactus will save your characters in the Saves/1.09b (Succulent) 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.

Screenshots

1.00 1.05b 1.07 1.08 1.09b 1.10 1.13d 1.14d

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].