バグキャラについて
【SFC】ロマンシング サ・ガ2のバグキャラのグラフィックや名前などについてのページです。
バグキャラデータ暫定置き場
- 全クラス名一覧
- 全キャラ名一覧(量が多いので分割)
バグキャラの名前とクラス名のデータです、一応全バグキャラのステータスデータもあるのですが、量が半端じゃなく(エクセルデータで20MB、圧縮しても5MB)HTML形式での公開はきついので別の方法を画策中です。最悪の場合は未公開のままかもしれません。
※解析するにあたって必要だった文字コードは遠藤さんのサイトで使用されていたモノを流用させて貰いました。調べる手間が省けて助かりました("〓"を使っているのはそのせいです)
グラフィック一覧
正面画像
バグキャラの画像の種類は256種類あります。
本当は正常な一般クラスと同じグラフィックのバグキャラもいるのですが、普通は出ないと思うし載せなくてもわかると思うので省略。巨人や竜などサイズの大きいグラフィックだと表示が滅茶苦茶になります。
バグカラーだと軍師のプライバシーは保護されていません(笑)
実は正面画像などと謳っていますが正面じゃないヤツもあります(笑)
石化画像
石化すると戦闘用のグラフィックが作られていないヤツはキャラがズレます。注目はノエルでロックブーケに変態します、妹可愛さのあまりヤバイ行動に走たのでしょう。
シティシーフ男は orz にしか見えません。
バグキャラを皇帝にした場合の扱い
一部のバグキャラは皇帝にした場合に正規キャラと同じ様に扱われる事があります。
終帝として扱われるバグキャラ
1番左上にいる終帝グラフィック(男女共に)のバグキャラを皇帝にすると終帝扱いとなるみたいです。多分、大量謀殺で出現時した時と同じ状況だと思われます。要するに年代ジャンプ不可や全滅=ゲームオーバーとかそういう事です。
パーティ内に仲間として存在する分には問題は無いみたいです。
一般クラス扱いのバグキャラ
右側4列の一般クラスのバグカラーのキャラはそれぞれの見た目に対応した兵種扱いみたいです。対応クラスに話すと「我々の代表として~」と言われますし、陣形開発も可能です。未確認ですが、武装商船団の『コムルーン海峡越え』やイーリスの『浮遊城突入』も大丈夫かもしれません。
追記:試してみたところ、バグ武装商船団でのコムルーン海峡超えは可能でした(浮遊城は未確認)。バグキャラについて
バグキャラの数
ロマサガ2には理論上は正常なキャラも含めて全部で65536種類のキャラが出現する可能性があります。これは加入キャラの管理を2バイトの変数(以後この変数をキャラIDと呼称します)で行っている為です。
通常このキャラIDは0x0000~0x010F位までしか使われていませんが、理論上は0xFFFFまで存在します(実際に出現するかどうかは別問題です)。
名前
全部で8192種類あります。数が足りないのでループして使用され、 『 65536 / 8192 = 8 』 なのでトータルで8周します。内容の詳細はバグキャラデータ暫定置き場へ。
尚、名前に"〓"が入っている場合は"メニューを開く"や"継承候補になる"などキャラ名の表示が必要な状況になるとフリーズします。
来来来来来来来来
バグキャラの名前として最も有名な「来来来来来来来来」ですが、8192種類中1809種類の名前がコレです。「来」という文字を16進数で表すと「FF」なのですが、一般的にROMの未使用部分は「FF」(もしくは「00」)で埋められている事が多いので必然的に出現頻度が高くなります。
クラス名
全部で256種類あります。これも名前同様ループして使用されますが、キャラIDが0x8000以上だと"皇帝"で固定になるみたいです。内容の詳細はバグキャラデータ暫定置き場へ。
尚、クラス名に"〓"が入っている場合は"メニューで能力値を見る"や"継承確認画面"などクラス名の表示が必要な状況になるとフリーズします。
名前やクラス名が原因の不思議現象
バグキャラの名前やクラス名には色々と不思議な現象を起こす原因になっています。その現象についての調査ですが、間違いがある可能性が大きいので鵜呑みはしないで下さい。
名前やクラス名でフリーズする現象
メニュー画面に名前を表示する場合に特定の条件を満たすとフリーズしてしまいます。これはバグキャラデータの名前やクラス名に"〓"が入っている際に起こる現象です。この現象を少し正確性に欠けると思いますが、わかり易く説明するとこんな感じです。
まず、ロマサガ2の文字には1バイトの文字と2バイトの文字の2種類があります。
- 1バイト文字 ■
- 1バイト文字は一人でも全然平気です、ひらがな、カタナカなど頻繁に使う文字が多いです
- 2バイト文字 ■■
- 2バイト文字はとっても仲良しで常に2人一緒です、引き離されると自爆テロを起こします
- □□□□□□□□ ←名前データを入れる器だと思ってください、現在は空状態です
- ■■■■■■■□ ←7個埋っている状態です(残り1個)
- ■■■■■■■■ ←残りの1個に1バイト文字が入れば何も問題は起きません
- ■■■■■■■■■ ←しかしここに2バイト文字が来てしまうと地雷がセットされた状態になります(2バイト文字が引き裂かれた状態)
4.の状態は地雷がセットされただけで、まだ爆発はしていない状態です。しかしこの状態の名前データを読み込むとスイッチが入り爆発(フリーズ)してしまいます。
起爆スイッチ
- 起爆スイッチとなる行動【名前編】
- セレクトボタンでメニューを開く
- 継承候補に上がる
要はメニュー画面で名前を表示する事がカギとなります。この現象は名前だけでなくクラス名の場合でも同じ事が起こります。
- 起爆スイッチとなる行動【クラス名編】
- メニューを開いた後に"能力値"を選択する
- 継承候補に上がった後に選択して継承確認画面にする
条件的にクラス名に比べて名前でフリーズの方が厄介です。いずれの場合にせよ皇帝継承をしようとするとどちらの地雷でも爆発してしまいます。
メッセージウインドに表示する場合について
メッセージウインドに名前を表示された場合は色々なイベントが発生する可能性があります(何も起こらない場合もあります)。
メッセージウインドとはセリフが表示される場所の事です。
危険なイベントが発生がする場合もありますよ。
この現象のカギになる行動
- 皇帝の名前を呼ぶ住人に話す(「あっ! ○○様‥‥」など)
- 終帝LP0時の復活イベント(「○○待て!いくなー」「そうか‥‥この命○○がくれたのか‥」など)
- エンディングの詩人のセリフ「そうでもないと思いますよ ○○様」
- 術習得時の名前表示
などの状況だとメッセージウインドにバグキャラの名前が表示されてイベントが発生する場合があります。
処理がよくわからないので、私のスキルではこのキャラではこのイベントが発生するみたいな事は解明できないと思います。
実際に発生させてメモる方法なら可能ですが、量が多すぎる……。
具体的によく発生するイベント
- 何も起こらない(名前を呼ばれるだけ)
- アイテムやお金を貰える
- 敵と戦闘になる
- 別の場所へワープする
- なんらかのイベントが発生する
- バグる(フリーズ、変な文章の羅列、画面崩壊など)
などが起こると思います、これらの現象が組み合わさる場合もあります。
おこる現象はバグキャラによって固定されているみたいです。
術習得時の表示についての注意点
バグキャラの種類によっては術習得時に名前が空欄で何も起こらない場合があります (図1)
しかし、この空欄にカーソルを合わせるとバグるので注意です。つまり空欄表示のバグキャラに術を覚え(忘れ)させる事は不可能。
- 図1
上の画像の「メアリー」と「リチャード」の間の空欄がバグキャラの名前表示です、この空欄にカーソルを合わせると画面がバグります。
同じ理屈だと思いますが、術欄が満タンで削除する際に名無し技(各種通常攻撃など)にカーソルを合わせると同様にバグります、これは術欄に通常攻撃など名無し技を継承してしまうと削除出来なくなる事を意味します。
戦闘画面で表示する場合
オート操作のキャラでは表示されませんが、行動タイプが"3F"でマニュアル操作のバグキャラだと戦闘中に名前が表示されます。ほとんどの場合はきちんと名前が表示されますが、たまに画面表示が無茶苦茶になるような名前を持つバグキャラいます。(図2)
ただこれは画面が見辛くはなりますが、操作に支障はないみたいです。そもそも、マニュアル操作のバグキャラ自体結構レアなのであまり見る事はないと思います。
- 図2
バグキャラの調査メモ
バグキャラの調査メモです。改造か解析の知識がないと意味不明だと思います。
バグキャラ構造体
バグキャラの構造体です、まぁバグキャラと言うよりレオンなどのイベントキャラの構造体と言うべきなんですが、バグキャラの場合も同じです。キャラ1人で43バイトの容量になってます。
- 0: 種族&特性
- bit0-3: 種族
- 0: なし
- 1: 人間
- 2: 悪魔
- 3: 巨人
- 4: 獣
- 5: 獣人
- 6: 水棲
- 7: 竜
- 8: 両棲類
- 9: 爬虫類
- 10: 植物
- 11: 昆虫
- 12: 火の精霊
- 13: 水の精霊
- 14: 風の精霊
- 15: 土の精霊
- bit4: 飛行
- bit5: ボス
- bit6: アンデッド
- bit7: 女性
- bit0-3: 種族
- 1: 腕力&器用
- 2: 魔力&冥力
- 3: 素早&体力
- 4: LP
- 5: 閃きタイプ (0x0F超の場合にどうなるかは不明)
- 6-16: 熟練度(剣→槍→斧→弓→体→火→水→地→風→天→冥)
- 17-24: 技欄 (技1→8)
- 25-32: 術欄 (術1→8)
- 33-36: 武器欄 (武器1→4)
- 37-40: 防具欄 (防具1→4、防具4は固定装備)
- 41: 不明
- 42: 行動タイプ&石化&死亡
- bit0-5: 行動タイプ (0x3F=マニュアル、それ以外はオート)
- bit6: 石化
- bit7: 死亡 (通常はLP0の時になる状態異常)
43バイト目の石化&死亡について少し説明しておきます。
- 石化
- 凝視や活殺化石衝などで発生する状態異常です、1度戦闘すると元に戻ります
石化キャラ1人で戦闘すると操作不能になるので戦闘するなら仲間を加えてから行う事 - 死亡
- 普通はLPが0になった際に発生する状態異常、回復手段はありません。
- LP0ならば戦闘後にパーティから離脱しますが、バグキャラの場合はLPあるけど死亡と言うケースが大半です。
死亡キャラが居る場合は戦闘は控えた方が無難です、年代ジャンプなどでパーティを一新できます。
キャラデータとして読み込む部分
キャラデータとして読み込まれる部分は基本的に『0x1E0000-0x1EFFFF』の間みたいです。読み込み開始位置が0x1F0000以上になる場合は65536(0xFFFF)バイト手前の位置から読み込む模様。
※アドレスはヘッダ(200h)無しです。無敵フラグについて
無敵フラグはキャラIDが関係していて、上位1バイトが0x20だと無敵フラグありになります。
無敵フラグと行動タイプ
無敵フラグの処理には行動タイプが影響していて以下の行動タイプだと数回倒されると無敵フラグが解除されます。
- 1度倒されると無敵フラグ解除
- 0x04 ・・・・ クジンシー1
- 0x0A ・・・・ ノエル1後半1
- 0x16 ・・・・ ノエル2後半1
- 2度倒されると無敵フラグ解除
- 0x09 ・・・・ ノエル1前半
- 0x15 ・・・・ ノエル2前半
横に書いているのは同じ行動タイプを持つ敵です、つまり敵のタイプチェンジと同じ事が起こっていると思われます。
その他、無敵フラグの処理が特殊な行動タイプ
- 0x01
- HPが0になるとHP65535/LP255になる、無敵は解除されない。(クジンシー0.5)
- 0x0C-0x12
- 数回(4~6)HP0になるとフリーズして止まる。(七英雄)
「0x01」はクジンシー0.5と同じ状態です。結局無敵状態である事に変わりないので、このHP/LPはあまり意味ない気がする。
「0x0C-0x12」は七英雄が7体揃うまでと同じ状況が起こり、7体全員が集合する状況になるとフリーズします。