Announcement

Collapse
No announcement yet.

Garmin MobilePC Hacking

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Garmin MobilePC Hacking

    Hi all,

    After looking at some of the Garmin MobilePC installation files, I noticed that the three ".gir" files are actually a sort of PNG image archive for what appear to be the icons and interface buttons, etc of the software.

    To facilitate some re-skinning of the interface, I have documented what I know about the GIR file format. I have also written a file splitter which will split out all of the PNG files from the GIR file to help those who might want to have a look. The program will also recombine the PNG images into a GIR file using the log produced during the split.

    The GIRSplit program is located here.
    The file format documentation can be found here.
    The splitter source code in C# is also included here for those interested.

    GIRSplit requires .NET 2.0 and is a simple command-line application.

    Drag and drop a GIR file onto GIRSplit.exe and it will be split out into a number of PNG files and a log file.
    Drag and drop a LOG file onto GIRSplit.exe and it will recombine the PNG files and log file data into a GIR file.

    I hope this helps someone get a start on re-skinning the MobilePC interface.

    Edit 13-Sep-2008: Updated to v1.1
    pb

  • #2
    Great find. Hope to download that GIR file merger soon.
    Progress:
    [II--------] 20%

    2004 Renault Grand Espace 3.0 dV6

    Comment


    • #3
      Hi all,

      The merge functionality is done.

      I also discovered a couple of bugs in the splitter, as well as an odd issue with the GIR file format which caused me to change the format of the log file produced.

      It seems that in some cases, the second field of each filename record defines the width and height of the PNG image, while in other cases it appears to affect the display position of the image.

      I have changed the log file produced during the split operation to record both the image-dimension / display position and the unknown / possible alpha-bg color information.

      GIRSplit will now split or merge the GIR file. To split a GIR file, feed it with a filename that ends with ".gir". To merge the PNG files, feed it with the log file produced during the split.

      The links in my first post have been updated with the new files.

      pb

      Comment


      • #4
        Hi again,

        All files have been updated from v1.0 to v1.1.

        The log file has been changed again, as I discovered a bug in my code was causing me to make an error in my interpretation of the file format.

        The header of the GIR file is almost certainly in the following format:
        Code:
        Beginning of file:
        -------------------
        67 69 72 00 00 00 00 00 01 00 00 00 XX XX XX XX ; gir
        Where "XX XX XX XX" is a 32 bit integer defining the
        number of PNGs stored in the file.
        
        PNG Filename Records:
        Offset        Bytes        Data
        -------	------	-----------------
        0x00	0x27	Filename
        0x28	0x04	Width Height
        0x2C	0x04	LA DD LB 00 [PNG Offset from centerpoint]
        0x30	0x04	Start Offset from first PNG
        0x34	0x04	File byte size
        
        Where "LA" and "LB" specify the number of pixels to the left of
        the center point that the PNG is displayed in the map, and
        "DD" is the number of pixels down from the center. LA and LB
        can be interchangeable, but if both are used, some formula
        is applied that I don't yet know.
        pb

        Comment


        • #5
          I've made a skin overlay for GMPC for those that use RR:

          http://www.mp3car.com/vbulletin/rr-s...-any-skin.html

          I'm going to try your stuff to see if I can customize it even more... Thanks!
          2007 Chrysler PT Cruiser TE
          Car PC Progress:
          Planning.......[---------X-] 95%
          Parts...........[---------X-] 90%
          Fabrication...[---------X-] 90%
          RR Skin........[---------X-] 95%
          View my
          Worklog
          Road Runner Skins
          Website
          Favorite thread EVER!

          Comment


          • #6
            Where does your program drop the .png's and log file? I run the program which pulls up a DOS window, but it disappears before I can read it and then I have nothing.

            Thanks....
            Mark
            --------------------------------
            Project completed! (almost)

            My Truck as featured in Custom Classic Trucks magazine.

            Comment


            • #7
              It should create a folder in the same directory as the .gir file. In the folder are the .PNG's and log file. Once you're done editing the .PNG's, drag and drop the log file back over GIRsplit, and it creates the .gir in the folder with the .PNG's.
              2007 Chrysler PT Cruiser TE
              Car PC Progress:
              Planning.......[---------X-] 95%
              Parts...........[---------X-] 90%
              Fabrication...[---------X-] 90%
              RR Skin........[---------X-] 95%
              View my
              Worklog
              Road Runner Skins
              Website
              Favorite thread EVER!

              Comment


              • #8
                Got it! Thanks.

                I had to move it off of our network drive and onto my C: drive to get it to work.
                --------------------------------
                Project completed! (almost)

                My Truck as featured in Custom Classic Trucks magazine.

                Comment


                • #9
                  very interesting..
                  ive had a very quick play to see if i could get it to look like lsx
                  Attached Files
                  View My Blog


                  Click for 2GB FREE on-line storage!

                  Comment


                  • #10
                    Now if we can figure out how to change the font, that would be nice...
                    2007 Chrysler PT Cruiser TE
                    Car PC Progress:
                    Planning.......[---------X-] 95%
                    Parts...........[---------X-] 90%
                    Fabrication...[---------X-] 90%
                    RR Skin........[---------X-] 95%
                    View my
                    Worklog
                    Road Runner Skins
                    Website
                    Favorite thread EVER!

                    Comment


                    • #11
                      I kind of like the way it looks right now...
                      But hey if we can change it we will...
                      Great idea...
                      New Age Garmin - Skin for RR
                      New Age Slider - RR SKin In Progress
                      "It's called CODE because I don't want you to know"

                      Comment


                      • #12
                        TYP files editor at
                        http://ati.land.cz/gps/typdecomp/editor.cgi
                        It will allow you to modify colors, orientation flags, line widths, localization strings,draw own bitmaps (editor,change object names,easy poi editing.
                        Right TYP makes maps in GPS or GMPC a lot more readable!

                        Language.gtt in text folder can be changed too like:.....

                        hxxp://www.garmin.com/xmlschemas/GarminTextTranslationv1.xsd" >
                        <hdr>
                        <lang>Indonesia</lang>
                        <desc>Indonesia</desc>
                        <type>Primary</type>
                        <sort>0</sort>
                        <cpage>1252</cpage>
                        <pnum>006-D1115-00</pnum>
                        <ver>1.00</ver>
                        </hdr>
                        <str>
                        <tag>TXT_LANG_ID_STR_M</tag>
                        <txt>Indonesia</txt>
                        </str>
                        .........etc

                        Camera manager by Ash10 at http://www.pocketgpsworld.com/module...Forums&t=43111

                        Garmin Voice Utility by Ash10 again at
                        http://www.pocketgpsworld.com/module...Forums&t=52344

                        Now , thanks for OSK and stuff from Monkeyracer,ThunderStick,El Camino, and Pbarrette

                        Love it

                        Comment


                        • #13
                          I forgot to mention one thing Animated gps batmobile icon by aarrgghh for your GMPC vehicle collection
                          http://www.instructables.com/id/anim...atmobile-icon/
                          in case you wanna create more

                          Fully satisfied

                          Comment


                          • #14
                            Excellent!

                            I'm glad that someone is able to use this program, as I really don't have the time or the artistic ability to do any serious reskinning. My hope with the release of this tool was that it would be able to help at least one person to skin Mobile PC to their liking.

                            I also thought it was great that at least some interface skinning could be done simply by editing some PNGs without having to muck about in the EXE with ResHack or a hex editor the way most other programs (eg Iguidance) require.

                            I was actually considering a GUI interface that would show PNG thumbnails along with their center point and GIR defined offset and allow exporting and replacement of single PNGs as well as center point changes. I don't really have the time to do that at the moment, so I published what I know about the GIR format and the source code to my simple app. If someone wants to run with it, please do.

                            pb

                            Comment


                            • #15
                              .

                              Now if we can figure out how to change the font, that would be very nice...
                              LOL

                              Comment

                              Working...
                              X