ファミコンのプログラム4 (567レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
540(3): 539 [sage] 2022/03/15(火) 21:51:26.58 ID:+prqqqiR(2/4) AAS
物は試しとゲーム動作中にCHAROMを引っこ抜いたところグラフィックがバグりました。
エミュではPPUメモリ$0000-$1FFFにコピーされているように見えるけど、
実際のハードでは、メモリは無くPPUとCHAROMのアドレス線が接続されているだけなんでしょうか?
バンク切り替えというのもアドレス線の接続先をコントロールするICに信号を送っているだけなので
仮に毎フレーム同じバンク番号を指定し続けても負荷はかからないと…。
541(1): 540 [sage] 2022/03/15(火) 22:18:10.46 ID:+prqqqiR(3/4) AAS
連投すみません。
ROM領域と言われるチートコードでは干渉不可な場所と
RAM領域と言われる干渉可な場所があることを思い出しました。
PPUの0000から1FFFはROM領域という訳で、多分それはアドレス線で接続されており。
常にCHA ROMと同期しているイメージな気がしました。
自己解決してしまったと思います。お騒がせしました。
542(1): 名前は開発中のものです。 [] 2022/03/15(火) 22:31:36.87 ID:AYr/3bBN(1) AAS
>>539-541
少なくとも >>539539(2): 名前は開発中のものです。 [sage] 2022/03/15(火) 21:29:28.09 ID:+prqqqiR(1/4) AAS
ハード側のイメージができないので質問させてください。
mapper 206のCHRバンク切り替えは400byte毎に小分けで切り替えられますが、
市販ゲームのプログラムを覗くと、例えばAのシーンでは$0000-$1FFFまで毎フレーム同じバンクを指定し続けています。
ゲームとして必要なタイミングでのみバンクを切り替えればいいのに毎フレーム同じバンクを指定して負荷ってかからないのでしょうか?
エミュとかでPPUのメモリを覗くとCHA-ROMのデータが$0000-$1FFFに展開されていますが、
これはCPUに命令されたタイミングで1byteずつコピーしているのでしょうか?
メモリに展開?されたなら、CHA-ROMを引っこ抜いてもバンク切り替えが起きない限りグラフィックはバグらなさそうなイメージがあります。
ここら辺が全くイメージできません。
拙い文章で申し訳ございませんがよろしくお願いします。
の時点ではバンク切り替えがどういうものか理解できてないように見える
それが >>541 で自己レスするまでに調べて理解できたってことなんだろうか?
549: 540 [sage] 2022/10/02(日) 11:40:37.85 ID:jA1jUXrd(1) AAS
>>546546(3): 名前は開発中のものです。 [] 2022/03/29(火) 22:57:50.51 ID:SFxLAwoX(1) AAS
>>543
こういう風に繋がっているけど、どのように動作するかイメージわく?
PPUのアドレス線 PA0 〜PA9 → CHR-ROMのアドレス線 A0〜A9 に接続
PPUのアドレス線 PA10〜PA12 → Mapperのチップに接続(バンクレジスタの選択)
PPUのアドレス線 PA13 → CHR-ROMのCEに接続(PPUアドレス $0000-$1fffの時にCHR-ROMの出力が有効になる)
Mapperのチップのバンクレジスタの出力 6bit → CHR-ROMのアドレス線 A10〜A15 に接続
PPUのデータ線 PD0〜PD7 → CHR-ROMのデータ線 D0〜D7 に接続
今気づきました。ありがとうございます。
あの後、勉強&ファミコンの分かりやすい回路図を見つけて理解できました。
バンク切り替えは、PRG命令でCPUのデータバスとアドレスバスからhi/loが出る→ロジックICが受ける→ロジックICがEPROMのA15等をhiに固定し見たいデータに切り替える。
ファミコンは無いけどROMが複数個で構成されてるタイプであればOEをうまく切り替えて見たいデータに切り替える。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s