README.md
<html><title>SkinDIA! 1.10 License and Documentation</title>
<body>
<h1><a name="legal"></a>LEGAL AGREEMENT</h1>
<p>
SkinDIA! and the SkinDIA! Registration Data are copyright (c) 1995-2004 Alexander
R. Pruss. The word "SkinDIA!" below includes the SkinDIA! software proper, the
SkinDIA! Registration Data and this documentation file. The Force16 and IconFix
software are freeware under the <a href="Force16.html">BSD license</a>. Their
license does not apply to SkinDIA! or SkinDIA! Registration Data. </p>

<p>
1. This is a legally binding agreement between you and Alexander
Pruss. You agree to this agreement by USING SkinDIA!, where "USING" is defined
as copying SkinDIA! or any portion of it into a PDA's storage (of any sort:
permanent or not, hard disk or solid state), or executing SkinDIA! or any
portion of it, or making or distributing further copies of SkinDIA!.
If you disagree, you must destroy all your copies of SkinDIA!, or portions thereof,
including, if you have it, and the SkinDIA! Registration Data or portions thereof.
</p>

<p>
2. SkinDIA! is distributed WITHOUT ANY WARRANTY, implied or express, without
even any implied MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE warranty.
USE AT YOUR OWN RISK. It may crash and burn, destroying your data, but Alexander
Pruss may not be held responsible for this. You agree that you know this and
you agree that you know that a fully backup of all your PDA data should be made before
using.
</p>

<p>
3. You can re-sell or give away your copy of the SkinDIA! Registration Data but
only if you delete all of your own copies of SkinDIA!'s Registration Data and
require the recipient to adhere to this agreement, and only if have never
violated this agreement. You may install SkinDIA! and, if and only if you have a
legally licensed copy, its Registration Data on one PDA. You may make as many
backup copies of SkinDIA! and its Registration Data for your own use as you wish,
providing that (a) you ensure that nobody else has access to these copies or
portions thereof (thus, you may not place these copies on a network in a way
that allows others to access them), and (b) that only one PDA at any given time
has SkinDIA!, its Registration Data and/or a portion thereof ACCESSIBLE to it,
where a copy of SkinDIA! or its Registration Data is defined as "ACCESSIBLE TO A
PDA" providing that it is loaded on any storage, internal, external or
networked, that the PDA is hooked up to, in such a way that it is possible to
transfer data from that storage device to the internal memory of the PDA. Sale
or transfer under any other conditions is prohibited. </p>

<p>
4. You are not permitted to use SkinDIA! in an objectively immoral way or in a way
that violates copyright or trademark law, whether international or specific to
your location. In fact, you are not permitted to use SkinDIA! in a way that
violates any law operative at your location. The one exception is with respect
to laws limiting freedom of expression within a totalitarian state. For the
purposes of this agreement, anti-pornography, copyright and trademark laws do
not count as "limiting freedom of expression" and the United States of
America does not count as a "totalitarian state".</p>

<p>
5. Any attempts to allow SkinDIA! to load or merge skins (other than the built-in OS skin)
without registration after the expiry of the trial period are violations of
this agreement. Furthermore, this agreement prohibits you from attempting
to find, discover or communicate any methods or tools for continuation of non-ROM skin
loading/merging after the expiry of the trial
period.
</p>

<p>
6. As a special permission that may be withdrawn at any time, and that is
automatically withdrawn forever (unless explicit notification to the contrary
is received from Alexander R. Pruss) whenever any of the terms of this
agreement have been violated, you may distribute unmodified copies of the
unregistered shareware version of SkinDIA! to anyone you wish, providing that (a)
all copies include in unmodified form SkinDIA.prc and this readme.html file, (b)
this license is binding on all recipients, (c) any website on which the data is
posted neither contains or links to any methods or tools for continuation of
use of the skin loading features (other than restoration of ROM skin) after the
expiry of the trial period. The special permission for distributing the
unregistered shareware version may be withdrawn either by personal
communication from Alexander Pruss (by voice, email or writing), or by a
general notice posted at www.prussfamily.us/SkinT3Notices.html. You are
responsible for reading any such notices before attempting to distribute.</p>

