Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
00484 Crash/Freeze Critical (emulator) Have not tried Jan 30, 2008, 07:37 May 30, 2008, 14:20
Tester ponzicar View Status Public Platform
Assigned To Haze Resolution Fixed OS
Status [?] Resolved Driver
Version 0.118u2 Fixed in Version 0.125u3 Build
Fixed in Git Commit Github Pull Request #
Summary 00484: gijoe: Crashes when you enter the elevator after killing the second boss.
Description In both .118u2 and .118 GI Joe (World) crashes when you enter the elevator after killing the second boss.

(gdb) run gijoe
Starting program: C:\mame/mame.exe gijoe

Program received signal SIGSEGV, Segmentation fault.
0x007b25f3 in tileinfo_set (machine=0x4180078, tileinfo=0x0, gfxnum=0,
    rawcode=0, rawcolor=80, flags=0) at src/emu/tilemap.h:591
591             tileinfo->pen_data = gfx->gfxdata + code * gfx->char_modulo;

(gdb) bt full
#0  0x007b25f3 in tileinfo_set (machine=0x4180078, tileinfo=0x0, gfxnum=0,
    rawcode=0, rawcolor=80, flags=0) at src/emu/tilemap.h:591
        gfx = (const gfx_element *) 0x43456c0
        code = 0
#1  0x007bad06 in K056832_get_tile_info (machine=0x4180078, tileinfo=0x0,
    tile_index=0, pageIndex=5) at src/mame/video/konamiic.c:5463
        K056832_shiftmasks = {{flips = 6, palm1 = 63, pals2 = 0, palm2 = 0}, {
    flips = 4, palm1 = 15, pals2 = 2, palm2 = 48}, {flips = 2, palm1 = 3,
    pals2 = 2, palm2 = 60}, {flips = 0, palm1 = 0, pals2 = 2, palm2 = 63}}
        smptr = (struct K056832_SHIFTMASKS *) 0x14c1ef0
        layer = 3
        flip = 0
        fbits = 3
        attr = 0
        code = 0
        color = 80
        flags = 0
        pMem = (UINT16 *) 0x5a86ae8
#2  0x007bd395 in K056832_update_linemap (machine=0x4180078, bitmap=0x62e002c,
    page=5, flags=0) at src/mame/video/konamiic.c:6476
        tileinfo = (tile_data *) 0x0
        zerorect = {min_x = 0, max_x = 0, min_y = 0, max_y = 0}
        tmap = (tilemap *) 0x434a240
        pixmap = (mame_bitmap *) 0x655714c
        xprmap = (mame_bitmap *) 0x65a3970
        xprdata = (UINT8 *) 0x4a2c9c0 '0' <repeats 200 times>...
        src_gfx = (const gfx_element *) 0x43456c0
        dirty = (UINT32 *) 0x22e5308
        all_dirty = 1
        line = 0
        offs = 239
        mask = 16
        pal_ptr = (pen_t *) 0x418f904
        src_base = (const UINT8 *) 0x676000c ""
        src_ptr = (const UINT8 *) 0x21abb0e "draw_video_contents: end"
        xpr_ptr = (UINT8 *) 0x65a5d98 ""
        dst_ptr = (UINT16 *) 0x6559784
        pen = 0
        basepen = 4127
        count = 65281
        src_pitch = 8
        src_modulo = 64
        dst_pitch = 544
        code_transparent = 0 '
(gdb) run gijoe
Starting program: C:\mame/mame.exe gijoe

Program received signal SIGSEGV, Segmentation fault.
0x007b25f3 in tileinfo_set (machine=0x4180078, tileinfo=0x0, gfxnum=0,
    rawcode=0, rawcolor=80, flags=0) at src/emu/tilemap.h:591
591 tileinfo->pen_data = gfx->gfxdata + code * gfx->char_modulo;

(gdb) bt full
#0 0x007b25f3 in tileinfo_set (machine=0x4180078, tileinfo=0x0, gfxnum=0,
    rawcode=0, rawcolor=80, flags=0) at src/emu/tilemap.h:591
        gfx = (const gfx_element *) 0x43456c0
        code = 0
#1 0x007bad06 in K056832_get_tile_info (machine=0x4180078, tileinfo=0x0,
    tile_index=0, pageIndex=5) at src/mame/video/konamiic.c:5463
        K056832_shiftmasks = {{flips = 6, palm1 = 63, pals2 = 0, palm2 = 0}, {
    flips = 4, palm1 = 15, pals2 = 2, palm2 = 48}, {flips = 2, palm1 = 3,
    pals2 = 2, palm2 = 60}, {flips = 0, palm1 = 0, pals2 = 2, palm2 = 63}}
        smptr = (struct K056832_SHIFTMASKS *) 0x14c1ef0
        layer = 3
        flip = 0
        fbits = 3
        attr = 0
        code = 0
        color = 80
        flags = 0
        pMem = (UINT16 *) 0x5a86ae8
#2 0x007bd395 in K056832_update_linemap (machine=0x4180078, bitmap=0x62e002c,
    page=5, flags=0) at src/mame/video/konamiic.c:6476
        tileinfo = (tile_data *) 0x0
        zerorect = {min_x = 0, max_x = 0, min_y = 0, max_y = 0}
        tmap = (tilemap *) 0x434a240
        pixmap = (mame_bitmap *) 0x655714c
        xprmap = (mame_bitmap *) 0x65a3970
        xprdata = (UINT8 *) 0x4a2c9c0 '\020' <repeats 200 times>...
        src_gfx = (const gfx_element *) 0x43456c0
        dirty = (UINT32 *) 0x22e5308
        all_dirty = 1
        line = 0
        offs = 239
        mask = 16
        pal_ptr = (pen_t *) 0x418f904
        src_base = (const UINT8 *) 0x676000c ""
        src_ptr = (const UINT8 *) 0x21abb0e "draw_video_contents: end"
        xpr_ptr = (UINT8 *) 0x65a5d98 ""
        dst_ptr = (UINT16 *) 0x6559784
        pen = 0
        basepen = 4127
        count = 65281
        src_pitch = 8
        src_modulo = 64
        dst_pitch = 544
        code_transparent = 0 '\0'
        code_opaque = 0 '\0'
#3 0x007bdcaa in K056832_tilemap_draw (machine=0x4180078, bitmap=0x62e002c,
    cliprect=0x3f5fa90, layer=3, flags=0, priority=2)
    at src/mame/video/konamiic.c:6703
        last_colorbase = {0 <repeats 16 times>}
        last_dx = 0
        last_visible = 1
        new_colorbase = 0
        last_active = 3
        sx = 312
        sy = 240
        ay = 0
        tx = 8
        ty = 0
        width = 512
        height = 256
        clipw = 512
        clipx = 0
        cliph = 256
        clipy = 0
        clipmaxy = 255
        line_height = 256
        line_endy = 256
        line_starty = 0
        line_y = 256
        sdat_start = 0
        sdat_walk = 0
        sdat_adv = 0
        sdat_wrapmask = 0
        sdat_offs = 0
        pageIndex = 5
        flipx = 0
        flipy = 0
        corr = -8
        r = 0
        c = 0
        cminy = 16
        cmaxy = 239
        cminx = 24
        cmaxx = 311
        dminy = 0
        dmaxy = 255
        dminx = 0
        dmaxx = 511
        drawrect = {min_x = 24, max_x = 311, min_y = 16, max_y = 239}
        tmap = (tilemap *) 0x43466c0
        pScrollData = (UINT16 *) 0x3f5f944
        ram16 = {0, 95}
        rowstart = 1
        colstart = 1
        rowspan = 1
        colspan = 1
        dy = 0
        dx = 95
        scrollbank = 1
        scrollmode = 3
