2009年9月21日から2009年9月17日までの日記を表示中

2009年 9月21日 (月)

銀河お嬢様をアレする

先日,PSPの銀河お嬢様伝説コレクションに収録された3つのゲームをPCエンジン実機上で動かすことに挑戦したわけですが,サファイアはBGMの先頭にノイズが入り,ユナはデモは出るけどタイトル画面まで到達しないといった状況で,一応動くけどまだ完全ではないといった状況でした.で,本日はその続きに挑戦.前回気になった点を中心に色々と調査をして対処してみました.以下その際のメモが延々と続きます.結末と手順だけ知りたい人は読み飛ばして次のエントリを参照してくださいw

ユナの3トラック目が無音

まず,at3ファイルが無音なユナの3トラック目について.他の曲から察するに,これ,テーマソングが抜けてるんじゃないかという気が.当初 usrdir/content/sound/bgm/atrac3/48k/yuna_title.at3 にある この歌が流れるんだろうと思って引っ張ってこようとしたんですが,hcdファイルの情報から求まる3トラック目の曲の長さに対して5秒ほど長く,無音部分を切ったところで詰められそうになかったので断念 (´・ω・`).やっぱ違うのかなぁ・・・.エミュレーションの過程でここだけファイルを差し替えるとか,あんまり現実的な感じがしないし・・・.

これはPCエンジン版を手に入れないとわからんかなーと思いつつも一応ニコニコ動画を探してみたらそのものズバリの動画を発見しました.・・・うは,全然違う歌だし (;´Д`).しかもコメント見たらPSPだと無音だったとか書いてあるし (;´Д`).というわけでPSPから吸い出した場合,ここは音楽流れないのが正解なようですね.権利関係?残念な話です.

ユナの1トラック目が長い

次に,ユナがタイトル画面まで到達できない点について.これはデータトラックの開始セクタがずれてるのが悪いんじゃないかと予想.ずれる原因は,at3をデコードしてwavファイルにする際に,hcdファイルから求まるサイズと違うサイズのファイルができてしまうことにあります.なので,単純に無音部分を切ったり,逆に先頭や末尾に0を足したりして,本来期待されるファイルサイズに揃えれば良さそうなものなのですが,ここで1つ問題が.

先頭トラックの「こんにちはー!ユナでーす!」ってやつの長さが,hcdファイルから求まる再生時間よりも1秒ほど長いのです.両端の無音部分を削ってもまだ全然足りないため,ひょっとして2トラック目のプリギャップに食い込んでいる? でもこれだと焼くときに非常に辛そう・・・.うーん.

いやでも何か全体的にhcdファイルから求まるサイズよりも大きめのwavファイルができやすい傾向にあるような・・・.ひょっとしてツール側の設定の問題だったりするのか? そこで試しに HiMDRendererのパラメータを適当に色々いじって試してみたところ,Overlap sizeをいじると再生時間が目に見えて変わることが判明.あれこれ数を試した結果,160くらいにしたらちょうどいい再生時間となりました.気持ち悪いけどまあこれでいいや.

サファイアの音楽の開始部分にノイズが入る

先日,何も考えずにHiMDRendererで抽出したwavファイルをそのままCDに焼いて動かしたところ,ナレーション (15トラック目) の先頭にブツッっという盛大なノイズが乗る問題があったわけですが,これもwavファイルの長さのずれが原因・・・だと思っていたら実は全然違って,HiMDRendererでwavファイルに変換した時点でノイズが乗ってました.確認してみると,これ以外にもwavファイルの時点でノイズが入っているトラックがいくつか・・・.

HiMDRendererのオプションを色々いじってみたり,Sony ATRAC3 Audio Codec 0.98 を消して代わりに SonicStage CP (4.4) を入れて動かしてみたりしたんですが状況は変わらず.HiMDRendererは1.00beta4で最新だしなぁ・・・.うーむ.というわけで,これは観念して手で切ることに.どうせhcdファイルから求まる再生時間よりwavファイルの再生時間の方が長いから前後の無音部分をある程度カットしなきゃならないんでー.GoldWaveで先頭のノイズ部分をカットして完了.はー,エレガントじゃないな.

焼くのに適したツール

CDRWINのデモ版だとさすがに遅いので他にないか探してみたところ,ImgBurnなるツールを発見.試しに天外魔境で実験してみたところ,BINARYまじりのCUEシートを何の文句もいわずに処理してくれて,オリジナルと同じ配置で焼くことに成功.銀河お嬢様伝説コレクションに収録されている3作は,トラックの構成が (PCエンジンの中では) 普通みたいなんで,とりあえずこれでいけそうです (プリギャップ部分のデータが全然違うのがちょっと気になったけど,ゼロ埋めするわけじゃないのかな?)

その他

どっかにトラックの情報とかまとまってないかなーと思って探してみたら,ここにすごいデータベースがありました.素晴らしすぎる.このページによると,ユナは3バージョンあるようで,銀河お嬢様伝説コレクションに収録されているのは10トラック目のISOファイルのCRCから察するに,Galaxy Fraulein Yuna {HRH310827-3FAFT} というやつみたいです.ユナ2はCRCが掲載されていませんでしたが,サファイアはCRCが掲載されており,銀河お嬢様伝説コレクションに収録されていたのと一致してました.データの改変はないようですね.

銀河お嬢様をアレする 完結編

とまあ,先に述べたようにもやしていた部分が概ねすっきりしたので,集大成ということでユナのメディアを作り直してみました.手順はこんな感じ.以下の記述は usrdir/content/cdrom/hcd5078 以下のファイルが対象ですが,他でも多分同じなので適宜読み替えてください.

  1. at3ファイルをHiMDRenderer 1.00beta4を使ってwavファイルに変換する
    • Overlap sizeは160に設定 (それ以外はデフォルトのまま)
    • Sony ATRAC3 Audio Codec 0.98 か SonicStage CP (4.4) を入れておく
  2. wavファイルの先頭にノイズが入っていないかを確認し,入っている場合は波形エディタなどで除去
  3. ここの末尾に添付されている pcebin.zip を展開して,pcebin.c をコンパイルし,出来上がったバイナリでbinファイルを解凍
  4. hcdファイルではトラック毎の情報が列挙されており,4列目が開始セクタで5列目がセクタ数なので,ここから各トラックのプリギャップ時間を求める
    • 多分こんな式 → (開始セクタ - (前のトラックの開始セクタ + 前のトラックのセクタ数)) / 75
    • 直前がオーディオトラックのデータトラックには3秒入り,直前がデータトラックのオーディオトラックには2秒入るのが一般的らしい (少なくともPCエンジンでは)
  5. hcdファイルのセクタ数を元に,オーディオトラックのデータサイズを導出し,それにぴったり合うようにwavファイルを加工する (データトラックは最初からサイズが揃っているので調整不要)
    • 期待されるオーディオトラックのデータサイズはhcdファイルに書かれているセクタ数×2352で導出 (ちなみにデータトラックは2352倍ではなく2048倍)
    • at3ファイルから作ったwavファイルから一旦RIFFヘッダを除去 (以下これを生データと呼ぶ)
    • 生データが期待されるオーディオトラックのサイズよりも小さい場合,生データの先頭か末尾に足りないサイズ分0を加え,期待されるサイズに揃える (どっちに足すかはお好みで / とにかくサイズを揃えることが重要)
    • 生データが期待されるオーディオトラックのサイズよりも大きい場合,生データの先頭や末尾の無音と思しき部分を削り,期待されるサイズに揃える (どっちから削るかもお好みで)
    • すべての生データのサイズが期待されるオーディオトラックのサイズと一致するようになったら,再度生データにRIFFヘッダをつけ直してwavファイルに戻す
  6. CUEシートを記述する
    • すべてのトラックのサイズが期待されるサイズとぴったりあっているはずなので,CUEシートにはプリギャップの情報と各トラックのファイル名を書き記せばOK
    • 以下ユナの例 (ファイル名は適宜自分の環境に合わせる)
      FILE "yuna1_01.wav" WAVE
        TRACK 01 AUDIO
          INDEX 01 00:00:00
      FILE "yuna1_02.iso" BINARY
        TRACK 02 MODE1/2048
          PREGAP 00:03:00
          INDEX 01 00:00:00
      FILE "yuna1_03.wav" WAVE
        TRACK 03 AUDIO
          PREGAP 00:02:00
          INDEX 01 00:00:00
      FILE "yuna1_04.wav" WAVE
        TRACK 04 AUDIO
          INDEX 01 00:00:00
      FILE "yuna1_05.wav" WAVE
        TRACK 05 AUDIO
          INDEX 01 00:00:00
      FILE "yuna1_06.wav" WAVE
        TRACK 06 AUDIO
          INDEX 01 00:00:00
      FILE "yuna1_07.wav" WAVE
        TRACK 07 AUDIO
          INDEX 01 00:00:00
      FILE "yuna1_08.wav" WAVE
        TRACK 08 AUDIO
          INDEX 01 00:00:00
      FILE "yuna1_09.wav" WAVE
        TRACK 09 AUDIO
          INDEX 01 00:00:00
      FILE "yuna1_10.iso" BINARY
        TRACK 10 MODE1/2048
          PREGAP 00:03:00
          INDEX 01 00:00:00
        
  7. ImgBurnなどでCUEシートを読み込んで焼く

以上です.wavファイルと生データの相互変換 (というかヘッダ取ったり付けたりするだけだけど) にはsoxを使いました.生データの切り詰めは head と tail を使い,0の付加は /dev/zero から dd で必要な分だけ末尾に追加するとかやってます.どれも一般的な処理なんで,真似してみようと思う方は適宜手慣れたものをお使いになればよいかと・・・.バイナリエディタだけでもできるし.

で,上記手順で作ったユナのCDを実機にかけてみたところ,前回到達できなかったタイトル画面が見事に表示されました (ただしタイトル画面は無音 (´・ω・`)

