comparison system.c @ 2289:92449b47cce8

Integrate VGM player into main blastem binary
author Michael Pavone <pavone@retrodev.com>
date Sat, 04 Feb 2023 22:44:44 -0800
parents 1e626d0ecf9c
children 64cf80e683aa
comparison
equal deleted inserted replaced
2288:efc75ea79164 2289:92449b47cce8
1 #include <string.h> 1 #include <string.h>
2 #include "system.h" 2 #include "system.h"
3 #include "genesis.h" 3 #include "genesis.h"
4 #include "gen_player.h" 4 #include "gen_player.h"
5 #include "sms.h" 5 #include "sms.h"
6 #include "mediaplayer.h"
6 7
7 uint8_t safe_cmp(char *str, long offset, uint8_t *buffer, long filesize) 8 uint8_t safe_cmp(char *str, long offset, uint8_t *buffer, long filesize)
8 { 9 {
9 long len = strlen(str); 10 long len = strlen(str);
10 return filesize >= offset+len && !memcmp(str, buffer + offset, len); 11 return filesize >= offset+len && !memcmp(str, buffer + offset, len);
29 if (safe_cmp("BLSTEL\x02", 0, media->buffer, media->size)) { 30 if (safe_cmp("BLSTEL\x02", 0, media->buffer, media->size)) {
30 uint8_t *buffer = media->buffer; 31 uint8_t *buffer = media->buffer;
31 if (media->size > 9 && buffer[7] == 0) { 32 if (media->size > 9 && buffer[7] == 0) {
32 return buffer[8] + 1; 33 return buffer[8] + 1;
33 } 34 }
35 }
36 if (
37 safe_cmp("Vgm ", 0, media->buffer, media->size)
38 || safe_cmp("RIFF", 0, media->buffer, media->size)
39 || safe_cmp("fLaC", 0, media->buffer, media->size)) {
40 return SYSTEM_MEDIA_PLAYER;
34 } 41 }
35 42
36 43
37 //TODO: Detect Jaguar ROMs here 44 //TODO: Detect Jaguar ROMs here
38 45
79 return &(alloc_config_genesis_cdboot(media, opts, force_region))->header; 86 return &(alloc_config_genesis_cdboot(media, opts, force_region))->header;
80 #ifndef NO_Z80 87 #ifndef NO_Z80
81 case SYSTEM_SMS: 88 case SYSTEM_SMS:
82 return &(alloc_configure_sms(media, opts, force_region))->header; 89 return &(alloc_configure_sms(media, opts, force_region))->header;
83 #endif 90 #endif
91 case SYSTEM_MEDIA_PLAYER:
92 return &(alloc_media_player(media, opts))->header;
84 default: 93 default:
85 return NULL; 94 return NULL;
86 } 95 }
87 } 96 }
88 97