#4 0x007d0e04 in video_update_gijoe (machine=0x4180078, screen=0,
    bitmap=0x62e002c, cliprect=0x3f5fa90) at src/mame/video/gijoe.c:150
        K053251_CI = {1, 2, 3, 4}
        layer = {1, 3, 2, 0}
        vrc_mode = 1
        vrc_new = 18687
        colorbase_new = 80
        primode = 2
        dirty = 0
        i = 4
        mask = 0
#5 0x00f10b13 in video_screen_update_partial (scrnum=0, scanline=239)
    at src/emu/video.c:824
        flags = 1
        info = (internal_screen_info *) 0x4a8f290
        clip = {min_x = 24, max_x = 311, min_y = 16, max_y = 239}
#6 0x00f11567 in finish_screen_updates (machine=0x4180078)
    at src/emu/video.c:1064
        viddata = (video_private *) 0x4a8f290
        livemask = 66452248
        scrnum = 0
#7 0x00f113c4 in video_frame_update () at src/emu/video.c:1008
        current_time = {seconds = 518, subseconds = 349999999999979266}
        skipped_it = 0
        phase = 3
#8 0x00f07403 in cpu_vblankcallback (machine=0x4180078, param=0)
    at src/emu/cpuexec.c:1274
        cpunum = 2
#9 0x00effe2d in mame_timer_set_global_time (newbase=
      {seconds = 518, subseconds = 349999999999979266}) at src/emu/timer.c:342
        was_enabled = 1
        timer = (mame_timer *) 0x28048f8
#10 0x00f05c79 in cpuexec_timeslice () at src/emu/cpuexec.c:554
        target = {seconds = 518, subseconds = 349999999999979266}
        base = {seconds = 518, subseconds = 349999999999917064}
        cpunum = 2
        ran = 16670
#11 0x00e9dfa7 in mame_execute () at src/emu/mame.c:372
        settingsloaded = 1
        driver = (const game_driver *) 0x14bdfa0
        machine = (running_machine *) 0x4180078
        mame = (mame_private *) 0x418030c
        cb = (callback_item *) 0x2769720
        gamename = (astring *) 0x42b89c0
        exit_pending = 0
        error = 0
        firstgame = 0
        firstrun = 0
#12 0x00f2c0d7 in cli_execute (argc=2, argv=0x42904e0, osd_options=0x21aad20)
    at src/emu/clifront.c:168
        gamename = (astring *) 0x4290520
        exename = (astring *) 0x4290620
        driver = (const game_driver *) 0x14bdfa0
        result = -1
#13 0x00e5cd25 in utf8_main (argc=2, argv=0x42904e0)
    at src/osd/windows/winmain.c:251
        ext = 0x27650a4 ".map"
#14 0x014583f1 in main (argc=2, a_argv=0x4290450) at src/osd/windows/main.c:72
        i = 2
        rc = 66452984
        utf8_argv = (char **) 0x42904e0
        argv = (TCHAR **) 0x4290450
' code_opaque = 0 '
(gdb) run gijoe
Starting program: C:\mame/mame.exe gijoe

Program received signal SIGSEGV, Segmentation fault.
0x007b25f3 in tileinfo_set (machine=0x4180078, tileinfo=0x0, gfxnum=0,
    rawcode=0, rawcolor=80, flags=0) at src/emu/tilemap.h:591
591 tileinfo->pen_data = gfx->gfxdata + code * gfx->char_modulo;

(gdb) bt full
#0 0x007b25f3 in tileinfo_set (machine=0x4180078, tileinfo=0x0, gfxnum=0,
    rawcode=0, rawcolor=80, flags=0) at src/emu/tilemap.h:591
        gfx = (const gfx_element *) 0x43456c0
        code = 0
#1 0x007bad06 in K056832_get_tile_info (machine=0x4180078, tileinfo=0x0,
    tile_index=0, pageIndex=5) at src/mame/video/konamiic.c:5463
        K056832_shiftmasks = {{flips = 6, palm1 = 63, pals2 = 0, palm2 = 0}, {
    flips = 4, palm1 = 15, pals2 = 2, palm2 = 48}, {flips = 2, palm1 = 3,
    pals2 = 2, palm2 = 60}, {flips = 0, palm1 = 0, pals2 = 2, palm2 = 63}}
        smptr = (struct K056832_SHIFTMASKS *) 0x14c1ef0
        layer = 3
        flip = 0
        fbits = 3
        attr = 0
        code = 0
        color = 80
        flags = 0
        pMem = (UINT16 *) 0x5a86ae8
#2 0x007bd395 in K056832_update_linemap (machine=0x4180078, bitmap=0x62e002c,
    page=5, flags=0) at src/mame/video/konamiic.c:6476
        tileinfo = (tile_data *) 0x0
        zerorect = {min_x = 0, max_x = 0, min_y = 0, max_y = 0}
        tmap = (tilemap *) 0x434a240
        pixmap = (mame_bitmap *) 0x655714c
        xprmap = (mame_bitmap *) 0x65a3970
        xprdata = (UINT8 *) 0x4a2c9c0 '\020' <repeats 200 times>...
        src_gfx = (const gfx_element *) 0x43456c0
        dirty = (UINT32 *) 0x22e5308
        all_dirty = 1
        line = 0
        offs = 239
        mask = 16
        pal_ptr = (pen_t *) 0x418f904
        src_base = (const UINT8 *) 0x676000c ""
        src_ptr = (const UINT8 *) 0x21abb0e "draw_video_contents: end"
        xpr_ptr = (UINT8 *) 0x65a5d98 ""
        dst_ptr = (UINT16 *) 0x6559784
        pen = 0
        basepen = 4127
        count = 65281
        src_pitch = 8
        src_modulo = 64
        dst_pitch = 544
        code_transparent = 0 '\0'
        code_opaque = 0 '\0'
#3 0x007bdcaa in K056832_tilemap_draw (machine=0x4180078, bitmap=0x62e002c,
    cliprect=0x3f5fa90, layer=3, flags=0, priority=2)
    at src/mame/video/konamiic.c:6703
        last_colorbase = {0 <repeats 16 times>}
        last_dx = 0
        last_visible = 1
        new_colorbase = 0
        last_active = 3
        sx = 312
        sy = 240
        ay = 0
        tx = 8
        ty = 0
        width = 512
        height = 256
        clipw = 512
        clipx = 0
        cliph = 256
        clipy = 0
        clipmaxy = 255
        line_height = 256
        line_endy = 256
        line_starty = 0
        line_y = 256
        sdat_start = 0
        sdat_walk = 0
        sdat_adv = 0
        sdat_wrapmask = 0
        sdat_offs = 0
        pageIndex = 5
        flipx = 0
        flipy = 0
        corr = -8
        r = 0
        c = 0
        cminy = 16
        cmaxy = 239
        cminx = 24
        cmaxx = 311
        dminy = 0
        dmaxy = 255
        dminx = 0
        dmaxx = 511
        drawrect = {min_x = 24, max_x = 311, min_y = 16, max_y = 239}
        tmap = (tilemap *) 0x43466c0
        pScrollData = (UINT16 *) 0x3f5f944
        ram16 = {0, 95}
        rowstart = 1
        colstart = 1
        rowspan = 1
        colspan = 1
        dy = 0
        dx = 95
        scrollbank = 1
        scrollmode = 3
#4 0x007d0e04 in video_update_gijoe (machine=0x4180078, screen=0,
    bitmap=0x62e002c, cliprect=0x3f5fa90) at src/mame/video/gijoe.c:150
        K053251_CI = {1, 2, 3, 4}
        layer = {1, 3, 2, 0}
        vrc_mode = 1
        vrc_new = 18687
        colorbase_new = 80
        primode = 2
        dirty = 0
        i = 4
        mask = 0
#5 0x00f10b13 in video_screen_update_partial (scrnum=0, scanline=239)
    at src/emu/video.c:824
        flags = 1
        info = (internal_screen_info *) 0x4a8f290
        clip = {min_x = 24, max_x = 311, min_y = 16, max_y = 239}
