summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/saturn/bram.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/saturn/bram.cpp')
-rw-r--r--src/devices/bus/saturn/bram.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/devices/bus/saturn/bram.cpp b/src/devices/bus/saturn/bram.cpp
index 4fac71dcd83..d8ee2764da0 100644
--- a/src/devices/bus/saturn/bram.cpp
+++ b/src/devices/bus/saturn/bram.cpp
@@ -55,14 +55,31 @@ saturn_bram32mb_device::saturn_bram32mb_device(const machine_config &mconfig, co
void saturn_bram_device::device_start()
{
+ if (m_ext_bram.empty())
+ nvram_enable_backup(false);
}
void saturn_bram_device::device_reset()
{
}
+bool saturn_bram_device::nvram_read(util::read_stream &file)
+{
+ auto const [err, actual] = read(file, &m_ext_bram[0], m_ext_bram.size());
+ return !err && (actual == m_ext_bram.size());
+}
+
+bool saturn_bram_device::nvram_write(util::write_stream &file)
+{
+ auto const [err, actual] = write(file, &m_ext_bram[0], m_ext_bram.size());
+ return !err;
+}
+
void saturn_bram_device::nvram_default()
{
+ if (m_ext_bram.empty())
+ return;
+
static const uint8_t init[16] =
{ 'B', 'a', 'c', 'k', 'U', 'p', 'R', 'a', 'm', ' ', 'F', 'o', 'r', 'm', 'a', 't' };
memset(&m_ext_bram[0], 0, m_ext_bram.size());