ファミコンのプログラム4 (563レス)
ファミコンのプログラム4 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
166: 名前は開発中のものです。 [sage] 2014/04/18(金) 18:15:30.91 ID:jpWSPUfh 画面表示中にパレットを書き換えるサンプルプログラムつくってみたので、興味があるひとはみてみてね。 自分は、情報がなくてけっこう試行錯誤したので。 http://www1.axfc.net/u/3224863 メタルスレイダーグローリーのIRQ割り込みを参考にしたんだけど、 7ラインくらい表示ができないのはしかたないのか。 もっといい方法とかあったら、教えてくだしあ。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/166
167: 名前は開発中のものです。 [sage] 2014/04/18(金) 21:05:20.40 ID:GCyjwP+C >>166 中央が黒いのは、書き換え中に色が付くのを防ぐため? http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/167
168: 166 [sage] 2014/04/19(土) 02:10:32.86 ID:ENCcy0CN >>167 うん。 たぶん、ラスター使えるようになってラスターでパレット変更もできるぜぃ、 と思って試した人(過去の俺とか)は、なぞのゴミが表示されて悩まされてると思う。 そのゴミをHBlankに押し込めるために、16byteの書き換えに7lineも画面表示を消してるって感じです。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/168
175: 名前は開発中のものです。 [sage] 2014/04/21(月) 23:59:09.10 ID:/pAmCg0v >>166を改造させてもらった ttp://www1.axfc.net/u/3227965.zip ゴミ消した パレットの0x0dは使えないよ 垂直同期のパルスみたいな電圧になるから http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/175
176: 名前は開発中のものです。 [sage] 2014/04/22(火) 00:47:42.57 ID:Ncm5fcM0 レンダリング止めていればBGの色が出ると思ってた >>166のおかげで本気出せていろいろ勉強になったわ >>172系のやつへの理解向上 レベルが一気に3あがった! rtiの戻り書き換えだとか組み終わった後に ttp://forums.nesdev.com/viewtopic.php?t=6484 full_palette.s の偶奇同期を見つけた この簡潔なソースで横ブレの無さのキモさといったら >>173 BGのレンダリングは内部で$3f00へアクセスするんだろうけど そのバグ挙動なのかね ttp://wiki.nesdev.com/w/index.php/Visual_2C02 これ結局まだいじったことないんだけど、使いこなせれば理解できるのかな!? ところで、また謎現象を見つけてしまった ttp://wiki.nesdev.com/w/index.php/PPU_registers#Bit_0_bus_conflict ttp://forums.nesdev.com/viewtopic.php?p=112424#p112424 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/176
177: 166 [sage] 2014/04/22(火) 03:41:30.42 ID:+4JN+sCM >>175 おおお、これは技術の粋が詰まったコードですね!素晴らしい!! 私もレベル3上昇して、レベル4になった〜 クロック管理が神々しく緻密・・・ ちなみに、ゲームでこのテクニックを使うとすると、IRQが入りそうなタイミングで メインスレッドはnop連打になってないとダメという認識でおk? とすると、実用は難しいけど、、、 ジャストアイデアとしては 2、3ラインくらい前にIRQいれて、一時的にメインスレッドをnop連打ループに切り替えて、 終わったらまたもとのメインスレッドに戻すというのは可能かな? 考えるだけで、脳髄が痛い・・・ >パレットの0x0dは使えないよ 一部の黒はつかっちゃだめというのは聞いてたんだけど、反対におぼえてたみたい(^^; 今後は0x0f使います〜 >>176 の情報も含めて、いろいろありがたい(^^ やっぱり、コードは晒してみるものだなぁ・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/177
178: 166 [sage] 2014/04/22(火) 03:55:38.11 ID:+4JN+sCM いままでの自分の致命的な間違いに気づいた・・・ nopは2クロックだったのね。1クロックだとばっかり思ってた(^^; よくいままでのコードうごいてたなぁw http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/178
182: 166 [sage] 2014/04/22(火) 20:46:59.02 ID:+4JN+sCM >>180 >で、PPUのレンダリング止めると、PPUのバスが空くので >その間は自由にVRAMアクセスできたと理解していたんだが >違っていたかな? そう思ってたんだけど、PPUのアドレスレジスタが0x3f**だと、 **の色(=ゴミ)が出力されるっていうのが、171のコード片の意味。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/182
183: 166 [sage] 2014/04/22(火) 20:59:26.06 ID:+4JN+sCM >>181 なるほど〜、 ハードウェアは素人(簡単なワンチップマイコンをいじったくらい) なんで、解説してもらえて助かるっす。ありがと〜 用語があってるかわからないけど、バスコンフリクトってやつでいいのかな? あとチップに損傷を与えたりはしないのかしら・・・ まぁ、あとは電子回路関係の情報で調べてみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/183
184: 166 [sage] 2014/04/22(火) 21:04:00.85 ID:+4JN+sCM 連投でスマソ >>181 追加で疑問。 そうすると、0x3f**以外のアドレスでも、そのアドレスのVRAMデータの色が出力されそうなんだけど、 0x3f**以外ではそうはならないみたいなんだよね・・・ これはレジスタ兼用でもそうならないものなのかな? http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/184
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s