summaryrefslogtreecommitdiff
path: root/romdb.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2015-12-08 19:33:58 -0800
committerMichael Pavone <pavone@retrodev.com>2015-12-08 19:33:58 -0800
commitff238c672d2f623363169f7ea6a3f292bbb24543 (patch)
tree4e868afca564f77e1202e02d905f15cac22ab8d0 /romdb.c
parent0da12ea007ff827acf74c489d2f3a95fcf17e6af (diff)
Allow IO device config to be overriden by ROM DB
Diffstat (limited to 'romdb.c')
-rw-r--r--romdb.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/romdb.c b/romdb.c
index b34c232..fe70eda 100644
--- a/romdb.c
+++ b/romdb.c
@@ -551,6 +551,7 @@ rom_info configure_rom_heuristics(uint8_t *rom, uint32_t rom_size, memmap_chunk
info.name = get_header_name(rom);
info.regions = get_header_regions(rom);
add_memmap_header(&info, rom, rom_size, base_map, base_chunks);
+ info.port1_override = info.port2_override = info.ext_override = NULL;
return info;
}
@@ -842,5 +843,14 @@ rom_info configure_rom(tern_node *rom_db, void *vrom, uint32_t rom_size, memmap_
add_memmap_header(&info, rom, rom_size, base_map, base_chunks);
}
+ tern_node *device_overrides = tern_find_ptr(entry, "device_overrides");
+ if (device_overrides) {
+ info.port1_override = tern_find_ptr(device_overrides, "1");
+ info.port2_override = tern_find_ptr(device_overrides, "2");
+ info.ext_override = tern_find_ptr(device_overrides, "ext");
+ } else {
+ info.port1_override = info.port2_override = info.ext_override = NULL;
+ }
+
return info;
}