Emulation of the 1970's Chip-8 machine. The emulator has 7 games that are unmodified from the original Chip-8 format.

Dependencies:   mbed

Committer:
taylorza
Date:
Sun Feb 08 01:58:57 2015 +0000
Revision:
0:bc3f11b1b41f
Chip-8 Emulator

Who changed what in which revision?

UserRevisionLine numberNew contents of line
taylorza 0:bc3f11b1b41f 1 ///////////////////////////////////////////////////////////////////////////////
taylorza 0:bc3f11b1b41f 2 // LCD_ST7735 - Driver for ST7735 LCD display controller
taylorza 0:bc3f11b1b41f 3 // Author: Chris Taylor (taylorza)
taylorza 0:bc3f11b1b41f 4 // Font: Standard LCD font by GHI Electronics
taylorza 0:bc3f11b1b41f 5
taylorza 0:bc3f11b1b41f 6 #ifndef __FONT_OEM_H__
taylorza 0:bc3f11b1b41f 7 #define __FONT_OEM_H__
taylorza 0:bc3f11b1b41f 8
taylorza 0:bc3f11b1b41f 9 const uint8_t font_oem[] =
taylorza 0:bc3f11b1b41f 10 {
taylorza 0:bc3f11b1b41f 11 0x06, 0x07, 0x20, 0x00, 0x00, 0x00, 0x01, // Width, Height, FirstChar, left padding, right padding, top padding, bottom padding
taylorza 0:bc3f11b1b41f 12 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Space */
taylorza 0:bc3f11b1b41f 13 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x20, /* ! */
taylorza 0:bc3f11b1b41f 14 0x50, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, /* " */
taylorza 0:bc3f11b1b41f 15 0x50, 0x50, 0xf8, 0x50, 0xf8, 0x50, 0x50, /* # */
taylorza 0:bc3f11b1b41f 16 0x20, 0x78, 0xa0, 0x70, 0x28, 0xf0, 0x20, /* $ */
taylorza 0:bc3f11b1b41f 17 0xc0, 0xc8, 0x10, 0x20, 0x40, 0x98, 0x18, /* % */
taylorza 0:bc3f11b1b41f 18 0x60, 0x90, 0xa0, 0x40, 0xa0, 0x98, 0x60, /* & */
taylorza 0:bc3f11b1b41f 19 0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, /* ' */
taylorza 0:bc3f11b1b41f 20 0x10, 0x20, 0x40, 0x40, 0x40, 0x20, 0x10, /* ( */
taylorza 0:bc3f11b1b41f 21 0x40, 0x20, 0x10, 0x10, 0x10, 0x20, 0x40, /* ) */
taylorza 0:bc3f11b1b41f 22 0x00, 0x20, 0xa8, 0x70, 0xa8, 0x20, 0x00, /* * */
taylorza 0:bc3f11b1b41f 23 0x00, 0x20, 0x20, 0xf8, 0x20, 0x20, 0x00, /* + */
taylorza 0:bc3f11b1b41f 24 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x80, /* , */
taylorza 0:bc3f11b1b41f 25 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, /* - */
taylorza 0:bc3f11b1b41f 26 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, /* . */
taylorza 0:bc3f11b1b41f 27 0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, /* / */
taylorza 0:bc3f11b1b41f 28 0x70, 0x88, 0x98, 0xa8, 0xc8, 0x88, 0x70, /* 0 */
taylorza 0:bc3f11b1b41f 29 0x20, 0x60, 0x20, 0x20, 0x20, 0x20, 0x70, /* 1 */
taylorza 0:bc3f11b1b41f 30 0x70, 0x88, 0x08, 0x10, 0x20, 0x40, 0xf8, /* 2 */
taylorza 0:bc3f11b1b41f 31 0xf8, 0x10, 0x20, 0x10, 0x08, 0x88, 0x70, /* 3 */
taylorza 0:bc3f11b1b41f 32 0x10, 0x30, 0x50, 0x90, 0xf8, 0x10, 0x10, /* 4 */
taylorza 0:bc3f11b1b41f 33 0xf8, 0x80, 0xf0, 0x08, 0x08, 0x88, 0x70, /* 5 */
taylorza 0:bc3f11b1b41f 34 0x30, 0x40, 0x80, 0xf0, 0x88, 0x88, 0x70, /* 6 */
taylorza 0:bc3f11b1b41f 35 0xf8, 0x08, 0x10, 0x20, 0x40, 0x40, 0x40, /* 7 */
taylorza 0:bc3f11b1b41f 36 0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x70, /* 8 */
taylorza 0:bc3f11b1b41f 37 0x70, 0x88, 0x88, 0x78, 0x08, 0x10, 0x60, /* 9 */
taylorza 0:bc3f11b1b41f 38 0x00, 0x60, 0x60, 0x00, 0x60, 0x60, 0x00, /* : */
taylorza 0:bc3f11b1b41f 39 0x00, 0x60, 0x60, 0x00, 0x60, 0x20, 0x40, /* ; */
taylorza 0:bc3f11b1b41f 40 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, /* < */
taylorza 0:bc3f11b1b41f 41 0x00, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x00, /* = */
taylorza 0:bc3f11b1b41f 42 0x40, 0x20, 0x10, 0x08, 0x10, 0x20, 0x40, /* > */
taylorza 0:bc3f11b1b41f 43 0x70, 0x88, 0x08, 0x10, 0x20, 0x00, 0x20, /* ? */
taylorza 0:bc3f11b1b41f 44 0x70, 0x88, 0xb8, 0xa8, 0xb8, 0x80, 0x70, /* @ */
taylorza 0:bc3f11b1b41f 45 0x70, 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, /* A */
taylorza 0:bc3f11b1b41f 46 0xf0, 0x88, 0x88, 0xf0, 0x88, 0x88, 0xf0, /* B */
taylorza 0:bc3f11b1b41f 47 0x70, 0x88, 0x80, 0x80, 0x80, 0x88, 0x70, /* C */
taylorza 0:bc3f11b1b41f 48 0xe0, 0x90, 0x88, 0x88, 0x88, 0x90, 0xe0, /* D */
taylorza 0:bc3f11b1b41f 49 0xf8, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xf8, /* E */
taylorza 0:bc3f11b1b41f 50 0xf8, 0x80, 0x80, 0xf0, 0x80, 0x80, 0x80, /* F */
taylorza 0:bc3f11b1b41f 51 0x70, 0x88, 0x80, 0xb8, 0x88, 0x88, 0x78, /* G */
taylorza 0:bc3f11b1b41f 52 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, /* H */
taylorza 0:bc3f11b1b41f 53 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, /* I */
taylorza 0:bc3f11b1b41f 54 0x38, 0x10, 0x10, 0x10, 0x10, 0x90, 0x60, /* J */
taylorza 0:bc3f11b1b41f 55 0x88, 0x90, 0xa0, 0xc0, 0xa0, 0x90, 0x88, /* K */
taylorza 0:bc3f11b1b41f 56 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf8, /* L */
taylorza 0:bc3f11b1b41f 57 0x88, 0xd8, 0xa8, 0xa8, 0x88, 0x88, 0x88, /* M */
taylorza 0:bc3f11b1b41f 58 0x88, 0x88, 0xc8, 0xa8, 0x98, 0x88, 0x88, /* N */
taylorza 0:bc3f11b1b41f 59 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, /* O */
taylorza 0:bc3f11b1b41f 60 0xf0, 0x88, 0x88, 0xf0, 0x80, 0x80, 0x80, /* P */
taylorza 0:bc3f11b1b41f 61 0x70, 0x88, 0x88, 0x88, 0xa8, 0x90, 0x68, /* Q */
taylorza 0:bc3f11b1b41f 62 0xf0, 0x88, 0x88, 0xf0, 0xa0, 0x90, 0x88, /* R */
taylorza 0:bc3f11b1b41f 63 0x70, 0x88, 0x80, 0x70, 0x08, 0x88, 0x70, /* S */
taylorza 0:bc3f11b1b41f 64 0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /* T */
taylorza 0:bc3f11b1b41f 65 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, /* U */
taylorza 0:bc3f11b1b41f 66 0x88, 0x88, 0x88, 0x88, 0x88, 0x50, 0x20, /* V */
taylorza 0:bc3f11b1b41f 67 0x88, 0x88, 0x88, 0xa8, 0xa8, 0xa8, 0x50, /* W */
taylorza 0:bc3f11b1b41f 68 0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88, /* X */
taylorza 0:bc3f11b1b41f 69 0x88, 0x88, 0x88, 0x50, 0x20, 0x20, 0x20, /* Y */
taylorza 0:bc3f11b1b41f 70 0xf8, 0x08, 0x10, 0x20, 0x40, 0x80, 0xf8, /* Z */
taylorza 0:bc3f11b1b41f 71 0x70, 0x40, 0x40, 0x40, 0x40, 0x40, 0x70, /* [ */
taylorza 0:bc3f11b1b41f 72 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x00, /* \ */
taylorza 0:bc3f11b1b41f 73 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x70, /* ] */
taylorza 0:bc3f11b1b41f 74 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, /* ^ */
taylorza 0:bc3f11b1b41f 75 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, /* _ */
taylorza 0:bc3f11b1b41f 76 0x30, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, /* ` */
taylorza 0:bc3f11b1b41f 77 0x00, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, /* a */
taylorza 0:bc3f11b1b41f 78 0x80, 0x80, 0xf0, 0x88, 0x88, 0x88, 0xf0, /* b */
taylorza 0:bc3f11b1b41f 79 0x00, 0x00, 0x78, 0x80, 0x80, 0x80, 0x78, /* c */
taylorza 0:bc3f11b1b41f 80 0x08, 0x08, 0x78, 0x88, 0x88, 0x88, 0x78, /* d */
taylorza 0:bc3f11b1b41f 81 0x00, 0x00, 0x70, 0x88, 0xf8, 0x80, 0x70, /* e */
taylorza 0:bc3f11b1b41f 82 0x18, 0x20, 0xf8, 0x20, 0x20, 0x20, 0x20, /* f */
taylorza 0:bc3f11b1b41f 83 0x00, 0x00, 0x78, 0x88, 0x78, 0x08, 0x70, /* g */
taylorza 0:bc3f11b1b41f 84 0x80, 0x80, 0xb0, 0xc8, 0x88, 0x88, 0x88, /* h */
taylorza 0:bc3f11b1b41f 85 0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, /* i */
taylorza 0:bc3f11b1b41f 86 0x10, 0x00, 0x30, 0x10, 0x10, 0x90, 0x60, /* j */
taylorza 0:bc3f11b1b41f 87 0x80, 0x80, 0x90, 0xa0, 0xc0, 0xa0, 0x90, /* k */
taylorza 0:bc3f11b1b41f 88 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, /* l */
taylorza 0:bc3f11b1b41f 89 0x00, 0x00, 0xf0, 0xa8, 0xa8, 0xa8, 0xa8, /* m */
taylorza 0:bc3f11b1b41f 90 0x00, 0x00, 0xb0, 0xc8, 0x88, 0x88, 0x88, /* n */
taylorza 0:bc3f11b1b41f 91 0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, /* o */
taylorza 0:bc3f11b1b41f 92 0x00, 0x00, 0xf0, 0x88, 0xf0, 0x80, 0x80, /* p */
taylorza 0:bc3f11b1b41f 93 0x00, 0x00, 0x78, 0x88, 0x78, 0x08, 0x08, /* q */
taylorza 0:bc3f11b1b41f 94 0x00, 0x00, 0xb0, 0xc0, 0x80, 0x80, 0x80, /* r */
taylorza 0:bc3f11b1b41f 95 0x00, 0x00, 0x78, 0x80, 0x70, 0x08, 0xf0, /* s */
taylorza 0:bc3f11b1b41f 96 0x20, 0x20, 0xf8, 0x20, 0x20, 0x20, 0x18, /* t */
taylorza 0:bc3f11b1b41f 97 0x00, 0x00, 0x88, 0x88, 0x88, 0x98, 0x68, /* u */
taylorza 0:bc3f11b1b41f 98 0x00, 0x00, 0x88, 0x88, 0x88, 0x50, 0x20, /* v */
taylorza 0:bc3f11b1b41f 99 0x00, 0x00, 0x88, 0x88, 0xa8, 0xa8, 0x50, /* w */
taylorza 0:bc3f11b1b41f 100 0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, /* x */
taylorza 0:bc3f11b1b41f 101 0x00, 0x00, 0x88, 0x88, 0x78, 0x08, 0x70, /* y */
taylorza 0:bc3f11b1b41f 102 0x00, 0x00, 0xf8, 0x10, 0x20, 0x40, 0xf8, /* z */
taylorza 0:bc3f11b1b41f 103 0x30, 0x40, 0x40, 0x80, 0x40, 0x40, 0x30, /* { */
taylorza 0:bc3f11b1b41f 104 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, /* | */
taylorza 0:bc3f11b1b41f 105 0x60, 0x10, 0x10, 0x08, 0x10, 0x10, 0x60, /* } */
taylorza 0:bc3f11b1b41f 106 0x00, 0x20, 0x10, 0xf8, 0x10, 0x20, 0x00, /* ~ */
taylorza 0:bc3f11b1b41f 107 };
taylorza 0:bc3f11b1b41f 108 #endif // __FONT_OEM_H__