Display

From WSdev Wiki
Jump to navigationJump to search

The WonderSwan features a 224x144 display capable of displaying up to 16 shades of gray (mono) or 4096 colors (color).

↑ Front ↑ Window Scroll
Sprites, high priority
Screen 2
Sprites, low priority
Screen 1
Background color
↑ Back ↑

Features

Screens are 32x32 tile maps; each map entry can use one of 512 (mono) or 1024 (color) tiles, one of sixteen distinct palettes, as well as be drawn mirrored or flipped.

The sprite layer consists of 128 distinct sprites. These can use any of the first 512 tiles, palettes 8 through 15, as well as be drawn over or under screen 2.

The window functionality can be used to restrict drawing of Screen 2's tiles, as well as the sprite layer, to a given pixel-perfect window. Individual sprites can be marked as being drawn inside or outside the window.

Each palette consists of four colors, of which the first entry - color zero - is opaque in palettes 0-3 and 8-11 and transparent otherwise. The color models additionally feature a sixteen-color palette mode, in which color zero is always considered transparent. The background color is displayed if no opaque pixel from any screens or sprites is drawn.

In addition, a set of LCD segment-based icons is provided to a side of the display which can be independently controlled as an indicator to the user.

Interrupts

The display circuit generates two interrupts of its own:

  • Display Interrupt Line Match - when Display Current Line == Display Interrupt Line, at the beginning of said line.
  • Display Vertical Blank - when Display Current Line == 144, at the beginning of said line.

It also provides a timing source for the two Horizontal and Vertical Blank Timers, which provide their own respective interrupts.

More information