Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
04846 Core Critical (emulator) Always May 19, 2012, 15:22 Jan 10, 2017, 04:18
Tester Firewave View Status Public Platform MAME (Self-compiled)
Assigned To Resolution Invalid report OS
Status [?] Closed Driver
Version 0.145u8 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 04846: Access Violation when Windows changes color scheme
Description Sometimes Windows will automatically change the color scheme of the desktop when a program doesn't support "certain visual elements" (e.g. when I connect via VNC to my machine). MAME will crash when this happens .I think it has always been like this. Here's the backtrace:

-----------------------------------------------------
Exception at EIP=0000000142AD0F43 (+0x42ad0f43): ACCESS VIOLATION
While attempting to write memory at 0000000000000010
-----------------------------------------------------
RAX=0000000000000000 RBX=0000000000000000 RCX=0000000000000000 RDX=0000000000000002
RSI=0000000000000001 RDI=00000000002F5C80 RBP=0000000000000000 RSP=00000000002F5C50
 R8=0000000000000008  R9=0000000022000000 R10=0000000000000008 R11=00000000008724B0
R12=0000000000000000 R13=000000000000031E R14=0000000000000000 R15=00000000008A0A88
-----------------------------------------------------
Stack crawl:
  00000000002F5C80: 0000000142AD0F43 (winvideo_monitor_refresh+0x0023, s:\svn\mess\src\osd\windows\video.c:164)
  00000000002F5CC0: 0000000142ACD296 (winwindow_video_window_monitor+0x0096, s:\svn\mess\src\osd\windows\window.c:855)
  00000000002F5E10: 0000000142ACF393 (constrain_to_aspect_ratio+0x0043, s:\svn\mess\src\osd\windows\window.c:1494)
  00000000002F5EF0: 0000000142ACFD74 (get_min_bounds+0x0124, s:\svn\mess\src\osd\windows\window.c:1639)
  00000000002F5FD0: 0000000142ACFACE (update_minmax_state+0x008e, s:\svn\mess\src\osd\windows\window.c:1729)
  00000000002F60E0: 0000000142ACE3C2 (winwindow_video_window_proc+0x00a2, s:\svn\mess\src\osd\windows\window.c:1249)
  00000000002F6110: 0000000142B45694 (winwindow_video_window_proc_ui+0x0044, s:\svn\mess\src\osd\windows\winmenu.c:58)
  00000000002F61D0: 0000000076D88971 (GetWindowDC+0x0081)
  00000000002F6250: 0000000076D898DA (TranslateMessage+0x01ea)
  00000000002F62A0: 0000000142ACC4C3 (winwindow_dispatch_message+0x00d3, s:\svn\mess\src\osd\windows\window.c:497)
  00000000002F6350: 0000000142ACC30B (winwindow_process_events+0x044b, s:\svn\mess\src\osd\windows\window.c:451)
  00000000002F6390: 0000000142AD1166 (windows_osd_interface::update+0x0076, s:\svn\mess\src\osd\windows\video.c:225)
  00000000002F6450: 00000001427741FC (video_manager::frame_update+0x028c, s:\svn\mess\src\emu\video.c:243)
  00000000002F6490: 000000014200140F (screen_device::vblank_end+0x00ef, s:\svn\mess\src\emu\screen.c:845)
  00000000002F6510: 0000000141FFF92C (screen_device::device_timer+0x007c, s:\svn\mess\src\emu\screen.c:399)
  00000000002F6550: 0000000141FF58D6 (device_t::timer_expired+0x0056, s:\svn\mess\src\emu\device.h:223)
  00000000002F65D0: 0000000141FF50AF (device_scheduler::execute_timers+0x022f, s:\svn\mess\src\emu\schedule.c:911)
  00000000002F66F0: 0000000141FF361C (device_scheduler::timeslice+0x008c, s:\svn\mess\src\emu\schedule.c:433)
  00000000002F6C10: 000000014213430C (running_machine::run+0x034c, s:\svn\mess\src\emu\machine.c:392)
  00000000002FD2F0: 0000000141FF05FA (mame_execute+0x01ba, s:\svn\mess\src\emu\mame.c:189)
  00000000002FF1B0: 0000000142B485B0 (cli_frontend::execute+0x0ab0, s:\svn\mess\src\emu\clifront.c:252)
  00000000002FF680: 0000000142AC639C (utf8_main+0x016c, s:\svn\mess\src\osd\windows\winmain.c:482)
  00000000002FF6C0: 0000000142AC61E1 (wmain+0x00b1, s:\svn\mess\src\osd\windows\main.c:88)
  00000000002FF730: 0000000142AC41DC (__tmainCRTStartup+0x019c, f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c:552)
  00000000002FF760: 0000000142AC402E (wmainCRTStartup+0x000e, f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c:371)
  00000000002FF790: 0000000076FD652D (BaseThreadInitThunk+0x000d)
  00000000002FF7E0: 000000007747C521 (RtlUserThreadStart+0x0021)
Steps To Reproduce Let MAME running and connect via VNC to the machine it is running on.
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
4
User avatar
No.09180
Firewave
Senior Tester
Dec 29, 2012, 11:21
The issue is a NULL pointer deference in winwindow_video_window_monitor() since winvideo_monitor_from_handle() returns a NULL pointer. We just need to re-try to get the pointer if it was NULL.
User avatar
No.09182
Firewave
Senior Tester
Dec 29, 2012, 11:23
Fixed in r19916.
User avatar
No.09183
Firewave
Senior Tester
Dec 29, 2012, 12:37
Fix was bogus.
User avatar
No.13534
Fujix
Administrator
Jan 10, 2017, 04:18
No more low color depth in Windows 8.1 and later. Closing this issue.