はじめに
とりあえず現在は参考になりそうな書き込みを置いておきますので、参考にしてください。
正式にまとめますので・・・。
注)よくわからん人はSpriteToolを使ったほうが無難です。
必要なもの
- 英語版マリオワールドのROM(一度Lunar Magicでいじったもの)
- Lunar Magic
- スプライトのASMファイル
- Tweacker(SMW Centralから落としてください)
- 65816 Tricks Assembler Version 1.11(略してTRASM)
- (Lunar Address)
- バイナリエディタ
スプライトのASMファイル
SpriteToolが出るまでリンクは切っているようですが、ファイルは残っているのでリンクを貼っておきます。
手順
※現在は参考になりそうな書き込みを置いておきます。
861 名前: ◆zZZzZZzU/6 投稿日:2006/06/24(土) 11:51:19 サンプルのパッチのものも参考にして、なんとなく出来た気がするので手順。 ハンマーブロスの場合。 1.TwackerでROMファイルを開き、書き換えたいスプライトを選択する。 2.Codeの部分にコードを入れる。asmファイルに Tweaker code: 10B707010000XXXX と、いった感じで書いてあるはず。 3.XXXXの部分には使いたいASMポインタの値を書きます。 例ではXXXX=87A7となっているようです。 4.バイナリで89A7まで飛び、[22 00 80 19 60]に書き換えます。 5.asmファイルをTRASMを使ってコンパイルする。 6.binファイルが出来るので、それをバイナリエディタで開く。 7.バイナリエディタ内のファイルをコピーし、C8200に入れる。 8.おk。 正直、何故7でC8200に入れるかわからないです。 多分JSLでそこに飛ぶようになっているからだと思いますが。 しかし、JSLで何処に飛ぶのか、それが理解できないと 複数のスプライトが挿入できないような気がするのであります。 長文スマソ。わかりにくくて更にスマソ・・・。 どうやらSprite Toolというものが開発されているらしいので、そちらを待った方がいいかもです・・・。
862 名前:壁に耳あり、障子にメアリーさん 投稿日:2006/06/24(土) 12:22:29 >>861 おお、素晴らしい。 当該記事流し読みしたけど、なんかリアルタイム処理の問題で0C8200に入れる必要があるだの書いてあった気がする。 初期ROM状態で既にでなにかデータが入ってるけど、上書きしちゃって良いのかな >しかし、JSLで何処に飛ぶのか、それが理解できないと 4でJSL $19:8000を命令してるわけだけど、 SNESアドレス:$19:8000が、PCアドレスで$0C:8200となる。 SNESアドレス⇔PCアドレスのコンバータはLunar Addressを使うと楽。 後の問題は、複数入れるためにはスプライト番号を変えたいんだけど、 スプライト番号とアドレスの対応が分からない。ちょっとsprite関連の記事を読んでみる。
863 名前: ◆zZZzZZzU/6 投稿日:2006/06/24(土) 13:42:06 書き忘れましたが、LMでカスタマイズされたものではないと導入できないようです。 >>862 >上書き 0C8200あたりには00しかなかった気がするのですが。 だからたぶん影響は無いと思われます・・・。 >JSLの件 ここでもLunar Addressが役立つのですな。?です! お陰様でファイアパックンとハンマーブロスの導入に成功したであります。 http://smw-vip.hp.infoseek.co.jp/cgi-bin/sn/src/smw0750.png ファイアパックンはスプライト番号36を使いました。 XXXXは、[E41F]を使いました。36番は元々、E41Fだったらしいのでそのまま使用。 他のスプライトに影響は多分ない・・・と思うのですが。 それで、E61Fを[22 C4 82 19 60]に書き換え。 asmファイルの『org $198000』を、『org $1982C4』に書き換え、 TRASMでコンパイルし、binファイルの中身を 0C84C4(ハンマーブロスのコードの後)に入れました。 と、いった感じです。
911 名前:壁に耳あり、障子にメアリーさん 投稿日:2006/06/25(日) 20:00:22 >>863 >他のスプライトに影響は多分ない・・・と思うのですが。 カロンと骨メットが高速になってしまうようです
912 名前: ◆zZZzZZzU/6 投稿日:2006/06/25(日) 20:29:28 >>910 wikiにも書いてた? どの辺で詰まったのかkwskお願い。 >>911 前に歩かないね。 一応Tweakerでも確認してみたら、カロンと骨メットにはE42Bが使われていた。 やはり影響あったのね。 他の開き部分を探して使うしかないのか・・・。
913 名前:壁に耳あり、障子にメアリーさん 投稿日:2006/06/25(日) 21:00:47 E2B0(0xE4B0)あたりがダミーデータっぽいのでそこを使ってみた。
914 名前:壁に耳あり、障子にメアリーさん 投稿日:2006/06/25(日) 21:22:56 >>912 ASMポインタに関しては、同じバンクの中で空いた領域を指定することが出来ますよ 例えば、PCアドレスで$CF1EあたりのFFFF・・・は大丈夫だと思われます。 (前に自作したときはこの領域でもおkでした) ASMポインタに記述するときはヘッダ分削るので$CD1Eになります mikeyk氏がパタメットを作ったというのでwktkしていたけど やっぱりジタバタマリオになるのか・・・完全バージョンはやっぱり難しいみたいだなぁ(´・ω・`)
その他
- パタメットだけスプライト番号、12番を使わないとうまくいかないらしいです。