#6 0x00f11567 in finish_screen_updates (machine=0x4180078)
    at src/emu/video.c:1064
        viddata = (video_private *) 0x4a8f290
        livemask = 66452248
        scrnum = 0
#7 0x00f113c4 in video_frame_update () at src/emu/video.c:1008
        current_time = {seconds = 518, subseconds = 349999999999979266}
        skipped_it = 0
        phase = 3
#8 0x00f07403 in cpu_vblankcallback (machine=0x4180078, param=0)
    at src/emu/cpuexec.c:1274
        cpunum = 2
#9 0x00effe2d in mame_timer_set_global_time (newbase=
      {seconds = 518, subseconds = 349999999999979266}) at src/emu/timer.c:342
        was_enabled = 1
        timer = (mame_timer *) 0x28048f8
#10 0x00f05c79 in cpuexec_timeslice () at src/emu/cpuexec.c:554
        target = {seconds = 518, subseconds = 349999999999979266}
        base = {seconds = 518, subseconds = 349999999999917064}
        cpunum = 2
        ran = 16670
#11 0x00e9dfa7 in mame_execute () at src/emu/mame.c:372
        settingsloaded = 1
        driver = (const game_driver *) 0x14bdfa0
        machine = (running_machine *) 0x4180078
        mame = (mame_private *) 0x418030c
        cb = (callback_item *) 0x2769720
        gamename = (astring *) 0x42b89c0
        exit_pending = 0
        error = 0
        firstgame = 0
        firstrun = 0
#12 0x00f2c0d7 in cli_execute (argc=2, argv=0x42904e0, osd_options=0x21aad20)
    at src/emu/clifront.c:168
        gamename = (astring *) 0x4290520
        exename = (astring *) 0x4290620
        driver = (const game_driver *) 0x14bdfa0
        result = -1
#13 0x00e5cd25 in utf8_main (argc=2, argv=0x42904e0)
    at src/osd/windows/winmain.c:251
        ext = 0x27650a4 ".map"
#14 0x014583f1 in main (argc=2, a_argv=0x4290450) at src/osd/windows/main.c:72
        i = 2
        rc = 66452984
        utf8_argv = (char **) 0x42904e0
        argv = (TCHAR **) 0x4290450
