Willkommen im cgboard - classic games Forum! Deine gemütliche Retro Gaming Community. Besuche uns auch im Discord Chat.

[Frage] Das schwarze Auge - Spielstände ändern...
#1
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 Wink.

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 Wink.

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? Wink
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 Smile)
Zitieren
#2
0
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#3
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
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#4
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.
Zitieren
#5
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.
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#6
0
Ja, das mit dem Bild habe ich schon rausgefunden Wink.
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... Sad 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 Confused. Außerdem muss natürlich das neue Bild für Teil 1 her. Bei Gelegenheit werde ich dann mal das Programm zusammenschustern Smile.
Zitieren
#7
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
Zitieren
#8
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.
Zitieren
#9
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"
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#10
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.
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#11
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 Smile.
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...
Zitieren
#12
0
Kann ich machen, kann aber bis zum Wochenende dauern.
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#13
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 Smile, 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 Wink. 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... Smile
Zitieren
#14
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 Wink. 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... Smile
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
Wir entwickeln Spiele, schaut mal vorbei: CatBit Software
Zitieren
#15
0
Falls es irgendwen interessiert Big Grin, 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 Smile.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  [Problem] Das Eulemberg-Experiment (Win 8) Commodus 42 8.059 12.11.2021, 13:15
Letzter Beitrag: selectahpat
  Frage: Windows Auflösung bei einer Verknüpfung ändern lopez72 9 3.682 02.05.2020, 22:54
Letzter Beitrag: Traxx Amiga EP
  [Problem] Das Vermächtnis - Der Baum des Lebens *Soundbug* CrazyJose 6 3.423 09.11.2019, 15:15
Letzter Beitrag: CrazyJose
  Das große Disc-Sterben Heinrich Reich 10 3.831 18.09.2018, 14:36
Letzter Beitrag: Heinrich Reich
  Das Gaming-Tagebuch Atreyu 29 14.838 21.05.2018, 06:04
Letzter Beitrag: Heinrich Reich

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste