Xbox Development Kit

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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.

Contents

[edit] Purpose

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.

Only developers that are licensed by Microsoft may compile code and release binaries (.XBEs) of their software with the XDK, any software released using the XDK by developers that aren't licensed is illegal. Most of the underground homebrew software for the Xbox is compiled using the XDK, and thus is illegal. To address this problem, the OpenXDK project has been started to create 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.

[edit] Xbox development environment

The Xbox BIOS is based on Win32, but does not have all of the resources or capabilities of a 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 hindrance of which is the amount of available RAM at any one time.[1]

[edit] Compiling games and applications for the Xbox

[edit] Xbox embedded operating system

  • The Xbox does not have an operating system per-se, instead it only has a basic BIOS
    • Everything else must go into the main executable and its (XDK and own-made) libraries
  • Only a single process-thread (executable program) can run at any one time on the Xbox
  • Xbox hard drive file-system (FATX) has many limitations, among them a filename maximum of 42-characters
  • The Xbox has three USB ports but the Xbox SDK (a.k.a. XDK) does not contain a full USB-stack, thus if someone would want to add support for USB hardware-devices then they would have to code it from scratch.

[edit] 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 media), which has a maximum file size of 1 GB (meaning if you burn a DVD in a newer UDF version with a video that is larger than 1GB, the Xbox will not be able to play that file), with the same going for UDF/ISO hybrid formats (a.k.a. UDF Bridge format). Workaround: Burn all your CD/DVDs in the ISO 9660 format, which is the most common standard for recording CD/DVDs. Unfortunately ISO 9660 has a 2GB (Gigabyte) file size limitation, which cannot be bypassed.[1]
  • The Xbox built-in harddrive is formatted in FATX (File Allocation Table for Xbox) which has a 4GB (4096 Megabyte) file size limitation, and only supports file/folder names up to 42 characters, a maximum of 255 in total file structure character depth and a maximum number of 4096 files/folders in a single subfolder, 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 < > = ? : ; " * + , / \|¤ &).[1][2]
  • The USB flash drive (USB key drives/memory keys) 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.[2]
  • With its by today's standard old and slow 733 MHz Intel Pentium III-like CPU and 64MB shared memory, the Xbox has neither a fast enough CPU nor sufficient amounts of 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.[1][2]

[edit] See also

[edit] References

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages