D3D9 Mods kombinieren/Combining D3D9 Mods |
Aschratt
Moderator
  

Dabei seit: 01.04.2006
Nation: Germany City: Karl-Marx-Stadt
 |
|
D3D9 Mods kombinieren/Combining D3D9 Mods |
 |
D3D9 Mods kombinieren
- Combining D3D9-Modifications -
For the english step-by-step tutorial scroll to the bottom of the post!
Vor- und Nachteile
Vorteile des Kombinierens von D3D9 Mods liegen klar auf der Hand. Man kann nicht nur verschiedene Koordinaten-Tools mit dem NOS-Mod oder ähnlichem kombinieren, sondern sogar in Multiplayermods DirectX-Hacks benutzen. Dass dies missbraucht werden kann ist klar, aber wer wirklich in einem Multiplayermod cheaten will, der findet auch so einen Weg.
Technisches
Ein D3D9-Mod, was ist das? Viele denken immer das ist irgend eine DLL, die man irgendwo hinkopiert, und dann geht es, ich will hier für die, die es interessiert noch einmal genau darauf eingehen, wie so ein DirectX-Hook funktioniert. Allerdings will ich das nur vereinfacht erklären, um das Verständniss dafür zu geben, wieso man normalerweiße keine Hooks kombinieren kann.
Wie der name D3D9.dll schon sagt handelt es sich um ein Direct 3D (DirectX 9) Hook. Ein Hook ist etwas, was die funktionen einer Anwendung abändert, oder neue einfügt.
Hier in dem Fall ist es so, dass die d3d9.dll, mit eurem Mod ein Hook ist, der über DirectX läuft, um seine Funktionen in GTA einzuschleusen. Es gibt auch andere Arten von Hooks. Beispiel: SCM-Hooks. Das sind Programme, die den Spielspeicher manipulieren, um Opcodes aufzurufen, die wiederum Spielintern etwas bewirken.
So ein DirectX Hook startet aber nicht automatisch. Damit er sich mit dem Spielstart ins Spiel hackt wird eine so genannte "Proxy-DLL" benötigt. Diese verannlasst, dass vor dem Spielstart an die d3d9.dll, die zum Originalen DirectX gehöhrt und irgendwo im Systemordner zu finden ist die Funktionen des Hooks, also der d3d9.dll, die in eurem San Andreas Ordner zu finden ist, angehängt werden. GTA greift dann auf die "Neue" d3d9.dll zu und nutzt deren Funktionen, also auch unsere gerade eben dazu gekommenen. Schon haben wir also was wir wollten: Einen Hook.
Das Verfahren der "Proxy-DLLs" klappt jedoch nicht bei mehreren Hooks, wieso eigendlich nicht?
Ganz einfach: Die d3d9.dll von DirectX wird nicht direkt verändert. Die Änderungen geschehen virtuell, denn eure Hook-DLL hängt sich selbst nur an die d3d9.dll an. Wenn wir jetzt 2 Hook-DLLs haben, dann hängt sich zuerst die eine an den Speicher der d3d9.dll an, und dannach die andere, jedoch wird dabei der SPeicherbereich der ersten überschrieben, was zur folge hat, dass wir nur einen Hook in der DLL haben.
Umgehen lässt sich das relativ simpel, bis jetzt ist nur noch keiner auf die Idee gekommen. Sacky verdanken wir wieder einmal, dass das ganze Funktioniert. Mit dem Limit Adjuster können wir noch eine weitere Schnittstelle zwischen d3d9.dll und Hook einbauen. Und das ist, was ich hier erkläre. In Wirklichkeit injecten wir nämlich nur die d3d9.dll des Limit Adjusters. Nur dass dieser vorneweg an sich selbst noch andere Hooks anhängen kann. Und da er das von sich aus macht, knnen das ohne Probleme auch mehrere sein. Aber genug geredet. Ich fange einfach mal an zu erklären:
Vorraussetzungen
Ihr solltet...
- ... ein lauffähiges DirectX 9.0c (Am besten August 2006 oder neuer) besitzen
- eine ungepatchte gta_sa.exe besitzen (EU/US 1.0)
- http://aschratt.com/fileview.php?file=1006
Schritt für Schritt (Deutsch)
Als Beispiel werde ich GTA Rumble auf GTA United installieren. GTA Rumble basiert auf einem DirectX Hook, genau wie GTA United. Der Limit Adjuster ist ja auch ein DirectX Hook
1. Installiert den Limit Adjuster.
VORSICHT! Bei GTA:United NUR die d3d9.dll ersetzen, und auf keinen Fall die salimits.ini-Datei überschreiben!
2. Vorbereiten eines Hook-Verzeichnisses
Ihr solltet einen Ordner in eurem San Andreas-Verzeichniss erstellen, der alle d3d9-Mods enthält. Ich habe den Wie auf dem Bild zu sehen "libary" getauft, weil DLLs nichts weiter als Programmbibliotheken sind.

3. Einfügen des Hooks
In diesen Ordner kopiert ihr nun die DLL des Mods. Bei Rumble ist es egal, wo man den Startet hat, darum könnt ihr ihn auch gleich mit hier rein kopieren. Bei SAMP kann man das GTA Verzeichniss auch einstellen, also würde das auch gehen, bei anderen D3D9-Mods ist meist eh nix anderes dazu. Wichtig ist, dass ihr die Funktionelle DLL jetzt umbenennt. Am besten ihr gebt ihr einen Ausschlaggebenden Namen (Wie hier: rumble.dll).

4. Registrieren des Hooks
Als nächstes müssen wir dem Limit Adjuster beibringen, dass er die DLL von Rumble laden soll. Das machen wir, indem wir wieder ins SA Hauptverzeichniss gehen, und dort die saloader.ini mit Nodepad öffnen.

Anschliessend fügen wir den Pfad relativ zu unserem SA Verzeichniss ein. Also in meinem Beispielfall: "libary\rumble.dll"

Speichern, und schliessen.
Fertig, startet das Spiel und ihr werdet sehen, dass es funktioniert! Viel Spaß damit
Wichtig für das Deinstallieren des Hooks ist, dass ihr nicht nur die DLL löscht, sondern genau so den Eintrag in der saloader.ini-Datei.
Wenn ihr den Mod nur deaktivieren wollt, dann öffnet ihr die saloader.ini-Datei, und "kommentiert" den hook, fügt davor ein "#" ein.
In meinem Beispiel würde das so aussehen: "# libary\rumble.dll".
Grüße, Aschratt!
Step-by-Step (English)
First download this: http://aschratt.com/fileview.php?file=1006
As an example I will install GTA Rumble at GTA united. GTA Rumble is based on an DirectX Hook, right as GTA United (The Limit Adjuster is an DirectX Hook too!)
1. Install the Limit Adjuster.
ATTENTION! For GTA United only overwrite the d3d9.dll Aand NEVER the salimits.ini-file!
2. Creating a hook directory
Simply create an folder in the San Andreas main-directory, which should include all hook-dlls later. I called him easily "libary" as you can see on the picture, cause DLL-Files are nothing else.

3. Insert the Hook
Now copy the DLL of the mod to the new directory. For rumble it doesnt matter whre the starter is located, so I put it right in this folder too. For SAMP you can edit the SA Location, so this would also work and other d3d9.dll-mods usually don't have an starter. An important step is renaming the functional DLL. You better call it like the mod (In this example: rumble.dll).

4. Registering Hooks
As the next step we got to teach the Limit Adjuster to load the DLL. We are doing this by opening the saloader.ini-file in the San Andreas main directory.

Next we are going to insert the path relative to the SA directory. For my example it is "libary\rumble.dll"

Save and Close!
Done! Start the game now to see if it works. Enjoy
Important for uninstalling an mod is, that you don't forget to delete the line in the saloader.ini-file you've added after removing the DLL-File from your Hook-Directory.
If you simply want to deactivate the mod, just comment the line where the dll is loaded (using "#").
For my example this would look like this: "# libary\rumble.dll".
Greetings, Aschratt!
__________________
|
|
31.12.2007 13:23 |
|
|
Flip Ent.
Hitman

Dabei seit: 04.02.2007
Nation: Germany Old nickname here: Lil Flip
 |
|
Hey, klingt sehr interessant und ist auch sehr schick beschrieben, werd ich die Tage gleich mal testen
__________________
|
|
31.12.2007 13:51 |
|
|
Jimbo_V
Auftraggeber
  

Dabei seit: 13.10.2007
Nation: Germany City: Altenburschla
 |
|
Wieviele D3D9 Mods kann man da denn maximal zur selben Zeit nutzen? Ich würde nämlich gern 3 Stück nutzen. Geht das dann genauso, also nur, dass ich dann alle 3 eintrage?
__________________
|
|
31.12.2007 15:01 |
|
|
BLITZ
Gemachter Mann
 

Dabei seit: 06.05.2007
City: Romania - Galati
 |
|
|
31.12.2007 15:04 |
|
|
Aschratt
Moderator
  

Dabei seit: 01.04.2006
Nation: Germany City: Karl-Marx-Stadt
Themenstarter
 |
|
| Zitat: |
Original von Jimbo_V
Wieviele D3D9 Mods kann man da denn maximal zur selben Zeit nutzen? Ich würde nämlich gern 3 Stück nutzen. Geht das dann genauso, also nur, dass ich dann alle 3 eintrage? |
Eigendlich so viele wie du willst!
@BLITZ: Normally it should work with more than 2 DLLs... But I think the gostown DLL wont work with normal San Andreas!
//EDIT: On you screenshots I cant Find the d3d9.dll of the limit adjuster.
If you want this method to work on normal SA, you have to install ALL LIMIT ADJUSTER FILES!
//EDIT2: Where the limit adjuster d3d9.dll must be left as it is in the SA Root Folder, and not like the others in the libary folder
__________________
|
|
31.12.2007 15:11 |
|
|
BLITZ
Gemachter Mann
 

Dabei seit: 06.05.2007
City: Romania - Galati
 |
|
I have tried everything, but is not working, man now that your the single around here that knows this tipe of things, can you find I way how to work those 2 .dll in one time ?!
__________________
|
|
31.12.2007 15:59 |
|
|
Aschratt
Moderator
  

Dabei seit: 01.04.2006
Nation: Germany City: Karl-Marx-Stadt
Themenstarter
 |
|
Have you tried each one running?
__________________
|
|
31.12.2007 16:24 |
|
|
Aschratt
Moderator
  

Dabei seit: 01.04.2006
Nation: Germany City: Karl-Marx-Stadt
Themenstarter
 |
|
You cannot open DLLs!
Well... if nothing happens then the limit adjuster is not installed correctly... you have to copy every file of the limit adjuster to the SA Root folder. I am sure this is your mistake, cause as I said I can't find the Limit Adjusters d3d9.dll on your screenshot!
__________________
|
|
31.12.2007 17:15 |
|
|
BLITZ
Gemachter Mann
 

Dabei seit: 06.05.2007
City: Romania - Galati
 |
|
Hmm...ok it's working but.
- I have to start the new game again, because is not working with the loading save games,
- the d3d9.dll from Ghostwon is not working with this, so his working only in the main SA folder, and I can not put the d3d9.dll because is that d3d9.dll from Limit Adjust.
- If you manage to fix the bug with new game, I think it will be a very good Tuturial of .dll and thanks for everything
__________________
|
|
31.12.2007 17:46 |
|
|
Aschratt
Moderator
  

Dabei seit: 01.04.2006
Nation: Germany City: Karl-Marx-Stadt
Themenstarter
 |
|
Update mal dein DirectX! Vieleicht nutzen die einen spezielles SDK (Das letzte kam August 2006 glaube ich). Es kann sein, dass neuere Spiele das nutzen, und dann nicht mit den alten laufen. Ansonsten Installier DirectX mal komplett neu. Wenn das nicht hilft, dann liegt es wahrscheinlich an Windows.
__________________
|
|
18.01.2008 19:39 |
|
|
-Anti-
Abräumer

Dabei seit: 02.02.2007
Nation: Germany City: Hannover
 |
|
Also: Ich hab bis jetzt nur die Nitro, Motor/Licht an/aus.dll über diese Methode benutzt. Jezt wollte ich jedoch auch noch die dll von der ENB Mod und von gostown benutzen. Diese funktionieren jedoch weder alle drei zusammen noch einzeln. Die einzige dll die funktioniert ist die nitro.dll
Kann man da was machen?
I have until now only used the Nitro, motor/light.dll. Now, I also wanted to use the dll from the ENB and gostown Mod. Though these mods dont work all three togehter and neiter induvidually. The only dll that works is the nitro.dll.
What to do about it?
|
|
21.03.2008 16:19 |
|
|
Aschratt
Moderator
  

Dabei seit: 01.04.2006
Nation: Germany City: Karl-Marx-Stadt
Themenstarter
 |
