diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-10-08 09:47:40 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-10-11 16:37:17 -0400 |
commit | 2a471e288c16b91a7186a60b3fb84dd55a494c7a (patch) | |
tree | 3e746212c5fa69b59f61d19b6e29d11aa8a5e31b /apps/plugins/chip8.c | |
parent | 5efaa9ef8073bb216e3dcdbb4476f2fa7c672b76 (diff) | |
download | rockbox-2a471e288c16b91a7186a60b3fb84dd55a494c7a.tar.gz rockbox-2a471e288c16b91a7186a60b3fb84dd55a494c7a.zip |
New port: AIGO EROS Q / EROS K
The Q and K have a slightly different case, but the hardware under the
shell is completely identical.
These models are rebadged versions:
* Hifiwalker H2 (== Q)
* AGPTek H3 (== K)
* Surfans F20 (== K)
Other notes:
* Significant improvements in the shared Hiby-platform launcher/loader
* SD card can theoretically be hot-swapped now
* Support external USB mass storage!
* Some consolidation of Hiby-platform targets
* Some consolidation of plugin keymaps
Todo/known issues:
* Keymaps need to be gone over properly
* Convert to HAVE_SCROLLWHEEL?
Change-Id: I5a8a4f22c38a5b69392ca7c0a8ad8c4e07d9523c
Diffstat (limited to 'apps/plugins/chip8.c')
-rw-r--r-- | apps/plugins/chip8.c | 50 |
1 files changed, 17 insertions, 33 deletions
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c index bbea442d8e..84e8e709c4 100644 --- a/apps/plugins/chip8.c +++ b/apps/plugins/chip8.c | |||
@@ -57,7 +57,7 @@ | |||
57 | #ifndef EXTERN | 57 | #ifndef EXTERN |
58 | #define EXTERN extern | 58 | #define EXTERN extern |
59 | #endif | 59 | #endif |
60 | 60 | ||
61 | typedef unsigned char byte; /* sizeof(byte)==1 */ | 61 | typedef unsigned char byte; /* sizeof(byte)==1 */ |
62 | typedef unsigned short word; /* sizeof(word)>=2 */ | 62 | typedef unsigned short word; /* sizeof(word)>=2 */ |
63 | 63 | ||
@@ -390,11 +390,11 @@ static void op_system (word opcode) | |||
390 | break; | 390 | break; |
391 | case 0xfc: | 391 | case 0xfc: |
392 | scroll_left(); | 392 | scroll_left(); |
393 | break; | 393 | break; |
394 | case 0xfd: | 394 | case 0xfd: |
395 | DBG_(printf("SUPER: quit the emulator\n")); | 395 | DBG_(printf("SUPER: quit the emulator\n")); |
396 | chip8_reset(); | 396 | chip8_reset(); |
397 | break; | 397 | break; |
398 | case 0xfe: | 398 | case 0xfe: |
399 | DBG_(printf("SUPER: set CHIP-8 graphic mode\n")); | 399 | DBG_(printf("SUPER: set CHIP-8 graphic mode\n")); |
400 | memset (chip8_display,0,sizeof(chip8_display)); | 400 | memset (chip8_display,0,sizeof(chip8_display)); |
@@ -404,7 +404,7 @@ static void op_system (word opcode) | |||
404 | DBG_(printf("SUPER: set SCHIP graphic mode\n")); | 404 | DBG_(printf("SUPER: set SCHIP graphic mode\n")); |
405 | memset (chip8_display,0,sizeof(chip8_display)); | 405 | memset (chip8_display,0,sizeof(chip8_display)); |
406 | chip8_super = 1; | 406 | chip8_super = 1; |
407 | break; | 407 | break; |
408 | #endif | 408 | #endif |
409 | case 0xe0: | 409 | case 0xe0: |
410 | memset (chip8_display,0,sizeof(chip8_display)); | 410 | memset (chip8_display,0,sizeof(chip8_display)); |
@@ -553,7 +553,7 @@ static void op_sprite (word opcode) | |||
553 | x &= 64-1; | 553 | x &= 64-1; |
554 | y &= 32-1; | 554 | y &= 32-1; |
555 | q=chip8_display+y*CHIP8_WIDTH*2; | 555 | q=chip8_display+y*CHIP8_WIDTH*2; |
556 | if(n == 0) | 556 | if(n == 0) |
557 | n = 16; | 557 | n = 16; |
558 | if (n+y>32) | 558 | if (n+y>32) |
559 | n=32-y; | 559 | n=32-y; |
@@ -838,7 +838,7 @@ STATIC void chip8_execute(void) | |||
838 | --chip8_regs.delay; | 838 | --chip8_regs.delay; |
839 | if (chip8_regs.sound) | 839 | if (chip8_regs.sound) |
840 | if (--chip8_regs.sound == 0) | 840 | if (--chip8_regs.sound == 0) |
841 | chip8_sound_off(); | 841 | chip8_sound_off(); |
842 | 842 | ||
843 | /* Update the machine status */ | 843 | /* Update the machine status */ |
844 | chip8_interrupt (); | 844 | chip8_interrupt (); |
@@ -1092,7 +1092,7 @@ CONFIG_KEYPAD == SANSA_M200_PAD | |||
1092 | #define CHIP8_KEY8 BUTTON_DOWN | 1092 | #define CHIP8_KEY8 BUTTON_DOWN |
1093 | #define CHIP8_KEY9 BUTTON_VIEW | 1093 | #define CHIP8_KEY9 BUTTON_VIEW |
1094 | #define CHIP8_KEY0 BUTTON_VOL_DOWN | 1094 | #define CHIP8_KEY0 BUTTON_VOL_DOWN |
1095 | 1095 | ||
1096 | #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD | 1096 | #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD |
1097 | #define CHIP8_OFF BUTTON_POWER | 1097 | #define CHIP8_OFF BUTTON_POWER |
1098 | #define CHIP8_KEY1 BUTTON_LEFT | 1098 | #define CHIP8_KEY1 BUTTON_LEFT |
@@ -1251,23 +1251,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
1251 | #define CHIP8_KEY6 BUTTON_RIGHT | 1251 | #define CHIP8_KEY6 BUTTON_RIGHT |
1252 | #define CHIP8_KEY8 BUTTON_LEFT | 1252 | #define CHIP8_KEY8 BUTTON_LEFT |
1253 | 1253 | ||
1254 | #elif CONFIG_KEYPAD == XDUOO_X3_PAD | 1254 | #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD |
1255 | #define CHIP8_OFF BUTTON_POWER | ||
1256 | #define CHIP8_KEY2 BUTTON_HOME | ||
1257 | #define CHIP8_KEY4 BUTTON_PREV | ||
1258 | #define CHIP8_KEY5 BUTTON_PLAY | ||
1259 | #define CHIP8_KEY6 BUTTON_NEXT | ||
1260 | #define CHIP8_KEY8 BUTTON_OPTION | ||
1261 | |||
1262 | #elif CONFIG_KEYPAD == XDUOO_X3II_PAD | ||
1263 | #define CHIP8_OFF BUTTON_POWER | ||
1264 | #define CHIP8_KEY2 BUTTON_HOME | ||
1265 | #define CHIP8_KEY4 BUTTON_PREV | ||
1266 | #define CHIP8_KEY5 BUTTON_PLAY | ||
1267 | #define CHIP8_KEY6 BUTTON_NEXT | ||
1268 | #define CHIP8_KEY8 BUTTON_OPTION | ||
1269 | |||
1270 | #elif CONFIG_KEYPAD == XDUOO_X20_PAD | ||
1271 | #define CHIP8_OFF BUTTON_POWER | 1255 | #define CHIP8_OFF BUTTON_POWER |
1272 | #define CHIP8_KEY2 BUTTON_HOME | 1256 | #define CHIP8_KEY2 BUTTON_HOME |
1273 | #define CHIP8_KEY4 BUTTON_PREV | 1257 | #define CHIP8_KEY4 BUTTON_PREV |
@@ -1283,7 +1267,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
1283 | #define CHIP8_KEY6 BUTTON_NEXT | 1267 | #define CHIP8_KEY6 BUTTON_NEXT |
1284 | #define CHIP8_KEY8 BUTTON_OPTION | 1268 | #define CHIP8_KEY8 BUTTON_OPTION |
1285 | 1269 | ||
1286 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 1270 | #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD |
1287 | #define CHIP8_OFF BUTTON_POWER | 1271 | #define CHIP8_OFF BUTTON_POWER |
1288 | #define CHIP8_KEY2 BUTTON_NEXT | 1272 | #define CHIP8_KEY2 BUTTON_NEXT |
1289 | #define CHIP8_KEY4 BUTTON_HOME | 1273 | #define CHIP8_KEY4 BUTTON_HOME |
@@ -1291,12 +1275,12 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
1291 | #define CHIP8_KEY6 BUTTON_VOL_DOWN | 1275 | #define CHIP8_KEY6 BUTTON_VOL_DOWN |
1292 | #define CHIP8_KEY8 BUTTON_PREV | 1276 | #define CHIP8_KEY8 BUTTON_PREV |
1293 | 1277 | ||
1294 | #elif CONFIG_KEYPAD == IHIFI_800_PAD | 1278 | #elif CONFIG_KEYPAD == EROSQ_PAD |
1295 | #define CHIP8_OFF BUTTON_POWER | 1279 | #define CHIP8_OFF BUTTON_POWER |
1296 | #define CHIP8_KEY2 BUTTON_NEXT | 1280 | #define CHIP8_KEY2 BUTTON_NEXT |
1297 | #define CHIP8_KEY4 BUTTON_HOME | 1281 | #define CHIP8_KEY4 BUTTON_MENU |
1298 | #define CHIP8_KEY5 BUTTON_VOL_UP | 1282 | #define CHIP8_KEY5 BUTTON_PLAY |
1299 | #define CHIP8_KEY6 BUTTON_VOL_DOWN | 1283 | #define CHIP8_KEY6 BUTTON_BACK |
1300 | #define CHIP8_KEY8 BUTTON_PREV | 1284 | #define CHIP8_KEY8 BUTTON_PREV |
1301 | 1285 | ||
1302 | #else | 1286 | #else |
@@ -1342,15 +1326,15 @@ static unsigned long cycles; /* Number of update cycles (50Hz) */ | |||
1342 | /****************************************************************************/ | 1326 | /****************************************************************************/ |
1343 | /* Turn sound on */ | 1327 | /* Turn sound on */ |
1344 | /****************************************************************************/ | 1328 | /****************************************************************************/ |
1345 | static void chip8_sound_on (void) | 1329 | static void chip8_sound_on (void) |
1346 | { | 1330 | { |
1347 | } | 1331 | } |
1348 | 1332 | ||
1349 | /****************************************************************************/ | 1333 | /****************************************************************************/ |
1350 | /* Turn sound off */ | 1334 | /* Turn sound off */ |
1351 | /****************************************************************************/ | 1335 | /****************************************************************************/ |
1352 | static void chip8_sound_off (void) | 1336 | static void chip8_sound_off (void) |
1353 | { | 1337 | { |
1354 | } | 1338 | } |
1355 | 1339 | ||
1356 | /****************************************************************************/ | 1340 | /****************************************************************************/ |
@@ -1587,7 +1571,7 @@ enum plugin_status plugin_start(const void* parameter) | |||
1587 | } | 1571 | } |
1588 | else | 1572 | else |
1589 | { | 1573 | { |
1590 | filename = (char*) parameter; | 1574 | filename = (char*) parameter; |
1591 | } | 1575 | } |
1592 | 1576 | ||
1593 | /* now go ahead and have fun! */ | 1577 | /* now go ahead and have fun! */ |