バイナリ・エディッタの妖しい使い方講座
 
 

必要知識
 
はじめに

準備する物
  
講座基本編

 講座発展編

知って置いて編
 
 最後に
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


必要知識
 
 
 
 
 

 

10進数と16進数の変換
  
10進数の場合・・・1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18.... 
               ...249,250,251,252,253,254,255,256,257... 
16進数の場合・・・1,2,3,4,5,6,7,8,9, A, B, C, D, E, F,10,11,12.... 
               ... F9, FA, FB, FC, FD, FE,  FF,100,101... 
  
16進数の場合9の次にAとなり順にB,C,D,E,Fと増えていき、F(10進数では15)に1を足すと 
ようやく1桁繰り上がり10(10進数に換算すると16)となる。 
  
 10進数<−>16進数の変換が出来る関数電卓などがあれば十分だと思います。
 

ここでは10進数の場合数字の右下に小さく1016進数の場合小さく16と書かせていただきます。
例)10進数の200 −> 20010
例)16進数の200 −> 20016

 


 
 

はじめに
 
 

 

 バイナリ・エデイッタを使用すると自キャラのHPはおろか経験値、持ち金、持ち物 、
その他のステータス、ちょっと高度になりますが敵キャラ(最後のボスも含む)のHPなども変更することが出来ます。(^^; 
 簡単に強くなれる上不要な経験値上げもなくなる反面、ゲームをつまらなくしてしまうという欠点も持ち合わせています。 
 また、関係のないところを間違って書き換えるとゲーム自体壊れてしまいます。 
 あくまでも個人の責任において書き換えて下さい。

 

 準備
  する物
・書き換えるゲーム
・エデイッタソフト
・気合い&根性 (^^;

これらがあれば十分です。また私の環境を書きますと、
・PC−9821v200 & 自作PC(dos/v)
・狐's バイナリエディタ Version 2.05 (Win)

 


 


講座基本編

さて、題材としてアリスソフトの「王道勇者」を取り上げてみます。
このゲームは経験値上げが面倒なため久々にエディッタを使用したゲームです。(^^;
 
 
 
まず書き換えたい数値をメモる。 
左のSTATUSの EXP&GOLD
を書き換えるとしましょう。
    1,まず、数値をメモる。  EXP  13730
                    GOLD 39689

    2,取りあえず一番上にセーブする。
        このときセーブした時間もメモるとどのファイルにセーブしたかを簡単に判ります。
        ちなみにメモる時間はWin95の右下にある時計の時間です。

    3,1でメモった数値を16進数に変換
                     EXP  1373010 −> 35A216
                     GOLD 3968910 −> 9B0916 
     
     そして、1バイトごとに数値をいれかえる。

                     EXP  35A216 −> A2 35  
                     GOLD 9B0916 −> 09 9B

     例) 1234516 のばあいは、 45 23 01 となる。
        1234567890816の場合は 08 89 67 45 23 01
        要するに、1桁目から2桁単位で数値を入れ替える。

    4,ゲームを最小化するか終了する。

    5,エディッタを起動。(ここでは狐's バイナリエディタを使用)

    6,エクスプローラーでアリスソフト−王道勇者のフォルダ(ディレクトリ)を開いて
       更新日時が一番新しいファイルを探す。
     王道勇者で一番上にセーブした場合は、「王道SA.ASD」となってるとおもいます。
      見つけたファイルを別のフォルダにコピーしてバックアップをとっておく。
     
    7,6のファイルをエディッタで「読みとり専用ファイルとして開く」のチェックを解いて開く。

    8,すると、気の遠くなるような数字の羅列が出ます(下図)。(^^;


    9, 編集−検索 でEXPの数値A235を打って探す。(下図) 

       
    10,検索結果が出る。(下図) 
       
    11,アドレス(データの住所みたいなもの)の29F0行の+6列=29F6にA2,
                              29F0行の+7列=29F7)に35がありました。
      
    12,経験値の場所が判ったので早速書き換えてみましょう。
       ただし、ここで注意しないといけない点は、経験値、持ち金の上限です。

       16進数は1バイトで FF16(25510) 2バイトで FFFF16(6553510)が最大である。
       経験値は2バイトを使用しているので、思い切って6553510にしちゃいましょう。(^^;

    13 ,INSキーを押して上書きにする。下図@
        A2をFF,35をFFに上書き修正する。下図A

     
    14,上書き保存をして次にお金も増やしましょう。(^^    やり方は同じです。まず、
         1,検索で 099Bを探す。
         2,お金も2バイト使ってるので、最大は FFFF16(6553510)までOK。  
         3,099BをFFFFに修正して保存。

    15,ゲームを起動もしくは最大化し、セーブデータの一番上(書き換えたデータ)を読み込む。

    16,すると、下のようになる。


      
    17,後は遊ぶだけ...(^^;

 
 
 
 
 
 
 
 講座発展編


 さて、1つだけしかないアイテムや0個のアイテムを 0116や0016で探すのはちょっと無理なのであきらめて下さい。00で検索すると検索結果が軽く100以上をはじき出すのでちょっと無理。
とは言うものの、どうしても増やしたい最強のアイテム。(^^; 
 
そういう場合は、
 
1,2カ所にセーブをする。先に出た「王道勇者」の場合、1番上&上から2番目に
  全く同じ物をセーブする。
 
2,その後、片方だけそのアイテムを捨てるなりしてターゲットの数字のみを変えてセーブする。
  間違っても使用して他の能力を上げないようにね。
  
3,捨てる前のデータ&捨てた後のデータを比較する。エディッタソフトには比較もしくは相違点など
  でデータの違うところをはじき出すという機能がついているのでここを利用して下さい。

4,すると、違うところがはじき出されるのでそこを書き換える。お好みにより0からFF16(25510
  までOKです。
  この荒技を使えば、アイテムを最大100までしかもてないゲームでも1バイトの最大値は
  FF16(25510)なので255個持ててしまう。
 


 
 

 

  知っておいて編  
 
 
 
 もう一つ忘れてならないのが、セーブデータの暗号化もしくはチェックサム付きの物があります。
 簡単に言いますと、
 
 暗号化・・・・・セーブデータ全体もしくは一部をある法則に従ってデータを別の文字に
         変えるという物。

 チェックサム・・・セーブデータの最後もしくは途中にデータが改変されてないかをチェックする物。
          例えば自キャラのHP+MP+攻撃力+...と足していった時の下5桁を全く別の
          部分に記録して置いてゲームロード時に一致しているかをチェックする。
 
 基本的にこの上記2種類がある。チェックサムは光栄さんが使用している。古い98ゲームは暗号化
した物も見かけたが、最近の物は有るかどうか判らない。 (^^;オイオイ
 
 チェックサムの位置は「発展編」の要領で見つけることが出来るが、どのようにチェックしているか
判らなければ書き換えしても「データが異常です」と出て読み込みが出来ない。
 しかし、それでも解析された方がいるので凄いです。三国志Yの新武将エデッタなるもんです。
興味のある方はいろいろと探してみてはいかがでしょうか?
 
 

 
 
 

  

 最後に

こんな感じで講座を進めましたが、私自身はあまりこう言うことを本格的にしないため
敵キャラのエディットなどは全く出来ないです。(^^;
セーブデータの改造ぐらいが精一杯ですので、それ以上のことを期待されている方は
他のHPに相談して下さい。ここに書かれていることであればある程度は
質問に対してお答え出来ると思いますが、出来ないこともあるとお考え下さい。