fear_this
03-02-2002, 10:45 AM
(Thnx to XboxWeb!)
"With over 100 Xbox Development Kits (XDK) given to various Xbox developers world wide, Xbox game development is well underway. The XDK comes with many useful features that will allow for some pretty elaborate games. So, what will a developer get with this competitively priced setup? Here's a rundown on some of the XDK's features:
The OS is a stripped down version of the Windows 2000 kernel. XDK supports DVD, CD, CD-RW, and DVD-R, but not CD-R. The Windows GUI is replaced with the Xbox Dashboard.
The Dashboard allows use of DVD and CD players, system configuration utilities, multiplayer and online connectivity utilities, and saved game management.
Direct3D will be the primary API for the Xbox. Direct3D will be based on DirectX 8.0 and implemented using a custom driver specific to the final nVidia chipset and video adapter. Drivers support NTSC and PAL formats as well as MPEG video. Online connectivity comes in two flavors: Ethernet and optional 56K modem.
At the heart of the XDK's standard libraries is DirectX. Accord to J. Allard, Microsoft's General Manager, Platform and Third Party, DirectX is an API used by more game developers worldwide, so it makes sense it would be included in the XDK that's going out to next-generation console developers.
As far as user-friendliness goes, Allard and company are stating that Xbox is the friendliest system to develop for. With an OS and API as well known as Windows and DirectX, the XDK looks to provide one friendly development environment, especially for PC developers who are dabbling in the console market with the Xbox. And in time, it's only natural that the XDK will evolve to accommodate the needs of developers.
What follows is the entire XDK development document. It was accidentally leaked out. Microsoft's loss is our gain.
The specs to Xbox's daddy are pretty impressive.
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
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.
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.
Even the main unit's heater is cool.
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 fix-ups, 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), and 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. "
"With over 100 Xbox Development Kits (XDK) given to various Xbox developers world wide, Xbox game development is well underway. The XDK comes with many useful features that will allow for some pretty elaborate games. So, what will a developer get with this competitively priced setup? Here's a rundown on some of the XDK's features:
The OS is a stripped down version of the Windows 2000 kernel. XDK supports DVD, CD, CD-RW, and DVD-R, but not CD-R. The Windows GUI is replaced with the Xbox Dashboard.
The Dashboard allows use of DVD and CD players, system configuration utilities, multiplayer and online connectivity utilities, and saved game management.
Direct3D will be the primary API for the Xbox. Direct3D will be based on DirectX 8.0 and implemented using a custom driver specific to the final nVidia chipset and video adapter. Drivers support NTSC and PAL formats as well as MPEG video. Online connectivity comes in two flavors: Ethernet and optional 56K modem.
At the heart of the XDK's standard libraries is DirectX. Accord to J. Allard, Microsoft's General Manager, Platform and Third Party, DirectX is an API used by more game developers worldwide, so it makes sense it would be included in the XDK that's going out to next-generation console developers.
As far as user-friendliness goes, Allard and company are stating that Xbox is the friendliest system to develop for. With an OS and API as well known as Windows and DirectX, the XDK looks to provide one friendly development environment, especially for PC developers who are dabbling in the console market with the Xbox. And in time, it's only natural that the XDK will evolve to accommodate the needs of developers.
What follows is the entire XDK development document. It was accidentally leaked out. Microsoft's loss is our gain.
The specs to Xbox's daddy are pretty impressive.
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
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.
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.
Even the main unit's heater is cool.
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 fix-ups, 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), and 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. "