Liebe Mitglieder,
in diesem Beitrag möchte ich verschiedene Sprachvarianten der DSLR-A100 vorstellen und einen Weg aufzeigen, wie man die in der Kamera normalerweise fest verankerte Sprachauswahl umstellen kann. Der naheliegenste Anwendungsfall dürfte darin bestehen, einem Modell, das eine gewünschte Menüsprache nicht unterstützt, diese nachträglich beizubringen, aber mit dem Wissen um den Aufbau der Meldungen wird es auch möglich, Meldungstexte anzupassen oder bislang nicht unterstützte Sprachen zu implementieren. Die Anwendung der Informationen erfolgt auf Euer eigenes Risiko, ich übernehme keine Haftung für ewaige Schäden welcher Art auch immer, die daraus entstehen. Im Extremfall wird die Kamera dadurch zu einem Fall für den Service!
Wie Ihr bestimmt wißt, bringt Sony die Alpha-DSLRs weltweit in leicht verschiedenen Modellvarianten heraus, die sich (bis auf ganz wenige Ausnahmen) zwar nicht in ihren technischen Eckwerten unterscheiden, wohl aber in der Auswahl der unterstützen Sprachen für die Menüführung. Je nach Variante liegt auch die Bedienungsanleitung in unterschiedlichen Sprachen vor, und die beigepackten Netzgeräte können in ihrem zulässigen Spannungs- und Frequenzbereichen, den passenden Netzsteckern und dem Videoausgabeformat variieren. Es ist auch möglich, daß die Modelle unterschiedliche Prüfplaketten tragen, je nachdem, was im Zielmarkt gefordert ist. In seltenen Fällen unterscheidet sich auch der Funktionsumfang der Kameras voneinander (wie etwa bei der DSLR-A700, wo das europäische Modell ohne Griffsensor daherkommt). Diese landesspezifischen Varianten sind über den mit einem Punkt abgetrennten Suffix hinter der normalen Artikelbezeichnung zu identifizieren.
Die DSLR-A100, um die es in diesem Beitrag geht, wurde in zwei Farbvarianten (schwarz und champagner) und in verschiedenen Bundles mit Objektiven angeboten. Weltweit gab es die folgenden regionalen Varianten, die ich hier mal in Sonys eigener Nomenklatur aufliste und den verwendeten Suffixen zuzuordnen versuche (soweit bekannt):
"DSLR-A100 US Model" (US) -> U2"DSLR-A100 Canadian Model" (CND) -> CA2"DSLR-A100 AEP Model" (AEP) -> CEE2, CEE4?, CEE5"DSLR-A100 UK Model" (UK) -> CEH?"DSLR-A100 E Model" (E) -> E32"DSLR-A100 Australian Model" (AUS) -> AU2"DSLR-A100 Hong Kong Model" (HK) -> HK1"DSLR-A100 Chinese Model" (CH) -> CN2, TW6?"DSLR-A100 Korea Model" (KR) -> KR2"DSLR-A100 Japanese Model" (J) -> J1"DSLR-A100 Tourist Model" (JE) -> JE3
Bei den meisten Modellen handelte es sich um Multilingual-Modelle, das "Japanese Model" (J1) unterstützte allerdings tatsächlich nur Japanisch als Menüsprache. Dementsprechend fehlt bei diesem Modell auch der Menüpunkt zum Umschalten der Sprache. Das ebenfalls in Japan erhältliche (teurere) "Tourist Model" (JE3) unterstützte stattdessen diverse andere Sprachen. Die Variante, die offiziell für Deutschland (und einige andere Länder) vorgesehen ist, ist übrigens die .CEE5.
Durch Vergleich der unterstützten Menüsprachen stellt sich heraus, daß man diese jeweils einer von vier Sprachgruppen zuordnen kann, die wohl auch von Sony selbst Gruppe 1, 2, 3 und 4 genannt werden. Jede dieser Gruppen korrespondiert mit verschiedenen Varianten der von Sony angebotenen Firmware-Download-Pakete mit den Endungen "J" (Gruppe 1 für Japan), "U" (Gruppe 2 für USA), "E" (Gruppe 3 für Europa) und "A" (Gruppe 4 für Asien und die pazifische Region).
Übersicht über die unterstützten Sprachen der verschiedenen Modelle (möglicherweise noch unvollständig):
Unterstützte Sprachen / Modellvariante (* = Standardsprache, + = unterstützt, - = nicht unterstützt):
Sprache \ ModellcodeJ1 (JPN)U2, CA2, AU2CEE2 (CEE)CEE4CEE5, CEHE32, HK1, JE3, TW6CN2KR2SprachcodeJapanisch*-------00hEnglisch-*++**++01h oder FFh?Französisch-++++---02hDeutsch--+++---03hSpanisch-++*++++04hItalienisch-++++---05hPortugiesisch--++++++06hNiederländisch--+++---07hRussisch--*++---08hSchwedisch--+++---09hDänisch--+++---0AhNorwegisch--+++---0BhFinisch (Suomi)--+++---0ChPolnisch--+++---0DhTschechisch--+++---0EhUngarisch--+++---0FhChinesisch (traditionell)-+---+++10h oder 11h?Chinesisch (vereinfacht)-+---+*+10h oder 11h?Arabisch-----+++12h, 13h, 14h oder 15h?Thailändisch-----+++12h, 13h, 14h oder 15h?Koreanisch-----++*12h, 13h, 14h oder 15h?Persisch-----+++12h, 13h, 14h oder 15h?Sprache / SprachgruppeGP1 / "J"GP2 / "U"GP3 / "E"GP3 / "E"GP3 / "E"GP4 / "A"GP4 / "A"GP4 / "A"Sprachcode
Hinweis: Die Modelle J1, U2, CA2 und KR2 haben NTSC, die Modelle AU2, CEE2, CEE4, CEE5, CEH, E32, JE3, TW6, HK1 und CN2 stattdessen PAL für den Videoausgang voreingestellt.
Wenn wir uns die von Sony zum Download angebotenen Firmware-Pakete anschauen, stellen wir fest, daß das eigentliche Firmware-Image in Form der DSCA100.APP-Datei sich zwar zwischen den Versionen 1.02 und 1.04 unterscheidet (logisch!, aber jeweils in allen vier Varianten "J", "U", "E" und "A" identisch ist (als "Gruppencode" findet sich dort 00h). Die den Firmware-Paketen beiliegenden DSCA100.STR-Dateien unterscheiden sich hingegen deutlich voneinander, was auch nicht weiter verwunderlich ist, enthalten sie doch die Meldungstexte für eine unterschiedliche Anzahl und Auswahl Sprachen. Die Unterschiede zwischen den Firmware-Revisionen 1.02 und 1.04 der gleichen Sprachgruppe manifestieren sich in dieser Datei jedoch lediglich in zwei geänderten Werten im Dateikopf selbst, von denen einer die Versionsnummer kodiert.
Um den im Grunde sehr einfachen Aufbau dieser Strings-Dateien zu verstehen, stelle ich im folgenden die Dateiköpfe aller vier Gruppen jeweils in Version 1.02 und 1.04 gegenüber.
Übersicht über die Dateiköpfe der DSCA100.STR-Sprachdateien ("J"/"U"/"E"/"A"-Firmware, Firmware 1.02/1.04) als Hex-Dump:
DSCA100.STR 1.02J
ZITAT00 00 67 58 00 00 01 02 -> Version 1.02
21 87 00 00 00 00 00 10 -> Kameramodell (2187), Sprachgruppe 1
31 30 31 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 06 10 -> Länge der Lookup-Tabelle pro Spracheneintrag in Bytes, 610h = 184h á 4 Bytes -> 388 Einträge pro Tabelle
00 00 00 40 00 00 00 00 -> Start der Lookup-Tabelle für Sprache "00000000h" (Japanisch) an Offset +00000040h
00 00 00 00 FF FF FF FF -> Land "FFFFFFFFh" und Offset +00000000h ist Ende-Markierung der Liste der Sprachen
00 00 00 00 00 00 00 00 -> Alignment bis zur nächsten Paragraphengrenze[/quote]
DSCA100.STR 1.02U
ZITAT00 00 67 58 00 00 01 02 -> Version 1.02
21 87 00 00 00 00 00 20 -> Kameramodell (2187), Sprachgruppe 2
31 30 31 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 06 10 -> Länge der Lookup-Tabelle pro Spracheneintrag in Bytes, 610h = 184h á 4 Bytes -> 388 Einträge pro Tabelle
00 00 00 60 00 00 00 03 -> Start der Lookup-Tabelle für Sprache "00000003h" (Deutsch) an Offset +00000060h
00 00 06 70 00 00 00 02 -> Start der Lookup-Tabelle für Sprache "00000002h" (Französisch) an Offset +00000670h
00 00 0C 80 00 00 00 04 -> Start der Lookup-Tabelle für Sprache "00000004h" (Spanisch) an Offset +00000C80h
00 00 12 90 00 00 00 05 -> Start der Lookup-Tabelle für Sprache "00000005h" (Italienisch) an Offset +00001290h
00 00 18 A0 00 00 00 10 -> Start der Lookup-Tabelle für Sprache "00000010h" (Chinesisch (traditionell oder vereinfacht?)) an Offset +000018A0h
00 00 1E B0 00 00 00 11 -> Start der Lookup-Tabelle für Sprache "00000011h" (Chinesisch (traditionell oder vereinfacht?)) an Offset +00001EB0h
00 00 00 00 FF FF FF FF -> Land "FFFFFFFFh" und Offset +00000000h ist Ende-Markierung der Liste der Sprachen[/quote]
DSCA100.STR 1.02E
ZITAT00 00 67 58 00 00 01 02 -> Version 1.02
21 87 00 00 00 00 00 30 -> Kameramodell (2187), Sprachgruppe 3
31 30 31 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 06 10 -> Länge der Lookup-Tabelle pro Spracheneintrag in Bytes, 610h = 184h á 4 Bytes -> 388 Einträge pro Tabelle
00 00 00 A0 00 00 00 03 -> Start der Lookup-Tabelle für Sprache "00000003h" (Deutsch) an Offset +000000A0h
00 00 06 B0 00 00 00 02 -> Start der Lookup-Tabelle für Sprache "00000002h" (Französisch) an Offset +000006B0h
00 00 0C C0 00 00 00 04 -> Start der Lookup-Tabelle für Sprache "00000004h" (Spanisch) an Offset +00000CC0h
00 00 12 D0 00 00 00 05 -> Start der Lookup-Tabelle für Sprache "00000005h" (Italienisch) an Offset +000012D0h
00 00 18 E0 00 00 00 09 -> Start der Lookup-Tabelle für Sprache "00000009h" (Schwedisch) an Offset +000018E0h
00 00 1E F0 00 00 00 06 -> Start der Lookup-Tabelle für Sprache "00000006h" (Portugiesisch) an Offset +00001EF0h
00 00 25 00 00 00 00 07 -> Start der Lookup-Tabelle für Sprache "00000007h" (Niederländisch) an Offset +00002500h
00 00 2B 10 00 00 00 08 -> Start der Lookup-Tabelle für Sprache "00000008h" (Russisch) an Offset +00002B10h
00 00 31 20 00 00 00 0B -> Start der Lookup-Tabelle für Sprache "0000000Bh" (Norwegisch) an Offset +00003120h
00 00 37 30 00 00 00 0A -> Start der Lookup-Tabelle für Sprache "0000000Ah" (Dänisch) an Offset +00003730h
00 00 3D 40 00 00 00 0C -> Start der Lookup-Tabelle für Sprache "0000000Ch" (Finnisch) an Offset +00003D40h
00 00 43 50 00 00 00 0D -> Start der Lookup-Tabelle für Sprache "0000000Dh" (Polnisch) an Offset +00004350h
00 00 49 60 00 00 00 0E -> Start der Lookup-Tabelle für Sprache "0000000Eh" (Tschechisch) an Offset +00004960h
00 00 4F 70 00 00 00 0F -> Start der Lookup-Tabelle für Sprache "0000000Fh" (Ungarisch) an Offset +00004F70h
00 00 00 00 FF FF FF FF -> Land "FFFFFFFFh" und Offset +00000000h ist Ende-Markierung der Liste der Sprachen[/quote]
DSCA100.STR 1.02A
ZITAT00 00 67 58 00 00 01 02 -> Version 1.02
21 87 00 00 00 00 00 40 -> Kameramodell (2187), Sprachgruppe 4
31 30 31 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 06 10 -> Länge der Lookup-Tabelle pro Spracheneintrag in Bytes, 610h = 184h á 4 Bytes -> 388 Einträge pro Tabelle
00 00 00 80 00 00 00 04 -> Start der Lookup-Tabelle für Sprache "00000004h" (Spanisch) an Offset +00000080h
00 00 06 90 00 00 00 06 -> Start der Lookup-Tabelle für Sprache "00000006h" (Portugiesisch) an Offset +00000690h
00 00 0C A0 00 00 00 10 -> Start der Lookup-Tabelle für Sprache "00000010h" (Chinesisch (traditionell oder vereinfacht?)) an Offset +00000CA0h
00 00 12 B0 00 00 00 11 -> Start der Lookup-Tabelle für Sprache "00000011h" (Chinesisch (traditionell oder vereinfacht?)) an Offset +000012B0h
00 00 18 C0 00 00 00 12 -> Start der Lookup-Tabelle für Sprache "00000012h" (?) an Offset +000018C0h
00 00 1E D0 00 00 00 14 -> Start der Lookup-Tabelle für Sprache "00000014h" (?) an Offset +00001ED0h
00 00 24 E0 00 00 00 13 -> Start der Lookup-Tabelle für Sprache "00000013h" (?) an Offset +000024E0h
00 00 2A F0 00 00 00 15 -> Start der Lookup-Tabelle für Sprache "00000015h" (?) an Offset +00002AF0h
00 00 00 00 FF FF FF FF -> Land "FFFFFFFFh" und Offset +00000000h ist Ende-Markierung der Liste der Sprachen[/quote]
DSCA100.STR 1.04J
ZITAT00 00 67 58 00 00 01 04 -> Version 1.04
21 87 00 00 00 00 00 10 -> Kameramodell (2187), Sprachgruppe 1
31 30 38 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 06 10 -> Länge der Lookup-Tabelle pro Spracheneintrag in Bytes, 610h = 184h á 4 Bytes -> 388 Einträge pro Tabelle
00 00 00 40 00 00 00 00 -> Start der Lookup-Tabelle für Sprache "00000000h" (Japanisch) an Offset +00000040h
00 00 00 00 FF FF FF FF -> Land "FFFFFFFFh" und Offset +00000000h ist Ende-Markierung der Liste der Sprachen
00 00 00 00 00 00 00 00 -> Alignment bis zur nächsten Paragraphengrenze[/quote]
DSCA100.STR 1.04U
ZITAT00 00 67 58 00 00 01 04 -> Version 1.04
21 87 00 00 00 00 00 20 -> Kameramodell (2187), Sprachgruppe 2
31 30 38 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 06 10 -> Länge der Lookup-Tabelle pro Spracheneintrag in Bytes, 610h = 184h á 4 Bytes -> 388 Einträge pro Tabelle
00 00 00 60 00 00 00 03 -> Start der Lookup-Tabelle für Sprache "00000003h" (Deutsch) an Offset +00000060h
00 00 06 70 00 00 00 02 -> Start der Lookup-Tabelle für Sprache "00000002h" (Französisch) an Offset +00000670h
00 00 0C 80 00 00 00 04 -> Start der Lookup-Tabelle für Sprache "00000004h" (Spanisch) an Offset +00000C80h
00 00 12 90 00 00 00 05 -> Start der Lookup-Tabelle für Sprache "00000005h" (Italienisch) an Offset +00001290h
00 00 18 A0 00 00 00 10 -> Start der Lookup-Tabelle für Sprache "00000010h" (Chinesisch (traditionell oder vereinfacht?)) an Offset +000018A0h
00 00 1E B0 00 00 00 11 -> Start der Lookup-Tabelle für Sprache "00000011h" (Chinesisch (traditionell oder vereinfacht?)) an Offset +00001EB0h
00 00 00 00 FF FF FF FF -> Land "FFFFFFFFh" und Offset +00000000h ist Ende-Markierung der Liste der Sprachen[/quote]
DSCA100.STR 1.04E
ZITAT00 00 67 58 00 00 01 04 -> Version 1.04
21 87 00 00 00 00 00 30 -> Kameramodell (2187), Sprachgruppe 3
31 30 38 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 06 10 -> Länge der Lookup-Tabelle pro Spracheneintrag in Bytes, 610h = 184h á 4 Bytes -> 388 Einträge pro Tabelle
00 00 00 A0 00 00 00 03 -> Start der Lookup-Tabelle für Sprache "00000003h" (Deutsch) an Offset +000000A0h
00 00 06 B0 00 00 00 02 -> Start der Lookup-Tabelle für Sprache "00000002h" (Französisch) an Offset +000006B0h
00 00 0C C0 00 00 00 04 -> Start der Lookup-Tabelle für Sprache "00000004h" (Spanisch) an Offset +0000CC0h
00 00 12 D0 00 00 00 05 -> Start der Lookup-Tabelle für Sprache "00000005h" (Italienisch) an Offset +000012D0h
00 00 18 E0 00 00 00 09 -> Start der Lookup-Tabelle für Sprache "00000009h" (Schwedisch) an Offset +000018E0h
00 00 1E F0 00 00 00 06 -> Start der Lookup-Tabelle für Sprache "00000006h" (Portugiesisch) an Offset +00001EF0h
00 00 25 00 00 00 00 07 -> Start der Lookup-Tabelle für Sprache "00000007h" (Niederländisch) an Offset +00002500h
00 00 2B 10 00 00 00 08 -> Start der Lookup-Tabelle für Sprache "00000008h" (Russisch) an Offset +00002B10h
00 00 31 20 00 00 00 0B -> Start der Lookup-Tabelle für Sprache "0000000Bh" (Norwegisch) an Offset +00003120h
00 00 37 30 00 00 00 0A -> Start der Lookup-Tabelle für Sprache "0000000Ah" (Dänisch) an Offset +00003730h
00 00 3D 40 00 00 00 0C -> Start der Lookup-Tabelle für Sprache "0000000Ch" (Finnisch) an Offset +00003D40h
00 00 43 50 00 00 00 0D -> Start der Lookup-Tabelle für Sprache "0000000Dh" (Polnisch) an Offset +00004350h
00 00 49 60 00 00 00 0E -> Start der Lookup-Tabelle für Sprache "0000000Eh" (Tschechisch) an Offset +00004960h
00 00 4F 70 00 00 00 0F -> Start der Lookup-Tabelle für Sprache "0000000Fh" (Ungarisch) an Offset +00004F70h
00 00 00 00 FF FF FF FF -> Land "FFFFFFFFh" und Offset +00000000h ist Ende-Markierung der Liste der Sprachen[/quote]
DSCA100.STR 1.04AZITAT00 00 67 58 00 00 01 04 -> Version 1.04
21 87 00 00 00 00 00 40 -> Kameramodell (2187), Sprachgruppe 4
31 30 38 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 06 10 -> Länge der Lookup-Tabelle pro Spracheneintrag in Bytes, 610h = 184h á 4 Bytes -> 388 Einträge pro Tabelle
00 00 00 80 00 00 00 04 -> Start der Lookup-Tabelle für Sprache "00000004h" (Spanisch) an Offset +00000080h
00 00 06 90 00 00 00 06 -> Start der Lookup-Tabelle für Sprache "00000006h" (Portugiesisch) an Offset +00000690h
00 00 0C A0 00 00 00 10 -> Start der Lookup-Tabelle für Sprache "00000010h" (Chinesisch (traditionell oder vereinfacht?)) an Offset +00000CA0h
00 00 12 B0 00 00 00 11 -> Start der Lookup-Tabelle für Sprache "00000011h" (Chinesisch (traditionell oder vereinfacht?)) an Offset +000012B0h
00 00 18 C0 00 00 00 12 -> Start der Lookup-Tabelle für Sprache "00000012h" (?) an Offset +000018C0h
00 00 1E D0 00 00 00 14 -> Start der Lookup-Tabelle für Sprache "00000014h" (?) an Offset +00001ED0h
00 00 24 E0 00 00 00 13 -> Start der Lookup-Tabelle für Sprache "00000013h" (?) an Offset +000024E0h
00 00 2A F0 00 00 00 15 -> Start der Lookup-Tabelle für Sprache "00000015h" (?) an Offset +00002AF0h
00 00 00 00 FF FF FF FF -> Land "FFFFFFFFh" und Offset +00000000h ist Ende-Markierung der Liste der Sprachen[/quote]
Der eigentliche Kopfbereich einer .STR-Datei besteht offenbar aus 32 Bytes ab Offset +00000000h, in dem verschiedene "globale" Informationen kodiert sind, darunter insbesondere die Versionsnummer ("01h 02h" oder "01h 04h" und die interne Codenummer der Kamera ("21h 87h"), beide erstaunlicherweise in der für Menschen unmittelbar lesbaren Big Endian BCD-Darstellung. Außerdem findet sich dort auch der Gruppencode ("10", "20", "30", "40".
Die Tabelle der unterstützten Sprachen in einer solchen Datei beginnt offenbar immer an Dateioffset +00000020h, angefangen mit 8 Bytes, in denen die Größe der Lookup-Tabellen für jede Sprache in Bytes abgelegt ist. Unmittelbar daran (also ab Offset +00000028h) schließt sich eine Liste der in der Datei enthaltenen Sprachen an. Jeder Eintrag in dieser Liste besteht aus zwei 4 Byte großen Einträgen. In den ersten vier Bytes eines jeden Eintrags ist das Dateioffset angegeben, wo die landesspezifische Lookup-Tabelle der zugehörigen Sprache beginnt, in den zweiten vier Bytes steht eine Zahl, die jeder Sprache eine offenbar eindeutige ID zuordnet (soweit möglich, habe ich diese IDs oben in die Übersichtstabelle der Sprachen aufgenommen - für den Fall, daß diese IDs bei Sony über die Grenzen der Kamera hinweg koordiniert werden, eine vielleicht zukünftig interessante Information). (Möglicherweise entscheidet die Reihenfolge der Spracheinträge in dieser Tabelle über die Reihenfolge ihres Erscheinens im Sprachauswahlmenü?) Das Ende der Sprachliste wird durch einen Eintrag markiert, bei dem als Offset der ungültige Eintrag +00000000h oder als Land "FFFFFFFFh" angegeben ist. Bemerkenswert ist, daß die Sprache Englisch in keiner der Sprachdateien vorkommt. Die .STR-Dateien stellen also offenbar eine Art Ergänzung der schon von der Grund-Firmware unterstützten Sprachen dar, der genaue Mechanismus ist mir aber noch unbekannt.
Eine Lookup-Tabelle für jede Sprache besteht aus einer Liste von 4 Byte großen Einträgen, die das Offset einer Textmeldung in der jeweiligen Sprache in der Datei angeben. Diese Liste enthält für jede Sprache, die in der Datei enthalten ist, die im Dateikopf verankerte Anzahl Einträge (hier: 610h Bytes entsprechend 388 Einträgen). Die Kamera wird diese Meldungen einfach durchnumerieren, d.h. Meldung 1 kann über den ersten Eintrag in der Lookup-Tabelle gefunden werden, Meldung 2 über den folgenden, usw. Die logische Reihenfolge der Meldungen in der Datei muß also über alle Sprachen hinweg gleich bleiben (was allerdings nicht heißt, daß die Meldungen auch physikalisch unter aufsteigenden Dateioffsets zu finden sein müßten).
Die einzelnen Meldungen sind in einem 16-Bit-Zeichensatz big-endian kodiert, möglicherweise in ISO/IEC 10646 UCS-2 bzw. Unicode. Das Ende jeder Meldung wird durch das Zeichen NUL (00h 00h) markiert. Einige Meldungen beginnen mit dem Token wie 40h 06h, andere enden (vor dem abschließenden NUL-Zeichen) mit dem Zeichen 2Eh 00h, die vermutlich Sonderzeichen oder Attribute in der Display-Darstellung steuern.
Versucht man nun, einer Kamera die Firmware-Dateien einer anderen Sprachgruppe vorzusetzen, so weigert sich die Kamera, diese anzunehmen. Die Kamera muß also intern und für Benutzer unveränderbar kodiert haben, welche Gruppe von Firmware-Paketen akzeptiert wird. Möchte man nun einer japanischen DSLR-A100 der Gruppe 1 ("10h" andere Sprachen beibringen, so kann man sich die gewünschte DSCA100.STR Datei einer anderen Sprachgruppe nehmen und dort im Dateikopf an Offset +0000000Fh den "falschen" Gruppencode ("20h", "30h", "40h" gegen den von der Kamera erwarteten Code "10h" austauschen, so daß auch die Sprachdatei einer fremden Gruppe von der Kamera akzeptiert wird.
Dieser Patch wird - beispielhaft für die "U"-Version der DSCA100.STR-Datei - auch in den folgenden Artikeln beschrieben:
http://forums.steves-digicams.com/sony-alp...acked-me-2.html
http://www.vnphoto.net/forums//showthread...41&page=317
http://www.dyxum.com/dforum/topic59500_post660169.html
Ein Anwender berichtet davon, daß seine japanische Kamera nach dem Einspielen der gepatchten "U"-Firmware zwar mit englischen Spracheinstellungen arbeitet und daß auch der Menüpunkt zum Umschalten der Sprache anzeigt wird, beim Aufruf derselben soll die Kamera ihm zufolge aber abstürzen.
Hier wird der Patch am Beispiel der "E"-Version beschrieben (und auch hier beschreibt ein Anwender, daß danach Englisch aktiv ist, der Menüpunkt zum Umschalten der Sprache aber weiterhin in japanisch erscheint - und die Kamera beim Versuch, diesen Menüpunkt aufzurufen, abstürzt):
http://www.alphadxd.fr/viewtopic.php?f=41&p=391645
Hier eine potentiell interessante Anwendung dieses Wissens in minimal abgewandelter Form, um einer amerikanischen DSLR-A100 die Menüsprache deutsch beizubringen (ungetestet!:
http://www.mi-fo.de/forum/index.php?showto...st&p=259039
Meinem Kenntnisstand nach wird sich auch eine bereits auf die Firmware 1.04 aktualisierte Kamera weigern, eine Neufassung der Firmware 1.04 einzuspielen, so daß dieser Trick 1:1 nur für Leute anwendbar ist, die noch die Firmware 1.00, 1.01, 1.02 oder 1.03 auf der Kamera haben. Vermutlich ist es aber möglich, die Firmware-Versionsnummer in den Dateiköpfen der DSCA100.APP- und DSCA100.STR-Dateien auf eine fiktive Versionsnummer "1.05" zu ändern (Byte an Offset +00000007h jeweils von 04h auf 05h ändern), um die Kamera zu "überreden", die Firmware anzunehmen.
Unklar ist mir derzeit noch, wo genau die Meldungen in englischer Sprache zu finden sind. Sie können entweder in einem separaten Bereich in der Kamera abgelegt oder als "Platzhaltersprache" Teil des normalen Firmware-Images sein. Allerdings wirft das beim Japan-Modell der DSLR-A100 die Frage auf, warum diese (technisch) nicht schon ab Werk neben Japanisch auch Englisch anbietet oder warum wenigstens nach Aufspielen der "J"-Firmware neben Japanisch nicht zusätzlich auch Englisch zur Verfügung steht. Zumindest für die Sprachen Englisch und Japanisch muß der Auswahlmechanismus also noch etwas komplexer sein, als hier dargestellt.
Viele Grüße,
Matthias