Helan | Ein Programm...Eine Revolution (und ne Pre_Beta)
ACHTUNG
Dieser Thread wurde nekromantiert und ist aus dem Jahr 2005.
Also nicht wundern. Der aktuelle Bezug beginnt erst mit Post #14
--Luki
Hallo, ein guter Freund [nein und kein Bettkollege xD"] (Fallen) von mir, hat vor kurzem angefangen ein Programm zu schreiben welches DirectX Anwendungen bei der Grafikausgabe manipuliert (Bloom,... hinzufügt) und wollte mal von euch Meinungen einholen
(in seinen Standardforen hat er leider kaum Resonanz ).
Das ganze funktioniert zZ. nur mit wenigen DirectX9 Anwendungen aber falls jemand noch andere funktionsfähige Programme außer folgenden findet wäre er sehr dankbar. Also zZ funktionieren folgende Programme mit Helan:
- Halo
- FEAR
- Earth 2160
- Joint Operations
- FarCry
- Silent Hunter III
EDIT's: (Spiele die von EUCH getestet wurden ^^)
- Everquest [Blur/HUD]
Sehr viel andere Programme hat er allerdings nicht getestet .
Das Programm an sich sollte hoffentlich selbsterklärend sein (auch wenn ich es auf Englisch ausgerichtet habe, versuche mich da zu verbessern), ansonsten geht man bei der Benutzung wie folgt vor:
Zielanwendung auswählen und wenn nötig das Arbeitsverzeichnis wählen. Danach kann man unter den Effekten ein oder mehrere gewünschte Effekte aktivieren, danach nur noch Start anklicken. Falls kein Programm funktioniert habe ich noch eine Preview Möglichkeit eingebaut, so das ihr sehen könnt wie es wirken könnte bei einem Spiel.
Ich(Skydea+fallen) hoffe(n) auf Kritik und sonstigen Resonanzen, da ja eine kleine Webseite dazu gibt es auch: www.dragonfx.de/helan dort könnt ihr das vorläufige Programm auch runterladen.
Ach ja hier noch ein paar Screeny's :
Hier einige Bilder (rechte Seite jeweils mit Helan):
(Es ist in Planung das auch ältere Spiele wie Gothic 2 mit dem Programm unterstützt werden... dazu müsste man aber eine menge Arbeit leisten...
und dazu braucht unser Fallen nunmal ein bischen Motivation,... also Postet wie Blöd =D und BETET (Dienstleitungen Hetrosexueller natur zählen auch dazu!) unseren Fallen an. Gebt unterstützende Kommentare/Vorschläge testet andere Spiele usw. Helft mit, in dem ihr einfach uns/ihn unterstützt. Vielen Dank)
Was würdest du davon halten, den Source zu veröffentlichen? Immerhin ist das hier ein Programmier- und kein Programme-Forum. Und wenn du das nicht machst, bring wenigstens ein Linux-kompatibles Binary, so kann ich dein Programm nicht beurteilen.
...
Das DX unter Linux nett läuft wissen wir alle aber im Punkt mit dem Code hat er recht
Wobei das Programm nice ist und da du es anscheinent Modular Aufbaust und es erweiterbar ist mit Plugins währe Opensource noch besser da dann nicht nur 1 Person es weiter entwickeln und Pluginsschreibt sondern viele.
edit:
Aber schöne Arbeit respekt
Naja und an die Linux'er hier läuft das teil auch mit WineX (weiss den neuen namen nett sry ^^,)
edit2:
ömm. achtung das teil kann als Cheat Programm ausgenutz würden stichwort CSS Sniper + HUD
Ich bin nur ein Sklave von Fallen nicht vergessen, er jagt mich hier mit der Peitsche dass ich hier auch ja alles mache ;__;
...ach ja und hier das sagt er über deinen Post Dadie:
Zitat vom Fallen:
Eine Dokumentation für die Plugins habe ich je nach Resonanz vor zu erstellen, bisher macht es aber noch recht wenig sinn da nur wenige Funktionen implementiert wurden (DirectX).
Eigene Effekte hinzufügen ist jetzt schon möglich man müsste sich nur die Struktur der bisherigen Effekte anschauen, später wird dazu auch noch eine Dokumentation erscheinen.
Der Meister hat gesprochen, weiter so er liebt es vergöttert zu werden =3.
Ach ja von meiner Seite: Jedes Spiel das klappt reinschreiben und die LOG's der Spiele die nicht klappen in ne Text datei schreiben und hochladen dann noch vielleicht mal hier her verlinken
@dadie:
Also www.dragonfx.de/helan findeste im FAQ ein hinweis zum cheaten ganz unten ; )
Da es hier wie immer Personen gibt die dazu zu fual sind mache ich mal ne kopie:
"Is Helan able to help cheating in multiplayer games?
I will not support cheating in multiplayer games, so Helan will be unable to do this (wallhack,...). Some people will say the HUD effect is like cheating, but think that you can paint an new HUD (like crosshairs) with an pen onto your screen by your self."
@dennis_meckel
Wie du sicherlich weist wenn du den ersten Post gelesen hast ganz weit unten musste nur uns unterstützen indem du spiele testest (relativ neue spiele DX9) damit unser fallen seien Arsch in die lüfte vor freude schwingt und DX8 emulieren kann damit du auch da Bloom und so was verwenden kannst ; ) .
Naja.. ich werde mal weiter nach Posts ausschau halten ^^
Die Bilder sehen an sich schon mal ganz Nett aus. Allerdings sind mir die Farben etwas zu grell eingestellt, so dass sich manche dinge nicht wirklich abheben.
Leider spiele ich keine Spiele, so dass ich weder etwas testen koennte noch es fuer mich ueberaus nuetzlich waere ... trotzdem finde ich die idee ueberaus reizend.
Wenn dein Freund auf eine grosse Fangemeinde aus ist, koennte er ja mal testen, ob sein Programm auch im Hinblick auf den Rm2k und Nachfolger nutzbar ist. Damit waeren ihm wohl die Herzen hunderter Nutzer sicher, die sich schon seit Ewigkeiten aufgepeppte Graphiken wuenschen.
Wenn er darauf bestehen sollte, seinen Code hier nicht zu veroeffentlichen, koennte er sich doch vielleicht wenigstens dazu hinreissen lassen, eine theoretische Abhandlung zu dem Thema zu schreiben ... das wuerde sicherlich dem einen oder andern hier interessante Impulse geben.
Z.B. koennte er erklaehren, wie er genau diese Effekte gemacht hat, am besten nicht DirectX Abhaengig erklaehren. Dann koennten vielleicht auch einige OpenGL Programmierer hier davon profitieren.
Alles in allem scheint es eine durchaus beeindruckende Arbeit zu sein, sollte alles gehalten werden, was versprochen wurde ...
Die Bilder sehen an sich schon mal ganz Nett aus. Allerdings sind mir die Farben etwas zu
grell eingestellt, so dass sich manche dinge nicht wirklich abheben.
Leider spiele ich keine Spiele, so dass ich weder etwas testen koennte noch es fuer mich ueberaus nuetzlich waere
... trotzdem finde ich die idee ueberaus reizend.
Wenn dein Freund auf eine grosse Fangemeinde aus ist, koennte er ja mal testen, ob sein Programm auch im Hinblick
auf den Rm2k und Nachfolger nutzbar ist. Damit waeren ihm wohl die Herzen hunderter Nutzer sicher, die sich schon
seit Ewigkeiten aufgepeppte Graphiken wuenschen.
Wenn er darauf bestehen sollte, seinen Code hier nicht zu veroeffentlichen, koennte er sich doch vielleicht
wenigstens dazu hinreissen lassen, eine theoretische Abhandlung zu dem Thema zu schreiben ... das wuerde sicherlich
dem einen oder andern hier interessante Impulse geben.
Z.B. koennte er erklaehren, wie er genau diese Effekte gemacht hat, am besten nicht DirectX Abhaengig erklaehren.
Dann koennten vielleicht auch einige OpenGL Programmierer hier davon profitieren.
Alles in allem scheint es eine durchaus beeindruckende Arbeit zu sein, sollte alles gehalten werden, was
versprochen wurde ...
...
Hallo,
ich bin der Entwickler von Helan und hoffe es wird mir verziehen das ich einen solch alten Thread wieder zum leben erwecke.
Ich wollte schon lange antworten aber es kam so einiges immer dazwischen (Zeit, Arbeit, Launen, etc.). Gerne bin ich bereit ein wenig zu erklären wie das ganze aktuell funktioniert und auch wie es zur Zeit als dieser Thread erstellt wurde funktionierte (damals wurde zB eine andere Technik verwendet die nicht unbedingt schlechter war sondern etwas spezialisierter.) Aktuell möchte ich nur eine grobe Übersicht vermitteln wie es im aktuellen Stand abläuft (Helan ist weiterhin nur noch Alpha da ich das projekt vor einiger zeit neu aufgesetzt habe.).
Wie funktioniert Helan?
Helan baut auf 3 Phasen auf, 1. "Initialisierungsphase", welche im Grundriss der Initialisierungsphase von Fraps ähnelt, es erstellt einen globalen Windowshook welches dafür sorgt das die DLL in der sich die Hookprozedur befindet in JEDEN laufenden Prozess geladen wird (SetWindowsHookEx). Durch den DLL Einstiegspunkt der dadurch aufgerufen wird kann ich nun zB. alles weitere vorbereiten.
Dadurch kann Phase 2 ermöglicht werden, die "Hijackphase". in dieser Phase werden dringend benötigte Methoden/Funktionen aufgebrochen und eigener Code eingeschleust, zb hijacke ich die Direct3DCreate9 Funktion um später weiter führende Methoden wie EndScene, Reset und Release zu hijacken (dieser Umweg über Direct3DCreate9 ist nötig da ich nur so tiefer in die DirectX Ebene gehen kann, da alles weitere von D3D auf Interfaces aufbaut und an deren Methoden komme ich nur über den VTable heran wofür eine Instanz der Klasse für dieses Interface erstellt werden muss.). Das hijacken dieser Funktionen/Methoden ist recht einfach über "detours" möglich
(http://research.microsoft.com/sn/detours/).
Habe ich nun den Code der alten Methoden durch meine Methoden ersetzt kann es auch schon in die 3. Phase gehen, die "DrawFunnyStuffPhase", hier nutze ich die Möglichkeit aus nach zb EndScene selber zu rendern, zum einen ein Menü mit dem ich Parameter von diversen Effekten in Helan setzen kann oder eben die Postprocessingeffekte wie Bloom/Tonemapping, DepthOfField oder noch neuer SSAO (noch in Entwicklung ). Die Erklärung der diversen PostProcessing Effekte spare ich mir hier nun, da ich euch nun evtl sowieso schon zu tode gelangweilt habe (auf Anfrage kann ich aber auch dazu eine Menge erzählen).
Zu beachten wäre noch das man alle Resourcen die man erstellt hat auch irgendwann frei geben muss, dazu nutze ich zum einen die gehijackte Methode "Release" zum anderen bemerke ich das indem ich einen localen Windowshook laufen lasse der mir auskunft über WindowsMessages wie WM_QUIT gibt.
Unter OpenGL ist dies alles weitaus einfacher da man sich nicht mit den VTables herumschlagen muss und sich einiges an Kopfzerbrechen über Klassenfunctionpointer ersparen kann.
Nich vergessen sollte man auch das man den globalen Hook wieder entfernt, denn nichts ist nerviger als eine Dll die sich nicht löschen lässt weil sie grade benutzt wird (von zig Prozessen zB.) dazu einfach UnhookWindowsHookEx verwenden.
Beispiele und Erklärungen werde ich gerne geben, wenn ich denn nicht schon dafür gebannt werde das ich einen solch alten Thread wiederbelebt habe
Das ist zwar Thread-Nekromantie uebelster Sorte, aber trotzdem freue ich mich ausgesprochen darueber, das du dich doch noch zu wort meldest, da das Thema ungemein Spannend zu sein scheint und noch dazu sehr fortgeschrittene Techniken verwendet, die fuer sehr viele sicher sehr Lehrreich sein koennten.
Allerdings habe ich leider nicht mehr viele Erinnerungen an den Thread von damals und die Bilder funktionieren ja leider auch nicht mehr (URL not found) ...
Vielleicht koenntest du mit aktuellem Material unser aller Interesse neu entfachen und uns in die Geheimnisse des Hijackings einweihen. Fuer viele Anwendungen ist sowas ja so gut wie der heilige Gral des Patchens ^^
Klar, tu ich doch gerne, ich habe aber aktuell nur 2 Videos da Screenshots leider nur ein begrenztes maß an Informationen bermitteln können, daher:
Tiefenunschärfe:
Hier wird gezeigt wie der ZBuffer rekonstruiert wird ohne zugriff auf die Geometrie der gezeichneten Szene selbst zu haben um damt DOF zu simulieren.
Geniales Projekt. Habe schon damals mitgelesen und war sehr gespannt auf die Videos. Ich muss sagen: Genial.
Ich wäre wirklich am Source interessiert. ._.'
Darf ich nebenher fragen in Welcher Sprache es geschrieben wird? Ich habe es entweder überlesen oder nicht entdeckt. >_<
Ich muss sagen, das sieht wirklich beeindruckend aus. Guild Wars schmeißt ja schon von sich aus mit Effekten um sich, aber was du da machst, schlägt das um Längen.
Mich würde wirklich interessieren, wie das im Detail funktioniert. Bevorzugt in Form eines Tutorials oder Artikels auf www.dev-comm.de (Der Seite, zu der das Forum in der Zwischenzeit gehört)
Allgemein fehlen uns hier leider Leute, die sich wirklich gut mit DirectX oder OpenGL auskennen.
Mich als C++ und angehenden OpenGL Programmierer interessiert wirklich, wie du die Grafikroutinen hijackst.
Das ganze ist sicherlich auch auf openGl portierbar. (Von mir sicherlich nicht, dafür habe ich noch nicht ausreichend Kenntnisse, ber ich würde sie mir gerne aneignen. =) )
Ich wäre demnach an den Methoden Interessiert, die die Hooks erstellen und an denen, die die Grafikroutinen unterwandern.
Nett.
Das ist sicher besonders toll, für Leute, welche kleine Filmchen mit Spielen drehen. Durch Helan können sie dann simpel während der Aufnahme den gewünschten Effekt einstellen. Release ist erwünscht.
Mhm beim öffnen kommt bei mir blos "Die Anwendung konnte nicht richtig initialisiert werden (0xc0000135). Klicken Sie auf \"OK\", um die Anwendung zu beenden."
Setzt das irgendwas besonderes vorraus? Getestet auf WinXP Prof. SP2.
Jo, klar, muss aber erst mal suchen (DOS-DSA-Games [meine bevorzugten Spiele] werden ja nicht unterstützt ). Werd dann mal Ergebnisse von mir/Kumpels von mir reinediten.
Also das hört und sieht alles schon sehr gut aus finde ich. Ich habe zwar in letzter Zeit nicht mehr soviel Zeit zum zocken, aber wenn dann probier ich es mal.
Also mach mal weiter so.