銀河お嬢様伝説ユナも実機で動作

もちろんゲームもプレイ可.

千秋お姉ちゃん!

というわけで,PSPの銀河お嬢様伝説コレクションから吸い出したデータを実PCエンジンで動かす話は多分これでおしまい.あんまりコースター作らずに済んでよかったなー.

お疲れ様でした

いやー,しかし今回はプリギャップとかATRAC3とか,普段触れないような話題満載で色々と知見が増えました.特にATRAC3は曲者ですね.ユナの1トラック目の長さにどんだけ悩んだことか・・・.AT3 Converter なるツールを使うとPSP上でat3をwavに変換できるようなので,こっちの方がちゃんとしたファイルを作れるのかも.PSP持ってないので試せませんが・・・いい加減買うべきか? 次また何か出たら考えよう.

それから,プリギャップやPCエンジンのCDの構造などに関してはこちらこちらが非常に参考になりました.こうしてまとまった情報があるのは本当に有り難いことですね.読んでるうちにセーラームーンがすげー欲しくなってきたw

さて,サファイアで遊ぶかー.

銀河婦警伝説サファイア

前回は起動確認だけだったので,ちゃんと遊ぶのは今回が初だったり.ノイズをカットして,念のためオーディオトラックのサイズをきちんと揃えたメディアを作り直してみたので非常にいい感じです.

・・・うーむ,超初見殺しだなこのゲームw.知らないと即死ポイント多すぎるw.2回目からはかなりマシになりましたが,先に進むのが怖くなりますねw.あと画面が狭いのも結構辛い.もう少し自機を小さくするとかすればよかったのかな?

一方,前にも書きましたが,音楽は超いいですね.知ってる中だと怒首領蜂に近いかな.あと演出もかなりかっこいい.これだけでも価値アリかと.アマゾンで2,600円くらいで新品買えるので,1bitの狂いもない本物でなければいやだというのでなければ買ってみるのもよいのではないかとー.吸い出して実機で動かせば2人同時プレーもできるしw

あ,ゲーム中の画面撮ってなかった.代わりにちょっと時代を感じるデモ画面とか置いときますねw.普通のアニメーションだと何も感じないのに,こういドットドットしてるやつだと異常に盛り上がるのはなぜなんだろうなー.

サファイアデモ画面

パイロット4人.シャルロットが一番使いやすいかも.チャージショットを使うとまた違うのかもしれませんが (チャージショットの存在に気づかず遊んでたw).ジャスミンは多分ツンデレ.

サファイア

シャルロット

ヘレナ

ジャスミン

なんでここで喋らないのか不思議だ.勿体ないぜ,マジで.

ステージ間のデモ

[コメントを書く]

solino 2009/09/26(土) 15:40:31
発売日に買ったマスターを所持していますが、
面データを読み込んでいるからです。>声なし。
nosuke 2009/09/27(日) 03:20:19
うおー,発売日に買われたのですか!すげー!
自分,毎週欠かさずファミ通読んでたのに存在にすら気づかず
知ったのはずっと後になってのことでした(笑)
> 面データを読み込んでいるからです。>声なし。
おおーなるほど.そういえばよく使われたテクニックなような気も.

ダライアスプラス

PCエンジン出したついでにこの前買ったダライアスプラスを動かしてみました.

なに!ダライアスαプレゼントだと!? どんくらい出回ったんですかねこれw

ダライアスαプレゼント

普通に起動した.

ダライアスプラス

スーグラだと背景が多重スクロールするのがすごいということなのか? ・・・ぬ,スーグラのAV端子の接触が悪くなっているな.要メンテかな・・・.

[コメントを書く]

solino 2009/09/26(土) 15:42:46
確か、ちらつかない程度だったと思います。
CD版を懐かしのボディソニックでやると結構きます。
nosuke 2009/09/27(日) 03:23:56
バーチャルクッションというやつですかー.
PCエンジンはほんと奥が深いw
solino 2009/09/28(月) 12:21:16
いえ、避暑地の椅子のような本当のボディソニックチェアですw
ここで書いちゃいますけど、私は電子系、半田系スキルがあまりないのでご自分で色々出来る方は羨ましいですね、色々な記事楽しませてもらっております。
nosuke 2009/09/30(水) 02:47:03
なるほどー,椅子に音響装置が組み込まれているタイプですね.
どんくらいだろうと思って値段見てビビりましたw
> 色々な記事楽しませてもらっております。
恐縮です.ありがとうございます.
楽しくても辛くても,何らかのネタになればいいかなーと思って
色々やって書いていますw
電子工作関係は昔からずっと人の後を追いかけて真似してばかりなので,
実は基礎的なスキルがあまりないんですよね (´・ω・`)
この辺も勉強せねばなーと常々思っているのですが,なかなか・・・

T60 HDD交換

上記作業の途中でwavファイルとかいじりまくってたらついにHDDの/home が 100% に達してしまいましたw.というわけで,いい機会なので昨日買ってきた500GのHDDに交換することに.・・・って容量がわからないだと!? fdisk でつないでみたところ,容量が不明なのでシリンダ数を入力しろとか言われます.うー,何入れればいいんだろう.トラック・シリンダ・セクタの関係が未だによくわかってないんだよなー.実態と違ったりするんだっけこれ?なおさらわからん・・・.

ひょっとして fdisk が古いのがいけないのかと思い,util-linux を 2.12r から ng-2.16.1 に上げてみたところ,今度は2Tのディスクとして見えるようになってしまいました.アホかw

これ以上はまるのも嫌だったので,諦めてWindows側にサクッとつなぎ,パーティションテーブルを作成.これを再度Linux側に持ってきたら今度は正しい容量で見えるようになり,無事領域のフォーマットに成功しました.ふー.こういうときにHDD-USB変換アダプタは超便利ですな.持っててよかった.

あとはGenoto Liveで起動して rsync して,最後にもう1回古い方で起動して新しい方に grub を書き込んで終わり.T60内蔵のものを交換したところ,無事起動してくれました.しばらくはこれで安泰だ.よしよし.

2009年 9月20日 (日)

秋葉原

秋葉原に行ってきました.本日の主な目的は,昨日速攻でキープしておいたトライのグレート魔法大作戦を回収すること.まあ,あとはいつも通り部品とか買いつつ,ユナが安ければ入手しておこうかなーという感じで.

さすがに日曜は人いっぱいですな.どこも混んでるねぇ.CPS2の基板を持っているとうろつくのに邪魔になるので,回収は後にしてまずはトレーダーへ.うーん,ユナはないか.ワゴンにもあんまり魅力的なものがなかったので何も買わずに離脱.

あきばお〜ではM3のカタログをゲットし,千石でコネクタの部材買った後は,静音ファンを探す旅に.CPS2のマザーと玄箱用のを買っておこうかなーと.60mm角の15mm厚の静音タイプが意外と見つからず,数軒回ってT-ZONEでようやく良さそうなのを発見.こうやって店をいっぱい回ってパーツ探すのって,何か久しぶりかも.

続いて若松へ行くために中央通りの反対側へ移動.途中,キャンプが目に入ったので一応ユナがないかチェック.残念ながらここにもユナはありませんでしたが,代わりに十数本1パックで500円の束の中にダライアスプラス発見w.これ以外に欲しいソフトが全然含まれていませんでしたが (せいぜいドラスピ),まあいいかってことで買っちゃいましたw.ねんがんのダライアスプラスをてにいれたぞ! 微妙に重くて邪魔だ (;´Д`)

若松で27C4096を適当に購入した後は,いよいよグレート魔法大作戦を回収しにトライへ.名前を告げ,お金を用意して待っていると・・・

「あ!」

ん?何事?

「・・・あのー,申し訳ないんですが,価格表だと6,300円となっていますけど・・・」

え? 嫌な予感がするのぅ・・・

「これ全然違ってました.12,600円になります」

工エエェェ(´д`)ェェエエ工

「いやー,道理で昨日からお問い合わせが多いわけです」

ですよねー,僕も超安いなぁと思ったんですよー (´∀`)'`,、'`,、 ・・・ (´・ω・) ハァ .一応,少々おまけしてた値段を提示してくれましたが,『この値段なら』と思って押さえたので買わずにキャンセルし,「多分ぱずるだま」と書かれたジャンクのGXのROMだけ買って撤収.うーん,ケチでごめんなさい.

そのまま中身がスカスカのクレーン研究所の袋を提げてマックジャパンへ.マックジャパンでは数日前にTwitterで話題 (?) になっていたヘクシオンを予定通りゲット!カウンターは例の店員さんだったので「YouTubeで見ましたよー」などとお話してみたりw

この後,フレンズ見つつGフロントに寄ってCPS2のマザーとジャンクケーブル詰め合わせを1袋購入.ぐぐぐ,腕が痛い・・・.でも何か物足りないなぁ.・・・そうだ,ThinkPad T60用にHDD買おう! というわけで突発的にARKで東芝のMK5055GSXを買ってみました.500Gですよ.これが8,000円しないってすげーなー.

最後にブックオフを見たり,ニュー秋葉原センターを見たりして撤収.ブックオフ1F奥のレゲーコーナーはかなり小規模な感じですな.ファミコンとスーファミばっか? 漁る気にもなれず,チラ見して撤収.多分もう立ち寄ることはないでしょう・・・.ニュー秋葉原センターは,10年以上前まではジャンクを探してよく立ち寄っていた気がするんですが,ここ数年は存在すら忘れていました・・・.で,覗いてみたら,入ってすぐの店で新品と思しきメガドライブやメガCD,32X,DCなどのソフトが色々売られていたりして軽くときめいたり.欲しいものがなかったのでときめいて終わってしまいましたが.漁ってる途中,おばちゃんが奥からDCのソフトの束を箱に追加して,新品を探してきて云々とか他のお客さんに説明してました.青の6号新品とかどっから探してきたんだろうw.今度からここもチェックするようにしよう.

そんな感じで本日の秋葉原散策終了.PCエンジン詰め合わせの中身はこんなんでした.THE功夫あるよTHE功夫w.ファンタジーゾーンと天外IIがダブリかな.

買ったもの1 PCエンジン関連

基板関連.実はGフロントでジャンクのコネクタ袋なんて売られいるということをごく最近まで知りませんでした (2ch見て知った).これがあればずいぶん安く色々作れそうですね.配線も使いまわせそうだし.

買ったもの2 基板とか

その他パーツとか.価格.com見てこのハードディスクの相場を確認してみたら,なんとARKが最安値になってました.ラッキー.ていうか厚さのこととかすっかり頭から抜けてたわ (;´Д`)'`ァ'`ァ.9.5mmで助かった・・・

買ったもの3 パーツとか

[コメントを書く]

2009/09/21(月) 20:14:07
ドラゴンスピリット懐かしいです。植物のボスとかエイっぽいボスがうっとうしかったような。
nosuke 2009/09/22(火) 17:26:37
ドラスピはPCエンジンで借りてずいぶん遊びました.
難しくて4面くらいまでしか行けませんでしたが・・・

基板とか

さっそくヘクシオンの動作をチェック! 無事起動!

ヘクシオン

しかし問題が.XEXEXと同じで,XRGB-3だと画面が入りきりません (´・ω・`)

ヘクシオン

当時ゲーセンで見かけても全然やる気しなかったけど,なかなか面白いなこれ.音楽はコナミコナミしてる気がするし.ガッチンコガッチンコうるさいのがまた何ともw

「多分ぱずるだま」のROMボードは,やっぱり普通の対戦ぱずるだまでしたw.実は違ったりしないかと期待していただけにちょっと残念.ていうか初めて基板がダブったw.コンデンサが1個取れてたり,集合抵抗が半分もげてたりと,ジャンクっぷりをいかんなく発揮していますが,普通に動くところがすごいですなー.

CPS2のマザーの方も無事動作することを確認.やっぱりファンが超五月蝿いですな.ちなみにこいつは最初からピンがついていませんでした.開けやすくて助かるぜ.

CPS2のピンがついていない

ぴじつた

0.8.5.2のWindows用バイナリをビルドして置いておきました.アイコン出なくて困っている方はこちらからどうぞ

誕生日

また1つ歳を取りました.技術的にも人間的にも何周も遅れている感じで大変申し訳ない感じですが (´・ω・`).あと1年すると16進数でも上の桁が増えるのか.はぁ.

2009年 9月19日 (土)

打ち上げ

かなり今更ですが夏コミで出した「SPEを256倍使うための本」の打ち上げ的なものを開催してみました.絵師とディープにお手伝い頂いた皆さんとでうちで焼肉です.まあ参加者はよみさんやヒタヒタさんといったいつものメンバーで,普段の飲みと一体何が違うんだ的な感じでしたがw.

ひとしきり肉を堪能した後は,前々からのリクエストにお応えしてクイズなないろDreams大会に突入w.2周したけど2度ともバッドエンドになるとは・・・.きっちり誰かを狙い撃ちしなきゃダメなのかこれ? その後も適当に基板で遊ぶ流れになり,ときメモ対戦ぱずるだま,ハチャメチャファイター,魚ポコあたりでわいわい.ハチャメチャファイターはテレビ側が信号をうまく拾えず,映るものの画面チカチカして右下に「信号が範囲外です」的なメッセージが出続けてましたが,よみさんは気にせずプレーしてましたw.まーやっぱテレビ + XRGB-2plus だと基板は厳しいね.

そんなこんなんでその後もぐだぐだ喋ったりして22時頃解散.お疲れ様でした.まさかケーキにローソク立てて祝ってもらえるとは思わなかったぜw.ありがとうございました.正直この歳でこのメンバーでそれはどうかという感じですがw.受かってたら冬もまたよろしくお願いします.

夏コミの忘れ物

夏コミでよみさんから受け取りそびれたCDを入手.なんと6枚もよみさんの方に紛れていたとはw

夏コミでよみさんから受け取りそびれたCD

2009年 9月18日 (金)

銀河婦警伝説をアレする

昨日の続きでサファイアとユナにも挑戦してみました.作業手順は以下の通り.

  1. at3ファイルをHiMDRendererを使って無圧縮のwavファイルに変換する
  2. binファイルをpcebinを使って解凍する
  3. hcdファイルを適当スクリプトでCUEシートに変換する
  4. CDRWINで焼く

まずサファイアから.超あっさり起動w

サファイアのロード画面

ロードが長くてかなりびびりましたが,その後デモが始まり,そしてタイトル画面到達!

サファイアのタイトル画面

さて,ここで前々から気になっていた点を検証してみたいと思います.パッケージの裏側に赤字で書かれている以下の文面.

「銀河婦警伝説サファイア」のオリジナル版にあった、2人同時プレイはできません。ご了承ください。

これを読んで「もしやサファイアだけバイナリにパッチが当たっていたりしてオリジナルと違ったりするの!?」という点が気になっていたわけです.さっそくマルチタップを引っ張り出してコントローラーを2個接続.1PでRUNしてゲームを始めて,キャラクターセレクトのところで2P側のRUNを押すと・・・

2人同時プレー可能!

余裕で2人同時プレー可能だしw.パッドでダブルプレーしてみましたが,ちゃんと両方動いてくれました.PSPだと2コンを物理的にエミュレートしようがないってことなんですかね.ここは実機が優っているところですねー.

というわけで,サファイアも実機で遊べることが確認できました.ただ,音声の再生が始まる瞬間にボッというノイズが一瞬入ったりすることがあるようです.昨日も最後にちょろっと書きましたが,wavファイルの長さとかをきちんとケアしていないためかなー.要調査ですね.

にしてもサファイアの音楽,超いいなー.いつかは当時のものも手に入れたいけど,まあさすがに無理だろうなぁw.

銀河お嬢様伝説の方は・・・

まあここまで動けば,残りのユナも動くに決まってるだろーと思いつつも一応動かしてみました.・・・ほら,大丈夫だ.

銀河お嬢様伝説ユナも起動

へー,こういうお話だったのねー.

銀河お嬢様伝説ユナ デモ画面

じゃあタイトル画面を確認して・・・というところでアクシデント発生.CDを読み込みに行った後,画面が真っ黒なまま帰ってこなくなりました.RUN+SELECTでリセットが効かないところを見るとハングしているっぽい? ふーむ,やはりそう簡単には行きませんか.

その後,ユナのデータを色々調べてみたところ,3トラック目のオーディオデータが無音ということが新たに判明しました.最初HiMDRendererを疑ったんですが,at3ファイルの方の中を見るとデータ部分で同じパターンが延々と繰り返されており,そもそもat3の時点で無音っぽい雰囲気です.ふーむ,吸い出しに失敗したのか,このトラックはゲームで使われておらず権利的にもアレだから入れてないのか,あるいは元々無音なのか,興味深いです.

よし,ユナとユナ2のオリジナルを入手してもう少し調べてみよう.あと誰か情報持ってたら教えてくださいw

まあとりあえず

実機を大切にとっておいてよかったなぁ.諦めずにCD-ROM2直してよかったなぁ.それから,アーケードカード頑張って落札してよかったなぁ.サファイアを移植してくれたハドソンには大感謝ですね.

T60のファン

CPUが90℃超えたらちゃんと4,500回転にまで上がってくれました.もっと早い段階で上がってくれw

[コメントを書く]

2009/09/19(土) 10:19:03
シリコンの限界は100度超ですからきっと大丈夫なのですよ:D

2009年 9月17日 (木)

飲み

突発で今日も飲み.ビールうめー.魚うめー.

銀河お嬢様をアレする 〜binファイル編

オーディオトラックに続き,今日はデータトラックの方を見てみました.データトラックはbinというありふれた拡張子がついていて,そこかしこで紹介されている pceconv.exe の挙動を見る限り zlibで圧縮されているようです.hexdump して見てみると,先頭にインデックスっぽいものがついています.試しに天外魔境を吸い出して pceconv.exe にかけてみたらやっぱり同じような感じになりました.これでオリジナルと見比べつつ解析するか?

いやでも既にツールがあるってことは,誰か海外でこの辺解析してる人いるんじゃないかなー.というわけでググってみたら,一発でそのものずばりの解説記事が出てきました.なるほど,256kByte単位で圧縮してるのねー.頑張って解析始めなくてよかった.後はこれの説明通りに適当にコード書けば・・・って,このポスト,末尾にデータトラックの圧縮と展開を行うツールのソースが添付されてるじゃん!素晴らしすぎる.

gccでコンパイルして,試しにさっき吸い出してpceconv.exeで変換してみた天外魔境のbinファイルを食わせてみたら,見事にisoファイルに戻りました.そしてユナやサファイアのbinファイルも無事変換に成功.ありがたいですなー.

銀河お嬢様をアレする 〜hcdファイル編

後はhcdファイルを残すのみとなりました.このファイルは上記リンク先のポストにも貼り付けられているようなフォーマットになっていて,各トラックの種類 (オーディオかデータか),ファイル名,開始位置とサイズに対応すると思しき数値のセットが列挙されています.

さっきのページにも書いてありますが,最初の数字がトラックの開始セクタで,次の数字がそのトラックのセクタ数みたいです.トラックの開始セクタが,前のトラックの開始セクタにセクタ数を足した値よりも大きい場合がありますが,これがプリギャップですな,多分.

とりあえず以下のような胡散臭いawkスクリプトを書いて,CUEシートっぽいものに変換.今回の作業の中で自分で何かを書くのこれが初めてかw

gawk -F ',' 'BEGIN{ base = 0; name = "yuna2_" }
{
 if ($2 == "audio") {
   printf("FILE \"%s%02d.wav\" WAVE\n", name, NR);
   printf("  TRACK %02d AUDIO\n", NR);
 } else {
   printf("FILE \"%s%02d.iso\" BINARY\n", name, NR);
   printf("  TRACK %02d MODE1/2048\n", NR);
 }
 pregap = $4 - base;
 if (NR > 1 && pregap > 0) {
   printf("    PREGAP %02d:%02d:%02d\n", pregap / 75 / 60, (pregap / 75) % 60, pregap % 75);
 }
 base = $4 + $5;
 printf("    INDEX 01 00:00:00\n");
}'

しかし未だにawkのいい書き方がわからんのよねー.・・・と関係ないですね.ちなみに,hcd5075.hcd (ユナ2) は12トラック目のセクタ数がおかしいのか,他より2桁くらいでかいのが気になりますw.プロテクトなのか? とりあえずここは 4548 に直して対処しちゃいましたが.

というわけで,CUEシートまでできたので,後はisoとwavと揃えて焼けばいいだけというところまで来たんですが・・・ここでハマりました.焼けるソフトが全然ない(;´Д`)

CUEシートに「BINARY」というのが入っていると,途端に対応してるツールが減るんですかね.CD Manipulator,Zulu2,EACを試したんですがどれもだめでした.あとLinuxにcdrdao入れてやってみたんですが,こっちはプリギャップがどうこうとかいわれてやっぱりだめ.

結局最後はCDRWINにまで行き着いてしまいましたw.遅いけど,まあこれが一番確実かー.というわけで,数十分の後,気になる円盤が焼きあがりましたよ.果たしてゲームは実機で動くのか・・・.

銀河お嬢様をアレできた

いよいよ緊張の実機動作タイム.果たしてうまく焼けているのか・・・.スーグラに初代CD-ROM2をつなぎ,アーケードカードを差してRUN・・・

はちすけキタ━━━━(゜∀゜)━━━━ッ!!

はちすけ

いえーい.ユナ2だぜー (番号が若かったので,しばらくこっちがユナ1だと勘違いしてましたw

ユナ2タイトル画面

かっこいい!

ユナ2のどっかの画面

何かトップを狙えみたいな話のオープニングデモですな・・・.

オープニング

ゲームも始まりました.音もちゃんと出ています.

ゲーム開始後

というわけで,PSPの銀河お嬢様伝説コレクションから吸い出した銀河お嬢様伝説ユナ2が,実機で動くことを確認できたというお話でした.感激だ.明日は銀河婦警伝説サファイアに挑戦したいところですね.

ちなみに,手を抜いて全然チェックしませんでしたが,多分at3から戻したwavファイルは本来のセクタ数と合わないんじゃないかという気がします.厳密にやるなら,この辺きっちり確認しないとまずいのかも・・・.

2009年9月21日から2009年9月17日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2009年9月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