Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
02321 Crash/Freeze Critical (emulator) Always Sep 22, 2008, 11:37 Oct 9, 2008, 08:58
Tester etabeta View Status Public Platform SDLMAME
Assigned To aaron Resolution Fixed OS MacOS X
Status [?] Resolved Driver
Version 0.127u4 Fixed in Version 0.127u7 Build Normal
Fixed in Git Commit Github Pull Request #
Summary 02321: m4clr, m4tst, m4tst2: Screenless systems crash due to problems in some display core functions
Description Run any screenless system in MAME (I only know of these mpu4 test unit, but it probably affect any set with no defined screen), press TAB, enter Video and try to change View from Full to Crop.

MAME crashes with the attached backtrace
Steps To Reproduce
Additional Information
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xffb3124a
0x00725e23 in layout_element_draw_rect (dest=0x1be493c0, bounds=0xbfffe7c8, color=0x757e16c) at src/emu/rendlay.c:452
452                             *BITMAP_ADDR32(dest, y, x) = MAKE_ARGB(0xff, finalr, finalg, finalb);
(gdb) bt
#0  0x00725e23 in layout_element_draw_rect (dest=0x1be493c0, bounds=0xbfffe7c8, color=0x757e16c) at src/emu/rendlay.c:452
#1  0x0072599a in layout_element_scale (dest=0x1be493c0, source=0x0, sbounds=0x1bb90ebc, param=0x75c2180) at src/emu/rendlay.c:383
#2  0x00722342 in render_texture_get_scaled (texture=0x1bb90eb0, dwidth=2147483648, dheight=2147483648, texinfo=0x75aa220, reflist=0x75c147c) at src/emu/render.c:2616
#3  0x00721217 in add_element_primitives (target=0x75c1450, list=0x75c1470, xform=0xbfffe938, element=0x7581550, state=0, blendmode=1) at src/emu/render.c:2114
#4  0x0071f586 in render_target_get_primitives (target=0x75c1450) at src/emu/render.c:1617
#5  0x006ae307 in drawogl_window_get_primitives (window=0x75d01a0) at src/osd/sdl/drawogl.c:800
#6  0x006abb3c in sdlwindow_video_window_update (machine=0x755ef20, window=0x75d01a0) at src/osd/sdl/window.c:1025
#7  0x006897e5 in osd_update (machine=0x755ef20, skip_redraw=0) at src/osd/sdl/video.c:402
#8  0x007599ad in video_frame_update (machine=0x755ef20, debug=0) at src/emu/video.c:1507
#9  0x00759698 in screenless_update_callback (machine=0x755ef20, ptr=0x0, param=0) at src/emu/video.c:1424
#10 0x0073de1a in timer_set_global_time (machine=0x755ef20, newbase={seconds = 240, attoseconds = 199999999999990392}) at src/emu/timer.c:359
#11 0x006cf79c in cpuexec_timeslice (machine=0x755ef20) at src/emu/cpuexec.c:335
#12 0x007045ec in mame_execute (options=0x7532810) at src/emu/mame.c:345
#13 0x006cc50e in cli_execute (argc=2, argv=0x7506c70, osd_options=0x2128c00) at src/emu/clifront.c:171
#14 0x00685d19 in SDL_main (argc=2, argv=0x7506c70) at src/osd/sdl/sdlmain.c:359
Github Commit
Flags
Regression Version 0.120u4 (Added)
Affected Sets / Systems m4clr, m4tst, m4tst2
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
1
User avatar
No.02528
etabeta
Developer
Sep 22, 2008, 11:45
edited on: Sep 22, 2008, 11:46
Additionally, I fear there are other core rendering functions which misbehave with screenless systems. If you repeat the procedure above in a screenless system with artwork (it happens in any such a system in MESS; these MAME sets do not have an artwork so you cannot reproduce this part), the exe crashes while rescaling the image

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x18605000
0x003f353f in resample_argb_bitmap_bilinear (dest=0x18544d00, drowpixels=2147483648, dwidth=2147483648, dheight=2147483648, source=0x19992000, srowpixels=568, swidth=564, sheight=768, color=0x18508f4c, dx=0, dy=0) at src/emu/rendutil.c:286
286                             dest[y * drowpixels + x] = MAKE_ARGB(suma, sumr, sumg, sumb);
(gdb) bt
#0  0x003f353f in resample_argb_bitmap_bilinear (dest=0x18544d00, drowpixels=2147483648, dwidth=2147483648, dheight=2147483648, source=0x19992000, srowpixels=568, swidth=564, sheight=768, color=0x18508f4c, dx=0, dy=0) at src/emu/rendutil.c:286
#1  0x003f2722 in render_resample_argb_bitmap_hq (dest=0x18544d00, drowpixels=2147483648, dwidth=2147483648, dheight=2147483648, source=0x3dc3cd0, orig_sbounds=0x0, color=0x18508f4c) at src/emu/rendutil.c:88
#2  0x003ea8f9 in layout_element_scale (dest=0x3d65cb0, source=0x0, sbounds=0x3fe7ebc, param=0x3d80950) at src/emu/rendlay.c:374
#3  0x003e729d in render_texture_get_scaled (texture=0x3fe7eb0, dwidth=2147483648, dheight=2147483648, texinfo=0x1853b210, reflist=0x3d80c5c) at src/emu/render.c:2616
#4  0x003e6167 in add_element_primitives (target=0x3d80c40, list=0x3d80c50, xform=0xbfffe978, element=0x3dac200, state=0, blendmode=3) at src/emu/render.c:2114
#5  0x003e44d6 in render_target_get_primitives (target=0x3d80c40) at src/emu/render.c:1617
#6  0x0036300f in drawogl_window_get_primitives (window=0x1850c670) at src/osd/sdl/drawogl.c:800
#7  0x00360846 in sdlwindow_video_window_update (machine=0x3d61330, window=0x1850c670) at src/osd/sdl/window.c:1025
#8  0x0033e3cb in osd_update (machine=0x3d61330, skip_redraw=0) at src/osd/sdl/video.c:402
#9  0x0041e81c in video_frame_update (machine=0x3d61330, debug=0) at src/emu/video.c:1507
#10 0x0041e4f7 in screenless_update_callback (machine=0x3d61330, ptr=0x0, param=0) at src/emu/video.c:1424
#11 0x00402e60 in timer_set_global_time (machine=0x3d61330, newbase={seconds = 9, attoseconds = 49999999999999638}) at src/emu/timer.c:359
#12 0x00393e46 in cpuexec_timeslice (machine=0x3d61330) at src/emu/cpuexec.c:335
#13 0x003c93f0 in mame_execute (options=0x3d326a0) at src/emu/mame.c:345
#14 0x00390d46 in cli_execute (argc=2, argv=0x3d06c50, osd_options=0xe59a20) at src/emu/clifront.c:171
#15 0x0033a85a in SDL_main (argc=2, argv=0x3d06c50) at src/osd/sdl/sdlmain.c:359

According to Judge: "it scales to infinite width and infinite height"

I leave this note here if Aaron is interested in taking a look to this (since it's however part of the core and could affect later MAME sets)