Adventure: Syberia 2

Hier können wir über andere Adventurespiele und ähnliches diskutieren.
Benutzeravatar
Kai-Uwe
Forscher
Beiträge: 1301
Registriert: 06.02.2004, 21:23
Geschlecht: männlich
KI-Nummer: 191833
Wohnort: Wolfen / Regensburg
Alter: 60

Beitrag von Kai-Uwe » 19.11.2004, 19:46

Letzter Beitrag der vorhergehenden Seite:

Alaska??? Wärmer???!!!??
"Es bleibt schwierig!" - - http://www.der-postillon.com/
Benutzeravatar
MVetsch
Forscher
Beiträge: 1442
Registriert: 08.02.2004, 15:00
Alter: 42

Beitrag von MVetsch » 19.11.2004, 22:53

Das bezog sich auf eine andere Stelle in Katers Text.. das nächste Mal tu ich wieder quoten, dann ist das offensichtlicher :roll:
Benutzeravatar
Coren-7
Verwaltung
Beiträge: 3485
Registriert: 05.02.2004, 18:47
Geschlecht: männlich
KI-Nummer: 155736
Wohnort: Berlin
Alter: 40
Kontaktdaten:

Beitrag von Coren-7 » 29.03.2005, 15:59

Für alle, die Syberia noch nicht haben aber sich es zulegen wollen, für die hab ich ein besonderes Angebot: Syberia 1 & 2 - Deluxe für nur 28€ :)
Ich sehe euch stehen wie Windhunde an den Leinen,
nach dem Start drängend. Das Spiel ist im Gange.
SHAKESPEARE
Benutzeravatar
KlyX
Forscher
Beiträge: 4445
Registriert: 05.02.2004, 17:37
Wohnort: Langenthal, Schweiz
Alter: 40
Kontaktdaten:

Soundtrack zu Syberia II

Beitrag von KlyX » 27.05.2005, 18:50

Hallo Leute

Syberia II ist ja schon ein 04er Spiel, aber ich spiels erst jetzt. Und schon nach einigen Stunden spielen hab ich mich in den Soundtrack verliebt, den ich mir gerne durchgehend anhören möchte. Nun ist dieser aber nicht wie bei Syberia I direkt als Musikdatei vorliegend, sondern scheinbar in die SYB-Files verpackt...

Kann mir wer sagen, obs eine Möglichkeit gibt, an dieser heranzukommen?
Gruss
KlyX

Wirf einen Blick in meinen Blog - und kommetiere :-)
Chris' Weblog
abacado.com - Total neu
Benutzeravatar
TheSearcher
Forscher
Beiträge: 753
Registriert: 10.10.2004, 13:21
Wohnort: Magdeburg
Alter: 39

Beitrag von TheSearcher » 28.05.2005, 10:34

Ich habe auch schon mal nach einem Syberia II-Soundtrack gesucht. Im Forum sagten sie ganz offiziell, dass das Rippen der Dateien aus den syb-Dateien illegal ist. Genauso wenig wollen sie einen Soundtrack veröffentlichen (ich hätte ihn gekauft).

Ein Zufall: vor kurzer Zeit überlegte ich auch das Format der *.syb-Dateien zu knacken (schließlich habe ich es auch bei den *.big Dateien von Atlantis hinbekommen, siehe meine Homepage).

Auf deine Anregung hin habe ich Syberia II eben installiert und mir im Hex-Edtor das Dateiformat der *.syb-Dateien angeschaut: ist ganz einfach aufgebaut. Ich könnte spontan einen Extractor programmieren.

Die schlechte Nachricht:
ich habe nebenbei noch ein Mathematik-Studium zu bewältigen. Ich schreibe garantiert das Programm. Kannst du damit leben, wenn du ca. 2 Wochen warten musst, bis ich fertig bin?

P. S.: Den Aufbau könnte ich dir aber schon jetzt erläutern, falls du es wirklich von Hand machen willst (was aber ziemlich viel Arbeit sein dürfte) ;)
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
KlyX
Forscher
Beiträge: 4445
Registriert: 05.02.2004, 17:37
Wohnort: Langenthal, Schweiz
Alter: 40
Kontaktdaten:

