ファミコンのプログラム4
なるべく無音になるようなデータを用意しないといけないし、初期ではROM容量的にできないかもね。 2番目のサイトのパレット、 >実際には12色の中に同じ色を入れないといけなかったりして、12色フルに使うことはできないでしょう。 の解説希望。俺の仕様ではこんな制約はないんだが。 >>393 1パレット3色の組み合わせで指定するので ソフト制作の都合上、別々のパレットに同じ色を指定することもよくあり 常に異なる25色(SP12色+BG12色+背景色)を同時発色している訳ではない と解釈しているけど、どう読んだ? >>394 ハードレベルでできない としか読めないけど。 記憶を頼りに書いて間違ってたとか、逆に割と正確な所もあったりして微妙。 >>395 ひっかかっているのは、「最大25色出せる、というのはあくまでも理論上の話。」という文でしょうか? 「論理上」と言い切るのは私も間違いだと思います。「事実上」と表現するかな。 「論理上」の前の文に「パレットの色が重複してしまう」と条件が書いてあり、 パレットの色を重複して指定するのは、3色の組のパレットで 色指定するというハードウェアの仕様に起因することなので、 ハードウェアの制限と言われても間違いじゃないなと思います。 ただ、サイト先の文章からは、ハードレベルでできない と推測に至る表現は無いかと思います。 異なる25色を同時発色しているゲームの具体例出せないし、 自分が作っているソフトもパレットの色重複しているので 何とも言えないが正直なところ。 >>396 スペック上問題なく出来るのに理論上とか書くから誤解されると思うよ。 最大値は〜色です。という説明だけでいい。「事実上」はいらない。 実際のゲームでは、というくだりから色の重複について画像を入れるなどで 説明すればいいと思うし、そっちのほうがわかりやすいだろう。 バックアップを兼ねて制作途中版をアップしました。 東方老桜夢 ver0.10 ttp://homepage3.nifty.com/~kyoske/nes/TouhouRououmu010.zip セレクト画面、自機移動+ショット、アイテム、1面中ボス手前までのステージデータを実装。 自機のボム、ボス戦、会話処理などは、これからです。まだ先は長いな。 例によってソース添付していますので、興味がある人はどうぞ。 なんのアドバイスもできないけど徐々に完成する様を楽しみにしてる >>399 何かコメントしてくれるだけでも助かります。 ひとり黙々と作っているのは辛いので。 皆さんに1つアドバイスして欲しいことがあるのですが、よろしいでしょうか。 Aボタン=ショット Bボタン=ボム で実装を進めているのですが、 ショットを押したまま、ボムを使おうとする場合にA押しながらBを押す操作になります。 赤白ファミコンの場合には、AボタンBボタンが真横に並んでいるので そんなに押しにくくはないのですが、newファミコンの場合には、 Aボタン右上Bボタン左下に並んでいて押しにくく感じました。 コンフィグで他のボタン割り当ても選択できるようにすることを考えているのですが、 こういうボタン割り当てがよいのではというアドバイスを頂きたいです。 ちょっと考えたネタとしては、 ・Bボタン=ショット STARTボタン=ボム Aボタン=低速移動 ・Iコン、IIコン2つ持ちで、IIコンのボタンでボム ってのがあります。 ショットはBボタンじゃないと操作し辛いと思う Iコン、IIコン2つ持ちはゲーム性を損ないそうなので反対 自分の知ってる弾幕シューティングだとショットボタン連打=高速移動 ショットボタン押しっぱなし=低速移動なので、それがいいかな Bボタン=ショット(押しっぱなしで低速移動) Aボタン=ボム START+SELECT同時押し(もしくはSELECT押しながらSTART)=リセット >>402 最初、Bボタン=ショットで実装していたのですが、セレクト画面を追加した時に A=決定&A=ボムだと、誤って連打したり、操作方法がわからないので適当に押したりした場合に ボムを消費してしまうのでまずいなと、変更した経緯があります。 B=決定&B=ショットにするか検証して、問題なければ元に戻す方向でいきたいと思います。 start+selectの両方押しは取り入れたいと思います。 Iコン IIコン2つ持ちは、401の書き込みあと色々やってみたのですが、 どのように持ってもIIコンのボタンが押しにくかったのでボツにします。 newファミコンのコントローラの場合、startとBボタンの組み合わせも操作しやすいのに気付きました。 start=Aボタン=ボム Bボタン=ボム にするのもありかなと考えています。 決定ボタンを連打してたらゲームが始まっててボムを消費してしまうのは 様式美だから気にしなくてもいいと思う 細かいことだけど>>402 は START+SELECT同時押し(もしくはSTART押しながらSELECT)=リセット の間違いだった >>403 >start=Aボタン=ボム Bボタン=ボム Bボタン=ショットってこと? セレクト画面の選択はスタートも効くようにしておけばいいんじゃね 個人的にはボムがどっち側か選択出来るといいな >>404 >>start=Aボタン=ボム Bボタン=ボム >Bボタン=ショットってこと? すみません。 start=Aボタン=ボム Bボタン=ショット でした。 >>405 コンフィグでのボタン割り当ての変更は実装する予定です。 連打誤爆が気になるのならセレクト画面はスタートのみ決定にしたらよくね? 2A03はDPCMデータをどのタイミングでフェッチしてるんだ DPCM再生したらプログラムの実行速度遅くなるとかあるのか >>408 色々考えて、今のところ、start または ショット(デフォルトBボタン) を決定、 ボム(デフォルトAボタン)をキャンセルに割り当てる方向で行こうかと思っています。 >>409 英文で申し訳ないですが、nesdev wiki の記事によるとDPCMデータを読み込む時に最大4サイクルCPUが停止(ストール)するようです。 ttp://wiki.nesdev.com/w/index.php/APU_DMC#Memory_reader >>411 最大4って事は4ではない事もあるのか。別の所では1サイクルとか書いてあった。 >>409 SMB3の左下の方のちらついてる部分が、DPCM音に合わせて右にずれる。 東方老楼夢やってみましたがすごいですね。 今後の進展に期待しています。 少し気になったことですが、実機だと自機選択の画面でカーソルを 上下に動かすたびに全体的に画面が少し揺れますね。 >>415 実機で画面が揺れるのを確認しました。 PPUにデータを送ることに影響して、IRQ割り込みのカウンタが何かずれているのかも。 バグ表に記録しておきます。ありがとうございます。 >>414 やってみましたが、裏側のパッドのボタンが押しっぱなしになるか、押しにくいのどちらかでした。 机上調査レベルですが、実機で画面が揺れる(ピクンと跳ねる)のは、 ・PPUへのデータ転送処理より先にIRQカウンタの設定をしている ・パレットの書き換えでPPUアドレスの$3fxxにアクセスしている のが原因っぽいです。 $3fxxにアクセスするのでPA12のアドレス線が0→1に変化。 これをMMC3が拾ってIRQカウンタをカウントダウンすることで、 1ライン早くIRQ割り込みが発生して、画面がずれると推測しました。 さっしーを本気でブスと思ったことはない、むしろ美人な方 ブスだけど 何故、急にさっしーが出て来た? ともかく美人の範囲には入らない、美人は石原さとみ、佐々木希、エリカ様あたり。 >>396 中の人でしょうか。 色が重複してしまう理由が書かれていないのです(ファイアーの色をマリオとルイージから取ってこなければならない理由)。 重複しないように設定したいのだが、ハードの制約で重大な問題が生じる為重複させなければならない と読み取れます。 確かに市販タイトルを少し調べてみましたが全て異なる色を使用しているのは見つかりませんでしたが。 それは、総合的なデザイン上の問題だと思います。 画面上に、「マリオ、ルイージ、レディ、ファイア」の4キャラしか出てこないゲームなら、全てに異なる色を設定しても問題ないでしょう。 >>420 >中の人でしょうか。 違いますよ。 >色が重複してしまう理由が書かれていないのです 「別々のパレットから個別に色を選択してスプライトを 表示することはできない」というパレットの仕様を 説明したいがために、わざと色が重複する例を 出しているだけと私は解釈しています。 397さんの指摘のように、先に25色発色できるのを提示してから 重複する例を出す構成にするのが誤解を生まない方法だと 思います。 >重複しないように設定したいのだが、ハードの制約で重大な問題が生じる為重複させなければならない と読み取れます。 「理由なく色が重複する例を出した」から 「重大な問題が生じる為重複させなければならない」という考えに至るのが 私の考え方と違うようです。 25色発色できるとも書いてあるし、重複させなければならないと 断言する文言も無いので、私はそう解釈はしませんでした。 総合的なデザイン上の問題 という指摘については同意です。 ファミコンのプログラムに興味出たんだけどアセンブラやるならnesasmとcc65はどっちがオススメ? nesasmがアセンブラ cc65がC なのでアセンブラやるならnesasm プログラミング経験者? cc65はca65つーアセンブラも付属してるよ。 >>422 ca65もnesasmも結果として作れるソフトに差はない。 なので、そういう質問するレベルなら簡素なnesasmで十分だと思う。 皆さんありがとう プログラミングは初心者です 公式で配布しているnesasmは64bitで使えないみたいだから、まだ更新しているca65の方がマシかなと思った 自分の探し方が悪いのか? nesasmはソース付いてるから、自前でビルドして64Bit版nesasm作ってもいいのだが、面倒くさいなら、 MS-DOS Player ttp://homepage3.nifty.com/takeda-toshiya/msdos/index.html とか使えば、配布されてるnesasmのバイナリも、そのまま64Bit版Windowsのコマンドプロンプトの中で動くと思う。 ありがとうございます そのソフト別の意味で面白そう なるほど、自分でビルドしても良いのか 勉強がてらやってみます 64bit版NESASMは既にある ttp://www.2a03.jp/~minachun/nesasm/nesasm_x86.html VBlank待ちで$2002読んだ後VBlank中にスプライト書き込むプログラム書いたけど実機だと 左から右にスプライトを動かそうとするとスムーズに動いてくれない。ドンキーコングとか市販のソフトみたいに綺麗に動かすには 何を気をつけたらいいですか? 普通は$2002を使ったVblank待ちを常用するようなことはしない、ギコ猫〜のサイトでも見たのかな? 詳しくはこのスレの上のほうにあるレスを見てね >>432 ありがとうござます。プログラム変更します。 東方老桜夢のver0.20をアップしました。 ttp://homepage3.nifty.com/~kyoske/nes/TouhouRououmu020.zip 1面ボスまでの実装、ボムは未実装です。 プログラム構造的には、色々と変更中です。 当初は8KBのバンク1個にステージデータを格納する算段だったのですが、一番短い1面で現地点で5〜6KBぐらいのデータになったので、複数のバンクに分散して持つように変更しています。 弾丸パターンのデータが思いのほか大きかった。会話データはこれからだし。 あと、415さんの報告してくれたバグを元に実機判定を行うことで実機用とエミュ用に分けてたnesファイルを一本化できました。感謝です。 8BIT MUSIC POWER http://riki2riki.com/html/0_sample_8bit.html http://www.gamespark.jp/article/2015/10/20/61077.html https://www.youtube.com/watch?v=tb4ec90zWf4 プログラムが凄すぎる。 CrystalMarkみたいなスプライト量。 YouTube30fpsの動画では4倍というのがいまいちよくわからない。チラつきだけで4倍表示させてるのか? DMAでスプライトダブラー行為するにはBGとSPR両方オフにしないと出来ないという噂だがどこかでオフになっている感じがしない。 音楽部分で消費するクロック数は、VBLANK内か近傍に収めているだろうね、それとも下の方のラインでjsrしてるのか?。 割り込み使うとレジスタ退避などでクロックを浪費するから極力使いたくないだろう。 当初、sprite quadrupler スプライト クワドラプラー かと思ったが違うよな。 計算で位置求めるのは不可能だろうし、横並びのところはスプライト循環もやってるだろうし、 データ丸ごとテーブルで持ってるかな、そうなら長時間収録はできない。 パターンテーブルを4.5バンク切り替えてる?のか、全画面で複雑な絵。 絵1枚で0x2000バイトのパターンを3.5面分総とっかえってことかな。 どこでCHRバンクチェンジしているのか意識させない、バンクチェンジのノイズを抑えているようだ。 こちらはクロック数が切迫していないから、割り込みは使い放題かな。 >>435 ファミコンでも弾幕張れるんだなと関心してしまった 所でVirtuaNES v0.97でプレイすると表記が色々ズレるんだけれどもこのエミュレータでは正常に出来ないということかな? >>439 VirtuaNES 0.97で確認してみました。 東方老桜夢ver0.20では、実機/エミュ判定を行っていてIRQ割り込みの頭で、実機/エミュ別にnopを入れてタイミングを調整しています。 実機 nop 2個、エミュ nop 0個となっているのですが、VirtuaNESでは、nop 3個で画面が安定しました。 実機は nop 3個でも安定した画面になるので nopを増やすのは問題ないのですが、 VirtuaNES は、実機/エミュ判定で、エミュと判断されているため、実機側に判定させる何かしらの手立てが必要な状況です。 Aボタンを押した状態で立ち上げたら実機側とするといった方法でも構いませんでしょうか? ほう、実機判定してるんだ。 VirtuaNESにあわせる必要はない。 使いやすさは最高だが、エミュレーション精度はいまや時代遅れだからだ。 対しPPUクロック精度で書かれたより新しいエミュは 動作が重いという罠もある。 >>441 では、申し訳ありませんが、VirtuaNES対応は宿題とさせていただきます。 実機判定は、VBlank期間中にMMC3のIRQを発生させれるかを行っています。 FCEUX Nestopia NNNesterJ で動作確認しましたが、この判定をパスしたのは Nestopia だけでした。 再現性が高いという評判は流石と思いました。 しかし1クロック単位を考慮しなきゃならんソフトが多いってのもなぁ ファミコンはホントに難儀なハードだよ 普通は表面だけをマネできればいいが、ファミコンの場合そうもいかないのがな VirtuaNESで見たが、ゲーム固有オプション>タイル で奇麗になる。 >>444 ありがとうございます。 ヘルプにタイル状に分割して描画とあったので、ボスの体力ゲージなどの狭いライン間隔での割り込み部分が どうななるのか気になったのですが、問題なく表示されるのを確認しました。 ニコ動(sm28114684)に 8BIT MUSIC POWER の動画が投稿されていたので見たけど、 スプライト量4倍は、8x16モードで(8x8に対して2倍×偶数/奇数フレームで時間軸に分散で2倍 っぽい。 画面止めて、移動するオブジェクトの数を数えたけど、64個以内に収まっている。 オブジェクトの移動は、円軌道や微妙な加速減を行っているようで、それなりに負荷はありそう。でも無理のない範囲。 ハードの話だからスレチかもしれないんだけどさ、ファミコンをTVに直接つなぐと壊れるとか言っている人がいたけど、どうしたら壊れるのかよくわからん ファミコンのRF出力には常時5Vの直流成分があるから、せいぜい1V程度の入力を前提としたアンテナ端子につなぐと壊れるってことか? 壊れるとしたら直流カット用のコンデンサか?でもまず名の知れたメーカーのテレビがそんなに耐圧の低いコンデンサ使うことってあるのか? 同じ形の端子のBSなんかじゃ15Vあるしフールプルーフの観点からも、まともな企業がその程度で壊れるテレビを作るとは考えにくいとおもうんだが >>448 ググったら、次のサイトが見つかった。 ttp://d.hatena.ne.jp/Narr/20110406 RFスイッチを通す前提で回路を組んでいるので、RFを直結するといった保証の範囲外の使われ方をした場合に どうなるかわからない、最悪テレビが壊れる可能性もある。 ってところのようです。 ファミコン本体内の抵抗が過電流になる。定格を超えた電流が流れる。 >>450 なんでRF出力をテレビにつなぐとファミコンの回路中の抵抗がやられるんだ? ファミコンの中の7805が壊れるようなことでもない限りファミコン本体側の部品に過電流が流れるってまずないだろ >>448 逆にBSアンテナ給電に耐えられるか怪しいんじゃ? ファミコン出た当初はそんなの無かったし。 まあ、本体だけなら安いし試してみたら良いんじゃね。 あと続きはこちらで。 http://tamae.2ch.net/test/read.cgi/gameurawaza/1440501848/ 東方老桜夢 ver0.30をアップしました。 http://homepage3.nifty.com/ ~kyoske/nes/TouhouRououmu030.zip ボムとゲームオーバー処理、タイトル画面を実装しました。 技術面でのトピックは、BG処理を背景&エフェクトの2レイヤー構造から WRAM上のバッファの内容を表示する2レイヤーを加えた4レイヤー構造に 変更したことでしょうか 新規に追加したレイヤーの1つを使ってプレイヤーのボムを表示しています。 BGなので8ドット単位でしか絵が移動しませんが、思ったより悪くは無い感じでした。 残りの1レイヤーはまだ先の話になりますがボス敵で使う予定です。 >>449 のサイトから色々有用な情報を得られたけど、全体的にだいぶ捻くれた書き方してんな なんかWeb上のファミコン関係の技術者って心に闇抱えてる人が多いような気がするわ Offgaoとか、某FPGA実装の人とか、安藤信明とか 任天堂はまだまだ著作権を放棄するつもりはないみたいだね ここも書き込み減ったねぇ アセンブリ言語自体下火だから仕方がないけど >>453 今、ファミコンエミュの中で最も実機に近い一つと言われているMesenでもテストしてくれ 「新4人打ちマージャン 役満天国」はMMC5 PCMを使っているという情報がある ファミコンディスクシステム掲示板 FDS BOARD ディスクシステムを偲ぶ http://park19.wakwak.com/ ~fantasy/cgi-bin/fdsboard/read.cgi?mode=all&list=tree&no=20 ディスクBASIC: まさやんのゲームいぢり http://gameidiri.cocolog-nifty.com/blog/2007/02/basic_f283.html Converting Super Mario Bros. to FME-7/Sunsoft 5B? http://forums.nesdev.com/viewtopic.php?f=10& ;t=11000&start=15 Talk:Sunsoft FME-7 http://wiki.nesdev.com/w/index.php/Talk:Sunsoft_FME-7 ディスクシステムでDPCMって鳴らせるか調べてみたら、 $C000〜$DFF9にDCPMを配置して鳴らすことはできそうだな ここのHello Worldプログラム http://hp.vector.co.jp/authors/VA042397/nes/sample.html を単純にFDSに移植してみたけど、(バイナリ的には4バイトのパッチ) でディスクシステムで動いたけどなぜか黒画面になる部分が$マーク ばかりになってしまった。 https://i.imgur.com/LeKMwOO.jpg ディスクシステム(任天堂)のBIOSとシャープ ツインファミコンのBIOSって若干違うんだな。 Nintendoって表示されるかFamicomって表示されるかの違いだけど。 ディスクシステム(任天堂)のBIOSは40KBのNESイメージのものもあるけど、 シャープ ツインファミコン版を作ろうと思ったら、ディスクシステム(任天堂)の ROMをシャープ ツインファミコンのものに置き換えてから吸出し機で吸わないと駄目かな? >>465 そこまでしなくてもDISKSYS.ROMから構成することはできます。 で無いなら作ってしまえということで、 Sharp Twin Famicom BIOS (J).nesをSharp Twin Famicom BIOS (J).nesに するIPSファイル作ってみました。 https://www.axfc.net/u/3874041.zip バッ活パート11掲載「ROMゲームをディスクシステムで実行」ってのがあるようだ、 RAMアダプタを改造すれば、ROMのゲームをディスクに入れて遊べるようだな。 これはNROM(マッパー0)かCNROM(マッパー3)のゲームが対応しているようだ。 海賊晩でFDSのゲームをROMに入れたものがあるけど。これは$6000から プログラムを配置できるマッパーを使用しちえる。どちらも基本的にアドレスを変換せずに 起動できる点がポイントだろう。普通にNES→FDSやFDS→NESをやろうと 思うと大抵アドレス変換が必要で大幅なプログラム変更の為気の遠くなるような 作業が必要だ。 255 :名無しさん@お腹いっぱい。:2013/12/29(日) 07:21:45.79 ID:qrYjRNG4 3. FDSラブ 2013年09月16日 22:35 いや、待てよ? 「その後、ハードやアダプターなど、とっかえひっかえしてみたが、まったく改善されず。」 ハード、つまりファミコン本体は変えてみた(≒ファミコン本体のSRAMを交換した)けど改善されず、アダプター、つまりRAMアダプターも変えてみたけどそれもだめ、ACアダプターも"とっかえひっかえ"しただろうけど、無駄だった…。 うーん、ここは一発、昔の記事で紹介された東京都板橋区の「ファミコンショップクラブハウス」に行ってみたらいかがでしょうか。 ttp://ogclub.u.cnet-ta.ne.jp/ せっかくなのでついでにちょっと、僕の熱い想いを語らせていただきます。 かつてオロチさんが「2012年いまだにファミコンを修理してくれるゲームショップが存在した!」で紹介してからというもの、このお店に月イチで行って、ゲームを買いつつ、優しく面白い店長とよく話をします。 オロチさんが紹介していなければ、僕はもしかしたらここを知らないまま、彼と一生会うこともなく、孤独…というのは大げさかもしれませんが、それでも寂しい人生だったかもしれません。 僕ね、まだ酒は飲めません。 一部ではゆとりだガキだ何だと叩かれます。 けど僕は小学生の時からファミコンが物凄い好きで、小中学校では一時期いじめにも遭って、孤独感に押し潰されて自殺も考えました。 けどやっぱりね、類は友を呼ぶと言うじゃないですか。 オロチさんのこのサイトを見るようになってからというもの、店長や"マサさん"とかいろんな人に出会い、人生は豊かになりました。 マサさん、僕はここにいますよ。 オロチさん、今までずっと休まず記事を書き続け、あの時あの店を紹介してくれて、本当にありがとうございます。 これからも更新がんばってください! 256 :名無しさん@お腹いっぱい。:2013/12/29(日) 19:02:14.68 ID:SqfJyfl2 どうも、ファミコンディスクシステムを愛するFDSラブです。 最初は千歳烏山オルパでの友達に合わせて、面白いファミコンネタを交えつつオルパの素晴らしさを発信していきたかった。 僕はそう考えて、俗に言うリア充さんという人みたいなノリでTwitterを始めたわけなのですが、昨日は大変でした。 FDSラブ@世田谷最強ファミコンコレクタ (@FDS_Conversion)' 簡単にお金が稼げる方法興味ある人だけ見てください。 グーグル検索⇒『来島のモノノリウエ』 9WHJ0HLWTF ファミコンはBGとスプライトの優先順位の指定をスプライト側で設定しますが これだとスプライトの下に表示したいBGキャラと スプライトの上に表示したいBGキャラが隣接している場合で スプライトがその両方にまたがっている場合に スプライトの上に表示したいキャラに差し掛かった時点でスプライトの 優先表示を変えてしまうと、スプライトの下に表示したいBGキャラの部分でも BGキャラが上に表示されてしまうと思いますが、どういう処理をすればいいですか? 色々とVDPの仕様を調べると、セガマークIIIなどは、優先順位のフラグをBG側が 持っているので、何も考えなくても思った通りの優先順位で表示されそうですが ファミコンのようにスプライト側で優先順位を持っていると、優先順位が逆のBGに スプライトがまたがっている場合、どうしたらいいか分かりません。 パターン1 表示したいスプライトより優先度が高いスプライトをBGの裏においてマスクする 例)スーパーマリオの土管に入るときなど パターン2 BGの後ろにしたいところに優先度の高いスプライトを8枚置き、8枚を越える スプライトが出せない事を利用して目的のスプライトを消す 例)ゼルダのダンジョンなど パターン3 表示したいスプライトのキャラそのものをBGデータに重なっているところだけ透過 したキャラに書き換える 例)ソルスティス/ナイトロアーなど 好きなの選んで >>479 ありがとうございます。そういった感じの解決法なんですね。 でも、なんだかスプライト側が優先順位のフラグを持っているのは 面倒な気もするのですが、スーファミでも変わらず同じ仕様のようですし 何かメリットがあるのですか? BG側が優先順位のフラグを持っていれば、BGキャラを表示する時点で フラグを設定する以外の事はしなくても済みますので、この方が便利で 合理的に感じます。 ところがスプライト側がフラグを持っている場合、スプライトキャラが移動するたびに BGキャラとの重なりチェックをしなければならず、そのBGキャラがスプライトの上に 表示されるべきBGキャラならばフラグを設定し、そうでなければまたフラグを戻すといった 処理がキャラを移動するたびに発生します。しかも、上記のように 優先順位が逆のBGキャラをまたいでいる場合は、様々な工夫が必要です。 それにもかかわらず、スーファミでもこの仕様を継承したということは この方法にもメリットがあるはずですが、さっぱり思いつきません。 BGにフラグをもたせるメモリの空きなどないしハードウェアも複雑になる 描写位置に合わせて処理が必要になるスプライト側に機能を集約させることで単純化し 工業製品として価格が抑えられるなら十分なメリットになるだろ スーファミは当初ファミコンのソフトがそのまま動かせるように 互換性を考慮した設計だったが途中で諦めたからその名残 >>480 出来る事出来ない事がそれぞれで違って一長一短ある BG2枚以上ならスプライト側のほうが何かと便利かな >>481 ファミコンはVRAMが2KBしかないので よく考えたらそうですね、パレットですら4キャラで1つに 節約してるくらいですし。 何かソフトウェア技術的なメリットがあるのかと思って ここ3か月くらいずっと考えてたんですけど、思いつかなかったもので ここで聞いてみました。 >>482 スプライト側がフラグを持った方がいい場合もあるのですか? 自分はまったく思いつかないのですが・・・。 スプライト側がフラグを持つと、プログラマ側が色々な処理を しなければならず面倒ですけど、BG側がフラグを持ってくれると プログラマは何もしなくてよくてメリットしかないように思います。 >>483 BGにフラグの場合はスプライトより上にしたBGよりスプライトを 上にする事が不可能になる 今更そんなメリットデメリットを議論したところで変わらないから 工夫して使うしかないよ ようやく>>478 氏の内容が理解できた。 なんで優先度をそんなコロコロ変えるのか全く理解できなかったが、マリオの土管の事か。 ああいうのは、本来別の最前面スプライトやBG面を2毎持たせて前面のBG面?としてやるものだと思いますが。 BG=背景なんだから、それを基準(固定して)にするのが普通の考えだと思う。 >>484 おお、なるほど。そこは思いつきませんでした。 確かに今更仕様について考えても意味ないんですけど どうも気になってしまって。 >>485 この仕様を考えるきっかけになったのが、立体交差の橋を くぐるという処理なんですけど、橋の下に入るときに、スプライトは 1ドット単位で動くので、どのタイミングで優先順位を切り替えたら いいかと悩んだのが原因でして。 橋に1ドットでもくぐった瞬間に切り替えると、その手前の地面のBGも 上になってしまうのでキャラが半分消えておかしくなるし、完全に8キャラ分橋の下に 移動してから切り替えると、その8ドットが動く間はキャラが橋の上に表示されて しまうので。 そう言えばイースの立体交差はどうだったろうと思って 調べてみたら、ファミコン版はそもそも立体交差が省略されて 無くなっていたという。 RPGで森に入ると下半身が隠れるというのも同じような処理ですけど ハイドライドではよく見てみると、森から出るときとか地面のBGがキャラの上になってしまってますね。 速いからよく分からないけど、ちゃんと処理してると思ったら思い出補正だったようで。 ファイナルファンタジーだとキャラがきれいに矩形に消えてるので BGを上にしてるんじゃなくて、単にスプライト消してるだっけっぽいですね。 結局の所、1ドット単位で動くキャラに対して上に何かを 表示したい場合、1キャラ分動き終わった場合は別として 移動中はスプライトで上書きしかないのですね。 さっき動画で見たんですけど、カラテカでキャラが柱の向こう側を 通る時も、柱にスプライトのマスクが出現する処理でした。 だとすると、このBGがスプライトの上に表示できるという仕様は 移動するキャラに対して使用するような想定では作られていないということか。 根本的にそこの理解が足りなかった。 あ、念のために書いておくと、立体交差の橋というのは 下が透ける部分(透明色)があって、そこからはスプライトキャラが見えます。 完全にキャラが見えなくなってしまうのであれば、それこそスプライトのマスクで 済むので。 なんか連続で書いて申し訳ないですけど、>>484 さんが 教えてくれた利点は結構大きいな。 これができないとスーマリ3とかのBGの裏側に回った時に 自キャラだけ裏側でってのが出来なくなる。 BGパレットの0番が背景色だから スプライトのプライオリティビットを立てると この部分が透過扱いになるのよ read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる