mamedev / mame

MAME
https://www.mamedev.org/
Other
8.05k stars 2k forks source link

Crash on ssystem3 / saitek_ssystem3.cpp #5584

Closed john-iv closed 5 years ago

john-iv commented 5 years ago

0.212 (mame0212-684-g17e43dada2) / 9/2/2019 6am PST Win10 x64

Attempts to run ssystem3 receive an immediate fault.

c:\O\Games\MAME>mame ssystem3


Exception at EIP=0000000005c10026 (not found): ACCESS VIOLATION While attempting to read memory at 0000000000000010

RAX=000000000ded5500 RBX=0000000000000000 RCX=0000000000000000 RDX=000000000d55de4e RSI=0000000011ccd990 RDI=000000000f9a9710 RBP=0000000011cf6b40 RSP=000000000f9a7920 R8=000000000a24d1b0 R9=0000000000000006 R10=0000000000000000 R11=8101010101010100 R12=000000000f9a7bd0 R13=0000000011ccd9c8 R14=000000000d54bb1f R15=0000000000000000

Stack crawl: 000000000f9a7950: 0000000005c10026 (not found) 000000000f9a7dd0: 00000000058614f9 (not found) 000000000f9a7fe0: 00000000058491c3 (not found) 000000000f9a8d60: 000000000584a8f7 (not found) 000000000f9a8db0: 000000000584d889 (not found) 000000000f9a8e20: 000000000584da46 (not found) 000000000f9a8ee0: 0000000003bce99c (not found) 000000000f9a8f50: 0000000003bc9fe6 (not found) 000000000f9a9070: 0000000003bbfdb7 (not found) 000000000f9a9330: 0000000003bb858a (not found) 000000000f9a9420: 000000000583469b (not found) 000000000f9a94f0: 000000000583686a (not found) 000000000f9af1d0: 0000000003c74fc8 (not found) 000000000f9af440: 0000000003ce7f57 (not found) 000000000f9af610: 0000000003ce82bd (not found) 000000000f9af670: 0000000003c73067 (not found) 000000000f9afe20: 0000000009c084b7 (not found) 000000000f9afef0: 00000000004013a5 (not found) 000000000f9aff20: 000000000040150b (not found) 000000000f9aff50: 00007ffc885b7bd4 (BaseThreadInitThunk+0x0014) 000000000f9affd0: 00007ffc8a48cee1 (RtlUserThreadStart+0x0021)

happppp commented 5 years ago

Looks like you don't have mame.sym, so unfortunately there's no useful info in that stack trace. The game works fine for me, both on my own MAME build and also on a daily build provided by Tafoid. When the official MAME binary is released, please try again on that version.

john-iv commented 5 years ago

Hi Hap, I built a debug / symbols version and here's the backtrace:

(gdb) run ssystem3 -window Starting program: c:\O\Games\MAME\mame.exe ssystem3 -window [New Thread 10872.0x2b48] [New Thread 10872.0x2c30] [New Thread 10872.0x2a24] [New Thread 10872.0x43e8] [New Thread 10872.0x588] [New Thread 10872.0x3d70] [New Thread 10872.0x3a38]

Thread 1 received signal SIGSEGV, Segmentation fault. 0x0000000006478c5a in util::xml::data_node::get_child(char const*) const () at ../../../../../src/lib/util/xmlfile.cpp:292 292 } (gdb) bt

0 0x0000000006478c5a in util::xml::data_node::get_child(char const*) const ()

at ../../../../../src/lib/util/xmlfile.cpp:292

1 0x000000000614a1b9 in layout_file::layout_file () at ../../../../../src/emu/rendlay.cpp:3534

2 0x0000000006131d7d in __gnu_cxx::new_allocator<std::_List_node >::construct<layout_file, device_t&, util::xml::data_node const&, char const*&> () at c:/buildtools/mingw64/include/c++/8.3.0/ext/new_allocator.h:136

