ファミコンのプログラム4 (567レス)
ファミコンのプログラム4 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
185: 名前は開発中のものです。 [sage] 2014/04/22(火) 23:02:12.52 ID:SP0raU7v >>182 なるほど、了解です。 自分も実験してみよう。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/185
186: 名前は開発中のものです。 [sage] 2014/04/22(火) 23:13:05.47 ID:SP0raU7v >>184 The PPUDATA read buffer (post-fetch) ttp://wiki.nesdev.com/w/index.php/PPU_registers#The_PPUDATA_read_buffer_.28post-fetch.29 ここに $0000-$3effは内部リードバッファから返すが、$3f00-$3fffは(PPU内部の)データバスに直接配置されている と書かれているので、この辺りの差で挙動が変わるっぽいですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/186
187: 名前は開発中のものです。 [sage] 2014/04/22(火) 23:47:45.15 ID:Ncm5fcM0 >>180 >seiは要らない しまった、モロ立ってた どうも >>181 パレット$3fxxは通常はPPU内部アクセス、つまり擬似NTSC信号を生成する回路とのやりとりであって 普通のPPU空間には出力されないとどこかに書いてあった気がする ttp://nesdev.com/2C02%20technical%20reference.TXT - palette RAM is accessed internally during playfield rendering (i.e., the palette address/data is never put on the PPU bus during this time). ttp://wiki.nesdev.com/w/images/d/d1/Ntsc_timing.png 画像の通りパレットのアクセスはない しかしこういう挙動もある、これはレンダリング止めた場合だろう? Additionally, when the programmer accesses palette RAM via $2006/7, the palette address accessed actually does show up on the PPU address bus, but the PPU's /RD & /WR flags are not activated. この辺あやしいね http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/187
188: 名前は開発中のものです。 [sage] 2014/04/22(火) 23:59:55.97 ID:Ncm5fcM0 >>177 今回はjmp *にしてもHBlankに収まるっぽく大丈夫なようですが 127 line目で $2001のレンダリングオフにする瞬間の PPU tickのばらつきが 249〜254 nop連打の場合 249〜257 jmp連打の場合 ばらつきが3dot分増えることになります 市販ゲームのIRQ関係もゴミだらけだし気にすることはない 直前に入れるのはいいアイディアだね http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/188
189: 名前は開発中のものです。 [sage] 2014/04/23(水) 17:56:22.78 ID:eYt0ULQB >>186 >>187 なるほど、、、 まだ理解してないけど、このあたり読めばわかる気がしてきた。ありがと しかし、PPUのアドレスレジスタの兼用さえなければ、レンダリング中に読み書きできて BGアニメーションとかもっと便利だったろうにって思ってたけど、 Ntsc_timing.png みるかぎり、ひっきりなしにアクセスしてるんだね・・・ とするとメモリポートが2つないとだめだから、結局は無理だったのか。 >>188 了解。 sei/cliさえしなければ最大6クロックだから、6*3=18dot(nopにくらべて12dot大きく) ずれるのが許容できればおkってことね。 許容できるのか、計算するのが大変だけど(xx http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/189
190: 名前は開発中のものです。 [sage] 2014/04/23(水) 20:09:45.06 ID:yop1NMPn この現象で分った事。 パレットの04 08 0Cは00とは別の値を格納できるが、実用上何も使われていないと言う事(合ってるよね?)。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/190
191: 名前は開発中のものです。 [sage] 2014/04/23(水) 21:35:50.97 ID:bXRTGLw+ ↑あってるっぽい ただしスプライトの四の倍数とは共有か void _fastcall Write7 (int Val) { if ((VRAMAddr & 0x3F00) == 0x3F00) { register unsigned char Addr = (unsigned char)VRAMAddr & 0x1F; Val = Val & 0x3F; Palette[Addr] = (unsigned char)Val; if (!(Addr & 0x3)) Palette[Addr ^ 0x10] = (unsigned char)Val; http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/191
192: 名前は開発中のものです。 [sage] 2014/04/24(木) 07:57:06.72 ID:RDg08ToE 流れぶったぎるようで申し訳ないけど、デバッガ機能が一番使いやすいNESエミュはどれですか? http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/192
193: 名前は開発中のものです。 [sage] 2014/04/24(木) 10:17:47.73 ID:TazbtZqQ >>192 FCEUXがおすすめ。 (読/書/実行)ブレークポイント、スキャンラインごとのVRAM内容表示、RAMウォッチ あたりの機能をよく使ってる。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/193
194: 名前は開発中のものです。 [sage] 2014/04/24(木) 11:46:44.27 ID:RDg08ToE ありがとう http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/194
195: 名前は開発中のものです。 [sage] 2014/04/24(木) 21:06:44.07 ID:Ozv2HHx1 ブレークポイントの使いやすさは G-NESじゃないか よっぽどトリッキーなコーディングしないならこれで十分 G-NES は使いやすい、指定行まで実行がStepOverを兼ねる FCEUX はログ機能が最強、シンボル機能搭載、エミュ精度も結構よい Nintendulator はデバッガ付きではエミュの精度が最強かな、使いにくい http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/195
196: 名前は開発中のものです。 [sage] 2014/04/24(木) 23:37:48.91 ID:d8WjRMEc >>191 そう、スプライトと共通(04=14、…) 僕は実機で確認したけど、nendoかnestopiaと同じなら間違いないだろうな。 古いネット上のドキュメントとか間違ってたりするから100%鵜呑みにしない方がいいよ(エミュのソースも)。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/196
197: 名前は開発中のものです。 [sage] 2014/04/25(金) 00:53:39.01 ID:ffWieyHe G-NESは使ってなかったから、ちょっと触ってみた。 デバッガは、FCEUXとG-NESほぼ同等やね。 ちょっとわかりにくいけど、アドレスクリックして"Seek To"で指定行まで実行もできるし。 (この機能が超欲しかったけど、いま探すまでアドレスクリックで指定できるの気付かなかったw) しかし、FECUXのシンボル情報って吐き出してくれるコンパイラあるのかな・・・ 使えれば便利そうなんだけど。 http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/197
198: 名前は開発中のものです。 [sage] 2014/05/10(土) 18:53:04.15 ID:ShrxaRho マッパー0のカセットを何本か作りたいんですが 既存のソフトのHVC-NROM-256K-02基板からICを外すのが面倒なので プリント基板だけを通販しているところとかないですかね? もしくは,CADデータとか. http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/198
199: 名前は開発中のものです。 [sage] 2014/05/10(土) 19:06:34.44 ID:ShrxaRho ちなみに作りたいカセットとはこれです. この1週間ちょっと頑張ってインプリしてました. アセンブラなんか普段いじらないので,めちゃくちゃです. でも,このスレはちょくちょく見てるので,恩返しに公開します. ttp://sayonari.com/famicom/FamilyBird.zip 綺麗に書き直したかったですが,しばらくいじれそうにないので, 皆さんに託します. FCEUXではちゃんと動くんですが,ROMに焼いて, FC互換機(GCC NEXT)で動かすと, スプライトがチラチラと画面中に散らばって表示されます. メモリ管理とかちゃんとしてないし,変なところに書き込んだり, PPUアクセスのタイミングがむちゃくちゃだったりとかが原因だと思います. 互換機じゃなくて正規版本体ならちゃんとうごくのかな・・. http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/199
200: 名前は開発中のものです。 [sage] 2014/05/10(土) 19:40:22.36 ID:WvHa+XO0 そこまでやって正規版FCを持っていないというのが謎過ぎる 高いわけじゃないんだから普通に買えばいいのに http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/200
201: 名前は開発中のものです。 [sage] 2014/05/10(土) 20:09:58.52 ID:vMtYsoKB >>199 スプライトDMAの前に$2003に$00入れるといいかも http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/201
202: 名前は開発中のものです。 [sage] 2014/05/10(土) 20:52:41.78 ID:ShrxaRho >>201 すごい!かなり軽減されました.しかしまだチラチラがあります. しかしさすがのアドバイスありがとうございます.勉強になります. http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/202
203: 名前は開発中のものです。 [sage] 2014/05/10(土) 21:59:03.95 ID:2fP2DbGG なんで土管に触っただけで死ぬんだ こんなクソゲー久しぶりに見たわ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/203
204: 名前は開発中のものです。 [sage] 2014/05/10(土) 23:12:04.05 ID:ShrxaRho >>200 ファミコン本体は実家にはいっぱいあるんですが,今の家にはなくて, 急遽必要になったので,とりあえず,ヤフオクで互換機を送料込み900円で落札しました. その後,今もですが,正規版ファミコンをどれにしようかと,ヤフオクでキョロキョロしてます. 互換機は今日届きました >>203 これは,FlappyBirdっていう人気アプリのオマージュですが,それも土管で即死です ROMライターのLEAPER-3Cのドライバが64bitWin7では動かなかったので焦りましたが, VirtualPC上のXPmodeというやつで,そのOSからLEAPER-3Cが使えたので 良かったです(´ρ`) http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/204
205: 名前は開発中のものです。 [sage] 2014/05/11(日) 01:44:45.44 ID:HiLhu8FK 非VBlanc期間がループで一切の処理をしていないからDMA転送がVblank内に収まってないんじゃないかね 通常は非VBlank期間にキー入力だのスプライトのデータ準備だのデータを用意しておいて Vblank期間は描画処理だけを行うようにする http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/205
206: 名前は開発中のものです。 [sage] 2014/05/11(日) 02:54:20.00 ID:Mnx9Nf8g >>205 ありがとうございます! チャレンジしてみましたが,上手く実装できませんでした(´ρ`) どの処理をどこでやればよいか・・・. もう時間的に頭が働いていないのかも.とりあえず寝ます. http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/206
207: 名前は開発中のものです。 [sage] 2014/05/11(日) 04:04:19.91 ID:YECX6XhP >>199 なかなか、ファミコンらしい可愛いグラフィックやね。 nesdevでflappy bird作った奴いないの?みたいなスレがあったから、貼るのもおもしろいかも http://forums.nesdev.com/viewtopic.php?f=2&t=11103 ちなみに、Nestopiaでもバグってるっぽいので実機の前にこっちでデバッグしたら楽かもしれない。 残念なことにデバッグ機能はほとんどないけど・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/207
208: 名前は開発中のものです。 [sage] 2014/05/11(日) 04:53:13.07 ID:Mnx9Nf8g >>207 nestopia情報ありがとうございます! 試してみましたが,パレットがおかしくなるバグはありますが, 実機互換機で起こるチラチラ飛び散りバグは出ません. 正規本体でもでないかな.正規本体早く買おうかな. nesdevにも凸したいと思います(〃゜ω゜〃) http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/208
209: 名前は開発中のものです。 [sage] 2014/05/11(日) 08:18:39.15 ID:IEErYv9U >>208 最初のロゴでスプライトのゴミが出るのはメモリの初期化をして いないからだと思う パレットがおかしいとかスクロールがぶれるとかそういうのは恐らく 表示期間中にPPUに書き込みしてるんじゃないかな http://mevius.5ch.net/test/read.cgi/gamedev/1343539143/209
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 358 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s