summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2021-03-05 15:49:57 +0100
committer Olivier Galibert <galibert@pobox.com>2021-03-05 15:49:57 +0100
commit426274386a03781a855c876dbceeb81f9d23dcb1 (patch)
tree4b9d493f7506345785cd8fcc988eda706ce61167
parentea2a606611e92a5592dd01af514dc0ef31bd1aa5 (diff)
floppy: make format determination earlier
-rw-r--r--src/devices/imagedev/floppy.cpp19
-rw-r--r--src/devices/imagedev/floppy.h2
2 files changed, 13 insertions, 8 deletions
diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp
index d8dee6b96f1..ee5b22c001d 100644
--- a/src/devices/imagedev/floppy.cpp
+++ b/src/devices/imagedev/floppy.cpp
@@ -398,17 +398,24 @@ void floppy_image_device::commit_image()
output_format->save(&io, variants, image.get());
}
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void floppy_image_device::device_start()
+void floppy_image_device::device_config_complete()
{
rpm = 0;
motor_always_on = false;
dskchg_writable = false;
has_trk00_sensor = true;
+ setup_characteristics();
+ register_formats();
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void floppy_image_device::device_start()
+{
// better would be an extra parameter in the MCFG macro
drive_index = atoi(owner()->basetag());
@@ -431,8 +438,6 @@ void floppy_image_device::device_start()
ready_counter = 0;
phases = 0;
- setup_characteristics();
- register_formats();
if (m_make_sound) m_sound_out = subdevice<floppy_sound_device>(FLOPSND_TAG);
diff --git a/src/devices/imagedev/floppy.h b/src/devices/imagedev/floppy.h
index b6bee52a775..ab716104f7e 100644
--- a/src/devices/imagedev/floppy.h
+++ b/src/devices/imagedev/floppy.h
@@ -167,7 +167,7 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
-
+ virtual void device_config_complete() override;
virtual void device_add_mconfig(machine_config &config) override;
// device_image_interface implementation