comparison system.c @ 1503:a763523dadf4 segacd

Added code for initializing a combined Genesis + Sega CD system when a Sega CD ISO is loaded
author Michael Pavone <pavone@retrodev.com>
date Wed, 13 Dec 2017 09:44:41 -0800
parents aee2177a1630
children 5dacaef602a7
comparison
equal deleted inserted replaced
1502:2564b6ba2e12 1503:a763523dadf4
10 } 10 }
11 11
12 system_type detect_system_type(system_media *media) 12 system_type detect_system_type(system_media *media)
13 { 13 {
14 if (safe_cmp("SEGA", 0x100, media->buffer, media->size)) { 14 if (safe_cmp("SEGA", 0x100, media->buffer, media->size)) {
15 //TODO: Differentiate between vanilla Genesis and Sega CD/32X games 15 //TODO: support other bootable identifiers
16 if (safe_cmp("SEGADISCSYSTEM", 0, media->buffer, media->size)) {
17 return SYSTEM_SEGACD;
18 }
19 //TODO: Differentiate between vanilla Genesis and 32X games
16 return SYSTEM_GENESIS; 20 return SYSTEM_GENESIS;
17 } 21 }
18 if (safe_cmp("TMR SEGA", 0x1FF0, media->buffer, media->size) 22 if (safe_cmp("TMR SEGA", 0x1FF0, media->buffer, media->size)
19 || safe_cmp("TMR SEGA", 0x3FF0, media->buffer, media->size) 23 || safe_cmp("TMR SEGA", 0x3FF0, media->buffer, media->size)
20 || safe_cmp("TMR SEGA", 0x7FF0, media->buffer, media->size) 24 || safe_cmp("TMR SEGA", 0x7FF0, media->buffer, media->size)
58 } 62 }
59 switch (stype) 63 switch (stype)
60 { 64 {
61 case SYSTEM_GENESIS: 65 case SYSTEM_GENESIS:
62 return &(alloc_config_genesis(media->buffer, media->size, lock_on, lock_on_size, opts, force_region, info_out))->header; 66 return &(alloc_config_genesis(media->buffer, media->size, lock_on, lock_on_size, opts, force_region, info_out))->header;
67 case SYSTEM_SEGACD:
68 return &(alloc_config_genesis_cdboot(media, opts, force_region, info_out))->header;
63 #ifndef NO_Z80 69 #ifndef NO_Z80
64 case SYSTEM_SMS: 70 case SYSTEM_SMS:
65 return &(alloc_configure_sms(media, opts, force_region, info_out))->header; 71 return &(alloc_configure_sms(media, opts, force_region, info_out))->header;
66 #endif 72 #endif
67 default: 73 default: