comparison romdb.c @ 2041:638eb2d25696 mame_interp

Merge from default
author Michael Pavone <pavone@retrodev.com>
date Thu, 05 Aug 2021 09:29:33 -0700
parents 8b2ef428d1aa
children b119e0de9a70 3748a2a8a4b7
comparison
equal deleted inserted replaced
1984:0d5f88e53dca 2041:638eb2d25696
30 { 30 {
31 if (save_type == SAVE_I2C) { 31 if (save_type == SAVE_I2C) {
32 return "EEPROM"; 32 return "EEPROM";
33 } else if(save_type == SAVE_NOR) { 33 } else if(save_type == SAVE_NOR) {
34 return "NOR Flash"; 34 return "NOR Flash";
35 } else if(save_type == SAVE_HBPT) {
36 return "Heartbeat Personal Trainer";
35 } 37 }
36 return "SRAM"; 38 return "SRAM";
37 } 39 }
38 40
39 tern_node *load_rom_db() 41 tern_node *load_rom_db()
362 364
363 if (info->save_type == RAM_FLAG_ODD) { 365 if (info->save_type == RAM_FLAG_ODD) {
364 info->map[1].flags |= MMAP_ONLY_ODD; 366 info->map[1].flags |= MMAP_ONLY_ODD;
365 } else if (info->save_type == RAM_FLAG_EVEN) { 367 } else if (info->save_type == RAM_FLAG_EVEN) {
366 info->map[1].flags |= MMAP_ONLY_EVEN; 368 info->map[1].flags |= MMAP_ONLY_EVEN;
369 } else {
370 info->map[1].flags |= MMAP_CODE;
367 } 371 }
368 info->map[1].buffer = info->save_buffer; 372 info->map[1].buffer = info->save_buffer;
369 } else { 373 } else {
370 //Assume the standard Sega mapper 374 //Assume the standard Sega mapper
371 info->mapper_type = MAPPER_SEGA_SRAM; 375 info->mapper_type = MAPPER_SEGA_SRAM;
715 map->flags = MMAP_READ | MMAP_WRITE; 719 map->flags = MMAP_READ | MMAP_WRITE;
716 if (state->info->save_type == RAM_FLAG_ODD) { 720 if (state->info->save_type == RAM_FLAG_ODD) {
717 map->flags |= MMAP_ONLY_ODD; 721 map->flags |= MMAP_ONLY_ODD;
718 } else if(state->info->save_type == RAM_FLAG_EVEN) { 722 } else if(state->info->save_type == RAM_FLAG_EVEN) {
719 map->flags |= MMAP_ONLY_EVEN; 723 map->flags |= MMAP_ONLY_EVEN;
724 } else {
725 map->flags |= MMAP_CODE;
720 } 726 }
721 map->mask = calc_mask(state->info->save_size, start, end); 727 map->mask = calc_mask(state->info->save_size, start, end);
722 } else if (!strcmp(dtype, "RAM")) { 728 } else if (!strcmp(dtype, "RAM")) {
723 uint32_t size = strtol(tern_find_ptr_default(node, "size", "0"), NULL, 16); 729 uint32_t size = strtol(tern_find_ptr_default(node, "size", "0"), NULL, 16);
724 if (!size || size > map->end - map->start) { 730 if (!size || size > map->end - map->start) {
984 tern_node *device_overrides = tern_find_node(entry, "device_overrides"); 990 tern_node *device_overrides = tern_find_node(entry, "device_overrides");
985 if (device_overrides) { 991 if (device_overrides) {
986 info.port1_override = tern_find_ptr(device_overrides, "1"); 992 info.port1_override = tern_find_ptr(device_overrides, "1");
987 info.port2_override = tern_find_ptr(device_overrides, "2"); 993 info.port2_override = tern_find_ptr(device_overrides, "2");
988 info.ext_override = tern_find_ptr(device_overrides, "ext"); 994 info.ext_override = tern_find_ptr(device_overrides, "ext");
995 if (
996 info.save_type == SAVE_NONE
997 && (
998 (info.port1_override && startswith(info.port1_override, "heartbeat_trainer."))
999 || (info.port2_override && startswith(info.port2_override, "heartbeat_trainer."))
1000 || (info.ext_override && startswith(info.ext_override, "heartbeat_trainer."))
1001 )
1002 ) {
1003 info.save_type = SAVE_HBPT;
1004 info.save_size = atoi(tern_find_path_default(entry, "HeartbeatTrainer\0size\0", (tern_val){.ptrval="512"}, TVAL_PTR).ptrval);
1005 info.save_buffer = calloc(info.save_size + 5 + 8, 1);
1006 memset(info.save_buffer, 0xFF, info.save_size);
1007 }
989 } else { 1008 } else {
990 info.port1_override = info.port2_override = info.ext_override = NULL; 1009 info.port1_override = info.port2_override = info.ext_override = NULL;
991 } 1010 }
992 info.mouse_mode = tern_find_ptr(entry, "mouse_mode"); 1011 info.mouse_mode = tern_find_ptr(entry, "mouse_mode");
993 1012