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
it contains some maps consisting of a single pixel. Maybe that is the problem?
Unfourtunately it works fine for me.
Could somebody please upload the ground.*.pak files ? It seems I cannot generate them, the lightmap generation does not work here.
[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
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.
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.)
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
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.
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
Thank you.
Ahh yes, at least it didn't crash anymore.