Info
Xbox System Software Overview - official
leaked document from the XDK
The system software of the Microsoft® Xbox® game system will provide
a small, fast, safe, robust, and customizable environment to enable the creation
of great games for the Xbox game system. It will provide a set of useful common
services to be taken advantage of by game developers, such as networking and
file system input/output, so that developers can focus on creating great games.
It will also provide an attractive, easy-to-use interface for functions other
than running games, such as playing DVD movies or CD music or configuring
the Xbox console.
The Xbox system software will have these components:
* The Xbox read-only memory (ROM)
* The Xbox Dashboard
* The Xbox Title Libraries
Xbox Game System ROM
The ROM of the motherboard on the Xbox console will provide the following
system-software services:
* Hardware Abstraction Layer (HAL)
* Driver model
* Hard disk driver
* DVD driver
* FAT32 file system
* UDFS file system
* Copy-protection support
* Certificate/signature validation
* Basic application services such as the application loader, memory management,
and threading
For more information about the design and functionality of the Xbox software system, see the following topics:
* Software System Kernel
* Power Up
* Media Detection
* Game Launch
Software System Kernel
The kernel is based on Microsoft® Windows® 2000. Many features of
Windows 2000 are not included in the Xbox system software, including those
related to running on multiple hardware platforms or running multiple processes
at once. For more information about unsupported Microsoft® Win32®
application programming interfaces (APIs), see Win32 API (below).
There will be no support for code running in user mode (Ring 3) on the Xbox game system. All code will execute in kernel mode (Ring 0). Only one process runs at a time, and that process will support multiple threads. There is no Windows 2000 desktop user interface; the user interface is provided by the individual Xbox games or the Xbox Dashboard if no game is running.
Power Up
When the user turns on the console, the system software is decompressed out
of read-only memory (ROM) into random access memory (RAM). Once in RAM, the
system software initializes the hardware (DVD, audio, video, and so on).
After the hardware has been initialized, the system software will display the boot graphic and play the startup sound. Because there are no video or audio drivers in the kernel, this is done by poking the registers of the sound and video card directly. This graphic and sound will play approximately 1 second from the time the machine is turned on.
Media Detection
Upon power up and during the display of the startup graphic and the playing
of sound, the system software attempts to determine what type of media is
in the DVD drive. If it determines that the media is a game, it loads the
game into RAM, checks the signature of the game to verify that it is an authentic
copy, then starts playing the game. If the media is not a game, the Xbox Dashboard
is run as follows:
* Movies are played by the Xbox Dashboard video player.
* Audio CDs are played by the Xbox Dashboard audio player.
* If unsupported media is present, an invalid content message is shown and
the Xbox Dashboard game-system-configuration user interface runs.
* If no media is present, the Xbox Dashboard game-system-configuration user
interface runs.
For more information, see Xbox Dashboard (below).
Supported media are CD, DVD, CD-RW, or DVD-R. There is no CD-R support.
Game Launch
Once the system software has determined that the media contains an Xbox game,
it loads the game developer bitmaps, publisher bitmaps, license bitmaps, and
so on. These will be stored in a predetermined location on the DVD, will contain
no executable code, and will be identified with a predefined schema. The system
software will display these bitmaps sequentially, after the boot graphic and
sound have appeared, while the game itself is being streamed from the DVD
into RAM. As the game image is streamed into memory, the system software checks
the signatures of each section of the image on the fly.
Once the game image is in memory, the system software will start the game. At this point, the kernel is acting in conjunction with the Xbox Title Libraries to provide all of the basic services for the game itself.
The Xbox game image format is not compatible with other executable systems, such as Windows 2000 executable format. The Xbox game image must be loaded by the Xbox system software application, loading utilities directly into RAM in 64-megabyte (MB) blocks. Unlike standard Windows 2000 applications, there are no dynamic-link library (DLL) loads, no fixups, and so on.
Xbox Title Libraries
The Xbox Title Libraries define the programming model used to develop software
for the Xbox game system. They consist of all APIs provided with the Xbox
Development Kit, which are linked into every title written for the Xbox game
system, including:
* Subset of the Microsoft Win32 APIs
* Subset of the Microsoft® DirectX® 8.0 APIs
* Xbox video driver
* Xbox audio driver
* Xbox universal serial bus (USB) driver
* Xbox modem driver
* Xbox memory unit support
* Xbox network stack: media access control (MAC), Network Driver
Interface Specification (NDIS), Transmission Control Protocol/Internet Protocol
(TCP/IP), Winsock
The primary programming model for the Xbox game system will be defined by the Xbox Title Libraries. Because the Xbox Title Libraries are partitioned into distinct libraries (modular), game developers can pick and choose which libraries are appropriate for their title. For example, if a game will support online play, they include the Xbox networking library with their game. If no online play support is planned, they do not include the Xbox networking library. While some support is implemented in the kernel of the system software in the Xbox game system ROM (for example, file system support, threading, memory management), the APIs to access these features are exposed through the Xbox Title Libraries.
Note All Xbox-compatible code runs at Ring 0 on the Xbox game system, which means the Xbox Title Libraries are implemented in kernel mode and all games run in kernel mode. However, all Xbox Title Libraries will be signature-compatible with their user-mode implementation. From a developer's perspective, the Xbox Title Libraries function as they would in user mode. Kernel mode results in faster performance at run time.
For more information about the components of the Xbox Title
Libraries, see the following topics:
* Win32 API
* Graphics
* Input
* Audio
* Video
* Networking
* New Xbox Services
Win32 API
A subset of the Win32 APIs is supported by the Xbox system software. We are
currently doing analysis to determine exactly which APIs will be needed. Some
omissions from the standard Win32 environment will include portions of the
User, Graphics Device Interface (GDI), OLE, or the Services interfaces. Any
APIs from User and GDI that are essential will be included as needed.
Services from Windows 2000 not available in the Xbox system
software include:
* Services
* Plug and play
* Additional hardware enumeration
* Hot docking
* All unsupported drivers
* Power management
* Virtual memory (paging)
* Multiple-process support
* Multiple-processor support
* Windows NT File System (NTFS)
Graphics
Microsoft® Direct3D® will be the primary graphics API for the Xbox
game system. Direct3D for the Xbox game system will be based on DirectX 8.0,
and implemented using a custom driver specific to the final NVIDIA chipset
and video adapter. The graphics API for the Xbox game system is compatible
with DirectX at the API layer, while providing the thinnest, fastest-possible
access to the video hardware. The Direct3D driver is combined with the HAL
to create a completely monolithic driver implementation.
The drivers support both National Television System Committee
(NTSC) and Phase Alternating Line (PAL) TV output. Moving Picture Experts
Group (MPEG) video is supported.
Input
The Xbox controller connections and external peripheral connection are USB ports with an Xbox proprietary connector. The Xbox game system implements USB drivers for any possible peripherals connected to the Xbox console. Only full-speed USB is supported.
An API specific to the Xbox game system, based on Microsoft® DirectInput®, is used for development with most Xbox controllers. Xbox-licensed game systems should work without an additional driver. This assumes that Xbox consoles do not introduce any new axis or capability not covered by the standard Xbox game system API.
Audio
The audio APIs for the Xbox game system are based on subsets of Microsoft®
DirectSound® and Microsoft® DirectMusic®, from DirectX 8.0. Audio
streaming will not be based on Microsoft® DirectShow®, however. Instead,
an Xbox-specific audio streaming API will be implemented for high quality
CD playback without skipping, and without undue CPU utilization. The following
features are supported by the Xbox audio APIs:
* WAV files
* MIDI playback
* Interactive music
* Microsoft Windows Media (WMA) files
* 3D sound
There is no support for Redbook audio or random instruments.
Video
Like audio streaming, the video streaming API for the Xbox game system will
not be based on DirectShow. Instead, an Xbox-specific video streaming API
will be implemented.
Networking
Xbox hardware includes two devices for online connectivity:
* Built-in Ethernet card for broadband: cable modems, digital subscriber line
(DSL) or local network
* Optional 56-kilobits per second (Kbps) modem peripheral for dial-up, with
a USB modem driver and dialer included in the Xbox Title Libraries
The Xbox Title Libraries include networking services for online capabilities. Included with these will be TCP/IP and Winsock support. If online connectivity is not wanted for a game, the Xbox networking libraries should not be linked and included with the game title.
The API to access networking services is based on a subset of Microsoft® DirectPlay® from DirectX 8.0. DirectPlay lobby or voice features will not be supported, however.
New Xbox Services
The Xbox system software will include new services specific to the Xbox game
sytem and not based on any existing Win32 or DirectX APIs. New services provided
by the Xbox Title Libraries include:
* High-score publishing, including a common format to be shared online.
* Virtual keyboard support for simplified text entry and game-specific skins.
* User identity that associates names, preferences, and statistics to be shared
online.
* Hard disk management to allow usage of the Xbox hard disk by game titles
for configuration stores, cache space, and so on.
Xbox Dashboard
The Xbox Dashboard is an application installed on the Xbox hard disk, which
essentially is the user interface when a game is not running in the Xbox game
system. The Xbox Dashboard provides the following services:
* DVD player
* CD player
* System configuration utilities for the Xbox game system
* Multiplayer and online connectivity utilities
* Saved game management
* Error handling
Initially, the user interface of the Xbox Dashboard offers the following choices
to the user:
* Play
* Configure
* Go online
* Manage games
DVD Player
This can be configured for AutoPlay (so that a DVD video will play simply
by inserting into the Xbox console and powering up) or for manual control,
which presents controls for pause, skip, and so on.
CD Player
This can be configured for AutoPlay (so that an audio CD will play simply
by inserting into the Xbox console and powering up) or for manual control,
which presents controls for pause, skip, playlist management, and so on.
Xbox Game System Configuration
This presents the user interface for all preferences and settings for the
Xbox game system, including the following:
* Video configuration
* Audio configuration
* Parental control
* Date and time
Multiplayer and Online
This presents the user interface for all online connectivity, including the
following:
* Lobby browser
* Lobby favorites
* High score browser
* Xbox Zone browser
* Online sign-up and configuration
Saved Game Management
This presents the user interface for hard disk management, including saving,
deleting, and copying games between the Xbox hard disk and the Xbox Zone (online).
Error Handling
Errors that occur during system-boot execution of the Xbox Dashboard will
be handled by the Xbox Dashboard. However, hardware errors (for example, hard
disk failure) will be handled by the Xbox system software. Game errors also
are not handled by the Xbox Dashboard, but by the game software itself.
Welcome
This site is intended to offer help and support for the further development of software and hardware for the xbox console
The images below came from a Japanese Xbox site.
This is a picture of the Xbox Motherboard.
This is a basic picture of the inside components of the Xbox.
This is a picture of the nVidia chip that is responsible for the awesome Xbox
graphics!
This is a picture of the Intel 733Mhz CPU.
This is a picture of the Seagate Hard Drive.
This is a picture of the Motherboard outside of the case.
This page collects all information on Xbox hacking, especially documents dealing with modifications in its system software, as well as documents on Xbox Linux.
I am very thankful for additions, corrections, as well as new documents, either written by yourself or anyone else on the net.
Please note that all information on this website is for informational purpose only and is provided "AS IS". Everything you do with this information is on your own risk.
UPDATE 11 May 2002: Xbox Linux Development Roadmap by Michael Steil
NEW 11 May 2002: Xbox Hardware we will need Linux Drivers for by Michael Steil
NEW 15 May 2002: Thoughts on Implementing Access to Xbox Partitioning in Linux by Michael Steil
Xbox Boot Process by Michael Steil
Xbox XDK Overview, leaked out document by Microsoft
Xbox Hard Disk Technical Details by Michael Steil
How to Access the Xbox Hard Disk by Michael Steil
How to Backup the Xbox Hard Disk by Michael Steil
Extracting the HD password from an XBox hard drive by SpeedBump
Xbox Hard Disk Partitioning by Michael Steil
NEW 11 May 2002: Differences between Xbox FATX and MS-DOS FAT by Michael Steil
Xbox Hard Disk Filesystem Contents by Michael Steil
Xbox Partitioning and Filesystem Details by Andrew de Quincey
Xbox DVD Filesystem Details by Andrew de Quincey and Lucien Murray-Pitts
Xbox File Types by Michael Steil
XBE File Format by Robin Hood
XBE File Format by Andrew de Quincey and Lucien Murray-Pitts
Security Attacks to Run Your Code on the Xbox by Michael Steil
Xbox FATX Hacking by Michael Steil
NEW 15 May 2002: Xbox Hard Disk Header Hacking by Michael Steil
More information can be found on http://www.xboxhacker.net/
© 2002 Michael Steil. Last update: May 10 2002