nxdk - the new open source xdk
nxdk is a software development kit for the original Xbox. nxdk is a revitalization of OpenXDK.
- No complicated cross-compiling or big library dependencies! Builds with
makeand just needs standard tools and llvm.
- 3D graphics! nxdk includes and expands on pbkit, a library for interfacing with the Xbox GPU.
nxdk is currently in early stages of development.
You will need the following tools:
OS-specific instructions for installing these prerequisites can be found in the Wiki
git clone https://github.com/xqemu/nxdk.git cd nxdk git submodule init git submodule update --recursive
Copy one of the sample directories to get started. You can copy it anywhere you
like, but make sure that the
NXDK_DIR variable in the Makefile points to
correct place. Then, in the directory, you can simply run
- OpenXDK is the inspiration for nxdk, and large parts of it have been reused. (License: GPLv2)
- Large parts of pbkit, by openxdkman, are included, with modifications. (License: LGPL)
- A network stack is included based on lwIP (License: Modified BSD)
- A libc is included based on PDCLib (License: CC0)
- Large parts of the runtime library are derived from LLVM's compiler-rt library (License: MIT)
- vp20compiler is based on nvvertparse.c from Mesa (License: MIT)
- fp20compiler is based on nvparse from the NVIDIA SDK 9.52.
- The NVIDIA Cg compiler is bundled.
- extract-xiso developed by in et al. (License: BSD)
lib/hal- Barebones Hardware Abstraction Layer for the Xbox, from OpenXDK.
lib/net- Network stack for the Xbox based on lwIP.
lib/pdclib- Xbox port of PDCLib, a CC0-licensed C standard library.
lib/pbkit- A low level library for interfacing with the Xbox GPU.
lib/sdl- Xbox ports of SDL2 and SDL_ttf.
lib/usb- USB support from OpenXDK. Hacked together parts of an old Linux OHCI stack.
lib/winapi- Xbox specific implementations of common useful WinAPI-functions.
lib/xboxkrnl- Header and import library for interfacing with the Xbox kernel.
lib/xboxrt- Miscellaneous functionality for debugging etc.
lib/xlibc-rt- Implementations of supportive functions required at runtime.
tools/cxbe- Simple converter for PE executables to the Xbox executable format, from OpenXDK.
tools/fp20compiler- Translates register combiner descriptions to Xbox pushbuffer commands.
tools/vp20compiler- Translates vertex program assembly to Xbox microcode.
tools/extract-xiso- Generates and extracts ISO images compatible with the Xbox (and XQEMU).
samples/- Sample applications to get started.