Project Name: SKPIC32-based 256-color Video Experimental Game
Author/Designer: YH
Project Description: Primitive 256-color video generation using double-buffering, at 256x240 resolution (Nintendo Entertainment System uses that for the screen size). The video DAC at the end of the PMP Data port is using the format RRRGGGBB.
Pixels are pumped through the Parallel Master Port using DMA (Direct Memory Access) module.
Due to a port and some graphical changes, the hit-detection scheme in the game is faulty. It is just for a showcase and not an actual playable demo. Another different game will be written.
Sound module will be added later. This is an experiment to prove that the a combination of PMP and DMA can also drive VGA signals, apart from LCD modules.
System (SKPIC32) is run at 80MHz, and 80MHz peripheral bus. Unfortunately, even with the double buffering, minor screen tearing is present because the main bus is very occupied. (It could be also noise as many jumper wires are used) Some other advanced microcontrollers provide different bus and direct RAM connections to the video system. (That's also why you have those AGP and PCIE in your computers too)
Photo:
Video:
Compiler: MPLAB X IDE (latest), MPLAB XC32 v1.00.
Source code: Attached.
Schematics:
References:
1.) Programming 32-Bit Microcontrollers in C, Lucio di Jasio.
2.) http://www.zipfelmaus.com/nokia6100lcd_en/ (BMP to RGB8 converter)