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;
#endifWith 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.