Here's a quick description of how to compile FCEUXD SP yourself just in case you want to add things to FCE Ultra that nobody else wants to add. There's also
1. Installing MinGW
MinGW is "a collection of freely available and freely distributable Windows specific header files and import libraries combined with GNU toolsets that allow one to produce native Windows programs that do not rely on any 3rd-party C runtime DLLs". This tool collection contains the C compiler necessary to compile FCEUXD SP. Installing MinGW is extremely simple. After starting the setup file you only need to click the Next/Yes button until installation is complete.
2. Installing MSYS
MSYS is a "Minimal SYStem to provide POSIX/Bourne configure scripts the ability to execute and create a Makefile used by make". The only thing MSYS is necessary for is the compilation of the zlib library in the next step. Nevertheless you should check out MSYS some more, it's an awesome shell for Windows. Installation of MSYS is as simple as installation of MinGW.
3. Compiling zlib
zlib is "A Massively Spiffy Yet Delicately Unobtrusive Compression Library (Also Free, Not to Mention Unencumbered by Patents)". zlib is used in FCEUXD SP for handling ZIP files.
To be able to use zlib in your C/C++ programs you need to compile the library yourself. Thanks to MSYS this is quite easy. Extract the zlib archive somewhere, start MSYS and navigate to the directory where you unpacked zlib to. Once you're there use the command "configure && make && make install". This configures the compiler, compiles zlib and copies the compiled files to your MinGW directory.
Here's the output I get:
QUOTE:
$ configure && make && make install
Checking for gcc...
Building static library libz.a version 1.2.2 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... No.
gcc -O3 -c -o example.o example.c
gcc -O3 -c -o adler32.o adler32.c
gcc -O3 -c -o compress.o compress.c
gcc -O3 -c -o crc32.o crc32.c
gcc -O3 -c -o gzio.o gzio.c
gcc -O3 -c -o uncompr.o uncompr.c
gcc -O3 -c -o deflate.o deflate.c
gcc -O3 -c -o trees.o trees.c
gcc -O3 -c -o zutil.o zutil.c
gcc -O3 -c -o inflate.o inflate.c
gcc -O3 -c -o infback.o infback.c
gcc -O3 -c -o inftrees.o inftrees.c
gcc -O3 -c -o inffast.o inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
gcc -O3 -o example example.o -L. libz.a
gcc -O3 -c -o minigzip.o minigzip.c
gcc -O3 -o minigzip minigzip.o -L. libz.a
cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
cp libz.a /usr/local/lib
cd /usr/local/lib; chmod 755 libz.a
cd /usr/local/lib; if test -f libz.so.1.2.2; then \
rm -f libz.so libz.so.1; \
ln -s libz.so.1.2.2 libz.so; \
ln -s libz.so.1.2.2 libz.so.1; \
(ldconfig || true) >/dev/null 2>&1; \
fi
cp zlib.3 /usr/local/share/man/man3
chmod 644 /usr/local/share/man/man3/zlib.3
4. Installing the DirectX files
It's entirely sufficient to extract the dx70_mgw.zip file into your MinGW directory. This archive contains two directories, include and lib, which are then merged with the include and lib directories of MinGW. Afterwards you need to rename the file libmsacm32.a in the lib directory to libacm32.a.
5. Compiling FCEUXD SP
To compile FCEUXD SP I use the normal Windows command line. Just make sure the path to your compiler is correctly set in the command line. Go to the FCEUXD SP source directory and enter makewin (The name of a bat file) which builds FCEUXD SP.