PDA

EL71 [HowTo] Grafikpatch erstellen





View Full Version: EL71 [HowTo] Grafikpatch erstellen


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. :)



Büffel
17.12.2006, 15:40
Mit dem *Masterpatch v14* und dem *Pictures add-on v5* werden auf dem EL71 auch gpf-Files unterstütz. Allerdings benötigen wir auf dem EL71 aufgrund des neuen PIT Formats auch ein neues *.gpf Format: *.gpf2
Wie ein *.gpf File aufgebaut ist, hat -=[LCW]=-ExXtReMe (http://forum.modopo.com/members/-lcw-exxtreme-3476.html), hier (http://forum.modopo.com/x65-faqs-und-anleitungen/t-11315-howto-master-grafikpatches-gpf-erstellen.html) ja schon einmal sehr schön beschrieben. Ich beschränke mich deshalb darauf wie man eine *.gpf in eine *.gpf2 ändert.

Da es bisher noch keine Tools gibt um *.gpf2 Dateien zu erstellen, erstellt man sich am besten zuerst eine herkömmliche *.gpf Datei.
Es gibt bereits diverse Tools welche eine *.gpf aus *.vkp Patches, aus Fubus oder auch direkt aus einer *.bmp Datei erstellen können.
Eine *.gpf ist im wesentlichen so aufgebaut:
Format of gpf-file:
0x00: db "GraphicPatchFile"
0x10: dd Number, Description, 0, 0
0x20: db data...
Description is 4 bytes: X, Y, Compression&Bits, 0
In WinHex sieht das dann z.B. so aus:
http://img247.imageshack.us/img247/5669/gpfuf0.jpg

Um daraus eine *.gpf2 zu machen, müssen wir nur die ersten beiden Zeilen, nach diesem Muster ändern:Format of gpf2-file:
0x00: db "GraphPatchFile_2"
0x10: dd Number, Description,
0x20: db data...
Description is 8 bytes: X, X, Y, Y, Compression&Bits, 0, 0, 0, e.g.: 15 00 10 00 8A 00 00 00


Am Offset 0x00 ändern wir also:
47 72 61 70 68 69 63 50 61 74 63 68 46 69 6C 65 = GraphicPatchFile
in:
47 72 61 70 68 50 61 74 63 68 46 69 6C 65 5F 32 = GraphPatchFile_2
Und ab dem Offset 0x14 passen wir die Bildbeschreibung, also die Dimensionen in x,y und den Bildtyp wieder an das neue PIT-Format im EL71 an. So wie wir es auch schon beim *.vkp Patch gemacht haben. ;)
Im Beispiel ändern wir also:
34 10 88 00 00 00 00 00
in:
34 00 10 00 88 00 00 00
Wichtig dabei ist, das wir nur vorhandene Bytes ändern, die Datei darf dabei also nicht größer werden. ;)
In WinHex sieht die fertige *.gpf2 dann so aus:
http://img506.imageshack.us/img506/5906/gpf2jpgnm9.jpg

Man kann auch mehrere *.gpf2 Files aneinanderhängen, also in eine Datei packen, das ergibt dann eine *.gpn2.
Die *.gpf2's kommen dann wie gehabt im Handy in das Verzeichnis Data/Misc/Patches/gpf, welches wir selber erstellen müssen. Hier können auch beliebig viele Unterordner angelegt werden.
Der Dateiname der *.gpf2's kann frei gewählt werden, wenn er aber mit einem "_" beginnt, wird die Datei ignoriert. Auf diese weise kann man einzelne *gpf2's/*.gpn2's deaktivieren ohne die Files gleich löschen zu müssen. ;)

Das *.gpf2 Format hat übrigens BuG (http://forum.modopo.com/members/bug-2355.html) ausgetüftelt und an das neue PIT Format im EL71 angepasst! :up:

mart22
16.05.2007, 19:22
Online converter http://fotobeta.php5.cz/e71/gpn_to_gpn2.php

programmed by me:cool:

View Full Version: EL71 [HowTo] Grafikpatch erstellen