69:ドラゴンスレイヤー英雄伝説2/ゲーム開始時にクラッシュ

最終状態:却下
report#69.1
投稿者:MAT0603
時刻:2018-07-22 22:45:37
状態:新規
頻度:必ず起きる
再現方法:
ゲームを開始し、ビジュアルシーンを見終えるかRUNボタンで飛ばす。
実機の動作だと、主人公が左に移動してから、「おはよう~」と音声が再生されますが、主人公が移動せず、「おはよう~」と音声が再生されてフリーズする場合と、音声が再生されずクラッシュする場合の2パターンの不具合を確認しました。
report#69.2
投稿者:na6ko
時刻:2018-07-23 21:56:13
状態:新規
頻度:必ず起きる
手元で確認しましたが再現しませんでした.
頻度は本当に必ず起きるのでしょうか?
report#69.3
投稿者:MAT0603
時刻:2018-07-24 10:03:34
状態:新規
頻度:必ず起きる
romdumperでスーパーシステムカードを内蔵した状態では100%再現しました。スーパーシステムカードの実物を挿した状態では再現しませんでした。なので、スーパーシステムカードを挿せば回避できるようです。
report#69.4
投稿者:na6ko
時刻:2018-07-24 11:50:00
状態:新規
頻度:必ず起きる
なるほど. その機能の有無で変わるとは想定していませんでした.
様子をみて直すとか、投稿フォームに手を入れるなど対応をしようと思います.
report#69.5
投稿者:na6ko
時刻:2018-07-25 16:20:12
状態:受付済
頻度:必ず起きる
問題の確認をいたしました.
SUPER SYSTEM CARD 内蔵機能は UGX-01 相当の開発機では見られないため、簡単に解析してみます. 深い解析が必要な場合は UGX-02 相当の開発機を準備してから対応となります.
report#69.6
投稿者:na6ko
時刻:2018-07-25 16:56:56
状態:受付済
頻度:必ず起きる
ほかに内蔵システムカードで動かないとといわれたソフトはYAWARAとレッドアラートですがこれらは私の環境では動いてます. (twitter に書こうか悩んだのでこっちにかく)
report#69.7
投稿者:na6ko
時刻:2018-07-28 13:11:47
状態:受付済
頻度:必ず起きる
内蔵システムカードと本物のシステムカードの思い当たる挙動の違いを調べたが、RAM は CPU の stack 領域(address 0x1f0100-0x1f01ff)ぐらい. PCE のレジスタは BIOS がきれいに初期化しているので問題がない.
となると現状は不明.
report#69.8
投稿者:na6ko
時刻:2018-07-28 13:14:25
状態:保留
頻度:必ず起きる
この件は内蔵システムカードだと動作がおかしくなる報告が別途来るまで保留とします.
1件のみで回避方法があるとなると,専用の機材を用意するまでの優先度が低くなってしまいます.
report#69.9
投稿者:na6ko
時刻:2018-08-06 14:38:35
状態:保留
頻度:必ず起きる
GPRAM のうち、 SUPER SYSTEM CARD の RAM 部全領域を data 0x00 で埋めてみたが動作に違いはなかった.
report#69.10
投稿者:na6ko
時刻:2018-09-17 21:07:54
状態:保留
頻度:必ず起きる
内蔵システムカードだとアルマナの牙の動作もおかしいことが判明.
原因は調査できないので不明.
report#69.11
投稿者:na6ko
時刻:2018-09-17 22:01:57
状態:保留
頻度:必ず起きる
正しい名前はアルナムの牙でした.
report#69.12
投稿者:na6ko
時刻:2018-09-21 22:06:36
状態:保留
頻度:必ず起きる
内蔵システムカードの転送が実は安定しないことがあったので、データ転送をハードウェア (CD-ROM2 の read 機能の流用)化してこれを回避して安定化させてみた.
しかし不具合は再現する. 計測環境がないとどこを直していいかわからない.
report#69.13
投稿者:na6ko
時刻:2018-12-11 12:47:18
状態:受付済
頻度:必ず起きる
開発機を UGX-Q5 相当で用意したので調査再開.

00] 00 00 00 00 00 00
disc #0005
DE.00]x01
DE.01]x01
DE.02]x02
08> 000E0C 02-> 6280
08> 000E0E 03-> 6280
DE.02]x01
08> 001E0E 20-> 6280
D8> track21
D9> track22 play+IRQ2
audio play
drive stop
08> 002D0E 0C-> 6280
08> 00240E 4E-> 6280
D8> track18
D9> track19 play+IRQ2
audio play
drive stop
08> 000E8E 40-> 6280
08> 000F8E 4E-> 6280
08> 004E0E 20-> ADPCM RAM 02
08> 004E2E 10 ここで停止
report#69.14
投稿者:na6ko
時刻:2018-12-11 12:55:10
状態:受付済
頻度:必ず起きる
MCU の暴走はなく、PCE が純粋に暴走しているらしい.
内蔵システムカードでのみ起きる以外は <BTS:86> の相関性はなさそう.
report#69.15
投稿者:na6ko
時刻:2018-12-11 15:21:43
状態:修正済
頻度:必ず起きる
最初のセクタを呼んだ直後に address 0x99000 に RAM があるか確認するコードを発見.

4105: 
	lda  #$3C
	sta  $DFFF
	lda  $FFE5
	tam  #$80
	lda  #$00
	sta  $10
	lda  #$F2
	sta  $11
	bsr  $4177
	beq  $4139
	lda  #$00
	sta  $10
	lda  #$F4
	sta  $11
	bsr  $4177
	beq  $4139
4127:
	lda  #$00
	sta  $10
	lda  #$F0
	sta  $11
	lda  ($10) address $4c:$f000->0x99000, data = 0x0f
	eor  #$FF
	sta  ($10)
	cmp  ($10) returns 0??
	bne  $415F
4139: 
	smb7 $20
	ldx  $E011
	lda  $E012
	cmp  #$FF
	beq  $414D
	cmp  #$3C
	beq  $414D
	bsr  $416D
	bra  $414F
414D: 
	bsr  $4164
414F: 
	stx  $3C2F
	sta  $3C30
	lda  #$0D
	sta  $E011
	lda  #$3C
	sta  $E012
415F: 
	lda  $22
	tam  #$80
	rts
report#69.16
投稿者:na6ko
時刻:2018-12-11 15:27:52
状態:修正済
頻度:必ず起きる
上記のあとRAM がある場合はフラグを立てておく. ゲーム開始時にフラグを参照し意図的に止まる(か、開発専用デバイスをみる?)プログラムが組まれていた.

Super System Card の memory map 0x80000-0xbffff と 0x90000-0xfffff は  実際に dump したところで mirror であるのは確認したがエミュレータとは異なった.
address 0x80000-0xbffff はエミュレータでは mirror ではなく未定義となっていてそれと同じにしてもこの問題が起きないことを確認. 今回のコードでこの領域は書き込みのみ無効にするほうがより正確だと思われる.
以上の対策によって改善した.

自分が書いたSuper System Card についての文書も改訂した.
http://d.hatena.ne.jp/na6ko/20180710
report#69.17
投稿者:na6ko
時刻:2018-12-11 17:29:35
状態:修正済
頻度:必ず起きる
Dadiv 氏のご指摘により PC:$410a lda $ffe5 はバグで本来は lda $fff5 をとるべきだというです.
report#69.18
投稿者:na6ko
時刻:2019-01-07 21:40:20
状態:修正済
頻度:必ず起きる
マジクールが内蔵システムカードで正常に動きませんでした.
この件と関連しているか気になります.
report#69.19
投稿者:na6ko
時刻:2019-01-09 15:20:58
状態:修正済
頻度:必ず起きる
マジクールの件.
upergrafx_20181007.pacでは内蔵システムカードでも正しく動くことを確認.
開発途中のものでは正常に内蔵システムカード+読み込み速度FASTで異常が発生
. 本物のシステムカード+読み込み速度FASTでは正常.
あとMAMEで起動しないのでデバッグ情報が得られにくい.

マジクールは回避策がたくさんありそうなので保留.
report#69.20
投稿者:na6ko
時刻:2019-02-19 12:09:03
状態:却下
頻度:必ず起きる
完了.
18,19番にマジクールがうんぬんとありましたがメモリカード個別の問題でしたので無関係でした.