openBVEのバージョン0.9.6.0を試すが...
openBVEのバージョンが0.9.6.0となり、バージョン1.0の初めてのリリース候補ともなっている。
ディレクトリ構成の変更
これまでのバージョンでは、配布ファイルの最上位ディレクトリにCompatibilityやControlsなど、動作に必要な付属データの入ったディレクトリがあったのだが、これらは新しいDataというディレクトリに配置されることになった。また、設定ファイルは新しいSettingsというディレクトリに入ることになっている。「openBVEの実行方法とMandriva Linux向けRPMパッケージ(2009/1/14現在)」や「GNU/Linux上のopenBVEのサウンド出力と路線/車両データについて」の記述もそれに合わせて修正した。
シミュレータモードに入らない
(2009/3/23)この問題は対処法が見つかった。「openBVEがTao.Sdl.Sdl.SDL_MapRGB()で落ちる件のその後」を参照。以下、以前の内容となる。
今回のバージョンで色々な変更があったのを試したかったのだが、非常に残念なことに、路線と車両のデータを選択した後のロードダイアログの後のシミュレータモードに入るところで確実にネイティブコード上のセグメンテーション違反が起こり処理が続行できない。
下は配布ファイルを展開し、設定のない状態から動かしている流れなのだが、それでもうまくいかない。ソースからビルドしたアセンブリを用いても結果は変わらなかった。
(2009/3/21)バージョン0.9.7.0(1.0rc2)においても同様に動作しなかった。
$ unzip [openbve_development.zipの場所] $ mono OpenBve.exe (路線と車両を選択し「スタート」を押し、ロード後のダイアログには「無視」を押す) Stacktrace: at (wrapper managed-to-native) Tao.Sdl.Sdl.SDL_MapRGB (intptr,byte,byte,byte) <0x0007d> at (wrapper managed-to-native) Tao.Sdl.Sdl.SDL_MapRGB (intptr,byte,byte,byte) <0xffffffff> at OpenBve.Program.Start (string[]) <0x010bd> at OpenBve.Program.Main (string[]) <0x00164> at (wrapper runtime-invoke) OpenBve.Program.runtime_invoke_void_string[] (object,intptr,intptr,intptr) <0xffffffff> Native stacktrace: mono [0x532491] mono [0x43d4fd] /lib64/libpthread.so.0 [0x7f0445be5d20] /usr/lib64/libSDL-1.2.so.0(SDL_MapRGB+0x5) [0x7f0443bafa75] [0x41c056cd] Debug info from gdb: (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread 0x7f04468d9720 (LWP 6719)] [New Thread 0x41be5950 (LWP 6721)] [New Thread 0x414c3950 (LWP 6720)] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) 0x00007f04454b1762 in select () from /lib64/libc.so.6 3 Thread 0x414c3950 (LWP 6720) 0x00007f0445be5421 in nanosleep () from /lib64/libpthread.so.0 2 Thread 0x41be5950 (LWP 6721) 0x00007f0445be1f59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 * 1 Thread 0x7f04468d9720 (LWP 6719) 0x00007f04454b1762 in select () from /lib64/libc.so.6 Thread 3 (Thread 0x414c3950 (LWP 6720)): #0 0x00007f0445be5421 in nanosleep () from /lib64/libpthread.so.0 #1 0x00000000004d6d02 in ?? () #2 0x00007f0445bde2a3 in start_thread () from /lib64/libpthread.so.0 #3 0x00007f04454b8f0d in clone () from /lib64/libc.so.6 Thread 2 (Thread 0x41be5950 (LWP 6721)): #0 0x00007f0445be1f59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00000000004dc375 in ?? () #2 0x00000000004de57b in ?? () #3 0x00000000004e1d33 in ?? () #4 0x0000000000497e13 in ?? () #5 0x00000000004a2e7b in ?? () #6 0x00000000004d6373 in ?? () #7 0x00000000004ec53e in ?? () #8 0x00007f0445bde2a3 in start_thread () from /lib64/libpthread.so.0 #9 0x00007f04454b8f0d in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7f04468d9720 (LWP 6719)): #0 0x00007f04454b1762 in select () from /lib64/libc.so.6 #1 0x00007f04460650ec in g_spawn_sync () from /usr/lib64/libglib-2.0.so.0 #2 0x00007f04460654c8 in g_spawn_command_line_sync () from /usr/lib64/libglib-2.0.so.0 #3 0x0000000000532538 in ?? () #4 0x000000000043d4fd in ?? () #5 <signal handler called> #6 0x00007f0443bafa75 in SDL_MapRGB () from /usr/lib64/libSDL-1.2.so.0 #7 0x0000000041c056cd in ?? () #8 0x00000000023cb4c0 in ?? () #9 0x0000000000000001 in ?? () #10 0x0000000000000140 in ?? () #11 0x00000000414e52d6 in ?? () #12 0x00000000000003c0 in ?? () #13 0x00007fff4e901830 in ?? () #14 0x00007fff4e901530 in ?? () #15 0x0000000000000258 in ?? () #16 0x0000000000000000 in ?? () ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= アボートしました
というわけで、このバージョンのMandriva Linux向けRPMパッケージの公開は解決策が見つからない限り見送ることに。*1
なお、Wine上では正常に動作している。
使用したバージョン:
- openBVE 0.9.6.0
- Tao Framework 2.1.0
- Mono 1.9.1
- SDL 1.2.13
- Wine 1.1.16