[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2ch.scのread.cgiへ]
Update time : 10/21 19:51 / Filesize : 213 KB / Number-of Response : 571
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ファミコンのプログラム4



1 名前:名前は開発中のものです。 mailto:sage [2012/07/29(日) 14:19:03.64 ID:a5QeqSA0.net]
■過去スレ

ファミコンのプログラム
pc8.2ch.net/test/read.cgi/gamedev/1013696305/

ファミコンのプログラム2
pc11.2ch.net/test/read.cgi/gamedev/1135099156/

ファミコンのプログラム3
toro.2ch.net/test/read.cgi/gamedev/1214210285/

■関連サイト

MagicKit Homepage
www.magicengine.com/mkit/
すずめ愛好会
web.archive.org/web/*/http://vsync.org/ns/index.html
ギコ猫でもわかるファミコンプログラミング
gikofami.fc2web.com/
わいわいの巣
www.geocities.jp/yy_6502/
mck hogehoge
takamatsu.cool.ne.jp/dutycycle/
NES info, programs, and demos
nesdev.parodius.com/
pgate1@crystal
crystal.freespace.jp/pgate1/
cc65 @ wiki
www34.atwiki.jp/cc65/

293 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 08:52:45.01 ID:FVxA7Fkb.net]
NMIとVBlの正確なタイミングが分からないんだよな。
同時だと動かない市販タイトルがある。

294 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 11:40:26.64 ID:CuFktdyJ.net]
10年もこのスレ見ててそのレベル・・・そして技術資料すら理解できない英語力・・・
最早かわいそう過ぎて同情するわ・・・

295 名前:131 mailto:sage [2014/06/10(火) 12:27:03.05 ID:21YAZMo1.net]
他のパソコンから書き込みです。

なんというか、僕が素直じゃなくてしかも怒りっぽくて
先人の知恵を学ばないという姿勢が悪いと思っています。
低能という言葉がありますが、まさに自分がそうだと思っていますよ。
自他ともに認める低能です。ファミコンのCPUより遅い動作周波数
なので。>>246は撤回します。まことにすみませんでした。

ごめんなさい

296 名前:131 mailto:sage [2014/06/10(火) 18:17:23.08 ID:rVY6XcCX.net]
>>284
2)
VBlankに入った時に必ずNMIの割り込みが訪れるからでしょうか

3)
本来ならばメインループにNMIを使うべきだからでしょうか
VBlankにポーリング?という言葉を初めて知りました。

297 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 22:38:25.24 ID:iI+cGjJO.net]
>>245
ところで
NES Assembler (v3.21, 2005/04/09, Denki Release)
これどこで手に入れたの?
かなりレアなバージョンぽくて見つからない。


 RAMの初期化、スプライトメモリの初期化
以前誰かに指導してるでしょ、あちこちの他人ソースでも示されているし
 スプライトONにしているデモプログラムでスプライトメモリ初期化してないのは論外なんだよ
だからG-NESのスプライトメモリビュワー使えって
 未初期化メモリにアクセスしたら他の言語のコンパイラは警告出すでしょ
逆にファミコンほどの原始的なハードで、なぜ0フィルされると思った?
0フィル傾向が強いエミュだってハードリセット、ソフトリセットで挙動違うわけだしね

298 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 23:25:46.23 ID:DX+Q254R.net]
HuC v3.21付属のやつじゃねえかな

299 名前:名前は開発中のものです。 mailto:sage [2014/06/10(火) 23:48:02.78 ID:iI+cGjJO.net]
見つけた

300 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 00:54:21.08 ID:vuASjJOE.net]
1)Vblankは厳密には割り込みそのものではない。語源を考えればわかる。
 あとマスク不可能な割り込みでは説明不足。
2)ファミコンにおいてNMIは必ず訪れるものか。
 もし必ず訪れるのならあんたが今まで書いてきたプログラムはどうなる。
 $0000から命令を実行しまくる羽目になってるだろ。
3)それならばなぜNMIを使うべきか。

全体的に不正解および説明不足そして調査不足、理解や考えも不足。
わからない言葉があったらまず目の前のPCで調べろ。
あと自虐がまるでへそを曲げた子供のようでみっともない。自虐は反省とは違う。
しばらくROMって頭冷やすことをおすすめする。

301 名前:131 mailto:sage [2014/06/11(水) 04:31:31.45 ID:FDPL1IKA.net]
分かりました。しばらくROMることにします。
ただ、僕は本当に低能ですよ。何しろ、IQが69なんで
(test the nation)



302 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 19:10:46.06 ID:HuzB/5/t.net]
言葉選べない奴ってみっともないなぁ
上級者気取ってふんぞり返って偉そうに他人に説教しとるが相変わらずガキ丸出し
これが一人だけやってるんだから目立つわな

いいかげんさあ、そのチンピラみたいな恥ずかしい態度で人に接するのはおよしなさいよ

303 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 19:14:38.42 ID:HuzB/5/t.net]
まあ、こういう苦言を呈してあげても
前みたいに自分の口汚さを正当化するための言い訳しか言わないで
何が悪いのか理解出来ないまま同じ事を繰り返し続けるんだろうけど

他人に反省促す前に、自分がまず反省して態度改めなよ

304 名前:名前は開発中のものです。 mailto:sage [2014/06/11(水) 20:42:36.74 ID:QsOFOWgt.net]
多重人格らしき
”リバーシ君” が湧いてから同時期湧いて来た子たち

”YY-CHRとNESASMが使いづらい君”
”NESASMが難しいからC言語で組もうよ君”
”iNESヘッダや.incbinのことはわからないけど、nesdevの仕様書すべて読んできます君”
能書き”ダブラ君”
三日坊主の”まとめwiki君”
”DPCMの仕様教えて君”
”www.dotup.org大好き君”
スタックぶちこわしてても ”PPU制御レジスタのタイミング等も問題無いはずなのに。 君”
”デバッガ使えません君”

こんな初歩の初歩教えるのが上級者扱いなのか
だから自演て言われてるのに

ゴミみたいな不良動作のプログラムのアップロードに対し
わずか数時間で
”fceuで陽性かくにん よかった”
とレスが付くのも特徴

追い込まれると
〜とは別人だけど、と枕詞をつけて自己弁護

305 名前:266 mailto:sage [2014/06/12(木) 01:31:23.63 ID:VinxFlKC.net]
>>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 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 01:36:18.33 ID:VinxFlKC.net]
>>290

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

#やっぱり実機で確認できる環境欲しいな

307 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 02:17:39.78 ID:VinxFlKC.net]
>>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 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 06:23:30.12 ID:WH6q4E6P.net]
なんでこいつが仕切っとるの?

309 名前:131 mailto:sage [2014/06/12(木) 16:17:30.84 ID:kfJUEFGs.net]
書き込みたい気持ちはありますが、大分経って事態が鎮静化
してから書き込みたいです。あと、少なくとも今から
100レス程度は様子を見ながら、今から同時にお題を解いてみます。

というのも技術的な指導ならゲーム開発技術板のスレッドなので分かります。
しかし、自分の未熟な部分があるのは自分でも分かるのですが、
明らかに何度も自分の人格を否定していてスレ違いになってるのもあります。

310 名前:131 mailto:sage [2014/06/12(木) 16:19:26.08 ID:kfJUEFGs.net]
それがどうした?悪いのはお前だろと言われればそうなのですが
これが何度も続くようなら、明らかにいじめとしか思えないのです。
いじめと思うのは間違っていると思うのなら、どうして簡単に何度も
いろんな欠点や粗を探してこうも傷つけたがるのですか?

あと、自演と言っている人へ、
自演をしているように見えるのは、明らかにおかしいですね。
IPアドレスを2chの運営元に頼んでもらって調べれば分かる
とは思います。IPアドレスが分かるという事は、書き込んだ場所も
特定されます。
ファミコンのプログラムを公開する書き込んでから家から出かけて
帰ってきてから同じパソコンで書き込んだ事くらい見抜けると思うのですが。

311 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 19:04:44.04 ID:W0ti7vxN.net]
それにしてもやけに静岡県民が多いな
自演に間違いないな不自然すぎるわ



312 名前:名前は開発中のものです。 mailto:sage [2014/06/12(木) 20:14:34.35 ID:+ww++sAc.net]
あと100レスと言わず一生ROMってればいいのに
そうすりゃスレも荒れずに済む

313 名前:131 mailto:sage [2014/06/12(木) 22:17:28.55 ID:kfJUEFGs.net]
まってください。静岡県民が多いのは、俺が周囲から基地外呼ばわり
されてるのと、症状のせいだと思いますよ。

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

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

これで最後にします。100レス待ちます

314 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 06:24:29.34 ID:6Pgo1qVH.net]
いいから>>307が終わるまで書きこみを控えてくれ・・

315 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 16:40:28.64 ID:vJRDBdqC.net]
スレ違いかもしれないけど、ディスクカードをromに焼くことができる?

316 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 19:00:31.08 ID:KxCbS2Qo.net]
>>315
何のソフトかにもよるが原則不可能と思っていいだろう
マッパー0相当のソフトだってアドレスの手直しが要る分相当な作業量になる

317 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 20:43:27.55 ID:CSwUA4nC.net]
>>316
機械語レベルの理解力があれば、できる?

318 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 21:03:18.07 ID:KxCbS2Qo.net]
理解力と相当な根気が要るだろうな
絶対アドレス参照の命令で$6000以降参照のものをすべて書き換えなきゃいけないのだから

319 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 21:17:05.99 ID:r1M/KsAU.net]
>>318
ディスクシステムの片面の容量は64Kバイト?64Kビット?

320 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 21:36:12.04 ID:JJAfyk3S.net]
ディスクシステムの仕組みも理解する必要があるだろう。

321 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 21:36:22.79 ID:KxCbS2Qo.net]
64Kバイトといわれている 実際にはもっと少ないけど
というか厳密には1バイト単位のような定まった容量はなかったはず

もし片面8Kバイト(64Kビット)だとしたらドンキーコングすら収まらないよ
というかこれぐらい調べれば出てくるのでまず調べようね



322 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 22:34:15.19 ID:AgN9/sjS.net]
>>321
ディスクシステムのソフトには、名作が多いのでリンクの冒険、ドラキュラ2など海外版を所有してますが、ディスクシステムでしか遊べないソフトがあるので、ROM化出来たらなと思いました。音源も積んで。って誰かやってないですかね?

323 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 23:03:40.54 ID:KxCbS2Qo.net]
かつてmdc5linkerというものがあった(ROM化の際にはこれの個別パッチが参考になるかもしれない)
ただし悪用が多すぎてサポートは終了した、ディスク>カセット変換したものを売りさばくような輩が続出した
事実、ある時期ヤフオクで本来ディスクでしか出ていないソフトがカセットとして出品されている例が多数確認できた

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

どの道、音源までサポートした上でROM化するにはいろんな知識が要る
ディスク音源と互換性のあるチップは存在しないため、RAMアダプタ内のもの(ただし非常に大きい、64pinDipだったかな?)を使用するか、もしくは
新たにFPGAなどのPLDを使って実装するか・・・方法はあるがディスク音源如きにそこまでする人がいるかどうか

324 名前:名前は開発中のものです。 mailto:sage [2014/06/13(金) 23:55:45.03 ID:D3ve8EiV.net]
>>323
ディスクシステムは、ツインファミコンもそうですが、ベルトの劣化もありますし、ヘッドも劣化するでしょう。

325 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 00:13:40.26 ID:dYYokVoB.net]
>>324
fcs.main.jp/archives/fcs_road/Diskbelt/diskbelt2.html
知っているかもしれないがこういう方法もある。

バックアップについてはエミュが嫌なら、FDSLOADRという、
PCを仮想ディスクドライブとして使えるようにするソフトがある。ただ数年前の記憶では、相当PCの機種を選ぶソフトだった。
それからDOSベースのソフトのため現代のNT系OSじゃ動かないから、古いWin9x系の動くPCが必要になる。
更にRAMアダプタとの接続のためPCが双方向通信可能なパラレルポートを持っている必要がある。
これを使うとPCに存在するFDSファイルをRAMアダプタに転送できる。

326 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 00:21:55.47 ID:zzfPZdkB.net]
最近FDSLOADRrの上位版のようなfdsloadersaverを作った方がいるよ

327 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 00:25:39.56 ID:TXG/RYzX.net]
>>325
アドバイスありがとうございます。今思いついたんですが、ディスクのRAMアダプターを改造してMicroSDカードに入っているディスクのイメージを転送できるに出来たらいいのになあ

328 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 16:29:21.64 ID:+sFuyt6O.net]
機械語の知識(開発ができるレベル)と、
論理回路の知識(設計ができるレベル)に加えて、
電子工作を行えるスキルが必要
あと、英語力(データシートとか、ほとんど英語)。

329 名前:名前は開発中のものです。 mailto:sage [2014/06/14(土) 21:38:32.26 ID:L1L59kK3.net]
131氏は何が嫌われてるか分かってないんだろうな
何か指摘されたら「あ、はい俺が悪いですさて、」くらいの勢いで
全く態度を変えず話を続けるのがどれだけ人を無視した行為か
理解できないんだろうからもう書き込むなって言われてるんだよ

330 名前:名前は開発中のものです。 mailto:sage [2014/06/17(火) 15:26:48.71 ID:6w/HBkb5.net]
なんだそりゃ
ヤクザの因縁レベルだな
キチガイに粘着されて可哀想

331 名前:名前は開発中のものです。 mailto:sage [2014/06/22(日) 12:04:05.94 ID:FYXz9cFX.net]
Vblank(NMI)発生待ちじゃなくてVblank(NMI)終了待ちの書き方がわからない。
$2002読めばVblank中でも即座にスキャンラインの頭に戻るのかな?



332 名前:名前は開発中のものです。 mailto:sage [2014/06/22(日) 12:46:49.11 ID:RkNLcYOw.net]
普通は終了待ちなんてしないと思うが・・・
あるとすればフレームIRQをVblank終了間際に起こすようにするとか、かな?
試していないからできるかどうかわからないけど

333 名前:名前は開発中のものです。 mailto:sage [2014/06/22(日) 15:38:33.12 ID:cAYbetgY.net]
あのバカはまだデバッガ扱えないんだな
他人のソースを読む気もない

334 名前:名前は開発中のものです。 mailto:sage [2014/06/22(日) 21:47:58.16 ID:SUkUlJAf.net]
何だかんだ、がんばっているんだし応援しようと思う
完成を楽しみに待っています〜

335 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 01:45:41.89 ID:Mvj8DjXQ.net]
RevolvingGemsで予定していた実装が全て出来たので公開します。

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

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

ttp://homepage3.nifty.com/~kyoske/nes/RevolvingGems100.zip

ここまでお付き合いして頂きありがとうございました。

336 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 21:00:12.97 ID:9qzAY4Nu.net]
夜中2時に書き込む
出来る方の別人格さんおつ

337 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 22:36:58.03 ID:HYUmCg5c.net]
すげー(2回目)


338 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 08:52:02.98 ID:1mbR3dV7.net]
335氏
ソース勉強させていただきます

339 名前:131 mailto:sage [2014/07/02(水) 17:15:28.00 ID:b6UJAuU+.net]
ここを見てても本当に良いのだろうか?という気持ちと
ヤジでいまだに言ってくる人がいて、不快感しか湧かない
ので、ここはまず、書き込みも見ることも辞める事にします。

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

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

最後まで不快感をお互いに感じあってしまい、すみませんでした。

340 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 21:15:54.55 ID:ccGvVyCV.net]
前スレで戦力外通告されてなぜ残った
英語読む気ないのはこの板的にも戦力外

341 名前:名前は開発中のものです。 mailto:sage [2014/07/03(木) 22:16:55.66 ID:hPES0Si7.net]
>>340
気に入らなきゃほっときなよ
小言を言うとまたグダグダと返答されるよ



342 名前:名前は開発中のものです。 mailto:sage [2014/07/11(金) 02:02:23.66 ID:63/tpOMg.net]
他スレみたいにテンプレに
初心者向けに何か書いておいたほうがいいかもね

343 名前:名前は開発中のものです。 mailto:sage [2014/07/31(木) 13:43:13.27 ID:7VJ7BYaIN]
>>321
ブロック単位でモジュール化されているのでその間のGAPの分もあるからでは。

>>324
ベルトの劣化なら今はモビロンバンド一択。

ROM化は技術的に不可能でないらしいから必要なら頑張って作ってみれば。

アイディアとしてはスーファミのサスケの様なファミコンとRAMアダプタの間に挟む基板に
ROMに落としたゲームとそれをRAMアダプタに転送するプログラムを搭載すれば行けそうだ。

自分は他の8bitパソコンでメディアの劣化があるので↑のアイディアの実用化を目指してる。

344 名前:名前は開発中のものです。 mailto:sage [2014/10/05(日) 12:06:25.72 ID:TCLHVT3o.net]
東方Projectみたいな画面は作れないか?との興味から作りはじめたのですが、弾丸の表示時点で、CPUの処理能力不足により先が見えてしまいました。

homepage3.nifty.com/~kyoske/nes/Experi9.zip

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

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

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

自キャラ、敵キャラ、弾丸以外は、BGで描画しています。
枠内のスクロールは、ハードウェアスクロールとソフトウェアスクロールの併用です。
16x8の範囲でパレット指定や会話ウィンドウの表示に、縦方向のラスタスクロールを駆使しています。

345 名前:名前は開発中のものです。 mailto:sage [2014/10/06(月) 04:59:32.10 ID:6+tpiQ9J.net]
ジェムの人キター

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

BGは相変わらずえらいことになってますが、負荷軽減でパレットはあきらめて
MMC5の画面分割機能の使用を考えてみても良いかも

346 名前:名前は開発中のものです。 mailto:sage [2014/10/06(月) 23:47:50.82 ID:5bZUXl8p.net]
>>345
160発を56個のスプライトで表示しているので、
大体3フレームに1回の表示でちらつきが目立ちます。

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

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

すでに96発MAXに書き換えて、弾丸1つ辺り5byteの領域から
8byteに増えて、Tile番号と属性値が保持できるようになったので
処理が軽くなりました。
弾丸の角度の変化が無ければ、Bombの下辺りまでの
処理時間で済んでいます。

347 名前:名前は開発中のものです。 mailto:sage [2014/10/07(火) 04:35:07.91 ID:3yj7hFfS.net]
>>346
1/2フレーム表示ならグラIIのミサイルなどで使ってましたね
欲を言えばですが、弾数が少ないときは1/1フレームで表示出来たら
いいかも

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

期待してますので頑張ってください

348 名前:名前は開発中のものです。 mailto:sage [2014/10/09(木) 21:46:13.35 ID:44sWDsnn.net]
NESASMでアセンブルしたNESファイルは自作カートリッジに焼く時もそのまま使えるんですか?

349 名前:sage [2014/10/09(木) 21:50:10.76 ID:hFc1Ndfq.net]
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をコメントアウトして動くようになりました。

350 名前:名前は開発中のものです。 mailto:sage [2014/10/09(木) 21:51:03.03 ID:hFc1Ndfq.net]
sage間違えたorz

351 名前:名前は開発中のものです。 mailto:sage [2014/10/09(木) 21:56:48.11 ID:hFc1Ndfq.net]
>>348
kazzo+anagoのような環境だと直接NESファイルを使って書けますね。
ROMライタで直接書き込む場合だとPRGとCHRへの分割が必要かと。



352 名前:名前は開発中のものです。 mailto:sage [2014/10/09(木) 22:09:17.01 ID:44sWDsnn.net]
>>351
ありがとうございますNESplitという分割ツールがありました。

353 名前:名前は開発中のものです。 mailto:sage [2014/10/09(木) 23:56:08.22 ID:EgCI09Ne.net]
>>349
実機での動作確認ありがとうございます。

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

>あそびかたを選ぶと止まる
VBlank中にIRQ_FNCを更新する仕組みを追加します。

354 名前:名前は開発中のものです。 mailto:sage [2014/10/10(金) 00:27:59.23 ID:giiUNY1I.net]
>>353
MMC3だとラスタの260ppu_clk辺りで割込み発生みたいなので、
そこから次ラスタの表示期間終了の256ppu_clkまでの、
(341-260)+256=337ppu_clk = 112.3cpu_clk
が必要な待ち時間だと思います。
sta $2006を確実にHBLANKに入れるために+4clkしましたが、
書込みが最後の1clkに行われるとすれば、数クロック削れるかもしれません。

355 名前:名前は開発中のものです。 mailto:sage [2014/10/10(金) 21:22:02.81 ID:giiUNY1I.net]
>>353
追実験して、nopは一つでも乱れは消えました。
割込み発生から最後のsta $2006完了までが112clkになるので、
ちょっとぎりぎりな感じはしますが。

356 名前:名前は開発中のものです。 mailto:sage [2014/10/11(土) 11:53:25.77 ID:JCcDlcCt.net]
>>354
ttp://wiki.nesdev.com/w/index.php/MMC3#Hardware
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が起きる位置とライン数が変わるようだ。

357 名前:名前は開発中のものです。 mailto:sage [2014/10/13(月) 07:14:58.66 ID:khCfiiiQ.net]
>>355
追試ありがとうございます。
clkを伸ばした場合、エミュレータでどうなるか確認したのですが
こちらでは1clk伸ばしただけでも乱れが発生しました。
実機向けとエミュレータ向けの2つのバイナリを用意する必要があるようです。

358 名前:名前は開発中のものです。 mailto:sage [2014/10/20(月) 02:34:56.29 ID:VhFQD/az.net]
だれかギコ猫より分かりやすいサイト作って
もしくは解説コメント付きのソース

359 名前:名前は開発中のものです。 mailto:sage [2014/10/27(月) 22:58:49.97 ID:WLPSmV4W.net]
ギコ猫があるだけ恵まれた環境。1990年代のネットはファミコンの
内部資料は英語しか無かったからね。だから普通に挫折した。

360 名前:名前は開発中のものです。 mailto:sage [2014/10/28(火) 05:34:41.72 ID:40z/j/Ad.net]
バッ活とファミリーベーシック

361 名前:名前は開発中のものです。 mailto:sage [2014/11/05(水) 02:06:14.46 ID:8FC6s1LF.net]
Experi9(>>344)の改良版をアップしました。

homepage3.nifty.com/~kyoske/nes/Experi10.zip

結局のところ、ファミコン本体の2KBのWRAMだけでは
性能面を向上させつつ、やりくりするのは難しいとわかったので
MMC3の拡張WRAMを解禁、弾丸のワーク領域をそちらに移しました。

本体のWRAMに余裕が出来たので、マップの仮想バッファを
倍に増加して、既存の処理を最適化して負荷を下げました。

色々なテーブルを乗せている関係で、共通ルーチン用のプログラム領域の
サイズが足りないか不安になってきたのですが、拡張WRAMの空き領域に
プログラムを転送すれば良い事に気づき、さらにRAMに転送するんだから
自己書き換えルーチンにできるな、ということで、自己書き換えで性能が
上がりそうなルーチンを試作してみました。

あと、当たり判定実装したり、弾丸の移動処理作ったり、BGM鳴らしてみたりで
処理落ちしないのを確認できたので、性能面で目処が立ったかなというところです。



362 名前:名前は開発中のものです。 mailto:sage [2014/11/05(水) 02:20:57.06 ID:8FC6s1LF.net]
試作した自己書き換えルーチンその1

ClearExtWorkMemory:
ldy #$60
lda #$00
tax
.1:
sty SMCLabel(.2+2)
.2:
sta $6000,x
inx
bne .2
iny
cpy #$68
bne .1
rts

SMCLabelは、転送先のアドレスに変換するユーザ関数です。
sta $6000,xの$60を書き換えています。
Indirect Indexモード 6clkに対して、Absolute Indexモード 4clkで
((6clk-4clk)*256-4clk)*8 = 4064clkの節約。

363 名前:名前は開発中のものです。 mailto:sage [2014/11/05(水) 02:32:50.39 ID:8FC6s1LF.net]
試作した自己書き換えルーチンその2

Shot_Alloc:
 ldx SMCLabel(.2+1)
.1:
 lda SH_X,x
 bmi .9
 lda Round96+1,x
 tax
.2:
 cpx #0
 bne .1
 .db $24 ; bit <$b8 (set v-flag)
.9:
 clv
 lda Round96+1,x
 sta SMCLabel(.2+1)
 rts

cpx #0の#0の部分を書き換え。
弾丸の空きを検索するルーチンで、次回の検索時は空きを検出した
次の場所から検索を始める処理となっています。
Round96は、0,1,2,...94,95,0,1,..と定義されているテーブルで
lda Round96+1,x で (x+1)%96 の計算をしています。
ゼロページの$b8には、$6cが格納されており、bit <$b8 でv-flagが設定されます。
空きがない場合にv-flagが設定されてリターンします。

364 名前:名前は開発中のものです。 mailto:sage [2014/11/05(水) 02:43:06.58 ID:8FC6s1LF.net]
ファミコンのプログラム領域はROMだし、メモリも余裕無いから、
自己書き換えルーチンには縁が無いと思っていたのですが、
拡張WRAM使うとなると、有効な手段であるなと。

ただ、よく考えないと自己書き換えやっても効果を得られないので
どのようなパターンが有効か思考する必要ありだなというところです。

365 名前:名前は開発中のものです。 mailto:sage [2014/11/05(水) 11:50:49.69 ID:kV2Q14jG.net]
>>361
おお、スプライトも見易くなりましたね。

実機(MMC3B)でExperi10.nes焼いて動かしてみましたが、BGが結構
崩れています。

Experi10_irq114.nesですとBGが崩れはしませんが東方の文字の中心あたり
からチラチラしています。
また、東方を知らないのでわかりませんが会話表示とスクロールをするとたまに
BGが崩れるようです。
(バンク切り替えに失敗したような感じで別の絵が出てました)

参考になれば

366 名前:名前は開発中のものです。 mailto:sage [2014/11/05(水) 18:36:12.45 ID:8FC6s1LF.net]
>>365
実機での確認ありがとうございます。

会話画面表示時のBG崩れは、IRQのCHR-BANKの切り替えと
メイン処理のPRG-BANKの切り替えの衝突です。

PRG-BANKの切り替えは弾丸の移動量や角度算出のテーブル引きで使用しており、
会話画面では行わなくなるので、現在そのままにしています。

367 名前:名前は開発中のものです。 mailto:sage [2014/11/08(土) 23:22:26.65 ID:K8lCFBpt.net]
ファイル実行したけど会話画面っていったい何のことなんだ

368 名前:名前は開発中のものです。 mailto:sage [2014/11/09(日) 03:54:20.59 ID:/2f/mjgU.net]
セレクトボタンを押しながら上下でバックグラウンドのスクロール量調整
同じく左右で会話画面、ボスHPゲージ消去などができる

369 名前:名前は開発中のものです。 mailto:sage [2014/11/18(火) 00:24:39.88 ID:sul/9y5g.net]
今月号(先月号から?)のゲーラボに、ファミコンソフト開発って記事が載ってた
初歩的な奴だったから、今月号からかも。立ち読みしかしてないけど

370 名前:名前は開発中のものです。 mailto:sage [2014/11/22(土) 00:37:26.95 ID:6HaTj4+E.net]
ゲーラボのファミコン開発は1回のみなのかな
DSみたいに連載して欲しいなーと思う
好奇心的な需要が有るんではないかと思ったり

>>361
弾幕が素晴らしいです。ファミコンでは史上初?なのではないでしょうか
BGのIRQスクロールも面白いです。

>>368
参考になりました。ありがとうございます。

371 名前:名前は開発中のものです。 mailto:sage [2014/11/24(月) 07:57:25.72 ID:+tDgRqjL.net]
このスレに常駐して間違いを指摘してる人は何者なのかね?
元ハドソンの中○さん?



372 名前:名前は開発中のものです。 mailto:sage [2014/11/24(月) 08:33:08.82 ID:+tDgRqjL.net]
もしかしてカル○ャーブ○ーンのあの社長か?

373 名前:名前は開発中のものです。 mailto:sage [2014/11/24(月) 19:13:43.16 ID:7xFBwqHN.net]
おい、具体名だすんじゃねえ

374 名前:名前は開発中のものです。 [2014/12/27(土) 07:48:51.33 ID:wLqAfx70.net]
このスレではみなさんからのプログラムの投稿をお待ちしています

375 名前:名前は開発中のものです。 mailto:sage [2015/01/05(月) 20:34:21.71 ID:AkF9WUbO.net]
>>83-85は進展無し?と思ってみたらもう2年前か

376 名前:名前は開発中のものです。 mailto:sage [2015/01/06(火) 00:58:45.65 ID:uy5dcfqt.net]
CじゃなくてFORTHだったら需要あったんだがなぁ
俺の

377 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 20:41:58.52 ID:qeXTNQ6P.net]
>>376
FORTHって何ぞ?

378 名前:名前は開発中のものです。 mailto:sage [2015/03/03(火) 17:29:58.25 ID:zncA3uK1.net]
>>377
プログラム言語のこと
似たものにMindがある

379 名前:名前は開発中のものです。 mailto:sage [2015/03/12(木) 23:44:17.66 ID:kJFL2HEh.net]
>>378
プログラム言語のことだったのね
知らんかった

380 名前:名前は開発中のものです。 mailto:sage [2015/03/19(木) 20:54:40.85 ID:h0XRN6RW.net]
前スレを亀レスするけど数をバラバラに設定すると
完成する時としない時があるのは数学的に証明されてる。
完成しない時があると知った時は10才で、その理由を知ったのは30才だったな。
214 名前:名前は開発中のものです。 [sage]: 2008/10/21(火) 23:36:20 ID:7W0HXoP0
空気読まずに投下
ttp://www.lenis.info/~axyz/15puzzle0.1.zip
C言語で15パズルとサウンド再生やってみました。

218 名前:名前は開発中のものです。 [sage]: 2008/10/30(木) 20:55:16 ID:thi/0x4l
ってゆーか解けないよね?コレ

219 名前:名前は開発中のものです。 [sage]: 2008/10/31(金) 10:50:22 ID:WqELvFXJ
なんだ、解けないの俺だけかと思ってたw

220 名前:名前は開発中のものです。 [sage]: 2008/11/01(土) 13:16:36 ID:K21w4wpQ
俺もだwww

221 名前:名前は開発中のものです。 [sage]: 2008/11/01(土) 13:54:44 ID:OhOXRJQv
11と12と15をくるくる回してるのは俺だけじゃなかったのか

222 名前:214 [sage]: 2008/11/02(日) 00:09:23 ID:q5gp0DGO
しまった。完成形がわからなかったら解けるわけないじゃん!
0123
4567
abcd
efgh
の形が完成形です。・・・解いても何も起こりませんがw

381 名前:名前は開発中のものです。 mailto:sage [2015/03/20(金) 19:57:53.65 ID:SVxvjEKg.net]
>>380
作者らしき人に解けない理由が伝わってないのが悲しいな
>完成形がわからなかったら解けるわけないじゃん!
www34.atwiki.jp/cc65/pages/39.html
にあるソースを修正しようとしたけどウチの環境じゃうまくコンパイルできなかった
誰か頼んだ



382 名前:名前は開発中のものです。 mailto:sage [2015/04/01(水) 23:40:29.90 ID:ii+SttYw.net]
何で数がバラバラだと解けないんだろね
タイルの移動する範囲が狭いからとかそんな理由?

383 名前:名前は開発中のものです。 mailto:sage [2015/04/02(木) 10:16:16.24 ID:Jr0GAhV2.net]
他のスレでバカと言われた自分がこのスレでは解けない時が半分あると指摘した人間です。

大学の理数系の初年度程度で履修する偶置換、奇置換等の行列の基礎理論。
まぁ「偶置換 奇置換 行列 15パズル」でググってみて下さい。

384 名前:名前は開発中のものです。 mailto:sage [2015/04/02(木) 10:31:03.98 ID:Jr0GAhV2.net]
追伸
数十年前は、この説明が表紙に書かれていた数学啓蒙誌をその説明だけの理由で買いました。
喫茶店で飲むコーヒー4杯ほどの価格なので、それと比較するとイイ時代になりました。

昔は数学バカだったかも知れません。そして今は何と言うバカなんでしょうかと。

385 名前:名前は開発中のものです。 mailto:sage [2015/04/06(月) 09:13:24.02 ID:k4keIaCU.net]
12000yenか……それなりのお値段だな……

386 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 16:26:58.65 ID:Tz4O69qO.net]
数学啓蒙誌の価格なら流石にそこまで高くない、5桁の数引いた4桁位かな。
ところで1杯が3000円ってどの辺りで飲むコーヒーだろう。

その他「偶置換 奇置換 行列 15パズル」でググるyaneurao氏のも出てくる。
d.hatena.ne.jp/yaneurao/20050821

図があって判り易い感じかと。

387 名前:名前は開発中のものです。 mailto:sage [2015/05/24(日) 23:11:59.55 ID:+d4mv7Gn.net]
このスレ住民でゲームレジェンドに参加した人いるかね
結構いそうな気がする

388 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 17:08:22.25 ID:pQsOmKIP.net]
初期のほとんどのゲームでラスタースクロールを使うときに
0爆弾使ってるけどDPCMタイマ割り込みは使えなかったんだろうか
あれを使ってラスタースクロールを実現したゲームってないのだろうか

389 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 18:51:23.46 ID:yYky0Qic.net]
>>388

「ファミコン 技術」でぐぐると
じぇみに広野氏が語るファミコンソフトの開発技術
というtogetterがでてくるのであるが、それによると、
ガーディック外伝 でDMCのDMA終了割り込みを使ったが
一部の機種(ツインファミコン?)で割り込みが発生しなかったとのこと。

390 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 21:33:53.52 ID:yvckrC4h.net]
>>388
使ってるゲームはあるよ
ロマンシアとか海外のゲームでいくつか

>>389
それも正しいのか微妙
CPUに内蔵された機能なのにツインの一部の機種だけで起こるとか
ありえるのかね

391 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 21:54:06.55 ID:pQsOmKIP.net]
へー興味深い、ツインファミコンじゃなくてあるとすれば考えられるのは初期型ファミコンじゃないかな
あれ音源周りの仕様が後期のロットとは若干違ったはずだしね ただし
時期によってICにヒートシンクついてたりメモリがSOPだったり複数の標準ロジックICが一つのカスタムLSIに置き換わってたり
さらには主要ICのマイナーバージョンも変わってるから他のロットの固有の問題でもおかしくないとは思う

しかしそうか割り込みがかからないものがあるとは・・・
もし使うんなら使用可否の確認ルーチンを使う必要があるのか



392 名前:名前は開発中のものです。 mailto:sage [2015/06/12(金) 22:46:29.41 ID:rYOjWPPG.net]
なるべく無音になるようなデータを用意しないといけないし、初期ではROM容量的にできないかもね。

393 名前:名前は開発中のものです。 mailto:sage [2015/06/20(土) 12:30:40.92 ID:pGMo6MI5.net]
togetter.com/li/753345
www.wizforest.com/OldGood/ntsc/famicom.html
techon.nikkeibp.co.jp/article/NEWS/20081106/160884/?rt=nocnt






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<213KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef