1. Dashboard
  2. Forum
  3. Filebase
  4. Lexikon
  5. Artikel
  6. Spieletest
  7. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  8. Zur Transport Fever Community
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Filebase-Eintrag
  • Lexikon
  • Artikel (Bewertungssystem)
  • Erweiterte Suche
  1. WiSim Welt
  2. Forum
  3. Spiele
  4. Chris Sawyer's Locomotion
  5. Allgemeines

Aufbau der DAT-Files für Vehicles ?

  • Abfahrtstafel
  • 17. Februar 2011 um 16:04
  • Abfahrtstafel
    Schüler
    Beiträge
    124
    Filebase Einträge
    4
    • 17. Februar 2011 um 16:04
    • #1

    Hallo zusammen,
    hat zufällig einer von euch Ahnung, wie die Dat-Files aufgebaut sind?
    Würde gerne ein PNG auf einer Dat auslesen ohne locotool.exe zu verwenden.

    Leider sind die PNGs in den Dats nicht direkt im PNG-Format gespeichert. Die scheinen irgendwie vorher verschlüsselt/komprimiert zu sein.

    Also falls sich zufällig schonmal jemand von euch damit beschäftigt hat, soll er sich bitte bei mir melden.
    Viele Grüße

    ~ deutsche Züge für Locomotion ~

    • Zitieren
  • AZUWSK
    wcf.user.rank.superModerator
    Beiträge
    1.165
    Filebase Einträge
    33
    • 17. Februar 2011 um 19:15
    • #2

    Wozu benötigtst du denn diese Informationen? mit Locotool kommst du doch ganz leicht an die PNGs. Mir fällt nur Josef Drexler, der Ersteller des Locotools, als Ansprechpartner ein. Wie du ihn kontacktieren kannst weis ich nicht, aber vielleicht findest du in einer Readme eine Mailadresse.
    EDIT: Hier steht eine Adresse

    Errare humanum est.
    Irren ist menschlich.

    Meine Locoprojekte

    Voith Gravita
    NSB Typ 73
    EG101

    Einmal editiert, zuletzt von AZUWSK (17. Februar 2011 um 19:27)

    • Zitieren
  • KW1
    Anfänger
    Beiträge
    49
    • 18. Februar 2011 um 02:27
    • #3

    Zur Info für PPEviersen: Josef Drexel spricht und schreibt deutsch obwohl er im US-Bundesstaat New York lebt.

    Außerdem sind die Dats nach ISO 8859-1 verschlüsselt. Weiss nicht ob dir das weiterhilft.

    • Zitieren
  • Auge
    Fortgeschrittener
    Reaktionen
    5
    Beiträge
    495
    • 18. Februar 2011 um 13:52
    • #4

    Hallo

    Zitat von PPEviersen

    Würde gerne ein PNG auf einer Dat auslesen ohne locotool.exe zu verwenden.


    Darf ich fragen, warum diese Bedingung so wichtig ist? Mit Locotool kannst du die DAT entpacken und hast Zugriff auf alle Bestandteile. Ob du alle Dateien oder auch nur eine PNG-Graphik bearbeitest, ist völlig egal. Das Programm genügt also deinen Anforderungen, wenn auch nicht so, wie du dir das wünschst. Aus- und wieder einpacken musst du die DAT oder einen ihrer Bestandteile so oder so, wobei es – meines Wissens nach – keine Lösung für den zweiten Ansatz gibt.

    Zitat von KW1

    Außerdem sind die Dats nach ISO 8859-1 verschlüsselt. Weiss nicht ob dir das weiterhilft.


    Das gilt nur für die enthaltene XML-Datei (warum Mr. Sawyer das auch immer gemacht hat, normal ist für XML die Kodierung UTF-8). Die PNGs sind Binärdateien, für die die Zeichenkodierung keine Rolle spielt.

    Tschö, Auge

    • Zitieren
  • Merk
    Fortgeschrittener
    Reaktionen
    1
    Beiträge
    407
    Filebase Einträge
    18
    • 18. Februar 2011 um 14:25
    • #5
    Zitat von Auge

    Darf ich fragen, warum diese Bedingung so wichtig ist?


    Zum Beispiel um sich die Objekte in Dats ansehen zu können ohne zusätzliche Datei erzeugen zu müssen. ;)

    Ich hab mir das Wissen über den Aufbau einer Dat von diversen Seiten und mit Hilfe von Locotool und einem Hex-Editor (ein Viewer würde wohl auch reichen) zusammengesucht.
    Im Zusammenhang mit den Grafiken dürften folgende Seiten nützlich sein:
    http://www.strategyplanet.com/rctuk/tid/LocoObjdata.html
    http://www.strategyplanet.com/rctuk/tid/csg/csg.html (bezieht sich zwar auf RCT, aber Loco nutzt das selbe Format)

    Den Teil vor den Grafiken kann man entschlüsseln, indem man sich eine Dat mit Locotool zerlegt (unbedingt auch unbekannte Variablen ausgeben lassen) und die entstandene XML mit den Bytes der Dat vergleicht (Hex-Editor/Viewer).
    Die Bedeutung der einzelnen Felder wird hier ganz gut erklärt: http://wiki.locomotiondepot.net/index.php?title=Variable:List

    :!: Wichtig: Die Dats sind noch auf bestimmte Arten kodiert und müssen noch dekodiert werden bevor man die oben genannten Sachen benutzen kann: http://wiki.locomotiondepot.net/index.php?titl…oFiles:Encoding

    Zum Thema XML und PNG: Diese Dateitypen wurden von Josef Drexler wahrscheinlich nur wegen der Übersichtlichkeit bzw. der Bearbeitung gewählt, sie haben nichts mit dem internen Aufbau einer Dat zu tun.

    Wer noch Fragen hat möge sich melden.

    Meine Mods für Locomotion
    Adventskalender 2011

    • Zitieren
  • Abfahrtstafel
    Schüler
    Beiträge
    124
    Filebase Einträge
    4
    • 18. Februar 2011 um 20:36
    • #6

    Schon mal vielen Dank für die Antworten. Besonders der Link zum Encoding im Wiki wird mir sicherlich helfen.
    Wusste zwar schon, dass ich die Daten Decodieren muss, auch Lauflängenkodierung ist mir schon über den Weg gelaufen. Aber dort scheints ja richtig gut dokumentiert zu sein.
    Jetzt kann ich erstmal weiter basteln.
    Vielen Dank

    EDIT:

    Zitat von Merk

    Den Teil vor den Grafiken kann man entschlüsseln, indem man sich eine Dat mit Locotool zerlegt (unbedingt auch unbekannte Variablen ausgeben lassen) und die entstandene XML mit den Bytes der Dat vergleicht (Hex-Editor/Viewer).
    Die Bedeutung der einzelnen Felder wird hier ganz gut erklärt: http://wiki.locomotiondepot.net/index.ph…e=Variable:List


    Hab ich ja noch garnicht gemacht..... wird aber nachgeholt

    ~ deutsche Züge für Locomotion ~

    Einmal editiert, zuletzt von PPEviersen (19. Februar 2011 um 17:32)

    • Zitieren
  • Abfahrtstafel
    Schüler
    Beiträge
    124
    Filebase Einträge
    4
    • 19. Februar 2011 um 12:07
    • #7

    Im Anhang ist ein PNG und die Dat, mit der ich am testen bin.

    Wenn ich bisher richtig gelesen haben, müsste das erste Byte eigentlich (17) sein. Ist aber (97). Naja das interessiert mich ja eigentlich nicht also weiter.
    Das nächst interessante ist das 4. Byte (11). Das sagt aus, dass es sich um eine Loco-Dat handelt.

    die nächsten 8 Byte sind der DAT-Name. Die nächsten 4 Checksummen.

    Das 17. Byte (01 blau makiert) sagt aus, dass hier dekodiert werden muss. Undzwar RLE.
    So jetzt denke ich, dass die nächsten 4 Byte die ?Länge? angeben. Welche Länge?
    EDIT: Lösung: 4Byte Little-Endian! Die Zahl passt in meinem Beispiel ziemlich genau auf den Rest der Datei

    Ab dem nächsten Byte (FD) habe ich RLE-dekodiert. Klappt auch wunderbar.
    Wie komme ich jetzt aber an die Stelle, wo die erste Grafik anfängt?

    Dateien

    dat_im_hex.png 24,95 kB – 537 Downloads PPETR09A-original.dat 253,81 kB – 517 Downloads

    ~ deutsche Züge für Locomotion ~

    Einmal editiert, zuletzt von PPEviersen (19. Februar 2011 um 19:24)

    • Zitieren
  • z001wttk
    Schüler
    Beiträge
    63
    • 19. Februar 2011 um 15:18
    • #8

    Hi PPEviersen,

    Hab die disassembliert, kannst vllt sehen wie deine Dat-Datei aufgebaut ist.
    LG

    Dateien

    PPETR09A-original.rar 753,08 kB – 1.061 Downloads

    Braucht ein Anwalt einen Anwalt, wenn er schuldig ist?!

    • Zitieren
  • Abfahrtstafel
    Schüler
    Beiträge
    124
    Filebase Einträge
    4
    • 19. Februar 2011 um 17:17
    • #9

    Vielen Dank. Aber....

    ... die Dats sind doch keine ausführbaren Programme. Sie sind doch vielmehr ein einfacher Datenspeicher.
    Was will ich dann also mit irgendeinem Assembler Code?

    Oder reden wir gerade aneinander vorbei und du kannst tatsächlich was daraus lesen?

    ~ deutsche Züge für Locomotion ~

    • Zitieren
  • digidampfman
    Profi
    Beiträge
    528
    Filebase Einträge
    70
    • 19. Februar 2011 um 17:40
    • #10

    Hi PPEviersen,

    unter dem Download-Link von LocoTool hier findest du auch die Sourcen von LocoTool. Vielleicht hilft dir das weiter.


    Gruß
    digidampfman

    8-) Love me Tenderlok

    • Zitieren
  • Abfahrtstafel
    Schüler
    Beiträge
    124
    Filebase Einträge
    4
    • 20. Februar 2011 um 00:45
    • #11

    Habe ich schon längst hier liegen. Da ich mich aber nicht täglich damit beschäftige, ist das doch recht schwer für mich zu lesen. Zumal, wenn jedes "überlesene" byte alles durcheinander bringen kann.

    Wollte euch aber meinen Fortschritt präsentieren.
    http://locomotion.abfahrtstafel.de/dataufbau.php

    Wo ich dringend noch Hilfe benötige ist zum einen bei den "Group Info" (Rot markierte Zeile)

    sowie die das richtige lesen der "Graphic Data"

    Ich habe zwar bereits einmal den empfohlenen Artikel "RCT GRAPHICS FILES" gelesen, jedoch ist der Funke noch nicht so recht übergesprungen.
    Was für meinen Fall wichtig ist, ist dass bei mir bei allen Grafiken das Flag 5 gesetzt ist. also "Compacted Bitmap".
    - Was ist z.B. genau mit Scanline gemeint?
    - Wie genau ist das mit Startadresse Offset gemeint? Hmm...

    Weiter interessiert mich noch, was die 200 byte am Anfang der Grafikdaten zu sagen haben.

    ~ deutsche Züge für Locomotion ~

    Einmal editiert, zuletzt von PPEviersen (20. Februar 2011 um 03:21) aus folgendem Grund: Neue Erkentnisse

    • Zitieren
  • Merk
    Fortgeschrittener
    Reaktionen
    1
    Beiträge
    407
    Filebase Einträge
    18
    • 20. Februar 2011 um 04:07
    • #12
    Zitat von PPEviersen

    Wo ich dringend noch Hilfe benötige ist zum einen bei den "Group Info" (Rot markierte Zeile)


    Wenn ich mich nicht irre, müssten das die Cargo-Slots sein, wie genau die aufgebaut sind weiß ich gerade nicht, aber ich schau es mir im Laufe des Tages nochmal an.


    Zitat von PPEviersen

    Weiter interessiert mich noch, was die 200 byte am Anfang der Grafikdaten zu sagen haben.


    Diese 200 Bytes sind eigentlich 100*2 Bytes. Damit wird für jede Zeile des Bildes angegeben, wo die Grafikdaten für diese Zeile zu finden sind (Offset), da die Größe der Grafikdaten pro Zeile nicht festgelegt ist.

    Zitat von RCT Graphics Files

    Flags = 5: Compacted bitmap - the StartAddress points to a table of row start offsets (word wide).

    Meine Mods für Locomotion
    Adventskalender 2011

    • Zitieren
  • Abfahrtstafel
    Schüler
    Beiträge
    124
    Filebase Einträge
    4
    • 20. Februar 2011 um 14:31
    • #13
    Zitat von Merk

    Wenn ich mich nicht irre, müssten das die Cargo-Slots sein, wie genau die aufgebaut sind weiß ich gerade nicht, aber ich schau es mir im Laufe des Tages nochmal an.


    Wäre super, wenn du dir das mal anschauen könntest. Wenn ich es mit der XML vergleiche sind genau dort die Cargo-Slots.
    Ich brauch jetzt also was, womit ich unabhängig von den definierten Cargo-Daten den Anfang des "Image Directory" finden kann.

    ~ deutsche Züge für Locomotion ~

    • Zitieren
  • Merk
    Fortgeschrittener
    Reaktionen
    1
    Beiträge
    407
    Filebase Einträge
    18
    • 20. Februar 2011 um 16:55
    • #14

    Also es sind immer beide Cargo-Slots in der Dat eingetragen, egal ob sie benutzt werden oder nicht.
    Das erste Byte für einen Slot gibt die Kapazität an, ist diese 0 kommt direkt der nächste Slot.
    Sonst folgen jeweils 3 Byte für die möglichen Frachtarten(*) und das Ende des Slots wird mit zwei voll gesetzten Bytes markiert (FF FF).

    Nach meinem bisherigen Wissensstand stehen die Cargo-Slots übrigens immer hinter den benötigten Trackmods.

    (*): Laut Locotool ein Byte für die Fracht-Id und 2 Bytes, die angeben welche Sprites für die Frachtart benutzt werden sollen, da das mittlere der 3 Bytes aber immer 0 ist halte ich eine Aufteilung 2/1 für wahrscheinlicher (möglicherweise auch 1/1/1).

    Edit: In der Beispiel-Dat kann das Fahrzeug also 79 Passagiere (ID=12) im ersten Slot transportieren und nichts im zweiten.

    Meine Mods für Locomotion
    Adventskalender 2011

    • Zitieren
  • Abfahrtstafel
    Schüler
    Beiträge
    124
    Filebase Einträge
    4
    • 21. Februar 2011 um 21:52
    • #15

    Wunderbar. Jetzt klappts. Vielen Dank für die Hilfe :)
    http://locomotion.abfahrtstafel.de/dataufbau.php?debug=1&dat=PPETR09C

    Werde jetzt noch ein paar andere Dats testen.

    ~ deutsche Züge für Locomotion ~

    • Zitieren

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Twitch

  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™