ファミコンのプログラム4 (563レス)
上下前次1-新
抽出解除 レス栞
166(9): 2014/04/18(金)18:15 ID:jpWSPUfh(1) AAS
画面表示中にパレットを書き換えるサンプルプログラムつくってみたので、興味があるひとはみてみてね。
自分は、情報がなくてけっこう試行錯誤したので。
外部リンク:www1.axfc.net
メタルスレイダーグローリーのIRQ割り込みを参考にしたんだけど、
7ラインくらい表示ができないのはしかたないのか。
もっといい方法とかあったら、教えてくだしあ。
167(1): 2014/04/18(金)21:05 ID:GCyjwP+C(1) AAS
>>166
中央が黒いのは、書き換え中に色が付くのを防ぐため?
168(1): 166 2014/04/19(土)02:10 ID:ENCcy0CN(1/2) AAS
>>167
うん。
たぶん、ラスター使えるようになってラスターでパレット変更もできるぜぃ、
と思って試した人(過去の俺とか)は、なぞのゴミが表示されて悩まされてると思う。
そのゴミをHBlankに押し込めるために、16byteの書き換えに7lineも画面表示を消してるって感じです。
175(2): 2014/04/21(月)23:59 ID:/pAmCg0v(2/2) AAS
>>166を改造させてもらった
外部リンク[zip]:www1.axfc.net
ゴミ消した
パレットの0x0dは使えないよ
垂直同期のパルスみたいな電圧になるから
176(1): 2014/04/22(火)00:47 ID:Ncm5fcM0(1/3) AAS
レンダリング止めていればBGの色が出ると思ってた
>>166のおかげで本気出せていろいろ勉強になったわ
>>172系のやつへの理解向上
レベルが一気に3あがった!
rtiの戻り書き換えだとか組み終わった後に
外部リンク[php]:forums.nesdev.com
full_palette.s
省10
177(1): 166 2014/04/22(火)03:41 ID:+4JN+sCM(1/5) AAS
>>175
おおお、これは技術の粋が詰まったコードですね!素晴らしい!!
私もレベル3上昇して、レベル4になった〜
クロック管理が神々しく緻密・・・
ちなみに、ゲームでこのテクニックを使うとすると、IRQが入りそうなタイミングで
メインスレッドはnop連打になってないとダメという認識でおk?
とすると、実用は難しいけど、、、
省9
178: 166 2014/04/22(火)03:55 ID:+4JN+sCM(2/5) AAS
いままでの自分の致命的な間違いに気づいた・・・
nopは2クロックだったのね。1クロックだとばっかり思ってた(^^;
よくいままでのコードうごいてたなぁw
182(1): 166 2014/04/22(火)20:46 ID:+4JN+sCM(3/5) AAS
>>180
>で、PPUのレンダリング止めると、PPUのバスが空くので
>その間は自由にVRAMアクセスできたと理解していたんだが
>違っていたかな?
そう思ってたんだけど、PPUのアドレスレジスタが0x3f**だと、
**の色(=ゴミ)が出力されるっていうのが、171のコード片の意味。
183: 166 2014/04/22(火)20:59 ID:+4JN+sCM(4/5) AAS
>>181
なるほど〜、
ハードウェアは素人(簡単なワンチップマイコンをいじったくらい)
なんで、解説してもらえて助かるっす。ありがと〜
用語があってるかわからないけど、バスコンフリクトってやつでいいのかな?
あとチップに損傷を与えたりはしないのかしら・・・
まぁ、あとは電子回路関係の情報で調べてみます。
184(1): 166 2014/04/22(火)21:04 ID:+4JN+sCM(5/5) AAS
連投でスマソ
>>181
追加で疑問。
そうすると、0x3f**以外のアドレスでも、そのアドレスのVRAMデータの色が出力されそうなんだけど、
0x3f**以外ではそうはならないみたいなんだよね・・・
これはレジスタ兼用でもそうならないものなのかな?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.240s*