トップページgamedev
985コメント311KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。2008/06/23(月) 17:38:05ID:z53SrIuZ
前スレ、何もしねぇカスどもの集まりだったよな。
でも900すぎてホンモノが現れたみたいだ。
もう要らねぇと思ってたけど、そいつらの為に立てたよ。
0948名前は開発中のものです。2012/03/23(金) 05:49:38.45ID:EKmbrKmy
それは物理的にかい?
0949名前は開発中のものです。2012/03/24(土) 23:29:09.53ID:pi7aftbx
そう言う感じ
0950名前は開発中のものです。2012/03/25(日) 01:14:37.28ID:c32Eu5AG
形式判明してるカセット分解して、ROM引っこ抜いて、代わりにソケット取り付けて、ROMライタで焼いた自作ROMを差し込む。
という話じゃなくて?
0951名前は開発中のものです。2012/03/25(日) 17:19:57.67ID:W0Y8frQC
誰かいますか?

ttp://ll.la/Rv~l

ファミコンプログラミングがやりたくて、
試しにN106で全画面表示をやってみたんですが、
G-NESだとうまく表示できなくて……

VirtuaNES、nestopiaだと期待通り動くんですが……

上のURLにソースコードと、各環境で実行したSSをupしました。
詳しい方、原因とか教えてくれませんか?
0952名前は開発中のものです。2012/03/25(日) 17:49:36.89ID:sx4Vwb9x
G-NESのエミュレ−トが不完全なだけ
0953名前は開発中のものです。2012/03/25(日) 23:12:13.63ID:Ih97tOjy
>>947
自作のnesをfdsファイルに変換して、fdsloadrでRAMアダプタに転送したことならある
(市販のnesをfdsファイルに変換するのは無理っぽい)
0954名前は開発中のものです。2012/03/26(月) 21:41:21.79ID:q32IwSYQ
>>951です。

>>952
返信ありがとう。
環境によってIRQカウンタの進み方が微妙に違うっぽいです。
初回にとりあえず1フレーム描画して、IRQカウンタの速度を取得しようと思います。


あと、>>951にupしたコードだと、VBLANK終了待ちに$2002のbit7を見たりしてますが、
これじゃVBLANKの検出ってできないんですね……。
(x,y)=(0,0)にゼロスプライトを置いて、それを見るように変えています。
なかなかむずかしいですね……。
0955名前は開発中のものです。2012/03/26(月) 23:40:41.01ID:uRvDMM79
何がしたいのか知らんが実機の挙動が唯一の正解だろ
0956名前は開発中のものです。2012/03/31(土) 14:42:03.41ID:upBLiWOt
>>337>>343のzipファイルが正常に解凍できません。
どうやればいいのでしょうか?
0957名前は開発中のものです。2012/03/31(土) 18:44:20.80ID:lM09VNG1
スレ違い
0958名前は開発中のものです。2012/04/22(日) 13:28:39.16ID:22nDGbXy
ブランチ命令って、ブランチしてもしなくても2(+1)サイクルなの?
0959名前は開発中のものです。2012/04/22(日) 16:18:06.49ID:x+Av2sLm
(+1)と書いてあるじゃん
0960名前は開発中のものです。2012/04/22(日) 17:21:10.63ID:22nDGbXy
いや、(+1)はページ境界またいだときの増分サイクル。
言葉足らずだったごめん。

ページ境界をまたがないとき、
ブランチしてもしなくても2サイクルなの?
0961名前は開発中のものです。2012/04/22(日) 19:52:17.64ID:4jO4E/1L
分岐なしで素通りしたら、2サイクル(オペコードと続く相対アドレスの読み込みにかかる時間)
ページ境界跨がない分岐をしたら、3サイクル(↑に加えて、下位8ビット分のアドレス計算で1サイクル追加)
ページ境界を跨いで分岐をしたら、4サイクル(↑に加えて、上位8ビット分のアドレス計算でさらに1サイクル追加)
だったはず。
0962名前は開発中のものです。2012/04/23(月) 06:49:12.90ID:XUn2WlEg
うおおお詳細な説明ありがとう

何故、一部の命令でページ境界またぐと
1サイクル増えるのかも知らなかったんで、勉強になった
そういう仕組みだったのね
0963名前は開発中のものです。2012/04/23(月) 15:19:07.79ID:/vOkL049
質問なんですが、マッパー0にて
PRGROM領域を32KBにして
$C000以降にもプログラムを書きたい場合には、ヘッダを
inesprg 2
にする以外には
どうすればいいでしょうか
0964名前は開発中のものです。2012/04/23(月) 16:44:47.09ID:iUjnyHkr
プログラム領域を8KB単位に区切って.bankを指定してやればいい。
.bank 0
.org $8000
<ここにコード書く>

.bank 1
.org $a000
<ここにコード書く>

.bank 2
.org $c000
<ここにコード書く>

.bank 3
.org $e000
<ここにコード書く>
0965名前は開発中のものです。2012/04/23(月) 16:51:12.56ID:Jr0Oiqmo
>>964
ありがとうございますッ
勉強になりましたッ
0966名前は開発中のものです。2012/06/26(火) 23:00:34.30ID:dKkI9P+Q
みんな生きてる?
0967名前は開発中のものです。2012/06/26(火) 23:07:03.84ID:Mm6viaGL
いや死んでる
0968名前は開発中のものです。2012/06/27(水) 20:59:08.12ID:3QSG7wMg
生きてるよ。
0969名前は開発中のものです。2012/06/28(木) 03:04:51.03ID:Ap+z5IPf
2ヵ月ぶりか。
0970名前は開発中のものです。2012/07/23(月) 18:20:09.87ID:UpRCw62k
ブロック崩し(アセンブラ版)を作ってました。
あんまり大した出来じゃないけど、見てください。
http://www1.axfc.net/uploader/Sc/so/364523.zip
pass:なし
0971名前は開発中のものです。2012/07/23(月) 19:37:38.05ID:8OEeXxja
じゃあ、お言葉に甘えてスルーさせていただく
0972名前は開発中のものです。2012/07/23(月) 20:07:44.15ID:qcJjYm+C
このスレで発表したら自分の捨てブログみたいなのを一緒に貼ってもらって
コメントはそっちで付けるという風にしたら?
またキチガイ君が暴れだしちゃうから
0973名前は開発中のものです。2012/07/23(月) 21:18:41.03ID:GE5kmtkE
>>970
右から2列目のブロックがアタリ判定が無くて消せない
何も無いところでボールが跳ね返る
0974名前は開発中のものです。2012/07/23(月) 21:38:36.66ID:UpRCw62k
>>973
プレイありがとうございます。
>>右から2列目のブロックがアタリ判定が無くて消せない
何故、ブロックを固定式(左上から5行、32列)
にしたかというと、1つの8x8ピクセルのブロックから当たり判定を行うにあたり、
全然バラバラに配置したブロックだと座標を取得しずらかったからです。
なのでメモリの$300と$400に160個ずつ座標が取得してあるはずです。
その値の代入の際に不手際があったのだと思われます。
たとえば0から+8ずつ32回代入すると一番右端のブロックは256になってしまいますね。
>>何も無いところでボールが跳ね返る
これは、仕様です。今のところ開発では半分ほどゲームオーバーの処理を終えてますが、
アップロードするかは未定です。
0975名前は開発中のものです。2012/07/25(水) 00:52:40.09ID:z4RF2/U1
な、言うだけムダだろ?
0976名前は開発中のものです。2012/07/25(水) 09:11:46.39ID:c+m1zKC6
何が な なんだ
誰に同意を求めてるんだこのキチガイは
0977名前は開発中のものです。2012/07/25(水) 21:12:44.94ID:BHYk1dC8
MMC5の
ネームテーブル拡張とか
8x8単位のパレット指定とか
ハードウェア的にどうなってるのかさっぱりわからん
$2000のbit6が関係してるのかな?
0978名前は開発中のものです。2012/07/26(木) 00:25:20.67ID:qWhbLsW5
>>977
ttp://wiki.nesdev.com/w/index.php/PPU_scrolling#Use_of_Loopy_V_during_rendering (loopyppu.zipの咀嚼版)を読む
NTSC 2C02 technical reference, by Brad Taylor を読む
Ntd_8bit.jpg 回路図を読む

これらが理解出来たころには、うすうす実現可能な事に気付ける
0979名前は開発中のものです。2012/07/26(木) 23:06:38.81ID:5MJlJbZb
おお、サンクス

$2000のbit6は関係ないんだね
2C02の14-17ピンにこんな秘密があったなんて・・・

ネームテーブルのインデックス拡張はまあ納得

確信はもてないんだけど、8x8単位のパレット指定は
PPU内部のRAMにアクセスする時も
アドレスラインから信号が出ていることを利用してるのかな?
$3F00から$3F1Fまで全部#$00にしてれば
MMC5からデータを出力してもいけそうな気がする

どちらにせよMMCはReadEnable信号かアドレス線かその辺を利用して
PPUと同期してるとしか考えられないな・・・・

結構勉強になったわ
0980名前は開発中のものです。2012/07/27(金) 08:18:25.85ID:7+iQSIOi
ごめんミス

8x8単位のパレット指定は
$3F00-$3F1Fとそれほど関係ない
0981名前は開発中のものです。2012/07/27(金) 21:18:44.92ID:sQ8tA8mC
自己解決したか?一応書く…

>>979
パレット拡張のところは勘違いしてるっぽいな。
MMC5カートリッジが$3F00-$3F1Fの値をいじる訳ではないし、その制限の壁は越えられない。
$3F00-$3F1FはPPU内部だけで参照出来る(あなたが言ったような例外もあったはずだけど利用はできないよ?)。
ttp://nesdev.parodius.com/mmc5-e.txt
  <ExGrafix Mode>
  bit PPpppppp
   PP: use character palette number
   pppppp: use background CHR-PAGE number index=4k
たかだか2bitのパレット指定。
ということで
Memory fetch phase 1 thru 128
-----------------------------
1. Name table byte
2. Attribute table byte
3. Pattern table bitmap #0
4. Pattern table bitmap #1
の2.のタイミングでMMC5カートリッジがAttribute table byteを出力してるだけだと思う。
8x8毎にAttributeを指定できるというだけ。

こっちの方が解かり易い?
ttp://wiki.nesdev.com/w/index.php/PPU_rendering
0982名前は開発中のものです。2012/07/28(土) 08:56:55.56ID:GyT0u9/H
中本さん見てる?
0983名前は開発中のものです。2012/07/28(土) 09:01:50.69ID:80Z4yq/U
ありがとう
>>979を書いてたときなんか勘違いしてた
朝風呂入ってもう一度考えてたら>>980ということになった
とりあえずこれで理解できた・・・と思う
0984名前は開発中のものです。2012/07/28(土) 12:56:03.28ID:oeXoY4Qd
そんな英文解説をどうやって理解できるの?
すごいわ。
0985名前は開発中のものです。2012/07/28(土) 13:55:21.86ID:Nq3GjYH8
専門用語がわかれば中学英語程度でも理解できる
レス数が950を超えています。1000を超えると書き込みができなくなります。