[popcorn](apps/popcorn)| This is a movie player for 30fps 320x240 movies with 44100 stereo sound, read in a custom format from SD card... it can even play backwards :-) Sample movie file linked from [here](apps/popcorn/README.md).
[usb_sound_card](apps/usb_sound_card)| A no frills but functional USB sound card... hooked up via our old (pre TinyUSB) USB device stack. Keeping it around as it works nicely!
## Audio
Name|Description
---|---
[sine_wave_i2s](audio/sine_wave)| A simple sine wave audio output using I2S.
[sine_wave_pwm](audio/sine_wave)| A simple sine wave audio output using PWM.
[sine_wave_spdif](audio/sine_wave)| A simple sine wave audio output using S/PDIF.
## Scanout Video
In _scanout_ video, every pixel is driven by the PIO every frame, and a framebuffer is not (necessarily) used (which
[demo1](scanvideo/demo1)|  | So named because it was the first demo program written that used video.. it is a bit dated now and hails from a time where there was _much_ less RAM on the RP2040
[demo2](scanvideo/demo2)|  | A little variation on `demo1` for RP2350. Displays a RISC-V logo also; if built for RISC-V the RISC-V logo is in front; if built for Arm, it is behind
[flash_stream](scanvideo/flash_stream)|  | Streams video data out of flash fast enough to drive 640x480x60fps bitmap display
[hscroll_dma_tiles](scanvideo/hscroll_dma_tiles)|  | A horizontal scrolling test app which uses a second video plane (PIO) to overlay sprites
[mandelbrot](scanvideo/mandelbrot)|  | A mandelbrot generator using a 320x240x16 framebuffer
[mario_tiles](scanvideo/mario_tiles)|  | Confusingly named as a reference to Super Mario Kart's tiled psuedo-3D rendering. This is similar to [hscroll_dma_tiles](scanvideo/hscroll_dma_tiles) except the whole tiled scrolling area is now rotated and zoomed.
[scanvideo_minimal](scanvideo/scanvideo_minimal)|  | A very basic video output generator which generates a test pattern
[render](scanvideo/render)| | A very dated rendering library used by [demo1](scanvideo/demo1) - avoid!
[sprite](scanvideo/sprite)| | A small sprite library used by [sprite_demo](scanvideo/scanvideo_minimal)
[sprite_demo](scanvideo/sprite_demo)|  | Some bouncing Eben heads
[test_pattern](scanvideo/test_pattern)|  | Display color bars
[textmode](scanvideo/textmode)|  | Shows off chained DMA to generate scanlines out of glyph fragments via DMA/PIO
The above are intended to be used with the VGA demo board as described in [Hardware Design with RP2040](https://rptl.io/rp2040-design) however it is possible to wire your own VGA output according to the following schematic: