82:TJCD3034 「コズミック・ファンタジー ビジュアル集/ 音が変

最終状態:受付済
report#82.1
投稿者:na6ko
時刻:2018-10-30 20:08:24
状態:新規
頻度:未回答
CF1 シーン11:さやと別れ途端、音が短くにした。ヘッドシークの関係らしい。
report#82.2
投稿者:na6ko
時刻:2018-10-30 20:19:45
状態:新規
頻度:未回答
利用内部データの記載を追加.
report#82.3
投稿者:Dave Shadoff
時刻:2018-12-12 15:35:52
状態:新規
頻度:未回答
More information:

This is actually related to CDDA playback, so maybe related to the Valis II CD audio issue (issue #83)

In Cosmic Fantasy 1, scene 11, the issue happens at this point:
Yuu says, "さや、そろそろいくよ"; then Saya trembles.
Saya should say, "Yuu...", then "Yuu !" once again.

The first "Yuu" is related to a CD audio play from 14:07:50 to 14:10:69.

On a real machine, this is fast, but is clearly "Yuu".

On Upergrafx and Mednafen, it is too short; it seems like the proper start point should be about 5 to 10 sectors earlier.

I used Medanfen's debugger, set breakpoint at $E012 (CD playback), and modified zero page $F8/$F9/$FA (start M:S:F). 5 to 10 sectors sounds much more like the real machine.
report#82.4
投稿者:na6ko
時刻:2018-12-17 03:28:44
状態:受付済
頻度:未回答
SEEK TIME 仮実装で影響はないようです.
David さんご指摘のように seektime ではなく, subchannel と MSF の時刻管理かもしれません.
report#82.5
投稿者:na6ko
時刻:2018-12-18 02:09:54
状態:受付済
頻度:未回答
D8> 14:07:50 seek
D9> 14:10:69 play
audio play
paused
D9> 58:58:70 ?04
audio play
D8> 14:11:51 seekdrive stop
D9> 14:15:37 play
audio play
DE.02]x01drive stop
report#82.6
投稿者:na6ko
時刻:2018-12-18 03:34:42
状態:受付済
頻度:未回答
subchannel をみましたが、 A-MSF 14:07:50 が記録されている subchannel は 3 frame 進んでいて、間違いがない場合は 14:07:53 が入っています.
UperGrafx や Mednafen では 14:07:50 への seek command が発行されたとき、subchannel を参照せずに指示通りに 14:07:50 に seek します. PCE では subcchanel を参照していると仮定してみました. その場合は実際の MSF では 14:07:53 から 14:10:71 が再生されます.
しかしこれは聞いてみたらもっとはやくて変でした.
report#82.7
投稿者:na6ko
時刻:2018-12-18 03:35:44
状態:受付済
頻度:未回答
これが正確な 14:07:50 から 14:10:69 の内容です.
report#82.8
投稿者:na6ko
時刻:2018-12-18 03:38:27
状態:受付済
頻度:未回答
試しに -3 frame である 14:07:47 から 14:10:66 を出してみました.
正確な場合 "uu!" ですが、 -3 frame の場合 "Yuu!" に聞こえます.

subchannel 準拠ですと +3 になってれば話がわかるんですが -3 や Dave さんが提言する -5, -10 にする法則性がちょっとわかりません.
report#82.9
投稿者:na6ko
時刻:2019-06-11 08:58:48
状態:修正済
頻度:未回答
1月に David さんが実機で調査した結果をいただきまして、
audio の seek point を -10 frame してもよいことがわかりまして再度確認しました. この問題自体は直っているのですが余計なコマンドが多く. 正常に CDDA が再生しません.

コマンドログです.
D8> 14:07:50 seek
D9> 14:10:69 play IRQ2 <- 余計
audio play
DD> で playstatus を確認
DA> paused <- 余計
D9> 58:58:70 ?04 <- 一応いるが引数が意味不明
audio play
D8> 14:11:51drive stop seek
D9> 14:15:37 play IRQ2
audio play
DE.02]x02
drive stop
report#82.10
投稿者:na6ko
時刻:2019-06-11 09:04:50
状態:修正済
頻度:未回答
一番の問題は下記の command 0xd9 です.
D9> 14:10:69 play IRQ2
これで再生を開始した直後に command 0xdd で playstatus を確認し、 playing の場合は command 0xda で一時停止します.
このコマンドを手続きする時間の合間に一瞬音が出てしまいます.

