Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09255 Media Support Minor Always 8 days ago 5 days ago
Tester Robbbert View Status Public Platform MAME (Self-compiled)
Assigned To hap Resolution Fixed OS Windows 11/10 (64-bit)
Status [?] Resolved Driver
Version 0.280 Fixed in Version 0.281GIT Build 64-bit
Fixed in Git Commit 8bc2e8c Github Pull Request #
Summary 09255: m3: Crashes when attempt to use missing disk
Description I tried to run this system, not realising that I didn't have the only disk listed in the software list.

After it told me the disk was missing, it crashed.
Steps To Reproduce >mame m3 m3utils

It will print on the console that there's an error opening the file, and this was followed by a crash dump.
Additional Information C:\MAME>mame m3 m3utils
:fdc:0:sa850: error opening image file m3_utils_cpm22_8ssds.mfm: No such file or directory (generic:2) (tried in m3\m3utils m3utils m3)

-----------------------------------------------------
Exception at EIP=00007ff6a17e4796 (emu_timer::adjust(attotime, int, attotime const&)+0x0006): ACCESS VIOLATION
While attempting to read memory at 0000000000000000
-----------------------------------------------------
RAX=0000000000000000 RBX=000001b85e32c870 RCX=0000000000000000 RDX=0000003afcaf91a0
RSI=0000000000000001 RDI=0000000000000000 RBP=0000000000000000 RSP=0000003afcaf9120
 R8=0000000000000000 R9=00007ff6b01b4450 R10=0000003afcaf9380 R11=0000003afcaf8a33
R12=000001b85e3696a0 R13=0000003afcaf9c30 R14=000001b85d0ff1c8 R15=0000003afcaf9550
-----------------------------------------------------
Stack crawl:
  0000003afcaf9170: 00007ff6a17e4796 (emu_timer::adjust(attotime, int, attotime const&)+0x0006)
  0000003afcaf91d0: 00007ff6a173becb (floppy_image_device::mon_w(int)+0x019b)
  0000003afcaf9210: 00007ff6a173c13b (non-virtual thunk to floppy_image_device::call_unload()+0x012b)
  0000003afcaf9260: 00007ff6a1afeb35 (device_image_interface::unload()+0x0145)
  0000003afcaf9420: 00007ff6a1b0161c (device_image_interface::load_internal[abi:cxx11](std::basic_string_view<char, std::char_traits<char> >, bool, int, util::option_resolution*)+0x005c)
  0000003afcaf94b0: 00007ff6a1b01d49 (device_image_interface::load[abi:cxx11](std::basic_string_view<char, std::char_traits<char> >)+0x0119)
  0000003afcaf9830: 00007ff6a4bc5dc6 (image_manager::image_manager(running_machine&)+0x05b6)
  0000003afcaf9950: 00007ff6a17deca0 (running_machine::start()+0x06f0)
  0000003afcaf9ad0: 00007ff6a17e265c (running_machine::run(bool)+0x00cc)
  0000003afcaff0f0: 00007ff6a4b98dcc (mame_machine_manager::execute()+0x024c)
  0000003afcaff4e0: 00007ff6a8a45cea (cli_frontend::start_execution(mame_machine_manager*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x03ea)
  0000003afcaff7f0: 00007ff6a8a4631a (cli_frontend::execute(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)+0x007a)
  0000003afcaff850: 00007ff6a4b93b67 (emulator_info::start_frontend(emu_options&, osd_interface&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)+0x0027)
  0000003afcaffc20: 00007ff6aa827be1 (luaopen_lfs+0xd4b131)
  0000003afcaffc70: 00007ff69d9b12ee (__tmainCRTStartup+0x016e)
  0000003afcaffca0: 00007ff69d9b1406 (mainCRTStartup+0x0016)
  0000003afcaffcd0: 00007ff9d2c47374 (BaseThreadInitThunk+0x0014)
  0000003afcaffd50: 00007ff9d479cc91 (RtlUserThreadStart+0x0021)
Github Commit
Flags
Regression Version
Affected Sets / Systems m3
Attached Files
 
Relationships
related to 09005Resolvedhap  mtu130: If you try to load a software-list item that is missing, MAME crashes 
Notes
3
User avatar
No.23644
hap
Developer
8 days ago
It calls floppy_image_device::call_unload without having called floppy_image_device::device_start, is that ok?
User avatar
No.23653
Robbbert
Moderator
7 days ago
Working, thanks for fixing.
User avatar
No.23654
hap
Developer
7 days ago
edited on: 7 days ago
It's a workaround (but not a hacky one).
I think there's still a bug underneath, not in the m3 driver, but MAME's generic floppy controller: calling call_unload without having called device_start to initialize sounds iffy to me.