[8525, TyTN, MDA Vario II, JasJam ROM Development] anichillus:
If you have difficulties, ask here. If i can't answer, there are people here that can.

Just a peek on what i do.

COOKING TUTORIAL :​

Take a ROM that you like most. See the good aspects, the bad and the ones that you really like and write them down. You can't go to war without a plan, so before cooking, make a plan on what you are trying to do. If you start cooking without a plan, you'll end up asking too many questions, because even you don't know what you are trying to do. Then, dump the rom and make those changes

one by one

.

When you think that you worked a considerable amount of time, stop and build it, flash it and see what works and what doesn't. That way you will find small bits and pieces that you did wrong or didn't even knew that you want changed. If problems, fix them if not, continue working on the rom. I assure you that you won't get it done all in one shot.

Take your time, rom cooking is not a thing you do in haste, because errors will come. It's all about trial and error, but without a perfect lucid plan, you will have more errors and too many question marks.

Let's say that you want a rom without a program and with another one instead. So , you don't like the program A in the rom and want to replace it with program B. Dump the rom, search for the location of the program A, if it's in a folder named like it or similar, then it means that the whole folder is that actual program, with all registry entries directions to files, files and shortcuts. Delete that folder (be extra careful with folders in SYS) and get your program B that you like so much. So you have it either in a already made package (easy way, just copy it into your OEM folder) or in a CAB. Well, things should work like this.

Take the cab, and search for the initflashfiles generator in the Extra folder. Run it and follow instructions. Some folders should pop up with directions on where to place the cab, and what to do next. Let's say that the program was successful (it should, i will rebuild all my kitchens into one and i will take a closer look why some say that it doesn't), then you will be promted with a folder containing the initflashfiles.txt. This file tells the device where to move every file in the B package. When you build the rom, all files are placed in the Windows directory on the device. Then this little thing tells the system where to put every file so that the program that needs it in one location to find it there. It also tells where to put shortcuts that you see in Programs or Office or any other place and it creates folders also. Well, open the initflashfiles with notepad and read every line carefully. Delete the squares and tap an [ENTER] after each square so every instruction is on a new line. Some cabs don't have a predefinite location for it's files so you may notice that some initflashfiles.txt don't point to the right direction. If your B program doesn't have a predefinite installation folder, think of one and modify all directions to "InstallFolder" to the address you made up your mind. Remember to do that with the .rgu's also.

When you do the initflashfiles.txt , you still need some registry entries and the actual files. See the folders and files located in the same folder with initflashfiles.txt. Copy all files to a folder you create on desktop for instance, with a friendly name, for instance B. Remember to copy all files there disregarding folders, so you will have al of them into the B folder and no subfolder to that. Add there the edited initflashfiles.txt. Then run the CAB analiser and open the B cab. Select the XML Setup tab and then the "Registry Keys" tab. Copy all you find there into a new txt document created in the B folder on desktop, save it as UNICODE, leave last line blank. Check to see if regs are correct (remember the path you used if the program didn't had any). Rename it into UUID.rgu. You get an UUID HERE. Create a new text document, don't open it but rename it to the same UUID but with the extension .dsm. Make sure that you added the .rgu and .dsm in the B folder on desktop and then move it to the OEM folder, build and flash.

This was just a way to build packages and add them to the rom, but you can add a package with only registry keys , like tweaks you use or stuff like that. The package must contain a .dsm and a .rgu as well as an initflashfiles.txt , but this is not necessary for all. For example a registry tweak package can only contain a .dsm and a .rgu with nothing else. Or an .dsm and files but that means that there are no reg entries and all files are in Windows dir.

When you think you have mastered this, then you cans stick your nose deeper and check other packages, even edit standard registries, with the help of "Convert .hv to .rgu" (reg setings are kept in user.hv and default.hv), this will make them editable by notepad and then convert them back to hv with opposite program. Or even change your shortcuts appear in the start menu or which shortcuts you want in the Programs. That with the help of the "Edit InitFlashFiles".

There are unlimited possibilities on what you can do. For instance some programs are trickyer than others and can't be turned into packages that easy. Let's say that you want to make a program that uses some tweaking so that it works the way you like it. Then, you take a backup of the registry with "RegistryDump(PPC)" in Extra folder, install the program, make the tweaking that you want, then make another backup and use the "WinDiff.Exe" to see what's been changed. Well, it's a little more to dig, but if you skip the time differences and few other things that you will see that don't matter or don't interfere with the program, you'll see all setings. Copy them, create a .rgu, and then look closely and take all files that are onto the PPC related to that program, and add them all into a package, create the initflashfiles.txt using a model

Note: Files will still exist in the Windows folder, because they cannot be moved, so they are just copied somewhere else. The less files you have in the Windows dir, the faster your PPC goes

Other cool thing to do is optimize the exe's in the ROM. This makes the files much much smaller, and the smaller, the more files you can fit and it might have a positive effect on performance too. For this use the Optimize folder in the Extra. It's too easy to use, so no explanation necessary. Notice that dlls can be optimized too, but this might make the device unusable or cause instability.

All you need is patience and a plan ;)​

that made my day :) :D