Ovo je direktni copy/paste sa HoFo-a. Ako se nekome da gnjavit s tim, samo naprijed. Ja sam probao dobiti da vanjski display žmiga kod dolaznog poziva/SMSa, ali nula bodova. Samo žmiganje unutarnjeg displaya i/ili tastature radi, kod dolaznog poziva. Govorim, naravno, o v525.
PA ako netko nešto iskemija, svima će nam biti drago.
Good luck!
__________________________________________________ _______________
funlight.pat demystified
Ok, lets get into it. The funlight pat file for the v600 has a well defined structure and once you understand it, it is easy to modify just time consuming.
To edit the funlight.pat you will need a hex editor, I am using XVI32 coz i use that to edit seems but any hexeditor will do.
If your new to hex editing when I refer to a byte, its just a grouping of two hexadecimal numbers.
I have to say thanks for Bitwise for doing all the hard work to start off with, without that I could never had figured the rest out.
Now to start, the first 5 bytes of the file is just the file header and contains information about the file. On a defult funlight.pat file for the v600 the first 5 bytes:
Offset | Bytes
|
0000 | 01 01 = seems to need to be this for some unknown reason
0002 | 10 6E = appears to be closely related to file size but doesn seem exact
0004 | 10 = number of sequences in this file, 10h=16 decimal Dont change this
Now if you add an extra part of a frame (will learn about that later) which is 3 byles by adding 3 to offset 0002 it still seems to work. This still needs some testing will revise this when known for sure.
Now that we have the header out the way lets look at the ring styles.
There are the selectable ringstyles, Nocturne, Solar, Passion, Aqua, Elemental, Red, Yellow, Green, Sky, Blue and Violet, and non-selectable ringstyles when you connect bluetooth, charging etc..
Here is a list of start and end offsets for each ringstyle.
Start End Ringstyle
==================================
0005 013A - Nocturne
013B 0252 - Solar
0253 0352 - Passion
0353 048E - Aqua
048F 05C4 - Elemental
05C5 06F4 - Red
06F5 0824 - Yellow
0825 0954 - Green
0955 0A85 - Sky Blue
0A85 0BB4 - Violet
0BB5 0BEE - unknown
0BEF 0E74 - Message indicator
0E75 0EFB - Bluetooth connect
0EFA 0F2D - Bluetooth active
0F2E 0FBE - Bluetooth disconnect
0FBF 1082 - Phone charging
==================================
So lets look at the "Phone charging" ringstyle
As with the file, each ringstyle has its own header (7 bytes long), and using the "Phone charging" ringstyle as an example, its in the form of:
Offset | Bytes
|
0FBF | 00 BD = Number of bytes for frames and delay, 00BDh = 189 Decimal
0FC1 | 1F = Number of frames, 1Fh = 31 decimal
0FC2 | 00 00 = Unknown
0FC4 | 9E = Sequence id?
0FC5 | 02 = Unknown, has to be 02h for ring light to function.
Dont worry about how to figure this out just yet as it will make sense soon I hope.
There is also a kind of a footer on most ringstyles and tese are the last 3 bytes of the ringstyle. It acts like a delay before it repeats. Without this the ringlight will go through one cycle and then finish.
Using the "Phone charging" ringstyle as an example the format looks like this
Offset | Bytes
|
1080 | 27 10 = Duration for delay 2710h = 10000 Decimal
1082 | 00 = Unknown / repeating sequence terminator?
So we have the header and the footer for the file now we need to talk about the frames.
As for the v600 all the ringstyles only change the ringlights, making it easy to edit because each frame is 6 bytes in length. We will get to the harder stuff later.
Now using the "Phone charging" ringstyle as our example lets have a look at a selection of frames as I am to lazy to type out 31 frames:
Offset Bytes Frame
=====================================
0FC0 00 00 01 03 00 00 Frame 1
0FCC 00 3C 01 03 01 11 Frame 2
0FD2 00 46 01 03 02 22 Frame 3
. . . . . . . .
. . . . . . . .
. . . . . . . .
106E 00 3C 01 03 02 22 Frame 29
1074 00 46 01 03 01 11 Frame 30
107A 00 46 01 03 00 00 Frame 31
Well by now you might be asking what the F**k is a frame. Have you ever drawn a series of stick figure pictures in the courner of a book and flip through it to make the figure move?
Well each frame is like a picture on a page and when you go through them over time it makes the dancing colours you see on your ringstyles.
To control this we need to know how the frames work and again using the "Phone charging" ringstyle as an example lets look at an example from Frame 2 at offset 0FCC:
00 3C 01 03 01 11
XX XX ** ** ** ** = Delay before frame starts
** ** XX ** ** ** = Number of 'Frame Parts", 1 in this example
** ** ** XX ** ** = Output device code
** ** ** ** XX XX = Colour/intensity of LED's
With the delay this is pretty easy, havent calculated it yet but most likely 100th or 10th of a second so 003Ch = 60 Decimal, most likel 0.6 of a second, will test this out at a later date, I am just tooo lazy.
For the number of frame parts we will look into this later, for the time being keep it at 01
Now the output device code coresponds to the LED's you want to control. here is the list for the v600.
Code Device
==================
01 Internal LCD
02 Keypad
03 Ringlights
05 External LCD
At the moment I dont know if there are anymore or why isnt 04 used. Maybe something redundant maybe it could be used to control each LED cluster in the ringlight, I just dont know, why dont you experiment!
Now back on track the, last 2 bytes of this frame control the colour and intensity of the LED's.
In each LCD cluster there is a RED, Green and Blue LEDs. Out of the 4 hexadecimal charaters in the last two bytes, the last 3 control each colour. Example:
01 11
===========================
X* ** = Not used
*X ** = Controls red LEDs
** X* = Controls Green LEDs
** *X = Controls Blue LEDs
Where 0 = off Brightness is controled from 1 which is the dimest to F which is the Brightest.
To make other colours you just have to mix and match like in our example, 0111 which is a dim white.
Ok, so now you know a basic frame, lets go into more advanced frames. Say you want to alter the keypad, external/internal LCDs and the ringlights. You can also do this in the frames.
One thing to note, the LEDs act differently in each Output Device. The others CANNOT change colour! For the external/internal displays they are either on or off tho the keypad has a range of brightness.
now that means that the Colour/intensity of LED's is diffrent than that I described for the ring lights so I will do a quick rundown.
For the external/internal LCD it can be either on or off, to make it simple I use all 0000 for off and 0FFF. Anything above 0000 will turn on the screen but to avoid confusion use 0FFF.
For the Keypad it is slightly different, you can actually change the brightness of it using 0000 for off, 0001 for dimest to 000F for brightest.
Ok now knowing that lets write a ringstyle that Turns the external LCD on and off
OK lets start with a frame
00 00 01 05 0F FF = Turns it on
0F 00 01 05 00 00 = Turns it off
so we have 2 frames that we want to repeat so we add the repeating footer like:
0F 00 00
Now we need the header. For the Number of bytes for frames and delay we know there are 2 frames of 6 bytes and 3 bytes for the repeat so that makes 15 = Fh
So we have for the header
00 0F 02 00 00 XX 02
The XX is the sequence id and that depends where you want the new ringstyle to be.
Here is a list for which ringstyle has what ID
ID Style
==========================
01h - Nocturne
02h - Solar
03h - Passion
04h - Aqua
05h - Elemental
06h - Red
07h - Yellow
08h - Green
09h - Sky Blue
0Ah - Violet
80h - unknown
8Ah - Message indicator
94h - Bluetooth connect
95h - Bluetooth active
96h - Bluetooth disconnect
9Eh - Phone charging
So lets choose the phone charing for our ID now we have our complete ring style.
00 0F 02 00 00 9E 02 - Header
00 00 01 05 0F FF - Frame 1
0F 00 01 05 00 00 - Frame 2
0F 00 00 - Repeat
Well that was a lot of work for something so simple but wait there was more.
What if you want to make the external LCD and the ringlight flash at the same time, impossible you say. Well you remember the Byte that I called the Number of part frames well this describes how many output devices you want to change in the frame. Lets do two for now and say we want to turn the external LCD on and the ring light to a dark bright blue. Well the frame will look like this:
00 00 02 03 00 0F 05 0F FF
XX XX ** ** ** ** ** ** ** = Delay
** ** XX ** ** ** ** ** ** = Number of part frames
** ** ** XX XX XX ** ** ** = First part frame (ringlight ot bright blue)
** ** ** ** ** ** XX XX XX = 2nd part frame (turning the Ext. LCD on)
You can even do 3 or 4 part frames if you want, just make sure you calculate the ring style and file headers correctly.
OK there you go! Now i wrote this straight off my head and only had a quick read through. If you find any errors or think of ways to improve/ make it easier for everyone then let me know.
Enjoy,
__________________________________________________ _______________


.
Odgovori uz citat
da to isprevedem kako treba.
Sad neće ni stroboskop.Hoće kad ga vratim originalnog. Al samo i jedino prokleti stroboskop.
je najblaže rečeno na razini jadnosti.

Bookmarks