スーパーマリオブラザース3の hackrom を作ってみた。5-3 でのみ使えるくつを最初から強制装備させたもの。
http://www.nicovideo.jp/watch/sm10638946
絵のつじつまをあわせる
くつフラグを on にすることは簡単だったのだが、くつのスプライトを表示させるのがとても大変だった。
スプライトのキャラクタバンクは 0x20 個を一度に登録できて、この中に常用させるくつをいれる。このため、削ったキャラは別バンクに移動か削除させている。リストアップする。
- コインが跳ねる絵 → 3 つのキャラをアニメーションさせてるが 2 つに変更
- 甲羅をぶつけた絵, しっぽで叩いた絵 → 左上2番目に変更
- 小さな星 → べつのバンクに移動
小さな星はボム兵の爆発とブンブンがやられた絵の2通りなので彼らがいるバンクに移動。ブンブンのバンクは空きがあったのでよかったが、ボム兵はプーの投げるスパナの3つのうち、1つを転用。キャラは削ってないが、ちょっといわかんあり。キャラを替えるだけでは絵がちゃんとでないので、プログラムROMにあるスプライト属性のデータも変更する。
キャラは楽なほうで、パレットの修正はもっと大変。パレットは0から3まで取るので値をいろいろなものに使い回している。プログラムROMの該当箇所をみつけるのもかなりの苦労で mess のトレースを何度も使った。それでも辻褄が合わないものは諦める。
そもそもくつのパレットは敵のパレットのため、プレイヤー側のパレットとして利用するのに限界がある。くつのパレットを味方のパレットするのが一番楽で矛盾が出にくいのだが、カラフルでなくなるのもさみしいなと思ってる。
一番の大変な箇所が、コクッパのシーン。くつの色がどきつかった。このためコクッパのパレットを 2 から 3 に移動し、2 をくつ専用にしてしまった。杖の色は2がメインで、3が点滅用っぽいが、直すのに心が折れた。よって杖の色が青くなっている。ここまでやるならスーパーファミコンに移植された方をいじったほうがいいと思うけど、おれスーファミを持ってないんだよね。
さっきテストプレイしたら world 8 のブンブンのパレットがコクッパの処理を流用しているらしく矛盾が判明。砦と一緒にしてほしかった...
ステージ補足
泳げないので水中ステージを直さないとなーと思ってたら、通路を(白)ブロックで埋められているほうが多いという。
2-ピラミッド
安易にブロックを減らしたが、 2-3 の前例もあるので P スイッチを設けようかと思っている。それ以外に解法がでてきそうな気もする。
3-砦-2
普通のプレイヤーレベルで壁蹴りを安定させることが出来れば、ブロックを戻すことも検討。
3-9
ここも P スイッチを設置しようかな...
6-5
甲羅をもったまましっぽかたぬきで飛ぶことを要求するのでクリアできない。流れでは 6-5 or 6-6 の選択制なので地形を直す予定はない。
7-4
唯一クリアできない水中ステージ。このステージはクリア必須なので、悩ましい。救いは近くに土管があるのでジュゲムの雲で確実に通過できることだ。この地形が何もない場所に適切に敵を配置するか、クラゲを配置するか。
7-5
クリアをしなくてよい面。ブロック塞ぎ。安定して甲羅を蹴ることができるんだけど、甲羅をもてないので1ブロックを減らすしかないようだ。
7-砦-1
しっぽかたぬきで飛ぶことを要求するのでクリアできない。7-4と違いジュゲムの雲の回避は失敗する。隠しブロックで足場を作るしかないみたい。
7-7
くつでプレイするととてもつまらない上に身長制限あり。
7-9
ブロック塞ぎ + クリア必須。
8-砦
経路が何通りかありそうでしっかり調査していないが、最初にブロックを壊す高い身長制限と、最後にしゃがむ必要がある低い身長制限がある。