ファミコンのプログラム4 (567レス)
上下前次1-新
7: 2012/07/29(日)18:15 ID:hixC6Gva(3/4) AAS
結局はエミュのソース見ちゃえばいいんですよ
ディスクシステムなら日本人エミュ作者のがいい
8: 2012/07/29(日)18:39 ID:hixC6Gva(4/4) AAS
見てきたらCPU同様の1.79MHzのカウンタのようです
CPUのクロックは12分周が基本だから
それ以上でもそれ以下でもメリットは無いでしょ
9: 2012/07/29(日)19:03 ID:h8AqcaeO(3/3) AAS
>CPUのクロックは12分周が基本だから
>それ以上でもそれ以下でもメリットは無いでしょ
まあそうなんだけどね
10: 2012/07/29(日)20:16 ID:rQX8VRkF(1) AAS
何秒とかそんな世界じゃ無い。
何クロックと考えた方が良い。1h=約113.7クロック
11: 2012/08/02(木)00:39 ID:pHdQmVv7(1) AAS
なんでファミコンは描画中
PPUアドレス空間にアクセスできないようにしたんだろうね・・・
やはりコストからか
12: 2012/08/14(火)22:43 ID:3GTdhVqH(1) AAS
アクセスできないんだっけ、アクセスすると異常なデータが読めるとかでなく
13: 2012/08/15(水)01:00 ID:NFZzBwkk(1) AAS
アクセスはできるけど$2006自体が現在の画面描写位置そのものだから
画面表示が引きずられちゃう
14(1): 2012/08/24(金)23:22 ID:EDbXndLG(1) AAS
ファミコンほど理解しやすいハードウェアって
なかなかない気がする
15: 2012/08/24(金)23:47 ID:fbm4SP4s(1) AAS
>>14
あの頃のPCだとほとんど同じような感じだったと思うけどな
MSXとか感覚的にはファミコンとほぼ同じというかもっと簡単だけど
あの頃は個人レベルでハードウェアの隅々まで理解できる環境が多かったな
16(2): 2012/08/29(水)00:13 ID:dCbNSnnq(1) AAS
0爆弾で画面2分割し、
上は縦スクロール、下は固定(「沙羅曼蛇」のような画面)に挑戦しています
0番スプライトを画面左端に持ってきて、左端8ピクセルを$2001で隠すと
$2002のヒット検出はできないでしょうか
ためしにやった所
G-NES:できる VirtuaNES:できる
実機(AV仕様):できていない(下画面が描画されない。左端クリップ無ければできる)
おそらく実機PPUの仕様かと想像しています。
17: 2012/08/29(水)09:34 ID:XGVG2N0d(1) AAS
マッパー変更してIRQ使えるやつで
やるってことじゃだめなのか?
実機でできないなら、できないものなんだろ
0spriteを1dotだけのものにするとか、回避策はいろいろあるだろう
18: 2012/08/29(水)10:01 ID:i4hq19i2(1) AAS
開発の止まったエミュ持ち出していまさら何がしたいのか理解に苦しむ
19: 2012/08/29(水)18:07 ID:KHvPZkYe(1) AAS
単純に考えると、
・クリップ領域から出るように、左から9ピクセル目に仕掛ける
・1つ前のラインの右端に仕掛ける。
のどちらかで出来ると思うんだけど。
クリップ領域に0爆弾置いたら不発になるのは、0爆弾はスプライトを表示するタイミングに依存してるからでないの。
つまり、クリップした区間ではスプライトの表示処理自体がスキップされるとかそういう理由で。
俺、0爆弾なんて使わないから想像なんで違ってたらすまんが。
20(1): 2012/08/29(水)18:11 ID:G0Y2hDxx(1) AAS
左端だと描写中だからおかしくなって当然だろ
HBlank中に掛かるように右端でやれよ
21: 2012/08/29(水)19:00 ID:V0VP3qcd(1) AAS
すごくザックリ&うろ覚えで申し訳ないのだけど、
背景ピクセルの上に0番スプライトのピクセルを重ねて、ピクセルを描画。
→ このとき、描画したピクセルが透明色でなければ、
$2002の[6]番目のビットが立つ。
→ このとき、描画したピクセルが透明色ならば、
$2002の[6]番目のビットは立たない。
って感じじゃなかったっけ?
クリップで強制的に透明色にされた背景ピクセル+強制的に透明色にされた透明スプライト=透明色
なので、0爆弾がヒットしないんじゃないかと。
実機もないし、エミュで試してもいないので、想像ですまん。
てか、過疎っぽく見えて、読んでる人いるんですねw
22: 16 2012/08/29(水)21:37 ID:3N5g/q8u(1) AAS
ありがとうございます
やっぱり0スプライトを左端、というのは
いい方法じゃないですね
右端に置くとか、IRQ割り込みとかでやってみます
0番スプライトでやるとなると、BGもひと工夫が必要ですね
23(1): 2012/08/30(木)00:13 ID:2dcDlWaJ(1) AAS
>>16
ヒット検出しないのが正解だろうね。 実機でそうなったんだし。
上から覆い隠してる訳ではなくキャラクタを表示していない(と俺は考えてる)のだから、ヒットしなくて当然と思うけど。
左端がダメとかは、関係ない。横スクロールの指定はいつでもできる。
24(1): 2012/08/30(木)04:48 ID:YFBZ+1yV(1) AAS
検出してからレジスタ叩いてるクロック分だけ画面描画進んでるから
次のラインまで最低でも12クロックはズレたままでしょ
ライン単位での描画しかサポートされてないエミュだと再現できないけど
25: 2012/08/30(木)23:09 ID:mbhkbHVJ(1) AAS
>>23 がはぼ正しい
>>20 はどちらかというと間違い HBlank中が必須というわけではない
>>24 のようにCPUがフェッチ&デコード&実行&ライトやってる時間にも、PPUのドットは結構動くことに注意
普段はG-NESの使いやすいデバッガでデバッグ。
使いやすいVirtuaNESやNNNesterJでおおまかな確認。
際どいタイミングが必要なデバッグはFCEUXとNintendulator。
Nestopiaでタイミングの最終動作確認。
26: 2012/08/31(金)04:25 ID:qhg8Zh3g(1) AAS
大まかなデバッグはエミュでやって最終的に実機で動作確認してるわ
27: 2012/08/31(金)23:35 ID:gnF3SCUx(1) AAS
0爆弾の設置場所は捨てライン用意するならどこでもいいけど
右端なら画面に影響は出ないわな
28: 2012/10/10(水)21:49 ID:Z4BAuN6X(1) AAS
ファミコンゲーム作ってみたいんだけど時間がないんだよなー
現実的な問題がな
29: 2012/10/11(木)19:34 ID:9I6Jco6V(1) AAS
プログラミングにアセンブラから入った身だから
最初のうちはなれていたけど
CとかC++とかASに触れていくにつれて
面倒になっていったな・・・
30: 2012/10/12(金)00:52 ID:Z8DOmKFZ(1) AAS
ASってのはFlashですか?
あぁそれはありますよね…。感覚というか形態が違いますからね…アセンブラは
31: 2012/10/12(金)01:31 ID:EPkxezrz(1) AAS
そうActionScript(2.0だけどw)
最初のうちは高級言語のクラスとかオブジェクト指向とか全く理解できなくて、
アセンブラ至上主義で6502とか8080とか8086とかいろいろ手を出してたんだけどね・・・
6502向けのCコンパイラとかいいのないよね
てかそもそも8bitCPUに高級言語使うのもおかしな話だけどさ
某C言語が使えたポケコンは、全然速くなかったよ
さすがにBASICよりは速かったけど・・・
32: 2012/10/12(金)03:23 ID:fS+ezBRP(1) AAS
そもそも6502でC言語を使う需要が無いしな
Z80なら需要があって割とあるけど
33: 2012/10/12(金)10:06 ID:H0vAZjLv(1) AAS
cc65があるだろう。
最適化があまりうまくないけどな。
素人レベルだと十分だわ。
34: 2012/10/14(日)05:44 ID:XxvV8AOh(1) AAS
Cは16bitな石からでいい。色々ともったいない。
35: 2012/10/17(水)13:25 ID:R5qyF0uk(1) AAS
メガドラ以降ってことですか
36(1): 2012/10/18(木)18:23 ID:VBrCRfaf(1) AAS
同じ6502でもPCエンジンだと、ハドソンが優秀なCコンパイラ作ってたりしたんだろか?
上下前次1-新書関写板覧索設栞歴
あと 531 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.013s