Xbox Development Kit
Encyclopedia
The Xbox Development Kit (XDK) is a software development kit
Software development kit
A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

 created by Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 used to write software for the Xbox
Xbox
The Xbox is a sixth-generation video game console manufactured by Microsoft. It was released on November 15, 2001 in North America, February 22, 2002 in Japan, and March 14, 2002 in Australia and Europe and is the predecessor to the Xbox 360. It was Microsoft's first foray into the gaming console...

 gaming system. The XDK includes libraries
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....

, a compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

, and various tools used to create software for the Xbox. The XDK has the option to integrate itself into Microsoft Visual Studio
Microsoft Visual Studio
Microsoft Visual Studio is an integrated development environment from Microsoft. It is used to develop console and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all...

 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.

Purpose

XDK was also designed to be used in conjunction with an Xbox console with the XDK Debug BIOS
XDK Debug BIOS
The XDK Debug BIOS, is an alternate BIOS created by Microsoft for Xbox gaming system. It is included in Debug Xbox consoles that are used by game software developers. It differs from a Retail BIOS by allowing the Microsoft XDK to link with the Xbox while it is executing code and receive feedback...

. 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
Software developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...

 that aren't licensed is illegal. Most of the underground homebrew
Homebrew (video games)
Homebrew is a term frequently applied to video games or other software produced by consumers to target proprietary hardware platforms not typically user-programmable or that use proprietary storage methods...

 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
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 replacement for the XDK.

Many people who are supplied with XDKs are required to sign Non-disclosure agreement
Non-disclosure agreement
A non-disclosure agreement , also known as a confidentiality agreement , confidential disclosure agreement , proprietary information agreement , or secrecy agreement, is a legal contract between at least two parties that outlines confidential material, knowledge, or information that the parties...

s so they do not disclose any information about Microsoft's development technology.

Xbox development environment

The Xbox BIOS
BIOS
In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

 is based on Win32, but does not have all of the resources or capabilities of a Windows NT
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 operating system, (for example: neither DirectShow
DirectShow
DirectShow , codename Quartz, is a multimedia framework and API produced by Microsoft for software developers to perform various operations with media files or streams. It is the replacement for Microsoft's earlier Video for Windows technology...

, registry
Windows registry
The Windows Registry is a hierarchical database that stores configuration settings and options on Microsoft Windows operating systems. It contains settings for low-level operating system components as well as the applications running on the platform: the kernel, device drivers, services, SAM, user...

, nor DLL
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...

 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.

Compiling games and applications for the Xbox

  • The Xbox Software Development Kit
    Software development kit
    A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

     (XDK) (with libraries) is required to compile
    Compiler
    A compiler is a computer program that transforms source code written in a programming language into another computer language...

     video games and applications for the Xbox. Also required to compile (and program
    Computer programming
    Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

     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 basic BIOS
    • Everything else must go into the main executable and its (XDK and own-made) libraries
  • Only a single process-thread
    Thread (computer science)
    In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

     (executable
    Executable
    In computing, an executable file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a data file that must be parsed by a program to be meaningful. These instructions are traditionally machine code instructions for a physical CPU...

     program
    Computer program
    A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...

    ) 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
    Character (computing)
    In computer and machine-based telecommunications terminology, a character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written form of a natural language....

  • The Xbox has three USB ports but the Xbox SDK (a.k.a. XDK) does not contain a full USB-stack
    Stack (data structure)
    In computer science, a stack is a last in, first out abstract data type and linear data structure. A stack can have any abstract data type as an element, but is characterized by only three fundamental operations: push, pop and stack top. The push operation adds a new item to the top of the stack,...

    , thus if someone would want to add support for USB hardware-devices then they would have to code it 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)
    Universal Disk Format
    Universal Disk Format is an implementation of the specification known as ISO/IEC 13346 and ECMA-167 and is an open vendor-neutral file system for computer data storage for a broad range of media. In practice, it has been most widely used for DVDs and newer optical disc formats, supplanting ISO 9660...

     file-system limitation: The Xbox only supports UDF version 1.02 (designed for DVD-Video
    DVD-Video
    DVD-Video is a consumer video format used to store digital video on DVD discs, and is currently the dominant consumer video format in Asia, North America, Europe, and Australia. Discs using the DVD-Video specification require a DVD drive and a MPEG-2 decoder...

     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
    ISO 9660
    ISO 9660, also referred to as CDFS by some hardware and software providers, is a file system standard published by the International Organization for Standardization for optical disc media....

     format, which is the most common standard for recording CD/DVDs. Unfortunately ISO 9660
    ISO 9660
    ISO 9660, also referred to as CDFS by some hardware and software providers, is a file system standard published by the International Organization for Standardization for optical disc media....

     has a 2GB (Gigabyte)
    Gigabyte
    The gigabyte is a multiple of the unit byte for digital information storage. The prefix giga means 109 in the International System of Units , therefore 1 gigabyte is...

     file size limitation, which cannot be bypassed.
  • The Xbox built-in harddrive is formatted in FATX (File Allocation Table for Xbox) which has a 4GB (4096 Megabyte
    Megabyte
    The megabyte is a multiple of the unit byte for digital information storage or transmission with two different values depending on context: bytes generally for computer memory; and one million bytes generally for computer storage. The IEEE Standards Board has decided that "Mega will mean 1 000...

    ) 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
    ASCII
    The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...

     in file/folder names (for example < > = ? : ; " * + , / \|¤ &).
  • The USB flash drive
    USB flash drive
    A flash drive is a data storage device that consists of flash memory with an integrated Universal Serial Bus interface. flash drives are typically removable and rewritable, and physically much smaller than a floppy disk. Most weigh less than 30 g...

     (USB key drives/memory keys
    USB flash drive
    A flash drive is a data storage device that consists of flash memory with an integrated Universal Serial Bus interface. flash drives are typically removable and rewritable, and physically much smaller than a floppy disk. Most weigh less than 30 g...

    ) reader/writer class
    Class (computer science)
    In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

     used by the Xbox operating system has a few limitations as well. It is limited to USB flash drives and hard disk
    Hard disk
    A hard disk drive is a non-volatile, random access digital magnetic data storage device. It features rotating rigid platters on a motor-driven spindle within a protective enclosure. Data is magnetically read from and written to the platter by read/write heads that float on a film of air above the...

    s compatible with USB Mass Storage Device Class
    USB mass storage device class
    The USB mass storage device class, otherwise known as USB MSC or UMS, is a protocol that allows a Universal Serial Bus device to become accessible to a host computing device, to enable file transfers between the two...

     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
    NTFS
    NTFS is the standard file system of Windows NT, including its later versions Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, and Windows 7....

     formatted drives are not supported yet.
  • With its by today's standard old and slow 733 MHz Intel Pentium III-like CPU and 64MB shared memory
    Shared memory
    In computing, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on multiple separate processors...

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

See also

  • XNA Game Studio for Windows and Xbox 360
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK