Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
05854 Crash/Freeze Critical (emulator) Always Feb 26, 2015, 09:04 Apr 1, 2015, 01:47
Tester Firewave View Status Public Platform MESS (Self-compiled)
Assigned To mahlemiut Resolution Fixed OS Linux
Status [?] Resolved Driver ngen.cpp
Version 0.159 Fixed in Version 0.161 Build Debug
Summary MESS-specific 05854: 386i, ngenb38: [debug] Assertion
MAME exception: assert: src/emu/memory.c:4220: handlermask != 0
Steps To Reproduce
Additional Information
Flags Debug build specific
Regression Version
Affected Sets / Systems 386i, ngenb38
Attached Files
There are no relationsihp linked to this issue.
User avatar
Mar 1, 2015, 20:25
Is it possible for you to post a backtrace for this?
User avatar
Senior Tester
Mar 2, 2015, 08:09
Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff43ebfb7 in kill () at ../sysdeps/unix/syscall-template.S:81
81 ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) bt
#0 0x00007ffff43ebfb7 in kill () at ../sysdeps/unix/syscall-template.S:81
#1 0x00000000064d6791 in osd_break_into_debugger (message=<optimized out>)
    at src/osd/modules/lib/osdlib_unix.c:149
#2 0x00000000058d4371 in emu_fatalerror::emu_fatalerror (
    this=<optimized out>, format=<optimized out>) at src/emu/emucore.c:31
#3 0x0000000005a33798 in handler_entry::configure_subunits (
    this=<optimized out>, handlermask=<optimized out>,
    handlerbits=<optimized out>, start_slot=<optimized out>,
    end_slot=<optimized out>) at src/emu/memory.c:4220
#4 0x0000000005a283ef in handler_entry_read::set_delegate(device_delegate<unsigned short (address_space&, unsigned int, unsigned short)>, unsigned long long)
    (this=<optimized out>, delegate=..., mask=<optimized out>)
    at src/emu/memory.c:4486
#5 0x0000000005a11537 in set_delegate<device_delegate<unsigned short (address_space &, unsigned int, unsigned short)> > (this=<optimized out>, delegate=...)
    at src/emu/memory.c:486
#6 address_space::install_read_handler(unsigned int, unsigned int, unsigned int, unsigned int, device_delegate<unsigned short (address_space&, unsigned int, unsigned short)>, unsigned long long) (this=0x62c000020200, addrstart=256,
    addrend=511, addrmask=<optimized out>, addrmirror=<optimized out>,
    handler=..., unitmask=<optimized out>) at src/emu/memory.c:2474
#7 0x0000000005a1b1c6 in address_space::install_readwrite_handler(unsigned int, unsigned int, unsigned int, unsigned int, device_delegate<unsigned short (address_space&, unsigned int, unsigned short)>, device_delegate<void (address_space&, unsigned int, unsigned short, unsigned short)>, unsigned long long) (
    this=0x62c000020200, addrstart=256, addrend=511, addrmask=0, addrmirror=0,
    rhandler=..., whandler=..., unitmask=<optimized out>)
    at src/emu/memory.c:2488
#8 0x000000000253de34 in ngen_state::xbus_w (this=<optimized out>, space=...,
    offset=<optimized out>, data=<optimized out>, mem_mask=<optimized out>)
    at src/mess/drivers/ngen.c:432
#9 0x0000000005a3670f in operator() (p1=..., p2=<optimized out>,
    p3=<optimized out>, p4=<optimized out>, this=<optimized out>)
    at src/lib/util/delegate.h:653
#10 handler_entry_write::write_stub_32 (this=<optimized out>, space=...,
    offset=0, data=1, mask=<optimized out>) at src/emu/memory.c:4907
#11 0x0000000005a54110 in operator() (p2=0, p3=1, p4=65535,
    this=<optimized out>, p1=...) at src/lib/util/delegate.h:653
#12 write32 (this=<optimized out>, offset=0, space=..., data=<optimized out>,
    mask=<optimized out>) at src/emu/memory.c:422
#13 address_space_specific<unsigned int, (endianness_t)0, false>::write_native
    (this=0x62c000020200, offset=<optimized out>, data=1, mask=65535)
    at src/emu/memory.c:1122
#14 0x0000000005a53771 in write_direct<unsigned short, true> (this=0x7eaf,
    address=<optimized out>, mask=65535, data=<optimized out>)
    at src/emu/memory.c:1295
#15 address_space_specific<unsigned int, (endianness_t)0, false>::write_word (
    this=0x7eaf, address=<optimized out>, data=<optimized out>)
    at src/emu/memory.c:1427
#16 0x0000000003e4f412 in WRITEPORT16 (this=<optimized out>,
    port=<optimized out>, value=<optimized out>)
    at src/emu/cpu/i386/i386priv.h:1150
#17 i386_device::i386_out_ax_dx (this=<optimized out>)
    at src/emu/cpu/i386/
#18 0x0000000003e12493 in i386_device::i386_decode_opcode (
    this=<optimized out>) at src/emu/cpu/i386/i386.c:2876
#19 0x0000000003f3dcec in i386_device::execute_run (this=0x7fffebb4f800)
    at src/emu/cpu/i386/i386.c:3940
#20 0x0000000003f3e000 in non-virtual thunk to i386_device::execute_run() ()
    at src/emu/cpu/i386/i386.c:3957
#21 0x0000000005ad912b in run (this=<optimized out>) at src/emu/diexec.h:191
#22 device_scheduler::timeslice (this=<optimized out>)
    at src/emu/schedule.c:476
#23 0x00000000059f6f09 in running_machine::run (this=0x7fffffff6a80,
    firstrun=<optimized out>) at src/emu/machine.c:397
#24 0x00000000059eefa7 in machine_manager::execute (this=0x60f00000dd80)
    at src/emu/mame.c:222
#25 0x000000000582149d in cli_frontend::execute (this=0x7fffffffe3c0,
    argc=<optimized out>, argv=<optimized out>) at src/emu/clifront.c:220
#26 0x0000000002ece0dc in main (argc=<optimized out>, argv=<optimized out>)
    at src/osd/sdl/sdlmain.c:322
User avatar
Mar 5, 2015, 02:38
Does removing the third and fourth parameter from line 432 in ngen.c stop triggering the assert?
User avatar
Mar 6, 2015, 09:00
The assert still happens after removing the third and fourth parameters (0,0)
User avatar
Mar 7, 2015, 02:56
Ok, thanks. If the mask (third parameter) is set to 0xffff, then does that clear it up?
User avatar
Mar 7, 2015, 13:52
Doesn't seem to help, unfortunately.
User avatar
Apr 1, 2015, 01:46
Finally got around to making a debug build, should be fixed now in current GIT code.