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

投稿

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

最新の投稿

キャプテン翼4 ドリブルバグ修正計画

 久々にキャプテン翼4をプレイしていて気が付いたのですが、フィールドで選手がボールを保持してドリブルをしているお馴染みの画面で、よく見ると上の写真のように画面の右端に妙な黒い線が走っているのを確認しました。最初は私が各データの位置を色々と移設した際に何か作業を誤まったのかと思っていたのですが、何も改変していない元のままのデータのROMでプレイしても同じ現象が発生したのでこれは何らかの不具合=バグではないかと思われます。一応これを消す方法は見つけたのですが、それを実行すると以下の写真のようになってしまいます。  確かに画面右端の黒い線は消えましたが、今度は画面の下半分に表示されるレーダーのコート図面が消えてしまいます。どうやらこの画面を表示するにあたってカットインやクローズアップ演出を表示する定義と同じスクリプトやコマンドコードでの設定がされているようなのですが、この定義のうちコート図を表示する定義(=ID15)に設定ミスがあるようなのです。この写真はコート表示に使用するスクリプトIDを無効化した状態でコート図もラインも消えるのですが、これをプログラム側から修正しようとすると何故かコート図だけが消滅して黒いラインはしっかりと残るので、このスクリプトやコマンドコードの場所を特定しない事には完全な修正は不可能です。まだ調査を始めたばかりでスクリプトそのものの記述場所が特定できていませんが、正式に修正が完了した際には修正パッチを公開する予定です。

第4次スーパーロボット大戦 機体の爆発エフェクトとBGM番号の関係性について

 機体が撃破されて爆発すると通常は赤い爆炎を上げて爆発し、艦艇や超大型の機体など(=LLサイズのユニット)は轟音と共に画面が真っ白になります。そして一部の機体は爆縮のよう演出の後に光の玉になって爆発します。これはBGMのIDが「12(=「ヴァルシオン」)」以上の「ボス設定(=優先BGM設定)」されている機体に見られる現象で、更にこれらの機体はマップ上で爆発する際には、エフェクトが通常の赤い爆炎ではなく上の写真のように光の柱となります。「だからどうした」と言ってしまえばそれまでなのですが、戦闘用のBGMを追加してBGMの優先IDを変更する際にボス設定したくない雑魚ユニットが下の写真のように撃墜する毎に派手な爆発をするのを見たくないという方もいらっしゃる事でしょう。そこで、BGMの優先IDを変更する際には爆発エフェクトを制御する箇所を書き換えてしまうのが有効です。  まずはBGMの優先IDか否かの判定箇所ですが、03DD5~D7と03DD75~77の「E0 12 00」(後期ROMであれば03DD97~99と03DDB7~B9)がそれに該当します。これは戦闘画面での先攻側のBGMのID判定、及び後攻側のBGMのID判定を行っている部分であり、これが「12 00」(=「ヴァルシオン」)以上であれば優先してBGMが再生されるという仕組みです。何らかの理由でBGMの優先順位を変更したい場合はこの数値を書き換える必要があります。  次に、戦闘画面での爆発エフェクトを強制的に光の玉に変更している箇所を記します。これは03FB64~66の「C9 12 00」(後期ROMであれば03FAEB~ED)が該当し、これも「ヴァルシオン」以上のIDが割り振られている機体であれば爆発エフェクトが光の玉になるというわけです。  最後に、マップ上での爆発エフェクトを光の柱に変更している箇所を記します。これは初期ROMでも後期ROMでも同一で、029A5D~5Fの「C9 12 00」がそれに該当し、これも「ヴァルシオン」以上のIDが割り振られている機体であれば爆発エフェクトが光の柱になるというわけです。これらを全て同じ数値にしてしまってもいいのですが、それぞれのIDをうまく調整すれば「撃墜時に普通の爆発をするがマップ上では光の柱が立つ」といった変化球的な事もできなくはありません。

第4次スーパーロボット大戦 乗り換えカテゴリー「ダイナミック系」設定の構想

 ミチルさんとキング兄妹が参戦するルートの関係もあり、以前の構想では乗り換えカテゴリーに「ゲッター系」を設定する予定でしたが、予定を変更してマジンガー系とゲッター系を統合した「ダイナミック系」というカテゴリーを作成しようと考えています。簡単に言えばゲッター系のパイロットもマジンガー系の乗り換えタイプに設定し、マジンガー系の名称をダイナミック系とする事でゲッター系のパイロットもマジンガー系の機体に乗り換え可能にするという構想です。  このカテゴリーには従来乗り換え不能だったデュークも含まれ、グレンダイザーはデュークのみ搭乗可能で他のダイナミック系パイロットは(マリアも含めて)搭乗不可、ゲッターロボは3人乗りタイプに関しては竜馬のみ搭乗可能という扱いにするつもりです。これによりゲッター系のパイロットもスペイザーに乗ったりできるようになるのですが問題がないわけではなく、グレートマジンガーなどの強力な機体に竜馬を乗せてしまうとゲッターチーム三人分の精神コマンドが使えるために強力すぎてしまうという事です。この辺りの問題を考えると、竜馬のみ乗り換え不可にするという措置を講じる必要があるのかもしれません。  何故こんなカテゴリーにしようと考えたのかというと、「リアル系主人公がMS系の機体に乗れるのであればスーパー系主人公はマジンガーやゲッターなどの機体に乗れるようにして欲しかった」という意見をあちこちで目にするのと、私自身もそうあって欲しかったという願望によるものです。従って最終的にはスーパー系主人公はこのダイナミック系の乗り換えカテゴリーに変更する予定です。そうなると以前にも少し触れたスーパー系副主人公の乗機問題が出てくるのですが、やはりOG系の機体よりもダイナミックプロ系作品のロボットの中から選ぶべきなのでしょうね。雑魚っぽい量産型のダイナミック系メカというとステルバーやイチナナ式(量産型グレートはいくら何でも強すぎるので却下)ですかねぇ…。

ウィンキーソフト開発SFC作品のBGMスピード/ボリュームや使用サンプリングデータIDの調べ方

 皆様、いかがお過ごしでしょうか。今回はウィンキーソフト製サウンドドライバを使用した各種SFCソフトのBGMをSPCデータから他の作品に移植する場合のデータ調査方法を記載します。メモ書き程度ですがそんなに難しい内容ではないので、エミュレーターでウィンキー作品のSPCデータを集めている方は以下を参考にデータを覗いてみてはいかがでしょうか。 例:SPCデータ内のスピード/ボリューム参照は第4次の場合は以下の通り。 スピード…0129(0029)に書き込まれる。 ボリューム…0130(0030)に書き込まれる。  実際には「0121/0122(0021/0022)」の数値を0129と0130に実効データとして展開している仕組みらしい。SPCデータ内でスピードやボリュームを変更する場合は0129と0130を変更すること。使用している波形データ(楽器データ)の内訳は第4次であればSPCの0760(ヘッダなしだと0660)以降を見ると分かる。最初の2バイトがその楽器データの始点で次の2バイトが終点で一組(「E2 55 2F 57」など)。このアドレスから展開されているデータの先頭0010バイトをコピーしてROM側をバイナリエディタで調べ、使用されているサンプリングデータのIDを割り出せばよい。 第4次の場合は戦闘中に使用できるサンプリングデータの波形スロット範囲は原則として00~10(サンプリングデータは固定)と11(必ず0Bに指定すること)と18~1F(サンプリングデータは原則として自由)で、これ以外の波形スロットを使用しようとすると特定のSEが使われるべき場面でオーバーフローを起こしフリーズする。サンプリングデータはウィンキーソフト作品同士であれば各ROMから抽出したものがそのまま使用できる。但しサンプリングデータの組み合わせ次第では「戦火の爪あと」のように稀に20まで使える事もあるが、逆にサンプリングデータの組み合わせ次第ではデータの展開位置が重複して1Fまで使用できない事もあるので注意。  ウィンキーソフトのサウンドドライバは大きく分けて4種類あり、ヴィルガスト〜ジョジョがVer.1.0、第3次〜EXがVer1.5、第4次がVer.2.0、バトルロボット烈伝と魔装機神がVer.2.5といった感じの仕様になっている。 ジョジョの奇妙な冒険、ヒーロー戦記 スピード…0118

第4次スーパーロボット大戦 スラスターエフェクトバグ

 作成した戦闘アニメーションのチェックをするためにテストプレイをしている際に、下の写真のように「空や宇宙などで機体後方に表示されるスラスターのエフェクトが崩れる不具合」に何度か遭遇していたので、どこか変更してはいけないところを変更してしまったのかと悩み長期間に亘り原因を調査していたのですが、ようやくその原因が判明しました。 結論から申し上げますと、私が何かミスをしたのではなく元から存在する不具合だったのです。  発生条件と内容は「後攻側にシールド防御が発生し、かつその機体にシールドのグラフィックが設定されている場合、スラスターのエフェクトが表示される武器で反撃を行うとスラスターのエフェクトの代わりにシールドのグラフィックが読み込まれてしまう」というものです。ビームサーベルや体当たり、ランサーなどの格闘戦用武器がこれに該当しますが、本作品はシールド防御が発生しにくいうえにシールドのグラフィックが用意されている機体も少なく、そしてビームサーベルなどのスラスターエフェクトが表示される武器は威力が低いものが多いためわざわざこれで反撃する旨味も少ないという様々な要因が絡み合い、今まで誰も気が付かなかったのだと思います。  恐らくRAM上でスラスターエフェクトの位置とシールドの位置が重複するために起こる不具合だと思いますが、この位置を重複しないようにするとなると別の不具合が発生するのが身に見えていますので、修正方法はプログラムの仕様やアニメーションのスクリプトなどを解析して「後攻側が反撃のアニメーション用のデータを読み込む際にスラスターエフェクトを再度読み込んでシールドのグラフィックを上書きする」というコマンドを追加するしかないと思います。問題はこのコマンドが本当に組み込める仕様になっているのかどうかという事ですが…。

第4次スーパーロボット大戦 精神コマンド「脱力」の対象者指定化計画

 敵ユニットのファンネルやオーラ斬りや分身の発動を防いだり攻撃力や防御力の低下を狙うために限りなく重要な精神コマンドである「脱力」ですが、残念ながら初出である第4次(と「新」)では自軍を巻き込んで使用者の半径3マスに存在するユニット全てに効果が及ぶという、かなり使いにくいものとなっています。敵ユニットに囲まれている場合であれば有効な精神コマンドと言えますが、実際にはこれを使用できるのがほぼ二軍レベルのパラメーターのパイロットばかりのため最前線に足を運んで使用など堪えないという有様で、「F」以降のように有効活用するにはなかなか骨が折れます。強いて言えば、ボスが合体状態の各種スペイザーに乗ってグレンダイザーのサブパイロットとして脱力を使用するのが最も有効でしょうか。  そこで「F」以降のように、指定した相手に直接効果を及ぼす事ができるように効果を変更しようと思っています。処理の内容を解析してみたところ敵軍の特定の相手を指定する処理にする事自体は特に問題なさそうな感じはするのですが、試しに処理を組み込んでみたところアニメーションがうまく処理できません。どうやら「脱力」のアニメーションが使用者の周囲のみに適用される事を前提に作られているらしく、使用者から見て画面外の相手に使用すると表示されるハロを追尾してカメラが対象者に移動してくれません。一応これで脱力の効果自体は成立するのですが何とも気分がよろしくないので、「偵察」のアニメーションなどの処理を参考にどうにかできないか挑戦してみる予定です。

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

 以前公開していた「BGM設定パイロット基準化パッチ」の旧バージョン(戦闘BGMの継続機能が付与されていないタイプ)を再公開して欲しいとのご連絡を頂きましたので、これにお応えする形で再度公開致しました。機能的に新バージョンに勝る部分はほぼないと考え公開を停止していたのですが、本来のBGM再生仕様に則り戦闘終了後の度にマップBGMが再生されますので、マップ上のBGM演出を楽しみたい方にとってはこちらの方が需要があるのかもしれません。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/66  内容は旧バージョンそのままですが、readmeの中身を少しだけ書き換えています。 私自身はその後作成したBGM継続機能付きのバージョンを使用しており、当時の不具合修正から 他の不具合検証を行っておりませんので、もし何らかの不具合を発見された方は報告を頂ければ幸いです。 解凍パスワードは当時と同じ ですので、そちらの記事を参照願います。

第4次スーパーロボット大戦 クリティカルデフレ化パッチを公開しました

 ご無沙汰しております。クリティカル発生時や熱血/魂使用時のダメージ係数を減らすパッチを公開しました。具体的にはクリティカル発生時と熱血使用時の最終与ダメージが従来の2倍から1.5倍に、魂を使用時の最終与ダメージが3倍から2倍に減少します。また、クリティカルと熱血や魂、熱血と魂は従来通り効果が重複しません。本来のダメージ係数のままクリティカルと熱血や魂が重複して効果を発揮できるようにすると最終与ダメージが大きすぎる(クリティカル+熱血+魂で最終与ダメージが12倍になる)のが問題になりますが、この計算であれば全て重複しても最終与ダメージは4.5倍で抑えられますので、改良版のパッチを作ってみるのも面白そうですね。  なお、ダメージ計算式のプログラム部分を直接上書きしていますので未使用領域は使用していませんが、他の方が作成したパッチとの競合については全く検証しておりません。ご使用の際はその点にご注意下さい。ダウンロードは以下のURLから可能です。 https://ux.getuploader.com/retrogamelaboratory/download/65  解凍パスワードは「/Y&Zmm&jUmX$aMh$8」です。