ためしに問題の command 0xd9 を無視した場合は command 0xdd の結果をみているのか command 0xda は発行されず D9> 58:58:70 ?04 でよくなります.
report#82.11
投稿者:na6ko
時刻:2019-06-11 09:08:44
状態:保留
頻度:未回答
一瞬音が出ないように seek point をもっと早めて無音期間を増やすというのもやってみましたが実機の計測結果以上に frame を減らす必要がありました. これは実機と仕組みがことなるのでやりません.

以上より実機でちゃんと動く方が不思議な状態で、ちゃんと動く理由を証明する計測資料が解決に必要です. 状態を保留に変更します.
report#82.12
投稿者:na6ko
時刻:2019-06-11 09:17:28
状態:保留
頻度:必ず起きる
mednafen の scsi command log もつけます (1/2)
report#82.13
投稿者:na6ko
時刻:2019-06-11 09:17:53
状態:保留
頻度:必ず起きる
2/2
report#82.14
投稿者:na6ko
時刻:2019-06-11 22:21:54
状態:修正済
頻度:必ず起きる
#9から#13の内容は変なコマンドだったのですが、単に私のソースコードを書き間違えていたのでそれを直したら正しくなりました.
変な詮索をしてすいませんでした. 状態を修正済みにします.
report#82.15
投稿者:na6ko
時刻:2019-06-23 21:34:21
状態:受付済
頻度:必ず起きる
上海III ドラゴンズアイ/Shanghai III - Dragon's Eye で music select -> Music 2 にするとシークが早すぎるのか雑音が入ります. Music 2 は TRACK 02 です.
Seek point は  TRACK 06 で 08:24:33 です.
調整したところ -3 が必須で -4 以上ではダメです.

Cosmic Fansy は 14:07:50 で seek の場所はそんなに遠くないので、根本的な解決には複雑な条件が必要かもしれません.
report#82.16
投稿者:na6ko
時刻:2019-06-23 22:08:24
状態:受付済
頻度:必ず起きる
-10 frame 適用条件の実装は今回はできないので -3 frame で release します. この問題は修正済みから受付済みに変更します.
report#82.17
投稿者:na6ko
時刻:2019-06-24 02:01:27
状態:受付済
頻度:必ず起きる
seek した LBA とその場所に記録されている subq の A-MSF を比較する処理を入れたところ、上海3の BGM2 は MSF が正常でした.
ただし同じ上海3の別の audio track は 3 frame ずれていました.
PCE の CD-ROM 全体にいえるのですが 3 frame ずれていることほとんどのディスクにあることを確認しました.
またそもそも、CRC16 が間違っているデータも1000frameに1度の確率であります.
report#82.18
投稿者:Dave Shadoff
時刻:2019-06-27 08:21:06
状態:受付済
頻度:必ず起きる
Two small notes:

1) The 'pause' command seems to be there for a *program* reason, not a SCSI reason.  If the game calls the CD_PLAY function, the command is sent, and the program continues to proceed, while the head travels.  Each machine has a small variation, so synchronization between sound and program is lost.

However, if the game calls CD_PLAY, and then CD_PAUSE, the game will stop until the head has reached its destination.  Then, it will run CD_PLAY again, and there is no head seek time, so synchronization is basically guaranteed.


2) I tried playing this section again on real hardware, and the sound is almost the same as Upergrafx. (Instead of "Yuu...", it is "uu...").  So, this "bug" may be smaller than we thought.
report#82.19
投稿者:na6ko
時刻:2019-08-04 14:59:16
状態:受付済
頻度:必ず起きる
ドラえもんドラビアンナイトの PUSH RUN BUTTON のあとのシーンが調節値が0のときのみちゃんと動くようですので場当たり対応をなくしました.