X



ファミコンのプログラム4
0001名前は開発中のものです。
垢版 |
2012/07/29(日) 14:19:03.64ID:a5QeqSA0
■過去スレ

ファミコンのプログラム
http://pc8.2ch.net/test/read.cgi/gamedev/1013696305/

ファミコンのプログラム2
http://pc11.2ch.net/test/read.cgi/gamedev/1135099156/

ファミコンのプログラム3
http://toro.2ch.net/test/read.cgi/gamedev/1214210285/

■関連サイト

MagicKit Homepage
http://www.magicengine.com/mkit/
すずめ愛好会
http://web.archive.org/web/*/http://vsync.org/ns/index.html
ギコ猫でもわかるファミコンプログラミング
http://gikofami.fc2web.com/
わいわいの巣
http://www.geocities.jp/yy_6502/
mck hogehoge
http://takamatsu.cool.ne.jp/dutycycle/
NES info, programs, and demos
http://nesdev.parodius.com/
pgate1@crystal
http://crystal.freespace.jp/pgate1/
cc65 @ wiki
http://www34.atwiki.jp/cc65/
0404名前は開発中のものです。
垢版 |
2015/07/12(日) 12:33:35.60ID:mpg+Vwo9
決定ボタンを連打してたらゲームが始まっててボムを消費してしまうのは
様式美だから気にしなくてもいいと思う

細かいことだけど>>402
START+SELECT同時押し(もしくはSTART押しながらSELECT)=リセット
の間違いだった

>>403
>start=Aボタン=ボム Bボタン=ボム
Bボタン=ショットってこと?
0405名前は開発中のものです。
垢版 |
2015/07/12(日) 15:35:29.97ID:rjppu/hS
セレクト画面の選択はスタートも効くようにしておけばいいんじゃね

個人的にはボムがどっち側か選択出来るといいな
0406398
垢版 |
2015/07/12(日) 15:40:36.97ID:eipwc+As
>>404
>>start=Aボタン=ボム Bボタン=ボム
>Bボタン=ショットってこと?

すみません。
start=Aボタン=ボム Bボタン=ショット
でした。
0407398
垢版 |
2015/07/12(日) 15:43:28.70ID:eipwc+As
>>405
コンフィグでのボタン割り当ての変更は実装する予定です。
0409名前は開発中のものです。
垢版 |
2015/07/12(日) 21:42:13.52ID:eqQNtVxD
2A03はDPCMデータをどのタイミングでフェッチしてるんだ
DPCM再生したらプログラムの実行速度遅くなるとかあるのか
0410398
垢版 |
2015/07/13(月) 01:54:36.60ID:ETla0kQ9
>>408
色々考えて、今のところ、start または ショット(デフォルトBボタン) を決定、
ボム(デフォルトAボタン)をキャンセルに割り当てる方向で行こうかと思っています。
0411398
垢版 |
2015/07/13(月) 02:02:23.75ID:ETla0kQ9
>>409
英文で申し訳ないですが、nesdev wiki の記事によるとDPCMデータを読み込む時に最大4サイクルCPUが停止(ストール)するようです。

ttp://wiki.nesdev.com/w/index.php/APU_DMC#Memory_reader
0412名前は開発中のものです。
垢版 |
2015/07/13(月) 21:38:14.47ID:8PTgB6y3
>>411
最大4って事は4ではない事もあるのか。別の所では1サイクルとか書いてあった。
>>409
SMB3の左下の方のちらついてる部分が、DPCM音に合わせて右にずれる。
0415名前は開発中のものです。
垢版 |
2015/08/06(木) 22:57:03.34ID:QTHdQd4i
東方老楼夢やってみましたがすごいですね。
今後の進展に期待しています。
少し気になったことですが、実機だと自機選択の画面でカーソルを
上下に動かすたびに全体的に画面が少し揺れますね。
0416398
垢版 |
2015/08/07(金) 23:39:37.38ID:YUPlB/cK
>>415
実機で画面が揺れるのを確認しました。
PPUにデータを送ることに影響して、IRQ割り込みのカウンタが何かずれているのかも。
バグ表に記録しておきます。ありがとうございます。

