Beiträge: 7.357
Themen: 130
Registriert seit: 13.07.2006
0 Hallo,
mir ist gerade eine Idee gekommen, die ich vor langer Zeit schonmal hatte, die mir dann allerdings entfallen ist: Ich bin immer ein großer Fan der 3 DSA-Spiele für den PC gewesen (das neue kenne ich noch gar nicht), aber leider sind das ja nur genau 3 Stück und am Ende steht man mit seinen liebgewonnen Charakteren da und das war's. Die Idee wäre nun, wenn man die Spielstände nach dem dritten Teil wieder so konvertieren könnte, dass man damit anschließend in Teil eins einsteigen kann um die gesamte Trilogie mit nun etwas talentierterten Charakteren erneut zu genießen. Praktisch so, wie man das bei Diablo immer machen konnte - einfach neu starten, wenn einem das Spiel zu schwer wird und das so lange bis man über diese und jene Hürde kommt .
Kennt jemand von euch irgendein Tool, das genau das bewerkstelligen kann? Und falls nicht: Weiß jemand, wo/wie ich am besten an Informationen über die Spielstandsformate der DSA-Trilogie komme (Teil 1 und 3 würden hierbei völlig ausreichen, ganz so flexibel wie bei Diablo muss es nicht werden)? Zur Not würde ich mich auch hinsetzen und ein Programm anfertigen, dass die Spielstände konvertiert, natürlich ist die dafür benötigte Zeit umgekehrt proportional zu den vorhandenen Informationen. Bei einer so detaillierten Welt wie der der DSA-Spiele würde ich wohl laaange Zeit verbringen, bis ich alles konvertieren könnte.
Dann bin ich mal auf eure Insider-Infos oder fachmännische Ratschläge gespannt .
EDIT: Na, niemand eine Ahnung? Ich habe jetzt mal einen DSA1-Spielstand zerlegt und bin schonmal durch die meisten Charakter-bezogenen Dinge durchgestiegen - es fehlt nur noch ein Katalog an Gegenständen, das dürfte einiges an Arbeit machen. Vielleicht hat ja jemand Lust, mal einkaufen zu gehen, seine Charaktere mit exotischsten Waren zu beladen und mir 'nen Spielstand zu schicken?
Dann fehlen natürlich noch ein paar spielbezogene Infos (Standort, Zeit etc.), aber die sind nicht wirklich wichtig, da ich sie ja aus dem eigentlichen Start-Spielstand "abschauen" kann.
Zum Schluss müsste ich dann noch einen DSA3-Spielstand auseinandernehmen, hoffentlich wurde das Format nicht zu sehr verändert...
(ich wäre noch immer dankbar, falls mir jemand sagen würde, dass es das von mir gewünschte Programm schon irgendwo gibt )
Beiträge: 2.827
Themen: 101
Registriert seit: 25.09.2005
Beiträge: 2.827
Themen: 101
Registriert seit: 25.09.2005
0 Der einfachste Weg dein Vorhaben zu realisieren wäre es nicht den Spielstand selbst zu konvertieren, sondern nur die Charaktere aus dem Spielstand auslesen, wenn nötig Konvertieren (z.B. bei DSA3 zu DSA1). Und dann einfach in einen vorgefertigten Startspielstand reinschreiben.
Ich hatte sowas wie du auch mal vor. Ich wollte die Charaktere einfach als .chr aus dem Spielstand exportieren. Doch leider funktioniert das nicht. Wenn die Stufe ungleich 1 ist, wird der Charakter nicht im Tempel dargestellt von DSA1. Wenn er als .chr Datei vorliegt.
Ich hatte mal mit nem Editor für die Trillogie angefangen aber hab recht schnell die Lust drann verloren. Das war meine letzte Struktur der DSA1 Charaktere, vieleicht ist was dabei, was dir noch fehlt:
Code: #Dsa1_Hero_Gaukler = 1
#Dsa1_Hero_Jaeger = 2
#Dsa1_Hero_Krieger = 3
#Dsa1_Hero_Streuner = 4
#Dsa1_Hero_Thorwaler = 5
#Dsa1_Hero_Zwerg = 6
#Dsa1_Hero_Hexe = 7
#Dsa1_Hero_Druide = 8
#Dsa1_Hero_Magier = 9
#Dsa1_Hero_Auelf = 10
#Dsa1_Hero_Firnelf = 11
#Dsa1_Hero_Waldelf = 12
#Dsa1_God_Namenloser = 0
#Dsa1_God_Praios = 1
#Dsa1_God_Rondra = 2
#Dsa1_God_Efferd = 3
#Dsa1_God_Travia = 4
#Dsa1_God_Boron = 5
#Dsa1_God_Hesinde = 6
#Dsa1_God_Firun = 7
#Dsa1_God_Tsa = 8
#Dsa1_God_Phex = 9
#Dsa1_God_Peraine = 10
#Dsa1_God_Ingrimm = 11
#Dsa1_God_Rahja = 12
#Dsa1_God_Swafnir = 13
#Dsa1_God_Ifirn = 14
#Dsa1_Gender_Man = 0
#Dsa1_Gender_Female = 1
#Dsa1_ItemStatus_Broken = %00000001
#Dsa1_ItemStatus_Magic = %00001000
#Dsa1_ItemStatus_Analysed = %10000000
#Dsa1_ItemBf_Unbreakable = $9D
#Dsa1_ItemPoisen_Shurin = 1
#Dsa1_ItemPoisen_Arax = 2
#Dsa1_ItemPoisen_Angst = 3
#Dsa1_ItemPoisen_Schlaf = 4
#Dsa1_ItemPoisen_Goldleim = 5
#Dsa1_ItemPoisen_Kroetenschemel = 6
#Dsa1_ItemPoisen_Lotos = 7
#Dsa1_ItemPoisen_Kukris = 8
#Dsa1_ItemPoisen_Bannstaub = 9
Structure Dsa1Item
ID.b
Unknown1.b[13]
EndStructure
Structure Dsa1Char
Name.s{16}
Name2.s{16}
Unknown1.b
Typus.b
Geschlecht.b
Groesse.b
Gewicht.w
Gottheit.b
Stufe.b
Ap.l
Geld.l
RsBonus1.b
RsBonus2.b
Unknown2.w
Mu.b
MuEffektiv.b
Unknown3.b
Kl.b
KlEffektiv.b
Unknown4.b
Ch.b
ChEffektiv.b
Unknown5.b
Ff.b
FfEffektiv.b
Unknown6.b
Ge.b
GeEffektiv.b
Unknown7.b
In.b
InEffektiv.b
Unknown8.b
Kk.b
KkEffektiv.b
Unknown9.b
Ag.b
AgEffektiv.b
Unknown10.b
Ha.b
HaEffektiv.b
Unknown11.b
Ra.b
RaEffektiv.b
Unknown12.b
Gg.b
GgEffektiv.b
Unknown13.b
Ta.b
TaEffektiv.b
Unknown14.b
Ng.b
NgEffektiv.b
Unknown15.b
Jz.b
JzEffektiv.b
Unknown16.b
Le.w
LeEffektiv.w
Ae.w
AeEffektiv.w
Mr.b
BasisNk.b
Unknown17.b[23]
Hunger.b
Durst.b
Unknown18.b[41]
Status.b
Unknown19.b[93]
TawWaffenlos.b
TawHiebwaffen.b
TawStichwaffen.b
TawSchwerter.b
TawAexte.b
TawSpeere.b
TawZweihaender.b
TawSchusswaffen.b
TawWurfwaffen.b
TawAkrobatik.b
TawKlettern.b
TawKoerperbeherrschung.b
TawReiten.b
TawSchleichen.b
TawSchwimmen.b
TawSelbstbeherrschung.b
TawTanzen.b
TawVerstecken.b
TawZechen.b
TawBekehren.b
TawBetoeren.b
TawFeilschen.b
TawGassenwissen.b
TawLuegen.b
TawMenschenkenntnis.b
TawSchaetzen.b
TawFaehrtensuchen.b
TawFesseln.b
TawOrientierung.b
TawPflanzenkunde.b
TawTierkunde.b
TawWildnisleben.b
TawAlchemie.b
TawAlteSprachen.b
TawGeographie.b
TawGeschichte.b
TawGoetterKulte.b
TawKriegskunst.b
TawLesen.b
TawMagiekunde.b
TawSprachen.b
TawAbrichten.b
TawFahrzeuge.b
TawFalschspiel.b
TawHeilenGift.b
TawHeilenKrankheiten.b
TawHeilenWunden.b
TawMusizieren.b
TawSchloesser.b
TawTaschendieb.b
TawGefahrensinn.b
TawSinnesschaerfe.b
Talentpunkte.w
ZfwBeherschungen.b
ZfwDestructibo.b
ZfwGardianum.b
ZfwIllusionen.b
ZfwVerwandlung.b
ZfwBandFessel.b
ZfwBannbaladin.b
ZfwBoeserBlick.b
ZfwGrosseGier.b
ZfwVerwirrung.b
ZfwHerrUeberTiere.b
ZfwHorriphobus.b
ZfwMagischerRaub.b
ZfwRespondami.b
ZfwSanftmut.b
ZfwSominigravis.b
ZfwZwingtanz.b
ZfwFurorBlut.b
ZfwGeisterBannen.b
ZfwGeisterBeschwoeren.b
ZfwHeptagon.b
ZfwKraehenruf.b
ZfwSkelettarius.b
ZfwElement.b
ZfwNihilatio.b
ZfwSolidrid.b
ZfwAxxeleratus.b
ZfwForamen.b
ZfwMotoricus.b
ZfwSpurlos.b
ZfwTransversalis.b
ZfwUeberEis.b
ZfwBalsam.b
ZfwHexenspeichel.b
ZfwKlarumPurum.b
ZfwRuheKoerper.b
ZfwTiereBesprechen.b
ZfwAdleraug.b
ZfwAnalues.b
ZfwEigenschaften.b
ZfwExposami.b
ZfwOdemArcanum.b
ZfwPenetrizzel.b
ZfwSensibar.b
ZfwChamaelioni.b
ZfwDublicatus.b
ZfwHarmlos.b
ZfwHexenknoten.b
ZfwBlitz.b
ZfwEcliptifactus.b
ZfwEisenrost.b
ZfwFulminictus.b
ZfwIgnifaxius.b
ZfwPlumbumbarum.b
ZfwRadau.b
ZfwSaftKraft.b
ZfwScharfesAuge.b
ZfwHexenblick.b
ZfwNekropathia.b
ZfwAdlerWolf.b
ZfwArcano.b
ZfwArmatruz.b
ZfwMuErhoehen.b
ZfwKlErhoehen.b
ZfwChErhoehen.b
ZfwFfErhoehen.b
ZfwGeErhoehen.b
ZfwInErhoehen.b
ZfwKkErhoehen.b
ZfwFeuerbann.b
ZfwSeeUndFluss.b
ZfwMutabili.b
ZfwParalue.b
ZfwSalander.b
ZfwVisibili.b
ZfwAbvenum.b
ZfwAeolitus.b
ZfwBrenne.b
ZfwClaudibus.b
ZfwDunkelheit.b
ZfwFlimFlam.b
ZfwSchmelze.b
ZfwSilentium.b
ZfwSturmgeruell.b
ZfwErstarre.b
Zauberpunkte.w
Stabzauber.b
ItemKopf.Dsa1Item
ItemArm.Dsa1Item
ItemKoerper.Dsa1Item
ItemRechteHand.Dsa1Item
ItemLinkeHand.Dsa1Item
ItemBeine.Dsa1Item
ItemFuesse.Dsa1Item
ItemInventar.Dsa1Item[16]
Last.w
Portrai.b[1024]
EndStructure
.b = Byte
.w = Word
.l = DoubleWord
Beiträge: 7.357
Themen: 130
Registriert seit: 13.07.2006
0 Ich danke dir, Thorium! Der Link zu den Gegenstandswerten ist unglaublich nützlich, das hätte Unmengen an Zeit gefressen. Zumal ich jetzt auch weiß, woraus sich die 14 Byte Platz für den Gegenstand zusammensetzen.
Das mit den .CHR-Dateien habe ich schon gesehen - die lassen sich ja extrem leicht im Spielstand finden, es wäre also auch kein Problem, die Charaktere einfach in den "Start"-Spielstand von DSA1 zu schreiben. Zumindest nicht, wenn ich noch herausfinde, was der ein oder andere Wert bedeutet (irgendwo sollte ja die Charakter-Position stehen, da muss ich vermutlich etwas korrektes eintragen).
Vielen Dank auch für deine Tabelle, ich verstehe zwar nicht ganz, wie du damit gearbeitet hast (die Position in der Datei wäre schon wichtig, oder?), aber die ganzen Werte schlüsseln mir so einiges auf und ersparen wieder eine Menge Arbeit. Wobei ich mir gestern abend noch kurz die DSA3-Spielstände angesehen habe und feststellen konnte, dass sie sich nur ein wenig von den DSA1-Spielständen unterscheiden - wenn ich sorgfältig beim Konvertieren vorgehe, kann ich also die ganzen Charakterattribute einfach übernehmen, ohne im Detail wissen zu müssen, was da steht. Beim Inventar sieht es leider ein wenig anders aus, das scheint in DSA3 etwas mehr Funktionalität zu besitzen.
Beiträge: 2.827
Themen: 101
Registriert seit: 25.09.2005
0 Zitat:Original von thEClaw
Vielen Dank auch für deine Tabelle, ich verstehe zwar nicht ganz, wie du damit gearbeitet hast (die Position in der Datei wäre schon wichtig, oder?)
Die Positionen sind implizit vorhanden. ^^
Die Struktur erstreckt sich über die kompletten Charakterdaten also über eine komplette .chr Datei. Ich brauchte einfach nur einen Pointer mit der Struktur definieren und dann praktisch über den Charakter legen. Wie ne Schablone. ^^ Pointer sind unfassbar nützlich in der Programmierung. ^^
Deswegen sind da auch die ganzen unbekannten Werte dabei. Damit die Positionen der bekannten stimmen.
Ich hab auch noch die Palette der Charakterbilder, falls du das auch irgendwie anzeigen oder ändern möchtest. Es ist einfach ein 8bit Bild mit einer Größe von 32x32 Pixel = 1024 Bytes am Ende der Charakterdaten. Allerdings gibts das nur bei DSA1, bei 2 und 3 gibt es nur eine Bild-ID, kein richtiges Bild in den Charakterdaten.
Beiträge: 7.357
Themen: 130
Registriert seit: 13.07.2006
0 Ja, das mit dem Bild habe ich schon rausgefunden .
Dass du die Bytes gezählt hast, habe ich erkannt, aber ich dachte halt anfangs, das sei sozusagen dein "Notizzettel" - war dann wohl eher schon Programmcode.
Mit deiner Hilfe und der Hilfe der Seite, deren Link du gepostet hast, habe ich die DSA1-Charakter-Daten jetzt bis auf wenige Byte entschlüsselt (bei den restlichen Stellen hat auch Rumprobieren keine Ergebnisse geliefert). Jetzt setze ich mich direkt mal an ein paar DSA3-Charaktere und vergleiche - das Inventar scheint sich ja auf fast die doppelte Größe verändert zu haben und scheinbar sind auch die Positionen der Gegenstände verändert.
Mal angenommen, ich bekomme das alles irgendwie hin, dann müsste ich dem neuen Save-File für DSA1 ja wieder die Charakter-Bilder zufügen (du sagst ja, dass da nur noch ein Verweis steht). Das scheint mir jetzt ein ziemliches Problem zu sein, es sollte sich ja möglichst um die gleichen Bilder handeln. Weißt du zufällig noch ein wenig mehr darüber? Z.B. wie ich aus den 1024 Byte an Daten ein richtiges Bild erstellen kann? Eine Komprimierung vermute ich da mal nicht, aber mit den Spezifikationen von Bild-Formaten kenne ich mich leider nicht aus.
EDIT: Habe gerade versucht, aus dem KB an Bilddaten eine Bitmap zu erstellen - ich bekomme leider nur Matsch heraus. Das bedeutet also, dass ein von DSA3 nach DSA1 konvertierter Charakter kein Bild mehr hat... Ich habe jetzt auch nur sehr komplizierte Ideen, um das zu umgehen...
EDIT2: Bin jetzt so ziemlich fertig mit Vergleichen, die guten Programmierer haben ihren Job sauber gemacht und die DSA3-Spielstände haben sehr viel Ähnlichkeit mit denen aus DSA1. Ich habe jetzt nur ein Problem mit dem Bereich, in dem früher das Bild gespeichert wurde - dort stehen jetzt irgendwelche Werte (275 Byte), die ich nicht mehr sinnvoll zuordnen kann . Außerdem muss natürlich das neue Bild für Teil 1 her. Bei Gelegenheit werde ich dann mal das Programm zusammenschustern .
Beiträge: 1.797
Themen: 139
Registriert seit: 19.01.2004
0 ich stelle es mir schwierig vorher gewisse gegenstände zu übertragen. einiges gibts bei dsa1 doch vermutlich einfahc nicht oder?
Das ist ein ekliger Haufen Knochen... genau wie ich. - Manny Calavera
Beiträge: 7.357
Themen: 130
Registriert seit: 13.07.2006
0 Zitat:Original von Manny Calavera
ich stelle es mir schwierig vorher gewisse gegenstände zu übertragen. einiges gibts bei dsa1 doch vermutlich einfahc nicht oder?
Stimmt, aber wenn man Spielstände von Teil 1 nach 2 oder 2 nach 3 übertragen hat, fehlten auch immer eine Reihe von Gegenständen. Und noch viel schlimmer: Mein ganzes Geld wollte man mir immer nehmen...
Ich habe jetzt mein Konzept aufgestellt und mit dem Programm angefangen. Allerdings bereiten mir die Charakter-Portraits noch immer Kopfzerbrechen: Ich habe zwar mittlerweile herausgefunden, wie ich "den Code sichtbar machen" kann, aber wenn ich IrfanView (das einzige Bildbearbeitungs-Programm, das ich habe und kenne) zum Anschauen nutze, dann wird aus einem bunten Portrait stets ein Graustufen-Bild. Das sieht natürlich vollkommen dämlich aus und ich habe noch keine Ahnung, wie ich das beseitigen könnte.
Die bisher einzige andere Lösung wäre, dass ich mir erst einen DSA1-Spielstand mit den richtigen Bildern erstelle und diesen dann als Zielspielstand wähle. Aber irgendwie stellt mich das nicht zufrieden...ich wollte ja gern ein kleines Programm schreiben, dem ich nur meinen DSA3-Spielstand übergebe und das mir dafür ohne große Probleme den DSA1-Spielstand ausspuckt.
Beiträge: 2.827
Themen: 101
Registriert seit: 25.09.2005
0 Zitat:Original von thEClaw
Allerdings bereiten mir die Charakter-Portraits noch immer Kopfzerbrechen: Ich habe zwar mittlerweile herausgefunden, wie ich "den Code sichtbar machen" kann, aber wenn ich IrfanView (das einzige Bildbearbeitungs-Programm, das ich habe und kenne) zum Anschauen nutze, dann wird aus einem bunten Portrait stets ein Graustufen-Bild.
Dann mal ein bischen Bilddatenkunde. ^^
Daraus wird ein Graustufenbild, weil du es sicherlich ohne Palette abgespeichert hast.
Aber erstmal generell: Ein Bild besteht aus Pixeln, welche sich aus Farbkanälen zusammensetzen. Welche Kanäle das sind wird durch Standarts definiert. Für die Anzeige auf Bildschirmen wird der RGB Farbraum verwendet. Also setzen sich die Pixel aus 3 Kanälen zusammen: Rot, Grün und Blau. Bei 24bit Farbtiefe hat jeder Kanal 1 Byte, das macht 3 Byte pro Pixel und 16,7mio mögliche Farben. Nun war es aber früher so das die Grafikkarten nur eine bestimmte Anzahl Farben gleichzeitig darstellen konnten, z.b. 256 was 8bit Farbtiefe sind. Nun setzen sich diese 8bit allerdings nicht aus Farbkanälen zusammen. Sondern stellen einen Index in einer Farbpalette dar. Also ist die 8bit Zahl des Pixels garkein direkter Farbwert, sondern eine Nummer, welche mit einer Farbe assoziiert werden muss. Die Farbe selbst setzt sich wieder aus den 3 RGB Bytes zusammen. Ohne die passende Palette zu haben, welche die Informationen enthält, welche 8bit Zahl welche 24bit Farbe darstellt, kann man ein 8bit Bild nicht farblich darstellen, jedenfalls nicht korrekt. Ein Programm geht in diesem Fall davon aus das es sich um ein Graustufenbild handelt. In einem Graustufenbild ist kein Farbwert gespeichert, sondern ein Helligkeitswert.
Also um das Bild korrekt darzustellen benötigt du die passende Palette, welche Leute in Crystals Forum rausgefriemelt haben.
Die Bilddaten in den Charakterdaten sind sogenannte Rohdaten. Das heisst es sind lediglich die reinen Bilddaten enthalten. Keine Angabe für Breite und Höhe, keine Palette. Das ist auch nicht nötig, da Breite und Höhe immer gleich sind: 32x32. Und auch die Palette immer gleich ist und 32 Farben enthält. Wir haben in Crystals Forum rausgefunden das man noch mehr Farben verwenden kann und ich hatte mal ein Programm geschrieben was Bilder zu DSA1 Charakterbildern konvertieren konnte und dabei 103 zusätzliche Farben bot.
Und hier ist die Palette:
Code: ;Standart Portrai-Palette (32 Farben)
Pal(32) = $000000
Pal(33) = $FC0000
Pal(34) = $900000
Pal(35) = $A0C0F0
Pal(36) = $90B0F0
Pal(37) = $70A0F0
Pal(38) = $6090E0
Pal(39) = $5080D0
Pal(40) = $5070C0
Pal(41) = $4060A0
Pal(42) = $305090
Pal(43) = $304070
Pal(44) = $203060
Pal(45) = $203050
Pal(46) = $E0E0E0
Pal(47) = $C0C0C0
Pal(48) = $B0B0B0
Pal(49) = $A0A0A0
Pal(50) = $808080
Pal(51) = $707070
Pal(52) = $505050
Pal(53) = $404040
Pal(54) = $00FC00
Pal(55) = $009000
Pal(56) = $00E0F0
Pal(57) = $00B0D0
Pal(58) = $0080A0
Pal(59) = $4060F0
Pal(60) = $2040C0
Pal(61) = $103090
Pal(62) = $102040
Pal(63) = $F0F0F0
;zusätzliche Farben (103 Farben)
Pal(65) = $A0C0E0
Pal(66) = $7090C0
Pal(67) = $406090
Pal(68) = $305080
Pal(69) = $203060
Pal(70) = $102050
Pal(71) = $001030
Pal(72) = $00E0F0
Pal(73) = $00A0E0
Pal(74) = $0070C0
Pal(75) = $0050B0
Pal(76) = $0090F0
Pal(77) = $0030F0
Pal(78) = $2000F0
Pal(79) = $8000F0
Pal(80) = $004000
Pal(81) = $005000
Pal(82) = $007000
Pal(83) = $008010
Pal(84) = $00A010
Pal(85) = $F0E070
Pal(86) = $D0B050
Pal(87) = $C07030
Pal(88) = $A03010
Pal(89) = $900000
Pal(93) = $909090
Pal(97) = $A40000
Pal(98) = $380000
Pal(99) = $486898
Pal(100) = $385898
Pal(101) = $184898
Pal(102) = $083888
Pal(103) = $002878
Pal(104) = $001868
Pal(105) = $000848
Pal(106) = $000038
Pal(107) = $000018
Pal(108) = $000008
Pal(110) = $888888
Pal(111) = $686868
Pal(112) = $585858
Pal(113) = $484848
Pal(114) = $282828
Pal(115) = $181818
Pal(118) = $008000
Pal(119) = $003800
Pal(120) = $008898
Pal(121) = $005878
Pal(122) = $002848
Pal(123) = $000898
Pal(124) = $000068
Pal(125) = $000038
Pal(192) = $004000
Pal(193) = $104000
Pal(194) = $204000
Pal(195) = $304000
Pal(196) = $404000
Pal(197) = $403000
Pal(198) = $402000
Pal(199) = $401000
Pal(200) = $0000C0
Pal(201) = $00C0C0
Pal(202) = $C00000
Pal(203) = $402038
Pal(204) = $402040
Pal(205) = $382040
Pal(206) = $302040
Pal(207) = $282040
Pal(208) = $202040
Pal(209) = $202840
Pal(210) = $203040
Pal(211) = $203840
Pal(212) = $204040
Pal(213) = $204038
Pal(214) = $204030
Pal(215) = $204028
Pal(217) = $A0C0E0
Pal(218) = $40C0E0
Pal(219) = $30A0C0
Pal(220) = $2090B0
Pal(221) = $1080A0
Pal(222) = $005060
Pal(223) = $30642C
Pal(226) = $D0D0D0
Pal(233) = $606060
Pal(236) = $303030
Pal(237) = $202020
Pal(238) = $101010
Pal(240) = $20F000
Pal(241) = $A0C0F0
Pal(242) = $A0B0F0
Pal(243) = $6070B0
Pal(244) = $405090
Pal(245) = $304070
Pal(246) = $202050
Pal(247) = $101030
Pal(248) = $002030
Pal(249) = $0000B0
Pal(250) = $F05040
Pal(251) = $E02000
Pal(252) = $D02000
Pal(253) = $600000
Pal(254) = $00F0F0
Das ist Basic-Code.
Es wird ein Array mit den Farbwerten befüllt und dient dann als Palette. Dabei ist der Arrayindex = 8bit Zahl eines Pixels. Also quasie eine "Look up Table"
Beiträge: 2.827
Themen: 101
Registriert seit: 25.09.2005
0 Zitat:Original von Manny Calavera
ich stelle es mir schwierig vorher gewisse gegenstände zu übertragen. einiges gibts bei dsa1 doch vermutlich einfahc nicht oder?
Ganz genau. Diese Gegenstände müssen entfernt werden bei der Konvertierung. Es gibt auch Gegenstände in DSA1, welche es nicht in DSA2 und DSA3 gibt. Diese werden von den Spielen auch entfernt. Dazu zählt z.B. die rote Mondscheibe.
Beiträge: 7.357
Themen: 130
Registriert seit: 13.07.2006
0 Ein paar Dinge bezüglich der Bilddaten hatte ich natürlich schon rausgefunden - wie kann ich denn nun die Palette an die Rohdaten hängen, damit dabei ein Bild herauskommt? Ich habe mir mal den BMP- und den GIF-Standard angeschaut, da stehen solche Sachen irgendwo im Header (habe allerdings auch dort keine genaue Vorstellung, wie ich jetzt 32 Farben da reinquetschen sollte). Beim RAW-Format habe ich eigentlich gar keinen Header benutzt, da hast du also Recht mit der fehlenden Palette.
Es wäre ganz nett (und für dich hoffentlich machbar), wenn du mir mal ein solches DSA-Charakter-Portrait als Bilddatei zukommen lassen könntest. Also eine Datei, die ich z.B. mit IrfanView öffne und dann das korrekte Bild sehe. Dazu müsste natürlich IN der Datei der Original-DSA-"Bildcode" vprhanden sein, damit ich das auch verstehe und reproduzieren kann .
Mal angenommen, ich hätte alle Bilder und den zugehörigen HEX-Code, dann könnte ich den natürlich leicht in mein Programm einbauen. Aber zur Auswahl der Bilder müsste eine grafische Benutzeroberfläche her, die hatte ich eigentlich nicht geplant. Über Kommandozeilen-Parameter wäre die Auswahl von 6 Bildern wohl etwas hässlich...
Beiträge: 2.827
Themen: 101
Registriert seit: 25.09.2005
0 Kann ich machen, kann aber bis zum Wochenende dauern.
Beiträge: 7.357
Themen: 130
Registriert seit: 13.07.2006
0 Ok, ich dürfte heute und morgen selbst keine Zeit haben.
Falls möglich, kannst du ja mal ein paar neugierige Fragen beantworten:
Benutzen alle Bilder die gleiche Palette?
Du hast nicht zufällig ein paar interessante Threads oder suchbare Stichworte aus dem DSA-Forum zur Hand? (ich habe mich gestern schonmal dort umgeschaut, aber nur einen Thread gefunden, in dem beschrieben wird, wie man angebliche jedes Bild in ein DSA-Portrait konvertieren kann)
Wenn das mit der Palette so gut klappt, wie ich mir das jetzt vorstelle , dann werde ich mal Bilder sammeln um sie dann als Charakter-Portraits für DSA1 zur Auswahl zu stellen - also Bilder aus den 3 DSA Spielen.
EDIT: Ich habe mich jetzt mal in Crystals DSA-Forum angemeldet und ganz frech bei "Vermittler" Thorium eingetragen. Da es den Namen dort gab, hoffe ich mal, dass das auch du bist . Habe noch ein paar interessante Informationen bezüglich der Portraits gefunden, die eine reine Konvertierung eventuell sehr erleichtern. Aber jetzt muss ich erstmal meinen täglichen Pflichten nachgehen...
Beiträge: 2.827
Themen: 101
Registriert seit: 25.09.2005
0 Zitat:Original von thEClaw
Benutzen alle Bilder die gleiche Palette?
Alle Charakterportrais verwenden die gleiche Palette aber nicht alle Bilder im Spiel.
Zitat:Original von thEClaw
EDIT: Ich habe mich jetzt mal in Crystals DSA-Forum angemeldet und ganz frech bei "Vermittler" Thorium eingetragen. Da es den Namen dort gab, hoffe ich mal, dass das auch du bist . Habe noch ein paar interessante Informationen bezüglich der Portraits gefunden, die eine reine Konvertierung eventuell sehr erleichtern. Aber jetzt muss ich erstmal meinen täglichen Pflichten nachgehen...
Jap das bin ich. ^^ Dürfest da auch Posts von mir gefunden haben, oder finden. Such mal nach HEX da dürfte allerhand kommen. Zu den Portrais such einfach nach meinem Benutzernamen.
Du kannst jedes Bild zu einem Charakterportrai umwandeln, allerdings musst du dafür die Farben konvertieren und es gehen natürlich Farben verloren, deswegen sind die zusätzlichen 103 Farben so nützlich.
Siehe hier ein Bild aus DSA3 als Portrai in DSA1: http://www.crystals-dsa-foren.de/showthr...9#pid43279
Und hier das Tool, welches ich geschrieben hatte: http://www.crystals-dsa-foren.de/showthr...4#pid43334
Beiträge: 7.357
Themen: 130
Registriert seit: 13.07.2006
0 Falls es irgendwen interessiert , mein kleines Programm hat jetzt einen nutzbaren Status erreicht. Meine eigenen Spielstände kann ich schon konvertieren (das sind insgesamt zwei verschiedene). Sollte jemand testen möchten oder einfach mal seine DSA3-Spielstände nach DSA1 konvertieren wollen, sage er bescheid und ich hänge das Programm hier in den Thread .
|