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

305: 266 2014/06/12(木)01:31 ID:VinxFlKC(1/3) AAS
>>292 >>296

1)
NMIの説明はまぁ正解。300さんの指摘の通りVBlankを割り込みと言い切るのは誤り。
NMIは割り込みの種類を示す言葉でVBlankは映像信号に関する言葉であり、そもそもカテゴリが違う。

2)
私が考えていた正解は、
PPUから出るVBlank期間を示す信号線が、CPUのNMI割り込みの入力ピンにつながっているから
300さんが「必ず訪れる」は誤りと言っているのは、VBlank期間に入ったときに
VBlank期間を示す信号線に信号を出すか出さないかをPPUで制御できるため

3)
NMIを使用するかどうかは別に問題ではない。
NMIとIRQのベクタ(割り込み時に実行されるアドレス)に0が設定されているから。
PPUなどのレジスタの設定を誤り割込みを受け付ける状態になった場合に
何が書かれているかわからない0番地をプログラムが走ることになり、
安全性を考慮しておらず、知識不足であることが読み取れるから。
割り込みを使わないのであれば、すぐに rti で戻るルーチンのアドレスをベクタに設定するべき。

Nmi:
  rti
Irq:
  rti

  .org $FFFA
  .dw Nmi
  .dw Start
  .dw Irq
306: 2014/06/12(木)01:36 ID:VinxFlKC(2/3) AAS
>>290

指摘ありがとうざいます。
初期化するよう処理に反映します。

#やっぱり実機で確認できる環境欲しいな
307
(1): 2014/06/12(木)02:17 ID:VinxFlKC(3/3) AAS
>>301
ROMてても知識は身に付かないだろうし、お題を出すのでプログラミングの経験を積んでみてはどうだろうか。

第1ステップ
スタック、メモリ、PPUなどの初期化を行い、VBlank待ちのループを行う、基本のプログラムを実装する。
NMIの割り込みも実装し、NMIの割り込みの度に、$ffのメモリを1増加させる。
割り込み処理でないVBlank待ちのループでは、$ffのメモリを監視して255から0になる度に$feのメモリを1増加させる。
エミュレータのメモリビュアーで約4秒ごとに$feのメモリの値が1増加することを確認する。

第2ステップ
BG画面を16x16サイズのブロックで画面いっぱいに埋める。
パレットの設定を行う。
画面にゴミが出ないように全スプライトを画面外(Y>=240)の位置に表示する。
第1ステップのプログラムを改良する。
割り込み処理ではないVBlank待ちのループで、VRAMに書き込みたいデータを用意してバッファに格納する。
NMI割り込みで、スプライトデータのDMA転送の実行とバッファに格納されたデータをVRAMに書き込む処理を行う。

プログラムを書く際に、他人のソースを参照するのは良いが、コピペは絶対行わないこと。
必ず目で見て手打ちすること。
書いたソースは、何度も読み直して、処理を説明できるぐらいまで理解すること。

プログラムが出来たら内容をレビューしたいので、批判にめげずに公開して欲しいと思う。
308: 2014/06/12(木)06:23 ID:WH6q4E6P(1) AAS
なんでこいつが仕切っとるの?
309: 131 2014/06/12(木)16:17 ID:kfJUEFGs(1/3) AAS
書き込みたい気持ちはありますが、大分経って事態が鎮静化
してから書き込みたいです。あと、少なくとも今から
100レス程度は様子を見ながら、今から同時にお題を解いてみます。

というのも技術的な指導ならゲーム開発技術板のスレッドなので分かります。
しかし、自分の未熟な部分があるのは自分でも分かるのですが、
明らかに何度も自分の人格を否定していてスレ違いになってるのもあります。
310: 131 2014/06/12(木)16:19 ID:kfJUEFGs(2/3) AAS
それがどうした?悪いのはお前だろと言われればそうなのですが
これが何度も続くようなら、明らかにいじめとしか思えないのです。
いじめと思うのは間違っていると思うのなら、どうして簡単に何度も
いろんな欠点や粗を探してこうも傷つけたがるのですか?

あと、自演と言っている人へ、
自演をしているように見えるのは、明らかにおかしいですね。
IPアドレスを2chの運営元に頼んでもらって調べれば分かる
とは思います。IPアドレスが分かるという事は、書き込んだ場所も
特定されます。
ファミコンのプログラムを公開する書き込んでから家から出かけて
帰ってきてから同じパソコンで書き込んだ事くらい見抜けると思うのですが。
311: 2014/06/12(木)19:04 ID:W0ti7vxN(1) AAS
それにしてもやけに静岡県民が多いな
自演に間違いないな不自然すぎるわ
312: 2014/06/12(木)20:14 ID:+ww++sAc(1) AAS
あと100レスと言わず一生ROMってればいいのに
そうすりゃスレも荒れずに済む
313: 131 2014/06/12(木)22:17 ID:kfJUEFGs(3/3) AAS
まってください。静岡県民が多いのは、俺が周囲から基地外呼ばわり
されてるのと、症状のせいだと思いますよ。

それと、自演と決めつるのはまだ早いです。なぜなら、
専門用語を知らない人間が自分を弁護できると思いますか?

そして、恐らくその症状のせいで、うざったく思うから
このスレで叩かれているのだと思います

これで最後にします。100レス待ちます
314: 2014/06/13(金)06:24 ID:6Pgo1qVH(1) AAS
いいから>>307が終わるまで書きこみを控えてくれ・・
315
(1): 2014/06/13(金)16:40 ID:vJRDBdqC(1) AAS
スレ違いかもしれないけど、ディスクカードをromに焼くことができる?
316
(1): 2014/06/13(金)19:00 ID:KxCbS2Qo(1/4) AAS
>>315
何のソフトかにもよるが原則不可能と思っていいだろう
マッパー0相当のソフトだってアドレスの手直しが要る分相当な作業量になる
317: 2014/06/13(金)20:43 ID:CSwUA4nC(1) AAS
>>316
機械語レベルの理解力があれば、できる?
318
(1): 2014/06/13(金)21:03 ID:KxCbS2Qo(2/4) AAS
理解力と相当な根気が要るだろうな
絶対アドレス参照の命令で$6000以降参照のものをすべて書き換えなきゃいけないのだから
319: 2014/06/13(金)21:17 ID:r1M/KsAU(1) AAS
>>318
ディスクシステムの片面の容量は64Kバイト?64Kビット?
320: 2014/06/13(金)21:36 ID:JJAfyk3S(1) AAS
ディスクシステムの仕組みも理解する必要があるだろう。
321
(1): 2014/06/13(金)21:36 ID:KxCbS2Qo(3/4) AAS
64Kバイトといわれている 実際にはもっと少ないけど
というか厳密には1バイト単位のような定まった容量はなかったはず

もし片面8Kバイト(64Kビット)だとしたらドンキーコングすら収まらないよ
というかこれぐらい調べれば出てくるのでまず調べようね
322: 2014/06/13(金)22:34 ID:AgN9/sjS(1) AAS
>>321
ディスクシステムのソフトには、名作が多いのでリンクの冒険、ドラキュラ2など海外版を所有してますが、ディスクシステムでしか遊べないソフトがあるので、ROM化出来たらなと思いました。音源も積んで。って誰かやってないですかね?
323
(1): 2014/06/13(金)23:03 ID:KxCbS2Qo(4/4) AAS
かつてmdc5linkerというものがあった(ROM化の際にはこれの個別パッチが参考になるかもしれない)
ただし悪用が多すぎてサポートは終了した、ディスク>カセット変換したものを売りさばくような輩が続出した
事実、ある時期ヤフオクで本来ディスクでしか出ていないソフトがカセットとして出品されている例が多数確認できた

というか普通にディスクシステムでやれば?
一体ROM化ってなんのため?ディスク持ってるならディスクシステムでやればいいじゃん
ROM化前提なら吸出しも完了してるだろうしバックアップも万全、なのにあえてROM化しようとする意図がわからない

どの道、音源までサポートした上でROM化するにはいろんな知識が要る
ディスク音源と互換性のあるチップは存在しないため、RAMアダプタ内のもの(ただし非常に大きい、64pinDipだったかな?)を使用するか、もしくは
新たにFPGAなどのPLDを使って実装するか・・・方法はあるがディスク音源如きにそこまでする人がいるかどうか
324
(1): 2014/06/13(金)23:55 ID:D3ve8EiV(1) AAS
>>323
ディスクシステムは、ツインファミコンもそうですが、ベルトの劣化もありますし、ヘッドも劣化するでしょう。
325
(1): 2014/06/14(土)00:13 ID:dYYokVoB(1) AAS
>>324
外部リンク[html]:fcs.main.jp
知っているかもしれないがこういう方法もある。

バックアップについてはエミュが嫌なら、FDSLOADRという、
PCを仮想ディスクドライブとして使えるようにするソフトがある。ただ数年前の記憶では、相当PCの機種を選ぶソフトだった。
それからDOSベースのソフトのため現代のNT系OSじゃ動かないから、古いWin9x系の動くPCが必要になる。
更にRAMアダプタとの接続のためPCが双方向通信可能なパラレルポートを持っている必要がある。
これを使うとPCに存在するFDSファイルをRAMアダプタに転送できる。
326: 2014/06/14(土)00:21 ID:zzfPZdkB(1) AAS
最近FDSLOADRrの上位版のようなfdsloadersaverを作った方がいるよ
327: 2014/06/14(土)00:25 ID:TXG/RYzX(1) AAS
>>325
アドバイスありがとうございます。今思いついたんですが、ディスクのRAMアダプターを改造してMicroSDカードに入っているディスクのイメージを転送できるに出来たらいいのになあ
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
何だかんだ、がんばっているんだし応援しようと思う
完成を楽しみに待っています〜
1-
あと 233 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.018s