>>414
やってみましたが、裏側のパッドのボタンが押しっぱなしになるか、押しにくいのどちらかでした。
0417398
垢版 |
2015/08/08(土) 00:31:25.10ID:BI5FjCuz
机上調査レベルですが、実機で画面が揺れる(ピクンと跳ねる)のは、
・PPUへのデータ転送処理より先にIRQカウンタの設定をしている
・パレットの書き換えでPPUアドレスの$3fxxにアクセスしている
のが原因っぽいです。

$3fxxにアクセスするのでPA12のアドレス線が0→1に変化。
これをMMC3が拾ってIRQカウンタをカウントダウンすることで、
1ライン早くIRQ割り込みが発生して、画面がずれると推測しました。
0418名前は開発中のものです。
垢版 |
2015/08/09(日) 16:51:22.40ID:0ksNtoFR
さっしーを本気でブスと思ったことはない、むしろ美人な方
ブスだけど
0419名前は開発中のものです。
垢版 |
2015/08/09(日) 19:24:44.04ID:ShkksTPS
何故、急にさっしーが出て来た?

ともかく美人の範囲には入らない、美人は石原さとみ、佐々木希、エリカ様あたり。
0420名前は開発中のものです。
垢版 |
2015/08/10(月) 20:22:03.98ID:L65BKpn6
>>396
中の人でしょうか。
色が重複してしまう理由が書かれていないのです(ファイアーの色をマリオとルイージから取ってこなければならない理由)。
重複しないように設定したいのだが、ハードの制約で重大な問題が生じる為重複させなければならない と読み取れます。

確かに市販タイトルを少し調べてみましたが全て異なる色を使用しているのは見つかりませんでしたが。
それは、総合的なデザイン上の問題だと思います。
画面上に、「マリオ、ルイージ、レディ、ファイア」の4キャラしか出てこないゲームなら、全てに異なる色を設定しても問題ないでしょう。
0421名前は開発中のものです。
垢版 |
2015/08/12(水) 20:57:19.05ID:vHA00r0T
>>420

>中の人でしょうか。

違いますよ。

>色が重複してしまう理由が書かれていないのです

「別々のパレットから個別に色を選択してスプライトを
表示することはできない」というパレットの仕様を
説明したいがために、わざと色が重複する例を
出しているだけと私は解釈しています。

397さんの指摘のように、先に25色発色できるのを提示してから
重複する例を出す構成にするのが誤解を生まない方法だと
思います。

>重複しないように設定したいのだが、ハードの制約で重大な問題が生じる為重複させなければならない と読み取れます。

「理由なく色が重複する例を出した」から
「重大な問題が生じる為重複させなければならない」という考えに至るのが
私の考え方と違うようです。
25色発色できるとも書いてあるし、重複させなければならないと
断言する文言も無いので、私はそう解釈はしませんでした。

総合的なデザイン上の問題 という指摘については同意です。
0422名前は開発中のものです。
垢版 |
2015/11/02(月) 19:23:11.78ID:Lz25rOrT
ファミコンのプログラムに興味出たんだけどアセンブラやるならnesasmとcc65はどっちがオススメ?
0424名前は開発中のものです。
垢版 |
2015/11/03(火) 00:48:13.34ID:dgydVfeg
cc65はca65つーアセンブラも付属してるよ。

>>422
ca65もnesasmも結果として作れるソフトに差はない。
なので、そういう質問するレベルなら簡素なnesasmで十分だと思う。
0425422
垢版 |
2015/11/04(水) 00:04:33.96ID:MG7aGI5u
皆さんありがとう
プログラミングは初心者です
公式で配布しているnesasmは64bitで使えないみたいだから、まだ更新しているca65の方がマシかなと思った
自分の探し方が悪いのか?
0426名前は開発中のものです。
垢版 |
2015/11/04(水) 01:29:45.57ID:jDbZfAAt
nesasmはソース付いてるから、自前でビルドして64Bit版nesasm作ってもいいのだが、面倒くさいなら、
MS-DOS Player
ttp://homepage3.nifty.com/takeda-toshiya/msdos/index.html
とか使えば、配布されてるnesasmのバイナリも、そのまま64Bit版Windowsのコマンドプロンプトの中で動くと思う。
0427422
垢版 |
2015/11/04(水) 01:38:18.31ID:MG7aGI5u
ありがとうございます
そのソフト別の意味で面白そう
なるほど、自分でビルドしても良いのか
勉強がてらやってみます
0431名前は開発中のものです。
垢版 |
2015/11/27(金) 22:00:09.01ID:AEiSUGo8
VBlank待ちで$2002読んだ後VBlank中にスプライト書き込むプログラム書いたけど実機だと
左から右にスプライトを動かそうとするとスムーズに動いてくれない。ドンキーコングとか市販のソフトみたいに綺麗に動かすには
何を気をつけたらいいですか?
0432名前は開発中のものです。
垢版 |
2015/11/27(金) 22:46:48.97ID:BXn0P/af
普通は$2002を使ったVblank待ちを常用するようなことはしない、ギコ猫〜のサイトでも見たのかな?
詳しくはこのスレの上のほうにあるレスを見てね
0434名前は開発中のものです。
垢版 |
2015/12/16(水) 22:25:48.20ID:+xc8/nu+
>>1
アプリ倉庫だったところ
http://www6.atpages.jp/~appsouko/
0435名前は開発中のものです。
垢版 |
2015/12/27(日) 12:38:46.49ID:/47Z3a2E
東方老桜夢のver0.20をアップしました。

ttp://homepage3.nifty.com/~kyoske/nes/TouhouRououmu020.zip

1面ボスまでの実装、ボムは未実装です。

プログラム構造的には、色々と変更中です。
当初は8KBのバンク1個にステージデータを格納する算段だったのですが、一番短い1面で現地点で5〜6KBぐらいのデータになったので、複数のバンクに分散して持つように変更しています。
弾丸パターンのデータが思いのほか大きかった。会話データはこれからだし。

あと、415さんの報告してくれたバグを元に実機判定を行うことで実機用とエミュ用に分けてたnesファイルを一本化できました。感謝です。
0437名前は開発中のものです。
垢版 |
2016/01/17(日) 16:27:08.58ID:X7lsGmSN
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バンクチェンジしているのか意識させない、バンクチェンジのノイズを抑えているようだ。
 こちらはクロック数が切迫していないから、割り込みは使い放題かな。
0439名前は開発中のものです。
垢版 |
2016/01/26(火) 08:49:51.39ID:+RbTUT9y
>>435
ファミコンでも弾幕張れるんだなと関心してしまった
所でVirtuaNES v0.97でプレイすると表記が色々ズレるんだけれどもこのエミュレータでは正常に出来ないということかな?
0440名前は開発中のものです。
垢版 |
2016/01/27(水) 19:47:28.79ID:8OkpSUkH
>>439
VirtuaNES 0.97で確認してみました。

東方老桜夢ver0.20では、実機/エミュ判定を行っていてIRQ割り込みの頭で、実機/エミュ別にnopを入れてタイミングを調整しています。
実機 nop 2個、エミュ nop 0個となっているのですが、VirtuaNESでは、nop 3個で画面が安定しました。
実機は nop 3個でも安定した画面になるので nopを増やすのは問題ないのですが、
VirtuaNES は、実機/エミュ判定で、エミュと判断されているため、実機側に判定させる何かしらの手立てが必要な状況です。
Aボタンを押した状態で立ち上げたら実機側とするといった方法でも構いませんでしょうか?
0441名前は開発中のものです。
垢版 |
2016/01/27(水) 23:31:46.97ID:iuhjgLDC
ほう、実機判定してるんだ。

 VirtuaNESにあわせる必要はない。
使いやすさは最高だが、エミュレーション精度はいまや時代遅れだからだ。
 対しPPUクロック精度で書かれたより新しいエミュは
動作が重いという罠もある。
0442名前は開発中のものです。
垢版 |
2016/01/28(木) 00:04:07.25ID:aAl7ptEy
>>441

では、申し訳ありませんが、VirtuaNES対応は宿題とさせていただきます。

実機判定は、VBlank期間中にMMC3のIRQを発生させれるかを行っています。
FCEUX Nestopia NNNesterJ で動作確認しましたが、この判定をパスしたのは Nestopia だけでした。
再現性が高いという評判は流石と思いました。
0443名前は開発中のものです。
垢版 |
2016/01/28(木) 00:08:59.07ID:4HlAPjuX
しかし1クロック単位を考慮しなきゃならんソフトが多いってのもなぁ
ファミコンはホントに難儀なハードだよ
普通は表面だけをマネできればいいが、ファミコンの場合そうもいかないのがな
0445名前は開発中のものです。
垢版 |
2016/01/29(金) 08:12:40.13ID:IhMTdY1w
>>444
ありがとうございます。
ヘルプにタイル状に分割して描画とあったので、ボスの体力ゲージなどの狭いライン間隔での割り込み部分が
どうななるのか気になったのですが、問題なく表示されるのを確認しました。
0446名前は開発中のものです。
垢版 |
2016/02/02(火) 21:14:25.02ID:Xla8KbIU
ニコ動(sm28114684)に 8BIT MUSIC POWER の動画が投稿されていたので見たけど、
スプライト量4倍は、8x16モードで(8x8に対して2倍×偶数/奇数フレームで時間軸に分散で2倍 っぽい。

画面止めて、移動するオブジェクトの数を数えたけど、64個以内に収まっている。
オブジェクトの移動は、円軌道や微妙な加速減を行っているようで、それなりに負荷はありそう。でも無理のない範囲。
0447名前は開発中のものです。
垢版 |
2016/02/04(木) 23:53:35.30ID:FG4y3IED
 
お世話になります。
私、責任者の加茂と申します。以後、宜しくお願い致します。
http://homepage2.nifty.com/e-d-a/scurl/ays.html
 
 http://homepage2.nifty.com/e-d-a/scurl/SW-pos.html
 http://homepage2.nifty.com/e-d-a/scurl/SW-sp.html
 http://homepage2.nifty.com/e-d-a/scurl/SW-BB8.html
 
浪速建設様の見解と致しましては、メールによる対応に関しましては
受付しないということで、当初より返信を行っていないようで、今後につい
てもメールや書面での対応は致しかねるというお答えでした。
 http://www.o-naniwa.com/
このように現在まで6通のメールを送られたとのことですが、結果一度も
返信がないとう状況になっています。
 
 http://homepage2.nifty.com/e-d-a/scurl/ia-1-4.html
 http://homepage2.nifty.com/e-d-a/scurl/ia-2-1.html
 http://homepage2.nifty.com/e-d-a/scurl/ia-3-2.html
 
私どものほうでも現在までのメール履歴は随時削除を致しております
ので実際に11通のメールを頂戴しているか不明なところであります。
 
●クリスタル通り122号室住人
●浪速建設 女事務員 南野 東条  ●アパマンショップ八尾店 加茂正樹
 
!!!!!!!!!!!!!!!
0448名前は開発中のものです。
垢版 |
2016/02/10(水) 05:21:21.77ID:Tj88U3ce
ハードの話だからスレチかもしれないんだけどさ、ファミコンをTVに直接つなぐと壊れるとか言っている人がいたけど、どうしたら壊れるのかよくわからん
ファミコンのRF出力には常時5Vの直流成分があるから、せいぜい1V程度の入力を前提としたアンテナ端子につなぐと壊れるってことか?
壊れるとしたら直流カット用のコンデンサか?でもまず名の知れたメーカーのテレビがそんなに耐圧の低いコンデンサ使うことってあるのか?
同じ形の端子のBSなんかじゃ15Vあるしフールプルーフの観点からも、まともな企業がその程度で壊れるテレビを作るとは考えにくいとおもうんだが
0449名前は開発中のものです。
垢版 |
2016/02/10(水) 21:24:34.51ID:t1JpI2XH
>>448

ググったら、次のサイトが見つかった。

ttp://d.hatena.ne.jp/Narr/20110406

RFスイッチを通す前提で回路を組んでいるので、RFを直結するといった保証の範囲外の使われ方をした場合に
どうなるかわからない、最悪テレビが壊れる可能性もある。
ってところのようです。
0451名前は開発中のものです。
垢版 |
2016/02/11(木) 00:53:37.94ID:bMdTUmpq
>>450
なんでRF出力をテレビにつなぐとファミコンの回路中の抵抗がやられるんだ?
ファミコンの中の7805が壊れるようなことでもない限りファミコン本体側の部品に過電流が流れるってまずないだろ
0453名前は開発中のものです。
垢版 |
2016/06/04(土) 14:03:05.70ID:rVuJza+k
東方老桜夢 ver0.30をアップしました。
http://homepage3.nifty.com/~kyoske/nes/TouhouRououmu030.zip

ボムとゲームオーバー処理、タイトル画面を実装しました。

技術面でのトピックは、BG処理を背景&エフェクトの2レイヤー構造から
WRAM上のバッファの内容を表示する2レイヤーを加えた4レイヤー構造に
変更したことでしょうか
新規に追加したレイヤーの1つを使ってプレイヤーのボムを表示しています。
BGなので8ドット単位でしか絵が移動しませんが、思ったより悪くは無い感じでした。
残りの1レイヤーはまだ先の話になりますがボス敵で使う予定です。
0455名前は開発中のものです。
垢版 |
2016/06/15(水) 21:52:17.36ID:niJUc+BD
>>449のサイトから色々有用な情報を得られたけど、全体的にだいぶ捻くれた書き方してんな
なんかWeb上のファミコン関係の技術者って心に闇抱えてる人が多いような気がするわ
Offgaoとか、某FPGA実装の人とか、安藤信明とか
0462名前は開発中のものです。
垢版 |
2017/12/24(日) 01:27:33.19ID:a9Y1KqFd
ファミコンディスクシステム掲示板 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
0463名前は開発中のものです。
垢版 |
2017/12/24(日) 12:43:40.15ID:a9Y1KqFd
ディスクシステムでDPCMって鳴らせるか調べてみたら、
$C000〜$DFF9にDCPMを配置して鳴らすことはできそうだな
0465名前は開発中のものです。
垢版 |
2017/12/25(月) 05:28:22.37ID:W4zhaDYT
ディスクシステム(任天堂)のBIOSとシャープ ツインファミコンのBIOSって若干違うんだな。
Nintendoって表示されるかFamicomって表示されるかの違いだけど。
ディスクシステム(任天堂)のBIOSは40KBのNESイメージのものもあるけど、
シャープ ツインファミコン版を作ろうと思ったら、ディスクシステム(任天堂)の
ROMをシャープ ツインファミコンのものに置き換えてから吸出し機で吸わないと駄目かな?
0469名前は開発中のものです。
垢版 |
2017/12/25(月) 23:16:46.03ID:W4zhaDYT
バッ活パート11掲載「ROMゲームをディスクシステムで実行」ってのがあるようだ、
RAMアダプタを改造すれば、ROMのゲームをディスクに入れて遊べるようだな。
これはNROM(マッパー0)かCNROM(マッパー3)のゲームが対応しているようだ。
海賊晩でFDSのゲームをROMに入れたものがあるけど。これは$6000から
プログラムを配置できるマッパーを使用しちえる。どちらも基本的にアドレスを変換せずに
起動できる点がポイントだろう。普通にNES→FDSやFDS→NESをやろうと
思うと大抵アドレス変換が必要で大幅なプログラム変更の為気の遠くなるような
作業が必要だ。
0470名前は開発中のものです。
垢版 |
2017/12/27(水) 01:41:54.27ID:QYUKoYbX
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年いまだにファミコンを修理してくれるゲームショップが存在した!」で紹介してからというもの、このお店に月イチで行って、ゲームを買いつつ、優しく面白い店長とよく話をします。
オロチさんが紹介していなければ、僕はもしかしたらここを知らないまま、彼と一生会うこともなく、孤独…というのは大げさかもしれませんが、それでも寂しい人生だったかもしれません。
僕ね、まだ酒は飲めません。
一部ではゆとりだガキだ何だと叩かれます。
けど僕は小学生の時からファミコンが物凄い好きで、小中学校では一時期いじめにも遭って、孤独感に押し潰されて自殺も考えました。
けどやっぱりね、類は友を呼ぶと言うじゃないですか。
オロチさんのこのサイトを見るようになってからというもの、店長や"マサさん"とかいろんな人に出会い、人生は豊かになりました。
マサさん、僕はここにいますよ。
オロチさん、今までずっと休まず記事を書き続け、あの時あの店を紹介してくれて、本当にありがとうございます。
これからも更新がんばってください!
0471名前は開発中のものです。
垢版 |
2017/12/27(水) 02:34:19.62ID:QYUKoYbX
256 :名無しさん@お腹いっぱい。:2013/12/29(日) 19:02:14.68 ID:SqfJyfl2
どうも、ファミコンディスクシステムを愛するFDSラブです。
最初は千歳烏山オルパでの友達に合わせて、面白いファミコンネタを交えつつオルパの素晴らしさを発信していきたかった。
僕はそう考えて、俗に言うリア充さんという人みたいなノリでTwitterを始めたわけなのですが、昨日は大変でした。
0475名前は開発中のものです。
垢版 |
2017/12/31(日) 18:24:45.05ID:/rN76OKL
簡単にお金が稼げる方法興味ある人だけ見てください。

グーグル検索⇒『来島のモノノリウエ』

9WHJ0HLWTF
0476名前は開発中のものです。
垢版 |
2018/01/02(火) 22:10:24.29ID:slJhAaJH
ほす
0477名前は開発中のものです。
垢版 |
2018/01/16(火) 06:49:08.11ID:J/0RzKgi
http://egg.5ch.net/test/read.cgi/software/1488728381/191
191 名前:名無しさん@お腹いっぱい。[] 投稿日:2017/05/28(日) 23:24:05.12 ID:8S5QOMSD0
>>190
Mesen (100%) ≧ Bizhawk (100%) > puNES (98.08%) > MyNes (87.82%) > Nintendulator (85.26%) > VirtuaNES (35.26%) > nesterJ (29.49%)

http://tasvideos.org/EmulatorResources/NESAccuracyTests.html
http://emulation.gametechwiki.com/index.php/Mesen
https://www.mesen.ca/#Compatibility
0478名前は開発中のものです。
垢版 |
2018/01/19(金) 00:29:11.92ID:VhnRMljT
ファミコンはBGとスプライトの優先順位の指定をスプライト側で設定しますが
これだとスプライトの下に表示したいBGキャラと
スプライトの上に表示したいBGキャラが隣接している場合で
スプライトがその両方にまたがっている場合に
スプライトの上に表示したいキャラに差し掛かった時点でスプライトの
優先表示を変えてしまうと、スプライトの下に表示したいBGキャラの部分でも
BGキャラが上に表示されてしまうと思いますが、どういう処理をすればいいですか?

色々とVDPの仕様を調べると、セガマークIIIなどは、優先順位のフラグをBG側が
持っているので、何も考えなくても思った通りの優先順位で表示されそうですが
ファミコンのようにスプライト側で優先順位を持っていると、優先順位が逆のBGに
スプライトがまたがっている場合、どうしたらいいか分かりません。
0479名前は開発中のものです。
垢版 |
2018/01/19(金) 03:13:04.92ID:KfOVG5Sv
パターン1
表示したいスプライトより優先度が高いスプライトをBGの裏においてマスクする
例)スーパーマリオの土管に入るときなど

