2018年1月28日日曜日

アスカ見参の細かな疑問など

起動できない

Windows10で起動するにはいろいろありますのでこちらを参照してみてください。

起動するまでに時間がかかる

通常はすぐ起動するはずのアスカ見参で、どのKBか不明ですがメジャーではないアップデートで、起動までに10秒ほど待たされるようになりました。 自分の環境では、別のアップデートで一度またされなくなったけど、現在また待たされるように戻っています。

ム―ビーが飛ばせない

起動時のCHUNSOFTムービーや、イベントのムービーは飛ばせません。 起動時のCHUNSOFTムービー以降は、マップのみに割り当てられているボタンを押すことで高速に処理することができます。
デモムービーのみいつでもキャンセルして飛ばせます。

起動をしようとするとムービーから進まない

CHUNSOFTムービーが開始フレームで止まったままになる現象は、PCの起動時間に依存するアスカ見参のバグです。 OSを起動してから2147483648ミリ秒を経過すると発生します。
2147483648ミリ秒=24日20時31分23秒648ミリ秒
この起動時間を過ぎてアスカ見参を起動すると起きる現象です。
再起動を行えば普通に起動できるように戻ります。
Windows10ならタスクマネージャーで詳細をおして詳細表示の状態でパフォーマンスタブのCPUをクリックしたときに起動後の時間が表示されます。

起動中にBGMだけ流れ続けるが操作できない

また、起動中にこの時間を超えた場合にも上記の問題が発生します。
アスカ見参がアクティブの間は大丈夫ですが、一度ウィンドウが非アクティブになると、再びアクティブになっても音楽だけ流れ続けて操作できない状態になります。

コントローラーが使用できない

コントローラーが使用できないという現象はいくつか原因があるかと思います。

  • コントローラが認識されていない
    ウィンドウズ上で使用できない状態の場合はドライバを入手して使用可能な状態にする必要があります。
    PS3のデフォルトコントローラーは、標準ドライバでは使用できないと思います。
  • アスカ見参が対応しないデバイスのタイプである
    ほぼ対処法はないかと思われます。
  • 複数のコントローラーが接続されていて他のコントローラーが割り当てられている
    優先順は自動で決まるようなのでダメなら他のコントローラーを外すしかない。
  • XBoxコントローラーでLRトリガー同時押しができない
    XInputのAPIでしか正しく取得できないようにしたMicrosoftの陰謀です。
    AsukaPlusのコントローラー設定はXInputに対応しています。


2018年1月21日日曜日

AsukaPlus 0.9.0.0

AsukaPlus 0.9.0.0

変更点

  • オプションにコントローラ設定を追加
  • 支援機能メニューを追加
  • アスカ見参のコントローラーの初期化のバグを修正
  • AsukaPlusの細かい不具合を修正

オプション-コントローラー設定

オプション-コントローラー設定

アスカ見参のコントローラー設定にはいろいろ問題があったため、コントローラー設定を追加しました。
コントローラー設定を有効にするとアスカ見参のパッド設定は無視される仕様です。
有効にしない場合でもパッド設定のいくつかの問題を改善しています。

改善されること

初めにこの設定により可能となることをまとめておきます。
コントローラー設定を使用せずとも有効となる機能。
  • 軸の初期化をすべての軸に対して行う
  • DI8DEVTYPE_1STPERSON のデバイスタイプにも対応
コントローラー設定で任意で有効にできる機能。
  • XInput(XBox360コントローラー)での入力に対応(LRトリガー同時押しに対応)
  • コントローラーが複数ある場合の優先度を設定可能
  • アスカ見参起動後に接続されたコントローラーを認識可能

軸の初期化をすべての軸に対して行う

X軸とY軸しか取得値の範囲の設定を行っていなかったが他の軸に対しても行うように修正されます。
これによりアスカ見参のパッド設定の「移動」を好きな操作系統を選択できるようになります。本来のアスカ見参の実装しようと思っていた仕様になったはずです。
POVも普通に選択可能になります。

DI8DEVTYPE_1STPERSON のデバイスタイプにも対応

かなりマイナーな対面型のアクションゲームデバイスに設定されているコントローラーがありますが、アスカ見参は検出していないようだったので検出するように修正されます。
PS3パッド用のメジャーな非公式ドライバがこのタイプになるようです。
非公式ドライバが使えるのかという問題は別にありますが。

