I'll give it some thought.
If anyone is interested in writing something for it, we can arrange something. A skype session (live camera so you can see what your program is doing) would be an optimal way to debug your code.
The source code can be found on git here:
https://bitbucket.org/TheComet/led-matrix
All of the device specific work has been taken care of for you, this is the bare-bone code you would use:
// ----------------------------------------------------------------------
// Include files
// ----------------------------------------------------------------------
#include "demo.h"
#include "framework.h"
#include "uart.h"
static struct Demo_t Demo;
// ----------------------------------------------------------------------
// load - this is called once when the game is selected in the menu
void load( unsigned char* frameBuffer, unsigned char* playerCount )
{
// clear screen
cls();
send();
// set refresh rate
setRefreshRate( 255 );
}
// ----------------------------------------------------------------------
// process loop - this is your main loop
void processLoop( void )
{
}
// ----------------------------------------------------------------------
// process input - this is called whenever a button press occurs
void processInput( void )
{
// exit game
if( player1ButtonMenu() ) endGame();
}
Here is a list of pre-built functions you can use:
// misc
void setRefreshRate( unsigned char refresh );
void clearFrameBuffer( unsigned char* frameBuffer );
unsigned char rnd( void );
extern inline signed char sin( unsigned short angle );
extern inline void wrap( unsigned short* value, unsigned char wrap );
// player input
extern inline unsigned char player1ButtonFire( void );
extern inline unsigned char player1ButtonLeft( void );
extern inline unsigned char player1ButtonRight( void );
extern inline unsigned char player1ButtonUp( void );
extern inline unsigned char player1ButtonDown( void );
extern inline unsigned char player1ButtonMenu( void );
extern inline unsigned char player2ButtonFire( void );
extern inline unsigned char player2ButtonLeft( void );
extern inline unsigned char player2ButtonRight( void );
extern inline unsigned char player2ButtonUp( void );
extern inline unsigned char player2ButtonDown( void );
extern inline unsigned char player2ButtonMenu( void );
extern inline unsigned char player3ButtonFire( void );
extern inline unsigned char player3ButtonLeft( void );
extern inline unsigned char player3ButtonRight( void );
extern inline unsigned char player3ButtonUp( void );
extern inline unsigned char player3ButtonDown( void );
extern inline unsigned char player3ButtonMenu( void );
extern inline unsigned char player4ButtonFire( void );
extern inline unsigned char player4ButtonLeft( void );
extern inline unsigned char player4ButtonRight( void );
extern inline unsigned char player4ButtonUp( void );
extern inline unsigned char player4ButtonDown( void );
extern inline unsigned char player4ButtonMenu( void );
// drawing commands
void send( void );
void cls( void );
void dot( unsigned char* x, unsigned char* y, const unsigned short* rgb );
void blendColourBox( unsigned char* x1, unsigned char* y1, unsigned char* x2, unsigned char* y2, const unsigned short* topLeftColour, const unsigned short* bottomLeftColour, const unsigned short* topRightColour, const unsigned short* bottomRightColour );
void blendColourFillBox( unsigned char* x1, unsigned char* y1, unsigned char* x2, unsigned char* y2, const unsigned short* topLeftColour, const unsigned short* bottomLeftColour, const unsigned short* topRightColour, const unsigned short* bottomRightColour );
void box( unsigned char* x1, unsigned char* y1, unsigned char* x2, unsigned char* y2, const unsigned short* colour );
void fillBox( unsigned char* x1, unsigned char* y1, unsigned char* x2, unsigned char* y2, const unsigned short* colour );
void blendColourLine( unsigned char* x1, unsigned char* y1, unsigned char* x2, unsigned char* y2, const unsigned short* colour1, const unsigned short* colour2 );
void line( unsigned char* x1, unsigned char* y1, unsigned char* x2, unsigned char* y2, const unsigned short* colour );
void circle( unsigned char* x, unsigned char* y, unsigned char* radius, const unsigned short* colour );
void fillCircle( unsigned char* x, unsigned char* y, unsigned char* radius, const unsigned short* colour );
void blendColourFillCircle( unsigned char* x, unsigned char* y, unsigned char* radius, const unsigned short* insideColour, const unsigned short* outsideColour );
void setBlendMode( unsigned char blendMode );
Updates
I've almost finished programming a 4-player turn-based strategy game based on
Conway's Game of Life, where the goal is to engineer your own virus and try to exterminate the opposing ones.
TheComet
Taumatawhakatangihangakoauauotamateapokaiwhenuakitanatahu is a hill
Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch is a town
Chargoggagoggmanchauggagoggchaubunagungamaugg is a lake