' #3 0x007bdcaa in K056832_tilemap_draw (machine=0x4180078, bitmap=0x62e002c, cliprect=0x3f5fa90, layer=3, flags=0, priority=2) at src/mame/video/konamiic.c:6703 last_colorbase = {0 <repeats 16 times>} last_dx = 0 last_visible = 1 new_colorbase = 0 last_active = 3 sx = 312 sy = 240 ay = 0 tx = 8 ty = 0 width = 512 height = 256 clipw = 512 clipx = 0 cliph = 256 clipy = 0 clipmaxy = 255 line_height = 256 line_endy = 256 line_starty = 0 line_y = 256 sdat_start = 0 sdat_walk = 0 sdat_adv = 0 sdat_wrapmask = 0 sdat_offs = 0 pageIndex = 5 flipx = 0 flipy = 0 corr = -8 r = 0 c = 0 cminy = 16 cmaxy = 239 cminx = 24 cmaxx = 311 dminy = 0 dmaxy = 255 dminx = 0 dmaxx = 511 drawrect = {min_x = 24, max_x = 311, min_y = 16, max_y = 239} tmap = (tilemap *) 0x43466c0 pScrollData = (UINT16 *) 0x3f5f944 ram16 = {0, 95} rowstart = 1 colstart = 1 rowspan = 1 colspan = 1 dy = 0 dx = 95 scrollbank = 1 scrollmode = 3 #4 0x007d0e04 in video_update_gijoe (machine=0x4180078, screen=0, bitmap=0x62e002c, cliprect=0x3f5fa90) at src/mame/video/gijoe.c:150 K053251_CI = {1, 2, 3, 4} layer = {1, 3, 2, 0} vrc_mode = 1 vrc_new = 18687 colorbase_new = 80 primode = 2 dirty = 0 i = 4 mask = 0 #5 0x00f10b13 in video_screen_update_partial (scrnum=0, scanline=239) at src/emu/video.c:824 flags = 1 info = (internal_screen_info *) 0x4a8f290 clip = {min_x = 24, max_x = 311, min_y = 16, max_y = 239} #6 0x00f11567 in finish_screen_updates (machine=0x4180078) at src/emu/video.c:1064 viddata = (video_private *) 0x4a8f290 livemask = 66452248 scrnum = 0 #7 0x00f113c4 in video_frame_update () at src/emu/video.c:1008 current_time = {seconds = 518, subseconds = 349999999999979266} skipped_it = 0 phase = 3 #8 0x00f07403 in cpu_vblankcallback (machine=0x4180078, param=0) at src/emu/cpuexec.c:1274 cpunum = 2 #9 0x00effe2d in mame_timer_set_global_time (newbase= {seconds = 518, subseconds = 349999999999979266}) at src/emu/timer.c:342 was_enabled = 1 timer = (mame_timer *) 0x28048f8 #10 0x00f05c79 in cpuexec_timeslice () at src/emu/cpuexec.c:554 target = {seconds = 518, subseconds = 349999999999979266} base = {seconds = 518, subseconds = 349999999999917064} cpunum = 2 ran = 16670 #11 0x00e9dfa7 in mame_execute () at src/emu/mame.c:372 settingsloaded = 1 driver = (const game_driver *) 0x14bdfa0 machine = (running_machine *) 0x4180078 mame = (mame_private *) 0x418030c cb = (callback_item *) 0x2769720 gamename = (astring *) 0x42b89c0 exit_pending = 0 error = 0 firstgame = 0 firstrun = 0 #12 0x00f2c0d7 in cli_execute (argc=2, argv=0x42904e0, osd_options=0x21aad20) at src/emu/clifront.c:168 gamename = (astring *) 0x4290520 exename = (astring *) 0x4290620 driver = (const game_driver *) 0x14bdfa0 result = -1 #13 0x00e5cd25 in utf8_main (argc=2, argv=0x42904e0) at src/osd/windows/winmain.c:251 ext = 0x27650a4 ".map" #14 0x014583f1 in main (argc=2, a_argv=0x4290450) at src/osd/windows/main.c:72 i = 2 rc = 66452984 utf8_argv = (char **) 0x42904e0 argv = (TCHAR **) 0x4290450
Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version 0.115u3
Affected Sets / Systems gijoe
Attached Files
 
Relationships
related to 01858Confirmed  gijoe: Zooming glitches and a wrong backdrop 
Notes
7
User avatar
No.01074
haynor666
Tester
May 24, 2008, 08:04
Still in 125u2 :/
User avatar
No.01089
robiza
Developer
May 25, 2008, 09:51
the problem is in static int K056832_update_linemap (video\konamiic.c)

for (line=0; line<256; xpr_ptr+=dst_pitch, dst_ptr+=dst_pitch, line++)
{
tile_data *tileinfo = {0};

...

printf("ti: %04x ",(int)(tileinfo));
K056832_get_tile_info(machine, tileinfo, line, page);

(int)(tileinfo) = 0x00000000 and mame crash in K056832_get_tile_info
User avatar
No.01099
Haze
Senior Tester
May 26, 2008, 12:16
acho-code i think ;D
User avatar
No.01100
Haze
Senior Tester
May 26, 2008, 14:24
I've disabled the code that was causing it to crash.

The game is now missing some floor effects instead, but the code that was in there is so hideous, and abusive of the mame tilemap system it should probably have never existed in the first place. God help whoever attempts to fix it properly (without readding a bunch of hacks it will require a rewrite)
User avatar
No.01101
robiza
Developer
May 26, 2008, 15:04
i have tried to understand the code but i don't speak acho language ;-)
User avatar
No.01135
Fujix
Administrator
May 30, 2008, 10:59
Fix confirmed in 0.125u3.
User avatar
No.01137
etabeta
Developer
May 30, 2008, 14:20
well, Fujix, you should then open a new report for the corrupted graphics that Haze mentions...