ファミコンのプログラム4 (567レス)
1-

328: 2014/06/14(土)16:29 ID:+sFuyt6O(1) AAS
機械語の知識(開発ができるレベル)と、
論理回路の知識(設計ができるレベル)に加えて、
電子工作を行えるスキルが必要
あと、英語力(データシートとか、ほとんど英語)。
329: 2014/06/14(土)21:38 ID:L1L59kK3(1) AAS
131氏は何が嫌われてるか分かってないんだろうな
何か指摘されたら「あ、はい俺が悪いですさて、」くらいの勢いで
全く態度を変えず話を続けるのがどれだけ人を無視した行為か
理解できないんだろうからもう書き込むなって言われてるんだよ
330: 2014/06/17(火)15:26 ID:6w/HBkb5(1) AAS
なんだそりゃ
ヤクザの因縁レベルだな
キチガイに粘着されて可哀想
331: 2014/06/22(日)12:04 ID:FYXz9cFX(1) AAS
Vblank(NMI)発生待ちじゃなくてVblank(NMI)終了待ちの書き方がわからない。
$2002読めばVblank中でも即座にスキャンラインの頭に戻るのかな?
332: 2014/06/22(日)12:46 ID:RkNLcYOw(1) AAS
普通は終了待ちなんてしないと思うが・・・
あるとすればフレームIRQをVblank終了間際に起こすようにするとか、かな?
試していないからできるかどうかわからないけど
333: 2014/06/22(日)15:38 ID:cAYbetgY(1) AAS
あのバカはまだデバッガ扱えないんだな
他人のソースを読む気もない
334: 2014/06/22(日)21:47 ID:SUkUlJAf(1) AAS
何だかんだ、がんばっているんだし応援しようと思う
完成を楽しみに待っています〜
335: 2014/06/26(木)01:45 ID:Mvj8DjXQ(1) AAS
RevolvingGemsで予定していた実装が全て出来たので公開します。

指摘を受けていた
・ゲーム開始時に消滅が発生しないよう駒を配置
・初期化時にCHR-ROMのバンクセレクトを明示的に行う
の処理も盛り込んでいます。

あと、フレームワーク部分(main.asm)も処理を見直して結構手が入っています。

外部リンク[zip]:homepage3.nifty.com

ここまでお付き合いして頂きありがとうございました。
336: 2014/06/26(木)21:00 ID:9qzAY4Nu(1) AAS
夜中2時に書き込む
出来る方の別人格さんおつ
337: 2014/06/26(木)22:36 ID:HYUmCg5c(1) AAS
すげー(2回目)

338: 2014/06/28(土)08:52 ID:1mbR3dV7(1) AAS
335氏
ソース勉強させていただきます
339: 131 2014/07/02(水)17:15 ID:b6UJAuU+(1) AAS
ここを見てても本当に良いのだろうか?という気持ちと
ヤジでいまだに言ってくる人がいて、不快感しか湧かない
ので、ここはまず、書き込みも見ることも辞める事にします。

なのでいさぎよく、このスレから出ていく事にします。

ちなみに、「逃げる理由が出来て良かったな」とか書き込みそうなんで
言っておきますが、言う人は何とでも言うので仕方ないと思います。

最後まで不快感をお互いに感じあってしまい、すみませんでした。
340
(1): 2014/07/02(水)21:15 ID:ccGvVyCV(1) AAS
前スレで戦力外通告されてなぜ残った
英語読む気ないのはこの板的にも戦力外
341: 2014/07/03(木)22:16 ID:hPES0Si7(1) AAS
>>340
気に入らなきゃほっときなよ
小言を言うとまたグダグダと返答されるよ
342: 2014/07/11(金)02:02 ID:63/tpOMg(1) AAS
他スレみたいにテンプレに
初心者向けに何か書いておいたほうがいいかもね
343
(1): 2014/10/05(日)12:06 ID:TCLHVT3o(1) AAS
東方Projectみたいな画面は作れないか?との興味から作りはじめたのですが、弾丸の表示時点で、CPUの処理能力不足により先が見えてしまいました。

外部リンク[zip]:homepage3.nifty.com

Experi9.nes .. 160発表示版
Experi9x.nes .. 負荷可視化板
Experi8_noshot.nes .. 弾丸非表示版

Select+下 でスクロール開始、Select+左右 で画面モード切替です。

弾丸の最大数を96に落として、仕切り直す予定。

自キャラ、敵キャラ、弾丸以外は、BGで描画しています。
枠内のスクロールは、ハードウェアスクロールとソフトウェアスクロールの併用です。
16x8の範囲でパレット指定や会話ウィンドウの表示に、縦方向のラスタスクロールを駆使しています。
344
(1): 2014/10/06(月)04:59 ID:6+tpiQ9J(1) AAS
ジェムの人キター

消えてる時間が結構長いのでかなりスプライトが見難いですねぇ

BGは相変わらずえらいことになってますが、負荷軽減でパレットはあきらめて
MMC5の画面分割機能の使用を考えてみても良いかも
345
(1): 2014/10/06(月)23:47 ID:5bZUXl8p(1) AAS
>>344
160発を56個のスプライトで表示しているので、
大体3フレームに1回の表示でちらつきが目立ちます。

次の版は、96発にスペックを落とすので、
2フレームに1回の表示になるので多少は改善されるはず。

