Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06675 Interface Critical (emulator) Always Sep 3, 2017, 17:02 Oct 20, 2020, 13:10
Tester Tafoid View Status Public Platform MAME (Official Binary)
Assigned To cuavas Resolution Fixed OS Windows Vista/7/8 (64-bit)
Status [?] Resolved Driver
Version 0.189 Fixed in Version 0.226 Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 06675: UI: Selection of BIOS from a device results in an exception.
Description
Exception at EIP=000000000325276a (slot_option::set_bios(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)+0x000a): ACCESS VIOLATION
-----------------------------------------------------
Stack crawl:
  0000000000227e20: 000000000325276a (slot_option::set_bios(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)+0x000a)
  0000000000228120: 0000000001d5be42 (ui::menu_bios_selection::handle()+0x0732)
  0000000000228180: 0000000001d5578b (ui::menu::ui_handler(render_container&, mame_ui_manager&)+0x00db)
  00000000002281b0: 0000000004db57f7 (std::_Function_handler<unsigned int (render_container&), std::_Bind<unsigned int (*(std::_Placeholder<1>, std::reference_wrapper<mame_ui_manager>))(render_container&, mame_ui_manager&)> >::_M_invoke(std::_Any_data const&, render_container&)+0x0017)
  00000000002282b0: 0000000001c5c7b2 (mame_ui_manager::update_and_render(render_container&)+0x0152)
  00000000002282e0: 0000000001c25160 (emulator_info::draw_user_interface(running_machine&)+0x0020)
  0000000000228370: 000000000330219d (video_manager::frame_update(bool)+0x003d)
  0000000000228400: 00000000032d659d (screen_device::vblank_begin()+0x03ed)
  0000000000228470: 00000000032da1b5 (screen_device::device_timer(emu_timer&, unsigned int, int, void*)+0x0275)
  0000000000228520: 00000000032d1ad2 (device_scheduler::timeslice()+0x04e2)
  0000000000228620: 0000000003295db8 (running_machine::run(bool)+0x0388)
  000000000022f1d0: 0000000001c26fa3 (mame_machine_manager::execute()+0x01e3)
  000000000022f490: 0000000001c96256 (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&)+0x0416)
  000000000022f600: 0000000001c96705 (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> > > >&)+0x0045)
  000000000022f660: 0000000001c2510a (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> > > >&)+0x002a)
  000000000022fdb0: 0000000001b77ef2 (utf8_main(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> > > >&)+0x0122)
  000000000022fe50: 0000000003800389 (wmain+0x0169)
  000000000022ff20: 0000000000401410 (__tmainCRTStartup+0x0260)
  000000000022ff50: 000000000040153b (mainCRTStartup+0x001b)
  000000000022ff80: 0000000077a459cd (BaseThreadInitThunk+0x000d)
  000000000022ffd0: 0000000077b7a561 (RtlUserThreadStart+0x0021)
Steps To Reproduce mame psu -> TAB -> BIOS Selection -> psxcd (try selecting left or right on that entry)
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems UI
Attached Files
 
Relationships
has duplicate 06760Closed All sets: MAME crashes when trying to select a different M50458 BIOS 
has duplicate 07097Closed UI: Selecting second BIOS entry for nss.cpp or naomi.cpp results in an exception 
Notes
6
User avatar
No.14562
Robbbert
Senior Tester
Dec 25, 2017, 12:20
Some user gets a fatal error, see https://github.com/mamedev/mame/issues/2945

however I get the original crash as reported by Tafoid.
User avatar
No.14572
wuemura
Viewer
Dec 27, 2017, 08:13
edited on: Dec 27, 2017, 08:14
This might have a relation with https://github.com/mamedev/mame/issues/2895
Mame crashes if it doesn't find whatever it need, using that user example, we get a similar exception. Maybe this has nothing to do with BIOS selection, but something else.
D:\Mame>mame64d -video bgfx
Video: Monitor 65537 = "\\.\DISPLAY1" (primary)
Physical width 1351, height 1040
Unable to load effect bgfx\effects\gui_opaque.json
Unable to load effect bgfx\effects\gui_blend.json
Unable to load effect bgfx\effects\gui_multiply.json
Unable to load effect bgfx\effects\gui_add.json
Unable to load effect bgfx\effects\screen_opaque.json
Unable to load effect bgfx\effects\screen_blend.json
Unable to load effect bgfx\effects\screen_multiply.json
Unable to load effect bgfx\effects\screen_add.json
Fatal error: BGFX: Unable to load required shaders. Please check and reinstall the bgfx folder

-----------------------------------------------------
Exception at EIP=0000000004f526c3 (ImGui::ShutdownDockContext()+0x000f): ACCESS VIOLATION
While attempting to read memory at 0000000000000008
-----------------------------------------------------
RAX=0000000000000001 RBX=000001f06c3c8870 RCX=000000000d316f00 RDX=000000000d316e10
RSI=000000000d316e10 RDI=000000000bdf3028 RBP=000000a7b07f80c0 RSP=000000a7b07f80a0
 R8=0000000000000000 R9=0000000000000002 R10=00007ffec685be00 R11=000000a7b07f7f30
R12=000001f06c4e21d0 R13=0000000000000001 R14=000000000c5a9e70 R15=000000000c5a6d70
-----------------------------------------------------
Stack crawl:
  000000a7b07f80a0: 0000000004f526c3 (ImGui::ShutdownDockContext()+0x000f)
  000000a7b07f80f0: 0000000004fa054d (imguiDestroy()+0x000d)
  000000a7b07f8120: 0000000002f185ed (renderer_bgfx::exit()+0x000d)
  000000a7b07f8170: 0000000002ede952 (windows_osd_interface::window_exit()+0x0112)
  000000a7b07f81a0: 0000000002edc0f1 (windows_osd_interface::video_exit()+0x0011)
  000000a7b07f81e0: 0000000002ecdeb6 (osd_common_t::osd_exit()+0x0066)
  000000a7b07f8230: 0000000002ec62c7 (windows_osd_interface::osd_exit()+0x0025)
  000000a7b07f8270: 0000000004969f6b (running_machine::call_notifiers(machine_notification)+0x004b)
  000000a7b07f8330: 00000000049729ad (running_machine::run(bool)+0x039d)
  000000a7b07fef50: 0000000002fc51b4 (mame_machine_manager::execute()+0x01e0)
  000000a7b07ff1f0: 0000000003056a81 (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&)+0x03cd)
  000000a7b07ff380: 0000000003056f25 (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> > > >&)+0x0045)
  000000a7b07ff3e0: 0000000002fc1e1a (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> > > >&)+0x002a)
  000000a7b07ffb50: 00000000084f8c7d (main+0x013d)
  000000a7b07ffc20: 00000000010c13f8 (__tmainCRTStartup+0x0248)
  000000a7b07ffc50: 00000000010c151b (mainCRTStartup+0x001b)
  000000a7b07ffc80: 00007ffec6241fe4 (BaseThreadInitThunk+0x0014)
  000000a7b07ffcd0: 00007ffec67aef91 (RtlUserThreadStart+0x0021)
User avatar
No.14573
Tafoid
Administrator
Dec 27, 2017, 08:26
You need to make sure your BGFX folder and the binary match. Right when development started for 0.193, the BGFX source files were updated/changes. Running a binary not meant for those files will result in the error message you got.

There is very much a bios selection issue - just no time has been able to be made to get a proper fix in place.
User avatar
No.14577
wuemura
Viewer
Dec 27, 2017, 10:19
edited on: Dec 27, 2017, 10:26
The point is that both crash with the same access violation if something do not match, is misplaced, etc. Something that manage this should return an error to the user, not to crash the emulator.
Maybe I don't have a specific Playstation CD BIOS, selecting a BIOS that I don't have cause the exact same access violation, that is why I think this is not related with BIOS at all.
User avatar
No.17990
Robbbert
Senior Tester
Sep 19, 2020, 16:27
More examples:
Start 'at' . Use the tab menu to select BIOS settings. Choose mb:keybc and press right-arrow - Crash

Start 'ie15'. Use the tab menu to select BIOS settings. Press right-arrow - Crash
User avatar
No.18071
cuavas
Administrator
Oct 20, 2020, 13:10
The crash is resolved by only populating the BIOS Selection menu with things that allow the user to change the BIOS. Things like the Sega comms boards can still only have the BIOS changed programmatically in machine configuration.