hoot Rom File Lister Mod

概要

DMP SOFT.さん作「hoot... - Sound Hardware Emulator」で使用される、各XmlファイルとRomのzipファイルの情報をチェックし、リスト出力するツールです。

Xmlで定義された各タイトルのリストと、Romフォルダにあるzipファイルリストを作成し、その中で、Xmlで定義があるけどRomのzipファイルが無いもの・zipはあるけどzip書庫内のファイルで不足してるものが無いかチェックしたり、どのXml定義からも使われていない浮いたzipファイルが無いか等々、チェックできます。

ExcelVBA版と、VBScript版の2バージョンあります。


2ch Hootスレv0.04 965氏が公開したExcelVBA「hoot Rom File Lister」が便利だったので、シートのレイアウトをお借りし、中の処理は、一から書いて機能拡張したのが本ツールです。

当Mod版公開後、その初代「hoot Rom File Lister」作者 965氏から連絡を頂きまして、レイアウトの流用について了承頂いています。ありがとうございます。


(2022/04/06 補足)

現在、hoot.xml本体に直接書かれた<game>定義が読み込まれない不具合があります。

修正する方向でいますが、ちょっと中身作り直した方がよさそうで、その状態で長らく止まっております。

暫定回避策としては、お手数ですがhoot.xmlに直接書かれた<game>定義を、hoot公式同梱のhoot.xmlのように、一旦<childlists>で定義された外部のxmlファイルに追い出してから、当ツールでチェックをお願いいたします。



hoot Rom File Lister Mod Excel


<出力結果イメージ>

ダウンロード: hoot Rom File Lister Mod Excel  Ver2.3

VirusTotal チェック結果


基本的な使い方

  1. hoot.exeと同じフォルダ(hoot.xml,hoot.iniがあるフォルダ)に、同梱の hootRomListerMod.xlsm と hootRomListerMod.ini の2ファイルを配置。
  2. hootRomListerMod.xlsmを開き、マクロを有効化。
  3. Xmlシートの「Check(inside archive)」ボタンを押すと、チェック開始し、ステータスバーに進捗が表示されます。(「Check(inside archive)」ボタンはRomのzip書庫内ファイル含めた詳細チェック。「Check」ボタンはzip書庫内ファイルはチェックせずzipファイルの有無だけチェックする簡易チェック。簡易チェックは詳細よりも速く終わります)
  4. チェックが完了すると、XmlシートとRomシートに、チェック結果が表示されます。
  5. Xmlシートには、hoot.xmlで定義された各Xmlファイルの定義内容の一覧と、対応するRomのzip書庫ファイル有無(Rom Archive Path)、Romのzip書庫内の不足ファイル(Missing File in Archive)、エラー情報が出力されます。(※書庫内の不足ファイルチェックは、Windowsの圧縮フォルダ機能を無効にしているとできません)
  6. Romシートには、hoot.iniで定義されたRomフォルダ(data_dir)配下にあるzipファイルの一覧と、対応するXml定義、エラー情報が出力されます。

その他、出力結果の細かな内容は、同梱の hootRomListerModExcel.txt を参照してください。


更新履歴

2017/03/14  ver2.0

  • 初版

2017/03/15  ver2.1

  • Xmlパーサーの参照設定削除。

2017/03/28 ver2.2

  • hoot.iniのsearch_recursive設定(RomArchiveファイルの再帰検索)に対応。
  • 「Check (inside archive)」ボタンで、XmlのromlistからRomArchiveの書庫内ファイルをチェックする機能の追加。それに伴い、Xmlシートに「Lack of File in Archive」列追加と、Romファイルの表記をRomArchiveに変更。
  • 「Clear」ボタンでXml/Romシートクリアする機能の追加。
  • 更新アイテムチェックで使用している非表示列「Compare Key」を、先頭から末尾に移動。
  • Xml・Romシートに出力結果が無い状態でチェック実行時は、Xml・RomシートをPrevious~シートにコピーしないように変更。
  • 時間がかかりそうな処理中に、進捗をステータスバーに表示
  • その他色々と修正・改善。

2017/03/29  ver2.2.1

  • hoot.iniのdata_dirの指定が実際のフォルダの大文字小文字と一致してない場合、RomArchiveの書庫内ファイルチェックが正しく行われない不具合修正。

2017/05/04 ver2.3

  • 設定やメッセージ文言等を、hootRomListerMod.iniに追い出した。(一応ローカライズとかもしやすいように) それに伴い、ステータスバーの進捗メッセージも日本語に。
  • Romの書庫内ファイルチェック時に、XMLのromlist定義の中で無視するtypeを、iniファイルで変更できるように。(romlist_ignore_type)
  • 各シートの列名を一部変更。
  • 前回実行結果のXmlシート(PreviousXmlシート)作成時に、シート上のボタンを削除。
  • 説明テキストを書き直し。
  • その他、VBS版作成に伴い、アプリタイトルにExcel追加・色々修正。

hoot Rom File Lister Mod VBS


<出力結果イメージ>

ダウンロード: hoot Rom File Lister Mod VBS  Ver1.1

VirusTotal チェック結果


ExcelVBA版との違い

VBS版では前回実行結果と比較して更新アイテム表示(New!)する機能がありません。また、画面上部にトータル件数・エラー件数も出ません。その他のチェック機能はExcelVBA版と同じです。

リスト閲覧の使い勝手はやはりExcelには敵いませんので、Excelが使える環境であれば、ExcelVBA版をオススメします。

Excelをインストールしていない環境でも、Windowsとブラウザさえあれば使えるのがVBS版のメリットです。

また詳しくは下記に書いていますが、ちょっとした閲覧・検索・ソートならブラウザ上でできますが、細かく管理したい場合は、Ctrl+A → Ctrl+Cでチェック結果をコピーして、スプレッドシート系のサービス/ソフトに貼り付けて管理するのがよいと思います。


基本的な使い方

  1. hoot.exeと同じフォルダ(hoot.xml,hoot.iniがあるフォルダ)に、同梱の hootRomListerMod.vbs と hootRomListerMod.ini の2ファイルと、フォルダ hootRomListerMod_lib を配置。
  2. hootRomListerMod.vbsをダブルクリックで実行。あとは表示されるメッセージに従ってください。チェック中は、コンソールウィンドウで進捗を表示します。
  3. チェックが完了すると、vbsと同じ場所に、Xmlリストのhtmlファイル (hootRomListerMod_Xml.html) と、Romリストのhtmlファイル (hootRomListerMod_Rom.html) が出力されます。チェック完了後のメッセージからデフォルトブラウザで開くこともできます。
  4. Xmlリストには、hoot.xmlで定義された各Xmlファイルの定義内容の一覧と、対応するRomのzip書庫ファイル有無(Rom Archive Path)、Romのzip書庫内の不足ファイル(Missing File in Archive)、エラー情報が出力されます。(※書庫内の不足ファイルチェックは、Windowsの圧縮フォルダ機能を無効にしているとできません)
  5. Romリストには、hoot.iniで定義されたRomフォルダ(data_dir)配下にあるzipファイルの一覧と、対応するXml定義、エラー情報が出力されます。
  6. 各リスト上部のSearchボタンから検索したり、カラム名ヘッダクリックでソートもできます。(詳しくは下記の注意事項・補足を参照)
  7. チェック結果のリストをコピーして他のアプリでご利用いただくこともできます。リストにフォーカスをあてて、Ctrl+Aで全選択してCtrl+Cでコピーすると、画面表示外含めたリスト全件のデータがTSV形式(Tab区切りのCSV)でクリップボードにコピーされます(※Ctrl+Cでコピー完了するまで数秒かかるので、ご注意)。 コピー完了後、そのまま他のスプレッドシート系ソフト(例:LibreOfficeのCalcや、Googleスプレッドシート、各種CSVエディタなど)に貼り付けてご活用ください。また全件コピーした後は、ブラウザでのリスト操作が非常に重くなります。引き続きブラウザでリストを閲覧する場合は、ブラウザでページの再読込(リロード)してください)

その他、出力結果の細かな内容は、同梱の hootRomListerModVBS.txt を参照してください。


注意事項・補足

VBS版は、html出力したリスト表示に jQueryと、jQueryプラグインw2uiのGrid機能を使っています。

出力されたXml/Romリストで使えるw2uiの機能と、いくつか注意事項がありますので、以下に。

  • リスト内の検索は、必ずリスト上部にある検索窓ないしSearchボタンからの検索で行ってください。Ctrl+F等のブラウザのページ内検索機能では、画面非表示部分は検索されません。(ブラウザ閲覧を軽くするため、画面非表示部分は描画されていないためです)
  • 同じ理由で、ブラウザの機能からリスト全件を印刷することもできません。全件印刷したい場合は、すでに書いたように結果リストをコピーして他のアプリに貼り付けて、そちらで行って下さい。
  • カラム名ヘッダをクリックすると、Excelのようにクリックした列でソートされます。さらにCtrlを押しながらクリックすることで、複数列でのマルチソートも可。
  • カラム名ヘッダをドラッグして、列の並び替え可。
  • 検索窓左の「|||」をクリックして、表示/非表示にする列を選択可。


更新履歴

2017/05/04  ver1.0

  • 初版

2022/04/06  ver1.1

  • IEが 2022/06 に廃止されるため、進捗表示をIEではなくコンソールウィンドウに出力するよう変更。
  • 同梱のライブラリ(jQuery, w2ui)を、最新化。

よろしければ下記について、詳しい方ご助言お願いいたします。


hoot Rom File Lister Mod関連で、以下について助言してくださる方が、万が一いらっしゃいましたら、ご連絡頂けると嬉しいです。


  • VBS版でhtml出力する、w2uiのGrid使ったXml/Romリストのエラー時のピンク着色について。現状はセル全体の着色ができていません。html・cssに詳しい方で、こういうstyle指定すればできるよ、といった情報がありましたら、ご教示頂きたく。自分で色々試しましたが、通常時・長い文字列の折り返しで行が動的に広がるように・セル内改行(brタグ)でも行が広がるように、の3パターンを満たすstyle指定は分からず。 セル内divのclass指定で駄目なら、強引にdivの外枠のtdに対してid指定でstyleタグ入れ込んだら表示はうまくいったものの、今度はCtrl+Cでのコピー時にstyleタグ内容が混じってしまったりで。w2uiの表示カスタマイズ(render)、中々難しい。


  • VBS版のリスト表示は、現在はjQueryプラグインのw2uiを使っていますが、他にhtml表示で使える良いjavascriptのGridライブラリがあれば、情報頂きたく。数千行を一度にブラウザでリスト表示しても軽快に閲覧できて、そこそこ高機能、行幅も動的に変えられるようなGridライブラリ、Web系疎い自分にはあまり見つけられず。

ちなみにVBS版を公開する前まで、あれこれ試行錯誤・検討した主なjavascript系のGridライブラリは以下の通り。

  1. SlickGrid (数千行表示でもw2ui同様、画面内描画だけなので軽快なのはいいけれど、ワードラップで行幅を動的に変更するのは困難らしいので不採用)
  2. dhtmlxGrid (数千行を一度に表示すると重い。無料版ではページ分割表示もできないので不採用)
  3. jsGrid (数千行を一度に表示すると重い。ページ分割すれば良いんだろうけど、それならjqGridの方が機能面で良いので不採用)
  4. jqGrid (数千行を一度に表示すると重いが、ページ分割表示にすれば許容範囲。ただそのままではXml/Romリスト表示には使いづらく、ワードラップできるようにしたり、またブラウザの画面サイズに合わせて動的にGridのサイズ変えるようにするのに一手間必要だったりするけど、わりと定番のGridプラグインのようで、検索機能は非常に高機能、CSV出力機能もあり、w2uiを見つける直前まで、これを使う想定で大体作り込んでいました。が、w2ui見つけて比較検討して、w2uiを採用)
  5. GridX,  dGrid (Dojo Toolkit上で動く非常に高機能なGridプラグイン。この二つはdemo見る限り、速度面・機能面、共に申し分ないけれど、ベースのDojo Toolkit自体が配布するには全部だと容量でかいし、ビルドして必要な分だけまとめればいいんだろうけど、Web系に無縁な自分には情報少なめなDojoを色々調べるのは辛かったので保留にして、お手軽&配布も楽なjQueryベースのjqGrid→w2ui採用に逃げましたw)