れーすのエグゼ流星Blog

エグゼとゲームと雑記

エグゼ解析したりゲーム作ったりいろいろ。

エグゼハック パレット編(ダークロックマン ダークブルース)

リアルが落ち着いてきたので久しぶりに簡単なパレットハック

f:id:rai17321:20160924125347j:plain

f:id:rai17321:20160924125400j:plain

f:id:rai17321:20160924125406j:plain

 

簡単な大体の流れ

変えたいものを決める → それのパレットのアドレスを特定 → バイナリエディタで目的のパレット配列に変える

 

詳しい流れ

変えたいもの(今回で言うならば ロックマン ブルース シールド ブルースのソード振りかざしの腕)のスプライトをダンプしておく。

 

SpliteListViewerの右下にスプライトのオフセット群が書いてあると思う、それを元にパレットの場所を把握

f:id:rai17321:20160924132630j:plain

ちなみに、ROM Offsetにチェックを入れているとROM全体で見たスプライトの場所を指している。外した場合はスプライトのみの場所を指しているので、必要に応じて使い分ける。

 

ただ、なぜかSprite File Infoが見切れてるんだよね。最後の方わからねえ!

というわけなので、パレット列を元にパレットツールで特定していく(MacでWineとか使ってリストビュアー起動するとちゃんと表示されるらしいです)

 

615.... となっているので体感6150あたりじゃね? ってことで検索。

f:id:rai17321:20160924133052j:plain

 

それっぽいのあるね! リストビュアーとにらめっこしながらそれっぽい開始ブロックをクリック

f:id:rai17321:20160924133145j:plain

というわけでロックマンのパレット0番目の列は615Eにあったというわけでした。

 

あとはバイナリエディタで煮るなり焼くなりって感じです。

 

他の特定手段としては、VBAのOAMビュアー、パレットビュアーでパレットを地道にみてバイナリエディタで特定していくという手段もあります。最終手段ですね。