ファミコンのプログラム3
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。
2008/06/23(月) 17:38:05ID:z53SrIuZでも900すぎてホンモノが現れたみたいだ。
もう要らねぇと思ってたけど、そいつらの為に立てたよ。
0851名前は開発中のものです。
2012/01/05(木) 01:41:10.97ID:2mwi10x4一応モノはあげてるから私物化しても問題ないんでしょ
まあ、文字通り中身はただのゴミだけどな
0852名前は開発中のものです。
2012/01/05(木) 02:16:08.36ID:uFJ3/4+1低次元な事はやめれ
0853名前は開発中のものです。
2012/01/05(木) 08:37:37.39ID:WUin/CUT0854名前は開発中のものです。
2012/01/07(土) 13:33:43.31ID:/em5qwMG今、作ってるんですけど、どうしてもBank切り替えで止まってしまうんで
参考にしたいんですが
0855名前は開発中のものです。
2012/01/07(土) 23:16:36.56ID:K3N5UYpYnesdevのフォーラムのどっかにあったような気がする
間違えてたらごめん
0856名前は開発中のものです。
2012/01/07(土) 23:28:59.20ID:RM6ST/Gn根本的な把握不足じゃね?
0857名前は開発中のものです。
2012/01/08(日) 01:53:54.48ID:YPL704S7先にMMC1でもやっとけ
$E000-$FFFFだっけ?をチェンジしたときにどういう構成で.asmに書いておかなきゃならないか
から学習しろ
0858名前は開発中のものです。
2012/01/09(月) 15:52:27.67ID:GULFH+5Q4を切り替えると止まるんです
MMC1とMMC3は、もうやりました
0859名前は開発中のものです。
2012/01/09(月) 16:56:10.53ID:MZhJhv7onintendulator
のデバッガを使ってみたら?
0860名前は開発中のものです。
2012/01/09(月) 17:33:04.46ID:86kLMrdo0861名前は開発中のものです。
2012/01/09(月) 17:33:14.97ID:xm0gl07Fまさかこんな初歩的なことじゃないよね。
どんなレベルの人かわからないから一応書くけど、理解してたらスマン。
0862名前は開発中のものです。
2012/01/09(月) 20:41:27.61ID:GULFH+5Qバンクの数え間違いでした
すいません
0863名前は開発中のものです。
2012/01/11(水) 20:25:41.59ID:Gg6iC/E0アセンブラを知ったばかりの初心者の質問にも答えるようなものなのか、
初心者お断りの硬派プログラマーのためのようなものなのか
0864名前は開発中のものです。
2012/01/11(水) 20:47:09.65ID:pf4UDMRr0865名前は開発中のものです。
2012/01/11(水) 20:55:12.62ID:qUiNaTW5これ見たら勉強になるよね?(´・ω・`)
0866名前は開発中のものです。
2012/01/11(水) 20:56:07.14ID:4yQAEVxNそもそも決めたところで出てってくれるのか?
それならID:Gg6iC/E0がいないスレに1票
0867名前は開発中のものです。
2012/01/11(水) 20:58:19.90ID:hCxZnmx9おまえが来なきゃいいだけ
0868名前は開発中のものです。
2012/01/11(水) 21:38:45.95ID:Gg6iC/E0なんか>>794あたりから荒れだして
一体なにするスレなのかよくわからんってだけ
ちょっとイライラしてたのは謝る
0869名前は開発中のものです。
2012/01/11(水) 21:56:52.65ID:fC2GtEJd0870名前は開発中のものです。
2012/01/11(水) 23:25:50.70ID:0rV0JscD最低限試そうともしないで甘えるなら突っぱねる、
それはいつの2ちゃんでも同じ掟だ。
>>794の場合、NesDevの資料読んでないか理解出来てないし、>>797のソース読んでないのが明らかだったから駆除された。
本当に厳しくいうなら「NESエミュのソース読めば?」
6502の命令の挙動が分からないなら、
6502の資料に乗ってるC言語のサンプルを見る、
x86〜i386、CASLUあたりのアセンブラ関連書籍を見る、
本来の最低ラインだぞ。
そこまで努力するのは大変だから、多少は近道ヒントを出すがな。
0871名前は開発中のものです。
2012/01/12(木) 03:08:39.00ID:aD3EcQgIGBのXとかX68kのスターウォーズとかPC-88のシルフィードとか
個人的にワイヤーフレーム表示は未来を感じさせるから好きだ
0872名前は開発中のものです。
2012/01/12(木) 08:16:22.88ID:G1Vk0Vj7好きな割に何もわからないのですね
0873名前は開発中のものです。
2012/01/12(木) 10:01:18.07ID:F//iZi+qNesDevのここからソースが落とせるよ。
これは3D計算をいちいち行っているのだろうか。
>ttp://www.iancgbell.clara.net/nestank/
0874名前は開発中のものです。
2012/01/12(木) 19:19:01.21ID:aD3EcQgIシルフィードのこと?
>>873
おお、すごい
やっぱり作っている人はいたのか
0875名前は開発中のものです。
2012/01/18(水) 13:33:07.73ID:rALhV71b擬似だろうと本物のワイヤフレームだろうと、
「ワイヤフレーム表示を行う」ことに意味があるのがわかっていないようだなw
0876名前は開発中のものです。
2012/01/18(水) 14:25:26.74ID:S1iAJYcz0877名前は開発中のものです。
2012/01/18(水) 18:09:54.33ID:nlChypdB0878名前は開発中のものです。
2012/01/18(水) 19:16:33.44ID:RKcC+g4f0879名前は開発中のものです。
2012/01/19(木) 02:03:03.92ID:L8o1FtXYプログラム用のアプロダを設置してみました・・・。
ぜひ使ってみてください。ここなら、しばらくはサンプルを残せるはずです・・・。
ttp://loda.jp/2a03/
0880名前は開発中のものです。
2012/01/19(木) 23:12:11.02ID:7gbjzQb6このスレにそこまでプログラム等をあげるやつがいるかどうか
0881名前は開発中のものです。
2012/01/19(木) 23:58:29.93ID:hHtCo2gVデバッガすら使えない底辺層が動きませんって持ってくるだけだからなあ
キチンと作ってるなら自分で公開するだろうし
0882名前は開発中のものです。
2012/01/20(金) 00:30:36.45ID:Zdogrnih投稿する勇気とプログラムを作り遂げるやる気があれば怖くない!
0883名前は開発中のものです。
2012/01/21(土) 06:07:37.03ID:9bEmjgCC折角だから、昔ちょっと思いついてデモを作ったらNNNesterJでしかまともに動かなくて
仕様調べるのめんどくさくてそのままにほったらかしてた物を上げてみる。
ttp://loda.jp/2a03/?id=3
8×12の文字が出るだけ。ゴミが出るけど気にしない。
0884名前は開発中のものです。
2012/02/04(土) 01:29:41.51ID:2Pu07awTLODA.JPも終わるみたいだし・・・・
0885名前は開発中のものです。
2012/02/04(土) 22:13:10.59ID:hU4F/CcW0886名前は開発中のものです。
2012/02/05(日) 20:23:38.13ID:frUzAJqn後期の作品だとどの作品見てもフォントが足りないようには
見えなかったんだけど、何か解決策が見つかったの?
0887名前は開発中のものです。
2012/02/05(日) 21:51:04.38ID:7qDYFAai0888名前は開発中のものです。
2012/02/05(日) 22:22:17.86ID:frUzAJqnその辺がよく分からないんだけど
結局グラフィックに割り当てた分、使えなくなるフォントが出るんだから
容量が増えても解決しなくない?
0889名前は開発中のものです。
2012/02/05(日) 22:32:48.60ID:DiMK2dc4平仮名は全部使えるが、カタカナは使い回しまくり。
0890名前は開発中のものです。
2012/02/05(日) 22:59:50.38ID:Ov8gxOpfなんとかなりそうではあるな。
0891名前は開発中のものです。
2012/02/05(日) 23:03:34.78ID:ruANVDhiパターンテーブル見てこないゆとりバカうぜえ
0892名前は開発中のものです。
2012/02/06(月) 00:01:10.58ID:3h/dwAAc0893名前は開発中のものです。
2012/02/06(月) 00:10:28.33ID:3GeCH5V30894名前は開発中のものです。
2012/02/07(火) 00:31:08.33ID:WdJ6o1Xs0895名前は開発中のものです。
2012/02/08(水) 17:08:46.34ID:hRRRpEP8誰もいなくなると思うの
0896名前は開発中のものです。
2012/02/08(水) 20:06:57.16ID:4ST7s66W0897名前は開発中のものです。
2012/02/08(水) 21:24:51.91ID:4qeAEpGeいまのところそれが若年層に多く見られるってだけ
まともな奴だっているだろ?いないの?
0898名前は開発中のものです。
2012/02/08(水) 22:55:49.87ID:8Q9CDJtMヒント教えてもらっても、礼をいうどころか、こうやって捨て台詞吐いて勉強をやめるのがゆとり。
0899名前は開発中のものです。
2012/02/08(水) 23:14:06.21ID:gpqJUScRヒントどころかまるで間違った発言がか?www
こうやって自分が間違っていることにすら気付かないで
偉そうに勘違いしているのがゆとり。
0900名前は開発中のものです。
2012/02/08(水) 23:20:34.86ID:Y8a3Hkms0901名前は開発中のものです。
2012/02/09(木) 00:29:33.61ID:/kEIoADq0902名前は開発中のものです。
2012/02/09(木) 17:43:44.55ID:VhURgzOjと思っていたが、ギコ猫さんのソースを少し改造したやつで
lda #$20
sta $2006
lda #$00
sta $2006
lda #$01 ; 1番(レンガ)
; 120*8=960回出力する
ldx #120 ; Xレジスタ初期化
ldy #8 ; Yレジスタ初期化
.loadNametable2
sta $2007 ; $2007に書き込む
dex
bne .loadNametable2
ldx #112 ; Xレジスタ初期化
dey
bne .loadNametable2
とやれば出来ることが分かった。
よく考えればC言語で2重ループで掛け算の計算できるから当たり前といえば当たり前だが
0903名前は開発中のものです。
2012/02/09(木) 17:51:31.17ID:VhURgzOj0904名前は開発中のものです。
2012/02/09(木) 23:22:19.98ID:XoK1fOva>>後期の作品だとどの作品
後期ってドラクエV、Wのこと意図してるの?
ドラクエだけの話なら、TだけがCHRがROMで、U,V,WはCHRはRAMなんだけど。
>>フォントが足りないようには 見えなかったんだけど
IからWでカタカナが入れ替わったり多少の変更があるけど、
フォントとウインドウのパーツ数の合計に差はない。
エミュやYY-CHRでパターンテーブル見てない奴の勝手な感想。
ファミコン後期って言いたかったのかな?
どちらかに当てはめれば>>887 >>889 >>890 >>891 >>892全部正解
ということで質問自体がおかしい。
>>902
初歩過ぎる、ミスって904回になってる、日記乙
最近この辺の板、スマホのバカ発見器のバカ増えてる?こんなの立てちゃったり
http://toro.2ch.net/test/read.cgi/tech/1328227395/
0905名前は開発中のものです。
2012/02/09(木) 23:46:22.24ID:aYrAEr2kお前も相当馬鹿なんだな
少なくとも>>887は正解ではない
>>889が最初の正解
なんでこんなレベルが低いのばかり住み着いちゃったんだか
0906名前は開発中のものです。
2012/02/09(木) 23:51:41.58ID:EYsae1tP0907名前は開発中のものです。
2012/02/10(金) 00:00:58.29ID:kmTaVqDA0908名前は開発中のものです。
2012/02/10(金) 00:07:48.56ID:c+T5Rrwm町中とかウインドウ方式だとそもそもライン単位では無理
0909名前は開発中のものです。
2012/02/10(金) 09:50:24.25ID:T98mZ9CI腹いせだよ、腹いせ
0910名前は開発中のものです。
2012/02/10(金) 23:56:20.92ID:Bkz01ci5解決したとは読み取れないように書いたと思うんだが。
MMC5のデカいフォントのゲームでは
「容量が解決」も間違ってはいない。
0911名前は開発中のものです。
2012/02/11(土) 03:02:16.61ID:DMNaSAjwもっと簡単に
sta $2007
をいくつか並べのもアリだよ
0912名前は開発中のものです。
2012/02/11(土) 03:31:32.37ID:8uSTaWoM一つ一つのメッセージが短く少ないならこういう方法もアリだけど
ドラクエほどメッセージ量が多いと逆にレスポンスが悪くなっちゃう
8bit機は制約が大きいからデザインとプログラミングは不可分だよね
0913名前は開発中のものです。
2012/02/11(土) 16:40:46.31ID:XH8T0Uvm現在シューティングゲームを作ってみているのですが、BGの当たり判定で止まっています。
@ A B C
とブロックがあった場合、スプライトの弾がぶつかったら消滅というコードをくんでいるのですが、
スプライトと違い座標を用いた方法以外で、衝突判定を見る方法はないものでしょうか
ブロックと弾にカウンタを置いて、弾のカウンタとand演算等で分岐をとも思ったのですが、
ブロックの数によっては汎用性がなさそうなので、なにかあれば教えて下さい
0914名前は開発中のものです。
2012/02/11(土) 19:08:00.50ID:DMNaSAjw座標を使う以外にやりようはない。
基本は当たり判定を取りたい座標をブロックのサイズで除算。
除算をまじめにやるとしょぼいCPUでは遅いので、ブロックのサイズを
2^nにしてシフトで出来るようにする。
すり抜け対策とかドット単位当たり判定とかは説明がめんどいので
考えてくださいw
0915名前は開発中のものです。
2012/02/11(土) 23:11:04.33ID:XH8T0Uvmあぁなるほど徐算でしたか、感覚としては因数分解みたいな感じですね
ありがとうございます。
一応確認なんですが、私は当たり判定ではcmpによるネガティブフラグで判定をしていますが、その調子で大丈夫ですよね
0916名前は開発中のものです。
2012/02/11(土) 23:29:41.07ID:bvbq0wS4何事も試行錯誤です
0917名前は開発中のものです。
2012/02/11(土) 23:38:43.03ID:qaTR3LgQ0918名前は開発中のものです。
2012/02/12(日) 00:56:09.91ID:gUUDEgxLインデックスレジスタを用いた擬似的乗徐算を乗徐算と意識していなかったから
と言い訳しておきます
0919名前は開発中のものです。
2012/02/12(日) 02:17:00.92ID:/ainxqCj0920名前は開発中のものです。
2012/02/12(日) 05:02:51.58ID:E+fNx3cK0921名前は開発中のものです。
2012/02/12(日) 09:07:11.43ID:aKdW3vVV各人が車輪の再発見をしなきゃいけないなんて無駄もいいとこ。
0922名前は開発中のものです。
2012/02/13(月) 00:48:33.85ID:lzhnxno40923名前は開発中のものです。
2012/02/13(月) 01:49:33.22ID:+XSjeNKoそういやGBのゼルダがそのやり方っぽいな
というかもしかしてGBはみんなそのやり方なのかな
GBでカタカナに制限があるゲームって見ない気がする
0924名前は開発中のものです。
2012/02/13(月) 05:57:30.53ID:P3L21QRYGBはファミコンでいうCHR-RAMしかないからじゃないかな
カートリッジにCPU側のバスしか出ていない設計だったかと
0925名前は開発中のものです。
2012/02/18(土) 10:25:42.97ID:YR3CrAXp0926名前は開発中のものです。
2012/02/18(土) 23:48:26.97ID:E8fj6J+ZキャラクタをROMとして提供したゲーム機はファミコンくらいでしょう。
任天堂ハードにおいても。他ハードは、VRAMに展開する方式だし。
0927名前は開発中のものです。
2012/02/19(日) 01:38:31.81ID:up1P9huo家庭用って言っていいのかわからんけど
0928名前は開発中のものです。
2012/02/19(日) 16:42:10.96ID:HsfNQTml以上を表示できる仕組み登場したことはおもしろいですわ。ファミコンが
発売された当初は想定されていないことだったでしょうけど。これがあった
から、10近くは持ったのでは?と思っとりますよ。
0929名前は開発中のものです。
2012/02/19(日) 18:20:39.95ID:h5opwI+Kアダプタに16KBのCHR-RAMと漢字ROM(第一水準?)を搭載したおかげで、
標準で日本語表示と4色のフルグラフィック表示に対応してた。
(バンク切り替えのタイミング管理の方法は知らないけど、
多分ハードウェア側で任意のラインでIRQ生成する機能があったと予想)
ゲームソフトがでなかったのが非常に悔やまれる・・・
ディスクシステムを使える機能(?)も結局使われてないし・・・
これを見たとき、ファミコンとディスクシステムとキーボードと通信アダプタが
合体すれば、どんな楽しみ方ができるだろうと妄想してたよ
0930名前は開発中のものです。
2012/02/19(日) 20:55:13.09ID:U6dbhp2V出せない気がするんだが、それでどうやって漢字表示してたんだろう
結局キャラクタ自体も書き換える必要があるのかな
0931名前は開発中のものです。
2012/02/19(日) 21:53:51.47ID:h5opwI+K1パターンは8x8ドットで構成されるのだから、
ファミコンの一つの画面上に出せるパターン数は
32(横に並ぶパターン)x30(縦に並ぶパターン)=960パターンとなる。
ファミコンのPPUが一度に参照できるキャラクタは256個までなので、
画面描画中に3回バンク切り替え等の処理をする必要がある。
(大体32、64、128ライン目描画後のH-BLANK時)
漢字自体は、CPU空間に存在するROM・RAMからデータを読み、
I/Oを通して、PPU空間のRAMに書き込む。
0932名前は開発中のものです。
2012/02/19(日) 22:06:17.26ID:yDN7dT+T定義側を書き換えて表示させるってことか
0933名前は開発中のものです。
2012/02/19(日) 23:12:49.32ID:7lUDE9va0934名前は開発中のものです。
2012/02/20(月) 00:01:31.48ID:jCs3Ldayそうなんじゃね?
0935名前は開発中のものです。
2012/02/23(木) 22:29:16.92ID:9OQqfVZC0936名前は開発中のものです。
2012/02/24(金) 23:13:20.04ID:aLx23JaI0937名前は開発中のものです。
2012/02/25(土) 00:46:14.68ID:0truvwjhラグランジュポイントも8K以上のCHR-RAMを積んでいたのかと考えている
あの画像と、日本語フォントは512パターンで生成できなそう。VRC7はMMC5
の如く、Ex-RAMを使って2バイト指定でBGパターンを指定できるみたいなこと
はできなそうだし
0938名前は開発中のものです。
2012/02/25(土) 19:17:11.50ID:Abu3C86F文字関係(数字、ステータス表示に使う最小限の英字、ひらがなとカタカナを全文字、その他少々)で、都合約2KiB使ってる。
あとの2KiBが、マップとかのBG側のグラフィック用だけど、不足する場合でも、文字を置いてあるバンクは基本的に温存。
そのかわりスプライトのパターンを2KiBしか使わない。
それで浮かせたCHR-RAM領域を、バンク切り替えでBG側に持ってきて間に合わせてるだけ。
ヴィジュアルシーンのグラフィックとかは、デザインや演出上の工夫で、技術的に特に変わったことはやってない。
0939938
2012/02/25(土) 20:03:31.39ID:Abu3C86F当然だけど、常に>>938みたいにスプライトのパターンをケチって間借してるわけじゃなく、
普通にBGとスプライトで4KiBずつ分けあって、単に画面が暗転した際にパタンテーブルを書き換えるとか、
平凡にやりくりしてる状況の方がむしろ大半なので念のため。
0940名前は開発中のものです。
2012/02/26(日) 00:39:33.07ID:US8Vrh37解説サンクスなり
職人芸だったわけね
0941名前は開発中のものです。
2012/02/27(月) 17:29:23.40ID:d2Rr2gFY上は当たり判定で、スプライトの座標をタイルに変換させる。でもたまにルーチンで誤変換起こしてしまってる
デバッグしてもよく分からない
原因すらわからねぇ
0942名前は開発中のものです。
2012/02/28(火) 11:32:31.06ID:FLxgWkDL0943名前は開発中のものです。
2012/02/28(火) 13:11:12.77ID:DEMYa7pD0944名前は開発中のものです。
2012/02/28(火) 21:05:59.53ID:FLxgWkDL0945名前は開発中のものです。
2012/02/28(火) 22:42:52.32ID:ac5+J/w/・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
0946名前は開発中のものです。
2012/03/22(木) 16:43:43.53ID:NBlMXw6A0947名前は開発中のものです。
2012/03/22(木) 16:44:38.63ID:NBlMXw6A0948名前は開発中のものです。
2012/03/23(金) 05:49:38.45ID:EKmbrKmy0949名前は開発中のものです。
2012/03/24(土) 23:29:09.53ID:pi7aftbx0950名前は開発中のものです。
2012/03/25(日) 01:14:37.28ID:c32Eu5AGという話じゃなくて?
0951名前は開発中のものです。
2012/03/25(日) 17:19:57.67ID:W0Y8frQCttp://ll.la/Rv~l
ファミコンプログラミングがやりたくて、
試しにN106で全画面表示をやってみたんですが、
G-NESだとうまく表示できなくて……
VirtuaNES、nestopiaだと期待通り動くんですが……
上のURLにソースコードと、各環境で実行したSSをupしました。
詳しい方、原因とか教えてくれませんか?
レス数が950を超えています。1000を超えると書き込みができなくなります。