したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

情報提供スレ

14MHS ◆Kc5p0MalEM:2005/11/04(金) 02:16:36 ID:sBCrmYV6
図に書いたほうが分かりやすかったですね。
そちらのを使わせてもらえば

AのROM:トレイナー領域 │通常プログラムA│マップデータ_____ │通常プログラムB|通常プログラムC|キャラクタデータ(CHR)
BのROM:追加プログラムA│通常プログラムA│マップ│追加プログラムB|通常プログラムB|通常プログラムC|キャラクタデータ(CHR)

となります(B'のROMはマップ部分が違うだけでBと一緒です)
ひとまずここまでの作業をやってからエディタで面データの調整をしたりします。
トレイナーを一旦書くのはプログラムの容量を測るためといいますか、
たとえば逆さ土管などををトレイナー領域に書いておけば
エディタでマップを作るときに逆さ土管のオブジェクトが実際使えますよね。
こういうマップを作るときに必要になりそうな素材などをあらかじめトレイナー領域に書いておくのです。
親切なことにトレイナーつき41,488バイトのROMがサポートされているからこそできる方法です。
もちろん最終的にはこのトレイナーを取っ払わないといけないので最初から最後まで頼るわけにはいかないのですが。
最終的にマッパー拡張(ひとまずマッパー1)をした場合はこのようになります

NESヘッダ│通常プログラムA│マップA│追加プログラムB|通常プログラムB|通常プログラムA|マップB|通常プログラムB|バンク切り替え操作(SRAMの一部)|追加プログラムA(SRAMの一部)|SRAM転送|キャラクタデータ(CHR)
_____|_______________バンク1__________|____________バンク2________|________________バンク3_________________|

このとき起動するとまずバンク3が読み込まれ、SRAM転送としてバンク切り替え操作以降、追加プログラムAまでを$6000に転送します
トレイナーを使用してアドレス指定をいちいち変えるのが面倒だった場合は追加プログラムAを$7000になるように書いておきます
転送が終わったらバンク切り替え操作を読み込むようにジャンプし、バンク1を読み込みます
この時点でメモリ空間は次のようになります

|$0000 RAM $07FF|$0800 RAMのミラー等I/Oレジスタ $5FFF|$6000 バンク切り替え操作|$7000 追加プログラムA|$8000 通常プログラムA|マップA|通常プログラムB $FFFF|

この後に必要に応じてゲーム中バンク2に切り替えたりしてマップデータを交換します
さて、ここまで書いて非常に分かりにくいだろうと思ったけどそのまま投稿。

>itemboxのバグ
すいません、すでにどこでこれに答えたのか忘れかけてます。
確かツタを上るときに音がするのと上ってもルーム移動できないようになってた記憶があります。
この修正は結構簡単でして、前者は叩いたブロックが壊せないブロックだった場合の音を鳴らす分岐
後者は豆の木効果代用ブロック指定を見比べてみればわかります。
どこをどう間違ったのか、値が間違ってるはずなのでここを直せば正常に動くと思います。
ちなみに隠し1UPキノコは地上以外に設置すると中身化けますのでご注意ください。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板