2020年2月22日土曜日

改造スマブラ64の記録

日本版の64スマブラでCPUにランダム受け身をとらせることができた時の記録

ランダム受け身が実装されてる海外版の19XXのソースコードを見て
まずいらなそうな部分をクラッシュしない程度に削った
ソースコード中のROMアドレスやRAMアドレスがいちいち違うのを日本版用に修正した
アドレスはバイナリエディタの文字列検索で調べた
命令にアドレスが含まれてる(jump命令)と日本版と海外版で命令自体が違ってくるから、アドレスが含まれてない命令群を検索にかけると対応アドレスが見つかる
最後に気づいたのがRAMアドレスはゲームの場面場面で中身が逐一変わるということ

<使ったソフト>
msys2・・・19XXのビルド用、remixではいらない
Project64 Debugger・・・RAMのメモリデータと実行命令を見るため、dump機能でRAMのデータを出力できる(Project64 2.3、Bizhawk、Nemu64でもok?)
HxD・・・バイナリエディタ、ROMファイルの特定アドレスに飛んだり検索したり
LemAsm・・・ROMを逆アセンブルして命令を見るためのソフト
WinMerge・・・asmファイルの比較

<参考サイト>
https://github.com/jordanbarkley/19XX
19XXのコード

https://github.com/ARM9/bass
の/bass/doc/bass.html・・・asmファイルの文法のドキュメント

0 件のコメント:

コメントを投稿