Xbox Development Kit
The Xbox Development Kit (XDK) is a software development kit created by Microsoft used to write software for the Xbox gaming system. The XDK includes libraries, a compiler, and various tools used to create software for the Xbox. The XDK has the option to integrate itself into Microsoft Visual Studio 2002 or 2003. This is needed if one wants to develop applications or games for the Xbox. The XDK also includes a tool to record in-game footage, which has been widely used to create high-quality screenshots and trailers.
XDK was also designed to be used in conjunction with an Xbox console with the XDK Debug BIOS. It includes features to link to the console for real-time debug feedback, including system activity and network monitors.
According to the XDK license agreement, only developers that are licensed by Microsoft may compile code and release binaries (.XBEs) of their software with the XDK. In response the OpenXDK project was created as an open source replacement for the XDK.
Many people who are supplied with XDKs are required to sign Non-disclosure agreements so they do not disclose any information about Microsoft's development technology.
Xbox development environment
The Xbox BIOS is based on Win32, but does not have all of the resources or capabilities of the Windows NT operating system, (for example: neither DirectShow, registry, nor DLL are natively supported on the Xbox). Because of the constraints on the hardware and environment of the Xbox, all software development for the Xbox (and all video game consoles systems in general) are focused on reserving the limited resources that exist, the main limitation of which is the amount of available RAM.
Compiling games and applications for the Xbox
- The Xbox Software Development Kit (SDK) (with libraries) is required to compile video games and applications for the Xbox. Also required to compile (and program in) is Microsoft Visual Studio .NET.
Xbox embedded operating system
- The Xbox does not have an operating system per se, instead it only has a simple BIOS.
- Everything else must go into the main executable and its (XDK and own-made) libraries.
- Only a single thread (executable program) can run at a time on the Xbox.
- Xbox hard drive file system (FATX) has many limitations, among them a maximum file name length of 42 characters.
- The Xbox has four non-standard USB ports but the Xbox SDK does not contain a full USB stack, thus to add support for USB hardware devices, the developer would have to code the entire USB stack from scratch.
XDK and Xbox specific software limitations
This is a list of XDK, Xbox hardware, and Xbox operating system specific limitations.
- UDF (Universal Disk Format) file system limitation: The Xbox only supports UDF version 1.02 (designed for DVD-Video), which has a maximum file size of 1 GB (a DVD in a newer UDF version with a video that is larger than 1GB will not play), with the same applying to UDF/ISO hybrid formats (a.k.a. UDF Bridge format). A workaround is to burn discs in the ISO 9660 format. The ISO 9660 format has a 2GB (Gigabyte) maximum file size, which cannot be bypassed.
- The Xbox hard disk is formatted in FATX (File Allocation Table for Xbox) which has a 4GB (4096 Megabyte) maximum file size, and only supports file/folder names up to 42 characters, a maximum of 255 character full path, and a maximum number of 4096 files/folders in a single folder, plus in the root of each partition, the maximum number of files/folders is 256. FATX also does not support all standard ASCII characters in file/folder names (for example < > = ? : ; " * +, / \|¤ &).
- The USB flash drive reader/writer class used by the Xbox operating system has a few limitations as well. It is limited to USB flash drives and hard disks compatible with USB Mass Storage Device Class following the USB 1.1 standard, with a maximum size of 4 GB. It can read and write to FATX formatted flash drives, but can only read FAT12, FAT16 (including VFAT), and FAT32. NTFS formatted drives are not supported yet.
- With its 733 MHz Intel Pentium III-like CPU and 64MB shared memory, the Xbox has neither a fast enough CPU nor sufficient RAM to play HDTV videos encoded in native 720p/1080i resolution. However, the Xbox can upscale all standard definition movies and output them at 720p or 1080i.
- Patrick Schmid (2004-11-05). "Modding The Xbox Into The Ultimate Multimedia Center". Tom's Hardware.
- http://www.o-sd.com/hardcoregamermag/publicPDF/HGM_Aug.pdf Review of XBMC in Hardcore Gamer Magazine