Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 24.03.10 15:08 
Ich will bei GTA San Andreas eigene Musik verwenden. Nichts aus dem internet hat bisher geklappt. Die User-Musikdateien (sa-utrax.dat und sa-ufiles.dat) bleiben leer und es gibt nur werbung zu hören
Interresanterweise erstellt er auch welche im Programme/GTA.../data Ordner statt in Dokumene/GTA-userfiles (Auf verdacht GTA als Admin ausgeführt, keine Änderung)

Also wollte ich mal mit ollydbg rein und gucken was los ist, auf welche pfade er zugreift und ggfls das fixen.
die exe ist nicht gepackt und Anti-Debugger zeugs gibts auch nicht.
Also die Stelle im Code gesucht und BP gesetzt. Wenn ich bei GTA jetzt durchsuche wähle, bleibt er dort auch stehen, aber ich kann nicht auf das Debugger-Fenster wechseln. Das einzige was klappt ist der Taskmanager oder auf das debugger fenster zu wechseln (man sieht aber nur schwarzen bildschirm) und F9 (weiter) zu drücken.

Hab Win7 und da auch nix gefunden GTA im Fenstermodus auszuführen (das hatte bei nem andren Spiel geklappt)

Was kann ich machen?

Hab schon versucht, die Dateien manuell zu erstellen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.btSaveClick(Sender: TObject);
var fs,fsn:TFileStream;
    s:AnsiString;
    i,c,uk,l:Integer;
begin
  fs:=TFileStream.Create(ExtractFilePath(ParamStr(0))+'\sa-utrax.dat',fmCreate);
  fsn:=TFileStream.Create(ExtractFilePath(ParamStr(0))+'\sa-ufiles.dat',fmCreate);
  fs.Size:=0;fs.Position:=0;
  fsn.Size:=0;fsn.Position:=0;
  c:=0;uk:=4;
  for i := 0 to mFiles.Lines.Count - 1 do begin
    s:=AnsiString(ExtractShortPathName(mFiles.Lines[i]));
    if(s=''then continue;
    l:=Length(s);
    fsn.Write(s[1],l);
    fs.Write(c,SizeOf(c));
    Inc(c,l);
    fs.Write(l,SizeOf(l));
    fs.Write(uk,SizeOf(uk));
  end;
  fs.Free;
  fsn.Free;
end;

Kein Ergebnis...
Xearox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: Mi 24.03.10 17:45 
Zitat:
"Eigene Dateien\GTA San Andreas User Files\User Tracks"

genau dort kommen diese hin, am leichesten ist es einfach eine Verknüpfung von "Eigene Musik" dort einzufügen,
danach musst du nurnoch im Spiel unter Audio-Setup auf Eigene Musikoptionen und User Tracks durchsuchen klicken.


Quelle:www.cosmiq.de/qa/sho...n-Andreas-einfuegen/
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 24.03.10 20:38 
sagte ich bereits: funktioniert nichts. das hatte ich als erstes versucht. (macht ja auch sinn) aber weder mit verknüpfung nocht mit den dateien selbst, auch nicht in verschiedenen formaten (wav, wma, mp3) geht es.
die dateien, wo die tracks reingeschrieben werden, werden nicht gefüllt.
und es gibt die an 2 orten. darum wollte ich das debuggen. geht aber nicht im vollbildmodus. die normalen dx hooks gehn bei win7 nicht und commandline (-w -win usw) soll auch nicht gehn
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 26.03.10 01:33 
ich habs geschafft...
dxhook: www.thegtaplace.com/...andreas-directx-hook

damit das ding debuggt und gefunden:
es fehlt ein registry eintrag:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Gtasasav"="C:\\Users\\***\\Documents"

Dann nimmt er zum Speichern und auch für die Usertracks das richtige verzeichnis (GTA San Andreas User Files)
Vorher hat er alles in seinen standartordner geschrieben und gelesen: "data" im GTA verzeichnis.
und dann versucht er findfirstfile mit ner relativen pfadangabe. Und das funktioniert bei Win7 anscheinend nicht. Bei einer vollständigen Pfadangabe würde das auch funktionieren. Aber der Registry-Key ist der bessere Weg.
Vorher natürlich Spielstände kopieren, falls im data Ordner vorhanden...
Kann sein, dass das durch nen Mod (GTASAHigh EndMEGAConverationPackv2byRobciante) passiert ist (mir ist aufgefallen, dass nach dem mod der Spielstand nicht mehr angezeigt wurde, obwohl er im richtigen Verzeichnis noch war)

Kann mir noch jemand sagen, was das für ein registrypath ist, bzw wofür der gut ist?

BTW: obiger Code hätte funktioniert.
Das einzige Problem war der Eintrag für "uk", das ist der Dateityp (mp3, wav...) BTW: GTA unterstützt da einige. u.a. auch ogg

Edit: zur Vollständigkeit halber: Es war der Mod. Da ist eine Exe mit dabei die nur den Schlüssel ändert.
und hier die Werte für uk:
ogg: 1
mp3/aac/mov: 4
wav: 2
wma/wmv: 3