Hello, Guest the thread was called1.3k times and contains 10 replays

last post from Dekay at the

Byte order swap utility

  • Warum das wohl unter "Gelaber" platziert war? :nixwiss:


    Ontopic:
    Ich wusste nicht mal was Du genau meintest, also ich habe es so verstanden, dass Du einzelne Bytes (wie z.B. PRG Startadressen-Bytes) swappen willst,
    deshalb habe ich auch die Antwort von MacB schematisch nicht verstanden.


    Habe den Befehl nachgeschaut: Was Du also willst, ist im kompletten File, Low- und High-Bytes swappen?

  • Ja, ich muss für einen CD32 FMV ROM Vergleich alle Bytes tauschen.


    Ich habe dieses ROM von meinem nicht funktioniernden FMV per TL866CS und einem Adapter (27C4001 -> 27C4096) ausgelesen und wollte mit einem Original vergleichen. Das ROM File was ich zum Vergleich bekommen habe hat aber alle Bytes getauscht im Gegensatz zu dem ausgelesenen.
    Warum das so ist weiß ich noch nicht. Ich muss das erst noch rausbekommen.


    Selbst nach dem Byte swap gibt es immer noch Unterschiede der ROMs und das bei gleicher Versionsnummer. Entweder mein ROM ist doch defekt oder das hat einen
    anderen Grund und ich hab einfach keine Ahnung davon.

  • Das ROM File was ich zum Vergleich bekommen habe hat aber alle Bytes getauscht im Gegensatz zu dem ausgelesenen.
    Warum das so ist weiß ich noch nicht. Ich muss das erst noch rausbekommen.

    Nunja, der 68k ist soweit ich weiß big endian, das heißt ein Wort wird mit dem MSB zuerst gespeichert. Big endian ist eher ungewöhnlich und wenn man sich deine Bilder ansieht scheint dieses ROM-File den Inhalt als 16bit-Wörter zu interpretieren, die aber little endian abgelegt wurden. Das erklärt die "zerwürfelten" Strings .... ich hätte jetzt eher erwartet, dass ein ROM-File die Bytes immer in der byte order der Zielarchitektur enthält :o

  • Ich hab die Endian Geschichte immer gleich mit 4 Byte verbunden, nicht mit 2 Byte. Ist wohl nicht so...

    Ne. 4 Bytes sind natürlich typisch auf byte-adressierbaren 32bit Systemen. Aber generell bestimmt Endianness auf byte-adressierbaren Systemen einfach die Reihenfolge, in der die Bytes eines breiteren Wortes abgelegt werden -- unabhängig davon, wie breit dieses Wort nun ist *). Der 6502 ist auch little-endian, was man bei den 16bit Pointern sehen kann.


    Deshalb schrieb ich ja, dass bei diesem ROM-Dump der Inhalt als Folge von 16bit Wörtern interpretiert wurde -- warum man das macht verstehe ich nicht ganz, z.B. Strings bestehen ganz sicher nicht aus 16bit Wörtern.


    *) Wenn man mal von grauenhaft schrägem Zeug wie middle/mixed endian absieht :o

  • So, endlich kommt Licht in die Sache. Dieses MiniPro Programmer Tool speichert Dateien byte swapped.
    Einziger Unterschied zum bekommenen ROM File ist, dass im ausgelesenen File hinten dran lauter Nullen gespeichert wurden und das heißt das ROM ist völlig okay und damit was anderes am FMV kaputt. :cry: