summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2020-06-13 00:38:52 -0700
committerMichael Pavone <pavone@retrodev.com>2020-06-13 00:38:52 -0700
commit45a0d9dc88a7bcdf6be98f9568fdeb464942c604 (patch)
treecc0b13cde7c8e45476cd35d458f6f433c9a10de4
parentebca48ed21ecee3f76644d740f49074b72a52955 (diff)
parent673472dbe5942700881ca52b43b8da5920802034 (diff)
Merge
-rw-r--r--genesis.c10
-rw-r--r--rom.db14
2 files changed, 21 insertions, 3 deletions
diff --git a/genesis.c b/genesis.c
index 3c2dc17..7733f91 100644
--- a/genesis.c
+++ b/genesis.c
@@ -1089,7 +1089,7 @@ static uint16_t unused_read(uint32_t location, void *vcontext)
{
m68k_context *context = vcontext;
genesis_context *gen = context->system;
- if ((location >= 0xA13000 && location < 0xA13100) || (location >= 0xA12000 && location < 0xA12100)) {
+ if (location < 0x800000 || (location >= 0xA13000 && location < 0xA13100) || (location >= 0xA12000 && location < 0xA12100)) {
//Only called if the cart/exp doesn't have a more specific handler for this region
return get_open_bus_value(&gen->header);
} else if (location == 0xA14000 || location == 0xA14002) {
@@ -1131,7 +1131,9 @@ static void *unused_write(uint32_t location, void *vcontext, uint16_t value)
gen->tmss_lock[location >> 1 & 1] = value;
} else if (has_tmss && location == 0xA14100) {
//TODO: implement TMSS control register
- } else if (location < 0xA12000 || location >= 0xA13100 || (location >= 0xA12100 && location < 0xA13000)) {
+ } else if (location < 0x800000 || (location >= 0xA13000 && location < 0xA13100) || (location >= 0xA12000 && location < 0xA12100)) {
+ //these writes are ignored when no relevant hardware is present
+ } else {
fatal_error("Machine freeze due to unmapped write to %X\n", location);
}
return vcontext;
@@ -1153,7 +1155,9 @@ static void *unused_write_b(uint32_t location, void *vcontext, uint8_t value)
}
} else if (has_tmss && (location == 0xA14100 || location == 0xA14101)) {
//TODO: implement TMSS control register
- } else if (location < 0xA12000 || location >= 0xA13100 || (location >= 0xA12100 && location < 0xA13000)) {
+ } else if (location < 0x800000 || (location >= 0xA13000 && location < 0xA13100) || (location >= 0xA12000 && location < 0xA12100)) {
+ //these writes are ignored when no relevant hardware is present
+ } else {
fatal_error("Machine freeze due to unmapped byte write to %X\n", location);
}
return vcontext;
diff --git a/rom.db b/rom.db
index 2507f8c..3c5e3fb 100644
--- a/rom.db
+++ b/rom.db
@@ -1377,3 +1377,17 @@ cda73e4caf53cbc8f0750b69e5e7f394ad3735d1 {
}
}
}
+NETO-001 {
+ name Sonic Delta
+ map {
+ 0 {
+ device ROM
+ last 7FFFF
+ }
+ 80000 {
+ device Sega mapper
+ last 3FFFFF
+ offset 80000
+ }
+ }
+}