- 1 名前:名前は開発中のものです。 [2008/06/23(月) 17:38:05 ID:z53SrIuZ]
- 前スレ、何もしねぇカスどもの集まりだったよな。
でも900すぎてホンモノが現れたみたいだ。 もう要らねぇと思ってたけど、そいつらの為に立てたよ。
- 913 名前:名前は開発中のものです。 [2012/02/11(土) 16:40:46.31 ID:XH8T0Uvm]
- 質問失礼します。
現在シューティングゲームを作ってみているのですが、BGの当たり判定で止まっています。 @ A B C とブロックがあった場合、スプライトの弾がぶつかったら消滅というコードをくんでいるのですが、 スプライトと違い座標を用いた方法以外で、衝突判定を見る方法はないものでしょうか ブロックと弾にカウンタを置いて、弾のカウンタとand演算等で分岐をとも思ったのですが、 ブロックの数によっては汎用性がなさそうなので、なにかあれば教えて下さい
- 914 名前:名前は開発中のものです。 mailto:sage [2012/02/11(土) 19:08:00.50 ID:DMNaSAjw]
- >>913
座標を使う以外にやりようはない。 基本は当たり判定を取りたい座標をブロックのサイズで除算。 除算をまじめにやるとしょぼいCPUでは遅いので、ブロックのサイズを 2^nにしてシフトで出来るようにする。 すり抜け対策とかドット単位当たり判定とかは説明がめんどいので 考えてくださいw
- 915 名前:名前は開発中のものです。 [2012/02/11(土) 23:11:04.33 ID:XH8T0Uvm]
- >>914
あぁなるほど徐算でしたか、感覚としては因数分解みたいな感じですね ありがとうございます。 一応確認なんですが、私は当たり判定ではcmpによるネガティブフラグで判定をしていますが、その調子で大丈夫ですよね
- 916 名前:名前は開発中のものです。 mailto:sage [2012/02/11(土) 23:29:41.07 ID:bvbq0wS4]
- 実際に作って確かめてみることが一番でしょう
何事も試行錯誤です
- 917 名前:名前は開発中のものです。 mailto:sage [2012/02/11(土) 23:38:43.03 ID:qaTR3LgQ]
- ずいぶんマニュアル人間だな ゆとり教育の弊害か
- 918 名前:名前は開発中のものです。 [2012/02/12(日) 00:56:09.91 ID:gUUDEgxL]
- >>917
インデックスレジスタを用いた擬似的乗徐算を乗徐算と意識していなかったから と言い訳しておきます
- 919 名前:名前は開発中のものです。 mailto:sage [2012/02/12(日) 02:17:00.92 ID:/ainxqCj]
- 胸張って言い訳する神経が理解できませんが逆ギレみたいなものなのでしょうか?
- 920 名前:名前は開発中のものです。 mailto:sage [2012/02/12(日) 05:02:51.58 ID:E+fNx3cK]
- ちと気になったんだけど除算の除の漢字はわざと間違ってるんかな?
- 921 名前:名前は開発中のものです。 mailto:sage [2012/02/12(日) 09:07:11.43 ID:aKdW3vVV]
- 既に知っているやつが居ないかどうか確かめるのはいいことだ。
各人が車輪の再発見をしなきゃいけないなんて無駄もいいとこ。
- 922 名前:名前は開発中のものです。 mailto:sage [2012/02/13(月) 00:48:33.85 ID:lzhnxno4]
- 持ち歌がまたひとつ消えてしまった遠藤
- 923 名前:名前は開発中のものです。 mailto:sage [2012/02/13(月) 01:49:33.22 ID:+XSjeNKo]
- >>912
そういやGBのゼルダがそのやり方っぽいな というかもしかしてGBはみんなそのやり方なのかな GBでカタカナに制限があるゲームって見ない気がする
- 924 名前:名前は開発中のものです。 mailto:sage [2012/02/13(月) 05:57:30.53 ID:P3L21QRY]
- >>923
GBはファミコンでいうCHR-RAMしかないからじゃないかな カートリッジにCPU側のバスしか出ていない設計だったかと
- 925 名前:名前は開発中のものです。 mailto:sage [2012/02/18(土) 10:25:42.97 ID:YR3CrAXp]
- >>879のろだ3月で終了だぞ
- 926 名前:名前は開発中のものです。 mailto:sage [2012/02/18(土) 23:48:26.97 ID:E8fj6J+Z]
- >>923
キャラクタをROMとして提供したゲーム機はファミコンくらいでしょう。 任天堂ハードにおいても。他ハードは、VRAMに展開する方式だし。
- 927 名前:名前は開発中のものです。 mailto:sage [2012/02/19(日) 01:38:31.81 ID:up1P9huo]
- あとはネオジオくらいかな
家庭用って言っていいのかわからんけど
- 928 名前:名前は開発中のものです。 mailto:sage [2012/02/19(日) 16:42:10.96 ID:HsfNQTml]
- ラスタスクロール割り込みでCHR-ROMバンク切り替えをして256パターン
以上を表示できる仕組み登場したことはおもしろいですわ。ファミコンが 発売された当初は想定されていないことだったでしょうけど。これがあった から、10近くは持ったのでは?と思っとりますよ。
- 929 名前:名前は開発中のものです。 mailto:sage [2012/02/19(日) 18:20:39.95 ID:h5opwI+K]
- 通信アダプタでもその仕組みはあったよね。
アダプタに16KBのCHR-RAMと漢字ROM(第一水準?)を搭載したおかげで、 標準で日本語表示と4色のフルグラフィック表示に対応してた。 (バンク切り替えのタイミング管理の方法は知らないけど、 多分ハードウェア側で任意のラインでIRQ生成する機能があったと予想) ゲームソフトがでなかったのが非常に悔やまれる・・・ ディスクシステムを使える機能(?)も結局使われてないし・・・ これを見たとき、ファミコンとディスクシステムとキーボードと通信アダプタが 合体すれば、どんな楽しみ方ができるだろうと妄想してたよ
- 930 名前:名前は開発中のものです。 mailto:sage [2012/02/19(日) 20:55:13.09 ID:U6dbhp2V]
- ラスターでCHRバンク切り替えるだけだと1ラインごとに256パターンしか
出せない気がするんだが、それでどうやって漢字表示してたんだろう 結局キャラクタ自体も書き換える必要があるのかな
- 931 名前:名前は開発中のものです。 mailto:sage [2012/02/19(日) 21:53:51.47 ID:h5opwI+K]
- ファミコンの解像度は256x240で、
1パターンは8x8ドットで構成されるのだから、 ファミコンの一つの画面上に出せるパターン数は 32(横に並ぶパターン)x30(縦に並ぶパターン)=960パターンとなる。 ファミコンのPPUが一度に参照できるキャラクタは256個までなので、 画面描画中に3回バンク切り替え等の処理をする必要がある。 (大体32、64、128ライン目描画後のH-BLANK時) 漢字自体は、CPU空間に存在するROM・RAMからデータを読み、 I/Oを通して、PPU空間のRAMに書き込む。
- 932 名前:名前は開発中のものです。 mailto:sage [2012/02/19(日) 22:06:17.26 ID:yDN7dT+T]
- 画面全体を重複なく別々のキャラクタで敷き詰めておいて
定義側を書き換えて表示させるってことか
- 933 名前:名前は開発中のものです。 mailto:sage [2012/02/19(日) 23:12:49.32 ID:7lUDE9va]
- 最近プログラマじゃない人種が居ついてるな。
- 934 名前:名前は開発中のものです。 mailto:sage [2012/02/20(月) 00:01:31.48 ID:jCs3Lday]
- お前の言うプログラマってのがデバッガすら使えないで動きませんって言ってるレベルの奴なら
そうなんじゃね?
- 935 名前:名前は開発中のものです。 [2012/02/23(木) 22:29:16.92 ID:9OQqfVZC]
- 任天堂が大嫌いで反社会的な行為としてROM基板含めて自作ファミコンソフト作ってるわ
- 936 名前:名前は開発中のものです。 mailto:sage [2012/02/24(金) 23:13:20.04 ID:aLx23JaI]
- 決死隊ですか
- 937 名前:名前は開発中のものです。 mailto:sage [2012/02/25(土) 00:46:14.68 ID:0truvwjh]
- >>929
ラグランジュポイントも8K以上のCHR-RAMを積んでいたのかと考えている あの画像と、日本語フォントは512パターンで生成できなそう。VRC7はMMC5 の如く、Ex-RAMを使って2バイト指定でBGパターンを指定できるみたいなこと はできなそうだし
- 938 名前:名前は開発中のものです。 mailto:sage [2012/02/25(土) 19:17:11.50 ID:Abu3C86F]
- ラグランジュポイントは普通の8KiBのCHR-RAM仕様だよ。
文字関係(数字、ステータス表示に使う最小限の英字、ひらがなとカタカナを全文字、その他少々)で、都合約2KiB使ってる。 あとの2KiBが、マップとかのBG側のグラフィック用だけど、不足する場合でも、文字を置いてあるバンクは基本的に温存。 そのかわりスプライトのパターンを2KiBしか使わない。 それで浮かせたCHR-RAM領域を、バンク切り替えでBG側に持ってきて間に合わせてるだけ。 ヴィジュアルシーンのグラフィックとかは、デザインや演出上の工夫で、技術的に特に変わったことはやってない。
- 939 名前:938 mailto:sage [2012/02/25(土) 20:03:31.39 ID:Abu3C86F]
- 補足
当然だけど、常に>>938みたいにスプライトのパターンをケチって間借してるわけじゃなく、 普通にBGとスプライトで4KiBずつ分けあって、単に画面が暗転した際にパタンテーブルを書き換えるとか、 平凡にやりくりしてる状況の方がむしろ大半なので念のため。
- 940 名前:名前は開発中のものです。 mailto:sage [2012/02/26(日) 00:39:33.07 ID:US8Vrh37]
- >>938
解説サンクスなり 職人芸だったわけね
- 941 名前:名前は開発中のものです。 [2012/02/27(月) 17:29:23.40 ID:d2Rr2gFY]
- loda.jp/2a03/?id=5
上は当たり判定で、スプライトの座標をタイルに変換させる。でもたまにルーチンで誤変換起こしてしまってる デバッグしてもよく分からない 原因すらわからねぇ
- 942 名前:名前は開発中のものです。 mailto:sage [2012/02/28(火) 11:32:31.06 ID:FLxgWkDL]
- 必要もなくモジュール内でJSR/RTSを多用してクロック浪費してるプログラム見ると、無性に書き直したくなってくる。
- 943 名前:名前は開発中のものです。 mailto:sage [2012/02/28(火) 13:11:12.77 ID:DEMYa7pD]
- モジュール化
- 944 名前:名前は開発中のものです。 mailto:sage [2012/02/28(火) 21:05:59.53 ID:FLxgWkDL]
- 変換じゃなくて壊す側がおかしくないか?
- 945 名前:名前は開発中のものです。 mailto:sage [2012/02/28(火) 22:42:52.32 ID:ac5+J/w/]
- >>941
・CrashBlock_Routine:でbcs, bccを使ってるのが敗因。 0<= 弾の中心座標 <8 の論理を構築できてない。 bpl, bmiを使った方が大小関係が直感的に分りやすい。 その際、lda <Bullet_Y_Center → cmp Block001y,x のように不等式で挟まれる側を先にレジスタにロードした方がやりやすいはず。 またadc, sbcと違い、cmp系の前にはclcは必要ない。 ・ゲームループがまずく、infinityLoop:内のルーチンの実行回数のフレームレートが一定でない、不安定動作のおそれあり。以下のループが無難。 __ここでNMI有効にせよ__ infinityLoop: ;VBlankを待つ間は無限ループ jmp infinityLoop mainLoop: ;メインループ __ここでNMIを無効にせよ__ ;BGとスプライトの表示をOFF lda #%00000110 sta $2001 lda #$3 ;スプライト描画のためのDMA転送 sta $4014 jsr BlockDisappear ;ブロック消滅;$2006-$2007への書き込みはNMI直後に、VBlankが終わる前になるべく早めに jsr SetScroll ;スクロールセットもVBlankが終わる前になるべく早めに ;BGとスプライトの表示をON lda #%00011110 sta $2001 jsr PadGet ;パッド入力チェック jsr NormalBullet ;弾丸発射 jsr PlayerSpriteMove ;機体の移動 jsr CrashBlock ;ブロックと弾丸の当たり判定 jsr BulletPositionConvert ;弾丸の座標をタイル番号に変換 __ここでNMI有効にせよ__ NMIEnd: rti
- 946 名前:名前は開発中のものです。 [2012/03/22(木) 16:43:43.53 ID:NBlMXw6A]
- 簡単にROM作る方法ない?
- 947 名前:名前は開発中のものです。 [2012/03/22(木) 16:44:38.63 ID:NBlMXw6A]
- 簡単にROM作る方法ない?
- 948 名前:名前は開発中のものです。 mailto:sage [2012/03/23(金) 05:49:38.45 ID:EKmbrKmy]
- それは物理的にかい?
- 949 名前:名前は開発中のものです。 [2012/03/24(土) 23:29:09.53 ID:pi7aftbx]
- そう言う感じ
- 950 名前:名前は開発中のものです。 [2012/03/25(日) 01:14:37.28 ID:c32Eu5AG]
- 形式判明してるカセット分解して、ROM引っこ抜いて、代わりにソケット取り付けて、ROMライタで焼いた自作ROMを差し込む。
という話じゃなくて?
- 951 名前:名前は開発中のものです。 [2012/03/25(日) 17:19:57.67 ID:W0Y8frQC]
- 誰かいますか?
ttp://ll.la/Rv~l ファミコンプログラミングがやりたくて、 試しにN106で全画面表示をやってみたんですが、 G-NESだとうまく表示できなくて…… VirtuaNES、nestopiaだと期待通り動くんですが…… 上のURLにソースコードと、各環境で実行したSSをupしました。 詳しい方、原因とか教えてくれませんか?
- 952 名前:名前は開発中のものです。 mailto:sage [2012/03/25(日) 17:49:36.89 ID:sx4Vwb9x]
- G-NESのエミュレ−トが不完全なだけ
- 953 名前:名前は開発中のものです。 [2012/03/25(日) 23:12:13.63 ID:Ih97tOjy]
- >>947
自作のnesをfdsファイルに変換して、fdsloadrでRAMアダプタに転送したことならある (市販のnesをfdsファイルに変換するのは無理っぽい)
- 954 名前:名前は開発中のものです。 mailto:sage [2012/03/26(月) 21:41:21.79 ID:q32IwSYQ]
- >>951です。
>>952 返信ありがとう。 環境によってIRQカウンタの進み方が微妙に違うっぽいです。 初回にとりあえず1フレーム描画して、IRQカウンタの速度を取得しようと思います。 あと、>>951にupしたコードだと、VBLANK終了待ちに$2002のbit7を見たりしてますが、 これじゃVBLANKの検出ってできないんですね……。 (x,y)=(0,0)にゼロスプライトを置いて、それを見るように変えています。 なかなかむずかしいですね……。
- 955 名前:名前は開発中のものです。 mailto:sage [2012/03/26(月) 23:40:41.01 ID:uRvDMM79]
- 何がしたいのか知らんが実機の挙動が唯一の正解だろ
- 956 名前:名前は開発中のものです。 mailto:sage [2012/03/31(土) 14:42:03.41 ID:upBLiWOt]
- >>337と>>343のzipファイルが正常に解凍できません。
どうやればいいのでしょうか?
- 957 名前:名前は開発中のものです。 mailto:sage [2012/03/31(土) 18:44:20.80 ID:lM09VNG1]
- スレ違い
|

|