|
Das Problem wurde schon oben beschrieben - Die Gostown DLLs gehen nicht mit dieser Methode... wieso weiß ich allerdings auch nicht!
__________________
|
|
21.03.2008 16:32 |
|
|
-Anti-
Abräumer

Dabei seit: 02.02.2007
Nation: Germany City: Hannover
 |
|
Das mit der Gostown.dll hab ich ja schon gelesen, aber die von ENB geht ja auch nicht, also muss es ja an irgendwas anderem liegen (oder es verhält sich bei dieser zufällig genau wie bei der gostown.dll...). (Andere dlls zum testen hatte ich nicht.)
|
|
21.03.2008 19:23 |
|
|
Aschratt
Moderator
  

Dabei seit: 01.04.2006
Nation: Germany City: Karl-Marx-Stadt
Themenstarter
 |
|
Sacky hat meines wissens mal gesagt, dass die DLL Injection direkt aus der dllmain() läuft, was wohl ein großes no go sei, jedenfalls ist die irgendwie buggy... also kann es schon sein, dass mit der aktuellen Limit Adjuster Version nicht alle Hooks laufen!
__________________
|
|
22.03.2008 10:26 |
|
|
Lt. Katana
Abräumer

Dabei seit: 24.08.2007
Nation: Austria City: Linz Old nickname here: Wolfi
 |
|
@Aschratt Wieder mal ein super Tut von dir leicht verständlich und gut beschrieben mit Text und Bild.
Spätestens beim zweitenmal ansehen von deinem Tut hab ich gemerkt das ich ausversehen die Sourcefiles heruntergezogen habe
LG Wolfi
__________________
|
|
26.07.2008 20:20 |
|
|
Aschratt
Moderator
  

Dabei seit: 01.04.2006
Nation: Germany City: Karl-Marx-Stadt
Themenstarter
 |
|
| Zitat: |
Original von G-VIPER
Sorry, link didn't workin'!
Give another link or Limit Adjuster- need it very much |
GTAsync is down, but I got the permission of sacky to offer the download on my homepage. Actually it is offline, too, but it should be back in a few hours.
Greetz
__________________
|
|
13.08.2008 15:37 |
|
|
G-VIPER
Geldeintreiber
 

Dabei seit: 12.07.2008
Nation: Russia City: Moscow
 |
|
Thx
__________________ Face+Table=Shutdown

Chiliad Challenge

Militsiya Skin for Crown Vic is avalible in my topic(till piohh uploads it)
|
|
17.08.2008 06:52 |
|
|
Pasa91
Auftraggeber
  
Dabei seit: 31.03.2008
Nation: Germany
 |
|
nabend ich weiß ist schon alt trotzdem aktuell.
ich versuche ENB mit dem Limitadjuster zu kombinieren.
das texturlade problem ist weg, dafür hab ich kein ENB zur verfügung und genauseo umgekehrt.
ich habe die d3d9.dll vom ENB in "ENB" umbenannt und dies auch im saloader eingetragen.
ich habe sogar die komplette enb in mein library ordner kopiert und die d3d9.dll so belassen und den Path dementstrechend angepasst.
was mach ich falsch?
__________________ AMD Phenom II X4 940 @3GHz
Gainward HD4870 @1GB GDDR-5
Zitat aus Need for Speed Most Wanted:
| Zitat: |
| nehmen sie die hände hoch und fahren sie rechts ran |
|
|
09.03.2009 15:25 |
|
|
ATP
Abräumer
Dabei seit: 07.02.2008
Nation: Germany
 |
|
Du nutzt den LimitAdjuster nur zum Hochsetzen des Stream Memorys oder? Dann kas den LA doch weg und nehm Stattdessen den StreamFix.
*Räusper* ^^
__________________
|
|
09.03.2009 16:53 |
|
|
Pasa91
Auftraggeber
  
Dabei seit: 31.03.2008
Nation: Germany
 |
|
ok danke aber was habe ich denn falsch gemacht mit dem Post?
//Aschratt: Du nicht, ATP
__________________ AMD Phenom II X4 940 @3GHz
Gainward HD4870 @1GB GDDR-5
Zitat aus Need for Speed Most Wanted:
| Zitat: |
| nehmen sie die hände hoch und fahren sie rechts ran |
|
|
09.03.2009 17:40 |
|
|
|
|
|
 |
Impressum
|