Arduino/FPGA/Gameduino: Unterschied zwischen den Versionen
Tw (Diskussion | Beiträge) (→Gameduino Shield) |
Tw (Diskussion | Beiträge) (→Gameduino Shield) |
||
| Zeile 6: | Zeile 6: | ||
Das Gameduino Shield ist ein Grafik Adapter für den Arduino auf Basis eines Altera FPGA. Es bietet VGA mit Sprites und einen Coprocessor. | Das Gameduino Shield ist ein Grafik Adapter für den Arduino auf Basis eines Altera FPGA. Es bietet VGA mit Sprites und einen Coprocessor. | ||
| − | |||
| − | |||
<br /> | <br /> | ||
| − | + | === Specifications === | |
* video output is 400x300 pixels in 512 colors | * video output is 400x300 pixels in 512 colors | ||
| Zeile 29: | Zeile 27: | ||
* per-voice sine wave or white noise | * per-voice sine wave or white noise | ||
* sample playback channel | * sample playback channel | ||
| + | |||
| + | <br /> | ||
| + | === 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. | ||
| + | |||
<br /> | <br /> | ||
Version vom 14. September 2019, 21:29 Uhr
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.