I suppose a “Last Dance” of a thread should be appropriate.
So, you’ve gotten your hand on that mighty XP SP1 / Server 2003 code from 4chan somehow and are wondering what you can do with it? well i may have some info for you.
First off, this most of the code will compile, but most (if not all) code for winlogon.exe is missing (although sunlogon is present but does not fix any of the issues presented by the absence of the winlogon code) and thus the Software Liscensing won’t compile, and that will also cause parts of the setup to not compile. All of that which means you won’t be able to generate an iso (using pbuild in NT\tools\postbuildscripts\pbuild.cmd) (for now). Don’t try to compile this code in x64 windows as there are parts of it which the compiler (NT\tools\razzle.cmd) will need NTVDM and i suspect whatever hacky version of NTVDM for x64 will most likely not work. Ideally, compile this under any Windows XP version or Server 2003 (preferably non R2, SP1).
With that out of the way, we can start by setting up razzle. Thankfully, razzle will do pretty much the entire work for you, however, if you wish, setenv.cmd will appear in notepad the first time you run razzle and you can find REM path=%path%; <your path goes here>
in the bottom of the file. Just remove REM
from before path
, save, close the notepad window and you should be good to go.
Now we get into actually compiling the code. For this, open a CLEAN cmd window (with nothing on it) and run razzle (free) (architecture) offline
:
-
razzle free offline
will compile code in fre instead of chk (debug). If you want to compile chk for whatever reason, just removefree
and it’ll berazzle offline
-
If you wish to compile in another architecture:
razzle (free) win32 offline
: Will compile x86 code under amd64/ia64 systems (doesn’t work on x86 windows)
razzle (free) offline
: Will (try) to compile the binaries in whatever architecture you are in. Not sure how ia64 or amd64 works.
razzle (free) arm offline
: Will compile in ARM. Presumably for pocketpc?
If everything was done right, you should see a successful build environment:
cue.pri is to be ignored.
To actually compile the code, in the same window that you did razzle, navigate to the directory you want to compile in the source (or if you want to compile the whole source ((will spit out errors, it’s normal, it isn’t the full source thus some components fail to compile)), just compile the \NT\ folder), and run either build /D
, bz
or bcz
(Build /D will build with a full dependency check, bz will compile without a dependency check and bcz will build clean without a dependency check):
Building mspaint
When you build something, the output will be on the root of the drive where you extracted the source, on a folder with the name “binaries.architecture(fre/chk)”. In the case of x86fre, it’s “binaries.x86fre”:
Final product:
Custom build number
Warning about building the entire thing: Depending on your hard drive and cpu, it may take up to 8 or 10 hours, some with better hard drive can compile as fast as 3 to 5 hours. Keep in mind compiling stuff like explorer may require you to build the entire shell due to required libraries by explorer that get compiled with the shell and that if not build, will fail to compile the executable.
Note about candy: It’s uncompilable (normally, at least). Don’t ask me how to compile it.