Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08907 Crash/Freeze Major Always Aug 29, 2024, 16:34 28 days ago
Tester Robbbert View Status Public Platform MAME (Self-compiled)
Assigned To AJR Resolution Fixed OS Windows 10/11 (64-bit)
Status [?] Resolved Driver
Version 0.269 Fixed in Version 0.270 Build 64-bit
Fixed in Git Commit 425573a Github Pull Request #
Summary 08907: smc777: Floppies with d88 extension cause MAME to crash
Description There are 4 homebrew floppies available that use the d88 extension.

They are mastermind, htron, epb, deepspace.

All of them cause MAME to crash at start.
Steps To Reproduce Example:

>mame smc777 -flop1 e:\data\sony\smc777\mm_smc777.d88
Additional Information The driver is marked as not working, and while it used to run some games, it has regressed and nothing works now.

Logging this because it's a crash.

C:\MAME>mame smc777 -flop1 e:\data\sony\smc777\epb_smc777.d88
m5l8041a-077p.bin NOT FOUND (NO GOOD DUMP KNOWN) (tried in smc777)
WARNING: the machine might not run correctly.

-----------------------------------------------------
Exception at EIP=00007ff6e28b636c (floppy_image_format_t::generate_track_from_levels(int, int, std::vector<unsigned int, std::allocator<unsigned int> > const&, int, floppy_image&)+0x009c): ACCESS VIOLATION
While attempting to write memory at 0000000000000000
-----------------------------------------------------
RAX=00000000000001f4 RBX=000001e3b6237780 RCX=00000000000003e8 RDX=0000000000000000
RSI=0000000000000020 RDI=0000000000000000 RBP=00000000000003e8 RSP=00000047805671c0
 R8=00000047805672c0 R9=00000000000003e8 R10=000001e3b679e920 R11=0000000000016806
R12=000001e3b62376a0 R13=0000000000000000 R14=000001e3b67a1d20 R15=000001e3b67402a0
-----------------------------------------------------
Stack crawl:
  0000004780567240: 00007ff6e28b636c (floppy_image_format_t::generate_track_from_levels(int, int, std::vector<unsigned int, std::allocator<unsigned int> > const&, int, floppy_image&)+0x009c)
  0000004780567340: 00007ff6e28b6b63 (floppy_image_format_t::build_pc_track_mfm(int, int, floppy_image&, int, int, floppy_image_format_t::desc_pc_sector const*, int, int, int, int)+0x0713)
  0000004780578f40: 00007ff6e28c7314 (d88_format::load(util::random_read&, unsigned int, std::vector<unsigned int, std::allocator<unsigned int> > const&, floppy_image&) const+0x0444)
  0000004780579060: 00007ff6def4bad1 (floppy_image_device::call_load[abi:cxx11]()+0x0161)
  0000004780579110: 00007ff6df16821e (device_image_interface::finish_load[abi:cxx11]()+0x026e)
  0000004780579230: 00007ff6e2862f2b (image_manager::postdevice_init()+0x017b)
  0000004780579270: 00007ff6dee31a4f (driver_device::device_start()+0x008f)
  00000047805793b0: 00007ff6dee54378 (device_t::start()+0x0698)
  0000004780579500: 00007ff6defeb56a (running_machine::start_all_devices()+0x014a)
  0000004780579620: 00007ff6defef601 (running_machine::start()+0x0a91)
  00000047805797a0: 00007ff6deff2bac (running_machine::run(bool)+0x00cc)
  000000478057ed70: 00007ff6e28349ac (mame_machine_manager::execute()+0x024c)
  000000478057f160: 00007ff6e696cb1a (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)
  000000478057f470: 00007ff6e696d14a (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)
  000000478057f4d0: 00007ff6e282f757 (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)
  000000478057f8a0: 00007ff6e860c441 (luaopen_lfs+0xc65201)
  000000478057f8f0: 00007ff6da5812ee (__tmainCRTStartup+0x016e)
  000000478057f920: 00007ff6da581406 (mainCRTStartup+0x0016)
  000000478057f950: 00007ffbf79d7374 (BaseThreadInitThunk+0x0014)
  000000478057f9d0: 00007ffbf859cc91 (RtlUserThreadStart+0x0021)
Github Commit
Flags
Regression Version
Affected Sets / Systems smc777
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
3
User avatar
No.22308
AJR
Developer
30 days ago
I copied some code from dsk_dsk.cpp that fixes the crash at start for at least Deepspace_SMC777.d88 (which is a double-sided image with nothing on the other side). The smc777 regression also mentioned here is fixed in b72023282b6029adf489b8a4b8b79b1ba760707d.
User avatar
No.22309
Robbbert
Senior Tester
30 days ago
Thanks. I will try out more software when I return home in a few days.
User avatar
No.22314
Robbbert
Senior Tester
28 days ago
Confirmed that all 4 D88 images now work without issue.

Tried the remainder of my collection which are almost all .1DD images. Some worked, some had a number of read retries, some got bad sector message, some just got stuck. Some games although started couldn't see the Return key or Space Bar. One game had graphics issues.

But that's why the driver is MNW.

Thanks for fixing the main issues which is all I can ask for.