XInputでの入力に対応

XBox360コントローラーと呼ばれるタイプのコントローラーのAPIに対応。
(このAPIで入力を読み取らないとLRトリガーの同時押しを検知できない)
XInputは最大4つ接続可能で#1~#4として認識されますが、どのコントローラーが#1かという情報を取得するAPIは提供されないので「XBox360コントローラー#1」などと表示します。接続状況により#1がどのコントローラーになるかは保証されない仕様なので、複数のXBox360コントローラーを使用されている場合が使えない場合は優先順を変更してみてください。
DirectInputとしても同時に検出されますが、こちらを使用するとLRトリガー同時押しが反応しません。

コントローラーが複数ある場合の優先度を設定可能

いつも使いたいコントローラーは決まっているが、それ以外のコントローラーを外さないと使えないことがあるので、優先順を決めれる仕様としました。

起動後に接続されたコントローラーを認識可能

多くのゲームは面倒なので起動時にしかコントローラーの検出を行わないので起動後に接続されたコントローラーは認識されません。アスカ見参もそうなのですが、コントローラー設定を使用すると起動後に接続されたコントローラーも自動で認識し、優先順次第でコントローラーが変わります。

このような仕様にした個人的理由

デスクトップPCは常にいくつかコントローラーが接続されているがその都度付け外しをしたくなかった。
GPD-WINの場合は、パッド部分はマウスかコントローラーか切り替える仕様なため、起動をマウス操作で行うと起動の瞬間はコントローラーが接続されていない状態となるため起動後に認識したかった。
わかりにくい仕様になっているかもですが、一度設定するとあまり変更する必要はないはずですのでご容赦願います。

方向指定のiDashについて

ドリームキャストのときにあったアナログコントローラーを倒すだけでiDashする仕様は、PC版でも設定できますが使用しづらいのでコントローラー設定では対応していません。
ボタン+方向のiDashは対応しています。

決定+取消し

このキー割り当ては本来存在しないものですので、標準仕様でプレイしたい場合は使用しないでください。
普通に決定+取消しを操作すると、ボタンを解除するたびに取消しを押した後のように方向指定の切り替えになったりしてしまいますので、純粋にターン経過だけできるようにカスタマイズが入っています。

2018年1月7日日曜日

Windows10クリーンインストールから起動まで(64ビットOS)

Windows10のクリーンインストールから起動の検証

一般的な環境として以下で検証しました。
エディションは、「Windows10 Home」64ビット版
バージョンは、現地点で最新の「Fall Creators Update」。
クリーンインストールからの検証です。
何で失敗してるかを確認するためにあえていろいろなエラーを出しながら進めてみます。

Windows10インストール直後


アスカ見参をインストール

インストーラーの選択肢はすべて変更せず、インストール先のフォルダも既定のままで
C:\Program Files (x86)\CHUNSOFT\AsukaPC
としました。
※パスの区切り文字の「¥」が「\」(説明用に全角で書いています)に見えたりするのはフォントによって表示が違うだけで同じ文字です。

何も考えずに起動してみる

普通に起動してみると、DirectPlay のインストールを促されます。
DirectPlay はネットワーク接続を使用する機能です。
以前のアスカ見参はネットワーク接続する機能があったため必要と出ますが、実際には使用しないのでインストールしなくても起動できます。
ですが毎回出るのでスキップが手間に感じるならインストールしてもよいかと思います。
一度インストールすれば以後でなくなります。
上記の続きが実行されると次はWindowsのバージョンのチェックが行われ結果エラーとなり起動しません。
これは過去のWindowsでしか起動しないようにチェックされているからですが、ショートカットから呼び出される初めのプログラムはWindowsのバージョンをチェックしたのち本体のプログラムをよびだしているだけのようですので、本体のプログラムを直接呼び出すようにショートカットを変更します。
(互換モードでも回避することはできます。ウィンドウスタイルが変わるのが気にならなければですが。)

ショートカットの変更

ショートカットのプロパティを開くためにスタートメニューから「Chunsoft」の中の「女剣士アスカ見参!」を右クリックしてファイルの場所を開きます。
ショートカットのフォルダが開きますので、ショートカットを右クリックしてプロパティを開きます。
ショートカットのプロパティのダイアログが開いたら、「リンク先」を変更します。
変更前の値
"C:\Program Files (x86)\CHUNSOFT\AsukaPC\loader.exe"
この値の最後の「loader.exe」を「asfpc.exe」に変更してOKをクリックします。
変更後の値
"C:\Program Files (x86)\CHUNSOFT\AsukaPC\asfpc.exe"
OKを押すと変更するために管理者権限を要求されます。
これはインストーラーが設定したショートカットを変更することになるため要求されています。
続行を押して変更します。
これで以降はWindowsのバージョンチェックで起動しない現象は回避できます。

一度起動してみる

ショートカットを変更したのでWindowsバージョンのチェックはなくなっています。
ですが起動できません。
これが有名なSafeDiscのチェックに失敗した場合に出るメッセージですがメッセージの内容に意味はなく管理者権限で実行しても変わらず同じエラーが出ます。
※管理者権限とメッセージには出ますが、アスカ見参を起動するために管理者権限は不要です。

AsukaPlusを追加

Asfpcのあるフォルダに配置します。
Program Files (x86) 配下に置くため、管理者権限を要求されます。


起動してみる

AsukaPlusが使用しているランタイムがインストールされていないので起動に失敗します。
※Visual Studio 2013 を使用して作ったために必要となっています。

Visual Studio 2013 の Visual C++ 再頒布可能パッケージのインストール

OSが64bitでも間違えなくx86版(32bit版)をインストールします。
ファイル名は「vcredist_x86.exe」です。
※最新版はランタイムを不要にするよう設定を変更しましたのでこの作業は不要です。

起動してみる

AsukaPlusはオフラインパッチ後のバージョン1.7.0.0を対象としますが、オフラインパッチを当てずに起動できない方が結構いたのでエラーメッセージを追加しました。

オフラインパッチをインストールする

オフラインパッチをダウンロードしてインストールします。
ファイル名は「AsfPCN1800.exe」です。
インストールが完了すると、
AsfPc.exeのファイルバージョンが1.7.0.0になります。
※たぶん1.8.0.0にするつもりだったけどオフラインパッチが間違えてると思います。

起動してみる

管理者権限での起動や、互換モードでの起動は不要です。
特に管理者権限は不要なのに管理者権限で起動することはセキュリティリスクを増やすだけですのでやめましょう。
知らない方向けに管理者権限が必要と書かれているページが多すぎるので気を付けましょう。


セーブデータのフォルダ

アスカ見参はかなり過去のゲームのため、インストールフォルダにセーブデータなどを作る仕様となっています。
ですがWindowsVista以降は、UAC(ユーザーアクセスコントロール)の機能によってインストールしたファイルを誤って壊されないように、管理者権限がないとProgramフォルダ
C:\Program Files や C:\Program Files  (x86)
に書き込めない仕様に変更されました。
※普通のフォルダにインストールした場合は普通に書き込まれます。
そのため管理者権限で起動した場合はインストールフォルダにセーブデータが作成されますが、管理者権限でない場合はプログラムがインストールフォルダに書き込もうとしてもOSが代替えのフォルダに書き込む仕様となっています。

元のフォルダのパスが以下の場合
C:\Program Files (x86)\CHUNSOFT\AsukaPC
以下のパスに置き換えて処理されます。
C:\Users\(ここはユーザ名)\AppData\Local\VirtualStore\Program Files (x86)\CHUNSOFT\AsukaPC
AppDataが隠しファイルとなっているため、隠しファイルを表示するか直接パスを入力して移動する必要があります。

通常セーブファイルを見る必要はないですが、バックアップ時などのため覚えておくとよいかと思います。

インストールフォルダにデータや設定ファイルを作ってしまうような過去のソフトは、Programフォルダにインストールせず、普通のフォルダにインストールして運用するほうが楽です。例えばCドライブにフォルダを作って
C:\Game\CHUNSOFT\AsukaPC
のようなインストール先にしておけば、 UACによる書き込み保護はないため普通にインストールフォルダに書き込まれるので、どっちか言うとこの対応のほうが楽です。

DirectXについて

過去のバージョンのWindows10は、新しいDirectXを使ってほしかったのかDirectX8はインストールされていませんでしたが、クレームが多かったのか途中のバージョンから初めからインストールされているようです。
あまりないかもしれないですが、過去のバージョンのWindows10を使ってる方はDirectX9(DirectX8が含まれている)のインストールが必要になるかもしれないです。