» 您尚未 登录   注册 | 社区银行 | 社区婚姻 | 社区成就 | 帮助 | 社区 | 无图版


火花天龙剑 -> 皇家骑士团 -> SNES逆汗解析・改造入門(只翻译了部分>_<)+皇家骑士团2 ROM/RAM资料
 XML   RSS 2.0   WAP 

本页主题: SNES逆汗解析・改造入門(只翻译了部分>_<)+皇家骑士团2 ROM/RAM资料 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
hkk333



该用户目前不在线
级别: 火花会员
编号: 17693
精华: 1
发帖: 258
威望: 5 点
配偶: 单身
火 花 币: 24571 HHB
注册时间:2004-05-11
最后登陆:2017-10-14
查看作者资料 发送短消息 引用回复这个帖子
SNES逆汗解析・改造入門(只翻译了部分>_<)+皇家骑士团2 ROM/RAM资料

SNES逆汗解析・改造入門

アセンブラに関する資料は見かけるものの,
具体的な解析手法を公開しているサイトはほとんど見ないので作ってみました.
まー私自身大した知識や技術があるわけではないので,逆汗初心者向けです.


この文章について
 この文章はSNESのROMを対象にして逆汗解析をしたり改造をしたりするためには
 作業をどのように進めていけば良いのか,を具体的に説明することを目的としています.
 前提的知識としてはゲイムのお部屋の「2から始める改造講座」をなんとなく理解できるくらいを想定して書いています.


 §1 基礎知識(の中の基礎)
  1.1 逆汗解析とは何ぞや
   コンピュータはCPUによって動作しているわけですが,そのCPUには固有の機械語があります.
   また,機械語の命令に一対一対応している言語をアセンブリ言語と呼びます.
   プログラムというものは人間のわかりやすい言語(高級言語)でソースコードを書いて
   それを機械語へ変換(コンパイル)するとプログラムとしてコンピュータ上で動作するようになります.

   で,ここでの本題である逆汗解析とは
   「機械語をアセンブリ言語に変換(逆アセンブル)し,アセンブリ言語でプログラムを理解してしまおう」というものです.

  1.2 65C816アセンブリについて
   1.1では「CPUには固有の機械語がある」と書きました.
   SNESのCPUは65C816と呼ばれるものですが,もちろん65C816にも固有の機械語がありアセンブリ言語(65C816アセンブリ)があります.
   SNESのROMを逆汗解析をするには,当然,65C816アセンブリについて理解していなければなりません.

   65C816アセンブリに関する資料は,このサイトのトップページのリンクから辿れば見つけられるはずです.
   入門用としてはAssemlyTutorialが非常に良く纏まっているのでお勧めです.
   資料を精読しなくてもこれ以降の文章は理解できるように書くつもりですが,なるべく資料には目を通しておくと良いでしょう.
   以下,65C816アセンブリに関して知っておくべき情報をまとめておきます.

    1.2.1 レジスタとそのbit切り替えフラグ
     Resistとは「保持する」という意味で,Resisterはつまり「何かを保持する存在」のこと.
     アセンブリ言語で何を保持するかって言ったら値に決まってます.
     そんなわけで,レジスタは値を保持しています.大雑把に言えば変数みたいなもんです.

     とりあえず覚えておいてほしいレジスタはA(アキュムレータ)やX,Y(インデックスレジスタ),DB(データバンクレジスタ),P(ステータスレジスタ).
     この中でA,X,Yレジスタだけは保持できるバイト数(8bitなら1バイト,16bitなら2バイト)をフラグによって切り替えることができます.
     AレジスタならばMフラグ,インデックスレジスタはXフラグです.
     んで、このフラグの切り替えは↓に出てくる「REP」「SEP」によって行います.
     経験上Aレジスタの切り替えがほとんどなので,AレジスタはREPで2バイト,SEPで1バイトと覚えておけば事足ります.

    1.2.2 ニーモニック
     ニーモニックとはアセンブリ言語の各命令のことです.65C816のニーモニックはここで網羅されています.
     とりあえず必要なニーモニックは,

      LDA,LDX,LDY :各レジスタに値を読み込む
      STA,STX,STY :各レジスタの値を書き込む
      JSL,RTL :24bit(3バイト)アドレス指定の関数呼び出しと呼び出し終了
      JSR,RTS :アドレスの下位16bit(2バイト)指定関数呼び出しと呼び出し終了.上位8bitのバンクはDBレジスタを使用
      REP,SEP :M,Xフラグの切り替え
      TDC :Aレジスタを初期化※
      EA :何もしない

     あたりでしょうか.詳しくは資料で探してください.
     ※ほんとは「Dレジスタの値をAレジスタに書き込む」のだけど,Dレジスタの値が0以外になるのを今まで見たことがない.

    1.2.3 アドレッシングモード
     アセンブリ言語では,メモリアドレスを指定する方法が様々あります.これらの表記方法を総称してアドレッシングモードと呼びます.
     これはかなり重要なんですが,まぁ,dis65816のコメントを見ればなんとなくわかるでしょうからここでは説明しません.

   1.3 メモリマッピングとメモリ/ROMアドレス
    1.2.2で「バンク」という単語が出てきましたが,これはXX:YYYYというアドレスがあったとしたらXXを指す言葉です.
    YYYYの方はオフセットだったかな.

    それはさておき,SNESのメモリ領域は00:0000-FF:FFFFまででこの中にROMがロードされます.
    メモリ中のROMの位置はROMの種類(LoROMとかHiROM)によって異なります.
    Tactics OgreやStar Ocean(※実はHiRomでした。勘違い)はLoROMであります.これとか参考にどうぞ.
    ここではLoROMの場合のメモリアドレスと実際のROMアドレスの変換方法を書いておきます.

     ROMデータはメモリの各バンクの8000~FFFFに入ってます
     ROMの0000~FFFFまでだったら、メモリでは2バンク分必要ということになります
     (バンク$00h~$3Fhまでの話だけど、まぁ特に気にする必要はない)

     で、具体的にどうやって変換するかと言うと

     メモリアドレスがXXYYYYだったとしたら
     XX-80してこの値が偶数だったらYYYY-8000、奇数だったらそのまま
     次にXX-80の値を2で割る
     これで出せます

     例を示すと、88C75Bなら
     88-80=8は偶数なのでC75B-8000=475B
     8/2=4なのでROMアドレスは4475B

     逆変換はxxyyyyだとしたら
     xxを2倍して80を足す
     yyyyが8000以上だったらxx*2+80+1、7FFF以下だったらxx*2+80のままyyyy+8000

    よくわかんなかったらThe Rom Hacking Repositryで手に入れられるLunar Addressを使えば手っ取り早いでしょう.



 §2 必要なTOOL
  2.1 SNESエミュ本体
   これがないと始まらない.ここでは「SNESGT Ver.0.163a」を使います.
   ここ見るような人なら使い方はわかるだろうから説明省略.

  2.2 SNES用逆アセンブラ
   ここでは「dis65816 Ver1.04」と「TRaCER」を使います.
   1.2.1で書きましたが,Aレジスタは保持できる値が1バイトか2バイトで変化します.
   Aレジスタに数値を読み込ませる場合,指定する数値も1バイトか2バイトで変化させなければなりません.
   ここが逆アセンブラがコードを読み間違える原因の一つです.
   これに対処するためには,逆アセンブラでAレジスタを1バイトで読ませた時の結果と
   2バイトで読み込ませたときの結果の二つを用意しておいて,両方を見比べましょう.

    2.2.1 dis65816
     dis65816はREP/SEPによってMフラグを切り替えながらコードを読み込んでくれて,
     さらに,結果の分割出力,コメント追加など色々便利なので,こちらをメインにして使っていくと良いでしょう.
     dis65816の使い方は,ROM名を"rom.smc"に変えてから"dis65816 rom.smc"で実行すればOK.
     LoROMならばdis65816_2.exeの方で起動すると,アドレス指定がROMアドレスと同じになります.

    2.2.2 TRaCER
     TRaCERの方は結果を分割できないので,手直し用に使うと良いと思います.
     dis65816は基本的にM,Xフラグ共に16bitで読み込み,TRaCERは逆に8bitで読み込むので.
     TRaCERの起動は基本的に"tracer -o -i ROM名"で,ROMがHiROMなら"-h",
     ROMにSMC/SWCヘッダがついているようであれば"-s"のオプションを加えると良いでしょう。


  2.3 SNES用CPUトレーサー
   「Peer's Snes9x Tracer v1.43-dev ep8」と「Snes9x 1.39Mk3b DOS Version with GRIP support v2」を両方紹介しておきます.

    2.3.1 Peer's Snes9x Tracer
     SNES9xにCPUトレース機能がついた代物です.使い方は簡単なので説明省略.
     (設定の詳細がよくわからん・・・)

    2.3.2 Snes9x 1.39Mk3b DOS Version
     厳密にはデバッガと言ったほうが良いでしょうね.
     はっきり言って使いづらいです.でも個人的には↑よりもこっちの方が好き.
     使っていると「逆汗解析してるんだ」って実感が湧くから(笑
     Peer's Snes9x Tracerと比べて違うところはCPUログを出力する際,DBレジスタとスタックポインタも出力してくれるところ.
     良い点でもありますが,出力ファイルがでかくなってしまうという諸刃の剣.
     あと,Peer'sの方で「Trace」(「Trace All」じゃない方)でログ取りすると,
     ループ部分は記録されないのでかなりログが小さくなります.
     readmeは付属してないので「DOS版Snes9xの本家最終版であるv1.26b(s9xd126b.zip)をどこかからか拾ってきて,
     その中のREADME.TXTを参照する。」(と「-out of date-」の中の人から教わりました.謝謝.)
     詳しくはs9xd126b.zipの中のreadmeを見てもらうとして,ここでは必要最低限のことだけ説明しておきます.

      2.3.2.1 起動
       基本的にはSnes9x.exeにROMを放り込めば勝手にフルスクリーンで起動します.
       コマンドラインを指定して起動する場合,
       DOSプログラムのショートカットであるPIFファイルでコマンドラインを決めようにも,
       何故かプログラムのタイトルが変なことになって設定できないため,
       コマンドラインが指定できるランチャーに登録して起動しましょう.
       高速で動作させたければ,"-f ?"(?はフレームスキップ数.)を指定してください.
       又,デバッグモードで起動させたければ"-d"で.
       あと,セーブデータ(SRMファイル)は同フォルダ下の"snesnaps"フォルダにいれましょう.

      2.3.2.2 操作
       キーボードのみで操作します.
       設定を変えられないのが使いづらいところ.

       ・エミュレート画面での使用キー
        ↑ :↑ボタン
        ← :←ボタン
        ↓ :↓ボタン
        → :→ボタン
        D :Aボタン
        C :Bボタン
        S :Xボタン
        X :Yボタン
        Z :Rボタン
        A :Lボタン
        Enter :Startボタン
        Space :Selectボタン
        Esc :プログラム終了
        F1~F10 :ステートロード
        Shift+F1~F10 :ステートセーブ
        Alt+F1 :デバッグ画面へ切り替え
        Alt+F2 :ファイルを選択してステートロード
        Alt+F3 :ファイルを選択してステートセーブ

       ・デバッグ画面でのコマンドライン
        ? :コマンドラインヘルプ
        t :現在位置のコードを実行
        s :現在位置のコードをスキップ
        T :CPUのトレースOn/Off(ログをtrace.logに保存)
        bs #n $XX:XXXX :nは0~4,$XX:XXXXはブレークポイントを仕掛けるメモリアドレス
        bs #n :#nのブレークポイントアドレスを消去
        g :エミュレート画面へ切り替え
        q :プログラム終了


  2.4 バイナリエディタ
   ここでは「Stirling」を使います.説明略.
   「環境設定」->「キーアサイン」で「上書き保存」,「元に戻す」,「やり直し」,「マーク登録/解除」,
   「次のマーク位置」,「前のマーク位置」のキー設定をしておくと幸せになれます.

  2.5 メモリエディタ
   エミュでのRAM(改造コード)検索用です.改造コードサーチ機能のついているエミュを使うなら必要ないでしょう.



 §3 解析対象に関する情報収集
  解析をする上で情報は多いに越したことはありません.
  ゲームについてよく知ってるほど解析しやすいですから.
  そんなわけで,そのゲームの改造コード,データベースやダメージ算出式などを載せているサイトは非常に役に立ちます.
  まぁ,ほんとは逆汗解析結果を公開しているサイトを見つけるのが一番良いのですが・・・

  有名なゲームの場合,2chで立ってるスレのテンプレ,またはテンプレサイトを探すと楽に見つけられますが,
  大抵の場合,Googleで検索してれば見つかります.Googleの「検索オプション」を利用したり,
  キーワードを""で一纏めにしたり,正規表現を駆使して活用しましょう.



 §4 逆汗解析
  4.1 置換解析
   準備も整ったということで,いざ解析をやってみましょう.
   解析対象は「Tactics Ogre」です.今んとこそれ以外は解析するつもりはないので.
   (※最近気分変わってきました(笑))

   題名の「置換解析」ていうのは私が勝手に名付けましたが,
   ROMの中のある部分をStirlingで置換してエミュで変化するかどうかを確認して調べたいものを見つけます.
   今回,置換するのはRAMアドレス(改造コードのこと)です.
   大抵,一つのRAMを扱っている関数は複数あるので,複数ある関数の中から実際に使用されている関数を見つけなければなりません.

   では,「殺害人数をカウントする関数」でも探してみましょうか.
   そのためにはまず殺害数を扱うRAMをみつけます.
   んでサーチしみると7E1D4Eがどうやら一人目のユニットの殺害人数であることがわかります.
   RAMの0000-1FFFまでの領域は,バンクが$00-$3F,$7Eまでの間でミラーリングされているので,
   プログラムが扱うのは「1D4E」というアドレスだけになります.

   さて,これから1D4Eを扱っている場所をROMの中から探すわけですが,
   SNESのROMはリトルエンディアン方式なので,実際には「4E1D」という値を探すことになります.
   では,Stirlingを使って4E1Dを別の値で全置換してみましょう.変える値はエミュが落ちないように「0018」あたりにしときますか.
   置換してみると39個も置換できました.ここで一度保存してエミュで確認してみると,見事に殺害人数はカウントされなくなっています.
   この39個の中から1箇所だけ探すために「元に戻す→エミュで実行」を39回繰り返さなければならないかというと,
   もっと少ない回数で見つけることができます.

   全置換した直後のカーソルの位置は「2DEFF9」であると思いますが,
   ここから「12E698」まで元に戻して保存しましょう.Stirlingでこの位置をマークしておいてください.
   なぜこの位置まで元に戻すのかというと,ROMの中でプログラムは大体$10:0000までで収められており,
   それ以降はグラフィックや音楽などのデータだからです.
   (これはTactics Ogreの場合ですが,前半プログラム後半データの傾向はどのROMも同じだと思われます.)

   再びエミュで確認してみると,まだ殺害人数は変化しません.ここまでで置換してあるのは残り12箇所です.
   では次に,6回元に戻して保存してマークを付けてエミュで確認します.
   そうすると変化する値がおかしいことになりましたが,まだ元には戻ってません.
   次は,前回の半分の3回元に戻す→保存→マーク→エミュ実行をしてみてください.今度は正常に変化するようになりました.
   さて,前々回のマーク位置と前回のマーク位置の間で置換できるのは3箇所だけです.あとは一つずつやり直して確認してみてください.
   3回目でまた再び値の変化がおかしくなります.どうやらここらへんで何かがありそうなのが感じ取れますよね.

   元に戻す/やり直しで半分ずつ絞り込んでいくこの手法は是非とも覚えておいてください.
   どんなに置換回数が多くても「総置換回数≒2^n」となるnの回数だけエミュで確認すれば見つけられるわけですから.
   まぁ,置換回数が多くなるとその半分の回数なんて数えてられないので,
   現在のバンクの位置からその半分のバンクの位置まで,というように大まかで良いでしょう.
   ちなみに,マークを付ける意味は絞り込むんでいる位置がわからなくなるのを防ぐためです.

   目をつけたROMアドレスは6DBF4なので,dis65816の逆汗結果であるrom06.sssをテキストエディタで開いてみましょう.
   6DBE2から6DBFDまでが一つの関数で以下のようになっています.

    06DBE2 DA  PHX
    06DBE3 A5 A3  LDA $A3 ; "A" = $A3
    06DBE5 89 02 D0  BIT #$D002
    06DBE8 13 A6  ORA $A6 "Y"
    06DBEA 91 BD  STA $BD "Y" ; $BD+"Y" = "A"
    06DBEC 2E 1A 4A  ROL $4A1A
    06DBEF D0 0B  BNE #$0B ? -> $06DBFC
    06DBF1 BD 4E 1D  LDA $1D4E "X" ; "A" = $1D4E+"X"
    06DBF4 1A  INC ; "A" ++
    06DBF5 D0 02  BNE #$02 ? -> $06DBF9
    06DBF7 A9 FF 9D  LDA #$9DFF ; "A" = #$9DFF
    06DBFA 4E 1D FA  LSR $FA1D
    06DBFD 6B  RTL

   さて,この中で逆アセンブラの読み間違えている可能性がある箇所があります.

    06DBE5 89 02 D0  BIT #$D002
    06DBF7 A9 FF 9D  LDA #$9DFF ; "A" = #$9DFF

   それはこの二箇所です.両方ともAレジスタに対する処理なので,もしAレジスタが8bitだったら指定する数値は1バイトだけなはずです.
   ここでTRaCerの出力結果で同じ部分を見てみましょう.

    C6/DBE2: DA  PHX
    C6/DBE3: A5 A3  LDA $A3
    C6/DBE5: 89 02  BIT #$02
    C6/DBE7: D0 13  BNE $DBFC
    C6/DBE9: A6 91  LDX $91
    C6/DBEB: BD 2E 1A  LDA $1A2E,X
    C6/DBEE: 4A  LSR
    C6/DBEF: D0 0B  BNE $DBFC
    C6/DBF1: BD 4E 1D  LDA $1D4E,X
    C6/DBF4: 1A  INC
    C6/DBF5: D0 02  BNE $DBF9
    C6/DBF7: A9 FF  LDA #$FF
    C6/DBF9: 9D 4E 1D  STA $1D4E,X
    C6/DBFC: FA  PLX
    C6/DBFD: 6B  RTL

   こちらの方が意味がわかりやすいので,この場合,TRaCerのほうが正しいと思われます.
   このあたりの判断は経験を積むしかないですね.CPUログでいちいち確認するのも面倒ですし.
   では,dis65816の出力結果をTRaCERで手直ししておきましょう.

    06DBE2 DA  PHX
    06DBE3 A5 A3  LDA $A3 ; "A" = $A3
    C6/DBE5: 89 02  BIT #$02
    C6/DBE7: D0 13  BNE $DBFC
    C6/DBE9: A6 91  LDX $91
    C6/DBEB: BD 2E 1A  LDA $1A2E,X
    C6/DBEE: 4A  LSR
    06DBEF D0 0B  BNE #$0B ? -> $06DBFC
    06DBF1 BD 4E 1D  LDA $1D4E "X" ; "A" = $1D4E+"X"
    06DBF4 1A  INC ; "A" ++
    06DBF5 D0 02  BNE #$02 ? -> $06DBF9
    C6/DBF7: A9 FF  LDA #$FF
    C6/DBF9: 9D 4E 1D  STA $1D4E,X
    C6/DBFC: FA  PLX
    06DBFD 6B  RTL

   ちょっと変な感じもしますが,今後このような間違いを訂正する機会は大量にあるので気にしない方が良いです.
   んで,この関数の中で「1D4E」を扱っているのは

    06DBF1 BD 4E 1D  LDA $1D4E "X" ; "A" = $1D4E+"X"
    C6/DBF9: 9D 4E 1D  STA $1D4E,X

   この二箇所でAレジスタに殺害人数を読み込んでその後書き込んでいるようです.
   この関数が明らかに殺害人数を扱っているのがわかりますよね.
   さて,どこかに1D4Eの値を読み込んだ後その値を増やしている命令があるはずです.

    06DBF4 1A  INC ; "A" ++

   この処理は「Aレジスタの値を+1する」という命令で,
   6DBF1から6DBF9の間でAレジスタに対して処理しているのはこれ以外ありません.
   Stirlingで6DBF4をEA(NOP:何もしない命令)で書き換えると,確かに殺害人数がカウントされなくなりました.
   ということで,「6DBE2から始まる関数は殺害人数をカウントする」という事実が得られました.

  4.2 CPUログ解析
   次はCPUトレーサーを使ってCPUログを取りそれを解析をします.
   ここではPeer's Snes9x Tracerを使います.
   まずは4.1の解析をこっちの方法でやってみましょうか.

   殺害人数がカウントされるであろうタイミングの直前で「Trace」 -> 「Trace」を押せばログ取りを開始してくれます.
   殺害人数がカウントされたらもう一度「Trace」 -> 「Trace」でログ取りを終了します.
   そうすると,SRAMファイルのあるフォルダに「TO0000.log」というファイルができているので
   それをテキストエディタで開いてください.

   んで,「1D4E」を検索すると見事に4.1で見つけた殺害人数カウント関数が見つかるはずです.
   正直言って最初からCPUログを使ったほうが楽なことが多いですが,
   まぁ置換解析も使わないわけではないので覚えておいてください.

   もーちょっと解析してみますかね.
   ちょうどTOスレで「Lサイズユニット制限人数」の場所を見つけたいと言ってる人がいたのでやってみましょう.

   とりあえずLサイズユニットを一匹用意してください.
   そして,戦闘マップへ行くなりトレーニングなりで編成画面に持って行きます.
   用意したLサイズユニットを出撃させる直前(Aボタンを押す前)にトレースを開始させ,
   そのユニットが現れたらトレースを終了します.

   さて,今取ったCPUログからLサイズユニットの出撃人数を制限している場所を探すわけですが,
   プログラムで値を制限するには大抵比較命令を行っています.
   但し,比較命令と言ってもCMP,CPX,CPY,さらにアドレッシングモードとかを考慮すると
   命令自体は結構な数なので一々調べるのはめんどうです.
   が,とりあえず命令がどれも「C」から始まるのは間違いありません

   比較命令で比較する値は2もしくは3であると思われるので
   CPUログをテキストエディタ(但し,正規表現検索をサポートしているエディタ.秀丸とか)で
   「(半角スペース)02\tC」で検索していけば「02と比較する命令」は見つけることができます.
   これでダメなら比較値を「03」に変えてみれば良いわけです.

   候補は何箇所かありますが,制限値を比較するのは恐らく1回きりであるため,
   比較命令前後が他と似ていない候補を重点的に調べてみれば良いでしょう.
   正解は一番最初に出てくるであろう

    $89/9230 C9 02  CMP #$02

   です.これはメモリアドレスなので,ROMアドレスのLサイズユニット出撃制限人数は49231となります.

   4.1,4.2で共通しているのは,コードをあまり細かく読んでいません.
   つまり何が言いたいかというと「少しの知識である程度逆汗解析はできる」ってことです.
   あくまで「ある程度」ですが.

(続きはそのうち更新)

[楼 主] | Posted:2006-02-21 08:22| 顶端
hkk333



该用户目前不在线
级别: 火花会员
编号: 17693
精华: 1
发帖: 258
威望: 5 点
配偶: 单身
火 花 币: 24571 HHB
注册时间:2004-05-11
最后登陆:2017-10-14
查看作者资料 发送短消息 引用回复这个帖子


内存资料

0059 BGM
0091 戦闘ユニットID
055D ブルーチームコントローラ1
055E レッドチームコントローラ1
055F ブルーチームコントローラ2
0560 レッドチームコントローラ2
*m = 8bit
0603
0604
0643
0644
0683
0684
06C3
06C4
0703 敵味方別ユニットカラー
0704 ユニットグラ更新用グラフィック表示OFFフラグ?
0743
0743
0744
0783
0783
0784
07C3
*m = 16bit
0803
*m = 8bit
0843
0844
0883
0884
08C3
08C4
0903
0904
*m = 16bit
0943
0983
*m = 8bit
0A03
0A04 キャラx座標
0A43
0A44 キャラy座標
0A83
0A84 キャラ高さ(0.5区切り)
0AC3
0AC4
0B03
0B04
0B43
0B44
0B83
0B84
0BC3
0BC4
*m = 16bit
0C03
*m = 8bit
0C43 ステータス画面上敵味方別ユニットカラー
0C44

16BC 現在位置
16BE マップ番号
16C0 マップ番号詳細
16C2 死者の宮殿階数
16C8 マップx座標の範囲
16CA マップy座標の範囲
16CC 最大ster?
16D6
16EC 選択パネルの範囲2ずつ
16F2
1789 エフェクト番号/埋もれた財宝
178A
178C エフェクト回数?(効果4、範囲8)
178E エフェクト詳細
1790 2A12Aの値
1791 (29F13h)/16 AND 0Fh
1792
17A0 追加効果ID
17A1
17A8
17AC
17AE キャラ(戦闘画面)
17AF クラス(戦闘画面)
17D6 アラインメント(戦闘画面)
17D7 エレメント(戦闘画面)
17FE Lv(戦闘画面)
17FF 取得済Exp(戦闘画面)
1826 Hp(戦闘画面)
184E MHp(戦闘画面)
1876 Mp(戦闘画面)
189E MMp(戦闘画面)
18C6 Str(戦闘画面)
18EE Int(戦闘画面)
1916 Agi(戦闘画面)
193E Dex(戦闘画面)
1966 Vit(戦闘画面)
198E Mem(戦闘画面)
19B6 Luk(戦闘画面)
19B7 忠誠度(戦闘画面)
19DE キャラ状態*3
19DF キャラ状態2?*3
1A06 獲得Exp(戦闘画面)
1A07
1A2E 敵味方(戦闘画面)
1A2F キャラ番号(戦闘画面)
1A56 所属ユニオン(戦闘画面)
1A57 所属民族(戦闘画面)
1A7E 左上の装備 (戦闘画面)
1A7F 右上の装備 (戦闘画面)
1AA6 左下の装備 (戦闘画面)
1AA7 右下の装備 (戦闘画面)
1ACE 1番目の魔法・SP (戦闘画面)
1ACF 2番目の魔法・SP (戦闘画面)
1AF6 3番目の魔法・SP (戦闘画面)
1AF7 4番目の魔法・SP (戦闘画面)
1B1E
1B1F
1B46
1B47
1B6E キャラの向き
1B6F
*m = 16bit
1B96 残りWT
1BBE
1BE6
1C0E
1C36
1C5E
1C86
1CAE
*m = 8bit
1CD6 キャラx座標
1CD7 キャラy座標
*m = 16bit
1CFE 行動ポイント
*m = 8bit
1D26 作戦*2
1D27 作戦対象キャラ
1D4E 殺害人数
1D76
1D77
*m = 16bit
1D9E
*m = 8bit
1DC6 キャラ高さ(1区切り)
1DC7 移動タイプ
1DEE 移動力
1DEF 425ADに対応
1E17
*m = 16bit
1E3E 座標データにおける戦闘ユニットID?
*m = 8bit
1E66 クラス(汎用)
1E67 エレメント(汎用)
1E68 Lv(汎用)
1E69 取得済Exp(汎用)
1E6A Hp(汎用)
1E6C MHp(汎用)
1E6E Mp(汎用)
1E70 MMp(汎用)
1E72 Str(汎用)
1E7A Vit(汎用)
1E74 Int(汎用)
1E7C Men(汎用)
1E76 Agi(汎用)
1E78 Dex(汎用)
1E7E Luk(汎用)
1E7F アラインメント(汎用)
1E83 左上装備(汎用)
1E84 右上装備(汎用)
1E85 左下装備(汎用)
1E86 右下装備(汎用)
1E87 1番目魔法・SP(汎用)
1E88 2番目魔法・SP(汎用)
1E89 3番目魔法・SP(汎用)
1E8A 4番目魔法・SP(汎用)
1E8F 所属ユニオン(汎用)
1E90 所属民族(汎用)
1E9D 忠誠度(汎用)
1E9F キャラ(汎用)
1EA1 天気
1EA3
1EE7
1EF0 使用武器・スペシャルID

7E2000
7E4000
7E31FB 雇用ユニットのクラス
7E3203 雇用ユニットの紹介料
7E3B38 両手アイテム装備フラグ
7E3B39 片手アイテム装備フラグ
7E3B3A 指輪装備フラグ
7E3B3B 兜装備フラグ
7E3B3C 首輪装備フラグ
7E3B3D 鎧装備フラグ
7E3B3E 靴装備フラグ
7EB2A4 効果?
7EB2AC キャラ(編成画面)
7EB2AD クラス(編成画面)
7EB2F2 アラインメント(編成画面)
7EB2F3 エレメント(編成画面)
7EB338 Lv(編成画面)
7EB339 取得済Exp(編成画面)
7EB37E Hp(編成画面)
7EB3C4 MHp(編成画面)
7EB40A Mp(編成画面)
7EB450 MMp(編成画面)
7EB496 Str(編成画面)
7EB4DC Vit(編成画面)
7EB522 Int(編成画面)
7EB568 Men(編成画面)
7EB5AE Agi(編成画面)
7EB5F4 Dex(編成画面)
7EB63A Luk(編成画面)
7EB63B 忠誠度(編成画面)
7EB680 所属ユニオン(編成画面)
7EB681 所属民族(編成画面)
7EB6C6 左上の装備(編成画面)
7EB6C7 右上の装備(編成画面)
7EB70C 左下の装備(編成画面)
7EB70D 右下の装備(編成画面)
7EB752 1番目魔法・SP(編成画面)
7EB752 2番目魔法・SP(編成画面)
7EB798 3番目魔法・SP(編成画面)
7EB798 4番目魔法・SP(編成画面)
7EBA77 スナップドラゴン剣名前の定義
7EBAAA 戦闘時の敵の名前
7EBB54 ユニオン名
7EBB65
7EBD86 年月日
7EBD89
7EBD8A 軍資金
7EBD92 戦死者数
7EBD94 スナップドラゴン剣属性
7EBD95 スナップドラゴン剣WT
7EBD96 スナップドラゴン剣Str
7EBD98 スナップドラゴン剣Int
7EBD9A スナップドラゴン剣Agi
7EBD9C スナップドラゴン剣Dex
7EBD9E スナップドラゴン剣Vit
7EBDA0 スナップドラゴン剣Men
7EBDA2 スナップドラゴン剣Luc
7EBDA3 スナップドラゴン剣攻撃効果
7EBE4C
7EBE4E キャラ
7EBE4F クラス
7EBE76 戦闘ID
7EBE80
7ED2DF 使用アイテム・スペシャルID
7ED2E0 戦闘中の行動
7ED35F MISSフラグ
7ED360 ノックバックフラグ
7ED3DF 指定パネルの位置,マップ座標用[2]
7ED3E1 攻撃効果[2]*1
7ED3E5 追加効果[2]*1
7EF3DF 物理攻撃予想ダメージ
7EF3E0 魔法攻撃予想ダメージ
7EF3E1 攻撃予想命中率
7EF3E3 反撃予想ダメージ
7EF3E5 反撃予想命中率
7EFC79 主人公誕生月
7EFC9F 主人公誕生日
7EFCAC カオスフレーム
7FC800 ster
7FCC00 地形
7FD000 2/4パネルグラフィック
7FD400 パネルグラフィック
7FD800 カーソルの高さ
7FDC00 キャラの位置
7FE000 画面に関して1
7FEC00 画面に関して2
7FF800

*1 効果は4ずつ離れてる.内容的に魔法・SPの効果と同じ
0000 (なし)
0004 (処理停止)
0008 MP追加ダメージ
000C HP追加ダメージ
0010 HP回復? 00に値
0014 MP追加ダメージ
0018 死亡
001C ?
0020 石化
0024 毒
0028 麻痺
002C 睡眠
0030 魅了
0034 石化回復
0038 毒回復
003C 麻痺回復
0040 睡眠回復
0044 魅了回復
0048 WT0
004C クイック
0050 スロウ
0054 ストップ
0058 パワーダウン
005C パワーアップ
0060 ?
0064 ?
0068 ?
006C ?
0070 ?
0074 ?
0078 ノックバック
007C ?
0080 ?
00C0 miss
00C4 HP追加ダメージ
00CC 死亡
00E0 ガード
00E4 LvUP
00E8 HP追加ダメージ
00EC ?
00F0 麻痺回復

00F4(48)より↑危険

*2
00 マニュアル
01 突撃
02 攻撃援護
03 回復援護
04 避難
05 トレジャー拾得
06 待機
07 何もしない
11 鬼神のごとく戦え
12 友の影となれ
13 冥き生命を救え
14 我が魂を惜しめ
15 虎児を得よ

*3
19DE
01 復活
02 石化
04 スタン
08 睡眠
10 毒
20 スロウ
40 クイック
80 ストップ
19DF
01 チャーム
02
04
08
10
20
40 透明
80 ダメージモーション

[1 楼] | Posted:2006-02-21 08:23| 顶端
hkk333



该用户目前不在线
级别: 火花会员
编号: 17693
精华: 1
发帖: 258
威望: 5 点
配偶: 单身
火 花 币: 24571 HHB
注册时间:2004-05-11
最后登陆:2017-10-14
查看作者资料 发送短消息 引用回复这个帖子


ROM资料

D6EB
D6ED
EB96 顔グラフィック
151EB クラスチェンジ画面グラフィック
19D60 19D64 弓の放物線の射出角度?
2263F 22953対応 (((2263Fh)-A953)/2+キャラの向き/2+2)*2で変動(4バイトずつ)
22641 ユニットグラフィック(4バイトずつ)
22642 ユニットパレットかもしれない?
22883 22953対応
22953 22B6E対応アドレス
22B6E
244E7 1EE7対応
244EB 1EE7対応
267F3
28E75
29093
2909D 249AC9対応
29526
29F13 1789/2対応
29F7E エフェクト表示方法
2A054 エフェクト表示回数?
2A12A
2A700
2BD85
306C2
30722
32546 魔法・SP/範囲パネル数
32560 魔法・SP/範囲パネルの位置
334BB 天候/魔法・SPのRa天候補正1?
334C0 天候/魔法・SPのRa天候補正2?
40C32 魔法・SP/範囲の有無
40CC8 魔法・SP/効果
40D5E 魔法・SP/追加効果1
40DF4 魔法・SP/追加効果2
40E8A 魔法・SP/敵味方やアンデッド判定
40F20 魔法・SP/敵味方やアンデッド判定2?
40FB6 魔法・SP/HIT率算出方法
4104C 魔法・SP/追加効果1のHit率算出方法
410E2 魔法・SP/追加効果2のHit率算出方法
41178 魔法・SP/効果値計算方式
4120E 魔法・SP/追加効果値1計算方式
412A4 魔法・SP/追加効果値2計算方式
4133A 魔法・SP/攻撃魔法SPの属性
413D0 魔法・SP/追加効果1の対象変化
41466 魔法・SP/追加効果2の対象変化
414FC 41628対応アドレス
41628 魔法・SP/攻撃力のRaRd補正
4174E 41878対応アドレス
41878 魔法・SP/命中率RaRd補正?
4194E 41A70対応アドレス
41A70
41B07 成仏スペシャルに関わる何か?(ここで成仏と消滅を分類してる希ガス)
41B9D 魔法・SP/敵リーダーに対する効果の有無
41C33 魔法・SP/殺害数カウントする攻撃効果
41C6E EL/アイテムEL補正
41C87 AL/アイテム聖闇補正
41C8D AL/天候補正
41CAB
42665
426E5 クラス/特技修得レベル 1バイト目にスペシャルID、2バイト目に修得レベル
42702 クラス/基本キャラグラフィック
427F2 クラス/ユニットのパレット
428F2 クラス/種族?
429E2 クラス/固有キャラID
42AD2 クラス/初期クラス 凡用クラスは変えない方がいいかも
42BC2 クラス/エレメント
42CB0 クラス/アラインメント
42D9E
42DBE クラス/所持できる魔法の数
42EAD クラス/初期Lv
42F9B クラス/初期HP 2バイト
430BB クラス/HP成長率
4314B クラス/初期MP 2バイト
4326B クラス/MP成長率
432FB クラス/初期STR
4338B クラス/STR成長率
4341B クラス/初期VIT
434AB クラス/VIT成長率
4353B クラス/初期INT
435CB クラス/INT成長率
4365B クラス/初期MEN
436EB クラス/MEN成長率
4377B クラス/初期AGI
4380B クラス/AGI成長率
4389B クラス/初期DEX
4392B クラス/DEX成長率
439BB クラス/初期LUK
43A4B クラス/WT
43ADC クラス/物理耐性
43B6E クラス/風耐性
43BFF クラス/地耐性
43C90 クラス/火耐性
43D21 クラス/水耐性
43DB2 クラス/聖耐性
43E43 クラス/闇耐性
43ED3
43EF4 クラス/ダブルアタック可不可
43FE3 クラス/得意武器
440D3 クラス/ユニット定義??
441C2 クラス/投射タイプ 01 投石 02 手裏剣 03 指弾
442B1 クラス/使用可能魔法タイプ
443A0 クラス/スペシャル1
4448F クラス/スペシャル2
4457E クラス/スペシャル3
4466D クラス/スペシャル4
4475B クラス/移動タイプ
44849 クラス/歩数
44937 クラス/忠誠度?
44A25 クラス/天候耐性
44B14
44D3E アイテム種/処理上での種類
44F0D アイテム種/直接攻撃するフラグ
44F61 アイテム種/投射攻撃するフラグ
45066
45081
4509C
451B9 アイテムパレット
451D9 アイテム/種類
452C9 アイテム/属性
453B9 アイテム/装備部位 01両手武器 02片手武器(盾含む) 03指輪 04頭装備 05首飾り 06体装備 07足装備 08道具
454A9 アイテム/装備部位(リスト) 01頭 02手 03体 04靴 05道具
4557C アイテム/射程
45654 アイテム/重量
4572D アイテム/STR
4580D アイテム/INT
458ED アイテム/AGI
459CD アイテム/DEX
45AAD アイテム/VIT
45B8D アイテム/MEN
45C6D アイテム/LUK
45D4D アイテム/物理RES
45E2D アイテム/風RES
45F0D アイテム/炎RES
45FED アイテム/地RES
460CD アイテム/水RES
461AD アイテム/聖RES
4628D アイテム/闇RES
4646F アイテム/値段(2バイト) 2桁目から
46612 アイテム/STR成長率UP
466E4 アイテム/INT成長率UP
467B4 アイテム/AGI成長率UP
46884 アイテム/DEX成長率UP
46956 アイテム/VIT成長率UP
46A26 アイテム/MEN成長率UP
46AF6 アイテム/LUK成長率UP
46BC5 アイテム/特性(攻)
46CB5 アイテム/使用効果
46D85 アイテム/特性(防) 07恐怖 08野獣 09竜 0A人形 0C対竜 0D対石化 0E対麻痺 0F耐眠 11対異常 12対魔 
46E75 アイテム/特性(常) 01飛行 02ワープ 03溶岩 04水上 05HP回復 06MP回復 07恐怖 08野獣 09竜 0A人形
46F66 アイテム/武器種(射程?) 00通常武器 銃、アイテム含む 01槍 02弓 、凡用銃含む 03鞭
47047 魔法・SP/種類と消費MP
47172 魔法・SP/属性
47208 魔法・SP/射程
4729E 魔法・SP/攻撃方法
47431 魔法・SP/行使可能ユニット
474A1
49231 Lサイズユニット出撃制限人数
57885 アイテム/
582DD マップID算出補数
582F5
58677 58693 地形効果表示(00:表示しない、01:表示する)
58695 5870B 地形効果(風火地水)
5870d 5872a 地形攻撃効果
5872B 攻撃効果65の対天気地形攻撃効果
58730 攻撃効果66の対天気地形攻撃効果
58735 58752 地形防御効果
58753 防御効果65の対天気地形攻撃効果
58758 防御効果66の対天気地形攻撃効果
58DDD 範囲パネルグラフィック?
59911
59695
59F0F 敵雑魚ユニット出撃数
5A18F 戦闘BGM
64279 敵名前アドレス
64F55
6972D 向きによる補正値
6A9AA
6B764
70000 エフェクトデータアドレスその1
780BD
D0880 戦闘マップに関して
D88E4
D894D
D8979
D8911
EA0CC キャラ対応 性別か?
110000 マップデータ1
11C1B5
11C1B7
120000 マップデータ2?
124E38
128000
129C1F マップデータ3
133B85 マップデータアドレス
1E8000 敵ユニットデータアドレス 7EBE76対応
1F4C7D イベントデータ共通部分
1F8003 データアドレス
20533A 敵ユニットデータ共通部分
20CD80 イベントデータアドレス[3]
249AC9 エフェクトデータアドレスその2
2FF994 財宝関連

EEE49 チュートリアル作成関数

03:343B E0 9600   |*ww|      cpx.w   0096h//INT+MEN:150
03:3441 E0 2C01   |*ww|      cpx.w   012Ch//INT+MEN:300

6:CC87 64 00//召喚数カウント用Int+Men値

882A-8946
138837
タインマウスのx,yの大きさ

地形グラフィックID
00 地肌
01 草地
02 道
03 石壁
04 石壁
05 石壁
06 水路
07 不明
08 不明
09 不明
0A 屋根
0B 不明
0C 不明
0D 不明
0E 石壁(水路型)
0F 屋根(煙突付き)
10 石壁
11 石壁
12 石壁
13 石壁
14 不明
15 不明
16 不明
17 不明
18 不明
19 警備灯(障害物)
1A 糸杉s
1B 糸杉s
1C 石灰岩s
1D 石灰岩s
1E 警備灯s
1F 警備灯火付き

地形ID
01 地肌 地+2風-2
02 砂地 水-2火+2
03 火山灰 水-3火+3
04 草地 水+1地-2火-1風+2
05 草むら 水+2地-3火-2風+3
06 雪原 水+2火-2
07 岩場 水-1地+2火+1風-2
08 砂利 水-2地+2火+2風-2
09 荒地 水-2地+2火+2風-2
0A 湿地 水+2地-3火-2風+3
0B 毒カビ 地+2風-2
0C 溶岩石 水-2地+2火+2風-2
0D タール 水-3水+3
0E 氷原 水+3火-3
0F 水路 水+2火-2
10 川 水+2火-2
11 湖 水+2火-2
12 海 水+2火-2
13 溶岩 水-3火+3
14 道
15 石床
16 屋根 水-1地-2火+1風+2
17 石壁
18 空
19 穴
1A 城壁内側
1B 城外
1C 木床 水+1地-2火-1風+2
1D 魔方陣

1E ビルネの木
1F 糸杉
20 ブナの木
21 トネリの木
22 ココヤシ
23 アナナの木* 水+80地+2火-3風-2
24 トチの木
25 バオバの木
26 ダアラの草
27 ウディガ草
28 虫喰い草* 水+100地+2火-3風-2
29 泥穴草
2A イバラ草
2B ワイン樽
2C 水樽
2D 酒樽
2E 船荷の箱
2F 輸送用木箱
30 貯蔵箱
31 衣類箱
32 資材の箱
33 鍵付き木箱
34 石炭岩
35 砂岩
36 黒輝石
37 花崗岩
38 玄武岩
39 ジネの木
3A イチイの木
3B 蛇紋岩
3C れき岩
3D ルクス草
3E ドラン草
3F 警備灯 水+76地+70火-3 進入不可
40 室内灯 水+74地+85火+1風-2 進入不可
41 警備灯
42 室内灯
43 鉄甲冑 水+74地+85火-1風+2 進入不可
44 銅甲冑
45 軽甲冑
46 重甲冑
47 白銀甲冑
48 女神像
49 腐った木 水+60地+70火-3 進入不可
4A 枯れた木 水+65地+75火-3
4B 焼けた木
4C 噴煙
4D 黄水晶
4E 赤水晶
4F 緑水晶 水+65地+50火-3 進入不可
50 青水晶 表示無し 進入可
51 白水晶
52 騎士像 水+65地+90火-1風-2
53 戦士像
54 僧侶像 表示無し 進入可
55 狂戦士像 表示無し 進入可
56 戦士像
57 老人像
58 騎士 水+55地+85火+1風-2
59 戦士 表示無し 進入可
5A 僧侶
5B 盗賊
5C 戦士 表示無し 進入可
5D 魔術師 表示無し 進入可
5E がれき
5F 石柱 地+72火+80風+2
60 壷 表示無し 進入可
61 屋根 表示無し 進入可
62 石壁 表示無し 進入可
63 竜門
64 (表示無し) 地+68火+100風+2 進入不可
65 移動
66 行動 表示無し 進入可
67 待機 
68 環境
69 直接攻撃
6A 投射攻撃
6B 魔法 表示無し 進入可
6C スペシャル 表示無し 進入可
6D アイテム
6E 説得
6F (表示無し) 進入可
70 中断
71 オプション
72 終了
73 (表示無し)
74 ショップ
75 (表示無し)
76 編成
77 (表示無し)
78 データ
79 (表示無し)
7A セーブ
7B ロード 水+22地+65火+76風+70 進入不可
7C (表示無し) 水-100火+74風+85 (表示無し)
7D マニュアル
7E (表示無し) 進入可
7F (表示無し) 水-100火+74風+85
80 糸杉(障害物)
81 (障害物)
82 (障害物)
83 (障害物)
84 (障害物)
85 石灰岩(障害物)
86 (障害物)
87 (障害物)
88 (障害物)
89 警備灯(障害物)
8A 警備灯(障害物)
8B (障害物)
8C (障害物)
8D (障害物)
8E (障害物)
8F (障害物)
90 イチイの木(障害物)
91 (障害物)
92 (障害物)
93 (障害物)
94 (障害物)
95 (障害物)
96 (障害物)
97 花崗岩(障害物)
98 (障害物)
99 (障害物)
9A (障害物)
9B (障害物)
9C 警備灯(障害物)
9D (障害物)
9E (障害物)
9F (障害物)
A0 (障害物)
A1 鉄甲冑(障害物)
A2 銅甲冑(障害物)
A3 (障害物)
A4 (障害物)
A5 (障害物)
A6 (障害物)
A7 (障害物)
A8 (障害物)
A9 (障害物)
AA (障害物)
AB (障害物)
AC (障害物)
AD (障害物)
AE (障害物)
AF (障害物)
B0 ショップ(障害物)
B1 (障害物)
B2 (障害物) 下に文字
B3 (障害物)
B4 (障害物)
B5 (障害物)
B6 (障害物)
B7 (障害物)
B8 (障害物)
B9 虫喰い草(障害物)
BA アナナの木(障害物)
BB (障害物)
BC (障害物)
BD (障害物)
BE (障害物)
BF (障害物)
C0 (障害物)
C1 (障害物)
C2 (障害物)
C3 (障害物)
C4 (障害物)
C5 (障害物)
C6 (障害物)
C7 (障害物)
C8 (障害物)
C9 (障害物)
CA (障害物)
CB (障害物)
CC (障害物)
CD (障害物)
CE ビルネの木(障害物)
CF ビルネの木(障害物)
D0 (障害物)
D1 ビルネの木(障害物)
D2 ビルネの木(障害物)
D3 (障害物)
D4 (障害物)
D5 (障害物)
D6 (障害物)
D7 (障害物)
D8 (障害物)
D9 (障害物)
DA (障害物)
DB (障害物)
DC (障害物)
DD (障害物)
DE (障害物)
DF 石灰岩(障害物)
E0 室内灯(障害物)
E1 (障害物)
E2 (障害物)
E3 ロード(障害物)
E4 (障害物)
E5 (障害物)
E6 命のカード(障害物)
E7 糸杉(障害物)
E8 (障害物)
E9 命のカード(障害物)
EA (障害物) 下に文字
EB (障害物)
EC イチイの木(障害物)
ED 鉄甲冑(障害物)
EE (障害物)
EF (障害物)
F0 緑水晶(障害物)
F1 (障害物)
F2 戦士像(障害物)
F3 (障害物)
F4 石灰岩(障害物)
F5 焼けた木(障害物)
F6 (障害物)
F7 (障害物)
F8 緑水晶(障害物)
F9 (障害物)
FA DEX (障害物)
FB (障害物)
FC (障害物)
FD トレジャー(障害物)
FE (障害物)
FF (障害物)

[2 楼] | Posted:2006-02-21 08:24| 顶端
hkk333



该用户目前不在线
级别: 火花会员
编号: 17693
精华: 1
发帖: 258
威望: 5 点
配偶: 单身
火 花 币: 24571 HHB
注册时间:2004-05-11
最后登陆:2017-10-14
查看作者资料 发送短消息 引用回复这个帖子


解析了的函数开始地址

$80

攻撃
00:0085 5C 7EAF80 |*ww|      jmp   \80h,0AF7Eh      ;>
魔法
00:0322 20 43E3   |*ww|      jsr   0E343h//残りWT
イベント進行?
00:0333 A2 FF1F   |*ww|      ldx.w   1FFFh
タコ変身
00:086D 8B     |*ww|      phb
タコ変身
00:0875 BD AE17   |*ww|      lda   @17AEh,x//キャラ
範囲表示?
00:0916 48     |*ww|      pha
初期化
00:214A 8B     |*ww|      phb
範囲選択時の画面について?
00:2492 8B     |*ww|      phb
00:2759 5A     |*ww|      phy
確率計算
00:286F 8B     |*ww|      phb
29A7,x
00:2943 8B     |*ww|      phb
擬似正規分布処理
00:2CDF 8B     |*ww|      phb
確率計算
00:2DC0 48     |*ww|      pha
BGM変更?
00:2EF2 8B     |*ww|      phb
ノーマル進入不可地形のsterを1下げて返す
00:4276 8B     |*ww|      phb
ノーマル進入不可地形のsterを1下げて返す
00:427E 4A     |*ww|      lsr   a
残りWT決定
00:6355 22 1F9286 |*ww|      jsl   \86h,921Fh
直接攻撃
00:674D 20 92FA   |*ww|      jsr   0FA92h//
投射攻撃
00:67AC 20 92FA   |*ww|      jsr   0FA92h
魔法攻撃
00:6862 22 8AA180 |*ww|      jsl   \80h,0A18Ah
スペシャル攻撃
00:68D6 20 92FA   |*ww|      jsr   0FA92h
アイテム使用
00:6975 20 92FA   |*ww|      jsr   0FA92h
スペシャル攻撃
00:69FB 20 92FA   |*ww|      jsr   0FA92h
エフェクト表示速度?
00:6B12 7B     |*ww|      tdc
選択メニューを消す?
00:7363 7B     |*ww|      tdc
直接攻撃開始
C0/7ABC: A9 00     LDA #$00
投射攻撃開始
C0/7AF1: A9 01     LDA #$01
スペシャル使用開始
C0/7B2B: A9 02     LDA #$02
魔法使用開始
C0/7B55: A9 03     LDA #$03
アイテム使用開始
C0/7B7F: A9 04     LDA #$04


$81

顔リスト
00:EB96 00 00   |*ww|      brk.b   00h
解凍プログラム1
00:F79F 8B     |*ww|      phb
圧縮データ読み出し
00:F860 A0 0100   |*ww|      ldy.w   0001h
展開後総バイト数読み込み
00:F86E C2 20   |*ww|      rep.b   20h            ;m = 16bit
フラグ読み込み
C0/F8A6: A9 FF     LDA #$FF//データを8個扱うフラグ
圧縮チェック
00:F8B0 06 06   |*ww|      asl   !06h//非圧縮フラグを左シフト
非圧縮データ
00:F8B4 BD 0000   |*ww|      lda   @0000h,x
総バイト数チェック
00:F8BB C4 0E   |*ww|      cpy   !0Eh
8フラグチェック
00:F8BF 06 07   |*ww|      asl   !07h
圧縮データ
00:F8C5 BD 0000   |*ww|      lda   @0000h,x
圧縮データバイト数取得
00:F996 6C 0A00   |*ww|      jmp   (@000Ah)            ;>
解凍プログラム2
00:F9B8 8B     |*ww|      phb
マップデータ読み取り
00:FB56 8B     |*ww|      phb


$82

A/2*11+B824を1D9E
01:0AF0 4A     |*ww|      lsr   a
A/2*11+B824をX、7EをA
01:0B09 4A     |*ww|      lsr   a
キャラ情報移し替え
01:0B24 8B     |*ww|      phb
1000制限
01:0BDA C9 E803   |*ww|      cmp.w   03E8h
Lvアップ
01:1146 8B     |*ww|      phb
なんかのアドレス?
01:1618 08     |*ww|      php
クラスチェンジ画面の停止ユニット?
01:5090 8B     |*ww|      phb
クラスチェンジ画面の停止ユニット?
01:5149 A5 A4   |*ww|      lda   !0A4h
Sサイズクラスの停止グラフィック番号
01:51EB 00 00   |*ww|      brk.b   00h
Lサイズクラスの停止グラフィック番号
01:525D 01 00   |*ww|      ora   (!00h,x)
自軍+敵
01:59AC 8B     |*ww|      phb
自軍+ゲスト+敵
01:59D0 8B     |*ww|      phb
敵データ解凍
01:5A8E 8B     |*ww|      phb
戦闘マップ敵作成
01:5BCF 48     |*ww|      pha
自軍戦闘データコピー
01:5C66 8B     |*ww|      phb
敵作成?
01:5D0F 8B     |*ww|      phb
敵作成
01:5D19 20 09DA   |*ww|      jsr   0DA09h//
マップ作成
01:5E25 8B     |*ww|      phb


$83

追加効果2番目アクション
01:8E7A AE 8C17   |*ww|      ldx   @178Ch
対象者ナンバー取得
01:93E2 8B     |*ww|      phb
対象者ナンバー取得
01:93EA C2 20   |*ww|      rep.b   20h            ;m = 16bit
19526,x
01:9520 AA     |*ww|      tax
銃系弾道計算
01:97F8 85 00   |*ww|      sta   !00h
弓系弾道計算
01:9945 85 00   |*ww|      sta   !00h//0:弓
弓の放物線に関して
01:9D4F C2 20   |*ww|      rep.b   20h            ;m = 16bit
水系地形チェック
01:9ED2 8B     |*ww|      phb
水系地形チェック
01:9EDA BF 00CC7F |*ww|      lda   \7Fh,@0CC00h,x//地形
エフェクト解凍
C1/A498: A9 8E     LDA #$8E
座標値獲得
01:AA34 8B     |*ww|      phb
A44/32 or A04 -> A,X
01:AA3C 7B     |*ww|      tdc
各種効果へジャンプ
01:B335 3A     |*ww|      dec   a
草焼き
01:EE2D E2 20   |*ww|      sep.b   20h            ;m = 8bit
魔法・SP効果読み取り
01:F8B0 A2 0000   |*ww|      ldx.w   0000h


$84

使用武器グラフィック
02:22F6 85 1E   |*ww|      sta   !1Eh//使用武器
ユニットグラフィック
02:2387 EB     |*ww|      XBA
ネクロマンシーより
02:25BB EB     |*ww|      xba
殴るときのグラフィックとか!
02:4314 8B     |*ww|      phb
殴るときのモーション
02:43CC 8B     |*ww|      phb


$85

リーンカーネイト1
02:E1D0 8B     |*ww|      phb
リーンカーネイトで転生するクラス
02:E286 01 0E   |*ww|      ora   (!0Eh,x)
マップ座標値取得
02:E66D 7B     |*ww|      tdc
装備取得
02:EBDD 7B     |*ww|      tdc
装備アドレス
     02:EC06 7E 1A7F   |*ww|      ror   @7F1Ah,x
敵死亡処理?
02:EC0E 8B     |*ww|      phb
敵死亡敵リッチも含む?
02:EC36 22 97999B |*ww|      jsl   \9Bh,9997h//不明
ECADに対応する値
02:EDB4 06 04   |*ww|      asl   !04h
追加効果1番目アクション
02:EDBE 4B     |*ww|      phk
AK転生Luk判定と復活転生判定呼び出しin 16bit mode
02:F48E 8B     |*ww|      phb
復活・転生判定処理
02:F4BC 8B     |*ww|      phb
敵判定
02:F53A BD 2E1A   |*ww|      lda   @1A2Eh,x//敵味方
聖石判定
C2/F543: A5 A3     LDA $A3
聖石判定
C2/F563: C9 BF     CMP #$BF//祝福の聖石
聖石フラグON
02:F56C 68     |*ww|      pla
死者の指輪判定
C2/F571: A9 A1     LDA #$A1//死者の指輪
AL判定と判定続行フラグON
02:F58A BD D617   |*ww|      lda   @17D6h,x//アラインメント
リッチ転生のみ続行フラグON
C2/F594: A9 01     LDA #$01//リッチ転生のみ続行フラグ
初期化
02:F597 7B     |*ww|      tdc
♀ユニット判定
02:F599 BD D717   |*ww|      lda   @17D7h,x//エレメント
クラス判定
02:F5A6 64 01   |*ww|      stz   !01h
AK転生可能クラス
02:F5CF 0C     |*ww|      0C//リッチ
リッチ転生可能クラス
02:F5D9 09     |*ww|      09//ウィザード
デニム判定
02:F5E0 BD AE17   |*ww|      lda   @17AEh,x//キャラ
味方判定
02:F5EF BD 2E1A   |*ww|      lda   @1A2Eh,x//敵味方
転生ステータス判定
02:F5F7 64 01   |*ww|      stz   !01h
転生ステータス条件
     02:F655 72 00   |*ww|      adc   (!00h)
条件比較対象値のアドレス
02:F671 9E 18   |*ww|      189E//MHP
if キャラ状態/2 setC: 3C -> B1C8
02:F7EE 8B     |*ww|      phb


$86

*//残りWT
03:0B71 F0 09   |*ww|      beq   0B7Ch            ;>
*//残りWT
03:0C7C C2 20   |*ww|      rep.b   20h            ;m = 16bit
*//回復・充魔効果
03:116C 8B     |*ww|      phb
*//範囲パネル作成
C3/23EB: 8B       PHB
*//マップに魔法・SPの範囲が入るかどうか?
03:24D6 A5 00   |*ww|      lda   !00h
*//魔法・SP範囲作成か!?
03:2BB2 8B     |*ww|      phb
*//キャラの地形取得
03:2DB7 7B     |*ww|      tdc
*//水系地形判定
03:2DE1 20 E5AD   |*ww|      jsr   0ADE5h
*//水系地形判定
03:2DE5 BF 00CC7F |*ww|      lda   \7Fh,@0CC00h,x//地形
*//スペシャルと範囲用INT+MEN判定
03:33D1 DA     |*ww|      phx
*//近スペ以外
C3/33F6: 7B       TDC
*//魔法SP攻撃補正取得
03:345B 8B     |*ww|      phb


$87

*//片手装備
03:CE06 A2 0200   |*ww|      ldx.w   0002h
*//♀キャラクラスチェンジ?
03:EFB2 20 D1F1   |*ww|      jsr   0F1D1h//
*//クラスチェンジ画面の選択カーソル位置
03:F087 AD 661E   |*ww|      lda   @1E66h
**//クラスチェンジ画面の出現ユニットグラフィックに関して?
03:F1DC A0 0000   |*ww|      ldy.w   0000h
*//クラスチェンジ可能ユニットの名前とか?
03:F399 AD 661E   |*ww|      lda   @1E66h
*//クラスチェンジ画面移行時のクラスによるカーソルの位置
03:F537 AD 661E   |*ww|      lda   @1E66h
*//♀ユニットクラスチェンジ?
03:F721 22 DFA388 |*ww|      jsl   \88h,0A3DFh


$88

自軍以外作成
C4/0741: A9 0A     LDA #$0A
敵データアドレス設定
04:07C2 8B     |*ww|      phb
基本キャラグラフィック
04:2112 12 94   |*ww|      ora   (!94h)
基本キャラグラフィック
04:2138 BD AF17   |*ww|      lda   @17AFh,x//キャラ
一般キャラと固有キャラの区別
04:23D1 DA     |*ww|      phx
たくさん割ったり
04:23DF DA     |*ww|      phx
アンデッド判定?
04:2412 DA     |*ww|      phx
範囲確認?
04:246D DA     |*ww|      phx
死亡者?
04:2482 48     |*ww|      pha
対獣効果
04:248E 48     |*ww|      pha
対竜効果
04:249A 48     |*ww|      pha
対ゴーレム効果
04:24A6 48     |*ww|      pha
タコ判定
C4/24B2: C9 29     CMP #$29//オクトパス
タコ弱体化
C4/24C6: C9 29     CMP #$29//オクトパス
タコ強化
C4/24E2: C9 29     CMP #$29//オクトパス
スナップドラゴン剣属性
04:4CE5 DA     |*ww|      phx
アイテムの種類取得
04:4D2B 7B     |*ww|      tdc
攻撃の種類判定、xには武器の種類
04:4D31 7B     |*ww|      tdc
アイテム属性取得
04:4D59 DA     |*ww|      phx
武器射程
04:4D6E 7B     |*ww|      tdc
重量算出
04:4D95 DA     |*ww|      phx
アイテムSTR取得
04:4DAF DA     |*ww|      phx
アイテムINT取得
04:4DC7 DA     |*ww|      phx
アイテムAGI取得
04:4DE5 DA     |*ww|      phx
アイテムLuk取得
04:4E5D DA     |*ww|      phx
アイテム物理RES取得
04:4E78 7B     |*ww|      tdc
アイテム風RES取得
04:4E84 7B     |*ww|      tdc
アイテム火RES取得
04:4E90 7B     |*ww|      tdc
アイテム地RES取得
04:4E9C 7B     |*ww|      tdc
アイテム水RES取得
04:4EA8 7B     |*ww|      tdc
アイテム聖RES取得
04:4EB4 7B     |*ww|      tdc
アイテム闇RES取得
04:4EC0 7B     |*ww|      tdc
アイテム使用効果
04:4ED2 7B     |*ww|      tdc
アイテム攻撃特性
04:4ED8 DA     |*ww|      phx
アイテム防御特性
04:4EED 7B     |*ww|      tdc
アイテム通常特性取得
04:4EF3 7B     |*ww|      tdc
武器種別
04:4EF9 7B     |*ww|      tdc
武器の直接攻撃判定
04:4EFF DA     |*ww|      phx
投石判定?
04:4F28 DA     |*ww|      phx
STR取得用直接武器判定-
04:4F7C DA     |*ww|      phx
STR取得用アクセサリ判定
04:4FA4 DA     |*ww|      phx
INT取得用攻撃武器判定-
04:4FB8 DA     |*ww|      phx
DEX取得用攻撃武器判定-
04:4FCC DA     |*ww|      phx
MEN取得用攻撃武器判定-
04:4FE0 DA     |*ww|      phx
-
04:4FF4 DA     |*ww|      phx
防御用VIT-
04:5008 DA     |*ww|      phx
防御用
04:501C DA     |*ww|      phx
スペシャル種類
04:50FD DA     |*ww|      phx
スペシャル消費MP
04:510E DA     |*ww|      phx
スペシャル消費MP100Limited
04:5121 DA     |*ww|      phx
スペシャル属性
04:5138 DA     |*ww|      phx
スナップ剣の処理
04:5144 7B     |*ww|      tdc
重量算出
04:7571 DA     |*ww|      phx


$8B
戦闘音楽?
05:9ED3 8B     |*ww|      phb


$8D
なんかの解凍
06:82D4 8B     |*ww|      phb
消費MPに関して
06:8C9C DA     |*ww|      phx
消費MPに関して
06:8CBD DA     |*ww|      phx
物理攻撃?
06:8D32 A2 BEC8   |*ww|      ldx.w   0C8BEh
剣装備取得
06:8EA4 8B     |*ww|      phb
直接攻撃の種類判定
06:9066 8B     |*ww|      phb
武器の直接攻撃判定
06:90F6 F0 13   |*ww|      beq   910Bh            ;>
素手攻撃の種類
06:910C BF D2C088 |*ww|      lda   \88h,@0C0D2h,x//素手攻撃の種類
攻撃ダメージVa*Ra/100-Vd*Rd/100計算
06:929A 8B     |*ww|      phb
攻撃値取得
*06:92D1 E9 92   |*ww|      92E9//物理攻撃用STR+DEX/2
防御値取得
*06:92DD 9A 93   |*ww|      939A//物理防御用VIT+STR/2取得
物理攻撃用
06:92E9 7B     |*ww|      tda
投射攻撃用
06:92F1 7B     |*ww|      tdc
物理攻撃用
06:9302 20 F6F7   |*ww|      jsr   0F7F6h//使用武器Str取得?
物理攻撃用STR+DEX/2
06:9308 A6 0C   |*ww|      ldx   !0Ch
必殺技攻撃用STR+DEX/2取得
06:9324 AF DFD27E |*ww|      lda   \7Eh,@0D2DFh
魔法・SP用攻撃用Int+MEN/2取得
06:934C A6 0C   |*ww|      ldx   !0Ch
魔法・SP用MEN+STR/3取得
06:9368 A6 0C   |*ww|      ldx   !0Ch
物理防御VIT+STR/2
06:939A A6 0E   |*ww|      ldx   !0Eh
魔法防御VIT+MEN/2
06:93B3 A6 0E   |*ww|      ldx   !0Eh
ダブルアタックway判定
06:93CC AD F01E   |*ww|      lda   @1EF0h
Ra算出 in 8bit mode
06:93EA D4 04   |*ww|      pei
Rd算出 in 8bit mode
06:9426 D4 04   |*ww|      pei
対竜攻撃効果
06:9452 AF E0D27E |*ww|      lda   \7Eh,@0D2E0h
対竜防御効果
06:9474 A6 0C   |*ww|      ldx   !0Ch
恐怖効果
06:9491 A6 0C   |*ww|      ldx   !0Ch//攻撃
周囲の恐怖キャラカウント
06:94DF DA     |*ww|      phx
獣支援効果
06:9519 A6 0C   |*ww|      ldx   !0Ch
獣支援カウント
06:953F DA     |*ww|      phx
竜支援効果
06:9579 A6 0C   |*ww|      ldx   !0Ch
竜支援カウント
06:95A1 DA     |*ww|      phx
ゴーレム支援効果
06:95DB A6 0C   |*ww|      ldx   !0Ch
ゴーレム支援カウント
06:9603 DA     |*ww|      phx
物理攻撃命中処理
06:963D 8B     |*ww|      phb
回避用能力値取得
06:96CA C2 21   |*ww|      rep.b   21h            ;m = 16bit
キャラの向きによる修正
06:96EE 5A     |*ww|      phy
向きによる補正値
06:972D 32     |*ww|      50
Luc計算
06:9731 A6 0E   |*ww|      ldx   !0Eh//攻撃者ナンバー
way判定+盾攻撃?
06:9746 AF E0D27E |*ww|      lda   \7Eh,@0D2E0h
素手攻撃
06:977D C9 11   |*ww|      cmp.w   11h//素手
投石・手裏剣・指弾
06:97AD C9 01   |*ww|      cmp.w   01h//投射攻撃
Au-Duの重量差
06:97F1 8B     |*ww|      phb
攻撃処理並びにクリティカル判定?
06:9844 8B     |*ww|      phb
ダメージ算出
06:98A7 A6 0C   |*ww|      ldx   !0Ch
攻撃処理
06:98E4 8B     |*ww|      phb
HP,MP制限in 16bit mode
06:997A A5 02   |*ww|      lda   !02h
地形攻撃効果修正
06:9A58 A6 0C   |*ww|      ldx   !0Ch
使用武器属性一致修正
06:9A87 D4 00   |*ww|      pei
天気による変動
06:9AAF D4 00   |*ww|      pei//!00hをスタックへ
得意武器修正
06:9AE1 7B     |*ww|      tdc
地形防御効果
06:9B0E A6 0E   |*ww|      ldx   !0Eh
天気抵抗修正
06:9B3D D4 00   |*ww|      pei
魔法・SP効果処理
06:9BA7 8B     |*ww|      phb
効果なし
C6/9BD6: A9 7E     LDA #$7E
miss処理
06:9C21 8B     |*ww|      phb
魔法・SP命中回避率
06:9CD2 DA     |*ww|      phx
魔法・SP命中率
06:9E04 DA     |*ww|      phx
物理攻撃
06:A0D0 22 3A9E88 |*ww|      jsl   \88h,9E3Ah
タコ以外
06:A693 A2 5500   |*ww|      ldx.w   0055h
SP処理
06:A7DF 64 B8   |*ww|      stz   !0B8h
魔法・SP?
06:AAD5 22 C1BC8D |*ww|      jsl   \8Dh,0BCC1h//範囲作成
HP追加ダメージ系
06:B306 22 DAB182 |*ww|      jsl   \82h,0B1DAh
ネクロマンシー
06:B39D 8B     |*ww|      phb
テレポート?
06:B4CE 8B     |*ww|      phb
獲得exp算出
06:B79F 8B     |*ww|      phb
通常攻撃時のExp算出
06:B7F7: 09 00     ORA #$00
とどめを刺した時のExp算出
C6/B82A: 09 00     ORA #$00
Lv差+1=4
C6/B841: A9 64     LDA #$64
Lv差+1=3
C6/B846: A9 64     LDA #$64
Lv差+1=2
C6/B84B: A9 46     LDA #$46
Lv差+1=1
C6/B850: A9 0A     LDA #$0A
Lv差+1=0以上
C6/B855: A9 01     LDA #$01
物理攻撃処理
C6/B87F: A9 01     LDA #$01
投射魔法・SP処理
C6/B919: C9 02     CMP #$02//投射魔法・SP
キャラ有無判定?
06:B9B8 7B     |*ww|      tdc
SP
06:B9D7 8B     |*ww|      phb
魔法・SP種類と追加効果判定
06:BA4B 8B     |*ww|      phb
追加効果2
06:BAB6 A0 0000   |*ww|      ldy.w   0000h
スペシャル
06:BB19 7B     |*ww|      tdc
通常ダメージ系
06:BB4E 7B     |*ww|      tdc
キャラ状態と有無
06:C280 DA     |*ww|      phx
キャラ状態による恐怖・支援効果の有無
06:C2A5 BD AE17   |*ww|      lda   @17AEh,x//キャラ見た目
装備チェック
06:C5CA BD 7E1A   |*ww|      lda   @1A7Eh,x//左上装備
画面処理
06:C600 22 8AA180 |*ww|      jsl   \80h,0A18Ah
復活系魔法・SP
06:CB7F 48     |*ww|      pha
召喚数カウント
06:CC1F 8B     |*ww|      phb
召喚数カウント用Int+Men値
06:CC87 6400     |*ww|      100
説得処理
06:CFE2 A6 93   |*ww|      ldx   !93h
死亡処理?
06:D0AF A6 39   |*ww|      ldx   !39h
敵の攻撃か?
06:D711 8B     |*ww|      phb
魔法処理?
06:D786 8B     |*ww|      phb
殺害人数カウント
06:DBE2 DA     |*ww|      phx
装備に関して?
06:DD0B 8B     |*ww|      phb
命中・回避用Ra、Rd算出
06:DEBA 8B     |*ww|      phb
地形効果修正
06:DF1B 5A     |*ww|      phy
属性一致修正
06:DF58 A5 10   |*ww|      lda   !10h
アライメントによる属性修正
06:DF82 A5 10   |*ww|      lda   !10h
天気修正
06:DFA7 A5 10   |*ww|      lda   !10h
得意武器修正
06:DFF6 A5 10   |*ww|      lda   !10h
魔法・SPダメージ計算方式
06:E021 8B     |*ww|      phb
0
06:E0C8 64 00   |*ww|      stz   !00h
防御者HP減少値
06:E0CD A6 0E   |*ww|      ldx   !0Eh
攻撃者HP減少値
06:E0DD A6 0C   |*ww|      ldx   !0Ch
防御者HP/2
06:E0ED A6 0E   |*ww|      ldx   !0Eh
攻撃者INT/2
06:E0FA A6 0C   |*ww|      ldx   !0Ch
攻撃者HP
06:E107 A6 0C   |*ww|      ldx   !0Ch
防御者HP*75/100
06:E113 A6 0E   |*ww|      ldx   !0Eh
攻撃者DEX
06:E127 A6 0C   |*ww|      ldx   !0Ch
剣のSTR*2
06:E133 A6 0C   |*ww|      ldx   !0Ch
攻撃者STR
06:E144 A6 0C   |*ww|      ldx   !0Ch
防御者MP減少値
06:E150 A6 0E   |*ww|      ldx   !0Eh
防御者MP*90/100
06:E160 A6 0E   |*ww|      ldx   !0Eh
攻撃者HP/2
06:E174 A6 0C   |*ww|      ldx   !0Ch
防御者VIT/4
06:E181 A6 0E   |*ww|      ldx   !0Eh
防御者MP/2
06:E18F A6 0E   |*ww|      ldx   !0Eh
攻撃者(VIT+MEN)/4
06:E19C A6 0C   |*ww|      ldx   !0Ch
25
06:E1AD C2 20   |*ww|      rep.b   20h            ;m = 16bit
50
06:E1B7 C2 20   |*ww|      rep.b   20h            ;m = 16bit
100
06:E1C1 C2 20   |*ww|      rep.b   20h            ;m = 16bit
防御者MHP/2
06:E1CB A6 0E   |*ww|      ldx   !0Eh
防御者MP*99/100
06:E1D8 A6 0E   |*ww|      ldx   !0Eh
攻撃者HP*99/100
06:E1EC A6 0C   |*ww|      ldx   !0Ch
攻撃者VIT/10
06:E200 A6 0C   |*ww|      ldx   !0Ch
防御者HP/10
06:E222 A6 0E   |*ww|      ldx   !0Eh
防御者HP/3
06:E244 A6 0E   |*ww|      ldx   !0Eh
攻撃者MHP/2
06:E266 A6 0C   |*ww|      ldx   !0Ch
与ダメージ/5?
06:E273 A6 14   |*ww|      ldx   !14h
与ダメージ/10
06:E2B0 7B     |*ww|      tdc
通常処理
06:E2D8 A6 0C   |*ww|      ldx   !0Ch
ヒーリング系
06:E2E5 A6 0C   |*ww|      ldx   !0Ch
通常処理/2
06:E2EE A6 0C   |*ww|      ldx   !0Ch
攻撃者Lv
06:E308 A6 0C   |*ww|      ldx   !0Ch
攻撃者Lv*2
06:E312 A6 0C   |*ww|      ldx   !0Ch
与ダメージ値
06:E31D A6 14   |*ww|      ldx   !14h
通常処理/4
06:E32D A6 0C   |*ww|      ldx   !0Ch
防御者HP/5
06:E34B A6 0E   |*ww|      ldx   !0Eh
4の正規分布乱数?
C6/E36D: A9 04     LDA #$04
150
06:E378 C2 20   |*ww|      rep.b   20h            ;m = 16bit
敵味方とかアンデッド判定
06:E382 8B     |*ww|      phb
魔法効果読み取り
06:E448 8B     |*ww|      phb
サモン系チェック
06:E663: C9 4C     CMP #$4C//サモンハーネラ
魔法・SP効果判定
06:E66F: 48       PHA
28以下
06:E688 68     |*ww|      pla
27
06:E68D 68     |*ww|      pla
2E
06:E69D 68     |*ww|      pla
29以上2C以下
06:E6AB 68     |*ww|      pla
3A
06:E6B5: 68       PLA
HP,MP削り系分岐
06:E6E6 A5 02   |*ww|      lda   !02h
魔法・SPダメージ通常処理
06:E7C4 8B     |*ww|      phb
敵ダメージ?
C6/E801: 7B       TDC
ヒーリング系処理
06:E93A 8B     |*ww|      phb
魔法・SP用Ra
06:E9B9 D4 04   |*ww|      pei
魔法・SP用Rd
06:E9E3 D4 04   |*ww|      pei
!00h*!04h/100
06:EA12 DA     |*ww|      phx
命中回避1~100制限
06:EA40 C2 20   |*ww|      rep.b   20h            ;m = 16bit
999制限
06:EA58 C2 20   |*ww|      rep.b   20h            ;m = 16bit
ダメージ最大最小制限
06:EA6C C2 20   |*ww|      rep.b   20h            ;m = 16bit
200制限
06:EA84 C2 20   |*ww|      rep.b   20h            ;m = 16bit
マイナス修正
06:EA98 C2 21   |*ww|      rep.b   21h            ;m = 16bit
100~-100修正
06:EAA4 C9 80   |*ww|      cmp.w   080h
敵Ra?
06:EAB8 8B     |*ww|      phb
RES取得
06:EC79 A5 0A   |*ww|      lda   !0Ah
物理RES取得
06:ED18 8B     |*ww|      phb
アイテム物理Res取得
06:ED80 AA     |*ww|      tax
風Res取得
06:ED89 8B     |*ww|      phb
アクセサリのみSTR参照
06:F0AF DA     |*ww|      phx
直接攻撃STR参照
06:F119 DA     |*ww|      phx
攻撃用DEX参照
06:F183 DA     |*ww|      phx
攻撃用INT取得
06:F1E6 DA     |*ww|      phx
攻撃用MEN取得
06:F249 DA     |*ww|      phx
防御用MEN参照
06:F2B3 DA     |*ww|      phx
防御用VIT参照
06:F31D DA     |*ww|      phx
防御用STR参照
06:F380 DA     |*ww|      phx
全AGI取得
06:F3EA DA     |*ww|      phx
全DEX取得
06:F44D DA     |*ww|      phx
全INT取得
06:F4B0 DA     |*ww|      phx
全MEN取得
06:F513 DA     |*ww|      phx
LUK取得
06:F57D DA     |*ww|      phx
わかんね
06:F5D6 B9 1E1B   |*ww|      lda   @1B1Eh,y//
Rndか?
06:F620 A9 14   |*ww|      lda.w   14h
Rnd処理
06:F628 8B     |*ww|      phb
回避用Rnd値算出?
06:F65E 8B     |*ww|      phb
ダメージモーション
06:F6B6 D4 06   |*ww|      pei
効果防御判定
06:F893 DA     |*ww|      phx
殴ったときの効果処理
06:F8DE 8B     |*ww|      phb
恐怖・支援キャラの位置判定
06:F97B DA     |*ww|      phx
直接攻撃予想処理
C6/F9A2: A9 01     LDA #$01
投射攻撃予想処理
C6/FA3B: A9 01     LDA #$01
魔法・SP予想処理
C6/FA95: A9 01     LDA #$01
HP,MP制限
06:FB21 9B     |*ww|      txy
物理攻撃予想DMG計算
06:FBE4 7B     |*ww|      tdc
物理攻撃予想DMGと命中率
06:FC7F DA     |*ww|      phx
魔法・SPの予想DMGと回避率
06:FCC7 DA     |*ww|      phx
追加効果の退魔
C6/FD12: D4 12     PEI $12
魔法・SPダメージ
06:FD35 D4 12   |*ww|      pei
魔法・SP必中判定と回避率計算
06:FDA3 7B     |*ww|      tdc


$99

戦闘マップ作成
0C:8001 AA     |*ww|      tax
戦闘イベント!
0C:810E 8B     |*ww|      phb
マップ番号判定?16、17はもしや雑魚マップ?
0C:8160 DA     |*ww|      phx
マップ16判定
0C:8181 22 608199 |*ww|      jsl   \99h,8160h
長すぎ
0C:8257 F4 0000   |*ww|      pea
イベントでぇす
0C:897B A6 00   |*ww|      ldx   !00h
イベント?
0C:901B E2 20   |*ww|      sep.b   20h            ;m = 8bit
イベントFF以外は2001-2008スキップ
0C:D71E BD 0000   |*ww|      lda   @0000h,x
戦闘イベントデータ展開
0C:D759 C2 20   |*ww|      rep.b   20h            ;m = 16bit
戦闘イベント・移動
0C:D7E2 8B     |*ww|      phb
イベント1以外
CC/D828: 7B       TDC
イベント1
0C:D8A9 E8     |*ww|      inx
移動タイプ取得
0C:D921 DA     |*ww|      phx
STER決定
0C:D931 DA     |*ww|      phx
町でのイベント戦闘
0C:EB4E EB     |*ww|      xba
町でのイベント戦闘
0C:EC12 4A     |*ww|      lsr   a
町でのイベント戦闘
0C:ECA0 22 4B9F9E |*ww|      jsl   \9Eh,9F4Bh


$9A
デニム以外ダメージ?
0D:021D A6 93   |*ww|      ldx   !93h
マップ+ユニット
0D:0E03 DA     |*ww|      phx
一般キャラと固有キャラの区別
0D:1369 48     |*ww|      pha
死者の宮殿か?
0D:1396 22 3BA180 |*ww|      jsl   \80h,0A13Bh
ユニット名削除?
0D:14A1 8B     |*ww|      phb
キャラ能力値初期化
0D:1749 A2 0000   |*ww|      ldx.w   0000h
!5C、!5Aに2000h
0D:21BC 64 C1   |*ww|      stz   !0C1h
ゲスト用転移石チェック
0D:21E6 BD AE17   |*ww|      lda   @17AEh,x//キャラ


$9B
地形攻撃効果修正 in 8bit mode
0D:880C 8B     |*ww|      phb
地形防御効果
0D:8874 8B     |*ww|      phb
地形攻撃効果修正
0D:88E4 BF 0D878B |*ww|      lda   \8Bh,@870Dh,x//地形攻撃効果
地形防御効果
0D:8911 BF 35878B |*ww|      lda   \8Bh,@8735h,x//地形防御効果
風属性キャラの地形修正
0D:8936 7B     |*ww|      tdc
火属性キャラの地形修正
0D:894C 7B     |*ww|      tdc
地属性キャラの地形修正
0D:8962 7B     |*ww|      tdc
水属性キャラの地形修正
0D:8978 7B     |*ww|      tdc
-100~100修正
0D:8992 09 0000   |*ww|      ora.w   0000h//0チェック
ゲストキャラのエレメント決定?
0D:8F39 8B     |*ww|      phb
ゲストクラス?
     0D:8F6D 35 34   |*ww|      and   !34h,x
キャラ座標決定
0D:8FAB 8B     |*ww|      phb
キャラ移動可不可判定
0D:906D 8B     |*ww|      phb
水系地形のsterを1下げて返す
0D:90E3 8B     |*ww|      phb
歩数取得
0D:9131 7B     |*ww|      tdc
移動タイプ取得
0D:913E 8B     |*ww|      phb
アイテム通常特性取得
0D:91E3 5A     |*ww|      phy
アイテム防御特性
0D:923F 5A     |*ww|      phy
SPの防御効果チェック
0D:92BC AF E0D27E |*ww|      lda   \7Eh,@0D2E0h
SPの防御効果チェック
0D:92E4 8B     |*ww|      phb
対竜攻撃効果
0D:930F DA     |*ww|      phx
続々・恐怖キャラアイテムカウント
0D:936C DA     |*ww|      phx
獣支援カウント
0D:93BF DA     |*ww|      phx
竜支援カウント
0D:9402 DA     |*ww|      phx
ゴーレム支援カウント
0D:9441 DA     |*ww|      phx
装備四点セット取得
0D:9480 8B     |*ww|      phb
装備四点セット取得
0D:94C0 A2 0000   |*ww|      ldx.w   0000h//以下、アイテムIDソート
装備四点セット
     0D:9538 1B     |*ww|      tcs
最初の質問とか?
0D:A8BB 8B     |*ww|      phb


$9C
埋もれた財宝判定
0E:764E 20 9DF7   |*ww|      jsr   0F79Dh
Lukによる拾得アイテム決定
0E:76C7 84 00   |*ww|      sty   !00h
拾得アイテムに関するデータ解凍
0E:794D 48     |*ww|      pha


$9D
デニムチェック
CE/A2F6: C9 34     CMP #$34
内部データコピー
0E:B941 AD 9F1E   |*ww|      lda   @1E9Fh
デニム初期ステータス決定
0E:BBA0 48     |*ww|      pha
最初の質問後のデニムステータス決定
0E:BC1E: 7B       TDC
最初の質問によるステータス変化
0E:BCCD A2 0000   |*ww|      ldx.w   0000h
チュートリアルキャラ作成
0E:EC8A 48     |*ww|      pha//aはEE526
チュートリアル作成関数
0E:EE49 22 C8F381 |*ww|      jsl   \81h,0F3C8h


$9E
データ初期化
0F:1F4B 8B     |*ww|      phb
能力値初期化
0F:1FDA 9E AE17   |*ww|      stz   @17AEh,x//キャラ
変数初期化
0F:20AB 9E 0306   |*ww|      stz   @0603h,x
Sサイズの使用するリスト(デフォルト)
0F:25B3 01 02   |*ww|      ora   (!02h,x)
Lサイズの使用するリスト(デフォルト)
0F:25E6 23 24   |*ww|      and   !24h,s
クラスチェンジ可/不可?
0F:30C1 AA     |*ww|      tax

$9F
距離や1D26決定
0F:DE46 C2 20   |*ww|      rep.b   20h            ;m = 16bit

[3 楼] | Posted:2006-02-21 08:25| 顶端
hkk333



该用户目前不在线
级别: 火花会员
编号: 17693
精华: 1
发帖: 258
威望: 5 点
配偶: 单身
火 花 币: 24571 HHB
注册时间:2004-05-11
最后登陆:2017-10-14
查看作者资料 发送短消息 引用回复这个帖子


对逆汗解析的部分翻译:

Snes逆汗分析修改入门

汇编相关的资料虽然见过不少,
但因为公开具体分析手法的网站几乎没有
所以写了这个,并不是我自己有什么了不起的知识或者技术
仅仅是面对逆汗初学者的

关于这个文章
  这篇文章以snes的rom为处理对象具体的说明了如何
进行逆汗分析和修改
  前提知识是假定你理解了game room的
[从2开始的修改讲座]

§1  基础知识(中的基础)
1.1     逆汗分析是什么?
  Computer(计算机)靠CPU来运作的,这个CPU有固有的机器语言
另外,有和机器语言的命令一一对应的语言叫汇编语言
程序是用人们易于理解的高级语言源码写的
把它变换成机器语言(编译)在computer上运行
这里有逆汗分析的本题:
    就是把 [机器语言变换成汇编语言(反汇编),来理解程序]
1.2 关于65C816 汇编
1.1中说过[CPU有固有的机器语言]
snes的被称为65C816的CPU当然也有固有的机器语言,
有汇编语言(65C816汇编)
要逆汗分析snes的ROM,当然必须理解65C816汇编

    关于 65C816汇编 的资料,可以从这个网站的首页的连接
    里面找到
  入门推荐使用容易入门的AssemlyTutorial
  即使不精读资料也是有可能理解以下写的文章的,不过最好
  预先读过和理解尽可能多的资料
  以下,将关于 65C816汇编 的资料集中起来
1.2.1     寄存器(register)和位变换标志(bit switch flags)
Regist有[保存]的意思,Register是[保存什么东西的存在]
用汇编语言保存什么取决于说出的值
寄存器保存值是因为,它处理象变量等,简单说,它工作
它记下数值等待时间,寄存器认为它是A(accumulator累加器),
是X,Y(index register变址寄存器),DB(data bank register数据储存地寄存器)
和P(status register状态寄存器)
在这里,仅仅A,X,和Y寄存器能根据标志变换保存的字节数(8位1字节,16位2字节)
A寄存器是M flag,index寄存器是X flags
flag是根据[REP],[SEP]切换的
经验上大部分用A寄存器来变换就足够了
记得A寄存器用REP是2字节,SEP是1字节就足够了

1.2.2 记法(mnemonics)
      记法是关于汇编语言的各指令的.65C816的记法搜罗在这里了
      首先是必要的记法
LDA,LDX,LDY:从各寄存器读出值
STA,STX,STY:向各寄存器写入值
JSL,RTL   :24bit(3byte)地址指定的函数调用和调用终了
JSR,RTS   :地址的下位16bit(2byte)指定函数调用和调用终了,上位8位的bank当DB寄存
        器使用
REP,SEP   :M,X标志的变换
TDC     :A寄存器初始化※
EA       :什么也不做

大致了解了吗?详细请查资料
※虽然有[A寄存器往D寄存器写入]的说法,不过到现在为止还没发现D寄存器的值
非0的情况
1.2.3 寻址模式
    对于汇编语言,指定存储器地址的方法有多种,这些表记方法总称寻址模式
    虽然这个相当重要,不过查阅dis65816的说明就很容易弄清楚,所以这里就
    不说明了
1.3   位映像和存储/ROM地址
    1.2.2提过[bank]这个单词,这个是指XX:YYYY类型的地址中的XX
    YYYY是偏移地址(offset)
  snes的存储区域从00:0000开始到FF:FFFF结束,ROM就被装入其中
  存储区域中的ROM的位置随ROM的种类(LoROM和HiROM)而不同
  Tactics Ogre和Star Ocean(※实际上是HiROM.以前弄错了)是LoROM
  以这个做参考
    这里写出了在LoROM的情况下的存储器地址与实际的ROM地址的转换方法

  ROM数据装入存储器各bank的8000~FFFF
  ROM一直从0000~FFFF的时候,需要同到存储器中2个bank(但是ban从$00h~
  $3Fh没什么特别要注意的)
  具体变换方法是
            存储地址是XXYYYY的话
            XX-80的数值如果是偶数,那么YYYY-8000,奇数就这样可以了
            下一步是 把XX-80的数值除以2
            这样结果就出来了
            例如,88C75B
            88-80=8因为是偶数,C75B-8000=475B
            8/2=4,所以ROM地址是4475B
            逆变换,XXYYYY的话
            XX乘2加80
            YYYY8000以上的时候XX*2+80+1、
7FFF以下XX*2+80,并且YYYY+8000

如果在The Rom Hacking Repositry可以下到Lunar Address,为防万一失效,请尽快取得

§2 必要工具
2.1 snes emu 主体
  没有这个无法开始,在这里取得[SNESGT Ver.0.163a]使用
  在这里说明使用方法会很冗长,见到了就可以了解
2.2 SNES用反汇编工具
  在这里取得[dis65816 Ver1.04]和[TRaCER]使用
  1.2.1写过,A寄存器保存的值可以从1字节变化到2字节
      读取A寄存器值的时候,指定的数值也必须随之变化为1字节
      或者2字节
      这里就是反汇编代码读错误的原因之一
      对次的处理方法是,反汇编用1字节读取A寄存器的时候的结果和用2字节
      读取A寄存器的时候的结果比较
    2.2.1 dis65816
    dis65816 通过切换M标志用REP/SEP读取代码
并且,加入了结果分割显示,追加说明等各种方便的功能
    dis65816的使用方法是,ROM名字改成"rom.smc"形式
    用"dis65816 rom.smc"来实行就可以了
    LoROM用dis65816_2.exe启动,地址和rom地址相同

    2.2.2 TRaCER
    TRaCER不分割结果,用来修改倒不错
    dis65816基本上M,Xflag共读取16bit,TRaCER相反读取8bit
    TRaCER启动基本上是"tracer -o -i ROM名"的形式,ROM是HiROM的话加"-h"
    ROM如果是smc/swc格式的,最好加上"-s"
2.3 SNES用的CPU追踪器(cpu tracer)
  2.3.1 Peer's Snes9x Tracer
    SNES9X带有cpu tracer机能的版本,使用方法很简单就省略了
    (详细的设定不容易理解)
  2.3.2 Snes9x 1.39Mk3b DOS Version
    严格说,可以说是个debugger
    坦白说,要使用好不容易,不过个人比起上一个更喜欢用
    使用的时候,很有逆汗分析的实感(笑
    与Peer's Snes9x Tracer相比不同的是,CPU log输出的时候,
    同时输出的还有DB寄存器和堆栈指针
    尽管有优点,也有输出文件巨大这样的双刃剑
    还有,使用peer's通过][trace](不是[trace all])取得log,
    因为loop部分没有记录所以相当小
    没有附带readme的话,从什么地方下个[DOS版snes9x本家最终版的
    v1.26b(s9xd126b.zip),参考其中的README.TXT]
    ([-out of date-]中的人的教学,谢谢)
    详细请看s9xd126b.zip中的readme,这里只是作个最低限度的说明
    2.3.2.1 启动
      基本的,把rom放入sne9x.exe随意全屏启动
      在命令行(command line)下启动的时候
      DOS程序的快捷方式(short cut)的pif文件在命令行下运行的时候
      不知道怎么标题变的奇怪,无法设定
      在命令行下运行指定的可执行程序启动
      高速动作的时候请指定"-f ?"(?是跳桢数)
      又,debug mode启动的话指定"-d"
      还有,savedata(srm文件)是在同文件夹下的"snessnaps"文件夹
    2.3.2.2 操作
      用键盘操作
      不改变设定也很容易使用
      ・模拟器画面使用键
      ↑ :↑键
        ← :←键
        ↓ :↓键
        → :→键
        D :A键
        C :B键
        S :X键
        X :Y键
        Z :R键
        A :L键
        Enter :Start键
        Space :Select键
        Esc :程序结束
        F1~F10 :state load
        Shift+F1~F10 :state save
        Alt+F1 :切换到debug画面
        Alt+F2 :选择文件state load
        Alt+F3 :选择文件state save
    ・debug画面的命令行
        ? :命令行帮助
        t :执行現在位置的代码
        s :跳过現在位置的代码
        T :CPU的追踪开关On/Off (日志保存在trace.log)
        bs #n $XX:XXXX :n为0~4,$XX:XXXX是设置中断点的内存地址
        bs #n :#n(n号)中断点消去
        g :切换到模拟器画面
        q :程序終了
  2.4 二进制编辑器
    点这里使用[Stirling],说明略
    在[环境设定]->[按键分配]里设定一下[覆盖保存],[还原],[重做],[标记登陆/解除]
    [下一个标记位置],[上一个标记位置]的按键比较好
  2.5 16进制编辑器
    模拟器的RAM(修改码)搜索用的.有搜索修改码机能的模拟器没有必要使用
§3 分析対象的相关信息収集
 
§4 逆汗解析
也准备好了. 那就快点开始吧
解析对象是 XXXXX. 因为现在没有解析除此之外的意思. (最近开始转变想法了(笑))
<翻不下去了T-T>


说明:
这个资料本来是想翻译一下才发出来的.不过因为日语水平烂,一套标日才看了几课,对日语的工具也不是怎么熟悉,后来发现翻译不下去了,干脆就发出来吧,希望能有人继续翻译下,又或者只当参考资料也不错

原文来自「永久UnderConstruction」,不过现在那个个人空间可能挂了,就不给出url了


[ 此贴被hkk333在2006-02-21 08:35重新编辑 ]

[4 楼] | Posted:2006-02-21 08:27| 顶端
十字军



头衔:上面这家伙是个废柴上面这家伙是个废柴
该用户目前不在线
级别: 火花会员
编号: 78
精华: 18
发帖: 1171
威望: 5 点
配偶: 单身
火 花 币: 30626 HHB
注册时间:2002-11-27
最后登陆:2020-06-30
瓦伦利亚的骑士(I)游戏大陆的领主(II)
查看作者资料 发送短消息 引用回复这个帖子


进来谢楼主.

我应该是该死的蜡烛,是该死的蚕……

Orz
[5 楼] | Posted:2006-02-21 08:33| 顶端
hkk333



该用户目前不在线
级别: 火花会员
编号: 17693
精华: 1
发帖: 258
威望: 5 点
配偶: 单身
火 花 币: 24571 HHB
注册时间:2004-05-11
最后登陆:2017-10-14
查看作者资料 发送短消息 引用回复这个帖子


多谢,感觉这些还是有些参考价值的,好象日本也有玩家收藏了那个站点,现在那地方挂了,既然我翻不出了就干脆发出来吧,我这么想,希望能对同好有点帮助
[6 楼] | Posted:2006-02-21 08:59| 顶端
アルム



该用户目前不在线
级别: 注册会员
编号: 59908
精华: 0
发帖: 45
威望: 0 点
配偶: 单身
火 花 币: 737 HHB
注册时间:2006-08-25
最后登陆:2014-05-13
查看作者资料 发送短消息 引用回复这个帖子


修正和补充了一下部分ROM资料,已翻译成中文的才是修正了的。

适用:Tactics Ogre V1.2(日语),格式:smc,CRC:12F0A699
地址对应代码01的魔法、特技/职业/物品
无特别说明的数据只占1字节
部分单字节数值(物品重量、附加的数值等):ROM内数值为N、显示数值为A:N≤127时,A = N;N≥128时,A = (256 - N) × (-1);此式数值为10进制
可自由转职的主角 = 职业不为ロード的主角

职业代码:
http://ogre.org/ogrebattle/TO-PScode.html#ClassID
http://tocheat.tripod.com/classID.htm

物品代码:
http://ogre.org/ogrebattle/TO-PScode.html#ItemID
http://tocheat.tripod.com/itemID.htm

魔法、特技代码:
http://ogre.org/ogrebattle/TO-PScode.html#MagicID
http://tocheat.tripod.com/specialID.htm

资料修正、补充:
EB97 人物头像(代码:http://www7.atwiki.jp/tacticsogre/pages/23.html)
41B9E 魔法、特技/对敌首领效果(00有效、01无效、02有伤害无效果)
426E5 职业/特技修得等级(2字节,第1字节是特技代码、第2字节是修得等级)
42BC2 职业/属性(01风、02炎、03地、04水)
42CB0 职业/性格(01L、02N、04C,可叠加)
42DBF 职业/可装备魔法数量(00不能装备,要注意不能与固有特技有冲突)
42EAD 职业/初期LV
42F9B 职业/初期HP (2字节)
430BB 职业/HP成长率
4314B 职业/初期MP (2字节)
4326B 职业/MP成长率
432FB 职业/初期STR
4338B 职业/STR成长率
4341B 职业/初期VIT
434AB 职业/VIT成长率
4353B 职业/初期INT
435CB 职业/INT成长率
4365B 职业/初期MEN
436EB 职业/MEN成长率
4377B 职业/初期AGI
4380B 职业/AGI成长率
4389B 职业/初期DEX
4392B 职业/DEX成长率
439BB 职业/初期LUK(FE为继承转职前的LUK)
43A4C 职业/重量(28hex:WT修正为0,下限不明,游戏中最重的为6E,可自由转职的主角为FF)
43ADD クラス/物理耐性
43B6E クラス/風耐性
43BFF クラス/地耐性
43C90 クラス/火耐性
43D21 クラス/水耐性
43DB2 クラス/聖耐性
43E43 クラス/闇耐性
43EF4 职业/可否使用ダブルアタック(00不可、01可、可自由转职的主角为FF)
43FE3 职业/擅长武器(01剑、02斧、03锤、04爪、05扇、06杖、07枪、08鞭、09火枪、0A弓、可自由转职的主角为FF)
441C2 职业/投射攻击类型(00无、01投石、02手裏剣、03 指弾、可自由转职的主角为FF)
442B1 职业/可使用魔法种类
    ◆FF无
    ◆FE可自由转职的主角
    ◆00サンダーフレア+ファイアストーム+クラッグプレス+アシッドレイン+ナイトメア
    ◆01攻击魔法
    ◆02除神圣系和龙语言系外的全部魔法
    ◆03辅助+龙语言
    ◆04ライトニングボウ+イクソシズム+スターティアラ+ヒーリング
    ◆05辅助
    ◆06四元素攻击魔法+四元素デフ魔法+ライトニングボウ+スターティアラ+クリアランス
    ◆07クリアランス+ヒーリング+ヒーリングプラス+ヒーリングオール
    ◆08ライトニングボウ+クリアランス+ヒーリング+ヒーリングオール+リザレクション
    ◆09全魔法
    [以上种类无特别说明的,不包括神圣系和龙语言系,除FF外,都能装备スナップドラゴン;辅助:ネクロマンシー除外]
443A0 职业/特技1
4448F 职业/特技2
4457E 职业/特技3
4466D 职业/特技4
4475B 职业/移动类型(00钝步、01轻步、02飞行、03瞬移、05轻步+水上、08钝步+水中、09轻步+水中、0E飞行+浮游、0F瞬移+浮游、可自由转职的主角为FF)
    [00は鈍歩、+01で軽歩、+02で飛行、+03でワープ / +04で水上、+08で水中、+0Cで浮遊、+10で溶岩,前4种可与后4种组合,浮遊只能跟飛行或ワープ组合]
    [原本不能进水的职业改成“水中”后,显示上会有点问题:如男士兵进水后,头部以下变成女战士]
44849 职业/移动力(可自由转职的主角为FF)
44937 职业/忠诚度
44A26 职业/天候耐性(00弱、02普通、04强、可自由转职的主角为FF)
451DA 物品/种类(01剑、02斧、03锤、04爪、05扇、06杖、07枪、08鞭、09火枪、0A弓、0B弩、0C吹箭、0Dリムファイアー[汎用]、0Eカマンダスガン[汎用]+アッサルト[汎用]、0F盾、10护手、11欠缺、12铠、13袍、14盔、15靴、16戒指、17首饰、18[物品AA~AE]、19[物品AF~CE]、1Aガラスのカボチャ)
452CA 物品/属性(00物理、01风、02炎、03地、04水、05圣、06暗)
453BA 物品/装备位置(01双手、02单手[包括盾]、03戒指、04头、05首饰、06身体、07足、08道具)
454AA 物品/分类[物品列表](01头、02手、03体、04足、05袋)
4557C 物品/射程(00无法用于攻击,跟射程类型配合使用[46F66])
45655 物品/重量(龙化剑为FF)
4572E 物品/STR
4580E 物品/INT
458EE 物品/AGI
459CE 物品/DEX
45AAE 物品/VIT
45B8E 物品/MEN
45C6E 物品/LUK
    [RES系数值跟普通数值符号相反:ROM内数值为N、显示数值为A:N≤127时,A = N × (-1);N≥128时,A = 256 - N;此式数值为10进制 ]
45D4E 物品/物理RES
45E2E 物品/风RES
45F0E 物品/炎RES
45FEE 物品/地RES
460CE 物品/水RES
461AE 物品/聖RES
4628E 物品/闇RES
4646F 物品/价格(2字节,只算十位以上数值:价格320则为20 00)
46612 物品/STR成长率附加值
466E4 物品/INT成长率附加值
467B4 物品/AGI成长率附加值
46884 物品/DEX成长率附加值
46956 物品/VIT成长率附加值
46A26 物品/MEN成长率附加值
46AF6 物品/LUK成长率附加值
46BC6 物品/特性[攻](07恐怖、08魔兽支援、09龙支援、0A石人支援、0B屠龙、12封魔、13石化、14毒、15麻痹、16睡眠、17魅了、18?[鞭])
46CB6 物品/使用效果(参照魔法、特技代码表)
46D86 物品/特性[防](07恐怖、08魔兽支援、09龙支援、0A石人支援、0C防龙、0D防石化、0E防麻痹、0F防睡眠、10防魅了、11全异常无效、12封魔)
46E76 物品/特性[常](01飞行、02瞬移、03熔岩、04水上、05HP回复、06MP回复、07恐怖、08魔兽支援、09龙支援、0A石人支援)
46F66 物品/射程类型(00射程1武器+火枪+消耗品[射程1]、01枪[贯通,射程2]、02弓+弩+泛用火枪、03鞭[非贯通,射程2])

============================================
一些数据解析和修改资料站点:

永久UnderConstruction(此文出处?)
http://www.geocities.jp/to_546/

T.O_CHEAT(详细的ROM数据解析,PATCH下载)
http://tocheat.tripod.com/

タクティクスオウガ・バイナリ(详细的ROM数据解析,PATCH下载)
http://www7.atwiki.jp/tacticsogre/

Ogre.org(动态修改资料)
http://ogre.org/ogrebattle/howto.html

5人タクティクスオウガ(公式和一些数据)
http://homepage1.nifty.com/~yu/t_ogre/index.html


以上站点均为日站,连不上的请自行使用代理。
============================================

有了上面那些站的资料,不少东西都可以修改了(一般数值、商店、魔法种类、自军最大人数、可全武器擅长、随机战斗概率,等等),如果怕以后地址失效的话,用拖站软件全部下载下来吧....


[ 此贴被アルム在2006-09-17 12:39重新编辑 ]

[7 楼] | Posted:2006-09-07 17:49| 顶端
chatbot



该用户目前不在线
级别: 火花会员
编号: 22380
精华: 0
发帖: 363
威望: 0 点
配偶: 单身
火 花 币: 131 HHB
注册时间:2004-08-14
最后登陆:2024-11-25
查看作者资料 发送短消息 引用回复这个帖子


没多少句能看懂~
难道是关于千呼万唤的TO汉化进度的??

[8 楼] | Posted:2006-09-07 18:53| 顶端
千里孤坟

该用户目前不在线
级别: 论坛技术
编号: 71
精华: 55
发帖: 15654
威望: 44 点
配偶: 桂木弥生
火 花 币: 89378 HHB
注册时间:2002-11-27
最后登陆:2024-11-18
瓦伦利亚的圣骑士(II)游戏王国的浪人(I)咖啡馆的萌芽(I)波特の魂(I)海蓝之钻(II)图书馆の旅人(I)
查看作者资料 发送短消息 引用回复这个帖子


这个的作用主要是针对MOD而不是汉化。
[9 楼] | Posted:2006-09-07 19:04| 顶端
hkk333



该用户目前不在线
级别: 火花会员
编号: 17693
精华: 1
发帖: 258
威望: 5 点
配偶: 单身
火 花 币: 24571 HHB
注册时间:2004-05-11
最后登陆:2017-10-14
查看作者资料 发送短消息 引用回复这个帖子


多谢7楼的补充,希望有懂日语的人把那解析方法翻完整X_X
那个修改站点复活了,居然多了地图数据的作成?看来改地图确实是可行的?不过...

[10 楼] | Posted:2006-09-07 21:26| 顶端
haha007_jw



该用户目前不在线
级别: 火花会员
编号: 31299
精华: 1
发帖: 179
威望: 5 点
配偶: 单身
火 花 币: 24443 HHB
注册时间:2005-01-15
最后登陆:2013-09-03
查看作者资料 发送短消息 引用回复这个帖子


我是日盲,想问下这里边有没有关于修改每场战斗出击的敌人状态(装备什么的)的地址或者相关的知识?
[11 楼] | Posted:2006-09-11 03:27| 顶端

火花天龙剑 -> 皇家骑士团




Powered by PHPWind v3.0.1 Code © 2003-05 PHPWind
辽ICP备05016763号
Gzip enabled

You can contact us