Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06605 Gameplay Critical (emulator) Always Jun 5, 2017, 22:05 Jun 14, 2021, 20:44
Tester Tafoid View Status Public Platform MAME (Official Binary)
Assigned To Resolution Fixed OS Windows Vista/7/8 (64-bit)
Status [?] Resolved Driver
Version 0.186 Fixed in Version 0.233 Build 64-bit
Fixed in Git Commit 83e21e9 Github Pull Request #
Summary 06605: gradius4: Crash during Test Mode Rom Check with -video d3d
Description Rom 7K is the last one that checks OK, then an exception. -nodrc has no effect:

Exception at EIP=0000000001b8c099 (texture_info::set_data(render_texinfo const*, unsigned int)+0x0849): ACCESS VIOLATION
While attempting to read memory at 000000041f3b0688
RAX=000000001f3b1098 RBX=0000000000000000 RCX=000000001efd8000 RDX=00000000fffffd7c
RSI=0000000000000001 RDI=0000000000000003 RBP=0000000000227ad0 RSP=0000000000227a50
 R8=000000041f3b0688 R9=0000000000000000 R10=0000000000000200 R11=0000000000000001
R12=000000001efd8880 R13=0000000000082030 R14=0000000000000000 R15=0000000015d3f1b0
Stack crawl:
  0000000000227b70: 0000000001b8c099 (texture_info::set_data(render_texinfo const*, unsigned int)+0x0849) 0000000000227cc0: 0000000001b8d256 (texture_info::texture_info(d3d_texture_manager*, render_texinfo const*, int, unsigned int)+0x0136)
  0000000000227d60: 0000000001b91300 (d3d_texture_manager::update_textures()+0x0280)
  0000000000227de0: 0000000001b91577 (renderer_d3d9::begin_frame()+0x00b7)
  0000000000227e20: 0000000001b916c9 (renderer_d3d9::draw(int)+0x0029)
  0000000000227e80: 0000000001b54e74 (win_window_info::draw_video_contents(HDC__*, int)+0x0054)
  0000000000227f70: 0000000001b59872 (win_window_info::video_window_proc(HWND__*, unsigned int, unsigned long long, long long)+0x0972)
  0000000000227fa0: 0000000001b59c9d (winwindow_video_window_proc_ui(HWND__*, unsigned int, unsigned long long, long long)+0x000d)
  0000000000228060: 0000000077639bbd (TranslateMessageEx+0x029d)
  00000000002280b0: 0000000077633b94 (CallWindowProcW+0x009c)
  00000000002280f0: 0000000077633b10 (CallWindowProcW+0x0018)
  0000000000228160: 000007feef0635d3 (Direct3DShaderValidatorCreate9+0x58f7)
  0000000000228220: 0000000077639bbd (TranslateMessageEx+0x029d)
  00000000002282b0: 0000000077636a5c (SetTimer+0x016c)
  0000000000228300: 0000000077636b61 (SendMessageW+0x005d)
  0000000000228350: 0000000001b54350 (win_window_info::update()+0x0120)
  00000000002283a0: 0000000001b53fa0 (windows_osd_interface::update(bool)+0x0050)
  0000000000228430: 0000000003244c1d (video_manager::frame_update(bool)+0x00ad)
  00000000002284c0: 000000000321a12d (screen_device::vblank_begin()+0x03ed)
  0000000000228530: 000000000321dd45 (screen_device::device_timer(emu_timer&, unsigned int, int, void*)+0x0275)
  00000000002285e0: 0000000003215695 (device_scheduler::timeslice()+0x0475)
  00000000002286e0: 00000000031d18aa (running_machine::run(bool)+0x03aa)
  000000000022f430: 0000000001beec4a (mame_machine_manager::execute()+0x00ea)
  000000000022f530: 0000000001c4d255 (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> > > >&)+0x01d5)
  000000000022f6a0: 0000000001c4d445 (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)
  000000000022f700: 0000000001beceba (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: 0000000001b43142 (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: 00000000037451b9 (wmain+0x0169)
  000000000022ff20: 0000000000401410 (__tmainCRTStartup+0x0260)
  000000000022ff50: 000000000040153b (mainCRTStartup+0x001b)
  000000000022ff80: 00000000775159cd (BaseThreadInitThunk+0x000d)
  000000000022ffd0: 000000007774a561 (RtlUserThreadStart+0x0021)
Steps To Reproduce -mame64 gradius4
-Set Test Mode Dip to ON
-mame64 gradius4
-Let test happen..
Additional Information
Github Commit
Regression Version
Affected Sets / Systems gradius4
Attached Files
png file icon 0000.png (417,707 bytes) Jun 7, 2017, 16:36 Uploaded by B2K24
png file icon 0002.png (3,515 bytes) Jun 7, 2017, 16:36 Uploaded by B2K24
png file icon sscope.png (488,971 bytes) Jan 8, 2020, 20:57 Uploaded by Firewave
png file icon sscope2.png (489,838 bytes) Jan 8, 2020, 20:58 Uploaded by Firewave
has duplicate 06994Closed  sscope: Access Violation in test mode 
related to 05951Resolved All in nwk-tr.c: Segmentation fault 
User avatar
Senior Tester
Jun 7, 2017, 16:36
I can't exactly reproduce this as outlined unless I'm not understanding something.

When the test is running, the graphics board and device checks all complete. It then informs me about a RTC CHECKSUM ERROR, PRESS TEST SWITCH TO CONTINUE.

When I execute the MASK ROM CHECK from test menu, it seems to check the first two and then MAME crashes with nothing logged into command prompt window.
User avatar
Jun 7, 2017, 18:02
edited on: Jun 7, 2017, 18:07
Are you using -video opengl ? With that, I get the screens you show above.
Default is d3d and with that I get the crash as I described.

The MASK ROM issue with crash is already logged. 06322
User avatar
Senior Tester
Jun 7, 2017, 21:43
edited on: Jun 7, 2017, 21:45
I originally had bgfx defaulted. It didn't occur to me to try different video modes. This can definitely be reproduced with -video auto or -video d3d

I should've taken notice to d3d stuff in the stack trace output (my bad)
User avatar
Senior Tester
Jan 2, 2018, 19:34
I am not able to reproduce that crash with any -video mode on Linux. And on Windows it only happens with "-video d3d" - all other modes are fine.
User avatar
Senior Tester
Jan 7, 2018, 00:29
Error #1: UNADDRESSABLE ACCESS: reading 0x00000004238f0688-0x00000004238f068c 4 byte(s)
# 0 mame64.exe!texture_info::set_data                  [../../../../../src/osd/modules/render/drawd3d.cpp:2269]
# 1 mame64.exe!texture_info::texture_info              [../../../../../src/osd/modules/render/drawd3d.cpp:2106]
# 2 mame64.exe!d3d_texture_manager::update_textures    [s:/_Emulation/msys64/mingw64/include/c++/7.2.0/bits/unique_ptr.h:825]
# 3 mame64.exe!renderer_d3d9::begin_frame              [../../../../../src/osd/modules/render/drawd3d.cpp:662]
# 4 mame64.exe!renderer_d3d9::draw                     [../../../../../src/osd/modules/render/drawd3d.cpp:235]
# 5 mame64.exe!win_window_info::video_window_proc      [../../../../../src/osd/windows/window.cpp:1393]
# 6 mame64.exe!winwindow_video_window_proc_ui          [../../../../../src/osd/windows/winmenu.cpp:23]
# 7 USER32.dll!CallWindowProcW                        +0x4dc    (0x00007ff932b4b85d <USER32.dll+0xb85d>)
# 8 USER32.dll!CallWindowProcW                        +0x376    (0x00007ff932b4b6f7 <USER32.dll+0xb6f7>)
# 9 USER32.dll!SendMessageW                           +0x34f    (0x00007ff932b4ade0 <USER32.dll+0xade0>)
#10 USER32.dll!SendMessageW                           +0xf7     (0x00007ff932b4ab88 <USER32.dll+0xab88>)
#11 mame64.exe!win_window_info::update                 [../../../../../src/osd/windows/window.cpp:889]
#12 mame64.exe!windows_osd_interface::update           [../../../../../src/osd/windows/video.cpp:94]
#13 mame64.exe!video_manager::frame_update             [../../../../../src/emu/video.cpp:229]
#14 mame64.exe!screen_device::vblank_begin             [../../../../../src/emu/screen.cpp:1525]
#15 mame64.exe!screen_device::device_timer             [../../../../../src/emu/screen.cpp:998]
#16 mame64.exe!device_scheduler::timeslice             [../../../../../src/emu/device.h:520]
#17 mame64.exe!running_machine::run                    [../../../../../src/emu/machine.cpp:350]
#18 mame64.exe!mame_machine_manager::execute           [../../../../../src/frontend/mame/mame.cpp:236]
#19 mame64.exe!cli_frontend::start_execution           [../../../../../src/frontend/mame/clifront.cpp:257]
#20 mame64.exe!cli_frontend::execute                   [../../../../../src/frontend/mame/clifront.cpp:273]
#21 mame64.exe!emulator_info::start_frontend           [../../../../../src/frontend/mame/mame.cpp:336]
#22 mame64.exe!main                                    [../../../../../src/osd/windows/winmain.cpp:315]
Note: @0:01:58.443 in thread 7292
Note: instruction: mov    (%rdi) -> %ecx
User avatar
Senior Tester
Jan 8, 2020, 20:56
edited on: Jan 8, 2020, 21:39
Testing with 0.217 I cannot reproduce this with either gradius4, nbapbp, sscope or sscope2. Also the Dip Switch is now called "Skip Post" and it needs to be disabled.

I do see failures in the checks for the second board in sccope and sscope2 though. terabrst does completely go into the weeds during the check.
User avatar
Jan 9, 2020, 01:49
edited on: Jan 9, 2020, 03:20
I renamed it to "Skip Post" because the manual states that dip switch needs to be disabled (similar to Namco System 23). Silent Scope, Silent Scope 2 and (maybe) Hang Pilot crash regardless of video mode and drc enabled/disabled from my end. I'm using MAME 64bit on Windows 10.

As for Hang Pilot, you have to comment out the init that patches the roms so it can boot in post normally. I personally think Hang Pilot shouldn't be marked as working because of relying on program rom patches (hence my suggestion to emulate the step lock but idk what drives those commands).
User avatar
Jun 14, 2021, 20:44
Fixed by Ville Linde.