<p>7. The Registration Data for SkinDIA! contains a complete computer program
copyright (c) 1995 Alexander R. Pruss, distributed in source code format.
Copying, distribution or re- distribution of this program is absolutely
forbidden by this agreement except under the conditions of point 3 as limited
by the rest of this agreement.</p>

<p>8. You are not permitted to use SkinDIA! in an objectively immoral way or in a way
that violates copyright or trademark law, whether international or specific to
your location. In fact, you are not permitted to use SkinDIA! in a way that
violates ANY law operative at your location, with the one exception being
laws unduly limiting freedom of expression within a totalitarian state. At least for the
purposes of this agreement, anti-pornography, copyright and trademark laws do
not count as "unduly limiting freedom of expression" and the United States of
America does not count as a "totalitarian state".</p>

<p>9. You have explicit permission from Alexander R. Pruss to use your SkinDIA! registration
data in a Clie PDA in conjunction with ClieSkinner if you move from a Tungsten
T3/T5 to a Clie NR/NX/NZ/TH/UX, or to use your ClieSkinner registration data in a
Tungsten T3/T5 unit if you move from a Clie to a T3/T5, assuming you have deleted the
relevant registration data from your previous PDA unit. SkinDIA! registration
data is compatible with ClieSkinner and vice versa.

<h1><a name="backup"></a>Make a backup!</h1>

<p>You should make a backup before using this.</p>

<h1>Table of contents</h1>
<ul>
<li><a href="#legal">Legal agreement</a></li>
<li><a href="#backup">Make a backup</a></li>
<li><a href="#registration">Trial, registration and free version</a></li>
<li><a href="#intro">Introduction</a></li>
<li><a href="#get">Where to get or how to make skins</a></li>
<li><a href="#upgrading">Upgrading</a></li>
<li><a href="#instructions">Instructions</a></li>
<li><a href="#warnings">Warnings</a></li>
<li><a href="#mest">MessagEaseStamp and Fitaly users</a></li>
<li><a href="#vfs">SD card and other VFS support</a></li>
<li><a href="#uninstall">Uninstalling SkinDIA!</a></li>
<li><a href="#tips">For advanced users</a></li>
<li><a href="#emergency">Emergency recovery</a></li>
<li><a href="#other">Other devices</a></li>
<li><a href="#contact">Contact information</a></li>
<li><a href="#thanks">Acknowledgments</a></li>
<li><a href="#history">History</a></li>
</ul>


<h1><a name="registration"></a>Trial, registration and free version</h1>
<p>
SkinDIA! comes with an eight day free trial during which time it is fully
functional. After that, the ability to load or merge skins other than the
OS skin, or to move skins to VFS, is disabled. The ability to control display
depth, change clock and Graffiti button color, or control whether application
buttons are shown in full color or two-color mode remains in the free version
that you get after expiry of the trial period. Likewise, the crash protection
features continue to work, except that to get the benefit of the RAM icon
removal on the free version, one has to run SkinDIA! after each time one
installs a skin.</p>

You can register on <a href="http://www.palmgear.com">palmgear.com</a>
to restore all the functions of the full version.
</p>

<h1><a name="intro"></a>Introduction</h1>
<p>
DIA skins on allow
you to change the look of your PDA. SkinDIA! lets you load and manage these
skins on the Tungsten T3 and T5. You can even use SkinDIA! to load T3 DIA
skins on a T5. Do not run this on other models than the T3 or T5--it will
probably crash them.</p>

<p>
If you are using a T5 with skins designed for the T3, make sure you read
the <a href="#instructions">instructions</a> carefully.</p>

<p>
SkinDIA! includes VFS support which lets you move your
skins to SD or other media and has support for 16-bit skins.
You can register the trial version on
<a href="http://www.palmgear.com">palmgear.com</a>.
</p>

<h1><a name="get"></a>Where to get or how to make skins</h1>

<p>All of the following links are for the T3. But since SkinDIA! lets you use T3
skins on your T5, this shouldn't matter. But make sure you read the
<a href="#instructions">instructions</a> carefully when cross-loading skins.</p>

<h2>Software for generating skins</h2>
<ul>
<li> <a href="http://festus440.happypalm.com/">
Festus440's 8- and 16-bit T3 skin makers.
</a></li>
<li> <a href="http://sourceforge.net/project/showfiles.php?group_id=92189&package_id=128210">
Batch files for generating 16-bit DIA skins. Includes templates.
</a></li>
</ul>

<h2>Pre-made skins</h2><ul><li><a href="http://www.palmgear.com/index.cfm?fuseaction=software.category&catid=288">Lots of skins on palmgear, many of them free</a></li>
<li><a href="http://www.1src.com/freeware/index.php?cid=60">1src skins</a></li>
<li><a href="http://www.bryceart.de">Bryce Art</a></li>
<li><a href="http://groups.yahoo.com/group/TungstenDIA/files">Yahoo Tungsten DIA skins group</a></li>
</ul>

<p>There is also a free 16-bit skin included named "Geeky".</p>

<h1><a name="upgrading"></a>Upgrading</h1>
<p>If you are upgrading from a previous version, hotsync <tt>SkinT3.prc</tt> to
your PDA. Then run SkinDIA! to take advantage of any bug fixes. For instance,
if you get 1.02, you get the clock-popup-crash workaround activated as soon as
you run SkinDIA!, even if you do nothing else.</p>

<p>If you are upgrading to version 1.10 and up, and you have IconFix enabled for
all applications, you will save some memory by disabling IconFix for all applications,
deleting IconFix and then using the "Full-color icon mode" option in the "Color"
menu of SkinDIA!. This will require a soft reset.</p>

<h1><a name="instructions"></a>Instructions</h1>

<p>Read all of these instructions very carefully, especially if using T3 skins on
a T5 unit.</>

<p>Hotsync <tt>SkinDIA.prc</tt> to your PDA. If you have registered SkinDIA!,
hotsync <tt>SkinDIA_Registration.pdb</tt> to your PDA.</p>

<h2>Skin types</h2>
<p>T3 DIA skins come in three varieties: standard T3 DIA skins, F3T3AgendaBG skins and
SkinDIA! (also known as SkinT3! skins or 16-bit skins) skins. All three kinds
can be loaded by SkinDIA!. F3T3AgendaBG and SkinDIA!/SkinT3! skins work by far
the most easily, and should work on either a T3 or a T5 with no problems. (Note
that SkinDIA!/SkinT3! skins might not be "complete", i.e., may deliberately
lack a number of resources. Missing resources will be filled in from the ROM
skin by SkinDIA! when activating the skin.)</p>

<p>The installation of standard T3 DIA skins differs between a T3 and a T5. This should
be no surprise since standard T3 DIA skins are designed specifically for a T5.
If you're not sure if something is a standard skin or not, assume it's a standard
skin. (Note that currently there are no standard T5 DIA skins available. When
they become available, they should be loadable on a T3 by following the instructions
given for cross-loading T3 skins on a T5, and the T5 skins will be loadable on a T5 by
following the instructions for loading T5 skins on a T3.)</p>

<h2>Installing standard T3 DIA skins on a Tungsten T3</h2>
<p>Standard T3 DIA skins activate on a T3 automatically after
being hotsync'ed to RAM, overwriting any previous standard T3 DIA skin. Typically they
also force a soft reset on hotsync'ing. They also do not have any distinctive name in
the database beyond the standard name "StatusBarResources". If SkinDIA! finds that a
standard T3 DIA skin got loaded into RAM since the last SkinDIA! session, it
will convert that skin to a SkinDIA! skin, renaming it to a skin named
"Unnamed DIA skin #X", and deactivate it. It will also attempt to activate the previously
loaded skin. This means that you can install standard T3 DIA skins just by hotsync'ing them,
running SkinDIA!, and then renaming the "Unnamed DIA skin #X" skin to some more usable
name.</p>

<p>However, all this is a bit of a nuisance given the reset that these skins cause.
You have two other choices. The first is to load the skin onto an SD card instead of RAM,
in the <tt>/PALM/Programs/SkinT3</tt> or <tt>/PALM/Launcher</tt> directory. The
second choice is to "fix up" the skin before hotsync'ing it, and convert it to SkinDIA!
skin format. This can be done by double clicking on <tt>FixUpT3Skin.exe</tt> on a Windows
unit, and then selecting the skin to be converted to SkinDIA! format. Such skins no
longer self-activate. In fact, you should <i>not</i> attempt to activate them in any way
other than by using SkinDIA!. (Advanced users may be used to activating skins by renaming
them and changing the creator ID. Do not do this with SkinDIA! skins, as this may cause
a crash.)</p>

