Mercurial > repos > blastem
comparison system.c @ 2428:65c2e4d990cc
WIP Pico emulation
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 03 Feb 2024 18:32:41 -0800 |
parents | 64cf80e683aa |
children | bed4d3db8a3f |
comparison
equal
deleted
inserted
replaced
2427:8b948cf23557 | 2428:65c2e4d990cc |
---|---|
12 return filesize >= offset+len && !memcmp(str, buffer + offset, len); | 12 return filesize >= offset+len && !memcmp(str, buffer + offset, len); |
13 } | 13 } |
14 | 14 |
15 system_type detect_system_type(system_media *media) | 15 system_type detect_system_type(system_media *media) |
16 { | 16 { |
17 static char *pico_names[] = { | |
18 "SEGA PICO", "SEGATOYS PICO", "SEGA TOYS PICO", "SAMSUNG PICO", | |
19 "SEGA IAC", "IMA IKUNOUJYUKU", "IMA IKUNOJYUKU" | |
20 }; | |
21 static const int num_pico = sizeof(pico_names)/sizeof(*pico_names); | |
22 for (int i = 0; i < num_pico; i++) { | |
23 if (safe_cmp(pico_names[i], 0x100, media->buffer, media->size)) { | |
24 return SYSTEM_PICO; | |
25 } | |
26 } | |
17 if (safe_cmp("SEGA", 0x100, media->buffer, media->size)) { | 27 if (safe_cmp("SEGA", 0x100, media->buffer, media->size)) { |
18 //TODO: support other bootable identifiers | 28 //TODO: support other bootable identifiers |
19 if (safe_cmp("SEGADISCSYSTEM", 0, media->buffer, media->size)) { | 29 if (safe_cmp("SEGADISCSYSTEM", 0, media->buffer, media->size)) { |
20 return SYSTEM_SEGACD; | 30 return SYSTEM_SEGACD; |
21 } | 31 } |
103 case SYSTEM_COLECOVISION: | 113 case SYSTEM_COLECOVISION: |
104 return &(alloc_configure_coleco(media))->header; | 114 return &(alloc_configure_coleco(media))->header; |
105 #endif | 115 #endif |
106 case SYSTEM_MEDIA_PLAYER: | 116 case SYSTEM_MEDIA_PLAYER: |
107 return &(alloc_media_player(media, opts))->header; | 117 return &(alloc_media_player(media, opts))->header; |
118 case SYSTEM_PICO: | |
119 return &(alloc_config_pico(media->buffer, media->size, lock_on, lock_on_size, opts, force_region))->header; | |
108 default: | 120 default: |
109 return NULL; | 121 return NULL; |
110 } | 122 } |
111 } | 123 } |
112 | 124 |