Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
01908 Crash/Freeze Critical (emulator) Always Jun 18, 2008, 16:31 Jun 20, 2008, 14:42
Tester Firewave View Status Public Platform MAME (Self-compiled)
Assigned To aaron Resolution Fixed OS Windows XP/Vista 64-bit
Status [?] Resolved Driver
Version 0.125u6 Fixed in Version 0.125u7 Build Debug
Summary 01908: Various: [debug] Access Violation when saving a snapshot
Description A lot of drivers are crashing, if you run them with -video none. Here is an example:

20pacgal.c: 20pacgal

-----------------------------------------------------
Exception at EIP=009ED69F (video_get_view_for_target+0x48fc): ACCESS VIOLATION
While attempting to read memory at 12BB0000
-----------------------------------------------------
EAX=12BB0000 EBX=12B71000 ECX=00000000 EDX=000000E1
ESI=12DF1000 EDI=00000000 EBP=0022F7A8 ESP=0022F768
Steps To Reproduce
Additional Information
Flags Debug build specific
Regression Version 0.125u6
Affected Sets / Systems Various
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
5
User avatar
No.01316
Tafoid
Administrator
Jun 18, 2008, 16:43
It would seem to be a Debug build only crash, as a normal build runs fine for me: mame 20pacgal -video none -str 5. I hear sounds but no crash - normal exit after time is done.
User avatar
No.01330
Firewave
Senior Tester
Jun 19, 2008, 22:37
edited on: Jun 20, 2008, 00:09
Here is the backtrace (with -nosound -video none -window -nodebug -rp d:\_roms\mame -str 2 20pacgal):

Program received signal SIGSEGV, Segmentation fault.
0x00a03c74 in get_texel_rgb32_bilinear (texture=0x127b1fc8, curu=0,
    curv=14680064) at src/emu/rendersw.c:325
325 pix00 = texbase[0];
(gdb) bt full
#0 0x00a03c74 in get_texel_rgb32_bilinear (texture=0x127b1fc8, curu=0,
    curv=14680064) at src/emu/rendersw.c:325
        texbase = (const UINT32 *) 0x12bb0000
        u1 = 1
        v1 = 0
        pix00 = 2291592
        pix01 = 2008965523
        pix10 = 895
        pix11 = 1081213823
#1 0x00a03364 in rgb888_draw_quad_rgb32 (prim=0x127b1f98,
    dstdata=0x13c71000, pitch=224, setup=0x22f8b0) at src/emu/rendersw.c:1415
        pix = 43493684
        r = 43493688
        g = 224
        b = 60
        dest = (UINT32 *) 0x13c71000
        curu = 0
        curv = 14680064
        palbase = (const rgb_t *) 0xb571e00
        dudx = 0
        dvdx = -65536
        endx = 224
        x = 0
        y = 0
#2 0x00a05cc8 in rgb888_setup_and_draw_textured_quad (prim=0x127b1f98,
    dstdata=0x13c71000, width=224, height=288, pitch=224)
    at src/emu/rendersw.c:2054
        fdudx = 0
        fdvdx = -0.00446428591
        fdudy = 0.00347222225
        fdvdy = 0
        setup = {dudx = 0, dvdx = -65536, dudy = 65536, dvdy = 0, startu = 0,
  startv = 14680064, startx = 0, starty = 0, endx = 224, endy = 288}
#3 0x00a05e15 in rgb888_draw_primitives (primlist=0x127b1f98,
    dstdata=0x13c71000, width=224, height=288, pitch=224)
    at src/emu/rendersw.c:2102
        prim = (const render_primitive *) 0x127b1f98
#4 0x009fe78d in create_snapshot_bitmap (screen=0xb411f84)
    at src/emu/video.c:2245
        primlist = (const render_primitive_list *) 0x12ce1fa0
        width = 224
        height = 288
        view_index = 2103570936
#5 0x009fe35a in video_screen_save_snapshot (machine=0xb3d1f3c,
    screen=0xb411f84, fp=0x13c21ee0) at src/emu/video.c:2146
        pnginfo = {image = 0x0, width = 0, height = 0, xres = 0, yres = 0,
  screen = {min_x = 0, max_x = 0, min_y = 0, max_y = 0}, xscale = 0,
  yscale = 0, source_gamma = 0, resolution_unit = 0, bit_depth = 0 '\0',
  color_type = 0 '\0', compression_method = 0 '\0', filter_method = 0 '\0',
  interlace_method = 0 '\0', palette = 0x0, num_palette = 0, trans = 0x0,
  num_trans = 0, textlist = 0x0}
        palette = (const rgb_t *) 0x86a1e58
        error = 35640319
        text = "°±a}??a} \000\000\000\000½?a}\030·\"\000?\233M}\000\000\000\0
00\225?a}Z½M} ??\"\000??\"\000\000\200\000\000\000\000\000\000\000\000\000\00
0??\"\000\207½M} \000\000?\023\0000\000\000\000\200\000\000\030·\"\000g?*\001
\000\000?\023\000\000\000\000\000\200\000\000\030\000\000\000\030·\"\000BºM}\020
\003\000\000\020·\"\000\000\000\000\000?\0005\023\210·\"\000D\036+\001?\037?\023
0\0025\002\227\000\000\000\000\000\000\000\002", '\0' <repeats 12 times>, "\020\
000\000?\0005\023\002\000\000\000\000\000\000@\213?*\001\000\020?\023\000\000\00
0\000\002\000"...
#6 0x009fe236 in recompute_speed (machine=0xb3d1f3c, emutime=
      {seconds = 2, attoseconds = 16666666666666586}) at src/emu/video.c:2112
        fname = (astring *) 0x13c11f00
        filerr = FILERR_NONE
        file = (mame_file *) 0x13c21ee0
        delta_emutime = 149999999999999994
#7 0x009fcc5a in video_frame_update (machine=0xb3d1f3c, debug=0)
    at src/emu/video.c:1472
        current_time = {seconds = 2, attoseconds = 16666666666666586}
        skipped_it = 0
        phase = 3
#8 0x009fc7b4 in vblank_begin_callback (machine=0xb3d1f3c, ptr=0xb411f84,
    param=0) at src/emu/video.c:1331
        i = 2
        screen = (device_config *) 0xb411f84
        state = (screen_state *) 0x12841f48
#9 0x00a21837 in timer_set_global_time (newbase=
      {seconds = 2, attoseconds = 16666666666666586}) at src/emu/timer.c:360
        was_enabled = 1
        timer = (emu_timer *) 0x29695f0
#10 0x00a2a287 in cpuexec_timeslice (machine=0xb3d1f3c)
    at src/emu/cpuexec.c:332
        target = {seconds = 2, attoseconds = 16666666666666586}
        base = {seconds = 2, attoseconds = 12641050835726}
        cpunum = 1
        ran = 306974
#11 0x009e7ce4 in mame_execute (options=0x86a1e58) at src/emu/mame.c:397
        settingsloaded = 1
        driver = (const game_driver *) 0x1a3dea0
        machine = (running_machine *) 0xb3d1f3c
        mame = (mame_private *) 0xb3e1d68
        cb = (callback_item *) 0x86a1e58
        gamename = (astring *) 0xb3d1f00
        exit_pending = 0
        error = 0
        firstgame = 0
        firstrun = 0
#12 0x00c0fe53 in cli_execute (argc=11, argv=0x85b1fd4, osd_options=0x21d2c10)
    at src/emu/clifront.c:171
        options = (core_options *) 0x86a1e58
        gamename = (astring *) 0x8681f00
        exename = (astring *) 0x8691f00
        gamename_option = 0x86d1f08 "20pacgal"
        driver = (const game_driver *) 0x1a3dea0
        result = -1
#13 0x00989191 in utf8_main (argc=11, argv=0x85b1fd4)
    at src/osd/windows/winmain.c:256
        ext = 0x28cf578 ".map"
#14 0x012af33a in main (argc=11, a_argv=0x6a725a8)
    at src/osd/windows/main.c:72
        i = 11
        rc = -1
        utf8_argv = (char **) 0x85b1fd4
        argv = (TCHAR **) 0x6a72650
        wenviron = (WCHAR **) 0x6a74ca0
        startupinfo = 111617448
User avatar
No.01332
Tafoid
Administrator
Jun 20, 2008, 00:08
I tried 20pacgal with mame debug build .. and it doesn't matter if I put -video_none or not .. if I use -str AT ALL, it crashes after time is up. If -str isn't there, it doesn't crash for me.
User avatar
No.01333
Firewave
Senior Tester
Jun 20, 2008, 00:12
The backtrace also shows it's the snapshot code, that is causing the crash. Run the set and just hit F12 and you get the same crash.
User avatar
No.01334
Tafoid
Administrator
Jun 20, 2008, 00:23
Yup.. sure does at that.