MMC5は魅力的なのですが、最終目標が実機での動作なので
勿体無くないMMC3で頑張ろうと思っています。
あと、負荷は弾丸の処理が半分以上占めているので
MMC5を使っても状況はあまり変わらないかと思います。

すでに96発MAXに書き換えて、弾丸1つ辺り5byteの領域から
8byteに増えて、Tile番号と属性値が保持できるようになったので
処理が軽くなりました。
弾丸の角度の変化が無ければ、Bombの下辺りまでの
処理時間で済んでいます。
346: 2014/10/07(火)04:35 ID:3yj7hFfS(1) AAS
>>345
1/2フレーム表示ならグラIIのミサイルなどで使ってましたね
欲を言えばですが、弾数が少ないときは1/1フレームで表示出来たら
いいかも

試しに割り込み無しにしたところ18ライン分くらい処理が減ってました
MMC5自体は光栄のゲームで結構出回ってるので入手は簡単かと
思いますが、今更変えるのもあれですね…

期待してますので頑張ってください
347
(1): 2014/10/09(木)21:46 ID:44sWDsnn(1/2) AAS
NESASMでアセンブルしたNESファイルは自作カートリッジに焼く時もそのまま使えるんですか?
348
(1): sage 2014/10/09(木)21:50 ID:hFc1Ndfq(1/3) AAS
RevolvingGems 1.00を実機で動かしたら不具合が出たので、
今さらですが調べて直してみました。

・タイトル画面の表示が乱れる
ウエイトが足りず、割込み処理での最後の$2006への書込みが
HBLANK中に行われていないようので、user.asmのUser_Irq_Title:直後に
nopを(余裕を持たせて)3つ追加して乱れを消しました。

・あそびかたを選ぶと止まる
タイトルで設定された割込みが無効化できずに発生し続けているようです。
Guide_Init:でIRQ_FNC+1を0にしたことで、
Irq:のjsr IRQ_FNC-1が飛ばされるため、
User_Irq_Title:中での割込みの無効化が動かないのが原因と思います。
user.asm 474行目のsta IRQ_FNC+1をコメントアウトして動くようになりました。
349: 2014/10/09(木)21:51 ID:hFc1Ndfq(2/3) AAS
sage間違えたorz
350
(1): 2014/10/09(木)21:56 ID:hFc1Ndfq(3/3) AAS
>>347
kazzo+anagoのような環境だと直接NESファイルを使って書けますね。
ROMライタで直接書き込む場合だとPRGとCHRへの分割が必要かと。
351: 2014/10/09(木)22:09 ID:44sWDsnn(2/2) AAS
>>350
ありがとうございますNESplitという分割ツールがありました。
352
(2): 2014/10/09(木)23:56 ID:EgCI09Ne(1) AAS
>>348
実機での動作確認ありがとうございます。

>タイトル画面の乱れ
割り込みが入ってから110clk目に最後の$2006を書いていたのですが、
nop3つ追加ということで、116clk目が正解ということですね。
今のやつも直さないと。

>あそびかたを選ぶと止まる
VBlank中にIRQ_FNCを更新する仕組みを追加します。
353
(1): 2014/10/10(金)00:27 ID:giiUNY1I(1/2) AAS
>>352
MMC3だとラスタの260ppu_clk辺りで割込み発生みたいなので、
そこから次ラスタの表示期間終了の256ppu_clkまでの、
(341-260)+256=337ppu_clk = 112.3cpu_clk
が必要な待ち時間だと思います。
sta $2006を確実にHBLANKに入れるために+4clkしましたが、
書込みが最後の1clkに行われるとすれば、数クロック削れるかもしれません。
354
(1): 2014/10/10(金)21:22 ID:giiUNY1I(2/2) AAS
>>352
追実験して、nopは一つでも乱れは消えました。
割込み発生から最後のsta $2006完了までが112clkになるので、
ちょっとぎりぎりな感じはしますが。
355: 2014/10/11(土)11:53 ID:JCcDlcCt(1) AAS
>>353
外部リンク:wiki.nesdev.com
Regarding PPU A12 rises:
If the BG uses $0000, and the sprites use $1000, then the IRQ will occur after PPU cycle 260 (as in, a little after the visible part of the target scanline has ended).
If the BG uses $1000, and the sprites use $0000, then the IRQ will occur after PPU cycle 324 of the previous scanline (as in, right before the target scanline is about to be drawn).
When using 8x16 sprites: When there are less than 8 sprites on a scanline, the PPU makes a dummy fetch to tile $FF for each leftover sprite. In 8x16 sprite mode, tile $FF corresponds to the right pattern table ($1000).

PPUアドレスバスA12がスキャンラインカウンタのクロックとなっている。
The counter is clocked on each rising edge of PPU A12, no matter what caused it, so it is possible to (intentionally or not) clock the counter by writing to $2006
BGとSPRをどっちに配置するかで、立ち上がり、立下りが変わるので、
IRQが起きる位置とライン数が変わるようだ。
356: 2014/10/13(月)07:14 ID:khCfiiiQ(1) AAS
>>354
追試ありがとうございます。
clkを伸ばした場合、エミュレータでどうなるか確認したのですが
こちらでは1clk伸ばしただけでも乱れが発生しました。
実機向けとエミュレータ向けの2つのバイナリを用意する必要があるようです。
357: 2014/10/20(月)02:34 ID:VhFQD/az(1) AAS
だれかギコ猫より分かりやすいサイト作って
もしくは解説コメント付きのソース
1-
あと 210 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.022s