Beitrag von KlyX » 28.05.2005, 17:38

Jap. kann ich problemlos überleben ;)
Und: Nein, ich mache das nicht von hand *ggg*

Danke schon mal
KlyX

Wirf einen Blick in meinen Blog - und kommetiere :-)
Chris' Weblog
abacado.com - Total neu
Benutzeravatar
Marck
Forscher
Beiträge: 857
Registriert: 09.02.2004, 21:04
KI-Nummer: 48956
Kontaktdaten:

Beitrag von Marck » 28.05.2005, 23:33

Ich wäre auch an dem Soundtrack bzw. an einer Extractor-Software interessiert.

Mich würde auch interessieren mit welcher Begründung "die im Forum" das Rippen als illegal bezeichnen. Ich habe das Gefühl, diese ganze Urheberrechtsproblematik nimmt absurde Züge an. (So etwa nach dem Motto: Wenn du mit dem Toaster, den du bei mir gekauft hast, geschnittenes Kümmelbrot statt Toastbrot toastest, dann verklage ich dich.) Hast du zufällig einen Link zum entsprechenden Thread im Syberia-Forum, damit man das nachlesen kann?
Bartle-Test: ESAK (87/53/47/13)
Benutzeravatar
KlyX
Forscher
Beiträge: 4445
Registriert: 05.02.2004, 17:37
Wohnort: Langenthal, Schweiz
Alter: 40
Kontaktdaten:

Beitrag von KlyX » 29.05.2005, 09:02

Ich finde das auch eine Schweinerei, dass das verboten sein soll. Immerhin haben wir das Spiel gekauft (oder bekommen, oder was weiss ich) und wir sollten doch irgendwie das Recht haben, mit diesen zwei CDs eigentlich alles anzustellen ;)
Finde es ebenfalls net so doll und freue mich auf den Extraktor :D

Wirf einen Blick in meinen Blog - und kommetiere :-)
Chris' Weblog
abacado.com - Total neu
Benutzeravatar
TheSearcher
Forscher
Beiträge: 753
Registriert: 10.10.2004, 13:21
Wohnort: Magdeburg
Alter: 39

Beitrag von TheSearcher » 29.05.2005, 10:18

@Marck:
Microids wurde von Ubi gekauft. Daher gibt es das Forum nicht mehr. Ich hätte sonst gerne ein wenig die Beiträge zitiert (alleine schon um euch ein wenig zu ärgern und zu verunsichern :evil: ).

@KlyX:
Um dein Argument z.u widerlegen:
Ich weiß jedoch noch, dass im Forum so etwas im Stil stand (in meine saloppe Sprache gefasst): du hast das Spiel gekauft, okay, und die EULA erlaubt es dir es zu spielen, aber du hast nicht das Recht gekauft dir deine Audio-Soundtrack-CD zu brennen, genauso wenig wie du die Rechte an den Audio-Dateien besitzt, die besitzen nämlich WIR (genauso wie das ganze Spiel UNSER Eigentum ist, DU hast nur ein Benutzungsrecht im Sinne von spiele). Damit ist das Rippen der Sounds VERBOTEN (ich meine sie haben sogar etwas von rechtlichen Konsequenzen gegen Anleitungen zum Rippen geschrieben).

Aber: Microids gibt es nicht mehr (s. oben). Ich hätte mir sowieso nichts aus ihren Drohungen gemacht.

