News:

Use the "Forum Search"
It may help you to find anything in the forum ;).

r6765:Crash frequently when starting simutrans with double-height pak64

Started by z9999+, September 28, 2013, 05:44:18 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

z9999+

With all recent nightly versions.
When starting simutrans with new double-height pak64, simutrans often cause crash.
Can someone confirm this problem ? Thanks.


Message: pakset_info_t::debug: XTest -> sha1 = 8E0E4076F73FB71A1489952173159A0397BFD060
Reading menu configuration ...
Message: werkzeug_t::init_menu(): Reading general menu
Message: werkzeug_t::read_menu(): Reading toolbars
Reading midi data ...
Message: grund_besch_t::calc_water_level(): image_offset=6197



sim6765.exe caused an Access Violation at location 0041F867 in module sim6765.exe Reading from location 074ABFC8.

Registers:
eax=074abfc8 ebx=00000000 ecx=00000002 edx=ffffff84 esi=074ac030 edi=00000000
eip=0041f867 esp=0028ea40 ebp=0028eab8 iopl=0         nv up ei pl nz na pe cy
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010203

AddrPC   Params
0041F867 068CC8F0 00000028 074AC030 sim6765.exe!create_alpha_tile(bild_besch_t const*, signed char, bild_besch_t const*)  [C:/msys/home/ooo/6765/besch/grund_besch.cc @ 387]
...

// see only the mixmap for mixing
> *dest++ = alphamap[alphamap_offset];
tile_x++;
}
...

0042181D 074689C0 00000000 00000014 sim6765.exe!grund_besch_t::init_ground_textures(karte_t*)  [C:/msys/home/ooo/6765/besch/grund_besch.cc @ 936]
...
double_corners = corners == 15 ? 80 : (1 - scorner1(corners)) + 3 * (1 - scorner2(corners)) + 9 * (1 - scorner3(corners)) + 27 * (1 - scorner4(corners));
if(  all_rotations_beach[double_corners]  ) {
> final_tile = create_alpha_tile( light_map->get_bild_ptr( slope ), dslope, all_rotations_beach[double_corners] );
alpha_water_bild[dslope * 15 + corners - 1] = final_tile->get_nummer();
}
...

005E6366 00001E38 045929F0 007290D1 sim6765.exe!karte_t::karte_t()  [C:/msys/home/ooo/6765/simworld.cc @ 2291]
...
// generate ground textures once
grund_besch_t::init_ground_textures(this);
> }


...

005B89F5 0000000A 045929F0 00000400 sim6765.exe!simu_main(int, char**)  [C:/msys/home/ooo/6765/simmain.cc @ 1071]
...
}

> karte_t *welt = new karte_t();
karte_ansicht_t *view = new karte_ansicht_t(welt);
welt->set_view( view );
...

005C17A2 0000000A 045929F0 042E3EB8 sim6765.exe!sysmain(int, char**)  [C:/msys/home/ooo/6765/simsys.cc @ 703]
...
#endif

> return simu_main(argc, argv);
}

...

00618A07 00400000 00000000 042D3D82 sim6765.exe!WinMain@16  [C:/msys/home/ooo/6765/simsys_w.cc @ 725]
...
}

> int const res = sysmain(__argc, __argv);
if(  timer_is_set  ) {
timeEndPeriod(1);
...

006E57DB 00000064 00000064 7FFDE000 sim6765.exe!getc  [c:/mingw/bin/../lib/gcc/i686-pc-mingw32/4.7.1/../../../../include/stdio.h @ 377]
...
    ?  (int) (unsigned char) *__F->_ptr++
    : _filbuf (__F);
> }

__CRT_INLINE int __cdecl __MINGW_NOTHROW putc (int __c, FILE* __F)
...

004010FB 7FFDE000 073A3640 00000000 sim6765.exe
77ACBF39 0040124D 7FFDE000 FFFFFFFF ntdll.dll!RtlInitializeExceptionChain
77ACBF0C 7FFDE000 00000000 78746341 ntdll.dll!RtlInitializeExceptionChain



prissi

it contains some maps consisting of a single pixel. Maybe that is the problem?

Unfourtunately it works fine for me.

Dwachs

Could somebody please upload the ground.*.pak files ? It seems I cannot generate them, the lightmap generation does not work here.
Parsley, sage, rosemary, and maggikraut.

z9999+

[EDIT] Ok, I find that my file was broken, now it seems working well.

First, I used png image on SF which you removed, and it caused crash. Because I failed to make ground.*,pak too.

Thanks prissi and Dwachs. It's my fault. :p

z9999+

Ahh, no. It still causes crash. Maybe my ground.*.pak is still broken.

