ファミコンのプログラム4at GAMEDEV
ファミコンのプログラム4 - 暇つぶし2ch50:名前は開発中のものです。
12/12/23 01:13:37.02 fIW1BS2m.net
クソゲと酷評されるソルスティスだが面白かったね
主人公キャラクタがオブジェに隠れる演出はすごいよ~

51:名前は開発中のものです。
12/12/23 04:35:01.34 qQHuwdYA.net
パターンがRAMでキャラ側をマスクで消してるんだっけ

52:名前は開発中のものです。
12/12/23 07:05:53.14 X9VTHfNw.net
曲とデモプレイ画面しか見たことなかったが…。

キャラと重なるBGオブジェを、重なっているときだけスプライトにしてるのかと思ってた…。
でも素直にそうやっちまうと、スプライト用のパレットが足りなくなるのね。
ほんと凄まじい発想だわ…


もっと派手な演出なら、既出だろうがRareのBattletoadsも良いな。
URLリンク(www.youtube.com)

しっかりした2重スクロールは、PCエンジン以降でしか見たことない気がする。

53:名前は開発中のものです。
12/12/24 08:48:47.89 6xMrwyA9.net
カエルのしゃがみポーズで笑う

54:名前は開発中のものです。
12/12/25 16:58:20.87 XIb3z3nT.net
ずっと気になってて最近確認した物に関連する話題が出てたので…。

スプライトモード8x16の時、普通指定するのとは逆のキャラ番号(偶数なら奇数、
奇数なら偶数)を指定すると、BGバンクのキャラがスプライトで出ます。

また、このBGバンクのスプライトを他の表示するスプライトよりも優先度を上げ、
BGより優先度を下にすると、他のスプライトはこのスプライトより下、つまり
BGより下に表示されます。
BGより下に表示されるのでパレットコストは必要ありません。

これを効果的に使えば細かいマスク処理が出来るはず。
横並びが厳しいので使い所は限られると思いますが…。

自分もソルスティスはコレを使ってるのかと思ってたんですが違いましたね。
何か問題があるのか、単にこの方法を知らなかったからなのかは分かりませんが。

PCエンジンでは使われてたらしいけど、ファミコンでこの方法を使ってるゲームはあるのかな?

55:名前は開発中のものです。
12/12/25 17:17:14.81 XIb3z3nT.net
具体的には(分かりにくいけど)こんな感じ
URLリンク(www.dotup.org)

上にスプライトで表示してるのを4枚、下の同じキャラの岩の所にも
BGより優先度下にして表示してあります。

シルバーホークがBGの地形より下、BGのボスより上に表示されてます。
柱に隠れる演出とかにも使えるかと。

56:名前は開発中のものです。
12/12/25 17:25:01.69 Fl9SbcCz.net
そのスクショ実機じゃないならなんの証明にもならんよ

57:名前は開発中のものです。
12/12/25 21:55:26.03 kWjHNajW.net
ていうか、全然分からない。(8*16スプライトの仕様はおいといて)
スプライトの優先度とBGの前後の関係は、まずスプライト番号の若いものが最優勢され、
1番目のsprがbgの裏、2番目がbgの表だったら、2番のsprは1番に重なる部分は1番に消されて、表示されない。
1番sprからはみ出た部分だけがBGの表に見える。

がんばれゴエモン外伝のオープニングで、えびす丸がドアから出るシーン、スプライト優先度をうまく使ってる。

58:名前は開発中のものです。
12/12/26 00:28:12.82 9XrAfUmn.net
シルバーホークとか固有名詞を当然のように出されても伝わらない
いまどきダライアスとか言ってるのってリタイアしたキチガイ互助会の方なのかな

59:名前は開発中のものです。
12/12/26 04:05:00.41 2BH9NGSG.net
いやいや、ダライアスは新作出たよw

60:名前は開発中のものです。
12/12/26 06:20:41.97 zMNlG5zP.net
わざとスプライトを8個以上置いてスプライトを消してるソフトもあるな

61:名前は開発中のものです。
12/12/26 06:31:02.45 CVnOhUO6.net
>>54-55
結局BGをスプライトにしてるから、VRAMの余裕はできても、
スプライトパレットの余裕はできないんじゃね?

62:名前は開発中のものです。
12/12/26 07:20:36.29 CVnOhUO6.net
あとソルスティスのデモ画面、パターンテーブルで見たけど、
CHR-RAMは極めるとすごいな。

弱点としては、VBLANK時に1フレームあたり
10キャラくらいしかロードできないんだっけ。
扱い方が難しいところも燃えるなぁ。

63:名前は開発中のものです。
12/12/31 23:43:32.17 dplgqzsF.net
CHR-RAM直打ちでいちいちキャラクタを書き換えているのが
ソルスティスの技術。上位オブジェクトの重なりと非描画判定は凄い。

後にラグランジュポイントはCHR-RAMって8KBなんかな。あのパターン
量を見ると8KBではなさそう。
セリフ用の文字画像部分を足して16KB搭載かつセリフウィンドウ部分
で割り込みバンク切り替えしているんじゃないかと推測しとるんだけど。
それともただのCHR-RAMなのだろうか。

64:名前は開発中のものです。
13/01/01 12:13:51.02 wi03Ie1H.net
>>63
ラグランジュポイント、CHR-RAMの実体は8K
URLリンク(bootgod.dyndns.org:7777)
ただし、参照配置換え可能。
普通のCHR-RAMならBGを4K、SPRを4Kと固定で、$0000か$1000に配置するけど、
参照配置換え可能ならばBG、SPRそれぞれ0~8Kまで1K(page)単位で柔軟なサイズ変更が出来る。
割り込みかけて途中で参照を変える、と。
SPR:BG = 1:7~3:5、位じゃないのかな。

65:名前は開発中のものです。
13/01/01 23:57:35.10 dHbpOLgO.net
わかってないなら適当なこと言わなきゃいいのに

66:名前は開発中のものです。
13/01/02 01:00:10.06 sqh/nOWC.net
>>65
あ り え な い 。それは。
バストダンジョンでリリカのおっぱい値を800近くまで調教強化してやらないと、そのフラグは立たない。
仮にフィリオナをメンバーから外してリリカを集中調教しても、アナルバイブが使えないその段階では
スカリバーはまだ手に入れられないはず。 妄 想 で つ か ?
とりあえずアンダー草原で淫獣マリリスを大量に調教して淫度をどんどん稼いどけ。
展開が不安ならバックアップ取っておくのを忘れんなよ。説教くさくなってスマソ・・・。ついな・・・。

67:名前は開発中のものです。
13/01/02 22:10:18.03 9vEznEQL.net
は?

68:名前は開発中のものです。
13/01/02 23:31:25.14 zErWDyJm.net
昔どっかで見たコピペだな

69:名前は開発中のものです。
13/01/05 22:50:06.11 Kcs0H07R.net
いつのコピペだw

70:名前は開発中のものです。
13/01/06 16:49:46.39 vL3Xl6d1.net
63です。本気の解説ありがとうござんす。
RAMのバンク切り替えの様なもの、というかメモリ参照の位置が変更
できるなんて想像の斜め上を行っていたとは・・。驚きました。

71:名前は開発中のものです。
13/01/06 19:38:07.98 Nbv6CYGv.net
64です。CHR-RAMなのは知っていたけど、
63の書き込みを見て調べた結果に驚きました。
ROMを乗せるはずのところに、一工夫してRAMを乗せるとこうなるのですね。

( ;∀;)イイハナシダナー

72:名前は開発中のものです。
13/01/07 17:29:05.26 Snw5yZJz.net
逆にネームテーブルのRAMを置くべきとこにバンクROM配置ってのもなかったっけ

73:名前は開発中のものです。
13/01/07 20:19:59.31 YCNSEchh.net
サン電子のアフターバーナーだね

74:名前は開発中のものです。
13/01/13 21:44:45.31 SvwqFKWD.net
某サイトに$4018-$401Aにもレジスタがある(ミラーではなく)みたいな記述があるんだけど
誰か何のことか分かる人いる?
今調べてるんだけど出てこない・・・

75:名前は開発中のものです。
13/01/13 23:43:50.36 Xsknydlc.net
これかな
URLリンク(wiki.nesdev.com)

矩形波とか三角波とか、現在の値が見れるっぽいね

76:名前は開発中のものです。
13/01/13 23:50:04.93 P2tocX8p.net
まじか。あさってやってみる。
でも、実用上ほぼ全く役に立たなそうだな。

77:名前は開発中のものです。
13/01/13 23:52:24.91 78BX4ehY.net
decapまでされてるのか

78:名前は開発中のものです。
13/01/13 23:55:52.07 SvwqFKWD.net
>>75
有益な情報をありがとう
ファミコンのプログラムはもうずっと前からしてるがこれははじめて知った・・・

79:名前は開発中のものです。
13/01/14 01:42:33.45 9rveIWjC.net
>>78
これらを使用していたソフトが無いから、任天堂からの資料にも書いて
いなかったんだと思う

使いどころを考えてみたら、DPCMのを鳴らす前のプチノイズが出ない
ようにしたり出来るかもって位かなあ?

80:名前は開発中のものです。
13/01/14 02:00:53.73 9rveIWjC.net
リンク先にまだ情報あったわ

URLリンク(wiki.nesdev.com)

TSTピン(30番ピン)をプルアップにしないとダメなのかな?
試せる人いたらタノム

81:名前は開発中のものです。
13/01/14 10:39:53.71 tzjT4Zjb.net
>>75
やっぱり
NesDev界隈には回路の写真から解析しちゃう人いるんだな
色付きの線で実に説明上手だ

祭りだワショーイ

>>80
オープンバスって「レジスタに繋がってないただのアドレス」
という意味でいい?

82:名前は開発中のものです。
13/01/14 18:03:11.53 9rveIWjC.net
どうなるんだか試さないとわかんねw

83:名前は開発中のものです。
13/01/14 23:45:03.97 XSpdI2pt.net
ちょっと質問なんだけど、アセンブラってみんな何使ってる?

ファミコン用のCライクな言語のコンパイラを作っていて、
とりあえずnesasm向けのasmを出力してるんだけど、
リンクとか考えるとcc65のアセンブラのほうが高機能っぽいので現在迷い中・・・

84:名前は開発中のものです。
13/01/15 00:44:21.46 bZUsNHpr.net
Cライクってのがわからん
このスレにCは需要無い

Cでやるならcc65のCを使うでしょ


x86のCコンパイラが吐く自動変数っぽい仕組みのを
nesasmで書けるマクロ組んでみたけど
遅くて使い物にならなかった

85:83
13/01/15 10:34:28.65 DThX962j.net
>> 84

自分が見た範囲だとnesasm使ってる人が多そうだけど、それ以外にもメジャーなアセンブラがあって、
そっちのほうが便利だったら乗り換えたいなというくらいの気持ち。
nesasmは、リンク機能がないのが直近の不満なんでそれ書いた。


> 遅くて使い物にならなかった
cc65が出力するasmを見て、このままだと遅すぎて使えないってのは同意。
工夫すれば実用的(アセンブラの1/2くらい?)にはなりそうなのでちょっと作ってみてるというところ。
といっても、割り込みや速度が必要なコードはasmで書かないとだめなのは諦めてる。

> このスレにCは需要無い
高級言語の需要はなさそうだなぁというのはわかってて、そういうの作ってるっていうのを書いたのは、
もしかしたら興味あるひとがいたらいいな、という下心はすこしありましたw

86:名前は開発中のものです。
13/01/15 20:25:38.47 /uFBc3xt.net
4018-401Aを読んでみたけど、どれも64が返ってくるだけだった。

87:名前は開発中のものです。
13/01/17 00:19:49.08 hcjbSNgf.net
がっかりして書き込みなし?

88:名前は開発中のものです。
13/02/04 21:07:41.31 fkuzgt9B.net
/:/: FAMILY NEWS
 2013年1月25日、48時間でゲーム作れやぁという世界規模のイベント
global game jamが日本で開催された。
 様々な作品が発表される中、札幌会場では、何とファミコンのゲームも
開発されたという。それが、これ。

URLリンク(globalgamejam.org)

 小規模の作品ではあるがしっかりと動く模様だ。開発はハンドアセンブラ
で製作、というから驚きである。48時間の多くは、ファミコンの仕様調査に
費やされたとのこと。なんとも変態的な情熱である。

89:名前は開発中のものです。
13/02/12 19:45:05.71 9xgYPqEW.net
nesdev消滅したのかと思った

90:名前は開発中のものです。
13/02/19 22:29:22.33 O/soUU/G.net
数年前に比べてファミコンに関する資料がかなり増えたね

91:名前は開発中のものです。
13/02/20 20:52:03.13 JiXwRlwj.net
10年前はもっと…

92:名前は開発中のものです。
13/03/02 00:41:19.83 hFHJmNkE.net
 ファミコン用の音楽ドライバを見つけたぜ。cc65でコンパイルした
libファイルを組み込んで鳴らしい。使い方はまったく解らん。内部構造
とかは詳しく解説してはあるヘルプが付いてるけどね。ちなみに、これ
用のmmlコンパイラも付属しているよ。
URLリンク(shaw.la.coocan.jp)

93:名前は開発中のものです。
13/03/02 00:47:42.77 8Km8c4Ly.net
あ、そういうことする人なんだ

94:名前は開発中のものです。
13/04/18 23:16:17.58 IMzwu5mh.net
>>92
すごい.
なによりも,この開発者さんの情熱が凄い.
ぜひ使わせてもらおう.

95:名前は開発中のものです。
13/06/02 03:27:36.01 3ZWnZLQL.net
来月はファミコン発売30周年だな

96:名前は開発中のものです。
13/07/16 NY:AN:NY.AN V4wzSO+/.net
初歩的なこと聞くけどBGのネームテーブルとかスプライトデータ64*4
のデータを見ること出来る?スーパーマリオで土管に乗るとかPPUのデータ
から判定してるかな?まさかCPUのRAM0x0000-0x07ffに入れてそれを見てる
ってことはないよね?

97:名前は開発中のものです。
13/07/16 NY:AN:NY.AN x8PldMXb.net
画面描写中はVRAM見れないよ
デュアルポートRAMなんてなかったし

98:名前は開発中のものです。
13/08/06 NY:AN:NY.AN 3KQG/adI.net
マリオブラザーズなら
VRAMのデータで当たり判定してたはず
画像ハックすると永久落下とか?

こんなのは例外で
スーパーマリオなど普通はCPU空間のRAMに仮想地形を作る

99:名前は開発中のものです。
13/08/14 NY:AN:NY.AN qLnn+CpW.net
URLリンク(www.nicovideo.jp)

100:名前は開発中のものです。
13/08/17 NY:AN:NY.AN uCbYKHDz.net
>>98
>VRAMのデータで当たり判定してたはず
>画像ハックすると永久落下とか?

自機の移動先座標のドット色情報で当たり判定してたベーマガの投稿プログラムを思い出した

101:名前は開発中のものです。
13/10/13 05:30:26.19 2zt6NDsD.net
スクロールなしの固定画面で
走査線割り込みによってパレットを書き換えて色数を増やしている
ソフトの代表例を教えてください

102:名前は開発中のものです。
13/10/13 06:09:25.87 j6RhH/8y.net
3Dホットラリー

103:名前は開発中のものです。
13/10/13 14:35:35.53 WWg/r0Uv.net
メタルスレイダーグローリー

104:名前は開発中のものです。
13/10/17 22:51:09.98 JAf2Y+Vq.net
元々の選べる色が50数色程度じゃ
パレット書き換えしても劇的な変化はないんだな

105:名前は開発中のものです。
13/10/21 23:14:22.41 JGQ8j3II.net
パレットを高速で入れ替えると中間色みたいになる

106:名前は開発中のものです。
13/10/22 01:38:09.46 fuBZsr5L.net
ドルアーガでやってたな

107:名前は開発中のものです。
13/10/28 15:22:51.38 mnXgpw7y.net
キラキラスターナイトの音楽って当初はmckで作ってログなんだってな。
音楽で800kbとかワロタ。
最終的には92のサウンドドライバにさしかわったそうだ。

108:名前は開発中のものです。
13/11/22 17:22:34.78 0CxishgT.net
すいません、16進数でFCはリターンですか?

109:名前は開発中のものです。
13/11/22 19:13:43.33 ePLUfS2n.net
難しい質問だ

110:名前は開発中のものです。
13/11/22 21:49:34.37 dQaQiKPU.net
6502の話ならRTSは0x60でしょ
0xFCは未定義

111:名前は開発中のものです。
13/11/27 18:47:29.95 2qPkVWWu.net
6502は未定義命令多いよね

112:名前は開発中のものです。
13/11/27 22:25:07.60 AIPgO1s0.net
108です、ポートピア連続殺人事件のバイナリを見ていて
文章の後からなずFCになっているので
文章のサブルーチンからリターンするコードがFCなのかな?と思ったのです
未定義というのはユーザー定義で自由に使えるということなのでしょうか?
だとすれば中村光一氏が定義したのかな?と思います

113:名前は開発中のものです。
13/11/27 22:34:47.33 2GaPYVty.net
な、なんだってー!! Ω ΩΩ

114:名前は開発中のものです。
13/11/27 23:17:01.96 H3/K2JY+.net
ただ単に、文章の最後を表すために、FC使っているだけ。
ちなみに、ポートピアなら、固有名詞にも特定の値を当てはめて、
容量を節約している。

115:名前は開発中のものです。
13/11/27 23:56:34.99 xJTLP5X/.net
なんだ、ただのバカじゃねえか

116:名前は開発中のものです。
13/11/29 23:43:36.26 +yLhVUXN.net
>>112
君はまず命令とデータの区別をつけるところからだな
あと未定義というのは何らかの既定の動作はするが使い道が無いということ
他と同じ動作だったり、ナンセンスな動作だったり、何かを破壊したり

117:名前は開発中のものです。
13/12/28 09:38:36.09 NXkYsMWn.net
6502の未定義命令表ってどっかに落ちていたような・・・
とはいっても2a03とオリジナルで違うような気もする

118:名前は開発中のものです。
14/02/25 00:48:36.47 PEseuuNL.net
同人でファミコンゲーだしてみたいので勉強中
実機でできるようになるまで遠いなぁ

119:名前は開発中のものです。
14/03/11 21:45:52.01 xOOt/lks.net
BG読書き時のレジスタアクセス等の手順を日本語で正しく説明しているサイトってないかね?

120:名前は開発中のものです。
14/03/11 23:17:40.95 Ee7AGpD7.net
古い情報を掲載してるとこしか知らない。
どこかで詰まってて表示できないとかトラブル抱えてるならソースファイルちょっと見せて?

121:名前は開発中のものです。
14/03/12 00:28:23.93 WZH/SRI7.net
ロジックは正しいハズなのにBG表示上手く行かねーって時あるけど
そういう時って大抵「ブランク期間中に全ての処理を一括でやらせて終わるのを待つ」的なロジックだったりする

ファミコンさんって割とレトロで非力な環境なので、毎フレームBG全書き換えできるほど速度早くないっていう。
なので、BG書き換え期間中は非表示にして、書き換え終了後にのみ表示する設定にすると、うまくいく事がある。

122:名前は開発中のものです。
14/03/12 01:37:23.21 sVRc03+V.net
スクロールレジスタ戻してないに1票

123:名前は開発中のものです。
14/03/12 21:31:45.55 AKXlzqE0.net
まだこのスレ見てる人結構いるんだな。。。。

124:名前は開発中のものです。
14/03/20 16:18:48.51 NcrvcaHS.net
スレチかもしれんがSFCのことについて聞きたい。
65816でCOP命令ってあるよね、あれ普通のソフトウェア割り込み命令とどう違うの?
てかコプロセッサ使用時にどう使えばいいの?

125:名前は開発中のものです。
14/03/20 23:57:41.03 nDoqvjBg.net
別枠で跳び先用意してるだけで、仕組み自体はソフトウェア割り込みそのもの。
意味があるかは別として、コプロセッサを使う以外の処理にも使用できる。(使用頻度が高いルーチンの呼び出しとか)
コプロセッサは、COP命令発行後、割り込みベクタを参照して飛んだ先のルーチンで、普通にI/O叩いて使う。
パラメータ渡したり、処理に違いをつけたかったら、レジスタで処理番号渡してルーチン側で分岐とか、
スタックにパラメータ積んどくとか。

ちょっと昔のパソコンで浮動小数点演算ユニット使うのとあんまり変わらない。(というかそのものか)

126:名前は開発中のものです。
14/03/21 00:22:20.42 P1JaUJrV.net
【65816:SNES】アセンブリ【6502:NES】
スレリンク(gamedev板)

127:名前は開発中のものです。
14/03/21 00:23:50.90 P1JaUJrV.net
スーファミのプログラム
スレリンク(gamedev板)

128:名前は開発中のものです。
14/03/27 11:27:04.95 Boex24sn.net
去年あたりにCPUとPPUのデータシートが流出したって聞いたが本当かね?

129:名前は開発中のものです。
14/03/27 11:33:55.73 6ZjkSFol.net
バーイ ハドソン

130:名前は開発中のものです。
14/03/31 23:12:27.47 2ZMIQNqL.net
ネトウヨ「国際司法際はチョン」

なのに竹島問題もハーグで決着つけようとかいってるジャップwwww

131:名前は開発中のものです。
14/04/04 07:14:22.67 stHAjJOS.net
URLリンク(www1.axfc.net)
ファミコンゲームです。操作方法は付属のtxtを参照

132:名前は開発中のものです。
14/04/04 08:34:30.32 FAM6mLE7.net
>>131
fceuでは正常に動作しています

133:131
14/04/04 16:51:41.09 stHAjJOS.net
>>132
動作確認ありがとうございます。

134:名前は開発中のものです。
14/04/05 21:35:51.55 RihLvMZN.net
nnnesterJでも動いた
ずっとやってたらCLEARって表示されたわ

135:131
14/04/07 06:20:21.08 ANvPoB1w.net
ありがとうございます。あと、透明な敵が現れるバグがあるのと、
静岡県立沼津工業高校の校歌を使っています。

136:名前は開発中のものです。
14/04/07 07:28:54.96 fDBMyb5C.net
>>119の子か。お礼ぐらい言えないのかね。

137:名前は開発中のものです。
14/04/07 15:41:53.87 YJHniqKP.net


138:名前は開発中のものです。
14/04/09 17:36:23.74 Aiee0k4j.net
6502プログラミングの基礎はどうやって勉強するんだろ
アセンブラ言語そのものは分かるけど実装技術が・・・

139:名前は開発中のものです。
14/04/10 21:35:34.35 hnCuty6F.net
>プログラミングの基礎
6502のCPUの割り込みベクタとかの仕様を確認理解して、
他人が書いたソースコードを読んでいくのが良いかと。

ファミコン(古いゲーム機)のプログラミングは、初期化の後、
VSYNC待ち→1フレーム分の処理
の繰り返しとなる独特のプログラム構造を理解する必要があるかな。

140:名前は開発中のものです。
14/04/10 21:41:45.23 hnCuty6F.net
開発途中で、まだゲームの体裁になっていないけど、自作のソフトをさらしてみる。
src.zipにソース一式入っているので、参考頂ければ幸いです。

URLリンク(homepage3.nifty.com)

十字キーでカーソル移動、Aボタンが時計回り、Bボタンが反時計回りに宝石を回します。
宝石が4個以上つながったら消滅します。

141:名前は開発中のものです。
14/04/12 04:57:10.26 IdgE9LS/.net
おお、すげぇ

宝石がヌルヌル流れるのがいいね。
なんでわざわざラスターしてるのかとおもったら、パレットのために必要なのか。
勉強になる・・・

142:名前は開発中のものです。
14/04/12 13:04:08.62 BjcqFb8t.net
すごい
仕事がコンピュータに関係ない仕事で趣味だけでここまで作ったのなら偉いと思われるレベル
当時のベーマガに投稿していれば採用されたと思う

143:名前は開発中のものです。
14/04/12 16:34:03.45 D7Ld43hD.net
>>140
なかなか出来が良さそう
.macro ~ .endm (引数付きで)
.func
なんかも使うと楽になる場合もあるよ

>>140
URLリンク(wiki.nesdev.com)
$4017への書き込み(W)によるstrobe(コントローラーのリセット行為)は無意味、
そもそも出力ポートにつながってないかと。
strobe行為は$4016だけで十分。

$4016のbit0が1か0かで、
Ⅰコン、Ⅱコン、bothのコントローラーの中のTC4021BP(シフトレジスタのIC)の、
パラレル、シリアルの各モードが変わる。
1→0で押しボタンのパラレルデータがシフトレジスタに取り込まれて、
シリアル化されたということだ。

シリアル化されたデータは
Ⅰコンは$4016の読み込み(R)で、
Ⅱコンは$4017の読み込み(R)で、
それぞれ独立にシフトされる。

URLリンク(green.ap.teacup.com) この回路図もいいな
URLリンク(nesdev.com)

>>141
パレットはいじってないよ?

144:名前は開発中のものです。
14/04/12 19:24:29.80 Gzkbouk5.net
欲を言えば、宝石回転をもっと速くして欲しい。

145:141
14/04/13 00:08:08.07 KkvqpUBo.net
>>143
>パレットはいじってないよ?
パレットというか、アトリビュートテーブル?
ラスターしないとパレットの違う宝石が水平に8ドットずれの位置で表示できないよね

146:名前は開発中のものです。
14/04/13 16:38:48.65 SW34DfG1.net
ラスタスクロールでずらす、って発想すごいなー。
こういう使い方初めて見た。勉強になりました。

当時もこういう使い方あったのかな?
ヘックスマップの戦略シミュとかでも使えそうだ。

147:名前は開発中のものです。
14/04/13 21:10:32.33 mdytbhuJ.net
>>146
理解力なさすぎ
いくらでもある

スプライト0ヒットで同期とった分割スクロール
  スーパーマリオ、エキサイトバイク
ラスタースクロールの塊
  F-1レースのカーブ演出、ドラクエⅢとⅣの旅の扉、rstrdemo.zip(VirtuaNES作者による)
IRQで同期とったスクロール(これが無ければゲームにならぬ)
  >>140、ロックマン3(武器、ボス選択、ワイリーステージ高速リフト)
  スレリンク(gameurawaza板:143番)


>>145
色だけがズレるわけじゃない、BGそのものがズレる。
>>140の作品やいろいろなゲームの
G-NESのIRQライン表示をみてみ、ネームテーブル表示みながら。
無機能初期カセットのスプライト0ヒットのゲームでは何も表示されないけど

148:145
14/04/14 00:05:28.57 Ye30GFaz.net
>>147
なんでそんな否定からはいるのさ?

「アトリビュートテーブルの制限で、パレットが2x2BGキャラクタごとにしか
指定できないのを回避するために、ラスターでずらしてるのね」
まで言わないと伝わらない?
あなたの発言をみると、ファミコンの知識はあるのは分かるので、
ちょっと考えれば想像できると思うんだが。

146もラスターで「位置をずらす」んじゃなくて、「パレットの制限を回避」
するって発想を褒めてるんだろ。


まぁ、喧嘩したいわけじゃないんで、そこんとこご理解を(^^

149:146
14/04/14 00:18:00.10 BSoZ156l.net
>>147
メイン画面とステータス部の分割、疑似3D、疑似多重スクロール、
ゆらゆら燃える炎、巨大ボス、
そこに挙げてくれた例含めて実際に見て知ってるし、仕組みも理解できる。
理解できないのは、コズミックイプシロンくらいなもんでさ。
URLリンク(www.youtube.com)

でも16*16ドットのブロックを行ごとに8ドットずつずらして表示、なんて使い道は見たことなかった。
その発想がすごいって話よ。

150:145
14/04/14 00:44:20.53 Ye30GFaz.net
補足。
ラスターに関して147の言ってることは技術的に正しいんだけど、
他人がそれを理解してないのを前提に、否定してるのが、ちょっとカチンときたということ。
(145も146もこの件に関して技術的に勘違いはしてないと思う)

>>140 とか >>131 とか手を動かしてるひとを応援してるんで、こんなレスでスレを汚してごめんよ。

>>146
当時のこういう使い方はあったのかは気になるね。
ヘックスといったら信長の野望くらいしか記憶にないなぁ・・・あれは4x4だから問題ないし。

151:名前は開発中のものです。
14/04/14 18:55:50.61 dbr8gs6R.net
140です。

>143
strobeの件、情報ありがとうございます。
ソースに反映したいと思います。

>144
回転時のアニメーションは確かに落下時より遅いので修正します。
パラメータいじるだけなので、修正は難しくありません。

>149
>151
コズミックイプシロン見てみましたが、縦方向にも若干スクロールして立体感出しているみたいですね。
BGのバンク切り替えとの複合技でスゲーなと思います。


今作っているソフトも、2x2ブロック毎にずらしてあげれば
HEX表示できるな と思いつき実証の意味で作っています。
あと、1色共通で2色で描けば、1パレットで2種類、
3パレットで6種類の駒が表示できるなと。


ラスター割り込みは、他にもネタがあります。
例えば、8ドット毎に8ドット縦にずらせば、16x8ドット単位で
BGのパレット指定ができるなとか。

152:名前は開発中のものです。
14/04/14 18:57:07.18 Ye30GFaz.net
コズミックイプシロン、初めて知ったけど、たしかにすごいね・・・
デバッガで見るまで、どうやってるか想像もできんかった。

しかも、この手の3Dビュー系のゲームは個人的にはいまいち面白くないのが
多いけど、ゲームとしても楽しいw

good luck!

153:名前は開発中のものです。
14/04/14 19:22:56.78 PHq3J+m9.net
>>151
カーソル枠でまわる宝石が▽と△の時でカーソル枠の上と下を少し
狭くしたほうがわかりやすいかなと思いました

154:名前は開発中のものです。
14/04/14 19:58:14.37 BSoZ156l.net
>>151
テトラスターは知らなかったんで見てきた。おんなじ感じっす。
それにしても、バンク切り替えでやるのか…すげーな。
ちゃんと地形の模様になってんだもん、良く考えついたもんだ。

いま手元にないんでアレだけど、そのうちデバッガで見てみたい。


>>151
思いついたのか、発想力すげー…。

155:名前は開発中のものです。
14/04/14 20:06:28.23 dbr8gs6R.net
>>153
最初、指摘の通り、カーソル枠を台形にして、▽か△かわかるようにしたのですが、
カーソル移動時にうねうねカーソルの形が変わるのが気持ち悪く感じたので、
今のただの四角にしています。

156:名前は開発中のものです。
14/04/14 21:32:22.23 qn3GgaV0.net
>>148-150 >>131
自演気持ち悪い

わかってないからってファビョって「他人」を弁護?w

>>148
>「アトリビュートテーブルの制限で、パレットが2x2BGキャラクタごとにしか
>指定できないのを回避するために、ラスターでずらしてるのね」
>まで言わないと伝わらない?

伝わってるからそれは違うって言ってるんだけどね

手を動かしていてもね
延々と即値でスプライト初期化してたから変な奴と思ったらやっぱりな




ずらしてパレット指定の限界突破という謎技術を語ってる人が他にもいるようだけど

157:145
14/04/14 22:05:09.05 Ye30GFaz.net
>>131 の名誉のために、131と私は別人だよ。
スレのためにもう返事はしないし、あなたが正しいってことでいいよ(^^

158:名前は開発中のものです。
14/04/14 22:40:16.03 Ye30GFaz.net
>>140 さんに質問です。

勉強にソースを読ませてもらってます~
タスクのなかが下記のようなフローになっていると思うのですが理解あってますか?

...
jsr Yeild
...Vcmd_SequenceDataなど BG書き込み予約系処理、完了時はzフラグで判定...
jsr Yeild_Eq
(zフラグが立っていた場合は jsr Yieldの直後から再実行)
(zフラグが立っていない場合は、下に抜ける)
...

また、あってるとしたら、こういうフローっていうのは
8bitなアセンブラだとわりとよくある手法ですか?


C言語脳なので、pla pla とかで返りアドレス捨ててるの見て、
どこに帰るんだ~、とか、しばらく混乱してました(^^;

不躾な質問ですいませんが、お暇だったら見て頂ければ幸いです。

159:名前は開発中のものです。
14/04/14 23:59:40.63 qn3GgaV0.net
>>158
立ってる、立ってないが逆

160:名前は開発中のものです。
14/04/15 00:19:44.09 Rogly49M.net
>>158 さん

> タスクのなかが下記のようなフローになっていると思うのですが理解あってますか?
> (zフラグが立っていた場合は jsr Yieldの直後から再実行)
> (zフラグが立っていない場合は、下に抜ける)

Yesです。


> また、あってるとしたら、こういうフローっていうのは
> 8bitなアセンブラだとわりとよくある手法ですか?

あまりないかと思います。
ゲーム屋として仕事したことはないので、どのような手法が一般的かは
知らないのですが、現在の進捗状態を番号で管理してジャンプテーブルで
飛ぶみたいな話は聞いたことがあります。

私の場合は、各処理を分解してジャンプテーブルで呼び出すのが
面倒そうだったので、次の呼び出し先のアドレスで管理する方式としました。

161:名前は開発中のものです。
14/04/15 00:22:16.34 Rogly49M.net
>>159

Yesと書いちゃったけど、確かに、zフラグが立っている場合に抜けるでした。

162:名前は開発中のものです。
14/04/15 00:24:55.54 4gJhlsqp.net
あ、ご指摘どうもです。逆でした

163:名前は開発中のものです。
14/04/15 00:25:59.35 4gJhlsqp.net
あら、、、フラグは z なのに beq/bne だから、頭が混乱する(xx

164:名前は開発中のものです。
14/04/15 00:52:17.35 4gJhlsqp.net
すいません、書き込み順の前後で混乱しました。160さんの指摘で正解ですね。

>>160
なるほど~。ジャンプテーブルより柔軟性がありそうですね。
あと、継続っぽくてカッコイイ。

ありがとうございます

165:名前は開発中のものです。
14/04/18 18:15:30.91 jpWSPUfh.net
画面表示中にパレットを書き換えるサンプルプログラムつくってみたので、興味があるひとはみてみてね。
自分は、情報がなくてけっこう試行錯誤したので。

URLリンク(www1.axfc.net)

メタルスレイダーグローリーのIRQ割り込みを参考にしたんだけど、
7ラインくらい表示ができないのはしかたないのか。
もっといい方法とかあったら、教えてくだしあ。

166:名前は開発中のものです。
14/04/18 21:05:20.40 GCyjwP+C.net
>>165
中央が黒いのは、書き換え中に色が付くのを防ぐため?

167:166
14/04/19 02:10:32.86 ENCcy0CN.net
>>166

うん。

たぶん、ラスター使えるようになってラスターでパレット変更もできるぜぃ、
と思って試した人(過去の俺とか)は、なぞのゴミが表示されて悩まされてると思う。
そのゴミをHBlankに押し込めるために、16byteの書き換えに7lineも画面表示を消してるって感じです。

168:名前は開発中のものです。
14/04/19 09:55:49.50 5+3bbh99.net
>>167
そうですか。知ってたらあれですが、3Dホットラリーはもろ見えてます。
URLリンク(img.gamefaqs.net)

169:名前は開発中のものです。
14/04/19 13:11:45.50 ENCcy0CN.net
あ、ほんとだw
実は、3Dホットラリーの名前は以前でてたんで画面見たんだけど、
上2パレット、下2パレットくらいでやってるんじゃない?とおもって、スルーしてた。
ちゃんとパレット書き換えしてたのねw 失礼しますた

170:名前は開発中のものです。
14/04/21 00:26:08.69 /pAmCg0v.net
ゴミなんて消してやんよ
って思ったら
意外と無理だった


if ((!IsRendering) && ((VRAMAddr & 0x3F00) == 0x3F00))
PalIndex = Palette[VRAMAddr & 0x1F];

こんな仕様しらんがな
nintendulatorのPPU.cppより

171:名前は開発中のものです。
14/04/21 10:13:40.71 LbIV6qH+.net
おお、こういう原理だったのか。トンクス >>170

URLリンク(forums.nesdev.com)
コレみて、なんとなくパレットカキコミすると色が出るのは、理解してたんだけど、
細かい挙動はよくわかってなかった。

172:名前は開発中のものです。
14/04/21 10:17:13.69 LbIV6qH+.net
ちなみに、これってハードウェア的にはどういう原理なの?
詳しい人いたら教えて。

173:名前は開発中のものです。
14/04/21 17:28:24.83 rQaSv6+b.net
>>170
そんな断片ソースで理解できるのがすごい。

174:名前は開発中のものです。
14/04/21 23:59:09.10 /pAmCg0v.net
>>165を改造させてもらった

URLリンク(www1.axfc.net)

ゴミ消した


パレットの0x0dは使えないよ
垂直同期のパルスみたいな電圧になるから

175:名前は開発中のものです。
14/04/22 00:47:42.57 Ncm5fcM0.net
レンダリング止めていればBGの色が出ると思ってた

>>165のおかげで本気出せていろいろ勉強になったわ
>>171系のやつへの理解向上
レベルが一気に3あがった!

rtiの戻り書き換えだとか組み終わった後に
URLリンク(forums.nesdev.com)
full_palette.s
の偶奇同期を見つけた
この簡潔なソースで横ブレの無さのキモさといったら


>>172
BGのレンダリングは内部で$3f00へアクセスするんだろうけど
そのバグ挙動なのかね
URLリンク(wiki.nesdev.com)
これ結局まだいじったことないんだけど、使いこなせれば理解できるのかな!?



ところで、また謎現象を見つけてしまった
URLリンク(wiki.nesdev.com)
URLリンク(forums.nesdev.com)

176:166
14/04/22 03:41:30.42 +4JN+sCM.net
>>174
おおお、これは技術の粋が詰まったコードですね!素晴らしい!!
私もレベル3上昇して、レベル4になった~

クロック管理が神々しく緻密・・・
ちなみに、ゲームでこのテクニックを使うとすると、IRQが入りそうなタイミングで
メインスレッドはnop連打になってないとダメという認識でおk?
とすると、実用は難しいけど、、、
ジャストアイデアとしては
2、3ラインくらい前にIRQいれて、一時的にメインスレッドをnop連打ループに切り替えて、
終わったらまたもとのメインスレッドに戻すというのは可能かな?
考えるだけで、脳髄が痛い・・・



>パレットの0x0dは使えないよ
一部の黒はつかっちゃだめというのは聞いてたんだけど、反対におぼえてたみたい(^^;
今後は0x0f使います~


>>175 の情報も含めて、いろいろありがたい(^^
やっぱり、コードは晒してみるものだなぁ・・・

177:166
14/04/22 03:55:38.11 +4JN+sCM.net
いままでの自分の致命的な間違いに気づいた・・・
nopは2クロックだったのね。1クロックだとばっかり思ってた(^^;

よくいままでのコードうごいてたなぁw

178:名前は開発中のものです。
14/04/22 18:39:42.31 FEq/t9cI.net
てす

179:名前は開発中のものです。
14/04/22 20:21:50.77 SP0raU7v.net
>>174

ソース読ませてもらったけど、
ldy #0
sty $2001
で、PPUのレンダリング止めると、PPUのバスが空くので
その間は自由にVRAMアクセスできたと理解していたんだが
違っていたかな?

そうであれば、HBlank待つ必要ないので、パレット書き換えで
非表示になるライン数を減らせると思う。

あと、割り込み時にはiフラグが立った状態でルーチンが
呼ばれるので sei は要らないと思う。

URLリンク(wiki.nesdev.com)

180:名前は開発中のものです。
14/04/22 20:38:14.58 SP0raU7v.net
>>172

PPUのデータのバス(信号線)が1組で、PPUのレンダリング中はVRAMからデータを読み出している。
CPUがVRAMアクセスのためにPPUアドレスを設定するレジスタ($2006)とPPUがネームテーブルにアクセスするアドレスのレジスタが兼用のため、CPUがパレットのアドレスを書き込むとPPUはパレットデータを読み出してレンダリングすることになる。

と理解しているのですが、間違っていたら指摘お願いします。>他の人

181:166
14/04/22 20:46:59.02 +4JN+sCM.net
>>179

>で、PPUのレンダリング止めると、PPUのバスが空くので
>その間は自由にVRAMアクセスできたと理解していたんだが
>違っていたかな?
そう思ってたんだけど、PPUのアドレスレジスタが0x3f**だと、
**の色(=ゴミ)が出力されるっていうのが、171のコード片の意味。

182:166
14/04/22 20:59:26.06 +4JN+sCM.net
>>180
なるほど~、
ハードウェアは素人(簡単なワンチップマイコンをいじったくらい)
なんで、解説してもらえて助かるっす。ありがと~

用語があってるかわからないけど、バスコンフリクトってやつでいいのかな?
あとチップに損傷を与えたりはしないのかしら・・・
まぁ、あとは電子回路関係の情報で調べてみます。

183:166
14/04/22 21:04:00.85 +4JN+sCM.net
連投でスマソ

>>180
追加で疑問。
そうすると、0x3f**以外のアドレスでも、そのアドレスのVRAMデータの色が出力されそうなんだけど、
0x3f**以外ではそうはならないみたいなんだよね・・・
これはレジスタ兼用でもそうならないものなのかな?

184:名前は開発中のものです。
14/04/22 23:02:12.52 SP0raU7v.net
>>181
なるほど、了解です。
自分も実験してみよう。

185:名前は開発中のものです。
14/04/22 23:13:05.47 SP0raU7v.net
>>183

The PPUDATA read buffer (post-fetch)
URLリンク(wiki.nesdev.com)

ここに $0000-$3effは内部リードバッファから返すが、$3f00-$3fffは(PPU内部の)データバスに直接配置されている
と書かれているので、この辺りの差で挙動が変わるっぽいですね。

186:名前は開発中のものです。
14/04/22 23:47:45.15 Ncm5fcM0.net
>>179
>seiは要らない
しまった、モロ立ってた
どうも

>>180
パレット$3fxxは通常はPPU内部アクセス、つまり擬似NTSC信号を生成する回路とのやりとりであって
普通のPPU空間には出力されないとどこかに書いてあった気がする

URLリンク(nesdev.com)
- palette RAM is accessed internally during playfield rendering (i.e., the
palette address/data is never put on the PPU bus during this time).

URLリンク(wiki.nesdev.com)
画像の通りパレットのアクセスはない

しかしこういう挙動もある、これはレンダリング止めた場合だろう?
Additionally, when the programmer accesses palette RAM via $2006/7, the
palette address accessed actually does show up on the PPU address bus, but
the PPU's /RD & /WR flags are not activated.
この辺あやしいね

187:名前は開発中のものです。
14/04/22 23:59:55.97 Ncm5fcM0.net
>>176
今回はjmp *にしてもHBlankに収まるっぽく大丈夫なようですが

127 line目で
$2001のレンダリングオフにする瞬間の
PPU tickのばらつきが
249~254 nop連打の場合
249~257 jmp連打の場合

ばらつきが3dot分増えることになります

市販ゲームのIRQ関係もゴミだらけだし気にすることはない

直前に入れるのはいいアイディアだね

188:名前は開発中のものです。
14/04/23 17:56:22.78 eYt0ULQB.net
>>185 >>186
なるほど、、、
まだ理解してないけど、このあたり読めばわかる気がしてきた。ありがと

しかし、PPUのアドレスレジスタの兼用さえなければ、レンダリング中に読み書きできて
BGアニメーションとかもっと便利だったろうにって思ってたけど、
Ntsc_timing.png みるかぎり、ひっきりなしにアクセスしてるんだね・・・
とするとメモリポートが2つないとだめだから、結局は無理だったのか。

>>187
了解。
sei/cliさえしなければ最大6クロックだから、6*3=18dot(nopにくらべて12dot大きく)
ずれるのが許容できればおkってことね。
許容できるのか、計算するのが大変だけど(xx

189:名前は開発中のものです。
14/04/23 20:09:45.06 yop1NMPn.net
この現象で分った事。
パレットの04 08 0Cは00とは別の値を格納できるが、実用上何も使われていないと言う事(合ってるよね?)。

190:名前は開発中のものです。
14/04/23 21:35:50.97 bXRTGLw+.net
↑あってるっぽい
ただしスプライトの四の倍数とは共有か

void _fastcall Write7 (int Val)
{
if ((VRAMAddr & 0x3F00) == 0x3F00)
{
register unsigned char Addr = (unsigned char)VRAMAddr & 0x1F;
Val = Val & 0x3F;

Palette[Addr] = (unsigned char)Val;
if (!(Addr & 0x3))
Palette[Addr ^ 0x10] = (unsigned char)Val;

191:名前は開発中のものです。
14/04/24 07:57:06.72 RDg08ToE.net
流れぶったぎるようで申し訳ないけど、デバッガ機能が一番使いやすいNESエミュはどれですか?

192:名前は開発中のものです。
14/04/24 10:17:47.73 TazbtZqQ.net
>>191
FCEUXがおすすめ。
(読/書/実行)ブレークポイント、スキャンラインごとのVRAM内容表示、RAMウォッチ あたりの機能をよく使ってる。

193:名前は開発中のものです。
14/04/24 11:46:44.27 RDg08ToE.net
ありがとう

194:名前は開発中のものです。
14/04/24 21:06:44.07 Ozv2HHx1.net
ブレークポイントの使いやすさは
G-NESじゃないか
よっぽどトリッキーなコーディングしないならこれで十分


G-NES は使いやすい、指定行まで実行がStepOverを兼ねる
FCEUX はログ機能が最強、シンボル機能搭載、エミュ精度も結構よい
Nintendulator はデバッガ付きではエミュの精度が最強かな、使いにくい

195:名前は開発中のものです。
14/04/24 23:37:48.91 d8WjRMEc.net
>>190
そう、スプライトと共通(04=14、…)
僕は実機で確認したけど、nendoかnestopiaと同じなら間違いないだろうな。
古いネット上のドキュメントとか間違ってたりするから100%鵜呑みにしない方がいいよ(エミュのソースも)。

196:名前は開発中のものです。
14/04/25 00:53:39.01 ffWieyHe.net
G-NESは使ってなかったから、ちょっと触ってみた。
デバッガは、FCEUXとG-NESほぼ同等やね。
ちょっとわかりにくいけど、アドレスクリックして"Seek To"で指定行まで実行もできるし。
(この機能が超欲しかったけど、いま探すまでアドレスクリックで指定できるの気付かなかったw)

しかし、FECUXのシンボル情報って吐き出してくれるコンパイラあるのかな・・・
使えれば便利そうなんだけど。

197:名前は開発中のものです。
14/05/10 18:53:04.15 ShrxaRho.net
マッパー0のカセットを何本か作りたいんですが
既存のソフトのHVC-NROM-256K-02基板からICを外すのが面倒なので
プリント基板だけを通販しているところとかないですかね?
もしくは,CADデータとか.

198:名前は開発中のものです。
14/05/10 19:06:34.44 ShrxaRho.net
ちなみに作りたいカセットとはこれです.
この1週間ちょっと頑張ってインプリしてました.
アセンブラなんか普段いじらないので,めちゃくちゃです.
でも,このスレはちょくちょく見てるので,恩返しに公開します.
URLリンク(sayonari.com)
綺麗に書き直したかったですが,しばらくいじれそうにないので,
皆さんに託します.

FCEUXではちゃんと動くんですが,ROMに焼いて,
FC互換機(GCC NEXT)で動かすと,
スプライトがチラチラと画面中に散らばって表示されます.

メモリ管理とかちゃんとしてないし,変なところに書き込んだり,
PPUアクセスのタイミングがむちゃくちゃだったりとかが原因だと思います.
互換機じゃなくて正規版本体ならちゃんとうごくのかな・・.

199:名前は開発中のものです。
14/05/10 19:40:22.36 WvHa+XO0.net
そこまでやって正規版FCを持っていないというのが謎過ぎる
高いわけじゃないんだから普通に買えばいいのに

200:名前は開発中のものです。
14/05/10 20:09:58.52 vMtYsoKB.net
>>198
スプライトDMAの前に$2003に$00入れるといいかも

201:名前は開発中のものです。
14/05/10 20:52:41.78 ShrxaRho.net
>>200
すごい!かなり軽減されました.しかしまだチラチラがあります.
しかしさすがのアドバイスありがとうございます.勉強になります.

202:名前は開発中のものです。
14/05/10 21:59:03.95 2fP2DbGG.net
なんで土管に触っただけで死ぬんだ
こんなクソゲー久しぶりに見たわ

203:名前は開発中のものです。
14/05/10 23:12:04.05 ShrxaRho.net
>>199
ファミコン本体は実家にはいっぱいあるんですが,今の家にはなくて,
急遽必要になったので,とりあえず,ヤフオクで互換機を送料込み900円で落札しました.
その後,今もですが,正規版ファミコンをどれにしようかと,ヤフオクでキョロキョロしてます.
互換機は今日届きました

>>202
これは,FlappyBirdっていう人気アプリのオマージュですが,それも土管で即死です

ROMライターのLEAPER-3Cのドライバが64bitWin7では動かなかったので焦りましたが,
VirtualPC上のXPmodeというやつで,そのOSからLEAPER-3Cが使えたので
良かったです(´ρ`)

204:名前は開発中のものです。
14/05/11 01:44:45.44 HiLhu8FK.net
非VBlanc期間がループで一切の処理をしていないからDMA転送がVblank内に収まってないんじゃないかね
通常は非VBlank期間にキー入力だのスプライトのデータ準備だのデータを用意しておいて
Vblank期間は描画処理だけを行うようにする

205:名前は開発中のものです。
14/05/11 02:54:20.00 Mnx9Nf8g.net
>>204
ありがとうございます!
チャレンジしてみましたが,上手く実装できませんでした(´ρ`)
どの処理をどこでやればよいか・・・.
もう時間的に頭が働いていないのかも.とりあえず寝ます.

206:名前は開発中のものです。
14/05/11 04:04:19.91 YECX6XhP.net
>>198
なかなか、ファミコンらしい可愛いグラフィックやね。
nesdevでflappy bird作った奴いないの?みたいなスレがあったから、貼るのもおもしろいかも
URLリンク(forums.nesdev.com)

ちなみに、Nestopiaでもバグってるっぽいので実機の前にこっちでデバッグしたら楽かもしれない。
残念なことにデバッグ機能はほとんどないけど・・・

207:名前は開発中のものです。
14/05/11 04:53:13.07 Mnx9Nf8g.net
>>206
nestopia情報ありがとうございます!
試してみましたが,パレットがおかしくなるバグはありますが,
実機互換機で起こるチラチラ飛び散りバグは出ません.
正規本体でもでないかな.正規本体早く買おうかな.

nesdevにも凸したいと思います(〃゜ω゜〃)

208:名前は開発中のものです。
14/05/11 08:18:39.15 IEErYv9U.net
>>207
最初のロゴでスプライトのゴミが出るのはメモリの初期化をして
いないからだと思う

パレットがおかしいとかスクロールがぶれるとかそういうのは恐らく
表示期間中にPPUに書き込みしてるんじゃないかな

209:名前は開発中のものです。
14/05/11 08:23:06.60 dYyMlr6C.net
fceuだとチラツキは見えない

210:名前は開発中のものです。
14/05/11 09:26:06.10 owqALoBe.net
時々音がおかしくなる。

211:名前は開発中のものです。
14/05/11 14:28:37.07 rGvGrR+8.net
>>198
タイミングめちゃくちゃ&画面ゴミ&遷移時ちらつき&各PPU系メモリ初期化すらできない
こういった初心者はG-NESだけ使ってればいい
そもそも仕組みをちゃんと理解していればこういった不具合を起こすことはない

最近うpる人っていつもこういう傾向だけど、わざと間違えてレス貰う釣りなの?
見た目綺麗だけど不器用で挙動めちゃくちゃなソースの人多いね、BGオンする前にVBlank待たずにチラつかせたりとか
最低限NESTECJ.TXTかndox200.zip理解しとけよ
 ・スプライトメモリの初期化をしていない、Y座標(0xef <= y <=0xff)とするとスプライトはオフになる、Reset:とシーン#1入り口等でやれ
 ・NMI直後にJSR PadGetやる暇はない、まずSPRDMA。プログラムのあちこちにSPRDMAがばら撒かれているのはおかしい
 ・シーンチェンジのVRAM初期化から離脱するときに、VBlankを逃してVRAMに書き込んでる
 ・あなたは当分.macroは使用禁止、これは上級者向け
 ・シーン#1の初期化でPPU $23be-$23bfへ書き込めていない
 ・シーンチェンジの瞬間に下記と同じ理由でカクついていると思う

   シーン#0の初期化の際
inc <BGUPDATED
.g2
jmp EndBG もうこの時点で123ライン程度経過している、つまりブラウン管のど真ん中描画中に
   こんなことをやっている
sta VRAMADDR  これはゴミがでるね
sta SCROLL  カクつくね
lda #%00011110 ; スプライトとBGの表示をONにする
sta PPUCTL1 カクつくね
   この次の箇所へ提案…
パッドはここにおけばいいはず
各~_playはたぶんここでいい
snddrv_playはここでいい
rti

各シーン初期化最後の inc <BGUPDATED 直後にNMIオンにして大胆にrtiしちゃえばすこしマシになるかな
根本解決にはならないけど

212:名前は開発中のものです。
14/05/11 14:29:39.56 rGvGrR+8.net
>>197
もう構造的に破綻しているけど
この先スクロールゲームにするなら
今の構造のままだともっと破綻する

理想的には
バッファに命令語を用意しておき
NMI直後に命令語を読み取ってVRAMに書き込む
こういうスタイルじゃないとね

構造が悪いからデバッグの難度も上がる
小規模なうちに治さないと


シーンが増えると結局テーブルジャンプや間接ジャンプ( jmp [mem] )、こういった関数ポインタを使わないとやってられないと思う、
デカくなったswitch文のアセンブラでの効率のよい実装のことね。
cmp #n の比較地獄をしていたら、デカくなればなるほど後の方は遅くてやってられない。
シーンが続き番号でないなら比較地獄も免れないけど


>>197 >>199 LEAPER-3C
謎な奴だよなw
IC引っこ抜くよりCADデータある方が時短になるのかw
エミュでデバッグできないやつが、実機ROM焼きしてたら、ますます時間無駄にすると思うけど

>>200
姑息な手かと思ったら、少し根拠あったのね > Obscure details of OAMADDR

213:名前は開発中のものです。
14/05/11 15:05:47.12 /Ki7K6oz.net
ファミコンは画面周りがややこしいからなぁ
自分も昔は資料が少なかったこともあって
BGを正常に表示できるようになるまでけっこうな時間を要したな

214:名前は開発中のものです。
14/05/11 17:55:22.28 vl3SyvU7.net
原理的にはむしろ単純だろ
なぜそうなるかの理解がないから理不尽に受け取るだけで

215:名前は開発中のものです。
14/05/11 20:28:01.30 FD888ndC.net
>>213
ハードウェア的には単純なので、ソフトウェア側での配慮が必要
という方が適切だと思う。

216:名前は開発中のものです。
14/05/11 21:03:39.07 QGu2c1mG.net
惜しいなあ、技術的にはいいこと書いてるハズなのに口調で台無し
必要もなく刺々しい言葉「しとけよ」「やれ」などを使ったかと思えば
「釣りなの?」「と思う」などと子どもじみた表現が混ざる

いい歳こいて言葉を選べないって、それはもう恥ずかしい事だよ
書き込む前にきちんと自分の書いた文章、推敲したするべきだよ
自分も、他人も、傷つけないために

217:名前は開発中のものです。
14/05/11 21:45:37.94 hyDhkYCi.net
>>198
□ゲームについて
全体的に良い感じにまとまっていると思いました。
ただ、ミス即ゲームオーバーなので、残機制かライフ制にした方が少し長く遊べて楽しいかなと思います。
あと、果物などのアイテムを出して取ればボーナス点が入るとか。

□プログラムについて
BG書き換えについては、VBlankを深く考えていない実装になっているので、ここから立て直すのはきついと思いました。
205さんの指摘のように、PPUに転送するデータを一旦バッファに入れてVBlank中に転送するフレームワークを作って移行する方が早いかと。
VBlank中にPPUに転送できるデータ量は限界があるので、BG書き換えの実装部分はそれを配慮した作りに直さないと駄目ですね。

218:名前は開発中のものです。
14/05/11 23:13:04.21 rGvGrR+8.net
>>216
ゆとりメンタルなやつは2ちゃん見なきゃいいんじゃない?

お前らは延々と即値でスプライトのバッファ初期化して、
100レス前も読めずNMI使えず$2002のポーリングでループ作ってるアホと同類だろ?w
何度同じこと言われても改善しようとしないやつw

前スレの>>700あたりから湧いてる


画面カクついてる時点で釣りかと思ったし
全部のシーンを厳密に検証する気はないから「思う」と書いただけでね



こういう書き込みも増えたね

>~エミュで動作しました、バグってました
そりゃ画面がカクついていたり、
ソフトリセット、ハードリセット時に挙動が乱れたりするのは誰が見てもバグだよな

>>217
つくりはじめたばかりのやつが、まとまってるのか?

219:199
14/05/11 23:30:36.97 Mnx9Nf8g.net
皆さんご親切に本当に有難うございます.実際にプログラミングしながら勉強することで,
たくさん吸収出来てます!!

>>211
親切にソースチェック&修正案ありがとうございます.
こういう方が即レスくれるのも,さすがこのスレという感じです.
プログラムは,何も考えずに,ここまでとりあえずという感じなので,
皆さんから頂いた意見と,わかったことを入れて,プログラムし直したいとおもいます.

>>217
PPUへのアクセスに時間がかかるし,BG描画後にVRAM周りにアクセスするとヤバイ
っていうことを知らずに実装していった結果が今のプログラムです.
ご指摘のように,バッファに用意→転送にすることと, VBlankの時間を考慮した
実装にしたいです.


ソース公開は恥ずかしかったですが,頑張って出して良かったです!
想定よりも,皆さんからレスを頂けて嬉しいです.頑張ります!

220:名前は開発中のものです。
14/05/12 00:09:07.80 jaOM61/S.net
>NMI使えず$2002のポーリングでループ作ってる
初心者でこれやらかす奴はたぶん某サイトの影響受けてるだろ
あそこは全体的に説明が不足しすぎてるよ
更新も長いこと止まってるし、当てにするのはやめたほうがいい

Nesdevの日本語資料理解するだけでもだいぶ変わるし
他にも今ではNES関連資料のサイトなんていっぱいある
特にI/Oレジスタについてはサイトによって書いてあること違ったりするから
一つのサイトに拘らず色々見るといい

221:名前は開発中のものです。
14/05/12 00:13:00.90 p9javgur.net
>>219
BG描画後にVRAMアクセスがNGではなくて、
非VBlank中にVRAMアクセスするのがNGなんです。(画面が乱れる)
短いVBlank中にVRAMを書き換えるために、バッファにデータを溜め込んでおいて、
VBlank(NMI)割り込みに入ったらすぐにバッファのデータを転送しろってことです。
あと、もちろんですが、スプライトのDMA転送もVBlank中に行わなければなりません。

222:名前は開発中のものです。
14/05/12 08:39:01.88 Wk7QwTB6.net
>>198 みたいな、打たれてもへこたれないヤツは2ch向きだね。ガンバレ!

>>216 の意見には同意だけど、そういうヤツもいるのが2chの味なのかなぁ
自分に対して >>212 みたいな反応されたときは、頭来たけどなw
修行が足りない

223:名前は開発中のものです。
14/05/12 08:40:54.97 Wk7QwTB6.net
失礼、>>211>>211 の間違いでした。

224:名前は開発中のものです。
14/05/12 10:39:31.18 cuBtqyJP.net
当時のRAMはデュアルポートではないから読んでいる最中に書き込みはできない
単純な構造だよね?

で、画面を描画している最中は(BGもOBJも)データをVRAMから読み出している真っ最中だから
そこで無理やりデータを書き込むと、今まで画面描画時に参照していたVRAMのアドレスが置き換えられてしまうため
元の描画処理を継続することができなくなり画面の表示が破綻してしまう

表示周りをいじる際VBlank期間中にアクセスしなければならないのはこういう理由

225:名前は開発中のものです。
14/05/12 22:05:47.81 jsal4ZTv.net
キラキラスターナイトのソースを読んでみたい。

226:名前は開発中のものです。
14/05/13 05:06:48.28 9EaC9IEc.net
遊び方にパテントはないわけでして

227:名前は開発中のものです。
14/05/13 06:22:09.58 T2v6EbAW.net
>>225
絵は卓越しているけど
プログラムは大して高度なことはやってないでしょ

228:名前は開発中のものです。
14/05/13 19:16:50.69 srI4FW40.net
RIKIがパソファミの安藤に媚び売っててワロタ
ロジックボム組み込んだりする基地外なのを知らんのか近頃のもんは

229:名前は開発中のものです。
14/05/13 20:10:15.51 f3qQ/xjJ.net
パソファミ作者はメールでの対応が最悪レベル
自分の非を認めないどころか人を犯罪者扱いしたりするキ○○イ
おまけにホンコンのソース盗用疑惑もあるしな ホントどうしようもねぇよ 
素人にはこれしかないから売れるんだろうけど それが余計にたち悪いね

230:名前は開発中のものです。
14/05/15 00:00:39.68 HB8Kbvvq.net
>>228
>>ロジックボム
そういう噂を聞いたから
その後にちょっとだけ調べたけど
プリンタポートでないI/Oポートに向けて
x86のout命令が発せられてたような、ないような
windows98なら簡単に発動するのかな
より堅牢なOSであるwindows2000にしてたから
効果なしっぽかったけど

近頃のもんが吸出しやROM焼き実機動作させてるのをよく見かけるようになったけど
ソソハメさんの名前がなぜあまり挙がらないか理由をよく認識しておいた方がいい>もっと近頃のもんたちへ

231:名前は開発中のものです。
14/05/15 03:12:19.39 AXeiaTDm.net
気持ち悪いのが涌いてきたな

232:名前は開発中のものです。
14/05/15 05:14:14.01 gGlXRPO1.net
すみません、吸出しというのは英語では何というのでしょうか?スペルを教えて下さい

233:名前は開発中のものです。
14/05/15 08:42:17.70 9cGRzDB1.net
dump

234:名前は開発中のものです。
14/05/20 00:15:36.83 sHOtKBex.net
>>140
宝石のラスタスクロール凄いね。あと、スプライト吹雪は気持ちいいっす
このスレッドで新しい演出ジャンルに出会えたのは嬉しいね

>>198
土管避けるの難しいけど楽しいね
BGの判定は凄いと思う
どんどん成長してゆくのが楽しみ

235:199
14/05/27 16:46:17.78 Yj5iT5NZO
頂いた修正案をもとに「まずSPRDMA」にして(PAD情報ゲットも指定の場所に移した),
また,プログラム中で何回もSPRDMAしてしまっていたのを削除しました.
実機でのスプライト飛び散り表示はなくなりました.

ただ,シーン切替時のがたつきや,
BGのミラーリングの問題で,裏で画面更新していけないなどの構造欠陥などは
修正していないので,またまとまったらご報告させてください.

236:140
14/05/28 20:00:45.64 pcO3WytB.net
ジョイパッドの読み取りルーチンをリファクタリングしたら結構コンパクトになった。
6502のアセンブラは奥深い。

Joypad_Update:
lda #$01
sta $4016
lsr a ; same as lda $00 & sec
sta $4016

ror a ; same as lda $80 & clc
sta <JOYPAD
sta <JOYPAD+1
.1
lda $4016
and #$03
; clc
sbc #0
ror <JOYPAD
lda $4017
and #$03
; clc
sbc #0
ror <JOYPAD+1
bcc .1

rts

>>234
ありがとうございます。

237:140
14/05/28 20:07:39.22 pcO3WytB.net
あ、

sta <JOYPAD
ror a ; same as lda $80 & clc
sta <JOYPAD+1

として、JOYPADには$00入れないと不味いね。

238:名前は開発中のものです。
14/05/29 00:32:25.75 Ix+yqrZv.net
>>237 (clcと)sbc #0をcmp #1にすればsta <JOYPADは不要

239:140
14/05/29 01:07:17.19 Lo1UVUXb.net
>>238
ああ、確かに。さらに小さくなりました。
ありがとうございます。

240:名前は開発中のものです。
14/06/04 21:11:42.02 Wpb6i0Ha.net
RevolvingGemsのゲーム本体部分が出来ましたので公開します。

URLリンク(homepage3.nifty.com)

残りはタイトル画面と遊び方画面を実装して終わる予定。

241:名前は開発中のものです。
14/06/04 21:35:20.41 EpTIlg4F.net
すげー

242:名前は開発中のものです。
14/06/04 23:51:21.70 78Tpkbjc.net
商用レベルのできだと思う。
気になるのは、連鎖がどんどん発生しやすすぎではないのかなと

243:名前は開発中のものです。
14/06/05 01:19:37.09 9NxYghum.net
>>242

連鎖しやすいのは、6方向に対して6種類の駒しかないので
仕様上、確率的につながり易いのが原因です。
駒の種類を増やせれば良いのですが、パレットが足りないw

最初は3個つながったらで実装していたのですが、
あまりにも連鎖が続くので4個にしています。
それでも消せなくなることが無く延々と続けられるので、時間制に逃げました。

作って思ったのは、ぷよぷよの仕様は絶妙なバランスなんだなぁと。

244:名前は開発中のものです。
14/06/05 23:11:37.79 hfWG3l/O.net
追加された音楽がスタートで変更できるのは、個人的にうれしいですね!
後、セレクトボタンはどんな効果があるのでしょうか?(効果音だけ?)

245:131
14/06/06 19:17:42.85 5n3Zcu9W.net
131です。あの後、
いろいろ注意深く書き込みを見ていたのですが
人に意見されるってすごく大事だと思いました。

ちなみに、cc65でオセロとShootingGameSampleを作ったのと、
nesasmでブロック崩しを作ったのも
自分です。

今までは自分はチキンで人に意見言われるだけで、
むっつりと黙っていましたが、これからは
もっと能動的に動きたいです。

ファミコンのブロック崩しをソース付きで晒すので
汚いし、ロジック的におかしいところばかりですが、
見てやってください。

僕はカービィやマリオ、くにおくんのファミコン少年の一人の
つもりなのでファミコンは、ホント好きですし、このスレッド
を最初から見ています

URLリンク(www1.axfc.net)

246:131
14/06/06 21:24:59.35 5n3Zcu9W.net
こんな事書き込みたくて書き込むわけじゃないですけど、
ファミコンの正常動作って何ですか?
どうすれば正常動作っていうんですか?

いつまにか、このスレッドは本物のROMと同じように動かす為に努力してる
人たちを称え、褒めてきました。

正常動作って定義がどこにあるかはファミコンで動作すれば分かるんじゃないですかね。
それ以外を異常動作というなら、エミュレータはほぼ全て異常動作ですよ。

247:名前は開発中のものです。
14/06/06 22:02:30.07 4Zl9JWw3.net
>>243
始まった瞬間操作する前に勝手に連鎖するってのだけでも
どうにかならないかな
初期配置のみパターンで持つとか

248:名前は開発中のものです。
14/06/06 22:51:57.22 kdjIsC0c.net
>>246
そうですよエミュは異常動作ですよ
実機で動かないのを言い訳してるだけにしか聞こえませんね

249:131
14/06/07 03:42:43.36 hwRmu2MG.net
本当に実機で試したのか知りたいですが、
自分の言いたい事は実機で動かない事の言い訳じゃなくて、

ファミコンのプログラミングが1つの古代技術でそれが通用するのはあくまでファミコンのみ
という事なんですが**が素晴らしいとか**の技術は優れているとかのある意味
マニアックな話の流れになっているというか、

ぶっちゃけ、自分の作ったファミコンゲームは技術的には全然優れてないので、
優れた技術を持った人たちに憧れたみたいなところがあります。

250:131
14/06/07 03:52:27.88 hwRmu2MG.net
**には、ラスタースクロールやスプライトダブラー、
FFの高速スクロール、BGの高速書き換え、パレットアニメーション
を入れてください。

251:131
14/06/07 09:33:01.78 hwRmu2MG.net
cc65の作ったやつは(REVERSI,SHOOTING GAME SAMPLE)動く自信がないですが、
nesasmで作ったやつも(IWA WO OTOSE,BLOCK)動かないんですかね。

252:名前は開発中のものです。
14/06/07 10:52:19.34 0OqTmEOh.net
>>244
スタートとセレクトは、サウンド系の開発用にテストできるように追加していた機能で
今回スタートを少し改良して選曲出来るようにしました。
セレクトは、効果音を作る時以外は意味を成さないので、次の完成版では削除する予定です。

253:名前は開発中のものです。
14/06/07 11:09:37.37 0OqTmEOh.net
>>247
初期配置をパターンで持つのは、バリエーションを作るのが大変なので、
採択したくないですね。

代わりに内部で連鎖が止まるまで処理を繰り返して、
そこからゲーム開始するよう実装してみます。

254:名前は開発中のものです。
14/06/07 11:18:00.96 0OqTmEOh.net
>>249
私も最終目標は実機で動作させてみることなのですが、
そこまでの道が遠い状態です。

一応、動作させるための目処は立っていて、材料とかもそろえたのですが
ROMライターから自作せねばならないため、いつになるかわかりません。

実機で動作したのを確認して初めて、ファミコンのプログラムを作ったと、
胸張って言えるかと個人的には思っています。

255:131
14/06/07 14:24:42.36 HAL7UNXv.net
>>254

ネットカフェから書き込みです。

そうですね。ファミコンの実機で動いたら感動しますし、
実機で動かしたいです。

ファミコンの実機は持っているのですが、ROMライターや
EEPROM、同軸ケーブル、ビデオデッキ、自分用のテレビ

256:131
14/06/07 14:27:25.94 HAL7UNXv.net
など問題が山積しているので、現段階では難しいです。

257:名前は開発中のものです。
14/06/07 15:48:51.46 0OqTmEOh.net
>>245
一通り読んでみました。

.bank 0 ; バンク0
.org $0300 ; $0300から開始、スプライトDMAデータ配置
Paddle00_Y: .db 0 ; スプライト#1 Y座標
Paddle00_T: .db 0 ; スプライト#1 ナンバー

WRAM領域の$0300にデータ定義の記述があるが、
ビルド出来ているのであろうが、記述としてはまぎわらしいので

Paddle00_Y = $0300
Paddle00_T = $0301

と記述した方が良い


.memclearloop
  sta [$00],y
  iny
  cpy #255
  bne .memclearloop
254までしかループしていない。cpy #255が不要

258:名前は開発中のものです。
14/06/07 15:49:29.84 0OqTmEOh.net
>>257

続き

VBlank直後に行うべき処理と、ゲーム本体の処理を分離したほうが良い。

パッドとボールの座標と、スプライトの座標は別に持っておき、
パッドとボールの座標をスプライトデータに反映するにように
実装した方が、プログラムの書き方としては綺麗だと思う。

VBlankのタイミングを考えずに、スプライトとBGの表示をOFF/ONにして
VRAMを書き換えるのはやめた方が良いと思う。
nestopiaとかでも普通に表示できていたけど、書き換え量が多くなると
画面がちらつくのでは?


  jsr Pad_Check

ソース上に Pad_Check が見つからない。


lda #0 ;これはROMなので出来ないので、こうする
sta STAGE1,x ;〃

ROMに0を書き込む意図がわからない。

VRAM書き込み先のアドレスをブロックの座標から
計算しているが、ブロックの配置位置が有限個であれば
表引きで求める方法もある。
(Y座標だけでも表引きにすると処理が結構簡素化します)

259:131
14/06/07 17:02:04.46 hwRmu2MG.net
ギコ猫さんのところで、覚えた技術ばかりという理由は
英語が出来ないという理由なのですが、これは理由になってないみたいですね。

①英語が出来ない

②英語の技術情報が分からない

③日本語だけの技術情報に頼る
の無限ループなので、英語を中学英語から
やり直したいと思います。

ちょうど良い本がアマゾンで見つかったので
URLリンク(www.amazon.co.jp)

あと、スプライトの定義のその定義の仕方は知らなかったです。
でも、ある意味スプライトDMAのアドレスを考えれば当たり前なんでしょうけど。

iny cpy bneの間違いは、間違えて覚えていました。

ギコ猫さんとこはパレットの読み込み時に
ldx #0
.loop
lda ourpal,x
sta $2007
inx
cpx #32
bne .loop
みたいにやっていたのですがよく考えれば、0-31までを読み込んでいたんですね。
これは、引き算の小学一年レベルの間違えですね。差がNの時、合計数は、N+1になるという事なんでしょう。

つづく

260:131
14/06/07 17:29:43.93 hwRmu2MG.net
>>257-258
VBlankとゲーム本体処理を分離ということはNMIを使うって事ですね。他の方も言ってましたが

スプライトと実際の座標を別に持つというのは、以前やったことがあるのですが、クソ汚いソースになってしまいましたが、少しだけわかってきた気がします。こんな感じですかね。
>>261に書きます。


VBlankのタイミングと書き換えは理解しずらいのですが、ファミコンのPPUの仕様なんですかね。

Pad_Checkは、他の方が作られたソースなので、あえて外しました。ROMに0を書き込んだ意図は、恐らくないです。気づかないまま放置してしまいました。

ブロックの配置位置が有限個ならテーブル化できるんですか?今度やってみます。

アドバイスありがとうございます!!ホント助かりました。知らなかった事や理解出来なかった事が分かってよかったです。

261:131
14/06/07 17:30:36.51 hwRmu2MG.net
.org $300 ;データ定義
Sprite:
Sp00_Y: $0300
Sp00_T: $0301
Sp00_S: $0302
Sp00_X: $0303
01_Y: $0304
01_T: $0305
01_S: $0306
01_X: $0307
...

ldx #0
.SetObjAxis2RealAxis ;スプライト座標を実際の座標に代入する
lda Sprite+0,x
sta Real_Y,x
lda Sprite+3,x
sta Real_X,x
inx
inx
inx
inx
cpx #(4*4) ;4つのスプライトを代入する
bne .SetObjAxis2RealAxis

262:131
14/06/07 17:32:41.18 hwRmu2MG.net
間違えました。


.org $300 ;データ定義
Sprite:
Sp00_Y= $0300
Sp00_T= $0301
Sp00_S= $0302
Sp00_X= $0303
01_Y= $0304
01_T= $0305
01_S= $0306
01_X= $0307
...

ldx #0
.SetObjAxis2RealAxis ;スプライト座標を実際の座標に代入する
lda Sprite+0,x
sta Real_Y,x
lda Sprite+3,x
sta Real_X,x
inx
inx
inx
inx
cpx #(4*4) ;4つのスプライトを代入する
bne .SetObjAxis2RealAxis

263:名前は開発中のものです。
14/06/07 17:38:24.41 YYdbZPoT.net
英検三級、即ち中学卒業程度の英語力とgoogle翻訳があれば十分。
海外サイトの情報も何も全部理解する必要はないし、図、表、技術用語さえわかれば殆ど問題ない。
それに今では日本語資料も充実していると思うし、あえてギコ猫のところだけを参考にすることもないだろう。

初心者のうちは他人が作ったソースを見てよく理解し、そこからいろいろ学ぶのもいいだろう。
公開されているソースによっては丁寧に説明が細かく書いてあるものもある。

264:131
14/06/07 18:21:24.08 hwRmu2MG.net
>>263

英検3級は持ってますが、かなり文法が怪しいです。単語に関しては最も初期の「萌えたん」を
P-StudySystemを自作問題集を作って覚えた程度です。

1つ1つの単語が読めても何を言いたいのかわからないので、今持っているくもん中学英文法
という本をゆっくりと確実にやる事にします。

初心者というにも、初めてから時間がかかり過ぎてる面はあるのですが、
恐らく他の方の作ったソースを断片的にしか分かっていないというのはあると思います。

google翻訳に関しては、使うブラウザがchromeなので、標準で使えます。

265:名前は開発中のものです。
14/06/07 19:18:59.23 2SsDMldn.net
>>252
セレクトは効果音テストだったのね。疑問解消しました
ソフトの完成楽しみにしてます

266:名前は開発中のものです。
14/06/08 02:10:46.27 CkZRo6BG.net
>>260

> VBlankのタイミングと書き換えは理解しずらいのですが、ファミコンのPPUの仕様なんですかね。

VBlankの意味を理解していない節があるので、まずは、ブラウン管の話からします。
機知の情報かも知れませんが聞いてください。

ブラウン管の裏から電子銃で電子を飛ばし、ブラウン管表の蛍光面を発光します。
真っ直ぐ飛ばしただけでは、ただの点なので、磁界をかけて電子が飛ぶ方向を変えて
左上から右へ水平方向に線を書くように発光させ、再び左端に戻ってさっきより
ちょっと下の位置で同じように水平方向の線を発光させます。
これを画面下まで繰り返して、再び左上に戻ります。
これをすばやく繰り返すことで、ブラウン管の蛍光面全体に画像を表示します。(ラスタスキャン方式)
電子の飛ばし先が右端から左端に戻る期間を水平帰線消去期間(HBlank期間)、
下端から上端に戻る期間を垂直帰線消去期間(VBlank期間)と呼びます。

267:名前は開発中のものです。
14/06/08 02:12:41.17 CkZRo6BG.net
>>266

続き

VBlank期間は、一瞬で戻るのではなく、NTSC(日本のアナログ放送の信号規格)の場合
20本分の横線を描くぐらいの時間があります。この間、電子銃から電子は飛びません。

非VBlank期間は、ファミコンのPPUは画像の信号を作るため、
CHR-ROMからパターンを読み込んだり、VRAMからネームテーブルや
属性情報を読み込んでいて、PPUの信号線(PPUバス)を占有しています。

VBlank期間は、PPUが画像の信号を作らないので、PPUバスは開放されており
CPUはPPUを介してPPUバスにつながっているVRAMにアクセスできます。

「VBlank待ちの直後にVRAMの書き換えを行え」というのは、PPUが映像信号を
作るのに邪魔にならないタイミングでVRAMにアクセスしなさいということです。

268:名前は開発中のものです。
14/06/08 02:53:09.19 CkZRo6BG.net
>>267

続き

非VBlank期間中にCPUがVRAMにアクセスできる方法があります。
PPUレジスタ $2001 のbit3とbit4を0にして、BGとスプライトを非表示にすることです。
画像の信号を作るためのPPUのCHR-ROMやVRAMへのアクセスが止まるので
PPUバスが開放され、CPUはPPUを介してVRAMにアクセスできます。

代わりに、画面に何も表示されない箇所が現れることになります。
BGとスプライトを非表示にするタイミングにばらつきがあると、
画面がちらつく現象となります。

> VBlankのタイミングと書き換えは理解しずらいのですが、ファミコンのPPUの仕様なんですかね。

ファミコンの設計による制限であるため、仕様と言えば、その通りです。

269:名前は開発中のものです。
14/06/08 02:54:30.27 CkZRo6BG.net
>>268

続き

同世代の他のパソコンとかでは、表示中にもCPUからVRAMにアクセスできるものが
あるのに、ファミコンで出来ないのはなぜ?

→画面表示用の信号線とCPUからVRAMにアクセスする信号線が別になっているためです。
 VRAMもデュアルポートメモリという、アクセスの口が2つある特別なRAMを使っています。
 ファミコンのWRAMやVRAMに使われているのは、アクセスの口が1つのシングルポートメモリです。
→信号線も増えるため、基板上の配線が複雑化し、基板のサイズや層が増えてコスト増になる可能性があります。

ファミコンのVRAMにデュアルポートメモリを使わなかったのはなぜ?

→コスト削減のためです。
 一般的にアクセスポートが余分にあるデュアルポートメモリの方がシングルポートメモリより部品代が高くなります。
 また、WRAMとVRAMに同じ部品を使うことで、大量に発注し部品メーカーに単価の引き下げを交渉できます。

とりあえず、わかりやすく説明したつもりですが、間違いなどがありましたら
フォローお願いします。>All

270:131
14/06/08 06:24:49.26 RIyNgnKh.net
>>266

VBlankに関しては、「ファミコンの驚くべき発想力」という本の78ページ前後に
記述がありました。が、>>266さんの説明の方がより詳しく説明しているように
見えます。

HBlank期間のHはホライゾン?(水平)の略でしょうね。VBlankのVは、バーチカル(垂直)
の略な気がします。

NTSCとPALの違いも知らなかったのですが、日本は、NTSCだったんですね。

VBlank待ちの直後にビデオメモリの書き換えをするのはそういう理由が
あったんですか。

非VBlank期間中にCPUがVRAMにアクセスできる方法、これは知っていましたが、
欠点は知りませんでした。

271:名前は開発中のものです。
14/06/08 07:01:43.99 Jc27w7xL.net
Horizontal Blankingですかね

かつてはPPUの特定のバージョンのみで発生する不具合なんてのもありました
スクロールレジスタがある値の時、VRAMアドレスレジスタを触ると背景色が化けるというもの・・

272:131
14/06/08 10:50:38.68 RIyNgnKh.net
PPUの特定バージョンというのが分かりませんが、製造されたファミコン本体
ですか?それともエミュレータか何かですか?

スクロールレジスタは、$2005の二度書きレジスタですよね。

273:名前は開発中のものです。
14/06/08 15:26:42.07 25kxI5vs.net
RPGやなんかでフィールドから街へフィールドから戦闘への場面変更で一旦ブラックアウトするのは
画面初期化して書き直す時間を稼ぐためでもあったんだろうか?

274:名前は開発中のものです。
14/06/08 15:31:42.31 Eog1TIRJ.net
製造ロットによるがファミコンの中には2つのカスタムLSIが入っている。
一つはRP2A03というもの もう一つがRP2C02というもの。
前者がCPUとAPUやI/Oポート周りで、後者がPPU。
PPUがRP2C02なのはNTSC出力のものだけで、PALならRP2C03、RGBならRC2C05など。
型番の後に続くアルファベット(例:RP2C02EのE)がバージョンを表している。
特定バージョンというか、初期型に不具合が多かった。

ちなみに製造後期になるとデコーダやインバータも1チップのカスタムLSIにまとめられる。
でもなぜかSRAMがSOPからDIPに戻ってる。入手先が限られてきたのかな?

275:名前は開発中のものです。
14/06/08 17:20:23.01 2cLvFL4/.net
>>273
スクロールは基本的にネームテーブルを2枚とも使うので
表示されていない方を裏画面として使うのはちょっとめんどくさい

だから場面転換時には画面表示を一旦オフにする必要はあるけど
画面全体を書き換えるにしても数フレームだからほぼ一瞬で終わる

わざわざ時間稼ぎしなければならないほどでもないので
フェードなりの画面効果は演出を目的としてると思っていい

276:名前は開発中のものです。
14/06/08 18:14:36.81 QSuHGJdX.net
>>269
同世代のパソコンなどのVRAMはシングルポートのDRAMだよ

CPUをウェイトで止めたり、DMAで勝手にCPUが止まったり、アクセスするタイミングを
工夫して見かけ上同時に読み書き出来るようにしてあったり、VDPが調停してくれたり
色々あるけども

277:名前は開発中のものです。
14/06/08 20:16:46.77 p43hB49G.net
>>245-246
名乗り出なくてもバグだらけのキ○ガイプログラムだからすぐわかるよ。
人の言うことを聞かないで数年間NMI使えないで、いつも同じバグ出して、「正常動作の定義は?」って逆ギレ。愚痴キ○ガイ消えてくれ。

・あちこちでゼロページ < 忘れすぎ → auto-zeropageが施された改造版のnesasmあるよ

・なにをしているのかよくわからない。ROMに書き込んではいけない。実機動作を狙ってるなら
lda #0  ;これはROMなので出来ないので、こうする
sta STAGE1,x   ;〃

・Aボタン押したときのデューティ比的な音バグ(数年間放置されたバグ
誤 lda APU_REG0_DUTY_875
誤 ora APU_REG0_COUNT_ON  ←  PadStat = $20 と重複!
誤 ora APU_REG0_FIX_ON
正 lda #( APU_REG0_DUTY_875 | APU_REG0_COUNT_ON | APU_REG0_FIX_ON )


誤 lda APU_REG1_FRQCHG_ON
正 lda #APU_REG1_FRQCHG_ON

・既に指摘があるようにcmpが変。loadのフラグの変化とブランチのフラグ条件を理解していない。
lda なんたら
cmp #0
beq または bne

・jsr Pad_Check は 他人 >>236 の? 算術sbc使ってるから変だと思ったけど


パッと見でこれだけミスしてて、どこにまともに動く要素があるわけ?氷山の一角だろう。
今回も 「.dw 0; VBlank割り込み」見てまたお前かとやる気を失ったけど、BLOCK.symが同梱されていたので捗った。

278:名前は開発中のものです。
14/06/08 20:24:54.45 p43hB49G.net
NMI使えない、各種メモリやレジスタの初期化していない奴って
ギコ猫の前半章のコピペ&拡張だったんだな
後半章ばかり見てたから原因がわからなかった>>220

言い訳にもならないけどね
他人のソース調べればわかることだから

後半章のソースも問題あり

>>270
指摘されると、「私は~知ってましたが、あえてやりませんでした」 じゃなんでNMI使えないの?
「VBlank待ちの直後にビデオメモリの書き換えをするのはそういう理由があったんですか。 」
(レトロ)ゲームのプログラムに興味ある人はみんな知ってるよ。Direct3Dだって垂直同期の概念あるでしょ。

>>273
ゲームによる。
特にCHRがRAMでドラクエⅢやⅣのようにROM容量がきつくて圧縮されたゲームは遅い。
数10フレームかかる。
エミュのパレットをハックしてネームテーブルビュワー見ると展開のスピードを見やすい。

・戦闘画面に移行するとき
  CHRのパターンテーブルがRAMな場合は普通に書き換えるだけで時間がかかる。
  書き換える前にPRG内の画像圧縮を展開するだろうからもっと時間がかかる。
・マップ画面に移行するとき
  マップとマップチップの展開に時間がかかる

市販のゲームは限られたRAMやROMのスペースで展開と転送をこなさなければならず
我々が専用のルーチンで高速転送するのとはわけが違う場合もある

全部ROMで持ってるゲームならもっと速くて10フレーム程度かな

279:131
14/06/09 18:51:10.28 Sx48Gggw.net
>>277

NMIは使わなかったのは、確かにギコ猫のコピペだからと使い方を知らないからです。
いろいろ問題があったのは、事実ですし、バグがあったのも事実です。
何と言ったら良いか分かりませんが、ガッカリさせてすみませんでした。

みなさん、wという笑いや嘲笑の意味の文字を使っていないので、自分の為を思って
書き込んでいるのが見て取れます。

>>あちこちでゼロページ < 忘れすぎ → auto-zeropageが施された改造版のnesasmあるよ
どうもアドバイスありがとうございます。

>>・なにをしているのかよくわからない。ROMに書き込んではいけない。実機動作を狙ってるなら
>>lda #0  ;これはROMなので出来ないので、こうする
>>sta STAGE1,x   ;〃
ROMは書き込めないということは知っていましたが、放置したバグの結果であることは
この前言ったはずです。


>>・Aボタン押したときのデューティ比的な音バグ(数年間放置されたバグ
>>誤 lda APU_REG0_DUTY_875
>>誤 ora APU_REG0_COUNT_ON  ←  PadStat = $20 と重複!
>>誤 ora APU_REG0_FIX_ON
>>正 lda #( APU_REG0_DUTY_875 | APU_REG0_COUNT_ON | APU_REG0_FIX_ON )
ありがとうございます。どうしてボタンを押すと変な音なのか分かりませんでした。
何か原因があるとは思っていましたが何が原因かは全くわかりませんでした

>>・ 誤 lda APU_REG1_FRQCHG_ON
>>正 lda #APU_REG1_FRQCHG_ON
これもありがとうございます。

つづく

280:131
14/06/09 18:53:26.51 Sx48Gggw.net
>>・既に指摘があるようにcmpが変。loadのフラグの変化とブランチのフラグ条件を理解していない。
>>lda なんたら
>>cmp #0
>>beq または bne
これは言えてますね。単純な頭なので、単純に考えていました。

>>・jsr Pad_Check は 他人 >>236 の? 算術sbc使ってるから変だと思ったけど
はい、他人のソースを使いました。


>>パッと見でこれだけミスしてて、どこにまともに動く要素があるわけ?氷山の一角だろう。
>>今回も 「.dw 0; VBlank割り込み」見てまたお前かとやる気を失ったけど、BLOCK.symが同梱されていたので捗った。
えーとこれも失敗してしまいましたね。ファミコン開発は思ったより難しいんですね。

>>278 :名前は開発中のものです。:2014/06/08(日) 20:24:54.45 ID:p43hB49G
>>NMI使えない、各種メモリやレジスタの初期化していない奴って
>>ギコ猫の前半章のコピペ&拡張だったんだな
>>後半章ばかり見てたから原因がわからなかった>>220
はい、そうです。ギコ猫の前半章の主に9章のコピペです。

>>言い訳にもならないけどね
>>他人のソース調べればわかることだから
他人のソースを調べるという事がどんなに重要か分かりました。

>>後半章のソースも問題あり

>>270
>>指摘されると、「私は~知ってましたが、あえてやりませんでした」 じゃなんでNMI使えないの?
>>「VBlank待ちの直後にビデオメモリの書き換えをするのはそういう理由があったんですか。 」
>>(レトロ)ゲームのプログラムに興味ある人はみんな知ってるよ。Direct3Dだって垂直同期の概念あるでしょ。
”NMI”という言葉を知っていても言葉を忘れていたのと、使い方を知らないからです。

281:131
14/06/09 18:55:00.34 Sx48Gggw.net
>>236さんのソースではなく、ネット上に公開されていたソースを使いました。

282:131
14/06/09 18:57:30.62 Sx48Gggw.net
変数に
>>・ 誤 lda APU_REG1_FRQCHG_ON
>>正 lda #APU_REG1_FRQCHG_ON
の違いって何ですか?

283:名前は開発中のものです。
14/06/09 20:17:24.32 dEpln6L7.net
実機で検証してくれたことに対して
>本当に実機で試したのか知りたいですが
って何気に失礼だよなこいつ

284:266
14/06/09 20:51:16.15 oKltYKig.net
>>280

> ”NMI”という言葉を知っていても言葉を忘れていたのと、使い方を知らないからです。

131さんには申し訳ないが、
まずは、WikipediaでCPUの割り込みについて勉強してきた上で

URLリンク(ja.wikipedia.org)(%e3%82%b3%e3%83%b3%e3%83%94%e3%83%a5%e3%83%bc%e3%82%bf)

1) NMIとVBlankの違い
2) ファミコンのプログラミングでNMIとVBlankを混在しても話が通る理由
3) .org $FFFA .dw 0 .dw Start .dw 0 というソースを見た他人が呆れる理由

を、自分なりの理解や考えで説明してもらえるかな。

285:131
14/06/09 21:16:45.44 Sx48Gggw.net
言い訳になっちゃうかわかりませんが、できたら明日の朝に書き込みます。
ホント自分は基地外なのと、頭が痛いし熱いのでこのままほおっておくと
風邪をこじらすので、すみませんが、失礼します。

リアルが充実してる人たちがうらやましいです。

286:266
14/06/09 21:30:37.71 oKltYKig.net
>>285
別に急がなくてもいいよ。その代わり自分でちゃんと考えること。
体お大事に。

287:名前は開発中のものです。
14/06/09 21:32:44.17 fvy3sA+P.net
頭の悪い高校生なんだから察してやれよ
こいつ高校の名前を自分から暴露するような奴だぞ

しかしまぁ基地外って自覚あるなら5年ぐらいROMってればいいのに
色々と知識が欠けすぎててこのスレで質問できるレベルにすら至ってないわ

288:名前は開発中のものです。
14/06/09 21:38:04.12 dEpln6L7.net
自分の理解不足を棚に上げて正常動作の定義がおかしいなどと言い張るのは
自分を肯定するために社会を逆恨みする典型的秋葉原通り魔みたいな思考回路だよな
近所でネコの惨殺死体がなければいいけど

289:名前は開発中のものです。
14/06/10 03:34:36.85 OhR24Wq5.net
多くのエミュレータの再現目標は「市販ゲームが動作すること」であって
不完全なプログラムが「実機と同じように動作しない」というレベルでの再現には至っていません
ファミコン程度の規模であっても完全再現するエミュレータはいまだに存在していません

たとえばファミコンでは電源投入時にRAMの内容が不定であり
すべての市販ソフトでは確実に動作させるために必ずRAMを上書き消去するなど、必ずそれを前提とした実装がされています

しかしエミュレータの中には通電直後のRAMの初期値が&amp;H00に設定されているものがあり
初期値が何であれRAM内容を消去するように実装されている市販ゲームは問題なく動作しますが
RAMの初期値が&amp;H00になっているものであるとして組まれた不完全なプログラムだと
そのエミュレータでは動作するが実機では意図した動作をしないという問題に陥ってしまいます

同様ににVBlank期間が実機より長めに設定されているエミュレータも存在しています
VBlank期間が長いことで市販ゲームを動作させることに影響はありませんが
そのエミュレータ固有のVBlank期間を基準として作成された自作プログラムは
実機上だとプログラマの意図通りの動作をしないことになります

このようにエミュレータ上のほぼすべての挙動において、実機ほどシビアではなく動作してしまう方向に緩く設計・再現されているため
実機の挙動を意識せずにエミュレータを基準として作成された自作プログラムの多くは
結果として実機で動かないものになってしまいます

290:名前は開発中のものです。
14/06/10 03:38:20.96 OhR24Wq5.net
マッパーが電源投入時に選択するバンクですが
通常、実機ではハードワイヤードされている最終バンク以外の選択可能バンクは第1バンクが選択されるケースがほとんどですが
多くのエミュレータはなぜか先頭から順番通り昇順に選択されます
市販プログラムは必ず初期バンクを設定するように実装されているため問題なく動作しますが
バンクの並びをアテにした不完全なプログラムはエミュレータでは動くが実機では動かないというケースが起こります

>>240のプログラムはCHRバンクの初期設定がされていないので
CHRバンクが未設定でも順並びに選択されるようなエミュレータでは問題なく動作しているように見えますが
実機だとスプライト側のバンクがすべてバンク0になっているので、宝石落下時のスプライトがBG用のCHRで表示されてしまっています

291:名前は開発中のものです。
14/06/10 05:50:34.76 DX+Q254R.net
初期化処理って重要なんだなぁ

292:131
14/06/10 07:44:01.93 rVY6XcCX.net
>>287 :名前は開発中のものです。:2014/06/09(月) 21:32:44.17 ID:fvy3sA+P
>>頭の悪い高校生なんだから察してやれよ
>>こいつ高校の名前を自分から暴露するような奴だぞ

>>しかしまぁ基地外って自覚あるなら5年ぐらいROMってればいいのに
>>色々と知識が欠けすぎててこのスレで質問できるレベルにすら至ってないわ

以前チャタリングに関して質問したり、ネームテーブルが固定画面で960もあるから
どうやって書き込むのかと質問した者でもあるのですが、それではマズイんですか。
あと、これはおかしい話なんですが、このスレッドのパート1からROMってました。
もう10年も前の話ですよね。

>>288 :名前は開発中のものです。:2014/06/09(月) 21:38:04.12 ID:dEpln6L7
>>自分の理解不足を棚に上げて正常動作の定義がおかしいなどと言い張るのは
>>自分を肯定するために社会を逆恨みする典型的秋葉原通り魔みたいな思考回路だよな
>>近所でネコの惨殺死体がなければいいけど
猫や犬は可愛いので、そんな事しません。小さい子供に馬鹿にされても黙ってしまうような
性格なので。あと、その時は、自分でも実力が足りない自覚が無かったんです。

逆ギレ云々言った人たちには悪いですが、切れたのは事実ですが、本音と建前を
使い分けるのが日本人の美徳じゃないですかね。

そもそも、逆ギレと決めつけるあたり、あなたたちは
叱ったのではなく、怒ったと考えてよろしいでしょうか。

>>284
途中ですみませんが、
1)NMIは、ハードウェア割り込みの一種でマスク不可能な割り込み、
VBlankはブラウン管の電子銃が下端から上端に戻る際の割り込み。

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

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

295:131
14/06/10 12:27:03.05 21YAZMo1.net
他のパソコンから書き込みです。

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

ごめんなさい

296:131
14/06/10 18:17:23.08 rVY6XcCX.net
>>284
2)
VBlankに入った時に必ずNMIの割り込みが訪れるからでしょうか

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

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


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

298:名前は開発中のものです。
14/06/10 23:25:46.23 DX+Q254R.net
HuC v3.21付属のやつじゃねえかな

299:名前は開発中のものです。
14/06/10 23:48:02.78 iI+cGjJO.net
見つけた

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

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

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

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

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

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

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

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

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

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

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

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


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch