Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09319 Crash/Freeze Critical (emulator) Always 3 days ago 2 days ago
Tester john_iv View Status Public Platform MAME (Self-compiled)
Assigned To Resolution Open OS Windows (x64)
Status [?] Confirmed Driver
Version 0.283 Fixed in Version Build x64
Fixed in Git Commit Github Pull Request #
Summary 09319: All: Launching with -numscreens 2 (fullscreen) crashes.
Description This has been a longstanding bug on my system going back at least three years; through official releases and builds from tip of tree.

Launching 'mame dkong -norc -numscreens 2 -video bgfx' produces a crash as it tries to start its full screen instances. I get one screen showing briefly (1 second) on monitor 2 before it crashes out.

It crashes regardless if -screen is set to auto or mapped to \\.\DISPLAY1, 2 etc. for screen0 and/or screen1.

Note: It *works successfully* if I launch in windowed mode and then alt-enter to take them both fullscreen. 'mame dkong -norc -numscreens2 -window'.

The fullscreen fails as well with -video d3d and DirectX9 runtimes.
c:\O\Games\MAME>mt dkong -numscreens 2 -nowindow -video d3d
Unable to create the Direct3D device (8876086C)
Unable to initialize Direct3D 9
Fatal error: Unable to complete window creation
-----------------------------------------------------
Exception at EIP=00007ff63915ae96 (not found): ACCESS VIOLATION
While attempting to read memory at 0000016a99261cc0
-----------------------------------------------------
RAX=0000016a99261c90 RBX=000000000000001c RCX=0000016a96f40c00 RDX=00000000ffffffeb
RSI=0000016a99261c90 RDI=0000000000040a4c RBP=0000000000000000 RSP=00000028c40f91a0
 R8=0000000000000000 R9=0000000000002658 R10=0000000000040a4c R11=0000000000000246
R12=0000000000000000 R13=0000000000000000 R14=0000000080009011 R15=0000000000000000
-----------------------------------------------------
Stack crawl:
  00000028c40f9290: 00007ff63915ae96 (not found)
  00000028c40f93f0: 00007fff48be7846 (CallWindowProcW+0x06a6)
  00000028c40f9450: 00007fff48be70cc (SendMessageW+0x0acc)
  00000028c40f94b0: 00007fff48c17e93 (GetWindowDpiAwarenessContext+0x01f3)
  00000028c40f9538: 00007fff49fe5be4 (KiUserCallbackDispatcher+0x0024)
  00000028c40f9540: 00007fff47122544 (NtUserDestroyWindow+0x0014)
  00000028c40f9570: 00007ff639bc3cbe (not found)
  00000028c40f95b0: 00007ff639155c29 (not found)
  00000028c40f95e0: 00007ff638ea39d0 (not found)
  00000028c40f9760: 00007ff63905167a (not found)
  00000028c40fed70: 00007ff639137700 (not found)
  00000028c40ff150: 00007ff639a94586 (not found)
  00000028c40ff450: 00007ff639a94b38 (not found)
  00000028c40ff4b0: 00007ff639132666 (not found)
  00000028c40ff870: 00007ff63b6dbd07 (luaopen_lfs+0xafc157)
  00000028c40ff910: 00007ff638e910c9 (not found)
  00000028c40ff940: 00007ff638e91416 (not found)
  00000028c40ff970: 00007fff4879e8d7 (BaseThreadInitThunk+0x0017)
  00000028c40ff9c0: 00007fff49f0c53c (RtlUserThreadStart+0x002c)

I am unclear if this is just a 'my system' error as I only have one setup w/ multiple monitors to test this against and have had only one video card over the last few years. The crash in Mame has happened through multiple GPU driver iterations.
Steps To Reproduce 1. Two physical monitors connected to a video card.
2. Use the following command line, using -norc to take any config oddities out of the mix:
mame.exe dkong -numscreens 2 -norc -video bgfx

Crash from tiny build (dkong.cpp) symbols level 2.

-----------------------------------------------------
Exception at EIP=00007ff63b47cc38 (not found): ACCESS VIOLATION
While attempting to read memory at 00007ff233affe40
-----------------------------------------------------
RAX=fffffffbf8000000 RBX=000001fa9de74308 RCX=0000000000000000 RDX=00007ff63baffe40
RSI=000000000000fd20 RDI=0000000b6b5727cc RBP=0000000000000000 RSP=000000c8afbff530
 R8=0000000000000000 R9=0101010101010101 R10=0000000000000000 R11=000000c8afbff380
R12=000001fa9f548040 R13=0000000000000000 R14=0000000000000000 R15=0000000000000000
-----------------------------------------------------
Stack crawl:
  000000c8afbff5e0: 00007ff63b47cc38 (luaopen_lfs+0x89d088)
  000000c8afbffc20: 00007ff63b46dc9c (luaopen_lfs+0x88e0ec)
  000000c8afbffc80: 00007ff63b158df3 (luaopen_lfs+0x579243)
  000000c8afbffcc0: 00007ff63b162646 (luaopen_lfs+0x582a96)
  000000c8afbffcf0: 00007fff4879e8d7 (BaseThreadInitThunk+0x0017)
  000000c8afbffd40: 00007fff49f0c53c (RtlUserThreadStart+0x002c)
Additional Information ==== System Summary ====
OS : Microsoft Windows 11 Pro (v10.0.26200, 64-bit)
CPU : 12th Gen Intel(R) Core(TM) i7-12700K @ 3600MHz (12 cores/20 threads)
RAM : 64 GB (5200)
BIOS : American Megatrends Inc. v4301 (Released: 04/28/2025)
Motherboard : ASUSTeK COMPUTER INC. ROG STRIX Z690-F GAMING WIFI (SN: 210890277200824)
GPU : AMD Radeon RX 5600 XT - 5.96 GB (Driver: 32.0.21033.3005)
Adapters : Intel(R) Ethernet Controller (3) I225-V – IP: 192.168.1.3, fe80::2792:22b6:2447:a603 – MAC: 04:42:1A:2C:12:2C – GW: 192.168.1.1
Github Commit
Flags
Regression Version
Affected Sets / Systems All
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
5
User avatar
No.23873
john_iv
Senior Tester
3 days ago
Using -noplugins didn't make a difference; still got the errors.
User avatar
No.23874
cuavas
Administrator
3 days ago
Well it doesn’t crash for me, and your stack trace is clearly wrong.
User avatar
No.23875
john_iv
Senior Tester
3 days ago
Sorry Vas, here you go w/ the gdb backtrace for a -norc d3d run and a -video bgfx:

Starting program: c:\O\Games\MAME\mt.exe dkong -norc -numscreens 2
[New Thread 14240.0x4940]
[New Thread 14240.0x408c]
[New Thread 14240.0x18d0]
[New Thread 14240.0x4f8c]
[New Thread 14240.0x3460]
[New Thread 14240.0x2184]
Unable to create the Direct3D device (8876086C)
Unable to initialize Direct3D 9
warning: Unable to complete window creation

Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
0x00007fff47699483 in KERNELBASE!DebugBreak () from C:\WINDOWS\System32\KernelBase.dll
(gdb) bt
#0 0x00007fff47699483 in KERNELBASE!DebugBreak () from C:\WINDOWS\System32\KernelBase.dll
#1 0x00007ff68010130d in emu_fatalerror::emu_fatalerror (this=this@entry=0x31f7c90, args=...)
    at R:/BuildTools/mingw64/include/c++/15.2.0/bits/basic_string.h:238
#2 0x00007ff680289349 in emu_fatalerror::emu_fatalerror<char const (&) [36], , void>(char const (&) [36]) (this=0x31f7c90, fmt=...)
    at ../../../../../src/emu/emucore.h:238
#3 fatalerror<char const (&) [36]> () at ../../../../../src/emu/emucore.h:319
#4 win_window_info::create (machine=..., renderprovider=..., index=index@entry=1,
    monitor=std::shared_ptr<osd_monitor_info> (use count 4, weak count 0) = {...}, config=config@entry=0x7ff682f3c3d4)
    at ../../../../../src/osd/windows/window.cpp:737
#5 0x00007ff6802adb6c in windows_osd_interface::video_init (this=0x14fb90) at ../../../../../src/osd/modules/lib/osdobj_common.h:259
#6 0x00007ff68028141d in osd_common_t::init_subsystems (this=this@entry=0x14fb90) at ../../../../../src/osd/modules/lib/osdobj_common.cpp:696
#7 0x00007ff67ffd37d9 in windows_osd_interface::init (this=0x14fb90, machine=...) at ../../../../../src/osd/windows/winmain.cpp:353
#8 0x00007ff68017d4b8 in running_machine::start (this=this@entry=0x149ed0) at ../../../../../src/emu/machine.cpp:154
#9 0x00007ff6801813da in running_machine::run (this=this@entry=0x149ed0, quiet=quiet@entry=false) at ../../../../../src/emu/machine.cpp:301
#10 0x00007ff680267700 in mame_machine_manager::execute (this=this@entry=0x2bace80) at ../../../../../src/frontend/mame/mame.cpp:288
#11 0x00007ff680bc4586 in cli_frontend::start_execution (this=this@entry=0x14fa90, manager=manager@entry=0x2bace80,
    args=std::vector of length 5, capacity 5 = {...}) at ../../../../../src/frontend/mame/clifront.cpp:277
#12 0x00007ff680bc4b38 in cli_frontend::execute (this=this@entry=0x14fa90, args=std::vector of length 5, capacity 5 = {...})
    at ../../../../../src/frontend/mame/clifront.cpp:293
#13 0x00007ff680262666 in emulator_info::start_frontend (options=..., osd=..., args=std::vector of length 5, capacity 5 = {...})
    at ../../../../../src/frontend/mame/mame.cpp:453
#14 0x00007ff68280bd07 in main (argc=<optimized out>, argv=<optimized out>) at ../../../../../src/osd/windows/winmain.cpp:221

Starting program: c:\O\Games\MAME\mt.exe dkong -norc -numscreens 2 -video bgfx
[New Thread 3020.0x26ac]
[New Thread 3020.0x1224]
[New Thread 3020.0x5748]
[New Thread 3020.0x435c]
[New Thread 3020.0x4008]
[New Thread 3020.0x798]
[New Thread 3020.0x1f10]
[New Thread 3020.0x1720]
[New Thread 3020.0x4e50]
[New Thread 3020.0xb7c]
[New Thread 3020.0x4a50]
[New Thread 3020.0x50f0]
[New Thread 3020.0x5a4c]
[New Thread 3020.0x5094]
[New Thread 3020.0x5b50]
[New Thread 3020.0x5600]
[New Thread 3020.0x53cc]
[New Thread 3020.0x2394]
[New Thread 3020.0x305c]
[New Thread 3020.0x32c4]
[New Thread 3020.0xeb8]
[New Thread 3020.0x28b0]
[New Thread 3020.0x5b08]
[New Thread 3020.0x4f44]
[New Thread 3020.0x914]
[New Thread 3020.0x5fdc]
[New Thread 3020.0x4224]
[New Thread 3020.0x500c]
[New Thread 3020.0x4ed0]
[New Thread 3020.0x9f8]
[New Thread 3020.0x549c]
[Thread 3020.0x549c exited with code 0]
[New Thread 3020.0x5f60]
[New Thread 3020.0x4570]
[New Thread 3020.0x820]
[New Thread 3020.0x5750]

Thread 7 "bgfx - renderer backend thread" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 3020.0x798]
0x00007ff6825acc38 in bgfx::d3d11::RendererContextD3D11::updateResolution (this=0x7c4b040, _resolution=...)
    at ../../../../../3rdparty/bgfx/src/renderer_d3d11.cpp:2483
2483 m_scd.format = s_textureFormat[_resolution.format].m_fmt

(gdb) bt
#0 0x00007ff6825acc38 in bgfx::d3d11::RendererContextD3D11::updateResolution (this=0x7c4b040, _resolution=...)
    at ../../../../../3rdparty/bgfx/src/renderer_d3d11.cpp:2483
#1 0x00007ff68259dc9c in bgfx::d3d11::RendererContextD3D11::submit (this=0x7c4b040, _render=0x4bd0b40, _clearQuad=..., _textVideoMemBlitter=...)
    at ../../../../../3rdparty/bgfx/src/renderer_d3d11.cpp:5574
#2 0x00007ff682288df3 in bgfx::Context::renderFrame (_msecs=5000, this=0x32f0080) at ../../../../../3rdparty/bgfx/src/bgfx.cpp:2455
#3 bgfx::Context::renderFrame (this=0x32f0080, _msecs=5000) at ../../../../../3rdparty/bgfx/src/bgfx.cpp:2430
#4 0x00007ff682292646 in bgfx::renderFrame (_msecs=-1) at ../../../../../3rdparty/bgfx/src/bgfx.cpp:1489
#5 bgfx::Context::renderThread () at ../../../../../3rdparty/bgfx/src/bgfx_p.h:3148
#6 0x00007fff4879e8d7 in KERNEL32!BaseThreadInitThunk () from C:\WINDOWS\System32\kernel32.dll
#7 0x00007fff49f0c53c in ntdll!RtlUserThreadStart () from C:\WINDOWS\SYSTEM32\ntdll.dll
#8 0x0000000000000000 in ?? ()
User avatar
No.23876
john_iv
Senior Tester
2 days ago
Another data point? https://mametesters.org/view.php?id=8535
User avatar
No.23879
Robbbert
Moderator
2 days ago
I only have one physical screen, so maybe my results are not valid? idk.

Firstly, the game started minimised. I had to click on the mame button in the taskbar to see anything. After that:

-video d3d, opengl, gdi all worked perfectly, no issues, can alt-tab as many times as I like.

-video bgfx crashed with this dump:

C:\MAME>mame dkong -norc -numscreens 2 -video bgfx -rompath e:\mame\roms

-----------------------------------------------------
Exception at EIP=00007ff78ca389a9 (renderer_bgfx::put_packed_quad(render_primitive*, unsigned int, ScreenVertex*)+0x0209): ACCESS VIOLATION
While attempting to write memory at 0000014062d74000
-----------------------------------------------------
RAX=00000000ffffffff RBX=0000014062d73fd0 RCX=43d80000446d0000 RDX=0000000000000000
RSI=0000014069300760 RDI=0000003fdfcf90e0 RBP=0000000000000001 RSP=0000003fdfcf8ec0
 R8=0000000000000000 R9=0000000000000000 R10=000000006925d6c0 R11=000001405adf4ab8
R12=0000000000000100 R13=0000003fdfcf90b8 R14=0000000000000002 R15=0000003fdfcf9100
-----------------------------------------------------
Stack crawl:
  0000003fdfcf8f80: 00007ff78ca389a9 (renderer_bgfx::put_packed_quad(render_primitive*, unsigned int, ScreenVertex*)+0x0209)
  0000003fdfcf9050: 00007ff78ca3a2f1 (renderer_bgfx::buffer_primitives(bool, render_primitive**, bgfx::TransientVertexBuffer*, int, int)+0x0141)
  0000003fdfcf91b0: 00007ff78ca3e07e (renderer_bgfx::draw(int)+0x01de)
  0000003fdfcf9210: 00007ff78898117b (win_window_info::draw_video_contents(HDC__*, bool)+0x005b)
  0000003fdfcf9310: 00007ff7889856e6 (win_window_info::video_window_proc(HWND__*, unsigned int, unsigned long long, long long)+0x0266)
  0000003fdfcf94a0: 00007ff900c6ef5c (CallWindowProcW+0x060c)
  0000003fdfcf9540: 00007ff900c6dfbb (SendMessageW+0x092b)
  0000003fdfcf95a0: 00007ff900c6d814 (SendMessageW+0x0184)
  0000003fdfcf95e0: 00007ff7889902ca (windows_osd_interface::update(bool)+0x003a)
  0000003fdfcf9670: 00007ff788a47ff8 (video_manager::frame_update(bool)+0x0108)
  0000003fdfcf99b0: 00007ff78c94f6bd (mame_ui_manager::display_startup_screens(bool)+0x0c3d)
  0000003fdfcf9b30: 00007ff78557a535 (running_machine::run(bool)+0x0445)
  0000003fdfcff150: 00007ff78896537c (mame_machine_manager::execute()+0x024c)
  0000003fdfcff540: 00007ff78c98caea (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)
  0000003fdfcff850: 00007ff78c98d11a (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)
  0000003fdfcff8b0: 00007ff788960117 (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)
  0000003fdfcffc80: 00007ff78e784bd1 (luaopen_lfs+0xd54261)
  0000003fdfcffcd0: 00007ff7816f12ee (__tmainCRTStartup+0x016e)
  0000003fdfcffd00: 00007ff7816f1406 (mainCRTStartup+0x0016)
  0000003fdfcffd30: 00007ff8ff567374 (BaseThreadInitThunk+0x0014)
  0000003fdfcffdb0: 00007ff90157cc91 (RtlUserThreadStart+0x0021)