<h2><a name="T5">Installing standard T3 DIA skins on a Tungsten T5</a></h2>
<p>If you hotsync a standard T3 DIA skin to the program memory of a T5, you may
have problems. Most likely, the skin will not show up at all until you run
SkinDIA! (when it will get renamed to "Unnamed DIA skin #X") and until you load
it. However, some T3 skins when hotsync'ed to a T5 will crash the T5.
Therefore, hotsync'ing a standard T3 DIA skin to program memory on a T5
is <i>not</i> recommended.</p>

<p>Therefore, you should do one of two things.</p>

<p><b>Option 1:</b> Instead of loading the skin to program
memory, you could load it to the internal drive (or an SD card) in the <tt>/PALM/Programs/SkinT3</tt>
or <tt>/PALM/Launcher</tt> directory. </p>

<p><b>Option 2:</b> "Fix up" the skin before hotsync'ing it, and convert it to SkinDIA!
skin format. This can be done by double clicking on <tt>FixUpT3Skin.exe</tt> on a Windows
unit, and then selecting the skin to be converted to SkinDIA! format. Such skins no
longer self-activate and you should <i>not</i> attempt to activate them in any way
other than by using SkinDIA!.</p>


<h2>Using SkinDIA!</h2>
<p>SkinDIA! needs enough memory to make an extra copy in RAM of the skin being loaded. If it
lacks this memory, it may crash. (For partial skins being loaded, enough memory for the
full skin, after adding components from the base skin, is needed.)</p>

<p>To deactivate SkinDIA!, simply load in the "Built-in OS skin".</p>

<p>The "SD" (or "VFS") button lets you <i>move</i> a skin to VFS. To copy a skin
instead of moving it, use the "File" menu.</p>

<p>Tapping the menu button, brings up a menu. In the "File" menu there is a useful function to move
all skins from RAM to an SD card or internal drive (VFS is the general name used), to copy (not move) one skin to VFS
and to copy the
skin from the card to RAM. There is an options menu with many useful preferences. There is a "Merge"
menu for combining resources from different skins--see further on <a href="#merge">down</a>.</p>

<p>Finally, version 1.10 introduced a "Color" menu. This modifies the currently
loaded skin by changing the clock color and the color of the two-color buttons in
the Graffiti area. Newly loaded skins can override these settings. You can also
control whether application icons are shown in two-color mode, which is the T3's
default, or in full-color mode. This used to require <a href="IconFix.html">IconFix</a>
which created overlays that took up some memory and didn't work for all icons. Now
it works for all icons without any such overlays. (You can disable IconFix support
for all icons and still use this option. Or you can keep SkinDIA! set in "two-color"
mode and use IconFix to control <i>which</i> icons are specifically shown in full color.)
</p>

<p>Whenever a
setting in the "Color" menu is changed, or a skin is loaded that affects the setting,
a reset is needed for the setting to take effect. You can, of course, choose "Later"
to the question whether to do a reset, and make other changes first. Or if you're
loading a skin that changed a color and you don't care about seeing this change, you
don't have to bother with the reset. You can choose the option never to even ask
about a reset. (But still the "Reset" button will magically appear on the screen
whenever you do something that makes a reset appropriate.)</p>

<h1><a name="warnings"></a>WARNINGS</h1>

<ol>
<li>Loading a skin with SkinDIA! makes an extra copy of the skin for as long
as the skin is loaded as well as inserting any missing resources from the ROM
skin. Whether making this extra copy in RAM of the skin and of some ROM resources
is legal depends on local laws. The user
is responsible for ensuring legality of use. Note that merging the OS skin
or changing the clock color (and perhaps Graffiti button color) will result in an
extra copy of the ROM skin being made in RAM, too.</li>
<li>Changing the clock color and
Graffiti button colors also modifies the RAM copy of the currently loaded skin.
If the skin was distributed with a no-modification license clause, this may be
legally problematic.</li>
</li>
<li>Renaming an F3T3AgendaBG skin so that its name no longer starts with the magic string "F3T3AgSkin" will
make it invisible to F3T3AgendaBG. SkinDIA! should see it just fine, though.</li>
<li>You cannot rename an F3T3AgendaBG to make its name start with the magic string "F3T3Agenda".
Doing that would cause no end of trouble.</li>
</ol>


<h1><a name="mest">MessagEaseStamp and Fitaly users</h1>
<p>
<a href="http://www.exideas.com/ME/index.html">MessageEaseStamp (MEST)</a> and
<a href="http://www.fitaly.com">Fitaly</a>
come with its own custom skins of which only a few
components are modified from the OS skins. You can mix-and-match the
components of these skins with components of other skins. For your convenience,
the MERGE menu includes a "MEST components" and a "Fitaly components" option which simply merges in the
MEST-specific components from a MEST-specific skin (presumably F3T3AgSkinMEST3-007ANI or
F3T3AgSkinMEST3-ANI007) or the Fitaly-specific components from a Fitaly-specific skin
(presumably T3FitalySkin2, which if you keep it in RAM will have been renamed to "Unnamed DIA skin #x").
Thus, you can LOAD any custom skin not designed for MEST or Fitaly, and then
MERGE the MEST- or Fitaly-specific components on top of it from the MEST or Fitaly skin.</p

<h1><a name="vfs"></a>SD card and other VFS support</h1>

<p>
SkinDIA! can read skins from an SD card (and other VFS devices) and move them to VFS. Tap on the <b>SD</b> button (if you happen to have another
VFS device, you can selected in the preference dialog). Skins are read from
the <tt>PALM\Launcher</tt>, <tt>PALM\Programs\SkinT3</tt> and <tt>PALM\Programs\AgendaBG</tt>
directories on
all available VFS devices. You can make SkinDIA! start up faster if you
keep all your skins in <tt>PALM\Programs\SkinT3</tt> and/or <tt>PALM\Programs\AgendaBG</tt>
and
in the Preferences dialog disable
the option to search <tt>PALM\Launcher</tt>.</p>

<p>
It is <i>not</i> recommended that you load SkinDIA! itself onto an SD card or other
VFS device.</p>


<h1>
<a name="uninstall"></a>
Uninstall SkinDIA!
</h1>
<p>To uninstall SkinDIA!, load in the Built-In OS Skin, choose "Yes" on the "Deactivate"
dialog that will come up, and delete SkinDIA!.</p>
<h1>
<a name="tips"></a>
Instructions and tips for advanced users
</h1>
<h2>
Flash ROM
</h2>

<p>
It should be theoretically possible to store SkinDIA! and the skins not just in
VFS but in flash ROM via some utility like Jackflash. I have not tested this
configuration. One important caution. Before you do that, make sure the skins
are "deactivated" by either running them through FixUpT3Skin or by installing them
and running SkinDIA!.
You
should <b>not</b> put the SkinDIA! <tt>StatusBarResources</tt> database into ROM.
</p>

<h2>
<a name="merge"></a>Merging skins
</h2>

<p>
You might like one set of components of one skin and another set of components
of another.
For instance, you might like the status bar from one skin but want to stick with
your OS's built-in Graffiti backgrounds. You can do that with SkinDIA! by using the "merge"
options. First, use the "Load" button (or just press the five-way navigator) to load the skin you want for most of the
components. Then highlight another skin by tapping on its name, and pull down
the menu (tap on the "SkinDIA!" title bar), go to the "Merge" menu, and choose
which components you want to merge in. If you want more precise control, choose
the custom merge option.</p>

<p>The "Merge all" option is useful for "partial" skins. These are skins that
do not include all components. For instance, some "partial" skins may include
only buttons or only Graffiti backgrounds. Normally when a "partial" skin is
loaded, the missing components are supplied from the built-in OS skin. But if
you load the skin via the "Merge all" option (or in fact via any merge option),
the previously active skin's resources are used for the resources missing in
the skin loaded.</p>"

<p>For instance, the included GeekySkin only has Graffiti area backgrounds. Suppose
you want to use these backgrounds together with the buttons, keyboards and statusbar from
MyFavoriteSkin. Normally loading GeekySkin will get you buttons, keyboards and
statusbar from the OS. However, you can instead load MyFavoriteSkin and then use
"Merge all" to merge in the GeekySkin's Graffiti area backgrounds, creating a hybrid
in memory.</p>

<p>
It is possible that creating such a hybrid might violate copyright laws. Consult
your local law and any license agreements with your skins and software.
</p>

<h1>
<a name="crashprotection"></a>Crash protection and RAM icon on clock popup
</h1>
<p>
Currently, all methods of loading DIA skins other than SkinDIA! apparently cause a crash when you
load a skin and then pull up the clock popup (by tapping on the statusbar clock) eight
times. Obviously, you don't do this eight times in a row, but the count appears to
be cumulative (unless you do a reset in the meanwhile), so this means that if you load
a skin without using SkinDIA!, you might get a crash. The crash is due to a bug or
poor programming practice in the T3/T5 ROM code handling the RAM (or "Device" on T5) icons in the clock popup.</p>

<p>SkinDIA! protects against this crash in two ways, depending on whether the "support RAM
icons in clock popup" option is activated in the SkinDIA! preferences:

<ul>
<li><b>RAM icon support deactivated:</b> This is the default option. SkinDIA! simply
disables the RAM icons in the clock popup. You still have a text-based display of
the percentage of your memory that is used. This does not look perfect, but it is
much better than a crash. It is a simple solution that does the job.</li>
<li><b>RAM icon support activated:</b> This option was introduced in 1.15. It enables
the RAM icons in the clock popup (if you loaded a skin using an earlier version,
re-load it to get them back), while protecting the system against crashing. This
method may <i>slightly</i> slow down your system, though I do not expect it will be
noticeable. (The slowdown should be less than from McPhling or my Capitalizer, and
no one has complained about Capitalizer slowing things down even on much slower CPUs.)
The other thing to remember with this option, is that you will have to disable it before
either deleting SkinDIA! or upgrading it.</li>
</ul>
</p>

<p><b>Note for skin designers:</b> If you want to create skins that do not
cause this crash and that can be loaded by users who do not have SkinDIA!, you
should simply omit <tt>abmp</tt> resources 19520-19528 from your skin. This
implements the first of the two solutions above at the level of your skin. (
Note that if the user loads in the skin with SkinDIA! and RAM icon support
activated, the default icon from the OS will be used, so the skin will look
better.)</p>


<h2>
Display bit depth
</h2>

<p>
The T3 can display in 1-bit (monochrome), 2- and 4-bit (grayscale),
8-bit and 16-bit color. Since skins look different in the different settings,
SkinDIA! lets you change the current depth setting to look at a skin at a
different setting by going to the Options menu.
</p>

<p>
Using the appropriate menu option, you can also make the current depth
setting the default for applications.
Some applications override the default, but many do not. Higher bit settings
will make applications use more memory, but perhaps will improve quality.
And 16-bit display mode is needed to make full use of 16-bit skins.
The default depth setting is set back to 8 after a soft reset. There is
an option in the Options | Preferences dialog to force
the current setting to stick after a soft reset.
</p>

<p>
There are some third-party utilities that also set screen depth. Some
of these may interefere with SkinDIA!'s attempt to set the default system
depth. (Butterfly is reported to do so in the case of ClieSkinner on the TH-55.) If you are running
such a utility, use it rather than SkinDIA! for setting system depth or deinstall it.
</p>

<h2>
16-bit skins
</h2>

<p>
To improve quality, you can use
16-bit skins. These display correctly in both
8- and 16-bit screen modes, though look best in 16-bit modes.
For instance, GeekySkin is a 16-bit skin.
</p>

<p>
Not all applications support 16-bit display. Those that do not will
display the skin in downgraded 8-bit mode, though should still work. In the Preferences,
there is a "dithering" option
in the preferences to control how the skin gets downgraded. The "auto"
option leaves it up to the skin designer. (Currently, all skins are released
with dithering enabled.) When dithering is on, 16-bit images displayed in 8-
bit mode are more fuzzy but have better color fidelity, while without dithering
the images are sharper but the color fidelity suffers. Which is the better
choice depends on the skin. You will need to reload the current skin for this
option to take effect as it only affects skins at loading time.</p>

<p>For those applications that do not support 16-bit display,
I include a copy of Force16. Make sure you read its
<a href="Force16.html">documentation</a> carefully before installing.</p>

<p>
<b>Warning:</b> Support for 16-bit skins may result in problems with
some backup software because the SkinDIA! internal databases have an oversized (>65000 bytes)
resource. For instance,
<a href="http://www.bitsnbolts.com/backupman.html">Backupman</a> may skip the SkinDIA! internal databases when
restoring, but seem to work fine otherwise. In general, backup software may ask whether
to skip the <tt>StatusBarResources</tt> database when restoring due to out
of memory or other errors--this is because of the oversized resource. Just say "yes"
to any skip or delete prompts for this database. SkinDIA! will regenerate it next time
you load a skin.</p>

<p>
Making 16-bit skins requires
generating the appropriate 16-bit resources.
The only catch is that if you do
that, some <tt>abmp</tt> resources might end up exceeding the 65000 byte limit,
and then you will be unable to copy or load the skin. SkinDIA! allows a workaround
for this limit. An <tt>abmp</tt>
resource may be split into two resources, an <tt>abmp</tt> resource that is exactly
65000 bytes long and a continuation resource of type <tt>2bmp</tt> and the same id. When
loading, SkinDIA! will simply merge the two binary resources together into a single
image.</p>

<h2>
<a name="compacting"></a>Compacting, converting and saving skins
</h2>
<p>
There are options in the "File" menu to convert skins to SkinDIA! format as well
as to compact them. These operations only work on skins in RAM. To perform them
on skins on a flash card, move them to RAM, perform the operation, and move them
back to the card.</p>

<p>
Compacting removes from a skin all resources that duplicate resources found in ROM.
This saves memory. Compacting also changes the "Merge" behavior of the skin.
Merging loads in all the resources from the skin, including any resources that
duplicate those in ROM. After compacting, most of the latter will not be loaded by a
"Merge" function (except for resources that are closely logically tied in such a way
that they should not be separated, such as various keyboard resources), which
actually should be nicer behavior. Compacting also automatically converts the
skin to SkinDIA! format. I recommend doing this, if only to save memory.</p>

<p>Conversion is useful because skins in F3T3AgendaBG format cause trouble
for some backup programs. Note that when one converts an "F3T3AgendaBG" skin
the "F3T3AGSkin" prefix is removed from the name, unless doing so is impossible
due to another skin that the name would conflict with.</p>

<p>
You can also save the currently displayed skin ("Save As..."), if copyright law allows this.
This will create an extra copy of the skin. You can choose to compact the skin
while doing this. Saving the skin also saves the button and clock colors (though
not the full vs. two-color setting, which is not stored in a skin). Saving is
useful when you have customized the skin via merge and color operations.</p>

<p>Compacting is quite useful in conjunction with special skins that change only a
few components.</p>

<h2>
<a name="format"></a>SkinDIA! skin format
</h2>
<p>
The SkinDIA! skin format uses the Creator ID 'T3sk' and type 'rsrc'. Moreover,
no 'ovly' resource is permitted: instead, the data that normally goes in the
'ovly' resource should be placed in the 'OVLY' resource. It is a good idea
to omit resources that are just direct copies of what is in the ROM.
</p>

<h1>
<a name="emergency"></a>Emergency recovery
</h1>
<p>If you load in a really buggy skin on any model or hotsync a standard T3 skin on a
T5, you could have continual crashes on reset.
To fix this, you can try to do a warm reset (navigator-up plus reset) and then load
the Built-In OS Skin in SkinDIA!. The DIA may not be working at this point. To get
to the Launcher, you may need to hold down the navigator button on the T3, or else press
the Launcher button on the T5.
</p>

<h1>
<a name="other"></a>
Other devices
</h1>
<ul>
<li>There is no connection between SkinDIA! or ClieSkinner, on the one hand, and
<a href="http://www.79bmedia.com">79bmedia GmbH's</a> <a href="http://www.79bmedia.com">Skinner</a> program to change phone
skins for Treo 270/300/600, on the other hand. There is no connection between Alexander R. Pruss and
79bmedia GmbH. Users who have both a T3 and a Treo will want to look
into 79bmedia GmbH's product.</li>
<li>There is a sister product to SkinDIA! named ClieSkinner for the Sony Clie NR/NX/NZ/TH/NR
PDAs. It should be available from
wherever you obtained ClieSkinner. Moreover, you are permitted to freely
"upgrade" from SkinDIA! to ClieSkinner or <i>vice versa</i>, and use the registration
code from one on the other, as long as you do not have the registration code installed
on more than one device at a time. This means that a Clie user with a registered
copy of ClieSkinner moving to a T3 does not
need to pay for SkinDIA! and a T3 user moving to a Clie with a registered copy of SkinDIA!
does not need to pay for ClieSkinner. <i>However</i>, if you want to use <i>both</i>
products in registered mode, you need to register <i>both</i> (or to register one of them
twice--I don't really care, as long as I get paid, since the price for the two is the
same).</li>
</ul>

<h1>
<a name="contact"></a>
Contact information
</h1>
<p>The author can be contacted by email at
<a href="&#109;ailto&#58;&#97;p85&#64;georgetown&#46;edu">&#97;p85&#64;georgetown&#46;edu</a>.</p>
<p>There is a <a href="http://groups.yahoo.com/group/PalmSkins/">Yahoo discussion/support</a> forum.</p>

<h1>
<a name="thanks"></a>
Acknowledgments</h1>

I would like to thank all of my wonderful beta testers. I would like to specifically
mention Eli Weitz for his comments and his insistence that I consider
MessagEase users, an insistence that has paid off.

<h1>
<a name="history"></a>
History
</h1>
<p>Version 1.32: Better support for T5 internal drive. Updated instructions for T5.</p>

<p>Version 1.31: Bug fix and first attempt at T5 compatibility. Renamed to SkinDIA!</p>

<p>Version 1.30: Added custom skin merge feature. Activated optimization for compilation, reducing file size. Fixed ABC/123 areas of landscape components of Geeky skin.</p>

<p>Version 1.26: Minor bug fixes.</p>

<p>Version 1.25: MessagEaseStamp and Fitaly merging. More reliable VFS scan. Can control whether to search PALM\Launcher directory.</p>

<p>Version 1.23: Better (safer) compacting for extended keyboard handling.</p>

<p>Version 1.22: Fixed a rare bug.</p>

<p>Version 1.21: Removed a bit of test code that created a junk file on the SD, and fixed handling of renamed F3T3AgendaBG skins.</p>

<p>Version 1.20: Added copy to SD feature, as well as "Save As...", compact and convert functions. Added support for RAM icon in clock popup--see the <a href="#crashprotection">Crash protection</a> section. Expired (i.e., free) version no longer disables current skin the way that the full version does. Copying skins to card no longer changes the format they have in RAM. Better five-way navigator support. New eight-day trial period for people who tried out earlier versions (this fixes a bug with trial period expiry for people who have both SkinDIA! and IconFix installed).</p>

<p>Version 1.12: Updated Geeky skin to improve statusbar.</p>

<p>Version 1.11: Merging extended over normal keyboard fix.</p>

<p>Version 1.10: Added clock color and graffiti button color selection, and options to toggle between full-color and two-color icons in graffiti area.</p>

<p>Version 1.05: Allow keyboard-only merging. Allow merging with OS skin as base (do not use if copyright law does not permit this). Respect custom Graffiti layouts.</p>

<p>Version 1.04: Fix merging with extended keyboard skins.</p>

<p>Version 1.03: Fix problems with extended keyboard skins.</p>

<p>Version 1.02: Remove free-memory icons
entirely from clock popup to work around problem discussed in the <a href="#crashprotection">Crash protection</a> section. On the bright side, the soft resets introduced in 1.01 have been eliminated.</p>

<p>Version 1.01: Fix bug with clock popup. Now a reset is going to be forced when the
first skin is loaded or when SkinT3! is deactivated and later reactivated.</p>

<p>Version 1.00: First public release.</p>

<p>0.60 beta:
Skin merging support.</p>

<p>0.51 beta:
Accept F3T3 skins that start with something other than "F3T3AgSkin". This
is important for renamed F3T3 skins.</p>

<p>0.50 beta:
Renamed T3Skinner to SkinT3!. Public beta release.</p>

<p>0.04 beta:
Exclude F3T3AgendaBG Agenda backgrounds from list.</p>

<p>0.03 alpha:
First version to work on a hardware T3.</p>

<p>0.01 alpha:
First preliminary release based on code imported from ClieSkinner 1.16 release.</p>

</body></html>