全体表示

[ リスト | 詳細 ]

記事検索
検索

全32ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]

窓化した完全版をクリック一発で起動したい。
いろいろやり方を考えたのですが結局
  1. 窓化アプリを起動する
  2. アプリにメッセージ(キー入力)を送って起動
で実現することにした。使用言語は WSH + javascript
DXWndで、1番目にYs I、2番目に Ys II を登録します(キーボードで操作する関係上、スクリプトはこの順にしか対応できません)

イメージ 1

エディタなどで次の内容を保存し、"ys1_win.js"などとして拡張子を .js にして保存します。
13行目 dxwnd_exe で設定している exe のパスは、実際に dxwnd.exe を置いているところに合わせてください。
/*
 * DXWnd を起動して登録してある ys1 を起動する
 */
var sh = WScript.CreateObject("WScript.Shell");

var wmi = GetObject("WinMgmts:Root\\Cimv2");
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var proc = wmi.ExecQuery("Select * From Win32_Process");
var iproc = new Enumerator(proc);

var dxwnd_wnd = "DXWnd";
//var dxwnd_exe = "D:\\App\\DxWndv2\\dxwnd.exe /C:dxwnd.ini";
var dxwnd_exe = "D:\\App\\DxWndv2\\dxwnd.exe";
var proc_name = "dxwnd.exe";

function search_proc() {
    for (; !iproc.atEnd(); iproc.moveNext()) {
    var item = iproc.item();
    if ((item.ExecutablePath != null && fso.GetFileName(item.ExecutablePath).toLowerCase() == proc_name) || (item.Name != null && item.Name.toLowerCase() == proc_name)) {
        return item.ProcessId;
    }
    }

    return 0;
}
   
/* DXWnd を起動 */
function active_dxwnd() {
    var proc_id = search_proc();

    if (proc_id == 0) { // 見つからない
    sh.CurrentDirectory = fso.GetParentFolderName(dxwnd_exe);

    var proc = sh.Exec(dxwnd_exe);
    proc_id = proc.ProcessID;
    }
    wait_count = 0;
    while (sh.AppActivate(proc_id) == 0) { // 起動待ち
    WScript.Sleep(1000);
    wait_count++;
    if (wait_count > 10) {    // 10秒待った
        // 実行ファイルのパスが違う場合は Runtime Error
        WScript.Echo("DXWnd を見つけることができませんでした - 終了します");
        WScript.Quit();
    }
    }
}


active_dxwnd();
sh.SendKeys("{DOWN}");
WScript.Sleep(100);
sh.SendKeys("{UP}");
sh.SendKeys("{UP}");
sh.SendKeys("{UP}");
sh.SendKeys("{UP}");
sh.SendKeys("{UP}");    // YS I
WScript.Sleep(100);
sh.SendKeys("%ER");    // Edit→Run


保存した ys1_win.js をダブルクリックすると DXWnd が起動され、そこからショートカットで一番上に設定している Ys I が起動されるはず。

上から2番めに設定している Ys II を起動するには、スクリプトの後半部分を次のようにします。
active_dxwnd();
WScript.Sleep(100);
sh.SendKeys("{DOWN}");
WScript.Sleep(100);
sh.SendKeys("{UP}");
sh.SendKeys("{UP}");
sh.SendKeys("{UP}");
sh.SendKeys("{UP}");
sh.SendKeys("{UP}");
WScript.Sleep(100);
sh.SendKeys("{DOWN}");    // YS II
WScript.Sleep(100);
sh.SendKeys("%ER");    // Edit→Run


こちらのやりかた http://blogs.yahoo.co.jp/pman4416/65174263.html ではオープニングムービー終了後にどちらも異常終了してしまうので、別のやり方を探しました。
#YsI のムービーが動いた気がしてたのは別のアプリを使ったからかもしれません

DirectDraw まわりのフックをうまくやってやれば回避できそうな気もしたので、いろいろ検索した結果、dxwndとして公開されていたアプリを別の方が(勝手に?)引き継いだプロジェクトでうまくいきましたので報告します。
DxWnd download | SourceForge.net
http://sourceforge.net/projects/dxwnd/
こちらの Download から、実行ファイルを取得して適当なフォルダに展開します。
#Ys完全版をプレーする限りは管理者権限も必要なさそうです

dxwnd.exe を起動するとウィンドウ化したいアプリの登録画面になるので、実行ファイルを登録します
「Edit」→「Add」から



設定が山ほどあるのですがこんな感じで。このツールでは起動後、ウィンドウの移動やリサイズは出来ないみたいです。またウィンドウの位置も「X,Y coordinates」か「Desktop center」以外は意図したような画面にすることができませんでした。(全画面ウィンドウになる)

その他は特に触らずとも動きました。DirectXのタブでいくつか調整して下記のようにしていますが、「Emuration」の項目は Primary Surface でないと安定しませんでした。

YsII はフォーカス失うと画面の再描画でおかしくなりますが、「冒険日誌」を呼び出して戻れば正常に復帰します。DirectDrawがおかしくなる➝冒険日誌でGDIによる描画に切り替える➝ゲームに戻る際にDirectDrawを再度設定し直す、というようなフローなのかもしれません。

さて、残るは Ys IエンディングからのYsII オープニング起動ですが、これを調査するために今からダームの塔に登ります^^;

開く トラックバック(1)

2001年に発売された「イースI完全版/イースII完全版」https://www.falcom.co.jp/ys12cmp/、発売当初に購入したので後に発売されたXP対応版ではなく、うちにあるのは 95/98/Me 向け。

https://twitter.com/pman4416/status/649237162353819650

Win 8/8.1/10 64bit では動かないものだったのですがいろいろ試してると上手く動作するようになったのでそのやり方を残しておきます。

※なお、インストール先にセーブデータが作られるので、Program Files などではなく、Cドライブ直下やDドライブなど、書き込みができるディスクにインストールを行う必要があります
※MIDI音源は持ってないので試してません。BGMはWAVEを使用しています。


ムービーが再生できない

64bitOS では必要なコーデックが入ってない(設定されていない)のでそのままではオープニングなどのムービーが再生できない。

Indeo5のコーデックを64bitOSでも使えるように設定すれば良いようです。
Vista、Win7でIV32コーデックを使って動画を見る方法 | YATA BLOG
http://etwas.wolfish.org/blog/p2008111901/
下記をメモ帳などで movie.reg などとして保存し、管理者として実行してレジストリに結合してください。
Windows Registry Editor Version 5.00

;IV50 for 64bit Vista & Win7 (IV50_x64.reg)

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32]
"vidc.iv50"="ir50_32.dll"





Ys II は実行すら出来ない

Ys I は上記で概ね実行できると思われますが、Ys II は実行できません。
DirectDrawの問題のようで、フルスクリーンではなく窓化を行うことで上手く実行できました。

下記から、「DirectX ウィンドウ化ツール v1.88」(D3DWindower)をダウンロードします

物置き場
http://www.geocities.jp/menopem/

ダウンロードした .lzh ファイルを適当なところに展開し、D3DWindower.exe を管理者として実行(右クリックから)します。DLLフックを使用しているので管理者権限が必要です。

使い方などは色々なサイトで紹介されています。Ys I/II の実行ファイルを + で登録し、「実行」するだけ。ただし、グローバルフックがうまくいかないのでツールを立ち上げてからゲームを起動する必要があります。
超簡単!『サクラ大戦1』を起動する3つのステップ - 四苦八苦にありがとう
http://idaten1848.blog.fc2.com/blog-entry-3.html


設定は私は以下にしています。モニタの解像度を下げて、640x480で動かしたほうが個人的には好みです。
また、フォーカスを失うとウィンドウタイトルなどのサイズ分描画サイズがおかしくなりますが、冒険日誌を開いて閉じることで元に戻るようです。

設定はこのようにしています。




Windows10 64bit / Core i7 / IntelHD ではこれでうまく動作しています。
ただ、Ys2 はオープニングムービー再生後に終了してしまうので、オープニングムービーはスキップにしています。(Ys1は大丈夫)


ひょっとするとイベントムービーで落ちることがあるかも知れません…未確認です。


開く トラックバック(1)

パピコン復活への道(1)

PC6001本体は、いくつか効かないキーがある、というだけの状態で、比較的マシかな。

分解清掃すりゃいいだろ、ということで分解から。



キーボード取り外し…掃除しにくい。

完全分解しないときれいにするのは難しそうだ

DR311復活への道(1)

実家にまだ残っていたPC6001、AX8を入手したのを機会に復活させてみようと思う
#2年近くも放置してたよ


まずはDR311
  • 電源は生きている
  • 巻き戻しはできる
  • 早送りはできない。カセット入れずに巻き戻しにして、ローラーを手で直接回してやると回転しだす
  • 再生もできない。時々成功して音が鳴るが、明らかに安定せず、揺れる
というような症状。

twitterで相談してみたところ、 案の定「ベルトがやられていますね」とアドバイスいただいた。

調べてみると、ベルトの交換やローラーの交換で修理している人も。

分解手順はこちら

交換ベルトは60x1.2角、千石電商で購入可能のようだ。


他とまとめて注文しよう

全32ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事