パターン2
BGの後ろにしたいところに優先度の高いスプライトを8枚置き、8枚を越える
スプライトが出せない事を利用して目的のスプライトを消す
例)ゼルダのダンジョンなど

パターン3
表示したいスプライトのキャラそのものをBGデータに重なっているところだけ透過
したキャラに書き換える
例)ソルスティス/ナイトロアーなど

好きなの選んで
0480名前は開発中のものです。
垢版 |
2018/01/19(金) 13:00:25.60ID:VhnRMljT
>>479
ありがとうございます。そういった感じの解決法なんですね。
でも、なんだかスプライト側が優先順位のフラグを持っているのは
面倒な気もするのですが、スーファミでも変わらず同じ仕様のようですし
何かメリットがあるのですか?

BG側が優先順位のフラグを持っていれば、BGキャラを表示する時点で
フラグを設定する以外の事はしなくても済みますので、この方が便利で
合理的に感じます。
ところがスプライト側がフラグを持っている場合、スプライトキャラが移動するたびに
BGキャラとの重なりチェックをしなければならず、そのBGキャラがスプライトの上に
表示されるべきBGキャラならばフラグを設定し、そうでなければまたフラグを戻すといった
処理がキャラを移動するたびに発生します。しかも、上記のように
優先順位が逆のBGキャラをまたいでいる場合は、様々な工夫が必要です。
それにもかかわらず、スーファミでもこの仕様を継承したということは
この方法にもメリットがあるはずですが、さっぱり思いつきません。
0481名前は開発中のものです。
垢版 |
2018/01/19(金) 16:13:46.37ID:k1Q0LT6K
BGにフラグをもたせるメモリの空きなどないしハードウェアも複雑になる
描写位置に合わせて処理が必要になるスプライト側に機能を集約させることで単純化し
工業製品として価格が抑えられるなら十分なメリットになるだろ

