Being super curious what the insides of a game that defined my childhood actually looked like, I've spent about an hour or so going over the code and seeing how they scripted everything. Some of the comments are pretty funny
Sound like a resonable start.
But to more interesting matters
I think one could tinker with options for stretched/touch inside/unscaled center when it comes to the general layout. Another relevant point would be to add some dynamic resolution selection as other games offer. Code for that can be found in like most other games...
The problem now is that I have no idea how to make a patch from these .uc files to test it out. I'm pretty new to tinkering with the Unreal Engine so you'll have to forgive my disorientation. Can you instruct me on how to do this?
I recommend starting with reading: http://www.hypercoop.tk/infobase/archive/unrealtech/frameset.htm
Starting at "Level Design" all the way down. "Mod Development" should cover the basic about how to build a package. However there might be some subtle differences. Looks like some games including HP1 try to even recompile scripts if (afaik) the last modification timestamp of the script files is newer than the package file (touch will help), which can be annoying.
In general there are two options for a patch: Create additional packages, and pull in your classes as there are numerious config options in the ini file (Console (as a start for replacing the rootwindow class and other ui stuff), GameInfo, Player class, etc.).
The other option is to rebuild the stock packages. Typically this is a bad idea as this can easily conflict with other people work, but I don't think this will be an issue for this game at all, and probably the better starting point for a patch project. However, this requires that one does have the (extracted) resources the package imported. [Eventually commenting out the resource import lines without deleting the package files with the changed behaviour when recompiling does actually work without having the resources].
In any case, currently it is not possible to extract all resources in HP1, but I started porting over a heavily stripped down version of my toolkit package and started to extending it to support exporting of the remaining required resources. I'll release that once I wrapped up the remaining things. So far, I already fixed a couple of issues in the headers during the process, so there will be an updated header release too. Below is a breakdown of resource types include in the *.u files. Typically you won't require all types for each package, so some packages end up beeing easier to rebuild from scratch.
Packages
Though I haven't checked it in detail, it looks like they actually ship all packages they embedded inside the *.u files. Otherwise I already ported over my commandlet to extract those.
Sounds
Already supported out of the box.
Textures
Also supported out of the box, might fail when encountering ScriptedTextures or FractalTextures inside embedded packages. However my batchexportcommandlet won't fail in this case. Only thing one needs to be aware of is that for very low texture dimensions the stock texture exporters do have troubles. But usually either pcx or bmp will work even for those.
James Meshes (*_[a|d].3d)
Extracting those with my exporter derived from those Smirftsch gave me once seems to work fine. And yes there are a few of them inside HP1.
Bitmap Fonts
Basically those are textures with some glyph borders, which do get removed during import. I have an exporter with some heuristics which can reconstruct those, and it seems to work correct for HP1 too.
TrueType Fonts
These come in two flavors in HP1. The 'classic' like for any other game beeing sampled while imported, so in this case you need the Fonts installed on your system. Whats new in HP1 is the 'RenderNative' option. In this case just the font name and height is stored. So you won't have to worry about those.
Skeletal Meshes/Animations
I have some limited success with the SkeletalMesh and Animation exporter Smirftsch supplied. Extracting SkeletalMeshes does work and they appear to show up correct inside a *.psk viewer. I think I still got a crash when encountering a specific SkeletalMesh, but I need to recheck this.
For Animations the situation isn't that easy. They did some changes to the storage of the skeletal animation. One being that they just store references to (probably the) KeyQuat/Pos/Time inside the AnalogTracks to some per Animation array, which now isn't any issue anymore. But the other change is that they seem to not use FQuat/FVector/FLOAT for those, but instead 6/6/1 byte. So I need to figure out their storage format, but I still have a couple of ideas to try left...
Gestures
This is a HP specific resource (using the PATTERN IMPORT lines) with *.hpg (Harry Potter Gesture?) files. I haven't checked it yet, but I suspect that these are some homebrew format which more or less mirrors whats inside the Gesture class. So far I don't expect that this would get to complicated to figure out.
Also, have you tried this source extraction process with HP2: Chamber of Secrets yet? It's not as badly affected by the widescreen clipping bug as HP1 but it would be nice to take a look at its guts and use an updated D3D or OpenGL renderer with it as well.
I tried a bit of a different approach though, though I have some apparently more or less working UCC exectuable for it now. However the script source have been stripped out of all packages but Core, Engine and Editor (same as for Brother Bear), so one doesn't get very far so easily. In any case I haven't yet started any major work on building a header set for HP2 to build an run some more own C++ code. More or less I wan't to wrap up things for HP1 and probably for Brother Bear first as HP2 is the game they released in between. So chances are that most of the stuff is sth. in between.
I'll build headers for this game at some point, but that is likely not gonna happen anytime soon. However regarding the missing script text, it consists of two parts: the resource imports and the 'real' script code. I have some commandlet to reconstruct the resources import lines, though it currently lacks support for SkeletalMeshes, the special rendernative ttf fonts and Gestures. In any case one needs to figure out otherwise used TTF fonts by hand. When it comes to 'real' script code, I currently working on some script text rebuilder/function decompiler commandlet. So far I'm halfway through with the easy part as in reconstructing the general class layout and defprops, e.g. what one gets for free when one runs it in context of the game. There are other script decompilers out there. Afaik all of them are standalone tools, and I have no idea how reliable they are and whether they support HP2. The only decompiler I tried was the one in UExplorer, and it has a lot of issues, most noticable a lot of declarations beeing off, functions inside state code entirely missing and unusuable defaultproperties. So in any case, even if I just get to the point before decompiling functions it'll probably still be a nice complement to other script decompilers.
Another rather exotic idea I have is to make use of the stored ScriptCRC (unless it got invalidated when the script source was stripped) to build a database of the ScriptCRCs in HP2 and compare it to those of HP1 (and eventually other games). I have the hope that this will at least yield some matches to get back the exact source. Probably there are a lot of classes inside UWindow unchanged.
So much for now..