Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
05951 Crash/Freeze Critical (emulator) Always Jun 2, 2015, 19:05 Nov 15, 2022, 00:11
Tester NekoEd View Status Public Platform SDLMAME
Assigned To Resolution Fixed OS
Status [?] Resolved Driver
Version 0.162 Fixed in Version Build
Fixed in Git Commit Github Pull Request #
Summary 05951: All in nwk-tr.c: Segmentation fault
Description These games will segfault at a random time after booting.
Steps To Reproduce thrilld and clones: Start game and wait, or play a game. What you or the game is doing does not seem to matter.

racingj and clones: Start game and wait for the point where graphics should appear. It will crash.
Additional Information One crash in thrilldb was not a segfault but a MAME exception, reporting the following:
FATALERROR: sharc_iop_r: Unimplemented IOP reg 81 at 00022473

thrilldae cannot be tested as it does not boot. It should be noted however that this game does not seem to segfault.
Github Commit
Flags
Regression Version
Affected Sets / Systems All in nwk-tr.c
Attached Files
 
Relationships
related to 05632Resolved  racingj2, racingj2j: [debug] Crash shortly after OK 
related to 06605Resolved  gradius4: Crash during Test Mode Rom Check with -video d3d 
Notes
5
User avatar
No.11706
B2K24
Senior Tester
Jun 2, 2015, 19:23
edited on: Jun 2, 2015, 19:25
On my official windows build, I launched thrilld and watched the attract mode run for about 5-8 minutes. After that time MAME closed itself with a stack crawl message.

-----------------------------------------------------
Exception at EIP=0000000001D556B9 (adsp21062_device::execute_run()+0x0169): ACCE
SS VIOLATION
While attempting to read memory at 0000000209F8EDAC
-----------------------------------------------------
RAX=00000000FFFA0000 RBX=000000000A04A0C0 RCX=0000000000000000 RDX=0000000000000
000
RSI=0000000006D5517C RDI=0000000000000FA0 RBP=0000000000228A90 RSP=0000000000228
A70
 R8=0000000000000448  R9=0000000000000000 R10=00000000187F3C10 R11=0000000001D4E
2B0
R12=0000000007F97D00 R13=0000000007F97D00 R14=0000000007F97D00 R15=000000000022F
588
-----------------------------------------------------
Stack crawl:
  0000000000228A80: 0000000001D556B9 (adsp21062_device::execute_run()+0x0169)
  0000000000228B40: 00000000024A06F1 (device_scheduler::timeslice()+0x04b1)
  0000000000228BA0: 00000000024AD4F8 (running_machine::run(bool)+0x0188)
  000000000022F690: 00000000024A1C4B (machine_manager::execute()+0x024b)
  000000000022F840: 00000000025474EB (cli_frontend::execute(int, char**)+0x0d9b)

  000000000022FDF0: 00000000014CDBE4 (utf8_main(int, char**)+0x0174)
  000000000022FE50: 00000000028ECCFE (wmain+0x007e)
  000000000022FF20: 00000000004013CA (__tmainCRTStartup+0x024a)
  000000000022FF50: 00000000004014F8 (mainCRTStartup+0x0018)
  000000000022FF80: 00000000768559DD (BaseThreadInitThunk+0x000d)
  000000000022FFD0: 0000000076F4A651 (RtlUserThreadStart+0x0021)
User avatar
No.11707
NekoEd
Senior Tester
Jun 2, 2015, 19:29
edited on: Jun 2, 2015, 19:30
"ACCESS VIOLATION" is what Windows calls a "Segmentation Fault". Just a different name for the same mechanism.
User avatar
No.14646
Firewave
Senior Tester
Jan 10, 2018, 22:07
Some testing with 0.193

racingj, racingj2, racing2j
Was reported as MT05632 and is fixed in 0.194
Fatal error: SHARC: Loop Stack underflow!

thrilldae
Does not boot - fails with "RTC SELF CHECK ERROR" . Since this is marked MACHINE_NOT_WORKING it is not a valid report.

thrilld, thrilldb
thrilld crashed on Linux. On Windows with the official binary both froze for me once. This is the only valid and remaining issue here
==235949==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x00000d888432 bp 0x7ffcbd1f4f30 sp 0x7ffcbd1f4c20 T0)
==235949==The signal is caused by a READ memory access.
==235949==Hint: address points to the zero page.
    #0 0xd888431 in genTexture /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/video/vooddefs.h:2858:10
    #1 0xd888431 in voodoo_device::raster_generic_2tmu(void*, int, poly_extent const*, void const*, int) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/video/voodoo.cpp:5981
    #2 0xdfbf6f5 in poly_item_callback(void*, int) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/video/polylgcy.cpp:1335:5
    #3 0xfba1463 in worker_thread_process(osd_work_queue*, work_thread_info*) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/osd/osdsync.cpp:766:19
    #4 0xfba0c72 in osd_work_queue_wait(osd_work_queue*, unsigned long) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/osd/osdsync.cpp:353:3
    #5 0xdfbed70 in poly_wait(legacy_poly_manager*, char const*) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/video/polylgcy.cpp:408:3
    #6 0xd8621fe in voodoo_device::register_w(voodoo_device*, unsigned int, unsigned int) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/video/voodoo.cpp:2858:4
    #7 0xd85b553 in voodoo_device::flush_fifos(voodoo_device*, attotime) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/video/voodoo.cpp:3615:15
    #8 0xd873926 in voodoo_device::voodoo_w(address_space&, unsigned int, unsigned int, unsigned int) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/video/voodoo.cpp:3680:3
    #9 0x2c6dbde in konppc_device::nwk_voodoo_0_w(address_space&, unsigned int, unsigned int, unsigned int) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/mame/machine/konppc.cpp:504:11
    #10 0xe362d35 in operator() /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/lib/util/delegate.h:544:11
    #11 0xe362d35 in write32 /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/emu/emumem.cpp:470
    #12 0xe362d35 in write_native /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/emu/emumem.cpp:1194
    #13 0xe362d35 in address_space_specific<unsigned int, (endianness_t)0, -2, true>::write_dword(unsigned int, unsigned int) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/emu/emumem.cpp:1482
    #14 0xbd64a66 in dm_write32 /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/cpu/sharc/sharcmem.hxx:32:10
    #15 0xbd64a66 in adsp21062_device::sharcop_ureg_to_dm_direct() /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/cpu/sharc/sharcops.hxx:2442
    #16 0xbd7f2e8 in adsp21062_device::execute_run() /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/cpu/sharc/sharc.cpp:1093:4
    #17 0xbd8010f in non-virtual thunk to adsp21062_device::execute_run() /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/cpu/sharc/sharc.cpp
    #18 0xe78e272 in run /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/emu/diexec.h:188:15
    #19 0xe78e272 in device_scheduler::timeslice() /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/emu/schedule.cpp:481
    #20 0xe6a324b in running_machine::run(bool) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/emu/machine.cpp:357:17
    #21 0x8cd10e0 in mame_machine_manager::execute() /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/frontend/mame/mame.cpp:236:19
    #22 0x8e1e0d3 in 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&) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/frontend/mame/clifront.cpp:257:22
    #23 0x8e20ee0 in 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> > > >&) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/frontend/mame/clifront.cpp:273:3
    #24 0x8cd3717 in 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> > > >&) /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/frontend/mame/mame.cpp:336:18
    #25 0x8acddf2 in main /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/osd/sdl/sdlmain.cpp:216:9
    #26 0x7f212534082f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:291
    #27 0x1431838 in _start (/mnt/mame/mame64_as+0x1431838)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /mnt/mame/build/projects/sdl/mame/gmake-linux-clang/../../../../../src/devices/video/vooddefs.h:2858:10 in genTexture
User avatar
No.14648
Osso
Moderator
Jan 11, 2018, 09:50
edited on: Jan 11, 2018, 10:00
Also MAME crashes when putting the "test mode" dip-switch on, resetting and letting the game run through the rom tests. It only seems to happen with -video d3d.
Apparently with 0.144 it worked, with 0.145 it exited without crash, from 0.146 onwards it crashes.
User avatar
No.20816
Firewave
Senior Tester
Nov 15, 2022, 00:10
edited on: Nov 15, 2022, 00:12
With 0.249 on Windows I get a fatalerror with thrilld while driving a race shortly after passing the bus on the Japan stage:
Fatal error: SHARC: Loop Stack underflow!

At the same place on Linux it stops updating the 3D graphics - the 2D parts are still being updated.

As all sets are marked MNW and there are no more crashes I am resolving this.