Mercurial > repos > blastem
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 |