summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2022-04-01 22:59:53 -0400
committer AJR <ajrhacker@users.noreply.github.com>2022-04-01 22:59:56 -0400
commit02faf3a3a1bc55bf97b8a7fdc4ba376110918a1c (patch)
tree165927d9ffd172fa10bc53cdbff2aed9c3780961 /src
parent2aa80b9d070dbcabac358ab35bfcbeb82f2e4e2d (diff)
ksys573.cpp: Workaround for segmentation fault when starting systems with fewer than two CD-ROMs
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/ksys573.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mame/drivers/ksys573.cpp b/src/mame/drivers/ksys573.cpp
index dc4192c021b..5334003e465 100644
--- a/src/mame/drivers/ksys573.cpp
+++ b/src/mame/drivers/ksys573.cpp
@@ -1107,8 +1107,11 @@ void ksys573_state::driver_start()
m_atapi_timer = machine().scheduler().timer_alloc( timer_expired_delegate( FUNC( ksys573_state::atapi_xfer_end ),this ) );
m_atapi_timer->adjust( attotime::never );
- m_available_cdroms[ 0 ] = new cdrom_file(machine().rom_load().get_disk_handle(":cdrom0"));
- m_available_cdroms[ 1 ] = new cdrom_file(machine().rom_load().get_disk_handle(":cdrom1"));
+ for (int i = 0; i < 2; i++)
+ {
+ chd_file *chd = machine().rom_load().get_disk_handle(util::string_format(":cdrom%d", i));
+ m_available_cdroms[ i ] = chd ? new cdrom_file(chd) : nullptr;
+ }
save_item( NAME( m_n_security_control ) );
save_item( NAME( m_control ) );