[Touch CDMA Windows Mobile ROM Development] egzthunder1:
Hey Lewy1,

You are off to a good start. I have been giving your idea some thought and if you truly want this to be a "learning resource" for new chefs, you may want to start by describing a few basic concepts as well.

[highlight]

ROM

[/highlight]

In essence the Operating System with all the necessary files and programs that make up for what you have on your device. This contains things that are general to all devices as well as certain files and folders that are specific to each particular device (hence, the reason why you cannot flash a rom from a Blue Angel into a Vogue and vice-versa). Once a rom is obtained by dumping it, the dump will have a bunch of folders and files, which need to be turned into something "cookable". There exist several applications that can (and must be used) in order to accomplish this.

After all the things in the "dump" are sorted out and manipulated, the rom will essentially turn into 4 main parts: XIP, SYS, OEM, and Lang packages.

[highlight]

XIP

[/highlight]

The XIP is what holds the core of the OS. This is what holds the Native Kernel of the particular device as well. In order to port a rom to a device, one cannot simply replace the XIP with a new one. The XIP of the new OS must be "implanted" into the XIP of the base rom of the device. The reason for this is that there are many files that can simply be replaced in the XIP, but some must remain untouched as they hold key elements for the proper functioning of the device (Native Kernel).

[highlight]

SYS

[/highlight]

The SYS folder will have packages with software that the device may or may not need to run properly. This holds things such as the Shell (your UI), Office, core applications, etc. A lot of these packages can be removed from the SYS in order to make space for other apps that the chef maybe interested in having. However, great care must be taken when removing/adding packages since some packages are needed for the device to even be able to boot. Likewise, having too many packages will render the rom un-flashable since most devices have a specific size of rom that they cannot go over. In the case of latter devices, the available space for rom has gone up dramatically. For instance, the Vogue has roughly 90 MB of space for the rom. This is more than plenty to cook a lot of apps without too many issues. There are older devices such as the Blue Angel, where the size of the rom is limited to 32 MB, which forces most cooks to remove packages and compress things as much as possible to even have a bootable rom (keep in mind that most of the time, builds are coming with more and more space requirements).

On top of all this, there are the resolution requirements. Most packages will come with a second folder of a similar name with the resolution added. For example, Base will have another folder called Base_96DPI. The chef will have to be careful on what he/she puts to be cooked as having different resolution packages can make the device either not boot, or look weird (out of scale images) if it does boot

[highlight]

OEM

[/highlight]

The OEM normally holds fixes and programs that the cook could not fit in the SYS. It also hold drivers, sometimes even Language packs among other things.

[highlight]

Lang

[/highlight]

These are language and location specific modules. The chefs use the location modules to make roms for different languages and locations. It is usually a four character code that determines which country/language the rom is made for. For instance, 0409 is WWE.

There are many other basic concepts (such as Virtual Memory allocation) that could be discussed, but for now, these basic definitions should help the average person understand what they are dealing with when they see a new set of packages coming out on PPCK,

Hope this helps the cause :D