I've started a new project and have had enough success with it that I though I'd share with the community. Before we get to the good stuff I should get out of the way that I don't need testers, binaries/source are not (currently) available, and no, you can't use it to cheat on xbox live.
The reason that i started this is that i wanted the ability to add custom events to the single-player career, which i'm still not sure is possible. But i made enough progress that i'm going to continue regardless.
Basically, this tool lets you open up a Forza CAB, simmilar to Angerwound's CABExtract (thanks for the sample code), it *ALSO* lets you insert (some) files back in to the cab and boot it in Forza.
I still have a *LONG* way to go before it can do anything really cool, but this is what i've been able to accomplish so far.
* Extract Forza .CAB file and browse contents
* Document Forza .CAB file structure, leveraging Angerwound's code heavily
* Extract .DDS files from .XPRs directly in the UI
* Document .XPR file structure
* Insert .DDS file back into .XPR and then back into .CAB. I can re-extract it without any data loss, but Forza give me a dirty-disc, so i've got something wrong.
* Modify car livery file (livery0.livery) and insert it back into the cab. File size differences are accounted for.
So what this means right now is that i can take a car, open it up, fiddle with the RGB values for the car's default colors when you purchase it, and spit them back out to use in the game. Changing the car's color isn't a big deal; you can repaint the car in the game, but this opens up the door for adding custom colors not available in the paint shop by using straight RGB values. Each livery also references a texture from a .XPR archive.
I have a lot of broken pieces and the .CAB files are still a bit of a mystery. But work is progressing and things are coming along nicely.
Here are my short-term feature goals. If these get implemented and work well it opens up the door to lots of other stuff.
* Extract Forza .CAB, .CA2, .XB2 files
* UI-based livery editor (Add, Remove, Modify)
* Replace .XPR textures with modified ones
* Create new Forza .CAB
Check out the screenshot below for a sample. The default VW Beetle color is black, you can tell because the thumbnail at the bottom always shows the default color of the car, since it's a static image. I've changed the color to red in this example.
(IMG:
http://www.forzacentral.com/gallery/files/8/4/1/vw1.jpg)
(IMG:
http://www.forzacentral.com/gallery/files/8/4/1/vw2.jpg)
(IMG:
http://www.forzacentral.com/gallery/files/8/4/1/vw3.jpg)
I'll try to grab some more screenies of different cars and my app tomorrow.
If you have any interest in helping with development, let me know. I need help with .XPR files and Forza .CAB files. Non-programmers need not apply. I'm using VB.NET for those who are curious.
Peace out.
-h
B)