ThirteenAG/XboxRainDroplets

Enhanced implementation of xbox rain droplets from SkyGFX for other games.

★ 135Forks 10C++GitHub ↗Compare
asi

README

GitHub Workflow Status AppVeyor

Xbox Rain Droplets

Xbox Rain Droplets

Enhanced implementation of the Xbox rain droplets from SkyGFX for other games.

Discord · Telegram · YouTube · X


Support the project



Supported games

Every game has a release of its own, and its notes hold the installation steps of that game.

Grand Theft Auto

Game Screenshot
Grand Theft Auto III Grand Theft Auto III
Grand Theft Auto: Vice City Grand Theft Auto Vice City
Grand Theft Auto: San Andreas Grand Theft Auto San Andreas
Grand Theft Auto IV: The Complete Edition Grand Theft Auto IV
Grand Theft Auto III - The Definitive Edition GTA III The Definitive Edition
Grand Theft Auto: Vice City - The Definitive Edition GTA Vice City The Definitive Edition
Grand Theft Auto: San Andreas - The Definitive Edition GTA San Andreas The Definitive Edition

Emulators

Game Screenshot
PPSSPP - GTA LCS / VCS, Splinter Cell Essentials PPSSPP
PCSX2F - GTA LCS / VCS, True Crime NYC PCSX2F

Splinter Cell

Game Screenshot
Splinter Cell Splinter Cell
Splinter Cell: Pandora Tomorrow Splinter Cell: Pandora Tomorrow
Splinter Cell: Chaos Theory Splinter Cell: Chaos Theory
Splinter Cell: Double Agent Splinter Cell: Double Agent
Splinter Cell: Blacklist Splinter Cell: Blacklist

Need for Speed

Game Screenshot
Need for Speed: Underground 2 Need for Speed: Underground 2
Need for Speed: Most Wanted Need for Speed: Most Wanted
Need for Speed: Carbon Need for Speed: Carbon

Max Payne

Game Screenshot
Max Payne 2: The Fall of Max Payne Max Payne 2: The Fall of Max Payne
Max Payne 3 Max Payne 3

Other games

Game Screenshot
Mafia: The City of Lost Heaven Mafia: The City of Lost Heaven
Manhunt Manhunt
Scarface: The World Is Yours Scarface: The World Is Yours
Driv3r Driv3r
Driver: Parallel Lines Driver: Parallel Lines
True Crime: New York City True Crime: New York City
King Kong - Gamers Edition King Kong - Gamers Edition
Saints Row 2 Saints Row 2

Videos

GTA IV PPSSPP PCSX2F Max Payne 3 Mafia Scarface Need for Speed: Carbon Need for Speed: Most Wanted Need for Speed: Underground 2 Driver: Parallel Lines Driv3r Manhunt Max Payne 2


Installation

Every game has its own release, and its notes hold the folder the plugin goes to.

  1. Download the release of your game from the Releases page and unpack it.
  2. Install the ASI Loader, or the fix the release asks for, which includes it.
  3. Put the .asi and .ini files into the scripts folder of the game (plugins for GTA IV and Max Payne 3, the root folder of the emulator for PPSSPP and PCSX2F).
  4. Launch the game and wait for it to rain.

Direct3D 8 games automatically use the Direct3D 9 droplet renderer when a wrapper such as d3d8to9 exposes its underlying device and resources. Otherwise they keep the native Direct3D 8 renderer. No INI setting is needed.

Configuration

The ini of a plugin is read at startup and again whenever the file is written to, so a value can be changed in the middle of a game.

Building

Run premake5.bat to generate the Visual Studio solutions in build, then build them.

All shader sources and generated assets live in source/shaders. Every project runs tools/BuildShaders.ps1, which verifies the outputs and rebuilds only changed shaders using source/shaders/manifest.json. Direct3D bytecode, Vulkan SPIR-V, and embedded OpenGL/Thin3D sources have the same build entry point. See the shader README for compiler requirements and regeneration commands.

Native Direct3D and Vulkan renderers use precompiled shaders. OpenGL and the emulator's Thin3D API compile their embedded sources during resource preparation. All renderers prepare resources during effect initialization, including dry frames, and repeat preparation after resets. Driver initialization can still take time; precompiled bytecode does not eliminate pipeline creation costs.

Renderer tests accept --headless --frames 45 --startup-check --lens-light. This checks preparation before any drops appear and after a reset, then verifies the first visible drops. Use --expect-d3d8 or --expect-d3d9 with the D3D8 test to check native or d3d8to9 rendering.

To deploy to your game automatically after each build, create a .env file in the repository root pointing the key of each game at its folder, then run premake5.bat again, for example:

GTA_SAN_ANDREAS_DIR=C:\Program Files (x86)\Rockstar Games\GTA San Andreas

The keys are the ones of the games above (GTAIII_DIR, GRAND_THEFT_AUTO_VICE_CITY_DIR, GTA_SAN_ANDREAS_DIR, GTA_SAN_ANDREAS_DEFINITIVE_EDITION_DIR, SAINTS_ROW_2_DIR and so on, see premake5.lua). The build copies the built .asi into the folder of that game and debugging starts the game from there. The .env file is ignored by git, only a plugin that is already installed is replaced, and a game without a key is not deployed at all.

Contributors

ThirteenAGdependabot[bot]xan1242gennariarmandoClippy95NeonKamuro

Issues