1 名前:名前は開発中のものです。 [2005/12/21(水) 02:19:16 ID:3YuJDfXD] マリオみたいなのを作ってエミュで遊びたいんですが 開発ツールはどこで手に入りますか?
732 名前:728 mailto:age [2007/09/03(月) 14:14:38 ID:crfr0G/Z] 初めてアセンブラ触ってるから汚いけど、再現するソース一式。 ttp://gamdev.org/up/img/10073.zip ちなみに、エミュレータによって動作違うみたい。 今回のは、VirtuaNES0.93でしか、再現しないです。 その他のエミュはスクロールしません。
733 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 14:59:01 ID:chnoZMRy] 画面が出るエミュと出ないエミュがある。
734 名前:名前は開発中のものです。 mailto:sage [2007/09/04(火) 01:24:17 ID:GQvI0rE0] >>732 112行目に下のコードをはさんでみ lda #$3F sta $2006 lda #$00 sta $2006 sta $2006 sta $2006
735 名前:名前は開発中のものです。 mailto:sage悩むんだこれ [2007/09/04(火) 19:06:34 ID:P2wzBusB] ↑は任天堂のゲームには入ってるかな。スクロール値をリセットするおまじないだ。 スクロール値って実はPPUアドレスそのものだから、$2006や$2007にアクセスすると、スクロール値が勝手に変っちゃう。 それを、VBLANK期間に VRAM転送が終わったら、VBLANK期間から出るより前にリセットする必要がある。 >>734 のコードでリセットした直後に、最初のスキャンラインの自分が求めているスクロール値を$2005に書き込むべし。 ヒントや詳細は、 The Skinny on NES Scrolling NTSC 2C02 technical reference らを読むべし。難しいから分らないなら読まなくてよし。 >>732 を読んでて、ぱっと見、明らかに悪いとこや勘違い?がある。今のうちに癖を直さないとそのうち、つまずく。 VirtuaNESでまともに動けばそこそこ安心と思うべし。動かないなら作法が悪い。 NMIルーチン入ったらVBLANK期間が終わらないうちに小規模なBG転送と、sta $4014のみに専念するべし。 VBLANK期間は短いので、NMIの直後は時間を無駄にしないこと。 ⇒Main: が長すぎて、sta $4014がVBLANK期間内に終わらないんじゃないか? 動作しちゃうでしょうけど、あまり(・A・)イクナイ!! NMIルーチン直後の定説は、まずSPRDMA、次にBG小転送。 VBlank: 内でBGの初期化(=大量転送)をやってる ⇒BGやSPRオフにしてさえいれば、BGの初期化はReset: 内でもok。 むしろBGやSPRの初期化は長くなりがちだからReset: でやるべき。 BG, SPR, NMIなどを再びオンにする前にVBLANKを待った方がいいかも。 jsr PadGetは⇒ 「スプライトとBGの表示をONにする」の直後に書くべき。 Main: 内の位置更新作業も同様に⇒ 「スプライトとBGの表示をONにする」の直後に書くべき。 .org $0600 sprdma: .db 0 ⇒他のアセンブラならアリでしょうが、NESASMしょぼいから、.orgやたらにやらないほうがいいかも。 NESファイルに実体確保しちゃったりして、思わぬアドレスのズレやコンパイルミスが起こりうる。 RAM上の変数定義だけなら=や.equでいいんじゃないか。
736 名前:728 mailto:sage [2007/09/04(火) 19:26:51 ID:QMg4xWo6] >>735 詳しい解説サンクス、なんせファミコンのプログラムは 初めてなんで、作法とか気にせずにガンガンに コード書いててあんな感じでした。 助言を元に、コード書き直してみます、ありがとう。
737 名前:名前は開発中のものです。 mailto:sage [2007/09/07(金) 21:31:37 ID:obAgPFkH] >>732 もう一つ悪い所言い忘れた。 初期化せず参照してる変数がある。 例えば、主に画面更新フラグ F9。 ソフトリセット(リセットボタン)しても、メモリはオール0になるわけではない。 リセットする前の値のままだ。 エミュではハードリセット(電源スイッチ)すれば、大抵オール0になるけど、 実機じゃ不定と思うべき。 ソフトリセットとハードリセット両方を想定して変数の初期化に気配りしないと誤動作するおそれがある。 故意に区別したいなら初期化しない場合もあるけど。
738 名前:728 mailto:age [2007/09/08(土) 00:01:11 ID:gB8LjeiM] >>737 前回のプログラムは、検証用だったのでReset部分は省いてました。 とりあえず、ゲームっぽいものが完成しましたので 上げさせて頂きます。 ttp://gamdev.org/up/img/10090.zip 内容から個人が、特定されて恥ずかしいですが お世話になったので、バックアップを兼ねて 公開しておきます、ありがとうございました。
739 名前:名前は開発中のものです。 mailto:sage [2007/09/09(日) 21:27:14 ID:mgJD7PBy] 検証用だったのか。 >>738 すごー。
740 名前:名前は開発中のものです。 mailto:sage [2007/09/11(火) 02:49:45 ID:5TRHqQd7] >>738 readme.txt に対してここでレスするのもなんだけど……。 ff7face.nes 作った者ですが、ソースの利用はご自由にどうぞ。
741 名前:名前は開発中のものです。 mailto:sage [2007/09/14(金) 06:44:26 ID:GkgB00VV] jp.youtube.com/watch?v=syvln8fzYg4 jp.youtube.com/watch?v=eQ-OcS2Gwvk ファミコン凄くね
742 名前:名前は開発中のものです。 [2007/09/17(月) 15:19:52 ID:zecFBltr] ファミコンだってロム側に拡張チップ持たせるとかでリアルタイム3D描画のゲームてのも可能じゃないの?
743 名前:名前は開発中のものです。 mailto:sage [2007/09/17(月) 21:22:51 ID:JdIJFLco] >>741 音楽が良かった、和んだ
744 名前:名前は開発中のものです。 mailto:sage [2007/09/18(火) 00:05:54 ID:A9BXJCl1] >>742 GBだけどレースドライビンが移植されているくらいだから FCでも普通の拡張チップで出来ないことも無いんじゃないかな jp.youtube.com/watch?v=S5MsirFy69M
745 名前:名前は開発中のものです。 [2007/09/18(火) 10:36:04 ID:VJXpuDd7] メガデモは…なんか、卑怯な気もするんだょネー 自分の得意なトコしか観せて無ヒみたいな; このスレかもしれないケド、 エロゲかなんかのOPを移植したムービの方が、 自分は興奮した;
746 名前:名前は開発中のものです。 mailto:sage [2007/09/18(火) 16:04:48 ID:zxYFPgZ6] うわっ馬鹿丸出し
747 名前:名前は開発中のものです。 mailto:sage [2007/09/20(木) 05:13:01 ID:Cd7SwArL] >自分の得意なトコしか観せて無ヒみたいな; 極限まで良いトコの寄せ集め=それがデモだからw >エロゲかなんかのOPを移植したムービの方が、 >自分は興奮した; 違う意味で興奮してたんだよ。貴方は。w
748 名前:エロゲかなんかのOPを移植した人 mailto:sage [2007/09/23(日) 01:20:56 ID:WWSkyNvo] メガデモ:これ作った人すげー! エロゲOP移植:これ作ったやつ馬鹿だろwww
749 名前:名前は開発中のものです。 mailto:sage [2007/09/23(日) 06:46:14 ID:fJ4T43X2] ちょいと疑問に思ったんだけど、 マリオ3のアレ、動くオブジェクトってどうやったの? ファミコンってBGは一枚だけでしょ?
750 名前:名前は開発中のものです。 mailto:sage [2007/09/23(日) 07:06:56 ID:E0EAA4da] >>749 どれのことやら…
751 名前:名前は開発中のものです。 mailto:sage [2007/09/23(日) 12:58:59 ID:GyXWfQqN] (年くってくるとやたらと代名詞増えるよな)
752 名前:名前は開発中のものです。 mailto:sage [2007/09/23(日) 16:50:30 ID:+p8do2jq] >>749 画像バンクすりかえアニメーション
753 名前:名前は開発中のものです。 [2007/09/24(月) 11:02:08 ID:n5oz9bKx] NESDEVどうなってる?
754 名前:名前は開発中のものです。 mailto:sage [2007/09/24(月) 20:10:24 ID:YTU/EOqj] >>749 あれはスプライトと言うもので、64枚使える。
755 名前:名前は開発中のものです。 mailto:sage [2007/09/25(火) 17:39:16 ID:TqbfhCga] ゼルダの伝説の縦スクロールってどうなってんの?
756 名前:名前は開発中のものです。 mailto:sage [2007/09/25(火) 20:25:14 ID:BaS36VCt] >>752 >>754 あれって結局どれのこと?? >>755 ディスクは縦横スクロールの切り替えができたとおもう
757 名前:名前は開発中のものです。 mailto:sage [2007/09/25(火) 20:39:20 ID:TqbfhCga] >>756 やっぱりそうなのか サンキューサンキュー
758 名前:名前は開発中のものです。 mailto:sage [2007/09/25(火) 23:14:47 ID:NsHkjNv/] ドッカン ドッカン ☆ゴガギーン .______ . | | | ∩∩ | | | ∩∩ | | | | | | | | | | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ,,) | | | (・x・ )<おらっ!出てこい、>>749 !! / つ━━"....ロ|ロ . | l |U \___________ 〜( / | | |⊂_ |〜 し'∪ └──┴──┘ ∪
759 名前:名前は開発中のものです。 mailto:sage [2007/09/25(火) 23:20:52 ID:2Bw0KVXn] ゼルダの縦スクロールってどこのこと?
760 名前:名前は開発中のものです。 mailto:sage [2007/09/26(水) 01:35:58 ID:MPZZdALw] >>759 縦方向にマップ切り替える時も画面上部のエリアがそのまま残ってるからさ どうなってんのかな?と思ったんだ
761 名前:名前は開発中のものです。 mailto:sage [2007/09/26(水) 13:47:50 ID:VaRvmNuT] >>756 だとすると、ROM版はどうなるんだい?
762 名前:名前は開発中のものです。 [2007/09/26(水) 21:32:09 ID:7MNB23As] ロム版は静止画になってたよ
763 名前:756 mailto:sage [2007/09/26(水) 23:31:32 ID:TaMm3Csb] >>761 ROM版のマッパーであるMMC1にも実はH/Vミラーリング切り替え機能がついている たしかMMC3にもついてる
764 名前:名前は開発中のものです。 mailto:sage [2007/09/27(木) 02:16:06 ID:etK1Tkui] ミラーリングのH/V切替はメジャーなマッパーにはほとんどついてるでしょ。 アドレス線線一本つなぎかえるだけなんだからな。 実装しない方がおかしい。
765 名前:761 mailto:sage [2007/09/27(木) 02:45:58 ID:2fAlXZFD] 回答ありがとう。 でも、、、君たちの言っている言葉の意味が分からない。 このスレ読んでると何となく楽しいから興味本位で聞いてみただけなんだ。 ごめんね、、、そしてありがとう。
766 名前:名前は開発中のものです。 mailto:sage [2007/09/27(木) 03:54:38 ID:yk8sCyvW] ゼルダのスクロールがどんなだったかは覚えてないが、 ミラーリングじゃなくて、IRQの話なんじゃないの?
767 名前:759 mailto:sage [2007/09/27(木) 16:35:32 ID:jXU565hn] >>760 サンクス。 >縦方向にマップ切り替える時も画面上部のエリアがそのまま残って 町とかダンジョンのように水平スクロールの場面からフィールドに出たときのことか。 ミラーリング切り替えた後フィールドじゃ画面外の部分を1/4位は書き換えてないので残ってるようだね。
768 名前:名前は開発中のものです。 mailto:sage [2007/09/27(木) 18:04:31 ID:uF6GajD5] >>760 V-Sync割り込み?
769 名前:名前は開発中のものです。 mailto:sage [2007/09/27(木) 23:20:42 ID:etcx5xT4] >>760 の疑問自体は>>766 のいうIRQもしくは0番スプライトを使った BG描画位置を途中で切り替えるテクニックで実現している H/V切り替えは>>760 の疑問には直接的な関係はまったくないです ただゼルダはマップ切り替え時に切り替え先のマップを全部描画してから スクロールするというあまり見かけない手順を踏んでいるのでH/V切り替えが必要になる なので方法を変えればH/V切り替えがなくても縦スクロール自体は実現できるはずです >>767 それはリンクの冒険じゃないかな?
770 名前:名前は開発中のものです。 mailto:sage [2007/09/28(金) 07:22:01 ID:vZWV6RlS] なるほど 垂直/水平ミラーどちらを選んでも、縦横両方のラスタースクロールは可能なのか 勉強になるなあ
771 名前:759 mailto:sage [2007/09/28(金) 15:57:39 ID:8fypBKhz] >>769 >それはリンクの冒険じゃないかな? すいません。リンクの冒険でした。 ゼルダの伝説とリンクの冒険は別物だったのか。 リンクの冒険はゼルダの伝説の副題かと思ってた。
772 名前:名前は開発中のものです。 mailto:sage [2007/09/30(日) 22:40:23 ID:4zpMsZUy] BGの書き込みでちらつきが出るのは、いっきに書き込み過ぎて処理が間に合ってないってことなのかな? 勝手にスクロールしたりするし、よくわからんなー
773 名前:名前は開発中のものです。 mailto:sage [2007/09/30(日) 22:58:20 ID:ctrzx47m] >>772 >>735 あたりを参考にしてはどうだろうか?
774 名前:名前は開発中のものです。 mailto:sage [2007/09/30(日) 23:34:14 ID:4zpMsZUy] >>773 おお、ごめん このスレずっと読んでたはずなのに>>735 はスルーしてたわ BGは少しずつ転送するものなのね
775 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 04:23:19 ID:UcTvIsDj] 初代ゼルダのフィールドの画面切り替えの縦スクってドット単位だったかな? キャラ単位で直接書き換えてなかったっけ。8ドットスクロールしてる。 横スクロールと、オープニング・アイテム画面への切り替え、の縦スクロールはドット単位だけど。 アイテム画面は、縦方向なら、スクロール時に画面外でBGを逐一書き換えれば見掛け上、残っているように見せることは可能だし。 初代ゼルダはさておいて、 両方向ともスクロールする場合、固定画面のゲージは画面の下に持って行ってるソフトが多かったかな。 水平ミラーにして、ゲージは縦スクロールの都度にBG内を逃げ回ってるのかな。 画面の横端はスクロールの書き換えで、ちらついてるし。
776 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 06:19:19 ID:UcTvIsDj] そういえばグラIIはボス戦でゲージが消えてたな。
777 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 22:38:06 ID:UcTvIsDj] virtualnesで見たらゼルダは切り替えてる。
778 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 10:15:38 ID:o0+OaF/m] ほしゆ
779 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 15:52:00 ID:NkvtGXk8] アセンブラの勉強もかねて、 ファミコンソフト開発をやろうかなとか思いました。
780 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 16:04:58 ID:az0lrOpc] 6502のアセンブラ覚えてもほとんど役立たないとは思うけど 面白いとは思うので頑張ってください
781 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 16:07:27 ID:NkvtGXk8] とりあえず、ギコ猫します。
782 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 16:15:59 ID:NkvtGXk8] >>780 ありがとうございます。 いつも、Cとかのメモリ周りの処理でうなされるので アセンブラで簡単なアルゴリズムとか理解できるようになれば、 今後の助けにもなるかなぁとかな感じです。
783 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 19:57:24 ID:NkvtGXk8] スプライトのパレットが変わらなくて、 上下が左右が入れ替わると思ったら、 bit0-7の桁を逆に見てたorz
784 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 21:07:43 ID:+2rF8fti] ファミリーベーシックのリファレンスってどっかにありませんか?
785 名前:名前は開発中のものです。 mailto:sage [2007/11/11(日) 22:32:16 ID:QaWoRbrs] ヤフオク、ハードオフ
786 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 02:12:25 ID:ixnafG3i] ギコ猫で勉強してるんだけど なぜかアセンブルするときセグメンテーションエラーが出る。 別のPCだと何ら問題なくできる。 VC++入れてるせいかな?
787 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 07:25:08 ID:tyRfI0nu] 俺もVC++入ってるけどそのエラーは出たことないな NESASMのソース読んで確認してみたらどうかな?
788 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 07:32:28 ID:kNQWsH/p] 1) exeファイル破損 2) HDD壊れてる 3) 64bit Windows 4) 気のせい どれかだと予想...
789 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 19:26:16 ID:ixnafG3i] >>787-788 レスありがとうございます。 VC++は関係ないですか。 サイト上のソースを直接試してみてもダメでした。 ご指摘いただいた点も4)を除けば、問題ありませんです。 色々と検証してみたのですが、正常にアセンブルできるPCでは、コマンドプロンプトで $ nesasm test.asm と実行すると、コマンドプロンプト上の文字が一旦クリアされてから Microsoft (R) KKCFUNC バージョン 1.10 Copyright (C) Microsoft Corp. 1991,1993. All rights reserved. KKCFUNCが組み込まれました. マイクロソフトかな漢字変換 バージョン 2.51 (C)Copyright Microsoft Corp. 1992-1993 NES Assembler (v2.0) と表示されます。 しかしうまくいかない方のPCでは、文字がクリアされないまま NES Assembler (v2.0) Exiting due to signal SIGSEGV …略 となってしまいます。 $ nesasm nofile.asm と存在しないファイルを引数に実行すると、上記のようなKKCFUNC云々が表示され その後、inputファイルが存在しない旨エラーが出ます。 色々調べてみたけどよくわかりませんでした。 コマンドプロンプトがおかしいような気がしないでもないんだが…
790 名前:名前は開発中のものです。 mailto:sage [2007/11/22(木) 22:53:48 ID:kNQWsH/p] >>789 なんとなく、command.comで動かしてるんで無い? cmd.exeで動かしたらどうなるだろ?
791 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 01:29:11 ID:DgWJFham] cmdでやってました。 command.comで試してみたけど、やはり同じエラー。 小出しになってしまい申し訳ないんですが、エラーは以下のようなものです。 NES Assembler (v2.0) Exiting due to signal SIGSEGV General Protection Fault at eip=00009a10 eax=fffd0000 ebx=00000000 ecx=000002af edx=fffd0000 esi=00004000 edi=0000000b ebp=002615cc esp=002615bc program=D:\NESASM\NESASM.EXE cs: sel=01a7 base=02af0000 limit=7d4fffff ds: sel=01af base=02af0000 limit=7d4fffff es: sel=01af base=02af0000 limit=7d4fffff fs: sel=017f base=0002eb10 limit=0000ffff gs: sel=01bf base=00000000 limit=7ffeffff ss: sel=01af base=02af0000 limit=7d4fffff Call frame traceback EIPs: 0x00009a10 0x0000998d 0x0000cc6c 0x0000a456 0x00004c7e 0x0000443d 0x000094fa
792 名前:786 mailto:sage [2007/11/23(金) 01:35:01 ID:DgWJFham] 連投すみません。 問題なくアセンブリできるPCで、command.comを試してみたら >>791 と同じエラーが出ました。 ということはcmdがなぜかcommand.comになってしまう…ということだろうか…
793 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 09:58:21 ID:O5K5+zHz] PCやOSがどんなのかもわからんけど、よくわからんねw もしかしたらcygwin版なのか? これに添付してあるNESASMなら動くかも。 どうやらこれはVisualC++とかでコンパイルされたもののようなんで。 takamatsu.cool.ne.jp/dutycycle/ppmck.html
794 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 10:35:44 ID:z/08mCDz] OSがNESASMの実行を不許可にしているとか なんにせよ作る人が増えるのは嬉しいねー
795 名前:786 mailto:sage [2007/11/23(金) 15:22:47 ID:DgWJFham] >>793-794 レスありがとうざいます。 WinXPsp2上で行っています。 Cygwinはインストしてるけど使ってませんw そちらのサイトから落としたもので見事アセンブルできました。 こんなにあっさり動作してしまうとは… なぜ今までのはダメだったかわかりません。 OSが実行を妨げてたということもあるんですかね〜
796 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 15:38:42 ID:1vTEkJAZ] 最近ゲームセンターCXってゲームで ファミコンゲームの良さを再確認したとこなんだけど、 アセンブラの開発効率を考えたら躊躇してしまう・・・ まあCぐらいならシャレになるけど、アセンブラだと・・・ Cのコンパイラはあるみたいだけど、調べても使い方が よくわからんし。そこらへんを詳しく解説してるサイトってない? 当時の開発者もCでやってたんじゃないのかな?
797 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 17:07:35 ID:je64UXYk] Cでまともに開発できるんならみんなやってますがな
798 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 18:18:10 ID:bcCNCl00] >>769 普通のCは一時変数をスタックに入れるけど、ファミコンのスタックは正直使えない。 mov eax [esp - 4] みたいにスタックポインタを利用することができないから。 ファミコンのCはそこらへんどうなってるんだろう?どちらにしろファミコンでCは使えなさそう。
799 名前:名前は開発中のものです。 mailto:sage [2007/11/23(金) 20:58:35 ID:TC3s5J9X] 0ページインダイレクト利用するにきまってるだろ ちみは素人か
800 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 01:11:40 ID:3IffJmji] ゼロページインダイレクト 処理対象データをメモリ間接で示す方法です。オペランドには、対象アドレスを格納 したゼロページアドレスを記述し、メモリに2 バイトの対象アドレスを格納します。 documentation.renesas.com/jpn/products/tool/rjj10j1285_m3xxxxtpac_u.pdf
801 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 01:15:22 ID:W176UE3O] BRKの使いどころがわからない
802 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 01:21:12 ID:WabE+qEc] BITも使いどころがわからない
803 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 01:42:58 ID:rlJAJiPe] >>796 Cコンパイラを使ってたのはごく一部(光栄だけかも?)位なもんですよ。 >>798 使い方さえ間違えなければ問題ないかと。 PCで使うような感じでは組めないだろうけどね。 >>801 あまり使われてないけど、よく使うルーチン(アドレス計算とか)を 少ないバイト数で呼び出すために使ったりとか。 Z80で言う所のRST xxHか。 >>802 bit7とbit6はAレジスタに無関係にオペランドのデータと比較するから、 データを工夫して、bit7とbit6に何かしらのフラグを詰め込んで判定に 使うとか…と思ったが、 LDA $?? BMI どこか AND #$40 BNE どこか でもあんまかわらんなw あと参考になりそうなとこ。cc65とか使ったサンプルあるっぽ。 ttp://hp.vector.co.jp/authors/VA042397/nes/index.html
804 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 03:07:02 ID:W176UE3O] >>803 BRKは結局アドレスを指定しないで良いJSRみたいなもんか BITは計算結果を後で二つのフラグに応じて加工したい場合に一応使えるかな
805 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 06:11:23 ID:rlJAJiPe] >>804 BRKはドラクエIIIあたりで多用されてたっぽい。 IRQも併用だとフラグ判別が面倒だけど。 BITで思い出したので追加 アキュムレータを破壊しないという利点がある。 ディスクシステムBIOSの割り込みルーチンで使われてたの思い出した。
806 名前:名前は開発中のものです。 mailto:sage [2007/11/24(土) 12:01:32 ID:WabE+qEc] >803-805 なるほど。 BITは即値が使えないんだよね。 AND取る時はいつも即値でやってるから使い道が無いように感じてたのかも。 BITに置き換えられる部分がないか、以前のソース見直してみる。
807 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 05:59:20 ID:DC5FGIeU] 唐突ですけど、ファミコンでスプライトダブラをやってたソフトってありますか? まあやるにしても標準の2Kのメモリでは増やしたスプライトの情報を確保するのがそもそも無理そうですけど… コナミの後期ゲームではもしかしてやっていたんでしょうか?
808 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 11:34:30 ID:4sJ+GQXo] 多分無いと思うけど。
809 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 19:59:06 ID:DC5FGIeU] 烈火とかグラIIをデバッガで見た感じだとNMI割り込みにつきDMA転送が一回だからやってなさそう Y軸に関してソートするのはファミコンじゃやっぱり無理か…メモリも少ないし MSXではやっていたのがあったらしいんですけどね
810 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 22:28:11 ID:4sJ+GQXo] 表示中にDMAしたら動かなくなった記憶があるw
811 名前:名前は開発中のものです。 mailto:sage [2007/12/02(日) 23:16:25 ID:/I6PKiKL] シューティングならやりくり次第では、メモリに結構余裕があると思うよ。 1フレーム間に2回以上もDMA転送したことないから、 スプライトダブラが可能かどうかはわからないけど。
812 名前:名前は開発中のものです。 mailto:sage [2007/12/24(月) 02:10:53 ID:WDReFZ3W] >>809 烈火でさえやってないのね。なら、国内はないだろう 可能性あるとしたら、海外ものか・・
813 名前:名前は開発中のものです。 mailto:sage [2007/12/25(火) 01:33:19 ID:a+dDmNqn] グラ2はやってるって噂だったが、嘘か?
814 名前:名前は開発中のものです。 [2007/12/31(月) 01:19:19 ID:kYbV1FFj] ギコファミで勉強中なんだが(第九章スプライトDMAまで理解できた) スプライトを移動させるときにマリオとかみたくアニメーションさせる方法を 教えてください。
815 名前:名前は開発中のものです。 mailto:sage [2007/12/31(月) 03:03:50 ID:MbVyzQhq] >>814 スプライトDMAする内容を時間経過で変えていけばおk
816 名前:814 [2007/12/31(月) 03:08:48 ID:kYbV1FFj] >>815 時間を取得する方法とは? やはりゼロページに適当に変数作ってひたすらインクリメントしてオーバーフロー を起こした時などのようにやるのでしょうか?
817 名前:名前は開発中のものです。 mailto:sage [2007/12/31(月) 03:26:12 ID:73X1rpDN] 10章読みなさい 答えにたどり着けるはず
818 名前:814 [2008/01/01(火) 04:52:01 ID:knyurTO2] 自力で解決したZE★
819 名前:名前は開発中のものです。 mailto:sage [2008/01/01(火) 06:13:28 ID:hvcEjHSr] ほら解決したろ。よかったな。 タイミングを計るには Vblank割り込みを使う 0番スプライトヒットをポーリングする 使った命令から総サイクル数を計算しておく の三つから好きなものを選べばいいわけだ。
820 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 05:45:47 ID:4pGCNPYq] 領域の境界で消えまくりそう。処理がまにあえばいいけど・・ 画面を横に四つに切る、四つの領域(バッファ)を考えて そこへ32枚ずつ表示を考え、最大128枚の表示をめざす。 バッファに入らなかったスプライトは残念ながら表示されない。 表示するスプライトのうち、Y=0..59ドットのものはAのバッファへ。 60..119をB、120..179をC、180..239をDへ設定。 四つの領域である程度分割されたバケツソートの意味合いがある。 垂直回帰線割り込み終了までに四つの領域それぞれでYで ソートをすませておく 画面の0〜、60〜、120〜、180〜でラスター割り込みで、 それぞれ転送する いっぺんに32枚のDMA転送は間に合わないので、 ラスター割り込みを何度もかけて数バイトずつ転送していく。 Yでソートされているので、ラスターを何回か経過したとして もちらつくことは少ないと考えられる。 ※領域ごとに64枚の処理はどうせ間に合いっこないので 32枚で考えました。メモリの節約も考えています。 それにファミコンのスプライトは8枚ならんだら どのみちちらついてしまいます。 ※ファミコンの場合、ラスター割り込みではなく、 フラグを監視するのでしたっけ?知識があいまいです。
821 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 09:18:08 ID:g1ISiWA7] 何の話?
822 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 10:08:36 ID:KdyvFZW6] スプライトタブラーだろ ゲームカセットにハード入れりゃいいのに
823 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 21:50:41 ID:DGu4+3+B] >>822 たとえばマッパー4?
824 名前:814 [2008/01/10(木) 17:03:00 ID:OjgtnRWb] またまた質問があるのですが、ファミコンで乱数を使う場合どのようにすればいいのでしょう? I/Oの0x400Eを使うっぽいと思うんですがだれか。
825 名前:名前は開発中のものです。 mailto:sage [2008/01/10(木) 17:33:31 ID:N1q/jj2z] それ音声用だから値は取得できない 擬似乱数でググって好きなの使えや
826 名前:814 mailto:sage [2008/01/11(金) 03:34:55 ID:R/XuHjLJ] 自力で解決したZE★
827 名前:名前は開発中のものです。 [2008/01/12(土) 21:07:38 ID:Te3dHOGv] すみません、ファミコンプログラムを新しく始めようと思ったのですが、 すずめもギコ猫も閉鎖のようで困っています。 どこかよい入門サイトはないでしょうか?
828 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 22:08:20 ID:YCUe1kyM] 急いでギコ猫開いたけど、驚かせやがってまだあるじゃん ttp://gikofami.fc2web.com/
829 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 22:52:50 ID:WVC5D6DD] そうやって人にググらせて自分でググる手間を省く ググググ詐欺だから気をつけろよ
830 名前:名前は開発中のものです。 [2008/01/13(日) 19:26:35 ID:C14nC1gP] 電源を入れた一瞬だけBGが表示されてからすぐスプライトだけになってしまう のはなぜ?
831 名前:名前は開発中のものです。 mailto:sage [2008/01/16(水) 23:15:56 ID:4fd74qnV] MMC3のNESファイルのプログラムが始まるのって何バイト目なのでしょうか? 6502の情報はあってもNESファイル自体のフォーマットってみつからない...
832 名前:名前は開発中のものです。 mailto:sage [2008/01/16(水) 23:16:28 ID:n7RHHgvL] ヘッダでぐぐれ