【講座】第1回|バイナリエディタ「Stirling」を触ってみよう~♪
やっほーー!スーパーマリオRPG大好きお兄さん・飯でごじゃるよ!
今回から、Stirlingを使って改造の基礎を教えたいと思います!
最初は、Stirlingの使い方からレクチャーしていきます。
まずは、Stirlingでなにが出来るのかを見ていきましょう。
分かりやすいように下(図1)に図を出して説明していきます。
メニューバーには、左から【ファイル】【検索・移動】【設定】【ヘルプ】とあります。
まずは【ファイル】をクリックすると図2のようになります。
(赤く塗りつぶされているのは、過去に読み込んだROMデータの順番です。)
【ファイル】のプルダウンメニューには、上から【新規作成】【開く】【プリンタの設定】【読み込んだROMデータ】【終了】とあります。
最初からデータを作る場合は【新規作成】
ROMデータを読み込んでからいじる場合は【開く】を押してください。
今回は改造をメインでやるので基本【開く】しか使いませんので
【開く】にカーソルを合わせクリックしてください。
すると...
図3のように参照フォルダが出てきて、ファイルを選択したら右下の
「開く」をクリックしてください。
そうすると図4のようにROMデータが読み込まれ、このような画面が
出てきました。
意味分からないですねww
ちなみにこれは【日本語版スーパーマリオRPG】の元データでございます。
ゲームのデータはこのような数字の羅列で作られております。
しかも全て【16進数】で表されています。
では、16進数とはなんぞや?という方に優しくレクチャーしていきます。
私達人間が普段使っている数字は「0~9」までの10個の数字を使っております。(別名:10進数)
が、しかし、コンピュータが扱う数字は「0~9、そしてA~F」までの16個の数字と英字で表されています。
16進数は扱い方は少し注意が必要です。0、1、・・・9の後、10進数でいう「10~15」はアルファベットの「A~F」を使います。
例. 桁が上がる
↓
10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... ... 32 ... ... 160 ... ... 255
16進数 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 ... ... 20 ... ... A0 ... ... FF
↑
桁が上がる
改造をするのにかなり大事な事は【16進数を10進数に瞬時に頭の中で変換
出来るか】ここに尽きると私は思っております!
上の例が理解出来れば次の計算も分かると思います!
例題をいくつか出したいと思いますので頭の中で計算してみてください。
問1. 16進数 32 の 10進数はいくつ?
問2. 16進数 4B の 10進数はいくつ?
問3. 16進数 64 の 10進数はいくつ?
問4. 16進数 14 の 10進数はいくつ?
問5. 16進数 7B の 10進数はいくつ?
問6. 16進数 FA の 10進数はいくつ?
皆さん。頭が混乱しているでしょうか?w
それでは正解発表です。
問1. 16進数 32 の 10進数はいくつ?
考え方として様々あるのですが、
私は「16進数の数が10増える度に、10進数の数が16増える」
という考えで暗算をしています。
これで頭がこんがらがって逆に分かりづらかったらすみません。
そうすると、問1の答えは、16×3=48 と 2 で 分解でき
48+2=50 そう。答えは50となります。
わかったかな??
続けて問2をやっていきましょう。
問2. 16進数 4B の 10進数はいくつ?
16×4=64 と B で分解でき、16進数の「B」は10進数で「11」なので
64+11=75 そう。答えは75となります。
問3. 16進数 64 の 10進数はいくつ?
16×6=96 と 4 で分解でき、96+4=100 答えは100です。
問4. 16進数 14 の 10進数はいくつ?
16×1=16 と 4 で分解でき、16+4=20 答えは20です。
問5. 16進数 7B の 10進数はいくつ?
16×7=112 と B で分解でき、16進数の「B」は10進数で「11」なので112+11=123 答えは123です。
問6. 16進数 FA の 10進数はいくつ?
16進数の十の位の「F」は10進数で「15」なので16×15=240
16進数の一の位の「A」は10進数で「10」なので
240+10=250 答えは250です。
最後の問題は一の位も十の位もアルファベットだったからちょっと難しかったかな?
でも、この問題をスラスラ解く事が出来れば、
貴方はもう「ロムハッカー(ゲーム改造者)」を名乗っても良いくらいだぜ!!
少し計算しすぎて頭が疲れてきましたね。本題へ戻りましょう。
図4についてもう少し説明致します。(下の図5で説明)
上の図5の左側にある赤い範囲は【アドレス】と言います。
このオフセットアドレスと、上にある青い範囲にある数字を見て緑の範囲の【元データの中身】を見極めます。
例.
000000D7の値を見たい時は、左の【000000D0】と上の【07】が交差する所が、そのアドレスの値となります。
ということで、値は【20】となります。(図6)
これで
・ROMデータの読み込み
・16進数を10進数に変換
・アドレスの値の読み方
が、出来るようになりましたね!
ここまで出来れば十分です。
次回は、Stirlingの基礎レクチャー・後編!
・値の変え方
・Stirlingの他の機能
に関する事をレクチャーしていきますよ~♪
(スーパーマリオRPGの改造に関する質問や疑問などは、
私のTwitterのDMやSkype上でお答え致します。(出来る限りね。))
Twitter : https://twitter.com/ensyou_2525_
Skype : makeinunoniwaka
フォロー・スキ・記事のシェア
ご感想・ご質問・叱咤激励のコメント
どしどしお待ちしております!気軽に話しかけてね~♪(^^♪
2020年2月25・26・27日 記事作成
2020年3月3日 タイトル再編集
スーパーマリオRPG大好きお兄さん・飯より