DLL-Hacking - Bräuchte mal Hilfe...

S

Seijuro

Hallo zusammen,
da ich ein Anhänger des MOD-Musikformats bin, möchte ich für das Programm "RPG Maker 2000", welches nur MIDI unterstützt, einen MOD-Patch schreiben. Jemand vor mir, namens Ineluki, hat es bereits hinbekommen, einen MP3-Patch zu machen, der über Umwege doch recht gut funktioniert (Siehe Anleitung:
3. im Soundverzeichnis eine textdatei schreiben in der form
irgendeinname.link.wav
inhalt: relativer pfad zu der mp3 datei mit dateinamen
z.B. ..\MP3\test.mp3 falls die mp3 im spielordner im verzeichnis mp3 steht
)

Angesichts der Tatsache, dass man - so glaube ich - für das Abspielen von MOD(Oder verwandten Typen wie XM, S3M etc) eine extra Library in den Source Code einbinden muss (Das Programm ist jedoch nicht Open Source, aber Freeware), denke ich dennoch, dass sowas technisch eigentlich möglich sein müsste.
Ich habe nicht sehr viel Erfahrung in Sachen Programmierung(Kann nur recht oberflächlich Delphi, aber wirklich mit mehr "inneren" Sachen habe ich mich nie beschäftigt), weiss daher auch nicht so recht, in welches Forum das gehört, habe es halt mal hier geschrieben.

Weiterhin habe ich mir mit dem Resource Hacker(Welcher nebst anderen Resource-Hacking + Hex Editoren die einzige Möglichkeit ist, etwas zu verändern) die "Harmony.dll", wahrscheinlich die essenziellste Datei für das Programm, mit der veränderten Harmony.dll von Inelukis Mp3-Patch verglichen, und ein paar Notizen gemacht - die wahrscheinlich aber sowieso nicht von grossem Nutzen sein werden.

Die folgende Änderung halte ich für eine der essenziellsten, damit der MP3-Patch funktioniert, habe allerdings keine Ahnung,
nach welchem Prinzip ich die Originaldatei für einen MOD-Patch ändern kann.

ORIGINAL HARMONY: (RCDATA, PACKAGEINFO)
000737FC 6E 65 74 00 1C EF 55 72 6C 4D 6F 6E 00 00 68 41 net••ïUrlMon••hA
0007380C 75 64 69 6F 48 61 72 6D 6F 6E 79 00 00 9F 43 44 udioHarmony••ŸCD
0007381C 50 6C 61 79 65 72 00 00 61 57 61 76 65 50 6C 61 Player••aWavePla
0007382C 79 65 72 00 00 86 44 69 72 65 63 74 53 6F 75 6E yer••†DirectSoun
0007383C 64 00 00 4A 4D 49 44 49 50 4C 41 59 00 00 00 d••JMIDIPLAY•••

INELUKIS HARMONY: (RCDATA, PACKAGEINFO)
00055A50 65 67 53 74 72 00 1C 3F 57 69 6E 49 6E 65 74 00 egStr••?WinInet•
00055A60 1C EF 55 72 6C 4D 6F 6E 00 00 7E 64 75 6D 6D 79 •ïUrlMon••~dummy
00055A70 70 6C 61 79 65 72 00 00 3B 4D 50 6C 61 79 65 72 player••;MPlayer
00055A80 00 00 A0 44 69 61 6C 6F 67 73 00 •• Dialogs•

Weiterhin sind alle Werte völlig unterschiedlich voneinander, nicht nur in diesen Passagen.

Desweiteren sind unter "RCData" folgende Unterschiede in der Struktur von RCDATA zu finden:

ORIGINAL HARMONY:
RCDATA
-DVCLAL
-HMIDI16
-PACKAGEINFO

INELUKIS HARMONY:
RCDATA
-DVCLAL
-PACKAGEINFO
-TFORM1

Bemerkenswert ist das Fehlen des Ordners HMIDI16; stattdessen gibt es nach PACKAGEINFO den Ordner "TFORM1", dessen
Datei eine Form erstellt, hier ist ebenfalls folgende Passage auffällig:
object Player: TMediaPlayer
Left = 48
Top = 40
Width = 253
Height = 30
TabOrder = 0
end
end

Eine weitere Änderung, deren Sinn ich mir allerdings nicht erschliessen kann, ist die Zeile
0004BEC4 A2 8C DF 98 7B 3C 3A 79 26 71 3F 09 0F 2A 25 ¢Œß˜{<:y&q?••*%
in der Original Harmony/DVCLAL,0, anders sieht sie jedoch in Inelukis Werk aus:
000558D0 26 3D 4F 38 C2 82 37 B8 F3 24 42 03 17 9B 3A &=O8‚7¸ó$B••›:

Der angesprochene Teil "HMIDI16" fehlt, wie bereits oben erläutert, in der MP3-Harmony, völlig - Sein Inhalt allerdings ist
im Original sehr lang.

Mein Hauptanliegen müsste also klar sein -
1. Gibt es einen Weg, diese Unterstützung über reine DLL-Modifikation da reinzukriegen, und wenn ja,
2. Habe ich leider keine Ahnung, wie ich anfangen sollte, oder ob es überhaupt Sinn macht, dass ich mich darum bemühe, da ich wie gesagt nicht ALLZUVIEL Ahnung von derart internen Sachen habe. Da der Autor des MP3 Patches im Moment leider nicht erreichbar ist, habe ich auch keine Möglichkeit, ihn um Rat zu bitten, also werde ich es einmal hier probieren.
Hätte, sofern es geht, also jemand eine Idee, wie ich das realisieren könnte?

Grosses Danke im Voraus,
Seijuro
 
ich bin jener Ineluki, welcher den mp3 patch geschrieben hat ...

setz dich doch mal wenn du moechtest mit mir unter

indikator@hotmail.com (email/msn) oder icq 106017319 in verbindung

sicher kann ich vieles was dich verwunderte aufklaehren ^^

Gruss Ineluki
 
Zurück