PS: Gestern hatte mich dann doch ein wenig die Syberia-Hack-Sucht gepackt, so dass ich in der Zeit die dringend für Übungszettel geboten gewesen wäre, gecodet habe. Grundlegend funktioniert er schon ziemlich gut (wenn ich die Klausur in Lineare Algebra nicht schaffe, bist du schuld KlyX -> yeah, ich habe einen Sündenbock ;-) ) Für alle Tester hier der Sourcecode (wie ihr daraus eine exe erzeugt steht unter http://wase.urz.uni-magdeburg.de/wkelle ... WeltenWiki ). Falls ihr Probleme damit habt, die exe zu erzeugen, teilt es mir mit, damit ich die Anleitung verbessern kann. Kopiert die *.syb-Dateien in den Ordner mit der exe (dieser Ordner sollte bitte *nur* die exe enthalten). Anschließend Start/Ausführen; dort cmd (Win 2k/XP) bzw. command eingeben, in den Ordner mit der exe-Datei wechseln und eingeben: sybdecode.exe filename.syb (dabei wird vorausgesetzt, dass die exe-Datei sybdecode.exe heißt; filename.syb muss natürlich durch die konkrete syb-Datei ersetzt werden). Beachtet, dass die Dateien alle in den aktuellen Ordner entpackt werden - eine Sache, die ich in Zukunft beseitigen will. Deshalb sollte der Ordner nur die exe-Datei und die syb-Dateien enthalten. Kopier dannach am besten den ganzen entpackten Kram woanders hin.

PPS: Die Musikdateien sind in MinimalRes.syb und fangen alle mit m_ an und enden mit .mp3

PPPS: Es ist auch möglich mehrere Dateinamen zu übergeben also z. B.
sybdecode.exe file1.syb file2.syb file3.syb
Würde aber abraten davon Gebrauch zu machen.

PPPPS: Diese Version ist ausdrücklich eine Beta-Version. Bugs habe ich keine gefunden, aber man weiß nie

PPPPPS: Bräuchte irgendjemand auch einen Packer für die syb-Dateien, um aus diversen Dateien eine syb-Datei zu bauen. Könnte man sicher sehr einfach bauen. Aber braucht das jemand. Vielleicht weil man ein MOD für Syberia erstellen will. Es wäre auch nicht viel mehr Arbeit als das Schreiben des Entpackers.


Datei main.cpp:

#include <cstdio>
#include <cstdlib>
#include <cstring>

const unsigned long identifier=0x47425856;

int main(int argc, char** argv)
{
FILE* act_file;
FILE* output_file;

if (argc<2)
{
printf("Usage: sybdecode filename.syb\n");
return 1;
}

for (int i=1; i<argc; i++)
{
unsigned long read_identifier;

unsigned long body_adress;
unsigned long header_adress;
unsigned long act_file_length;
unsigned long header_read_end;

act_file=fopen(argv, "rb");

if (act_file==NULL)
{
fprintf(stderr, "Could not open file %s\n", argv);

return 1;
}

if(!fread(&read_identifier, sizeof(unsigned long), 1, act_file))
{
fprintf(stderr, "Unexpected EOF while reading; line=%u\n", __LINE__);
return 1;
}

if (read_identifier!=identifier)
{
printf("Invalid file: identifier must be VXBG\n");
}

if(!fread(&header_read_end, sizeof(unsigned long), 1, act_file))
{
fprintf(stderr, "Unexpected EOF while reading; line=%u\n", __LINE__);
return 1;
}

header_read_end+=4; // The first 4 bytes (identifier) do not count

body_adress=header_read_end+4; // The last 4 bytes of the header are
// the size of the last file in the body

header_adress=8;

while (header_adress<header_read_end)
{

fseek(act_file, header_adress, SEEK_SET);

char* act_filename=NULL;

long act_pos=ftell(act_file);
int act_string_length=0;

char act_char=0;

while (true)
{


if(!fread(&act_char, sizeof(char), 1, act_file))
{
fprintf(stderr, "Unexpected EOF while reading; line=%u\n", __LINE__);
return 1;
}

if (act_char!=0)
act_string_length++;

else
break;
}

act_filename=(char*) malloc(sizeof(char)*(act_string_length+1));

fseek(act_file, act_pos, SEEK_SET);

for (int j=0; j<=act_string_length; j++)
{
if(!fread(act_filename+j, sizeof(char), 1, act_file))
{
fprintf(stderr, "Unexpected EOF while reading; line=%u\n", __LINE__);
return 1;
}
}



if(!fread(&act_file_length, sizeof(unsigned long), 1, act_file))
{
fprintf(stderr, "Unexpected EOF while reading; line=%u\n", __LINE__);
return 1;
}

header_adress=ftell(act_file);

output_file=fopen(act_filename, "w+b");

if (output_file==NULL)
{
fprintf(stderr, "Could not open file %s\n", act_filename);

return 1;
}

printf("filename: %s\n", act_filename);

act_pos=ftell(act_file);

// Reading and outputting the file
fseek(act_file, body_adress, SEEK_SET);

for (unsigned long l=0; l<act_file_length; l++)
{
char act_byte;

if(!fread(&act_byte, sizeof(char), 1, act_file))
{
fprintf(stderr, "Unexpected EOF while reading; line=%u\n", __LINE__);
return 1;
}

if(!fwrite(&act_byte, sizeof(char), 1, output_file))
{
fprintf(stderr, "Could not write to file:%s; line=%u\n",
act_filename, __LINE__);
return 1;
}
}

// End outputting file

fseek(act_file, act_pos, SEEK_SET);

body_adress+=act_file_length;



fclose(output_file);
}

fclose(act_file);

}
}
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
KlyX
Forscher
Beiträge: 4445
Registriert: 05.02.2004, 17:37
Wohnort: Langenthal, Schweiz
Alter: 40
Kontaktdaten:

Beitrag von KlyX » 29.05.2005, 11:16

/me wird das jetzt sofort ausprobieren... Nachdem er den Borland Compiler nicht mehr hat holt er sich halt nun den von Bloodhound...

Wieso hast du eigentlich net grad die EXE online gestellt? ;)
Ich werde natürlich sofort melden, obs geklappert hat oder net.

KlyX

Wirf einen Blick in meinen Blog - und kommetiere :-)
Chris' Weblog
abacado.com - Total neu
Benutzeravatar
KlyX
Forscher
Beiträge: 4445
Registriert: 05.02.2004, 17:37
Wohnort: Langenthal, Schweiz
Alter: 40
Kontaktdaten:

Beitrag von KlyX » 29.05.2005, 11:37

Sooo... alles entpackt und die 11 Musiktracks rausgesucht... Herzlichen Dank für deine Arbeit, hat perfekt funktioniert :)

ach ja: Und was den Sündenbock betrifft: da das ja nicht ganz legal ist, weiss ich sowieso von nichts *g* :P

Grüsse
KlyX

Wirf einen Blick in meinen Blog - und kommetiere :-)
Chris' Weblog
abacado.com - Total neu
Benutzeravatar
TheSearcher
Forscher
Beiträge: 753
Registriert: 10.10.2004, 13:21
Wohnort: Magdeburg
Alter: 39

Beitrag von TheSearcher » 29.05.2005, 12:56

Nur dass es keine Missverständnisse hier gibt:
das ist keine fertige Version von meinem Programm. Ich habe beispielsweise eben noch ein Speicherleck gefunden, welches ich in Kürze beseitigen will. Die 2 Wochen haben also schon ihren Grund (ich habe geschrieben: "bis ich fertig bin"; das Programm ist noch nicht fertig).

exe-Dateien kann man glaube ich nicht im Forum hochladen (mit gutem Grund, das könnte man prima zum Viren verteilen nutzen).

Und der Zugriff auf den privaten Webspace an der Uni ist relativ aufwändig (nur über ssh möglich und außerdem muss man sich dann auch immer mit dem Sicherheitssystem AFS herumschlagen).

Da ich plane das ganze Programm auch in den Wiki aufzunehmen (inklusive Dokumentation des Dateiformats der syb-Dateien) bietet sich die Variante über den Quellcode an.

Außerdem besteht noch der Vorteil, dass sich jeder seine individuelle Variante compilieren kann: ich eine Spezialvariante für Debug-Zwecke (mit zusätzlichem Debug- und Profilercode), der Typ mit der neuen AMD64-CPU sich seine 64-Bit-Variante, der 08/15-Anwender eine Version mit dem Linker-Flag -s (sorgt dafür, dass unnötiges Zeug aus der exe entfernt wird), usw.

Zum Urheberrecht: irgendwie habe ich die Vermutung, dass sich der Eintrag im Syberia-Forum auf das Urheberrecht der USA (oder Kanada) bezieht. Ich habe nämlich noch nie in Deutschland von einem derartigen Fall gehört. Vielleicht musst du, KlyX, also doch als Sündenbock herhalten ;)

@KlyX
Um mal als Korinthenkacker aufzutreten: "Dev-C++" von Bloodshed ist kein C/C++-Compiler. Der Compiler ist "Gnu C++" in der Mingw-Variante, welcher bei Dev-C++ mitgeliefert wird. Dev-C++ ist nur eine grafische Oberfläche für diesen Compiler. Nur weil das immer wieder in allen möglichen Foren durcheinander gebracht wird.
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
KlyX
Forscher
Beiträge: 4445
Registriert: 05.02.2004, 17:37
Wohnort: Langenthal, Schweiz
Alter: 40
Kontaktdaten:

Beitrag von KlyX » 29.05.2005, 13:06

Ach so ;) alles klar. Dachte schon: huch, seit wann haben Compiler GUIs... da muss wohl ein anderer Compiler am werk sein. Und dass es der GNU C++ ist war eigentlich klar, so von wegen OpenSource und so :D

Und was das fertige Programm anbelagt: Das was es schon kann, ist schon ne gute Sache :D Mehr brauch ich persönlich gar nicht ;)

Wirf einen Blick in meinen Blog - und kommetiere :-)
Chris' Weblog
abacado.com - Total neu
Benutzeravatar
TheSearcher
Forscher
Beiträge: 753
Registriert: 10.10.2004, 13:21
Wohnort: Magdeburg
Alter: 39

Beitrag von TheSearcher » 29.05.2005, 15:19

Zum Thema Speicherleck:
jetzt, wo ich nochmal 5 Minuten Zeit für das Programm habe, kann ich folgendes Bugfix für das Speicherleck mitteilen:

unter der Zeile:
printf("filename: %s\n", act_filename);

füge folgende Zeile ein:
free(act_filename);

(dannach natürlich neu compilieren).

Damit sollte das Problem mit dem Speicherleck beseitigt sein.
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
Marck
Forscher
Beiträge: 857
Registriert: 09.02.2004, 21:04
KI-Nummer: 48956
Kontaktdaten:

Beitrag von Marck » 29.05.2005, 19:11

Danke für das Tool. Ich werde es ausprobieren, sobald ich wieder einen Rechner zur Verfügung habe, auf dem ich Syberia II installieren kann.
TheSearcher hat geschrieben:unter der Zeile:
printf("filename: %s\n", act_filename);

füge folgende Zeile ein:
free(act_filename);

(dannach natürlich neu compilieren).

Damit sollte das Problem mit dem Speicherleck beseitigt sein.
Das Speicherleck ist damit zwar weg, aber dafür wird nach der Freigabe des Speichers nochmal auf act_filename zugegriffen, nämlich in der Fehlerbehandlung beim Schreiben einer Datei.

Bei solch typischen Problemen mit C lernt man schnell die Vorteile objektorientierter Programmierung mit C++ schätzen: Da würde man die Freigabe des Speichers in den Destruktor eines Dateinamen-Objektes packen und müßte sich nicht mehr darum kümmern, wo der Speicher im Programmablauf freizugeben ist (oder man verwendet gleich einen std::string). ;)
Bartle-Test: ESAK (87/53/47/13)
Benutzeravatar
KlyX
Forscher
Beiträge: 4445
Registriert: 05.02.2004, 17:37
Wohnort: Langenthal, Schweiz
Alter: 40
Kontaktdaten:

Beitrag von KlyX » 29.05.2005, 19:48

/me bleibt definitiv einfach bei VisualBasic... Hab mich mal ein paar Tage mit C++ rumgeschlagen und habs dann aufgegeben ;)

Wirf einen Blick in meinen Blog - und kommetiere :-)
Chris' Weblog
abacado.com - Total neu
Antworten