#4 Service colors OnBoot plugin

open
nobody
5
2007-02-13
2007-02-13
Sache the Bunny
No

Make a plugin configurable through API, that changes the colours used for ambient services. Stock information should be green as money, shouldn't it? ;-)
The relevant technical information needed follows:

The bc.jsp file has a table of 64 bytes starting at offset 0x7D4 (if you start counting from 0). This table is organized as 16 groups of 4 bytes, corresponding to a "palette" of 16 colors. Some of this colors are used by the ambient services; some of them seem unused (please tell me if I'm wrong).

For each color the formula is:
RGB=(4 bytes changing endianness)/2

Let's see an example:
offset 0x7F0 has the following 4 bytes
FE FF 01 00
If we change endianess ( I hope you understand what I mean, it is changing from" LSB first" to "MSB first") we get:
00 01 FF FE -> 0001FFFE
And if we divide this by 2 we get
0000FFFF
We ignore th first byte and we get:
R=0,G=FF,B=FF
This is the cyan color

An example of the inverse. We want to code the "flesh" color
R=CF, G=7F B=5A
I write them in RGB order prepending a 00
00CF7F5A
And now I multiply by 2 to get
019EFEB4 -> 01 9E FE B4
By changing endianness I obtain the sequence of bytes I have to patch in the bc.jsp file:
B4 FE 9E 01

The 16 colors and their usage are (I have converted RGB values to names "in my head", please correct if you find a better color name)

0 Black (that is, LED off) This is used by all services, if you change this it will be used for every time a light would be off.
1 Red Not Used(NU)
2 Green. NU
3 yellow . used by service 1
4 blue. used by service 1
5 purple. used by service 6
6 cyan. used by service 7
7 white. NOT USED (see note below)
8 gray. NU
9 pink. used by service 3
10 light green. NU
11 yellowish white. used by service 2
12 bluish gray. NU
13 light pink NU
14 light cyan NU
15 orange NU

NOTE. The white color present in some weather indications (ambient1=5) does NOT come from the table. You may not change it (yet)

Discussion

  • Olivier Azeau
    Olivier Azeau
    2007-02-13

    • labels: 946953 --> plugin/ambient
     
  • Logged In: YES
    user_id=1716509
    Originator: YES

    UPDATE on techical info:
    In bc.jsp version 65806, the table is not oat offset 0x801

     
  • Logged In: YES
    user_id=1716509
    Originator: YES

    I mean ".. the table is NOW AT offset..."

     
  • Logged In: YES
    user_id=1716509
    Originator: YES

    ERRATA: offset 0x801 is the table header. The real data starts at 0x805
    (for bc.jsp v66806, that is)