[UTILITY] Lua 5.1 tools: compiler, decompiler, snippets & extendable lua.dll with SDK

Search This thread

sztupy

Inactive Recognized Developer
Dec 21, 2008
1,061
877
Edinburgh
sztupy.hu
Any reason why using:

Code:
 mkt.exe tomode9

gives this error:

Code:
C:\DOCUME~1\kinny\eee\eee.mode9converter.exe.22\app\mode9converter.rb:505:in `initialize': Permission denied - bin/windows/htc/home.mode9 (Errno::EACCES)
        from C:\DOCUME~1\kinny\eee\eee.mode9converter.exe.22\app\mode9converter.rb:505:in `open'
        from C:\DOCUME~1\kinny\eee\eee.mode9converter.exe.22\app\mode9converter.rb:505
        from C:\DOCUME~1\kinny\eee\eee.mode9converter.exe.22\bootstrap.rb:77:in `load'
        from C:\DOCUME~1\kinny\eee\eee.mode9converter.exe.22\bootstrap.rb:77

But getting it to do it straight from mode9converter doesn't chuck the error up.

I know the only thing I don't do is set my working directory in the windows PATH variable, so I'm running each of the tools from the working directory (I've got 2 going at the moment).

check the attributes of bin/windows/htc/home.mode9 it might be read-only/system/etc (note to self: remove attributes in mkt before copying)
 

sztupy

Inactive Recognized Developer
Dec 21, 2008
1,061
877
Edinburgh
sztupy.hu
Hi dude ;)
here's the FINAL manila v.3 from the Topaz official ROM - I'll be glad if you'll decompile those files! :D
It's already fixed a lot of bugs but some configuration will do it better :D
http://rapidshare.com/files/2182021...Signed_Topaz_61.20t.25.10_3.43.25.19_Ship.exe

thx. I'll try as soon as I'm finished with luadec3, it should make the work easier. This Topaz Manila still doesn't have the VGA/WVGA switch included right? If yes I think I'll wait for the next manila which will be both vga/wvga compilant for a complete decompilation.
 

kinnyfaifai

Senior Member
Mar 17, 2009
533
29
Woohoo!

I managed to incorporate Hallatore's code for the X1i to show more appointments. Great thanks to sztupy for the great work on decompiling the manila files and Hallatore for sharing the snippets of code required to do this. I'm a happy bunny now! :D

Phase two, close to getting a 6th appointment to show up to make use of the gap at the bottom of the 5th. :)

Slowly getting the hang of Lua scripting. :)
 

avimak

Senior Member
Nov 23, 2008
488
1
thx. I'll try as soon as I'm finished with luadec3, it should make the work easier. This Topaz Manila still doesn't have the VGA/WVGA switch included right? If yes I think I'll wait for the next manila which will be both vga/wvga compilant for a complete decompilation.

I'm not sure, but you do whatever you need to do :)
can you just decompile the files I uploaded two-three days ago? this is for the Slider, now this is the final files :)
 

avimak

Senior Member
Nov 23, 2008
488
1
A very strange thing, the final Manila from the official Tachi Chinese ROM as the same English letterpicker with English letters (!), and of course all the connected files are "+ 65", there is absolutely no reference to Unicode in the new files! strange :\
 

Ameet

Retired Moderator
Dec 15, 2007
1,984
10
46
Mumbai

Fredz

Senior Member
Oct 23, 2006
131
6
Trace function

Hello,

I search where the trace function store message.
Someone can help me ?
 

smotrs

Senior Member
Nov 16, 2008
632
0
So. Calif.
LUA Math function

As near as I can tell, the LUA contained on our phones doesn't contain the math module. I tried creating a random number to randomize the Weather Easter Egg, rather then show the same 4 all the time using math.random(41) which would create a random number from 1 to 41. But either it's not working or it's only returning the number 1.

I have read that there is an issue with the first call not being truly random so to throw it away by running it twice but only using the 2nd call. But I still get the same result.

So now my thinking is that the module isn't actually working on our version of LUA. So I'm wondering if there is a different way to generate a random number other then using the math module?

I'm hoping to release a new Weather TAB which fixes the oblong shapes of the Sun and Moon, increases the default city limit from 10 to 25 and shows more of the weather states when you run the Easter Egg. Having it randomly pick and display a group of 7 rather then always show the same 4 each time it's run would really be cool I think. JMO.
 

sztupy

Inactive Recognized Developer
Dec 21, 2008
1,061
877
Edinburgh
sztupy.hu
Hello,

I search where the trace function store message.
Someone can help me ?

You have to use a debugger to get these infomrations. Both IDA and the debugger of Visual Studio are good. If you only need the trace information I prefer the latter, because it's more stable, and allows you to connect to an already running program (like manila(2).exe).

IDA is good too, but only if you want to debug manila too.

To get trace infomrations I use Visual Studio 2008 SP1 if you're curious.
 

sztupy

Inactive Recognized Developer
Dec 21, 2008
1,061
877
Edinburgh
sztupy.hu
As near as I can tell, the LUA contained on our phones doesn't contain the math module. I tried creating a random number to randomize the Weather Easter Egg, rather then show the same 4 all the time using math.random(41) which would create a random number from 1 to 41. But either it's not working or it's only returning the number 1.

I have read that there is an issue with the first call not being truly random so to throw it away by running it twice but only using the 2nd call. But I still get the same result.

So now my thinking is that the module isn't actually working on our version of LUA. So I'm wondering if there is a different way to generate a random number other then using the math module?

I'm hoping to release a new Weather TAB which fixes the oblong shapes of the Sun and Moon, increases the default city limit from 10 to 25 and shows more of the weather states when you run the Easter Egg. Having it randomly pick and display a group of 7 rather then always show the same 4 each time it's run would really be cool I think. JMO.

You might want to implement your own pseudorandomnumber generator.

Now this is not that easy, because of the Q16 implementation of lua.

For example here is a simple random number generator I found in C#:

Code:
private static uint GetUint()
{
    m_z = 36969 * (m_z & 65535) + (m_z >> 16);
    m_w = 18000 * (m_w & 65535) + (m_w >> 16);
    return (m_z << 16) + m_w;
}

public static double GetUniform()
{
    uint u = GetUint();
    return (u + 1) * 2.328306435454494e-10;
}

Although simple, it won't work in the Q16.16 environment (I think this is why the built in random number generator fails), but you might try to convert this snippet of code...

Or persuade me to start proting ExtLua to your manila version :)
 

12aon

Retired Senior Moderator
Mar 24, 2008
2,437
483
Does this mean I have a very messed up script?

Code:
Main block:
  1>  1 [-]: CLOSURE   R0 0         ; R0 := closure(Function #1)
  2>nil
  1>  2 [-]: SETGLOBAL R0 K0        ; LeftSoftKeyPressed := R0
  2>nil
  1>  3 [-]: CLOSURE   R0 1         ; R0 := closure(Function #2)
  2>nil
  1>  4 [-]: SETGLOBAL R0 K1        ; ShowMenu := R0
  2>nil
  1>  5 [-]: CLOSURE   R0 2         ; R0 := closure(Function #3)
  2>nil
  1>  6 [-]: SETGLOBAL R0 K2        ; DialogCallback := R0
  2>nil
  1>  7 [-]: CLOSURE   R0 3         ; R0 := closure(Function #4)
  2>nil
  1>  8 [-]: SETGLOBAL R0 K3        ; PickPictureForContact := R0
  2>nil
  1>  9 [-]: CLOSURE   R0 4         ; R0 := closure(Function #5)
  2>nil
  1> 10 [-]: SETGLOBAL R0 K4        ; ChangeDefaultContactNumber := R0
  2>nil
  1> 11 [-]: CLOSURE   R0 5         ; R0 := closure(Function #6)
  2>nil
  1> 12 [-]: SETGLOBAL R0 K5        ; ViewContactCard := R0
  2>nil
  1> 13 [-]: CLOSURE   R0 6         ; R0 := closure(Function #7)
  2>nil
  1> 14 [-]: SETGLOBAL R0 K6        ; AddFavorite := R0
  2>nil
  1> 15 [-]: CLOSURE   R0 7         ; R0 := closure(Function #8)
  2>nil
  1> 16 [-]: SETGLOBAL R0 K7        ; RemoveFavorite := R0
  2>nil
  1> 17 [-]: CLOSURE   R0 8         ; R0 := closure(Function #9)
  2>nil
  1> 18 [-]: SETGLOBAL R0 K8        ; OnConfirmationDialogReturned := R0
  2>nil
  1> 19 [-]: CLOSURE   R0 9         ; R0 := closure(Function #10)
  2>nil
  1> 20 [-]: SETGLOBAL R0 K9        ; DialNumber := R0
  2>nil
  1> 21 [-]: CLOSURE   R0 10        ; R0 := closure(Function #11)
  2>nil
  1> 22 [-]: SETGLOBAL R0 K10       ; DelayKeyProcess := R0
  2>nil
  1> 23 [-]: GETGLOBAL R0 K12       ; R0 := timer
  2>nil
  1> 24 [-]: LOADK     R1 K13       ; R1 := 0.0099945068359375
  2>nil
  1> 25 [-]: CALL      R0 2 2       ; R0 := R0(R1)
  2>nil
  1> 26 [-]: SETGLOBAL R0 K11       ; DelayKeyProcessTimer := R0
  2>nil
  1> 27 [-]: GETGLOBAL R0 K11       ; R0 := DelayKeyProcessTimer
  2>nil
  1> 28 [-]: GETTABLE  R0 R0 K14    ; R0 := R0["OnElapsed"]
  2>nil
  1> 29 [-]: SELF      R0 R0 K15    ; R1 := R0; R0 := R0["connect"]
  2>nil
  1> 30 [-]: GETGLOBAL R2 K10       ; R2 := DelayKeyProcess
  2>nil
  1> 31 [-]: CALL      R0 3 1       ; R0(R1,R2)
  2>nil
  1> 32 [-]: GETGLOBAL R0 K11       ; R0 := DelayKeyProcessTimer
  2>nil
  1> 33 [-]: SELF      R0 R0 K16    ; R1 := R0; R0 := R0["Stop"]
  2>nil
  1> 34 [-]: CALL      R0 2 1       ; R0(R1)
  2>nil
  1> 35 [-]: CLOSURE   R0 11        ; R0 := closure(Function #12)
  2>nil
  1> 36 [-]: SETGLOBAL R0 K17       ; OnKeyDown := R0
  2>nil
  1> 37 [-]: RETURN    R0 1         ; return 
  2>nil
Opcodes in original: 37
Same lines in both files: 0 0%
Same opcodes in files: 0 0%
Different
Function 1:
  1>  1 [-]: GETGLOBAL R0 K0        ; R0 := Shell_NavigateTo
  2>nil
  1>  2 [-]: GETGLOBAL R1 K1        ; R1 := ShellLocation_ContactList
  2>nil
  1>  3 [-]: CALL      R0 2 1       ; R0(R1)
  2>nil
  1>  4 [-]: RETURN    R0 1         ; return 
  2>nil
Opcodes in original: 4
Same lines in both files: 0 0%
Same opcodes in files: 0 0%
Different
Function 2:
  1>  1 [-]: GETGLOBAL R1 K0        ; R1 := ThumbnailList
  2>nil
  1>  2 [-]: SELF      R1 R1 K1     ; R2 := R1; R1 := R1["GetGenerator"]
  2>nil
  1>  3 [-]: CALL      R1 2 2       ; R1 := R1(R2)
  2>nil
  1>  4 [-]: GETTABLE  R1 R1 K2     ; R1 := R1["SelectedIndex"]
  2>nil
  1>  5 [-]: EQ        1 R1 K3      ; if R1 == -1 then PC := 22
  2>nil
  1>  6 [-]: JMP       22           ; PC := 22
  2>nil
  1>  7 [-]: GETGLOBAL R1 K0        ; R1 := ThumbnailList
  2>nil
  1>  8 [-]: SELF      R1 R1 K1     ; R2 := R1; R1 := R1["GetGenerator"]
  2>nil
  1>  9 [-]: CALL      R1 2 2       ; R1 := R1(R2)
  2>nil
  1> 10 [-]: GETTABLE  R1 R1 K2     ; R1 := R1["SelectedIndex"]
  2>nil
  1> 11 [-]: EQ        0 R1 K4      ; if R1 ~= 0 then PC := 31
  2>nil
  1> 12 [-]: JMP       31           ; PC := 31
  2>nil
  1> 13 [-]: GETGLOBAL R1 K0        ; R1 := ThumbnailList
  2>nil
  1> 14 [-]: SELF      R1 R1 K1     ; R2 := R1; R1 := R1["GetGenerator"]
  2>nil
  1> 15 [-]: CALL      R1 2 2       ; R1 := R1(R2)
  2>nil
  1> 16 [-]: GETTABLE  R1 R1 K5     ; R1 := R1["Collection"]
  2>nil
  1> 17 [-]: SELF      R1 R1 K6     ; R2 := R1; R1 := R1["GetCount"]
  2>nil
  1> 18 [-]: CALL      R1 2 2       ; R1 := R1(R2)
  2>nil
  1> 19 [-]: GETGLOBAL R2 K7        ; R2 := MaxFavorites
  2>nil
  1> 20 [-]: LT        0 R1 R2      ; if R1 >= R2 then PC := 31
  2>nil
  1> 21 [-]: JMP       31           ; PC := 31
  2>nil
  1> 22 [-]: GETGLOBAL R1 K8        ; R1 := _application
  2>nil
  1> 23 [-]: GETTABLE  R1 R1 K9     ; R1 := R1["DialogManager"]
  2>nil
  1> 24 [-]: SELF      R1 R1 K10    ; R2 := R1; R1 := R1["GetDialog"]
  2>nil
  1> 25 [-]: GETGLOBAL R3 K11       ; R3 := URL
  2>nil
  1> 26 [-]: LOADK     R4 K12       ; R4 := "Manila://PeopleGizmoEmpty.dialog"
  2>nil
  1> 27 [-]: CALL      R3 2 0       ; R3,... := R3(R4)
  2>nil
  1> 28 [-]: CALL      R1 0 2       ; R1 := R1(R2,...)
  2>nil
  1> 29 [-]: MOVE      R0 R1        ; R0 := R1
  2>nil
  1> 30 [-]: JMP       57           ; PC := 57
  2>nil
  1> 31 [-]: GETGLOBAL R1 K0        ; R1 := ThumbnailList
  2>nil
  1> 32 [-]: SELF      R1 R1 K1     ; R2 := R1; R1 := R1["GetGenerator"]
  2>nil
  1> 33 [-]: CALL      R1 2 2       ; R1 := R1(R2)
  2>nil
  1> 34 [-]: GETTABLE  R1 R1 K5     ; R1 := R1["Collection"]
  2>nil
  1> 35 [-]: SELF      R1 R1 K6     ; R2 := R1; R1 := R1["GetCount"]
  2>nil
  1> 36 [-]: CALL      R1 2 2       ; R1 := R1(R2)
  2>nil
  1> 37 [-]: GETGLOBAL R2 K7        ; R2 := MaxFavorites
  2>nil
  1> 38 [-]: EQ        0 R1 R2      ; if R1 ~= R2 then PC := 49
  2>nil
  1> 39 [-]: JMP       49           ; PC := 49
  2>nil
  1> 40 [-]: GETGLOBAL R1 K8        ; R1 := _application
  2>nil
  1> 41 [-]: GETTABLE  R1 R1 K9     ; R1 := R1["DialogManager"]
  2>nil
  1> 42 [-]: SELF      R1 R1 K10    ; R2 := R1; R1 := R1["GetDialog"]
  2>nil
  1> 43 [-]: GETGLOBAL R3 K11       ; R3 := URL
  2>nil
  1> 44 [-]: LOADK     R4 K13       ; R4 := "Manila://PeopleGizmoFull.dialog"
  2>nil
  1> 45 [-]: CALL      R3 2 0       ; R3,... := R3(R4)
  2>nil
  1> 46 [-]: CALL      R1 0 2       ; R1 := R1(R2,...)
  2>nil
  1> 47 [-]: MOVE      R0 R1        ; R0 := R1
  2>nil
  1> 48 [-]: JMP       57           ; PC := 57
  2>nil
  1> 49 [-]: GETGLOBAL R1 K8        ; R1 := _application
  2>nil
  1> 50 [-]: GETTABLE  R1 R1 K9     ; R1 := R1["DialogManager"]
  2>nil
  1> 51 [-]: SELF      R1 R1 K10    ; R2 := R1; R1 := R1["GetDialog"]
  2>nil
  1> 52 [-]: GETGLOBAL R3 K11       ; R3 := URL
  2>nil
  1> 53 [-]: LOADK     R4 K14       ; R4 := "Manila://PeopleGizmo.dialog"
  2>nil
  1> 54 [-]: CALL      R3 2 0       ; R3,... := R3(R4)
  2>nil
  1> 55 [-]: CALL      R1 0 2       ; R1 := R1(R2,...)
  2>nil
  1> 56 [-]: MOVE      R0 R1        ; R0 := R1
  2>nil
  1> 57 [-]: GETTABLE  R1 R0 K15    ; R1 := R0["OnExit"]
  2>nil
  1> 58 [-]: SELF      R1 R1 K16    ; R2 := R1; R1 := R1["connect"]
  2>nil
  1> 59 [-]: GETGLOBAL R3 K17       ; R3 := DialogCallback
  2>nil
  1> 60 [-]: CALL      R1 3 1       ; R1(R2,R3)
  2>nil
  1> 61 [-]: SELF      R1 R0 K18    ; R2 := R0; R1 := R0["Show"]
  2>nil
  1> 62 [-]: CALL      R1 2 1       ; R1(R2)
  2>nil
  1> 63 [-]: RETURN    R0 1         ; return 
  2>nil

And the list goes on and on....

Btw I used this bat to get it:

Code:
@echo off

pushd Original

attrib -s -h -r -a *.* /s /d
ren *.* original.luaU

popd

copy Original\original.luaU original.luaU

pushd Test

attrib -s -h -r -a *.* /s /d
ren *.* test.lua

popd

copy Test\test.lua test.lua

cd tools
compare.exe ..\original.luaU ..\test.lua 1> ..\Log.txt 2> ..\Error.txt

cd..
del original.luaU
del test.lua

pause
 
Last edited:

smotrs

Senior Member
Nov 16, 2008
632
0
So. Calif.
12, yep, doesn't appear to be seeing the 2nd file correctly. What happens if you do a standard command line compare rather then use the batch script?
 

12aon

Retired Senior Moderator
Mar 24, 2008
2,437
483
Well I made the batch script so I wouldn't know what to do different when I do it from within cmd.

I will attach my setup here maybe its the files or maybe it's where they are at the moment I run compare (do they need to be in the same folder as compare.exe because when I tried with or without it gave me the same output). I also have an error log which I don't understand yet (probably the reason it's still not working). I'll attach the error, but you can see it when you run it from what will become my decompiling kitchen :) (I got some great and hard to implement ideas (especially for someone that just started scripting)). You find two other scripts in there that, that work but are meant for other use.

Error:

Code:
luadec: ..\test.lua:151: 'end' expected (to close 'function' at line 108) near '<eof>'

My Decomp kitchen
 

smotrs

Senior Member
Nov 16, 2008
632
0
So. Calif.
Well I made the batch script so I wouldn't know what to do different when I do it from within cmd.

I will attach my setup here maybe its the files or maybe it's where they are at the moment I run compare (do they need to be in the same folder as compare.exe because when I tried with or without it gave me the same output). I also have an error log which I don't understand yet (probably the reason it's still not working). I'll attach the error, but you can see it when you run it from what will become my decompiling kitchen :) (I got some great and hard to implement ideas (especially for someone that just started scripting)). You find two other scripts in there that, that work but are meant for other use.

Error:

Code:
luadec: ..\test.lua:151: 'end' expected (to close 'function' at line 108) near '<eof>'

My Decomp kitchen

Files can be anywhere, just as long as you point to it relative to where your at or supply a direct path.

compare test\file.luac ..\original\files.luac

It appears you have an error on line 151 of your ..\test.lua file. Looks like it's missing an 'end' at around that location. I'll grab the files now to take a look.
 

smotrs

Senior Member
Nov 16, 2008
632
0
So. Calif.
12, I see the problem, look at around line 112-115, your missing an end statement. It should look like this,
Code:
DialNumber = function()
  local l_10_0, l_10_2, l_10_3 = nil
  if ThumbnailList:GetGenerator().SelectedIndex == 0 then
    local l_10_1 = ThumbnailList:GetGenerator().Collection:GetCount()
    if l_10_1 < MaxFavorites then
      l_10_1 = AddFavorite
      return l_10_1()
// missing the following end
    end
  end
  if ThumbnailList:GetGenerator().SelectedIndex > -1 then
    l_10_0 = ThumbnailList:GetGenerator():GetData(ThumbnailList:GetGenerator().SelectedIndex)
  end
  if l_10_0 ~= nil then
    l_10_0:ConnectVia(l_10_0.DefaultContactMethodID)
  end
end

When you run it a second time it then reports that your missing another 'end' to close the function at line 56, that function should look like this,

Code:
ViewContactCard = function()
  local l_6_0, l_6_2, l_6_3 = nil
  if ThumbnailList:GetGenerator().SelectedIndex == 0 then
    local l_6_1 = ThumbnailList:GetGenerator().Collection:GetCount()
    if l_6_1 < MaxFavorites then
      l_6_1 = AddFavorite
      return l_6_1()
// missing the following end
    end
  end
  if ThumbnailList:GetGenerator().SelectedIndex > -1 then
    l_6_0 = ThumbnailList:GetGenerator():GetData(ThumbnailList:GetGenerator().SelectedIndex)
    l_6_0:ShowDetails()
  end
end

At that point the compare runs correctly and you can start fixing things.
 
Last edited:

12aon

Retired Senior Moderator
Mar 24, 2008
2,437
483
12, I see the problem, look at around line 112-115, your missing an end statement. It should look like this,
Code:
DialNumber = function()
  local l_10_0, l_10_2, l_10_3 = nil
  if ThumbnailList:GetGenerator().SelectedIndex == 0 then
    local l_10_1 = ThumbnailList:GetGenerator().Collection:GetCount()
    if l_10_1 < MaxFavorites then
      l_10_1 = AddFavorite
      return l_10_1()
// missing the following end
    end
  end
  if ThumbnailList:GetGenerator().SelectedIndex > -1 then
    l_10_0 = ThumbnailList:GetGenerator():GetData(ThumbnailList:GetGenerator().SelectedIndex)
  end
  if l_10_0 ~= nil then
    l_10_0:ConnectVia(l_10_0.DefaultContactMethodID)
  end
end

When you run it a second time it then reports that your missing another 'end' to close the function at line 56, that function should look like this,

Code:
ViewContactCard = function()
  local l_6_0, l_6_2, l_6_3 = nil
  if ThumbnailList:GetGenerator().SelectedIndex == 0 then
    local l_6_1 = ThumbnailList:GetGenerator().Collection:GetCount()
    if l_6_1 < MaxFavorites then
      l_6_1 = AddFavorite
      return l_6_1()
// missing the following end
    end
  end
  if ThumbnailList:GetGenerator().SelectedIndex > -1 then
    l_6_0 = ThumbnailList:GetGenerator():GetData(ThumbnailList:GetGenerator().SelectedIndex)
    l_6_0:ShowDetails()
  end
end

At that point the compare runs correctly and you can start fixing things.

So simple how can I have missed it!!!!!!!! Does show the importance of my error log :). Wow this looks so much better :) Now the only thing I'm trying to do is to throw any file in the folder have it compare and come out with the original name, and I'm almost there, I just gotta figure out how to rename a filename ;). You want an update when I finish this?
 

smotrs

Senior Member
Nov 16, 2008
632
0
So. Calif.
So simple how can I have missed it!!!!!!!! Does show the importance of my error log :). Wow this looks so much better :) Now the only thing I'm trying to do is to throw any file in the folder have it compare and come out with the original name, and I'm almost there, I just gotta figure out how to rename a filename ;). You want an update when I finish this?

BTW, note sure if you needed it or not, but here's the correct test.lua file correctly restructured.

Yeah, when you figure it out, send me an update. :)
 

Attachments

  • test.zip
    1.4 KB · Views: 10

12aon

Retired Senior Moderator
Mar 24, 2008
2,437
483
BTW, note sure if you needed it or not, but here's the correct test.lua file correctly restructured.

Yeah, when you figure it out, send me an update. :)

Nice I did need it, and I'm not really up to speed on redoing the scripts after i created the output but quoting a famous kyphur post it's also about the journey :)

I intend to make every step automated without haven to rename any file just click a few bats and then doing what we came to do. Maybe I'll even give it a UI if it's finished :) (yeah I know how about learning to correct scripts first...)
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    I still haven't been able to figure out where this is actually referring too. I see similar situation in other lua files. But in each case, I've been unable to locate where or what it's actually trying to do. :confused:

    They are dialogs (as their name suggests). They are defined in manila.xml (26948339_manila). They seem to be like some kind of "embedded mode9" files

    Example:
    Code:
    <PageGroup Name="settings">
    (...)
      <PageGroup Name="updatesanddata">
        <Page Order="0" Name="updatesanddata.page" PackageName="HTC" Title="[[IDS_UPDATESANDDATA]]" Default="true" >
          <ComponentReference Name="page"  Mode9Path="HTC\settings.mode9" Component="UpdatesAndDataPageComponent" SmartComponent="true"  />
        </Page>
      </PageGroup>
    (...)
    </PageGroup>