したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

データ解析関連スレッド

1名無しさん:2005/05/10(火) 20:02:46 ID:Tv.GD2rg
イベントデータや技術詳細データ、音楽データなどの
解析結果を書き込むスレッドです。

2名無しさん:2005/05/10(火) 20:32:23 ID:Tv.GD2rg
技術詳細データ
必要なぶんだけ抽出してテキストにまとめちゃってください

0X XX XX 8Y 3Z
Y 不明、16の位が8のものは一度に並列処理される?
Z パレット?

AE 0X (0X XX XX 03 3Y) などで読み込んだデータを実行
AF 0X 上のデータを実行した際の画像を消去?
93 B9 01 XX XX ミスならばジャンプ 93が少し後にある場合は微妙に違う?
97 3F 53 飛び道具用意?
97 4C 53
97 64 53 装備武器の画像読み込み
97 DE 53 なぎ払い
97 E2 54 斬撃
97 C4 56 剣を地面に刺す
97 64 57 弓動作
97 BF 58 斬り上げ
97 B6 59 前進
97 14 5A バックステップ
97 6D 5A
97 93 61 瞬間移動前に姿を消す
E6 0B E2 23 63 18 56 97 0C 5F 64 07 残月走る
18 08 97 94 06
18 08 97 9B 06 暗転
18 08 97 A9 06 4C 03 DE 00 明るくする
0A 20 53 矢動作
0A 1A 72 地走り衝撃波
0A 45 7B 残月土埃
0A 8B 7B 残月斬撃(斬り上げ)
63 XX XX 効果音ループ
64 07 効果音消去
66 18 33 飛行音ぽい
66 18 57 敵チャージ音
65 18 69 流星ジャンプ音
65 19 45 棍棒ヒット音
66 18 70 薪割りヒット音
F6 40 C4 0F 20 97 74 5A 敵の斜め上に跳ぶ
C4 08 20 97 54 5A 立ち位置に反動のように戻る
51 02 5A 0A 36 B1 流星衝の光

3修正:2005/05/10(火) 20:37:39 ID:Tv.GD2rg
0X アドレス 8Y 3Z (アドレス 8Y 3Z ・・・)
X 読み込むアドレスの数
Y 不明、16の位が8のものは一度に並列処理される?
Z パレット?

3Zと次のアドレスの間に00をはさむ場合も?

4名無しさん:2005/05/11(水) 22:01:49 ID:GoSgjCDk
回る
XX A9 YY 18 ZZ F7 ?? !! EF ** (FD xx yy) 46 1A [F7のアドレス]

XX中心位置
F1自分
F2敵

A9 YY, 円の大きさ40-60
18 ZZ, 繰り返し回数
F7 ?? !!, ??速さ !!不明
EF **, 円の形 上位x 下位y
FD xx yy, 移動する
46, 47に変えると敵が回る

5名無しさん:2005/05/12(木) 23:15:11 ID:Dr3WLRQg
>>4
わかりづらい!w

9C 0X YYYY
対象がX+2の時YYYYが呼び出される

40 01 XX ダメージ点滅時のパレット
A5 (A2 XX、A3 XX、23) A6 ダメージ点滅(ミスなら無効)

50 0A AA ストーンバレット岩画像読み込み

3F 80 03(灰色)
3F 80 07(薄灰色)
3F 80 09(黄緑)
3F 80 0A(茶色)
3F 80 0B(赤茶色)
3F 80 0F(白)
3F 80 11(濃灰色)
3F 80 14(濃オレンジ)
3F 80 1E(藍色)
3F 80 29(紫)
3F 80 2A(炎)
3F 80 2E(青)

6名無しさん:2005/05/15(日) 20:37:31 ID:z9/27kCI
一度ランダム分岐をすると武器で分岐できなくなって、
共通斬撃などがうまくいかなくなってしまう・・・

7敵の登場パターン:2005/05/19(木) 23:36:04 ID:AURB83.2
01 左から小刻みに跳ねながら来る
02 上から落ちてくる
03 左から微妙にカーブを描いて着地
04 下から上がってくる
05 左から画面が震えながらゆっくり来る
06 左下から小刻みを震えながら来る
07 右上から    同上
08 右側からくる 術戦車?
09 右側からゆっくり来る
0a バグ
0b フォルネウス アラケス (ズン、ズン、ズンと音を立てながら左から来る)
0c アウナス (全体が歪みながら徐々に容が整ってくる)
0d 夢魔   (アウナスと似た感じだが、歪むのは敵グラではなくエフェクトの方)
0e 初めの鳥のボス
10 あたりを跳ね回る 教授のペット
11 左から急いで出てきて転ぶ 教授のペット
12 あたりを這いずり回る
13 左から出てきて3回ジャンプ
14 左から出てきて大きく一回ジャンプ
15 これ以降は無し? +40hで変身用?詳細不明

8敵の登場パターン:2005/05/19(木) 23:37:12 ID:AURB83.2
00 左から普通に来る

書き忘れました。

9技術グラフィック詳細:2005/05/22(日) 17:09:19 ID:A5NVi2HI
=====================
52 00 24 画像読み込み(スターストリーム)
40 00 XX 明度? 00だと97 BF 06が必要
3F 10 XX パレット
BF 21 1C 自位置が起点に 法則は不明だが値をいじると起点位置がずれたり
BF 29 30 敵位置が起点に
01 68 F7 画像表示(スターストリーム最長状態)
4A C0 01 画像位置補正(数値を増やしていくとX軸方向に移動して、折り返すたびにY軸移動)
4B 21 普通なら01XXXXで画像表示されるのに、これがないと表示されない
=====================

01XXXXは28XXXXにある描画ルーチンを実行する
0AXXXXでデータを呼び出すと、現在の処理と並列して実行される
97XXXXでデータを呼び出すと、それが終わるまで次に進まない&呼び出し先で97XXXXを使うと戻ってこれない

63 XX XX 効果音のパンが中央で演奏される
97 00 00 一回転
BA 01 命中ならば以降を実行
5A 20 自キャラの重なりが奥に
8A 0F キックポーズ
0D 対象(敵限定)が○○(未解析)だと画像左右反転

●ヘッダについてとりあえずまとめ

技発動と0AXXXXで呼び出されるデータの先頭にはヘッダが必要
並列処理数・アドレス・不明1・不明2・キャラ番号・(アドレス〜)の順番
キャラ番号は技発動で呼び出される場合に必要、陣形技以外は00でOK
キャラ番号があっても、ちゃんと0AXXXXで呼び出せる

不明1が0Xだと自動で実行されず、AE XXで実行可能
XXに入る値は、実行中の処理から何個目に設定されているか(一つ前ならFF)
AE XXで実行される処理の最後に96XXXXでループアドレスを指定しておくと、
AF XXがくるまで処理をループし続けることができる

10名無しさん:2005/05/27(金) 13:57:48 ID:Th5xwrhY
28XXXX描画ルーチンについて
01XXXXによって呼ばれる

16*16の画像を格子状に並べて大きな画像を表示させる

/
1Byte目 横の数
2Byte目 縦の数
3以降 1Byte目*2Byte目の数だけ表示画像の番号

00-07 5100XXの画像
08-0F 5101
10-17 5102
18-1F 5103
20-27 5104
28-2F 5105
30-37 5106
37-3F 5107

+40で左右反転、+80上下反転
FFは表示しない

116-912:2007/07/12(木) 04:23:28 ID:W7CmFmb6
ロマサガ2技アニメオフセット
1F0000-1F01FF?(ヘッダ無し)
1-2バイト目 オフセット

オフセットの値に 1F0000 に足した値が技アニメのアドレス
オフセットの並びは多分技ID順


技アニメとかは調べるつもりはないです。

12AL982:2007/10/08(月) 14:28:52 ID:I/L7NsCo
【マップに関して】
マップ定義のオフセット:390040から2バイトずつ(+390000)
定義順は、世界全体を
+--+--+--+--+--+--+
|01|05|09|13|16|18|
+--+--+--+--+--+--+
|02|06|10|14|17|19|
+--+--+--+--+--+--+
|03|07|11|15|xx|xx|
+--+--+--+--+--+--+
|04|08|12|xx|xx|xx|
+--+--+--+--+--+--+
とすれば、01〜19の順で並んでいる。マップ19の後ろはダミーデータ。
なお、
01:小さな村があるマップ
02:ウィルミントンがあるマップ
・・(中略)・・
12:諸王の都があるマップ
13:没マップ1(沼地の廃墟)
14:ラシュクータがあるマップ
15:何もないマップ(水晶の廃墟)
16:没マップ2(魔王の玄室)
17:ムング族の村があるマップ
18:没マップ3(東海)
19:玄城があるマップ
である。
【活用例】
マップ17からマップ16(没マップ3)に移動できるように改造する。
1.
マップ17のデータは
0x399923を先頭に
07
93 2A 11 61 22 00 40 40 00 08 08 10 大草原
92 48 11 81 44 B0 90 40 00 00 10 5C ムング族の村
91 4F 11 00 22 B0 40 C0 00 08 18 1C ネフト族の村
03 FF 16 5E C1 00 10 10 00 02 02 00
03 FF 16 63 C1 00 10 70 00 02 0E 00
03 FF 16 74 F1 00 E8 19 00 1D 03 00
03 FF 16 74 71 00 E8 90 00 1D 12 00
FF
となっているので、FFの前に
>03 FF 16 64 1F 00 18 10 00 03 02 00
>03 FF 16 64 1B 00 90 10 00 12 02 00
を追加。
2.
マップ18及びマップ19のオフセットを編集。

なお、没マップに移動するには
没マップ1:16 55
没マップ2:16 64
没マップ3:16 6F
とすれば良い。
没マップ上の物件を表示するためには、
沼地の廃墟:フラグ1Cの(0x01)を立てる=<35 1C 81>
魔王の玄室:フラグ22の(0x01)を立てる=<35 22 81>
東海:フラグ26の(0x01)を立てる=<35 26 81>

この要領でマップ上に新規物件を追加できる。
ただし、<11 xx>での移動先定義を編集する必要がある。
デフォルトの状態で使用されないマップ上物件、すなわち
ニシコ(移動先:11 93)
エデッサようさい(移動先:11 C1)
ジャングル(移動先:11 80)
アクバー峠(移動先:11 4A)
乾いた大河(移動先:11 E6)
沼地の廃墟(移動先:11 A6)
乾いた大河(移動先:11 E6)
死の砂漠(移動先:11 85)
水晶の廃墟(移動先:11 82)
魔王の玄室(移動先:11 CD)
大草原(移動先:11 61)
ネフト族の村(11 00)
東海(移動先:11 A0)
あたりの設定は編集しても問題ないと思われる。

13AL982:2007/10/08(月) 16:00:50 ID:I/L7NsCo
ずれてしまった・・すみません。
テキストエディタ等に貼り付けてご覧下さい。

なお、2-658氏のテキストによれば
>●シナリオコード11xxのワープ先設定
>xxがワープ先IDになっている。
>ワープ先の設定は3CFB00から5byte単位で並んでいる。
>空きは無いっぽい。
>各byteの意味は以下の通り。
>1byte目 :bit4-7 画面切り替えエフェクト(0=通常:1=落下:2=画面が揺れる?:3=ホワイトアウト:その他未調査)
> bit3 キャラ非表示?
> bit2 音楽変更有効
> bit0-1 切り替え後のキャラの向き
>2-3byte目:音楽ID+マップID(上位6bitが音楽ID。指定できるのは3Fまで。)
>4byte目 :X座標
>5byte目 :Y座標
とのことですので、<11 xx>の移動先設定はわりと簡単に編集できると思います。

↑の書き込みで、表示されない物件からの移動先は編集しても問題ないとか
書いてしまいましたが、東海の<11 A0>とかはイベントで使用されてますね・・
嘘情報書いてしまって申し訳ないです。

14ゴゴイチ:2008/02/28(木) 00:36:53 ID:Si4qroSw
☆特殊エフェクト書式

スタートは28 11 00 or28 13 00
基本的に
52で読んだら(背景#2)28 11 00
53で読んだら(背景#3)28 13 00のようです。

その下に
・01 タイルパターン

・D1,DE 01(半透明処理?違い不明)
DE 01はDE 00で戻す。

・2A 画面の属性?
(02 02半透明?or02 04半透明?or00 01画面を光らせるor 02 84ネガポジ)
一番最後の桁はレイヤーの#に関係?
2B 明るさと色(0x1Fまでが明るさ02赤04緑08青E0白)

・4A(画像位置補正?>>9参照),4B(52なら21,53なら31が続くことが多い)
4C 02(背景#2)or03(背景#3)で表示されなくなる。

・D8,D9など、揺らめき処理か?D8 00で戻す。

等が書いてあり、
閉じるときは28 (17or13) (11or13←最初に00の前に書いた値)

背景#3のものはE0やE2等で表示。パレットは01を使用。

訂正、補足等歓迎です。

15ワグ茄子:2008/02/29(金) 00:19:25 ID:6Tk4PJFI
D2も揺らめき処理でした。D1との違いはわかりません。

16AL982:2008/03/12(水) 00:14:03 ID:eFo9nYxg
2-658氏の拡張パッチにおける新規関数(0D xx)の追加方法
どこにも記述が見当たらないので一応書いときます。

まず、関数のオフセットが0x5AADA0から2byteずつ並んでます。
256個あるので、0D FFまでの新規関数の追加が可能です。
オフセット+0x5A0000が関数のアドレスになります。

次に、オフセットで指定した0x5Axxxxに新規関数を追加します。
メモとしては、$78が読み込み位置を記憶しているので、
もし引数があればこれを加算しながら読み込んでいきます。

関数の最後は、5Cで元の場所に戻ることをお忘れなく。
0xC01C7Aに戻ればとりあえず不具合はなさそうです。

17AL982:2008/04/15(火) 00:25:18 ID:ODLnYKRQ
武器レベルによってエフェクトが変化する技の設定方法
(どこにも記述が見当たらなかったので一応書いておきます)

エフェクト変化技には分身系の技が多いですが、
別に技タイプを分身技(0x1A)にする必要はありません。

ます、技に割り当てるエフェクトオフセットIDを0xFEにします。

エフェクトの分岐条件は、0x17E432から可変長データとして登録されています。
デフォルトでは、5つの技(分身剣、デッドリースピン、ヨーヨー、連射、ジャイアントスイング)が
登録されており、データ並びは、
エフェクト分岐する技ID 1Byte
エフェクトの分岐数 1Byte
エフェクト分岐条件 2Byte×上で設定した分岐数
となっています。
エフェクト分岐条件は、
エフェクト適用レベル 1Byte
使用するエフェクトオフセットID 1Byte
で構成されています。
例えば分岐数を3として、エフェクト分岐条件を<13 31 27 17 FF 32>と設定すると、
武器レベル0〜19まではエフェクト0x31、
20〜39まではエフェクト0x17、
40〜50まではエフェクト0x32が使われます。
最後の分岐条件のレベルは、0xFFを指定します(0x32でも大丈夫かも)。

デフォルトでの設定用空き領域は55Byteありますので、
4〜6つ程度の技設定を追加することが出来ます。
書くまでも無いかも知れませんが、
2-658氏の拡張パッチ等が無い素ROMでも設定できます。

18名無しさん:2008/04/19(土) 19:42:22 ID:FzGGobn.
>>16-17
乙です。
AL982氏の技術力に嫉妬せざるを得ない。

どちらも有用そうな情報ですね。
0D xxの新規関数はクリアデータ引継ぎパッチでもこれを使っているんですよね?
AL982氏のテキストは内容の解説が丁寧なので色々参考になります。

このスレッドって他のスレと比べて書き込み件数的には過疎ってるけど
中身はとても充実してて濃いですねぇ。

19AL982:2008/04/28(月) 13:46:53 ID:YYDr15o.
>>18
クリアデータ引継ぎの他、銀行残高の表示にも使ってます。
テキスト参考にして頂いている様で嬉しいです。たまに悪文ですがご容赦を。

前に調べたテキストが発掘されたので貼っておきます。
既出情報だったらご容赦下さい。
用途がセーブデータ改造くらいしかなさそうですが・・まあ一応。

宝箱の開放フラグは、
0x7EF4EA〜7EF509に記録される。ONで空。OFFで未開封状態。
詳細としては、
例えば0x7EF4EAでは
0x01→フラグ00、0x02→フラグ01、0x04→フラグ02、0x08→フラグ03
0x10→フラグ04、0x20→フラグ05、0x40→フラグ06、0x80→フラグ07
というようにビットごとに7EF509まで順に対応してます。
各宝箱とフラグ、アドレスの対応関係については
宝箱フラグ.txtに記載しましたのでそちらを参照下さい。

なお、合成術の奥義書や罠などのイベントが割り当てられた宝箱の開放フラグは
宝箱を何回開けてもONになりません。

20AL982:2008/05/09(金) 14:07:19 ID:uTwOSPJE
マップ関連の覚え書
(私の環境ではwikiを更新できないのでここに書かせてもらいます)

・諸王の都系ダンジョン
 石像の炎、床から出てる光みたいなのを動かすためのアニメーション設定は
 F7 20 00 F8 8D FE 41 81 FE 40の4つ。
 2-658氏のサブマップ解析メモによると、アニメーション設定のバイト数は各2バイトとなっているが、
 3バイトになることもあるみたい。
 上の例だと、<F7 20><00 F8><8D FE 41><81 FE 40>の4つに分けられる・・と思う。
 炎の周りのぼんやりした明かり等はレイヤー3を利用するため、2-658氏のツールでは対応不可。
 参考までに、石像の炎の周り用のぼんやりした明かりはID=62、床から出てるライトっぽいのはID=61。
 これらのオブジェクトを配置した場合、ブロック1の禁止操作などを<60>にしないと
 キャラクターの背面に表示されてしまうので注意。

21AL982:2008/05/09(金) 14:15:43 ID:uTwOSPJE
マップ関連の覚え書2

・魔王殿系ダンジョン
 床から生えてる黒い石柱、壁に点いてる明り、ワープ用魔方陣を動かすための
 アニメーション設定は、全部で5つ。どれがどれに対応してるかは未確認。
 おそらく、<90 80><9C 20><02 FC 4A><05 48><05 FC 52>という風に分けられる・・と思う。
 ここでもアニメーション設定は一部が3バイトに。

・アビス系ダンジョン
 ロマサガ3ラストダンジョン。
 ここのオブジェクトは、進入禁止が設定できないものが多いため、
 マッププロパティ側で設定してやる必要がある。
 具体的には、プロパティデータのブロック2を
 <1E 1E 01 FF 5A 02 01 09 01 FF 9C 0D>
 にする。これで足場からキャラがはみ出ないようになる。

22AL982:2008/05/09(金) 14:26:52 ID:uTwOSPJE
マップ関連の覚え書3

・洞窟寺院跡系ダンジョン
 柱についてる光球を動かすアニメーション設定は
 <49 82> <32 76> <04 24> <07 24>
 の4つ。全部2バイト。上の2つの書き込みでも同じことが言えますが、
 2-658氏のツールでアニメーション設定を追加する場合は、
 バイトの並び順を逆にして入力して下さいね。
 ここで示しているのは、あくまでもROM内でのバイト順です。ご注意。

・その他1
 サブマップ設定のフラグ2の0x01を立てた時に設定可能になる2バイトの不明データを<1A 00>にすると、
 移動時に必ずアビスでのワープエフェクトが発生するようになる。
 ただしブロック1の「禁止操作など」を0x20にしないと正常動作しない場合がある。
 夢魔イベント時のエフェクト(主人公の周りに円形を表示してそれより外側をぼやかす)等もここで設定できる。
 (夢魔イベント時のエフェクトは<1C 00>)

・その他2
 アニメーション設定に<00 8C>を追加すると、
 画面全体が波打つようなエフェクトを常に表示するようにできる。
 例:死の砂漠、諸王の都(外)

23AL982:2008/06/18(水) 07:09:10 ID:kNSLXtE.
埋もれてるので一旦あげときます。

■地方マップデータの設定について
wikiの記述が一部誤ってるのでここで訂正しておきます。
(私の環境ではwiki編集できないので・・)

データの例:4B 3F 0C 6F 44 B0 58 28 00 00 10 5C (アケ)

・1byte目:表示フラグ
フラグIDではなく、フラグID0x00から数えて何ビット目かを表す。
例えば、0x00ならフラグID0x00の0x8。上のデータ例なら0x4B=75なので
フラグID0x12の0x1となります。
・2byte目:地名
・3〜4byte目:イベントID
・5byte目:フォーカす範囲
配置したオブジェクトに対して、カーソルのフォーカすを受け付けて
地名表示&選択でイベント発生する範囲を指定します。
前半4ビットyで方向、後半4ビットでx方向の大きさを指定します。
例えば、0xF2と設定すると縦長のエリアがフォーカすを受け付けます。
町などの通常オブジェクトは、だいたい0x44が指定されているようです。
・6byte目:パレット指定
配置するオブジェクトのカラーパレットを指定します。
0x80を立ててないと機能しない模様。村・洞窟は0xB0、城は0x80。
・7〜8byte目:配置座標
7byte目がx座標、y座標になります。地方マップの左上隅が座標(0、0)になります。
x座標は0x00〜0xCF、y座標は0x00〜0xBFであればマップ内に納まります。
地方マップは若干横長なので、x座標の方が有効範囲が広いです。
・9byte目:不明
基本的に0x00です。
・10〜11byte目:オブジェクト配置位置補正
10byte目がx方向の補正で、11byte目がy方向の補正。
オブジェクトと地名の表示位置が被るのを防ぐ為に使う。
通常のオブジェクトであれば、y方向補正を0x10にしとくと良い感じ。
・12byte目:配置オブジェクト
地方マップ上に表示させるオブジェクトの種類。
対応は以下に示す通り。
IDで指定しているのではなく、読み込み開始位置を指定しているようで、
下記の値以外を設定すると表示がおかしくなる。
0x10=城
0x14=マップカーソル
0x18=大きな町
0x1C=洞窟
0x50=塔
0x54=オーロラ
0x58=雪の町
0x5C=村
0x90=不明
0x94=東方の城
0x98=未使用
0xD0=未使用
0xD4=未使用
0xD8=未使用
0xDC=未使用

現状では5つの空きがある模様。
ただし画像データアドレスが不明なので、現状では追加不可。

ところで、16xxで地方マップに飛びますが、
ジャンプ先の設定をどこで行なっているか
ご存知の方いらっしゃいましたらご教授下さい。

24AL982:2008/06/18(水) 07:10:56 ID:kNSLXtE.
上の書き込みですが、
フォーカすを全て片仮名にするとNGワードに引っかかっちゃうんで
わざと一部平仮名にしてます。読みにくいですがご容赦下さい。

25AL982:2008/06/20(金) 14:31:39 ID:qtqBRI0I
■<16 xx>のカーソルジャンプ先定義について
0x390080から2バイトずつ。0x39017Fまで。
<16 00>から<16 7F>まで定義できる。
データの構造は至ってシンプル。
・1バイト目:ジャンプ先の地方マップ
・2バイト目:ジャンプ先となる地方マップ上のオブジェクト
1バイト目に設定する値は、このスレの>>12を参考にしてください。
>>12では各地方マップに01〜19の十進数を振ってますが、
この数値から1引いて16進数に直したものが1バイト目に設定する値と対応します。
例えば諸王の都があるマップは>>12では12なのでこのマップをジャンプ先に
設定したい場合は1バイト目を12-1=11→0x0Bとすればいいわけです。
2バイト目は、地方マップにジャンプした際にカーソルを
合わせておきたいオブジェクトを指定します。
数値との対応ですが、これは>>12で触れている地方マップ設定領域を確認する必要があります。
0x39XXXXで定義されている地方マップ設定領域で定義されている順番が
そのまま2バイト目で指定する数値になります。
ちょっと上手に日本語で説明できてない感じがするので、
>>12で例にとっている地方17:ムング族の村があるマップで考えてみましょう。
>>12で示している通り定義順は大草原、ムング族の村、ネフト族の村(未使用)と
なっていますので、大草原をジャンプ先としたい場合は、
2バイト目に0x00を設定すれば良いということになります。
さらに>>12の地方マップ17を指定するには17-1=16→0x10を1バイト目に設定すればよいので
全体として<10 00>と設定すれば、<16 xx>で大草原にジャンプできるというわけです。
なお、ジャンプ先の地方マップとして指定できるのは>>12からも明らかなように
0x00〜0x12ですが、0x13〜0x1Aでも一応ちゃんと動きます(ジャンプ先は未確認)。
ちなみに0x1Aは没地方マップともまた違った完全未使用マップで、
見た目は地方マップ0x0Aリブロフ&ナジュ砂漠と同じです。用途は不明。
よって地方マップ0x1Aがジャンプ先として設定されている<16 4A>〜<16 50>は
上書きして使ってしまって問題ないと思われます。他にも未使用のものはある筈。
地方マップに0x1B以上の値を指定すると画面がバグります。

26ワグ茄子:2008/07/04(金) 17:57:31 ID:nVxmYe2M
既出かもしれませんが。
イベントコード 4F 35 XX について
画面明るさ調節の様です。
E0(通常の明るさ)〜 E8(半分ぐらい暗い)
で調節

27はにわ好きな人:2008/07/12(土) 23:11:15 ID:EGV7i/O6
トレードかけ引き技、ティベリウス説法(仮)の効果
ランダム(体感で1/2程度)で反発されるか心動かされるかの二択
心動かした場合はこちら側、反発した場合は相手側にゲージが移動
ゲージの移動が通常とは異なり瞬間移動する
まだ余裕がある状態でも心を動かしたらその瞬間にケリがつく場合もある

28AL982:2008/07/14(月) 12:36:54 ID:FQ1sIDYY
■0x2F1CD0 - 0x2F1ECF[0x200Byte]
かけひき技設定:固定長8Byte*0x40(0x00〜0x3F)
1バイト目:不明
2バイト目:値段1
3バイト目:値段2
値段=値段1×値段2
値段2の値の意味:0x01=×2,0x02=×4,0x04=×10,0x08=×100,
0x10=万,0x20=億,0x40=0,0x80=メモリ破壊
4-5バイト目:効果
7バイト目:未使用(全て0)
8バイト目:実行→効果発揮までの時間差
0x00で即効。0x12で1日後に効果発揮。0x07で2日後?

■0x2F1ED0 - 9x2F1FCF[0x100Byte]
かけひき技使用時の表示文設定:固定長4Byte*0x40(0x00〜0x3F)
1バイト目:実行時の表示主語述語タイプ
2バイト目:実行時の表示文ID
3バイト目:効果発揮時の表示主語述語タイプ
4バイト目:効果発揮時の表示文ID
※主語述語タイプ(表示文の前に表示。主語等の設定)
0x00:表示無し
0x02:(主人公)は、(相手会社名)
0x04:社長は、
0x06:(相手会社名)は、
0x08:(主人公会社名)は、
0x0A:(相手会社名)
0x0C:(主人公)は、(相手会社名)
0x0E:社長は、(相手会社名)
0x10:(相手会社名)は、(主人公)
0x12:(相手会社名)は、社長
上記以外の値は使用不可。

ちなみにティベリウス説法(仮)のかけひき技IDは0x05。

29AL982:2008/07/14(月) 13:15:34 ID:FQ1sIDYY
上に関連して。かけひき技表示文IDと内容

0x3D8162 - 0x3D8264 かけひき技使用時の表示文
オフセット:0x3D78FA - 0x3D791C(+0x3D7D00)
ID   オフセット値
0x00   62 04
0x01   62 04   さわやかにほほえんだ。
0x02   6D 04   にプレゼントをした。
0x03   77 04   部下に敵社の悪いウワサを流させた。
0x04   8E 04   ‥‥風が、‥‥くる!‥‥
0x05   9B 04   こんこんと自らの理想と正義を説いた。
0x06   B3 04
0x07   B3 04   牧場から足の速い馬を調達した。
0x08   C9 04   ウラで工作をさせた。
0x09   D5 04   を今夜もてなすように手配した。
0x0A   E8 04   フルブライトに助力を頼んだ。
0x0B   F8 04   気持ち良く高笑いした。
0x0C   08 05   自社のみんなと相談した。
0x0D   18 05   突然雪ダルマの話をした。
0x0E   28 05   せきを立ち帰ろうとした。
0x0F   36 05   自社の物件にネマワシをした。
0x10   48 05   アビスリ一グに資金を要求した。
0x11   5B 05   ぐるぐるとおどった。

0x3D8265 - 0x3D83AF かけひき技効果発揮時の表示文
オフセット:0x3D791E - 0x3D795A(+0x3D7D00)
ID   オフセット値
0x12   65 05   に好感をいだいたようだ。
0x13   73 05   の心づかいに感じ入っているようだ。
0x14   87 05   の悪いウワサを聞きつけたようだ。
0x15   99 05   思わず見とれた。
0x16   A2 05   反発した。
0x17   A9 05   心動かされた。
0x18   B2 05   の命令伝達がすばやくなった。
0x19   C4 05   の命令伝達は混乱しているようだ。
0x1A   DA 05   きのうの夜とても楽しんだようだった。
0x1B   EE 05   フルブライトはやってきた‥そして物静かに語った。
0x1C   09 06   の人々は落ち着いた。
0x1D   16 06   これでいいのだ。
0x1E   1E 06   あせった。
0x1F   23 06   の物件の不信感はあおられた。
0x20   36 06   の物件の不信感はちょっとおさまった。
0x21   4D 06   相談はまとまったようだ。
0x22   5B 06   くりかえし物件に資金を要求しな!
0x23   71 06   用がすんだら、とっととあきらめてくれ!
0x24   85 06   わ〜い
0x25   88 06   つまんな〜い
0x26   8E 06   あきちゃった‥‥
0x27   96 06   をアビスの力をかりておどした。
0x28   A5 06   しかたなくしたがった。
0x29   B0 06
0x2A   B0 06
0x2B   B0 06
0x2C   B0 06
0x2D   B0 06
0x2E   B0 06
0x2F   B0 06

30名無しさん:2008/07/14(月) 23:35:45 ID:J3QKya9s
MMIの波形

55 木琴
5B ピッコロ
5F オーボエ(?)
6B ピアノ
72 ピッコロ(5Bよりくっきりとした音)

調べてみたら7Fまであった。
いっぱいあったが分かったのはこれだけ。

31無名の位:2008/08/08(金) 20:05:15 ID:oC7xtgy2
 >>23追記
・12byte目:配置オブジェクト
起点の設定です。8x8を1単位とし、その位置から32×32の画像を読み込みます。
そのためこれ以外の値を設定すると画像がずれて悲惨な結果を引き起こします。
また、空き領域の関係で新たに作れる地方マップ画像は2つです。
ただしパレットの位置はデバッグでも分かりませんでした。
0x10=城
0x14=マップカーソル
0x18=大きな町
0x1C=洞窟
0x50=塔
0x54=オーロラ
0x58=雪の町
0x5C=村
0x90=不明
0x94=東方の城
0x98=未使用
0x9C=未使用

32AL982:2008/08/09(土) 08:50:33 ID:wIIFRYt6
Macの人氏のEventMethods.txtにも記述が無かったので。
・<4F 3F XX>について
 0x7EEFXXにランダムで0x00〜0xFFの数値を生成します。
【使い方】
・特定の範囲でランダムな数を生成したい場合
 <4F 3F 00>:0x7EEF00に00〜FFのランダムな数
 <40 01 YY>:0x7EEF01に値0xYYを代入
 <4F 23 00 01 02>:0x7EEF02=0x7EEF01×0x7EEF00
これで0x7EEF03(←注意1)に0x00〜0xYY-1(←注意2)の範囲で
ランダムな数値が入ります。この後さらに続けて、
 <40 04 ZZ>:0x7EEF04に値0xZZを代入
 <4F 22 03 04 05>:0x7EEF05=0x7EEF04+0x7EEF03
これで、0x7EEF05に0xZZ〜(0xZZ+0xYY-1)の範囲で
生成されたランダムな整数が格納されます。
ゲーム内では、第3次トーナメントの賞品決定や、
グレートフェイクショーの出現先の決定なんかに使われてます。

33AL982:2008/08/09(土) 09:04:17 ID:wIIFRYt6
需要があるか不明ですが、一応メモ。

■イベント発生からの戦闘回数のカウントの仕方
まず、ピドナ工房での武器防具開発の終了までに必要な戦闘回数は、
武器はイベント0xA87、防具はイベント0xAA3で設定されます。
戦闘回数カウントに用いられるフラグは、武器が[C8]で防具が[C9]です。
必要な戦闘回数はイベント0xB42でカウントダウンされていき、
[C8]もしくは[C9]が0x00になったら開発完了、という流れになります。
戦闘回数カウントは、この開発イベントの仕組みを応用して追加できます。
該当イベントで必要な戦闘回数をフラグに設定し、戦闘後に必ず呼び出される
イベント0xB42から新規イベントに分岐させて、
その新規イベント内で毎回減算していけば良いだけです。
なお、戦闘に勝利した場合のみ戦闘回数をカウントしたい場合は、
退却した時は戦闘終了直後にフラグ[72]の値が0x03になっていますので
減算処理の前に<33 72 XX>で分岐させれば実現できます。
ちなみにゲーム開始からの通算戦闘回数は、
7EF54C-4F:通算戦闘突入回数(戦闘開始時にカウントアップ by イベント0xB41)
7EF550-53:通算戦闘終了回数(戦闘終了時にカウントアップ by イベント0xB42)
に記憶されています。

34AL982:2008/08/09(土) 09:08:10 ID:wIIFRYt6
たいした内容じゃないですが、↑の補足。
1つのフラグを回数カウントに使った場合、
カウントできるのは当然15回までとなります。
しかしながらフラグを2つ以上組み合わせれば、
15回以上のカウントも可能です。

35AL982:2008/08/09(土) 09:17:40 ID:wIIFRYt6
■トレード内の町の発展度(=人口)
トレードによる町の発展とお店の品揃えをリンクさせたり
使い道は一応ありそうかな・・と思ったので書いときます。
0x7ECCE0:バンガード
0x7ECCE1:ヤーマス
0x7ECCE2:ウィルミントン
0x7ECCE3:モウゼス
0x7ECCE4:最果ての島
0x7ECCE5:グレートアーチ
0x7ECCE6:アケ
0x7ECCE7:妖精の村
0x7ECCE8:神王の塔
0x7ECCEA:リブロフ
0x7ECCEB:ピドナ
0x7ECCEC:ファルス
0x7ECCED:スタンレー
0x7ECCEE:ランス
0x7ECCEF:ユーステルム
0x7ECCF0:キドラント
0x7ECCF1:ツヴァイク
0x7ECCF2:ポドールイ
0x7ECCF3:ミュルス
0x7ECCF4:ロアーヌ
0x7ECCF5:シノン
以下、ラシュクータ、ムング族の村、玄城、黄京、ゲッコ族の村
と続きます。
とりうる値は0x00〜0x0Fです。
いくらがんばっても成長度が上がらない場所もあります。最果ての島とか。

36名無しさん:2008/08/26(火) 18:57:57 ID:lRjOAKgg
気付いたので>>31に補足
・12byte目:配置オブジェクト
0x10=城
0x14=マップカーソル
0x18=大きな町
  ・
  ・
0x90=バンガード移動後の壊れた大地でした

37名無しさん:2008/08/29(金) 03:20:19 ID:YcnxXKSU
>>14
のD1の意味が間違ってますね。
「特殊エフェクトのタイルパターン
読み込み時に画像が乱れないようにする」
という命令だと思います。

38AL982:2008/10/05(日) 14:34:07 ID:jtCdLKIE
■戦闘背景の呼び出し
指定したIDによって3パターンあります。
1.ID=0x00〜0x34
通常の呼び出し。
0x280000〜0x28007Fのオフセット値を読み込み、
オフセット値+0x280080のアドレスから背景設定データを読み出します。
背景設定データの構造はまだ未解明です。
オフセット領域は、一応0x00〜0x3Fまでの領域が確保されていますが、
0x35〜0x38は下記の特殊処理のため使用されず、
0x39〜0x3Fはその他のデータ(後述)が足りないため、正しく動作しません。
よって現状正しく動作するのは、背景ID=0x00〜0x38及び0x40〜0x46のみです。
新しい背景を追加する為には、使用領域の変更と処理の改変が必要です。

2.ID=0x35〜0x38
真・四魔貴族戦の戦闘背景呼び出しは別処理です。
0x010F48〜0x010F4Fにある特殊設定(2Byte)を読み込みます。
0x010F48から順番に2Byteずつ0x35〜0x38用のデータが並んでます。
特殊設定の1Byte目は特殊エフェクト、2Byte目は使用する戦闘背景ID(0x00〜0x34)です。
ここの設定が呼び出されると、既存戦闘背景に特殊エフェクトを追加したものが表示されます。
1Byte目の特殊エフェクトの前1ケタは、
0x00:特に無し
0x10:ランダムスクロール(ビューネイ影空中戦)
0x20:早い右方向スクロール(術戦車)
0x30:大きくて荒い波エフェクト
0x40:中くらいの波エフェクト
0x50:遅い右方向スクロールただし背景上部と下部だけ少し早くスクロール(破壊するもの戦)
0x60:細かい波エフェクト
0x70:特に無し
0x80が立ってると何か意味がありそう・・だけど詳細不明
後1ケタはパレット指定。
[関連処理]
$C1/08FE:SBC #$35      A = ID - 35
(略)
$C1/0906:TAX          X = A
(略)
$C1/0909:LDA $C10F48,x   A = [0x010F48+X]
(略)
$C1/0917:LDA $C10F49,x   A = [0x010F49+X]

3.ID=0x40〜
戦闘背景に指定したIDの0x40が立っていると、通常とは違う処理が行われます。
この背景指定処理では、既存の戦闘背景ID(0x00〜0x34)を違うカラーパレットで表示します。
0x010F50〜0x010F5Dにあるのが既存背景呼び出し設定ですが、データが2Byte×7しかないので、
実際に正しく動作するのは、ID=0x40〜0x46のみとなります。それ以上はバグります。
既存背景呼び出し設定の構造は、1Byte目は上記の特殊エフェクト設定と
多分同じで(前1ケタの設定は一部しか動作しません)、
2Byte目が使用する既存戦闘背景IDとなっています。
[関連処理]
$C1/08C0:AND #$3F        A = IDの0x40をOFFしたもの
$C1/08C2:ASL A          Aを2倍
(略)
$C1/08C8:TAX           X = A
(略)
$C1/08CB:LDA $C10F50,x    A = [0x010F50+X]
(略)
$C1/08D4:LDA $C10F51,x    A = [0x010F51+X]

39AL982:2008/10/05(日) 15:15:08 ID:jtCdLKIE
まだまだ分からないことだらけです・・・

■その他の戦闘背景設定関連領域
・0x269800〜0x26AFFF:戦闘背景設定1
1データは0x60バイト(0x20バイト×3の構成)
背景を3つのパーツに分けて設定。チップセットとかカラーパレットとか?
詳細不明。0x20バイトの構造も不明。
領域上は、背景ID:0x3Fまで確保してある。
[関連処理]
$C1/0E14:LDA $E69800,x   A = [0x269800+X]

・0x010E74〜0x010F47:戦闘背景設定2
背景ID0x00〜0x34の背景設定が順に並んでいる。各4Byte。
背景ID0x39〜0x3Fが正しく動作しないのは、この情報が無いため。
1バイト目の前1ケタは、>>38の特殊エフェクト設定と同じ。
後1ケタは詳細不明。
2〜4バイト目は、背景各パーツのチップセットID・・多分。
[関連処理]
$C1/08AB:LDA $C10E74,x   A = [0x010E74+X]
(略)
$C1/0A96:INX           X = X + 1
(略)
$C1/0AF2:LDA $C10E74,x   A = [0x010E74+X]

・0x39AD00〜0x39AFFF:戦闘背景設定3
上のチップセットID(?)に対応して読み込む。
1データ3バイト。構造は詳細不明。
例えば、上で読み込んだチップセットID(?)が0x3Eなら、
0x3E×3=0xBAで、0x39ADBAから3バイト読む。
[関連処理]
$C1/0B0A:LDA $F9AD00,x   A = [0x39AD00+X]
(略)
$C1/0B13:LDA $F9AD02,x   A = [0x39AD00+X]

40AL982:2008/10/05(日) 23:37:00 ID:jtCdLKIE
Min氏の背景資料とかぶってしまった・・・
しかもMin氏のメモの方にここで詳細不明とした情報の
詳細が載っていますので、あちらのメモを主に参照された方が良いです。
こちらは補完というか・・まあ補完にもなってませんが・・
それにしても、これで新規背景の追加の流れができるといいなぁー
Min氏の資料すごいです。乙です!

41AL982:2008/10/06(月) 13:31:06 ID:LQLfePng
ちょっとだけ補足。
戦闘背景IDの0x40が立っている場合は、カラーパレットの読込先が違ってました。
それに伴って>>39の内容を修正&補足。

・0x269800〜0x26ABFF
カラーパレット。背景ID:0x00〜0x34用
[関連処理]
$C1/0E14:LDA $E69800,x   A = [0x269800+X]
$C1/0E18:STA $CA40,y    [0x7ECA40+Y] = A

・0x26AC00〜0x26AFFF
カラーパレット。背景ID:0x40〜0x4A用
実際に使えるのは0x46まで。0x26AEA0〜0x26AFFFは実質上、空き領域
[関連処理]
$C1/0E65:LDA $E6AC00,x   A = [0x26AC00+X]
$C1/0E69:STA $CA40,y    [0x7ECA40+Y] = A

42Min:2008/10/18(土) 12:36:26 ID:n8hem7dI
●別バンクの JSR を実行する方法例

4B         PHK              ;|
62 06 00      PER $0006          ;|
F4 xx yy     PEA $yyxx          ;|(*1)
5C xx yy zz   JML $zzyyxx        ;|(*2)

(*1)yyxx = 別バンクの RTL の場所のアドレス-1
   $C1****のサブルーチン呼び出したい場合で,$C1FFFFにRTL(6B)
   がある場合は, F4 FE FF と書きます。
   (今後一切アドレスが変更されることがないであろう RTL があれば
   そのアドレス-1 を指定してもいいかもしれません。)

(*2)zzyyxx = 呼び出したいサブルーチン(JSR)のアドレス

43名無しさん:2008/10/20(月) 14:51:09 ID:AkwINvuo
■進行中イベントの説明文表示について
ステータス画面から「イベント」を選択すると表示される、
「進行しているイベント」の一覧について、その条件設定など。

・イベント説明文表示条件設定
領域:0x3DFD46〜0x3DFDC0
データサイズ:固定長3バイト
データ内容:
1バイト目=説明文表示の判定に使用するフラグのID
2バイト目=説明文を表示するときのフラグの値の範囲(XYならX〜Yの間)
3バイト目=表示する説明文ID
無改造の状態では、設定0x00〜0x28が使用可能。
0x00〜0x24は使用済。0x25〜0x28は未使用。
0x057B53の値が総設定数になっているので、元仕様の0x29を変更すれば、設定IDを拡張できる。
現在の使用領域の直後、0x3DFDC1〜0x3DFFFFが空き領域っぽいので
最大で0xE7までの拡張が可能。

・表示判定処理
領域:0x057B56-0x057BAD
無改造の状態では、当然対応しているのは非拡張フラグのみ。
だが、条件設定の1バイト目が0xFFだった時に分岐させる等すれば
拡張フラグへの対応は容易と思われる。
表示する内容は、0x7F4F04から2バイトずつ記憶され、
1バイト目が表示する説明文ID、2バイト目が説明文表示色(0x00=青、0x01=黒)

・イベント説明文本体
領域:0x3D4C40〜0x3D52BF
データサイズ:固定長26バイト
データの内容:言うまでも無く文字列データ
0x00〜0x23が使用済。0x24〜0x3Fが未使用。
後ろに空き領域が無いので、拡張する場合は他の場所に移動する必要アリ。
かにツールで見る場合は、RS3ADFIX.txtに
3D4C40:064:26:イベント進行説明文
を追加すれば、固定長文字列エディタからいろいろいじれます。

44名無しさん:2008/10/27(月) 06:52:13 ID:YzLK46Ug
>>42
なんと、こんな裏技がw
既存のASM解析してるだけじゃ見かけないよなぁ

45AL982:2008/11/12(水) 13:28:51 ID:YH7O1sc6
■Min氏の背景テキストの補完

0x3E9C16-0x3E9C65 の地相設定ですが、
厳密にいうと氏のテキストでいうところの地形IDからではなく、
2-658氏のテキストでいうところのサブマップ設定のデフォルト戦闘背景によって決定されます。
よって、例えばデフォルト戦闘背景が0x0C(町)であれば、
そのサブマップでいくら朱鳥地相をもつ炎系の戦闘背景(例えば火術要塞)にした
固定戦闘を設置しても、デフォルトの町の地相である地相無しが優先されます。

決定は
$FE/C5C5: BF 16 9C FE: LDA $FE9C16,x
で行なわれ、3E9C16+(戦闘が発生したサブマップのデフォルト戦闘背景ID)で
値が取得されます。
データは各々1バイトで、0x00〜0x4F分の領域が確保されています。
データの意味はMin氏のテキストを参照されて下さい。

46AL982:2008/11/18(火) 16:21:44 ID:gTcEmvhE
■戦闘背景小ネタ
0x7E1011の値を
減算 → 背景全体が左から右へスクロール
加算 → 背景全体が右から左へスクロール
vs術戦車の背景で毎処理+0x10してます(=高速スクロール)
加減算値を0x01とかに減らせばまったりスクロールします。
背景を動かす処理は
$C1/CAE2:AD 39 10:LDA $1039 [$7E:1039]
の読み込み以降で分岐してますんで、この辺から追っかければ詳細分かります。
ちなみに$7E:1039には背景動作情報が入ってます。

47AL982:2008/12/05(金) 00:53:15 ID:ASD4b5/w
どこかで見かけた気もするけど・・&今更ですが

■出現モンスターレベル
7EF533:骸骨系
7EF534:悪魔系
7EF535:獣系
7EF536:魚系
7EF537:獣人系
7EF538:植物系
7EF539:水棲系
7EF53A:精霊系
7EF53B:ゾンビ系
7EF53C:両棲系
7EF53D:蛇系
7EF53E:無機質系
7EF53F:昆虫系
7EF540:有翼系
7EF541:亡霊系
7EF542:妖精系

48AL982:2008/12/05(金) 01:06:04 ID:ASD4b5/w
■ステータス画面の表示に関するメモ
[ROM]
05E84D-05E864:アイコン表示設定(各2バイト)
2DA000-2DB3FF:ステータス画面で使用されるアイコン(0x40バイト × 80チップ=0x1400バイト)
※銃追加後で、新規追加できるアイコン枠は残り4。
[RAM]
7E2000-7E2200:ステータス画面上のスプライト表示(各4バイト)
  7E2128:キャラクターの装備武器1つ目
  7E2148:持ち物リストの1番上
[VRAM]
C000-C9FF:キャラクター画像
CA00-DFFF:ステータス画面用アイコンチップセット
E000-EFFF:ステータス画面背景用チップセット

アイテム個別アイコンを実現したかったが、
アイコンをスプライト上に表示している限り、あと4つしか追加できない。
背景3とか4が未使用なので、ここに表示できれば拡張できるかな?
でも方法が分からない・・

49AL982:2008/12/05(金) 18:08:36 ID:ASD4b5/w
まずは訂正をば。↑の書き込みの
>>銃追加後で、新規追加できるアイコン枠は残り4
とありますが、嘘でした。のこり1です。

[RAM](もうちょっと詳しい内容)
*7E2000-7E21FF:ステータス画面表示内容(スプライト)4バイトデータ×128個
*7E2000 :矢印ポインタ
*7E2004-7E2123:キャラグラフィック
・装備画面時
*7E2128- :装備の1番上。以下、4バイトずつ武器防具合計8個
・個別ステータス表示時
*7E2128 :技レベル(剣のアイコン)
*7E212C :技レベル(斧のアイコン)
*7E2130 :技レベル(槍のアイコン)
*7E2134 :技レベル(弓のアイコン)
*7E2138 :技レベル(拳のアイコン)
*7E213C :LVアイコン(剣用)
*7E2140 :LVアイコン(斧用)
*7E2144 :LVアイコン(槍用)
*7E2148 :LVアイコン(弓用)
*7E214C :LVアイコン(拳用)
*7E2150 :術レベル(地術のアイコン)
*7E2154 :術レベル(天術のアイコン)
*7E2158 :LVアイコン(地術用)
*7E215C :LVアイコン(天術用)
*7E2178 :王冠(技・術は同じアドレス)
・持ち物一覧表示時
*7E2148-7E2167:持ち物一覧(1ページに8アイテム)
*7E2190- :小さいタイトル背景画像 (持ち物・進行しているイベント・環境設定)

4バイトの情報は、X座標、Y座標、チップID、反転情報+パレットで構成されてます。

装備画面及び持ち物画面と、その他の画面状態によってVRAMの内容を変えて表示すれば
表示できるアイコンの種類を拡張できないかなーと模索中。
実現できれば、17種類のアイコンが追加できそう。中途半端と言わないで・・

50AL982:2008/12/18(木) 12:32:03 ID:kp6jhZj2
■17 xx処理についてのメモ
17 xx処理を実行するサブルーチンのアドレスは
000B0ABから2バイトずつで定義されています。
たとえば、17 01処理なら00B0AB+1*2=00B0ADがアドレスになっていて、
値は<B7 24>ですから、00B724からが17 01処理を行うサブルーチンということになります。
具体的には、
(*7ED6BEには17 xxのxxの値が入っている)
$C0/B1B6 B9 BE D6  LDA $D6BE,y  17 xxのxxを取得
$C0/B1B9 C2 20     REP #$20
$C0/B1BB 29 FF 00   AND #$00FF
$C0/B1BE 0A       ASL A      xxの値を2倍
$C0/B1BF AA       TAX       A→Xに値をコピー
$C0/B1C0 E2 20     SEP #$20
$C0/B1C2 7C AB B0  JMP ($B0AB,x)  00B0AB+xx*2のアドレスに格納された値を読んでそこにジャンプ
という処理で17 xxが実行されるようになっています。

51ゴゴイチ:2008/12/21(日) 19:32:28 ID:SkjcgRtc
※ 戦闘中のパレット解析
(◆VhUe6O5okQ氏のメモに加筆)

00
01 (剣斬撃の剣の軌跡などに一部使われている)
02 背景
03 背景
04 背景
05 敵1(B8のとき)
06 敵2(B8のとき)
07 敵3(B8のとき)
08 味方1
09 味方2
0A 味方3
0B 味方4
0C 味方5
0D 敵1(B8以外のとき)  80
0E 敵2(B8以外のとき)
0F 敵3(B8以外のとき) 81
10 読み込み用パレット(画面に表示はできない?)

・使用できるのは00(どの技も),01(武器を使わない技だけ)
80,81(ともにB8命令を使った場合)の4つか?82はバグる。
・42命令で使用される武器のパレットはどこだろう?
 →武器グラ固有化はできるか?8色位使えたら個別化できそうだが。
・05 06 07はB8を使わない命令ならバックアップ→戻すで
 いまのところ使用可能。(不具合があるかもしれない)
・敵の色を変える処理は、B8を使ったときだけ有効。
 →B8を入れてない時でも変えられれば、エフェクトの幅がかなり広がる。

52Min:2009/03/03(火) 00:12:47 ID:WcGJgizM
■ロマサガ1のマップの展開方法のメモ
ロマサガ1のマップの圧縮は普通のゲームと違い、
ペイントの様なソフトを使って絵(マップ)を描き終えるまでの
履歴を一覧にしたようなものになっています。
(なのでマップ変更や新規作成が難しいです)

●オイゲンシュタットの例
・[5C 21 14 1C 6F]
座標(0x21,0x14)から半径 0x1C の円周を 0x6F(灰色の床) で埋める。

・[4C 0C 08 36 0B 03]
左上の頂点の座標を(0x0C,0x08)、右下の頂点の座標を(0x36,0x0B)とした
長方形を考え、その長方形をすべて 0x03 で埋める。

・[2C 0C 0A 0C 34 08]
座標(0x0C,0x0A)から座標(0x0C,0x34)までの直線を 0x08 で埋める。

53転載:2009/06/06(土) 23:02:52 ID:qg057vnI
RS1
背景画像の属性

マップ画面を構成する128種類のタイルの設定
画像と属性の二種類を確認し、
画像は、0xCA800〜0xCC0FF
2byteで一つのタイル
それが 128wordで一つのマップ分
それらが19のマップ群について存在する。

属性は、0xCC800〜0xCE0FF
ブロックの構造は画像と同じ
各タイルについて、
侵入の可不可・レイヤの重ね合わせ・階段接続などの
情報を持つ。

例えば、最初のブロックはクリスタルシティや
アルツールのマップ群に対応し、
通常の平地は0x0140
木の根や壁など侵入できないタイルは0x00E0
水面など平地から直接移動できないタイルは0x0D80
等のように設定されている。

これらを0x0140にすれば、一応は障害物を
無視できたりする。

ただしマップ移動の先が水域だったりした場合
立ち往生する可能性がある。

PT外成長で火の習得術法が変化する件のデバッグ
Code1E処理なので既知かもしれませんが。

アドレス0xE9250(ヘッダなし)の内容を0x13 -> 0x12に変更
これにより、術法力の成長ルーチンの終了判定を
一つ前にしています。
ワークメモリの内容が0x09なら火、0x0Aなら水…
0x11で魔、そして0x12が幻に対応し、
そこで法力成長判定が終わります。

おまけ
0xE908Dの内容を0x12 -> 0x10に変えると、
HP成長の抵抗が最大HPでなく現在HP依存に。

没マップ?
○ ゲーム中使われていないと思われるマップスクリプト。

0xB6E81,0xB6ED9,0x04 セケト宮殿に酷似した建物
0xBFDDE,0xBFDF5,0x?? `SQUARE
0xBFE7E,0xBFE8D,0x0C 落とし穴?
0xB5A3F,0xB59E4,0x?? デバッグルームの名残か?移動トラップだけが配置されている。
0xBFEB7,0xBFEB9,0x?? 同じく移動トラップだけが配置されている。

○ 行って見るには?

マップ指定は段階かあり、
0xCE800 から4byte単位で、イベントコード0x0500~0x08FFに対応する
NPCシンボルを含むマップ指定コード、レイヤー、座標が記されている。

0xC0000からはマップ指定コードに対するオフセットテーブル
対応する実データが0xC0228以下にある。
既知の通り、このマップシンボルデータは、
2byte:前景のマップスクリプトアドレス(0xB0000相対)
2byte:背景のマップスクリプトアドレス(0xB0000相対)
1byte:マップ群に対応したスプライト対応コード
等が並んでいる

で、アルツールのシンボルデータは0xC0BCD~にあり、これを変えてみる。
0xC0BCD : 0xE9 -> 0x81
0xC0BCE: 0x24 -> 0x6E
0xC0BCF: 0xAF -> 0xD9
0xC0BD0: 0x25 -> 0x6E
0xC0BD1: 0x00 -> 0x04

54名無しさん:2009/09/24(木) 23:02:31 ID:q5knCPHU
構造体では?になってたので一応。

敵技データの特殊効果の0x40は、魔王の盾が有効かどうかのフラグです。
立てておくと魔王の盾で防げます。
立てないと魔王の盾をもってしても防げない攻撃になります。

以下おまけ。どこかに書いてあったらごめんなさい。

戦闘中の行動キャラのデータ取得方法
基本は
A0 XX 00 LDY #$00XX
B1 B8 LDA ($B8),y
で取得する。取得したいデータによってXXの値を変えればいいだけ。
XX=1A:現在WP
XX=1B:最大WP
XX=1E〜24:基本能力値(腕力〜魅力)
※基本はステータス画面で表示されてる値。素早さのみ装備重量で減算された値。
XX=25〜29:各武器レベル
XX=64:盾・ガーダー回避率
XX=65:盾・ガーダー有効性
XX=66:盾防御力
XX=67〜6D:現在能力値(腕力〜魅力)
※補助術等によって基本能力値から増減した結果の現状値。ダメージ計算等にはこちらが使われる。

55名無しさん:2010/05/30(日) 16:34:58 ID:Xg1mlSY2
.

56名無しさん:2019/02/25(月) 23:41:41 ID:auCNA3c6
もう誰も見てないと思いますが・・・
$00B06Bから64バイト(2バイト×32)はイベントオペコード(00〜1F)のオフセットのようです。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板