90:とらべらーず!伝説をぶっとばせ / 声と動作がずれた

最終状態:保留
report#90.1
投稿者:Dave Shadoff
時刻:2018-11-30 09:42:36
状態:新規
頻度:必ず起きる
再現方法:
Game Start
Introduction Scene, after about 1 minute - the part showing 4 people in a house.
In the house, the voice speaks a lot earlier (about 10-20 seconds) than the characters move.

On a real machine, the voice and movements are synchronized.

I only saw this on the introduction scene. The game seems OK.
report#90.2
投稿者:Dave Shadoff
時刻:2018-12-09 10:36:32
状態:新規
頻度:必ず起きる
One more clue:

After starting from "最初から", an introduction appears.

After the scrolling words, a scene appears, with a castle gate and guards. Then, a vertical scroll starts.

About 59 seconds after starting from "最初から", the vertical scroll pauses for a few seconds, and the boy in the scene stops moving temporarily. After several seconds, the scroll continues.
**This pause does not happen on a real machine, and the boy also doesn't stop moving.**

Throughout this scene, there are several more pauses like this one, where the characters also stop. Each pause lasts for several seconds.
report#90.3
投稿者:na6ko
時刻:2018-12-28 17:34:45
状態:受付済
頻度:必ず起きる
録画しておきました. こういうバグは前例にないため、どこをみていいかわからないです..
https://youtu.be/tQ9SiyVDp78
report#90.4
投稿者:na6ko
時刻:2019-01-07 01:37:06
状態:受付済
頻度:必ず起きる
twitter に書いた最速設定(*)にしてみていたら、なぜかタイミングが合いました.
*1 address 0x1ff807 (subchannel fifo) と 0x1ff808 (cd-rom data fifo) を2つとも cd-rom data fifo にする
*2 super system card の bios を hack して $ea91 の lda $1808; sta ($fa),y のループを tai $1807,[$20fa],[$20f8] に書き換える
report#90.5
投稿者:na6ko
時刻:2019-01-07 16:43:06
状態:受付済
頻度:必ず起きる
録画しました. 高速化のための mirror port address を変更しましたがそれの影響はありません.
https://youtu.be/OIG-Kzxbq8k
report#90.6
投稿者:na6ko
時刻:2019-01-09 16:49:13
状態:保留
頻度:必ず起きる
調べ直しました. 正常に動作する条件は CD-ROM 読み込み速度を fast にするのみで bios の書き換えはいりませんでした.
mednafen でも pce_fast module を利用し、CD-ROM 読み込み速度を速くすると正常になりました. 

このような不具合では CD-ROM 読み込み速度を厳密にするためにわざとおそくするのが通例でしたが、なぜか逆です. 回避策があるので保留にします.
report#90.7
投稿者:Dave Shadoff
時刻:2019-01-27 15:05:51
状態:保留
頻度:必ず起きる
This appears similar to <BTS:39> (Steam Hearts), with a possible "missed interrupt".

The important log section looks like this:
1480947210:CD-IRQ:IRQ raised: ADPCM_HALF_REACHED 
1480950039:SCSI:Command: 08, Read(6)  08 00 84 59 10 00 
1480950039:SCSI:Read: start=0x00008459(track=2, offs=0x00007653), cnt=0x00000010
1481997561:CD-IRQ:IRQ raised: SCSICD_DATA_XFER_READY 
1481997852:CD-ADPCM:ADPCM: [Half=1, End=0, Playing=1]   Set DMA control $02
1487325828:CD-IRQ:IRQ raised: SCSICD_DATA_XFER_DONE 
1487325828:CD-ADPCM:ADPCM: [Half=0, End=0, Playing=1]   DMA Transfer End
1487329728:CD-ADPCM:ADPCM: [Half=0, End=0, Playing=1]   Set DMA control $00
1568678229:CD-IRQ:IRQ raised: ADPCM_HALF_REACHED 
1568681061:SCSI:Command: 08, Read(6)  08 00 84 69 10 00 
1568681061:SCSI:Read: start=0x00008469(track=2, offs=0x00007663), cnt=0x00000010
1569728538:CD-IRQ:IRQ raised: SCSICD_DATA_XFER_READY 

As the visual scene is playing, the ADPCM "half done" interrupt is expected to trigger the next SCSI read. Each read causes the following interrupts:
1) SCSICD_DATA_XFER_READY
2) SCSICD_DATA_XFER_DONE
3) ADPCM_HALF_REACHED

However, if one of these interrupts doesn't occur, there will be a pause until ADPCM_END.  This is several seconds after ADPCM_HALF_REACHED, and may explain the delays (if the IRQ2 processor is involved with visual scene progress).

I have attached a log from Mednafen (working properly); the interesting section is at the end.