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

投稿

ラベル(レナス 古代機械の記憶)が付いた投稿を表示しています

最新の投稿

第3次スーパーロボット大戦 反撃命令による武器や行動選択の解析結果

 反撃命令による武器選択の基準がよく分からないと言われているSFC版第3次スーパーロボット大戦ですが、反撃命令の設定箇所をざっと解析してみたところ、それぞれの命令で使用武器の選択基準が違っている事が分かりました。大まかな内容ですが、基本的には以下のような基準で反撃武器や行動を選択しています(なお、原則として敵軍やNPCのパイロットは「必ず反撃せよ!」に設定されています)。  「必ず反撃せよ!」は、残弾や残りENにかかわらず命中率が1%以上ある最強の武器を選択。その武器の命中率がゼロになる場合は、次に威力が高く命中率が1%以上ある武器を選択するという思考を繰り返す。どうしようもない場合は命中率がゼロでもとにかく現状で使用可能な最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる。弾切れや射程外からの攻撃には何もしない。先攻側の攻撃でHPがゼロになると判断しても反撃を試み、それができない場合は反撃不能扱いとなる。原則として武器選択の際に相手の残りHPは考慮しないため、反撃相手のHPが仮に残り1であろうとも最強の武器で反撃する。前述の通り、敵軍やNPCは原則としてこの命令が設定されているため、回避力(=パイロットの反応と操縦と直感の総和に機体のサイズ補正を適用した数値)が低いユニットは威力重視の武器で反撃される事が多い。残弾やEN消費も気になるところだが、分身持ちであるゲッター2系やF91であればこの命令を活用できるかもしれない。  「積極的にいけ!」は、相手が一撃で倒せる場合は命中率が1%以上ある最強の武器を選択。但し、その武器の残弾が残り1だったり、その武器を使用してもう一度使用できるだけの残りENがなくなる場合は使わず、次に威力が高く命中率が1%以上あり、かつ残弾が残り2以上か現在のENで二回以上使用できるEN消費武器を選択するという思考を繰り返す(EN消費武器に関してはたまに例外あり)。どうしようもない場合は弾切れ、またはEN枯渇にならない命中率がゼロの現在選択できる最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる(そのため、条件を成立させれば弾切れでなくともパイロットが弾切れの台詞を吐く姿を拝める)弾切れや射程外からの攻撃には何もしない。。相手を一撃で倒せない場合の思考も同様。やはり原則として武器選択の際に反撃相手...

レナス〜古代機械の記憶〜(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の回復処理を行ってからフラグ処理を実行するという変な一手間が必要です。なお、戦闘...

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

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

レナス〜古代機械の記憶〜(Paladin's Quest) 呪文の威力強化について

 意識的に呪文を使っていけば呪文の習熟度が上がっていく本作ですが、ダメージ的には最もよく使うモミソゴーンでも300台後半くらいで頭打ちになってしまうきらいがあるように感じます。  そこで呪文によるダメージを強化しようと考えているのですが、試しに精霊習熟度によるダメージへの影響力を2倍にしたところ、今のところ一部の呪文ではダメージが減少したり1ダメージになってしまうなどの不具合が確認できています。どうやら精霊習熟度をダメージに適用する際にオーバーフローを起こしているらしく、このあたりの不具合を解消しないと実用化はなかなか難しそうです。欲を言えば初歩呪文のズザンやケカンなどでも最大で4桁近いダメージを出せるような変更ができるとよいのですが、そうなると敵の強さも色々と変更しなければならないいでしょうね。

レナス〜古代機械の記憶〜(Paladin's Quest) 歩行速度変更パッチを公開しました

   お待たせしました、歩行時の移動速度を約2倍に変更するパッチが完成しました。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/13  致命的な欠陥…というほどでもないのですが、やむを得ない欠点として、通常歩行時本来のマップチップ読み込み速度を想定していない速度で歩行するため、描画が間に合わないというほどではありませんが画面がややカクつきながらスクロールするようになってしまいます。そのため長時間プレイすると結構目が疲れますのでご注意下さい。なお、沼や砂地で足が遅くなる処理はわざと残してあります。

レナス〜古代機械の記憶〜(Paladin's Quest) 歩行速度変更の検証

 私はあまり感じないのですが、どうやら巷ではこの作品の移動スピードは遅い部類に数えられているらしいのでそれをどうにかできないかと思って調べていますが、結論から言えば移動速度の変更は正直なところ難しそうです。  この作品では沼や砂地に足を踏み入れると移動速度が遅くなるので、その逆の処理をしてやれば移動速度が速くなると仮定したのですが、その処理を組み込んだところ一歩あたりで移動する距離が増えるだけでスピードが上がりませんでした。しかも徐々にマップのグラフィックがおかしくなっていくのです。  つまり、沼や砂地では移動速度が下がっているのではなく、移動時に書き換えられるマップのグラフィックの変更処理速度を遅くする事でさも足が遅くなったように見せているようなのです。どうやらその逆は不可能なもようで、別の方法で移動速度を速くする事ができないかどうか検討してみます。

レナス〜古代機械の記憶〜(Paladin's Quest) エネミー設定用BNE2ファイルを公開しました

 昨年の3月に作成したまま放置していた、レナスのエネミー設定用BNE2ファイルを公開しました。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/12  エネミーがドロップするアイテムと確率も設定できますので、パラメーターアップ系のアイテムを高確率でドロップさせるなどの措置も面白そうですね。余裕ができたらアイテムの内容そのものの設定や傭兵の設定に関しても変更できるように解析を進めたいところです。

レナス〜古代機械の記憶〜(Paladin's Quest) カードで精霊取得パッチを公開しました

   今回は「精霊のカード」を使用した際に対応する精霊を所持していない場合、そのカードに対応する精霊を取得するパッチを作成してみました。これにより、傭兵に任意の呪文を追加習得させる事が可能となっています。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/10  カードで取得した精霊に対応する呪文は、上の写真のようにその場ですぐには使えませんが、ミディアであれば精霊屋で未所持の精霊を購入する際に、傭兵であれば精霊を取得した後で一度別れて再雇用すると、下の写真のように所持している精霊に対応した呪文が使用可能になります。ミディアはカードで8個目の精霊を取得してしまうと、その精霊に対応した呪文が使えなくなってしまう点にご注意下さい。  このように、新たに精霊を取得した傭兵は再雇用すると呪文を習得して帰ってきます。また、既にそのカードに対応した精霊を取得している場合は通常通り精霊習熟度が上がります。なお、チェズニだけはゾンドのイベントでの不具合を回避するためにカードで精霊を取得できないように処理しています(取得済みの精霊に関してはカードで習熟度が上昇します)のでご注意下さい。

レナス〜古代機械の記憶〜(Paladin's Quest) アクド離脱回避関連パッチを公開しました

 お待たせしました。アクドがパーティーにいる状態で町に入っても所持金を半分持って逃走しなくなるパッチを作成しましたので、ご利用下さい。以下のURLからダウンロード可能です。 https://ux.getuploader.com/retrogamelaboratory/download/9  今回は2種類のパッチがセットになっています。一つは「アクドがお金を持ってトンズラせずに他の傭兵と同じようにそのまま雇用し続けられるパッチ」、もう一つは「アクドはトンズラしないがパーティーにいる間は戦闘で入手できるお金が半分になるパッチ」です。アクドにデメリットを求めたい方は後者を、そんなデメリットはいらないという方は前者を使用するといい感じではないでしょうか。

レナス〜古代機械の記憶〜(Paladin's Quest) さけのにおい販売パッチを公開しました

 お待たせしました。道具屋で「さけのにおい」が販売されるようになるパッチを作成しましたので、ご利用下さい。以下のURLからダウンロード可能です。  https://ux.getuploader.com/retrogamelaboratory/download/8  内容としては、単純に道具屋の商品リストの一番下に「さけのにおい」 を追加しただけです。売価も特に弄ったりしていませんので、データ上の設定売価の50Gのままです(写真はサスクオトのロキの町なので倍値の100Gになっています)。これで戦況に応じて傭兵を簡単に雇い直す事が可能になりますね。

レナス〜古代機械の記憶〜(Paladin's Quest) 今後の予定

 戦闘終了後にHPが回復する仕様にした事でサガシリーズのように全力で戦えるようにはなったものの、今度はバトルにおける緊張感がなくなってしまった気がします。そこで、次は敵のデータを編集できるBNE2ファイルを作る予定です。これで敵の各パラメーターを1.25〜1.5倍程度に変更し、より緊張感のある戦いを楽しめるようにしてみたいところです。また、傭兵やサブキャラクターのデータを編集できるBNE2ファイルも作りたいですね。改造コードを使用すれば傭兵の装備は変更できるのですが、傭兵のデータでセーブデータに記録されるのは取得した精霊と精霊習熟度と経験値と各種パラメーターだけなので、仲間から外れた傭兵の装備は再び初期データに戻ってしまうのです。RAM拡張で新規にセーブデータの拡大をするという手もあるのかもしれませんが、うまく変更できる自信がないので今回は普通にデータ編集という形を取る予定です。  あとは、数人の傭兵の仕様変更でしょうか。例えば、街に入ると所持金の半分を持って逃走するアクドは「仲間にしている間は敵から入手できるお金が半分になる」という形に、通常手段で回復ができないメカニードスは「戦闘終了時に倒されていなければ自動的に回復する」という仕様で問題ないと思います。この辺りは、一度再プレイしてみて変更すべき点を洗い出していきたいところです。そして、道具屋で入手できるアイテムのラインナップに「さけのにおい」を追加するという変更ですね。傭兵の再雇用に必要なこのアイテムが非売品になっているがため、気軽に傭兵を交代しなが使えないのはもったいない気がします。

レナス〜古代機械の記憶〜(Paladin's Quest) HP自動回復パッチを公開しました

 お待たせしました。戦闘終了時に各メンバーのHPが最大値まで自動回復するパッチを作成しましたのでご利用下さい。以下のURLからダウンロード可能です。   https://ux.getuploader.com/retrogamelaboratory/download/7  なお、戦闘終了処理時の各キャラクターの最大HPを取得している仕様上、レベルアップしたキャラクターのHPはレベルアップ前の最大HP分しか回復しません(レベルアップ後のHPを参照するとメリーヌやメカニードスの離脱イベントに干渉してしまうためです)。ご注意下さい。

レナス〜古代機械の記憶〜(Paladin's Quest) 戦闘終了後のHP自動回復システム導入計画

 『レナス』シリーズはHPを消費して呪文を行使するユニークなシステムの作品ですが、戦闘終了後も特にHPが回復したりする措置がないので気軽に呪文が使えないというジレンマがあります。また、このHP消費システムに引っ張られる形で、せっかくの個性的な傭兵たちも回復用のボトルを装備したキャラクターだけを優遇せざるを得ない事になるのが残念でなりません。  そこで、戦闘が終了した時点で自動的にHPが全快するように変更してみようと思います。これならば戦闘終了後の呪文使用者回復要員としての傭兵は必要なくなり、固定装備に回復ボトルがないばかりに使いにくかったキャラクター達にも使用し続ける目が出てくるのではないでしょうか。