3 std::allocator_traits<std::allocator<std::_List_node > >::construct<layout_file, device_t&, util::xml::data_node const&, char const*&> () at c:/buildtools/mingw64/include/c++/8.3.0/bits/alloc_traits.h:475

4 std::__cxx11::list<layout_file, std::allocator >::_M_create_node<device_t&, util::xml::data_node const&, char const*&> () at c:/buildtools/mingw64/include/c++/8.3.0/bits/stl_list.h:645

5 std::__cxx11::list<layout_file, std::allocator >::_M_insert<device_t&, util::xml::data_node const&, char const*&> () at c:/buildtools/mingw64/include/c++/8.3.0/bits/stl_list.h:1903

6 std::__cxx11::list<layout_file, std::allocator >::emplace_back<device_t&, util::xml::data_node const&, char const*&> () at c:/buildtools/mingw64/include/c++/8.3.0/bits/stl_list.h:1235

7 render_target::load_layout_file () at ../../../../../src/emu/render.cpp:2079

8 render_target::load_layout_file () at ../../../../../src/emu/render.cpp:2063

9 0x0000000006132f1b in render_target::load_additional_layout_files () at ../../../../../src/emu/render.cpp:1589

10 0x0000000006135dea in render_target::load_layout_files () at ../../../../../src/emu/render.cpp:1551

11 render_target::render_target<internal_layout const*&> () at ../../../../../src/emu/render.cpp:946

12 0x0000000006135fa9 in render_target::render_target () at ../../../../../src/emu/render.cpp:880

13 render_manager::target_alloc () at ../../../../../src/emu/render.cpp:2989

14 0x00000000043003ba in win_window_info::create () at ../../../../../src/osd/windows/window.cpp:780

15 0x00000000042fa4ff in windows_osd_interface::video_init () at ../../../../../src/osd/windows/video.cpp:63

16 0x00000000042efa07 in osd_common_t::init_subsystems ()

at ../../../../../src/osd/modules/lib/osdobj_common.cpp:650

17 0x00000000042e8300 in windows_osd_interface::init () at ../../../../../src/osd/windows/winmain.cpp:567

18 0x000000000611b3a8 in running_machine::start () at ../../../../../src/emu/machine.cpp:205

19 0x000000000611d2f1 in running_machine::run () at ../../../../../src/emu/machine.cpp:309

20 0x00000000043bda78 in mame_machine_manager::execute () at ../../../../../src/frontend/mame/mame.cpp:261

21 0x0000000004432b86 in cli_frontend::start_execution () at ../../../../../src/frontend/mame/clifront.cpp:264

22 0x0000000004432ee3 in cli_frontend::execute () at ../../../../../src/frontend/mame/clifront.cpp:280

23 0x00000000043bbaaa in emulator_info::start_frontend () at ../../../../../src/frontend/mame/mame.cpp:392

24 0x000000000a764dcd in main () at ../../../../../src/osd/windows/winmain.cpp:324

john-iv commented 5 years ago

Interesting. mame ssystem3 -norc works. Something in the *.ini. Attached. MAMEini.zip

john-iv commented 5 years ago

Appears to not care for the ssystem3.zip artwork. When I remove that from my artwork folder it defaults to the internal layout and plays. With it it faults. ssystem3.zip

c:\O\Games\MAME>mame ssystem3 -v Attempting load of mame.ini Parsing mame.ini Attempting load of mame.ini Parsing mame.ini Attempting load of horizont.ini Attempting load of console.ini Attempting load of source\saitek_ssystem3.ini Attempting load of ssystem3.ini Attempting load of mame.ini Parsing mame.ini Attempting load of mame.ini Parsing mame.ini Attempting load of horizont.ini Attempting load of console.ini Attempting load of source\saitek_ssystem3.ini Attempting load of ssystem3.ini Video: Monitor 65539 = "\.\DISPLAY1" Video: Monitor 65537 = "\.\DISPLAY2" (primary) Direct3D: Using Direct3D 9 unzip: opened archive file artwork_ingame\ssystem3.zip unzip: found artwork_ingame\ssystem3.zip ECD unzip: artwork_ingame\ssystem3.zip has no ZIP64 ECD locator unzip: read artwork_ingame\ssystem3.zip central directory unzip: closing archive file artwork_ingame\ssystem3.zip and sending to cache unzip: found artwork_ingame\ssystem3.zip in cache unzip: opened archive file artwork_ingame\ssystem3.zip unzip: closing archive file artwork_ingame\ssystem3.zip and sending to cache


