Arduino/FPGA/Gameduino

Aus
< Arduino‎ | FPGA
Version vom 14. September 2019, 21:29 Uhr von Tw (Diskussion | Beiträge) (Gameduino Shield)
Wechseln zu: Navigation, Suche
GameDuino Board
GameDuino Board

Gameduino Shield

Das Gameduino Shield ist ein Grafik Adapter für den Arduino auf Basis eines Altera FPGA. Es bietet VGA mit Sprites und einen Coprocessor.


Specifications

  • video output is 400x300 pixels in 512 colors
  • all color processed internally at 15-bit precision
  • compatible with any standard VGA monitor (800x600 @ 72Hz)
  • background graphics
    • 512x512 pixel character background
    • 256 characters, each with independent 4 color palette
    • pixel-smooth X-Y wraparound scroll
  • foreground graphics
    • each sprite is 16x16 pixels with per-pixel transparency
    • each sprite can use 256, 16 or 4 colors
    • four-way rotate and flip
    • 96 sprites per scan-line, 1536 texels per line
    • pixel-perfect sprite collision detection
  • audio output is a stereo 12-bit frequency synthesizer
  • 64 independent voices 10-8000 Hz
  • per-voice sine wave or white noise
  • sample playback channel


Background graphics

The 64x64 character screen RAM, together with the character/palette RAMs define the background image. This image is 512x512 pixels, from which the hardware displays a 400x300 window. The SCROLL_X and SCROLL_Y registers control the location of the top-left corner of this window. The display window wraps around the 512x512 screen area, so an infinite scrolling area is possible, as shown by sample scroll.

Memory at 0000-0FFF (RAM_PIC) is a 64x64 grid of byte character codes. The hardware uses the character code to look up the character image and palette in memory areas 1000-1FFF (RAM_CHR) and 2000-27FF (RAM_PAL). So for each displayed pixel, the hardware:

  • looks up the character code in RAM_PIC
  • looks up that character's pixel in RAM_CHR
  • looks up that character's pixel's color in RAM_PAL

1000-1FFF (RAM_CHR) specifies the 64-pixel 8x8 image for each of the 256 characters. Layout is top-left to bottom-right, pixels are packed four in each byte, with the leftmost pixel in the most significant two bits.

2000-27FF (RAM_PAL) specifies the four colors used by each of the 256 characters. See :ref:`Colors`. If a color value's A bit is set, then the color is taken from register BG_COLOR instead.



Web Links