スキップしてメイン コンテンツに移動

投稿

2023の投稿を表示しています

最新の投稿

第4次スーパーロボット大戦 BGM追加 「ジョジョの奇妙な冒険~激闘~」

 コブラジョジョことSFC版ジョジョの奇妙な冒険といえばコブラチームが世に送り出した事で有名ですが、ゲームデザインとシナリオに関してはコブラチーム(バンダイ)が、実際のゲーム制作に関してはウィンキーソフトが担当していますので当然サウンドドライバはいつものウィンキーソフト仕様となっています。今回はジョジョのサウンドドライバやサンプリングデータなどの解析がてらDIOの館のテレンス・ダービー戦以降のスタンド使いとの戦闘で使われている中ボス用BGM「激闘」をコンバートしてみました。解析内容に関しては時期的な事もあってかヒーロー戦記のサウンドドライバと同一の仕様で各種データや展開先などの管理方法も同しなのですが、ROM内のデータ収納先は全然違う位置でした。ジョジョの場合は無圧縮のグラフィックデータがROMの後ろ側に大量に入れてありますので、その関係かもしれません。  さて、「激闘」にはギター系のサンプリングデータが大量に使われているのですが、例によって第4次側にジョジョ側のサンプリングデータに似たものがあまりなかった事とサンプリングデータの組み合わせ次第ではバッファオーバーフローを起こしてフリーズしたり戦闘中にSEがうまく再生されなかったりするのでかなりアレンジする羽目になってしまいました。ゲスト系のボスクラスBGMとして使ってみると面白いかなと思ったのですが、実際に使ってみると何だかイマイチな気がしなくもありません。  ちなみにこのデータを作成後にもう一度解析を行ったところ、ジョジョに関してはいくつかのサンプリングデータでヘッダやサンプリングデータの一部の記述を工夫すれば第4次でも使える事が判明しました。ひょっとするとジョジョやヒーロー戦記のサンプリングデータはヘッダの仕組みを理解すれば原則として全て第4次で使えるのかもしれません。そうなるとBGMデータのコンバートがかなり楽になるのですが、それはまだ先の話になりそうです。

第4次スーパーロボット大戦 BGM追加 「ジョジョの奇妙な冒険~激闘~」

 コブラジョジョことSFC版ジョジョの奇妙な冒険といえばコブラチームが世に送り出した事で有名ですが、ゲームデザインとシナリオに関してはコブラチーム(バンダイ)が、実際のゲーム制作に関してはウィンキーソフトが担当していますので当然サウンドドライバはいつものウィンキーソフト仕様となっています。今回はジョジョのサウンドドライバやサンプリングデータなどの解析がてらDIOの館のテレンス・ダービー戦以降のスタンド使いとの戦闘で使われている中ボス用BGM「激闘」をコンバートしてみました。解析内容に関しては時期的な事もあってかヒーロー戦記のサウンドドライバと同一の仕様で各種データや展開先などの管理方法も同しなのですが、ROM内のデータ収納先は全然違う位置でした。ジョジョの場合は無圧縮のグラフィックデータがROMの後ろ側に大量に入れてありますので、その関係かもしれません。  さて、「激闘」にはギター系のサンプリングデータが大量に使われているのですが、例によって第4次側にジョジョ側のサンプリングデータに似たものがあまりなかった事とサンプリングデータの組み合わせ次第ではバッファオーバーフローを起こしてフリーズしたり戦闘中にSEがうまく再生されなかったりするのでかなりアレンジする羽目になってしまいました。ゲスト系のボスクラスBGMとして使ってみると面白いかなと思ったのですが、実際に使ってみると何だかイマイチな気がしなくもありません。  ちなみにこのデータを作成後にもう一度解析を行ったところ、ジョジョに関してはいくつかのサンプリングデータでヘッダやサンプリングデータの一部の記述を工夫すれば第4次でも使える事が判明しました。ひょっとするとジョジョやヒーロー戦記のサンプリングデータはヘッダの仕組みを理解すれば原則として全て第4次で使えるのかもしれません。そうなるとBGMデータのコンバートがかなり楽になるのですが、それはまだ先の話になりそうです。

第4次スーパーロボット大戦 BGM追加 「バトルロボット烈伝~通常バトル~」&未使用機体グラフィック ヤクト・ドーガ(緑)

 バトルロボット烈伝の戦闘BGMは戦闘マップからシームレスで戦闘に移行するため基本的には切り替えがなくマップ上で流れているBGMがそのまま使用されるのですが、何度も聴くため印象に残る事になる「通常バトル」を戦闘用BGMとしてコンバートしてみました。バトルロボット烈伝のオリジナルキャラクターの大半が艦艇の艦長を務める人物ばかりなのでこれをコンバートしても使う機会はなさそうですが、主人公のアーク・クルヴィスやテヴィエ提督を自軍の母艦の艦長として組み込む機会があればこの曲を使いたいところです。また、同様にウルロフ将軍やカミラなどのゲルスター帝国側の人物を登場させるのであれば専用BGMの「ボスバトル」もコンバートしたいですね。  なお、動画内で使用している緑色のヤクト・ドーガは実際にデータ上に存在するものの機体データとの紐付けがされていないうえにパレットがギュネイ専用機のグラフィックに適用される設定になっているので頭部の色がややおかしな事になってしまいますが、クェス専用機のグラフィックと紐付けすると正常にパレットが適用されるので設定ミスと判断しこのような組み合わせに再設定しました。

第4次スーパーロボット大戦 BGM追加「XNガイスト」試作版

 今回は英雄戦記(作曲者の田中伸一氏の動画を拝見すると、本当の曲名は「プロジェクト・オリュンポス」のようですね)の解析結果をベースに同じくヒーロー戦記の「XNガイストのテーマ」をコンバートし、第4次に存在する似たような感じのサンプリングデータのオクターブやピッチを調整して当て嵌めてみました。解析で判明したのですが、ヒーロー戦記のような古いウィンキーソフト作品と第4次以降のウィンキーソフト作品ではサンプリングデータの圧縮方法に違いがあり、例えばヒーロー戦記で使用されているサンプリングデータのヘッダやデータ長を変更して第4次のサウンドドライバに入れてもまともに使用できませんでした。大半のサンプリングデータはまともに再音が出ず、一応それっぽい音は出るものもありますがそれも最終的には残念ながらノイズだらけになってしまいます。  また、ヒーロー戦記とスーパーロボット大戦シリーズで曲の調子を比較すると分かる通り、いくつかのデータ、特にドラム関係のサンプリングデータはヒーロー戦記とスパロボのそれで全く異なるためピッチやオクターブの変更では再現しきれなくなって(シンバルなど4〜5個くらいしか忠実に再現できそうにありません)います。ヒーロー戦記のドラムやギター関連のサンプリングデータは音域が広いうえに本当にシャープで綺麗な音が出るので、これを第4次で使えるといいのですが…。逆にスパロボにしか存在しないサンプリングデータ(ゴスペルっぽいコーラスやフルートなど)も多々ありますので、どうしても対応しきれない場合は大幅にアレンジしたバージョンで仕上げる予定です。

第4次スーパーロボット大戦 未使用BGM「THE LAST JUDGEMENT」の不具合修正パッチを公開しました

 ウィンキースパロボシリーズではお馴染みの最終マップ用BGM「THE LAST JUDGEMENT」ですが、第4次スーパーロボット大戦ではデータ上には存在するにもかかわらず残念ながら別の曲(「はるけき彼方で」と「マルス・ベルセルク」)が使用されているため未使用となってしまっています。しかもサウンドテストやマップ用BGMに設定して再生させるとノイズが入ってしまうという不具合が発生します。未使用となったのはこれが原因の可能性もありますが、データの内容を確認したところBGMデータ自体に問題はなく、サンプリングデータを各チャンネルに割り振るためのオフセットテーブルの設定にミス(チャンネル01に波形スロット13が設定されているが、波形スロット13にサンプリングデータが設定されていない)がある事が判明しました。  通常では波形スロット13にはサンプリングデータ0Aが割り振られていて、これは撃墜されたユニットアイコンがマップ上で爆発する際に使用するSEに使われています。恐らく開発初期の段階では波形スロット13及びサンプリングデータ0Aは常駐データに含まれていたのだと思いますが、何らかの理由でこれを外したためにBGMが正しく再生されなくなってしまった可能性が高そうです。そこで「THE LAST JUDGEMENT」のサンプリングデータ設定テーブルに「13:0A」の記述を追加するパッチを作成してみましたので、どんな感じに修正されるのか試してみたい方は以下のURLからダウンロードして下さい。パスワードは「/t$gct,sgeK(&~d3」です。 https://ux.getuploader.com/retrogamelaboratory/download/61

第4次スーパーロボット大戦 BGM追加「英雄戦記」修正版

   ようやく「英雄戦記」の修正版が完成しました。今回も前回と変わらず第4次のROM内に存在するサンプリングデータのみを使用してコンバートしていますが、サンプリングデータに合わせてBGMデータを書き換えたり管理ヘッダを追加する作業が多かったので、だんだんBGM作成のコツが分かってきたような気がします。作業終盤にはギターアレンジなどもできそうな道筋が見えてきたのですが、さすがに完成寸前でまた最初からデータを弄り直すのも面倒だったので今回はこれで終わりです。しかし冷静に聴いてみるとエコーの効かせ過ぎがひどいので、ゲシュペンストの戦闘アニメーション作成の際にでも調整しておくつもりです。なお、この作業のために第4次よりも古い作品のBGMデータをいくつか解析しましたので、内容を覚えているうちに集中的にコンバートを進めるのも一つの手かもしれませんね。ヒーロー戦記の「ラストバトル(XNガイストのテーマ)」やジョジョの奇妙な冒険の「激闘」あたりはBOSS属性BGMとして使用価値がありそうなので、コンバートに挑戦してみたいところです。

第4次スーパーロボット大戦 BGM「英雄戦記」修正検討試作

 以前ヒーロー戦記からコンバートした「英雄戦記」ですが、新たに判明した解析内容を踏まえて再度コンバートに挑戦してみました。ヒーロー戦記のデータには存在しないマザーヘッダの追加やサンプリングデータのオクターブ及びバッファの調整で、前回よりも多少は原曲の雰囲気に近付ける事ができたと思います。しかしやはりヒーロー戦記には存在して第4次には存在しないサンプリングデータが多いので、ドラムが足りない部分は既存のドラムやブラス等のアレンジで何とかする予定です。第4次のサンプリングデータにはやたらと弦楽器が存在するので、ギターアレンジも面白そうだと思うのですが、今回は普通のアレンジ(というか補完)で仕上げます。サンプリングデータ自体はまだ2つほど増やせる見込みですので、補完ついでに曲の厚みが出せるようにやってみるつもりです。

第4次スーパーロボット大戦 BGM追加「モビルスーツ戦~激戦の果て~」修正版

 新たに解析内容を踏まえ、暇を見て修正しようと考えていた「モビルスーツ戦~激戦の果て~」ですが、忘れないうちに実施しようと考え取り急ぎ修正版を作成してみました。前回はSEと被る関係で使用できなかったサンプリングデータをチャンネル変更で再生できるようにしたほか、エコー定義を実際の楽曲に近いものに変更しています。ちなみにサンプリングデータの構成自体は前回の方が実際の楽曲に近い(今回はバトルロボット烈伝に寄せています)のですが、自分でもどちらがいいのかよく分かりません。BGMコンバートでの解析内容も少しづつ貯まってきましたので、時間に余裕があれば「英雄戦記」を再コンバートしたり「XNガイスト」をコンバートしてみたいものですね。

第4次スーパーロボット大戦 BGM追加「聖戦士ダンバイン~戦火の爪あと~」修正版

 BGM関連のデータの解析を進めていったところエコー定義やチャンネルの設定に関する内容が分かってきたので、今回は「戦火の爪あと」を修正してみました。前回の「戦火の爪あと」と比較してあまり変わらないような気もしますが、エコーが多少強くなっていたり一部の楽器(=サンプリングデータ)の構成を変更しているほか、曲そのものにも少し手を加えています。同じような感じで「モビルスーツ戦~激戦の果て~」の修正もできそうな気がしますので、暇を見て手を加えようと思います。

第4次スーパーロボット大戦 BGM追加 「SWAN(白鳥)」

 今回はバトルロボット烈伝から逆襲のシャアで使用されている楽曲「SWAN(白鳥)」をコンバートして追加してみました。本来の「SWAN」にはないイントロが追加されたアレンジが特徴で、SLGのマップ用BGMとして再構成されている事が分かります。色々と試行錯誤しながらコンバートしてみたのですが、「モビルスーツ戦~激戦の果て~」と同様にチャンネルの7番がベース部分に使用されている(SEは使用サンプリングデータが重複しない場合はチャンネルの7番と8番を使用し、重複する場合はそのサンプリングデータが使用されているチャンネルで再生されるようです)ため戦闘シーンに使用するとSEに占有されてしまうのが難点です。  記事を書いていてふと思いついたのですが、チャンネルの構成を変更してBGMでの重要度が低いチャンネルを7番や8番にできればこれが避けられるような気がしますので、次回のBGMコンバートではチャンネルの構成を変更する事ができないかどうか試してみようと思います。

第4次スーパーロボット大戦 BGM追加 「モビルスーツ戦~激戦の果て~」

 今回はバトルロボット烈伝のBGMデータをベースに「モビルスーツ戦~激戦の果て~」を追加してみました。原作ではカミーユやクワトロが苦戦して窮地に立たされている際によく使われていた楽曲ですね。使うとすればティターンズの増援イベントなどに使用する事を考えていますが、一応戦闘でも使えるようにしてありますが、実際のところ第4次とバトルロボット烈伝ではSEに関する仕様が違うので、そのままコンバートすると戦闘中のSEで一部のサンプリングデータが再生されなくなってしまうためサンプリングデータや波形スロットなどの構成をかなり変更せざるを得なくなってしまいました。今後の課題として、もう少し解析を進めてBGMがSEに邪魔されないような方法を見つけていきたいところです。ちなみにガンダム関連のBGMはYouTubeを通じて「著作権管理代行団体」を名乗るアメリカの企業から一定期間以内に削除しないと金銭の支払いを要求するという内容の告知が来る事が多い(少し調べてみたところ実際には本来の権利者とは全く関係のない団体のようですが)ので、告知が来た「艦隊戦」など数点の動画と同様にある程度の期間でこの動画は削除する予定です。

キャプテン翼4 サトルステギ追加&ダイナマイトヘッド実装

 GW明けの仕事の忙しさで更新が滞ってしまい申し訳ございません。記事の更新はなるべく頻繁に行いたいものですが、生活に追われてしまうとどうしても手が回らず心苦しい限りです。  さて、厳密に言うと今回の改造要素はキャラクターの追加ではなく変更(オールスターメンバーに登録できるユニークキャラクターは64人のため)なのですが、一部のキャラクターをこのオールスター用の64人から普通のエース(選手IDが00FFまでのキャラクター)に移す事で空いた枠に原作や3や5に登場する人物に置き換える一環として、2と3に登場したサトルステギを設定してみました。固有必殺シュートのダイナマイトヘッドでDFやGKを片っ端から吹っ飛ばしてゴールネットをぶち抜くアルゼンチンの名物選手ですが、新たにバティンとカージャレが登場したせいか残念ながら4からは登場しなくなってしまいました。しかし必殺技のダイナマイトヘッド自体はデータ上に存在しますので、制作当初は登場が予定されていたのだと思います。こんな感じで何人かの選手を入れ替えて敵チームを少し賑やかなものにしていきたいものですね。

第4次スーパーロボット大戦 未使用BGM「通常ボス」(VIOLENT BATTLE)

 今回は、第4次スーパーロボット大戦ではデータ上に存在するものの何故か未使用となってしまったBGM「通常ボス」をご紹介します。曲を聴いて頂ければすぐにお分かりの通り、中身はシリーズでお馴染みの名曲「VIOLENT BATTLE」そのもので、SFC版の第3次やEXのBGMをそのまま流用しているものと思われます。恐らくゲストのボス級機体のBGMとして割り振られる予定だった筈なのですが、何故かゲスト勢の機体には「ヴァルシオン」が割り当てられており、この曲は戦闘用BGMとして設定されていません。また曲名も「通常ボス」というシンプル…というかあまりに無機質な名称が付けられています(動画ではサウンドテストへの組み込みにあたり固有句を書き換え「VIOLENT BATTLE」に変更しています)。ハックロム界隈では没データの代表格としてすっかり有名ですが、一般にはあまり紹介されていないようなので今回取り上げてみました。しかし第3次の隠しサウンドセレクトでは「VIOLENT BATTLE 」、EXでは「生と死のはざま」、第4次では「通常ボス」とシリーズ内で名称が全部異なるのは何か深い理由があるのか気になるところです。今後はこういった没データやバグ等についても特集を組んでいこうと考えています。

第4次スーパーロボット大戦 BGM「聖戦士ダンバイン~戦火の爪あと~」追加

 ゲッター3の追加戦闘アニメーションを作っているのですがフリーズの連続でなかなかこちらの思うように動いてくれないため、しばらくの間は息抜きにBGMの解析やコンバートを進めていきます。  とりあえず今回は以前コンバートに挑戦したもののSEの不具合やフリーズで使用を諦めていた「戦火の爪あと」を修正して実際に使えるようにしてみました。具体的には特殊SEを再生させる常駐コード「11 0B」を追加したり、第4次側の仕様に合わせて使用サンプリングデータを2枠削った分を同じチャンネルで纏められるようにサウンドデータを書き換えたりしています。  とりあえずコンバート前とほぼ遜色なく聞こえるようにはなったと思うのですが、アレンジの結果不要な音が入っていたり音階が外れている箇所かありますので、もう少し本来の原曲に近付けるためにデータを変更してみたいところではあります。しかしこの楽曲は劇中ではどちらかというとショウ達が苦戦している時によく使われていたものなので、自軍のBGMとしてはちょっと似合わないような気もします。使用できるように調整しておいて何なのですが、結局のところ使わないというか使う機会がない可能性が高いと思います(BXではこれがダンバイン系のデフォルト曲みたいな扱いでしたが)。もしも使うとすればBXのようにハイパー化したオーラバトラーやウィル・ウィプスなどダンバイン系のボスユニット限定、またはイベント時に使用する感じになってしまうかもしれません。

第4次スーパーロボット大戦 ゲッタービジョン(修正版)

   先攻側がゲッタービジョンを使用すると後攻側のユニットの下側に表示される影が消えてしまう事がある不具合を修正すると共に、演出を若干変更してみました。不具合に関しては最初のゲッターマッハでジャンプする際に足元の影を消す処理を入れているのですが、これがOFFになる命令を入れないと相手側の影まで消えてしまう事があるのが原因でした。  演出面の変更転移関しては、具体的にはヒット時に背景のモザイク処理を加えたり一撃毎に漫画版隼人の「目だ! 耳だ! 鼻!!」の台詞が挿入されます。ちなみに攻撃を外した場合はモザイク処理や特殊台詞は表示されません。背景は高速スクロールするようにしてみたのですが、やはり静止状態の方がしっくりするような気がします。  スーパーロボットの必殺技関係はできる限りこんな感じで演出を強化していきたいのですが、あまり長い演出の戦闘アニメーションですと見ていて疲れてしまうと思いますので、概ねこの程度の時間に抑えたいと考えています。

第4次スーパーロボット大戦 追加武器アニメーション(ゲッター2)

 ゴールデンウィーク前の仕事の追い込みで更新が遅くなってしまいましたが、今回の攻撃アニメーション追加は予定通りゲッター2です。主な変更点としてはドリルミサイル発射後の差分アニメーションを追加し、ゲッタービジョンの攻撃モーションを作成した程度です。ゲッタードリルのアニメーションが入っていませんが、収録するのを忘れていました。  この動画では発生していないのですが、先攻側がゲッタービジョンで攻撃をするとたまに後攻側の影が消えてしまう事がある不具合が発生します(恐らくグラフィックの読み込ませ過ぎによるVRAMのオーバーフローが原因ではないかと思うのですが)。アニメーション自体ももう少し工夫したい部分がありますので、不具合の原因調査や解析が進んだらアップデートを考えています。なお、次回はゲッター3を予定しています。

ドラゴンクエストⅤ 移動速度変更について

 Ⅰ・Ⅱの移動速度を上手く変更できていませんが、代わりにⅤで「任意のボタンを押している間だけ移動速度を変更する」改変ができました。具体的には「Bボタンを押している時だけ歩行速度が倍になる」というもので、Bボタンがいわゆるダッシュボタンのような役割を果たすのですが、自動イベントが発生している最中でもBボタンを押しっぱなしにしていると速度が倍になる命令を受け付けて最悪の場合フリーズしてしまうため、イベント発生中はBボタンを押さないようにする必要があります(イベント実行中はBボタンを押さなければいいのですが…)。理想としてはイベント発生中やコマンドウィンドウを出せない状況ではダッシュを受けつけないようにできるとよいので、これが実現できればパッチを公開する予定です。

ドラゴンクエストⅠ・Ⅱ 移動速度変更について

 現在の視点から見ると移動速度が若干遅いようにも感じる本作ですが、これを改善できないか調べていますが、かなり難航中です。数日前にそれらしきところを探し出して変更したところ、移動速度ではなく一歩あたりで進むピクセル数が変更はできたのですが、これを実行すると画面の描画スピードがおかしくなってオブジェクトの表示位置がおかしくなったり黒抜けが発生してしまい、壁の中に嵌まったり水の上を歩いたりしてしまいますので、やはり変更すべきところが違うのだと思います。描画スピードが間に合わないという点を踏まえると移動速度ではなく一歩あたりの描画ピクセル数を変更しているのかもしれません。一つ気になるのは、Ⅱのオープニングイベントの寸劇の自動スクロールでスピードがゆっくりになったり速くなったりする演出で、この辺りの処理を解明できれば移動速度を変更できる可能性がありそうです。なお、同じくチュンソフト開発の「V」ではいくつかの部分の数値を変更する事で移動速度を変更できるのですが、やはり速くし過ぎると描画が追いつかなくなって画面が乱れたり、自動スクロールイベントで描画がおかしくなったりフリーズします。こういった同じデベロッパーの作品の処理方法を参考に解決できるといいのですが…。

ドラゴンクエストⅠ・Ⅱ FastLoROM仕様化パッチを公開しました

 今回は、バイナリエディタを開いて何となくROMの中身を眺めていたところ気が付いた事について記述します。  ドラゴンクエストⅠ・ⅡのROM仕様ははSlowLoROMという最もありふれた仕様(低速スキップ)なのですが、どういう事かFastLoROM(高速スキップ)への切り替え命令が含まれています。これはSLGなど通常よりも高速の思考ルーチンを必要とする作品でよく見られる仕様(「紋章の謎」も高速スキップROMです)ですが、カートリッジを分解して中身を確認したところ当然ながら使用されているROMや基盤はSiowLoROM仕様のものが使われていましたので、残念ながらプログラムが高速処理されている訳ではありませんでした。更に一応007FC0から始まるソフトの仕様の記述を確認しましたが、やはり007FD5に設定されているROM仕様の指定が「20」になっています。高速スキップならばこの部分が「30」でないと切り替え命令が無効化されてしまいますので、開発中は処理速度を考慮して高速仕様でプログラムを組んでいたものの、実際にソフトを起動させてみたところ低速仕様でも十分な速度が得られたのか、または当時のROMの価格などの関係で利益を優先すべく低速仕様に変更したのかもしれません。  検証としてこの部分を30に置き換えたところ、気のせいかもしれませんが歩行時のグラフィック描画のカクつきや戦闘時の敵の行動(敵の行動に関してはⅡ)などが僅かながら速くなったように感じます。パッチにするまでもないのですが、バイナリエディタを使用できない環境でどんな感じなのか試してみたい方は以下のURLからダウンロードして下さい。 https://ux.getuploader.com/retrogamelaboratory/download/59

ドラゴンクエストⅠ・Ⅱ ロトの剣はやぶさパッチを公開しました

 とりあえず「Ⅱ」に登場するロトの剣で「はやぶさの剣」と同様に2回攻撃が可能になるパッチを作成してみました。攻撃力40で2回攻撃を叩き込む事が可能ですので、一撃あたりの威力はやや低いものの最終装備の一枠として考慮するに値する存在にできたと思います。この状態で会心の一撃の発動率も1/16ほどに上げてみたのですが、思ったよりも会心の一撃が出てしまいあまりに強すぎる印象になったので今回は取り止めました(後でおおかなづちや破壊の剣などの設定を組み込む際に復活させる予定です)。なお従来通り「はやぶさの剣」もそのまま2回攻撃が可能になっています。空き領域の007F80~007FBFを使用していますが、いずれ後から作成するパッチと統合する予定ですので、今後配置する場所は変更するかもしれません。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/58

ドラゴンクエストⅠ・Ⅱ ロトの剣強化計画

 預かり所の仕様を変更する事でⅡにもⅠのアイテムが自由に使えるようになったのですが、ついでに宝箱などのアイテムを入れ替える事にも挑戦してみました。現状では全ての宝箱を管理できているわけではありませんが、例えばⅡの竜王の城でⅠのロトの剣を入手できるようにはなりました。ロトの剣自体はⅠでもⅡでも性能が同じなので、こうなるとⅡのロトの剣が余ります。そこで「Ⅰのロトの剣をⅡのロトの剣に交換するイベント」を追加し、Ⅱのロトの剣の攻撃力を強化したり2回攻撃を付与したりできないものかと考えています。  イベント関係は全然調査できていないのですが、例えばラダトームの城にいる呪いを研究する老人を刀鍛冶という事にして、ドン・モハメの水の羽衣イベントのようにⅠのロトの剣と何かキーアイテムを持参する事で強化(=アイテム交換)イベントが作れるとよいのですが、実現には結構ハードルが高そうです。

第3次スーパーロボット大戦 精神コマンド「集中」の効果変更案

 SFC版の第3次スーパーロボット大戦では、精神コマンド「集中」は命中と回避に影響を及ぼすパラメーター「直感」を1ターンの間+50、つまり「1ターンの間命中と回避を+50する」という絶大な効果を持っているのですが、これを使用できるパイロットの大半がどうにも微妙な能力の持ち主ばかりで、しかも反撃命令の判定基準がいま一つ、かつ全パイロットへの一括命令のため「集中」を使っても後の作品のように「当てて避けながら」反撃する事ができるわけでもありません。正直なところ、この精神コマンドの恩恵にあずかれるのはルート限定で仲間になるクワトロがマップ兵器でレベルブーストして装甲350未満の機体に乗っている時ぐらいしかないとすら言えます。そこで、もっと有用な効果のある精神コマンドとすべく「集中」のフラグを使用して後発作品の精神コマンドを再現しようと考えています。  一口に精神コマンドといっても色々とあるのですが、1ターンの間有効で「集中」以上に利用価値があり、かつ防御面で役に立つものというとやはり種類が限られてきますので、スーパーロボット系のテコ入れや反撃命令の防御判定基準を考慮すると最も有用であるのは「鉄壁」ではないかと思います。ウィンキースパロボ時代の装甲2倍化仕様にするか、それともα外伝以降のダメージ1/4化仕様にするか悩みどころではありますが、「必中」と「鉄壁」を組み合わせれば装甲の高い機体の反撃使用価値がかなり増すのではないでしょうか。ゲームバランスにかなりの影響を与えてしまう事は避けられませんが、時間を見て実現可能かどうか検証してみるつもりです。

ファイアーエムブレム紋章の謎 3桁刻印のROMを入手しました

 先日「3桁刻印の紋章の謎のROMカートリッジはまだ見た事がない」と書きましたが、本日ようやく某中古ゲームショップで見つける事ができたので購入してきました(外箱も取扱説明書もないROMカートリッジのみの商品です)。シールの刻印がかなり薄く、何度撮影しても上手く撮影できなかったので今回は写真の掲載はしませんが、背面シールの刻印は「00D」という、よくある後期ROMではお馴染みの数字2桁+アルファベット1文字構成の構成となっています。しかしAやBはともかく、Dという刻印は初めて目にします。  さて、SFCのROMカートリッジの刻印の原則から考えるとこのソフトが修正版だと思うので早速中身を吸い出して内容を確認したところ、結論から言うと中身は残念な事に初期バージョンでした。念のためバイナリエディタでバージョン情報や所有している初期ROMのデータと差分を確認しましたが、やはり完全に同じでした。最近流行しているという偽カートリッジの可能性も考え、更に特殊ドライバーでネジを外して中身の基盤を物理的に確かめたのですが、これも元々所有している初期ROM(背面のシール刻印は「34」)と全く同一の正規の基盤で、任天堂による1993年生産を示すプリントが記載されています。可能性として考えられるのは「元々の所有者が汚れが酷いなど何らかの理由で初期ROMと後期ROMの背面部分を入れ替えた」というものですが、「バッテリーバックアップ用のボタン電池を任天堂に交換依頼した場合、交換済みの証拠としてそれを示す刻印が打たれた背面シールに張り替えていた、または刻印を追加していた」という可能性も捨てきれません。大半のソフトではバグが修正された後期版は刻印のアルファベットがAかBである事が多いので、Dとは「電池交換済み」の「D」を示す記号なのかもしれませんね。  今回は残念な結果になってしまいましたが、これにめげずに引き続き3桁刻印の後期ROMを探してみようと思います。

第4次スーパーロボット大戦 追加武器アニメーション(ガンダムNT-1アレックス)

 今回はゲッター2…ではなく、ガンダムNT-1アレックスの戦闘アニメーションを作成してみました(ゲッター2は次回に作成予定です)。右腕をビームライフルやビームサーベルなどを自然に構えられるような形状に変更し、ガトリングガンは以前公開していたパッチ収録分を取り止めて差分アニメーションを用意し、内容を全面的に変更した専用アニメスクリプトを組んで対応しています。実はガトリングガンがせり出す際に、格闘系のアニメーションに使われている金属がぶつかるようなSEを設定しているのですが、何故か正常に再生されない事が多く不快なノイズ音になったり無音になってしまいます。これらのSEを完全に再生させるには同じSEが全て使われている武器アニメのIDを探してそれを割り振るか、その該当武器アニメーションIDに+0200hして使用する必要があるので、恐らく完全に正常にSEが再生されるようにするには武器アニメーションIDごとに設けられた常駐サウンド設定部分を探して使用SEのサンプリングデータなりチャンネルなりを指定(サウンドドライバ内に格納されている?)すればいいのだと思います。自在にSEが設定できれば戦闘アニメーション作成の幅が広がりますので、今後の課題として設定箇所を探していきたいところです。

第4次スーパーロボット大戦 ゲッター2系機体の追加武器検討

 防御面では分身というアドバンテージのあるゲッター2系ですが、攻撃面に関しては射程が短く武器の威力も量産型のモビルスーツ並み、しかもどういう事か発展型に乗り換えていく毎に武器の使い勝手が悪くなっていきます。終盤ではボスキラーとして真ゲッター1のみを使う形となり他の形態はザコ敵相手にもほぼ使わなくなってしまうのは少々寂しいので、テコ入れとして何か強力な武器を追加しようと思っています。具体的な案としては、ゲーム中ではゲッタービジョンが分身回避として使用されますが、これを原作のように攻撃面でも使用できないか検討中です。攻撃アニメーションで機体や武器グラフィックの透過処理を行うようなコマンドがあればそれを使用し、なければミサイル系やミラージュドリルのアニメーションなどを応用した必殺技として追加するつもりです。ただし、あまり威力を高く設定してしまうとゲッター3系の出番が全くなくなってしまう可能性もあるので、攻撃力は若干抑えると共にもっと出番のないゲッター3系の機体に関しても何らかのテコ入れを考えていきたいところです。

ファイアーエムブレム紋章の謎 自軍メンバー枠拡大の考察

 公式には「ROM容量の関係でファミコン版よりも仲間の数を減らさざるを得なかった」と発表されているSFC版ファイアーエムブレムですが、実際に解析をしてみると勿論そんな事は全然なく、少なくとも初期ROMの中身を見る限りでは未使用領域と思われる部分がかなり存在していて、まだそれなりにデータを入れる事ができる余裕があったという感じを受けます。少なくともキャプテン翼4やSFCのスーパーロボット大戦シリーズ、ドラゴンクエストⅠ&Ⅱ等の今まで解析してきたROM容量のほとんど全てを使っているソフトと比較すると、という事が前提になりますが、割とあちこちに空き領域があります(バグ発生時の修正コードを記述するためにわざと余裕を持って空き領域を設けている可能性もありますが)。ここから導き出されるのは、例によってROM容量ではなく第4次スーパーロボット大戦と同様に「大量のパラメーターを入れ過ぎた事によるRAM容量圧迫に起因するもの」である事が分かります。端的に言うと、RAM容量が足りない原因は「ファミコン版では一人当たりの武器とアイテムの管理が全部で4個の枠で管理していたのを、SFC版では一人当たり倍の数である合計8個の武器とアイテムを所持できるようにした事」です。しかも仕様上、武器やアイテムの使用回数も所持しているキャラクターのRAM領域に記録される(つまり武器やアイテム一つにつきアイテムIDで01h、使用回数管理で01h使うので、武器とアイテム8個分だけで実に10hものRAMを使っている)のですから、RAM容量が不足してしまうのはある意味当然と言えます。  少々話が脱線しましたが、つまり、登録できる仲間の数を増やすにはそれ相応のRAM領域を確保すればいいのであって、この場合はゲームバランスを考慮すると一人当たりが所持できる武器かアイテムの数を全部で2個分ほど減らす(仮に武器とアイテムが3つずつしか持てなくても、実際にはそれほど致命的な不便さはなかったのではないでしょうか)のが最も簡単という事になるのではないでしょうか。また、自軍ユニットにとっては単なる足枷でしかないパラメーター「ぶきレベル」を廃止する事で少しでもRAM領域を確保するという考え方も本来では可能だったのではないかと思います。尤も、作品の性質上45人でも大量の二軍キャラが発生するのでこれ以上登録枠を増やす必要はないと

第4次スーパーロボット大戦 追加武器アニメーション(スーパーガンダム)

 今回はスーパーガンダムの の変更アニメーションをまとめてみました。基本ポーズはロングライフルなしの状態にして手首や右半身を補完する事でビームライフルやバズーカ等を表示できるように変更しています。ロングライフルは他の武器同様に攻撃する時のみ表示されます。なお、投稿してから気が付いたのですが頭にバルカンポッドシステムが書かれていないので、完全版では頭部にバルカンポッドを書き足すか、攻撃時のみバルカンポッドを表示する差分アニメーションを作成する等の対策をするつもりです。なお、今までは気になった機体からアニメーションを追加していましたが、次回からは原則としてシナリオ登場順に追加していく事にします。

第4次スーパーロボット大戦 武器アニメバグ修正パッチ改を公開しました

 流用や応用ができそうな武器アニメーションのチェックやテストをしていたところ、今回新たに計都羅睺剣と計都羅睺剣・暗剣殺が回避された際にSEがおかしくなる不具合を発見しました. お恥ずかしい話ですが、通常プレイでは計都羅睺剣をほとんど使った事がなく、暗剣殺は奇跡併用が原則だったのでSEの不具合には全く気付きませんでした。ともあれ、これを修正すべく「武器アニメバグ修正パッチ」の内容を更新しました。以下のURLからダウンロード可能です。初期ROM、後期ROMの双方共通のパッチで、元々のソフトの内容に存在するバグですのでパスワードは設定していません。 https://ux.getuploader.com/retrogamelaboratory/download/57  今回のパッチで修正できる不具合はこんな内容です。 実体剣で切り払いが発生すると、切り払われる側の実体剣の画像が乱れる。 先攻側の断空剣が回避されると、後攻側の武器のSEが再生される。 計都羅睺剣で切り払いが発生すると、発生後の剣の表示位置がおかしくなる。 先攻側の計都羅睺剣が回避されると、後攻側の武器のSEが再生される。 先攻側の計都羅睺剣・暗剣殺が回避されると、後攻側の武器のSEが再生される。 ドリルテンペスト使用時に、被攻撃側の背景画像が攻撃側の背景画像になる。  常駐SEの関係でこの手の不具合はまだまだ見つかるのかもしれませんが、組み合わせが膨大なので全てを検証するのは難しいですね。

ドラゴンクエストⅠ・Ⅱ 預り所仕様変更パッチを公開しました

 割と有名な話ですが、SFC版ドラゴンクエストⅡのムーンペタの道具屋で購入できる革の盾は実は「ドラゴンクエストⅠに登場する革の盾」で、これを預かり所に預けてしまうと預かり物 リストに表示されなくなり、 二度と引き出す事ができなくなります。これは「ドラゴンクエストⅡ」をプレイしている際にはフラグ管理で「Ⅰ」のアイテムが預かり物リストに表示されなくなる仕様になっているためで、チートやバイナリ改造でⅠのアイテムをⅡに登場させて預かり所に預ける場合は漏れなくこの対象になります。これを防ぐには預かり所のフラグチェックを強制的にⅠと同じ状態にする必要があります(チートなどでRAMのⅠ・Ⅱ判定フラグを書き換えてもいいのですが、この方法の場合は一時的なものにしておかないと不具合が生じてしまい、最悪の場合はゲーム進行が不能になったりします)。今回のパッチはこれを可能とするものですが、通常のプレイでは単に「ムーンペタの道具屋の革の盾を預かり所で自由に預けたり引き出せるようになる効果」しかありません。さすがにほとんど需要はないと思いますが、一応アップロードしておきましたので必要な方は使ってみて下さい。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/56

ファイアーエムブレム紋章の謎 ソルジャー導入実験と下馬時のクラス分岐考察

 ある種のカルトゲー扱い気味なファミコン版と比べて「これぞ元祖ファイアーエムブレム」的なゲームとして圧倒的な人気と認知度を誇るSFC版(実際には「外伝」や「聖戦の系譜」と同様に、元々は別の世界や大陸を舞台にした「暗黒竜と光の剣」とは話の繋がり自体がないゲームとして加賀昭三氏が企画した作品を任天堂からの要望で後から直系の続編として変更したらしいです)ですが、データ解析やバグ修正、ハックロム等の状況を見渡すと国内でも海外でも圧倒的に情報が多いのは「聖戦の系譜」や「トラキア776」ばかりで、「紋章の謎」はあまり関心が寄せられていない気がします(ファミコン版は情報すらほとんどありませんが)。私は未プレイですが、「紋章のビラク」というある意味で公式の世界にすら影響を与えた有名なハックロムが存在する割には、この現状は少々寂しい気がしなくもありません。そんな訳で、という事でもないのですが、中古品を入手するとほぼ間違いなくバグだらけの初期版を購入する羽目になる本作(碌にデバッグせずに発売したのかとにかく大小様々なバグが多く、当時小学館から発売された公式攻略本の後編にはバグ告知コーナーが設置され、大量のバグを記載すると共に未記載バグの報告を募っているという有様でした)には致命的な不具合をかなり修正した後期版が存在(私は現物を見た事がないのでどの程度出回っているのか、また見分け方も不明ですが、例によってROM背面のシール刻印にアルファベットが使用されているのでしょう)し、後にニンテンドウパワーでの書き込み用にデータ販売されたものはこの後期版になっています。ちなみに私は「紋章のビラク」をプレイするために後期版ROMを探してはいるのですが今までROM版の現物にお目にかかった事がなく、現在所持しているニンテンドウパワー版(これはプレイの結果から後期バージョンである事が分かっています)の吸い出し環境を整えるべきか本気で考えている次第です。私の吸い出し器材はSUPER UFO PRO 8なので本来はニンテンドウパワーのフラッシュRAM吸い出しや書き込みに対応できるらしいのですが、全然上手くいかないんですよね…。まあ各種バグや不具合の解析や修正をするのも面白そうなので、今後「紋章の謎」を解析したりパッチを公開する際は、吸い出しに成功している初期版でやっていくつもりです。  さて、SFC版(いわゆる

第3次スーパーロボット大戦 母艦パワーアップ解禁パッチを公開しました

 SFC版の第3次は母艦の「パワーアップ」(EX以降の「ユニット改造」)ができないという実に不便な仕様になっているのですが、これを通常の機体と同様にパワーアップできるように変更するパッチを公開しました。処理を見る限り、改造対象を選択する際にわざわざ母艦かどうかチェックして選択リストから除外するという面倒この上ないやり方にしているので、かなり意図的にこういう仕様にしたのだと思うのですが、EX以降では普通に母艦が改造できるところを鑑みるに何か別の処理を組み込もうとして(最初は母艦のみ改造内容を引き継げるように専用の改造コマンドを用意して、そのためのRAM領域も設定しようとしていた?)ミス、またはRAM容量の不足等で断念した結果こうなってしまっているのかもしれませんので、今回はパスワードは設定していません。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/54  一度でもプレイした方はご存知の通り、SFC版第3次の母艦はどれもこれもかなり弱いので改造したところで大した戦力にはならないのですが、少なくとも装甲とHPを改造する事によりある程度敵の攻撃に耐えられるようにはなると思います。  ところで、解析ついでに写真のようにRAMを書き換えて敵軍専用のパイロットや機体を自軍に登録して使ってみているのですが、どういう訳かグフなど一部の機体に関してはパワーアップで表示されるパラメーターの数値と実際の数値が異なるという謎の現象が確認できました。このパッチを導入しなくてもパラメーター数値の不一致は発生しますが、今のところ何故こういう現象が確認できるのかよく分かっていません。単純に敵軍専用の機体が自軍で運用する事を前提にしていないために起こる不具合なのか、それとも何らかの条件を満たすとこのような現象が発生するのか調査してみるつもりです。

第4次スーパーロボット大戦 武器追加アニメーション(マジンガーZ)

 スーパーロボット大戦の御三家といえばやはりマジンガー・ゲッター・ガンダムなので、今回はマジンガーZの戦闘アニメーションを追加してみました。動画ではジェットスクランダー装着後の戦闘シーンを収録していますが、初期状態のマジンガーでも同様の戦闘アニメーションを実装済みです。戦闘アニメーションの仕組みに関しては解析中のデータも多いため大車輪ロケットパンチはまだ再現できていませんが、近日中に再現できるように努力します。

第4次スーパーロボット大戦 真ゲッターロボタラク

 ゲッターロボ系を乗り換え可能にしたのでプロトゲッター以外にもメカザウルスや百鬼ロボ、量産型ドラゴンなどを考えていたのですが、ふと思いついて今回はアニメ版ゲッターロボアークに登場した「真ゲッターロボタラク」を作ってみました。実際に追加入手して使用できるようにするか、それとも敵専用の機体にするかどうか未定ですが、こういう既存のグラフィックを少しだけ工夫する事で作れる公式バリエーション機は準備にあまり手間がかからないのがいいですね。  武器アニメーションに関しては、真ゲッター1とタラクはゲッター1のように腹部シャッターを開放するゲッタービームのポーズを入れる予定(ビームの色も青から赤に変更する予定です)であると共に、タラク専用の「ゲッターレーザー」という指先から発射するゲッタービームのポーズも作る必要がありますので、ダイターン3のように別スプライトシートを用意して対応させる必要が出てくると思います。上手く一つのスプライトシートに収まるといいのですが、トマホークブーメランのポーズなども加味するとさすがに厳しそうです。

第4次スーパーロボット大戦 気力制限武器に関して

 気力制限武器に関しては、敵軍側のパイロットの性格を考慮して気力が上がらないように撃墜する順番を考えて戦ったり、「脱力」で気力を調整する等の作戦を考えるという面白味があると思いますが、反面、ただでさえ大きな攻撃力に設定されている事が多い必殺技系武器を気力を上げてから使う事によって攻撃力やダメージのインフレーションを招いている側面も否めません。  そこで考えているのが、一部の武器を除いて最初から武器の気力制限を低くするかなくしてしまうという案です。具体的には、原作では戦闘開始直後に使っていた描写のある武器に関してはブレストファイヤーやゲッタービームのように気力制限をなくしてしまったり、多くてもファンネル系の武器のように100や90といった低めの数値にする事によって積極的に使用できるようにする反面、気力が少ない状態であれば必殺武器で攻撃しても従来ほどのダメージが期待できないという変更です。これによってスーパー系のパイロットに無理に「気合」を設定する必要もなくなり、従来のスーパーロボット系そのままに大ダメージ狙いで気力を溜めてから必殺武器で攻撃するか、それともマジンガー系のようにスピード重視でいきなり必殺武器を使っていくかという戦い方を選択できるはずです。また、敵軍に関しては従来通りの「脱力」による気力調整で強力な武器を使わせないようにしたり、新たに「攻撃が命中した相手の気力を下げる武器」を設定してみるのも面白そうです。

キャプテン翼4 プログラム変更によるフレームレート上昇実験

 今回は海外のサイトやメモリマッピングなどの情報を参考に、基本プログラム処理の変更でアニメーションのフレームレートを上げたり処理を若干高速化してみる実験をしたので、現在公開中の各パッチで使用している昇龍脚の変更アニメーションの動画をアップロードしました。前半が処理速度変更前+通常のヘディング昇龍脚で、後半が処理速度変更後+オーバーヘッド昇龍脚です。しかしフレームレートアップ処理を入れてみた割には何も速度が変わっていないような気がします(時間を計ってみると、一応ほんの少しだけ速くなっているようなのですが)ので、このまま処理を入れて継続すべきか元のフレームレート処理に戻すべきか判断に困るところです。

第4次スーパーロボット大戦 命中回避地形適応参照パッチと地形適応細分化+命中回避地形適応参照パッチのBGM継続パッチ対応版を公開しました

  BGM継続パッチを適用した状態で命中回避地形適応参照パッチを適用すると、反撃時にBGMが最初から再生されてしまう事があるというお問い合わせを頂き、原因を調査したところ使用するRAM領域に重複箇所がありましたので、命中・回避関連の2種類のパッチのBGM継続パッチ対応版を作成しました。内容自体は命中率や回避率をリザーブする際に使用しているRAMの使用箇所を7E006Aから7E0090に変更しただけで、その他の部分は従来のパッチと変わりませんので、手動で直せる方には不要なパッチではないかと思います。それぞれ、ダウンロードは以下のURLから。パスワードは以前と同じです。 命中・回避地形参照パッチ https://ux.getuploader.com/retrogamelaboratory/download/52 地形適応細分化+命中回避地形適応参照パッチ https://ux.getuploader.com/retrogamelaboratory/download/53

第3次スーパーロボット大戦 各パラメーターの役割や回避と防御の判定基準に関する考察

 SFC版の第3次は「本格的なスパロボ」の実質的な最初の作品だったせいか、パイロットの各パラメーターがどのように機能しているのか(特に「操縦」は現在までどんな役割を果たしているのか詳細がほとんど言及されていません。EX以降の「技量」?)、また反撃命令が個別で出せないだけでなく、その行動判定基準もよく分かっていないのが現状です。特に不明なのが「反撃するな!」での回避と防御の基準で、一説には機体の装甲が350以上の場合は自動的に防御が選ばれるとされていますが、これも本当にそうであるのか解明されていません。いい機会ですので、この辺の処理もどうなっているのか少し本格的に調べてみようと思います。

第4次スーパーロボット大戦 ガトーのノイエDC不参加と早期自軍参戦計画

 ノイエDCの一員としてコロニー落としに参加し、後にブレックスを故意に死亡させると何故かデラーズの遺言(ハマーンの監視)を無視して仲間になるガトーですが、第3次からEXの話の流れを見ているとそもそも原作とはかなり考え方が違うはずの人物になっている(核兵器の使用には基本的に否定的だったり、アムロなどのロンド・ベルの面々に敬語を使って接している)ガトーが唐突に地球側勢力の分断を煽るコロニー落としに参加するというイメージがあまり湧かず、原作再現の都合で無理矢理コロニー落としシナリオに登場させたようにも思えます。まあ、それ以前にSFC版ではRAM容量の都合で自軍メンバーが限られてしまうという要因があったのかもしれませんが、合体ユニットやゲッターチームの仕様変更である程度登録できるメンバーの枠に余裕ができてきましたので、ガトーにはノイエDCではなく友軍かエゥーゴのメンバーとして登場させようと思っています。宇宙ルートに行くとクワトロと一緒にエゥーゴのメンバーとしてコロニー落とし阻止のために仲間になるか、またはかなり早い段階でのシナリオ分岐で仲間にできるようにしたいのですが、ガトーを選ばなかった場合でも何らかの方法でGP-02が入手できるようにはしたいところです。一番の問題は、ガトーがノイエDCにいない場合にはいくつかのシナリオデータを大幅に変更しないといけないところですが、これは致し方がない作業だと覚悟する事にします。

第4次スーパーロボット大戦 追加武器アニメーション(ドーベン・ウルフ)

   今回はドーベン・ウルフの変更アニメーションをまとめてみました。武器の種類が多いので攻撃の部分だけを抜粋しています。しかしオージェと比べてみると元々のドーベン・ウルフのグラフィックが小さめのサイズなので、少し迫力不足にも感じてしまいますね。ドーベン・ウルフは比較的大型の機体なので、もう少しサイズを大きく書き直してもいいのかもしれません。

ジョジョの奇妙な冒険 エンカウントバトル実装案

 いわゆる「コブラジョジョ」として名高い(当時バンダイの一部門でありながら便宜上関連会社扱いであったコブラチームはプロデュースとシナリオとゲームデザインを担当し、デベロッパーとして参加したウィンキーソフトはグラフィックやBGMやプログラミングを担当したため「ウィンキージョジョ」ではなく「コブラジョジョ」と呼ばれるのでしょう)SFC版「ジョジョの奇妙な冒険」ですが、本作の不満点の一つとして「エンカウントバトルがないのでレベルアップの調整がやりにくい」という点がよく言われています。実際にエンカウントバトルがあった場合はゲームの仕様上かなり面倒な事になっていたようにも思えますが、確かに改めてプレイしてみるとレベルの関係か戦闘バランスが悪い気がします。そこで本作にエンカウントバトルが実装できるのか検証してみようと思います。  まだ解析していないのではっきりとした事は言えませんが、恐らく本作の敵との戦いは特定の場所を踏むと戦闘が発生するイベント扱いで、戦闘終了後はイベントフラグが成立して二度とその地点での戦闘が発生しないようになっているのでしょう。エンカウントバトルを実装するとなると、簡単そうな方法は「その地点のボスを倒す(ボス撃破フラグの成立)までは屋敷などの戦闘発生エリアに入ると戦闘開始までの乱数による歩数カウントが生成され、このカウントがゼロになると戦闘イベントが呼び出されてエンカウントバトルが開始、戦闘終了後に再びボス撃破フラグをチェックしてボスを撃破していなければ乱数による歩行カウントを生成」という流れなのですが、ゲームとしての面白さに繋がるのかどうかと言われるとあまり自信がありません。本作に関しては漢字フォントを増やしたりテキストの誤字を修正したりという楽しみもありますので、スパロボの解析と並行して色々と試してみたいものです。

第4次スーパーロボット大戦 GP-01ゼフィランサスを追加してみました

   やっぱり地上戦だったらこちらだろうという事で、コウの最初の搭乗機をGP-01FbではなくGP-01に変更してみました。GP-02との大きさが比べやすいように戦闘デモのシーンで並べてみましたが何となくGP-01の方が大きいようにも見えますので、もう少し足が短い方がいいような気もします。シナリオ的にはGP-03ステイメンを入手する代わりにGP-01Fbに換装されるようにすればいいかなと思っていますので、活躍できる期間は短くなりそうです。原作でも活躍期間が短かった機体なので、この辺りの調整はやはり難しいですね。

第4次スーパーロボット大戦 GP-01ゼフィランサスとジム・キャノンⅡの追加計画

 第3次スーパーロボット大戦の続編という事でEXと第4次のGP-01はFb形態として登場するのですが、原作とは違いウィンキースパロボのGP-01はシーマとの戦いで大破した機体を魔改造でFb化したわけでもないうえ、インスペクター事件直後にラ・ギアスに召喚されたEXであればともかく、かなり時間が経過している第4次の時点でコウが宇宙用の仕様になっている機体を陸での戦いに使用している理由がいま一つよく分かりません。正直なところこの作品の序盤でコウが弱く感じるのはGP-01Fbの陸適性が低い事が大きな要因であるのは間違いないのですが、Fbの陸適性をAにするのは何だか不自然です。そこで、元の状態である「GP-01ゼフィランサス」を追加して中盤戦あたりまではこれで頑張ってもらおうと思います。また、これに合わせてキースの機体もガンキャノンではなくジム・キャノンⅡに変更する予定です。

第4次スーパーロボット大戦 追加武器アニメーション(ゲッター1)

 ビルトラプターのコールドメタル・ナイフ用に追加作成した実体剣表示スクリプトですが、少し触れたように他の機体の武器表示にも使用できるようにある程度の汎用性を持たせています。今回はこれをゲッター1に適用し、スプライトシートを工夫してゲッタートマホークを表示できるようにしてみました。実際には戦闘アニメをカットしてプレイする方が大半だと思いますのであまり拘っても意味のない要素ですが、一応こういう事も可能という実験的な要素が大きいですね。同じような要領でゲッタードラゴンのダブルトマホークやダイモスの双竜剣、ザンボット3のザンボットグラップなども随時対応させていく予定です。

第3次スーパーロボット大戦 変更アイデアあれこれ

 息抜き代わりにSFC版第3次の解析を少し進めてみたのですが、個人的にやってみたい事がいくつか思いついたのでメモ代わりに残しておきます。とはいえ、需要の面では誰も必要としていない内容だと思いますので、軽く読み飛ばして頂いて結構です。 シャア専用ザクとガルマ専用ザクに「角」を追加する。 精神コマンドのSP使用量設定をEXや第4次と同程度に抑えて、割と気軽に精神コマンドを使えるようにする。 精神コマンド「閃き」の効果を後発作品のように「攻撃回避の時点で効果が消滅する」仕様に変更(SFC版第3次では「戦闘開始の時点で効果が消滅する」ので、先攻側の自軍ユニットが反撃を受けずに敵機を撃墜しても閃きフラグが消滅する)。 精神コマンド「幸運」など、いくつかの精神を任意のユニットに対して使用可能にする(処理的には「補給」を参考にすればそれほど難しくなく実現可能と思われる)。 MAP兵器で敵を倒した際の入手資金頭打ちを避けるために、敵を倒して入手できる資金を1/10程度に変更。これに合わせて機体のパワーアップ(改造)に必要な資金もそれに見合った額に変更する。 「限界反応」を廃止して、代わりにPS版のように「運動性」を追加する。数値もPS版を参考に設定するが、パラメーターが全体的にあまり強みのないマジンガー系に関しては+10~+15程度の見直しを検討(装甲を強化してもいいのですが…)。本作では敵の機体の各パラメーターは固定だが自軍の機体は任意でのパワーアップが可能なので、やり方次第では命中や回避に関わる精神コマンドを覚えないパイロットの救済ができる可能性がある。これに伴い、命中の基本係数を+100ではなく+125~+150程度に変更(全体的には更に当てて当てられる状態になり、恐らくGBA版Aのような感覚になるはずです)。 元々の当てて当てられるゲームバランスを考慮し、修理装置の回復量を修理者のレベルx100(但し限界は修理側ユニットの最大HPまで)から65535の固定値に変更。 ビーム兵器がビーム兵器であると一目で分かるようにする(武器名にマークを付けるか武器色分けパッチのように色を着ける?)。 マスクパラメーター「機体サイズ」による回避補正の廃止。本作では敵の大半がMサイズのため、単純にスーパーロボット各種とブライト艦の足かせにしか機能していない。 シールド防御、またはガードの導入。

第3次スーパーロボット大戦 ガザC修正パッチを公開しました

 あまり知られていない不具合ですが、SFC版第3次スーパーロボット大戦のガザC(MS形態)のユニットグラフィックはよく見ると上の写真のように左足(足を交差させている可能性があるので本当は右足かもしれませんが)の踵が欠けてしまっています。これはEXのディアブロのように画像データが壊れているのではなく、画像データを表示させるためのタイルデータのサイズ指定ミス(タイルNo.0Eの16x16サイズ表示指定の部分が8x8サイズ表示指定になっている)によるものなので、これを正常な状態に表示できるように修正してみました。これによる「本来の」ガザCのグラフィックは、以下の写真のようになります。  そんなに変わっていないようにも見えますが、よく見比べてみると左バインダーの下側に踵のようなものが表示されるようになっているのが確認できると思います。調べてみたところ、どうやら当時のSDガンダム関連商品で使用されたイラストが元になっているらしく、伝説のRPG「ガイアセイバー」のガザCもほぼ同じような感じのポーズでした。SDガンダム世代ではないのでこの辺り事情には詳しくないのですが、きっとデザイン料を浮かせるためにバンダイの各関連企業で同じ原画を使い回していたのでしょうね。需要があるかどうか分かりませんが、グラフィック修正用のパッチを作成しました。以下のURLからダウンロード可能です。元々のソフトに存在するバグなのでパスワードは設定していません。 https://ux.getuploader.com/retrogamelaboratory/download/51  第3次に関してはこれから大々的に調査する予定はありませんが、今回の調査でEXと同じ手順を踏めば各種グラフィックやパレット、タイルパターンなどの変更・追加ができる事が判明しましたので、気が向いたら機体やパイロットの追加、シナリオのイベントコードの調査などを実施するかもしれません。容量や仕様的には正直なところ第2次Gをどうこうするよりも簡単だと思いますので、時間に余裕があればシナリオ上では真のルートとされるクワトロ加入→ガトー救助→月面ルートでNPCとしてアクシズで登場するに留まるメキボスとグレイターキンを正式に自軍ユニットとして使用できるように変更したり、アフリカルートで鉄甲鬼を説得して仲間に加えるイベントやヘンケンの要請に従ってエマ

第4次スーパーロボット大戦 BGMパイロット基準化&継続パッチを公開しました

 お待たせしました。「BGMパイロット基準化パッチ」に「BGM継続パッチ」の機能を付与したパッチを公開しました。戦闘BGMのID判定を第4次S以降のスタンダードとなったパイロット基準に変更しつつ、機体BGMのID設定が12以上の場合はボス属性と判定して機体に設定されたBGMを優先して再生します(パイロットのBGM設定IDが12以上だった場合は通常の判定を行います)。また、戦闘終了後もマップ上でBGMが流れ続け、次の戦闘BGMが前回の戦闘BGMと同じIDであればそのままBGMが切り替わらずに継続します。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/50  テストプレイでは特に不具合はありませんでしたが、「パイロットBGMの優先順位は常に青軍(NPC含む)→その他の色の軍」、「赤軍と黄軍が戦闘する場合は機体BGMがボス属性でない限り必ず先攻側のパイロットのBGMが流れる」、「機体のBGM設定が12以上(ボス属性)の場合は常に上位ID側の機体BGMが再生される」という三点が気になる方はご利用をお控え下さい。ファイル解凍のパスワードは「c+p*yTe(&|9Bn5)a」です。

第4次スーパーロボット大戦 特定パイロットが登場する場合のみ特性が変化する機体の設定について

 竜馬・隼人・弁慶の仕様変更の際に調査したのは「特定の機体に乗っているパイロットの一時IDを強制的に変更する事は可能か」というものでしたが、逆に「特定のパイロットが搭乗している場合にのみ機体の一時IDを強制的に変更する」という作業ができないかどうか調査してみました。結論から言えば可能です。例えば、特定のイベントをこなした後のカミーユがZガンダムに搭乗している場合にのみマップ上で機体IDを通常のZガンダムからウェイブライダー突撃やハイパー化ビームサーベルを搭載した機体(ハイパーZガンダム)に変更したり、シーブックがF91に搭乗していて気力が130以上ある場合のみ分身攻撃や物理分身が可能な別ユニットのF91(フルスペックモードF91)に差し替えるなんて事も割と簡単に実現できます。ただし、この要素を入れても一部のガンダム系のパイロットと機体を優遇するだけになってしまいますので、絵面でのインパクトはあるかもしれませんが実装するかどうかは微妙なところです。そもそもこの時期のウィンキースパロボはガンダム系がかなり優遇されていますので、やはりこれ以上ガンダム系を優遇するよりも各種スーパーロボットが活躍できる要素を優先する方がやや有意義な気がします。作業自体は決して高い難易度ではありませんので、この辺りのアイデアの導入の可否は、バランスを考慮しながらの調整になるでしょう。

第4次スーパーロボット大戦 断空剣の表示仕様を応用した攻撃アニメーションスクリプトの作成

 第4次スーパーロボット大戦では実体剣や銃火器のグラフィック表示が「機体毎に予め設定された別途グラフィックを呼び出して所定の位置に武器を表示させる」という仕組みになっている(スーパーロボット大戦FではPCのゲームのように機体のグラフィックファイルの後ろに連番の紐付け画像ファイルを設定する事で対応しています) の ですが、この仕様ですとこれ以上グラフィックを追加する事ができません。そこで、断空剣の仕様を参考に写真のような「機体のグラフィックのスプライトシートに武器のグラフィック(ビルトラプターなのでコールドメタル・ナイフを用意してみました)を混在させておき、所定の攻撃の際に武器を持たせる」という追加アニメーションスクリプトを作成しました。武器グラフィックを呼び出した後は従来の実体剣アニメーションと同じように敵機に接近し、斬撃を繰り出します。  この方式にする事でパレットデータは機体のパレットをそのまま使用可能になり、グラフィックサイズの小さな機体であればスプライトシートの工夫次第で複数の武器を書き込む事もできそうです。例えばゲッター1やダイモス、ハイパーライネックなどの武器グラフィックが存在しない機体のスプライトシートにゲッタートマホークや双竜剣やオーラソードのグラフィックを書き込み、スクリプト中のアニメーション設定で共通のタイルパターンによる表示を設定しておけば一つのスクリプトで複数の機体に武器を表示可能となる寸法です。問題点は使用するタイルパターンと機体グラフィックの位置関係、そして既存の機体にこれを適用するには一旦スプライトシートを取り出して再配置する必要があるという事です。そうなると一番大きな機体のグラフィックに基準を合わせてタイルパターンを作る必要があり、不自然にならないような持たせ位置を何度も確認する必要があるのが悩みどころです。時間はかかりますが、少しづつ作業を進めていく予定です。

第4次スーパーロボット大戦 武器アニメバグ修正パッチを公開しました

 いずれもゲーム進行には影響がないものの、数点の武器アニメーションで確認できるバグや不具合を修正するパッチを公開しました。初期ROM、後期ROMの両方で使用可能です。以下のURLからダウンロード可能です。元から存在する不具合のため、今回はパスワードは設定していません。 https://ux.getuploader.com/retrogamelaboratory/download/57  修正できる内容は以下の通りですが、普通にプレイしていれば特に気にならないものばかりです。 実体剣で切り払いが発生すると、切り払われる側の実体剣の画像が乱れる。 先攻側の断空剣が回避されると、後攻側の武器のSEが再生される。 計都羅睺剣で切り払いが発生すると、発生後の剣の表示位置がおかしくなる。 ドリルテンペスト使用時に、被攻撃側の背景画像が攻撃側の背景画像になる。  実体剣の切り払いバグと断空剣のSEバグは特定の条件下(実体剣バグは大型の実体剣の場合のみ、断空剣バグは破壊光線やファンネルなど特定の武器と重なる場合のみ)で発生するので、あまりバグを修正する意味はないかもしれませんが、よろしければご利用下さい。

第4次スーパーロボット大戦 断空剣バグ

 発売から今に至るまで特に話題になっているものではないのですが、第4次スーパーロボット大戦のダンクーガの断空剣のアニメーションには「後攻側が破壊光線やファンネルなどの武器を選択している場合、先攻側の断空剣が回避されるとSEがおかしくなる不具合」というものがあります。先攻側の断空剣による攻撃を回避されると、後攻側の攻撃アニメが開始されるまでは破壊光線のSEを少し高くしたようなノイズ音が鳴り続けますが、フリーズするような事はなく普通にゲームは続行されます。どうやら原因はSEに使っているチャンネルのオーバーフローによるものらしく、リザーブ中の後攻側の武器のSEと相手に近づく際の移動SEに使用する波形データが被ってしまっているようです。ビームサーベルや格闘などの他の接近戦用武器アニメーションでは後攻側の画面に切り替わる際に移動SEを消しているのですが、どういう訳か断空剣の場合は移動SEの消去命令が存在しない作りになっています(迫力を出したかったのではなく、単純なスクリプト記述ミスの可能性が高そうです)ので、画面が切り替わる際に移動SEを消去するスクリプトを追加すればこの不具合は解決できると思います。

第4次スーパーロボット大戦 リアル系主人公の機体をビルトラプターに変更

   少々時間がかかりましたが、予定通りリアル系の主人公の機体をビルトラプターに差し替えました。これもジガンスクードと同様、当初はできれば時間節約のためGBA版OGのグラフィックをそのまま流用したかったのですがサイズが大きかったり色合いが第4次の既存の機体の画像の雰囲気に合わないので断念しました。  それはさておき、 初出のGBA版初代OGではこの機体に限らずPTの固定武器としてやたらと「格闘」が実装されていましたが、たぶん誰も使わないと思いますのでOGS同様に格闘はオミットし、接近戦はコールドメタル・ナイフ、中距離戦はマシンガンまたはショットガン、遠距離戦ではアンダー・キャノン(ハイパービームライフルという名前はちょっと違和感があるので、今回は「(機体の)下側」という意味のアンダーではなく「相手を制圧する」や「包囲下に置く」という意味でのアンダーと捉えてアンダー・キャノンにします)で戦う典型的なリアル系の機体にする予定です。  もちろんビルトラプターの特徴である変形も可能で、FT形態では下の写真のような感じになります。設定ではビルトラプター自体ががMSよりも小型の機体なので、胸部のコックピットハッチや背中の翼を基準に変形状態を少し小さなサイズのドット絵を用意してみたのですが、しかしこれはいささか小さすぎたような気もしますね。あまり気になるようであれば後で差し替えます。武装は原作通りホーミングミサイルと爆弾とアンダー・キャノンですが、爆弾が射程1で陸と海にしか攻撃できないとなると著しく使いにくい機体になってしまいますので、バトルマリンの爆雷のようにグレネード扱いのような有射程武器にする予定です。  これでようやく初期主人公機の差し替えが完了したのですが、余ったゲシュペンストはやはり本来の使用者であるギリアムが自軍に参加する際に搭乗できるようにしたいところですね。しかし現状では登録枠が64体の壁に阻まれてかなり厳しい状態なので、この辺りの問題も早めに解決していこうと考えています。

第4次スーパーロボット大戦 BGM設定パイロット基準化パッチ(修正版)を公開しました

 RAM変更を一旦全て元に戻したうえで改めてテストプレイをしていますが、NPCが何度か戦闘を重ねると謎のフリーズ現象を起こしていました。原因を調査したところ「BGM設定パイロット基準化パッチ」に不具合があった事だと判明しましたので、取り急ぎ修正版を作成しました。大変申し訳ございません。以下のURLからダウンロード可能です。パスワードは前回(修正前)と同じです。 https://ux.getuploader.com/retrogamelaboratory/download/48  修正ついでにデータの取得方法を若干変更し、オリジナルの第4次のBGM取得形式を参考にした「自軍かNPCが後攻側であれば常に自軍のBGM番号を取得し、そうでない場合は常に先攻側のBGM番号を取得する」という方式(自軍=NPC>赤軍=黄軍)にしています(余談ですが、オリジナルのBGM継続パッチでは「NPC>自軍>黄軍>赤軍」という取得方法になっています)。このパッチ単体ではBGM継続パッチとの併用はできませんが、近日中に「パイロット基準化パッチ用にカスタマイズしたBGM継続パッチ」を公開予定です。もう少々お待ち下さい。

第4次スーパーロボット大戦 マップ上でのユニット展開数増加不具合の原因判明とSRAMの仕様による一時断念

 マップ上にユニットを65体以上展開させた場合の不具合の原因が判明しました。結論から言うと、現状では一時断念せざるを得ません。HiROMの状態ではRAM容量(外付けRAMを含む)の不足でオーバーフローし、65体目以上のユニット情報が維持できないというのが不具合の原因でした。マップ上で展開しているユニットの情報はRAMの7E2000、7E4000、7E6000の各領域にリアルタイムで読み書きされているのですが、この単位が0080hのため0080*40(64体分)=2000hとなり、65体目以上の情報が維持できなくなってしまうのです。これがLoROMであればSRAM領域を1バンクあたりにつき4000hまで展開、最大で256Kbまで拡張できるので該当するデータを大容量化したSRAMに逃がして問題解決となるのですが、HiROMの場合は1バンクあたりのSRAM領域が2000hしか維持できないうえに128Kbが容量の限界となっています。多量のデータをSRAMで処理している魔装機神ではHiROMではなく従来のソフトによくあるLoROMという仕様(32MBLoRAM+32kbSRAM+SA-1チップとやや特殊ではありますが)を採用しているのはこの対策のためだと思われます。大容量のデータの場合はROM情報を特殊チップ仕様に変更してそちらで処理するという方法もあるらしいのですが、現状ではそれらしい資料が見つからず、これといってよい方法が見つかりません(一応リザーブRAM領域にデータを逃がすと正常に動くように見えるのですが、やはり維持できないのかだんだん動作が怪しくなり最後は突然ゲームオーバーになったりフリーズします)。魔装機神と同様にメモリマップをLoROMに変更する事も考えましたが、さすがに作業量を考えると厳しいものがありますので改善策が見つかるまで一時断念し、まずはSRAMに登録した増加ユニットの正常動作だけを目指す事にします。

第4次スーパーロボット大戦 自軍出撃枠の限界について

 一時データの置き換えの仕様を変更する等して工夫した結果、とりあえずRAM拡張でユニットを96体までマップ上に展開できるようになったのですが、まだ動作が不安定です。現状ではいきなりマップ上から機体アイコンが消滅したり、敗北条件を満たさなくても突然ゲームオーバーになったり、フェイズ終了時に画面が乱れてフリーズしたりします。何に使用しているのか不明なRAM領域が一つあるので、それをうまく変更できていないのが原因だと思うのですが…。まあ元々そういう仕様でなかったものを無理矢理変更していますので、少しずつテストを繰り返してチェックするしか方法はなさそうです。  さて、ご存知の方も多いと思いますが、第4次スーパーロボット大戦では自軍登録できるパイロットと機体はそれぞれ64体まで、戦闘マップ上で展開できるユニット数は敵・味方の両軍を合わせて64体までと定められています(RAMが64体までしか展開できないようにプログラムを組んでいるため)。しかしマップ上で自軍のユニット(厳密には自分で操作できる自軍のユニット)を展開できる数も実は限られており、20体までしか出撃させる事ができません。厳密に言うと「マップ上では自軍の操作できるユニットのRAM上予約領域が定義されており、この枠が20体分しかない」のです。最終マップの「火星の決戦」ではこれをフルに使用するため選択母艦一隻+選択ユニット19体を出撃できますが、その他のマップではほぼ数体分の空きができていて、この部分にイベントで登場する自軍ユニットが書き込まれたり、ザンボット3やダンクーガやコン・バトラーVといった機体を分離させた場合のユニットを書き込むようになっています。ただし、空いている予約枠が足りないので分離できない事がほとんどです。出撃数を減らしてマップを開始するとこれらのユニットが分離できるようになっているのはこのためです。つまり、戦闘マップ上に展開できるユニットの数は「自軍が最大で20体、敵軍とNPCが合わせて44体」という事になります。敵軍やNPCの枠は特に固定されていないので、増援として登場したりすると撃破されて空欄になった枠に上位部分から書き込まれていきます(45体を超えた場合はどうなるのか未検証ですが、恐らくオーバーフローしてゲームがフリーズすると思います)。  そうなると自軍の出撃枠を増やすにはこのプログラムの仕様を

第4次スーパーロボット大戦 RAM拡張による登録メンバー増加実験と進捗状況

 SRAMを大型化して外付けRAMに見立て読み込みデータや書き込みデータの容量を増やす試みを行っていますが、現状ではあまり上手くいっていません。とりあえず武器の個別改造とそれに付随するセーブデータを削除する事でパイロット・機体共に96体まで登録できるようにRAM内容を書き換え、当初の予定にあったインターミッション限定ではなくマップ上でもSRAMを96体まで参照できるように変更(これによって理論上はマップ上に自軍・敵軍を合わせて96体まで展開可能)、更にRAMの読み込みや書き込みの数量制限(64体までの制御)に関わるプログラムを調べられる限り調べて書き換えてみたのですが、主に強制出撃イベントを中心に不具合を起こしてしまいます。  SRAM上には参入した機体やパイロットがきちんと登録されているのですが65体目以降の機体に乗っているパイロットが出撃不能になったり、65人目以降のパイロットが登録されても出撃不能になったりする(インターミッションではパラメーター参照や乗り換え、機体改造やパーツ変更はできるのですが…)他、敵軍のデータをRAMに書き込む際に関しても一部できちんと書き込まれなかったり読み込まれなかったり、設定ルーチン通りの行動をしないなどの異常が見られます。また、外付けRAM領域に書き込まれる内容はどういうわけかメモリビューワーから確認する事ができず、いちいちバイナリエディタや外部のプロセスエディタでSRAMのファイルを見て確認する必要があります(一応SRAMには指定した場所にデータが書き込まれているのが確認できました)。単純にプログラム部分の書き換えミスだと思うのですが、やはり修正・改変しなければならない箇所があまりにも膨大なので厳しい状態であるのは事実です。また、予想通り中断データをセーブした後で最初から、あるいは通常のシナリオセーブデータをロードするとSRAMの内容が上書きされてしまい中断データの内容がおかしくなってしまいます。中断データに関してはエミュレーターであればステートセーブを利用する、実機のプレイであれば中断データのセーブ、または中断データのロードをできないようにする(一応これは解析によって可能となりました)しかないのが現状です。余談ですが三國志英傑伝は戦闘マップ上での中断セーブができない、SUPER三國志は一騎討ちモードでのセーブデータと通常セー

スーパーファミコン HiROMのSRAMメモリマップについて

 スーパーファミコンのSRAMを外付けRAMとして使用する場合のメモリマップの割り当てに関する詳細な資料が見当たらなかったので独自に調査してみました。今回はHiROMでのメモリマップで、対応するメモリの位置は以下のような内容(左:SFC本体側のメモリマップ上の位置、右:SRAM側のメモリマップ上の位置)になります。これを使う事はほとんどないと思われますが、何かの参考になれば幸いです。 ・8KB…306000~307FFF(0000~1FFF)のみ使用。 ・16KB…8KBまでの領域+      316000~317FFF(2000~3FFF)を使用。 ・32KB…16KBまでの領域+      326000~327FFF(4000~5FFF)      336000~337FFF(6000~7FFF)を使用。 ・64KB…32KBまでの領域+      346000~347FFF(8000~9FFF)      356000~357FFF(A000~BFFF)      366000~367FFF(C000~DFFF)      376000~377FFF(E000~FFFF)を使用。 ・128KB…64KBまでの領域+      386000~387FFF(10000~11FFF)      396000~397FFF(12000~13FFF)      3A6000~3A7FFF(14000~15FFF)      3B6000~3B7FFF(16000~17FFF)      3C6000~3C7FFF(18000~19FFF)      3D6000~3D7FFF(1A000~1BFFF)      3E6000~3E7FFF(1C000~1DFFF)      3F6000~3F7FFF(1E000~1FFFF)を使用。

第4次スーパーロボット大戦 自軍メンバー登録限度拡張に関しての考察

 ざっと解析してみたところ、自軍登録メンバーの数を65以上にするにあたっての課題点が見えてきました。以下にその課題点を列挙していきます。 各種データの計算用RAM領域。これに関しては足りない分をコーエーの作品に見られる大容量SRAMや特殊チップ搭載ROMのように「外付けRAM」で増量してそちらに読み込みデータを逃がして展開させればいいが、中断データのセーブ・ロードの際の内容を大幅に変更しないと実現が難しい。外付けRAMがSRAMだった場合はリセットしたり電源を落としてもデータが更新されるまで逃がした展開データが保持され続けるので、中断データがある状態で別データのプレイをするとSRAM領域のデータが更新されてしまい内容が消えてしまう(=中断データが正常に再現されない)。特殊チップに展開する場合はリセットしたり電源を落とすと展開データ自体が消えてしまう。いずれにせよ、中断データにこの展開データを別領域にセーブ・ロードする処理を組み込む必要があり、作業量を考えると現実的ではない。 通常のセーブデータに保持できる内容はRAMでいうところの7E1000〜7E15D5まで。これより下の領域にセーブデータの内容を拡張しようとすると中断データに影響を及ぼし、やはり外部RAMへの展開データ拡張とセーブ・ロードの方式の変更が避けられない。 登録可能数を増やすとその分だけRAM各パラメーターの読み込み領域も増やさないといけない。通常は自軍・敵軍を合計して64体分で、これを超過するとRAMからデータがはみ出して不具合を起こすので一部パラメーターの分を丸ごと外部RAMに移す必要があるが、例によって中断データに影響を及ぼす。 MAP上では展開データ領域は自軍・敵軍で共用64体分を使用するが、インターミッションでは同じ領域を自軍のみで64体分を使用する。つまり、逆に言うとそれぞれで使用するRAM領域が違えばインターミッションで使用するRAM領域だけ増やせばいいという事になる(MAP上で自軍・敵軍を合わせて65体以上出現させなければいいだけなので)。  以上の内容から見えてくるのは「7E1000〜7E152Dまでに登録データ数を保持しつつ不要と思われる内容を整理してセーブデータ領域に空きを作り、この空き容量を使って残りの登録データ容量を拡張。そしてインターミッションでのパラメーター閲覧や機体改造、

第4次スーパーロボット大戦 ゲッターチームの仕様変更完了と今後の予定

 変形する際の精神ポイント受け渡し処理も問題なく動作するようになり、ゲッターチームの登録数を1枠で収める仕様変更が完成しました。仕様の都合上、パイロットの名前を7E1088の自軍参加メンバーのIDから取得しているパラメーターリストではパイロット名がメインパイロットである竜馬で表示されてしまいますが、詳細パラメーターを参照する際にはきちんと7E17E5を参照するため、各形態担当のパイロット(隼人や弁慶)が呼び出されて各種パラメーターを確認する事が可能です。なお、マップ上での各種行動や変形後のパラメーター確認時、イベントによる強制変形などに関しては7E1088ではなく7E17E5の展開パイロットIDを参照しますので、特に不具合は発生しません。  前述の通り、リスト上の表示の仕様変更に関しては基本的にインターミッションが該当しますので、「ゲッターロボの各形態に応じて自軍参加メンバーの内容を書き換え、改造処理と同様に一旦画面データを読み込み直す処理を入れてセーブデータ上のパイロットそのもの(7E1088に登録されている竜馬のID)を隼人や弁慶に書き換え、インターミッション終了時にはユニットの変形を元に戻す処理と同様に隼人か弁慶だったら強制的に竜馬に書き直す」という解決策があるにはあるのですが、これによるイベント進行の不具合などが起きてしまう可能性が否定できないので今回は採用を見合わせています。  今回のゲッターチームの仕様改変に伴い、特定のフラグ成立時や特定のユニットに乗っている時だけ登場するサブパイロットを設定する事が可能になりました。例えば複数乗りダイターン、バクシンガーを除くJ9チームや龍虎王・͡虎竜王のように変形によってメインパイロットが入れ替わる機体が実現できるほか、08小隊のエレドアやゼオライマーの美玖のようなイベントでたまに離脱する特定機体専属サブパイロット、イベント仕様で3人乗りのZZガンダムやSガンダム(それぞれイベントフラグで精神コマンド要員呼び出しを管理する)、女性たち(とカツ)の霊が憑依した暴走カミーユなども再現可能です(但し、サブパイロットのSP管理用の空きRAM領域が必要になりますが…)。  さて、今後の予定ですが、機体の保持数を64体以上にできないか挑戦してみる予定です。元々の仕様の関係でパイロットに関しては64人以上を実現するのがやや難しそう

第4次スーパーロボット大戦 続・ゲッターチームの仕様変更計画

 パイロットと機体のRAM保持枠を1体分のままゲッターロボ各種の形態に連動してパイロットを切り替える仕様変更ですが、何とか一応は成功しました。機体に関しては改造値や強化パーツが各形態で共用となり、ゲッター1系であれば竜馬、ゲッター2系であれば隼人、ゲッター3系であれば弁慶が自動的にメインパイロット(自軍登録はゲッター1系と竜馬で固定)になります。パイロット面ではレベルと撃墜数が3人で共用(つまり竜馬で2機、隼人で1機、弁慶で2機撃墜すれば5機とカウントされます)、その他の各パラメーターとSP現在値は個々人で独立しており、精神コマンドリストは従来の竜馬・隼人・弁慶の順番で固定だったものから原作の合体パターン通り(ゲッター1系だったら竜馬・隼人・弁慶、ゲッター2系だったら隼人・弁慶・竜馬、ゲッター3系だったら弁慶・竜馬・隼人)の順番に変更されます。また、「ゲッターロボ系」として同系統の他の機体への乗り換えも可能(ゲッターロボ以外のテキサスマックやメカ胡蝶鬼などの非変形機体に乗り換えた場合のメインパイロットは常に竜馬となり3人分の精神が使用可能、逆にジャックやミチルなどがゲッターロボに乗った場合はジャックの場合ジャックとメリーの2人分、ミチルのような個人パイロットの場合は本人の精神コマンドが使用可能、パイロットは各形態に変形してもジャックまたは個人パイロットで固定)です。イメージとしてはスーパーロボット大戦AやDでのゲッター系パイロットに近くなったと考えて頂ければ問題ないかと思います。  さて、上記のような仕様に変更した後に序盤のテストプレイをしてみましたが、今のところ強制出撃などのイベント発生時にもこれといった不具合は今のところ発生していません。但し一つも不具合がないわけではなく、何らかの条件を満たすとパイロットが入れ替わる際に現在SP値が正常に入れ替わらず、変形を繰り返すと無限に精神コマンドが使えてしまう事があります。恐らく精神コマンドリストを並び替えなければこの不具合を防げると思うのですが、そうなると常に竜馬・隼人・弁慶の順に精神コマンドリストが表示されてしまうのが悩ましいところです。もう少し解決策を練ってみますが、上手くいかなければ「そういう仕様」として妥協するつもりです。

第4次スーパーロボット大戦 ゲッターチームの仕様変更計画

 RAM容量が足りていないため自軍データの保持が困難な本作ですが、ゲッターチームに関しては「3人各自が合体ユニットのパイロットと同様にRAM内に個別の参入データを保持し、変形の度にRAM内のパイロット・機体データ全ての参照領域をメインパイロットに入れ替える」という方式を採用しています。このため、RAM上には「ゲッターチーム3人分とゲッターロボ3形態分の自軍参入データ」、つまりパイロットと機体でそれぞれ3枠が保持されているのですが、これを通常の変形ユニットのように「メインパイロット(竜馬)とメインユニット形態(ゲッター1)のそれぞれ一体分だけを保持し、変形した時だけRAMの該当領域(マップ上であれば出撃パイロットID、インターミッションであれば参入パイロットID。但しインターミッションに関しては下手に変更しない方がいいかもしれません)を一時的に上書きする」するようにすれば自軍参入データをRAM上で1枠だけ保持すればいい事になります。  実際にこの仕様への変更が可能かどうかは未知数ですが、実現できれば実質的に自軍参入枠を2体分増やせる事になりますので、実現できるように努力するつもりです。

第4次スーパーロボット大戦 スーパー系主人公の機体をジガンスクードに変更

 ようやくというか、かねてよりの計画通りスーパー系でゲームをスタートすると、主人公がゲシュペンストではなくジガンスクードに搭乗するように変更してみました。いわゆる「ドット絵」を書くのがそれほど得意ではないので、できればGBA版の初代OGのグラフィックをそのまま流用したかったのですが、サイズが大きすぎるうえに棒立ちポーズなので断念しました。そのため配色もGBAのグラフィックとは若干異なりますがご容赦下さい。  なお、これに伴いシナリオ中で「ゲシュペンスト」に係る台詞を片っ端から変更する必要があるのですが、全部で20ヶ所近く改変しなければならないのでデバッグが大変な事になりそうですね。間違えてリアル系主人公の台詞を変更しないように気を付けるつもりです。機体性能としてはマジンガー系以上の防御力偏重ユニットで、攻撃力はさほど高くない反面、低いHPと高い装甲値で敵の集中攻撃を引き受けつつ反撃で相手のHPを削る役目を与える予定です。  既に主人公や副主人公の特殊乗り換え処理は解析済みなのですが、後々になってユニット枠が足りなくなるのも嫌なので今回はスーパー系ゲシュペンストをそのままジガンスクードに書き換えています(スーパー系ゲシュペンストは図鑑登録もされませんので)。同じような要領でリアル系主人公の機体もゲシュペンストから別の機体に変更する予定ですが、こちらは図鑑登録の事を考えてリアル系ゲシュペンストの上書きをしないで適当に開いている未使用枠を使って作ります。シナリオ部分の台詞改変の作業量を考慮すると、7文字ぴったりで収まるOG系の弱めな機体がいいと思いますので、そうなるとやはりシュッツバルトかビルトラプターあたりが無難でしょうか。

第4次スーパーロボット大戦 BGM設定パイロット基準化パッチ用BGM継続パッチの公開予定について

 BGM設定パイロット基準化パッチとBGM継続パッチの両立による不具合ですが、BGM継続パッチの内容を検証した結果、BGM継続パッチの内容を一部変更して新規サブルーチンを追加する事で対応可能になりました。しかしこの「BGM設定パイロット基準化パッチ用に内容を変更したBGM継続パッチ」は通常の「BGM判定が機体依存の状態」では使用できなくなるので、後ほど公開できるかどうか交渉してみます。また、この過程で本来のBGM継続パッチ側に改善できる点(=ボス機体用BGMをもっと簡単に判定できる方法)を発見しましたので、こちらも修正可能かもしれません。

第4次スーパーロボット大戦 BGM設定パイロット基準化パッチとBGM継続パッチを両方とも使用した場合の不具合について

 以前「BGM設定パイロット基準化パッチとBGM継続パッチを一緒に使用しても不具合は発生しない」とご報告したのですが、不具合を発見しました。申し訳ございません。内容としては、稀に直前のBGMと同じBGMが選択された際に本来スルーしてそのままBGMが流れ続けるべきところを再度BGMデータを読み込んでしまい、また頭から再生され直してしまう事があるというものです。  不具合が発生してもBGMが再度読み込まれて頭出しされる以上の実害は特にないのですが、やはり気分がよろしくないので原因や発生条件を調査中です。

第4次スーパーロボット大戦 8M拡張ROMの処理速度についての感想

 以前、少しだけ触れた「8MBに拡張したROMの拡張領域(400000h以降)に置いたデータはBGMを中心に読み込みや処理速度が遅くなる気がする」という件ですが、やはり体感的に処理がもたつく場合が出ているように感じます。特に、再生速度が速めに設定されているBGMは時間経過と共に音が次第にずれていってしまうようです。気のせいであればいいのですが。こういう場合、SA-1などの特殊チップを搭載している作品のROMマッピングを参考に処理を改善するという方法もあるのだと思いますが、作業量を考えると現実的ではないので取り敢えずROMの埋め込み情報を見てみたところ、ROMの仕様が31(高速リニア)から35(低高速リニア)に変更されていました。どうやらLunar Expandというツールを使用してROM容量を8MBに拡張する際に自動的に書き換えられた様子なのですが、これを元の31に戻してみたところ多少はBGMのもたつきが改善されたように感じます。しかし問題がないわけではなく、元々のROM情報埋め込み領域の数値を31に戻す分には正常に起動しますが、拡張領域(408000~40FFFF)に存在するROM情報は35にしておかないとゲームが起動しなくなってしまうようです。  それぞれのROM情報が異なる状態で長時間正常にプレイし続ける事ができるのかどうかまだ未知数なのですが、今のところ特に問題なく処理ができている様子なので、しばらくはこのままテストプレイを続けていこうと思っています。

レナス〜古代機械の記憶〜(Paladin's Quest) 文字コード表を公開しました

 表題の通り、レナスで使用されている文字コードを解析した内容のファイルをアップロードしました。未使用のメカニードス枠を使って別キャラ化させたレクタスかヨーテの再加入イベント でも作ろうかと思ってだいぶ前から調べていたのですが、ようやく解析が終了しました。 どういう理由でこうしたのかよく分かりませんが、レナスではキャラクターやエネミー、アイテムや呪文などに関する文字コードと会話やシステムなどで使用されるメッセージの文字コードが全然異なるものに分けられています。おかげで調べるのに非常に苦労しました。それはともかく、ファイル類は 以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/47  公開した.idnファイルは「HiChrConv」という文字コード変換アプリに対応しており、それを用いれば様々なメッセージや固有句を解析、変更が可能になります。HiChrConvに関しては以下のサイト( Gamecenter GX )からダウンロード可能です。 https://cheatcodes.web.fc2.com/binary/  余談になりますが、日本版レナスのフォントは8x8サイズであるのに対し、海外サイトのスクリーンショットを見る限り海外版の「Paladin's Quest」はアルファベット表示での視認性を重視して12x8サイズに拡張されているようですね。日本版でも同じようにフォントサイズを変更できれば見栄えがよくなると思いますので、いずれセカイモンなどで海外版を入手してどんな仕組みになっているのか調べてみたいものです。

レナス〜古代機械の記憶〜(Paladin's Quest) メカニードスを成長可能にするパッチの作成計画

 必要とされるかどうか分かりませんが、とりあえず次の目標として「メカニードスを他の仲間と同様に普通にレベルアップできるようにするパッチ」を作成してみようと思います。既にご紹介の通り、メカニードスは経験値入手不能処理を無効化してレベルアップさせたとしてもステータスの上昇ができないように処理…というか成長テーブルに相当するものが設定されていないらしく、ただレベルだけが上昇します。そこでレベルアップ時の処理に関するルーチンを探して解析を開始してみたのですが、今のところ各キャラクターの成長テーブルらしきものを参照している部分が見当たりません。しかし処理の途中でキャラクターIDを参照している部分があります。そうなると、キャラクターIDを読み込んでそれをもとに成長テーブルを参照しているのは間違いない(レベルアップ時にキャラクターIDを強制的に切り替えると、そのIDのキャラクターがレベルアップした時とほぼ同じ成長値パターンになる=例えばチェズニのIDをレベルアップ処理の際にメカニードスのIDにすると本来上がるはずのパラメーターが一切上がらなくなる事までは確認しています)ので、根気よく調査を進めていきたいところです。  改変方法として一番簡単なのは「メカニードスがレベルアップした際に強制的にキャラクターIDを書き換え、レベルアップ処理終了直後に再びキャラクターIDをメカニードスに戻す」という方法で、これならばすぐに実現可能なのですが根本的な解決になっていません(レベルアップのメッセージでそのIDのキャラクターの名前が表示されるという不具合もありますし…)。できれば各キャラクターの成長テーブルを発見し、メカニードス以外にも例えばゴーフやダッシュのように今ひとつ成長値の伸びが悪いキャラクター(ちなみにレベルを99まで上げるとゴーフ、ダッシュ、メリーヌの3人がほぼ確実にワースト争いをします)のテコ入れもできればと考えています。特にダッシュは自慢のはずの素早さが後半は全然伸びなくなり、レベル50くらいになるとむしろ他のキャラに素早さが劣るようにすらなってしまうので、最後まで使っていこうとすると本当に辛いんですよね。

レナス〜古代機械の記憶〜(Paladin's Quest) ボトルで気絶回復パッチを公開しました

 表題の通り、レナスの「ボトルで気絶状態から回復可能になるパッチ」を公開しました。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/46  内容としてはミニボトル・ハイボトル・メガボトル・ギガボトルを気絶したパーティーメンバーに使用するとHPが回復して気絶状態から戦列に復帰できるというものですが、「メカニードスについて」の回で触れたとおり、最初にHPが1回復してから残りのHPがボトルの回復量-1の分だけ回復するというやや強引な処理になっています。あまり美しくないので、気が向いたらそのうち修正するかもしれません。また、副作用ではありませんが戦闘中に限りメカニードスにもボトルが使用できるようになっており、通常の仲間と同じようにHPを回復したり気絶状態から復帰できるようになっています。ただし気絶状態のまま戦闘を終了すると永久離脱しますのでご注意を。

レナス〜古代機械の記憶〜(Paladin's Quest) メカニードスについて

 ちょっと強引な方法(フラグを立ててから回復処理にジャンプするとジャンプの時点で即時気絶してしまい、逆にHPを回復させてからフラグを立てようとするとかなり面倒なサブルーチンを組まなければならないので、フラグを立てつつ対象者のHPをまず1だけ回復させ、その後ボトルの回復量から1を引いてHPを回復させる)ですが気絶回復処理は完成したので、パッチ公開前に念のためメカニードスの回復処理に関しても調査しています(処理方法が判明しているので仮に気絶しても戦闘中であればボトルで戦線復帰が可能です)。  メカニードスはロボットという事もあり、最初から結構な戦闘能力を持つ代わりにエナジードレイン以外でのHPの回復ができず(ステータス異常に関してはこの限りではなくクリアボトルやダデス、ダデケスは効果が適用されます)、経験値が入手できないのでレベルアップもせず、しかも戦闘中に気絶すると自爆して永久離脱してしまうという特殊な仲間ですが、これを通常の仲間のようにレベルアップや回復ができないものかと以前(戦闘後のHP回復パッチ作成の時期に)調査してみたのですが、それ自体は意外と簡単に実現できました。後日他のパッチの改修版や気絶回復パッチと一緒にメカニードスをレベルアップできるようにするパッチも作りたいと思っているのですが、現状ではレベルアップ時の成長テーブル(のようなもの?)の位置が不明なため、経験値入手制限を解除してレベルアップさせても上の写真のように何も能力が上がりません。何とか成長テーブルの位置を探し出し、普通にレベルアップさせてあげたいところですね。ちなみにパラメーターマスク処理の解除を行うと、メカニードスは以下の写真のようにレベル48に設定されている事が判明します。  また、あまり知られていませんがメカニードスは一応パラメーターアップ系のアイテムで能力を伸ばす事自体は可能で、自爆で永久離脱しない限りは仲間から外して再度仲間にするとHPが最大値まで回復しており、しかもアイテムで上げた能力値もきちんと保持されています。注意すべき点はメカニードスは複数存在し、それぞれが固有のキャラクターIDとパラメーターを持っているという事です。つまり、メカニードスAの能力値を上げてもメカニードスBの能力値は上昇せず、当然の事ながら自爆してしまったメカニードスのパラメーターは他のメカニードスには引き継がれ

レナス〜古代機械の記憶〜(Paladin's Quest) 続々・戦闘中の気絶状態からの復帰処理追加の計画

 前回の記事の仮説に従ってHP回復と同時にパーティーの状態フラグとステータス異常フラグを同時に書き換えるという処理(厳密にはHPが0の状態に専用の回復処理ルーチンに遷移する処理)を組み込んでみたところ、確かにボトルによる回復行動で気絶状態からの復帰ができるようになりましたが、その過程で問題が発生しています。  回復行動の判定には「パーティーの状態フラグ(7E19ED)をチェックして気絶状態、または存在しないキャラクターを判定対象から外す」という前提を経て「回復対象者の現在HPが0だったら回復ルーチンをパスする」という処理に進むのですが、前段階の「パーティーの状態フラグをチェックして気絶状態、または存在しないキャラクターを判定対象から外す」という部分を変更してしまう(変更しないと回復対象にできない)と、エネミーが既に気絶状態にあるメンバーを攻撃してしまうという不具合が発生するようになる(詳しく調べていませんが、どうやら「残りHPが0かどうか」ではなく「パーティーの状態フラグに攻撃対象が存在しているかどうか」で攻撃対象を判定している模様)のです。これにより「攻撃された気絶メンバーの現在HPが負のオーバーフローを起こす」というような致命的な問題はないのですが、既に気絶して行動できないメンバーを狙って攻撃してくるという事はそれだけ戦闘中の残りメンバーの危機が少なくなってしまう=戦いの緊張感がなくなるという事になってしまいますので、この部分を何とか改善したいところです。  改善案としては「行動IDが回復系行動だったらパーティーの状態フラグを無視して判定対象にする」というのが簡単そうなのですが、生憎と行動内容の定義処理は行動判定処理の後に始まるようになっていますのでそうもいきません。とりあえず考えられる事を色々と試してみて、上手く行けば改善できたものを、改善できなければ不本意ですがエネミーが気絶したメンバーを攻撃するバージョンのまま公開する予定ですが、いずれにせよさほど時間はかからないと思います。問題はメカニードスが破壊された際の処理でしょうか。ご存じの通りメカニードスにはボトルが使用できず、戦闘中にHPが0になると永久離脱してしまうので、戦闘中に限りボトルで復活が可能にするか、またはHPが0の状態で戦闘を終了しても離脱しないように処理するかのどちらにするかですね。もちろんその

レナス〜古代機械の記憶〜(Paladin's Quest) 続・戦闘中の気絶状態からの復帰処理追加の計画

 レナスにおけるステータス異常の管理方法ですが、少々複雑な手法を採用していたので調べるのに手こずってしまいました。まず、移動中はRAMの7E160E(キャラごとに+26h)で状態変化を管理しており、戦闘中になるとここを使用せず今度は7E1A8D(キャラごとに+0Eh)で状態変化を管理(戦闘に遷移する際に7E160Eの内容をコピー)します。特に状態異常がない場合は00になっており、キャラクターの現在HPが0になると気絶状態化処理を行いここに01を書き込むのですが、ではこの箇所に00を書き込めば気絶状態から復帰できるのかというと実際にはそうはなりません。混乱や麻痺などの状態異常はこの方法で回復できる(=ダデケスやクリアボトルによる状態回復処理)のですが、仮に気絶状態のキャラの7E1A8Dに00を書き込んだ場合、確かに一瞬だけ気絶から復帰しますがそのまま再び気絶(HPを回復したり現在HPのRAMを書き換えたとしても駄目です)してしまいます。  これはどういう事かというと、「7E1A8Dと一緒にキャラクターが気絶状態になった事を管理するRAM領域がある」という事を示しており、そこを7E1A8Dと同時に書き換えない限り気絶から復帰できないという事です。具体的にはRAMの7E19EDという箇所で気絶したキャラクターの有無を管理しており、ここをキャラクターが戦線復帰する際に任意の数値に変更する必要があるのです。この部分には戦闘開始時には0Fが入力されており、万が一キャラクターがエネミーに倒されて気絶=戦線離脱した場合は隊列の1人目…01、2人目…02、3人目…04、4人目…08をマイナスして計算しています。そして全員が気絶すると00になり、全滅処理が行われゲームオーバーになるという仕組みになっています。つまり気絶状態になったキャラを復帰させるには、「7E1A8Dに00を書き込む」と同時に「7E19EDに復帰キャラの隊列位置のコードをプラスする」という処理が必要というわけです。意外と面倒な処理を行っていますね。ちなみにHPが0の状態で双方のフラグ処理だけを行う(というかHP回復よりも先にフラグ処理を行う)と、その時点で即座に気絶判定が行われてその場でまた気絶してしまいますので、先にHPの回復処理を行ってからフラグ処理を実行するという変な一手間が必要です。なお、戦闘が終了すると7E1

レナス〜古代機械の記憶〜(Paladin's Quest) 戦闘中の気絶状態からの復帰処理追加の計画

 ご存知の通り、初代レナスではHPがゼロになって気絶状態になってしまうと、戦闘終了まで復帰するための手段が一切なく非常に厳しい戦いを強いられる事になります。ゲームバランス的には比較的エネミーが弱いので、よほど雑なHP管理をしていない限りそこまで苦戦する事自体が稀な気もしますが、この仕様が不評だったのか続編「レナスⅡ~封印の使途~」では、新たに「ダデグレト」という気絶回復用の魔法が登場し、簡単に戦力の立て直しが図れるようになっています。  そこで、というわけでもないのですが、ダデスやダデケスやクリアボトル、その他HP回復系の行動で気絶状態を回復し状況を立て直せる仕様にするパッチを作成しようと思っています。具体的にはダデスやダデケスやクリアボトルで回復できる場合は一定値のHP(最大HPの何割かが妥当な気がします)を担保して復帰させるという処理に、ミニボトル等で回復の場合は本来のHP回復量の半分で気絶状態から復帰させるという予定ですが、どちらでも大丈夫となると有難味が減る気がしますので、どちらの回復行動で気絶から復帰させるか考え中です。

キャプテン翼4 アニメーションの高速処理化と現状での課題

 アニメーション処理のスピードが遅いと言われるキャプテン翼4ですが、どうにか処理のスピードを上げられないものかと色々試しています。その甲斐あって(?)、一応描画の処理スピードを管理していると思われる部分を見つけることはできたのですが、選手の各動作やボールの速度を2~3倍程度に引き上げられる代わりに、写真のように選手のグラフィックの頭だけがあらぬ場所にワープしたり消えてしまうといった現象が起きてしまいます。変更している部分が間違っているのかもしれませんが、うまくいけば2や3のようにスピーディーなアニメーション表現ができる可能性もありますのでもう少し研究していきたいと考えています。

第4次スーパーロボット大戦 ケーラとハサウェイ

 最終的にはどちらも使わないという方が多いと思うのですが、第4次スーパーロボット大戦では第一話のクリアターン数で分岐が発生し、7ターン以内ですとハサウェイが、8ターン以上ですとケーラ(とクリスとバーニィ)が仲間になります。  現在作成中のパッチではクリスとバーニィが最初からロンド・ベルに参加している状態で第一話がスタートするようにしていますが、これを踏まえて分岐でハサウェイとケーラのどちらかが仲間になるのではなく、どちらも仲間になるように変更しようかと考えています。また、これに伴い7ターン以内クリアだとミチル&キング兄妹が、8ターン以上クリアだとバニング&モンシアが仲間になるルートにしていた分岐条件を変更し、主人公がリアル系かスーパー系かで分岐するようにしてみるのも面白いのではないかと考えています。これはターン制限で分岐となると、ゆっくりアイテムを回収したりお気に入りのパイロット育成するために敵を残しておく事が困難になってしまうための対策ですね。そうなると話の流れ、というか仲間になるキャラクター的にスーパー系の場合は7ターンルートに、リアル系は8ターンルートに分岐するような形をとる事になると思います。まあ、最初に述べたようにハサウェイとケーラの両方が仲間になったところで使う方はほとんどいらっしゃらないと思うのですが…。あとはパイロットとして設定されているにもかかわらず実際には仲間にならないキャオの扱いですが、バスターランチャーを持たないエルガイム系の機体は大して使えない可能性が高い(原作のキャオは不意討ちとはいえ赤いディザードで13人衆の一人を倒す活躍を見せていましたが)ので、この辺りの判断はなかなか難しいところです。  さて、色々と仲間になるパイロットや機体を追加していくとSFC版の仕様として有名な「64体の壁」にぶつかってしまいますので、その対策も考えなければなりません。ある程度シナリオが進んだ時点(武器追加イベントのあたり?)で適宜ザンボット3、コン・バトラーV、ダンクーガをそれぞれ分離不能な機体と入れ替え、メインパイロットを除いた分離状態用のパイロットと機体も離脱させればザンボットで2、コンバトラーで4、ダンクーガで3と合計9体分の空き枠を稼ぐ事が可能となりますので、これは必須の変更事項となりますね。精神コマンド管理は「メインパイロットが指定

キャプテン翼4 ファンベルグの「光るシュート」とオルミーガの「吹っ飛ばし補正」について

 以前から気になっていたファンベルグの「光る通常シュート」とオルミーガの「吹っ飛ばし系行動」に関する処理や発動条件ですが、おおよその解析が完了したので記載しておきます。  まずはファンベルグですが、通常シュートが光るシュートに変更される条件は「プレイヤーがマニュアル操作でファンベルグの行動ウィンドウを開く事」でした。つまり、プレイヤーが操作可能な状態で行動ウィンドウを開いた際に選手ID判定が行われ、選手IDがファンベルグであった場合のみ「シュート」「ヘディング」「ボレーシュート」がそれぞれ「光るシュート」「光るヘディング」「光るボレーシュート」という高威力・高消費ガッツの専用技選択ウィンドウに差し替えられるという仕組みです。この仕様上、 AIは光るシュートを選択できない( AIのファンベルグの思考ルーチンには光るシュートを選択する項目が存在しない)ので必然的にオールスターモードでのみ使用可能な技という事になり、処理の仕様上ストーリーモードではこれらの技は発動しません。従って、ストーリーモードでファンベルグが打ったシュートが光ることがあるという証言は何かの勘違いと思われます(ただしチートなどで自軍選手として使用できるようにしてコマンドを選択すれば、画像がきちんと表示されるかどうかはともかく上記の条件を満たした事になるので、オールスター戦と同じように「光るシュート」が発動します)。また、オールスター戦でも「キャプテンモード」や「かんとくモード」選択によるオート操作での行動や、1Pプレイ時に敵軍メンバーとしてファンベルグが登場した場合もオート操作となるため、当然オーバーヘッド以外の光るシュート技は発動しません。オールスター戦でファンベルグを使う際は、必ずマニュアルで操作できるようにしておかないと真の持ち味が生かせなくなってしまうので注意が必要です。  次にオルミーガの吹っ飛ばし行動ですが、結論から言うとこちらは選手IDではなくAIによる行動ルーチンで設定されています。つまりファンベルグのように「通常技を専用技に差し替える」のではなく、「AIの行動選択肢に通常技IDが一切なく、吹っ飛ばし技(通常技と威力・消費ガッツは同じだが吹っ飛ばし補正値が255に設定された別ID扱いの行動)だけしか使えない行動パターン」がオルミーガに割り振られているのです。そのためオールスターモードでペ

キャプテン翼4 レベル補正変更パッチ改の公開と必殺技の追加について

 全体コマンドの「みんなあがれ」や「ファストブレイク」などのガッツ消費コマンドの仕組みが判明しましたので、これを踏まえてパッチを更新しました。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/44  内容としては相変わらず浮き球バグ修正やレベル補正の変更がメインで、「簡単すぎる」とのご指摘により今回は「敵エースと選手IDが00FF(255)以下の敵キーパーは自軍レギュラーの最もレベルが高いキャラ+2レベル」、「選手IDが00FF(255)以下の敵選手は自軍レギュラー選手の平均レベル+2」、「選手IDが0100以降の全ての敵選手は自軍レギュラー選手の平均レベル+1」に補正を変更しています。ついでに写真のように翼やストラットのアップ画像の鼻の位置などを原作の作画に近い位置に修正しています(何だか変に上の方に鼻が書かれていたのでなるべく下の方に変更)。このアップ画像は他にも岬くんや片桐さん、早苗ちゃんにも専用のものが用意されていた筈ですので、それらも違和感を覚えた時点で修正する予定です。  また、ガッツの最大値を一律で150(レベルが上がっても増えません)とし、これを基準として各コマンドによるガッツ消費量を変更しています。但し通常移動時のガッツ消費量や回復量はそのままですので、各コマンドによる時間経過量が大きい4の仕様により割と簡単に必殺シュートを連発できるようになっていますが、その分キーパーの行動負担がかなりキツめになっていると思います。この辺りはテストプレイを重ねて徐々に消費バランスを見直すつもりですので、ご意見があればお気軽にお申し付け下さい。  さて、必殺技の追加ですが、アニメーションを作るのはともかく必殺技を新規に追加しようとすると各選手の必殺技設定テーブルにうまく組み込めず(恐らく必殺技のIDでシュートやパス、ブロックなど属性を振り分けている事が原因と思われます)、現状ではあまり必要がなさそうな技を潰していくしか方法がなさそうです。ストーリーにほとんど関わらないカマーチョやサルバトーレ、KAZUなどの固有必殺技を上書きしてしまうのが手っ取り早いのですが、彼らのファンの方に申し訳ない気もするのでなかなか難しいところですね。とりあえず当面の変更予定はサンパウロの名

キャプテン翼4 BGM関連データ解析とサンプリングデータ差し替えについて

 BGMの貧弱さに定評があるキャプテン翼4ですが、これを補うべくサンプリングデータを差し替えられないか調査を始めてみました。サンプリングデータは050300から始まるオフセットテーブルで定義付けられており、最初の2バイトがデータ長、次に続く2バイトがサンプリングデータの展開先というパターン(これはSPC共通の仕様ですね)になっています。  さて、オフセットテーブルが判明している以上、ROM拡張をしてそこに音質の良いデータを書き込んでアドレス指定すればサンプリングデータの入れ替え自体は可能なのですが、問題はそれをサウンドドライバに組み込んだ場合に他のサンプリングデータと干渉しないようにできるかどうか、という事です。サンプリングデータは予め書き込み先が指定されていますので、このデータ長が他のサンプリングデータと干渉しないようにうまく調整するか、あるいはサウンドドライバ自体を書き換えてサンプリングデータの展開先アドレス領域を変更する必要が出てきます。干渉すれば当然オーバーフローを起こしてフリーズしますので、そういう意味でもなかなか面倒な作業になりそうです。

キャプテン翼4 レベル補正変更パッチ(イージーモード)を公開しました

 以前公開したレベル補正変更パッチですが、「敵チームのレベル補正がきつくて楽しくプレイできない」とのお声が多く寄せられたので修正版をアップロードしました。以下のURLからダウンロード可能です。内容としては前回同様に浮き球バグの修正に加え、敵チームのレベルが「エースとキーパーは自軍選手の最高レベル+1」、「一般選手は自軍選手の平均レベル+1」になります(前回は各+3レベルの補正でした)。極端にレベルが突出した選手がいない限り、恐らくオリジナル版の4よりも簡単にクリアできるようになっていると思います。 https://ux.getuploader.com/retrogamelaboratory/download/43

スーパーロボット大戦F完結編 BNE2設定ファイルを再公開しました

 特に追加データや更新内容はありませんが、以前公開していたスーパーロボット大戦F完結編のBNE2用ファイルを再公開します。中身はSS版とPS版がセットになっている他、システム周りの数値変更のものばかりで直接パイロットやユニットの数値を変更できません。パイロットやユニットのデータ格納位置は判明しているのですが、固定長ではないのでファイル作成が面倒なため放置中です。気が向いたら着手するかもしれません…。以下のURLからダウンロード可能です。解凍パスワードや使い方に関しては過去の記事をご参照下さい。 https://ux.getuploader.com/retrogamelaboratory/download/42

キャプテン翼4 タイトル画面のグラフィック書き換え実施と各選手の必殺技設定オフセット設定変更案

 以前少しだけ触れた「タイトル画面に表示される翼くんの一枚絵に手を加えてみたい」という話ですが、時間が取れたので下の写真のようにしてみました。あまり変わっていないと思いますが、顔を若干書き直したり、なぜか隠れている右腕を書き加えたり、ボールを少し小さくしたり、左肩を狭くしてみたりしています。ついでに「プロのライバルたち」というサブタイトルもアンチエイリアスをなくして視認性をアップさせています。  また、久々に解析も再開してみましたが、各キャラクターの使用必殺技に関してはオフセットリストを103人に縮小するためにオルミーガ以降のIDを参照しないような分岐条件を作っている事が判明しましたので、これを変更して新たに全選手分のオフセットを作成すれば全員に必殺技を設定する事もが可能と思われます。しかし、256人目から下の一般モブ選手に必殺技を覚えさせる必要はないような気もしますね。とりあえず今後はダイビングヘッドのような「ちょっと強力な汎用必殺技」の作成に着手しようと考えています。

第4次スーパーロボット大戦 メカ戦士ギメリアの「超弾性金属」のしくみについて

 ご無沙汰しております。さて、メカ戦士ギメリアの特殊能力「超弾性金属」はダイモスがイベントで取得する「必殺烈風正拳突き改」でのみダメージを与えられるのですが、その仕組みはダメージ計算中のサブルーチンからユニットID、及び武器IDを取得してダメージを0にするか否かの処理(先攻側…3EF48:20 FD F1=03F1FDのサブルーチンを呼び出し、後攻側…3F117:20 FD F1=03F1FDのサブルーチンを呼び出し)にて行っています。なお、アドレスはいずれも初期ROMの場合です。 (サブルーチン読み込み直前に武器ID取得のコマンドが実行されている)             03F1FD 29 FF 03 AND #$03FF (武器IDの)上限を03FFに絞り込み                    03F200 85 00       STA $00        (取得した武器IDを)7E0000に書き込み                    03F202 A2 00 00 LDX #$000     Xに即値0000を読み込み   03F205  B9 65 18 LDA $1865,Y $7E1865 ユニットID(2バイト)を取得03F208 29 FF 01 AND #$01FF  (ユニットIDの)上限を01FFに絞り込み    03F20B DF 26 F2 83 CMP $83F1AD,X $03F226    X.Aから03F226の指定値を減算 03F20F F0 0B BEQ $0B $03F21C 指定値ならば03F21Cにジャンプ      03F211 E8 INX                                            Xに1を加算                                 03F212 E8 INX                                            Xに1を加算                           03F213 E8 INX                                            Xに1を加算 03F214 E8