• Stars
    star
    379
  • Rank 112,980 (Top 3 %)
  • Language
    C
  • Created almost 9 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The cross-platform, open-source SDK to develop for original Xbox: *new* xdk

nxdk - the new open source xdk

nxdk is a software development kit for the original Xbox. nxdk is a revitalization of OpenXDK. It is maintained by the XboxDev community.

Notable features:

  • Portable toolchain that works on modern versions of Windows, macOS and Linux.
  • No complicated cross-compiling or big library dependencies! Builds with make and just needs standard tools and llvm.
  • Modern C / C++ standards and compiler features.
  • Supports popular APIs like Windows API and BSD sockets.
  • SDL2 support for input, audio and 2D graphics.
  • Custom API for 3D graphics using NVIDIA-designed shader-languages (with additional Xbox extensions).
  • Open-Source drivers which can be modified to get the most out of the hardware.
  • Modifiable startup code, for as much system control as necessary.
  • Supported by an active community that can help with problems and responds to bug reports.

Build Status

CI Status for "Build Samples"

Status

While nxdk still is in early stages of development, it can already be used in many projects. Take a look at the list of projects that are build on top of nxdk. Additionally, the provided samples show how to use common features.

Getting Started

Prerequisites

You will need the following tools:

OS-specific instructions for installing these prerequisites can be found in the Wiki

Download nxdk

git clone --recursive https://github.com/XboxDev/nxdk.git

Build Samples

Samples are easily built by running the activation script bin/activate, which will spawn a shell that is fully set up to start using nxdk, and then running the Makefile in one of the sample directories. Details can be found in the Wiki. nxdk also supports automatic creation of ISO files.

Next Steps

Copy one of the sample directories to get started. You can copy it anywhere you like. Run nxdk's activation script bin/activate, then, in the directory of your program, you can simply run make.

Credits

  • OpenXDK is the inspiration for nxdk, and large parts of it have been reused. (License: MIT)
  • Large parts of pbkit, by openxdkman, are included, with modifications. (License: MIT)
  • 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)

Code Overview

  • 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.
  • 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.

More Repositories

1

extract-xiso

Xbox ISO Creation/Extraction utility. Imported from SourceForge.
C
582
star
2

endgame-exploit

A modern dashboard exploit for the original Microsoft Xbox.
Python
446
star
3

XboxDev

Information about XboxDev and issue tracker for the entire XboxDev ecosystem
91
star
4

ghidra-xbe

Xbox Executable Format (XBE) Loader Extension for Ghidra SRE framework
Java
75
star
5

cromwell

A free, legal BIOS replacement for the original Xbox
C
73
star
6

xbox-linux

Linux for the original Xbox
C
57
star
7

serial-usb-adapter

Original Xbox Serial to USB Adapter
50
star
8

xboxpy

Python module to interface with original Xbox hard- and software
Python
31
star
9

nv2a-trace

A tracing software like apitrace for the original Xbox GPU
Python
24
star
10

nxdk-rdt

Remote Dev Tool is a tool to remote control an Xbox using memory access and RPC
C
24
star
11

xbedump

Tool to dump header information or sign original Xbox executables
C
19
star
12

OpenXDK

C
16
star
13

mcpx-tools

Tools to work with the original Xbox MCPX ROM.
C
14
star
14

dump-dvd-kit

A tool to dump the ROM of the Xbox DVD Movie Playback Kit dongle
Python
14
star
15

ViridiX

Original Xbox debug communication suite
C#
12
star
16

a56

Modernized fork of a56, a DSP56001 assembler
Yacc
10
star
17

Cxbx

C++
8
star
18

xbox-linux-busybox

busybox for xbox-linux-initramfs
C
7
star
19

xbox-linux-initramfs

initramfs for xbox-linux
Shell
6
star
20

xtf-converter

A tool to convert XTF fonts to SVG fonts.
Python
5
star
21

xboxarchive.org

3
star
22

nxdk-buildbase

Dockerfile for an image containing everything required to build nxdk.
Dockerfile
2
star
23

nxdk-ci-environment-msys2

2
star
24

artwork

Artwork sources for the XboxDev ecosystem
2
star
25

xtlid

Provides a mapping of IDs to function names for .XTLID-sections found in Xbox executables
Rust
2
star
26

xboxdevwiki

Sources and issue tracker for XboxDevWiki.net
PHP
1
star