スーファミは当初ファミコンのソフトがそのまま動かせるように
互換性を考慮した設計だったが途中で諦めたからその名残
0482名前は開発中のものです。
垢版 |
2018/01/19(金) 22:43:04.95ID:KfOVG5Sv
>>480
出来る事出来ない事がそれぞれで違って一長一短ある
BG2枚以上ならスプライト側のほうが何かと便利かな
0483名前は開発中のものです。
垢版 |
2018/01/19(金) 23:52:01.21ID:VhnRMljT
>>481
ファミコンはVRAMが2KBしかないので
よく考えたらそうですね、パレットですら4キャラで1つに
節約してるくらいですし。
何かソフトウェア技術的なメリットがあるのかと思って
ここ3か月くらいずっと考えてたんですけど、思いつかなかったもので
ここで聞いてみました。

>>482
スプライト側がフラグを持った方がいい場合もあるのですか?
自分はまったく思いつかないのですが・・・。
スプライト側がフラグを持つと、プログラマ側が色々な処理を
しなければならず面倒ですけど、BG側がフラグを持ってくれると
プログラマは何もしなくてよくてメリットしかないように思います。
0484名前は開発中のものです。
垢版 |
2018/01/20(土) 04:11:54.78ID:B+xNcX3y
>>483
BGにフラグの場合はスプライトより上にしたBGよりスプライトを
上にする事が不可能になる

今更そんなメリットデメリットを議論したところで変わらないから
工夫して使うしかないよ
0485名前は開発中のものです。
垢版 |
2018/01/20(土) 13:13:58.39ID:z5GTrIKv
ようやく>>478氏の内容が理解できた。
なんで優先度をそんなコロコロ変えるのか全く理解できなかったが、マリオの土管の事か。
ああいうのは、本来別の最前面スプライトやBG面を2毎持たせて前面のBG面?としてやるものだと思いますが。
BG=背景なんだから、それを基準(固定して)にするのが普通の考えだと思う。
0486名前は開発中のものです。
垢版 |
2018/01/20(土) 16:39:03.41ID:xRcWre4I
>>484
おお、なるほど。そこは思いつきませんでした。
確かに今更仕様について考えても意味ないんですけど
どうも気になってしまって。

>>485
この仕様を考えるきっかけになったのが、立体交差の橋を
くぐるという処理なんですけど、橋の下に入るときに、スプライトは
1ドット単位で動くので、どのタイミングで優先順位を切り替えたら
いいかと悩んだのが原因でして。
橋に1ドットでもくぐった瞬間に切り替えると、その手前の地面のBGも
上になってしまうのでキャラが半分消えておかしくなるし、完全に8キャラ分橋の下に
移動してから切り替えると、その8ドットが動く間はキャラが橋の上に表示されて
しまうので。
0487名前は開発中のものです。
垢版 |
2018/01/20(土) 16:50:55.67ID:xRcWre4I
そう言えばイースの立体交差はどうだったろうと思って
調べてみたら、ファミコン版はそもそも立体交差が省略されて
無くなっていたという。

RPGで森に入ると下半身が隠れるというのも同じような処理ですけど
ハイドライドではよく見てみると、森から出るときとか地面のBGがキャラの上になってしまってますね。
速いからよく分からないけど、ちゃんと処理してると思ったら思い出補正だったようで。
ファイナルファンタジーだとキャラがきれいに矩形に消えてるので
BGを上にしてるんじゃなくて、単にスプライト消してるだっけっぽいですね。
0488名前は開発中のものです。
垢版 |
2018/01/20(土) 17:03:49.81ID:xRcWre4I
結局の所、1ドット単位で動くキャラに対して上に何かを
表示したい場合、1キャラ分動き終わった場合は別として
移動中はスプライトで上書きしかないのですね。
さっき動画で見たんですけど、カラテカでキャラが柱の向こう側を
通る時も、柱にスプライトのマスクが出現する処理でした。

だとすると、このBGがスプライトの上に表示できるという仕様は
移動するキャラに対して使用するような想定では作られていないということか。
根本的にそこの理解が足りなかった。
0489名前は開発中のものです。
垢版 |
2018/01/20(土) 17:20:16.21ID:xRcWre4I
あ、念のために書いておくと、立体交差の橋というのは
下が透ける部分(透明色)があって、そこからはスプライトキャラが見えます。
完全にキャラが見えなくなってしまうのであれば、それこそスプライトのマスクで
済むので。
0490名前は開発中のものです。
垢版 |
2018/01/20(土) 19:11:23.32ID:xRcWre4I
なんか連続で書いて申し訳ないですけど、>>484さんが
教えてくれた利点は結構大きいな。
これができないとスーマリ3とかのBGの裏側に回った時に
自キャラだけ裏側でってのが出来なくなる。
0491名前は開発中のものです。
垢版 |
2018/01/20(土) 19:15:39.26ID:1nTTD0qr
BGパレットの0番が背景色だから
スプライトのプライオリティビットを立てると
この部分が透過扱いになるのよ
0492名前は開発中のものです。
垢版 |
2018/01/20(土) 19:36:10.53ID:xRcWre4I
>>491
その仕様はもちろん理解しています。
ファミコンはBG・スプライトにかかわらず
パレットの0番色は強制透過色ですよね。
0493名前は開発中のものです。
垢版 |
2018/01/20(土) 19:52:33.42ID:xRcWre4I
説明が下手過ぎて何か勘違いさせてしまったかもしれません。
透過色の原理は理解してます。

まあ簡単に書くと、表示優先順位が逆のBGキャラをスプライトがまたいでいる時
つまり移動中は優先順位をどう指定しても表示がおかしくなるので
BGと同じスプライトを自キャラスプライトに上書きするしかなさそうだな
面倒だなこれ、BGがフラグ持ってくれてたらこの処理いらないのになぁ
なんでスプライト側がフラグ持ってるんだろ?これ何か利点あるの?ってのが
出発点でした。
0494名前は開発中のものです。
垢版 |
2018/02/17(土) 07:40:03.31ID:G/oBdhuK
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0497名前は開発中のものです。
垢版 |
2018/05/14(月) 19:07:58.17ID:Y/0tmHJq
453です。久しぶりに来ました。

>>459
Mesenの存在を知った時、東方老桜夢を試してみたのですが
プログラムに仕込んでいる実機判定でエミュと判断されたので
Nestopiaに負けてんじゃんで止まっています。
実機判定にパスすれば普通に動作するようです。


東方老桜夢の公開サイトはinfoweb閉鎖に伴いさくらサーバに移動しています。
現在、ver0.51を公開しています。
0498名前は開発中のものです。
垢版 |
2018/08/08(水) 22:21:13.26ID:zmi562yC
最近開発を始めようと思ってファミコンの勉強を始めたものです。優しい方がいたら是非教えて欲しいことがあります
CPUアドレス空間の$2006ってR/WしたいPPUのアドレス空間のアドレスを上位ビットと下位ビットの二回に分けて書き込むと思うのですが、この2バイトのアドレスの情報ってPPU内部のどこのレジスタに保存されているのでしょうか。

例えば同じように2回書き込む$2005では、スプライトのy座標とx座標はそれぞれPPUのOAMのbyte1とbyte2に保存されていると思うのですが、、
0499名前は開発中のものです。
垢版 |
2018/08/08(水) 22:52:05.26ID:zmi562yC
すみません、多分自己解決しました
NesdevのPPU Scrollingのページにtレジスタとかvレジスタとか色々書いてあったのに気づきました
0500名前は開発中のものです。
垢版 |
2018/08/09(木) 20:06:38.45ID:KCGkcXa3
tレジスタやvレジスタは、動作を説明するために書いてあって、実際にPPU内部に存在するかは
はっきりしていないと思います。ただ、この動きをするためには、このようなレジスタが必要だろうなと
推測されるので、説明にあるレジスタに該当する回路はあると思います。

あと、$2005 に書き込むにはBGのスクロール位置なので、OAMは関係しません。
0501名前は開発中のものです。
垢版 |
2018/08/09(木) 23:53:25.84ID:D70dxmCk
釣りにしては有能すぎる。

ファミコンの回路図見るのが一番。

もっと言えば
PPU内部の回路解析しちゃった外人もいるはず。
0502名前は開発中のものです。
垢版 |
2018/08/12(日) 12:57:39.31ID:iZHULsCi
回路図見たけど2度書きレジスタについては全然見えてこないな。
tやvという概念さえ知ってれば無問題。
レスを投稿する


ニューススポーツなんでも実況