Mercurial > repos > blastem
comparison system.c @ 2257:1e626d0ecf9c
WIP SG-1000/TMS9918A mode support
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 17 Dec 2022 23:32:34 -0800 |
parents | 3414a4423de1 |
children | 92449b47cce8 |
comparison
equal
deleted
inserted
replaced
2256:cbe1ba70c247 | 2257:1e626d0ecf9c |
---|---|
30 uint8_t *buffer = media->buffer; | 30 uint8_t *buffer = media->buffer; |
31 if (media->size > 9 && buffer[7] == 0) { | 31 if (media->size > 9 && buffer[7] == 0) { |
32 return buffer[8] + 1; | 32 return buffer[8] + 1; |
33 } | 33 } |
34 } | 34 } |
35 | 35 |
36 | 36 |
37 //TODO: Detect Jaguar ROMs here | 37 //TODO: Detect Jaguar ROMs here |
38 | 38 |
39 //Header based detection failed, examine filename for clues | 39 //Header based detection failed, examine filename for clues |
40 if (media->extension) { | 40 if (media->extension) { |
41 if (!strcmp("md", media->extension) || !strcmp("gen", media->extension)) { | 41 if (!strcmp("md", media->extension) || !strcmp("gen", media->extension)) { |
42 return SYSTEM_GENESIS; | 42 return SYSTEM_GENESIS; |
43 } | 43 } |
44 if (!strcmp("sms", media->extension)) { | 44 if (!strcmp("sms", media->extension) || !strcmp("sg", media->extension) || !strcmp("gg", media->extension)) { |
45 return SYSTEM_SMS; | 45 return SYSTEM_SMS; |
46 } | 46 } |
47 if (!strcmp("j64", media->extension)) { | 47 if (!strcmp("j64", media->extension)) { |
48 return SYSTEM_JAGUAR; | 48 return SYSTEM_JAGUAR; |
49 } | 49 } |
50 } | 50 } |
51 | 51 |
52 //More certain checks failed, look for a valid 68K reset vector | 52 //More certain checks failed, look for a valid 68K reset vector |
53 if (media->size >= 8) { | 53 if (media->size >= 8) { |
54 char *rom = media->buffer; | 54 char *rom = media->buffer; |
55 uint32_t reset = rom[5] << 16 | rom[6] << 8 | rom[7]; | 55 uint32_t reset = rom[5] << 16 | rom[6] << 8 | rom[7]; |
56 if (!(reset & 1) && reset < media->size) { | 56 if (!(reset & 1) && reset < media->size) { |