Quote from: prissi on September 28, 2013, 06:59:42 AM
it contains some maps consisting of a single pixel. Maybe that is the problem?

Do you mean lightmap ?

Could you please upload your ground.*.pak, so that I can test it. Thanks.

prissi

The lightmap is generated by the lightmap executable in the tools folder. I am currently fiddeling around with it, but here is a snapshop of a lightmap (the shadows are different, just experimenting with the sun at the moment.)

z9999+

Thank you.
Confirmed crash with it.


sim6765.exe caused an Access Violation at location 0041F867 in module sim6765.exe Reading from location 073B0FC8.

Registers:
eax=073b0fc8 ebx=00000000 ecx=00000002 edx=ffffff84 esi=073b1030 edi=00000000
eip=0041f867 esp=0028ea40 ebp=0028eab8 iopl=0         nv up ei pl nz na pe cy
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010203

AddrPC   Params
0041F867 067BBB90 00000028 073B1030 sim6765.exe!create_alpha_tile(bild_besch_t const*, signed char, bild_besch_t const*)  [C:/msys/home/ooo/6765/besch/grund_besch.cc @ 387]
0042181D 0736DDE0 00000000 00000014 sim6765.exe!grund_besch_t::init_ground_textures(karte_t*)  [C:/msys/home/ooo/6765/besch/grund_besch.cc @ 936]
005E6366 00001E38 04282990 007290D1 sim6765.exe!karte_t::karte_t()  [C:/msys/home/ooo/6765/simworld.cc @ 2291]
005B89F5 00000006 04282990 00000400 sim6765.exe!simu_main(int, char**)  [C:/msys/home/ooo/6765/simmain.cc @ 1071]
005C17A2 00000006 04282990 04043E48 sim6765.exe!sysmain(int, char**)  [C:/msys/home/ooo/6765/simsys.cc @ 703]
00618A07 00400000 00000000 04033D57 sim6765.exe!WinMain@16  [C:/msys/home/ooo/6765/simsys_w.cc @ 725]
006E57DB 0000004F 0000004F 7FFDE000 sim6765.exe!getc  [c:/mingw/bin/../lib/gcc/i686-pc-mingw32/4.7.1/../../../../include/stdio.h @ 377]
...
    ?  (int) (unsigned char) *__F->_ptr++
    : _filbuf (__F);
> }

__CRT_INLINE int __cdecl __MINGW_NOTHROW putc (int __c, FILE* __F)
...

004010FB 7FFDE000 3903E541 00000000 sim6765.exe
77ACBF39 0040124D 7FFDE000 FFFFFFFF ntdll.dll!RtlInitializeExceptionChain
77ACBF0C 7FFDE000 00000000 78746341 ntdll.dll!RtlInitializeExceptionChain


z9999+

So, I uploaded full set of double height version of pak64.
http://simutrans-germany.com/files/upload/pak64.zip

Can someone kindly try to test it with current nightly version ?
When you report the result, crash or not crash, please add information of your OS version.
Thanks.

Dwachs

I do not get a crash (linux), but valgrind complains:

Midi disabled ...
==27950== Invalid read of size 2
==27950==    at 0x438604: create_alpha_tile(bild_besch_t const*, signed char, bild_besch_t const*) (grund_besch.cc:387)
==27950==    by 0x43A325: grund_besch_t::init_ground_textures(karte_t*) (grund_besch.cc:931)
==27950==    by 0x6C6406: karte_t::karte_t() (simworld.cc:2290)
==27950==    by 0x68AC04: simu_main(int, char**) (simmain.cc:1071)
==27950==    by 0x69B023: sysmain(int, char**) (simsys.cc:703)
==27950==    by 0x7055E7: main (simsys_s.cc:713)
==27950==  Address 0x119730cc is 8,572 bytes inside a block of size 8,600 free'd
==27950==    at 0x4C285BC: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==27950==    by 0x439958: grund_besch_t::init_ground_textures(karte_t*) (grund_besch.cc:782)
==27950==    by 0x6C6406: karte_t::karte_t() (simworld.cc:2290)
==27950==    by 0x68AC04: simu_main(int, char**) (simmain.cc:1071)
==27950==    by 0x69B023: sysmain(int, char**) (simsys.cc:703)
==27950==    by 0x7055E7: main (simsys_s.cc:713)
==27950==

So definitely something wrong.

grund_besch_t::create_alpha_tile chokes on a 1x1 lightmap, the alphamap_offset gets negative.

Edit : Patch attached. I do not know whether this is 100% percent correct
Parsley, sage, rosemary, and maggikraut.

z9999+