The first thing I want to do is extend the build pipeline (making proper use of the XNA pieces); I want to add a new target that will take the executables and compiled art assets, generate an installer, and pack the whole thing up into a disc image, as if you could immediately burn it to a CD and have something shippable. This means I'll also be playing with writing an Autorun executable, and I'll try and throw some localization work in there too.
When I first decided I wanted to do that, I started out with the aim of writing new MSBuild tasks for generating ISO files, to the extent of implementing my own C# ISO file library. This, ladies and gentlemen, was a very bad idea. The C# ISO library has now been retired, and I'm using 'mkisofs' from the CDRTools package instead. There was no way I'd ever be able to write my ISO component to compete with the level of functionality that CDRTools offers, plus it's had a five-year head start when it comes to testing etc. This means that I reduce the ISO-building step from a few thousand lines of source code to a five-line entry in the XNA build project. Oops.
After that, I'd quite like to get into the code for the game itself, but irritatingly it looks like the renderer for the game (which is built on DX7) hasn't been released, as it's part of their "GameOS" library. However, we do have the GameOS headers, so it might be straightforward (long, but not hard) to implement GameOS myself given that header as a specification. Then again, I've not yet looked into how the game code makes use of GameOS; if it's decently structured, then I might be able to get away with simply changing the render calls in the game code to use my own library, without having to replace all the other things that GameOS does for the game.
I'd like to start by getting the game running using Direct3D9, and then I'm interested in porting it to Direct3D10 and having it follow all Vista best practices, like appearing in the Game Explorer and suchlike. Porting a commercial codebase to D3D10, getting it into a "real-world" situation, is going to be a much more interesting way of using the API than writing a little sample app.
(I would, of course, write the whole thing up for your benefit and amusement).