Based on the Gameduino, the GamingPack transforms your MSP430 LaunchPad into a full fledged gaming console complete with audio / video output and two Nintendo controller sockets. Just hookup your computer monitor, plug in a controller and you'll be writing games in no time.
- 400x300 Pixel VGA output
- 256 16x16 Pixel simultaneous sprite images
- Up to 256 colors per sprite
- 2 Nintendo (NES) controllers
The schematic capture and PCB layout were done in CadSoft EAGLE. The PCBs were fabricated by Silver Circuits
The GamePack is designed around a Xilinx Spartan 3A 200K Gate FPGA. It implements the same sprite rendering core as the Gameduino and communicates to the LaunchPad via SPI. The FPGA bitstream configuration is stored on an external EEPROM which was programed using a FTDI FT2232D development board and Flashrom in Linux. The FPGA 1.2V internal core voltage is provided by a TI TLV70212 low drop out regulator.
A resistor DAC provides the various voltage levels for the VGA interface and audio is achieved by passing 2 channels of digital audio through a 4KHz low pass filter. An optional SPI EEPROM can be installed to store large game data such as images and level maps. Two status LEDs indicate power and SPI data transfer to the FPGA.
2 Nintendo (NES) controller sockets are included to provide a classic gaming experience. They are ideal for this project as the interface is simple and they can be easily purchased online or simply found in a box in your closet.
With only a month and a half to complete this project designing for test was important. The GamingPack includes a 10 pin header that can plug directly into a Saleae Logic Analyzer
Schematics, layout, and CadSoft EAGLE file can be found here.
Several basic examples were developed to demonstrate and show off the various functionality of the GamingPack.
sprites_256 - Demonstates the hardwares ability to draw up to 256 sprites simultaneously
palettes - Shows each of the different color palette modes
scroll - Randomly generated scrolling terrain to show off the hardwares ability to smoothly scroll backgroud images
rotate - Example program showing the different rotation and mirror options
controllers - Small program to show how to read the NES controllers
background - Simple program showing how to display a background image
random_numbers - Shows how to use random numbers and draw text
sprite_walking - Example showing to how create a smooth walking animation
Source code for these basic examples: https://github.com/bear24rw/gamepack/tree/master/code/examples/basics
The GamingPack wouldn't be a gaming pack without a few games.
Breakout / Brick Breaker
Source code for the game examples: https://github.com/bear24rw/gamepack/tree/master/code/examples/games