| カテゴリ | 重要度 | ステータス | 解決状況 | 登録日時 | 最終更新 |
|---|---|---|---|---|---|
クラッシュ/フリーズ | 重要 (本体) | 解決済み | 修正済み | 2008-01-22 15:32 | 2010-01-13 00:09 |
| テスター | Karasu | 担当者 |   | ソース | psikyo/psikyosh.cpp |
| バージョン | 0.63 | 発生バージョン | 修正バージョン | 0.136u1 | |
| 修正コミット | プルリク | ||||
| フラグ | コード検証済み | 旧BugID | gunbird2063red | ||
| セット | gunbird2 | ||||
| セット詳細 |
gunbird2 - ガンバード2 (set 1) | ||||
| 概 要 | Vampiroを使うと4面のボス(北極)でクラッシュする。 | ||||
| 詳 細 | gunbird2 crashes during the 4th level boss fight (North Pole) when using Vampiro. Note that this doesn't happen on all PC's, only half the testers can reproduce it, any random crashes in PsikyoSH are likely to be sound overflows.Program received signal SIGSEGV, Segmentation fault.
0x0088d099 in ymf278b_pcm_update (param=0x3ede78, inputs=0x0,
outputs=0x3ef5d8, length=735) at src/sound/ymf278b.c:261
261 sample = rombase[slot->s
tartaddr + (slot->stepptr>>16)]<<8;
(gdb) bt
#0 0x0088d099 in ymf278b_pcm_update (param=0x3ede78, inputs=0x0,
outputs=0x3ef5d8, length=735) at src/sound/ymf278b.c:261
#1 0x004bd1b0 in stream_generate_samples (stream=0x3ef548, samples=735)
at src/sound/streams.c:562
#2 0x004bd0d8 in stream_generate_samples (stream=0x3ef8b0, samples=735)
at src/sound/streams.c:539
#3 0x004bcff8 in stream_consume_output (stream=0x3ef8b0, outputnum=0,
samples=735) at src/sound/streams.c:478
#4 0x004a1417 in sound_frame_update () at src/sndintrf.c:1168
#5 0x00487c39 in updatescreen () at src/mame.c:1364
#6 0x00436767 in cpu_vblankcallback (param=0) at src/cpuexec.c:1961
#7 0x004ad932 in mame_timer_set_global_time (newbase=
{seconds = 509, subseconds = 466666666666646288}) at src/timer.c:404
#8 0x00434c03 in cpu_timeslice () at src/cpuexec.c:1093
#9 0x00433a91 in cpu_run () at src/cpuexec.c:477
#10 0x00486a43 in run_machine_core () at src/mame.c:598
#11 0x004868e2 in run_machine () at src/mame.c:529
#12 0x004865f9 in run_game (game=4980) at src/mame.c:361
#13 0x008c1143 in main (argc=3, argv=0x3e26d0) at src/windows/winmain.c:211
#14 0x004011e7 in _end__ ()
#15 0x00401238 in mainCRTStartup ()
#16 0x7c816d4f in _libwinmm_a_iname ()
(gdb)
I think this should be useful to Mr. Belmont, because the crash is caused by ymf278b sound chip core. Also Reip said us that the program reads outside the sound region and crashes and he would like to know if what is done in the same driver for s1945ii and s1945iii could be applied to this game too. I mean the following ROM_RELOAD commented in source: ROM_REGION( 0x800000, REGION_SOUND1, 0 ) /* Samples */ ROM_LOAD( "sound.u9", 0x000000, 0x400000, CRC(f19796ab) SHA1 (b978f0550ebd675e8ce9d9edcfcc3f6214e49e8b) ) ROM_RELOAD ( 0x400000, 0x400000 ) /* 0x400000 - 0x7fffff allocated but left blank, it randomly reads from here on the Iron Casket level causing a crash otherwise, not sure why, bug in the sound emulation? */ I wonder if also s1945 sound loop bug and tengai062gre could be fixed in a similar way. | ||||
| 再現手順 | |||||
| 追加情報 | Gunbird2 backtrace from Layne (0.102u1)
C:\>cd MAMESRC
C:\MAMESRC>path=C:\mingw\bin;%PATH%
C:\MAMESRC>gdb mame
GNU gdb 5.2.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-mingw32"...
(gdb) run gunbird2 -window
Starting program: C:\MAMESRC/mame.exe gunbird2 -window
Program received signal SIGSEGV, Segmentation fault.
0x0088d099 in ymf278b_pcm_update (param=0x3ede78, inputs=0x0,
outputs=0x3ef5d8, length=735) at src/sound/ymf278b.c:261
261 sample = rombase[slot->s
tartaddr + (slot->stepptr>>16)]<<8;
(gdb) bt
#0 0x0088d099 in ymf278b_pcm_update (param=0x3ede78, inputs=0x0,
outputs=0x3ef5d8, length=735) at src/sound/ymf278b.c:261
#1 0x004bd1b0 in stream_generate_samples (stream=0x3ef548, samples=735)
at src/sound/streams.c:562
#2 0x004bd0d8 in stream_generate_samples (stream=0x3ef8b0, samples=735)
at src/sound/streams.c:539
#3 0x004bcff8 in stream_consume_output (stream=0x3ef8b0, outputnum=0,
samples=735) at src/sound/streams.c:478
#4 0x004a1417 in sound_frame_update () at src/sndintrf.c:1168
#5 0x00487c39 in updatescreen () at src/mame.c:1364
#6 0x00436767 in cpu_vblankcallback (param=0) at src/cpuexec.c:1961
#7 0x004ad932 in mame_timer_set_global_time (newbase=
{seconds = 1486, subseconds = 16666666666607226}) at src/timer.c:404
#8 0x00434c03 in cpu_timeslice () at src/cpuexec.c:1093
#9 0x00433a91 in cpu_run () at src/cpuexec.c:477
#10 0x00486a43 in run_machine_core () at src/mame.c:598
#11 0x004868e2 in run_machine () at src/mame.c:529
#12 0x004865f9 in run_game (game=4980) at src/mame.c:361
#13 0x008c1143 in main (argc=3, argv=0x3e26d0) at src/windows/winmain.c:211
#14 0x004011e7 in _end__ ()
#15 0x00401238 in mainCRTStartup ()
#16 0x7c816d4f in _libwinmm_a_iname ()
(gdb) print slot
$1 = (YMF278BSlot *) 0x3ee2ec
(gdb)
| ||||
| 添付ファイル | |||||