Menneisyys
05-20-2006, 10:21 AM
IMPORTANT UPDATE (21:44 CET, 05/22/2006): in the meantime, an even better and easier tweak has been documented to further reduce the CPU load caused by services.exe. Therefore, instead of section 1.2 ("This is what you should do") please read this blog post (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=830&more=1&c=1&tb=1&pb=1). Sorry, I don’t have the time right now to almost rewrite the entire article for the changes to be included and references to the older method eliminated. Will definitely do it when I publish an all-in-one article on all these tweaks as soon as my Compact Flash bugfix utility (of which see this blog entry (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=829&more=1&c=1&tb=1&pb=1)) is ready.
Also note that there’re a LOT of user feedback and comments at the following Pocket PC sites: PPCT (forum) (http://www.pocketpcthoughts.com/forums/viewtopic.php?p=403409), PPCT (frontpage) (http://www.pocketpcthoughts.com/forums/viewtopic.php?p=403446), BrightHand (http://discussion.brighthand.com/showthread.php?t=222190) and MobilitySite (http://www.mobilitysite.com/forums/showthread.php?t=29885).
Please also note that if the filesys.exe throttler application doesn’t work (not even after a few resets or starting by hand), read this blog entry (http://www.pocketpcmag.com/blogs/index.php?blog=3&title=hp_ipaq_hx4700_wm5_upgrade_prolonged&more=1&c=1&tb=1&pb=1) on finding the Process ID of filesys.exe so that I can create a customized version of the throttler for your particular device.
Finally, you will also want to read this thread (http://discussion.brighthand.com/showthread.php?t=219960) on increasing the maximal Bluetooth Dial-Up Networking (DUN) speed of the WM5 upgrade.
Now follows the original article (again, note that section 1.2 is deprecated – you should, as has already been pointed out, follow the tutorial here (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=830&more=1&c=1&tb=1&pb=1) instead):
Thanks to Hal Goldstein at the Smartphone & Pocket PC magazine, I’ve become a proud owner of an HP iPAQ hx4700 and, therefore, am able to invent great hacks and tweaks for the hx4700 community too, which, so far, has been impossible for me because of the lack of constant access to the device.
Of course, the first thing I’ve done after receiving the device was installing the WM5 upgrade.
My first impression of the upgrade was awful. After installing a handful of applications and games, it became really-really slow, irresponsible and consumed a lot of battery power (I’ve measured the latter with acbPowerMeter (http://www.pocketpcmag.com/blogs/index.php?blog=3&title=extend_your_battery_life_never_before_pu&more=1&c=1&tb=1&pb=1)) compared to other WM5 devices (I have several other WM5 devices so I can directly compare the different operating system implementations). Furthermore, anything requiring smooth animation (an e-book reader with auto-scroll capabilities or any game) was useless because of the constant stuttering problem, which makes scrolling or even video watching an awful experience. The situation wasn’t at all changed by the so far published cache tweaks (see Chapter 3 on them) – the device remained as useless for anything that requires smooth scrolling (for example, games – give a try to, say, the VGA version of the great multiplayer-capable puzzle game Quartz 2 (http://www.pocketpcmag.com/blogs/menneisyys/102005MPPPCGames.asp) to see how bad and stuttering the animation is!).
Then comes the problem of filesys.exe – the subject of the second part of this article.
Note that these hacks and tweaks have been found/developed by me. See the advantages of reading/following my articles/posts? ;) (For example, following / subscribing to the RSS feed of the Smartphone & Pocket PC magazine blogs (http://www.pocketpcmag.com/blogs/), my home blog – it contains a LOT of useful, genuine, unique stuff like these tweaks).
1. Rename the Games folder!
1.1 How did I find this all out?
(This section sheds some light on the inherent bug of Synaptics NavPoint and the way I’ve found it out. Reading / understanding it is NOT needed for applying the patch and is, therefore, only recommended for Pocket PC gurus/geeks or people that want to know more about the inner secrets of the hx4700 implementation of WM5. That is, you can safely skip this section and move straight to section 1.2.)
Realizing some process is taking up CPU resources all the time, I started to play with the processes to find out what is causing the stutters every about half a second and to also find out what the high battery load is caused by.
After firing up a decent task manager (I may not name/link it now because it’s a closed beta product and I’ve agreed to an NDA - if you need one, check out for example Super tasks (http://www.pocketgear.com/software_detail.asp?id=14661)), I saw that while the dreaded (search the Pocket PC forums for it to see what others say about it!) "filesys.exe" consumes (in the majority of the time) almost (<0.1%) no CPU, "services.exe" does – as opposed to other WM5 Pocket PC’s. When I started, the hx4700 packed with games and apps, investigating the problem, it took a constant ~20% CPU time, which become gradually worse after every new installed game – even if I’ve installed them, as recommended (see the links in Chapter 3) for hx4700 WM5 users, on an SD card.
Therefore, I’ve given a try to uninstalling these applications/games. As I had thought, it has indeed resulted in a subtle performance increase.
I knew at once that the problem is related to either files present in the main storage memory or the program installation information in the Registry (at least under the HKEY_LOCAL_MACHINE\ SOFTWARE\Apps brach (note that, in order for Registry information to be well-formatted, I've added spaces after (some) backslashes in them), if there are no application-specific entries under HKEY_CURRENT_USER\ Software or HKEY_LOCAL_MACHINE\ Software).
First, before starting to delete the above-listed Registry entries, I scrutinized the files in the main memory. I’ve deleted the contents of \Windows\AppMgr (they can be freely deleted if you don’t want to uninstall these apps - see this article (http://discussion.brighthand.com/showthread.php?t=215534) (alternatives: MobilitySite (http://www.ipaqhq.com/forums/showthread.php?p=101534), AximSite (http://www.aximsite.com/boards/showthread.php?p=775972), PPC Magazine (http://pocketpcmag.com/forum/topic.asp?TOPIC_ID=17260), FirstLoox (http://www.firstloox.org/forums/showthread.php?p=35331), PPCT (http://www.pocketpcthoughts.com/forums/viewtopic.php?p=357766)) for more information on this). It resulted in no performance increase (that is, decreased CPU usage of services.exe).
Then, I deleted the HTML help and related image include files from \Windows (also see my tutorials linked from the previously linked-in article on this) to see whether it’s additional files in \Windows that cause the problems. Again, no success.
Last, I’ve deleted the .lnk link files from \Windows\Start Menu - the last occurrence of application-related files installed to the main storage, common to all third-party apps/games. That did it! After deleting all the links of the additional programs and games I’ve installed, the CPU usage of services.exe fell back to 5.2% (the value after a clean reset – note that, under WM5, there’s a difference between a "clean" and a "hard" reset. It’s only clean resets that delete everything off the file system, traditional hard resets don’t. The latter only delete the non-file/registry-based flags. Please see this thread (http://www.mobilitysite.com/forums/showthread.php?t=28200) for more information on this.)
The immense success of getting rid of the link files made me think. Why did this happen? Why would the iPAQ constantly monitor the .lnk files under \Windows\Start Menu? Then, I remembered the Game Manager (the Gaming tab) (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700Gamemanager.bmp.png) in Settings/System/Synaptics NavPoint and immediately knew the answer – yes, NavPoint constantly monitors \Windows\Start Menu\Programs\Games (that is, the Games folder in the Programs section of the Start menu) to see whether there’re new game links in there.
I immediately restored my .lnk files, except for the ones in \Windows\Start Menu\Programs\Games. I turned out to be right – the CPU usage of services.exe didn’t increase at all.
Interestingly, if I deleted the two predefined lnk files (Bubble Breaker.lnk and Solitaire.lnk) and the icon file in \Windows\Start Menu\Programs\Games , the CPU usage of services.exe dropped to around 0.5% - which is an order of magnitude better than the default ~5.4%. This means you should follow the following, Section 1.2 of this tutorial even if you don’t install a single game on your WM5 hx4700 – the two games contained in the ROM will always result in an additional 5.4% CPU usage and the PDA becoming unbearably bad at anything needing smooth scrolling, including playing videos!
1.2 This is what you should do
Start File Explorer on the PDA, go to \Windows\Start Menu\Programs\ and long-tap the Games directory so that the context menu comes up. Choose Rename as can be seen in this screenshot (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-Games-Rename1.bmp.png).
Change the name of the directory to anything else; for example, MyGames as can be seen in this screenshot (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames.bmp.png). Tap the Enter key on the on-screen-keyboard (or just click anywhere else on the screen); the name of the directory will be changed (as can also be seen in this screenshot (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700RenamedGamesFolder.bmp.png), taken of the "traditional" Programs dialog of the Start menu). Now recreate the Games folder - just choose Menu/New Folder as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-Games-RenameNewGamesFolder.bmp.png). (Do not forget this second step; otherwise, if there is abolutely no Games folder under \Windows\Start Menu\Programs\, the CPU usage of services.exe will be around 1.5%, which is slightly higher than with the case of a completely empty Games folder.)
Now, you can freely reset the Pocket PC; after the reset, services.exe will only take about 0.5% CPU time, eliminating all stuttering in scrolling, making reading with auto-scroller e-book readers, watching videos, plain games etc. much-much more pleasuring than before – again, even if you don’t install any additional games.
Please note that you will need to move all .lnk files automatically added to \Windows\Start Menu\Programs\Games directory after every game install. It’s very easy: you just go to the Games directory, (mass-) select (you can always mass-select links by clicking Ctl, and, then, A on the on-screen keyboard) the new link files, tap-and-hold the selection and choose Cut from the context menu as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames-CutPostInstalledGames-1.bmp.png). Now, go to your new game directory (in the tutorial above, \Windows\Start Menu\Programs\MyGames), scroll down the list to the bottom and tap-and-hold an empty area there. Choose Paste in the context menu as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames-CutPostInstalledGames-2.bmp.png). (Alternatively, you can bring up the on-screen keyboard, click Ctl as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames-CutPostInstalledGames-3.bmp.png) and, then, click V). After this, the .lnk files (in this case, the Spb AirIslands ones) will appear at the end of the list as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames-CutPostInstalledGames-4.bmp.png).
Remember to always do this after you install any additional game resulting in the new link files added to the Games directory! This is an one-time (non-recurring) task; therefore, you won’t end up having to do it often.
Note that hx4700's with localized WM5 versions where the Games folder is called something else (for example, Spiele in the German version), you will need to accordingly change the tutorial above and use that folder name instead of Games.
Congratulations! Now, you have a much more usable device!
Another thing is still to be done, though – radically decreasing the filesys.exe CPU usage. It’ll be even easier than the tweak above.
2. filesys.exe
2.1 Background
(This section sheds some light on what filesys.exe is all about and why it’s behaving so. Reading it is NOT needed for applying the patch and is, therefore, only recommended for Pocket PC gurus/geeks or people that want to know more about the inner secrets of how Pocket PC’s work. That is, you can safely skip it and move straight to section 2.2.)
Non-native WM5 devices that, initially, came with the WM2003SE operating system later upgraded to WM5 have a system process filesys.exe, which does some important tasks involving the compaction of the built-in storage. (Please read this article (http://blogs.msdn.com/windowsmobile/archive/2006/03/16/552996.aspx) for more information on all the theoretical stuff – I won’t delve in it more because it's not needed for the tweak to work.)
filesys.exe behaves in a very user-unfriendly way. When it kicks in (it activates about twice every hour when the PDA is switched on, also depending on the amount of new files in the main Flash ROM storage memory to be packed – this means it will almost immediately ‘kick in’ after installing, say, an application into the main storage), it takes almost the entire CPU, leaving the user almost no CPU cycles. This means the PDA becomes almost useless during the time (in general, some to several minutes, depending on the amount of files to be compacted). For example, registering a simple screen click will take the PDA sometimes dozens of seconds.
It’s not possible to kill or permanently disable filesys.exe. Killing it will crash the entire system. You can’t force it to take much less CPU time with built-in tools either. This is where the filesys.exe throttle patch (originally written by shsmith (http://www.aximsite.com/boards/member.php?u=71944) (also see this strictly Axim x50v-related thread (http://www.aximsite.com/boards/showthread.php?t=112194) if interested), modified for the iPAQ HP hx4700 by me) comes into the picture.
The patch "throttles" down the CPU usage of filesys.exe to 25% when the PDA runs on battery power. This means the PDA remains almost perfectly usable during the compaction, unlike with the case of filesys.exe’s taking up all CPU cycles.
2.2 The filesys.exe throttler
Get this file (http://www.winmobiletech.com/052006iPAQhx4700WM5/patch_filesys-f3.exe) and copy it into \Windows\Startup. Then, after every reset, it will be auto-started (during this, just click the OK button to let it go in the dialog window it shows (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx-filesysKickedIn85Percent-2.bmp.png)). It will make sure filesys.exe can’t use all the CPU cycles for its housekeeping tasks. It doesn’t take up much memory / CPU resources so you can safely auto-start it (that is, as explained, put in the \Windows\Startup directory).
3. Other (already known) hacks
There’re some cache-related registry tweaks explained here (http://www.mobiletopsoft.com/board/388/speed-up-windows-mobile-5-pocket-device.html) and here (http://www.mobilitysite.com/forums/showthread.php?t=28868). As far as the second link is concerned, just following the tips in the first post will suffice – the rest of the thread doesn’t really contain anything else of interest. Note that, despite what some people say, you should not try to modify/remove/rename the registry values HKLM\drivers\ Builtin\ StrataFMD\ CompactionPrio256 and HKLM\drivers\ Builtin\ StrataFMD\ CompactionCritPrio256 – it will have absolutely no effect on anything.
Applying the tweaks in these tutorials will definitely result in some decent, additional performance/usability gain. Note that HKEY_LOCAL_MACHINE\ System\ StorageManager\ FATFS\ EnableCache will most probably be already 1. Also, disabling Error Reporting doesn't necessarily result in any performance gain. Finally, you can also relocate the Internet Explorer Mobile cache (that is, you don't need to completely abandon it) as described in my Pocket PC Thoughts-frontpaged article (http://www.pocketpcthoughts.com/articles.php?action=expand,42768). The article also contains information on relocating the NetFront 3.3 (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=772&more=1&c=1&tb=1&pb=1) cache (note that the previous version, NetFront 3.2, isn't WM5-compliant as has been pointed out for example here (http://www.pocketpcmag.com/blogs/index.php?blog=3&title=wm5_aamp_potential_netfront_users_netfro&more=1)).
4. Acknowledgements
Hal Goldstein at the Smartphone & Pocket PC magazine - thanks again for the hx4700! Without him, you wouldn’t be able to enjoy these new tweaks.
UPDATE (10:10 CET, 05/23/2006): slightly modified Chapter 3; added the DUN patch link.
Also note that there’re a LOT of user feedback and comments at the following Pocket PC sites: PPCT (forum) (http://www.pocketpcthoughts.com/forums/viewtopic.php?p=403409), PPCT (frontpage) (http://www.pocketpcthoughts.com/forums/viewtopic.php?p=403446), BrightHand (http://discussion.brighthand.com/showthread.php?t=222190) and MobilitySite (http://www.mobilitysite.com/forums/showthread.php?t=29885).
Please also note that if the filesys.exe throttler application doesn’t work (not even after a few resets or starting by hand), read this blog entry (http://www.pocketpcmag.com/blogs/index.php?blog=3&title=hp_ipaq_hx4700_wm5_upgrade_prolonged&more=1&c=1&tb=1&pb=1) on finding the Process ID of filesys.exe so that I can create a customized version of the throttler for your particular device.
Finally, you will also want to read this thread (http://discussion.brighthand.com/showthread.php?t=219960) on increasing the maximal Bluetooth Dial-Up Networking (DUN) speed of the WM5 upgrade.
Now follows the original article (again, note that section 1.2 is deprecated – you should, as has already been pointed out, follow the tutorial here (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=830&more=1&c=1&tb=1&pb=1) instead):
Thanks to Hal Goldstein at the Smartphone & Pocket PC magazine, I’ve become a proud owner of an HP iPAQ hx4700 and, therefore, am able to invent great hacks and tweaks for the hx4700 community too, which, so far, has been impossible for me because of the lack of constant access to the device.
Of course, the first thing I’ve done after receiving the device was installing the WM5 upgrade.
My first impression of the upgrade was awful. After installing a handful of applications and games, it became really-really slow, irresponsible and consumed a lot of battery power (I’ve measured the latter with acbPowerMeter (http://www.pocketpcmag.com/blogs/index.php?blog=3&title=extend_your_battery_life_never_before_pu&more=1&c=1&tb=1&pb=1)) compared to other WM5 devices (I have several other WM5 devices so I can directly compare the different operating system implementations). Furthermore, anything requiring smooth animation (an e-book reader with auto-scroll capabilities or any game) was useless because of the constant stuttering problem, which makes scrolling or even video watching an awful experience. The situation wasn’t at all changed by the so far published cache tweaks (see Chapter 3 on them) – the device remained as useless for anything that requires smooth scrolling (for example, games – give a try to, say, the VGA version of the great multiplayer-capable puzzle game Quartz 2 (http://www.pocketpcmag.com/blogs/menneisyys/102005MPPPCGames.asp) to see how bad and stuttering the animation is!).
Then comes the problem of filesys.exe – the subject of the second part of this article.
Note that these hacks and tweaks have been found/developed by me. See the advantages of reading/following my articles/posts? ;) (For example, following / subscribing to the RSS feed of the Smartphone & Pocket PC magazine blogs (http://www.pocketpcmag.com/blogs/), my home blog – it contains a LOT of useful, genuine, unique stuff like these tweaks).
1. Rename the Games folder!
1.1 How did I find this all out?
(This section sheds some light on the inherent bug of Synaptics NavPoint and the way I’ve found it out. Reading / understanding it is NOT needed for applying the patch and is, therefore, only recommended for Pocket PC gurus/geeks or people that want to know more about the inner secrets of the hx4700 implementation of WM5. That is, you can safely skip this section and move straight to section 1.2.)
Realizing some process is taking up CPU resources all the time, I started to play with the processes to find out what is causing the stutters every about half a second and to also find out what the high battery load is caused by.
After firing up a decent task manager (I may not name/link it now because it’s a closed beta product and I’ve agreed to an NDA - if you need one, check out for example Super tasks (http://www.pocketgear.com/software_detail.asp?id=14661)), I saw that while the dreaded (search the Pocket PC forums for it to see what others say about it!) "filesys.exe" consumes (in the majority of the time) almost (<0.1%) no CPU, "services.exe" does – as opposed to other WM5 Pocket PC’s. When I started, the hx4700 packed with games and apps, investigating the problem, it took a constant ~20% CPU time, which become gradually worse after every new installed game – even if I’ve installed them, as recommended (see the links in Chapter 3) for hx4700 WM5 users, on an SD card.
Therefore, I’ve given a try to uninstalling these applications/games. As I had thought, it has indeed resulted in a subtle performance increase.
I knew at once that the problem is related to either files present in the main storage memory or the program installation information in the Registry (at least under the HKEY_LOCAL_MACHINE\ SOFTWARE\Apps brach (note that, in order for Registry information to be well-formatted, I've added spaces after (some) backslashes in them), if there are no application-specific entries under HKEY_CURRENT_USER\ Software or HKEY_LOCAL_MACHINE\ Software).
First, before starting to delete the above-listed Registry entries, I scrutinized the files in the main memory. I’ve deleted the contents of \Windows\AppMgr (they can be freely deleted if you don’t want to uninstall these apps - see this article (http://discussion.brighthand.com/showthread.php?t=215534) (alternatives: MobilitySite (http://www.ipaqhq.com/forums/showthread.php?p=101534), AximSite (http://www.aximsite.com/boards/showthread.php?p=775972), PPC Magazine (http://pocketpcmag.com/forum/topic.asp?TOPIC_ID=17260), FirstLoox (http://www.firstloox.org/forums/showthread.php?p=35331), PPCT (http://www.pocketpcthoughts.com/forums/viewtopic.php?p=357766)) for more information on this). It resulted in no performance increase (that is, decreased CPU usage of services.exe).
Then, I deleted the HTML help and related image include files from \Windows (also see my tutorials linked from the previously linked-in article on this) to see whether it’s additional files in \Windows that cause the problems. Again, no success.
Last, I’ve deleted the .lnk link files from \Windows\Start Menu - the last occurrence of application-related files installed to the main storage, common to all third-party apps/games. That did it! After deleting all the links of the additional programs and games I’ve installed, the CPU usage of services.exe fell back to 5.2% (the value after a clean reset – note that, under WM5, there’s a difference between a "clean" and a "hard" reset. It’s only clean resets that delete everything off the file system, traditional hard resets don’t. The latter only delete the non-file/registry-based flags. Please see this thread (http://www.mobilitysite.com/forums/showthread.php?t=28200) for more information on this.)
The immense success of getting rid of the link files made me think. Why did this happen? Why would the iPAQ constantly monitor the .lnk files under \Windows\Start Menu? Then, I remembered the Game Manager (the Gaming tab) (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700Gamemanager.bmp.png) in Settings/System/Synaptics NavPoint and immediately knew the answer – yes, NavPoint constantly monitors \Windows\Start Menu\Programs\Games (that is, the Games folder in the Programs section of the Start menu) to see whether there’re new game links in there.
I immediately restored my .lnk files, except for the ones in \Windows\Start Menu\Programs\Games. I turned out to be right – the CPU usage of services.exe didn’t increase at all.
Interestingly, if I deleted the two predefined lnk files (Bubble Breaker.lnk and Solitaire.lnk) and the icon file in \Windows\Start Menu\Programs\Games , the CPU usage of services.exe dropped to around 0.5% - which is an order of magnitude better than the default ~5.4%. This means you should follow the following, Section 1.2 of this tutorial even if you don’t install a single game on your WM5 hx4700 – the two games contained in the ROM will always result in an additional 5.4% CPU usage and the PDA becoming unbearably bad at anything needing smooth scrolling, including playing videos!
1.2 This is what you should do
Start File Explorer on the PDA, go to \Windows\Start Menu\Programs\ and long-tap the Games directory so that the context menu comes up. Choose Rename as can be seen in this screenshot (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-Games-Rename1.bmp.png).
Change the name of the directory to anything else; for example, MyGames as can be seen in this screenshot (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames.bmp.png). Tap the Enter key on the on-screen-keyboard (or just click anywhere else on the screen); the name of the directory will be changed (as can also be seen in this screenshot (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700RenamedGamesFolder.bmp.png), taken of the "traditional" Programs dialog of the Start menu). Now recreate the Games folder - just choose Menu/New Folder as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-Games-RenameNewGamesFolder.bmp.png). (Do not forget this second step; otherwise, if there is abolutely no Games folder under \Windows\Start Menu\Programs\, the CPU usage of services.exe will be around 1.5%, which is slightly higher than with the case of a completely empty Games folder.)
Now, you can freely reset the Pocket PC; after the reset, services.exe will only take about 0.5% CPU time, eliminating all stuttering in scrolling, making reading with auto-scroller e-book readers, watching videos, plain games etc. much-much more pleasuring than before – again, even if you don’t install any additional games.
Please note that you will need to move all .lnk files automatically added to \Windows\Start Menu\Programs\Games directory after every game install. It’s very easy: you just go to the Games directory, (mass-) select (you can always mass-select links by clicking Ctl, and, then, A on the on-screen keyboard) the new link files, tap-and-hold the selection and choose Cut from the context menu as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames-CutPostInstalledGames-1.bmp.png). Now, go to your new game directory (in the tutorial above, \Windows\Start Menu\Programs\MyGames), scroll down the list to the bottom and tap-and-hold an empty area there. Choose Paste in the context menu as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames-CutPostInstalledGames-2.bmp.png). (Alternatively, you can bring up the on-screen keyboard, click Ctl as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames-CutPostInstalledGames-3.bmp.png) and, then, click V). After this, the .lnk files (in this case, the Spb AirIslands ones) will appear at the end of the list as can be seen in here (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx4700FE-MyGames-CutPostInstalledGames-4.bmp.png).
Remember to always do this after you install any additional game resulting in the new link files added to the Games directory! This is an one-time (non-recurring) task; therefore, you won’t end up having to do it often.
Note that hx4700's with localized WM5 versions where the Games folder is called something else (for example, Spiele in the German version), you will need to accordingly change the tutorial above and use that folder name instead of Games.
Congratulations! Now, you have a much more usable device!
Another thing is still to be done, though – radically decreasing the filesys.exe CPU usage. It’ll be even easier than the tweak above.
2. filesys.exe
2.1 Background
(This section sheds some light on what filesys.exe is all about and why it’s behaving so. Reading it is NOT needed for applying the patch and is, therefore, only recommended for Pocket PC gurus/geeks or people that want to know more about the inner secrets of how Pocket PC’s work. That is, you can safely skip it and move straight to section 2.2.)
Non-native WM5 devices that, initially, came with the WM2003SE operating system later upgraded to WM5 have a system process filesys.exe, which does some important tasks involving the compaction of the built-in storage. (Please read this article (http://blogs.msdn.com/windowsmobile/archive/2006/03/16/552996.aspx) for more information on all the theoretical stuff – I won’t delve in it more because it's not needed for the tweak to work.)
filesys.exe behaves in a very user-unfriendly way. When it kicks in (it activates about twice every hour when the PDA is switched on, also depending on the amount of new files in the main Flash ROM storage memory to be packed – this means it will almost immediately ‘kick in’ after installing, say, an application into the main storage), it takes almost the entire CPU, leaving the user almost no CPU cycles. This means the PDA becomes almost useless during the time (in general, some to several minutes, depending on the amount of files to be compacted). For example, registering a simple screen click will take the PDA sometimes dozens of seconds.
It’s not possible to kill or permanently disable filesys.exe. Killing it will crash the entire system. You can’t force it to take much less CPU time with built-in tools either. This is where the filesys.exe throttle patch (originally written by shsmith (http://www.aximsite.com/boards/member.php?u=71944) (also see this strictly Axim x50v-related thread (http://www.aximsite.com/boards/showthread.php?t=112194) if interested), modified for the iPAQ HP hx4700 by me) comes into the picture.
The patch "throttles" down the CPU usage of filesys.exe to 25% when the PDA runs on battery power. This means the PDA remains almost perfectly usable during the compaction, unlike with the case of filesys.exe’s taking up all CPU cycles.
2.2 The filesys.exe throttler
Get this file (http://www.winmobiletech.com/052006iPAQhx4700WM5/patch_filesys-f3.exe) and copy it into \Windows\Startup. Then, after every reset, it will be auto-started (during this, just click the OK button to let it go in the dialog window it shows (http://www.winmobiletech.com/052006iPAQhx4700WM5/hx-filesysKickedIn85Percent-2.bmp.png)). It will make sure filesys.exe can’t use all the CPU cycles for its housekeeping tasks. It doesn’t take up much memory / CPU resources so you can safely auto-start it (that is, as explained, put in the \Windows\Startup directory).
3. Other (already known) hacks
There’re some cache-related registry tweaks explained here (http://www.mobiletopsoft.com/board/388/speed-up-windows-mobile-5-pocket-device.html) and here (http://www.mobilitysite.com/forums/showthread.php?t=28868). As far as the second link is concerned, just following the tips in the first post will suffice – the rest of the thread doesn’t really contain anything else of interest. Note that, despite what some people say, you should not try to modify/remove/rename the registry values HKLM\drivers\ Builtin\ StrataFMD\ CompactionPrio256 and HKLM\drivers\ Builtin\ StrataFMD\ CompactionCritPrio256 – it will have absolutely no effect on anything.
Applying the tweaks in these tutorials will definitely result in some decent, additional performance/usability gain. Note that HKEY_LOCAL_MACHINE\ System\ StorageManager\ FATFS\ EnableCache will most probably be already 1. Also, disabling Error Reporting doesn't necessarily result in any performance gain. Finally, you can also relocate the Internet Explorer Mobile cache (that is, you don't need to completely abandon it) as described in my Pocket PC Thoughts-frontpaged article (http://www.pocketpcthoughts.com/articles.php?action=expand,42768). The article also contains information on relocating the NetFront 3.3 (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=772&more=1&c=1&tb=1&pb=1) cache (note that the previous version, NetFront 3.2, isn't WM5-compliant as has been pointed out for example here (http://www.pocketpcmag.com/blogs/index.php?blog=3&title=wm5_aamp_potential_netfront_users_netfro&more=1)).
4. Acknowledgements
Hal Goldstein at the Smartphone & Pocket PC magazine - thanks again for the hx4700! Without him, you wouldn’t be able to enjoy these new tweaks.
UPDATE (10:10 CET, 05/23/2006): slightly modified Chapter 3; added the DUN patch link.