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

154
(1): 名前は開発中のものです。 [sage] 2014/04/14(月) 19:22:56.78 ID:PHq3J+m9(2/2) AAS
>>152
152(2): 名前は開発中のものです。 [sage] 2014/04/14(月) 18:55:50.61 ID:dbr8gs6R(1/2) AAS
140です。

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

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

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

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

ラスター割り込みは、他にもネタがあります。
例えば、8ドット毎に8ドット縦にずらせば、16x8ドット単位で
BGのパレット指定ができるなとか。
カーソル枠でまわる宝石が▽と△の時でカーソル枠の上と下を少し
狭くしたほうがわかりやすいかなと思いました
155: 名前は開発中のものです。 [sage] 2014/04/14(月) 19:58:14.37 ID:BSoZ156l(2/2) AAS
>>151
151(2): 名前は開発中のものです。 [sage] 2014/04/14(月) 13:15:26.05 ID:PHq3J+m9(1/2) AAS
>>149
似たようなのでテトラスターもあるね

コズミックイプシロンは横にラスタースクロールもしているけど、ベースの
アイデアとしてはBGのバンク切り替えアニメと同じことで実現してる

1ラインずつ別バンクに切り替えて絵を組み上げていく感じ
テトラスターは知らなかったんで見てきた。おんなじ感じっす。
それにしても、バンク切り替えでやるのか…すげーな。
ちゃんと地形の模様になってんだもん、良く考えついたもんだ。

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

>>152
思いついたのか、発想力すげー…。
156: 名前は開発中のものです。 [sage] 2014/04/14(月) 20:06:28.23 ID:dbr8gs6R(2/2) AAS
>>154
最初、指摘の通り、カーソル枠を台形にして、▽か△かわかるようにしたのですが、
カーソル移動時にうねうねカーソルの形が変わるのが気持ち悪く感じたので、
今のただの四角にしています。
157: 名前は開発中のものです。 [sage] 2014/04/14(月) 21:32:22.23 ID:qn3GgaV0(1/2) AAS
>>148-150 >>131
131(33): 名前は開発中のものです。 [sage] 2014/04/04(金) 07:14:22.67 ID:stHAjJOS(1/2) AAS
外部リンク[zip]:www1.axfc.net
ファミコンゲームです。操作方法は付属のtxtを参照
自演気持ち悪い

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

>>148
148(1): 145 [sage] 2014/04/14(月) 00:05:28.57 ID:Ye30GFaz(1/5) AAS
>>147
なんでそんな否定からはいるのさ?

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

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

まぁ、喧嘩したいわけじゃないんで、そこんとこご理解を(^^
>「アトリビュートテーブルの制限で、パレットが2x2BGキャラクタごとにしか
>指定できないのを回避するために、ラスターでずらしてるのね」
>まで言わないと伝わらない?

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

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

ずらしてパレット指定の限界突破という謎技術を語ってる人が他にもいるようだけど
158: 145 [sage] 2014/04/14(月) 22:05:09.05 ID:Ye30GFaz(4/5) AAS
>>131 の名誉のために、131と私は別人だよ。
スレのためにもう返事はしないし、あなたが正しいってことでいいよ(^^
159
(2): 名前は開発中のものです。 [sage] 2014/04/14(月) 22:40:16.03 ID:Ye30GFaz(5/5) AAS
>>140
140(8): 名前は開発中のものです。 [sage] 2014/04/10(木) 21:41:45.23 ID:hnCuty6F(2/2) AAS
開発途中で、まだゲームの体裁になっていないけど、自作のソフトをさらしてみる。
src.zipにソース一式入っているので、参考頂ければ幸いです。

外部リンク[zip]:homepage3.nifty.com

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

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

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

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

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

不躾な質問ですいませんが、お暇だったら見て頂ければ幸いです。
160
(1): 名前は開発中のものです。 [sage] 2014/04/14(月) 23:59:40.63 ID:qn3GgaV0(2/2) AAS
>>159
立ってる、立ってないが逆
161
(1): 名前は開発中のものです。 [sage] 2014/04/15(火) 00:19:44.09 ID:Rogly49M(1/2) AAS
>>159 さん

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

Yesです。

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

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

私の場合は、各処理を分解してジャンプテーブルで呼び出すのが
面倒そうだったので、次の呼び出し先のアドレスで管理する方式としました。
162: 名前は開発中のものです。 [sage] 2014/04/15(火) 00:22:16.34 ID:Rogly49M(2/2) AAS
>>160

Yesと書いちゃったけど、確かに、zフラグが立っている場合に抜けるでした。
163: 名前は開発中のものです。 [sage] 2014/04/15(火) 00:24:55.54 ID:4gJhlsqp(1/3) AAS
あ、ご指摘どうもです。逆でした
164: 名前は開発中のものです。 [sage] 2014/04/15(火) 00:25:59.35 ID:4gJhlsqp(2/3) AAS
あら、、、フラグは z なのに beq/bne だから、頭が混乱する(xx
165: 名前は開発中のものです。 [sage] 2014/04/15(火) 00:52:17.35 ID:4gJhlsqp(3/3) AAS
すいません、書き込み順の前後で混乱しました。160さんの指摘で正解ですね。

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

ありがとうございます
166
(9): 名前は開発中のものです。 [sage] 2014/04/18(金) 18:15:30.91 ID:jpWSPUfh(1) AAS
画面表示中にパレットを書き換えるサンプルプログラムつくってみたので、興味があるひとはみてみてね。
自分は、情報がなくてけっこう試行錯誤したので。

外部リンク:www1.axfc.net

メタルスレイダーグローリーのIRQ割り込みを参考にしたんだけど、
7ラインくらい表示ができないのはしかたないのか。
もっといい方法とかあったら、教えてくだしあ。
167
(1): 名前は開発中のものです。 [sage] 2014/04/18(金) 21:05:20.40 ID:GCyjwP+C(1) AAS
>>166
中央が黒いのは、書き換え中に色が付くのを防ぐため?
168
(1): 166 [sage] 2014/04/19(土) 02:10:32.86 ID:ENCcy0CN(1/2) AAS
>>167

うん。

たぶん、ラスター使えるようになってラスターでパレット変更もできるぜぃ、
と思って試した人(過去の俺とか)は、なぞのゴミが表示されて悩まされてると思う。
そのゴミをHBlankに押し込めるために、16byteの書き換えに7lineも画面表示を消してるって感じです。
169: 名前は開発中のものです。 [sage] 2014/04/19(土) 09:55:49.50 ID:5+3bbh99(1) AAS
>>168
そうですか。知ってたらあれですが、3Dホットラリーはもろ見えてます。
画像リンク

170: 名前は開発中のものです。 [sage] 2014/04/19(土) 13:11:45.50 ID:ENCcy0CN(2/2) AAS
あ、ほんとだw
実は、3Dホットラリーの名前は以前でてたんで画面見たんだけど、
上2パレット、下2パレットくらいでやってるんじゃない?とおもって、スルーしてた。
ちゃんとパレット書き換えしてたのねw 失礼しますた
171
(2): 名前は開発中のものです。 [sage] 2014/04/21(月) 00:26:08.69 ID:/pAmCg0v(1/2) AAS
ゴミなんて消してやんよ
って思ったら
意外と無理だった

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

こんな仕様しらんがな
nintendulatorのPPU.cppより
172
(1): 名前は開発中のものです。 [sage] 2014/04/21(月) 10:13:40.71 ID:LbIV6qH+(1/2) AAS
おお、こういう原理だったのか。トンクス >>171

外部リンク[php]:forums.nesdev.com
コレみて、なんとなくパレットカキコミすると色が出るのは、理解してたんだけど、
細かい挙動はよくわかってなかった。
173
(2): 名前は開発中のものです。 [sage] 2014/04/21(月) 10:17:13.69 ID:LbIV6qH+(2/2) AAS
ちなみに、これってハードウェア的にはどういう原理なの?
詳しい人いたら教えて。
174: 名前は開発中のものです。 [sage] 2014/04/21(月) 17:28:24.83 ID:rQaSv6+b(1) AAS
>>171
そんな断片ソースで理解できるのがすごい。
175
(2): 名前は開発中のものです。 [sage] 2014/04/21(月) 23:59:09.10 ID:/pAmCg0v(2/2) AAS
>>166を改造させてもらった

外部リンク[zip]:www1.axfc.net

ゴミ消した

パレットの0x0dは使えないよ
垂直同期のパルスみたいな電圧になるから
176
(1): 名前は開発中のものです。 [sage] 2014/04/22(火) 00:47:42.57 ID:Ncm5fcM0(1/3) AAS
レンダリング止めていればBGの色が出ると思ってた

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

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

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

ところで、また謎現象を見つけてしまった
外部リンク:wiki.nesdev.com
外部リンク[php]:forums.nesdev.com
177
(1): 166 [sage] 2014/04/22(火) 03:41:30.42 ID:+4JN+sCM(1/5) AAS
>>175
おおお、これは技術の粋が詰まったコードですね!素晴らしい!!
私もレベル3上昇して、レベル4になった〜

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

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

>>176 の情報も含めて、いろいろありがたい(^^
やっぱり、コードは晒してみるものだなぁ・・・
178: 166 [sage] 2014/04/22(火) 03:55:38.11 ID:+4JN+sCM(2/5) AAS
いままでの自分の致命的な間違いに気づいた・・・
nopは2クロックだったのね。1クロックだとばっかり思ってた(^^;

よくいままでのコードうごいてたなぁw
1-
あと 389 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.027s