Actualiser README.md
This commit is contained in:
148
README.md
148
README.md
@@ -1,83 +1,93 @@
|
|||||||
# Ultra Wide ASI Core injection for Reshade
|
# ReshadePluginsCore
|
||||||
<p align="middle">
|
|
||||||
<img src="https://img.shields.io/badge/MIT-green?style=for-the-badge" alt="Buy Me A Coffee">
|
|
||||||
<a href="https://buymeacoffee.com/k4sh44">
|
|
||||||
<img src="https://img.shields.io/badge/Buy_Me_A_Coffee-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black" alt="Buy Me A Coffee">
|
|
||||||
</a>
|
|
||||||
<img src="https://img.shields.io/badge/C%2B%2B-00599C?style=for-the-badge&logo=c%2B%2B&logoColor=white" alt="Made with C++">
|
|
||||||
<a href="https://visualstudio.microsoft.com/">
|
|
||||||
<img src="https://img.shields.io/badge/Visual_Studio-5C2D91?style=for-the-badge&logo=visual%20studio&logoColor=white">
|
|
||||||
</a>
|
|
||||||
<a href="https://www.docker.com//">
|
|
||||||
<img src="https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge&logo=docker&logoColor=white">
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
**Framework modulaire C++ pour injection de comportements et fixes graphiques dans les jeux vidéo**
|
||||||
|
**Auteur :** Emmanuel AYME
|
||||||
|
|
||||||
This repository is dedicated on Ultra Wide asi plugins core for Reshade.
|
---
|
||||||
It's dedicated on injecting assembly code to modify game's behaviour (FOV, aspect ratio and more in games).
|
|
||||||
They're intended to be used with my other Reshade project addons.
|
|
||||||
|
|
||||||
## Building
|
## 🎯 Présentation
|
||||||
Download this repository. Open the .sln provided. Build the solution for release.
|
|
||||||
The solution has an x64 folder with Release ini it. .asi files shoud be found there.
|
|
||||||
|
|
||||||
An extra dll is necessary to be used with my injection dll plugins.
|
**ReshadePluginsCore** est un framework de plugins C++ permettant d’injecter et de contrôler des comportements dans les jeux vidéo, avec une architecture modulable pour différents moteurs (Unreal Engine 4/5, Unity).
|
||||||
Its name is zydis.dll (assembler/disassembler).
|
|
||||||
The zydis project can easily be found on github.
|
|
||||||
You have to build it first in order for my plugins to work.
|
|
||||||
You will also need zydis core project in addition to zydis.
|
|
||||||
|
|
||||||
## Installation
|
Il offre notamment :
|
||||||
Once zydis and my project is built, you can drop zydis.dll next to game's executable. Don't forget to drop also the .dll file corresponding to your game.
|
|
||||||
|
|
||||||
Prior to this, you would have built the addon project and dropped the respective .addon file into the game's executable folder.
|
- **Fixes graphiques** : FOV (champde vision), ultra wide, DOF (profondeur de champ), aberrations chromatiques, brouillard, vignettage ...
|
||||||
|
- **Cheats / outils développeur** : console réactivée, time dilation, stealth mode...
|
||||||
|
- **Instrumentation runtime** : hooks sécurisés, AOB scans, offset resolution
|
||||||
|
- **Séparation Core / UI** pour des interfaces modulables via Reshade ou autres overlay
|
||||||
|
|
||||||
Having done all of this, you can run the game and hit "Home" key when Reshade has successfully hooked game's API (DX10/11/12/Vulkan).
|
Le framework est conçu pour être **générique**, **réutilisable** et **performant**, permettant l’intégration rapide de nouveaux jeux ou moteurs.
|
||||||
Check the boxes, adjust sliders and see the effects in real time in game.
|
|
||||||
|
|
||||||
## Interesting projects
|
---
|
||||||
Uncharted LOTC for its cinematics fix.
|
|
||||||
Wuchang Fallen Feathers for its approach on fixes detours (using VEH debugging).
|
|
||||||
Cronos: The New Dawn for its implement of Unreal Engine SDK (see code below).
|
|
||||||
```
|
|
||||||
// Devs console re-creation
|
|
||||||
auto start = std::chrono::high_resolution_clock::now(); // Measure the time to renable console
|
|
||||||
UEngine* Engine = nullptr;
|
|
||||||
|
|
||||||
for (int i = 0; i < 100; ++i) { // gives 10 seconds to find UE Engine
|
## ⚙️ Architecture
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
|
||||||
Engine = UEngine::GetEngine();
|
|
||||||
|
|
||||||
if (Engine && Engine->ConsoleClass && Engine->GameViewport)
|
### 1. Core DLL
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Engine || !Engine->ConsoleClass || !Engine->GameViewport) {
|
Le cœur du projet gère :
|
||||||
logger->error("Console could not be found in engine.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
logger->info("Console found in engine");
|
|
||||||
|
|
||||||
/* Creates a new UObject of class-type specified by Engine->ConsoleClass */
|
- **Chargement dynamique des modules**
|
||||||
UObject* NewObject = UGameplayStatics::SpawnObject(Engine->ConsoleClass, Engine->GameViewport);
|
- **Hooks sécurisés (SafetyHookMid)** pour l’injection de code au runtime
|
||||||
if (NewObject)
|
- **AOB scans et calculs d'offsets** pour identifier les structures internes du jeu
|
||||||
{
|
- **Memory patching** pour ajuster le comportement des moteurs graphiques
|
||||||
logger->info("Successfully spawned console object");
|
- **API C++ exportée** (`SetFixEnabled`, `SetFixesEnabled`, `SetValues`, `GetGameInfos`) pour l’interaction avec l’UI
|
||||||
// Set the console viewport so that it will be displayed
|
|
||||||
Engine->GameViewport->ViewportConsole = static_cast<UConsole*>(NewObject);
|
|
||||||
auto end = std::chrono::high_resolution_clock::now();
|
|
||||||
std::chrono::duration<double> elapsed = end - start;
|
|
||||||
|
|
||||||
logger->info("Console fully reactivated in {:.3f}s and bound to key Tilde", elapsed.count());
|
### 2. Modules principaux
|
||||||
logger->info("------------------ User inputs ------------------");
|
|
||||||
g_Console_Enabled = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
logger->error("Could not spawn console object");
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Credits
|
| Module | Description |
|
||||||
This project use the following other projects.
|
|-------------------------|-------------|
|
||||||
[SafetyHook](https://github.com/cursey/safetyhook)
|
| `FOVFixEnabled` | Déverrouille et ajuste le FOV des jeux UE / Unity |
|
||||||
|
| `UltraWideFixEnabled` | Active la prise en charge des écrans ultrawide |
|
||||||
|
| `DOFFixEnabled` | Désactive ou ajuste la profondeur de champ |
|
||||||
|
| `CAFixEnabled` | Désactive l’aberration chromatique |
|
||||||
|
| `VignettingFixEnabled` | Supprime ou ajuste le vignettage |
|
||||||
|
| `FogFixEnabled` | Ajuste ou supprime le brouillard |
|
||||||
|
| `EnableConsole` | Réactive la console développeur dans UE |
|
||||||
|
| `EnableCheats` | Applique les cheats `TimeDilation` et `Stealth` |
|
||||||
|
| `ProcessEvent` | Hook central pour récupérer et manipuler les événements du moteur |
|
||||||
|
| `Logger` | Suivi en temps réel des modifications et actions appliquées |
|
||||||
|
| `Autres fonctions` | Besoins spéciques pour fix ou autres |
|
||||||
|
|
||||||
|
### 3. Conception
|
||||||
|
|
||||||
|
- **Thread-safe** : initialisations atomiques, hooks et variables partagées sécurisées
|
||||||
|
- **Modulaire** : chaque fix peut être activé/désactivé indépendamment
|
||||||
|
- **Extensible** : support UE4/UE5, Unity, et potentiellement d’autres moteurs via l’API
|
||||||
|
- **Build simplifié** : solution Visual Studio avec `.sln` et dossier `Release/x64` prêt à l’emploi
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Fonctionnalités clés
|
||||||
|
|
||||||
|
- **Injection runtime** : modification directe des comportements de jeu sans source modifiable
|
||||||
|
- **Hooks dynamiques** : SafetyHookMid pour attacher du code de manière non intrusive
|
||||||
|
- **Offset & pattern scanning** : AOB scans batch pour trouver automatiquement les adresses critiques
|
||||||
|
- **Configuration persistante** : sauvegarde et chargement via fichier `.ini`
|
||||||
|
- **Instrumentation multi-moteurs** : abstraction pour UE / Unity
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ Build & Dépendances
|
||||||
|
|
||||||
|
1. Cloner le repo `ReshadePluginsCore`
|
||||||
|
2. Ouvrir la solution `.sln` avec Visual Studio 2022+
|
||||||
|
3. Compiler en **Release/x64**
|
||||||
|
4. Déposer les `.dll` générées à côté des exécutables du jeu ciblé
|
||||||
|
5. Ajouter toute dépendance externe (ex. `zydis.dll` pour l’injection/assembly)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📈 Points forts
|
||||||
|
|
||||||
|
- Maîtrise avancée du **C++ moderne**, y compris hooks et instrumentation mémoire
|
||||||
|
- Capacité à concevoir des **frameworks modulaires** et réutilisables
|
||||||
|
- Expérience pratique sur **Unreal Engine 4/5** et **Unity**
|
||||||
|
- Gestion de projet **multi-moteurs et multi-jeux**
|
||||||
|
- Compétences en **reverse engineering et debugging runtime**
|
||||||
|
- Documentation claire et orientée utilisateur pour intégration facile
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Liens et contact
|
||||||
|
|
||||||
|
- Buy Me A Coffee : [https://buymeacoffee.com/k4sh44](https://buymeacoffee.com/k4sh44)
|
||||||
Reference in New Issue
Block a user