Xbox 360 Display Settings
The NoSuitableGraphicsDeviceException
error is
telling you that you don't have a graphics device that will run with the current
settings. The problem? The resolution you're using. When you were writing the game
for Windows, you used the following two lines in the constructor of the Game1
class to set the resolution to 1,280 Ã
1,024:
graphics.PreferredBackBufferWidth = 1280; graphics.PreferredBackBufferHeight = 1024;
You need to specify that those lines should be compiled only when the XBOX360
symbol is not defined, as follows:
#if(!XBOX360) graphics.PreferredBackBufferWidth = 1280; graphics.PreferredBackBufferHeight = 1024; #endif
With that change in place, you should be able to compile, run, and actually play your game on the Xbox 360.
Your resolution should now be set according to Table 16-1, following standards based on the display settings on your Xbox 360.
Table 16-1. Television display modes
Xbox 360 display setting |
DisplayMode width and height |
---|---|
AV (Composite) |
640 Ã 480 |
480p (Normal) |
640 Ã 480 |
480p (Widescreen) |
640 Ã 480 |
720p (Widescreen) |
1,280 Ã 720 |
1,080i/1,080p (Widescreen) |
1,920 Ã 1,080 |
You can detect the display settings by using the DisplayMode
property of the GraphicsDevice
. XNA sets this property before Game1
's Initialize
method is called, so you can accurately read the property during and after this
method.
Get Learning XNA 3.0 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.