3
0
mirror of https://github.com/XboxDev/nxdk.git synced 2026-02-04 19:55:34 +00:00
Files
nxdk/README.md
2016-01-02 02:27:40 -07:00

2.6 KiB

nxdk - the new open source xdk

What?

nxdk is a software development kit for the original Xbox. nxdk is a revitalisation of OpenXDK,

Notable features:

  • No complicated cross-compiling or big library dependencies! Builds with make and 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 (read: it was hacked together over a weekend).

How?

You need:

  • make

  • A recent version of clang and lld

  • GNU bison and flex

  • Temporarilly because I'm lazy, wine to invoke the NVIDIA Cg compiler

On OSX with Homebrew, this might do the job (XCode ships with make and bison and flex):

brew install wine llvm --with-lld --with-clang

Now you can compile your application and nxdk:

git submodule init
git submodule update
make tools
make -C samples/0ldskoo1

Credits

  • OpenXDK is inspiration for nxdk, and large parts are reused.
    • License: GPLv2
  • Large parts of pbkit by openxdkman are included, with modifications.
    • License: Academic Free License
  • A very barebones libc is included based on lib43
    • License: MIT
  • vp20compiler is based on nvvertparse.c from Mesa
    • License: MIT
  • fp20compiler is based on nvparse from the NVIDIA SDK 9.52.
  • A (windows) copy of the NVIDIA Cg compiler 1.3 from the NVIDIA SDK is bundled.

Code Overview

app/ - code for your application. Currently contains the code for the "0ldskoo1" reversing challenge from 9447 CTF.

bin/ - the output directory

pbkit/ - A low level library for interfacing with the Xbox GPU.

hal/ - Barebones Hardware Abstraction Layer for the Xbox, from OpenXDK.

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.

usb/ - USB support from OpenXDK. Hacked together parts of an old Linux OHCI stack.

xboxkrnl - stubs and import library for the interfacing with the Xbox kernel.

xboxrt - A very simple libc implementation.