Mercurial > repos > blastem
comparison system.c @ 2459:cb62730d5c99
Initial work on Copera emulation
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 21 Feb 2024 23:42:19 -0800 |
parents | 9da3de58410d |
children | 8cf7cadc17ee |
comparison
equal
deleted
inserted
replaced
2458:09c9d2c6bac0 | 2459:cb62730d5c99 |
---|---|
38 if (safe_cmp("TMR SEGA", 0x1FF0, media->buffer, media->size) | 38 if (safe_cmp("TMR SEGA", 0x1FF0, media->buffer, media->size) |
39 || safe_cmp("TMR SEGA", 0x3FF0, media->buffer, media->size) | 39 || safe_cmp("TMR SEGA", 0x3FF0, media->buffer, media->size) |
40 || safe_cmp("TMR SEGA", 0x7FF0, media->buffer, media->size) | 40 || safe_cmp("TMR SEGA", 0x7FF0, media->buffer, media->size) |
41 ) { | 41 ) { |
42 return SYSTEM_SMS; | 42 return SYSTEM_SMS; |
43 } | |
44 if (media->size > 400) { | |
45 uint8_t *buffer = media->buffer; | |
46 if (!memcmp(buffer + 4, "\x00\x00\x04\x00", 4) && (buffer[0x80] == 0 || buffer[0x80] == 0xFF)) { | |
47 int i = 0x81; | |
48 for(; i < 0x400; i++) | |
49 { | |
50 if (buffer[i] != buffer[0x80]) { | |
51 break; | |
52 } | |
53 } | |
54 if (i == 0x400) { | |
55 return SYSTEM_COPERA; | |
56 } | |
57 } | |
43 } | 58 } |
44 if (safe_cmp("BLSTEL\x02", 0, media->buffer, media->size)) { | 59 if (safe_cmp("BLSTEL\x02", 0, media->buffer, media->size)) { |
45 uint8_t *buffer = media->buffer; | 60 uint8_t *buffer = media->buffer; |
46 if (media->size > 9 && buffer[7] == 0) { | 61 if (media->size > 9 && buffer[7] == 0) { |
47 return buffer[8] + 1; | 62 return buffer[8] + 1; |
117 return &(alloc_configure_coleco(media))->header; | 132 return &(alloc_configure_coleco(media))->header; |
118 #endif | 133 #endif |
119 case SYSTEM_MEDIA_PLAYER: | 134 case SYSTEM_MEDIA_PLAYER: |
120 return &(alloc_media_player(media, opts))->header; | 135 return &(alloc_media_player(media, opts))->header; |
121 case SYSTEM_PICO: | 136 case SYSTEM_PICO: |
122 return &(alloc_config_pico(media->buffer, media->size, lock_on, lock_on_size, opts, force_region))->header; | 137 case SYSTEM_COPERA: |
138 return &(alloc_config_pico(media->buffer, media->size, lock_on, lock_on_size, opts, force_region, stype))->header; | |
123 default: | 139 default: |
124 return NULL; | 140 return NULL; |
125 } | 141 } |
126 } | 142 } |
127 | 143 |