Difference between revisions of "PicoVGA01"
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) |
||
Line 6: | Line 6: | ||
* [http://www.breatharian.eu/hw/picovga/index_en.html PicoVGA - VGA/TV display on Raspberry Pico] designed by Miroslav Nemecek | * [http://www.breatharian.eu/hw/picovga/index_en.html PicoVGA - VGA/TV display on Raspberry Pico] designed by Miroslav Nemecek | ||
− | |||
− | |||
The PicoVGA library allows output from the Raspberry Pico to a VGA monitor or PAL/NTSC TV, with a focus on ease of use in technical and gaming applications. It provides 4 graphic overlay layers with transparency, nearly 30 frame buffer formats that can be freely combined with each other, making do with limited RAM memory size. The limitation of output to 8 bits also contributes to RAM saving. | The PicoVGA library allows output from the Raspberry Pico to a VGA monitor or PAL/NTSC TV, with a focus on ease of use in technical and gaming applications. It provides 4 graphic overlay layers with transparency, nearly 30 frame buffer formats that can be freely combined with each other, making do with limited RAM memory size. The limitation of output to 8 bits also contributes to RAM saving. | ||
Line 14: | Line 12: | ||
[[file:PicoVGA_diagram.jpg]] | [[file:PicoVGA_diagram.jpg]] | ||
+ | |||
+ | == Software == | ||
+ | |||
+ | * [https://github.com/Panda381/PicoVGA PicoVGA GitHub repository] | ||
+ | * [https://github.com/land-boards/RasPiPico/tree/main/PicoVGA Our PicoVGA GitHub repository] | ||
== Features == | == Features == |
Revision as of 15:46, 18 July 2022
Contents
PicoVGA
- PicoVGA - VGA/TV display on Raspberry Pico designed by Miroslav Nemecek
The PicoVGA library allows output from the Raspberry Pico to a VGA monitor or PAL/NTSC TV, with a focus on ease of use in technical and gaming applications. It provides 4 graphic overlay layers with transparency, nearly 30 frame buffer formats that can be freely combined with each other, making do with limited RAM memory size. The limitation of output to 8 bits also contributes to RAM saving.
The RP2040 processor contains 264 KB of RAM. This is not much for higher resolution image output and therefore RAM needs to be very sparing. In technical practice and for retro games (the processor does not have the power for more advanced games), 8-bit graphics output in R3G3B2 format (i.e. red 3 bits, green 3 bits and blue 2 bits) is fully sufficient. Output in 16 or 24 bits is not meaningful in normal practice, as the Raspberry Pico does not have enough memory or power to provide such large amounts of data in areas other than short demos. Using the dithering technique, interesting display results can be achieved even with 8-bit output.
Software
Features
- 1 base layer and 3 overlay layers with transparency
- 8-bit output in R3G 3:3:2 format
- VGA progressive output up to 1280x960 resolution
- TV output in PAL or NTSC interlaced mode
- 30 frame buffer formats: graphics, tiles, text, special
- Colour palettes
- Screen split into segments of different formats
- RLE compression
- Transparency with selectable key colour
- Hardware sprites
- Output layers to different color bits (color planes)
- Automatic configuration video mode timings
- Automatic overclocking of processor
- Library uses the 2nd core, main program uses 1st core
- PWM mono audio output
- Joystick connector(S)
Connectors
J1/J3 Pico breakout
J2 - Mono Audio
J4 - 5V USB B
J5 / J6 - Joystick
- UP
- DOWN
- LEFT
- RIGHT
- +VCC
- BUTTON I
- BUTTION II
- BUTTON COMMON
- GND
// #define PB_RT 16 // #define PB_LT 17 // #define PB_CF 18 // #define PB_DN 20 // #define PB_UR 21 // keyboard control: // 'L' right, RT - BRN - RIGHT // 'I' turn, CF - YEL - CENTER FIRE ROTATE // 'J' left, LF - ORG - LEFT // 'K' drop, DN - BLU - DOWN // 'A' pause UR - GRY - UPPER RIGHT
Prototype Hardware
- Raspberry Pi Pico
- Raspberry Pi Pico in Small Plastic Project Box - Breakout board
- VGAX49
- Built as VGAX49 3:3:2 8-bit build
Wiring
Pico Pin | Signal Name | Color | Dest | Pin |
---|---|---|---|---|
1 | B3 | BLU | VGAX49 | 13 |
2 | B4 | BLU | VGAX49 | 12 |
3 | GND | BRN | VGAX49 | 20 |
4 | G3 | GRN | VGAX49 | 8 |
5 | G4 | GRN | VGAX49 | 7 |
6 | G5 | GRN | VGAX49 | 6 |
7 | R2 | RED | VGAX49 | 3 |
9 | R3 | RED | VGAX49 | 2 |
10 | R4 | RED | VGAX49 | 1 |
11 | HSYNC | GRY | VGAX49 | 17 |
23 | GND | GRN | AUD | 2 |
25 | AUDIO | GRY | AUD | 3 |