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.