[P3400 ROM Development] krazy_about_technology:
Dear Friends and Friend Chefs :) ,

As you all know that i was working on creating XIP for our beloved Gene that is supports all the new features (mostly hidden from causal user, but even then very useful) that were introduced in WM 6.1 and carried forward with some enhancements in WM 6.5. The most important feature we were missing was the new improved virtual memory management model that 6.1 offers to solve the windows mobile version of the "DLL Hell" problem, Windows Developers may know about this :)

At the Core of this issue is the file initvmmap.exe which initializes the extended slot VM model when the device starts. This file was introduced in WM 6.1 but chefs never added it to the XIP because they were told that they should never insert anything new into the XIP. BTW, when people said that they were not wrong, but as always in this biological world, exceptions do exist . Since original Gene XIP was either WM 5 or 6, initvmmap.exe was always missing, causing the system to use older model.

Along with that, although its not much used, but the Storage Card encryption filter driver was updated in Wm 6.1. In WM 6 it was called encfilt.dll but in WM 6.1 upwards, its called mencflt.dll. I dont know the benefits of using it exactly, but the fact is it is newer and perhaps better in some way.

None of the previous ROMs were having these two features in them.

Today, i was successful in porting these features on Gene XIP and now we have an original manufacturer made identical WM 6.1 and 6.5 feature complete XIP for both old and new gene. These xips have made debut in WM 6.1 Pro Users ROM v2.7.

So i insist all chefs to download and use these XIPs as base while porting/making ROMs for Gene. This will make sure your ROM is providing the users with full experience of the Windows Mobile OS.

Thanks! :)

Background: It was not that hard inserting these files into the XIP.

Initvmmap.exe has a fixed E32 address of 0x00100000 and O32 address of 0x00130000. This is just like we have fixed addresses for device.exe and filesys.exe for both old and new gene. So after observing this in XIPs of about 10 devices, i just copied the file and it worked.

Mencflt.dll was looking like a problem at first but using the same addresses as encfilt.dll worked.

I also took some registry entries from WM 6.1 Emulator image's XIP (these were same in the 6.5 emulator image's boot.rgu, which i got from Ankit (a big thanks goes to him for making me aware of this fact.)). These entries direct the loader of OS to use the new memory model and use initvmmap.exe for that.

Download the XIPs

XIPs in Dumped Format

XIPs in XIP.bin Format

Please Note: You may notice that even though these XIPs are complete, these dont have hd.dll and oxa*.dll. I have left these files because these are only used for debugging purpose when a new build of Windows mobile is being made by Microsoft developers or at HTC. These are not useful for normal users in any way. Removing them only saves space in the XIP, hence free ram.

Also, although these XIPs are fully compatible with 6.1 memory model, 6.5 extended this model by adding a large amount to the available VM space and slots, which is only posssible using a compatible nk.exe in our xips. This ain't gonna happen most likely.