Exception at EIP=0000000006478c5a (not found): ACCESS VIOLATION While attempting to read memory at 0000000000000010

RAX=000000000ec8ae50 RBX=0000000000000000 RCX=0000000000000000 RDX=000000000e304c16 RSI=0000000064e66f00 RDI=0000000062c894a0 RBP=0000000062c87690 RSP=0000000062c87670 R8=000000000ada02b0 R9=0000000000000006 R10=0000000000000000 R11=8101010101010100 R12=0000000064e78f50 R13=0000000062c87920 R14=0000000064e66f38 R15=0000000064e78f50

Stack crawl: 0000000062c87680: 0000000006478c5a (not found) 0000000062c87b20: 000000000614a1b9 (not found) 0000000062c87d40: 0000000006131d7d (not found) 0000000062c88ac0: 0000000006132f1b (not found) 0000000062c88b20: 0000000006135dea (not found) 0000000062c88b90: 0000000006135fa9 (not found) 0000000062c88c50: 00000000043003ba (not found) 0000000062c88cd0: 00000000042fa4ff (not found) 0000000062c88df0: 00000000042efa07 (not found) 0000000062c890a0: 00000000042e8300 (not found) 0000000062c891a0: 000000000611b3a8 (not found) 0000000062c89280: 000000000611d2f1 (not found) 0000000062c8ef60: 00000000043bda78 (not found) 0000000062c8f1d0: 0000000004432b86 (not found) 0000000062c8f600: 0000000004432ee3 (not found) 0000000062c8f660: 00000000043bbaaa (not found) 0000000062c8fe20: 000000000a764dcd (not found) 0000000062c8fef0: 00000000004013a5 (not found) 0000000062c8ff20: 000000000040150b (not found) 0000000062c8ff50: 00007ffc885b7bd4 (BaseThreadInitThunk+0x0014) 0000000062c8ffd0: 00007ffc8a48cee1 (RtlUserThreadStart+0x0021)

Robbbert commented 5 years ago

The old external artwork no longer works, for all chess games. You need to remove it from your artpath.

cuavas commented 5 years ago

Does the old artwork pass complay.py checks?

john-iv commented 5 years ago

Doesn't appear so; if I'm doing this right: C:\BuildTools\src\scripts\build>python complay.py default.lay error: default.lay:8:1: Encountered unexpected element view fatal error: default.lay:64:2: mismatched tag

cuavas commented 5 years ago

Yeah, that looks like there's an error in the layout file itself that was somehow being ignored before. If you can't work it out, paste the content of the file here.

john-iv commented 5 years ago

The zip is in the comment above. I'll ping Mr. Do and let him know there may be trouble w/ the old chess layouts. Thanks -

happppp commented 5 years ago

Right, that default.lay is broken. But then I don't understand why it didn't crash before my driver update.

<element name="button" defstate="0">

Should have a closing tag, so at the least like this: <element name="button" defstate="0" />

cuavas commented 5 years ago

I'm aware MAME should do better than crash on invalid layouts, but that's a known issue - invalid element nesting can cause MAME to crash.

cuavas commented 5 years ago

FWIW, as of fde41f3faddc576c28363dddfe8971cba3b6a5cc MAME will print a warning and continue, ignoring the layout file. Now we can get bug reports from people saying artwork doesn't show when their layout files are actually malformed.