The NVR name is now obtained from the selected machine BIOS type if applicable.

This commit is contained in:
OBattler
2025-02-13 00:45:10 +01:00
parent 4806519388
commit 187a1ca416
11 changed files with 40 additions and 15 deletions

View File

@@ -457,7 +457,7 @@ delete_nvr_file(uint8_t flash)
int c;
/* Set up the NVR file's name. */
c = strlen(machine_get_internal_name()) + 5;
c = strlen(machine_get_nvr_name()) + 5;
fn = (char *) malloc(c + 1);
if (fn == NULL)
@@ -465,9 +465,9 @@ delete_nvr_file(uint8_t flash)
flash ? "BIOS flash" : "CMOS");
if (flash)
sprintf(fn, "%s.bin", machine_get_internal_name());
sprintf(fn, "%s.bin", machine_get_nvr_name());
else
sprintf(fn, "%s.nvr", machine_get_internal_name());
sprintf(fn, "%s.nvr", machine_get_nvr_name());
remove(nvr_path(fn));

View File

@@ -1287,9 +1287,9 @@ sis_5513_pci_to_isa_init(UNUSED(const device_t *info))
acpi_set_nvr(dev->sis->acpi, dev->nvr);
/* Set up the NVR file's name. */
c = strlen(machine_get_internal_name()) + 9;
c = strlen(machine_get_nvr_name()) + 9;
dev->fn = (char *) malloc(c + 1);
sprintf(dev->fn, "%s_apc.nvr", machine_get_internal_name());
sprintf(dev->fn, "%s_apc.nvr", machine_get_nvr_name());
fp = nvr_fopen(dev->fn, "rb");

View File

@@ -102,9 +102,9 @@ lm78_log(const char *fmt, ...)
void
lm78_nvram(lm78_t *dev, uint8_t save)
{
size_t l = strlen(machine_get_internal_name_ex(machine)) + 14;
size_t l = strlen(machine_get_nvr_name_ex(machine)) + 14;
char *nvr_path = (char *) malloc(l);
sprintf(nvr_path, "%s_as99127f.nvr", machine_get_internal_name_ex(machine));
sprintf(nvr_path, "%s_as99127f.nvr", machine_get_nvr_name_ex(machine));
FILE *fp = nvr_fopen(nvr_path, save ? "wb" : "rb");
if (fp) {

View File

@@ -361,6 +361,7 @@ extern int machine_available(int m);
extern const char *machine_getname(void);
extern const char *machine_getname_ex(int m);
extern const char *machine_get_internal_name(void);
extern const char *machine_get_nvr_name(void);
extern int machine_get_machine_from_internal_name(const char *s);
extern void machine_init(void);
#ifdef EMU_DEVICE_H
@@ -373,6 +374,7 @@ extern const device_t *machine_get_snd_device(int m);
extern const device_t *machine_get_net_device(int m);
#endif
extern const char *machine_get_internal_name_ex(int m);
extern const char *machine_get_nvr_name_ex(int m);
extern int machine_get_nvrmask(int m);
extern int machine_has_flags(int m, int flags);
extern int machine_has_bus(int m, int bus_flags);

View File

@@ -696,7 +696,7 @@ static const device_config_t pb450_config[] = {
.file_filter = "",
.spinner = { 0 },
.bios = {
{ .name = "PCI 1.0A", .internal_name = "pci10a", .bios_type = BIOS_NORMAL,
{ .name = "PCI 1.0A", .internal_name = "pb450" /*"pci10a"*/, .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pb450/OPTI802.bin", "" } },
{ .name = "PNP 1.1A", .internal_name = "pnp11a", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 131072, .files = { "roms/machines/pb450/PNP11A.bin", "" } },

View File

@@ -16565,3 +16565,26 @@ machine_is_sony(void)
{
return (!strcmp(machines[machine].internal_name, "pcv90"));
}
const char *
machine_get_nvr_name_ex(int m)
{
const char *ret = machines[m].internal_name;
const device_t *dev = machine_get_device(m);
if (dev != NULL) {
device_context(dev);
const char *bios = device_get_config_string("bios");
if ((bios != NULL) && (strcmp(bios, "") != 0))
ret = bios;
device_context_restore();
}
return ret;
}
const char *
machine_get_nvr_name(void)
{
return machine_get_nvr_name_ex(machine);
}

View File

@@ -194,7 +194,7 @@ catalyst_flash_init(UNUSED(const device_t *info))
dev = calloc(1, sizeof(flash_t));
sprintf(flash_path, "%s.bin", machine_get_internal_name_ex(machine));
sprintf(flash_path, "%s.bin", machine_get_nvr_name_ex(machine));
mem_mapping_disable(&bios_mapping);
mem_mapping_disable(&bios_high_mapping);

View File

@@ -353,7 +353,7 @@ intel_flash_init(const device_t *info)
dev = calloc(1, sizeof(flash_t));
sprintf(flash_path, "%s.bin", machine_get_internal_name_ex(machine));
sprintf(flash_path, "%s.bin", machine_get_nvr_name_ex(machine));
dev->flags = info->local & 0xff;

View File

@@ -507,7 +507,7 @@ sst_init(const device_t *info)
FILE *fp;
sst_t *dev = calloc(1, sizeof(sst_t));
sprintf(flash_path, "%s.bin", machine_get_internal_name_ex(machine));
sprintf(flash_path, "%s.bin", machine_get_nvr_name_ex(machine));
mem_mapping_disable(&bios_mapping);
mem_mapping_disable(&bios_high_mapping);

View File

@@ -161,9 +161,9 @@ nvr_init(nvr_t *nvr)
int c;
/* Set up the NVR file's name. */
c = strlen(machine_get_internal_name()) + 5;
c = strlen(machine_get_nvr_name()) + 5;
nvr->fn = (char *) malloc(c + 1);
sprintf(nvr->fn, "%s.nvr", machine_get_internal_name());
sprintf(nvr->fn, "%s.nvr", machine_get_nvr_name());
/* Initialize the internal clock as needed. */
memset(&intclk, 0x00, sizeof(intclk));

View File

@@ -122,9 +122,9 @@ ps2_nvr_init(const device_t *info)
nvr->size = 8192;
/* Set up the NVR file's name. */
c = strlen(machine_get_internal_name()) + 9;
c = strlen(machine_get_nvr_name()) + 9;
nvr->fn = (char *) malloc(c + 1);
sprintf(nvr->fn, "%s_sec.nvr", machine_get_internal_name());
sprintf(nvr->fn, "%s_sec.nvr", machine_get_nvr_name());
io_sethandler(0x0074, 3,
ps2_nvr_read, NULL, NULL, ps2_nvr_write, NULL, NULL, nvr);