comparison romdb.c @ 2054:8ee7ecbf3f21 segacd

Implement enough of Sega CD gate array and Sub CPU to pass Sik's Mode 1 test ROM
author Michael Pavone <pavone@retrodev.com>
date Tue, 18 Jan 2022 00:03:50 -0800
parents 3414a4423de1
children 0407d812cb4a
comparison
equal deleted inserted replaced
2053:3414a4423de1 2054:8ee7ecbf3f21
473 info.is_save_lock_on = 0; 473 info.is_save_lock_on = 0;
474 info.rom = rom; 474 info.rom = rom;
475 info.rom_size = rom_size; 475 info.rom_size = rom_size;
476 add_memmap_header(&info, rom, rom_size, base_map, base_chunks); 476 add_memmap_header(&info, rom, rom_size, base_map, base_chunks);
477 info.port1_override = info.port2_override = info.ext_override = info.mouse_mode = NULL; 477 info.port1_override = info.port2_override = info.ext_override = info.mouse_mode = NULL;
478 info.wants_cd = 0;
479 for (uint32_t offset = 0x190; offset < rom_size && offset < 0x1A0; offset++)
480 {
481 if (rom[offset] == 'F') {
482 // probably a codemasters game with a garbage header
483 break;
484 }
485 if (rom[offset] == 'C') {
486 info.wants_cd = 1;
487 break;
488 }
489 }
490
478 return info; 491 return info;
479 } 492 }
480 493
481 typedef struct { 494 typedef struct {
482 rom_info *info; 495 rom_info *info;
1053 } 1066 }
1054 } else { 1067 } else {
1055 info.port1_override = info.port2_override = info.ext_override = NULL; 1068 info.port1_override = info.port2_override = info.ext_override = NULL;
1056 } 1069 }
1057 info.mouse_mode = tern_find_ptr(entry, "mouse_mode"); 1070 info.mouse_mode = tern_find_ptr(entry, "mouse_mode");
1071 info.wants_cd = !strcmp(tern_find_ptr_default(entry, "wants_cd", "no"), "yes");
1058 1072
1059 return info; 1073 return info;
1060 } 1074 }