質問

ってどのようにファミコンの表示、グラフィカル筋からなります。私の研究もオンラインで読んだ思いつもの:Nametables.

基本的に、から何を読んで、8×8ブロック、ファミコンnametableポイントの位置をパターンテーブル、グラフィックメモリ。また、nametableまたは属性テーブルを設定する特定のカラーパレットの各16x16ブロックです。彼らは、変更になる場合があります。一緒にこのように:

(仮16 8×8ブロック) Nametable、A B C D=ポインタのスプライトデータ:

ABBB
CDCC
DDDD
DDDD

属性テーブル1 2 3=ポインタのカラーパレットのデータは、 < 参照値は、^は、上記の'の左上:

1<2<
^'^'
3<3<
^'^'

なので、上の例では、ブロックする色としてい

1A 1B 2B 2B

1C 1D 2C 2C

3D 3D 3D 3D

3D 3D 3D 3D

現している場合はこの固定画面です。で、ファミコンの解像度は256x240(ピクセル単位)で作成します。現在、どのようにこれらのテーブルの取得に調整のためのスクロール?

でNametable0までスクロールへのNametable1の場合は常にスクロールNametable0回りました。ることを取得します。だんはどのようにスクロールの属性テーブルに包ます。から何を読んでオンラインでは、16x16ブロックで員の属性の原因となりま色の歪みのタイルの画面として見たときにスクロールを左右逆にSMB3).

を懸念しているについて?解決方法をスクロールのnametablesがんのスクロールの属性テーブルは?のためのintsanceしていただくと緑のブロックの左側に、画面を移動する画面の右における理論の原因となるタイルの緑色としてまいりフレームで、彼らはそれに戻すには通常のメーカー。

~~~~編集:したいと思いを指摘しておきたい、知って、走査線単位で転送され、XおよびYこの考えかたがあると思う。

ということかなかったので、走査線Yの10.そのいくつかについて触れたいと思い10位の値が入っnametables,横置きにする。意味する私の最初の列の画面でできるというだけのことだがピクセル幅8.しかし、カラー属性の滞在では、これまでの幅16.

を想定した色の属性の列が緑色、いるとそのユーザーへの最初の6ピクセルの左側の画面が緑色をし、一番右に10の画面を緑でも見ることができますか?なので、いかに正しい私の前提の画面の左?

役に立ちましたか?

解決

このサイト ていらっしゃることだと思いますが既に非常に馴染みます。Iはじめにこの言葉をいたプログラムのファミコンだそうですが、私は非常に経験豊富なすべてのゲームボーイアドバンスハードウェアについて今まで発売のファミコン株式数多くあぁ癖にギガビット/秒(GB/DMG.いうレベルまでに必要な数少ないもの

  1. なスクロールの属性を表に示す。いかご確認くださいレベルの全てsimiliar色のブロックの方向に沿っています。いらっしゃるかと思いる多くの初代ゲームなかった。

  2. 見ていて気分が良いものを限定の属性のスクロールなどの地変更の庭は一部の色を共有またはsparceることを十分に変化がなくなるわけではありませんするnoticable.

  3. 取得して彼の名前の通りリ2600タイマー時間の書き込み登録$2006年末にHBlank更に色のスワップに必要な、待ちの数を調べる為に、その後戻りのHBlankを返し期間の左端の次の行になります。っているような気がすことがソリューションのとれた動きをすることにより、本当に良いエミュレーター、忍耐、これまでの痛みのわ。でも食べら少し入全体のCPU使用しているのを待に割り込みを行う複数のスキャンラインに影響します。

があるとよかったのですがりコンクリートに回答できますが、この期待をしております。コ良さのギガビット/秒(GB/DMGた少し先端のスクロールシステム。:)

他のヒント

あなたがスクロールすると、画面の端に成果物を着色どちらスーパーマリオブラザーズ3と星のカービィ夢の泉の物語ディスプレイ。私は両方のゲームは0-8ピクセルはいずれかのフレームに影響を受けることになりますので、画面の8つのピクセルを左に空白ビットを設定すると考えています。

私の記憶が正しければ、

は、星のカービィ夢の泉の物語は、常にそれを目立たなくするためにオフにスクロールしている画面の側に色-glitched列を入れしようとします。私はこれらのアーティファクトは、独自の難しさを紹介する垂直ミラーリングに切り替えることなく、予防可能であるとは思わない。

免責事項:私はすべてのNESコードを書いたので、それが5年のようになっています。

はそれぞれの名前テーブルには、独自の属性テーブルを持っているので、別の名前テーブルからスクロールしたときにグラフィカル成果物があってはなりません。あなたのゲームにスクロール垂直方向と水平方向の両方にあれば、あなたが参照しているグリッチ色の種類は本当に唯一の問題です。両方の方法をスクロールすると、目に見える画面を共食いする必要がありますので、あなただけの、2 nametablesを持っています。

:この問題は、このnesdev記事で見つけることができるの偉大な要約へのさまざまなソリューションがあります。

http://nesdev.parodius.com/bbs/viewtopic。 PHP?p = 58509#58509

このサイトには、いくつかの助けとすることができます。 http://www.games4nintendo.com/nes/faq.php#4

( "何/ 2006 $ 2005までだ?" を検索し、エリアというの周りの読み込みを開始。)

これは、基本的にそれは完璧ピクセルを取得するために、そのことは不可能のように見えます、しかし、それらはあなたがおそらくに見てする必要があるとしているビットであることを行っています。

ウィッシュ私はより多くの助けとなる可能性があります。

はそれぞれの名前テーブルには、独自の属性テーブルを持っています。あなただけの二つの画面にあなたのゲームの世界を制限する場合は、一度だけnametablesと属性テーブルを記述する必要があります。あなたは二つの画面よりも世界を大きくするためにしようとすると難しい部分が来ます。スーパーマリオブラザーズ1は、右にスクロールし、必要に応じて折り返し、そしてその列が見えてきた直前の時間(16個のピクセル)でのブロックのレベル1の列をレンダリングすることにより、これをしませんでした。私は1つは、(心に留めておくだけVBLANK時間のミリ秒を持っている)これを効率的にコーディングする方法を知りません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top