Büffel
16.12.2006, 16:56
Teil 1, *.vkp
Um für das E/EL71 einen Grafikpatch zu erstellen müssen wir zunächst ein Fubu etwas modifizieren um es in SPC3 öffnen zu können.
Im Grunde gilt es 3 Probleme zu lösen/zu umgehen die SPC3 mit einem EL71 Fubu hat.
Das erste Problem ist die Größe des Fubus, wie schon vom S75 bekannt ist SPC3 nicht in der Lage ein 64mb Fubu zu öffnen.
Das zweite Problem ist das neue PIT Format, welches sich aus der höheren Displayauflösung ergibt.
Das dritte Problem, welches sich leider auch nicht ganz lösen lässt, sind die 18 Bit Bilder welche sich seit dem S75 in der FW befinden. Mir ist keine Möglichkeit bekannt SPC3 dazu zu übereden diese Bilder darzustellen. Diese Bilder lassen sich derzeit nur durch GPF Files ersetzen, aber dazu später mehr.
Was wir also als erstes tun müssen ist:
1. das Fubu halbierenDazu öffnen wir unser Fubu in einem Hexeditor, z.b. WinHex.
http://img83.imageshack.us/img83/7803/winhex1lb8.jpg
Nun klicken wir auf Bearbeiten -> Block festlegen und geben als Blockende 01FFFFFF ein.
http://img149.imageshack.us/img149/9716/winhex2blockjb8.jpg
Der Block sollte nun markiert sein, und in der unteren Statusleiste sollte das stehen: http://img246.imageshack.us/img246/8482/winhex3blockkn4.jpg
Jetzt müssen wir nur noch mit rechts Klick -> Bearbeiten -> Block kopieren -> in neue Datei unser halbes Fubu als *.bin speichern.
http://img358.imageshack.us/img358/615/winhex4blockkopierenxg0.jpg
Diese Datei sollte jetzt 32mb groß sein, und damit hätten wir die erste Vorrausetzung auch schon erfüllt um das Fubu in SPC3 zu öffen. :)
Alternativ kann man sich natürlich auch gleich nur ein halbes Fubu auslesen lassen, dazu bei Länge einfach 2000000 eingeben. ;)
2. die PIT modifizierenNun zum größeren Problem, das PIT-Format.
Wenn wir in WinHex zum Offset 01B01954 gehen, sehen wir den ersten PIT Eintrag:
http://img251.imageshack.us/img251/3065/winhex5pitov0.jpg
Jedes Bild in der FW hat einen eigenen PIT Eintrag, wir haben es also im Falle des EL71 mit 1699 PIT Einträgen zu tun, welche wir alle ändern müssen!
Die PIT Einträge setzen sich wie folgt zusammen:
15 00 10 00 8A 00 00 00 4C 70 B0 A1
15 00 = x Höhe des Bildes in Hex
10 00 = y Breite des Bildes in Hex
8A 00 00 00 = Kompressionrate des Bildes, in diesem Fall 18 Bit (16Bit = 88 )
4C 70 B0 A1 = Bilddaten Offset, das ist also die Adresse im Fubu an der man das Bild findet
In einem x65 würde der selbe PIT Eintrag so ausehen:
15 10 8A 00 4C 70 B0 A1
Was wir nun tun müssen damit SPC3 die PIT erkennt ist folgendes, wir gaukeln ihm einfach vor er hätte es mit einem x65 Fubu zu tun. Dazu löschen wir in jedem PIT Eintrag die "überflüssigen" 00 raus.
Aus:
15 00 10 00 8A 00 00 00 4C 70 B0 A1 machen wir also:
15 10 8A 00 4C 70 B0 A1
Eine Anmerkung zu den 18 Bit Bildern, wie schon gesagt kann SPC3 diese Bilder nicht darstellen. Die 18 Bit Einträge (8A) in der PIT werden von SPC3 einfach ignoriert, zusätzlich hat SPC3 auch die üble Angewohnheit jeweils einige Bilder hinter den 18 Bit Bildern zu ignorieren! D.h. das SPC3 dann nicht die korrekte Bilderzahl erkennt. Deshalb sollte man die 8A (18 Bit) in 88 (16 Bit) ändern. Dies ist besonders wichtig wenn man sich aus dem späteren *.vkp Patch eine *.gpf2 machen will.
Bevor wir jetzt anfangen die 00'n in der PIT zu löschen sollten wir zuerst die komplette PIT aus dem Fubu kopieren und in einer separaten Datei speichern.
Da sich die Datei durch das löschen verkleinert, würden sich sonst die Bilddaten, welche direkt hinter der PIT beginnen, verschieben und die Bilddaten-Offsets in der PIT würden nicht mehr stimmen.
Die PIT geht beim EL71v38 von A1B01954 bis A1B06A33. Wir setzen in WinHex also wieder einen Block von 01B01954 bis 01B06A33, und kopieren diesen Block wieder in eine neue Datei.
In dieser neuen Datei löschen wir nun nun die überflüssigen 00'n indem wir die Teile markieren und mit rechts klick -> Bearbeiten -> Entfernen löschen.
http://img303.imageshack.us/img303/3823/winhex7nx7.jpg
[EDIT] Da das ändern der PIT recht Aufwendig und Zeitraubend ist habe ich unten meine modifizierte PIT anghangen, diese könnt ihr einfach, wie hier beschrieben in euer halbes Fubu reinkopieren. ;)
Wenn wir damit fertig sind, also die komplette PIT so aussieht wie in einem x65, müssen wir die PIT in unser halbes Fubu zurück kopieren.
Dafür gehen wir zuerst wieder zu unserem halben Fubu und überschreiben die komplette PIT mit 00!
Dazu setzen wir wieder einen Block von 01B01954 bis 01B06A33, im markierten Block dann rechts klick -> Bearbeiten -> Block füllen
http://img329.imageshack.us/img329/5308/winhex8za8.jpg
Hier wählen wir füllen mit Hex Werten und geben als Wert 00 ein:
http://img161.imageshack.us/img161/2460/winhex9hg3.jpg
Dies ist notwendig da unsere modifizierte PIT ja jetzt kleiner ist als die Originale und wir sonst Datenmüll zurücklassen würden wenn wir die neue PIT einfach reinkopieren würden.
Unsere modifizierte PIT markieren wir jetzt komplett in Winhex und gehen auf rechts klick -> Bearbeiten -> Block kopieren -> normal
http://img268.imageshack.us/img268/2553/winhex10eq4.jpg
Nun gehen wir wieder zu unserem halben Fubu wo wir die alte PIT mit 00 überschrieben haben, hier gehen wir zum Anfang der PIT 01B01954 und kopieren die modifizierte Pit hinein.
Dazu am Offset 01B01954 rechts klick -> Bearbeiten -> Zwischenspeicher -> schreiben und bestätigen.
http://img85.imageshack.us/img85/646/winhex11mw9.jpg
Das wars, dieses Fubu nur noch speichern gut aufheben! :lol:
Wenn man alles richtig gemacht hat, läßt sich das Fubu jetzt in SPC3 öffnen und man kann wie gewohnt seine Grafikpatches erstellen.
Zumindest erkennt SPC3 auf die Art knapp 1300 der ingesamt 1698 Bilder, vieleicht findet ja noch jemand heraus wie man an die restlichen Bilder kommt. ;)
http://img138.imageshack.us/img138/5600/12td5.jpg
3. den Patch anpassenAllerdings lassen sich diese Patches so noch nicht ins Gerät einspielen, vorher müssen wir im Patch die PIT Adressen und die Daten der PIT wieder ändern.
Wenn wir uns so einen Patch in V_KLay ansehen, sieht der so aus:
http://img19.imageshack.us/img19/8564/13vp0.jpg
Wichtig ist für uns nur der rot markierte Teil jeden Bildes.
Oben steht die Bildnummer, diese Stimmt nicht weil SPC3 einige Bilder verschluckt. Wenn wir aus dem Patch eine *.gpf2, mit Hilfe des GPF Creators machen wollen, müssen wir die Nummer korrigieren da die *.gpf sonst das falsche Bild ersetzen würde.
Das blau markierte ist die PIT Adresse des Bildes, diese Adressen haben sich in unserem modifizierten Fubu verschoben, da wir ja einiges herausgelöscht haben.
Das grün markierte ist der PIT Eintrag für das Bild, hier müssen wir einfach die 00'n welche wir im Fubu gelöscht haben wieder einfügen.
Um die richtige Bildnummer und PIT Adresse zu finden kommt jetzt Smelter ins Spiel, dazu öffnen wir ein Original Fubu in Smelter und klicken auf das große "P".
In dem Beispiel handelt es sich um das erste Akku Icon, dieses suchen wir uns jetzt in Smelter:
http://img245.imageshack.us/img245/2295/14le3.jpg
Hier sehen wir jetzt die richtige Bildnummer und die richtige PIT Adresse.
Der richtige Patch für das erste Akku-Icon sieht dann also so aus:
http://img300.imageshack.us/img300/343/15dw8.jpg
Diese Daten müssen wir dann für jedes Bild im Patch entsprechend anpassen, bevor wir den Patch einspielen. :)
Um für das E/EL71 einen Grafikpatch zu erstellen müssen wir zunächst ein Fubu etwas modifizieren um es in SPC3 öffnen zu können.
Im Grunde gilt es 3 Probleme zu lösen/zu umgehen die SPC3 mit einem EL71 Fubu hat.
Das erste Problem ist die Größe des Fubus, wie schon vom S75 bekannt ist SPC3 nicht in der Lage ein 64mb Fubu zu öffnen.
Das zweite Problem ist das neue PIT Format, welches sich aus der höheren Displayauflösung ergibt.
Das dritte Problem, welches sich leider auch nicht ganz lösen lässt, sind die 18 Bit Bilder welche sich seit dem S75 in der FW befinden. Mir ist keine Möglichkeit bekannt SPC3 dazu zu übereden diese Bilder darzustellen. Diese Bilder lassen sich derzeit nur durch GPF Files ersetzen, aber dazu später mehr.
Was wir also als erstes tun müssen ist:
1. das Fubu halbierenDazu öffnen wir unser Fubu in einem Hexeditor, z.b. WinHex.
http://img83.imageshack.us/img83/7803/winhex1lb8.jpg
Nun klicken wir auf Bearbeiten -> Block festlegen und geben als Blockende 01FFFFFF ein.
http://img149.imageshack.us/img149/9716/winhex2blockjb8.jpg
Der Block sollte nun markiert sein, und in der unteren Statusleiste sollte das stehen: http://img246.imageshack.us/img246/8482/winhex3blockkn4.jpg
Jetzt müssen wir nur noch mit rechts Klick -> Bearbeiten -> Block kopieren -> in neue Datei unser halbes Fubu als *.bin speichern.
http://img358.imageshack.us/img358/615/winhex4blockkopierenxg0.jpg
Diese Datei sollte jetzt 32mb groß sein, und damit hätten wir die erste Vorrausetzung auch schon erfüllt um das Fubu in SPC3 zu öffen. :)
Alternativ kann man sich natürlich auch gleich nur ein halbes Fubu auslesen lassen, dazu bei Länge einfach 2000000 eingeben. ;)
2. die PIT modifizierenNun zum größeren Problem, das PIT-Format.
Wenn wir in WinHex zum Offset 01B01954 gehen, sehen wir den ersten PIT Eintrag:
http://img251.imageshack.us/img251/3065/winhex5pitov0.jpg
Jedes Bild in der FW hat einen eigenen PIT Eintrag, wir haben es also im Falle des EL71 mit 1699 PIT Einträgen zu tun, welche wir alle ändern müssen!
Die PIT Einträge setzen sich wie folgt zusammen:
15 00 10 00 8A 00 00 00 4C 70 B0 A1
15 00 = x Höhe des Bildes in Hex
10 00 = y Breite des Bildes in Hex
8A 00 00 00 = Kompressionrate des Bildes, in diesem Fall 18 Bit (16Bit = 88 )
4C 70 B0 A1 = Bilddaten Offset, das ist also die Adresse im Fubu an der man das Bild findet
In einem x65 würde der selbe PIT Eintrag so ausehen:
15 10 8A 00 4C 70 B0 A1
Was wir nun tun müssen damit SPC3 die PIT erkennt ist folgendes, wir gaukeln ihm einfach vor er hätte es mit einem x65 Fubu zu tun. Dazu löschen wir in jedem PIT Eintrag die "überflüssigen" 00 raus.
Aus:
15 00 10 00 8A 00 00 00 4C 70 B0 A1 machen wir also:
15 10 8A 00 4C 70 B0 A1
Eine Anmerkung zu den 18 Bit Bildern, wie schon gesagt kann SPC3 diese Bilder nicht darstellen. Die 18 Bit Einträge (8A) in der PIT werden von SPC3 einfach ignoriert, zusätzlich hat SPC3 auch die üble Angewohnheit jeweils einige Bilder hinter den 18 Bit Bildern zu ignorieren! D.h. das SPC3 dann nicht die korrekte Bilderzahl erkennt. Deshalb sollte man die 8A (18 Bit) in 88 (16 Bit) ändern. Dies ist besonders wichtig wenn man sich aus dem späteren *.vkp Patch eine *.gpf2 machen will.
Bevor wir jetzt anfangen die 00'n in der PIT zu löschen sollten wir zuerst die komplette PIT aus dem Fubu kopieren und in einer separaten Datei speichern.
Da sich die Datei durch das löschen verkleinert, würden sich sonst die Bilddaten, welche direkt hinter der PIT beginnen, verschieben und die Bilddaten-Offsets in der PIT würden nicht mehr stimmen.
Die PIT geht beim EL71v38 von A1B01954 bis A1B06A33. Wir setzen in WinHex also wieder einen Block von 01B01954 bis 01B06A33, und kopieren diesen Block wieder in eine neue Datei.
In dieser neuen Datei löschen wir nun nun die überflüssigen 00'n indem wir die Teile markieren und mit rechts klick -> Bearbeiten -> Entfernen löschen.
http://img303.imageshack.us/img303/3823/winhex7nx7.jpg
[EDIT] Da das ändern der PIT recht Aufwendig und Zeitraubend ist habe ich unten meine modifizierte PIT anghangen, diese könnt ihr einfach, wie hier beschrieben in euer halbes Fubu reinkopieren. ;)
Wenn wir damit fertig sind, also die komplette PIT so aussieht wie in einem x65, müssen wir die PIT in unser halbes Fubu zurück kopieren.
Dafür gehen wir zuerst wieder zu unserem halben Fubu und überschreiben die komplette PIT mit 00!
Dazu setzen wir wieder einen Block von 01B01954 bis 01B06A33, im markierten Block dann rechts klick -> Bearbeiten -> Block füllen
http://img329.imageshack.us/img329/5308/winhex8za8.jpg
Hier wählen wir füllen mit Hex Werten und geben als Wert 00 ein:
http://img161.imageshack.us/img161/2460/winhex9hg3.jpg
Dies ist notwendig da unsere modifizierte PIT ja jetzt kleiner ist als die Originale und wir sonst Datenmüll zurücklassen würden wenn wir die neue PIT einfach reinkopieren würden.
Unsere modifizierte PIT markieren wir jetzt komplett in Winhex und gehen auf rechts klick -> Bearbeiten -> Block kopieren -> normal
http://img268.imageshack.us/img268/2553/winhex10eq4.jpg
Nun gehen wir wieder zu unserem halben Fubu wo wir die alte PIT mit 00 überschrieben haben, hier gehen wir zum Anfang der PIT 01B01954 und kopieren die modifizierte Pit hinein.
Dazu am Offset 01B01954 rechts klick -> Bearbeiten -> Zwischenspeicher -> schreiben und bestätigen.
http://img85.imageshack.us/img85/646/winhex11mw9.jpg
Das wars, dieses Fubu nur noch speichern gut aufheben! :lol:
Wenn man alles richtig gemacht hat, läßt sich das Fubu jetzt in SPC3 öffnen und man kann wie gewohnt seine Grafikpatches erstellen.
Zumindest erkennt SPC3 auf die Art knapp 1300 der ingesamt 1698 Bilder, vieleicht findet ja noch jemand heraus wie man an die restlichen Bilder kommt. ;)
http://img138.imageshack.us/img138/5600/12td5.jpg
3. den Patch anpassenAllerdings lassen sich diese Patches so noch nicht ins Gerät einspielen, vorher müssen wir im Patch die PIT Adressen und die Daten der PIT wieder ändern.
Wenn wir uns so einen Patch in V_KLay ansehen, sieht der so aus:
http://img19.imageshack.us/img19/8564/13vp0.jpg
Wichtig ist für uns nur der rot markierte Teil jeden Bildes.
Oben steht die Bildnummer, diese Stimmt nicht weil SPC3 einige Bilder verschluckt. Wenn wir aus dem Patch eine *.gpf2, mit Hilfe des GPF Creators machen wollen, müssen wir die Nummer korrigieren da die *.gpf sonst das falsche Bild ersetzen würde.
Das blau markierte ist die PIT Adresse des Bildes, diese Adressen haben sich in unserem modifizierten Fubu verschoben, da wir ja einiges herausgelöscht haben.
Das grün markierte ist der PIT Eintrag für das Bild, hier müssen wir einfach die 00'n welche wir im Fubu gelöscht haben wieder einfügen.
Um die richtige Bildnummer und PIT Adresse zu finden kommt jetzt Smelter ins Spiel, dazu öffnen wir ein Original Fubu in Smelter und klicken auf das große "P".
In dem Beispiel handelt es sich um das erste Akku Icon, dieses suchen wir uns jetzt in Smelter:
http://img245.imageshack.us/img245/2295/14le3.jpg
Hier sehen wir jetzt die richtige Bildnummer und die richtige PIT Adresse.
Der richtige Patch für das erste Akku-Icon sieht dann also so aus:
http://img300.imageshack.us/img300/343/15dw8.jpg
Diese Daten müssen wir dann für jedes Bild im Patch entsprechend anpassen, bevor wir den Patch einspielen. :)