08/04/05 04:27:36 ItJTvWqQ0
うーん、実は碌に動作確認してないなんて言えない流れかも。
Mapper追加はnnnesterJのソース使えば比較的簡単なのよ。
今回のMapper228であれば、nnnesterJソースの228.cppに対して、
・以下をimport
java.io.DataInputStream / java.io.DataOutputStream / java.io.IOException
・関数全てから"NES_mapper228::"をとって、行頭に"public final"追加
・関数全体を"public final class Mapper228 extends Mapper"で囲う(class化)
・コンストラクタ追加
public Mapper228(NESCore nes) { super(nes); }
・関数の単純置換
set_CPU_bankの置換
set_PPU_bankの置換
→関数の最後の数字を第1引数として追加。
[例] set_CPU_bank4(prg_bank*4+0); → set_CPU_bank(4, prg_bank*4+0);
NES_PPUクラスメソッドの変更
→NES_PPUクラス(C++)をNESCoreクラス(java)に変更
[例] NES_PPU::MIRROR_HORIZ → NESCore.MIRROR_HORIZ
こんだけ。他のマッパも同じような考えで結構簡単に移植できる。
実際、自分は上の対応で別マッパが移植できたから、お試しでMapper228のソース作ってみただけだし。
ま、モノによっては上の方法だけではダメなのもあるけどね。
動かしてみたいみたい人は同じ事してみればいいと思うよ。
ソース再UPは>584みたいのがいるからやめとくわw